.room-actions{position:fixed;top:max(78px,calc(env(safe-area-inset-top) + 64px));right:max(24px,env(safe-area-inset-right));z-index:2;display:flex;flex-wrap:wrap;justify-content:flex-end;max-width:calc(100vw - 36px);gap:8px;opacity:0;pointer-events:none;transition:opacity .35s ease}.is-ready .room-actions{opacity:1;pointer-events:auto}.room-actions button{display:flex;align-items:center;gap:7px;min-height:40px;padding:8px 12px;border:1px solid #edf3fa1f;border-radius:22px;color:#d7dce2;background:transparent;font-size:11px;cursor:pointer}.room-actions .mobile-reset-view{display:none}.room-actions button:hover:not(:disabled){color:#efc58d;border-color:#efc58d66}.room-actions button:focus-visible{outline:2px solid #e6c28f;outline-offset:3px}.room-actions button:disabled{opacity:.45;cursor:default}.room-actions svg{width:16px;height:16px}.room-actions kbd{padding:1px 4px;border:1px solid #edf3fa26;border-radius:4px;color:#c4b9a8;font-size:10px}.room-actions-message{position:absolute;top:48px;right:0;width:240px;color:#efc58d;font-size:12px;line-height:1.6}@media(max-width:600px){.room-actions{top:max(130px,calc(env(safe-area-inset-top) + 116px));right:18px}.room-actions kbd{display:none}}@media(prefers-reduced-motion:reduce){.room-actions{transition:none}}.room-actions button[aria-pressed=true]{color:#efc58d}.music-error{flex-basis:100%;text-align:right;color:#efc58d;font-size:11px}.floating-controls,.floating-controls-body{display:contents}.room-app .floating-controls.is-panel{--panel-safe-left: env(safe-area-inset-left, 0px);--panel-safe-right: env(safe-area-inset-right, 0px);--panel-safe-top: env(safe-area-inset-top, 0px);--panel-safe-bottom: env(safe-area-inset-bottom, 0px);--panel-width: clamp(290px, 22vw, 340px);display:block;position:fixed;width:var(--panel-width);max-width:calc(100vw - 24px);padding:10px;border:1px solid #edf3fa24;border-radius:22px;background:#26313ce8;box-shadow:0 12px 32px #0003,inset 0 1px #ffffff07;z-index:3;opacity:0;pointer-events:none}.room-app.is-ready .floating-controls.is-panel{opacity:1;pointer-events:auto}.floating-controls.is-panel .floating-controls-body{display:grid;gap:6px}.floating-controls.is-panel .floating-controls-body[hidden]{display:none}.room-app .floating-controls.is-panel .clock-control,.room-app .floating-controls.is-panel .mobile-mix,.room-app .floating-controls.is-panel .room-actions{position:relative;inset:auto;transform:none;width:100%;max-width:none;margin:0;font-size:clamp(10px,.75vw,12px)}.room-app .floating-controls.is-panel .clock-control{order:0;min-height:36px;padding:0 12px;gap:6px}.room-app .floating-controls.is-panel .mobile-mix{order:1;min-height:36px;padding:0 8px;gap:4px}.floating-controls.is-panel .mobile-mix-preset{min-height:34px;padding:0 4px;font-size:inherit}.room-app .floating-controls.is-panel .room-actions{order:2;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}.floating-controls.is-panel .room-actions button,.floating-controls.is-panel .room-actions .mobile-reset-view{display:flex;min-width:0;justify-content:center;min-height:36px;padding:4px 3px;font-size:10px;gap:4px;white-space:nowrap}.floating-controls.is-panel .room-actions svg{width:13px;height:13px;flex-shrink:0}.floating-controls.is-panel .room-actions kbd{display:none}.controls-panel-bar{display:flex;align-items:center;gap:4px;padding:0 6px;margin-bottom:5px}.controls-drag-handle,.controls-collapse,.controls-edge-tab{border:1px solid #edf3fa1f;color:#c6cbd1;background:#18212be6;font:inherit;cursor:pointer}.controls-drag-handle{display:flex;flex:1;align-items:center;justify-content:center;gap:8px;min-height:28px;padding:4px 10px;border-radius:14px;font-size:10px;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}.controls-drag-handle svg{width:16px;height:12px;fill:none;stroke:#bba789;stroke-width:2.5;stroke-linecap:round}.is-dragging .controls-drag-handle{cursor:grabbing;border-color:#d8b77d80}.controls-collapse{display:grid;place-items:center;width:30px;height:28px;border-radius:14px}.controls-collapse svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.3}.controls-edge-tab{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;width:40px;height:80px;border-radius:14px 0 0 14px;font-size:11px;box-shadow:-4px 4px 16px #0002}.controls-edge-tab>span:first-child{color:#e6c28f;font-size:20px;line-height:1}.floating-controls[data-edge=left] .controls-edge-tab{border-radius:0 14px 14px 0}.room-app .floating-controls.is-panel.is-collapsed{width:40px;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}.controls-drag-handle:focus-visible,.controls-collapse:focus-visible,.controls-edge-tab:focus-visible{outline:2px solid #e6c28f;outline-offset:2px}.controls-collapse:hover,.controls-edge-tab:hover{color:#efc58d;border-color:#efc58d66}@media(min-width:951px)and (pointer:fine){.room-app>.reset-view{display:none}.room-app .footer{bottom:calc(env(safe-area-inset-bottom) + 26px)}}.room-app .floating-controls.is-mobile-landscape{--panel-width: clamp(304px, 36vw, 340px);--panel-mobile-top: max(48px, calc(env(safe-area-inset-top) + 36px) );top:var(--panel-mobile-top);right:auto;max-height:calc(100dvh - var(--panel-mobile-top) - 12px);overflow-y:auto;overscroll-behavior:contain}.is-mobile-landscape .controls-drag-handle{min-height:44px;border-radius:22px;font-size:11px}.is-mobile-landscape .controls-panel-bar{padding:0}.is-mobile-landscape .controls-collapse{width:44px;height:44px;border-radius:50%;touch-action:manipulation}.room-app .floating-controls.is-panel.is-mobile-landscape .clock-control,.room-app .floating-controls.is-panel.is-mobile-landscape .mobile-mix,.room-app .floating-controls.is-panel.is-mobile-landscape .mobile-mix-preset,.room-app .floating-controls.is-panel.is-mobile-landscape .room-actions button,.room-app .floating-controls.is-panel.is-mobile-landscape .room-actions .mobile-reset-view{min-height:44px}.room-app .floating-controls.is-mobile-landscape .clock-control{font-size:11px}.is-mobile-landscape .room-actions button{touch-action:manipulation}.room-app .floating-controls.is-mobile-landscape.is-collapsed{right:auto;width:44px;overflow:visible}.is-mobile-landscape .controls-edge-tab{width:44px;min-height:80px;touch-action:manipulation}.social-card{--card-surface: #edebe8;--card-surface-light: #f4f3f1;--card-rim: #fffdf5;--card-text: #282d33;--card-muted: #777f89;--card-inset-shadow: #a5acb644;--card-focus: #6d7b8d;--card-label-background: #e74e60;--card-label-color: #fff;--card-width: 360px;--card-radius: 28px;--card-rim-width: 5px;--card-padding: 4cqw;--card-section-gap: 4cqw;--card-copy-padding: 5cqw;--card-text-gap: 2cqw;--card-title-size: 5.5cqw;--card-caption-size: 3.6cqw;--card-label-size: 3cqw;--card-label-width: 16cqw;--card-label-height: 6.5cqw;--card-line-height: 1.65;--card-shadow: 0 24px 60px #0004, 0 5px 12px #0002;width:min(var(--card-width),100%,calc((100dvh - 50px)*.72));container-type:inline-size;position:relative;padding:var(--card-rim-width);border:1px solid #ffffffc9;border-radius:var(--card-radius);color:var(--card-text);background:linear-gradient(145deg,var(--card-rim),#d9dce0);box-shadow:var(--card-shadow),inset 0 1px 1px #fff;animation:social-card-in .32s cubic-bezier(.2,.8,.2,1) both}.social-card-wechat{--card-label-background: #59b359}.social-card-dialog{--card-backdrop: rgb(18 25 33 / 64%);position:fixed;top:0;right:0;bottom:0;left:0;width:100%;max-width:none;height:100%;max-height:none;margin:0;padding:max(20px,env(safe-area-inset-top)) max(20px,env(safe-area-inset-right)) max(20px,env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left));border:0;background:transparent;overflow:auto;overscroll-behavior:contain}.social-card-dialog[open]{display:grid;place-items:center}.social-card-dialog::backdrop{background:var(--card-backdrop);-webkit-backdrop-filter:blur(var(--overlay-backdrop-blur, 5px));backdrop-filter:blur(var(--overlay-backdrop-blur, 5px));animation:social-shade-in .22s ease both}.social-card-face{position:relative;padding:var(--card-padding);border-radius:calc(var(--card-radius) - var(--card-rim-width));background:linear-gradient(155deg,var(--card-surface-light),var(--card-surface));box-shadow:inset 0 1px 2px #fff,inset 0 -1px 2px #b8bec638}.social-card-badge{display:inline-flex;align-items:center;justify-content:center;width:var(--card-label-width);height:var(--card-label-height);margin:1.5cqw 0 var(--card-section-gap) 1cqw;padding:0;vertical-align:top;line-height:1;border:1px solid #ffffffbd;border-radius:20px;background:linear-gradient(#ffffff0d,#00000008),var(--card-label-background);color:var(--card-label-color);font-size:var(--card-label-size);font-weight:500;letter-spacing:.08em;box-shadow:0 1px 2px #9ba4b52b}.social-card-close{position:absolute;z-index:1;top:1.5cqw;right:2cqw;width:44px;height:44px;padding:10px;border:0;border-radius:50%;background:transparent;color:var(--card-muted);cursor:pointer}.social-card-close svg{display:block;width:100%;height:100%;padding:4px;border-radius:50%;background:linear-gradient(145deg,#fafbfd,#e0e3e8);box-shadow:-1px -1px 3px #fff,2px 2px 4px #a8b0bb55;stroke:currentColor;stroke-width:1.5;fill:none}.social-card-close:focus-visible{outline:2px solid var(--card-focus);outline-offset:-3px}.social-card-close:hover{color:var(--card-text)}.social-card-qr{position:relative;width:100%;aspect-ratio:1;overflow:hidden;border:1px solid #ffffffba;border-radius:max(12px,calc(var(--card-radius) - 10px));background:#fff;box-shadow:0 2px 4px #939daa26}.social-card-qr img{display:block;width:100%;height:auto}.social-card-xiaohongshu .social-card-qr img{position:absolute;width:120%;max-width:none;left:-10%;top:-4%}.social-card-copy{margin-top:var(--card-section-gap);padding:var(--card-copy-padding);border-radius:max(12px,calc(var(--card-radius) - 10px));background:linear-gradient(135deg,#dfe3e933,#f6f7f966);box-shadow:inset 3px 3px 7px var(--card-inset-shadow),inset -3px -3px 7px #ffffffd9}.social-card h2{margin:0 0 var(--card-text-gap);font-size:var(--card-title-size);font-weight:600;line-height:1.3;letter-spacing:-.025em;overflow-wrap:anywhere}.social-card-caption{color:var(--card-muted);font-size:var(--card-caption-size);line-height:var(--card-line-height);text-wrap:pretty}.social-card-image-error{padding:20%;font-size:4cqw;line-height:1.8}@keyframes social-card-in{0%{opacity:0;transform:translateY(12px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes social-shade-in{0%{opacity:0}to{opacity:1}}@media(prefers-reduced-motion:reduce){.social-card,.social-card-dialog::backdrop{animation:none}}.envelope-art{--envelope-paper-start: #cac0b0;--envelope-paper-end: #cac0b0;--envelope-crease: #b99b6866;--envelope-address-top: 22%;--envelope-address-size: 4cqw;--envelope-stamp-top: 70%;--envelope-stamp-size: 2.5cqw;container-type:inline-size;display:block;position:relative;width:100%;height:100%;overflow:hidden;border:1px solid #c5ab80;border-radius:5px;background:linear-gradient(145deg,var(--envelope-paper-start),var(--envelope-paper-end));box-shadow:inset 0 0 30px #a58a5420,0 12px 28px #17110c30;color:#766247}.envelope-fold,.envelope-flap svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;fill:none;stroke:var(--envelope-crease);stroke-width:1;pointer-events:none}.envelope-address{position:absolute;top:var(--envelope-address-top);left:0;width:100%;text-align:center;font-size:var(--envelope-address-size);letter-spacing:.16em}.envelope-seal{position:absolute;top:42%;left:50%;display:grid;place-items:center;width:42px;height:42px;border:3px double #c58f69;border-radius:50%;transform:translate(-50%);background:#9b4d3f;color:#f6dbb4;font:italic 24px Georgia,serif;box-shadow:0 3px 5px #67352640}.envelope-stamp{position:absolute;top:var(--envelope-stamp-top);left:0;width:100%;text-align:center;font-size:var(--envelope-stamp-size);letter-spacing:.16em}.mailbox-letter{display:block;width:240px;height:160px;border:0;background:none;padding:0;cursor:pointer;transform:rotate(-6deg)}.mailbox-letter.is-glowing{animation:mail-beacon 2.8s ease-in-out infinite}.mailbox-letter:hover,.mailbox-letter:focus-visible{filter:drop-shadow(0 0 22px #ffd18f)}@keyframes mail-beacon{0%,to{filter:drop-shadow(0 0 8px #ffc97488);transform:translateY(0) rotate(-6deg)}50%{filter:drop-shadow(0 0 30px #ffd796);transform:translateY(-5px) rotate(-3deg)}}.welcome-letter-layer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;perspective:1100px;--letter-width: min(82vw, 400px)}.letter-shade{position:absolute;top:0;right:0;bottom:0;left:0;background:#10182088;-webkit-backdrop-filter:blur(var(--overlay-backdrop-blur, 5px));backdrop-filter:blur(var(--overlay-backdrop-blur, 5px));animation:letter-dim .6s both}.letter-close{position:absolute;right:max(24px,env(safe-area-inset-right));top:max(24px,env(safe-area-inset-top));z-index:2;border:1px solid #fff4;width:42px;height:42px;border-radius:50%;color:#f9ead6;background:#27313a;font-size:26px;cursor:pointer}.letter-flight{position:absolute;width:var(--letter-width);height:calc(var(--letter-width) * .667);left:50%;top:50%;transform:translate(-50%,-50%)}.stage-flying .letter-flight{animation:letter-arrive 1.25s cubic-bezier(.22,.68,.24,1) both}.stage-returning .letter-flight{animation:letter-arrive 1.25s cubic-bezier(.22,.68,.24,1) reverse both}.stage-returning .letter-shade{animation:letter-dim 1.25s reverse both}.letter-open{width:100%;height:100%;border:0;padding:0;background:none;cursor:pointer;color:#f8f2e7}.letter-open:disabled{opacity:1;cursor:default}.letter-open .envelope-seal{width:54px;height:54px;font-size:30px}.letter-instruction{display:block;margin-top:24px;font-size:12px;letter-spacing:.12em}.stage-flying .letter-instruction,.stage-returning .letter-instruction{visibility:hidden}.welcome-paper{position:absolute;width:100%;left:0;top:50%;transform:translateY(-50%);max-height:82dvh;overflow-y:auto;padding:clamp(25px,6vw,42px);background:#f8f2e7;color:#1a1a19;border-radius:4px;box-shadow:0 24px 80px #0005;animation:paper-unfold .65s both}.welcome-paper h2{font:500 clamp(22px,5vw,28px) Georgia,"Songti SC",serif;margin:24px 0;color:#1a1a19}.welcome-paper p{font-size:14px;line-height:2;margin:16px 0}.welcome-paper .letter-eyebrow{font-size:9px;letter-spacing:.2em;color:#c75f2f}.welcome-paper .letter-signature{text-align:right;font:italic 18px Georgia,serif;margin:28px 0}.welcome-paper button{border:0;border-top:1px solid #bfa77b55;padding-top:20px;width:100%;background:none;font-size:12px;color:#c75f2f;cursor:pointer}@keyframes letter-arrive{0%{left:var(--origin-x);top:var(--origin-y);transform:translate(-50%,-50%) scale(var(--origin-scale)) rotate(-10deg)}35%{left:39%;top:32%;transform:translate(-50%,-50%) scale(.7) rotate(-18deg) rotateY(25deg)}68%{left:54%;top:46%;transform:translate(-50%,-50%) scale(1.02) rotate(7deg) rotateY(-10deg)}to{left:50%;top:50%;transform:translate(-50%,-50%) scale(1) rotate(0)}}@keyframes letter-dim{0%{opacity:0}to{opacity:1}}@keyframes paper-unfold{0%{opacity:0;transform:translateY(-42%) rotateX(-18deg)}to{opacity:1;transform:translateY(-50%) rotateX(0)}}.reduce-motion *,.reduce-motion .letter-flight{animation-duration:.01ms!important}@media(prefers-reduced-motion:reduce){.mailbox-letter.is-glowing{animation:none;filter:drop-shadow(0 0 14px #f7dbb0)}}.envelope-flap{position:absolute;top:0;right:0;bottom:0;left:0;background:inherit;clip-path:polygon(0 0,100% 0,50% 52%);transform-origin:top}.stage-opening .envelope-art{overflow:visible}.stage-opening .envelope-flap{animation:flap-open .65s ease-in-out forwards}.stage-opening .envelope-seal{opacity:0;transition:opacity .2s}.stage-opening .letter-instruction{visibility:hidden}@keyframes flap-open{to{transform:rotateX(180deg);opacity:1}}.mailbox-letter:before{content:"";position:absolute;top:-90px;right:-90px;bottom:-90px;left:-90px}.social-portal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:none}.scene-html,.scene-html-camera,.scene-html-object{position:absolute;top:0;left:0}.scene-html{pointer-events:none;overflow:hidden}.scene-html-camera{transform-style:preserve-3d;pointer-events:none}.scene-html-object{pointer-events:auto}.room-social-link{padding:0;border:0;background:transparent;font:inherit;display:flex;align-items:center;justify-content:center;width:72px;height:72px;border-radius:12px;text-decoration:none;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;outline:none}.room-social-link:focus-visible{outline:1px solid rgb(255 244 218 / 80%);outline-offset:-2px}.room-social-link svg{width:55px;height:55px;filter:drop-shadow(.6px .8px .5px rgb(65 43 23 / 35%))}.social-xiaohongshu{font-family:PingFang SC,Microsoft YaHei,sans-serif;font-size:18px;font-weight:800;letter-spacing:.5px;text-shadow:.5px .7px .5px rgb(65 43 23 / 25%)}:root{--overlay-backdrop-blur: 5px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,sans-serif;color:#eee6d9;background:#222a32;font-synthesis:none;-webkit-font-smoothing:antialiased}*{box-sizing:border-box;margin:0;padding:0}html,body{width:100%;height:100%;overflow:hidden}button{font:inherit}.webgl{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;outline:none;touch-action:none;opacity:0;transition:opacity 1.4s ease}.is-ready .webgl{opacity:1}.identity{position:fixed;top:38px;top:max(38px,env(safe-area-inset-top));left:42px;pointer-events:none}.eyebrow{display:flex;align-items:center;gap:10px;font-size:10px;letter-spacing:.22em;color:#cec6b8}.eyebrow:before{content:"";width:6px;height:6px;margin-right:10px;border-radius:50%;background:#d9ad78;box-shadow:0 0 12px #e5b56b50}h1{margin-top:8px;font-size:20px;font-weight:400;letter-spacing:.09em}.subtitle{margin-top:4px;font-size:11px;color:#b3b2b0;letter-spacing:.12em}.mood{position:fixed;top:41px;top:max(41px,env(safe-area-inset-top));right:42px;display:flex;align-items:center;gap:9px;color:#d5c6b1;font-size:11px;letter-spacing:.08em;transition:right .25s ease}.is-debug .mood{right:370px}.mood svg{width:15px;height:15px;margin-right:9px}.footer{position:fixed;bottom:134px;bottom:max(134px,calc(env(safe-area-inset-bottom) + 112px));left:42px;right:42px;display:flex;align-items:center;justify-content:center}.hint{color:#a7a9aa;font-size:11px;letter-spacing:.05em}.mobile-hint{display:none}.mobile-mix{position:fixed;left:50%;bottom:22px;bottom:max(22px,env(safe-area-inset-bottom));z-index:1;display:flex;align-items:center;gap:11px;width:78vw;max-width:300px;width:min(78vw,300px);min-height:46px;padding:0 15px;border:1px solid #edf3fa1f;border-radius:24px;color:#d7dce2;background:#18212bd1;box-shadow:0 12px 32px #07101a40;transform:translate(-50%);opacity:0;pointer-events:none;transition:opacity .35s ease;font-size:10px;letter-spacing:.08em}.is-ready .mobile-mix{opacity:1;pointer-events:auto}.mobile-mix-preset{flex:1;min-width:30px;padding:10px 0;border:0;color:inherit;background:transparent;cursor:pointer;letter-spacing:inherit;transition:color .2s ease,text-shadow .2s ease}.mobile-mix-preset:hover,.mobile-mix-preset[aria-pressed=true]{color:#efc58d;text-shadow:0 0 12px #e9b87466}.mobile-mix-preset:focus-visible{outline-offset:1px}.reset-view{position:fixed;left:50%;bottom:78px;bottom:max(78px,calc(env(safe-area-inset-bottom) + 56px));z-index:1;display:flex;align-items:center;gap:7px;min-height:38px;padding:0 14px;border:1px solid #edf3fa26;border-radius:20px;color:#d7dce2;background:#18212bd1;box-shadow:0 8px 24px #07101a33;transform:translate(-50%);cursor:pointer;opacity:0;pointer-events:none;transition:color .2s ease,border-color .2s ease,opacity .35s ease;font-size:10px;letter-spacing:.06em}.reset-view svg{width:15px;height:15px;margin-right:7px}.reset-view:hover{color:#efc58d;border-color:#e9bd8266}.is-ready .reset-view{opacity:1;pointer-events:auto}.retry{border:1px solid #b3b1ac30;color:#e1d8cb;background:#aeb6bf09;border-radius:30px;padding:11px 18px;font-size:11px;letter-spacing:.05em;cursor:pointer;transition:background .2s,border-color .2s}.retry:hover{background:#c0b7a51a;border-color:#ccbda466}button:focus-visible{outline:2px solid #e6c28f;outline-offset:4px}button:disabled{opacity:.4;cursor:wait}.loading{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:24px;background:radial-gradient(ellipse at 50% 45%,#3e4245,#222a32 75%);transition:opacity .8s,visibility .8s}.loading>*+*{margin-top:24px}.loading-symbol{width:34px;height:34px;border:1px solid #b9a68e35;border-top-color:#d7b281;border-radius:50%;animation:turn 2s linear infinite}.loading-status{font-size:12px;letter-spacing:.12em;color:#d3c6b6}.has-error .loading-symbol{display:none}.loading-progress{width:min(280px,75vw);height:4px;accent-color:#d7b281}.is-ready .loading{opacity:0;visibility:hidden;pointer-events:none}.fallback{position:fixed;top:0;right:0;bottom:0;left:0;z-index:4;display:none;flex-direction:column;align-items:center;justify-content:center;padding:32px;text-align:center;background:radial-gradient(circle at 50% 38%,#545253,#252d35 68%,#19212a)}.has-fallback .fallback{display:flex}.has-fallback .loading{display:none}.fallback-window{width:170px;height:120px;margin-bottom:28px;padding:13px;border:7px solid #34302e;box-shadow:0 24px 52px #080e154d;background:#191e24}.fallback-window span{display:block;width:100%;height:100%;background:linear-gradient(145deg,#d7edff,#f5c991 55%,#7978ab);box-shadow:inset 0 0 24px #fff6}.fallback-title{margin-bottom:10px;font-size:22px;letter-spacing:.1em}.fallback-copy{margin-bottom:20px;color:#bfc2c5;font-size:12px;letter-spacing:.06em}.fallback-retry{border:1px solid #cab99b66;border-radius:24px;padding:10px 18px;color:#eee6d9;background:#ffffff0a}.credits{position:fixed;right:18px;bottom:max(14px,env(safe-area-inset-bottom));z-index:1;color:#a7a9aa;font-size:9px;letter-spacing:.08em;text-decoration:none;opacity:0;pointer-events:none;transition:color .2s ease,opacity .35s ease}.credits:hover{color:#efc58d}.credits:focus-visible{outline:2px solid #e6c28f;outline-offset:4px}.is-ready .credits{opacity:.62;pointer-events:auto}@supports (gap: 1px){.eyebrow:before,.mood svg{margin-right:0}.loading>*+*{margin-top:0}.reset-view svg{margin-right:0}}.debug-panel{position:fixed;z-index:3;top:34px;right:34px;width:300px;max-height:calc(100vh - 68px);overflow:visible}.debug-panel>div{max-height:inherit;overflow-y:auto}@keyframes turn{to{transform:rotate(360deg)}}@media(max-width:750px){.identity{top:28px;top:max(28px,env(safe-area-inset-top));left:24px}h1{font-size:22px}.eyebrow{font-size:9px}.mood,.is-debug .mood{top:29px;top:max(29px,env(safe-area-inset-top));right:24px;font-size:10px}.footer{left:24px;right:24px}.hint{font-size:10px}.desktop-hint{display:none}.mobile-hint{display:inline}.credits{right:12px;bottom:max(7px,env(safe-area-inset-bottom));font-size:8px}.debug-panel{top:130px;right:16px;max-width:calc(100vw - 32px);max-height:calc(100vh - 146px)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition-duration:.01ms!important}}#root,.room-app{width:100%;height:100%}.room-app .webgl{position:fixed!important}.clock-control{position:fixed;left:50%;bottom:max(78px,calc(env(safe-area-inset-bottom) + 56px));transform:translate(-50%);display:flex;align-items:center;gap:10px;width:min(90vw,370px);padding:10px 14px;border:1px solid #edf3fa1f;border-radius:24px;background:#18212bd1;font-size:10px;opacity:0;pointer-events:none}.is-ready .clock-control{opacity:1;pointer-events:auto}.clock-control label{white-space:nowrap}.clock-control output{color:#efc58d;font-variant-numeric:tabular-nums}.clock-control input{min-width:0;flex:1;accent-color:#e6bd84;cursor:pointer}.clock-control button{background:transparent;border:0;color:#efc58d;white-space:nowrap;cursor:pointer;padding:4px 0}.clock-control button:disabled{cursor:default}.reset-view{bottom:max(130px,calc(env(safe-area-inset-bottom) + 108px))}.footer{bottom:max(180px,calc(env(safe-area-inset-bottom) + 158px))}@media(max-width:750px),(max-width:950px)and (max-height:500px){.room-app{--mobile-edge: max(16px, env(safe-area-inset-left), env(safe-area-inset-right));--mobile-bottom: calc(env(safe-area-inset-bottom) + 24px) ;--mobile-controls-width: min(calc(100vw - 2 * var(--mobile-edge)), 400px)}.identity{top:calc(env(safe-area-inset-top) + 22px);left:var(--mobile-edge)}.identity h1{font-size:clamp(14px,5.5vw,20px);letter-spacing:.04em}.subtitle{font-size:10px;letter-spacing:.04em}.mood,.is-debug .mood{top:calc(env(safe-area-inset-top) + 22px);right:var(--mobile-edge);gap:4px;font-size:9px;letter-spacing:0}.room-app .room-actions{top:auto;right:auto;left:50%;bottom:var(--mobile-bottom);transform:translate(-50%);display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;width:var(--mobile-controls-width);max-width:none}.room-actions button,.room-actions .mobile-reset-view{display:flex;justify-content:center;min-width:0;min-height:44px;padding:8px 4px;gap:4px;font-size:10px;white-space:nowrap;touch-action:manipulation}.room-actions svg{flex-shrink:0;width:14px;height:14px}.room-actions kbd,.room-app>.reset-view{display:none}.mobile-mix,.clock-control{width:var(--mobile-controls-width);max-width:none;min-height:44px;z-index:2}.mobile-mix{bottom:calc(var(--mobile-bottom) + 52px);padding:0 8px;gap:4px}.mobile-mix-preset{min-height:44px;padding:10px 4px;font-size:12px;touch-action:manipulation}.clock-control{bottom:calc(var(--mobile-bottom) + 104px);padding:0 12px;gap:8px}.clock-control input,.clock-control button{min-height:44px;touch-action:manipulation}.footer{bottom:calc(var(--mobile-bottom) + 160px);pointer-events:none}.credits{right:var(--mobile-edge);bottom:calc(env(safe-area-inset-bottom) + 4px);min-height:20px;display:flex;align-items:center}.room-actions-message,.music-error{position:absolute;top:auto;bottom:160px;right:0;width:100%;text-align:center;background:#18212bf2;border-radius:12px;padding:8px}.room-actions-message:empty{display:none}.debug-panel{top:calc(env(safe-area-inset-top) + 120px);right:var(--mobile-edge);max-width:var(--mobile-controls-width);max-height:calc(100dvh - env(safe-area-inset-top) - var(--mobile-bottom) - 288px)}}@media(max-width:360px){.room-actions button:last-of-type svg{display:none}}@media(max-width:750px)and (max-height:650px){.footer{display:none}}@media(max-width:950px)and (max-height:500px)and (min-width:600px){.room-app{--mobile-controls-width: min(44vw, 340px);--mobile-bottom: calc(env(safe-area-inset-bottom) + 20px) }.identity{top:calc(env(safe-area-inset-top) + 12px)}.identity h1{font-size:16px;margin-top:6px}.identity .subtitle{margin-top:5px}.footer{display:none}.debug-panel{top:calc(env(safe-area-inset-top) + 70px);max-height:calc(100dvh - env(safe-area-inset-top) - 90px)}}@media(orientation:landscape)and (min-width:480px){.room-app{--landscape-edge: max(24px, env(safe-area-inset-right));--landscape-toolbar-top: max(78px, calc(env(safe-area-inset-top) + 64px) );--landscape-toolbar-width: clamp(272px, 22vw, 340px);--landscape-control-height: clamp(30px, 2.3vw, 38px);--landscape-control-gap: clamp(4px, .4vw, 6px);--landscape-control-step: calc( var(--landscape-control-height) + var(--landscape-control-gap) );--landscape-control-font: clamp(10px, .75vw, 12px);--landscape-control-icon: clamp(12px, .9vw, 14px)}.room-app .clock-control,.room-app .mobile-mix,.room-app .room-actions{left:auto;right:var(--landscape-edge);bottom:auto;width:var(--landscape-toolbar-width);max-width:none;transform:none;z-index:2}.room-app .clock-control{top:var(--landscape-toolbar-top);min-height:var(--landscape-control-height);padding:0 12px;gap:6px;font-size:var(--landscape-control-font)}.clock-control input,.clock-control button{min-height:calc(var(--landscape-control-height) - 2px)}.room-app .mobile-mix{top:calc(var(--landscape-toolbar-top) + var(--landscape-control-step));min-height:var(--landscape-control-height);padding:0 8px;gap:4px}.mobile-mix-preset{min-height:calc(var(--landscape-control-height) - 2px);padding:0 4px;font-size:var(--landscape-control-font)}.room-app .room-actions{top:calc(var(--landscape-toolbar-top) + 2 * var(--landscape-control-step));display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--landscape-control-gap)}.room-actions button,.room-actions .mobile-reset-view{display:flex;align-items:center;justify-content:center;min-width:0;min-height:var(--landscape-control-height);padding:4px 3px;gap:4px;font-size:var(--landscape-control-font);white-space:nowrap}.room-actions svg{width:var(--landscape-control-icon);height:var(--landscape-control-icon);flex-shrink:0}.room-actions kbd,.room-app>.reset-view{display:none}.room-app .footer{display:flex;bottom:calc(env(safe-area-inset-bottom) + 26px);pointer-events:none}.room-actions-message,.music-error{position:absolute;top:calc(100% + 8px);bottom:auto;right:0;width:100%;padding:8px;text-align:center;border-radius:12px;background:#18212bf2}.room-actions-message:empty{display:none}.debug-panel{top:calc(var(--landscape-toolbar-top) + 3 * var(--landscape-control-step) + 8px);max-height:calc(100dvh - var(--landscape-toolbar-top) - 3 * var(--landscape-control-step) - 24px)}}@media(orientation:landscape)and (max-height:500px)and (min-width:480px){.room-app{--landscape-edge: max(16px, env(safe-area-inset-right));--landscape-toolbar-top: calc(env(safe-area-inset-top) + 48px) }.desktop-hint{display:none}.mobile-hint{display:inline}}@media(orientation:landscape)and (min-width:480px)and (pointer:coarse),(orientation:landscape)and (min-width:480px)and (max-height:500px){.room-app{--landscape-toolbar-width: clamp(272px, 32vw, 320px);--landscape-control-height: 44px}}@media(orientation:landscape)and (min-width:480px)and (max-width:950px),(orientation:landscape)and (min-width:480px)and (pointer:coarse){.room-app{--mobile-landscape-hint-bottom: 12px}.room-app .footer{bottom:calc(env(safe-area-inset-bottom) + var(--mobile-landscape-hint-bottom))}}.room-app{--control-backdrop: blur(14px);--control-surface: #18212bd1}.room-app .clock-control,.room-app .mobile-mix{background:var(--control-surface);backdrop-filter:var(--control-backdrop);-webkit-backdrop-filter:var(--control-backdrop)}.room-app .room-actions button{background:var(--control-surface);backdrop-filter:none;-webkit-backdrop-filter:none}@media(pointer:coarse),(max-width:750px),(max-width:950px)and (max-height:500px){.room-app{--control-backdrop: blur(6px);--control-surface: #18212be6}}.room-app[data-graphics-quality=reduced]{--control-backdrop: none;--control-surface: #18212bf2}@media(prefers-reduced-transparency:reduce){.room-app{--control-backdrop: none;--control-surface: #18212bf2}}
