*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg-1:#0f1713;--bg-2:#060a08;--accent:#4fd6a0;--accent-2:#a5f3d0;--accent-deep:#1c8f6a;--warm:#ffd79a;--warm-2:#ffb765;--ink:#edf5f0;--muted:#edf5f09e;--faint:#edf5f08f;--line:#ffffff1a;--field:#ffffff0b;--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--ease-out:cubic-bezier(.22, .72, .16, 1);--snap:cubic-bezier(.4, 0, .2, 1);font-family:Manrope,system-ui,-apple-system,sans-serif}html,body{background:var(--bg-2);width:100%;min-height:100%;color:var(--ink);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.room{align-content:center;justify-items:center;min-height:100svh;padding:clamp(28px,5vh,56px) clamp(16px,3vw,44px) clamp(48px,7vh,76px);display:grid;position:relative;overflow-x:hidden}.ambient{z-index:0;pointer-events:none;position:fixed;inset:0;overflow:hidden}.ambient:before{content:"";background:radial-gradient(110% 70% at 62% -6%, #16211b 0%, transparent 55%), linear-gradient(180deg, var(--bg-1), var(--bg-2) 68%);position:absolute;inset:0}.orb{filter:blur(70px);mix-blend-mode:screen;opacity:0;transition:opacity .55s var(--ease-out) 60ms;will-change:transform;border-radius:50%;position:absolute}.room.is-on .orb{opacity:.5}.orb--a{background:radial-gradient(closest-side,#ffc58080,#0000);width:46vmax;height:46vmax;animation:22s ease-in-out infinite float-a;top:-20vmax;right:-16vmax}.orb--b{background:radial-gradient(closest-side,#4fd6a052,#0000);width:40vmax;height:40vmax;animation:28s ease-in-out infinite float-b;bottom:-20vmax;left:-16vmax}@keyframes float-a{0%,to{transform:translate(0)scale(1)}50%{transform:translate(-6vmax,4vmax)scale(1.1)}}@keyframes float-b{0%,to{transform:translate(0)scale(1)}50%{transform:translate(5vmax,-3vmax)scale(1.12)}}.roomlight{background:radial-gradient(58vmax 52vmax at var(--lx,68%) var(--ly,18%), #ffcd854d 0%, #ffb0601a 38%, transparent 72%);opacity:0;transition:opacity .5s var(--ease-out);position:absolute;inset:0}.room.is-on .roomlight{opacity:1}.motes{opacity:0;transition:opacity .8s .2s;position:absolute;inset:0}.room.is-on .motes{opacity:1}.mote{width:3px;height:3px;animation:mote-drift var(--dur,14s) ease-in-out infinite alternate;opacity:0;background:radial-gradient(circle,#ffe3b2e6,#0000 70%);border-radius:50%;position:absolute}@keyframes mote-drift{0%{opacity:0;transform:translate(0)}20%{opacity:.7}to{opacity:0;transform:translate(var(--dx,20px), var(--dy,-60px))}}.grain{opacity:.05;background-image:url(/textures/grain.png);background-size:260px;animation:6s steps(6,end) infinite grain;position:absolute;inset:-50%}@keyframes grain{0%{transform:translate(0)}20%{transform:translate(-4%,3%)}40%{transform:translate(3%,-5%)}60%{transform:translate(-3%,4%)}80%{transform:translate(5%,-2%)}to{transform:translate(0)}}.scene{z-index:1;justify-content:center;align-items:center;gap:clamp(0px,1vw,16px);width:100%;max-width:980px;display:flex;position:relative}.lamp-stage{z-index:4;pointer-events:none;flex:none;width:clamp(178px,34vw,436px);position:relative}.bob{animation:4.8s ease-in-out infinite bob}@keyframes bob{0%,to{transform:translateY(0)}50%{transform:translateY(-1.4px)}}.lamp{width:100%;height:auto;display:block;overflow:visible}.lamp__head{transform-box:view-box;transform-origin:180px 233px;transition:transform .55s var(--ease-spring);transform:rotate(-7deg)}.room.is-on .lamp__head{transform:rotate(0)}.face--on{opacity:0;transition:opacity .12s var(--snap)}.face--off{opacity:1;transition:opacity .12s var(--snap)}.room.is-on .face--on{opacity:1}.room.is-on .face--off{opacity:0}.zzz{transform-box:view-box;transform-origin:224px 148px}.room:not(.is-on) .zzz{animation:3.2s ease-in-out infinite zfloat}@keyframes zfloat{0%{opacity:.35;transform:translateY(3px)scale(.92)}50%{opacity:1;transform:translateY(-4px)scale(1)}to{opacity:0;transform:translateY(-9px)scale(1.04)}}.lamp_light{opacity:0;transition:opacity .12s var(--snap)}.room.is-on .lamp_light{opacity:1}.shade--on{opacity:0;transition:opacity .12s var(--snap)}.shade--off{opacity:1;transition:opacity .12s var(--snap)}.room.is-on .shade--on{opacity:1}.room.is-on .shade--off{opacity:0}.stand,.rope,.rope-sheen,.ferrule,.bead,.bead-hi{filter:brightness(.44);transition:filter .16s var(--snap)}.room.is-on .stand,.room.is-on .rope,.room.is-on .rope-sheen,.room.is-on .ferrule,.room.is-on .bead,.room.is-on .bead-hi{filter:none}.room.is-on .glow{transform-box:view-box;transform-origin:180px 242px;animation:3.6s ease-in-out infinite glowbreath}@keyframes glowbreath{0%,to{transform:scale(1)}50%{transform:scale(1.045)}}.pull{pointer-events:auto;cursor:grab;touch-action:none;outline:none}.pull.dragging{cursor:grabbing}.rope,.rope-sheen,.ferrule,.bead,.bead-hi,.beacon{pointer-events:none}.rope-hit{pointer-events:all}.pull:hover .bead,.pull:focus-visible .bead{filter:drop-shadow(0 0 6px #ffd696f2)}.pull:focus-visible .rope{stroke:var(--warm)}.pull{transform-box:view-box;transform-origin:210px 236px;animation:4.2s ease-in-out infinite ropeSway}.pull.busy{animation:none}@keyframes ropeSway{0%,to{transform:rotate(-2.2deg)}50%{transform:rotate(2.4deg)}}.beacon{opacity:0;transform-box:fill-box;transform-origin:50%}.room:not(.is-on) .beacon{animation:2.6s ease-in-out infinite beacon}@keyframes beacon{0%,to{opacity:0;transform:scale(.55)}45%{opacity:.55;transform:scale(1.3)}}.bead{transform-box:fill-box;transform-origin:50%}.bead.pop{animation:.22s knobpop}@keyframes knobpop{0%{transform:scale(1)}42%{transform:scale(1.35)}to{transform:scale(1)}}.hint{white-space:nowrap;letter-spacing:.08em;text-transform:uppercase;color:#ffdba59e;transition:opacity .3s var(--ease-out);pointer-events:none;margin-top:8px;font-size:.76rem;font-weight:600;position:absolute;top:87%;left:50%;transform:translate(-50%)}.room.is-on .hint{opacity:0}.auth{z-index:1;flex-direction:column;flex:0 410px;align-items:center;min-width:0;display:flex;position:relative}.mascot-stage{z-index:3;filter:drop-shadow(0 22px 26px #00000080);width:226px;transform:translate3d(var(--m-x,0), var(--m-y,0), 0);margin-bottom:-44px;position:relative}.mascot{width:100%;height:auto;display:block;overflow:visible}.mascot__shadow{fill:#0000004d}.mascot__art{filter:brightness(.21);transition:filter .42s var(--ease-out) 80ms}.room.is-on .mascot__art{filter:none}.eye__ball{transform:translate(var(--px,0px), var(--py,0px))}.mascot .head{transform:translate(var(--hx,0px), var(--hy,0px))}.mascot .ears{transform:translate(calc(var(--hx,0px) * .45), calc(var(--hy,0px) * .45))}.ear,.eye,.paw,.tongue{transform-box:fill-box;transform-origin:50%}.ear--l,.ear--r{transform-origin:50% 90%}.eye{transition:transform .12s}.mascot.is-blink .eye{transform:scaleY(.08)}.mouth{fill:none;stroke:#2b2b33;stroke-width:3px;stroke-linecap:round}.eye__sleep{opacity:0;transition:opacity .3s var(--ease-out)}.mascot.is-asleep .eye__sleep{opacity:1}.mascot.is-asleep .eye{transform:scaleY(0)}.mascot.is-asleep .ear--l{transform:rotate(-13deg)}.mascot.is-asleep .ear--r{transform:rotate(13deg)}.mascot.is-asleep .blush{opacity:.32}.tongue{opacity:0;transform-origin:top;transition:opacity .25s ease, transform .32s var(--ease-spring);transform:scaleY(.35)}.blush{opacity:.55;transition:opacity .35s}.ear{transition:transform .4s var(--ease-spring)}.paw{transition:transform .44s var(--ease-spring);filter:drop-shadow(0 6px 6px #0000003d);transform:translateY(120px)scale(.88)}.mascot.is-cover .paw{transform:translateY(0)scale(1)}.mascot.is-cover .blush{opacity:.95}.mascot.is-cover .ear--l{transform:rotate(-9deg)}.mascot.is-cover .ear--r{transform:rotate(9deg)}.mascot.is-peek .paw{transition:transform .34s var(--ease-out);transform:translateY(52px)scale(1)}.mascot.is-peek .blush{opacity:.95}.mascot.is-peek .ear--l{transform:rotate(-5deg)}.mascot.is-peek .ear--r{transform:rotate(5deg)}.mascot.is-happy .eye{transform:scaleY(.18)}.mascot.is-happy .blush{opacity:.9}.mascot.is-happy .mouth{transform:translateY(1px)}.mascot.is-happy .tongue{opacity:1;transform:scaleY(1)}.mascot{animation:5.2s ease-in-out infinite mascot-bob}@keyframes mascot-bob{0%,to{transform:translateY(0)rotate(0)}50%{transform:translateY(-5px)rotate(-.6deg)}}.card{z-index:2;-webkit-backdrop-filter:blur(26px)saturate(1.3);background:linear-gradient(162deg,#22362ea3,#0b141085);border:1px solid #ffffff21;border-radius:26px;width:100%;padding:56px 34px 30px;position:relative;overflow:hidden;box-shadow:0 44px 90px #0000008c,0 2px 8px #0000004d,inset 0 1px #ffffff29}.card__sheen{border-radius:inherit;pointer-events:none;background:radial-gradient(280px circle at var(--mx,50%) var(--my,-10%), #ffecc826, transparent 45%);position:absolute;inset:0}.card__head{text-align:center;margin-bottom:22px}.brand{letter-spacing:-.02em;background:linear-gradient(120deg, var(--accent-2), var(--accent));color:#0000;-webkit-background-clip:text;background-clip:text;font-family:Sora,sans-serif;font-size:2.1rem;font-weight:700}.sub{color:var(--muted);margin-top:5px;font-size:.9rem;font-weight:400}.form{flex-direction:column;gap:15px;display:flex}.field{position:relative}.field input{width:100%;color:var(--ink);background:var(--field);border:1px solid var(--line);border-radius:13px;outline:none;padding:21px 16px 8px;font-family:inherit;font-size:1rem;font-weight:500;transition:border-color .25s,background .25s,box-shadow .25s}#password{padding-right:48px}.field input:focus{border-color:var(--accent);background:#ffffff14;box-shadow:0 0 0 3px #4fd6a03d}.field label{color:var(--muted);pointer-events:none;transform-origin:0 0;font-size:1rem;transition:transform .2s,color .2s;position:absolute;top:16px;left:16px}.field input:focus+label,.field input:not(:placeholder-shown)+label{color:var(--accent-2);transform:translateY(-11px)scale(.72)}.reveal{width:36px;height:36px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:10px;place-items:center;transition:color .2s,background .2s;display:grid;position:absolute;top:50%;right:8px;transform:translateY(-50%)}.reveal:hover{color:var(--ink);background:#ffffff14}.reveal:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.reveal svg{width:20px;height:20px}.reveal .icon-off,.reveal.is-on .icon-on{display:none}.reveal.is-on .icon-off{display:block}.row{justify-content:space-between;align-items:center;margin-top:1px;font-size:.85rem;display:flex}.check{cursor:pointer;color:var(--muted);-webkit-user-select:none;user-select:none;align-items:center;gap:9px;display:inline-flex}.check input{opacity:0;width:0;height:0;position:absolute}.check__box{background:#ffffff0d;border:1px solid #ffffff42;border-radius:6px;place-items:center;width:18px;height:18px;transition:background .2s,border-color .2s;display:grid}.check__box:after{content:"";width:5px;height:9px;transition:transform .18s var(--ease-spring);border:2px solid #08281d;border-top:0;border-left:0;margin-top:-2px;transform:rotate(45deg)scale(0)}.check input:checked+.check__box{background:linear-gradient(135deg, var(--accent-2), var(--accent));border-color:#0000}.check input:checked+.check__box:after{transform:rotate(45deg)scale(1)}.check input:focus-visible+.check__box{box-shadow:0 0 0 3px #4fd6a057}.link{color:var(--accent-2);text-decoration:none;transition:color .2s}.link:hover{color:var(--accent);text-decoration:underline}.link:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.btn{color:#04211a;cursor:pointer;isolation:isolate;min-height:60px;transition:transform .2s var(--ease-out), box-shadow .2s ease, filter .2s ease;background:linear-gradient(135deg,#7ceabc 0%,#3cc292 54%,#1c8f6a 100%);border:1px solid #beffe257;border-radius:14px;justify-content:space-between;align-items:center;gap:0;margin-top:6px;padding:0 18px 0 26px;font-family:inherit;font-size:1.02rem;font-weight:700;display:flex;position:relative;box-shadow:0 16px 30px -10px #1c8f6a8c,inset 0 1px #ffffff4d}.btn:hover{filter:brightness(1.06);transform:translateY(-2px);box-shadow:0 22px 40px -12px #1c8f6aad,inset 0 1px #ffffff57}.btn:active{transform:translateY(0)scale(.99)}.btn:disabled{cursor:default}.btn:focus-visible{outline:3px solid var(--accent-2);outline-offset:3px}.doorbtn__label{z-index:1;letter-spacing:.01em;white-space:nowrap;transition:opacity .3s;position:relative}.btn.walking .doorbtn__label{opacity:.6}.dooric{perspective:300px;z-index:1;flex:none;width:62px;height:38px;position:relative}.dooric__frame{background:linear-gradient(#06241a,#031009);border-radius:5px;width:28px;height:34px;position:absolute;top:2px;right:0;overflow:hidden;box-shadow:inset 0 0 0 1.5px #a0f0cd4d}.dooric__glow{opacity:0;transition:opacity .35s var(--ease-out);background:radial-gradient(62% 72% at 50% 46%,#ffdba0f2,#ffbe6e00 72%);position:absolute;inset:0}.dooric__panel{background:linear-gradient(180deg, var(--accent-2), var(--accent) 55%, var(--accent-deep));transform-origin:100%;width:28px;height:34px;transition:transform .42s var(--ease-out);backface-visibility:hidden;border-radius:5px;position:absolute;top:2px;right:0;transform:rotateY(0);box-shadow:inset 0 0 0 1.5px #ffffff42,inset -6px 0 10px #00000042}.dooric__handle{background:linear-gradient(#fff,#d6f7e8);border-radius:2px;width:2.5px;height:10px;position:absolute;top:50%;left:4px;transform:translateY(-50%)}.dooric__person{color:#fff;transition:transform .74s var(--ease-out), opacity .3s var(--ease-out) .36s;position:absolute;bottom:2px;left:2px}.dooric__person svg{display:block;overflow:visible}.leg,.arm,.shin{transform-box:fill-box;transform-origin:50% 0}.person__bob,.person{transform-box:fill-box;transform-origin:50% 100%}.leg--front{transform:rotate(11deg)}.leg--back{transform:rotate(-11deg)}.arm--front{transform:rotate(-9deg)}.arm--back{transform:rotate(9deg)}.leg--front .shin,.leg--back .shin{transform:rotate(7deg)}.person{transition:transform .25s var(--ease-out)}.btn.walking .person{transform:rotate(4deg)}.btn.walking .leg--front{animation:.46s linear infinite thighF}.btn.walking .leg--back{animation:.46s linear infinite thighB}.btn.walking .leg--front .shin{animation:.46s linear infinite shinF}.btn.walking .leg--back .shin{animation:.46s linear infinite shinB}.btn.walking .arm--front{animation:.46s linear infinite armF}.btn.walking .arm--back{animation:.46s linear infinite armB}.btn.walking .person__bob{animation:.23s linear infinite bob}@keyframes thighF{0%,to{transform:rotate(26deg)}50%{transform:rotate(-24deg)}}@keyframes thighB{0%,to{transform:rotate(-24deg)}50%{transform:rotate(26deg)}}@keyframes armF{0%,to{transform:rotate(-24deg)}50%{transform:rotate(24deg)}}@keyframes armB{0%,to{transform:rotate(24deg)}50%{transform:rotate(-24deg)}}@keyframes shinF{0%{transform:rotate(8deg)}25%{transform:rotate(48deg)}55%{transform:rotate(10deg)}to{transform:rotate(8deg)}}@keyframes shinB{0%{transform:rotate(34deg)}30%{transform:rotate(6deg)}78%{transform:rotate(44deg)}to{transform:rotate(34deg)}}.btn.dooropen .dooric__panel{transform:rotateY(72deg)}.btn.dooropen .dooric__glow{opacity:.95}.btn.out .dooric__person{opacity:0;transform:translate(36px)scale(.72)}.status{min-height:0;color:var(--muted);text-align:center;font-size:.8rem}.status:empty{display:none}.divider{color:var(--faint);letter-spacing:.02em;align-items:center;gap:12px;font-size:.72rem;display:flex}.divider:before,.divider:after{content:"";background:var(--line);flex:1;height:1px}.socials{grid-template-columns:1fr 1fr;gap:12px;display:grid}.social{border:1px solid var(--line);color:var(--ink);cursor:pointer;background:#ffffff0d;border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:11px;font-family:inherit;font-size:.9rem;font-weight:600;transition:background .2s,transform .2s,border-color .2s;display:flex}.social:hover{background:#ffffff1c;border-color:#ffffff38;transform:translateY(-1px)}.social:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.social svg{width:18px;height:18px}.foot{text-align:center;color:var(--muted);margin-top:2px;font-size:.85rem}html.js .card,html.js .mascot-stage{transition:opacity .5s var(--ease-out) .14s, transform .62s var(--ease-spring) .14s, filter .42s var(--ease-out) 80ms}html.js .room:not(.is-on) .card{opacity:.07;transition-delay:0s;transform:translateY(18px)scale(.985)}html.js .room:not(.is-on) .card__sheen{opacity:0}html.js .room:not(.is-on) .mascot-stage{transform:translate3d(var(--m-x,0), 14px, 0) scale(.965);transition-delay:0s}html.js .lamp-stage{opacity:0;transform:translateY(16px)scale(.97)}html.js .room.is-in .lamp-stage{opacity:1;transition:opacity .6s ease, transform .9s var(--ease-spring);transform:none}html.js .hint{opacity:0}html.js .room.is-in .hint{opacity:1;transition:opacity .6s .7s}html.js .room.is-in.is-on .hint{opacity:0;transition:opacity .3s var(--ease-out)}@media (width<=840px){.room{padding:clamp(14px,2vh,30px) 20px clamp(24px,3vh,40px)}.scene{flex-direction:column;align-items:center;gap:0}.lamp-stage{width:clamp(180px,52vw,244px);margin-bottom:-11%}.hint{text-align:center;margin:2px 0 4px;position:static;transform:none}.auth{flex:none;width:min(100%,410px)}}@media (width<=430px){.card{padding:52px 24px 26px}.mascot-stage{width:186px;margin-bottom:-36px}.brand{font-size:1.9rem}.hint{font-size:.68rem}}@media (width>=841px) and (height<=760px){.lamp-stage{width:clamp(170px,21vw,262px)}.mascot-stage{width:196px;margin-bottom:-38px}.card{padding:48px 30px 24px}.form{gap:13px}}@media (prefers-reduced-motion:reduce){.orb,.mote,.grain,.mascot,.pull,.zzz,.beacon,.bob,.room.is-on .glow{animation:none!important}html.js .card,html.js .mascot-stage,html.js .lamp-stage,html.js .hint,.lamp_light,.shade--on,.shade--off,.face--on,.face--off,.lamp__head,.eye,.eye__sleep,.ear,.roomlight,.stand,.rope,.rope-sheen,.ferrule,.bead,.bead-hi,.mascot__art{transition-duration:1ms!important;transition-delay:0s!important}.paw{transition:transform .2s}.btn.walking .leg,.btn.walking .arm,.btn.walking .person__bob{animation:none!important}}html:not(.js) .lamp-stage,html:not(.js) .hint{display:none}html:not(.js) .roomlight,html:not(.js) .orb,html:not(.js) .motes{opacity:1}html:not(.js) .mascot__art{filter:none}
