:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,sans-serif;color:#2b1c20;background:#d7b995 url(/assets/room-background-v2.webp) center / cover fixed no-repeat;font-synthesis:none;text-rendering:optimizeLegibility;--ink: #2b1c20;--muted: #786465;--paper: #fbf4e9;--cream: #fffaf2;--red: #c84832;--red-deep: #a93b2c;--jade: #4c8f83;--gold: #c89a45;--line: rgba(72, 41, 39, .13);--shadow: 0 16px 45px rgba(62, 32, 27, .14)}*{box-sizing:border-box}html,body,#root{margin:0;width:100%;min-width:0;height:100%;min-height:100dvh;overflow:hidden}button,input{font:inherit}button,input,canvas{-webkit-tap-highlight-color:transparent}button{border:0;cursor:pointer}button:focus:not(:focus-visible){outline:none}button:focus-visible{outline:1px solid rgba(213,169,95,.88);outline-offset:2px}button:disabled{cursor:default;opacity:.52}.icon{display:block;flex:0 0 auto}.eyebrow{color:var(--muted);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase}.app-shell{position:relative;display:flex;flex-direction:column;width:min(100%,480px);height:100%;min-height:100dvh;margin:0 auto;background:var(--paper);overflow:hidden;box-shadow:0 0 0 1px #5935271a,0 16px 60px #3e201b3b}.topbar{z-index:5;flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;min-height:78px;padding:15px clamp(18px,4vw,62px) 11px;color:var(--ink)}.brand-lockup,.top-actions,.home-status,.debug-pill,.text-button,.primary-button,.focus-exit,.focus-control{display:flex;align-items:center}.brand-lockup{gap:11px}.brand-lockup h1{margin:2px 0 0;font-size:1rem;letter-spacing:.06em;font-weight:700}.brand-seal{display:grid;place-items:center;width:38px;height:38px;border:1px solid rgba(255,255,255,.44);border-radius:13px 13px 13px 5px;background:var(--red);color:#fff7e9;font-family:Songti SC,STSong,serif;font-size:1.18rem;box-shadow:0 5px 12px #9b2e1f2e}.top-actions{gap:14px}.home-status{gap:7px;color:#6a5555;font-size:.8rem}.home-status i,.ambient-dot,.sticker-dot{display:inline-block;border-radius:50%;background:var(--jade)}.home-status i{width:7px;height:7px;box-shadow:0 0 0 4px #4c8f831c}.icon-button{display:grid;place-items:center;width:38px;height:38px;padding:0;border:1px solid var(--line);border-radius:50%;background:#fffaf2ad;color:var(--ink);transition:.2s ease}.icon-button:hover{background:var(--cream);transform:translateY(-1px)}.debug-pill{height:30px;padding:0 11px;border-radius:999px;background:#261a1d;color:#fff7e9;font-size:.7rem;letter-spacing:.08em}.room-shell{position:relative;flex:1 1 0;min-height:0;isolation:isolate;overflow:hidden;background:#e6c7a8 url(/assets/room-background-v2.webp) center / cover no-repeat}.room-shell:after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,#fff5e12e,#74362c0a 55%,#2e1a1a33);pointer-events:none}.scene-layer,.away-room{position:absolute;inset:0}.scene-layer canvas{position:absolute!important;inset:0;width:100%!important;height:100%!important;z-index:2;touch-action:none}.window-glow{position:absolute;inset:-15% 42% 34% -15%;z-index:1;background:radial-gradient(circle,rgba(255,234,180,.42),transparent 68%);filter:blur(10px);animation:sun-breathe 8s ease-in-out infinite alternate;pointer-events:none}.dust-layer{position:absolute;inset:20% 20% 15% 25%;z-index:1;pointer-events:none}.dust-layer i{position:absolute;width:3px;height:3px;border-radius:50%;background:#fff1cbad;animation:dust-float 7s ease-in-out infinite}.dust-layer i:nth-child(1){left:17%;top:30%;animation-delay:-2s}.dust-layer i:nth-child(2){left:31%;top:55%;animation-delay:-4s}.dust-layer i:nth-child(3){left:67%;top:24%;animation-delay:-1s}.dust-layer i:nth-child(4){left:78%;top:61%;animation-delay:-6s}.dust-layer i:nth-child(5){left:48%;top:42%;animation-delay:-3s}.scene-floor-glow{position:absolute;left:50%;bottom:9%;z-index:1;width:27%;height:9%;transform:translate(-50%);border-radius:50%;background:#c848321f;filter:blur(18px);transition:.5s ease;pointer-events:none}.scene-floor-glow.is-returning{background:#c89a4552;transform:translate(-50%) scale(1.4)}.room-caption{position:absolute;left:clamp(22px,5vw,74px);bottom:24px;z-index:3;max-width:250px;color:var(--ink);pointer-events:none}.room-caption p{margin:6px 0 0;color:#2b1c20b8;font-size:.88rem;line-height:1.5}.first-entry-guide{position:absolute;z-index:7;width:1px;height:1px;transform:translate(-50%,-50%);pointer-events:none}.first-entry-guide__halo{position:absolute;left:50%;top:50%;width:142px;height:142px;border:1px solid rgba(226,165,67,.72);border-radius:50%;box-shadow:0 0 0 8px #ffdd9124,0 0 28px #ffcf6957;transform:translate(-50%,-50%);animation:first-guide-halo 2.2s ease-in-out infinite}.first-entry-guide__copy{position:absolute;left:50%;bottom:72px;width:max-content;max-width:min(270px,78vw);padding:11px 17px;border:1px solid rgba(157,111,67,.28);border-radius:999px 999px 999px 7px;background:#fff7e3eb;color:#5a3c31;box-shadow:0 9px 22px #49261e24;font-size:.84rem;line-height:1.4;transform:translate(-50%);animation:first-guide-copy-in .35s ease both}.first-entry-guide__copy:after{content:"";position:absolute;left:50%;bottom:-6px;width:10px;height:10px;border-right:1px solid rgba(157,111,67,.22);border-bottom:1px solid rgba(157,111,67,.22);background:#fff7e3e6;transform:translate(-50%) rotate(45deg)}.first-entry-nav-guide{position:absolute;left:50%;bottom:calc(86px + env(safe-area-inset-bottom));z-index:8;width:min(270px,78vw);transform:translate(-50%);pointer-events:none;text-align:center}.first-entry-nav-guide__halo{position:absolute;left:50%;bottom:-43px;width:156px;height:68px;border:1px solid rgba(226,165,67,.72);border-radius:50%;box-shadow:0 0 0 7px #ffdd9121,0 0 25px #ffcf6959;transform:translate(-50%);animation:first-guide-halo 2.2s ease-in-out infinite}.first-entry-nav-guide p{position:relative;margin:0;padding:10px 15px;border:1px solid rgba(157,111,67,.28);border-radius:17px 17px 5px;background:#fff7e3f2;color:#5a3c31;box-shadow:0 9px 22px #49261e24;font-size:.82rem;line-height:1.35;animation:first-guide-panel-in .35s ease both}.first-entry-nav-guide p:after{content:"";position:absolute;left:50%;bottom:-6px;width:10px;height:10px;border-right:1px solid rgba(157,111,67,.22);border-bottom:1px solid rgba(157,111,67,.22);background:#fff7e3f2;transform:translate(-50%) rotate(45deg)}.first-entry-nav-guide small{display:block;margin-top:3px;color:#896c5c;font-size:.69rem}.speech-bubble{position:absolute;top:16%;left:50%;z-index:7;max-width:min(300px,78vw);padding:12px 17px;transform:translate(-50%,-100%);border:1px solid rgba(157,111,67,.28);border-radius:18px 18px 18px 5px;background:#fff7e3d1;color:#5a3c31;box-shadow:0 9px 22px #49261e1f;backdrop-filter:blur(10px);font-size:.92rem;line-height:1.45;white-space:nowrap;animation:bubble-in .24s ease both}.speech-bubble:after{content:"";position:absolute;left:17px;bottom:-6px;width:10px;height:10px;border-right:1px solid rgba(157,111,67,.22);border-bottom:1px solid rgba(157,111,67,.22);background:#fff7e3c2;transform:rotate(45deg)}.return-ribbon{position:absolute;top:19px;right:22px;z-index:4;padding:8px 13px;border-radius:999px;background:#fffaf2c2;color:var(--red-deep);font-size:.75rem;box-shadow:0 5px 16px #4c27211a}.ambient-label{position:absolute;right:clamp(22px,4vw,62px);bottom:24px;z-index:3;display:flex;align-items:center;gap:8px;color:#2b1c208f;font-size:.73rem}.ambient-dot{width:6px;height:6px;opacity:.7}.scene-loading{position:absolute;left:50%;bottom:clamp(18px,7%,56px);z-index:8;display:flex;align-items:center;gap:8px;max-width:calc(100% - 36px);padding:8px 12px;transform:translate(-50%);border:1px solid rgba(157,111,67,.18);border-radius:999px;background:#fffaf2c2;color:#745953;box-shadow:0 7px 19px #49261e1f;backdrop-filter:blur(10px);font-size:.68rem;white-space:nowrap;pointer-events:none}.scene-loading small{color:#a1847d;font-size:.6rem;font-variant-numeric:tabular-nums}.scene-loading-dots{display:inline-flex;gap:3px}.scene-loading-dots i{width:4px;height:4px;border-radius:50%;background:var(--red);animation:loading-dot 1.05s ease-in-out infinite}.scene-loading-dots i:nth-child(2){animation-delay:.14s}.scene-loading-dots i:nth-child(3){animation-delay:.28s}.character-load-fallback{position:absolute;left:50%;bottom:clamp(86px,15%,140px);z-index:8;display:flex;align-items:center;gap:9px;width:min(260px,calc(100% - 42px));padding:8px 12px 8px 8px;transform:translate(-50%);border:1px solid rgba(157,111,67,.18);border-radius:18px;background:#fffaf2cc;color:#745953;box-shadow:0 9px 24px #49261e21;backdrop-filter:blur(12px)}.character-load-fallback img{width:42px;height:58px;object-fit:contain;opacity:.62}.character-load-fallback div{display:grid;gap:3px;min-width:0}.character-load-fallback strong{font-size:.72rem;font-weight:700}.character-load-fallback small{color:#a1847d;font-size:.6rem;line-height:1.35}.character-load-fallback button{justify-self:start;margin-top:3px;padding:5px 10px;border-radius:999px;background:#c84832;color:#fff8ec;font-size:.62rem}.bottom-nav{position:relative;z-index:6;flex:0 0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:5px;width:min(414px,calc(100% - 24px));margin:0 auto calc(9px + env(safe-area-inset-bottom));padding:6px;border:1px solid rgba(255,255,255,.62);border-radius:21px;background:#fffaf2ad;box-shadow:0 12px 34px #4e271f21;backdrop-filter:blur(18px)}.bottom-nav button{display:flex;flex-direction:column;align-items:center;min-width:0;padding:7px 5px 6px;border-radius:16px;background:transparent;color:var(--ink);transition:.2s ease}.bottom-nav button:hover:not(:disabled){background:#c8483217;transform:translateY(-2px)}.bottom-nav button.is-first-guide-target{position:relative;z-index:1;background:#fff7e3e0;box-shadow:0 0 0 4px #ffdd912e,0 0 20px #ffcf6959;animation:first-guide-target-pulse 2.2s ease-in-out infinite}.bottom-nav span:not(.nav-icon){margin-top:5px;font-size:.75rem;font-weight:700;white-space:nowrap}.bottom-nav small{margin-top:3px;color:var(--muted);font-size:.62rem;white-space:nowrap}.nav-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:13px;background:#f4e5d2;color:var(--red-deep)}.bottom-nav button:nth-child(2) .nav-icon{background:#e1eee8;color:#3c7b70}.bottom-nav button:nth-child(3) .nav-icon{background:#f2e5bb;color:#98752e}.bottom-nav button:nth-child(4) .nav-icon{background:#eadbe6;color:#8e4f78}.loading-screen{display:grid;place-content:center;justify-items:center;width:100%;height:100%;background:var(--paper);color:var(--ink)}.loading-mark{display:flex;gap:4px;margin-bottom:16px}.loading-mark span{display:grid;place-items:center;width:45px;height:45px;border-radius:15px 15px 15px 4px;background:var(--red);color:#fff8eb;font-family:Songti SC,serif;font-size:1.4rem;box-shadow:0 8px 18px #a6392b29}.loading-mark span:nth-child(2){transform:translateY(-5px);background:var(--jade)}.loading-mark span:nth-child(3){transform:translateY(2px);background:var(--gold)}.loading-screen p{margin:0 0 18px;font-size:.9rem}.loading-track{width:180px;height:4px;overflow:hidden;border-radius:9px;background:#eadccb}.loading-track span{display:block;height:100%;border-radius:inherit;background:var(--red);transition:width .2s ease}.loading-screen small{margin-top:9px;color:var(--muted);font-size:.7rem}.route-loading,.river-mode-loading{position:fixed;inset:0;display:grid;place-content:center;gap:8px;background:radial-gradient(circle at 50% 34%,#fff9ee,#f2dfc6 78%);color:var(--ink);text-align:center}.river-mode-loading{background:radial-gradient(circle at 50% 34%,#fff6e4fa,#492222fa 90%);color:#fff2dc}.river-mode-loading span{font-family:Songti SC,STSong,serif;font-size:1.18rem;letter-spacing:.12em}.river-mode-loading small{color:#ffe2bead;font-size:.68rem}.onboarding-screen{display:grid;place-items:center;width:100%;height:100%;min-height:0;background:radial-gradient(circle at 50% 38%,#fff9ee,#f2dfc6 78%);color:var(--ink);overflow:hidden}.package-reveal{position:relative;display:grid;grid-template-columns:minmax(180px,310px) minmax(200px,330px);align-items:center;gap:clamp(26px,5vw,84px);width:min(880px,calc(100% - 40px))}.package-reveal img{position:relative;z-index:1;width:100%;max-height:52vh;object-fit:cover;object-position:20% center;border-radius:18px;box-shadow:26px 25px #c297651f,0 20px 55px #4d28212e;animation:reveal-in .7s ease both}.package-shadow{position:absolute;bottom:1%;left:3%;width:52%;height:8%;border-radius:50%;background:#4b282129;filter:blur(17px)}.reveal-copy h1,.arrival-copy h1{margin:9px 0 8px;font-family:Songti SC,STSong,serif;font-size:clamp(2.6rem,7vw,4.8rem);font-weight:600;letter-spacing:.08em}.reveal-copy p{margin:0;color:var(--muted);font-size:1rem}.arrival-card{display:grid;grid-template-columns:minmax(190px,380px) minmax(230px,360px);align-items:center;width:min(780px,calc(100% - 40px));overflow:hidden;border-radius:28px;background:#fffaf2bd;box-shadow:var(--shadow);backdrop-filter:blur(18px);animation:reveal-in .55s ease both}.arrival-portrait{height:min(560px,70vh);overflow:hidden;background:linear-gradient(160deg,#e2f0e6,#f1cfbc)}.arrival-portrait img{width:100%;height:100%;object-fit:contain;object-position:center bottom;mix-blend-mode:multiply}.arrival-copy{padding:34px clamp(26px,5vw,52px)}.arrival-copy h1{font-size:clamp(2.3rem,5vw,3.9rem)}.arrival-copy p{max-width:260px;margin:0 0 28px;color:var(--muted);line-height:1.75}.primary-button{gap:9px;padding:13px 18px;border-radius:999px;background:var(--red);color:#fff8ec;box-shadow:0 8px 18px #a8372933;transition:.2s ease}.primary-button:hover{background:var(--red-deep);transform:translateY(-2px)}.away-room{display:grid;place-items:center;background:linear-gradient(180deg,#faf0de2b,#43221e24)}.away-sticker{display:grid;justify-items:center;width:min(310px,calc(100% - 48px));padding:34px 24px 30px;border:1px solid rgba(255,255,255,.62);border-radius:28px;background:#fffaf2b8;box-shadow:var(--shadow);text-align:center;backdrop-filter:blur(16px)}.sticker-dot{width:12px;height:12px;margin-bottom:15px;box-shadow:0 0 0 8px #4c8f831a}.away-sticker p{margin:0;font-family:Songti SC,serif;font-size:1.8rem}.away-sticker small{margin-top:9px;color:var(--muted);font-size:.78rem}.away-note{position:absolute;bottom:27px;color:#2b1c208c;font-size:.76rem}.text-button{gap:6px;margin-top:23px;padding:0;background:transparent;color:var(--red-deep);font-size:.83rem}.text-button:hover{text-decoration:underline}.modal-backdrop,.drawer-backdrop{position:fixed;inset:0;z-index:20;display:grid;place-items:center;background:#26181b38;backdrop-filter:blur(6px);animation:fade-in .2s ease both}.focus-picker{width:min(370px,calc(100% - 32px));padding:30px 28px 24px;border-radius:25px;background:var(--cream);box-shadow:var(--shadow)}.focus-picker h2{margin:7px 0 6px;font-family:Songti SC,serif;font-size:2rem;font-weight:600}.focus-picker p{margin:0;color:var(--muted)}.focus-options{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:25px 0 4px}.focus-options button{display:flex;align-items:baseline;justify-content:center;gap:5px;padding:18px 10px;border:1px solid var(--line);border-radius:18px;background:#f5e9d7;color:var(--ink);transition:.2s ease}.focus-options button:hover{border-color:var(--red);background:#f8dfd2;transform:translateY(-2px)}.focus-options strong{font-size:2rem}.focus-options span{color:var(--muted);font-size:.76rem}.drawer-backdrop{place-items:stretch end}.memory-drawer{width:min(450px,100%);height:100%;padding:32px 24px;overflow-y:auto;background:var(--cream);box-shadow:-15px 0 40px #2b1c201f;animation:drawer-in .32s ease both}.drawer-heading{display:flex;justify-content:space-between;align-items:flex-start}.drawer-heading h2{margin:6px 0 0;font-family:Songti SC,serif;font-size:2rem;font-weight:600}.drawer-intro{margin:18px 0 22px;color:var(--muted);font-size:.88rem;line-height:1.6}.memory-list{display:grid;gap:16px}.memory-card{overflow:hidden;border:1px solid rgba(76,143,131,.2);border-radius:18px;background:#fff8ef}.memory-card.is-locked{opacity:.62;filter:saturate(.55)}.memory-image{display:flex;align-items:flex-end;height:155px;padding:14px;background-size:cover}.memory-image span{padding:5px 8px;border-radius:999px;background:#2b1c20a8;color:#fff;font-size:.68rem}.memory-copy{padding:14px 16px 16px}.memory-copy h3{margin:0 0 5px;font-size:1rem}.memory-copy p{margin:0;color:var(--muted);font-size:.82rem;line-height:1.5}.focus-mode{position:fixed;inset:0;z-index:30;display:flex;flex-direction:column;justify-content:space-between;padding:22px clamp(20px,5vw,70px) 30px;background:radial-gradient(circle at 50% 42%,#fff8e2f7,#e5d6befa);color:var(--ink);animation:fade-in .35s ease both}.focus-mode:before{content:"";position:absolute;inset:9%;border:1px solid rgba(76,143,131,.19);border-radius:50%;transform:rotate(-12deg) scaleX(1.4);pointer-events:none}.focus-topline,.focus-controls{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between}.focus-kicker{color:var(--red-deep);font-size:.84rem;letter-spacing:.14em}.focus-exit{gap:8px;padding:8px 0;background:transparent;color:var(--muted);font-size:.8rem}.focus-center{position:relative;z-index:1;display:grid;justify-items:center}.focus-ring{display:grid;place-items:center;width:min(230px,55vw);aspect-ratio:1;border-radius:50%;background:conic-gradient(var(--red) var(--progress),rgba(200,72,50,.12) 0);box-shadow:0 0 0 12px #fffaf27a}.focus-ring:before{content:"";position:absolute;width:calc(min(230px,55vw) - 22px);aspect-ratio:1;border-radius:50%;background:#fff9ee}.focus-ring span{position:relative;font-size:clamp(2.2rem,7vw,3.5rem);font-variant-numeric:tabular-nums;letter-spacing:.03em}.focus-center p{margin:23px 0 0;color:var(--muted);font-size:.92rem}.focus-controls{justify-content:center;gap:12px}.focus-control{gap:9px;padding:10px 14px;border:1px solid rgba(72,41,39,.12);border-radius:999px;background:#fffaf299;color:var(--ink);font-size:.82rem}.debug-panel{position:fixed;top:76px;right:16px;bottom:16px;z-index:40;width:min(390px,calc(100% - 32px));padding:18px;overflow-y:auto;border:1px solid rgba(255,255,255,.75);border-radius:22px;background:#241a1cf0;color:#fff6e9;box-shadow:0 18px 44px #1a10134d}.debug-heading{display:flex;justify-content:space-between;align-items:flex-start}.debug-heading h2{margin:5px 0 15px;font-size:1.14rem}.debug-panel .eyebrow,.debug-panel .debug-section h3{color:#dfb89b}.debug-panel .icon-button{border-color:#ffffff26;background:transparent;color:#fff6e9}.debug-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-bottom:16px}.debug-grid span{padding:8px 9px;border-radius:9px;background:#ffffff14;color:#c9b7a8;font-size:.69rem}.debug-grid b{display:block;margin-top:3px;color:#fff6e9;font-size:.75rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.debug-section{padding-top:14px;border-top:1px solid rgba(255,255,255,.1)}.debug-section h3{margin:0 0 10px;font-size:.77rem;font-weight:600;letter-spacing:.04em}.segmented{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin-bottom:10px}.segmented button,.debug-controls button,.debug-commands button{padding:7px 9px;border-radius:8px;background:#ffffff1a;color:#d8c7bb;font-size:.7rem}.segmented button.active{background:var(--red);color:#fff}.debug-section label{display:grid;grid-template-columns:102px 1fr;align-items:center;gap:7px;margin:8px 0;color:#c9b7a8;font-size:.69rem}.debug-section input[type=range]{width:100%;accent-color:#d7795a}.check-row{display:flex!important;grid-template-columns:none!important}.check-row input{accent-color:var(--red)}.debug-actions{display:grid;grid-template-columns:1fr 1fr;gap:5px;max-height:245px;overflow-y:auto}.debug-actions button{display:flex;justify-content:space-between;padding:8px 9px;border-radius:7px;background:#4c8f832b;color:#e0f1e5;text-align:left;font-size:.68rem}.debug-actions button.clip-off{background:#ffffff0f;color:#aa9990}.debug-actions em{color:#b8a89e;font-size:.6rem;font-style:normal}.debug-controls{display:flex;flex-wrap:wrap;gap:7px;align-items:center;margin-top:11px}.debug-controls label{width:100%;grid-template-columns:72px 1fr auto}.debug-commands>div{display:flex;flex-wrap:wrap;gap:6px}.debug-commands button.danger{color:#f1a08c}.debug-panel pre{max-height:190px;overflow:auto;margin:0;padding:10px;border-radius:8px;background:#0000003d;color:#d3c4ba;font-size:.6rem;line-height:1.45;white-space:pre-wrap}.debug-fab{position:fixed;right:16px;bottom:16px;z-index:35;display:flex;align-items:center;gap:5px;padding:8px 11px;border-radius:999px;background:#2a1b1e;color:#fff7eb;font-size:.68rem;box-shadow:0 6px 18px #1a101333}.debug-river-fab{position:fixed;right:16px;bottom:53px;z-index:35;padding:8px 11px;border:1px solid rgba(255,232,195,.2);border-radius:999px;background:#8c4a3b;color:#fff7eb;font-size:.68rem;box-shadow:0 6px 18px #1a101333}.river-experience-host{position:fixed;inset:0;z-index:80;overflow:hidden;background:#f7efe4;color:#332226}.river-host-screen{position:absolute;inset:0;overflow:auto;background:radial-gradient(circle at 50% 16%,#ffffffd1,#f9efe1f5 56%,#f0dfcf)}.river-hub-screen{padding:clamp(20px,6vw,62px) clamp(18px,7vw,90px) 24px}.river-hub-glow{position:absolute;border-radius:50%;filter:blur(16px);pointer-events:none}.river-hub-glow-one{top:5%;right:7%;width:190px;height:190px;background:#ca7f4930}.river-hub-glow-two{bottom:16%;left:5%;width:160px;height:160px;background:#4c8f8324}.river-host-header{position:relative;z-index:1;display:flex;align-items:flex-start;justify-content:space-between;max-width:680px;margin:0 auto}.river-host-header h1{margin:6px 0 0;font-family:Songti SC,serif;font-size:clamp(2.2rem,7vw,4.3rem);font-weight:500;letter-spacing:.12em}.river-close-button{display:grid;place-items:center;width:42px;height:42px;border:1px solid rgba(116,72,54,.18);border-radius:50%;background:#ffffff6e;color:#a54839;font-size:1.7rem;line-height:1}.river-close-button.is-first-guide-target{position:relative;z-index:4;box-shadow:0 0 0 7px #ffdd9129,0 0 24px #ffcf696b;animation:first-guide-target-pulse 2.2s ease-in-out infinite}.river-first-guide{position:absolute;top:82px;right:clamp(18px,7vw,90px);z-index:3;width:min(270px,72vw);pointer-events:none}.river-first-guide__halo{position:absolute;top:-60px;right:-3px;width:58px;height:58px;border:1px solid rgba(226,165,67,.72);border-radius:50%;box-shadow:0 0 0 7px #ffdd9121,0 0 25px #ffcf6959;animation:first-guide-halo 2.2s ease-in-out infinite}.river-first-guide p{position:relative;margin:0;padding:11px 14px;border:1px solid rgba(157,111,67,.28);border-radius:17px 5px 17px 17px;background:#fff7e3f2;color:#5a3c31;box-shadow:0 9px 22px #49261e24;font-size:.81rem;line-height:1.4;animation:first-guide-panel-in .35s ease both}.river-first-guide p:before{content:"";position:absolute;top:-6px;right:20px;width:10px;height:10px;border-left:1px solid rgba(157,111,67,.22);border-top:1px solid rgba(157,111,67,.22);background:#fff7e3f2;transform:rotate(45deg)}.river-first-guide small{display:block;margin-top:3px;color:#896c5c;font-size:.68rem}.river-hub-intro{position:relative;z-index:1;display:flex;align-items:center;gap:16px;max-width:680px;margin:clamp(42px,9vh,88px) auto 24px}.river-hub-mark{display:grid;place-items:center;width:58px;height:58px;border-radius:20px 20px 20px 4px;background:#dd704b;color:#fff7e9;font-family:Songti SC,serif;font-size:1.55rem;box-shadow:0 12px 25px #a04a2e38}.river-hub-intro h2{margin:0 0 6px;font-family:Songti SC,serif;font-size:clamp(1.3rem,4.2vw,2rem);font-weight:500}.river-hub-intro p{margin:0;color:#846d68;font-size:.84rem}.river-hub-grid{position:relative;z-index:1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;max-width:680px;margin:0 auto}.river-hub-card{position:relative;display:grid;align-content:start;min-height:235px;padding:19px 17px 16px;border:1px solid rgba(120,78,54,.15);border-radius:26px;background:#fffdf8a8;box-shadow:0 14px 32px #5e3a2714;color:#37242a;text-align:left;transition:transform .22s ease,box-shadow .22s ease,background .22s ease}.river-hub-card:hover{transform:translateY(-4px);background:#ffffffe6;box-shadow:0 20px 40px #5e3a2724}.river-hub-card-icon{display:grid;place-items:center;width:44px;height:44px;margin-bottom:28px;border-radius:15px;background:#f3ddc8;color:#b74d38;font-size:1.35rem}.river-hub-card-ironFlower .river-hub-card-icon{background:#efe4c7;color:#a4772a}.river-hub-card-makeup .river-hub-card-icon{background:#eadde5;color:#8d5573}.river-hub-card-copy{display:grid;gap:6px}.river-hub-card-copy small{color:#9b796b;font-size:.66rem}.river-hub-card-copy strong{font-family:Songti SC,serif;font-size:1.28rem;font-weight:600}.river-hub-card-copy span{min-height:40px;color:#806b68;font-size:.74rem;line-height:1.55}.river-hub-card-status{display:flex;justify-content:space-between;align-items:center;margin-top:auto;padding-top:13px;border-top:1px solid rgba(120,78,54,.11);color:#a18177;font-size:.66rem}.river-hub-card-status b{color:#b84d3b;font-size:1rem}.river-hub-footer{display:flex;justify-content:space-between;max-width:680px;margin:28px auto 0;color:#a58d85;font-size:.66rem;letter-spacing:.08em}.river-debug-box{position:relative;z-index:2;max-width:680px;margin:28px auto 0;padding:12px;border:1px dashed rgba(155,78,56,.35);border-radius:15px;background:#fffaf0b3;color:#805b50;font-size:.7rem}.river-debug-box strong{display:block;margin-bottom:8px;color:#a54636}.river-debug-box div{display:flex;flex-wrap:wrap;gap:6px}.river-debug-box button{padding:6px 9px;border:1px solid rgba(155,78,56,.2);border-radius:999px;background:#ffffff9e;color:#805b50;font-size:.66rem}.river-reward-screen,.river-return-screen{display:grid;place-content:center;justify-items:center;padding:28px;text-align:center}.river-reward-seal{display:grid;place-items:center;width:108px;height:108px;margin-bottom:25px;border:1px solid rgba(184,77,59,.28);border-radius:50%;background:radial-gradient(circle,#fff3de,#ebaa77);color:#a84637;font-family:Songti SC,serif;font-size:3rem;box-shadow:0 14px 36px #a34d3233;animation:river-seal-in .65s ease both}.river-reward-seal-ironFlower{background:radial-gradient(circle,#fff8dc,#e5c57d);color:#8c6729}.river-reward-seal-makeup{background:radial-gradient(circle,#fff4f5,#dca9b4);color:#854963}.river-reward-screen h1,.river-return-screen h1{margin:0;font-family:Songti SC,serif;font-size:clamp(2rem,8vw,3.6rem);font-weight:500}.river-reward-screen p,.river-return-screen p{max-width:300px;margin:12px 0 20px;color:#806b68;line-height:1.8}.river-reward-delta{padding:9px 16px;border-radius:999px;background:#ffffff8f;color:#8d6e68;font-size:.78rem}.river-reward-delta b{margin-left:5px;color:#bb4f3b;font-size:1rem}.river-reward-note{max-width:260px;margin-top:12px;color:#a27d70;font-size:.68rem;line-height:1.6}.river-reward-actions{display:grid;gap:8px;justify-items:center;margin-top:29px}.river-primary-button,.river-quiet-button{min-width:190px;padding:12px 17px;border-radius:999px;font:inherit;font-size:.8rem}.river-primary-button{border:0;background:#b9513c;color:#fff7ea;box-shadow:0 8px 20px #a0443033}.river-primary-button b{margin-left:14px}.river-quiet-button{border:1px solid rgba(122,77,59,.18);background:transparent;color:#876e68}.river-return-mark{display:grid;place-items:center;width:76px;height:76px;margin-bottom:18px;border-radius:50%;background:#f3dec9;color:#b9533f;font-size:1.8rem;animation:river-seal-in .55s ease both}.room-keepsake-layer{position:absolute;inset:0;z-index:5;pointer-events:none}.room-keepsake-item,.room-keepsake-card{position:absolute;display:block;pointer-events:auto}.room-keepsake-item{padding:0;border:0;background:transparent}.room-keepsake-item img{display:block;width:100%;height:auto}.keepsake-sparkle{position:absolute;top:-12px;right:0;color:#d78c3d;font-size:.8rem;animation:keepsake-twinkle 1.8s ease-in-out infinite}.room-keepsake-card{padding:4px 4px 6px;border:1px solid rgba(101,63,47,.15);background:#fffaf0;box-shadow:0 7px 15px #4f2c2133;color:#835e53;text-align:center;transform:rotate(-3deg)}.room-keepsake-makeup{transform:rotate(4deg)}.room-keepsake-image{display:block;aspect-ratio:.78;overflow:hidden;background:#f0dfc9}.room-keepsake-image img{width:100%;height:100%;object-fit:cover}.room-keepsake-placeholder{display:grid;place-items:center;width:100%;height:100%;color:#bd7d52}.room-keepsake-card strong{display:block;margin-top:4px;font-size:.52rem;font-weight:600}.dynamic-memory-viewer{position:fixed;inset:0;z-index:100;display:grid;grid-template-rows:auto 1fr auto;padding:max(18px,env(safe-area-inset-top)) 20px max(20px,env(safe-area-inset-bottom));background:#301e20;color:#fff2df}.dynamic-memory-viewer-top{display:flex;justify-content:space-between;align-items:center;color:#ffe8cdb8;font-size:.68rem;letter-spacing:.08em}.dynamic-memory-viewer-top button{width:34px;height:34px;border:1px solid rgba(255,235,210,.25);border-radius:50%;background:transparent;color:#fff2df;font-size:1.3rem}.dynamic-memory-viewer-image{display:grid;place-items:center;min-height:0;padding:20px 0}.dynamic-memory-viewer-image img{max-width:min(720px,100%);max-height:100%;border:8px solid #fff9ee;box-shadow:0 18px 45px #0000004d;object-fit:contain}.dynamic-memory-viewer-image>span{font-size:4rem;color:#dca25a}.dynamic-memory-viewer-copy{text-align:center}.dynamic-memory-viewer-copy small{color:#e5bb7b;letter-spacing:.12em}.dynamic-memory-viewer-copy h1{margin:7px 0;font-family:Songti SC,serif;font-size:clamp(1.7rem,7vw,2.8rem);font-weight:500}.dynamic-memory-viewer-copy p{margin:0 auto 16px;color:#ffedd7b3;font-size:.8rem}.dynamic-memory-viewer-copy>div{display:flex;justify-content:center;gap:10px;align-items:center}.dynamic-memory-viewer .primary-button{min-height:38px;padding:8px 14px;border-radius:999px}.dynamic-memory-viewer .text-button{color:#ffe6c7}@keyframes river-seal-in{0%{opacity:0;transform:scale(.7) rotate(-10deg)}to{opacity:1;transform:scale(1) rotate(0)}}@keyframes keepsake-twinkle{0%,to{opacity:.35;transform:scale(.8) rotate(0)}50%{opacity:1;transform:scale(1.15) rotate(15deg)}}@media(max-width:680px){.river-hub-screen{padding:18px 16px}.river-hub-intro{margin-top:42px}.river-hub-grid{grid-template-columns:1fr;gap:9px}.river-hub-card{min-height:0;grid-template-columns:45px 1fr;column-gap:12px;padding:13px;border-radius:20px}.river-hub-card-icon{grid-row:span 2;margin:0}.river-hub-card-copy span{min-height:0}.river-hub-card-status{grid-column:2;margin-top:9px;padding-top:8px}.river-hub-footer{margin-top:17px}.river-debug-box{margin-top:18px}.dynamic-memory-viewer-copy>div{flex-wrap:wrap}.room-keepsake-card strong{font-size:.44rem}}.memory-section-label{margin:22px 0 10px;color:#9a776e;font-size:.68rem;letter-spacing:.12em}.memory-section-label-dynamic{margin-top:30px;color:#a05b4c}.dynamic-memory-placeholder{display:grid;place-items:center;width:100%;height:100%;background:linear-gradient(135deg,#ecd8c2,#d8b79f);color:#fff7e7;font-size:1.5rem}@keyframes sun-breathe{0%{opacity:.7;transform:translate(-2%) scale(.98)}to{opacity:1;transform:translate(2%) scale(1.04)}}@keyframes dust-float{0%,to{opacity:.2;transform:translate(0)}50%{opacity:.8;transform:translate(13px,-18px)}}@keyframes bubble-in{0%{opacity:0;transform:translate(-50%,9px) scale(.96)}to{opacity:1;transform:translate(-50%) scale(1)}}@keyframes reveal-in{0%{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes drawer-in{0%{opacity:0;transform:translate(22px)}to{opacity:1;transform:translate(0)}}@media(max-width:680px){.topbar{min-height:68px;padding:12px 17px 8px}.brand-seal{width:34px;height:34px;font-size:1rem}.brand-lockup h1{font-size:.91rem}.brand-lockup .eyebrow{font-size:.61rem}.home-status{display:none}.room-caption{bottom:12px;left:18px;max-width:170px}.room-caption p{font-size:.75rem}.ambient-label{right:18px;bottom:13px;font-size:.65rem}.bottom-nav{gap:2px;width:calc(100% - 18px);margin-bottom:9px;padding:6px;border-radius:20px}.bottom-nav button{padding:4px 1px}.nav-icon{width:32px;height:32px;border-radius:11px}.bottom-nav span:not(.nav-icon){margin-top:4px;font-size:.7rem}.bottom-nav small{display:none}.speech-bubble{top:13%;font-size:.86rem}.package-reveal{grid-template-columns:1fr;gap:18px;justify-items:center;text-align:center}.package-reveal img{width:min(245px,62vw);max-height:45vh}.reveal-copy h1{font-size:3rem}.reveal-copy p{font-size:.88rem}.arrival-card{grid-template-columns:1fr;width:min(370px,calc(100% - 34px))}.arrival-portrait{height:300px}.arrival-copy{padding:22px 24px 27px}.arrival-copy h1{margin-top:7px;font-size:2.55rem}.arrival-copy p{margin-bottom:20px;font-size:.88rem}.debug-panel{top:64px;right:9px;bottom:9px;width:calc(100% - 18px);padding:14px}.debug-fab{right:10px;bottom:10px}.focus-mode{padding:18px 18px 22px}.focus-mode:before{inset:13% 2%;transform:rotate(-12deg) scaleX(1.15)}}.casting-app{--casting-ink:#35252a;--casting-muted:#876f6e;--casting-paper:#fbf5ea;--casting-panel:#fffaf2;--casting-red:#bd4b3b;--casting-jade:#4d8d82;--casting-line:rgba(71,43,42,.14);display:flex;flex-direction:column;width:100%;height:100dvh;min-height:620px;overflow:hidden;color:var(--casting-ink);background:#eee5d8}.casting-header{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:72px;padding:13px 24px;border-bottom:1px solid var(--casting-line);background:#fffaf2f0}.casting-brand,.casting-header-actions,.casting-sidebar-heading,.casting-inspector-heading,.casting-stage-switch,.casting-play-buttons,.casting-footer,.casting-footer-actions,.casting-section-title{display:flex;align-items:center}.casting-brand{gap:11px;min-width:0}.casting-seal{display:grid;place-items:center;width:38px;height:38px;border-radius:13px 13px 13px 5px;background:var(--casting-red);color:#fff9ee;font-family:serif;font-size:20px;box-shadow:0 6px 15px #9f3b2d2e}.casting-kicker{display:block;color:var(--casting-muted);font-size:10px;letter-spacing:.14em;text-transform:uppercase}.casting-brand h1,.casting-sidebar h2,.casting-inspector h2{margin:3px 0 0;font-size:17px;letter-spacing:.02em}.casting-header-actions{gap:12px}.casting-save-status{color:var(--casting-muted);font-size:12px}.casting-ghost-button,.casting-footer button,.casting-play-buttons button,.casting-view-switch button,.casting-stage-switch button,.casting-nav-buttons button{border:1px solid var(--casting-line);border-radius:9px;background:#ffffffad;color:var(--casting-ink)}.casting-ghost-button{padding:8px 12px}.casting-workbench{display:grid;grid-template-columns:clamp(220px,22vw,285px) minmax(390px,1fr) clamp(310px,28vw,390px);min-height:0;flex:1}.casting-sidebar,.casting-inspector{min-height:0;overflow:auto;background:#fffaf2e0}.casting-sidebar{padding:18px 13px 14px;border-right:1px solid var(--casting-line)}.casting-inspector{padding:18px 17px 26px;border-left:1px solid var(--casting-line)}.casting-sidebar-heading,.casting-inspector-heading{justify-content:space-between;gap:8px;margin:0 2px 13px}.casting-count{color:var(--casting-red);font-size:12px;font-variant-numeric:tabular-nums}.casting-search,.casting-category-select,.casting-field input,.casting-field select,.casting-choice-row input,.casting-choice-row select,.casting-notes{width:100%;border:1px solid var(--casting-line);border-radius:8px;background:#fffdf8;color:var(--casting-ink);outline:none}.casting-search,.casting-category-select{height:34px;padding:0 10px}.casting-search:focus,.casting-field input:focus,.casting-field select:focus,.casting-choice-row input:focus,.casting-choice-row select:focus,.casting-notes:focus{border-color:#bd4b3b8f;box-shadow:0 0 0 3px #bd4b3b17}.casting-filter-row{display:flex;flex-wrap:wrap;gap:5px;margin:10px 0 9px}.casting-filter-row button{padding:5px 7px;border:1px solid transparent;border-radius:7px;background:#efe6d9b3;color:var(--casting-muted);font-size:11px}.casting-filter-row button.active{border-color:#bd4b3b3d;background:#f4d8cb;color:#8e3026}.casting-category-select{margin-bottom:10px;font-size:12px}.casting-list{display:grid;gap:3px}.casting-list-item{display:grid;grid-template-columns:25px minmax(0,1fr) 18px;align-items:center;gap:5px;width:100%;padding:8px 7px;border:1px solid transparent;border-radius:9px;background:transparent;color:var(--casting-ink);text-align:left}.casting-list-item:hover{background:#f5e7d9b8}.casting-list-item.active{border-color:#bd4b3b4d;background:#f5ddd0}.casting-list-index{color:#aa9189;font-size:10px;font-variant-numeric:tabular-nums}.casting-list-copy{min-width:0}.casting-list-copy strong,.casting-list-copy small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.casting-list-copy strong{font-size:12px;font-weight:700}.casting-list-copy small{margin-top:2px;color:var(--casting-muted);font-size:10px}.casting-quality-dot{color:#b7a6a1;font-size:11px;text-align:center}.casting-quality-dot.quality-a{color:#2e8b69}.casting-quality-dot.quality-b{color:#557fb3}.casting-quality-dot.quality-c{color:#bd8740}.casting-quality-dot.quality-d{color:#bd4b3b}.casting-center{display:flex;flex-direction:column;min-width:0;min-height:0;padding:15px 17px 10px;background:#e9dfd1}.casting-model-meta{display:flex;flex-wrap:wrap;gap:7px 16px;min-height:35px;padding:0 2px 9px;color:var(--casting-muted);font-size:11px}.casting-model-meta b{margin-left:4px;color:var(--casting-ink);font-weight:700}.casting-stage{position:relative;flex:1;min-height:320px;overflow:hidden;border:1px solid rgba(71,43,42,.12);border-radius:13px;background-color:#ddd2c5;box-shadow:0 13px 25px #533a2d1f}.casting-stage-studio{background:radial-gradient(circle at 50% 34%,#fffaf2 0,#eee5d9 49%,#d8cdc0)}.casting-stage-room{background:#d2b59c url(/assets/room-background-v2.webp) center / cover no-repeat}.casting-stage-canvas{position:absolute;inset:0}.casting-stage-canvas canvas{display:block;width:100%!important;height:100%!important}.casting-stage-badge{position:absolute;z-index:2;top:12px;left:13px;padding:5px 8px;border:1px solid rgba(74,48,41,.12);border-radius:7px;background:#fffaf2bf;backdrop-filter:blur(8px);color:var(--casting-muted);font-size:11px;pointer-events:none}.casting-loading{position:absolute;inset:0;display:grid;place-items:center;color:var(--casting-muted);font-size:14px;pointer-events:none}.casting-stage-switch{justify-content:center;gap:8px;margin:10px 0 7px}.casting-stage-switch button,.casting-view-switch button{padding:6px 11px;font-size:11px}.casting-stage-switch button.active,.casting-view-switch button.active{border-color:#4d8d826b;background:#d8ece5;color:#286c62}.casting-stage-switch label,.casting-play-buttons label,.casting-footer span{color:var(--casting-muted);font-size:11px}.casting-stage-switch label{margin-left:8px}.casting-stage-switch input,.casting-play-buttons input,.casting-toggle input{accent-color:var(--casting-jade)}.casting-view-switch{display:flex;justify-content:center;flex-wrap:wrap;gap:5px}.casting-playbar{margin-top:9px;padding:9px 10px;border:1px solid var(--casting-line);border-radius:10px;background:#fffaf2bf}.casting-play-buttons{gap:6px;flex-wrap:wrap}.casting-play-buttons button{padding:6px 10px;font-size:11px}.casting-play-buttons button:first-child{border-color:#bd4b3b47;background:#f4d8cb;color:#8e3026}.casting-play-buttons select{height:28px;padding:0 6px;border:1px solid var(--casting-line);border-radius:7px;background:#fffdf8;color:var(--casting-ink);font-size:11px}.casting-timeline{display:grid;grid-template-columns:25px minmax(0,1fr) 98px;align-items:center;gap:8px;margin-top:8px;color:var(--casting-muted);font-size:10px;font-variant-numeric:tabular-nums}.casting-timeline input{width:100%;accent-color:var(--casting-red)}.casting-timeline span:last-child{text-align:right}.casting-shortcuts{margin-top:7px;color:#927a75;font-size:10px;text-align:center}.casting-inspector-heading{align-items:flex-start}.casting-inspector h2{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.casting-nav-buttons{display:flex;gap:5px}.casting-nav-buttons button{width:29px;height:29px;font-size:16px}.casting-nav-buttons button:disabled{opacity:.4}.casting-section{margin-top:16px;padding-top:13px;border-top:1px solid var(--casting-line)}.casting-section-title h3{margin:0 0 10px;font-size:12px;letter-spacing:.08em}.casting-field{display:block;margin:8px 0}.casting-field>span,.casting-choice-row label{display:block;margin-bottom:4px;color:var(--casting-muted);font-size:11px}.casting-field input,.casting-field select,.casting-choice-row input,.casting-choice-row select{height:30px;padding:0 8px;font-size:12px}.casting-toggle-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px 8px}.casting-toggle{display:flex;align-items:center;gap:6px;min-width:0;color:var(--casting-ink);font-size:11px}.casting-toggle input{flex:0 0 auto;width:14px;height:14px}.casting-choice-row{display:grid;grid-template-columns:1fr 1fr;gap:9px}.casting-check-grid,.casting-tag-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px 4px}.casting-tag-grid{grid-template-columns:repeat(3,1fr)}.casting-notes{display:block;min-height:82px;padding:8px;resize:vertical;line-height:1.5;font-size:12px}.casting-empty{padding:24px 7px;color:var(--casting-muted);font-size:12px}.casting-footer{justify-content:space-between;gap:12px;min-height:54px;padding:8px 18px;border-top:1px solid var(--casting-line);background:#fffaf2f0}.casting-footer>div:first-child{display:flex;align-items:center;gap:10px}.casting-footer b{font-size:11px}.casting-footer-actions{gap:6px;flex-wrap:wrap;justify-content:flex-end}.casting-footer button{padding:6px 9px;font-size:11px}.casting-footer button:disabled{opacity:.45}@media(max-width:1050px)and (min-width:901px){.casting-workbench{grid-template-columns:215px minmax(350px,1fr) 285px}.casting-center{padding-left:10px;padding-right:10px}.casting-inspector{padding-left:12px;padding-right:12px}.casting-toggle-grid{grid-template-columns:1fr}.casting-check-grid,.casting-tag-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:900px){.casting-app{min-height:100dvh;overflow:auto}.casting-header{align-items:flex-start;padding:12px 14px}.casting-header-actions{align-items:flex-end;flex-direction:column;gap:4px}.casting-workbench{display:flex;flex-direction:column}.casting-sidebar{order:2;max-height:340px;border-top:1px solid var(--casting-line);border-right:0}.casting-center{order:1;min-height:590px}.casting-inspector{order:3;border-top:1px solid var(--casting-line);border-left:0}.casting-footer{flex-wrap:wrap}.casting-footer-actions{justify-content:flex-start}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.spatial-calibration-overlay{position:absolute;inset:0;z-index:8;pointer-events:none;color:#fff8e9;font-size:10px;text-shadow:0 1px 3px rgba(39,20,18,.8)}.spatial-anchor-label{position:absolute;left:10px;top:10px;padding:5px 8px;border:1px solid rgba(255,255,255,.32);border-radius:6px;background:#2518189e;letter-spacing:.04em}.spatial-hotspot-marker,.spatial-foot-marker{position:absolute;transform:translate(-50%,-50%);white-space:nowrap}.spatial-hotspot-marker i,.spatial-foot-marker i{display:inline-block;width:12px;height:12px;margin-right:4px;border:1px solid currentColor;border-radius:50%;vertical-align:-2px;box-shadow:0 0 0 4px #ffde802e}.spatial-hotspot-marker{color:#ffe08e}.spatial-target-foot-marker{position:absolute;transform:translate(-50%,-50%);color:#ff9ed0;white-space:nowrap}.spatial-target-foot-marker i{display:inline-block;width:16px;height:16px;margin-right:4px;border:1px solid currentColor;border-radius:50%;vertical-align:-3px;box-shadow:0 0 0 4px #ff7ebe2e}.spatial-forward-arrow{position:absolute;z-index:1;display:block;width:22px;height:22px;margin-top:-20px;color:#ffe08e;font-size:20px;font-weight:700;line-height:22px;text-align:center;transform-origin:50% 30px;text-shadow:0 1px 3px rgba(39,20,18,.8)}.spatial-foot-marker{color:#8ff2d2}.spatial-foot-marker i{border-radius:2px;box-shadow:0 0 0 4px #56e4be2e}.spatial-bounding-box{position:absolute;border:1px dashed rgba(140,241,209,.9);border-radius:4px}.spatial-telemetry{position:absolute;padding:3px 5px;border-radius:4px;background:#17594dc7;color:#d9fff2;white-space:nowrap}.debug-anchor-values{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin:9px 0}.debug-anchor-values label{margin:0}.debug-panel select,.debug-panel input[type=number]{width:100%;min-width:0;height:28px;margin-top:4px;padding:0 7px;border:1px solid rgba(90,62,51,.22);border-radius:7px;background:#fffdf7;color:var(--ink);font:inherit}.debug-note{margin:7px 0 0;color:#8d756e;font-size:10px;line-height:1.45}.debug-panel pre{max-height:260px;overflow:auto;white-space:pre-wrap;word-break:break-word}.room-hotspots{position:absolute;inset:0;z-index:5;pointer-events:none}.character-hit-target{position:absolute;z-index:6;width:110px;height:160px;transform:translate(-50%,-50%);padding:0;border:0;border-radius:50%;background:transparent;pointer-events:auto;touch-action:manipulation;cursor:pointer;-webkit-tap-highlight-color:transparent}.character-hit-target.is-guided:before{position:absolute;inset:7px;border:1px solid rgba(255,222,143,.82);border-radius:50%;box-shadow:0 0 0 7px #ffde8f24,0 0 24px #ffce666b;content:"";animation:first-guide-ring 2.2s ease-in-out infinite}.room-hotspots.is-coordinate-mode{pointer-events:auto}.room-hotspot{position:absolute;display:block;padding:0;border-radius:50%;background:transparent;pointer-events:auto;touch-action:manipulation;cursor:pointer;-webkit-tap-highlight-color:transparent}.room-hotspot:after{content:"";position:absolute;inset:22% 27%;border:1px solid transparent;border-radius:50%;opacity:0;transition:opacity .25s ease,transform .25s ease}.hotspot-aura{position:absolute;left:50%;top:50%;width:28px;height:28px;transform:translate(-50%,-50%) scale(.72);border:1px solid rgba(238,195,116,.72);border-radius:50%;box-shadow:0 0 0 7px #eec3741a,0 0 24px #ffd78740;opacity:0;transition:opacity .25s ease,transform .25s ease}.room-hotspot:hover .hotspot-aura,.room-hotspot:focus-visible .hotspot-aura,.room-hotspot.is-hinted .hotspot-aura{opacity:1;transform:translate(-50%,-50%) scale(1)}.hotspot-label{position:absolute;left:50%;top:50%;width:max-content;padding:5px 9px;transform:translate(-50%,-155%);border:1px solid rgba(157,111,67,.2);border-radius:999px;background:#fff7e39e;color:#6c4935;box-shadow:0 5px 14px #49261e17;backdrop-filter:blur(8px);font-size:.7rem;line-height:1;white-space:nowrap;animation:hint-in .25s ease both}.hotspot-label:after{content:"";position:absolute;left:50%;bottom:-4px;width:7px;height:7px;background:#fff7e39e;border-right:1px solid rgba(157,111,67,.16);border-bottom:1px solid rgba(157,111,67,.16);transform:translate(-50%) rotate(45deg)}.room-hotspot.show-bounds{outline:1px dashed rgba(255,234,174,.92);outline-offset:-2px;background:#ffdc8c14}.room-hotspot.show-bounds:after{content:attr(aria-label);inset:auto auto 3px 3px;padding:2px 4px;border:0;border-radius:4px;background:#2d1918b3;color:#fff4d8;opacity:1;font-size:10px}.room-coordinate-readout{position:absolute;top:12px;left:50%;padding:7px 10px;transform:translate(-50%);border:1px solid rgba(255,245,218,.28);border-radius:999px;background:#2b1c20b8;color:#fff4d8;font-size:.7rem;letter-spacing:.03em;pointer-events:none}.debug-coordinate{margin:7px 0 9px;color:#f3d7b7;font-size:.68rem}.debug-location-buttons{display:grid;grid-template-columns:repeat(4,1fr);gap:5px}.debug-location-buttons button{padding:7px 4px;border-radius:7px;background:#ffffff1a;color:#d8c7bb;font-size:.64rem}.debug-location-buttons button.active{background:var(--red);color:#fff}.custom-actions{max-height:none}.custom-actions button{flex-direction:column;align-items:flex-start;gap:4px;background:#c89a452e;color:#ffe6bd}.custom-actions em{color:#cdb298}.focus-complete-label{margin-top:14px;color:var(--red-deep);font-size:.82rem;letter-spacing:.07em}.focus-return{display:flex;align-items:center;gap:9px;padding:12px 18px;border-radius:999px;background:var(--red);color:#fff8ec;box-shadow:0 8px 18px #a837292e}@keyframes hotspot-breathe{0%,to{opacity:.55;transform:translate(-50%,-50%) scale(.88)}50%{opacity:1;transform:translate(-50%,-50%) scale(1.14)}}@keyframes hint-in{0%{opacity:0;transform:translate(-50%,-145%) scale(.96)}to{opacity:1;transform:translate(-50%,-155%) scale(1)}}@keyframes first-guide-halo{0%,to{opacity:.62;transform:translate(-50%,-50%) scale(.9)}50%{opacity:1;transform:translate(-50%,-50%) scale(1.08)}}@keyframes first-guide-ring{0%,to{opacity:.52;transform:scale(.92)}50%{opacity:1;transform:scale(1.04)}}@keyframes first-guide-copy-in{0%{opacity:0;transform:translate(-50%,6px)}to{opacity:1;transform:translate(-50%)}}@keyframes first-guide-target-pulse{0%,to{filter:saturate(.96)}50%{filter:saturate(1.18);box-shadow:0 0 0 6px #ffdd9140,0 0 25px #ffcf6975}}@keyframes first-guide-panel-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media(min-width:681px){.topbar{padding-top:calc(15px + env(safe-area-inset-top))}.room-caption{bottom:20px}}@media(max-width:680px){.topbar{min-height:68px;padding-top:calc(12px + env(safe-area-inset-top))}.bottom-nav{margin-bottom:calc(7px + env(safe-area-inset-bottom))}.room-caption{bottom:10px}.speech-bubble{max-width:min(270px,78vw);font-size:.86rem}.focus-mode{padding-top:calc(18px + env(safe-area-inset-top));padding-bottom:calc(22px + env(safe-area-inset-bottom))}}@media(max-height:700px)and (min-width:901px){.casting-app{min-height:0}.casting-center{padding-top:10px}.casting-stage{min-height:228px}.casting-model-meta{min-height:30px;padding-bottom:5px}.casting-stage-switch{margin:6px 0 5px}.casting-playbar{margin-top:6px}.casting-shortcuts{margin-top:4px}}.radial-menu{position:absolute;z-index:12;width:272px;height:272px;transform:translate(-50%,-50%);pointer-events:auto;filter:drop-shadow(0 15px 24px rgba(64,34,31,.16));animation:radial-in .22s ease both}.radial-menu-halo{position:absolute;inset:32px;border:1px solid rgba(189,75,59,.2);border-radius:50%;background:radial-gradient(circle,#fffaf2eb,#fff8ea8a 66%,#fff8ea1f);box-shadow:0 0 0 8px #fffaf233,inset 0 0 24px #bd4b3b14;backdrop-filter:blur(9px)}.radial-menu-center,.radial-choice,.radial-action{position:absolute;z-index:1;display:grid;place-items:center;border:1px solid rgba(112,77,68,.15);background:#fffaf2db;color:#593b37;box-shadow:0 5px 15px #552e281c;transition:transform .18s ease,background .18s ease,border-color .18s ease}.radial-menu-center:hover,.radial-choice:hover,.radial-action:hover{border-color:#bd4b3b61;background:#fae4d8;transform:scale(1.06)}.radial-menu-center{left:50%;top:50%;width:74px;height:74px;transform:translate(-50%,-50%);border-radius:50%;background:#f2d5c8;color:#8e3026;font-family:Songti SC,STSong,serif;font-size:.78rem}.radial-menu-center:hover{transform:translate(-50%,-50%) scale(1.06)}.radial-choice{width:78px;height:56px;border-radius:21px}.radial-choice strong,.radial-action strong{font-size:.86rem;font-weight:700}.radial-choice small{margin-top:2px;color:#9b7870;font-size:.62rem}.radial-choice-0{left:17px;top:59px}.radial-choice-1{right:17px;top:59px}.radial-choice-2{right:29px;bottom:35px}.radial-choice-3{left:29px;bottom:35px}.radial-menu.is-submenu{width:312px;height:312px}.radial-menu.is-submenu .radial-menu-halo{inset:23px}.radial-menu.is-submenu .radial-menu-center{width:66px;height:66px;font-family:inherit;font-size:.7rem}.radial-action-grid{position:absolute;inset:42px 29px 34px;z-index:1;display:grid;grid-template-columns:1fr 1fr;align-content:center;gap:8px}.radial-action{position:relative;width:auto;min-height:48px;padding:6px 5px;border-radius:14px}.radial-action small{max-width:100%;overflow:hidden;color:#aa8980;font-size:.57rem;text-overflow:ellipsis;white-space:nowrap}@keyframes radial-in{0%{opacity:0;transform:translate(-50%,-50%) scale(.92)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}.room-decorations{position:absolute;inset:0;z-index:4;pointer-events:none;overflow:hidden}.room-decoration{position:absolute;display:block;padding:0;border:0;background:transparent;pointer-events:auto;filter:drop-shadow(0 7px 7px rgba(79,42,28,.13));transition:filter .2s ease,transform .2s ease}.room-decoration:hover,.room-decoration:focus-visible{z-index:9!important;filter:drop-shadow(0 8px 11px rgba(120,58,26,.22));transform:translateY(-2px) scale(1.03);outline:none}.room-decoration img{display:block;width:100%;height:100%;object-fit:contain;user-select:none}.room-decoration.is-new{animation:decoration-appear .6s cubic-bezier(.2,.8,.2,1) both}.decoration-sparkle{position:absolute;inset:0;pointer-events:none}.decoration-sparkle i{position:absolute;width:5px;height:5px;border-radius:50%;background:#ffe9a7;box-shadow:0 0 10px 4px #ffcd5ba6;animation:decoration-spark .6s ease-out both}.decoration-sparkle i:nth-child(1){left:16%;top:27%}.decoration-sparkle i:nth-child(2){right:18%;top:18%;animation-delay:.08s}.decoration-sparkle i:nth-child(3){right:8%;bottom:30%;animation-delay:.16s}.nav-new-dot{display:inline-block;width:6px;height:6px;margin-left:4px;border-radius:50%;background:#d59b3d;box-shadow:0 0 0 3px #d59b3d26;vertical-align:middle;animation:nav-dot-breathe 1.8s ease-in-out infinite}.memory-prologue{position:fixed;inset:0;z-index:50;overflow:hidden;background:#150c10;color:#fff3df}.memory-prologue-top{position:absolute;top:0;left:0;right:0;z-index:3;display:flex;align-items:center;justify-content:space-between;padding:calc(18px + env(safe-area-inset-top)) clamp(18px,5vw,48px) 16px;color:#fff0d5c7;font-size:.73rem;letter-spacing:.12em}.memory-prologue-top button{padding:6px 2px;background:transparent;color:#fff0d5ad;font-size:.73rem}.memory-prologue-frame{position:absolute;inset:0;animation:memory-frame-in .55s ease both}.memory-prologue-frame img{display:block;width:100%;height:100%;object-fit:cover;animation:memory-kenburns 2.25s ease-out both}.memory-prologue-image{position:absolute;inset:0;transition:opacity .3s ease,filter .3s ease}.memory-prologue-thumb{filter:blur(3px) brightness(.72);transform:scale(1.02)}.memory-prologue-hires{opacity:0}.memory-prologue-hires.is-ready{opacity:1}.memory-prologue-frame:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(18,8,12,.22),transparent 32%,rgba(18,8,12,.28));pointer-events:none}.memory-prologue-label{position:absolute;left:clamp(18px,5vw,48px);bottom:calc(24px + env(safe-area-inset-bottom));z-index:1;color:#fff0d5c7;font-size:.72rem;letter-spacing:.18em}.memory-prologue-end{position:absolute;inset:0;display:grid;place-content:center;justify-items:center;gap:16px;background:radial-gradient(circle at 50% 44%,#70361e94,#12080cf5 72%);animation:prologue-end-in .8s ease both;text-align:center}.memory-prologue-end span{color:#ffe1b094;font-size:.75rem;letter-spacing:.16em}.memory-prologue-end p{margin:0;color:#fff2d8;font-family:Songti SC,STSong,serif;font-size:1.18rem;letter-spacing:.12em}.memory-prologue-progress{position:absolute;left:clamp(18px,5vw,48px);right:clamp(18px,5vw,48px);bottom:12px;z-index:3;height:2px;overflow:hidden;background:#ffe8bc29}.memory-prologue-progress span{display:block;height:100%;background:#e5b561;transition:width .45s ease}.memory-archive-screen{position:absolute;inset:0;z-index:25;overflow:auto;background:#1e1115;color:#fff2dc;animation:memory-screen-in .48s ease both}.memory-archive-backdrop{position:absolute;inset:0;background:radial-gradient(circle at 16% 8%,rgba(218,146,57,.3),transparent 32%),linear-gradient(150deg,#392029,#1d1116 62%,#100a0e);pointer-events:none}.memory-archive-header,.memory-archive-content,.memory-archive-footer{position:relative;z-index:1}.memory-archive-header{display:flex;align-items:flex-start;justify-content:space-between;padding:calc(28px + env(safe-area-inset-top)) clamp(20px,5vw,44px) 10px}.memory-archive-header .eyebrow{color:#ffe0b794}.memory-archive-header h1{margin:7px 0 0;font-family:Songti SC,STSong,serif;font-size:clamp(2rem,8vw,3rem);font-weight:600;letter-spacing:.12em}.memory-close-button{display:grid;place-items:center;width:38px;height:38px;border:1px solid rgba(255,242,220,.22);border-radius:50%;background:#140a0e4d;color:#fff3df}.memory-close-button:hover{background:#fff2dc1f}.memory-close-button.is-first-guide-target{position:relative;z-index:4;box-shadow:0 0 0 7px #e5b56129,0 0 24px #e5b5616b;animation:first-guide-target-pulse 2.2s ease-in-out infinite}.memory-first-guide{position:absolute;top:calc(82px + env(safe-area-inset-top));right:clamp(20px,5vw,44px);z-index:3;width:min(270px,72vw);pointer-events:none}.memory-first-guide__halo{position:absolute;top:-60px;right:-2px;width:54px;height:54px;border:1px solid rgba(229,181,97,.74);border-radius:50%;box-shadow:0 0 0 7px #e5b56121,0 0 25px #e5b5615c;animation:first-guide-halo 2.2s ease-in-out infinite}.memory-first-guide p{position:relative;margin:0;padding:11px 14px;border:1px solid rgba(229,181,97,.32);border-radius:17px 5px 17px 17px;background:#281219eb;color:#fff0d3;box-shadow:0 9px 22px #00000038;font-size:.8rem;line-height:1.4;animation:first-guide-panel-in .35s ease both}.memory-first-guide p:before{content:"";position:absolute;top:-6px;right:18px;width:10px;height:10px;border-left:1px solid rgba(229,181,97,.25);border-top:1px solid rgba(229,181,97,.25);background:#281219eb;transform:rotate(45deg)}.memory-first-guide small{display:block;margin-top:3px;color:#ffe0b7ad;font-size:.68rem}.memory-archive-content{padding:14px clamp(20px,5vw,44px) 28px}.memory-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.memory-card-v2{position:relative;display:block;min-width:0;padding:0;overflow:hidden;border:1px solid rgba(255,235,201,.18);border-radius:15px;background:#fff0d314;color:#fff2dc;text-align:left;box-shadow:0 12px 25px #00000029}.memory-card-v2.is-open{cursor:pointer}.memory-card-v2:disabled{cursor:default;opacity:1}.memory-card-image{position:relative;display:block;aspect-ratio:9/14;overflow:hidden;background:#362028}.memory-card-image img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .45s ease,filter .45s ease}.memory-card-v2.is-open:hover img{transform:scale(1.045)}.memory-card-v2.is-locked .memory-card-image img{filter:blur(10px) brightness(.37) saturate(.55);transform:scale(1.08)}.memory-card-shade{position:absolute;inset:0;background:linear-gradient(180deg,transparent 38%,rgba(18,8,12,.82))}.memory-card-copy{display:block;min-height:58px;padding:10px 11px 12px}.memory-card-copy strong,.memory-card-copy small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.memory-card-copy strong{font-size:.88rem}.memory-card-copy small{margin-top:5px;color:#ffe2be9e;font-size:.68rem}.memory-new-dot{position:absolute;top:10px;right:10px;width:7px;height:7px;border-radius:50%;background:#e5b561;box-shadow:0 0 0 5px #e5b56129}.replay-prologue-button{display:block;margin:22px auto 0;padding:7px 3px;background:transparent;color:#ffe1b9a8;font-size:.74rem;letter-spacing:.05em;border-bottom:1px solid rgba(255,225,185,.28)}.memory-archive-footer{display:flex;justify-content:space-between;gap:14px;padding:14px clamp(20px,5vw,44px) calc(18px + env(safe-area-inset-bottom));border-top:1px solid rgba(255,235,201,.12);color:#ffe1b96b;font-size:.65rem;letter-spacing:.08em}.memory-viewer{position:absolute;inset:0;z-index:26;overflow:hidden;background:#130b0e;color:#fff3df;touch-action:pan-y;animation:memory-viewer-in .55s cubic-bezier(.2,.8,.2,1) both}.memory-viewer-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;animation:memory-kenburns 12s ease-out both}.memory-viewer-vignette{position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,4,6,.42),transparent 23%,transparent 51%,rgba(9,4,7,.86) 100%);pointer-events:none}.memory-viewer-effect{position:absolute;inset:0;pointer-events:none}.memory-viewer-lanterns .memory-viewer-effect:before,.memory-viewer-market .memory-viewer-effect:before{content:"";position:absolute;left:10%;top:14%;width:27%;height:27%;border-radius:50%;background:#ffc05721;filter:blur(24px);animation:light-breathe 3.4s ease-in-out infinite}.memory-viewer-boat .memory-viewer-effect:after{content:"";position:absolute;left:0;right:0;bottom:18%;height:16%;background:linear-gradient(100deg,transparent,rgba(161,225,235,.12),transparent 70%);mix-blend-mode:screen;transform:translate(-30%);animation:water-shimmer 4.2s ease-in-out infinite}.memory-viewer-shadow .memory-viewer-effect:before{content:"";position:absolute;inset:20% 22% 28%;background:#ffe8bb14;filter:blur(24px);animation:shadow-pulse 3.8s ease-in-out infinite}.memory-viewer-steam .memory-viewer-effect:before{content:"";position:absolute;left:39%;bottom:26%;width:22%;height:30%;border-radius:50%;background:linear-gradient(180deg,rgba(255,245,219,.16),transparent);filter:blur(16px);animation:steam-rise 3.4s ease-in-out infinite}.memory-spark-particles{position:absolute;inset:0;overflow:hidden}.memory-spark-particles i{position:absolute;left:var(--x);top:var(--y);width:var(--size);height:var(--size);border-radius:50%;background:#ffd879;box-shadow:0 0 9px 3px #ffab2c94;opacity:0;animation:memory-spark 2.8s ease-out var(--delay) infinite}.memory-viewer-top{position:absolute;top:0;left:0;right:0;z-index:2;display:flex;align-items:center;justify-content:space-between;padding:calc(18px + env(safe-area-inset-top)) clamp(18px,5vw,44px) 14px;color:#ffefd5d1;font-size:.72rem;letter-spacing:.15em;transition:opacity .25s ease}.memory-viewer-copy{position:absolute;left:clamp(20px,5vw,44px);right:clamp(20px,5vw,44px);bottom:calc(34px + env(safe-area-inset-bottom));z-index:2;transition:opacity .25s ease,transform .25s ease}.memory-viewer-kicker{color:#f0c87d;font-size:.7rem;letter-spacing:.12em}.memory-viewer-copy h1{max-width:470px;margin:9px 0 8px;font-family:Songti SC,STSong,serif;font-size:clamp(1.65rem,7vw,2.65rem);line-height:1.22;font-weight:600;letter-spacing:.07em;text-shadow:0 3px 15px rgba(0,0,0,.26)}.memory-viewer-copy p{max-width:420px;margin:0;color:#ffeed2d1;font-size:.92rem;line-height:1.6}.memory-collect-button{display:inline-flex;align-items:center;gap:8px;margin-top:18px;padding:10px 15px;border:1px solid rgba(255,226,178,.36);border-radius:999px;background:#1c0c1059;color:#fff2dc;font-size:.8rem}.memory-viewer-hint{position:absolute;right:clamp(20px,5vw,44px);bottom:calc(12px + env(safe-area-inset-bottom));z-index:2;color:#ffedd36b;font-size:.62rem;transition:opacity .25s ease}.memory-nav{position:absolute;top:50%;z-index:3;display:grid;place-items:center;width:34px;height:56px;transform:translateY(-50%);border:1px solid rgba(255,239,213,.18);border-radius:999px;background:#13080c24;color:#ffefd5cc;font-family:serif;font-size:2rem;line-height:1}.memory-nav:disabled{opacity:0;pointer-events:none}.memory-nav-prev{left:10px}.memory-nav-next{right:10px}.memory-viewer.hide-ui .memory-viewer-top,.memory-viewer.hide-ui .memory-viewer-copy,.memory-viewer.hide-ui .memory-viewer-hint{opacity:0;pointer-events:none;transform:translateY(8px)}.memory-viewer.hide-ui .memory-nav{opacity:0;pointer-events:none}.debug-command-grid,.debug-memory-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}.debug-command-grid button,.debug-memory-grid button{min-height:30px;padding:5px 4px;border-radius:7px;background:#ffffff17;color:#dfcfc3;font-size:.61rem}.debug-memory-grid button.active{background:#c89a457a;color:#fff0c8}.memory-debug-section h4{margin:11px 0 6px;color:#c8afa0;font-size:.62rem;font-weight:500;letter-spacing:.04em}.asset-debug-grid b{overflow-wrap:anywhere}@keyframes memory-frame-in{0%{opacity:0}to{opacity:1}}@keyframes memory-kenburns{0%{transform:scale(1) translateZ(0)}to{transform:scale(1.06) translate3d(-.7%,-.5%,0)}}@keyframes prologue-end-in{0%{opacity:0}to{opacity:1}}@keyframes memory-screen-in{0%{opacity:0;filter:blur(7px)}to{opacity:1;filter:blur(0)}}@keyframes memory-viewer-in{0%{opacity:0;transform:scale(.97);filter:blur(4px)}to{opacity:1;transform:scale(1);filter:blur(0)}}@keyframes decoration-appear{0%{opacity:0;transform:scale(.85)}70%{opacity:1;transform:scale(1.02)}to{opacity:1;transform:scale(1)}}@keyframes decoration-spark{0%{opacity:0;transform:scale(.3)}35%{opacity:1;transform:scale(1.2)}to{opacity:0;transform:translateY(-9px) scale(.4)}}@keyframes nav-dot-breathe{0%,to{opacity:.58}50%{opacity:1}}@keyframes light-breathe{0%,to{opacity:.42;transform:scale(.85)}50%{opacity:.82;transform:scale(1.1)}}@keyframes water-shimmer{0%,to{transform:translate(-35%);opacity:.2}50%{transform:translate(35%);opacity:.62}}@keyframes shadow-pulse{0%,to{opacity:.28;transform:scale(.94)}50%{opacity:.58;transform:scale(1.04)}}@keyframes steam-rise{0%,to{opacity:0;transform:translateY(9%) scale(.86)}45%{opacity:.6}to{transform:translateY(-10%) scale(1.08)}}@keyframes memory-spark{0%{opacity:0;transform:translateY(10px) scale(.45)}20%{opacity:.88}to{opacity:0;transform:translateY(-34px) translate(-9px) scale(.2)}}@keyframes loading-dot{0%,to{opacity:.25;transform:translateY(0)}50%{opacity:1;transform:translateY(-2px)}}.companion-chip{display:inline-flex;align-items:center;min-height:26px;padding:0 9px;border:1px solid rgba(200,154,69,.23);border-radius:999px;background:#fffaf294;color:#936c35;font-size:.68rem;white-space:nowrap}.relationship-status{display:grid;grid-template-columns:auto minmax(56px,84px);gap:3px 8px;align-items:center;min-width:132px;padding:5px 8px;border:1px solid rgba(200,154,69,.23);border-radius:13px;background:#fffaf2a3;color:var(--ink);text-align:left;box-shadow:0 4px 13px #542d240f;transition:box-shadow .25s ease,border-color .25s ease}.relationship-status:hover{border-color:#c8483257;box-shadow:0 6px 18px #542d241f}.relationship-status.is-celebrating{animation:relationship-flash .95s ease both}.relationship-copy{display:flex;align-items:baseline;gap:4px;min-width:0;white-space:nowrap}.relationship-copy strong{color:var(--red-deep);font-size:.68rem;font-weight:700}.relationship-copy small{max-width:88px;overflow:hidden;color:var(--muted);font-size:.57rem;text-overflow:ellipsis;white-space:nowrap}.relationship-meter{grid-column:1/-1;display:block;height:4px;overflow:hidden;border-radius:99px;background:#be91602e}.relationship-meter i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#e0ae5d,#c84832);transition:width 1.1s cubic-bezier(.2,.8,.2,1)}.relationship-mood{grid-column:1/-1;display:flex;align-items:center;gap:4px;color:#816761;font-size:.59rem;white-space:nowrap}.relationship-mood i{width:6px;height:6px;border-radius:50%;background:#d6a24c;box-shadow:0 0 0 3px #d6a24c1f}.relationship-status:has(.relationship-mood) .relationship-mood i{background:#d29a54}.affinity-feedback{position:absolute;left:50%;top:42%;z-index:16;padding:8px 11px;border:1px solid rgba(229,181,97,.36);border-radius:999px;background:#fff7e2e6;color:#a56a39;box-shadow:0 7px 16px #512a211f;font-size:.77rem;pointer-events:none;animation:affinity-pop .88s ease both}.affinity-feedback small{margin-left:4px;color:#89706a;font-size:.61rem}.companion-invite{position:absolute;left:50%;top:56%;z-index:17;width:min(300px,calc(100% - 28px));padding:15px 16px 14px;border:1px solid rgba(229,181,97,.34);border-radius:19px 19px 19px 5px;background:#fff8e8ed;color:var(--ink);box-shadow:0 12px 28px #4d26202b;backdrop-filter:blur(12px);animation:invite-in .28s ease both}.companion-invite p{margin:0 0 11px;font-size:.86rem;line-height:1.45}.companion-invite div{display:flex;gap:7px}.companion-invite button{flex:1;padding:7px 9px;border-radius:999px;background:#f0e0cb;color:#79534b;font-size:.7rem}.companion-invite button:first-child{background:var(--red);color:#fff7eb}.radial-action.is-locked{opacity:.62;filter:saturate(.5)}.ball-hit-area{position:absolute;z-index:16;width:78px;height:78px;padding:0;transform:translate(-50%,-50%);border:0;border-radius:50%;background:transparent;pointer-events:auto}.ball-hit-area.thrown{cursor:pointer}.ball-hit-area.returning{pointer-events:none}.radial-choice{flex-direction:column;gap:4px;height:72px;padding:7px 5px}.radial-choice strong,.radial-action strong{font-size:.72rem;font-weight:700}.radial-choice svg,.radial-action svg{color:#ae694d}.radial-action{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-height:56px}.radial-action-grid{gap:7px}.ball-play-layer{position:absolute;inset:0;z-index:14;pointer-events:none}.ball-play-topline{position:absolute;top:14px;left:16px;right:16px;display:flex;align-items:center;gap:9px;padding:8px 10px;border:1px solid rgba(255,245,218,.38);border-radius:999px;background:#2b1c2057;color:#fff4da;backdrop-filter:blur(10px);pointer-events:auto}.ball-play-topline span{flex:1;font-size:.72rem}.ball-play-topline strong{color:#ffd582;font-size:.72rem}.ball-play-topline button{width:25px;height:25px;border-radius:50%;background:#fff5da24;color:#fff4da;font-size:1.1rem;line-height:1}.ball-play-prompt,.ball-play-tip{position:absolute;left:50%;transform:translate(-50%);color:#fff2d7c7;font-size:.7rem;white-space:nowrap;text-shadow:0 2px 9px rgba(34,15,16,.55)}.ball-play-prompt{top:27%}.ball-play-tip{bottom:25%}.flying-ball{position:absolute;width:42px;height:42px;padding:0;transform:translate(-50%,-50%);border:2px solid rgba(255,227,166,.82);border-radius:50%;background:radial-gradient(circle at 32% 28%,#ffe9b3 0 10%,#e79b4d 28%,#bb5837 75%);box-shadow:0 0 0 7px #ffe0961a,0 0 22px #ffb54aa6;pointer-events:auto;transition:left .42s cubic-bezier(.2,.8,.2,1),top .42s cubic-bezier(.2,.8,.2,1);animation:ball-breathe 1.1s ease-in-out infinite}.flying-ball.returning{opacity:.75;transform:translate(-50%,-50%) scale(.82)}.flying-ball i{position:absolute;left:8px;top:8px;width:8px;height:8px;border-radius:50%;background:#fff5ce;box-shadow:0 0 10px 4px #fff5c8b8}.lantern-game-backdrop{position:fixed;inset:0;z-index:100;display:grid;place-items:center;background:#190c119e;backdrop-filter:blur(8px);animation:fade-in .25s ease both}.lantern-game-stage{position:relative;width:min(100%,480px);height:100dvh;max-height:900px;overflow:hidden;background:#17252e;color:#fff4d7;touch-action:none}.lantern-game-bg,.lantern-game-wash{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none}.lantern-game-bg{filter:saturate(.82) brightness(.68)}.lantern-game-wash{background:linear-gradient(180deg,#0a111c33,#0f17200f 40%,#0a0f1bc2)}.lantern-game-header{position:absolute;top:0;left:0;right:0;z-index:2;display:flex;align-items:flex-start;justify-content:space-between;padding:calc(20px + env(safe-area-inset-top)) 20px 12px;text-shadow:0 2px 12px rgba(0,0,0,.32)}.lantern-game-header span{color:#ffd88b;font-size:.66rem;letter-spacing:.16em}.lantern-game-header h2{margin:5px 0 0;font-family:Songti SC,STSong,serif;font-size:1.55rem;font-weight:600;letter-spacing:.08em}.lantern-game-header button{width:34px;height:34px;border:1px solid rgba(255,243,210,.32);border-radius:50%;background:#10131b40;color:#fff1ce;font-size:1.45rem;line-height:1}.lantern-game-score{position:absolute;top:calc(104px + env(safe-area-inset-top));left:20px;z-index:2;display:flex;align-items:baseline;gap:8px}.lantern-game-score strong{color:#ffdc8b;font-size:2.2rem;font-variant-numeric:tabular-nums}.lantern-game-score span{color:#fff0cdc2;font-size:.72rem}.falling-lantern{position:absolute;z-index:2;display:block;transform:translate(-50%);filter:drop-shadow(0 0 11px rgba(255,203,102,.85))}.falling-lantern img{width:100%;height:100%;object-fit:contain}.falling-lantern i{position:absolute;inset:18%;border-radius:50%;background:#ffe9a9;box-shadow:0 0 15px 7px #ffd2688a;mix-blend-mode:screen}.lantern-game-river-glow{position:absolute;left:0;right:0;bottom:15%;height:18%;background:linear-gradient(180deg,transparent,rgba(110,203,204,.18),transparent);transform:skewY(-4deg);animation:river-glow 3s ease-in-out infinite;pointer-events:none}.lantern-game-boat{position:absolute;left:50%;bottom:5%;z-index:3;width:180px;height:146px;padding:0;transform:translate(-50%);background:transparent;filter:drop-shadow(0 7px 9px rgba(0,0,0,.35));touch-action:none}.lantern-game-boat img{width:100%;height:100%;object-fit:contain}.lantern-game-hint{position:absolute;left:0;right:0;bottom:2.2%;z-index:2;margin:0;color:#ffefcc94;text-align:center;font-size:.68rem}.lantern-game-result{position:absolute;inset:0;z-index:5;display:grid;place-content:center;justify-items:center;gap:8px;padding:30px;background:#0b0f1994;backdrop-filter:blur(7px);text-align:center}.lantern-game-result span{color:#ffd889;font-size:.72rem;letter-spacing:.16em}.lantern-game-result strong{font-family:Songti SC,STSong,serif;font-size:2.4rem;font-weight:600}.lantern-game-result p{max-width:260px;margin:0 0 14px;color:#fff1d3c7;font-size:.86rem;line-height:1.6}.lantern-game-result button{padding:11px 20px;border-radius:999px;background:#c84832;color:#fff7e8;box-shadow:0 7px 17px #0000002e}.lantern-game-result em{display:block;color:#ffd889;font-size:.75rem;font-style:normal}.lantern-game-result small{display:block;color:#fff1d3a1;font-size:.66rem}.memory-archive-tabs{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-bottom:15px}.memory-archive-tabs button{display:flex;align-items:center;justify-content:center;gap:6px;min-height:38px;border:1px solid rgba(255,235,201,.16);border-radius:999px;background:#fff0d30f;color:#ffe1b9a3;font-size:.72rem}.memory-archive-tabs button.active{border-color:#e5b5617a;background:#e5b5612e;color:#fff0ce}.item-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.item-card-v2{position:relative;display:block;padding:0;overflow:hidden;border:1px solid rgba(255,235,201,.18);border-radius:15px;background:#fff0d314;color:#fff2dc;text-align:left}.item-card-v2.is-locked{opacity:.52}.item-card-image{display:grid;place-items:center;aspect-ratio:1.05;padding:17px;background:radial-gradient(circle,#e5b56126,#fff0d308 64%)}.item-card-image img{width:86%;height:86%;object-fit:contain}.item-card-copy{display:block;padding:10px 11px 12px}.item-card-copy strong,.item-card-copy small{display:block}.item-card-copy strong{font-size:.8rem}.item-card-copy small{margin-top:5px;color:#ffe2be9e;font-size:.63rem;line-height:1.4}@keyframes ball-breathe{0%,to{box-shadow:0 0 0 7px #ffe0961a,0 0 22px #ffb54a85}50%{box-shadow:0 0 0 10px #ffe09621,0 0 30px #ffb54ac2}}@keyframes affinity-pop{0%{opacity:0;transform:translate(-50%,8px) scale(.92)}22%{opacity:1;transform:translate(-50%) scale(1)}78%{opacity:1;transform:translate(-50%,-8px) scale(1)}to{opacity:0;transform:translate(-50%,-19px) scale(.96)}}@keyframes invite-in{0%{opacity:0;transform:translate(-50%,8px) scale(.96)}to{opacity:1;transform:translate(-50%) scale(1)}}@keyframes relationship-flash{0%,to{border-color:#c89a453b;box-shadow:0 4px 13px #542d240f}35%{border-color:#c848329e;box-shadow:0 0 0 5px #e0ae5d2e,0 7px 21px #c8483230}}@keyframes river-glow{0%,to{opacity:.45;transform:translate(-2%) skewY(-4deg)}50%{opacity:.9;transform:translate(2%) skewY(-4deg)}}@media(max-width:420px){.top-actions{gap:5px}.relationship-status{grid-template-columns:auto minmax(48px,70px);min-width:116px;padding:4px 6px}.relationship-copy small{max-width:70px}.relationship-copy strong{font-size:.62rem}.relationship-mood{font-size:.55rem}.memory-grid{gap:9px}.memory-card-copy{padding:8px 9px 10px}.memory-card-copy strong{font-size:.78rem}.memory-card-copy small{font-size:.62rem}.memory-archive-header,.memory-archive-content,.memory-archive-footer{padding-left:17px;padding-right:17px}.debug-command-grid{grid-template-columns:repeat(2,1fr)}}.bgm-debug-section{border-color:#e0ae5d42}.bgm-debug-grid{margin-bottom:7px}.bgm-debug-grid span{min-width:0}.bgm-debug-grid b,.bgm-debug-section .debug-note{overflow-wrap:anywhere}.bgm-debug-actions{margin-top:8px}.radial-choice-2{left:50%;right:auto;bottom:27px;transform:translate(-50%)}.radial-choice-2:hover{transform:translate(-50%) scale(1.06)}.interaction-sheet-backdrop{position:fixed;inset:0;z-index:22;display:flex;align-items:flex-end;justify-content:center;background:#2d1b1c2b;backdrop-filter:blur(3px);animation:fade-in .2s ease both}.interaction-sheet{position:relative;width:min(100%,480px);max-height:min(64svh,560px);overflow:auto;padding:10px 18px calc(18px + env(safe-area-inset-bottom));border:1px solid rgba(255,255,255,.76);border-bottom:0;border-radius:26px 26px 0 0;background:#fffaf2f2;color:var(--ink);box-shadow:0 -16px 42px #48252129;backdrop-filter:blur(18px);animation:sheet-up .3s cubic-bezier(.2,.8,.2,1) both}.interaction-sheet.performance-library-sheet{max-height:min(70svh,620px)}.interaction-sheet-handle{width:42px;height:4px;margin:0 auto 9px;border-radius:999px;background:#72493e30}.interaction-sheet-header{display:grid;grid-template-columns:38px minmax(0,1fr) 38px;align-items:center;gap:8px;margin-bottom:7px}.interaction-sheet-header h2{margin:3px 0 0;font-family:Songti SC,STSong,serif;font-size:1.36rem;font-weight:600;letter-spacing:.08em}.sheet-eyebrow{color:var(--muted);font-size:.64rem;letter-spacing:.12em;text-transform:uppercase}.sheet-back-button,.sheet-close-button{display:grid;place-items:center;width:32px;height:32px;border:1px solid rgba(117,74,66,.12);border-radius:50%;background:#ffffff7a;color:var(--red-deep);font-size:1.35rem;line-height:1}.sheet-close-button{justify-self:end;font-size:1.2rem}.interaction-sheet-intro{margin:2px 2px 13px;color:var(--muted);font-size:.76rem;line-height:1.45}.intent-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.intent-card{display:grid;grid-template-columns:36px minmax(0,1fr);grid-template-rows:auto auto;align-items:center;gap:1px 8px;min-height:69px;padding:9px 10px;border:1px solid rgba(141,92,75,.13);border-radius:17px;background:#ffffff9e;color:var(--ink);text-align:left;transition:.18s ease}.intent-card:hover,.intent-card.is-highlighted{border-color:#c8483259;background:#f9e4d9;transform:translateY(-1px)}.intent-card.is-highlighted{box-shadow:0 0 0 3px #c8483214}.intent-card strong,.intent-card small{grid-column:2;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.intent-card strong{font-size:.82rem}.intent-card small{color:var(--muted);font-size:.62rem}.intent-icon,.play-card-icon,.performance-group-icon{display:grid;place-items:center;width:34px;height:34px;grid-row:1 / span 2;border-radius:12px;background:#f3e1d0;color:var(--red-deep)}.play-card-list,.performance-group-list{display:grid;gap:9px}.play-card,.performance-group-card{display:flex;align-items:center;gap:10px;width:100%;padding:12px 11px;border:1px solid rgba(141,92,75,.13);border-radius:17px;background:#ffffff9e;color:var(--ink);text-align:left}.play-card:hover,.performance-group-card:hover{border-color:#c8483254;background:#f9e4d9}.play-card>span:nth-child(2),.performance-group-card>span:nth-child(2){display:grid;flex:1;gap:3px}.play-card strong,.performance-group-card strong{font-size:.88rem}.play-card small,.performance-group-card small{color:var(--muted);font-size:.66rem}.play-card>.icon:last-child,.performance-group-card>.icon:last-child{color:var(--red-deep)}.performance-tabs{position:sticky;top:-10px;z-index:2;display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:0 -2px 12px;padding:3px 2px 8px;background:#fffaf2f5}.performance-tabs button{min-height:34px;border:1px solid rgba(141,92,75,.13);border-radius:999px;background:#ffffff85;color:var(--muted);font-size:.72rem}.performance-tabs button.active{border-color:#c8483261;background:#f3d7ca;color:var(--red-deep);font-weight:700}.performance-list{display:grid;gap:7px}.performance-card{display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:10px;width:100%;min-height:57px;padding:8px 10px;border:1px solid rgba(141,92,75,.12);border-radius:14px;background:#ffffff94;color:var(--ink);text-align:left}.performance-card:hover:not(.is-locked){border-color:#c848325c;background:#f9e4d9}.performance-card.is-locked{background:#79635b0e;color:#8d7a74}.performance-card-icon{display:grid;place-items:center;width:29px;height:29px;border-radius:10px;background:#f1e2d1;font-size:.9rem}.performance-card.is-locked .performance-card-icon{background:#ebe5df;filter:grayscale(.55)}.performance-card-copy{display:grid;gap:2px;min-width:0}.performance-card-copy strong{overflow:hidden;font-size:.79rem;text-overflow:ellipsis;white-space:nowrap}.performance-card-copy small{overflow:hidden;color:var(--muted);font-size:.62rem;text-overflow:ellipsis;white-space:nowrap}.performance-card-status{color:var(--red-deep);font-size:.61rem;white-space:nowrap}.is-locked .performance-card-status{color:#a48d83}.interaction-dialogue{position:absolute;z-index:18;width:min(270px,76vw);padding:11px 14px 12px;transform:translate(-50%,-100%);border:1px solid rgba(200,72,50,.18);border-radius:17px 17px 17px 5px;background:#fff9edf2;color:var(--ink);box-shadow:0 10px 25px #49261e26;backdrop-filter:blur(11px);animation:bubble-in .24s ease both}.interaction-dialogue:after{content:"";position:absolute;left:17px;bottom:-6px;width:10px;height:10px;border-right:1px solid rgba(200,72,50,.15);border-bottom:1px solid rgba(200,72,50,.15);background:#fff9edf0;transform:rotate(45deg)}.interaction-dialogue small{display:block;color:#a58277;font-size:.66rem}.interaction-dialogue p{margin:4px 0 0;font-size:.82rem;line-height:1.4}.interaction-dialogue button{display:inline-flex;align-items:center;gap:4px;margin-top:8px;padding:6px 10px;border-radius:999px;background:#f2ddd2;color:var(--red-deep);font-size:.68rem}.companion-invite{max-width:250px;padding:10px 12px 9px;border-radius:16px 16px 16px 5px}.companion-invite p{font-size:.76rem}.companion-invite button{padding:6px 8px;font-size:.66rem}.affinity-sheet{max-height:min(70svh,600px)}.affinity-hero{padding:8px 4px 14px;text-align:center}.affinity-hero>strong{display:block;color:var(--red-deep);font-size:2.12rem;font-variant-numeric:tabular-nums;letter-spacing:.02em}.affinity-hero>strong small{color:var(--muted);font-size:.9rem;font-weight:500}.affinity-hero>span{display:inline-block;margin-top:2px;color:var(--muted);font-size:.75rem}.affinity-panel-meter{height:6px;margin:13px 12px 8px;overflow:hidden;border-radius:999px;background:#be91602e}.affinity-panel-meter i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#e0ae5d,#c84832);transition:width .45s ease}.affinity-hero p{margin:0;color:var(--muted);font-size:.68rem}.stage-axis{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;margin:0 4px 17px;padding:12px 7px 10px;border-top:1px solid rgba(141,92,75,.12);border-bottom:1px solid rgba(141,92,75,.12)}.stage-axis div{display:grid;justify-items:center;gap:4px;color:#b4a09a}.stage-axis span{font-size:.78rem}.stage-axis small{font-size:.62rem}.stage-axis .is-done{color:var(--gold)}.stage-axis .is-current{color:var(--red-deep);font-weight:700}.affinity-upcoming h3{margin:0 0 8px;font-size:.78rem}.affinity-upcoming>div{display:flex;align-items:center;gap:10px;padding:7px 3px;border-bottom:1px solid rgba(141,92,75,.08);font-size:.72rem}.affinity-upcoming b{width:26px;color:var(--red-deep);font-variant-numeric:tabular-nums}.affinity-upcoming span{color:var(--muted)}.affinity-upcoming p{color:var(--muted);font-size:.72rem}.debug-filter-row{display:flex;flex-wrap:wrap;gap:4px;margin:7px 0 9px}.debug-filter-row button{padding:5px 7px;border-radius:7px;background:#ffffff17;color:#c9b7a8;font-size:.62rem}.debug-filter-row button.active{background:var(--red);color:#fff}@keyframes sheet-up{0%{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}@media(max-width:640px){.interaction-sheet{height:min(calc(100svh - 20px),760px);max-height:min(calc(100svh - 20px),760px);padding-bottom:calc(28px + env(safe-area-inset-bottom))}}.radial-submenu{z-index:13}.radial-submenu .radial-menu-halo{inset:20px;background:radial-gradient(circle,#fffaf2d1,#fff8ea7a 68%,#fff8ea14)}.radial-submenu .radial-menu-center{width:70px;height:70px;font-size:.72rem}.radial-submenu-items{position:absolute;inset:0;z-index:1}.radial-submenu .radial-action{position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;width:106px;height:70px;padding:7px 6px;border-radius:22px;background:#fffaf2e6}.radial-submenu .radial-action svg{flex:none;color:#ae694d}.radial-submenu .radial-action strong{max-width:100%;overflow:hidden;font-size:.78rem;text-overflow:ellipsis;white-space:nowrap}.radial-submenu .radial-action small{max-width:100%;overflow:hidden;color:#9b7870;font-size:.57rem;text-overflow:ellipsis;white-space:nowrap}.radial-submenu-count-6{width:350px;height:350px}.radial-submenu-count-6 .radial-action{width:116px}.radial-submenu-count-6 .radial-action:nth-child(1){left:16px;top:34px}.radial-submenu-count-6 .radial-action:nth-child(2){right:16px;top:34px}.radial-submenu-count-6 .radial-action:nth-child(3){left:0;top:140px}.radial-submenu-count-6 .radial-action:nth-child(4){right:0;top:140px}.radial-submenu-count-6 .radial-action:nth-child(5){left:16px;bottom:34px}.radial-submenu-count-6 .radial-action:nth-child(6){right:16px;bottom:34px}.radial-submenu-count-3 .radial-action:nth-child(1){left:18px;top:54px}.radial-submenu-count-3 .radial-action:nth-child(2){right:18px;top:54px}.radial-submenu-count-3 .radial-action:nth-child(3){left:50%;bottom:30px;transform:translate(-50%)}.radial-submenu-count-3 .radial-action:nth-child(3):hover{transform:translate(-50%) scale(1.06)}.radial-submenu-count-2 .radial-action:nth-child(1){left:18px;top:50%;transform:translateY(-50%)}.radial-submenu-count-2 .radial-action:nth-child(2){right:18px;top:50%;transform:translateY(-50%)}.radial-submenu-count-2 .radial-action:nth-child(1):hover,.radial-submenu-count-2 .radial-action:nth-child(2):hover{transform:translateY(-50%) scale(1.06)}.relationship-status{display:grid;grid-template-columns:minmax(106px,1fr) 78px;gap:0;min-width:190px;padding:0;overflow:hidden;border:1px solid rgba(200,154,69,.23);border-radius:14px;background:#fffaf2b8;box-shadow:0 4px 13px #542d240f}.relationship-status>button{min-width:0;border:0;border-radius:0;color:var(--ink);text-align:left}.relationship-affinity{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:0 5px;padding:6px 9px 5px;background:transparent}.relationship-affinity:hover,.relationship-mood-card:hover{background:#c8483212}.relationship-kicker,.mood-card-kicker{color:var(--muted);font-size:.52rem;letter-spacing:.08em}.relationship-affinity>strong{color:var(--red-deep);font-size:.74rem;font-variant-numeric:tabular-nums;white-space:nowrap}.relationship-affinity>strong small{color:var(--muted);font-size:.55rem;font-weight:500}.relationship-stage{grid-column:1 / -1;display:block;margin-top:1px;overflow:hidden;color:var(--muted);font-size:.55rem;text-overflow:ellipsis;white-space:nowrap}.relationship-stage i{margin-right:3px;color:var(--gold);font-style:normal}.relationship-affinity .relationship-meter{grid-column:1 / -1;width:100%;height:4px;margin-top:5px}.relationship-mood-card{display:grid;grid-template-columns:20px 1fr;grid-template-rows:auto auto;align-items:center;column-gap:4px;padding:5px 7px;border-left:1px solid rgba(141,92,75,.13)!important;background:#ffffff38}.mood-card-symbol{grid-row:1 / span 2;display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:#f4e2ce;color:var(--red-deep);font-size:.82rem}.relationship-mood-card strong{display:block;overflow:hidden;color:#735852;font-size:.63rem;text-overflow:ellipsis;white-space:nowrap}.relationship-mood-card small{display:block;color:#a1847d;font-size:.48rem;white-space:nowrap}.mood-guide-backdrop{position:fixed;inset:0;z-index:28;display:grid;place-items:center;padding:16px;background:#2d1b1c3d;backdrop-filter:blur(7px);animation:fade-in .2s ease both}.mood-guide-panel{width:min(440px,100%);max-height:min(88svh,740px);overflow-y:auto;padding:17px 18px calc(18px + env(safe-area-inset-bottom));border:1px solid rgba(255,255,255,.78);border-radius:27px;background:#fffaf2f5;color:var(--ink);box-shadow:0 18px 55px #48252133;backdrop-filter:blur(18px);animation:mood-guide-in .28s cubic-bezier(.2,.8,.2,1) both}.mood-guide-handle{width:40px;height:4px;margin:0 auto 13px;border-radius:999px;background:#72493e33}.mood-guide-header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.mood-guide-eyebrow{color:var(--muted);font-size:.58rem;letter-spacing:.16em}.mood-guide-header h2{margin:4px 0;font-family:Songti SC,STSong,serif;font-size:1.5rem;font-weight:600;letter-spacing:.08em}.mood-guide-header p{margin:0;color:var(--muted);font-size:.69rem;line-height:1.45}.mood-guide-close{display:grid;place-items:center;flex:0 0 auto;width:32px;height:32px;border:1px solid rgba(117,74,66,.13);border-radius:50%;background:#ffffff80;color:var(--red-deep);font-size:1.25rem}.mood-guide-current{display:flex;align-items:center;gap:12px;margin:17px 0 15px;padding:12px 13px;border:1px solid rgba(200,154,69,.22);border-radius:19px;background:linear-gradient(135deg,#fae7cbe6,#fff8eac7)}.mood-guide-current-symbol{display:grid;place-items:center;flex:0 0 auto;width:44px;height:44px;border-radius:15px 15px 15px 5px;background:#f0d6bc;color:var(--red-deep);font-family:Songti SC,serif;font-size:1.45rem;box-shadow:0 5px 12px #b268421f}.mood-guide-current small,.mood-guide-current strong,.mood-guide-current p{display:block}.mood-guide-current small{color:var(--muted);font-size:.59rem}.mood-guide-current strong{margin-top:1px;font-family:Songti SC,serif;font-size:1.05rem}.mood-guide-current p{margin:3px 0 0;color:var(--muted);font-size:.66rem;line-height:1.4}.mood-guide-section-title{display:flex;align-items:center;justify-content:space-between;margin:0 2px 8px;color:#735852;font-size:.76rem;font-weight:700}.mood-guide-section-title i{color:var(--gold);font-size:.92rem;font-style:normal}.mood-guide-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.mood-guide-card{display:grid;grid-template-columns:28px minmax(0,1fr);gap:8px;min-width:0;min-height:96px;padding:10px;border:1px solid rgba(141,92,75,.12);border-radius:16px;background:#ffffff8f}.mood-guide-card.is-current{border-color:#c8483259;background:#f9e4d9;box-shadow:0 0 0 3px #c848320f}.mood-guide-card-symbol{display:grid;place-items:center;width:27px;height:27px;border-radius:10px;background:#f3e1d0;color:var(--red-deep);font-size:.92rem}.mood-guide-card strong,.mood-guide-card p,.mood-guide-card em{display:block}.mood-guide-card strong{font-size:.74rem}.mood-guide-card p{margin:7px 0 0;color:var(--muted);font-size:.61rem;line-height:1.35}.mood-guide-card em{margin-top:6px;color:#a1847d;font-size:.55rem;line-height:1.3;font-style:normal}.mood-guide-label{display:block;margin-bottom:2px;color:#9d6a58;font-size:.5rem;font-weight:700;letter-spacing:.08em}@keyframes mood-guide-in{0%{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@media(max-width:420px){.relationship-status{min-width:174px;grid-template-columns:minmax(98px,1fr) 70px}.relationship-affinity{padding-left:7px;padding-right:7px}.relationship-mood-card{padding-left:5px;padding-right:5px}.mood-card-symbol{width:18px;height:18px;font-size:.72rem}.relationship-mood-card strong{font-size:.57rem}.mood-guide-backdrop{padding:10px}.mood-guide-panel{padding-left:13px;padding-right:13px;border-radius:23px}.mood-guide-grid{grid-template-columns:1fr;gap:7px}.mood-guide-card{min-height:0;padding:9px}.mood-guide-card p,.mood-guide-card em{margin-top:3px}}
