:root{color-scheme:dark;font-family:Inter,Noto Sans SC,PingFang SC,Microsoft YaHei,system-ui,sans-serif;background:#f0b596;color:#fff7ec}.music-radio-overlay{padding:0;background:#2e24252e;-webkit-backdrop-filter:none;backdrop-filter:none}.music-radio-overlay .close{right:clamp(16px,3vw,34px);top:clamp(16px,3vw,28px);z-index:5;border-color:#5c443638;background:#fff8e594;color:#655046}.music-radio-overlay .overlay-content,.music-radio-shell{width:100%;height:100%}.music-radio-shell{position:relative;overflow:hidden;display:grid;place-items:center;color:#5f4e43}.music-radio-bg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;filter:saturate(1.04) brightness(.94) blur(.5px);transform:scale(1.01)}.music-radio-shade{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at 50% 52%,rgba(255,248,224,.2),transparent 38%),linear-gradient(180deg,#fff5da29,#7e624833)}.music-radio-notes span{position:absolute;z-index:1;color:#4a3a2f5c;font-size:clamp(18px,3vw,34px);text-shadow:0 0 18px rgba(255,236,166,.72);animation:radioNoteFloat 4.8s ease-in-out infinite}.music-radio-notes span:nth-child(1){left:12%;top:18%;animation-delay:-.6s}.music-radio-notes span:nth-child(2){left:78%;top:20%;animation-delay:-1.5s}.music-radio-notes span:nth-child(3){left:20%;top:76%;animation-delay:-2.2s}.music-radio-notes span:nth-child(4){left:84%;top:70%;animation-delay:-3s}.music-radio-notes span:nth-child(5){left:48%;top:12%;animation-delay:-3.8s}.music-radio-panel{position:relative;z-index:2;width:min(880px,calc(100vw - 34px));max-height:min(760px,calc(100vh - 54px));display:grid;gap:18px;padding:clamp(20px,4vw,34px);border:1px solid rgba(255,255,255,.45);border-radius:8px;background:#fff8e285;box-shadow:0 24px 88px #4b362d38,inset 0 0 32px #ffffff2e;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.music-radio-kicker,.radio-now-playing span{margin:0;color:#685041b8;font-size:13px;font-weight:800}.music-radio-panel h2{margin:0;color:#5f4438;font-size:clamp(26px,5vw,46px);letter-spacing:0;text-shadow:0 2px 12px rgba(255,255,255,.52)}.music-radio-playlists{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.music-radio-card{min-height:170px;display:grid;align-content:center;justify-items:start;gap:10px;padding:22px;border:1px solid rgba(116,88,69,.16);border-radius:8px;background:linear-gradient(145deg,#ffffff8a,#ffecc557),#fff8e670;color:#614c41;text-align:left;cursor:pointer;box-shadow:0 16px 44px #523c2e1f;transition:transform .28s ease,box-shadow .28s ease,background .28s ease}.music-radio-card:hover,.radio-song-row:hover,.radio-controls button:hover,.radio-minimize:hover,.music-radio-close:hover,.radio-mini-card button:hover{transform:translateY(-2px)}.music-radio-card.is-active{background:radial-gradient(circle at 80% 12%,rgba(255,235,142,.62),transparent 34%),linear-gradient(145deg,#ffffffad,#ffdcb370)}.music-radio-card.is-waiting{opacity:.82}.music-radio-card span,.music-radio-card small{font-size:12px;opacity:.72}.music-radio-card strong{font-size:clamp(20px,3vw,30px)}.radio-placeholder-panel{width:min(600px,calc(100vw - 34px));text-align:center}.radio-placeholder-panel p{margin:0;white-space:pre-line;font-size:18px;line-height:1.8}.radio-song-panel{grid-template-rows:auto auto minmax(220px,1fr) auto}.radio-song-header{display:flex;justify-content:space-between;align-items:start;gap:16px}.radio-minimize,.music-radio-close,.radio-back-playlists,.radio-controls button,.radio-mini-card button{min-height:40px;padding:0 16px;border:1px solid rgba(105,78,61,.18);border-radius:999px;background:#fffaeb9e;color:#624d40;font-weight:850;cursor:pointer;box-shadow:0 10px 28px #503a2b1a;transition:transform .24s ease,background .24s ease}.music-radio-close{position:absolute;z-index:3;right:clamp(20px,4vw,54px);bottom:clamp(20px,4vw,44px)}.music-radio-close.inline{position:static}.radio-now-playing{min-height:94px;display:grid;align-content:center;gap:5px;padding:16px 18px;border-radius:8px;background:linear-gradient(135deg,#ffffff80,#ffeec742);box-shadow:inset 0 0 28px #ffffff38}.radio-now-playing strong{color:#594236;font-size:clamp(21px,4vw,34px)}.radio-now-playing small{color:#5a4639b8;font-size:14px}.radio-song-list{min-height:0;overflow:auto;display:grid;gap:8px;padding-right:6px}.radio-song-row{display:grid;grid-template-columns:58px minmax(0,1fr);align-items:center;gap:12px;padding:10px 12px;border:1px solid rgba(108,80,63,.12);border-radius:8px;background:#fffcf075;color:#5d483d;text-align:left;cursor:pointer;transition:transform .22s ease,background .22s ease}.radio-song-row.is-current{background:#ffe8ad8f;box-shadow:0 0 26px #ffe29447}.radio-row-play{display:grid;place-items:center;min-height:36px;border-radius:999px;background:#7158431a;font-size:12px;font-weight:900}.radio-song-row strong,.radio-song-row small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.radio-song-row strong{font-size:15px}.radio-song-row small{margin-top:3px;color:#5c4739ad;font-size:12px}.radio-controls{display:flex;flex-wrap:wrap;gap:10px}.radio-mini-player{position:absolute;left:50%;bottom:clamp(18px,4vw,34px);z-index:12;width:min(760px,calc(100vw - 28px));pointer-events:auto;transform:translate(-50%)}.radio-mini-card{display:grid;grid-template-columns:44px minmax(0,1fr) auto auto auto auto;align-items:center;gap:12px;padding:12px 14px;border:1px solid rgba(255,255,255,.38);border-radius:999px;background:#fff7e594;color:#fff9ee;box-shadow:0 18px 58px #31232a38;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.radio-mini-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:#ffe69557;color:#fff1a6;font-size:22px;text-shadow:0 0 16px rgba(255,235,152,.9)}.radio-mini-card strong,.radio-mini-card small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-shadow:0 2px 12px rgba(56,40,44,.42)}.radio-mini-card small{color:#fff7e7b8;font-size:12px}.radio-mini-card button{background:#fffaec4d;color:#fff8ec}@keyframes radioNoteFloat{0%,to{transform:translateY(0) rotate(-4deg);opacity:.48}50%{transform:translateY(-20px) rotate(8deg);opacity:.9}}@media (max-width: 760px){.music-radio-panel{width:calc(100vw - 22px);max-height:calc(100vh - 46px);padding:18px}.music-radio-playlists{grid-template-columns:1fr}.music-radio-card{min-height:112px}.radio-song-panel{grid-template-rows:auto auto minmax(180px,1fr) auto}.radio-song-header{align-items:center}.radio-controls button,.radio-minimize,.music-radio-close,.radio-back-playlists{min-height:38px;padding:0 12px;font-size:12px}.music-radio-close{right:14px;bottom:14px}.radio-mini-card{grid-template-columns:36px minmax(0,1fr) auto;border-radius:22px}.radio-mini-icon{width:36px;height:36px}.radio-mini-prev,.radio-mini-toggle,.radio-mini-next,.radio-mini-expand{min-height:34px;padding:0 10px;font-size:12px}.radio-mini-prev{grid-column:1 / 2}.radio-mini-toggle{grid-column:2 / 3}.radio-mini-next{grid-column:3 / 4}.radio-mini-expand{grid-column:1 / 4}}*{box-sizing:border-box}html,body,#app{width:100%;height:100%;margin:0;overflow:hidden}canvas{display:block;width:100%;height:100%}button{font-family:inherit}.room-hidden-media{position:fixed;width:1px;height:1px;opacity:0;pointer-events:none}.entry-root{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;pointer-events:none}.entry-shell,.birthday-shell{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;overflow:hidden;opacity:1;visibility:visible;pointer-events:auto;transition:opacity .8s ease,visibility .8s ease}.entry-shell:before{content:"";position:absolute;top:-18px;right:-18px;bottom:-18px;left:-18px;background:linear-gradient(#fff2e108,#ffdcc60a),url(/landing/landing_bg.jpg) center / cover;filter:blur(1px) saturate(1.08) brightness(1.02);transform:scale(1.008)}.entry-shell:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at 22% 18%,rgba(255,255,255,.18),transparent 28%),radial-gradient(circle at 78% 75%,rgba(255,188,194,.08),transparent 34%),#fff6e308}.entry-decorations{position:absolute;top:0;right:0;bottom:0;left:0}.welcome-card,.entry-card{position:relative;z-index:2;grid-area:1 / 1;width:min(560px,calc(100vw - 34px));display:grid;justify-items:center;padding:clamp(26px,6vw,48px);border:1px solid rgba(255,255,255,.46);border-radius:8px;color:#6b514f;text-align:center;box-shadow:0 28px 90px #6f494c33;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:opacity .55s ease,transform .55s ease,visibility .55s ease}.entry-card{gap:20px;background:#fff6e733}.entry-card.hidden,.welcome-card.hidden{transform:translateY(10px) scale(.97)}.entry-card.is-visible,.welcome-card{transform:translateY(0) scale(1)}.welcome-card{width:min(430px,calc(100vw - 40px));gap:18px;padding:clamp(24px,5vw,38px);background:#fff6e72e}.welcome-kicker{margin:0;color:#5b4e50b8;font-size:14px;font-weight:700;text-shadow:0 2px 12px rgba(255,255,255,.78)}.welcome-button{min-width:190px;min-height:58px;border:1px solid rgba(255,255,255,.62);border-radius:999px;background:linear-gradient(135deg,#ffeea9e6,#ffb4b9c7);color:#655053;font-size:22px;font-weight:900;cursor:pointer;box-shadow:0 16px 44px #6c494a2e,inset 0 0 22px #ffffff61;animation:welcomePulse 2.4s ease-in-out infinite}.entry-title-en{margin:0;color:#5e8c95;font-family:Trebuchet MS,Inter,sans-serif;font-size:clamp(28px,6vw,58px);font-weight:900;letter-spacing:0;text-shadow:0 3px 0 rgba(255,255,255,.88),0 8px 24px rgba(108,126,129,.22)}.entry-card h1{margin:-10px 0 0;color:#ef8f74;font-size:clamp(26px,5vw,48px);letter-spacing:0;text-shadow:0 3px 0 rgba(255,255,255,.88),0 10px 26px rgba(181,107,89,.2)}.entry-loading-area{width:min(360px,78vw);display:grid;justify-items:center;gap:9px}.entry-loading-text,.entry-percent{margin:0;color:#584849c2;font-size:13px}.entry-loading-bar{width:100%;height:14px;padding:3px;overflow:hidden;border:1px solid rgba(255,255,255,.58);border-radius:999px;background:#ffffff4d;box-shadow:inset 0 0 18px #ffffff6b,0 0 24px #ffd1a66b}.entry-loading-bar span{display:block;width:0%;height:100%;border-radius:inherit;background:linear-gradient(90deg,#ffdba9,#f8a9b4,#b9ded2,#fff0a8);transition:width .35s ease}.entry-options{display:flex;align-items:center;gap:18px;opacity:1;transform:translateY(0) scale(1);transition:opacity .65s ease,transform .65s ease}.entry-options.hidden{display:flex;opacity:0;pointer-events:none;transform:translateY(12px) scale(.96)}.entry-enter,.entry-birthday,.birthday-enter,.birthday-back,.entry-sound-toggle{border:1px solid rgba(255,255,255,.54);border-radius:999px;background:#fffaeea3;color:#6e5653;font-weight:800;cursor:pointer;box-shadow:0 14px 40px #66464a2e;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.entry-enter,.entry-birthday{min-width:132px;min-height:52px;padding:0 26px;font-size:18px}.entry-enter{background:linear-gradient(135deg,#ffeca3e0,#ffb7adc2)}.entry-birthday{position:relative;overflow:visible;background:radial-gradient(circle at 50% 35%,rgba(255,255,255,.78),transparent 42%),linear-gradient(135deg,#ffd9f5e6,#b1e2ffc2);color:#5e607f;box-shadow:0 0 22px #ffe1fcb8,0 0 48px #a4dbff6b,0 14px 40px #66464a2e;animation:orGlow 2.2s ease-in-out infinite}.entry-birthday:before{content:"";position:absolute;top:-8px;right:-8px;bottom:-8px;left:-8px;z-index:-1;border-radius:inherit;background:radial-gradient(circle,rgba(255,242,174,.56),rgba(255,175,222,.16),transparent 68%);filter:blur(8px);animation:orHalo 2.6s ease-in-out infinite}.entry-birthday span:last-child{position:relative;z-index:1}.or-bang{position:absolute;right:-8px;top:-16px;width:28px;height:28px;display:grid;place-items:center;border:2px solid rgba(255,255,255,.92);border-radius:50%;background:#ffcf5b;color:#8a5575;font-size:18px;font-weight:900;box-shadow:0 8px 20px #6e4c5438;transform-origin:50% 90%;animation:orBangWiggle 1.1s ease-in-out infinite}.entry-sound-toggle{position:fixed;left:clamp(14px,3vw,28px);top:16px;z-index:62;min-height:38px;padding:0 14px;color:#5f5758;pointer-events:auto}.entry-decorations span,.birthday-particles span{position:absolute;z-index:1;left:var(--x);top:var(--y);width:calc(6px + (var(--i) % 4) * 3px);height:calc(6px + (var(--i) % 4) * 3px);border-radius:50%;background:#ffffffb3;box-shadow:0 0 18px #ffeaaca6;animation:entryFloat calc(5s + (var(--i) % 6) * .8s) ease-in-out infinite;animation-delay:calc(var(--i) * -.25s)}.entry-decorations span:nth-child(3n){border-radius:2px;background:#fca4b1b3}.entry-decorations span:nth-child(4n){width:18px;height:6px;border-radius:999px;background:#9fd2c6b8}.entry-page-hidden,.entry-exiting .entry-shell,.entry-exiting .birthday-shell{opacity:0;visibility:hidden;pointer-events:none}.entry-root.is-island{z-index:18}.entry-root.is-island .entry-sound-toggle{background:#fff7e957;color:#fffaeee6}.birthday-shell{background:#131a30}.birthday-shell.hidden{opacity:0;visibility:hidden;pointer-events:none}.birthday-shell.is-visible{opacity:1}.birthday-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(#0f122614,#0f12261a),url(/landing/birthday_bg.jpg) center / cover no-repeat;image-rendering:pixelated;animation:birthdayBreathe 3.6s steps(3,end) infinite}.birthday-backdrop:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at 50% 24%,rgba(97,204,255,.18),transparent 22%),radial-gradient(circle at 50% 62%,rgba(120,255,205,.18),transparent 26%);mix-blend-mode:screen}.birthday-overlay-text{position:absolute;top:clamp(28px,4.5vw,54px);left:50%;z-index:2;display:grid;justify-items:center;color:#26b7f4;font-family:Courier New,monospace;text-align:center;transform:translate(-50%);text-shadow:3px 0 #fff,-3px 0 #fff,0 3px #fff,0 -3px #fff,0 8px 0 rgba(0,0,0,.22);animation:pixelBounce 1.4s steps(2,end) infinite}.birthday-overlay-text strong{font-size:clamp(34px,8vw,106px);line-height:.82}.birthday-overlay-text span{color:#f4bf42;font-size:clamp(40px,9vw,112px);line-height:.92;text-shadow:3px 0 #4e5641,-3px 0 #4e5641,0 3px #4e5641,0 -3px #4e5641;animation:numberBlink 1.1s steps(2,end) infinite}.birthday-enter{position:absolute;left:clamp(16px,4vw,44px);bottom:clamp(18px,4vw,44px);z-index:3;min-height:44px;padding:0 22px}.birthday-back{position:absolute;right:clamp(16px,4vw,44px);bottom:clamp(18px,4vw,44px);z-index:3;min-height:44px;padding:0 18px}.voice-card{position:relative;z-index:4;display:grid;grid-template-columns:44px 82px minmax(140px,1fr);align-items:center;gap:14px;width:min(430px,calc(100vw - 44px));min-height:92px;padding:14px 22px;border:1px solid rgba(255,255,255,.46);border-radius:999px;background:#fff6e8db;color:#6c5d57;box-shadow:0 20px 70px #00000042;cursor:pointer;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);animation:voiceCardFloat 2.8s ease-in-out infinite}.voice-card.is-playing .voice-wave span{background:#9f8b80;animation-duration:.72s}.voice-play{width:44px;height:44px;border:0;border-radius:50%;background:#f1d8bd;color:#8b6b56;font-size:18px;cursor:pointer}.voice-info{display:grid;gap:7px;min-width:0}.voice-info strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.voice-progress{width:100%;height:5px;overflow:hidden;border-radius:999px;background:#8b6b5629;box-shadow:inset 0 0 8px #ffffff61}.voice-progress span{display:block;width:0%;height:100%;border-radius:inherit;background:linear-gradient(90deg,#d7b397,#f0b6bf,#f6d9a9);transition:width .16s linear}.voice-time{color:#6c5d57c7;font-size:12px;font-variant-numeric:tabular-nums}.voice-wave{display:flex;align-items:center;gap:4px}.voice-wave span{width:4px;height:18px;border-radius:999px;background:#b99e8f;animation:voiceWave 1s ease-in-out infinite}.voice-wave span:nth-child(2){animation-delay:-.1s}.voice-wave span:nth-child(3){animation-delay:-.2s}.voice-wave span:nth-child(4){animation-delay:-.3s}.voice-wave span:nth-child(5){animation-delay:-.4s}.voice-wave span:nth-child(6){animation-delay:-.5s}.voice-placeholder{position:absolute;left:50%;top:calc(50% + 62px);z-index:5;margin:0;padding:8px 14px;border-radius:999px;background:#fff7e8d1;color:#6c5d57;transform:translate(-50%);box-shadow:0 12px 36px #0000002e}@keyframes entryFloat{0%,to{transform:translateZ(0) rotate(0);opacity:.55}50%{transform:translate3d(12px,-24px,0) rotate(14deg);opacity:.95}}@keyframes birthdayBreathe{0%,to{transform:scale(1) translateY(0);filter:brightness(1)}50%{transform:scale(1.018) translateY(-4px);filter:brightness(1.08)}}@keyframes pixelBounce{0%,to{transform:translate(-50%) translateY(0)}50%{transform:translate(-50%) translateY(-8px)}}@keyframes numberBlink{0%,to{opacity:1}50%{opacity:.82}}@keyframes voiceCardFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes voiceWave{0%,to{transform:scaleY(.6)}50%{transform:scaleY(1.25)}}@keyframes welcomePulse{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}@keyframes orGlow{0%,to{transform:translateY(0) scale(1)}50%{transform:translateY(-2px) scale(1.04)}}@keyframes orHalo{0%,to{opacity:.42;transform:scale(.92)}50%{opacity:.95;transform:scale(1.08)}}@keyframes orBangWiggle{0%,to{transform:rotate(-8deg) translateY(0)}30%{transform:rotate(10deg) translateY(-2px)}60%{transform:rotate(-5deg) translateY(1px)}}.ui{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none}.topline{position:absolute;left:clamp(16px,3vw,34px);right:clamp(16px,3vw,34px);top:18px;display:flex;justify-content:space-between;align-items:center;gap:16px;color:#fff8ebd6;text-shadow:0 2px 16px rgba(126,68,54,.28)}body.overlay-scene-open .entry-root.is-island .entry-sound-toggle,body.overlay-scene-open .topline,body.overlay-scene-open .island-map-preview,body.overlay-scene-open .room-actions,body.overlay-scene-open .float-actions,body.overlay-scene-open .joystick{opacity:0;visibility:hidden;pointer-events:none}.brand{font-size:15px;font-weight:600}.hint{font-size:12px;opacity:.78}.island-map-preview{position:absolute;top:58px;right:clamp(16px,3vw,34px);width:min(170px,24vw);min-width:118px;display:grid;gap:6px;padding:8px;border:1px solid rgba(255,255,255,.34);border-radius:8px;background:#fff7e833;color:#fff9eef5;font-size:13px;cursor:pointer;pointer-events:auto;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 14px 44px #573d4829;z-index:7}.island-map-preview img{width:100%;aspect-ratio:1.12;object-fit:cover;border-radius:6px;opacity:.86}.island-map-preview span{text-align:center;text-shadow:0 2px 14px rgba(60,38,46,.34)}.loading{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;gap:18px;align-content:center;background:radial-gradient(circle at 52% 38%,rgba(255,244,212,.58),transparent 30%),linear-gradient(180deg,#9fc2dc,#f0b99e 58%,#f7d7b5);transition:opacity .7s ease,visibility .7s ease;z-index:20}.loading-title{color:#fff8ec;font-size:15px;letter-spacing:0;text-shadow:0 2px 18px rgba(89,68,78,.28)}.loading-bar{width:min(320px,68vw);height:5px;overflow:hidden;border-radius:999px;background:#ffffff42}.loading-bar span{display:block;width:0%;height:100%;border-radius:inherit;background:#fff5cf;transition:width .25s ease}.prompt{position:absolute;left:50%;bottom:18%;transform:translate(-50%);max-width:min(420px,calc(100vw - 40px));padding:10px 16px;border:1px solid rgba(255,255,255,.28);border-radius:999px;background:#412f373d;color:#fffaeef0;font-size:14px;line-height:1.45;text-align:center;white-space:pre-line;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:0 12px 50px #754a4f29;transition:opacity .24s ease,transform .24s ease}.caption{position:absolute;left:50%;top:22%;transform:translate(-50%);width:min(560px,calc(100vw - 36px));color:#fff9ecf5;font-size:19px;line-height:1.7;text-align:center;text-shadow:0 3px 24px rgba(88,58,74,.42);transition:opacity .35s ease}.overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:22px;background:#3b2e3a52;pointer-events:auto;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:10}.map-viewer{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;padding:20px;background:#2c26306b;pointer-events:auto;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:18}.map-card{position:relative;width:min(920px,94vw);display:grid;justify-items:center;gap:14px;padding:14px;border:1px solid rgba(255,255,255,.34);border-radius:8px;background:#fff8e62e;box-shadow:0 28px 88px #261c2a47}.map-card img{width:100%;max-height:78vh;object-fit:contain;border-radius:6px;box-shadow:0 18px 60px #2e202a3d}.map-close{min-height:42px;padding:0 18px;border:1px solid rgba(255,255,255,.34);border-radius:999px;background:#fff8e8b8;color:#6b4a45;cursor:pointer;box-shadow:0 10px 28px #573d481f}.room-actions,.float-actions{position:absolute;right:clamp(16px,3vw,34px);bottom:24px;display:flex;gap:10px;pointer-events:auto;z-index:8}.room-relax-ui{position:fixed;top:0;right:0;bottom:0;left:0;z-index:12;pointer-events:none;color:#fff8e8f5;text-shadow:0 2px 18px rgba(34,26,36,.35)}.room-return-island{position:absolute;top:18px;right:clamp(16px,3vw,34px);min-height:40px;padding:0 16px;border:1px solid rgba(255,255,255,.36);border-radius:999px;background:#fff6e247;color:#fff8ec;font-size:14px;cursor:pointer;pointer-events:auto;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 12px 38px #21162033}.room-relax-panel{position:absolute;border:1px solid rgba(255,255,255,.22);border-radius:8px;background:radial-gradient(circle at 18% 12%,rgba(255,255,255,.22),transparent 34%),#222b443d;box-shadow:0 20px 70px #1913203d;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);pointer-events:auto}.room-welcome-panel{left:50%;top:72px;width:min(560px,calc(100vw - 36px));padding:18px 22px;text-align:center;transform:translate(-50%)}.room-welcome-panel h2,.room-select-panel h3,.room-timer-panel h3{margin:0;letter-spacing:0}.room-welcome-panel h2{font-size:clamp(20px,3vw,30px)}.room-welcome-panel p{margin:8px 0 0;color:#fff7e8cc;font-size:14px}.room-select-panel{left:clamp(16px,3vw,34px);top:170px;width:min(260px,calc(100vw - 32px));padding:16px}.room-select-panel h3,.room-timer-panel h3{margin-bottom:12px;color:#fff4dbf0;font-size:15px}.room-option-grid{display:grid;grid-template-columns:1fr;gap:8px}.room-option-card,.room-timer-button{min-height:38px;border:1px solid rgba(255,255,255,.22);border-radius:8px;background:#fff6e124;color:#fff9eceb;cursor:pointer;transition:background .25s ease,box-shadow .25s ease,transform .25s ease}.room-option-card:hover,.room-timer-button:hover,.room-option-card.is-selected,.room-timer-button.is-selected{background:#ffe6b147;box-shadow:0 0 22px #ffdb973d,inset 0 0 18px #ffffff29;transform:translateY(-1px)}.room-timer-panel{right:clamp(16px,3vw,34px);bottom:clamp(18px,4vw,42px);width:min(360px,calc(100vw - 32px));padding:16px}.room-timer-options{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.room-custom-timer{display:grid;grid-template-columns:auto 72px auto;align-items:center;gap:8px;margin-top:12px;color:#fff7e8d1;font-size:13px}.room-custom-minutes{min-height:34px;border:1px solid rgba(255,255,255,.24);border-radius:8px;background:#fffaee33;color:#fff8ec;text-align:center}.room-remaining{margin:12px 0 0;color:#ffeec7eb;font-size:14px}.room-actions button,.float-actions button{min-height:38px;padding:0 16px;border:1px solid rgba(255,255,255,.32);border-radius:999px;background:#fff7e942;color:#fff8ec;font-size:14px;cursor:pointer;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 10px 34px #573d482e}.overlay-content{width:min(520px,100%);padding:28px;border:1px solid rgba(255,255,255,.24);border-radius:8px;background:#fff4e2e0;color:#685159;box-shadow:0 26px 90px #4f363e47}.recipe-overlay{padding:clamp(14px,3vw,32px);background:radial-gradient(circle at 22% 18%,rgba(255,226,185,.34),transparent 32%),radial-gradient(circle at 80% 78%,rgba(170,212,196,.22),transparent 30%),#4432376b}.recipe-overlay .overlay-content{width:min(1060px,100%);height:min(900px,calc(100vh - 36px));display:grid;place-items:center;padding:0;border:0;background:transparent;box-shadow:none;color:#664d43}.mailbox-overlay{padding:clamp(12px,2.6vw,28px);background:#5944485c}.mailbox-overlay .overlay-content{position:relative;width:min(1040px,100%);height:min(650px,calc(100vh - 34px));display:grid;place-items:center;padding:0;border:0;background:linear-gradient(#fffff014,#fff5e31a),url(/ui/mailbox_bg.jpg) center / cover no-repeat;color:#6d5550;box-shadow:0 30px 100px #49333a57,inset 0 0 0 1px #ffffff85;overflow:hidden}.mailbox-shell{position:relative;width:100%;height:100%;display:grid;place-items:center;padding:clamp(68px,10vh,92px) clamp(70px,10vw,116px) clamp(74px,11vh,96px)}.mailbox-letter-stack{position:relative;width:min(590px,70vw);min-height:min(350px,48vh);display:grid;place-items:center;perspective:1300px}.mailbox-letter-stack:before,.mailbox-letter-stack:after{content:"";position:absolute;top:14px;right:8px;bottom:-12px;left:8px;border-radius:8px;background:repeating-linear-gradient(0deg,rgba(121,83,71,.045) 0 1px,transparent 1px 10px),#fff9e2eb;box-shadow:0 18px 38px #744c481f}.mailbox-letter-stack:before{transform:rotate(-2.6deg) translate(-16px,10px)}.mailbox-letter-stack:after{transform:rotate(2deg) translate(16px,12px)}.mailbox-letter-card{position:relative;z-index:1;width:100%;min-height:min(360px,50vh);padding:clamp(26px,4vw,42px);border:1px solid rgba(207,159,127,.38);border-radius:8px;background:radial-gradient(circle at 18% 15%,rgba(255,255,255,.7),transparent 26%),repeating-linear-gradient(0deg,rgba(146,102,80,.055) 0 1px,transparent 1px 11px),#fff9e1f5;box-shadow:0 26px 58px #73484633,inset 10px 0 18px #ac784f14;transform-origin:left center;animation:mailboxPageIn .44s ease both}.mailbox-shell[data-turn=prev] .mailbox-letter-card{transform-origin:right center;animation-name:mailboxPageBack}.mailbox-kicker{margin:0 0 8px;color:#9c7c72;font-size:13px}.mailbox-letter-card h2{margin:0 0 18px;color:#5f463f;font-size:clamp(28px,4vw,44px);letter-spacing:0}.mailbox-letter-card time{display:inline-block;margin-bottom:16px;color:#9b7d73;font-size:13px}.mailbox-letter-body{margin:0;color:#70554e;font-size:clamp(16px,2vw,20px);line-height:1.95;white-space:pre-wrap}.mailbox-letter-count{margin-top:22px;color:#a3867c;font-size:13px;text-align:right}.mailbox-nav{position:absolute;top:50%;z-index:2;width:48px;height:58px;border:1px solid rgba(244,183,159,.42);border-radius:999px;background:#fff6dcb8;color:#8b6257;font-size:40px;line-height:1;cursor:pointer;box-shadow:0 14px 34px #7e505026}.mailbox-prev{left:clamp(22px,5vw,56px)}.mailbox-next{right:clamp(22px,5vw,56px)}.mailbox-tabs{position:absolute;left:50%;bottom:clamp(24px,5vh,42px);z-index:3;display:flex;gap:10px;flex-wrap:wrap;justify-content:center;transform:translate(-50%)}.mailbox-tab{min-height:34px;display:inline-flex;align-items:center;gap:6px;padding:0 13px;border:1px solid rgba(238,173,151,.36);border-radius:999px;background:#fff7e0c7;color:#815d55;cursor:pointer;box-shadow:0 10px 22px #7a4f4e1f}.mailbox-tab.is-active{background:#ffe2b4eb}.mailbox-tab span{width:8px;height:8px;border-radius:50%;background:#ff6573;box-shadow:0 0 10px #ff6573b8}.mailbox-particles span{position:absolute;width:7px;height:7px;border-radius:50%;background:#ffd57ac7;box-shadow:0 0 16px #ffd57a80;animation:mailboxFloat 5.8s ease-in-out infinite}.mailbox-particles span:nth-child(1){left:22%;top:24%}.mailbox-particles span:nth-child(2){right:20%;top:22%;animation-delay:-1.2s;background:#ff99aab8}.mailbox-particles span:nth-child(3){left:28%;bottom:20%;animation-delay:-2.2s;background:#a2ddd2c7}.mailbox-particles span:nth-child(4){right:28%;bottom:19%;animation-delay:-3s}.mailbox-particles span:nth-child(5){left:50%;top:17%;animation-delay:-4s;background:#c7b4f1b8}.food-wheel-overlay{padding:clamp(16px,3vw,34px);background:#573d4257}.food-wheel-overlay .overlay-content{width:min(1120px,100%);height:min(820px,calc(100vh - 40px));display:grid;place-items:center;padding:0;border:1px solid rgba(255,255,255,.42);background:linear-gradient(#ffffee05,#fff6e20a),url(/ui/foodwheel_bg.jpg) center / cover no-repeat;box-shadow:0 30px 100px #49333a52;overflow:hidden}.food-wheel-shell{position:relative;width:100%;height:100%;display:grid;grid-template-rows:auto 1fr auto;justify-items:center;align-items:center;gap:14px;color:#6b4f47}.food-wheel-header{align-self:end;text-align:center;padding:12px 22px;border:1px solid rgba(255,255,255,.48);border-radius:999px;background:#fffae685;color:#6f5045;text-shadow:none;box-shadow:0 12px 34px #6948451f;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.food-wheel-header h2{margin:0;font-size:clamp(24px,4.2vw,42px);letter-spacing:0;color:#61483e}.food-wheel-header p{margin:6px 0 0;color:#86695e;font-size:clamp(14px,2vw,17px)}.food-category-wheel,.food-spin-stage{position:relative;width:min(620px,78vw,calc(100vh - 210px));aspect-ratio:1 / 1;display:grid;place-items:center;animation:foodZoomIn .5s ease both}.food-category-wheel{border-radius:50%;background:radial-gradient(circle,rgba(255,248,225,.62) 0 25%,transparent 26%),conic-gradient(#ffc95f94,#ff9f938f,#7cd3a78a,#ffe26d8f,#ff8fb08a,#89c7ff85,#ffbe638f,#8fd88b8a,#ffc95f94);box-shadow:0 20px 60px #4b303129,inset 0 0 0 10px #fffaec3d,inset 0 0 36px #7e4d341f;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px)}.food-category-chip{position:absolute;left:50%;top:50%;width:126px;min-height:68px;display:grid;place-items:center;gap:3px;padding:8px 10px;border:1px solid rgba(255,255,255,.52);border-radius:18px;background:#fffcecb3;color:#5e453c;box-shadow:0 12px 34px #583b3729;cursor:pointer;transform:rotate(var(--angle)) translate(min(245px,31vw,calc((100vh - 210px)*.31))) rotate(calc(var(--angle) * -1)) translate(-50%,-50%);transition:transform .28s ease,background .28s ease}.food-category-chip:hover{background:#fffff7f0;transform:rotate(var(--angle)) translate(min(255px,32vw,calc((100vh - 210px)*.32))) rotate(calc(var(--angle) * -1)) translate(-50%,-50%) scale(1.04)}.food-category-chip span{font-size:23px}.food-category-chip strong{font-size:13px;line-height:1.25;font-weight:700}.food-wheel-center,.food-item-center{position:absolute;width:146px;height:146px;display:grid;place-items:center;align-content:center;gap:2px;border-radius:50%;background:radial-gradient(circle at 35% 28%,rgba(255,255,255,.76),transparent 38%),#fff2ca;color:#7a5945;box-shadow:0 14px 42px #52393529,inset 0 0 0 8px #ffffff61}.food-wheel-center span,.food-item-center span{font-size:18px}.food-wheel-center strong,.food-item-center strong{font-size:23px}.food-spin-stage{width:min(650px,80vw,calc(100vh - 230px))}.food-pointer{position:absolute;top:-16px;left:50%;z-index:4;transform:translate(-50%);color:#fffbec;font-size:38px;text-shadow:0 4px 18px rgba(100,62,54,.38)}.food-item-wheel{position:relative;width:100%;height:100%;border-radius:50%;background:radial-gradient(circle,rgba(255,248,225,.6) 0 23%,transparent 24%),conic-gradient(from -90deg,#ffc95f94,#ff9f938c,#82d1a58a,#ffe26d8f,#ff98b48a,#87c8ff85,#ffc95f94);box-shadow:0 22px 68px #4b30312e,inset 0 0 0 10px #fffaec42,inset 0 0 40px #7e4d341f;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);transform:rotate(var(--rotation));transition:transform 3.9s cubic-bezier(.12,.78,.14,1)}.food-item-chip{position:absolute;left:50%;top:50%;width:116px;min-height:38px;display:grid;place-items:center;padding:5px 8px;border-radius:999px;background:#fffdf3b8;color:#594238;box-shadow:0 8px 24px #583b371f;transform:rotate(var(--item-angle)) translate(min(236px,30vw,calc((100vh - 230px)*.29))) rotate(calc(var(--item-angle) * -1)) translate(-50%,-50%)}.food-item-chip span{display:block;font-size:12px;line-height:1.2;text-align:center}.food-wheel-actions{align-self:start;display:flex;justify-content:center;gap:12px;flex-wrap:wrap;padding-bottom:8px}.food-wheel-actions button{min-height:42px;padding:0 18px;border:1px solid rgba(255,255,255,.44);border-radius:999px;background:#fff8e3d1;color:#755646;font-size:14px;font-weight:700;cursor:pointer;box-shadow:0 12px 34px #52393529;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.food-spin-button,.food-again-button{background:linear-gradient(135deg,#ffe799f5,#ffb99de6)!important}.food-wheel-actions button:disabled{cursor:default;opacity:.58}.food-result-card{position:relative;display:grid;place-items:center;align-content:center;width:min(560px,82vw);min-height:min(360px,50vh);padding:34px;border:1px solid rgba(255,255,255,.48);border-radius:8px;background:radial-gradient(circle at 24% 18%,rgba(255,255,255,.72),transparent 28%),repeating-linear-gradient(0deg,rgba(117,82,57,.045) 0 1px,transparent 1px 9px),#fff6daf0;color:#704f40;box-shadow:0 30px 90px #4b303142;animation:foodResultPop .55s ease both}.food-result-icon{font-size:52px;margin-bottom:8px}.food-result-card p{margin:0;color:#8a6755;font-size:22px}.food-result-card h2{margin:10px 0 0;color:#5f453a;font-size:clamp(40px,8vw,76px);letter-spacing:0;text-align:center}.food-wheel-particles span{position:absolute;width:9px;height:9px;border-radius:50%;background:#ffee9ad1;box-shadow:0 0 18px #ffee9a94;animation:foodFloat 5.5s ease-in-out infinite}.food-wheel-particles span:nth-child(1){left:12%;top:18%}.food-wheel-particles span:nth-child(2){left:82%;top:20%;animation-delay:-1s;background:#ffbbaac7}.food-wheel-particles span:nth-child(3){left:20%;top:74%;animation-delay:-2s;background:#bfe7cccc}.food-wheel-particles span:nth-child(4){left:76%;top:72%;animation-delay:-3s}.food-wheel-particles span:nth-child(5){left:48%;top:12%;animation-delay:-1.8s;background:#ffd286d1}.food-wheel-particles span:nth-child(6){left:55%;top:84%;animation-delay:-2.6s;background:#cbe6ffb8}.rooftop-overlay{padding:0;background:#111622}.rooftop-overlay .close{display:none}.rooftop-overlay .overlay-content{width:100%;height:100%;display:block;padding:0;border:0;border-radius:0;background:#111622;color:#fff8ed;box-shadow:none;overflow:hidden}.memory-overlay{padding:0;background:#2a233029;-webkit-backdrop-filter:blur(2px) saturate(1.04);backdrop-filter:blur(2px) saturate(1.04)}.memory-overlay .close{display:none}.memory-overlay .overlay-content{width:100%;height:100%;display:block;padding:0;border:0;border-radius:0;background:transparent;color:#fff8ed;box-shadow:none;overflow:hidden}.memory-shell{position:relative;width:100%;height:100%;overflow:hidden;isolation:isolate;background:radial-gradient(circle at 50% 42%,rgba(255,235,190,.1),transparent 32%),radial-gradient(circle at 18% 74%,rgba(170,205,255,.08),transparent 30%)}.memory-shell:before,.memory-shell:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.memory-shell:before{background-image:radial-gradient(circle,rgba(255,250,220,.42) 0 1px,transparent 1.6px),radial-gradient(circle,rgba(181,208,255,.24) 0 1px,transparent 1.8px);background-size:92px 92px,137px 137px;animation:memoryStars 18s linear infinite}.memory-shell:after{background:radial-gradient(circle at 50% 52%,transparent 0 54%,rgba(45,34,48,.12) 90%)}.memory-mute,.memory-return{position:absolute;z-index:4;top:18px;min-height:42px;border:1px solid rgba(255,255,255,.34);border-radius:999px;background:#fff8e857;color:#fffaeef5;cursor:pointer;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 14px 44px #37262d2e}.memory-mute{left:18px;width:46px;font-size:18px}.memory-return{right:18px;padding:0 18px;font-size:14px}.memory-title{position:absolute;z-index:3;top:clamp(70px,8vh,88px);left:50%;width:min(440px,calc(100vw - 40px));padding:10px 14px;border:1px solid rgba(255,255,255,.18);border-radius:8px;background:#fff8e824;text-align:center;transform:translate(-50%);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.memory-title p,.memory-title h2{margin:0}.memory-title p{color:#fff6e6ad;font-size:13px}.memory-title h2{margin-top:4px;color:#fff8eddb;font-size:clamp(16px,2.4vw,24px);font-weight:500;letter-spacing:0}.memory-stage{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;touch-action:none;overscroll-behavior:none}.memory-canvas{width:100%;height:100%;display:block;cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.memory-canvas:active{cursor:grabbing}.memory-start{position:absolute;z-index:3;left:50%;bottom:clamp(52px,7vh,74px);display:grid;justify-items:center;gap:9px;width:min(410px,calc(100vw - 38px));padding:13px 16px;border:1px solid rgba(255,255,255,.2);border-radius:8px;background:#fff8e82e;color:#fff8ebeb;text-align:center;transform:translate(-50%);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 18px 58px #37262d2e}.memory-camera-preview{position:absolute;z-index:3;left:18px;bottom:18px;width:min(160px,24vw);aspect-ratio:4 / 3;object-fit:cover;border:1px solid rgba(255,255,255,.2);border-radius:8px;opacity:.34;transform:scaleX(-1);pointer-events:none}.memory-start p,.memory-start small,.memory-count,.memory-placeholder{margin:0}.memory-start-button{min-height:42px;padding:0 18px;border:1px solid rgba(255,255,255,.34);border-radius:999px;background:#fff8e8c7;color:#644943;cursor:pointer;box-shadow:0 10px 28px #ffe8b626}.memory-start small{color:#fff8ebad;font-size:12px}.memory-arrow{position:absolute;z-index:3;top:50%;width:48px;height:48px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.26);border-radius:50%;background:#fff8e84d;color:#fff8ed;font-size:38px;line-height:1;cursor:pointer;transform:translateY(-50%);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.memory-prev{left:clamp(16px,4vw,48px)}.memory-next{right:clamp(16px,4vw,48px)}.memory-count{position:absolute;z-index:3;left:50%;bottom:18px;padding:7px 13px;border-radius:999px;background:#fff8e83d;color:#fff8ebd6;font-size:13px;transform:translate(-50%);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.memory-placeholder{position:absolute;z-index:3;left:50%;top:50%;color:#fff8ebe6;font-size:20px;transform:translate(-50%,-50%)}.memory-stage.is-switching .memory-canvas{animation:memorySwitch .42s ease both}.rooftop-shell{position:relative;width:100%;height:100%;display:grid;place-items:center;overflow:hidden;isolation:isolate}.rooftop-bg{position:absolute;top:-3%;right:-3%;bottom:-3%;left:-3%;width:106%;height:106%;object-fit:cover;filter:saturate(.98) brightness(.82);animation:rooftopImageIn 1.1s ease both,rooftopParallax 18s ease-in-out infinite alternate}.rooftop-shade{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(#080a1247,#080a122e 44%,#080a1275),radial-gradient(circle at 50% 24%,rgba(255,244,220,.16),transparent 38%)}.rooftop-mute,.rooftop-return{position:absolute;z-index:3;top:18px;min-height:42px;border:1px solid rgba(255,255,255,.34);border-radius:999px;background:#fff8e82e;color:#fff8ed;cursor:pointer;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 14px 44px #0c101a3d}.rooftop-mute{left:18px;width:46px;font-size:18px}.rooftop-return{right:18px;padding:0 18px;font-size:14px}.rooftop-time-card{position:absolute;z-index:2;top:clamp(72px,11vh,108px);left:50%;display:grid;justify-items:center;gap:9px;width:min(620px,calc(100vw - 40px));padding:18px 22px;border:1px solid rgba(255,255,255,.22);border-radius:8px;background:#14161c38;text-align:center;text-shadow:0 3px 22px rgba(0,0,0,.32);transform:translate(-50%);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);animation:rooftopCardIn .8s ease both}.rooftop-time-card p,.rooftop-time-card small,.rooftop-quote{margin:0}.rooftop-time-card p{color:#fff7e8db;font-size:15px}.rooftop-time-card time{display:grid;gap:2px}.rooftop-date{color:#fff7e8d1;font-size:clamp(18px,3vw,28px)}.rooftop-clock{color:#fff8ed;font-size:clamp(54px,10vw,112px);font-weight:600;line-height:.95;letter-spacing:0}.rooftop-hour-message{color:#fff7e8e6;font-size:clamp(15px,2vw,20px)}.rooftop-hour-message.is-fading{animation:rooftopTextFade .8s ease both}.rooftop-quote{position:absolute;z-index:2;left:50%;bottom:clamp(42px,8vh,86px);width:min(680px,calc(100vw - 40px));padding:14px 22px;border:1px solid rgba(255,255,255,.2);border-radius:999px;background:#14161c38;color:#fff8ebf2;text-align:center;font-size:clamp(18px,2.6vw,30px);line-height:1.55;text-shadow:0 3px 20px rgba(0,0,0,.36);transform:translate(-50%);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);animation:rooftopQuoteIn 1s .18s ease both}.rooftop-particles span{position:absolute;z-index:1;left:var(--x);top:var(--y);width:8px;height:8px;border-radius:50%;background:#fff0b494;box-shadow:0 0 18px #fff0b466;animation:rooftopParticle 7s ease-in-out infinite;animation-delay:calc(var(--i) * -.42s)}.rooftop-effect-stars .rooftop-particles span{width:5px;height:5px;background:#fff5d2d1;box-shadow:0 0 20px #fff5d2b8}.rooftop-effect-ocean .rooftop-particles span{width:12px;height:12px;background:#b7e6ff5c}.rooftop-effect-petals .rooftop-particles span{width:12px;height:8px;border-radius:70% 30%;background:#ffbccc75}@keyframes rooftopImageIn{0%{opacity:0;transform:scale(1.04)}to{opacity:1;transform:scale(1)}}@keyframes rooftopParallax{0%{transform:translate3d(-1.2%,-.8%,0) scale(1.02)}to{transform:translate3d(1.2%,.8%,0) scale(1.04)}}@keyframes rooftopCardIn{0%{opacity:0;transform:translate(-50%) translateY(-12px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@keyframes rooftopQuoteIn{0%{opacity:0;transform:translate(-50%) translateY(14px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@keyframes rooftopTextFade{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes rooftopParticle{0%,to{opacity:.28;transform:translateY(0) translate(0) rotate(0)}50%{opacity:.82;transform:translateY(-28px) translate(12px) rotate(12deg)}}@keyframes memoryStars{0%{background-position:0 0,0 0}to{background-position:92px 92px,-137px 137px}}@keyframes memorySwitch{0%{opacity:.54;transform:scale(.985)}to{opacity:1;transform:scale(1)}}@keyframes foodZoomIn{0%{opacity:0;transform:scale(.88)}to{opacity:1;transform:scale(1)}}@keyframes foodResultPop{0%{opacity:0;transform:translateY(12px) scale(.94)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes foodFloat{0%,to{transform:translateY(0) scale(1)}50%{transform:translateY(-18px) scale(1.16)}}@keyframes mailboxPageIn{0%{opacity:.78;transform:rotateY(-20deg) translate(12px) scale(.98)}to{opacity:1;transform:rotateY(0) translate(0) scale(1)}}@keyframes mailboxPageBack{0%{opacity:.78;transform:rotateY(20deg) translate(-12px) scale(.98)}to{opacity:1;transform:rotateY(0) translate(0) scale(1)}}@keyframes mailboxFloat{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-16px) rotate(8deg)}}.recipe-book-shell{position:relative;width:min(960px,100%);height:100%;display:grid;grid-template-rows:auto 1fr auto;align-items:center;justify-items:center;gap:12px}.recipe-book-intro{align-self:end;display:grid;gap:2px;padding:10px 18px;border:1px solid rgba(255,255,255,.4);border-radius:999px;background:#fff7e86b;color:#fffaeef5;text-align:center;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 14px 44px #5b3d3a29}.recipe-book-intro p{margin:0;font-size:14px;line-height:1.45}.recipe-cover-button{position:relative;width:min(520px,74vw,calc((100vh - 170px)*.93));aspect-ratio:1 / 1;padding:16px;border:0;border-radius:8px;background:linear-gradient(135deg,#fff6dbf5,#ffe1bfeb),repeating-linear-gradient(0deg,rgba(126,91,67,.05) 0 1px,transparent 1px 8px);cursor:pointer;box-shadow:0 28px 80px #48302f57,inset 10px 0 18px #6f482e1f,inset -4px 0 10px #fff6;transform:rotate(-1.4deg);transition:transform .35s ease,box-shadow .35s ease}.recipe-cover-button:hover{transform:rotate(-.4deg) translateY(-4px);box-shadow:0 34px 90px #48302f61,inset 10px 0 18px #6f482e1f,inset -4px 0 10px #fff6}.recipe-cover-button img{width:100%;height:100%;display:block;object-fit:cover;border-radius:6px;box-shadow:inset 0 0 0 1px #77523a1a}.recipe-cover-button span{position:absolute;left:50%;bottom:26px;transform:translate(-50%);padding:8px 15px;border-radius:999px;background:#fffaeed6;color:#7c5943;font-size:14px;box-shadow:0 10px 30px #6c4b3a2e}.recipe-notebook{position:relative;width:min(760px,84vw,calc((100vh - 170px)*.75));height:min(840px,calc(100vh - 178px));display:grid;place-items:center;perspective:1600px}.recipe-page{position:relative;height:100%;aspect-ratio:.73 / 1;max-width:100%;padding:12px;border-radius:8px;background:linear-gradient(90deg,rgba(151,101,64,.16),transparent 7%,transparent 94%,rgba(110,77,53,.08)),repeating-linear-gradient(0deg,rgba(115,81,57,.045) 0 1px,transparent 1px 9px),#fff3dc;box-shadow:0 34px 88px #47313157,inset 12px 0 22px #7651371f,inset -10px 0 20px #ffffff75;cursor:pointer;transform-origin:left center;animation:recipePageIn .42s ease both}.recipe-book-shell[data-turn=prev] .recipe-page{transform-origin:right center;animation-name:recipePageBack}.recipe-page img{width:100%;height:100%;display:block;object-fit:contain;border-radius:5px;background:#fff7e7;box-shadow:0 2px 12px #593e3414;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.recipe-page-curl{position:absolute;right:12px;bottom:12px;width:74px;height:74px;border-bottom-right-radius:6px;background:linear-gradient(135deg,transparent 48%,rgba(214,174,121,.28) 49%,rgba(255,249,230,.84) 72%);opacity:.75;pointer-events:none}.recipe-nav{position:absolute;top:50%;z-index:2;width:46px;height:46px;border:1px solid rgba(255,255,255,.42);border-radius:50%;background:#fff7e994;color:#7b5c4a;font-size:34px;line-height:1;cursor:pointer;box-shadow:0 12px 34px #543a3529;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.recipe-prev{left:max(-64px,-8vw)}.recipe-next{right:max(-64px,-8vw)}.recipe-footer{align-self:start;display:flex;justify-content:center;gap:18px;flex-wrap:wrap;color:#fffaeee0;font-size:13px;text-shadow:0 2px 14px rgba(72,50,54,.24)}@keyframes recipePageIn{0%{opacity:.72;transform:rotateY(-22deg) translate(10px)}to{opacity:1;transform:rotateY(0) translate(0)}}@keyframes recipePageBack{0%{opacity:.72;transform:rotateY(22deg) translate(-10px)}to{opacity:1;transform:rotateY(0) translate(0)}}.overlay-content h2{margin:0 0 12px;color:#5b4650;font-size:22px;letter-spacing:0}.overlay-content p{margin:0;color:#795f67;line-height:1.8;font-size:15px}.close{position:absolute;top:24px;right:28px;width:40px;height:40px;border:1px solid rgba(255,255,255,.32);border-radius:50%;background:#fff7e942;color:#fff8ec;font-size:24px;cursor:pointer}.memory-veil{height:180px;margin:12px 0 14px;overflow:hidden;border-radius:8px;background:linear-gradient(135deg,#ffe7d5b8,#aed2dda3),radial-gradient(circle at 35% 45%,rgba(255,255,255,.9),transparent 24%)}.memory-veil div{width:68%;height:100%;background:#ffffff6b;filter:blur(8px)}.wheel{display:grid;place-items:center;width:140px;height:140px;margin:12px auto;border-radius:50%;background:conic-gradient(#ffd6a2,#f6a8a8,#a9d5d8,#ffe7bd,#ffd6a2);font-size:44px;box-shadow:inset 0 0 24px #ffffff57}.fade{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;background:#3b2f389e;color:#fff7e8f0;font-size:15px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:opacity .42s ease,visibility .42s ease;z-index:15}.joystick{position:absolute;left:24px;bottom:24px;width:108px;height:108px;display:none;place-items:center;border-radius:50%;background:#fff7e933;border:1px solid rgba(255,255,255,.24);pointer-events:auto;touch-action:none}.joystick-knob{width:42px;height:42px;border-radius:50%;background:#fffaeebd;box-shadow:0 10px 30px #573d483d}.hidden{opacity:0;visibility:hidden;pointer-events:none}@media (hover: none),(max-width: 760px){.hint{display:none}.joystick{display:grid}.prompt{bottom:15%}.island-map-preview{top:54px;right:12px;width:116px;padding:6px;font-size:12px}.map-viewer{padding:12px}.map-card{width:96vw;padding:10px}.recipe-overlay{padding:12px}.recipe-overlay .overlay-content{height:calc(100vh - 24px)}.mailbox-overlay{padding:12px}.mailbox-overlay .overlay-content{height:calc(100vh - 24px)}.mailbox-shell{padding:86px 14px 96px}.mailbox-letter-stack{width:min(88vw,520px);min-height:48vh}.mailbox-letter-card{min-height:45vh;padding:22px}.mailbox-letter-card h2{font-size:28px}.mailbox-letter-body{font-size:15px;line-height:1.85}.mailbox-nav{top:auto;bottom:48px;width:42px;height:42px;font-size:32px}.mailbox-prev{left:calc(50% - 62px)}.mailbox-next{right:calc(50% - 62px)}.mailbox-tabs{bottom:12px;width:calc(100% - 24px)}.mailbox-tab{min-height:30px;padding:0 10px;font-size:12px}.recipe-book-shell{gap:8px}.recipe-book-intro{border-radius:8px}.recipe-book-intro p{font-size:13px}.recipe-notebook{width:min(92vw,calc((100vh - 160px)*.73));height:min(78vh,calc(100vh - 158px))}.recipe-page{padding:8px}.recipe-nav{width:38px;height:38px;font-size:28px;top:auto;bottom:-48px}.recipe-prev{left:calc(50% - 52px)}.recipe-next{right:calc(50% - 52px)}.recipe-footer{padding-bottom:44px;gap:8px;font-size:12px}.food-wheel-overlay{padding:12px}.food-wheel-overlay .overlay-content{height:calc(100vh - 24px)}.rooftop-mute,.rooftop-return,.memory-mute,.memory-return{top:12px;min-height:38px}.rooftop-mute,.memory-mute{left:12px;width:42px}.rooftop-return,.memory-return{right:12px;padding:0 14px;font-size:13px}.memory-title{top:62px;width:calc(100vw - 28px);padding:10px 12px}.memory-stage{touch-action:none}.memory-start{bottom:62px;width:calc(100vw - 28px);padding:13px 14px}.memory-arrow{top:auto;bottom:12px;width:42px;height:42px;font-size:32px}.memory-prev{left:calc(50% - 58px)}.memory-next{right:calc(50% - 58px)}.memory-count{bottom:20px;font-size:12px}.rooftop-time-card{top:70px;width:calc(100vw - 28px);padding:14px 16px}.rooftop-clock{font-size:clamp(48px,18vw,78px)}.rooftop-quote{bottom:28px;width:calc(100vw - 28px);border-radius:8px;font-size:17px}.food-wheel-shell{gap:8px}.food-wheel-header h2{font-size:24px}.food-wheel-header p{font-size:13px}.food-category-wheel,.food-spin-stage{width:min(92vw,calc(100vh - 190px))}.food-category-chip{width:88px;min-height:54px;padding:6px;border-radius:14px;transform:rotate(var(--angle)) translate(min(36vw,calc((100vh - 190px)*.35))) rotate(calc(var(--angle) * -1)) translate(-50%,-50%)}.food-category-chip:hover{transform:rotate(var(--angle)) translate(min(36vw,calc((100vh - 190px)*.35))) rotate(calc(var(--angle) * -1)) translate(-50%,-50%)}.food-category-chip span{font-size:18px}.food-category-chip strong{font-size:11px}.food-wheel-center,.food-item-center{width:104px;height:104px}.food-wheel-center span,.food-item-center span{font-size:14px}.food-wheel-center strong,.food-item-center strong{font-size:18px}.food-item-chip{width:82px;min-height:30px;padding:4px 5px;transform:rotate(var(--item-angle)) translate(min(35vw,calc((100vh - 200px)*.33))) rotate(calc(var(--item-angle) * -1)) translate(-50%,-50%)}.food-item-chip span{font-size:10px}.food-pointer{top:-10px;font-size:28px}.food-wheel-actions{gap:8px}.food-wheel-actions button{min-height:38px;padding:0 13px;font-size:13px}.food-result-card{min-height:280px;padding:24px}.room-welcome-panel{top:64px;padding:14px 16px}.room-welcome-panel h2{font-size:18px}.room-welcome-panel p{font-size:12px}.room-select-panel,.room-timer-panel{left:12px;right:12px;width:auto;padding:12px}.room-select-panel{top:auto;bottom:176px}.room-timer-panel{bottom:12px}.room-option-grid{grid-template-columns:repeat(2,1fr);gap:6px}.room-option-card,.room-timer-button{min-height:34px;font-size:12px}.room-timer-options{gap:6px}}
