/* Teddy's Future Lab — HoloWorld: whole-page 3D worlds with controls standing in the scene (no menu bars).
   Colour line: Design 007 — deep navy, electric cyan, Teddy gold. Tone classes step from playful (kid) to clean (teen/adult). */
@font-face{font-family:"Lab Sans";src:url("/fonts/Poppins-Regular.ttf") format("truetype");font-weight:400;font-display:swap}
@font-face{font-family:"Lab Sans";src:url("/fonts/Poppins-Medium.ttf") format("truetype");font-weight:500 600;font-display:swap}
@font-face{font-family:"Lab Sans";src:url("/fonts/Poppins-Bold.ttf") format("truetype");font-weight:700 900;font-display:swap}
.hw{--hw-navy:#030c24;--hw-cyan:#4cc9ff;--hw-cyan-2:#a8ecff;--hw-gold:#ffc23d;--hw-gold-2:#ffe7a1;--hw-ink:#f3f9ff;--px:0;--py:0;position:relative;overflow:hidden;isolation:isolate;color:var(--hw-ink);font-family:"Lab Sans",system-ui,"Segoe UI",Arial,sans-serif;background:var(--hw-navy);min-height:100%}
.hw.hw-fixed{position:fixed;inset:0;z-index:0}
.hw *{box-sizing:border-box}
.hw-art{position:absolute;inset:-3%;transform:translate3d(calc(var(--px) * -22px),calc(var(--py) * -14px),0) scale(1.04);transition:transform .6s cubic-bezier(.2,.7,.2,1);will-change:transform}
.hw-art-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;animation:hw-breathe 26s ease-in-out infinite alternate}
@keyframes hw-breathe{to{transform:scale(1.045)}}
.hw-glow{position:absolute;inset:0;pointer-events:none}
.hw-shade-left .hw-glow{background:linear-gradient(90deg,rgba(3,12,36,.82) 0%,rgba(3,12,36,.48) 32%,rgba(3,12,36,0) 54%),radial-gradient(60% 50% at 76% 26%,rgba(140,210,255,.2),transparent 70%),radial-gradient(70% 40% at 66% 104%,rgba(255,194,61,.3),transparent 70%),linear-gradient(180deg,rgba(3,12,36,.35),rgba(3,12,36,0) 18%,rgba(3,12,36,0) 66%,rgba(3,12,36,.82))}
.hw-shade-right .hw-glow{background:linear-gradient(270deg,rgba(3,12,36,.82) 0%,rgba(3,12,36,.48) 32%,rgba(3,12,36,0) 54%),radial-gradient(70% 40% at 34% 104%,rgba(255,194,61,.28),transparent 70%),linear-gradient(180deg,rgba(3,12,36,.35),rgba(3,12,36,0) 18%,rgba(3,12,36,0) 66%,rgba(3,12,36,.82))}
.hw-shade-center .hw-glow{background:radial-gradient(60% 55% at 50% 45%,rgba(3,12,36,.1),rgba(3,12,36,.55) 75%),linear-gradient(180deg,rgba(3,12,36,.55),rgba(3,12,36,0) 22%,rgba(3,12,36,0) 55%,rgba(3,12,36,.88))}
.hw-shade-bottom .hw-glow{background:linear-gradient(180deg,rgba(3,12,36,.5) 0%,rgba(3,12,36,0) 20%,rgba(3,12,36,0) 45%,rgba(3,12,36,.86) 78%,rgba(3,12,36,.94))}
[data-hw-layout="tall"].hw .hw-glow{background:radial-gradient(70% 35% at 50% 42%,rgba(140,210,255,.16),transparent 70%),linear-gradient(180deg,rgba(3,12,36,.8) 0%,rgba(3,12,36,.28) 22%,rgba(3,12,36,0) 40%,rgba(3,12,36,.4) 56%,rgba(3,12,36,.92) 100%)}
.hw-gl{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:2}
.hw-sparks{position:absolute;inset:0;z-index:1;pointer-events:none}
.hw-sparks i{position:absolute;bottom:-10px;width:5px;height:5px;border-radius:50%;background:var(--hw-cyan-2);box-shadow:0 0 12px 3px rgba(76,201,255,.8);animation:hw-rise 11s linear infinite;opacity:0}
.hw-sparks i:nth-child(3n){background:var(--hw-gold-2);box-shadow:0 0 12px 3px rgba(255,194,61,.8)}
.hw-sparks i:nth-child(1){left:6%}.hw-sparks i:nth-child(2){left:14%;animation-delay:3s}.hw-sparks i:nth-child(3){left:23%;animation-delay:6s}.hw-sparks i:nth-child(4){left:31%;animation-delay:1.5s}.hw-sparks i:nth-child(5){left:42%;animation-delay:8s}.hw-sparks i:nth-child(6){left:51%;animation-delay:4.5s}.hw-sparks i:nth-child(7){left:60%;animation-delay:2s}.hw-sparks i:nth-child(8){left:68%;animation-delay:9.5s}.hw-sparks i:nth-child(9){left:77%;animation-delay:5.2s}.hw-sparks i:nth-child(10){left:85%;animation-delay:7.3s}.hw-sparks i:nth-child(11){left:93%;animation-delay:.8s}.hw-sparks i:nth-child(12){left:97%;animation-delay:10s}
@keyframes hw-rise{0%{transform:translateY(0);opacity:0}10%{opacity:1}85%{opacity:.6}100%{transform:translateY(-105vh) translateX(26px);opacity:0}}
.hw-content{position:absolute;inset:0;z-index:3;pointer-events:none}
.hw-content>*{pointer-events:auto}

/* ---------- objects ---------- */
.hw-objects{position:absolute;inset:0;z-index:4;pointer-events:none}
.hw-obj{--obj:110px;position:absolute;width:var(--obj);height:var(--obj);transform:translate(-50%,-50%);display:block;border-radius:50%;pointer-events:auto;text-decoration:none;color:#fff;background:none;border:0;padding:0;font:inherit;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.hw-obj[hidden]{display:none}
.hw-ico{display:none}
.hw:not(.hw-3d) .hw-ico{display:grid;place-items:center;position:absolute;inset:8%;border-radius:50%;font-style:normal;font-size:calc(var(--obj) * .42);background:radial-gradient(circle at 35% 28%,rgba(255,255,255,.6),rgba(255,255,255,0) 45%),linear-gradient(160deg,#5ad0ff,#1a62d6 60%,#2a1f8f);box-shadow:inset 0 3px 0 rgba(255,255,255,.7),0 0 0 2px rgba(255,214,110,.85),0 10px 24px rgba(0,0,0,.5),0 0 30px rgba(76,201,255,.55)}
.hw:not(.hw-3d) .hw-gold .hw-ico{background:radial-gradient(circle at 35% 28%,rgba(255,255,255,.7),rgba(255,255,255,0) 45%),linear-gradient(160deg,#ffe58a,#ffc23d 55%,#d98a00)}
.hw-lbl{position:absolute;left:50%;top:calc(100% + 2px);transform:translateX(-50%);white-space:nowrap;padding:6px 14px;border-radius:999px;font-weight:800;font-size:clamp(12px,1vw,14.5px);letter-spacing:.05em;background:linear-gradient(180deg,rgba(18,62,140,.84),rgba(6,24,64,.9));box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 0 0 1px rgba(168,236,255,.75),0 0 14px rgba(76,201,255,.4);text-shadow:0 1px 2px #000;transition:transform .2s,box-shadow .2s}
.hw-gold .hw-lbl{background:linear-gradient(180deg,#ffe9a3,#ffc23d 60%,#e39a00);color:#2a1700;text-shadow:none;box-shadow:inset 0 1px 0 #fff8,0 0 0 1px #fff3c8,0 0 16px rgba(255,194,61,.6)}
.hw-note{position:absolute;right:2%;top:2%;min-width:26px;height:26px;padding:0 7px;border-radius:999px;display:grid;place-items:center;font-weight:900;font-size:12.5px;color:#fff;background:linear-gradient(180deg,#ff7b93,#e0284c);box-shadow:0 0 0 2px #fff,0 0 14px rgba(255,77,109,.7)}
.hw-obj:hover .hw-lbl,.hw-obj:focus-visible .hw-lbl{transform:translateX(-50%) translateY(3px) scale(1.06);box-shadow:inset 0 1px 0 rgba(255,255,255,.5),0 0 0 1px #fff,0 0 22px rgba(76,201,255,.7)}
.hw-obj:focus-visible{outline:3px solid var(--hw-gold);outline-offset:6px}
.hw-obj.teddy-pressed .hw-lbl{transform:translateX(-50%) scale(.96)}
.hw-obj.hw-off{cursor:not-allowed}.hw-obj.hw-off .hw-lbl{opacity:.7;filter:saturate(.3)}

/* ---------- badges pinned on the artwork ---------- */
.hw-badge{position:absolute;z-index:3;transform:translate(-50%,-50%);display:grid;justify-items:center;min-width:96px;min-height:48px;padding:6px 14px;border:0;border-radius:16px;cursor:pointer;color:#fff;font:inherit;text-align:center;background:linear-gradient(180deg,rgba(14,52,120,.74),rgba(5,20,56,.84));-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:inset 0 1px 0 rgba(255,255,255,.4),0 0 0 1px rgba(168,236,255,.85),0 0 18px rgba(76,201,255,.55);animation:hw-float 4.5s ease-in-out infinite}
.hw-badge[hidden]{display:none}
.hw-badge b{font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--hw-gold-2)}.hw-badge span{font-weight:800;font-size:14.5px}
.hw-badge:nth-of-type(2n){animation-delay:-1.6s}.hw-badge:nth-of-type(3n){animation-delay:-3s}
@keyframes hw-float{50%{transform:translate(-50%,calc(-50% - 7px))}}

/* ---------- floating holographic title + glass cards (shared by every world) ---------- */
.hw-title{position:absolute;left:clamp(16px,4vw,64px);top:clamp(16px,6vh,64px);max-width:min(46vw,640px)}
.hw-eyebrow{margin:0 0 8px;font-size:clamp(11px,1vw,13px);font-weight:700;letter-spacing:.3em;text-transform:uppercase;color:var(--hw-cyan-2);text-shadow:0 0 12px rgba(76,201,255,.85)}
.hw-title h1{margin:0;font-weight:900;line-height:.98;font-size:clamp(34px,5vw,84px);letter-spacing:.01em;filter:drop-shadow(0 6px 24px rgba(0,0,0,.6))}
.hw-title .t1{display:block;background:linear-gradient(180deg,#fff 10%,#c9f2ff 55%,#5cc9ff);-webkit-background-clip:text;background-clip:text;color:transparent}
.hw-title .t2{display:block;background:linear-gradient(180deg,#fff4c9,#ffd24d 45%,#ff9f1a);-webkit-background-clip:text;background-clip:text;color:transparent}
.hw-title p{margin:10px 0 0;color:#d7e8ff;text-shadow:0 1px 4px #000}
.hw-chip{display:inline-flex;align-items:center;gap:8px;margin:10px 8px 0 0;padding:6px 14px;min-height:36px;border-radius:999px;font-weight:700;font-size:13.5px;color:#fff;background:rgba(6,28,70,.6);box-shadow:0 0 0 1px rgba(168,236,255,.6),0 0 16px rgba(76,201,255,.35)}
.hw-chip b{color:var(--hw-gold)}
.hw-card{position:relative;border-radius:22px;padding:16px 18px;color:var(--hw-ink);background:linear-gradient(180deg,rgba(12,44,104,.68),rgba(4,16,46,.8));-webkit-backdrop-filter:blur(14px) saturate(1.4);backdrop-filter:blur(14px) saturate(1.4);box-shadow:0 0 0 1px rgba(168,236,255,.6),0 0 26px rgba(76,201,255,.3),inset 0 1px 0 rgba(255,231,161,.35),0 18px 40px rgba(0,0,0,.4)}
.hw-card h2,.hw-card h3{margin:0 0 8px;font-size:17px;font-weight:800;color:#fff}
.hw-card p{margin:0;color:#cfe2fb}
.hw-meter{height:12px;border-radius:999px;background:rgba(255,255,255,.12);overflow:hidden;box-shadow:inset 0 0 0 1px rgba(168,236,255,.35)}
.hw-meter>i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#4cc9ff,#ffc23d);box-shadow:0 0 12px rgba(76,201,255,.7)}

.hw[data-hw-layout="tall"] .hw-lbl{font-size:11.5px;padding:4px 10px;letter-spacing:.02em}
.hw[data-hw-layout="short"] .hw-lbl{font-size:10.5px;padding:3px 8px;letter-spacing:0}
/* ---------- tone: sophistication steps up with age ---------- */
.hw-tone-kid .hw-lbl{font-size:clamp(13px,1.1vw,16px);padding:7px 16px}
.hw-tone-teen .hw-lbl,.hw-tone-adult .hw-lbl{letter-spacing:.08em;text-transform:uppercase;font-size:clamp(11px,.85vw,12.5px);font-weight:700;background:rgba(6,22,58,.82);box-shadow:0 0 0 1px rgba(168,236,255,.55)}
.hw-tone-teen .hw-gold .hw-lbl,.hw-tone-adult .hw-gold .hw-lbl{background:linear-gradient(180deg,#ffe9a3,#ffc23d 60%,#e39a00);color:#2a1700;text-shadow:none}
.hw-tone-teen .hw-sparks,.hw-tone-adult .hw-sparks{opacity:.55}
.hw-tone-adult .hw-title h1{font-size:clamp(28px,3.6vw,58px)}

@media (prefers-reduced-motion:reduce){.hw *,.hw *::before,.hw *::after{animation:none!important;transition:none!important}.hw-art{transform:scale(1.04)}}
@media (forced-colors:active){.hw-obj{border:2px solid ButtonText}.hw-ico{display:grid!important}}
@media (max-width:360px){.hw[data-hw-layout] .hw-lbl{font-size:10px;padding:3px 7px;letter-spacing:0}}

/* ---------- child's age-world home (age-world.js) ---------- */
.age-world{position:fixed;inset:0;z-index:0}
.aw-title{max-width:min(44vw,600px)}
.aw-title h1{font-size:clamp(30px,4.4vw,72px)}
.aw-stats{display:flex;flex-wrap:wrap;gap:0}
.aw-meter{margin-top:12px;max-width:360px}
.aw-missions{position:absolute;right:clamp(14px,2.5vw,40px);bottom:clamp(110px,14vh,150px);width:min(340px,30vw)}
.aw-mission{display:flex;align-items:center;gap:10px;min-height:44px;padding:6px 10px;margin:4px 0;border-radius:14px;color:#fff;text-decoration:none;background:rgba(4,20,56,.5);box-shadow:inset 0 0 0 1px rgba(120,220,255,.3)}
.aw-mission span{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;color:#ffc23d;box-shadow:inset 0 0 0 2px #ffc23d}
.aw-mission.done span{background:#3fd27a;color:#fff;box-shadow:none}
.aw-mission:hover{box-shadow:inset 0 0 0 1px #fff,0 0 14px rgba(76,201,255,.5)}
.aw-discover .aw-title h1{font-size:clamp(40px,6vw,96px)}
.aw-discover .aw-meter,.aw-discover .hw-eyebrow{display:none}
.aw-future .aw-title{left:auto;right:clamp(16px,4vw,64px);text-align:right}
.aw-future .aw-stats{justify-content:flex-end}.aw-future .aw-meter{margin-left:auto}
.aw-future .aw-missions{right:auto;left:clamp(14px,2.5vw,40px)}
.aw-future .aw-title .t1{background:linear-gradient(180deg,#fff,#dfeeff);-webkit-background-clip:text;background-clip:text}
[data-hw-layout="tall"] .aw-title{left:0;right:0;max-width:none;text-align:center;padding:0 14px;top:calc(76px + env(safe-area-inset-top))}
[data-hw-layout="tall"] .aw-title h1{font-size:clamp(26px,7.6vw,46px)}
[data-hw-layout="tall"] .aw-title p:not(.hw-eyebrow){display:none}
[data-hw-layout="tall"] .aw-stats{justify-content:center}[data-hw-layout="tall"] .aw-meter{margin:10px auto 0}
[data-hw-layout="tall"] .aw-missions,[data-hw-layout="short"] .aw-missions{display:none}
[data-hw-layout="short"] .aw-title{top:64px;max-width:30vw}[data-hw-layout="short"] .aw-title h1{font-size:clamp(22px,3.4vw,36px)}[data-hw-layout="short"] .aw-title p:not(.hw-eyebrow),[data-hw-layout="short"] .aw-meter{display:none}
.age-world .hw-title{top:calc(clamp(16px,6vh,64px) + 56px)}

/* ---------- Family Command Center (pages/command.js) ---------- */
.command-world{position:fixed;inset:0;z-index:0}
.cw-title{max-width:min(46vw,640px)}
.cw-title h1{font-size:clamp(28px,3.6vw,56px)}
.cw-chips{display:flex;flex-wrap:wrap}
.cw-chips a{text-decoration:none}
.cw-alert{box-shadow:0 0 0 1px rgba(255,140,160,.8),0 0 18px rgba(255,77,109,.45)!important}
.cw-kids{position:absolute;left:clamp(16px,4vw,64px);top:calc(clamp(16px,6vh,64px) + 56px + 230px);width:min(44vw,620px);display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:12px;max-height:36vh;overflow:auto;padding:4px}
.cw-kid{display:flex;align-items:center;gap:12px;min-height:84px;text-decoration:none;transition:transform .16s,box-shadow .16s}
.cw-kid:hover,.cw-kid:focus-visible{transform:translateY(-2px);box-shadow:0 0 0 1px #fff,0 0 26px rgba(76,201,255,.5)}
.cw-av{flex:none;display:grid;place-items:center;width:58px;height:58px;border-radius:50%;overflow:hidden;font-size:24px;font-weight:900;background:radial-gradient(circle at 35% 28%,rgba(255,255,255,.55),rgba(255,255,255,0) 46%),linear-gradient(160deg,#5ad0ff,#1a62d6);box-shadow:0 0 0 2px rgba(255,214,110,.85),0 0 14px rgba(76,201,255,.5)}
.cw-av>*{max-width:100%;max-height:100%}
.cw-kid-main{display:grid;gap:3px;min-width:0;flex:1}.cw-kid-main b{font-size:17px}.cw-kid-main small{color:#a8ecff}
.cw-kid-stats{display:flex;flex-wrap:wrap;gap:10px;font-size:13px;color:#dbe9ff}.cw-red{color:#ff9fb0;font-weight:800}
.command-world .hw-title{top:calc(clamp(16px,6vh,64px) + 56px)}
[data-hw-layout="tall"] .cw-title{left:0;right:0;max-width:none;text-align:center;padding:0 14px}
[data-hw-layout="tall"] .cw-title p:not(.hw-eyebrow){display:none}[data-hw-layout="tall"] .cw-chips{justify-content:center}
[data-hw-layout="tall"] .cw-kids{left:12px;right:12px;width:auto;top:calc(56px + 200px);display:flex;overflow-x:auto;max-height:none}
[data-hw-layout="tall"] .cw-kid{flex:0 0 min(260px,80vw)}
[data-hw-layout="short"] .cw-title p:not(.hw-eyebrow){display:none}[data-hw-layout="short"] .cw-kids{top:auto;bottom:10px;left:86px;width:34vw;max-height:42vh}[data-hw-layout="short"] .cw-title{top:60px;max-width:38vw}[data-hw-layout="short"] .cw-title h1{font-size:24px}
.hw .hw-art-img{height:100%!important;width:100%!important;max-width:none!important;max-height:none!important;object-fit:cover!important}
.cw-kids{max-height:30vh}
[data-hw-layout="short"] .aw-future .aw-title{max-width:30vw}
