@keyframes ffa{0%,to{transform:translate(0)}20%{transform:translate(46px,-30px)}45%{transform:translate(18px,-64px)}70%{transform:translate(-40px,-22px)}}@keyframes ffb{0%,to{transform:translate(0)}25%{transform:translate(-52px,-18px)}50%{transform:translate(-24px,26px)}75%{transform:translate(34px,12px)}}@keyframes ffc{0%,to{transform:translate(0)}30%{transform:translate(30px,34px)}60%{transform:translate(-30px,52px)}80%{transform:translate(-56px,10px)}}@keyframes ffblink{0%,to{opacity:.08}18%,34%{opacity:1}50%{opacity:.15}72%{opacity:.9}86%{opacity:.1}}@keyframes scdrift{0%{transform:translate(var(--fx,-30px),var(--fy,0px))}to{transform:translate(var(--tx,30px),var(--ty,0px))}}@keyframes scbob{0%,to{transform:translateY(0)rotate(-1.5deg)}50%{transform:translateY(3px)rotate(1.5deg)}}@keyframes sctw{0%,to{opacity:var(--o1,.25)}50%{opacity:var(--o2,1)}}@keyframes scrise{0%{opacity:0;transform:translateY(0)scale(.6)}15%{opacity:.7}to{transform:translateY(var(--ry,-70px)) scale(1.6);opacity:0}}@keyframes scsweep{0%{transform:rotate(var(--a1,-24deg))}to{transform:rotate(var(--a2,24deg))}}@keyframes scrip{0%{opacity:.7;transform:scale(.2)}to{opacity:0;transform:scale(1.6)}}@keyframes scspin{to{transform:rotate(360deg)}}@keyframes scsway{0%,to{transform:rotate(-4deg)}50%{transform:rotate(4deg)}}@keyframes scbl{0%,40%,to{opacity:1}50%,90%{opacity:.15}}@keyframes scwav{0%{transform:translate(0)}to{transform:translate(-44px)}}@keyframes scaur{0%,to{opacity:.25;transform:skew(-6deg)translate(-8px)}50%{opacity:.6;transform:skew(6deg)translate(8px)}}@keyframes glb{50%{opacity:.72}}@keyframes tw{50%{opacity:.2}}@keyframes rain{0%{transform:translateY(-30px)}to{transform:translateY(350px)}}@keyframes snow{0%{transform:translateY(-10px)}50%{transform:translate(10px,170px)}to{transform:translate(-6px,340px)}}@keyframes leaf{0%{transform:translateY(-14px)rotate(0)}to{transform:translate(-90px,340px)rotate(540deg)}}@keyframes steam{0%{opacity:.7;transform:translateY(0)}to{opacity:0;transform:translateY(-16px)}}@keyframes smoke{0%{opacity:.55;transform:translate(0)scale(.6)}to{opacity:0;transform:translate(6px,-22px)scale(1.5)}}@keyframes blink{50%{opacity:0}}@keyframes sway{0%,to{transform:rotate(-.5deg)}50%{transform:rotate(.7deg)}}@keyframes floaty{0%,to{transform:translate(0)}50%{transform:translate(10px,-14px)}}@keyframes zz{0%{opacity:0;transform:translate(0)}30%{opacity:.9}to{opacity:0;transform:translate(14px,-26px)}}@keyframes rgb{0%,to{stroke:#ff6bd6}33%{stroke:#6bd6ff}66%{stroke:#8dffc9}}@keyframes wag{0%,to{transform:rotate(0)}15%{transform:rotate(-16deg)}35%{transform:rotate(12deg)}55%{transform:rotate(-14deg)}75%{transform:rotate(8deg)}}@keyframes twitch{50%{transform:rotate(14deg)}}@keyframes twitchL{50%{transform:rotate(-14deg)}}@keyframes yawn{0%,to{transform:scaleY(.15)}35%,65%{transform:scaleY(1.3)}}@keyframes cstretch{0%,to{transform:none}25%,75%{transform:scale(1.12,.94)}}@keyframes hstretch{0%,to{transform:none}25%,75%{transform:translate(-6px,3px)}}@keyframes bob{50%{transform:translateY(-2px)}}@keyframes heartUp{0%{opacity:0;transform:translateY(4px)scale(.5)}20%{opacity:1}to{opacity:0;transform:translateY(-22px)scale(1.2)}}@keyframes noteUp{0%{opacity:0;transform:translate(0)rotate(-8deg)}20%{opacity:.9}to{opacity:0;transform:translate(7px,-26px)rotate(12deg)}}@keyframes dot{50%{transform:scale(1.6)}}@keyframes breathe{50%{transform:scaleY(1.05)}}@keyframes aur{50%{opacity:.55;transform:translate(14px)}}@keyframes met{0%{opacity:0;transform:translate(0)}8%{opacity:1}30%{opacity:0;transform:translate(110px,46px)}to{opacity:0;transform:translate(110px,46px)}}.room-root{background:#07050f;position:fixed;inset:0;overflow:hidden}.room-root{--line:#a9a3c247;--line2:#a9a3c21f;--text:#f3eefb;--muted:#abb2bf;--accent:#e8b64c;--ok:#7ee0c3;--bad:#ff9d7a;--panel:#120826f2}.room-root *{box-sizing:border-box;margin:0}.room-root{color:var(--text);font:15px/1.6 var(--font-inter),Inter,system-ui,-apple-system,sans-serif;-webkit-font-smoothing:antialiased}.room-root a{color:var(--accent)}.room-root .mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.room-root #scene{touch-action:none;cursor:grab;-webkit-user-select:none;user-select:none;width:100%;height:100%;display:block;position:fixed;inset:0}.room-root #scene.drag{cursor:grabbing}.room-root #scene *{pointer-events:none}.room-root #scene .hot{pointer-events:all}.room-root #vig{pointer-events:none;background:radial-gradient(at 50% 48%,#0000 55%,#05030c99 100%);position:fixed;inset:0}.room-root .hot{fill:#0000;stroke:#0000;stroke-width:2px;stroke-dasharray:6 6;cursor:pointer;outline:none;transition:stroke .2s}.room-root .hot:hover,.room-root .hot:focus-visible{stroke:#f3eefbcc}.room-root .obj{transition:filter .25s}.room-root .obj.hov{filter:brightness(1.14)drop-shadow(0 0 5px #fff6)}.room-root .fx{transition:opacity .8s}.room-root .star{animation:3.4s ease-in-out infinite tw}.room-root .rd{animation:.75s linear infinite rain}.room-root .sn{animation:7s linear infinite snow}.room-root .lf{animation:9s linear infinite leaf}.room-root .steam{animation:2.4s ease-out infinite steam}.room-root .smk{animation:4.5s ease-out infinite smoke}.room-root .cursor{animation:1.1s step-end infinite blink}.room-root .curt{transform-box:fill-box;transform-origin:50% 0;animation:7s ease-in-out infinite sway}.room-root .mote{animation:9s ease-in-out infinite floaty}.room-root .ff{animation:17s ease-in-out infinite ffa}.room-root .ff.b{animation-name:ffb}.room-root .ff.c{animation-name:ffc}.room-root .ff>g{animation:3.4s ease-in-out infinite ffblink}.room-root .zz{animation:3.2s ease-out infinite zz}.room-root .rgb{animation:6s linear infinite rgb}.room-root #catEyesO,.room-root #catMouth,.room-root #catHeart{opacity:0}.room-root #catHeart,.room-root #catMouth{transform-box:fill-box;transform-origin:50%}.room-root #cat.awake #catEyesO{opacity:1}.room-root #cat.awake #catEyesC{opacity:0}.room-root #catPupils{transition:transform .4s}.room-root #catTail{transform-box:fill-box;transform-origin:0 100%}.room-root #earL,.room-root #earR{transform-box:fill-box;transform-origin:50% 100%}.room-root #cat.wag #catTail{animation:1.6s ease-in-out wag}.room-root #cat.twitch #earR{animation:.5s twitch}.room-root #cat.twitchL #earL{animation:.5s twitchL}.room-root #cat.yawn #catMouth{opacity:1;animation:1.6s ease-in-out yawn}.room-root .cstretch{transform-box:fill-box;transform-origin:100% 100%}.room-root #cat.stretch .cstretch{animation:2s ease-in-out cstretch}.room-root #cat.stretch #catHead{animation:2s ease-in-out hstretch}.room-root #cat.walk #catIn{animation:.45s ease-in-out infinite bob}.room-root #catHeart.on{animation:1.6s ease-out heartUp}.room-root #spkLed{fill:#5a3a4a;transition:fill .3s}.room-root #speaker.on #spkLed{fill:#ffd98a}.room-root #spkCone{transform-box:fill-box;transform-origin:50%}.room-root .note{opacity:0}.room-root #speaker.on .note{animation:2.6s ease-out infinite noteUp}.room-root .notif{transform-box:fill-box;transform-origin:50%;animation:1.6s ease-in-out infinite dot}.room-root .breathe{transform-box:fill-box;transform-origin:50% 100%;animation:3.4s ease-in-out infinite breathe}.room-root .aur{animation:8s ease-in-out infinite aur}.room-root .met{animation:7s linear infinite met}.room-root .cover{transform-box:fill-box;transform-origin:100%}.room-root #tip{z-index:40;pointer-events:none;border:1px solid var(--line);white-space:nowrap;opacity:0;background:#0a0118e6;border-radius:999px;padding:4px 12px;font-size:13px;font-weight:600;transition:opacity .15s;position:fixed;transform:translate(-50%,-140%)}.room-root #tip.on{opacity:1}.room-root .hud{z-index:20;position:fixed}.room-root #aboutBtn{border:1px solid var(--line);color:var(--text);font:inherit;cursor:pointer;background:#0a0118d9;border-radius:999px;padding:7px 16px;font-size:13px;top:14px;right:18px}.room-root #aboutBtn:hover{border-color:var(--accent);background:#e8b64c26}.room-root #bar{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--line);background:#0a0118d9;border-radius:999px;align-items:center;gap:12px;max-width:calc(100vw - 16px);padding:8px 10px 8px 16px;display:flex;bottom:14px;left:50%;transform:translate(-50%)}.room-root #bar .t{min-width:48px;font:600 15px ui-monospace,monospace}.room-root #bar .ph{color:var(--muted);min-width:76px;font-size:12px}.room-root #bar input[type=range]{width:min(220px,26vw);accent-color:var(--accent)}.room-root #bar input[type=date]{border:1px solid var(--line2);color:var(--text);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;background:#06000f;border-radius:8px;padding:3px 6px;font:12px ui-monospace,monospace}.room-root #bar button{border:1px solid var(--line);color:var(--text);font:inherit;cursor:pointer;background:0 0;border-radius:999px;padding:4px 11px;font-size:13px}.room-root #bar button:hover,.room-root #bar button.on{border-color:var(--accent);background:#e8b64c26}.room-root #bar .sep{background:var(--line2);width:1px;height:22px}.room-root #panhint{color:var(--muted);border:1px solid var(--line2);background:#0a0118cc;border-radius:999px;padding:5px 14px;font-size:12px;transition:opacity .6s;display:none;bottom:76px;left:50%;transform:translate(-50%)}.room-root #panel{z-index:30;background:var(--panel);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-left:1px solid var(--line);width:min(440px,100vw);padding:26px 26px 40px;transition:transform .45s cubic-bezier(.2,.8,.2,1);position:fixed;top:0;bottom:0;right:0;overflow-y:auto;transform:translate(102%)}.room-root #panel.open{transform:none}.room-root #pbg{pointer-events:none;z-index:0;height:0;margin:0 -26px;position:sticky;top:26px}.room-root #pbg svg{opacity:.9;display:block;position:absolute;left:0;-webkit-mask-image:linear-gradient(#0000 0,#000 45%);mask-image:linear-gradient(#0000 0,#000 45%)}.room-root #pbg .d{animation:scdrift var(--t,40s) ease-in-out infinite alternate}.room-root #pbg .bob{animation:scbob var(--t,5s) ease-in-out infinite;transform-box:fill-box;transform-origin:50%}.room-root #pbg .tw{animation:sctw var(--t,3s) ease-in-out infinite;animation-delay:var(--dl,0s)}.room-root #pbg .rise{animation:scrise var(--t,6s) ease-out infinite;animation-delay:var(--dl,0s);transform-box:fill-box;transform-origin:50%}.room-root #pbg .sw{animation:scsweep var(--t,9s) ease-in-out infinite alternate}.room-root #pbg .rip{animation:scrip var(--t,4s) ease-out infinite;animation-delay:var(--dl,0s);transform-box:fill-box;transform-origin:50%}.room-root #pbg .spin{animation:scspin var(--t,20s) linear infinite;transform-box:fill-box;transform-origin:50%}.room-root #pbg .sway{animation:scsway var(--t,4s) ease-in-out infinite;animation-delay:var(--dl,0s);transform-box:fill-box;transform-origin:50% 100%}.room-root #pbg .bl{animation:scbl var(--t,6s) steps(1) infinite;animation-delay:var(--dl,0s)}.room-root #pbg .wav{animation:scwav var(--t,6s) linear infinite}.room-root #pbg .aur{animation:scaur var(--t,9s) ease-in-out infinite;animation-delay:var(--dl,0s)}.room-root #pbody{z-index:1;position:relative}.room-root #close{z-index:2}.room-root #panel{--pb:#120826f7;--pat:none;background:radial-gradient(130% 55% at 100% 0%,color-mix(in srgb,var(--accent) 24%,transparent),transparent 62%),var(--pat),var(--pb);box-shadow:inset 2px 0 0 color-mix(in srgb,var(--accent) 45%,transparent),inset 14px 0 28px -18px color-mix(in srgb,var(--accent) 60%,transparent)}.room-root #panel[data-k=board]{--accent:#ee7a6a;--pb:#1b0f1ef7;--pat:linear-gradient(#f3eefb0b 1px,transparent 1px) 0 0/28px 28px,linear-gradient(90deg,#f3eefb0b 1px,transparent 1px) 0 0/28px 28px}.room-root #panel[data-k=cork]{--accent:#eba55c;--pb:#24150fef;--pat:radial-gradient(#d6ae7c26 1px,transparent 1.6px) 0 0/9px 9px,radial-gradient(#00000030 1px,transparent 1.6px) 4px 5px/11px 11px}.room-root #panel[data-k=shelf]{--accent:#6ab6e8;--pb:#1d1209f7;--pat:repeating-linear-gradient(90deg,#ffffff07 0 2px,transparent 2px 15px),repeating-linear-gradient(0deg,#00000050 0 3px,transparent 3px 140px)}.room-root #panel[data-k=tablet]{--accent:#ffd98a;--pb:#15161df7;--pat:radial-gradient(#ffffff0c 1px,transparent 1.4px) 0 0/6px 6px,radial-gradient(#0000003a 1px,transparent 1.6px) 3px 3px/13px 13px}.room-root #panel[data-k=desk]{--accent:#f29bb8;--pb:#180a14f7;--pat:repeating-linear-gradient(0deg,#f29bb80b 0 1px,transparent 1px 3px)}.room-root #panel[data-k=phone]{--accent:#c9a0f0;--pb:#120a1ef7;--pat:radial-gradient(#c9a0f012 1.2px,transparent 1.8px) 0 0/16px 16px}.room-root #panel[data-k=notebook],.room-root #panel[data-k=about]{--accent:#e6c36a;--pb:#1d170ff7;--pat:linear-gradient(90deg,transparent 40px,#c0504d2e 40px 41.5px,transparent 41.5px),repeating-linear-gradient(0deg,transparent 0 27px,#e6c36a16 27px 28px)}.room-root #panel[data-k=window]{--accent:#79c0f0;--pb:#0b1a2af7;--pat:radial-gradient(60px 22px at 20% 18%,#ffffff0d,transparent),radial-gradient(80px 26px at 75% 30%,#ffffff0a,transparent)}.room-root #panel[data-k=clock]{--accent:#e0b04a;--pb:#1b1408f7;--pat:repeating-radial-gradient(circle at 100% 100%,#e0b04a0d 0 1px,transparent 1px 24px)}.room-root #close{border:1px solid var(--line);width:34px;height:34px;color:var(--text);cursor:pointer;background:0 0;border-radius:50%;font-size:16px;position:absolute;top:14px;right:14px}.room-root #close:hover{background:var(--accent);color:#1a0626}.room-root .eyebrow{letter-spacing:.14em;text-transform:uppercase;color:var(--accent);font:500 11px/1 ui-monospace,monospace}.room-root h2{letter-spacing:-.01em;margin:10px 40px 10px 0;font-size:25px;line-height:1.25}.room-root .body p{color:var(--muted);margin-bottom:12px}.room-root .body h3{margin:20px 0 6px;font-size:14px}.room-root .tag{border:1px solid var(--line2);color:var(--muted);border-radius:999px;margin:0 6px 6px 0;padding:2px 10px;font-size:12px;display:inline-block}.room-root .btn{border:1px solid var(--accent);color:var(--text);cursor:pointer;background:#e8b64c1f;border-radius:999px;margin:4px 8px 4px 0;padding:9px 16px;font-family:inherit;font-size:14px;text-decoration:none;transition:all .2s;display:inline-block}.room-root .btn:hover{background:var(--accent);color:#1a0626}.room-root .btn.g{border-color:var(--line);background:0 0}.room-root .btn.g:hover{color:var(--text);border-color:var(--accent);background:#e8b64c26}.room-root .row a{border-top:1px solid var(--line2);color:var(--text);justify-content:space-between;gap:14px;padding:12px 0;text-decoration:none;display:flex}.room-root .row a span:last-child{color:var(--muted);text-align:right;font-size:13px}.room-root .row a:hover span:first-child{color:var(--accent)}.room-root .trade{grid-template-columns:1fr 1fr;gap:8px;margin:8px 0 14px;display:grid}.room-root .trade div{border:1px solid var(--line2);color:var(--muted);border-radius:10px;padding:10px;font-size:13px}.room-root .trade b{letter-spacing:.08em;text-transform:uppercase;margin-bottom:2px;font-size:11px;display:block}.room-root .trade .g b{color:var(--ok)}.room-root .trade .c b{color:var(--bad)}.room-root ul.l{color:var(--muted);margin-bottom:10px;padding:0;font-size:14px;list-style:none}.room-root ul.l li{border-top:1px solid var(--line2);padding:7px 0}.room-root ul.l li:before{content:"→ ";color:var(--accent)}.room-root .note{color:#8a85a3;border:1px dashed var(--line);border-radius:8px;margin-top:16px;padding:8px 12px;font-size:12px}.room-root b.w{color:var(--text)}.room-root #welcome{z-index:35;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#05030caa;place-items:center;padding:20px;transition:opacity .6s;display:grid;position:fixed;inset:0}.room-root #welcome.gone{opacity:0;pointer-events:none}.room-root #welcome .card{border:1px solid var(--line);background:#120826f5;border-radius:20px;width:min(520px,100%);max-height:88dvh;padding:30px 30px 26px;overflow-y:auto;box-shadow:0 30px 80px #000c}.room-root #welcome h2{margin-right:0;font-size:32px}@media (max-width:700px){.room-root #panel{border-left:0;border-top:1px solid var(--line);width:100%;height:72dvh;box-shadow:inset 0 2px 0 color-mix(in srgb,var(--accent) 45%,transparent),inset 0 14px 28px -18px color-mix(in srgb,var(--accent) 60%,transparent);border-radius:18px 18px 0 0;top:auto;transform:translateY(102%)}.room-root #panel.open{transform:none}.room-root #bar .ph,.room-root #bar .sep,.room-root #bar input[type=range]{display:none}.room-root .trade{grid-template-columns:1fr}}@media (max-width:820px){.room-root #panel,.room-root #bar{-webkit-backdrop-filter:none;backdrop-filter:none}}@media (prefers-reduced-motion:reduce){.room-root *{transition:none!important;animation:none!important}}.room-root:not([data-controls]) #bar{display:none}.room-root.room-lite .gl1,.room-root.room-lite .gl2{animation:none}.room-root .gl1{animation:5.5s ease-in-out infinite glb}.room-root .gl2{animation:7.3s ease-in-out -2.6s infinite glb}
