:root{color-scheme:dark;--night:#080907;--cream:#f7f6f2;--gold:#d4af37;--gold-light:#fef0c8;--amber:#ff9d0e;--amber-glow:#ff9d0e66;--ink:#1d1a12;--muted:#737a82;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px);-webkit-font-smoothing:antialiased}
html{height:100%;scroll-padding-top:env(safe-area-inset-top,0px)}
*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
body{height:100%;min-width:320px;background:var(--night);color:var(--cream);font-family:inherit;overflow:hidden}
button,input{font:inherit}
.stage{position:relative;height:100%;height:100dvh;display:grid;grid-template-columns:1fr 1fr;align-items:center;padding:24px clamp(16px,6vw,96px);gap:24px;overflow:hidden;background:radial-gradient(ellipse at 52% 44%,#f8cc6a0b,transparent 36%),linear-gradient(to top,#fff0c00d,transparent 18%),var(--night)}
.stage:after{position:absolute;inset:12px;z-index:0;border:1px solid #d4af3728;border-radius:16px;content:"";pointer-events:none}
.stage-brand{position:absolute;z-index:2;top:clamp(25px,5vh,52px);left:clamp(24px,6vw,96px);color:#a8a392;font-size:.65rem;font-weight:800;letter-spacing:.2em}
.stage-brand span{padding-inline:7px;color:var(--amber)}
.stage-grid{position:absolute;inset:0;z-index:0;background-image:linear-gradient(#ffffff08 1px,transparent 1px),linear-gradient(90deg,#ffffff08 1px,transparent 1px);background-size:48px 48px;opacity:.14;mask-image:linear-gradient(90deg,transparent,#000 18%,#000 82%,transparent);pointer-events:none}
#beamSvg{position:absolute;inset:0;z-index:1;width:100%;height:100%;pointer-events:none}
#beamGroup{opacity:0;transition:opacity .2s ease}
#beamGroup.on{opacity:1;animation:flicker .7s steps(1) 1}
#beamGroup.idle{animation:breathe 4.5s ease-in-out infinite}
@keyframes flicker{0%{opacity:0}12%{opacity:1}22%{opacity:.15}34%{opacity:.9}44%{opacity:.3}60%,100%{opacity:1}}
@keyframes breathe{0%,100%{opacity:1}50%{opacity:.84}}
#dust circle{fill:#fff3cc;opacity:.6;animation:dustDrift 8s ease-in-out infinite alternate}
@keyframes dustDrift{from{transform:translate(0,0);opacity:.15}50%{opacity:.75}to{transform:translate(16px,-28px);opacity:.2}}
.kidWrap{position:relative;z-index:3;justify-self:start;align-self:end;margin-bottom:14vh}
#kid{width:clamp(96px,15vw,160px);display:block;will-change:transform}
#kid svg{display:block;width:100%;height:auto;overflow:visible;cursor:pointer}
.leg{transform-origin:50px 124px}.armBack{transform-origin:46px 74px}
#kid.walking .legA{animation:stepA .45s ease-in-out infinite alternate}
#kid.walking .legB{animation:stepB .45s ease-in-out infinite alternate}
#kid.walking .armBack{animation:swing .45s ease-in-out infinite alternate}
#kid.walking .body{animation:bob .225s ease-in-out infinite alternate}
@keyframes stepA{from{transform:rotate(-24deg)}to{transform:rotate(24deg)}}
@keyframes stepB{from{transform:rotate(24deg)}to{transform:rotate(-24deg)}}
@keyframes swing{from{transform:rotate(18deg)}to{transform:rotate(-18deg)}}
@keyframes bob{from{transform:translateY(0)}to{transform:translateY(-2px)}}
#armFront{transform-origin:66px 76px;transform:rotate(82deg);transition:transform .55s cubic-bezier(.3,1.3,.5,1)}
.eye{transform-box:fill-box;transform-origin:center;animation:blink 4.2s infinite}
@keyframes blink{0%,93%,100%{transform:scaleY(1)}96%{transform:scaleY(.08)}}
#kid.jump svg{animation:jump .9s cubic-bezier(.3,.7,.4,1)}
@keyframes jump{0%,100%{transform:translateY(0)}25%{transform:translateY(-34px)}50%{transform:translateY(0)}70%{transform:translateY(-18px)}}
.cardWrap{position:relative;z-index:2;justify-self:center;width:100%;max-width:390px;perspective:none}
.card{position:relative;border:1px solid #e5d9b7;border-radius:14px;padding:clamp(22px,4vw,32px);background:var(--cream);color:var(--ink);opacity:.035;pointer-events:none;transition:opacity 1s ease,box-shadow 1.3s ease;box-shadow:0 0 0 #0000}
.card.lit{opacity:1;pointer-events:auto;box-shadow:0 0 70px var(--amber-glow),0 20px 50px #0008}
.logo-surface{display:grid;min-height:64px;place-items:center;margin-bottom:20px;padding:7px 14px;border:1px solid #e8e1d4;border-radius:9px;background:#fff}
.logo-surface img{display:block;width:min(100%,235px);height:auto;max-height:54px;object-fit:contain}
.kicker{display:flex;align-items:center;gap:8px;color:#9b6b19;font-size:.65rem;font-weight:800;letter-spacing:.15em}
.kicker i{width:7px;height:7px;border-radius:50%;background:var(--amber);box-shadow:0 0 11px #ff9d0e99}
.card h1{margin-top:13px;font-family:Georgia,"Times New Roman",serif;font-size:1.8rem;line-height:1.15;text-align:center}
.sub{margin:6px 0 22px;color:#737a82;font-size:.84rem;text-align:center}
.loginBtn{position:relative;display:flex;width:100%;max-width:300px;min-height:48px;align-items:center;justify-content:space-between;margin:0 auto;padding:0 12px;border:1px solid #d4af37;border-radius:8px;color:#2a1a00;background:linear-gradient(180deg,#ffbd4f,var(--amber));box-shadow:0 8px 22px #ff9d0e66;cursor:pointer;font-size:.95rem;font-weight:800;text-align:center;text-decoration:none;transition:box-shadow .2s,filter .2s}
.loginBtn span:first-child{flex:1;text-align:center}
.loginBtn:after{position:absolute;top:0;bottom:0;left:-60%;width:40%;content:"";background:linear-gradient(100deg,transparent,#ffffff8c,transparent);transform:skewX(-18deg)}
.card.lit .loginBtn:after{animation:shine 3.6s ease-in-out 1s infinite}
@keyframes shine{0%{left:-60%}30%,100%{left:130%}}
.loginBtn:hover{filter:brightness(1.06);box-shadow:0 10px 28px #ff9d0e8c}
.loginBtn:active{filter:brightness(.98)}
.buttonArrow{display:grid;width:27px;height:27px;place-items:center;border:1px solid #422e1230;border-radius:50%;background:#ffffff44;font-size:1rem}
.foot{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:12px;color:#777a72;font-size:.68rem}
.onlineDot{width:6px;height:6px;border-radius:50%;background:#5ba660;box-shadow:0 0 8px #5ba66066}
.footDivider{color:#c2bba8}
.replay{position:absolute;bottom:calc(14px + env(safe-area-inset-bottom,0px));left:50%;z-index:4;transform:translateX(-50%);padding:7px 15px;border:1px solid #38372d;border-radius:999px;background:#10110f;color:#aaa897;font-size:.76rem;cursor:pointer;transition:color .2s,border-color .2s}
.replay:hover{border-color:var(--gold);color:var(--gold-light)}
:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
.loginBtn:focus-visible{outline:3px solid #8b620d;outline-offset:4px}
@media(max-width:900px){.cardWrap{max-width:365px}.stage{gap:18px}.card{padding:25px}}
@media(max-width:720px){.stage{display:block;padding:0}.stage:after{inset:7px;border-radius:12px}.stage-brand{top:calc(13px + env(safe-area-inset-top,0px));left:22px;font-size:.56rem;letter-spacing:.14em}.cardWrap{position:absolute;top:43%;left:50%;width:calc(100% - 32px);max-width:390px;transform:translate(-50%,-50%)}.card{padding:20px 20px 19px}.card h1{font-size:1.58rem}.sub{margin-bottom:17px}.kidWrap{position:absolute;left:14px;bottom:calc(48px + env(safe-area-inset-bottom,0px));margin:0}#kid{width:78px}.replay{bottom:calc(12px + env(safe-area-inset-bottom,0px))}}
@media(max-width:720px) and (max-height:640px){.cardWrap{top:42%}.card{padding:16px 18px}.logo-surface{min-height:48px;margin-bottom:12px}.logo-surface img{max-height:40px}.card h1{margin-top:8px}.sub{margin-bottom:12px}#kid{width:62px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}

.external-login-note{max-width:300px;margin:9px auto 0;color:#87847c;font-size:.68rem;line-height:1.5;text-align:center}
