@font-face{font-family:Nunito Sans;font-style:normal;font-weight:200 1000;font-stretch:100%;font-display:swap;src:url(../media/f813d0b748b050e0-s.109ulqh0wub5u.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Nunito Sans;font-style:normal;font-weight:200 1000;font-stretch:100%;font-display:swap;src:url(../media/dcd150d580a10316-s.02m2p-env-7db.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Nunito Sans;font-style:normal;font-weight:200 1000;font-stretch:100%;font-display:swap;src:url(../media/d261779aa92de579-s.0slsd4dj30esv.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Nunito Sans;font-style:normal;font-weight:200 1000;font-stretch:100%;font-display:swap;src:url(../media/24ce79ed121239f3-s.187m47s3z4syd.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Nunito Sans;font-style:normal;font-weight:200 1000;font-stretch:100%;font-display:swap;src:url(../media/f141b5b7abe57afc-s.p.380f-mwhk0aej.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Nunito Sans Fallback;src:local(Arial);ascent-override:99.71%;descent-override:34.82%;line-gap-override:0.0%;size-adjust:101.39%}.nunito_sans_7fe26d47-module__JwQwqa__className{font-family:Nunito Sans,Nunito Sans Fallback;font-style:normal}.nunito_sans_7fe26d47-module__JwQwqa__variable{--font-body:"Nunito Sans", "Nunito Sans Fallback"}
@font-face{font-family:Pixelify Sans;font-style:normal;font-weight:400 700;font-display:swap;src:url(../media/99c6cdb74b1a9f21-s.10l581if_zng5.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Pixelify Sans;font-style:normal;font-weight:400 700;font-display:swap;src:url(../media/9b2952c75e1b82c6-s.22tbmskoyk1ev.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Pixelify Sans;font-style:normal;font-weight:400 700;font-display:swap;src:url(../media/01d67e7cc17e7674-s.p.0m75r3fswdwux.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Pixelify Sans Fallback;src:local(Arial);ascent-override:81.7%;descent-override:24.87%;line-gap-override:0.0%;size-adjust:112.61%}.pixelify_sans_730e4fe9-module__dNhn1a__className{font-family:Pixelify Sans,Pixelify Sans Fallback;font-style:normal}.pixelify_sans_730e4fe9-module__dNhn1a__variable{--font-display:"Pixelify Sans", "Pixelify Sans Fallback"}
@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/13bf9871fe164e7f-s.2f7nqdagzwx2-.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/cc545e633e20c56d-s.176arc174-8zp.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/71b036adf157cdcf-s.0bp8oijd_gu96.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/89b21bb081cb7469-s.1fby2rem9ngyr.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/3fe682a82f50d426-s.0vfdmo25voy_0.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/70bc3e132a0a741e-s.p.3t6q91iet4nsy.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono Fallback;src:local(Arial);ascent-override:75.79%;descent-override:22.29%;line-gap-override:0.0%;size-adjust:134.59%}.jetbrains_mono_6104e6b7-module__s6uLTa__className{font-family:JetBrains Mono,JetBrains Mono Fallback;font-style:normal}.jetbrains_mono_6104e6b7-module__s6uLTa__variable{--font-mono:"JetBrains Mono", "JetBrains Mono Fallback"}
:root{--bg:#0e1116;--panel:#161b22;--panel-2:#1c2330;--panel-3:#232b3a;--surface-glass:#161b22b8;--border:#2a3240;--text:#e6edf3;--muted:#8b97a7;--accent:#6ea8fe;--pass:#3fb950;--fail:#f85149;--xp:#d29922;--shell:#57d9a3;--shell-2:#36b07e;--shell-glow:#57d9a338;--coral:#ff9d7a;--ink:#06140d;--body:var(--font-body,ui-rounded, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif);--display:var(--font-display,"Pixelify Sans", ui-rounded, system-ui, sans-serif);--mono:var(--font-mono,ui-monospace, "JetBrains Mono", "SF Mono", Menlo, monospace);--grad-shell:linear-gradient(180deg, var(--shell), var(--shell-2));--grad-gold:linear-gradient(180deg, #e3b341, #d29922);--grad-panel:linear-gradient(180deg, #ffffff09, #fff0 45%), var(--panel);--glow-shell:0 0 24px -6px var(--shell-glow);--glow-gold:0 0 24px -6px #d299224d;--ring:0 0 0 2px var(--shell);--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--space-7:48px;--space-8:72px;--text-sm:clamp(.8rem, .75rem + .2vw, .875rem);--text-md:clamp(.95rem, .9rem + .25vw, 1.05rem);--text-lg:clamp(1.1rem, 1rem + .5vw, 1.3rem);--text-xl:clamp(1.35rem, 1.2rem + .9vw, 1.75rem);--text-2xl:clamp(1.7rem, 1.4rem + 1.6vw, 2.4rem);--text-3xl:clamp(2.2rem, 1.8rem + 2.6vw, 3.7rem);--radius-s:6px;--radius-m:10px;--radius-l:18px;--radius-pill:999px;--shadow-1:0 1px 2px #00000040, 0 4px 14px -4px #00000040;--shadow-2:0 2px 6px #00000047, 0 12px 32px -8px #00000059;--shadow-3:0 4px 12px #00000052, 0 28px 64px -16px #00000080;--ease:cubic-bezier(.22, 1, .36, 1);--dur-1:.16s;--dur-2:.32s;--dur-3:.5s;--edge-light:inset 0 1px 0 #ffffff0d;--border-w:2px;--border-w-lg:3px;--shadow-press:0 3px 0 #0000008c;--shadow-press-sm:0 2px 0 #0000008c;--shadow-sticker:0 4px 0 #0006;--shadow-shell-press:0 3px 0 var(--shell-2);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--scanlines:repeating-linear-gradient(0deg, #ffffff06 0 1px, transparent 1px 3px);--bezel:#1b2620;--plastic-hi:#8df2c8;--plastic:#57d9a3;--plastic-lo:#2ea87a;--plastic-edge:#1f8f63;--grad-plastic:linear-gradient(160deg, var(--plastic-hi) 0%, var(--plastic) 42%, var(--plastic-lo) 100%);--grad-candy:linear-gradient(180deg, #8df2c8 0%, #57d9a3 55%, #36b07e 100%);--gloss:inset 0 2px 0 #ffffff73;--tint-mint:#57d9a314;--tint-mint-border:#57d9a373;--tint-coral:#ff9d7a14;--tint-coral-border:#ff9d7a73;--tint-gold:#e3b34114;--tint-gold-border:#e3b34180;--tint-violet:#b48bff14;--tint-violet-border:#b48bff73;--paper:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.85 0 0 0 0 0.89 0 0 0 0 0.95 0 0 0 0.15 0'/%3E%3C/filter%3E%3Cfilter id='m'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.045' numOctaves='4' seed='7' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.85 0 0 0 0 0.89 0 0 0 0 0.95 0 0 0 0.08 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23m)'/%3E%3Crect width='100%25' height='100%25' filter='url(%23g)'/%3E%3C/svg%3E");--paper-bg:#232b3a;--fabric:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='280' height='280'%3E%3Cfilter id='mottle'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.035' numOctaves='3' seed='7' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.14 0'/%3E%3C/filter%3E%3Cfilter id='warp'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.009 0.2' numOctaves='2' seed='4' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.85 0 0 0 0 0.91 0 0 0 0 1 0 0 0 0.045 0'/%3E%3C/filter%3E%3Cfilter id='weft'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.2 0.009' numOctaves='2' seed='9' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.85 0 0 0 0 0.91 0 0 0 0 1 0 0 0 0.04 0'/%3E%3C/filter%3E%3Cfilter id='fiber'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.7' numOctaves='2' seed='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.85 0 0 0 0 0.91 0 0 0 0 1 0 0 0 0.045 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23mottle)'/%3E%3Crect width='100%25' height='100%25' filter='url(%23warp)'/%3E%3Crect width='100%25' height='100%25' filter='url(%23weft)'/%3E%3Crect width='100%25' height='100%25' filter='url(%23fiber)'/%3E%3C/svg%3E");--paper-mint:#24413a;--paper-coral:#423430;--paper-gold:#403c2b;--paper-violet:#352f47;--paper-ink:var(--text);--paper-ink-muted:#aeb9c9}
*{box-sizing:border-box}html,body{background:var(--fabric) var(--bg);color:var(--text);font-family:var(--body);margin:0;padding:0}h1,h2{font-family:var(--display);letter-spacing:.01em;text-wrap:balance;font-weight:500;line-height:1.15}h3,h4{font-family:var(--body);letter-spacing:0;text-wrap:balance;font-weight:700;line-height:1.2}a{color:var(--accent);transition:color var(--dur-1) var(--ease);text-decoration:none}a:hover{text-underline-offset:3px;text-decoration:underline}button{cursor:pointer;font:inherit}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--shell);outline-offset:2px}.muted{color:var(--muted)}.pass{color:var(--pass)}.fail{color:var(--fail)}pre{border:1px solid var(--border);white-space:pre-wrap;word-break:break-word;background:#0b0e13;border-radius:6px;padding:.75rem;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:13px;overflow:auto}
.site-header{z-index:60;border-bottom:var(--border-w) solid var(--border);background:var(--surface-glass);-webkit-backdrop-filter:blur(14px)saturate(1.4);backdrop-filter:blur(14px)saturate(1.4);justify-content:space-between;align-items:center;padding:.6rem 1.25rem;display:flex;position:sticky;top:0}.site-header .brand{font-family:var(--display);letter-spacing:.01em;color:var(--text);align-items:center;gap:.55rem;font-size:1.12rem;font-weight:600;display:inline-flex}.site-header .brand:hover{text-decoration:none}.brand-mark{flex-shrink:0;display:block}.brand-mark .gm-cursor{animation:1.6s steps(2,jump-none) infinite gm-blink}@keyframes gm-blink{50%{opacity:0}}.brand-intro{display:contents}.brand-anim .brand-mark{--brandw:6em;z-index:1;animation:1s both brand-intro;position:relative}.brand-anim .brand-word{animation:brand-wipe .42s .58s var(--ease-spring) both}@keyframes brand-intro{0%{transform:translate(var(--brandw), -54px);opacity:0;animation-timing-function:cubic-bezier(.55,0,1,.45)}35%{transform:translate(var(--brandw), 0);opacity:1;animation-timing-function:cubic-bezier(0,.6,.6,1)}47%{transform:translate(var(--brandw), -7px);animation-timing-function:cubic-bezier(.4,0,.7,1)}58%{transform:translate(var(--brandw), 0);animation-timing-function:var(--ease-spring)}to{transform:translate(0)}}@keyframes brand-wipe{0%{clip-path:inset(0 0 0 100%)}to{clip-path:inset(0)}}@media (prefers-reduced-motion:reduce){.brand-anim .brand-mark,.brand-anim .brand-word{animation:none}}.site-nav{align-items:center;gap:1.25rem;display:flex}.nav-toggle{border:1px solid var(--border);border-radius:var(--radius-s);background:0 0;flex-direction:column;justify-content:center;gap:5px;width:44px;height:44px;padding:10px;display:none}.nav-toggle span{background:var(--text);height:2px;transition:transform var(--dur-2) var(--ease), opacity var(--dur-1) var(--ease);border-radius:1px;display:block}.nav-toggle[aria-expanded=true] span:first-child{transform:translateY(7px)rotate(45deg)}.nav-toggle[aria-expanded=true] span:nth-child(2){opacity:0}.nav-toggle[aria-expanded=true] span:nth-child(3){transform:translateY(-7px)rotate(-45deg)}@media (max-width:1023px){.nav-toggle{display:flex}.site-nav{background:var(--surface-glass);-webkit-backdrop-filter:blur(18px)saturate(1.4);backdrop-filter:blur(18px)saturate(1.4);border-bottom:1px solid var(--border);box-shadow:var(--shadow-3);flex-direction:column;align-items:stretch;gap:0;max-height:calc(100dvh - 56px);padding:.5rem 1rem 1rem;display:none;position:absolute;top:100%;left:0;right:0;overflow-y:auto}.site-nav.open{display:flex}.site-nav>a{border-bottom:1px solid var(--border);padding:.8rem .5rem;font-size:1.02rem}.site-nav .sound-toggle{align-self:flex-start;margin:.8rem 0 0}.site-nav .auth{flex-wrap:wrap;padding-top:.8rem}.site-nav .user-menu{flex-wrap:wrap;width:100%}.site-nav .user-menu-toggle{text-align:left;flex:1;padding:.8rem .5rem}.site-nav .user-menu-list{width:100%;box-shadow:none;border:none;border-left:2px solid var(--border);border-radius:0;padding-left:.75rem;position:static}}.site-header .auth{align-items:center;gap:.75rem;display:inline-flex}.user-menu{--avatar-size:40px;align-items:center;gap:.45rem;display:inline-flex;position:relative}.site-header .user-menu-toggle{color:var(--muted);background:0 0;border:1px solid #0000;align-items:center;gap:.45rem;padding:.35rem .5rem;font-weight:600;display:inline-flex}.user-menu>.avatar,.user-menu>.frame-fx .avatar{width:var(--avatar-size);height:var(--avatar-size);color:var(--text);background:var(--panel-2);border:2px solid var(--frame,var(--border));border-radius:50%;justify-content:center;align-items:center;font-size:.8rem;font-weight:700;display:inline-flex;overflow:hidden;box-shadow:0 0 0 1px #00000059}.user-menu>.avatar img,.user-menu>.frame-fx .avatar img{object-fit:cover;width:100%;height:100%}.site-header .user-menu-toggle:hover{color:var(--text);filter:none;box-shadow:none;transform:none}.user-menu-list{background:var(--surface-glass);-webkit-backdrop-filter:blur(14px)saturate(1.4);backdrop-filter:blur(14px)saturate(1.4);border:1px solid var(--border);border-radius:var(--radius-s);min-width:170px;box-shadow:var(--shadow-3);z-index:70;flex-direction:column;padding:.35rem;display:flex;position:absolute;top:calc(100% + 8px);right:0}.site-header .user-menu-list a,.site-header .user-menu-list button{color:var(--text);text-align:left;border-radius:var(--radius-s);background:0 0;border:none;padding:.55rem .7rem;font-weight:500}.site-header .user-menu-list a:hover,.site-header .user-menu-list button:hover{background:var(--panel);color:var(--shell);filter:none;box-shadow:none;text-decoration:none;transform:none}.site-header nav a{color:var(--text);transition:color var(--dur-1) var(--ease)}.site-header nav a:hover{color:var(--shell);text-decoration:none}.site-header .cta,.site-header button{font-family:var(--display);background:var(--grad-candy);color:var(--ink);border:2px solid var(--plastic-edge);border-radius:var(--radius-pill);box-shadow:0 3px 0 var(--plastic-edge), var(--gloss);transition:filter var(--dur-1) var(--ease), transform var(--dur-1) var(--ease-spring), box-shadow var(--dur-1) var(--ease);padding:.3rem .9rem;font-weight:600}.site-header .cta:hover,.site-header button:hover{filter:brightness(1.05);transform:scale(1.05)}.site-header .cta:active,.site-header button:active{box-shadow:0 0 0 var(--plastic-edge), var(--gloss);transform:translateY(3px)}.site-header .nav-toggle,.site-header .nav-toggle:hover,.site-header .nav-toggle:active{border:1px solid var(--border);border-radius:var(--radius-s);box-shadow:none;filter:none;background:0 0;transform:none}.site-header .cta:hover{text-decoration:none}
.player{min-height:calc(100vh - 56px);transition:grid-template-columns var(--dur-2) var(--ease);grid-template-columns:280px 1fr;gap:0;display:grid}.player.nav-collapsed{grid-template-columns:46px 1fr}.lesson-nav{border-right:1px solid var(--border);background:var(--panel);padding:1rem;overflow:hidden auto}.player.nav-collapsed .lesson-nav{padding:.75rem .5rem}.nav-collapse{border:1px solid var(--border);border-radius:var(--radius-s);width:30px;height:30px;color:var(--muted);transition:border-color var(--dur-1) var(--ease), color var(--dur-1) var(--ease), background var(--dur-1) var(--ease);background:0 0;justify-content:center;align-items:center;margin:0 0 .6rem auto;font-size:.85rem;line-height:1;display:flex}.nav-collapse:hover{border-color:var(--shell);color:var(--text);background:var(--panel-2)}.player.nav-collapsed .nav-collapse{margin-left:auto;margin-right:auto}.lesson-nav-content{opacity:1;visibility:visible;width:248px;transition:opacity var(--dur-1) var(--ease)}.player.nav-collapsed .lesson-nav-content{opacity:0;visibility:hidden;transition:opacity var(--dur-1) var(--ease), visibility 0s linear var(--dur-1)}.lesson-nav h2{margin:0 0 .75rem;font-size:1rem}.lesson-nav .chapter h3{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:1rem 0 .4rem;font-size:.8rem}.lesson-nav .chapter-toggle{width:100%;font:inherit;text-transform:inherit;letter-spacing:inherit;color:inherit;cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:.4rem;padding:0;display:flex}.lesson-nav .chapter-toggle:hover{color:var(--text)}.lesson-nav .chapter-caret{transition:transform var(--dur-1) var(--ease);display:inline-block}.lesson-nav .chapter-caret.closed{transform:rotate(-90deg)}.lesson-nav .chapter-title{flex:1;min-width:0}.lesson-nav .chapter-count{font-family:var(--mono);white-space:nowrap;align-items:center;gap:.25rem;font-size:.7rem;display:inline-flex}.lesson-nav .chapter-count .check{color:var(--shell)}.lesson-nav ul{margin:0;padding:0;list-style:none}.lesson-nav li button{text-align:left;width:100%;color:var(--text);border-radius:var(--radius-s);transition:background var(--dur-1) var(--ease), border-color var(--dur-1) var(--ease), transform var(--dur-1) var(--ease);background:0 0;border:1px solid #0000;justify-content:space-between;align-items:center;gap:.5rem;padding:.45rem .55rem;display:flex}.lesson-nav li button:hover{background:var(--panel-2);transform:translate(2px)}.lesson-nav li button.active{background:var(--panel-2);border-color:var(--border);border-left:3px solid var(--shell)}.lesson-nav .xp{color:var(--xp);font-size:.75rem}.lesson-main{max-width:920px;padding:1.5rem 2rem;overflow-y:auto}.lesson-main header{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.gotchi-launcher{background:var(--panel-2);color:var(--text);border:1px solid var(--border);white-space:nowrap;transition:border-color var(--dur-1) var(--ease), box-shadow var(--dur-1) var(--ease), transform var(--dur-1) var(--ease);border-radius:999px;align-items:center;gap:.4rem;margin-left:auto;padding:.35rem .9rem;font-size:.85rem;font-weight:600;display:inline-flex;position:relative}.gotchi-launcher:hover{border-color:var(--shell);box-shadow:0 0 18px -4px var(--shell-glow);transform:translateY(-1px)}.gotchi-launcher:active{transform:translateY(0)scale(.98)}.gotchi-launcher.has-hint{border-color:var(--shell);animation:2.8s ease-in-out infinite hint-pulse}.gotchi-launcher .hint-dot{background:var(--shell);width:8px;height:8px;box-shadow:0 0 8px var(--shell);border-radius:50%}@keyframes hint-pulse{0%,to{box-shadow:0 0 0 -4px #57d9a300}50%{box-shadow:0 0 20px -2px var(--shell-glow)}}.lesson-main h1{margin:0;font-size:1.6rem}.tag{background:var(--panel-2);border:var(--border-w) solid var(--border);color:var(--muted);border-radius:var(--radius-s);box-shadow:var(--shadow-press-sm);padding:.15rem .6rem;font-size:.75rem}.markdown{line-height:1.6}.markdown h2,.markdown h3,.markdown h4{font-family:var(--body);letter-spacing:0;font-weight:700}.markdown code{background:var(--panel-2);border-radius:4px;padding:.1rem .35rem;font-family:ui-monospace,monospace;font-size:.9em}.code-example{border-left:3px solid var(--accent)}.code-fence{border-left:3px solid var(--border)}.tok-comment{color:var(--muted);font-style:italic}.tok-string{color:var(--shell)}.tok-keyword{color:var(--accent)}.tok-number{color:var(--xp)}.jargon{display:inline-block;position:relative}.jargon-term{font:inherit;color:inherit;cursor:help;-webkit-text-decoration:underline dotted var(--shell);text-decoration:underline dotted var(--shell);text-underline-offset:3px;background:0 0;border:none;margin:0;padding:0;text-decoration-thickness:2px}.jargon-term:focus-visible{box-shadow:var(--ring);border-radius:3px;outline:none}.jargon-tip{z-index:80;background:var(--panel-2);border:var(--border-w) solid var(--border);border-radius:var(--radius-m);width:max-content;max-width:34ch;box-shadow:var(--shadow-sticker);font-size:var(--text-sm);font-family:var(--body);color:var(--text);text-align:left;padding:.6rem .75rem;font-style:normal;font-weight:400;line-height:1.5;position:fixed}.jargon-tip strong{color:var(--shell)}.jargon-tip a{color:var(--accent);white-space:nowrap}.format-tip{border-left-color:var(--shell)}.format-tip h3{color:var(--shell);margin:0 0 .4rem}.format-tip ul{margin:.25rem 0 .6rem;padding-left:1.2rem}.format-tip li{margin:.25rem 0}.format-tip .got-it{margin-top:.25rem}.glossary-page dl{margin:0}.glossary-letter{font-family:var(--display);color:var(--shell);border-bottom:1px solid var(--border);margin:1.5rem 0 .75rem;padding-bottom:.25rem}.glossary-entry{padding:.5rem 0;scroll-margin-top:80px}.glossary-entry:target dt{color:var(--shell)}.glossary-entry dt{font-weight:700}.glossary-entry dd{color:var(--muted);margin:.2rem 0 0}.workspace{margin-top:1rem}.editor{border:1px solid var(--border);border-radius:8px;height:320px;overflow:hidden}.actions{margin:.75rem 0}.submit{background:var(--pass);color:#06120a;border:var(--border-w) solid #2c8c3c;border-radius:var(--radius-s);transition:filter var(--dur-1) var(--ease), transform var(--dur-1) var(--ease-spring), box-shadow var(--dur-1) var(--ease);padding:.5rem 1.1rem;font-weight:700;box-shadow:0 3px #256f31}.submit:hover:not(:disabled){filter:brightness(1.08);transform:translateY(-1px);box-shadow:0 4px #256f31}.submit:active:not(:disabled){transform:translateY(3px);box-shadow:0 0 #256f31}.submit:disabled{opacity:.6;cursor:not-allowed}.choice-picker{flex-direction:column;gap:.5rem;margin:.75rem 0;display:flex}.choice-picker .choice{border:1px solid var(--border);background:var(--panel-2);cursor:pointer;transition:border-color var(--dur-1) var(--ease), transform var(--dur-1) var(--ease), box-shadow var(--dur-1) var(--ease);border-radius:8px;align-items:baseline;gap:.6rem;padding:.65rem .9rem;display:flex}.choice-picker .choice:hover{border-color:var(--accent);box-shadow:var(--shadow-1);transform:translateY(-1px)}.choice-picker .choice.selected{border-color:var(--accent);border-left-width:3px}.choice-picker input[type=radio]{accent-color:var(--accent)}.actions .peek{color:var(--xp);border:var(--border-w) solid var(--xp);border-radius:var(--radius-s);box-shadow:var(--shadow-press-sm);transition:background var(--dur-1) var(--ease), box-shadow var(--dur-1) var(--ease), transform var(--dur-1) var(--ease-spring);background:0 0;margin-left:.6rem;padding:.5rem 1.1rem;font-weight:600}.actions .peek:hover:not(:disabled){box-shadow:var(--shadow-press);background:#d299221f;transform:translateY(-1px)}.actions .peek:active:not(:disabled){transform:translateY(2px);box-shadow:0 0 #0000008c}.actions .peek:disabled{opacity:.6;cursor:not-allowed}.gate-notice{border:1px solid var(--border);border-left:3px solid var(--xp);background:var(--panel-2);border-radius:6px;margin:.75rem 0;padding:.9rem 1rem}.gate-notice p{margin:.25rem 0}.gate-notice a{color:var(--accent)}.solution-panel{margin:.75rem 0}.solution-panel h3{color:var(--xp);margin:0 0 .4rem}.lesson-nav-bar{border-top:1px solid var(--border);justify-content:space-between;align-items:center;margin-top:2rem;padding-top:1rem;display:flex}.lesson-nav-bar .nav-prev{background:var(--panel-2);color:var(--text);border:var(--border-w) solid var(--border);border-radius:var(--radius-s);box-shadow:var(--shadow-press-sm);transition:border-color var(--dur-1) var(--ease), color var(--dur-1) var(--ease), transform var(--dur-1) var(--ease-spring), box-shadow var(--dur-1) var(--ease);padding:.5rem 1.1rem;font-weight:600}.lesson-nav-bar .nav-prev:hover{border-color:var(--accent);color:var(--accent);transform:translate(-2px)}.lesson-nav-bar .nav-prev:active{transform:translateY(2px);box-shadow:0 0 #0000008c}.lesson-nav-bar .nav-next{background:var(--pass);color:#06120a;border:var(--border-w) solid #2c8c3c;border-radius:var(--radius-s);transition:filter var(--dur-1) var(--ease), transform var(--dur-1) var(--ease-spring), box-shadow var(--dur-1) var(--ease);padding:.5rem 1.1rem;font-weight:700;box-shadow:0 3px #256f31}.lesson-nav-bar .nav-next:hover{filter:brightness(1.08);transform:translate(2px);box-shadow:0 4px #256f31}.lesson-nav-bar .nav-next:active{transform:translateY(3px);box-shadow:0 0 #256f31}.demo{text-align:center;max-width:720px;margin:3rem auto;padding:0 1.25rem}.demo .lede{color:var(--muted);font-size:1.1rem}.demo-cta{flex-wrap:wrap;justify-content:center;gap:.8rem;margin-top:1.5rem;display:flex}.unlock-tiles{border-bottom:1px solid var(--border);background:var(--panel);flex-wrap:wrap;align-items:stretch;gap:.5rem;padding:.6rem 1rem;display:flex}.unlock-tile{--text:var(--paper-ink);--muted:var(--paper-ink-muted);border:var(--border-w) solid var(--border);border-radius:var(--radius-m);background:var(--paper), var(--paper-bg);min-width:200px;max-width:260px;box-shadow:var(--shadow-press-sm);flex:200px;align-items:center;gap:.55rem;padding:.5rem .65rem;display:flex}.unlock-emoji{font-size:1.4rem;line-height:1}.unlock-body{flex-direction:column;flex:1;gap:.25rem;min-width:0;display:flex}.unlock-head{justify-content:space-between;align-items:baseline;gap:.5rem;display:flex}.unlock-name{font-family:var(--display);color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-size:.8rem;overflow:hidden}.unlock-count{font-family:var(--font-mono,monospace);color:var(--muted);font-variant-numeric:tabular-nums;font-size:.7rem}.unlock-bar{background:var(--panel);border:1px solid var(--border);border-radius:999px;height:8px;overflow:hidden}.unlock-fill{background:linear-gradient(90deg, var(--shell), var(--shell-2));border-radius:inherit;height:100%;transition:width var(--dur-2) var(--ease)}.unlock-criteria{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:.68rem;overflow:hidden}.unlock-more{color:var(--muted);cursor:pointer;background:0 0;border:none;align-self:center;padding:.25rem .5rem;font-size:.75rem}.unlock-more:hover{color:var(--text);text-decoration:underline}
.catalog,.path{max-width:960px;margin:2rem auto;padding:0 1.25rem}.catalog .lede,.path .lede{color:var(--muted);font-size:1.1rem}.catalog-filters{flex-wrap:wrap;gap:1.25rem;margin:1.25rem 0;display:flex}.catalog-filters select{background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:6px;margin-left:.3rem;padding:.35rem .5rem}.catalog-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem;display:grid}.paths-grid{grid-template-columns:repeat(2,1fr)}@media (max-width:560px){.paths-grid{grid-template-columns:1fr}}.course-card{border:var(--border-w) solid var(--border);border-radius:var(--radius-l);background:var(--panel);color:var(--text);box-shadow:var(--shadow-sticker);transition:border-color var(--dur-1) var(--ease), transform var(--dur-1) var(--ease-spring), box-shadow var(--dur-1) var(--ease);padding:1.1rem;text-decoration:none;display:block}.course-card:hover{border-color:var(--shell);text-decoration:none;transform:translateY(-2px)rotate(-1.5deg);box-shadow:0 6px #0006}.course-card h3{margin:0 0 .4rem}.course-lang-logo{vertical-align:middle;background:#06140dd9;border-radius:4px;width:24px;height:24px;margin-right:6px;padding:2px}.course-progress-row{align-items:center;gap:.6rem;margin-top:.75rem;display:flex}.course-progress{background:var(--panel-2);border:1px solid var(--border);border-radius:999px;flex:1;height:6px;overflow:hidden}.course-progress-fill{background:linear-gradient(90deg, var(--shell-2), var(--shell));height:100%;box-shadow:0 0 8px var(--shell-glow);transition:width var(--dur-2) var(--ease);border-radius:999px}.course-progress-count{font-family:var(--mono);color:var(--muted);white-space:nowrap;font-size:.75rem}.course-progress-done{font-family:var(--mono);color:var(--shell);white-space:nowrap;font-size:.75rem}.continue-band{border:1px solid var(--border);border-radius:var(--radius-l);background:radial-gradient(24rem 10rem at 0% 0%, var(--shell-glow), transparent 70%), var(--panel);color:var(--text);box-shadow:var(--edge-light);transition:border-color var(--dur-1) var(--ease), transform var(--dur-1) var(--ease), box-shadow var(--dur-1) var(--ease);justify-content:space-between;align-items:center;gap:1.5rem;margin:1.25rem 0;padding:1.1rem 1.4rem;text-decoration:none;display:flex}.continue-band:hover{border-color:var(--shell);box-shadow:var(--edge-light), var(--shadow-2), 0 0 24px -8px var(--shell-glow);text-decoration:none;transform:translateY(-2px)}.continue-band .cb-main{flex:1;min-width:0}.continue-band .cb-eyebrow{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--shell);font-size:.72rem}.continue-band h3{margin:.25rem 0 .6rem}.continue-band .cb-count{font-family:var(--mono);color:var(--muted);margin-top:.4rem;font-size:.78rem;display:block}.continue-band .cb-resume{white-space:nowrap}.course-meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:.75rem;margin-top:.6rem;font-size:.85rem;display:flex}.variant-selector{flex-wrap:wrap;align-items:center;gap:.5rem;margin:1rem 0;display:flex}.variant-selector .variant{border:1px solid var(--border);color:var(--muted);border-radius:999px;padding:.3rem .7rem;font-size:.85rem;text-decoration:none}.variant-selector .variant.active{border-color:var(--accent);color:var(--text);background:var(--panel-2)}.path-courses{counter-reset:pc;margin:1.25rem 0;padding:0;list-style:none}.path-course{counter-increment:pc;border:1px solid var(--border);border-radius:var(--radius-m);background:var(--panel);transition:border-color var(--dur-1) var(--ease), box-shadow var(--dur-1) var(--ease);justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.8rem;padding:1.1rem;display:flex}.path-course:hover{border-color:var(--shell);box-shadow:var(--shadow-1)}.path-course .pc-main{flex:1}.path-course .pc-main h3:before{content:counter(pc) ". ";color:var(--accent)}
.home{background:radial-gradient(60rem 40rem at 80% -10%, var(--shell-glow), transparent 60%), radial-gradient(50rem 36rem at -10% 20%, #d299221a, transparent 55%), radial-gradient(70rem 50rem at 50% 115%, #57d9a312, transparent 60%);position:relative;overflow:clip}.home:before{content:"";pointer-events:none;z-index:0;background-image:radial-gradient(#ffffff09 1px,#0000 1px),radial-gradient(120% 90% at 50% 40%,#0000 62%,#0000004d 100%);background-size:22px 22px,100% 100%;position:absolute;inset:0}.home>*{z-index:1;position:relative}.home section{max-width:1080px;margin:0 auto;padding:4.5rem 1.5rem}.hero{grid-template-columns:1.1fr .9fr;align-items:center;gap:2.5rem;display:grid;padding-top:5rem!important}.hero-eyebrow{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--shell);border:var(--border-w) solid var(--border);border-radius:var(--radius-s);background:var(--panel-2);box-shadow:var(--shadow-press-sm);align-items:center;gap:.5rem;padding:.35rem .8rem;font-size:.78rem;display:inline-flex;transform:rotate(-1deg)}.hero h1{font-family:var(--display);letter-spacing:.01em;margin:1.1rem 0 .5rem;font-size:clamp(2.4rem,5vw,3.3rem);line-height:1.08}.hero h1 .accent{background:linear-gradient(120deg, #7ceebc, var(--shell) 45%, #e3b341 135%);color:#0000;-webkit-background-clip:text;background-clip:text}.hero .sub{color:var(--muted);max-width:34ch;font-size:1.15rem}.hero-cta{flex-wrap:wrap;align-items:center;gap:1rem;margin:1.8rem 0 1.5rem;display:flex}.hero-links{gap:.25rem;display:flex}.hero-device{justify-items:center;gap:.6rem;display:grid}.hero-device-hint{font-family:var(--mono);color:var(--muted);margin:0;font-size:.8rem;transform:rotate(-1.5deg)}@media (max-width:760px){.hero{grid-template-columns:1fr;gap:2rem}}.reveal{opacity:0;animation:rise var(--dur-3) var(--ease-spring) forwards;transform:translateY(16px)scale(.98)}.reveal.d1{animation-delay:50ms}.reveal.d2{animation-delay:.15s}.reveal.d3{animation-delay:.25s}.reveal.d4{animation-delay:.35s}@keyframes rise{to{opacity:1;transform:none}}.block{border-radius:var(--radius-l);border:var(--border-w) solid;margin:2.5rem auto!important;padding:3rem 2rem!important}.block-mint{background:var(--tint-mint);border-color:var(--tint-mint-border)}.block-coral{background:var(--tint-coral);border-color:var(--tint-coral-border)}.block-gold{background:var(--tint-gold);border-color:var(--tint-gold-border)}.sticker-chip{font-family:var(--display);color:var(--ink);background:var(--grad-candy);border:2px solid var(--plastic-edge);border-radius:var(--radius-s);box-shadow:var(--shadow-sticker), var(--gloss);margin-bottom:.5rem;padding:.35rem 1rem;font-size:clamp(1.15rem,2.4vw,1.5rem);display:inline-block;transform:rotate(-2deg)}.block-coral .sticker-chip{background:linear-gradient(180deg, #ffb494, var(--coral) 60%, #e5764f);border-color:#b8532e;transform:rotate(1.5deg)}.block-gold .sticker-chip{background:var(--grad-gold);border-color:#9a6d16;transform:rotate(-1.5deg)}.pixel-steps{opacity:.45;max-width:420px;height:16px;color:var(--shell);background:repeating-linear-gradient(90deg,currentColor 0 16px,#0000 16px 32px) top/100% 8px no-repeat,repeating-linear-gradient(90deg,#0000 0 16px,currentColor 16px 32px) bottom/100% 8px no-repeat;margin:0 auto}.pixel-steps.coral{color:var(--coral)}.pixel-steps.gold{color:var(--xp)}.home h2{font-family:var(--display);letter-spacing:.01em;margin:0 0 .4rem;font-size:clamp(1.5rem,3vw,2rem)}.section-head{text-align:center;margin-bottom:2.25rem}.section-head p{color:var(--muted);margin:.6rem 0 0}.value-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.25rem;display:grid}.value-card{border:var(--border-w) solid var(--border);border-radius:var(--radius-l);background:var(--panel);box-shadow:var(--shadow-sticker);transition:transform var(--dur-1) var(--ease-spring), border-color var(--dur-1) var(--ease), box-shadow var(--dur-1) var(--ease);padding:1.4rem}.value-card:nth-child(odd){transform:rotate(-1.2deg)}.value-card:nth-child(2n){transform:rotate(1deg)}.value-card:hover{transform:rotate(0)translateY(-3px);box-shadow:0 6px #0006}.value-card.t-mint{background-color:var(--paper-mint);border-color:var(--tint-mint-border)}.value-card.t-coral{background-color:var(--paper-coral);border-color:var(--tint-coral-border)}.value-card.t-gold{background-color:var(--paper-gold);border-color:var(--tint-gold-border)}.value-card.t-violet{background-color:var(--paper-violet);border-color:var(--tint-violet-border)}.value-card .ic{width:48px;height:48px;color:var(--ink);background:var(--grad-candy);border:2px solid var(--plastic-edge);box-shadow:var(--shadow-press-sm), var(--gloss);border-radius:12px;place-items:center;display:grid}.value-card.t-coral .ic{background:linear-gradient(180deg, #ffb494, var(--coral) 60%, #e5764f);border-color:#b8532e}.value-card.t-gold .ic{background:var(--grad-gold);border-color:#9a6d16}.value-card.t-violet .ic{background:linear-gradient(#cdb2ff,#b48bff 60%,#8f5ff0);border-color:#6a3fd0}.value-card .ic svg{display:block}.value-card h3{margin:.7rem 0 .35rem;font-size:1.05rem}.value-card p{color:var(--muted);margin:0;font-size:.95rem}.evo-path{flex-wrap:wrap;justify-content:center;align-items:flex-end;gap:clamp(.2rem,1.5vw,.9rem);margin-bottom:2.5rem;display:flex}.evo-step{justify-items:center;gap:.15rem;display:grid}.evo-step .evo-sprite{justify-items:center;display:grid;position:relative}.evo-path .evo-step .gotchi{margin-top:0}.evo-path .evo-step .gotchi .gotchi-svg{width:clamp(64px,9vw,92px)}.evo-path .evo-final .gotchi .gotchi-svg{width:clamp(76px,11vw,112px)}.evo-step .nm{color:var(--text);font-size:.82rem;font-weight:700}.evo-step .xp{color:var(--muted);font-size:.72rem}.evo-final .xp{color:#f0c674}.evo-arrow{width:20px;height:20px;color:var(--muted);flex:none;align-self:center;margin-bottom:2.2rem}.shelf-row{border-bottom:5px solid var(--tint-gold-border);flex-wrap:wrap;justify-content:space-around;align-items:flex-end;gap:.75rem;margin-bottom:2.25rem;padding-bottom:8px;display:flex}.shelf-row:last-child{margin-bottom:0}.stage{justify-items:center;gap:.4rem;width:96px;display:grid}.stage .orb{background:var(--panel-2);border:3px solid var(--c,var(--border));width:44px;height:44px;box-shadow:0 0 14px -2px var(--c,transparent);border-radius:50%;display:block}.stage .nm{color:var(--text);font-size:.82rem;font-weight:700}.stage .xp{color:var(--muted);font-size:.72rem}.stage .frame-fx{--avatar-size:44px}.pet-wardrobe{width:100%;max-width:680px;margin:2rem 0}.pet-wardrobe h2{margin-bottom:.75rem}.item-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.item-card{background:var(--panel,#ffffff0a);border:1px solid var(--border,#ffffff1f);border-left-width:4px;border-radius:12px;flex-direction:column;gap:.4rem;padding:.85rem;display:flex}.item-card.equipped{box-shadow:0 0 0 2px var(--shell,#57d9a3) inset}.item-name{font-weight:600}.item-qty{color:var(--muted);font-size:.85em;font-weight:500}.item-meta{text-transform:capitalize;opacity:.7;font-size:.78rem}.item-desc{opacity:.85;flex:1;margin:0;font-size:.84rem}.item-card .btn{align-self:flex-start}.item-card.rarity-common{border-left-color:#9aa3b2}.item-card.rarity-rare{border-left-color:#4f86f7}.item-card.rarity-epic{border-left-color:#b48bff}.item-card.rarity-legendary{border-left-color:#f4b400}.timeline{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem;display:grid}.tl-item{border-left:3px solid var(--tint-mint-border);padding:.4rem 0 .4rem 1rem;position:relative}.tl-month{font-family:var(--mono);color:var(--shell);font-size:.75rem}.item-icon{vertical-align:-.35em;display:inline-block}.item-icon-emoji{vertical-align:baseline;line-height:1}.wardrobe-section{margin:1.25rem 0}.wardrobe-section h3{opacity:.85;margin:0 0 .5rem;font-size:.95rem}.charm-preview{align-items:center;gap:.9rem;max-width:360px;margin-bottom:.75rem;display:flex}.charm-preview p{margin:0}.charm-loop{flex:none;width:56px;height:96px;position:relative}.charm-loop-ring{border:6px solid var(--plastic-lo);width:30px;height:30px;box-shadow:0 2px 0 var(--plastic-edge);border-radius:50%;margin-left:-15px;position:absolute;top:0;left:50%}.shell-picker .shell-swatches{flex-wrap:wrap;align-items:center;gap:.6rem;margin:.25rem 0 .4rem;display:flex}.shell-picker .shell-swatch{border:2px solid var(--plastic-edge);background:radial-gradient(circle at 32% 28%, #ffffffa6 0 12%, #fff0 42%), linear-gradient(160deg, var(--plastic-hi) 0%, var(--plastic) 45%, var(--plastic-lo) 100%);width:34px;height:34px;box-shadow:0 2px 0 var(--plastic-edge);cursor:pointer;transition:transform var(--dur-1) var(--ease-spring), box-shadow var(--dur-1) var(--ease);border-radius:50%;padding:0}.shell-picker .shell-swatch:hover:not(:disabled){transform:translateY(-2px)}.shell-picker .shell-swatch:disabled{opacity:.5;cursor:default}.shell-picker .shell-swatch.on{box-shadow:0 2px 0 var(--plastic-edge), 0 0 0 3px var(--bg,#0e1116), 0 0 0 5px var(--shell,#57d9a3)}.shell-picker p{margin:0;font-size:.84rem}.charm-loop .gdevice-charm{width:30px;margin-left:-15px;top:24px;left:50%;right:auto}.tl-item h4{margin:.2rem 0;font-size:1rem}.tl-item p{color:var(--muted);margin:0;font-size:.88rem}.cta-band{text-align:center;border:var(--border-w-lg) solid #9a6d16;box-shadow:var(--shadow-sticker), var(--gloss);border-radius:var(--radius-l);background:radial-gradient(30rem 14rem at 50% 0%, #e3b3412e, transparent 70%), linear-gradient(var(--tint-gold), var(--tint-gold)), var(--panel);max-width:900px;transform:rotate(-1deg);margin:3rem auto 4.5rem!important}.cta-band p{color:var(--muted);max-width:46ch;margin:.5rem auto 1.5rem}.noscript-banner{background:var(--xp);color:var(--ink);text-align:center;padding:.6rem 1rem;font-weight:600}.sound-toggle{color:var(--muted);border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:8px;align-items:center;padding:.35rem .5rem;line-height:1;display:inline-flex}.sound-toggle svg{width:18px;height:18px;display:block}.sound-toggle:hover{border-color:var(--shell);color:var(--shell)}
.page{max-width:760px;margin:3rem auto 4.5rem;padding:0 1.5rem}.page h1{font-family:var(--display);letter-spacing:-.02em;font-size:clamp(1.8rem,3.5vw,2.4rem)}.page h2{font-family:var(--display);margin-top:2rem}.page p,.page li{color:var(--text);line-height:1.65}.page .muted{color:var(--muted)}@media (max-width:760px){.hero{grid-template-columns:1fr}.hero-device{order:-1}}@media (prefers-reduced-motion:reduce){.reveal{opacity:1;animation:none;transform:none}.player,.lesson-nav-content,.lesson-nav li button,.gotchi-launcher,.btn,.submit,.actions .peek,.choice-picker .choice,.lesson-nav-bar .nav-prev,.lesson-nav-bar .nav-next,.site-header .cta,.site-header button,.course-card,.value-card,.tg-card,.arcade-card{transition:none}.gotchi-launcher.has-hint,.gotchi-panel,.toast{animation:none}.btn:hover,.submit:hover:not(:disabled),.choice-picker .choice:hover,.gotchi-launcher:hover,.course-card:hover,.value-card:hover,.tg-card:hover,.arcade-card:not(.locked):hover,.toy-tile.tt-link:hover,a.card:hover,.card.hoverable:hover,.lesson-nav li button:hover,.lesson-nav-bar .nav-prev:hover,.lesson-nav-bar .nav-next:hover,.site-header .cta:hover,.site-header button:hover{transform:none}}.results .banner{font-size:1.05rem;font-weight:700}.results .tests{margin:.5rem 0;padding:0;list-style:none}.results .tests li{margin:.4rem 0}.test-name{font-family:ui-monospace,monospace;font-size:.85rem}.test-msg{margin-top:.35rem}.auth-page{background:radial-gradient(50rem 30rem at 50% -10%, var(--shell-glow), transparent 60%), radial-gradient(40rem 28rem at 85% 90%, #d2992212, transparent 55%);justify-content:center;min-height:calc(100vh - 240px);padding:4rem 1rem;display:flex}.auth-form{background:var(--grad-panel);border:1px solid var(--border);border-radius:var(--radius-l);width:100%;max-width:380px;box-shadow:var(--edge-light), var(--shadow-2);flex-direction:column;align-self:flex-start;gap:.85rem;padding:1.75rem;display:flex}.auth-brand{justify-content:center;margin-bottom:.25rem;display:flex}.auth-form h1{text-align:center;margin:0 0 .5rem;font-size:1.5rem}.oauth-buttons{flex-direction:column;gap:.6rem;display:flex}.oauth-btn{text-align:center;border:1px solid var(--border)}.oauth-divider{color:var(--muted,#888);align-items:center;gap:.75rem;margin:.25rem 0;font-size:.8rem;display:flex}.oauth-divider:before,.oauth-divider:after{content:"";border-top:1px solid var(--border);flex:1}.auth-form label{color:var(--muted);flex-direction:column;gap:.3rem;font-size:.85rem;display:flex}.auth-form input{background:var(--bg);border:1px solid var(--border);color:var(--text);font:inherit;transition:border-color var(--dur-1) var(--ease), box-shadow var(--dur-1) var(--ease);border-radius:6px;padding:.55rem .65rem}.auth-form input:focus{border-color:var(--shell);box-shadow:0 0 0 3px var(--shell-glow);outline:none}.auth-form .name-check{min-height:1em;font-size:.8rem}.auth-form .pass-text{color:var(--pass)}.auth-form .demo-carryover{border:1px solid var(--border);border-left:3px solid var(--shell);border-radius:var(--radius-s);background:var(--panel-2);margin:0;padding:.6rem .75rem}.auth-form button[type=submit]{background:var(--grad-shell);color:var(--ink);border:var(--border-w) solid var(--plastic-edge);border-radius:var(--radius-s);box-shadow:0 3px 0 var(--plastic-edge), inset 0 1px 0 #ffffff59;transition:transform var(--dur-1) var(--ease-spring), box-shadow var(--dur-1) var(--ease), filter var(--dur-1) var(--ease);margin-top:.4rem;padding:.65rem;font-weight:700}.auth-form button[type=submit]:hover:not(:disabled){filter:brightness(1.05);box-shadow:0 4px 0 var(--plastic-edge), inset 0 1px 0 #ffffff59;transform:translateY(-1px)}.auth-form button[type=submit]:active:not(:disabled){box-shadow:0 0 0 var(--plastic-edge), inset 0 1px 0 #ffffff59;transform:translateY(3px)}.verify-banner{background:var(--grad-panel);border-bottom:1px solid var(--border);color:var(--text);flex-wrap:wrap;justify-content:center;align-items:center;gap:.75rem;padding:.5rem 2.5rem .5rem 1rem;font-size:.85rem;display:flex;position:relative}.verify-banner button{background:var(--grad-shell);color:var(--ink);border:var(--border-w) solid var(--plastic-edge);border-radius:var(--radius-s);font:inherit;cursor:pointer;box-shadow:0 2px 0 var(--plastic-edge);transition:transform var(--dur-1) var(--ease-spring), box-shadow var(--dur-1) var(--ease);padding:.3rem .7rem;font-weight:700}.verify-banner button:active:not(:disabled){box-shadow:0 0 0 var(--plastic-edge);transform:translateY(2px)}.verify-banner button:disabled{opacity:.6;cursor:default}.verify-banner-sent{font-weight:600}.verify-banner .verify-banner-close{color:var(--muted);box-shadow:none;background:0 0;border:none;padding:.1rem .45rem;font-size:1.1rem;position:absolute;top:50%;right:.5rem;transform:translateY(-50%)}.verify-banner .verify-banner-close:active{box-shadow:none;transform:translateY(-50%)}.contact-form{flex-direction:column;gap:.9rem;max-width:560px;margin-top:1rem;display:flex}.contact-form label{color:var(--muted);flex-direction:column;gap:.3rem;font-size:.85rem;display:flex}.contact-form input,.contact-form select,.contact-form textarea{background:var(--bg);border:1px solid var(--border);color:var(--text);font:inherit;transition:border-color var(--dur-1) var(--ease), box-shadow var(--dur-1) var(--ease);border-radius:6px;padding:.55rem .65rem}.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus{border-color:var(--shell);box-shadow:0 0 0 3px var(--shell-glow);outline:none}.contact-form button{align-self:flex-start}
.site-header .xp{color:var(--xp);font-size:.8rem;font-weight:700}.lesson-nav li button .title{align-items:center;gap:.35rem;min-width:0;display:inline-flex}.lesson-nav li button.done .title{color:var(--muted)}.lesson-nav li button .check{color:var(--pass);font-weight:700}.training,.playground{max-width:920px;margin:0 auto;padding:1.5rem 2rem}.training h1{margin:0 0 .25rem}.tg-controls{gap:.6rem;margin:1rem 0 1.25rem;display:flex}.tg-controls input[type=search]{background:var(--panel-2);border:1px solid var(--border);color:var(--text);border-radius:6px;flex:1;padding:.5rem .7rem}.tg-controls select{background:var(--panel-2);border:1px solid var(--border);color:var(--text);border-radius:6px;padding:.5rem .7rem}.tg-results{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.tg-card{background:var(--panel);border:var(--border-w) solid var(--border);border-radius:var(--radius-m);color:var(--text);box-shadow:var(--shadow-press-sm);transition:border-color var(--dur-1) var(--ease), transform var(--dur-1) var(--ease-spring), box-shadow var(--dur-1) var(--ease);justify-content:space-between;align-items:center;gap:1rem;padding:.7rem .9rem;text-decoration:none;display:flex}.tg-card:hover{border-color:var(--shell);box-shadow:var(--shadow-press);transform:translateY(-1px)rotate(-1deg)}.tg-title{font-weight:600}.tg-meta{align-items:center;gap:.75rem;font-size:.8rem;display:flex}.tg-meta .tg-course{color:var(--muted)}.diff{text-transform:capitalize;border:1px solid var(--border);border-radius:999px;padding:.1rem .5rem;font-size:.7rem}.diff-easy{color:var(--pass);border-color:var(--pass)}.diff-medium{color:var(--xp);border-color:var(--xp)}.diff-hard{color:var(--fail);border-color:var(--fail)}.replay{padding:0 0 1rem}.replay-back{margin:0;padding:1rem 2rem 0}.pg-header{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.pg-header h1{margin:0}.playground .workspace .editor{border:1px solid var(--border);border-radius:8px;height:360px;overflow:hidden}.pg-output{margin-top:1rem}.pg-output pre{background:var(--panel-2);border:1px solid var(--border);border-radius:6px;padding:.6rem .8rem;overflow-x:auto}
.site-footer{border-top:1px solid var(--border);background:linear-gradient(180deg, var(--panel), var(--bg));grid-template-columns:repeat(4,minmax(0,1fr));gap:1.75rem 1.5rem;margin-top:4rem;padding:2.5rem max(2rem,50% - 540px) 1.75rem;display:grid}.footer-group{flex-direction:column;align-items:flex-start;gap:.5rem;display:flex}.footer-group h4{font-family:var(--mono);text-transform:uppercase;letter-spacing:.12em;color:var(--shell);margin:0 0 .25rem;font-size:.72rem}.footer-group a{color:var(--muted);transition:color var(--dur-1) var(--ease);font-size:.88rem;text-decoration:none}.footer-group a:hover{color:var(--text)}.footer-copy{border-top:1px solid var(--border);color:var(--muted);grid-column:1/-1;margin:0;padding-top:1.25rem;font-size:.75rem}@media (max-width:900px){.site-footer{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:480px){.site-footer{grid-template-columns:1fr}}.leaderboard{max-width:920px;margin:0 auto;padding:1.5rem 2rem}.leaderboard h1{margin:0 0 1.25rem}.stats-dashboard{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.75rem;margin-bottom:2rem;display:grid}.stat-card{background:var(--panel);border:1px solid var(--border);border-radius:8px;flex-direction:column;gap:.25rem;padding:.9rem 1rem;display:flex}.stat-value{color:var(--accent);font-size:1.6rem;font-weight:700}.stat-label{text-transform:uppercase;letter-spacing:.03em;color:var(--muted);font-size:.75rem}.lb-table-wrap h2{margin:0 0 .25rem}.lb-table-wrap .window{margin:0 0 1rem;font-size:.8rem}.lb-table{border-collapse:collapse;width:100%}.lb-table th,.lb-table td{border-bottom:1px solid var(--border);text-align:left;padding:.6rem .5rem}.lb-table th{text-transform:uppercase;letter-spacing:.03em;color:var(--muted);font-size:.7rem}.lb-table .rank{text-align:center;width:2.5rem;color:var(--muted);font-variant-numeric:tabular-nums}.lb-table .xp{text-align:right;color:var(--xp);font-variant-numeric:tabular-nums;font-weight:700}.lb-table .learner{align-items:center;gap:.6rem;display:flex}.lb-table .learner .name{font-weight:600}.role-badge{--avatar-size:36px;align-items:center;gap:.4rem;display:inline-flex}.role-badge .avatar{width:var(--avatar-size,28px);height:var(--avatar-size,28px);color:var(--text);background:var(--panel-2);border:2px solid var(--frame,var(--border));border-radius:50%;justify-content:center;align-items:center;font-size:.8rem;font-weight:700;display:inline-flex;overflow:hidden;box-shadow:0 0 0 1px #00000059}.role-badge .avatar img{object-fit:cover;width:100%;height:100%}.role-badge .role-name{letter-spacing:.03em;text-transform:uppercase;color:var(--muted);font-size:.7rem}.frame-1{--frame:#6b7689}.frame-2{--frame:#8aa4c8}.frame-3{--frame:#6ea8fe}.frame-4{--frame:#4f86f7}.frame-5{--frame:#4ad6c4}.frame-6{--frame:#3fb950}.frame-7{--frame:#e3b341}.frame-8{--frame:#db6d28}.frame-9{--frame:#a371f7}.frame-10{--frame:#f0c674}.frame-fx{--fx-orbit:calc(var(--avatar-size,28px) * .68);--fx-inset:calc(var(--avatar-size,28px) * -.11);border-radius:50%;place-items:center;animation:3s ease-in-out infinite fx-breathe;display:inline-grid;position:relative}.frame-fx-7{--fx-c:227, 179, 65;--fx-peak:.5}.frame-fx-8{--fx-c:219, 109, 40;--fx-peak:.65}.frame-fx-9{--fx-c:163, 113, 247;--fx-peak:.8;animation-duration:2.6s}.frame-fx-10{--fx-c:240, 198, 116;--fx-peak:.9;animation:2.2s ease-in-out infinite fx-breathe-halo}@keyframes fx-breathe{0%,to{box-shadow:0 0 4px rgba(var(--fx-c), .25)}50%{box-shadow:0 0 12px rgba(var(--fx-c), var(--fx-peak)), 0 0 26px rgba(var(--fx-c), .18)}}@keyframes fx-breathe-halo{0%,to{box-shadow:0 0 5px rgba(var(--fx-c), .3)}50%{box-shadow:0 0 12px rgba(var(--fx-c), var(--fx-peak)), 0 0 26px rgba(var(--fx-c), .35), 0 0 44px rgba(var(--fx-c), .15)}}@keyframes fx-rotate{to{transform:rotate(1turn)}}@keyframes fx-orbit{0%{transform:rotate(0turn) translateX(var(--fx-orbit)) scale(.5);opacity:.4}25%{transform:rotate(.25turn) translateX(var(--fx-orbit)) scale(1.2);opacity:1}50%{transform:rotate(.5turn) translateX(var(--fx-orbit)) scale(.6);opacity:.5}75%{transform:rotate(.75turn) translateX(var(--fx-orbit)) scale(1.2);opacity:1}to{transform:rotate(1turn) translateX(var(--fx-orbit)) scale(.5);opacity:.4}}.frame-fx-8:before{content:"";inset:var(--fx-inset);background:conic-gradient(from 0deg, transparent 0 76%, #ffd296f2 88%, transparent 98%);border-radius:50%;animation:3.5s linear infinite fx-rotate;position:absolute;-webkit-mask:radial-gradient(farthest-side,#0000 calc(100% - 5px),#000 calc(100% - 4px));mask:radial-gradient(farthest-side,#0000 calc(100% - 5px),#000 calc(100% - 4px))}.frame-fx-9:before,.frame-fx-9:after{content:"";clip-path:polygon(50% 0,63% 37%,100% 50%,63% 63%,50% 100%,37% 63%,0 50%,37% 37%);filter:drop-shadow(0 0 4px #a371f7e6);background:#e9dbff;width:5px;height:5px;margin:-2.5px;animation:5s linear infinite fx-orbit;position:absolute;top:50%;left:50%}.frame-fx-9:after{animation:7.5s linear infinite reverse fx-orbit}.frame-fx-10:before{content:"";inset:calc(var(--fx-inset) - 1px);background:conic-gradient(from 0deg, transparent 0 30%, #ffe2a0e6 40%, transparent 50% 80%, #ffe2a0e6 90%, transparent 100%);border-radius:50%;animation:6s linear infinite fx-rotate;position:absolute;-webkit-mask:radial-gradient(farthest-side,#0000 calc(100% - 6px),#000 calc(100% - 5px));mask:radial-gradient(farthest-side,#0000 calc(100% - 6px),#000 calc(100% - 5px))}.frame-fx-10:after{content:"✦";color:#fff3d6;filter:drop-shadow(0 0 4px #f0c674e6);place-items:center;width:12px;height:12px;margin:-6px;font-size:10px;line-height:1;animation:8s linear infinite reverse fx-orbit;display:grid;position:absolute;top:50%;left:50%}.frame-sparkles{pointer-events:none;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@media (prefers-reduced-motion:reduce){.frame-fx,.frame-fx:before,.frame-fx:after{animation:none}.frame-fx-8:before,.frame-fx-9:before,.frame-fx-9:after,.frame-fx-10:before{display:none}.frame-fx-10:after{transform:rotate(-.12turn) translateX(var(--fx-orbit))}.frame-fx-7{box-shadow:0 0 8px #e3b34180}.frame-fx-8{box-shadow:0 0 9px #db6d2899}.frame-fx-9{box-shadow:0 0 10px #a371f7b3}.frame-fx-10{box-shadow:0 0 12px #f0c674cc,0 0 24px #f0c67440}}.toast{z-index:60;background:var(--panel-2);border:var(--border-w) solid var(--pass);color:var(--pass);box-shadow:var(--shadow-sticker);animation:toast-in var(--dur-2) var(--ease-spring);border-radius:8px;padding:.6rem 1rem;font-weight:700;position:fixed;bottom:9rem;right:1.5rem}@keyframes toast-in{0%{opacity:0;transform:translateY(10px)scale(.9)}to{opacity:1;transform:translateY(0)scale(1)}}.line-error{background:#f8514929}.line-error-gutter{background:#f851498c;margin-left:3px;width:3px!important}.test-line{color:var(--muted);font-weight:500}.test-detail{margin-top:.3rem}.test-detail summary{cursor:pointer;color:var(--muted);font-size:.8rem}.gotchi-panel{background:var(--panel);border-left:1px solid var(--border);width:380px;max-width:90vw;height:calc(100vh - 56px);box-shadow:var(--edge-light), -16px 0 48px #00000073;z-index:50;animation:gotchi-in var(--dur-2) var(--ease);flex-direction:column;display:flex;position:fixed;top:56px;right:0}@keyframes gotchi-in{0%{opacity:0;transform:translate(16px)}to{opacity:1;transform:translate(0)}}.gotchi-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:.75rem 1rem;display:flex}.gotchi-title{color:var(--accent);font-weight:700}.gotchi-close{color:var(--muted);cursor:pointer;background:0 0;border:none;font-size:1rem}.gotchi-note{color:var(--muted);border-bottom:1px solid var(--border);margin:0;padding:.6rem 1rem;font-size:.78rem}.gotchi-messages{flex-direction:column;flex:1;gap:.6rem;padding:.9rem 1rem;display:flex;overflow-y:auto}.gotchi-empty{color:var(--muted);font-style:italic}.gotchi-msg{white-space:pre-wrap;word-break:break-word;border-radius:10px;padding:.55rem .75rem;font-size:.9rem;line-height:1.5}.gotchi-msg.user{background:var(--panel-2);border:1px solid var(--border);align-self:flex-end;max-width:85%}.gotchi-msg.gotchi{border:1px solid var(--accent);background:#6ea8fe14;align-self:flex-start;max-width:95%}.gotchi-msg.error{color:var(--fail);border:1px solid var(--fail);background:#f8514914;align-self:stretch}.gotchi-msg.notice{color:var(--gold,#e3b341);border:1px solid var(--gold,#e3b341);background:#e3b34114;align-self:stretch;font-style:italic}.gotchi-input{border-top:1px solid var(--border);gap:.5rem;padding:.75rem 1rem;display:flex}.gotchi-input input{background:var(--bg);border:1px solid var(--border);color:var(--text);transition:border-color var(--dur-1) var(--ease), box-shadow var(--dur-1) var(--ease);border-radius:6px;flex:1;padding:.5rem .6rem}.gotchi-input input:focus{border-color:var(--shell);box-shadow:0 0 0 3px var(--shell-glow);outline:none}.gotchi-input button{background:var(--accent);color:#06120a;border:var(--border-w) solid #3d6db3;border-radius:var(--radius-s);cursor:pointer;box-shadow:var(--shadow-press-sm);transition:transform var(--dur-1) var(--ease-spring), box-shadow var(--dur-1) var(--ease), filter var(--dur-1) var(--ease);padding:.5rem .9rem;font-weight:700}.gotchi-input button:hover:not(:disabled){filter:brightness(1.06);transform:translateY(-1px)}.gotchi-input button:active:not(:disabled){transform:translateY(2px);box-shadow:0 0 #0000008c}.gotchi-input button:disabled{opacity:.5;cursor:not-allowed}
.pet-page{flex-direction:column;align-items:center;gap:1.5rem;max-width:720px;margin:0 auto;padding:2rem 1.25rem 4rem;display:flex}.pet-main{flex-direction:column;align-items:center;gap:1.5rem;width:100%;display:flex}.pet-stage{flex-direction:column;align-items:center;gap:1rem;width:100%;display:flex}.pet-greeting{text-align:center;background:var(--panel);border:1px solid var(--border);border-radius:14px;max-width:32rem;padding:.8rem 1.1rem;font-size:1.05rem;line-height:1.5;position:relative}.pet-greeting.mood-lonely{border-color:#a9744f}.pet-greeting.mood-missed{border-color:var(--shell-2)}.pet-identity{flex-wrap:wrap;justify-content:center;align-items:baseline;gap:.75rem;width:100%;display:flex}.pet-identity h1{font-family:var(--display);margin:0}.link-btn{color:var(--muted);cursor:pointer;background:0 0;border:none;font-size:.85rem;text-decoration:underline}.name-form{flex-wrap:wrap;justify-content:center;gap:.5rem;display:flex}.name-form input{background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:6px;min-width:12rem;padding:.5rem .7rem}.ghost{border:var(--border-w) solid var(--border);color:var(--text);border-radius:var(--radius-s);cursor:pointer;box-shadow:var(--shadow-press-sm);transition:transform var(--dur-1) var(--ease-spring), box-shadow var(--dur-1) var(--ease), border-color var(--dur-1) var(--ease);background:0 0;padding:.5rem .8rem}.ghost:hover{border-color:var(--shell);transform:translateY(-1px)}.ghost:active{transform:translateY(2px);box-shadow:0 0 #0000008c}.pet-progress{flex-direction:column;align-items:center;gap:.6rem;width:100%;max-width:32rem;display:flex}.pet-stats{flex-wrap:wrap;justify-content:center;gap:.5rem;display:flex}.pill{background:var(--panel);border:1px solid var(--border);border-radius:999px;padding:.25rem .75rem;font-size:.82rem}.xp-bar{background:var(--panel);border:1px solid var(--border);border-radius:999px;width:100%;height:12px;overflow:hidden}.xp-fill{background:linear-gradient(90deg, var(--shell), var(--shell-2));height:100%;transition:width .4s}.pet-chat{flex-direction:column;gap:.6rem;width:100%;max-width:32rem;display:none}.pet-chat.open{z-index:80;background:var(--panel);border-top:1px solid var(--border);max-width:none;max-height:75dvh;box-shadow:var(--shadow-3);border-radius:16px 16px 0 0;padding:1rem 1.25rem 1.25rem;display:flex;position:fixed;bottom:0;left:0;right:0}.pet-chat-fab{z-index:60;background:var(--panel);border:1px solid var(--border);color:var(--text);cursor:pointer;box-shadow:var(--shadow-3);border-radius:999px;padding:.6rem 1rem;font-weight:600;position:fixed;bottom:1.25rem;left:1.25rem}.pet-chat-fab:hover{border-color:var(--shell)}.pet-chat-head{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.pet-chat h2{margin:0;font-size:1.1rem}.pet-chat-close{border:1px solid var(--border);color:var(--muted);cursor:pointer;background:0 0;border-radius:8px;padding:.25rem .55rem}.pet-chat-close:hover{color:var(--text);border-color:var(--shell)}.pet-messages{background:var(--panel);border:1px solid var(--border);border-radius:12px;flex-direction:column;gap:.5rem;min-height:8rem;max-height:22rem;padding:.9rem;display:flex;overflow-y:auto}.pet-msg{white-space:pre-wrap;border-radius:10px;max-width:85%;padding:.5rem .7rem;line-height:1.45}.pet-msg.user{background:var(--shell-2);color:#06120a;align-self:flex-end}.pet-msg.pet{background:var(--bg);border:1px solid var(--border);align-self:flex-start}.pet-msg.error{color:#f85149;align-self:flex-start}.pet-input{gap:.5rem;display:flex}.pet-input input{background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:6px;flex:1;padding:.55rem .7rem}.pet-input button{background:var(--accent);color:#06120a;border:var(--border-w) solid #3d6db3;border-radius:var(--radius-s);cursor:pointer;box-shadow:var(--shadow-press-sm);transition:transform var(--dur-1) var(--ease-spring), box-shadow var(--dur-1) var(--ease), filter var(--dur-1) var(--ease);padding:.55rem 1rem;font-weight:700}.pet-input button:hover:not(:disabled){filter:brightness(1.06);transform:translateY(-1px)}.pet-input button:active:not(:disabled){transform:translateY(2px);box-shadow:0 0 #0000008c}.pet-input button:disabled{opacity:.5;cursor:not-allowed}@media (min-width:1024px){.pet-page{grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:2rem;max-width:1100px;display:grid}.pet-page>p{grid-column:1/-1}.pet-chat,.pet-chat.open{z-index:auto;max-width:none;max-height:calc(100dvh - 96px);box-shadow:none;background:0 0;border:none;border-radius:0;padding:0;display:flex;position:sticky;inset:76px auto auto}.pet-chat .pet-messages{flex:1;min-height:14rem;max-height:none}.pet-chat-fab,.pet-chat-close{display:none}}
.profile,.reviews,.community,.thread,.guilds,.guild{max-width:920px;margin:0 auto;padding:1.5rem 2rem}.profile-head{align-items:center;gap:1rem;margin-bottom:1.5rem;display:flex}.profile-id h1{margin:0}.profile-facts{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.75rem;margin:0;display:grid}.profile-facts>div{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:.75rem .9rem}.profile-facts dt{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:.78rem}.profile-facts dd{margin:.25rem 0 0;font-weight:600}.author-link,.review-author,.lb-learner-link{color:var(--text);align-items:center;gap:.4rem;display:inline-flex}.author-link:hover,.review-author:hover,.lb-learner-link:hover{color:var(--accent);text-decoration:none}.stars{color:var(--xp);letter-spacing:.05em;white-space:nowrap}.review-composer,.new-thread,.new-guild,.reply-composer{background:var(--panel);border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:.6rem;margin:1rem 0 1.5rem;padding:1rem;display:flex}.review-composer h2{margin:0;font-size:1rem}.review-composer select,.new-thread select,.new-thread input,.new-guild input,.review-composer textarea,.new-thread textarea,.new-guild textarea,.reply-composer textarea{background:var(--bg);border:1px solid var(--border);color:var(--text);font:inherit;border-radius:6px;width:100%;padding:.5rem .6rem}.review-composer button,.new-thread button,.new-guild button,.reply-composer button{background:var(--accent);color:#06120a;border:var(--border-w) solid #3d6db3;border-radius:var(--radius-s);box-shadow:var(--shadow-press);transition:transform var(--dur-1) var(--ease-spring), box-shadow var(--dur-1) var(--ease), filter var(--dur-1) var(--ease);align-self:flex-start;padding:.5rem .9rem;font-weight:700}.review-composer button:hover:not(:disabled),.new-thread button:hover:not(:disabled),.new-guild button:hover:not(:disabled),.reply-composer button:hover:not(:disabled){filter:brightness(1.06);transform:translateY(-1px)}.review-composer button:active:not(:disabled),.new-thread button:active:not(:disabled),.new-guild button:active:not(:disabled),.reply-composer button:active:not(:disabled){transform:translateY(3px);box-shadow:0 0 #0000008c}.review-composer button:disabled,.new-thread button:disabled,.new-guild button:disabled,.reply-composer button:disabled{opacity:.5;cursor:not-allowed}.review-list{flex-direction:column;gap:.75rem;margin:0;padding:0;list-style:none;display:flex}.review-card{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:.9rem 1rem}.review-head{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.review-body{margin:.5rem 0 .25rem;line-height:1.5}.review-course{margin:0;font-size:.85rem}.pager{justify-content:center;align-items:center;gap:1rem;margin-top:1.5rem;display:flex}.pager button{background:var(--panel-2);color:var(--text);border:var(--border-w) solid var(--border);border-radius:var(--radius-s);box-shadow:var(--shadow-press-sm);transition:transform var(--dur-1) var(--ease-spring), box-shadow var(--dur-1) var(--ease), border-color var(--dur-1) var(--ease);padding:.35rem .9rem;font-weight:600}.pager button:hover:not(:disabled){border-color:var(--shell);transform:translateY(-1px)}.pager button:active:not(:disabled){transform:translateY(2px);box-shadow:0 0 #0000008c}.pager button:disabled{opacity:.5;cursor:not-allowed}.community-head,.guild-actions{justify-content:space-between;align-items:center;gap:1rem;display:flex}.community-head .cta{background:var(--accent);color:#06120a;border:var(--border-w) solid #3d6db3;border-radius:var(--radius-s);box-shadow:var(--shadow-press);transition:transform var(--dur-1) var(--ease-spring), box-shadow var(--dur-1) var(--ease), filter var(--dur-1) var(--ease);padding:.45rem .8rem;font-weight:700}.community-head .cta:hover{filter:brightness(1.06);transform:translateY(-1px)}.community-head .cta:active{transform:translateY(3px);box-shadow:0 0 #0000008c}.community-filter{margin:1rem 0}.community-filter select{background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:6px;margin-left:.5rem;padding:.4rem .5rem}.nt-row{gap:.5rem;display:flex}.thread-list{flex-direction:column;gap:.6rem;margin:0;padding:0;list-style:none;display:flex}.thread-row{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:.8rem 1rem}.thread-title{font-size:1.02rem;font-weight:600}.thread-meta{flex-wrap:wrap;align-items:center;gap:.75rem;margin-top:.4rem;font-size:.85rem;display:flex}.scope-tag{text-transform:capitalize;border:1px solid var(--border);color:var(--muted);border-radius:999px;padding:.1rem .45rem;font-size:.72rem;font-weight:700}.scope-course{color:var(--accent);border-color:var(--accent)}.scope-guild{color:var(--xp);border-color:var(--xp)}.scope-lesson{color:var(--pass);border-color:var(--pass)}.thread-back,.replay-back{color:var(--muted);margin-bottom:1rem;display:inline-block}.thread-header{margin-bottom:1.25rem}.thread-header h1{margin:.4rem 0}.thread-byline{color:var(--muted);align-items:center;gap:.4rem;font-size:.9rem;display:flex}.post-list{flex-direction:column;gap:.75rem;margin:0 0 1.5rem;padding:0;list-style:none;display:flex}.post{background:var(--panel);border:1px solid var(--border);border-radius:10px;gap:.75rem;padding:.85rem 1rem;display:flex}.post-body{flex:1}.post-body p{white-space:pre-wrap;word-break:break-word;margin:.45rem 0 0;line-height:1.55}.post-author{font-size:.85rem}.upvote{background:var(--bg);border:1px solid var(--border);color:var(--muted);border-radius:8px;flex-direction:column;align-items:center;gap:.1rem;min-width:2.4rem;height:fit-content;padding:.3rem .5rem;display:flex}.upvote .arrow{font-size:.8rem;line-height:1}.upvote .count{font-size:.9rem;font-weight:700}.upvote.on{color:var(--xp);border-color:var(--xp);background:#d2992214}.upvote:disabled{cursor:not-allowed;opacity:.7}.guild-list{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:.75rem;margin:1rem 0 0;padding:0;list-style:none;display:grid}.guild-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius-m);transition:border-color var(--dur-1) var(--ease), box-shadow var(--dur-1) var(--ease);padding:.9rem 1rem}.guild-card:hover{border-color:var(--shell);box-shadow:var(--shadow-1)}.guild-name{font-size:1.05rem;font-weight:700}.guild-desc{margin:.35rem 0;font-size:.88rem}.guild-members{font-size:.8rem}.guild-header{margin-bottom:1.5rem}.guild-header h1{margin:0 0 .4rem}.guild-actions button{border:var(--border-w) solid var(--border);border-radius:var(--radius-s);color:var(--text);box-shadow:var(--shadow-press-sm);transition:transform var(--dur-1) var(--ease-spring), box-shadow var(--dur-1) var(--ease), border-color var(--dur-1) var(--ease), filter var(--dur-1) var(--ease);background:0 0;padding:.4rem .8rem}.guild-actions button:hover:not(:disabled){border-color:var(--shell);transform:translateY(-1px)}.guild-actions button:active:not(:disabled){transform:translateY(2px);box-shadow:0 0 #0000008c}.guild-actions button.cta{background:var(--accent);color:#06120a;box-shadow:var(--shadow-press);border-color:#3d6db3;font-weight:700}.guild-actions button.cta:hover:not(:disabled){filter:brightness(1.06);border-color:#3d6db3}.guild-section{margin-top:1.5rem}.guild-section h2{margin:0 0 .6rem;font-size:1.05rem}.member-list{flex-wrap:wrap;gap:.6rem 1rem;margin:0;padding:0;list-style:none;display:flex}.composer{flex-direction:column;gap:.6rem;display:flex}.composer-bar{flex-wrap:wrap;align-items:center;gap:.3rem;display:flex}.composer .composer-tool,.composer .composer-tab{background:var(--bg);color:var(--text);border:1px solid var(--border);box-shadow:none;border-radius:6px;align-self:auto;padding:.25rem .55rem;font-size:.85rem;font-weight:600}.composer .composer-tool:hover:not(:disabled),.composer .composer-tab:hover:not(:disabled){filter:brightness(1.15);transform:none}.composer .composer-tool:active:not(:disabled),.composer .composer-tab:active:not(:disabled){box-shadow:none;transform:none}.composer .composer-tool:disabled{opacity:.4}.composer-tabs{gap:.3rem;margin-left:auto;display:flex}.composer .composer-tab.on{border-color:var(--accent);color:var(--accent)}.composer-preview{background:var(--bg);border:1px solid var(--border);border-radius:6px;min-height:5.5rem;padding:.6rem .8rem}.post-head{align-items:baseline;gap:.6rem;display:flex}.post .post-quote{color:var(--muted);box-shadow:none;background:0 0;border:none;border-radius:4px;margin-left:auto;padding:.1rem .3rem;font-size:.8rem}.post .post-quote:hover{color:var(--accent);filter:none;transform:none}.post-body .markdown p{margin:.35rem 0}.post-body .markdown blockquote{border-left:3px solid var(--accent);background:color-mix(in srgb, var(--accent) 7%, transparent);color:var(--muted);border-radius:0 6px 6px 0;margin:.5rem 0;padding:.35rem .8rem}.post-body .markdown blockquote blockquote{margin:.35rem 0}.post-body .markdown pre{background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:.6rem .8rem;overflow-x:auto}.post-body .markdown code{font-family:var(--font-mono,ui-monospace, monospace);font-size:.9em}.post-body .markdown ul,.post-body .markdown ol{margin:.35rem 0;padding-left:1.4rem}
.arcade-page{flex-direction:column;gap:1rem;max-width:64rem;margin:0 auto;padding:2rem 1.25rem 4rem;display:flex}.arcade-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1rem;margin:1rem 0 0;padding:0;list-style:none;display:grid}.arcade-card{background:var(--panel);border:var(--border-w) solid var(--border);border-radius:var(--radius-l);box-shadow:var(--shadow-sticker);transition:border-color var(--dur-1) var(--ease), transform var(--dur-1) var(--ease-spring), box-shadow var(--dur-1) var(--ease);flex-direction:column;align-items:flex-start;gap:.5rem;padding:1.25rem;display:flex;position:relative}.arcade-card:not(.locked):hover{border-color:var(--shell);transform:translateY(-2px)rotate(-1.5deg);box-shadow:0 6px #0006}.arcade-card.locked{opacity:.85}.arcade-emoji{font-size:2.2rem}.arcade-card h2{margin:0;font-size:1.15rem}.arcade-tagline{color:var(--muted);flex:1;margin:0;font-size:.9rem}.arcade-lock-hint{color:var(--muted);margin:0;font-size:.85rem}.arcade-free-pill{border:1px solid var(--accent);color:var(--accent);border-radius:999px;padding:.15rem .55rem;font-size:.7rem;position:absolute;top:.9rem;right:.9rem}.game-shell{flex-direction:column;align-items:center;gap:.6rem;display:flex}.game-hud{justify-content:space-between;align-items:center;gap:1rem;width:100%;max-width:640px;display:flex}.game-title{font-weight:700}.game-score{font-family:var(--font-mono,monospace);font-size:.9rem}.game-best{color:var(--muted)}.game-stage{border:1px solid var(--border);background:radial-gradient(ellipse at 50% 20%, #57d9a30f, transparent 65%), var(--panel);border-radius:12px;width:100%;max-width:640px;position:relative;overflow:hidden}.game-canvas{touch-action:none;cursor:crosshair;width:100%;height:100%;display:block}.game-overlay{text-align:center;background:#080e0cb8;flex-direction:column;justify-content:center;align-items:center;gap:.8rem;padding:1rem;display:flex;position:absolute;inset:0}.game-overlay p{margin:0;font-size:1.05rem}.game-controls{text-align:center;font-size:.85rem}.arcade-lb{width:100%;max-width:640px;margin:1.5rem auto 0}.arcade-lb h2{font-family:var(--display);font-size:1.1rem}.lb-me-row td{background:#57d9a314}.lb-me-row .name{color:var(--shell)}.lb-me-detached td{border-top:2px dashed var(--border)}.lb-you-tag{color:var(--muted);font-weight:400}
.terminal-lesson .terminal-hint{margin:.25rem 0 .75rem}.terminal-command{border:1px solid var(--border);border-left:3px solid var(--accent);background:var(--panel-2);font-family:var(--font-mono,ui-monospace, monospace);border-radius:8px;align-items:center;gap:.6rem;padding:.75rem .9rem;display:flex}.terminal-command code{white-space:nowrap;flex:1;overflow-x:auto}.terminal-command button{color:var(--accent);border:var(--border-w) solid var(--accent);border-radius:var(--radius-s);box-shadow:var(--shadow-press-sm);transition:transform var(--dur-1) var(--ease-spring), box-shadow var(--dur-1) var(--ease), background var(--dur-1) var(--ease);background:0 0;padding:.3rem .8rem;font-weight:600}.terminal-command button:hover{background:#6ea8fe1f}.terminal-command button:active{transform:translateY(2px);box-shadow:0 0 #0000008c}.terminal-status{border:1px solid var(--border);background:var(--panel-2);border-radius:8px;margin:.9rem 0;padding:.65rem .9rem}.terminal-status.done{border-color:var(--pass);color:var(--pass);font-weight:700}.terminal-status.waiting .pulse{animation:1.6s ease-in-out infinite gotchi-pulse;display:inline-block}@keyframes gotchi-pulse{50%{opacity:.35}}@media (prefers-reduced-motion:reduce){.terminal-status.waiting .pulse{animation:none}}.terminal-help{margin:.75rem 0}.terminal-help summary{cursor:pointer;color:var(--accent)}.terminal-help ol{margin:.6rem 0 .25rem 1.25rem}.terminal-help li{margin:.3rem 0}
.settings-page{max-width:760px;margin:0 auto;padding:1.5rem 1rem 3rem}.settings-card{border:1px solid var(--border);background:var(--panel-2);border-radius:10px;margin-top:1rem;padding:1.1rem 1.25rem}.settings-card h2{margin-top:0}.token-create{gap:.6rem;margin:.75rem 0;display:flex}.token-create input{border:1px solid var(--border);border-radius:var(--radius-s);background:var(--panel);color:inherit;flex:1;padding:.5rem .75rem}.token-create button{background:var(--accent);color:#06101f;border-radius:var(--radius-s);border:none;padding:.5rem 1rem;font-weight:700}.token-fresh{border:1px solid var(--pass);border-radius:8px;margin:.75rem 0;padding:.9rem 1rem}.token-value{font-family:var(--font-mono,ui-monospace, monospace);align-items:center;gap:.6rem;margin:.5rem 0;display:flex}.token-value code{white-space:nowrap;flex:1;overflow-x:auto}.token-value button{border:1px solid var(--accent);color:var(--accent);border-radius:var(--radius-s);background:0 0;padding:.3rem .8rem}.token-table{border-collapse:collapse;width:100%;margin-top:.5rem}.token-table th,.token-table td{text-align:left;border-bottom:1px solid var(--border);padding:.45rem .6rem}.token-table .danger{color:var(--fail);border:var(--border-w) solid var(--fail);border-radius:var(--radius-s);box-shadow:var(--shadow-press-sm);transition:transform var(--dur-1) var(--ease-spring), box-shadow var(--dur-1) var(--ease), background var(--dur-1) var(--ease);background:0 0;padding:.25rem .7rem}.token-table .danger:hover{background:#f851491f}.token-table .danger:active{transform:translateY(2px);box-shadow:0 0 #0000008c}.downloads-page{max-width:760px;margin:0 auto;padding:1.5rem 1rem 3rem}.download-cards{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:.9rem;margin:1rem 0;display:grid}.download-card{border:1px solid var(--border);background:var(--panel-2);border-radius:10px;padding:1rem 1.1rem}.download-card.recommended{border-color:var(--accent)}.download-card h2{flex-wrap:wrap;align-items:center;gap:.5rem;margin:0 0 .25rem;font-size:1.05rem;display:flex}.download-card .badge{color:var(--accent);border:1px solid var(--accent);border-radius:999px;padding:.1rem .55rem;font-size:.7rem;font-weight:700}.download-actions{flex-wrap:wrap;gap:.6rem;margin-top:.6rem;display:flex}.download-btn{background:var(--accent);color:#06101f;border:var(--border-w) solid #3d6db3;border-radius:var(--radius-s);box-shadow:var(--shadow-press);transition:transform var(--dur-1) var(--ease-spring), box-shadow var(--dur-1) var(--ease), filter var(--dur-1) var(--ease);padding:.45rem 1.1rem;font-weight:700;text-decoration:none;display:inline-block}.download-btn:hover{filter:brightness(1.08);transform:translateY(-1px)}.download-btn:active{transform:translateY(3px);box-shadow:0 0 #0000008c}.download-actions button{color:var(--accent);border:var(--border-w) solid var(--accent);border-radius:var(--radius-s);box-shadow:var(--shadow-press-sm);transition:transform var(--dur-1) var(--ease-spring), box-shadow var(--dur-1) var(--ease);background:0 0;padding:.45rem .9rem}.download-actions button:active{transform:translateY(2px);box-shadow:0 0 #0000008c}.download-setup{border:1px solid var(--border);background:var(--panel-2);border-radius:10px;margin-top:1.5rem;padding:1.1rem 1.25rem}.download-setup h2{margin-top:0}.download-setup ol{margin:.6rem 0 .5rem 1.25rem}.download-setup li{margin:.4rem 0}.settings-tabs{border-bottom:1px solid var(--border);border-bottom:none;gap:.4rem;margin-top:1rem;padding-bottom:.4rem;display:flex}.settings-tabs button{border:var(--border-w) solid var(--border);border-radius:var(--radius-s);background:var(--panel-2);color:var(--muted);cursor:pointer;box-shadow:var(--shadow-press-sm);transition:transform var(--dur-1) var(--ease-spring), box-shadow var(--dur-1) var(--ease), border-color var(--dur-1) var(--ease), color var(--dur-1) var(--ease);padding:.4rem .9rem;font-weight:600}.settings-tabs button:hover{border-color:var(--shell);color:var(--text);transform:translateY(-1px)}.settings-tabs button:active{transform:translateY(2px);box-shadow:0 0 #0000008c}.settings-tabs button.active{color:var(--text);border-color:var(--shell);background:#57d9a314}.settings-form label{margin:.6rem 0;display:block}.settings-form input{border:1px solid var(--border);border-radius:var(--radius-s);background:var(--panel);width:100%;color:inherit;margin-top:.3rem;padding:.5rem .75rem;display:block}.settings-form button[type=submit]{background:var(--accent);color:#06101f;border:var(--border-w) solid #3d6db3;border-radius:var(--radius-s);box-shadow:var(--shadow-press);transition:transform var(--dur-1) var(--ease-spring), box-shadow var(--dur-1) var(--ease), filter var(--dur-1) var(--ease);margin-top:.6rem;padding:.5rem 1rem;font-weight:700}.settings-form button[type=submit]:hover:not(:disabled){filter:brightness(1.06);transform:translateY(-1px);box-shadow:0 4px #0000008c}.settings-form button[type=submit]:active:not(:disabled){transform:translateY(3px);box-shadow:0 0 #0000008c}.settings-ok{color:var(--pass)}.settings-danger{border-color:var(--fail)}.settings-danger .danger,.danger-solid{background:var(--fail);color:#fff;border:var(--border-w) solid #a83232;border-radius:var(--radius-s);cursor:pointer;box-shadow:var(--shadow-press);transition:transform var(--dur-1) var(--ease-spring), box-shadow var(--dur-1) var(--ease), filter var(--dur-1) var(--ease);padding:.5rem 1rem;font-weight:700}.settings-danger .danger:hover:not(:disabled),.danger-solid:hover:not(:disabled){filter:brightness(1.06);transform:translateY(-1px);box-shadow:0 4px #0000008c}.settings-danger .danger:active:not(:disabled),.danger-solid:active:not(:disabled){transform:translateY(3px);box-shadow:0 0 #0000008c}.billing-primary{background:var(--shell-2);color:var(--ink);border:var(--border-w) solid var(--plastic-edge);border-radius:var(--radius-s);cursor:pointer;box-shadow:0 3px 0 var(--plastic-edge);transition:transform var(--dur-1) var(--ease-spring), box-shadow var(--dur-1) var(--ease), filter var(--dur-1) var(--ease);padding:.55rem 1.1rem;font-weight:700}.billing-primary:hover:not(:disabled){filter:brightness(1.06);box-shadow:0 4px 0 var(--plastic-edge);transform:translateY(-1px)}.billing-primary:active:not(:disabled){box-shadow:0 0 0 var(--plastic-edge);transform:translateY(3px)}.billing-primary:disabled{opacity:.5;cursor:not-allowed}.billing-actions{margin-top:.6rem}.billing-actions .danger{color:var(--fail);border:var(--border-w) solid var(--fail);border-radius:var(--radius-s);cursor:pointer;box-shadow:var(--shadow-press-sm);transition:transform var(--dur-1) var(--ease-spring), box-shadow var(--dur-1) var(--ease), background var(--dur-1) var(--ease);background:0 0;padding:.5rem 1rem;font-weight:600}.billing-actions .danger:hover:not(:disabled){background:#f851491a}.billing-actions .danger:active:not(:disabled){transform:translateY(2px);box-shadow:0 0 #0000008c}.settings-card button:not([class]){background:var(--panel-2);color:var(--text);border:var(--border-w) solid var(--border);border-radius:var(--radius-s);cursor:pointer;box-shadow:var(--shadow-press-sm);transition:transform var(--dur-1) var(--ease-spring), box-shadow var(--dur-1) var(--ease), border-color var(--dur-1) var(--ease);padding:.45rem .95rem;font-weight:600}.settings-card button:not([class]):hover:not(:disabled){border-color:var(--shell);transform:translateY(-1px)}.settings-card button:not([class]):active:not(:disabled){transform:translateY(2px);box-shadow:0 0 #0000008c}.settings-card button:not([class]):disabled{opacity:.6;cursor:not-allowed}.pill-ok{border-color:var(--pass);color:var(--pass)}.pill-warn{border-color:var(--xp);color:var(--xp)}.consent-row{align-items:flex-start;gap:.6rem;margin:.9rem 0;display:flex}.consent-row input[type=checkbox]{width:1.05rem;height:1.05rem;accent-color:var(--shell-2);margin-top:.25rem}.modal-link{background:var(--shell-2);color:var(--ink);border-radius:8px;padding:8px 14px;font-weight:600;text-decoration:none;display:inline-block}.resend-verify{background:var(--accent);color:#06101f;border:var(--border-w) solid #3d6db3;border-radius:var(--radius-s);cursor:pointer;box-shadow:var(--shadow-press);transition:transform var(--dur-1) var(--ease-spring), box-shadow var(--dur-1) var(--ease), filter var(--dur-1) var(--ease);padding:.5rem 1rem;font-weight:700}.resend-verify:hover:not(:disabled){filter:brightness(1.06);transform:translateY(-1px)}.resend-verify:active:not(:disabled){transform:translateY(3px);box-shadow:0 0 #0000008c}.resend-verify:disabled{opacity:.6;cursor:not-allowed}.avatar-picker{border-top:1px solid var(--border);margin-top:1.1rem;padding-top:.9rem}.avatar-picker-current{--avatar-size:min(224px, 48vw);align-items:center;gap:1rem;margin-bottom:.6rem;display:flex}.avatar-picker-current .avatar{width:var(--avatar-size);height:var(--avatar-size);background:var(--panel);border:5px solid var(--frame,var(--border));border-radius:50%;justify-content:center;align-items:center;display:inline-flex;overflow:hidden;box-shadow:0 0 0 1px #00000059}.avatar-picker-current .avatar img{object-fit:cover;width:100%;height:100%}.avatar-preset-grid{flex-wrap:wrap;gap:.6rem;margin:.6rem 0;display:flex}.avatar-preset-grid button{border:2px solid var(--border);background:var(--panel);cursor:pointer;border-radius:50%;width:64px;height:64px;padding:4px}.avatar-preset-grid button img{width:100%;height:100%;display:block}.avatar-preset-grid button:hover{border-color:var(--shell)}.avatar-preset-grid button.active{border-color:var(--accent)}.avatar-actions{flex-wrap:wrap;gap:.6rem;margin:.6rem 0;display:flex}.avatar-upload-btn{cursor:pointer}.avatar-crop-overlay{z-index:60;background:#0000008c;place-items:center;display:grid;position:fixed;inset:0}.avatar-crop-dialog{border:1px solid var(--border);background:var(--panel-2);width:min(92vw,420px);box-shadow:var(--shadow-3);border-radius:10px;padding:1.1rem 1.25rem}.avatar-crop-dialog h3{margin-top:0}.avatar-crop-frame{border-radius:var(--radius-s);background:#000;height:min(60vw,300px);position:relative;overflow:hidden}.avatar-crop-zoom{align-items:center;gap:.6rem;margin:.75rem 0;display:flex}.avatar-crop-zoom input{accent-color:var(--shell-2);flex:1}.avatar-crop-actions{justify-content:flex-end;gap:.6rem;display:flex}
.btn{border:var(--border-w) solid var(--border);border-radius:var(--radius-m);color:var(--text);background:var(--panel-2);box-shadow:var(--shadow-press);transition:border-color var(--dur-1) var(--ease), transform var(--dur-1) var(--ease-spring), box-shadow var(--dur-1) var(--ease), filter var(--dur-1) var(--ease);padding:.6rem 1.3rem;font-weight:600;text-decoration:none;display:inline-block}.btn:hover{border-color:var(--shell);text-decoration:none;transform:translateY(-1px);box-shadow:0 4px #0000008c}.btn:active{transform:translateY(3px);box-shadow:0 0 #0000008c}.btn.primary{background:var(--accent);color:#06121f;border-color:var(--accent)}.btn.primary:hover{filter:brightness(1.08);border-color:var(--accent)}.btn.ghost{border:var(--border-w) solid var(--border);box-shadow:none;background:0 0}.btn.ghost:hover{border-color:var(--shell);box-shadow:none;background:#57d9a30f;transform:none}.btn.ghost:active{transform:translateY(1px)}.btn.danger{border:var(--border-w) solid var(--fail);color:var(--fail);box-shadow:var(--shadow-press-sm);background:0 0}.btn.danger:hover{border-color:var(--fail);background:#f851491a}.btn.sm{border-radius:var(--radius-s);box-shadow:var(--shadow-press-sm);padding:.35rem .8rem;font-size:.85rem}.btn.sm:active{transform:translateY(2px);box-shadow:0 0 #0000008c}.btn.lg{border-radius:var(--radius-m);padding:.85rem 1.5rem;font-size:1rem}.btn.candy,.btn.shell{font-family:var(--display);border-radius:var(--radius-pill);background:var(--grad-candy);color:var(--ink);border:2px solid var(--plastic-edge);box-shadow:0 5px 0 var(--plastic-edge), var(--gloss);transition:transform var(--dur-1) var(--ease-spring), box-shadow var(--dur-1) var(--ease), filter var(--dur-1) var(--ease);padding:.8rem 1.9rem;font-size:1rem}.btn.candy:hover,.btn.shell:hover{border-color:var(--plastic-edge);filter:brightness(1.04);box-shadow:0 5px 0 var(--plastic-edge), var(--gloss);transform:scale(1.05)}.btn.candy:active,.btn.shell:active{box-shadow:0 0 0 var(--plastic-edge), var(--gloss);transform:translateY(5px)}.btn.candy.xl{padding:1.05rem 2.4rem;font-size:1.15rem}.btn.quiet{box-shadow:none;color:var(--muted);background:0 0;border:1px solid #0000;padding:.5rem .9rem;font-weight:500}.btn.quiet:hover{color:var(--shell);border-color:var(--border);box-shadow:none;transform:none}.btn.quiet:active{transform:none}.card{border:var(--border-w) solid var(--border);border-radius:var(--radius-l);background:var(--grad-panel);color:var(--text);box-shadow:var(--shadow-sticker);transition:border-color var(--dur-1) var(--ease), transform var(--dur-1) var(--ease-spring), box-shadow var(--dur-1) var(--ease);padding:1.25rem;display:block}a.card:hover,.card.hoverable:hover{border-color:var(--shell);text-decoration:none;transform:translateY(-2px)rotate(-1.5deg);box-shadow:0 6px #0006}.course-card,.value-card,.tg-card,.arcade-card,.stat-card,.path-course{--text:var(--paper-ink);--muted:var(--paper-ink-muted);background-color:var(--paper-bg);background-image:linear-gradient(#05080e2e, #05080e2e), var(--paper);border-color:var(--border);color:var(--paper-ink)}.toy-tile,.dash-tile,.course-card,.value-card,.tg-card,.arcade-card{position:relative}.toy-tile:before,.dash-tile:before,.course-card:before,.value-card:before,.tg-card:before,.arcade-card:before{content:"";border-radius:calc(var(--radius-l) - 6px);opacity:.7;pointer-events:none;border:2px dashed #8b97a773;position:absolute;inset:5px}.tg-card:before{border-radius:calc(var(--radius-m) - 4px)}.toy-tile.t-mint:before,.value-card.t-mint:before{border-color:var(--tint-mint-border)}.toy-tile.t-coral:before,.value-card.t-coral:before{border-color:var(--tint-coral-border)}.toy-tile.t-gold:before,.value-card.t-gold:before{border-color:var(--tint-gold-border)}.toy-tile.t-violet:before,.value-card.t-violet:before{border-color:var(--tint-violet-border)}.eyebrow{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--shell);border:var(--border-w) solid var(--border);border-radius:var(--radius-s);background:var(--panel-2);box-shadow:var(--shadow-press-sm);align-items:center;gap:.5rem;padding:.35rem .8rem;font-size:.78rem;display:inline-flex}@media (prefers-reduced-motion:reduce){.brand-mark .gm-cursor{animation:none}.nav-toggle span{transition:none}.btn,.btn:hover,.btn:active,.card,a.card:hover,.card.hoverable:hover,button:not(.verify-banner-close),button:not(.verify-banner-close):hover,button:not(.verify-banner-close):active,.download-btn,.download-btn:hover,.download-btn:active{transition:none;transform:none}.toggle .toggle-knob{transition:none}}
.toggle-row{justify-content:space-between;align-items:center;gap:16px;padding:10px 0;display:flex}.toggle-text{flex-direction:column;gap:2px;display:flex}.toggle-label{font-weight:600}.toggle-desc{color:var(--muted);font-size:.85rem}.toggle{border:var(--border-w) solid var(--border);background:var(--panel-3);cursor:pointer;width:46px;height:26px;box-shadow:var(--shadow-press-sm);border-radius:8px;flex:none;padding:2px;transition:background .15s}.toggle .toggle-knob{background:var(--muted);width:18px;height:18px;transition:transform .25s var(--ease-spring), background .15s ease;border-radius:5px;display:block}.toggle.on{background:var(--shell-2);border-color:var(--shell-2)}.toggle.on .toggle-knob{background:var(--ink);transform:translate(20px)}.toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.toggle:disabled{opacity:.5;cursor:not-allowed}.modal-backdrop{z-index:60;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#060a10b3;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal{border:var(--border-w-lg) solid var(--border);border-radius:var(--radius-l);background:var(--panel);width:min(440px,100%);box-shadow:var(--shadow-sticker), var(--shadow-3);padding:20px}.modal h2{margin:0 0 10px;font-size:1.1rem}.modal-body{color:var(--muted);font-size:.95rem}.modal-body p{margin:0 0 8px}.modal-confirm-text{color:var(--muted);margin-top:12px;font-size:.85rem;display:block}.modal-confirm-text input{border:1px solid var(--border);background:var(--panel-2);width:100%;color:var(--text);border-radius:8px;margin-top:6px;padding:8px 10px;display:block}.modal-actions{justify-content:flex-end;gap:10px;margin-top:18px;display:flex}.modal-actions button{border:var(--border-w) solid var(--border);background:var(--panel-2);color:var(--text);cursor:pointer;box-shadow:var(--shadow-press-sm);transition:transform var(--dur-1) var(--ease-spring), box-shadow var(--dur-1) var(--ease);border-radius:8px;padding:8px 14px}.modal-actions button:active:not(:disabled){transform:translateY(2px);box-shadow:0 0 #0000008c}.modal-actions .modal-primary{background:var(--shell-2);border-color:var(--shell-2);color:var(--ink);font-weight:600}.modal-actions .modal-danger{background:var(--fail);border-color:var(--fail);color:#fff;font-weight:600}.modal-actions button:disabled{opacity:.5;cursor:not-allowed}
.dash-head{text-align:center;margin-bottom:2rem}.dash-head h1{font-family:var(--display);letter-spacing:.01em;margin:1rem 0 0;font-size:clamp(1.9rem,4vw,2.7rem);line-height:1.08}.home.dashboard .dash-room-wrap{padding-top:3.5rem}.dash-room{grid-template-columns:1fr minmax(0,420px) 1fr;align-items:center;gap:1.5rem;display:grid}.dash-room-side{align-content:center;gap:1.25rem;display:grid}.toy-tile{text-align:center;border-radius:var(--radius-l);border:var(--border-w) solid var(--border);background-color:var(--paper-bg);background-image:var(--paper);box-shadow:var(--shadow-sticker);color:var(--paper-ink);justify-items:center;gap:.3rem;padding:1rem 1.1rem;text-decoration:none;display:grid}.dash-room-side .toy-tile:nth-child(odd){transform:rotate(-1.5deg)}.dash-room-side .toy-tile:nth-child(2n){transform:rotate(1.2deg)}.toy-tile.t-mint{background-color:var(--paper-mint);border-color:var(--tint-mint-border)}.toy-tile.t-coral{background-color:var(--paper-coral);border-color:var(--tint-coral-border)}.toy-tile.t-gold{background-color:var(--paper-gold);border-color:var(--tint-gold-border)}.toy-tile.t-violet{background-color:var(--paper-violet);border-color:var(--tint-violet-border)}.toy-tile .tt-label{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--paper-ink-muted);font-size:.72rem}.toy-tile b{font-family:var(--mono);font-size:1.25rem}.toy-tile small{color:var(--paper-ink-muted);font-size:.78rem}.toy-tile.tt-link{transition:transform var(--dur-1) var(--ease-spring), box-shadow var(--dur-1) var(--ease), border-color var(--dur-1) var(--ease)}.toy-tile.tt-link:hover{border-color:var(--coral);text-decoration:none;transform:rotate(-1.5deg)translateY(-2px);box-shadow:0 6px #0006}.dash-continue{max-width:760px;margin:2.5rem auto 0}.dash-continue .cb-resume{align-self:center}.dash-start{text-align:center}.dash-start p{margin:0 0 1rem}.dash-start .hero-cta{justify-content:center}.dash-pet-skeleton{background:linear-gradient(100deg, var(--panel) 40%, var(--panel-2) 50%, var(--panel) 60%);background-size:200% 100%;border-radius:48% 48% 46% 46%/40% 40% 54% 54%;height:380px;animation:1.4s ease-in-out infinite dash-shimmer}@keyframes dash-shimmer{0%{background-position:130% 0}to{background-position:-30% 0}}.dash-tiles{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;display:grid}.card.dash-tile{background-color:var(--paper-bg);background-image:var(--paper);border-color:var(--border);color:var(--paper-ink)}.dash-tile .ic{font-size:1.7rem}.dash-tile h3{margin:.5rem 0 .3rem;font-size:1.02rem}.dash-tile p{color:var(--paper-ink-muted);margin:0;font-size:.9rem}.home.dashboard section{padding-top:3rem;padding-bottom:3rem}@media (max-width:900px){.dash-room{grid-template-columns:1fr}.dash-room>.gdevice,.dash-room>.dash-pet-skeleton{order:-1}.dash-room-side{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (prefers-reduced-motion:reduce){.dash-pet-skeleton{animation:none}}
.gdevice{background:var(--grad-plastic);border:var(--border-w-lg) solid var(--plastic-edge);width:min(460px,100%);box-shadow:0 10px 0 var(--plastic-edge), 0 24px 48px -12px #0009;border-radius:50% 50% 47% 47%/52% 52% 45% 45%;margin:0 auto;padding:0;position:relative;container-type:inline-size}.gdevice-dash{width:min(400px,100%)}.gdevice:before{content:"";filter:blur(6px);pointer-events:none;background:#ffffff59;border-radius:50%;width:32%;height:11%;position:absolute;top:5%;left:25%}.gdevice:after{content:"";border-radius:inherit;pointer-events:none;border:1px solid #06140d2e;position:absolute;inset:7px}.gdevice-crack{color:#06140d38;pointer-events:none;width:66%;height:auto;position:absolute;top:10cqi;left:17%}.gdevice-loop{border:6px solid var(--plastic-lo);width:30px;height:30px;box-shadow:0 2px 0 var(--plastic-edge);border-radius:50%;position:absolute;top:-14px;right:24%}.gdevice-charm{transform-origin:50% 0;pointer-events:none;z-index:2;width:clamp(22px,9cqi,34px);animation:4.5s ease-in-out infinite charm-sway;position:absolute;top:10px;right:calc(24% + 15px - clamp(11px,4.5cqi,17px))}.gdevice-charm svg{width:100%;height:auto;display:block;overflow:visible}.gdevice-charm .charm-strap{stroke:var(--plastic-edge);stroke-width:2px;stroke-linecap:round;fill:none}@keyframes charm-sway{0%,to{transform:rotate(-7deg)}50%{transform:rotate(7deg)}}.charm-glow svg{filter:drop-shadow(0 0 4px #f0c674cc);animation:2.4s ease-in-out infinite charm-glow}@keyframes charm-glow{0%,to{opacity:.85}50%{opacity:1}}.charm-spark{--charm-orbit:14px;background:#ffe07a;border-radius:50%;width:4px;height:4px;animation:3s linear infinite charm-orbit;position:absolute;top:60%;left:50%}.charm-spark.s2{animation-delay:-1s}.charm-spark.s3{animation-delay:-2s}@keyframes charm-orbit{0%{transform:rotate(0turn) translateX(var(--charm-orbit)) scale(.5);opacity:.4}25%{transform:rotate(.25turn) translateX(var(--charm-orbit)) scale(1.2);opacity:1}50%{transform:rotate(.5turn) translateX(var(--charm-orbit)) scale(.6);opacity:.5}to{transform:rotate(1turn) translateX(var(--charm-orbit)) scale(.5);opacity:.4}}@media (prefers-reduced-motion:reduce){.gdevice-charm,.charm-glow svg,.charm-spark{animation:none}}.gdevice-screen{z-index:1;border:var(--border-w-lg) solid var(--bezel);background:#0b100d;border-radius:34px 34px 18px 18px;height:clamp(132px,56cqi,260px);margin:clamp(2.9rem,18cqi,5.2rem) clamp(1.2rem,14cqi,4rem) 0;position:relative;overflow:hidden;box-shadow:inset 0 5px 12px #000000b3,inset 0 -2px #ffffff0a}.gdevice-screen:after{content:"";background:var(--scanlines);pointer-events:none;position:absolute;inset:0}.gdevice-sprite{transition:transform .25s var(--ease-spring);justify-items:center;display:grid;position:absolute;inset:auto 0 26px}.gdevice-sprite .gotchi{margin-top:0}.gdevice .gdevice-sprite .gotchi .gotchi-svg{width:clamp(96px,52cqi,245px)}.gdevice-dash .gdevice-screen{height:clamp(140px,52cqi,215px)}.gdevice.gdevice-dash .gdevice-sprite .gotchi .gotchi-svg{width:clamp(110px,46cqi,185px)}.gdevice-status{font-family:var(--mono);letter-spacing:.08em;color:var(--shell);text-shadow:0 0 6px var(--shell-glow);pointer-events:none;justify-content:space-between;font-size:11px;display:flex;position:absolute;bottom:8px;left:12px;right:12px}.gd-heart-half{display:inline-block;position:relative}.gd-heart-fill{width:55%;position:absolute;inset:0 auto 0 0;overflow:hidden}.gdevice-xpbar{pointer-events:none;background:#ffffff14;border-radius:3px;height:6px;position:absolute;bottom:26px;left:12px;right:12px;overflow:hidden}.gdevice-xpbar>div{background:var(--grad-gold);height:100%}.gdevice-dim{opacity:0;pointer-events:none;background:#00000073;transition:opacity 1.2s;position:absolute;inset:0}.gdevice-dim.on{opacity:1}.gdevice-nameplate{z-index:1;text-align:center;font-family:var(--mono);color:var(--ink);text-shadow:0 1px #ffffff40;letter-spacing:.06em;margin-top:.6rem;font-size:.9rem;font-weight:700;position:relative}.gdevice-controls{z-index:1;justify-content:space-between;align-items:center;margin:clamp(.8rem,4.5cqi,1.3rem) clamp(1.3rem,9cqi,2.6rem) clamp(1.6rem,11cqi,3.2rem);display:flex;position:relative}.gdevice-dpad{grid-template-rows:repeat(3,clamp(30px,10cqi,40px));grid-template-columns:repeat(3,clamp(30px,10cqi,40px));display:grid}.gdevice-dpad .dp{color:#ffffffbf;cursor:pointer;touch-action:manipulation;box-shadow:0 3px 0 #14684a, var(--gloss);background:linear-gradient(#2ea87a,#1f8f63);border:2px solid #14684a;place-items:center;padding:0;font-size:10px;line-height:1;display:grid}.gdevice-dpad .dp.up{border-radius:8px 8px 0 0;grid-area:1/2}.gdevice-dpad .dp.left{border-radius:8px 0 0 8px;grid-area:2/1}.gdevice-dpad .dp-center{background:#1f8f63;border-top:2px solid #14684a;border-bottom:2px solid #14684a;grid-area:2/2}.gdevice-dpad .dp.right{border-radius:0 8px 8px 0;grid-area:2/3}.gdevice-dpad .dp.down{border-radius:0 0 8px 8px;grid-area:3/2}.gdevice-dpad .dp:active{box-shadow:0 0 0 #14684a, var(--gloss);transform:translateY(3px)}.gdevice-led{background:#14684a;border-radius:50%;width:9px;height:9px}.gdevice-led.on{background:#ffe08a;animation:.6s steps(2,end) led-blink;box-shadow:0 0 8px 2px #ffe08ab3}@keyframes led-blink{50%{opacity:.4}}.gdevice-ab{align-items:flex-start;gap:clamp(8px,3cqi,14px);display:flex}.gdevice-ab .ab{cursor:pointer;touch-action:manipulation;width:clamp(40px,14cqi,56px);height:clamp(40px,14cqi,56px);font-family:var(--display);color:var(--ink);background:linear-gradient(180deg, #ffb494, var(--coral) 55%, #e5764f);box-shadow:0 4px 0 #b8532e, var(--gloss);transition:transform var(--dur-1) var(--ease-spring), box-shadow var(--dur-1) var(--ease);border:2px solid #b8532e;border-radius:50%;place-items:center;font-size:1rem;display:grid}.gdevice-ab .ab:hover{transform:scale(1.06)}.gdevice-ab .ab:active{box-shadow:0 0 0 #b8532e, var(--gloss);transform:translateY(4px)}.gdevice-ab .ab svg{width:24px;height:24px;display:block}.gdevice-ab .b{margin-top:clamp(10px,4cqi,18px)}.gdevice-screen .companion-bubble{z-index:3;width:auto;max-width:260px;margin-inline:auto;inset:8px 8px auto}.gdevice-screen .companion-bubble:after{margin-right:-6px;right:50%}.gdevice-screen .companion-hearts span{z-index:3;font-size:18px}.gdevice-screen .companion-confetti{z-index:2}@media (prefers-reduced-motion:reduce){.gdevice-led.on{animation:none}.gdevice-sprite{transition:none}}.gdevice[class*=gdevice-shell-]{--grad-plastic:linear-gradient(160deg, var(--plastic-hi) 0%, var(--plastic) 42%, var(--plastic-lo) 100%)}.gdevice-shell-bubblegum{--plastic-hi:#ffc4e1;--plastic:#ff8fc6;--plastic-lo:#e05a9d;--plastic-edge:#c24484}.gdevice-shell-cobalt{--plastic-hi:#8fb8ff;--plastic:#5b8bf0;--plastic-lo:#3a63c4;--plastic-edge:#2c4da0}.gdevice-shell-lilac{--plastic-hi:#d9c4ff;--plastic:#b18ff5;--plastic-lo:#8560cc;--plastic-edge:#6c4bab}.gdevice-shell-charcoal{--plastic-hi:#6b7684;--plastic:#47505c;--plastic-lo:#2d343e;--plastic-edge:#1f242c}.gdevice-shell-sunset{--plastic-hi:#ffc99a;--plastic:#ff9a62;--plastic-lo:#e06a38;--plastic-edge:#bd5227}.gdevice-shell-lemon{--plastic-hi:#fff3a6;--plastic:#ffd94a;--plastic-lo:#e0b122;--plastic-edge:#b78e17}
.hatch-overlay{z-index:70;background:#04070cd1}.hatch-scene{justify-items:center;gap:var(--space-4,1rem);text-align:center;display:grid}.hatch-sprite{width:min(300px,70vw);position:relative}.hatch-sprite .gotchi{width:100%}.hatch-sprite canvas{pointer-events:none;width:130%;height:auto;position:absolute;inset:50% auto auto 50%;translate:-50% -50%}.hatch-overlay.phase-wiggle .gotchi.is-egg .part-egg{animation:hatch-egg-wiggle .9s var(--ease,ease-in-out) infinite}@keyframes hatch-egg-wiggle{0%,to{transform:rotate(0)}20%{transform:rotate(-5deg)}40%{transform:rotate(4.5deg)}60%{transform:rotate(-6.5deg)}80%{transform:rotate(5.5deg)}}.hatch-overlay.phase-crack .gotchi.is-egg .part-egg{animation:hatch-egg-jolt .45s var(--ease-spring,ease-out) 2}.hatch-overlay.phase-crack .part-egg-crack path,.hatch-overlay.phase-glow .part-egg-crack path{opacity:1}.hatch-overlay.phase-crack .part-egg-crack .crack-1{animation:hatch-crack-pop .2s var(--ease,ease-out) both}.hatch-overlay.phase-crack .part-egg-crack .crack-2{animation:hatch-crack-pop .2s var(--ease,ease-out) .3s both}.hatch-overlay.phase-crack .part-egg-crack .crack-3{animation:hatch-crack-pop .2s var(--ease,ease-out) .6s both}@keyframes hatch-egg-jolt{0%,to{transform:translateY(0)}30%{transform:translateY(-7px)}60%{transform:translateY(2px)}}@keyframes hatch-crack-pop{0%{opacity:0;stroke-width:.5px}60%{opacity:1;stroke-width:3.5px}to{opacity:1;stroke-width:2.5px}}.hatch-overlay.phase-glow .gotchi.is-egg .part-egg .egg-glow{animation:hatch-glow-flare .7s var(--ease,ease-in) both}.hatch-overlay.phase-glow .gotchi.is-egg .part-egg{animation:hatch-egg-burst .7s var(--ease,ease-in) both}@keyframes hatch-glow-flare{0%{opacity:0;transform-origin:100px 102px;transform:scale(.6)}60%{opacity:1}to{opacity:1;transform-origin:100px 102px;transform:scale(1.5)}}@keyframes hatch-egg-burst{0%{filter:brightness()}to{filter:brightness(2.4)}}.hatch-overlay.phase-glow .hatch-sprite:before,.hatch-overlay.phase-reveal .hatch-sprite:before,.hatch-overlay.phase-greet .hatch-sprite:before{content:"";background:radial-gradient(circle, var(--shell-glow) 0%, transparent 65%);animation:hatch-bloom .9s var(--ease,ease-out) both;pointer-events:none;border-radius:50%;position:absolute;inset:-18%}@keyframes hatch-bloom{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}.hatch-overlay.phase-reveal .gotchi:not(.is-egg),.hatch-overlay.phase-greet .gotchi:not(.is-egg){animation:hatch-reveal-pop .75s var(--ease-spring,cubic-bezier(.34, 1.56, .64, 1)) both}@keyframes hatch-reveal-pop{0%{opacity:0;transform:scale(.35)translateY(26px)}to{opacity:1;transform:scale(1)translateY(0)}}.hatch-greet{justify-items:center;gap:var(--space-4,1rem);animation:hatch-greet-in .4s var(--ease,ease-out) both;display:grid}@keyframes hatch-greet-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.hatch-bubble{border:var(--border-w,2px) solid var(--border);border-radius:var(--radius-l,14px);background:var(--panel);max-width:30ch;color:var(--text);box-shadow:var(--shadow-sticker), var(--shadow-2);margin:0;padding:.7rem 1.1rem;font-size:1.05rem;position:relative}.hatch-bubble:before{content:"";border:9px solid #0000;border-bottom-color:var(--border);border-top-width:0;position:absolute;top:-9px;left:50%;translate:-50%}.hatch-bubble b{color:var(--shell)}@media (prefers-reduced-motion:reduce){.hatch-overlay .gotchi.is-egg .part-egg,.hatch-overlay .gotchi:not(.is-egg),.hatch-overlay .part-egg-crack path,.hatch-overlay .egg-glow,.hatch-overlay .hatch-sprite:before,.hatch-greet{animation:none}.hatch-overlay .gotchi:not(.is-egg){opacity:1;transform:none}}
.site-nav a.has-visit{position:relative}.visit-alert{color:#fff;vertical-align:2px;width:15px;height:15px;box-shadow:0 0 0 2px var(--bg,#fff);background:#e5484d;border-radius:50%;place-items:center;margin-left:.35rem;font-size:.68rem;font-weight:800;line-height:1;animation:2.8s ease-in-out infinite visit-alert-pulse;display:inline-grid}@keyframes visit-alert-pulse{0%,to{box-shadow:0 0 0 2px var(--bg,#fff), 0 0 0 0 #e5484d8c}50%{box-shadow:0 0 0 2px var(--bg,#fff), 0 0 0 6px #e5484d00}}.visit-overlay{z-index:70;background:#04070cd1}.visit-scene{justify-items:center;gap:var(--space-4,1rem);text-align:center;width:min(560px,92vw);display:grid}.visit-announce{justify-items:center;gap:var(--space-4,1rem);display:grid;position:relative}.visit-knock{font-size:3rem;animation:.7s ease-in-out infinite visit-knock}@keyframes visit-knock{0%,to{transform:rotate(0)}25%{transform:rotate(-6deg)translateY(-3px)}60%{transform:rotate(5deg)}}.visit-announce canvas{pointer-events:none;width:130%;height:auto;position:absolute;inset:50% auto auto 50%;translate:-50% -50%}.visit-bubble{border:var(--border-w,2px) solid var(--border);border-radius:var(--radius-l,14px);background:var(--panel);max-width:34ch;color:var(--text);box-shadow:var(--shadow-sticker), var(--shadow-2);margin:0;padding:.7rem 1.1rem;font-size:1.05rem}.visit-bubble b{color:var(--shell)}.visit-stage{justify-content:center;align-items:flex-end;gap:clamp(1rem,6vw,3rem);width:100%;min-height:190px;display:flex;position:relative}.visit-host,.visit-guest{width:min(180px,38vw)}.visit-host .gotchi,.visit-guest .gotchi{width:100%}.visit-guest{transform:scaleX(-1)}.visit-overlay.phase-enter .visit-guest{animation:1.1s ease-out both visit-enter}@keyframes visit-enter{0%{opacity:0;translate:60%}to{opacity:1;translate:0}}.visit-overlay.phase-depart .visit-guest{animation:1.1s ease-in both visit-leave}@keyframes visit-leave{0%{opacity:1;translate:0}to{opacity:0;translate:70%}}.visit-tv{align-self:flex-end;width:74px;margin-bottom:8px}.visit-tv-screen{background:#101726;border:3px solid #26324a;border-radius:8px;height:52px;animation:1.1s steps(2,end) infinite visit-screen-glow}@keyframes visit-screen-glow{0%{box-shadow:inset 0 0 18px #6ea8fee6}to{box-shadow:inset 0 0 18px #c77dffe6}}.visit-tv-stand{background:#26324a;border-radius:0 0 6px 6px;width:26px;height:10px;margin:0 auto}.visit-overlay.phase-play.play-video_games .visit-host .gotchi-rig{animation:.5s ease-in-out infinite visit-mash}.visit-overlay.phase-play.play-video_games .visit-guest .gotchi-rig{animation:.5s ease-in-out -.25s infinite visit-mash}@keyframes visit-mash{0%,to{transform:rotate(0)translateY(0)}50%{transform:rotate(2.5deg)translateY(-3px)}}.visit-board{background:#a97142;border:3px solid #7a5230;border-radius:6px;align-self:flex-end;width:84px;margin-bottom:6px;padding:5px;transform:perspective(120px)rotateX(35deg)}.visit-board-grid{background:repeating-conic-gradient(#e8d8b8 0% 25%,#7a5230 0% 50%) 0 0/22px 22px;border-radius:3px;height:44px}.visit-overlay.phase-play.play-board_games .visit-host .gotchi-rig{animation:2.4s ease-in-out infinite visit-ponder}.visit-overlay.phase-play.play-board_games .visit-guest .gotchi-rig{animation:2.4s ease-in-out -1.2s infinite visit-ponder}@keyframes visit-ponder{0%,55%,to{transform:rotate(0)}20%{transform:rotate(-6deg)}35%{transform:rotate(-6deg)translateY(-4px)}}.visit-rope{pointer-events:none;width:100%;height:100%;position:absolute;inset:auto 0 0}.visit-rope-arc{stroke:#e46a8a;stroke-width:4px;stroke-linecap:round;transform-origin:50% 22%;animation:.55s linear infinite visit-rope-spin}.visit-rope-handle{fill:#a83a5c}@keyframes visit-rope-spin{0%{opacity:1;transform:scaleY(1)}45%{opacity:.5;transform:scaleY(.15)}50%{opacity:.25;transform:scaleY(-.55)}55%{opacity:.5;transform:scaleY(.15)}to{opacity:1;transform:scaleY(1)}}.visit-overlay.phase-play.play-jump_rope .visit-host .gotchi-rig{animation:.55s ease-in-out infinite visit-skip}.visit-overlay.phase-play.play-jump_rope .visit-guest .gotchi-rig{animation:.55s ease-in-out -.07s infinite visit-skip}@keyframes visit-skip{0%,to{transform:translateY(0)scaleY(1)}30%{transform:translateY(-14px)scaleY(1.04)}60%{transform:translateY(0)scaleY(.96)}}.visit-caption{justify-items:center;gap:var(--space-3,.75rem);min-height:3.2rem;display:grid}.visit-caption p{color:var(--text-on-dark,#f4f7ff);margin:0;font-size:1.05rem}.visit-gift{justify-items:center;gap:var(--space-3,.75rem);display:grid}.visit-rarity{text-transform:capitalize;opacity:.8}.visit-reward-icon{border:var(--border-w,2px) solid var(--border);border-radius:var(--radius-l,14px);background:var(--panel);box-shadow:var(--shadow-sticker), var(--shadow-2);animation:visit-reward-pop .6s var(--ease-spring,cubic-bezier(.34, 1.56, .64, 1)) both;place-items:center;padding:1rem;display:grid}@keyframes visit-reward-pop{0%{opacity:0;transform:scale(.4)translateY(18px)}to{opacity:1;transform:scale(1)translateY(0)}}.visit-from{color:var(--text-on-dark,#f4f7ff);opacity:.7;margin:0;font-size:.85rem}.gdevice-sticker{pointer-events:none;filter:drop-shadow(0 1px 1px #00000040);z-index:2;width:clamp(30px,14%,44px);position:absolute;bottom:8%;left:50%;translate:-50%;rotate:-8deg}.gdevice-sticker svg{width:100%;height:auto;display:block}@media (prefers-reduced-motion:reduce){.visit-alert,.visit-knock,.visit-tv-screen,.visit-rope-arc,.visit-overlay .gotchi-rig,.visit-overlay .visit-guest,.visit-reward-icon{animation:none}.visit-overlay.phase-enter .visit-guest,.visit-overlay.phase-depart .visit-guest{opacity:1;translate:0}}
.seasonal-overlay{pointer-events:none;z-index:2;position:absolute;inset:0;overflow:hidden}.seasonal-overlay span>svg{width:100%;height:100%;display:block}.seasonal-overlay .snowflake{aspect-ratio:1;filter:drop-shadow(0 0 4px #b4d2ff80);width:15px;animation:linear infinite snow-fall;position:absolute;top:-8%}@keyframes snow-fall{0%{opacity:0;transform:translateY(-10%)translate(0)}8%{opacity:1}90%{opacity:1}to{opacity:0;transform:translateY(1200%)translate(14px)}}.seasonal-overlay .ghost-visitor{aspect-ratio:32/36;opacity:0;filter:drop-shadow(0 0 10px #c8d7ff99);width:clamp(44px,28%,84px);animation:26s ease-in-out infinite ghost-drift;position:absolute;top:24%;left:-22%}@keyframes ghost-drift{0%,62%{opacity:0;left:-30%;transform:translateY(0)}66%{opacity:.85}74%{left:40%;transform:translateY(-10px)}82%{opacity:.85;left:80%;transform:translateY(4px)}88%,to{opacity:0;left:112%;transform:translateY(-6px)}}.seasonal-overlay .corner-pumpkin{aspect-ratio:32/30;filter:drop-shadow(0 0 8px #ff96288c);width:clamp(36px,22%,64px);animation:3.2s ease-in-out infinite pumpkin-glow;position:absolute;bottom:4%;right:5%}@keyframes pumpkin-glow{0%,to{opacity:.75}50%{opacity:1}}.seasonal-overlay .sun-badge{aspect-ratio:1;filter:drop-shadow(0 0 14px #ffd66e73);width:clamp(36px,22%,80px);animation:6s ease-in-out infinite sun-bask;position:absolute;top:5%;left:7%}@keyframes sun-bask{0%,to{opacity:.92;transform:scale(1)rotate(0)}50%{opacity:1;transform:scale(1.05)rotate(3deg)}}.seasonal-overlay .beach-ball-cameo{aspect-ratio:1;opacity:0;width:clamp(64px,44%,120px);animation:22s ease-in-out infinite ball-roll;position:absolute;bottom:4%;left:-30%}@keyframes ball-roll{0%,55%{opacity:0;left:-46%;transform:rotate(0)}58%{opacity:1}78%{opacity:1}85%,to{opacity:0;left:112%;transform:rotate(3turn)}}@media (prefers-reduced-motion:reduce){.seasonal-overlay .snowflake,.seasonal-overlay .ghost-visitor,.seasonal-overlay .beach-ball-cameo{opacity:0;animation:none}.seasonal-overlay .corner-pumpkin,.seasonal-overlay .sun-badge{animation:none}}.event-banner{border:var(--border-w) solid var(--border);border-radius:var(--radius,12px);background:var(--panel-2);box-shadow:var(--shadow-press-sm);align-items:center;gap:1rem;margin-bottom:1.2rem;padding:.9rem 1.2rem;display:flex}.event-banner .event-icon{font-size:1.6rem;line-height:1}.event-banner .event-copy{flex:1;min-width:0}.event-banner .event-copy h3{font-family:var(--display);margin:0 0 .15rem;font-size:1.05rem}.event-banner .event-copy p{color:var(--muted);margin:0;font-size:.9rem}.event-banner .event-ends{font-family:var(--mono);color:var(--muted);white-space:nowrap;font-size:.75rem}.event-banner.event-spooky{background:linear-gradient(120deg, #e0702024, var(--panel-2) 55%)}.event-banner.event-frost{background:linear-gradient(120deg, #6ea8fe24, var(--panel-2) 55%)}.event-banner.event-beach{background:linear-gradient(120deg, #ffd66e29, var(--panel-2) 55%)}.event-banner.event-caught-up{background:var(--panel-2)}.event-banner.event-caught-up .event-copy p:before{content:"✓ ";color:var(--mint,#7ee2b8)}@media (max-width:640px){.event-banner{flex-wrap:wrap}}.room-floor.floor-present{background:#d6404f;border:2px solid #8a2432;border-radius:6px;width:46px;height:38px;box-shadow:inset 0 -8px 10px #00000040}.room-floor.floor-present:before{content:"";background:#ffe07a;width:8px;position:absolute;inset:0 auto 0 50%;transform:translate(-50%)}.room-floor.floor-present:after{content:"🎀";font-size:14px;position:absolute;bottom:100%;left:50%;transform:translate(-50%)translateY(40%)}.room-floor.floor-surfboard{background:linear-gradient(160deg,#ffd66e 0%,#f08a4b 60%,#e05a6f 100%);border:2px solid #8a4a12;border-radius:50% 50% 42% 42%/26% 26% 74% 74%;width:34px;height:96px;bottom:32%;transform:rotate(8deg)}.room-floor.floor-surfboard:before{content:"";background:#fffbe6b3;border-radius:2px;width:3px;position:absolute;inset:8% auto 8% 50%;transform:translate(-50%)}.room-shelf.shelf-ghostlamp{background:radial-gradient(circle at 45% 32%,#ebf0fff2,#a0b4e68c);border-radius:50% 50% 40% 40%;width:30px;height:34px;animation:3.6s ease-in-out infinite pumpkin-glow;box-shadow:0 0 14px #c8d7ff99}.room-shelf.shelf-ghostlamp:before{content:"";background:#2a2a3a;border-radius:50%;width:5px;height:7px;position:absolute;top:38%;left:26%;box-shadow:12px 0 #2a2a3a}.room-shelf.shelf-snowglobe{background:radial-gradient(circle at 35% 30%,#ffffff80,#6ea8fe40 70%);border:2px solid #c8d7ff99;border-radius:50%;width:34px;height:34px}.room-shelf.shelf-snowglobe:before{content:"❄";text-align:center;color:#ebf4ffe6;font-size:12px;line-height:32px;position:absolute;inset:0}.room-shelf.shelf-snowglobe:after{content:"";background:#7a5230;border-radius:3px;width:70%;height:8px;position:absolute;top:96%;left:15%}.room-shelf.shelf-sandcastle{clip-path:polygon(0 100%,0 45%,12% 45%,12% 30%,24% 30%,24% 45%,38% 45%,38% 12%,46% 12%,46% 0,54% 0,54% 12%,62% 12%,62% 45%,76% 45%,76% 30%,88% 30%,88% 45%,100% 45%,100% 100%);background:linear-gradient(#e3c98a,#c9a45e);width:52px;height:40px}.room-shelf.shelf-sandcastle:before{content:"";background:#4a3018;border-radius:50% 50% 0 0;width:8px;height:12px;position:absolute;top:30%;left:46%}
@media (max-width:1023px){.site-header{padding:.55rem 1rem}}@media (min-width:561px) and (max-width:900px){.catalog-grid,.value-grid,.dash-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:900px){.home section{padding:3.25rem 1.25rem}.hero{grid-template-columns:1fr;gap:2rem}.player,.player.nav-collapsed{grid-template-columns:1fr;min-height:0}.lesson-nav{border-right:none;border-bottom:1px solid var(--border);max-height:42vh}}@media (max-width:560px){.home section{padding:2.5rem 1rem}.hero{padding-top:2.75rem!important}.hero-cta .btn{text-align:center;flex:100%}.section-head{margin-bottom:1.5rem}.catalog-grid,.value-grid{grid-template-columns:1fr}.dash-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}.catalog-filters{gap:.5rem 1rem}.auth-page{padding:2rem 1rem}.page{margin:2rem auto 3rem}.leaderboard,.pet-page{padding-left:1rem;padding-right:1rem}.lb-table th,.lb-table td{padding:.4rem .5rem;font-size:.85rem}.lesson-nav li button{min-height:40px}}@media (max-width:400px){.site-header{padding:.5rem .75rem}.site-header .brand{font-size:1rem}.home section{padding:2rem .9rem}.dash-tiles{grid-template-columns:1fr}.editor{height:260px}pre{font-size:12px}}

