:root{--navy:#142247;--ink:#1b2b50;--sub:#61708e;--paper:#f6f8ff;--card:#fff;--teal:#50d9cf;--purple:#7765de;--yellow:#ffdf69;--shadow:0 10px 32px rgba(38,48,101,.09)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:ui-rounded,"Trebuchet MS",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}button,input{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible{outline:3px solid #f8b94b;outline-offset:3px}.hidden{display:none!important}.app-shell{min-height:100vh;max-width:1360px;margin:auto;padding:0 5%}.topbar{display:flex;align-items:center;justify-content:space-between;min-height:94px;gap:16px}.brand{border:0;background:none;display:flex;align-items:center;text-align:left;gap:11px;color:var(--navy);padding:0}.brand-icon{display:grid;place-items:center;background:#735de7;color:#fff;border-radius:16px;width:49px;height:49px;font-size:30px;transform:rotate(-9deg)}.brand-name{font-weight:1000;font-size:21px;line-height:.92;letter-spacing:-1px}.brand-name>span{color:#6e59d6}.brand-name small{display:block;letter-spacing:4px;font-size:11px;margin-top:7px}.top-actions{display:flex;align-items:center;gap:12px}.connection{font-size:12px;color:#53716a;background:#e7f7f1;border-radius:99px;padding:10px 14px;display:flex;gap:7px;align-items:center;font-weight:800}.status-dot{width:9px;height:9px;background:#48b89a;border-radius:50%}.connection.warn{background:#fff0d9;color:#9a6a20}.connection.warn .status-dot{background:#e5a342}.round-button,.close-icon{background:#fff;border:0;box-shadow:var(--shadow);border-radius:50%;width:44px;height:44px;font-size:23px;color:var(--navy)}.hero{min-height:342px;background:linear-gradient(112deg,#1a2854 0%,#28396b 55%,#4f469b 100%);border-radius:29px;display:flex;overflow:hidden;position:relative;color:white;padding:43px 5%;box-shadow:0 18px 35px #202b6330}.hero-copy{z-index:2;position:relative}.eyebrow{color:#9ce6ea;font-weight:1000;letter-spacing:2.7px;font-size:11px}.hero h1{font-size:clamp(37px,4.8vw,61px);line-height:1.04;letter-spacing:-2px;margin:13px 0 15px}.hero h1 em{font-style:normal;color:#ffdc6f}.hero-stars{font-size:.5em;vertical-align:top;color:#8beee9}.hero p{color:#d7def7;margin:0 0 25px;font-size:16px}.hero-actions{display:flex;gap:12px;flex-wrap:wrap}.primary-button{border:0;background:#ffda68;color:#282650;padding:13px 20px;border-radius:13px;font-weight:1000;box-shadow:0 4px 0 #e5b946;font-size:14px;transition:transform .12s}.primary-button:active{transform:translateY(3px);box-shadow:0 1px 0 #e5b946}.secondary-button{border:1px solid #d5dcf2;background:#fff;color:#26355d;padding:12px 19px;border-radius:13px;font-weight:900;font-size:14px}.hero .secondary-button{background:#ffffff1b;color:white;border:1px solid #ffffff64}.secondary-button.small{padding:8px 13px;font-size:12px}.hero-art{position:absolute;right:4%;top:0;width:42%;height:100%;isolation:isolate}.hero-art:before{content:"";position:absolute;border:2px dashed #b9baf13d;border-radius:50%;inset:8% 1%;transform:rotate(-17deg)}.hero-art>span{position:absolute;filter:drop-shadow(1px 8px 4px #0004)}.art-dino{font-size:115px;top:22%;right:32%;transform:rotate(-9deg)}.art-planet{font-size:75px;right:0;top:3%}.art-rocket{font-size:77px;right:2%;bottom:7%;transform:rotate(-25deg)}.art-sparkle{font-size:37px;left:8%;top:18%;color:#ffe176}.art-orbit{font-size:40px;left:22%;bottom:14%;color:#89e9df}.art-controller{font-size:57px;left:3%;bottom:19%;transform:rotate(18deg)}.section{margin:44px 0 0}.section-title-row{display:flex;justify-content:space-between;align-items:end;gap:10px;margin-bottom:20px}.kicker{font-size:11px;font-weight:1000;letter-spacing:2px;color:#7765de}.section h2,.parent-header h2{font-size:clamp(24px,3vw,31px);letter-spacing:-1px;margin:5px 0 0}.count{font-size:13px;background:#e6e1ff;color:#6852c0;padding:6px 10px;border-radius:99px;vertical-align:middle;letter-spacing:0}.section-note{font-size:12px;color:#8590a7;font-weight:800}.filter-bar{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:22px}.filter{border:1px solid #e6eafa;border-radius:30px;padding:9px 16px;background:white;color:#66728a;font-size:13px;font-weight:900}.filter.active{background:#28365d;border-color:#28365d;color:white}.games-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.game-card{background:white;border:1px solid #edf0fa;border-radius:21px;overflow:hidden;box-shadow:var(--shadow);transition:transform .15s,box-shadow .15s;text-align:left;padding:0;color:var(--navy);min-width:0}.game-card:hover{transform:translateY(-4px);box-shadow:0 14px 32px #273c7025}.game-card:active{transform:scale(.99)}.game-poster{height:155px;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center}.game-poster:before{content:"";position:absolute;width:240px;height:240px;border-radius:50%;background:#ffffff22;left:-70px;top:-110px}.game-poster:after{content:"";position:absolute;width:150px;height:150px;border-radius:50%;border:23px solid #ffffff1d;right:-55px;bottom:-80px}.poster-emoji{font-size:84px;transform:rotate(-8deg);filter:drop-shadow(4px 10px 1px #0002);z-index:1}.poster-tag{position:absolute;right:13px;top:13px;background:#fff;border-radius:99px;font-weight:900;font-size:10px;padding:7px 10px;color:#435476;z-index:1}.game-card-body{padding:16px 17px 18px}.game-card-line{display:flex;align-items:center;justify-content:space-between;gap:8px}.game-card h3{font-size:19px;letter-spacing:-.6px;margin:0}.play-circle{border-radius:50%;display:grid;place-items:center;width:31px;height:31px;background:#ede9ff;color:#6553ba;font-size:14px;flex-shrink:0}.game-card p{font-size:12px;color:#8a95a9;margin:7px 0 0;line-height:1.4}.wish-section{margin-top:54px}.wish-layout{display:grid;grid-template-columns:1.1fr 1fr;gap:20px}.wish-panel{background:#eae5ff;padding:26px;border-radius:22px;position:relative;overflow:hidden}.wish-graphic{font-size:39px}.wish-graphic span{color:#ffba51}.wish-panel h3{font-size:24px;letter-spacing:-.8px;margin:15px 0 9px}.wish-panel p{max-width:390px;font-size:13px;color:#5c618b;line-height:1.6}.request-form{margin-top:23px}.request-form label{display:block;font-size:12px;font-weight:900;margin-bottom:9px}.input-row{display:flex;gap:8px}.input-row input{min-width:0;flex:1;border:1px solid #c9c6e9;padding:13px;border-radius:12px;font-size:14px}.wish-candidates{display:grid;grid-template-columns:1fr 1fr;gap:12px}.candidate{border:1px solid #e9eafa;background:white;border-radius:17px;padding:14px;display:flex;flex-direction:column;justify-content:space-between;gap:10px}.candidate-emoji{font-size:29px}.candidate strong{display:block;font-size:13px}.candidate small{color:#8792a8;font-size:11px;line-height:1.4;display:block;margin-top:5px}.ask-button{border:0;background:#e9e7ff;color:#6859bb;padding:9px 10px;border-radius:10px;font-size:12px;font-weight:900;text-align:center}.ask-button:disabled{background:#e8f7ec;color:#3b9678;cursor:default}.feedback{font-size:12px;color:#41796c;min-height:14px;margin:10px 0 0;font-weight:800}.site-footer{display:flex;justify-content:space-between;padding:38px 0;margin-top:20px;color:#97a1b5;font-size:12px}.site-footer strong{color:#e17c99}.overlay{position:fixed;z-index:10;inset:0;background:#111b35d9;display:flex;align-items:center;justify-content:center;padding:15px;overscroll-behavior:contain}.game-modal,.parent-modal{width:min(100%,1050px);background:#fff;border-radius:22px;box-shadow:0 20px 90px #0004;overflow:auto;max-height:calc(100dvh - 30px)}.game-modal{background:#f4f6ff}.game-header{padding:12px 19px;display:flex;align-items:center;justify-content:space-between;gap:12px}.back-button,.restart-button{background:white;border:1px solid #e5eaf9;padding:11px 13px;border-radius:11px;font-size:13px;font-weight:900;color:#44557a}.game-heading{display:flex;gap:9px;align-items:center;font-size:16px}.game-heading span{font-size:24px}.game-playfield{position:relative;background:#dde7ff;margin:0 auto;width:min(100%,880px);aspect-ratio:720/440;overflow:hidden;touch-action:none}.game-playfield canvas{width:100%;height:100%;display:block;touch-action:none}.game-message{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#19254cb5;color:#fff;text-align:center;padding:24px;font-weight:900;font-size:25px;pointer-events:none;white-space:pre-line}.game-controls{min-height:65px;display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;padding:11px 16px}.game-control{border:0;background:#7864dd;color:white;min-width:78px;min-height:51px;padding:10px 20px;border-radius:15px;font-size:21px;font-weight:900;touch-action:none;user-select:none;-webkit-user-select:none}.game-control.secondary{background:#e5e0ff;color:#4b3e87}.game-help{text-align:center;color:#6c7891;font-size:12px;padding:0 16px 17px;min-height:24px}.parent-modal{width:min(100%,720px);padding:24px}.parent-header{display:flex;justify-content:space-between;align-items:start}.parent-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:22px 0}.parent-stats>div{border-radius:14px;background:#f3f1ff;padding:14px 9px;display:flex;flex-direction:column;text-align:center;gap:4px}.parent-stats strong{font-size:28px;color:#7160cc}.parent-stats span{color:#77819e;font-size:11px}.parent-section{border-top:1px solid #e7e9f3;padding:18px 0}.parent-section h3{margin:0 0 6px;font-size:18px}.muted{color:#7985a0;font-size:12px;line-height:1.6;margin:6px 0 13px}.settings-row,.manage-row,.request-row{display:flex;justify-content:space-between;align-items:center;gap:12px;border-bottom:1px solid #eff1f6;padding:11px 0}.settings-row strong,.manage-row strong,.request-row strong{font-size:13px;display:block}.settings-row small,.manage-row small,.request-row small{color:#8690a6;font-size:11px;display:block;margin-top:3px}.request-row>div:first-child,.manage-row>div:first-child{min-width:0}.request-actions{display:flex;gap:7px;flex-shrink:0}.request-actions button{padding:8px 10px;border:0;border-radius:10px;font-weight:900;font-size:11px;background:#e3f4ed;color:#36826e}.request-actions button:last-child{background:#f3e6e6;color:#a5595f}.switch{appearance:none;width:44px;height:26px;background:#ccd3e4;position:relative;border-radius:30px;cursor:pointer;flex-shrink:0}.switch:checked{background:#7360dd}.switch:before{content:"";width:20px;height:20px;border-radius:50%;background:#fff;position:absolute;top:3px;left:3px;transition:transform .12s}.switch:checked:before{transform:translateX(18px)}.auth-form{padding:30px 0;max-width:380px;margin:auto}.auth-form h3{margin:0 0 8px}.auth-form input{width:100%;padding:13px;margin:10px 0;border:1px solid #d7dbee;border-radius:12px;font-size:19px;letter-spacing:4px;text-align:center}.auth-form button{width:100%}.auth-form p{color:#73809b;font-size:12px}.auth-error{color:#bd5555;font-size:12px}.file-label{cursor:pointer}.empty{text-align:center;background:#f6f7ff;border-radius:12px;padding:22px;color:#8590a5;font-size:13px}.offline-ready{color:#29967a}.offline-not-ready{color:#bd812b}@media(max-width:850px){.games-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.hero-art{opacity:.55;right:-10%;width:50%}.hero-copy{z-index:2}.wish-layout{grid-template-columns:1fr}.wish-candidates{grid-template-columns:repeat(4,1fr)}}@media(max-width:610px){.app-shell{padding:0 15px}.topbar{min-height:72px}.brand-name{font-size:17px}.brand-icon{height:40px;width:40px;font-size:25px}.brand-name small{font-size:9px}.connection{padding:7px 9px;font-size:10px}.round-button{width:38px;height:38px}.hero{min-height:320px;border-radius:19px;padding:30px 22px}.hero-art{opacity:.25;right:-23%;width:80%}.hero h1{font-size:42px}.hero p{max-width:240px}.hero-actions{max-width:260px}.section{margin-top:32px}.section-note{display:none}.games-grid{gap:12px}.game-poster{height:120px}.poster-emoji{font-size:65px}.game-card-body{padding:12px}.game-card h3{font-size:15px}.game-card p{font-size:11px}.wish-candidates{grid-template-columns:1fr 1fr}.wish-panel{padding:22px}.site-footer{flex-direction:column;gap:8px;text-align:center}.game-modal,.parent-modal{max-height:calc(100dvh - 12px);border-radius:14px}.overlay{padding:6px}.game-header{padding:8px}.back-button,.restart-button{padding:9px;font-size:11px}.game-heading{font-size:13px}.game-control{min-width:62px;min-height:49px;padding:8px 14px}.parent-modal{padding:16px}.parent-header h2{font-size:24px}.request-row{align-items:start;flex-direction:column}.request-actions{width:100%}.request-actions button{flex:1}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
/* Version 2: visual discovery, local recommendations, and child profiles */
.kid-chooser{display:flex;gap:7px;align-items:center;font-size:11px;font-weight:850;color:#516083;white-space:nowrap}
.kid-chooser select,.profile-line select,.profile-editor select,.profile-editor input{border:1px solid #dce2f4;border-radius:12px;background:#fff;color:#354165;padding:10px;font-size:13px;max-width:170px}
.time-pill{display:inline-flex;margin-top:19px;padding:8px 12px;background:#ffffff26;border:1px solid #ffffff50;border-radius:999px;font-size:12px;font-weight:800;color:#fff}
.recommend-section{margin-top:33px}.recommend-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.recommend-grid .game-poster{height:112px}.recommended-card{box-shadow:0 8px 28px #826ee122;border-color:#dfd8ff}
.game-card-top{display:flex;justify-content:space-between;align-items:center;gap:6px}.game-card-top strong{font-size:17px;letter-spacing:-.4px}.heart-button{color:#b3a8cb;font-size:23px;background:transparent;border:0;line-height:1;padding:4px}.heart-button.loved{color:#f26b8b}.play-link{color:#6453d5;background:#efebff;border:0;padding:8px 13px;margin-top:12px;font-weight:900;font-size:12px;border-radius:9px}
.catalog-description{color:#69758f;font-size:13px;line-height:1.6;margin:-6px 0 20px;max-width:720px}.catalog-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.catalog-card{border:1px solid #e4e8f7;border-radius:18px;overflow:hidden;display:flex;flex-direction:column;background:#fff;box-shadow:0 4px 15px #3542730b;min-width:0}.catalog-cover{height:140px;position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden}.catalog-cover:before,.game-poster:before{pointer-events:none}.catalog-cover:before{content:'';width:170px;height:170px;background:#ffffff40;border-radius:40px;position:absolute;transform:rotate(28deg);left:-60px;top:-80px}.catalog-cover:after{content:'✦';font-size:55px;opacity:.18;position:absolute;right:13px;bottom:-14px}.catalog-cover .poster-emoji{font-size:72px}.catalog-cover .poster-tag{font-size:10px}.catalog-body{padding:14px;display:flex;flex:1;flex-direction:column;gap:9px}.catalog-status{font-weight:900;color:#9477bc;font-size:10px;text-transform:uppercase;letter-spacing:.6px}.catalog-status.ready{color:#398c71}.catalog-title{display:flex;align-items:start;justify-content:space-between;gap:5px}.catalog-title strong{font-size:16px;line-height:1.2;letter-spacing:-.3px}.catalog-age{font-size:10px;color:#8492a9;white-space:nowrap}.catalog-body p{font-size:12px;line-height:1.5;color:#7b879e;margin:0;flex:1}.catalog-body .ask-button{width:100%;min-height:40px}.wish-inline{display:grid;grid-template-columns:95px 1fr;gap:12px;background:#eae5ff;padding:25px 27px}.wish-inline .wish-graphic{font-size:50px;align-self:start}.wish-inline h3{margin:3px 0 6px}.wish-inline p{margin:0}.profile-line{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}.profile-line label,.profile-editor label{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:850;color:#536184}.profile-editor{display:grid;grid-template-columns:1.4fr .8fr 1.25fr;gap:12px;margin:13px 0}.profile-editor input,.profile-editor select{width:100%;max-width:unset}.category-permissions{display:flex;flex-wrap:wrap;gap:8px}.category-check{display:inline-flex;gap:6px;align-items:center;border:1px solid #e4e2f3;padding:9px 12px;border-radius:11px;font-size:12px;font-weight:700;color:#526381}.category-check input{accent-color:#7864dd}.subheading{font-size:13px;margin:18px 0 12px}.time-up-note{position:fixed;z-index:100;bottom:20px;left:50%;transform:translateX(-50%);max-width:min(92vw,430px);background:#252d56;color:white;border-radius:16px;box-shadow:0 10px 50px #1118;padding:17px 20px;font-weight:850;text-align:center}
@media(max-width:850px){.catalog-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.recommend-grid{gap:12px}.kid-chooser span{display:none}}
@media(max-width:610px){.top-actions{gap:7px}.kid-chooser select{max-width:96px;padding:7px 3px;font-size:11px}.connection{padding:5px 6px}.connection .status-dot{display:none}.catalog-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.catalog-cover{height:125px}.catalog-cover .poster-emoji{font-size:59px}.catalog-body{padding:11px;gap:7px}.catalog-title strong{font-size:14px}.catalog-body p{font-size:11px}.catalog-age{font-size:9px}.recommend-grid{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:8px}.recommend-grid .game-card{flex:0 0 69%;scroll-snap-align:start}.wish-inline{grid-template-columns:1fr}.wish-inline .wish-graphic{font-size:32px}.profile-editor{grid-template-columns:1fr 1fr}.profile-editor label:last-child{grid-column:1/-1}}

.quiet-editor{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin:8px 0 13px}.quiet-editor label{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:750;color:#586683}.quiet-editor input[type=time]{font-size:12px;padding:8px;border:1px solid #dce2f4;border-radius:9px}.quiet-editor input[type=checkbox]{accent-color:#7864dd}

.profile-actions{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}.profile-actions button:disabled{opacity:.45;cursor:not-allowed}

.catalog-match{font-size:11px;font-weight:800;color:#584aa9;margin-top:3px;margin-bottom:7px;}
.source-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:11px 0;border-bottom:1px solid #e7e8f3}.source-row div{display:grid;gap:4px}.source-row small{color:#737991;font-size:11px}.source-row a{text-decoration:none;white-space:nowrap}
@media(max-width:580px){.source-row{align-items:flex-start;flex-direction:column}.source-row a{margin-top:5px}}

/* Full packaged games retain their native touch layout. */
.frame-host{width:100%;height:min(78vh,760px);height:min(78dvh,760px);background:#10253a}.frame-host iframe{display:block;width:100%;height:100%;border:0}.game-playfield:has(.frame-host:not(.hidden)){aspect-ratio:auto}
