*{box-sizing:border-box;margin:0;padding:0}html,body,#root{-webkit-user-select:none;user-select:none;width:100%;height:100%;overflow:hidden}html{-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none}body{color:#f8fafc;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;background:#0f1720;font-family:Pretendard Variable,Pretendard,-apple-system,BlinkMacSystemFont,system-ui,Roboto,Helvetica Neue,Segoe UI,Apple SD Gothic Neo,Noto Sans KR,Malgun Gothic,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,sans-serif}button,input,textarea{font-family:inherit}:root{--font-sans:"Pretendard Variable", Pretendard, -apple-system, BlinkMacSystemFont, system-ui, sans-serif;--font-serif:"Nanum Myeongjo", "Apple SD Gothic Neo", "Pretendard Variable", serif;--bg-deep:#0a121b;--bg-surface:#121c27cc;--bg-surface-elevated:#141f2bf0;--bg-input:#090f16b3;--border-subtle:#d9b9781f;--border-glass:#d9b97838;--border-glow:#d9b9786b;--text-primary:#f1ebdc;--text-secondary:#9aa89f;--text-muted:#6f7c75;--text-accent:#e6cf97;--accent-gold:#d9b978;--accent-gold-glow:#d9b97840;--danger:#b5674f;--danger-soft:#b5674f1f;--danger-border:#b5674f6b;--danger-text:#f0d9c8;--radius-sm:8px;--radius-md:14px;--radius-lg:20px;--radius-full:9999px;--shadow-card:0 24px 52px -16px #000000b8, 0 0 0 1px #d9b9781a;--shadow-btn:0 4px 18px -2px #0006, inset 0 1px 0 #ffffff38}.app{font-family:var(--font-sans);position:fixed;inset:0;overflow:hidden}.app canvas{touch-action:none;width:100%;height:100%;display:block}.scene-loading{z-index:100;color:var(--text-primary);opacity:1;visibility:visible;background:radial-gradient(at 50% 48%,#162432 0%,#0d1722 65%,#080f17 100%);justify-content:center;align-items:center;transition:opacity .7s cubic-bezier(.16,1,.3,1),visibility .7s;display:flex;position:absolute;inset:0}.scene-loading.fade-out{opacity:0;visibility:hidden;pointer-events:none}.scene-loading-content{text-align:center;flex-direction:column;align-items:center;gap:22px;max-width:90vw;animation:.6s cubic-bezier(.16,1,.3,1) loading-appear;display:flex}@keyframes loading-appear{0%{opacity:0;transform:translateY(12px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}.scene-loading-orb-wrapper{place-items:center;width:110px;height:110px;display:grid;position:relative}.scene-loading-glow{filter:blur(14px);background:radial-gradient(circle,#d9b9783d 0%,#5a96961f 60%,#0000 80%);border-radius:50%;animation:3s ease-in-out infinite alternate glow-pulse;position:absolute;inset:12px}@keyframes glow-pulse{0%{opacity:.4;transform:scale(.85)}to{opacity:.85;transform:scale(1.15)}}.scene-loading-ripples{place-items:center;display:grid;position:absolute;inset:0}.scene-loading-ripple{opacity:0;border:1px solid #bae6fd80;border-radius:50%;animation:2.8s cubic-bezier(.1,.8,.2,1) infinite ripple-pulse;position:absolute;inset:0;transform:scale(.3);box-shadow:0 0 16px #bae6fd33}.scene-loading-ripple:nth-child(2){animation-delay:.9s}.scene-loading-ripple:nth-child(3){animation-delay:1.8s}@keyframes ripple-pulse{0%{opacity:0;transform:scale(.3)}30%{opacity:.8}to{opacity:0;transform:scale(1.15)}}.scene-loading-emblem{z-index:2;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:linear-gradient(135deg,#ffffff1f,#ffffff08);border:1px solid #fff3;border-radius:50%;place-items:center;width:48px;height:48px;display:grid;position:relative;box-shadow:0 4px 20px #0006,inset 0 1px #ffffff4d}.scene-loading-emblem-icon{color:var(--accent-gold);filter:drop-shadow(0 0 6px #e2c27599);animation:2.4s ease-in-out infinite alternate emblem-shimmer}@keyframes emblem-shimmer{0%{opacity:.75;transform:scale(.94)}to{opacity:1;transform:scale(1.06)}}.scene-loading-info{flex-direction:column;gap:6px;display:flex}.scene-loading-sub{letter-spacing:.16em;color:var(--accent-gold);opacity:.9;font-size:11px;font-weight:600}.scene-loading-title{font-family:var(--font-serif);letter-spacing:.01em;color:var(--text-primary);margin:0;font-size:22px;font-weight:800}.scene-loading-text{letter-spacing:-.01em;color:var(--text-secondary);margin:0;font-size:13px}.loading-dots:after{content:"…";animation:1.6s steps(4,end) infinite dots-cycle;display:inline-block}@keyframes dots-cycle{0%,20%{content:""}40%{content:"."}60%{content:".."}80%,to{content:"..."}}.scene-loading-progress-bar{border-radius:var(--radius-full);background:#ffffff14;width:140px;height:2px;margin-top:4px;position:relative;overflow:hidden}.scene-loading-progress-fill{border-radius:var(--radius-full);background:linear-gradient(90deg, transparent, var(--accent-gold), #bae6fde6, transparent);width:45%;animation:1.8s ease-in-out infinite progress-slide;position:absolute;top:0;bottom:0}@keyframes progress-slide{0%{left:-45%}to{left:100%}}.hud{top:calc(20px + env(safe-area-inset-top));left:calc(24px + env(safe-area-inset-left));right:calc(24px + env(safe-area-inset-right));pointer-events:none;z-index:20;flex-direction:column;gap:6px;display:flex;position:absolute}.hud-top-row{justify-content:space-between;align-items:center;width:100%;display:flex}.hud-brand{flex-shrink:0;align-items:center;gap:10px;display:flex}.hud-badge{letter-spacing:.06em;border-radius:var(--radius-full);border:1px solid var(--border-subtle);color:var(--text-accent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffff0f;padding:3px 8px;font-size:11px;font-weight:600}.hud-title{font-family:var(--font-serif);letter-spacing:.01em;color:var(--text-primary);text-shadow:0 2px 18px #d9b9782e,0 2px 10px #0000008c;white-space:nowrap;margin:0;font-size:clamp(17px,5.6vw,23px);font-weight:800}.hud-title-mark{color:var(--accent-gold);vertical-align:.06em;margin-right:7px;font-size:.86em;font-weight:400}.wish-cta{bottom:calc(26px + env(safe-area-inset-bottom));z-index:15;pointer-events:auto;flex-direction:column;align-items:center;gap:9px;display:flex;position:absolute;left:50%;transform:translate(-50%)}.wish-cta-guide{font-family:var(--font-serif);color:#e6decde6;letter-spacing:.03em;text-shadow:0 2px 10px #000000e6,0 0 16px #000000b3;pointer-events:none;white-space:nowrap;justify-content:center;align-items:center;gap:6px;font-size:13px;font-weight:600;animation:2.4s ease-in-out infinite alternate guide-breathe;display:inline-flex}@keyframes guide-breathe{0%{opacity:.75;transform:translateY(0)}to{opacity:1;transform:translateY(-1px)}}.wish-cta-btn{border-radius:var(--radius-full);color:#2a1e0e;font-family:var(--font-serif);letter-spacing:.02em;cursor:pointer;white-space:nowrap;background:linear-gradient(177deg,#e9cd8f 0%,#d9b978 48%,#c39f56 100%);border:1px solid #78561e80;justify-content:center;align-items:center;gap:9px;padding:13px 30px;font-size:clamp(14px,4.3vw,17px);font-weight:700;transition:all .18s cubic-bezier(.16,1,.3,1);display:inline-flex;box-shadow:0 10px 28px -6px #0009,inset 0 1px #ffffff8c,inset 0 -1px #78561e73}.wish-cta-icon{color:#8a6a24;transition:transform .25s}.wish-cta-btn:hover{background:linear-gradient(177deg,#efd59a 0%,#e0c281 48%,#caa85f 100%);transform:translateY(-2px);box-shadow:0 14px 32px -8px #000000a8,inset 0 1px #fff9,inset 0 -1px #78561e73}.wish-cta-btn:hover .wish-cta-icon{transform:rotate(15deg)scale(1.1)}.wish-cta-btn:active{transform:translateY(0)scale(.985)}.week-nav{top:calc(18px + env(safe-area-inset-top));z-index:12;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;pointer-events:auto;background:0 0;border:none;justify-content:center;align-items:center;gap:2px;padding:4px 6px;display:flex;position:absolute;left:50%;transform:translate(-50%)}.week-arrow{color:#e6d7b9bf;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:50%;flex:none;place-items:center;width:32px;height:32px;transition:all .2s cubic-bezier(.16,1,.3,1);display:grid}.week-arrow:hover:not(:disabled){color:#fff;background:#ffffff14;border-color:#ffffff1f;transform:scale(1.08)}.week-arrow:active:not(:disabled){background:#d9b9782e;transform:scale(.94)}.week-arrow:disabled{opacity:.18;cursor:not-allowed}.week-label{text-align:center;min-width:146px;padding:0 4px}.week-label-main{font-family:var(--font-serif);letter-spacing:.03em;color:var(--text-primary);text-shadow:0 2px 10px #000000d9,0 0 18px #d9b97840;white-space:nowrap;justify-content:center;align-items:center;gap:6px;font-size:16px;font-weight:700;display:flex}.week-current-badge{border-radius:var(--radius-full);color:var(--text-accent);background:#e2c27526;border:1px solid #e2c27559;padding:1px 6px;font-size:10px;font-weight:600}.week-label-sub{color:#dcd7cdcc;text-shadow:0 1px 6px #000000d9;white-space:nowrap;justify-content:center;align-items:center;gap:6px;margin-top:2px;font-size:11.5px;display:flex}.week-divider{opacity:.45}.week-coin-count{color:#f0e6d2e6;align-items:center;gap:3px;display:inline-flex}.week-coin-icon{width:12px;height:12px;color:var(--accent-gold);filter:drop-shadow(0 1px 2px #0009)}.toast{bottom:calc(96px + env(safe-area-inset-bottom));z-index:16;border-radius:var(--radius-full);background:var(--bg-surface-elevated);-webkit-backdrop-filter:blur(24px)saturate(160%);backdrop-filter:blur(24px)saturate(160%);border:1px solid var(--border-glass);pointer-events:none;align-items:center;gap:10px;max-width:min(88vw,420px);padding:11px 20px;animation:.25s cubic-bezier(.16,1,.3,1) banner-appear;display:flex;position:absolute;left:50%;transform:translate(-50%);box-shadow:0 12px 36px -6px #0009,inset 0 1px #ffffff1a}.toast-error{border-color:#ef44448c;box-shadow:0 12px 36px -6px #0009,inset 0 1px #ffffff14}.toast-error .toast-text{color:#fca5a5}.toast-icon{flex-shrink:0;font-size:15px;line-height:1}.toast-text{font-family:var(--font-serif);letter-spacing:.01em;color:var(--text-secondary);font-size:13.5px;font-weight:700;line-height:1.45}.past-notice{bottom:calc(28px + env(safe-area-inset-bottom));z-index:15;border-radius:var(--radius-full);background:var(--bg-surface-elevated);-webkit-backdrop-filter:blur(24px)saturate(160%);backdrop-filter:blur(24px)saturate(160%);border:1px solid var(--border-glass);align-items:center;gap:14px;padding:8px 10px 8px 20px;animation:.25s cubic-bezier(.16,1,.3,1) banner-appear;display:flex;position:absolute;left:50%;transform:translate(-50%);box-shadow:0 12px 36px -6px #0009,inset 0 1px #ffffff1a}.past-notice-text{font-family:var(--font-serif);letter-spacing:.01em;color:var(--text-secondary);white-space:nowrap;font-size:13.5px;font-weight:700}.past-notice-btn{border-radius:var(--radius-full);color:#2a1e0e;font-family:var(--font-serif);letter-spacing:.01em;cursor:pointer;white-space:nowrap;background:linear-gradient(177deg,#e9cd8f 0%,#d9b978 48%,#c39f56 100%);border:1px solid #78561e80;justify-content:center;align-items:center;padding:8px 18px;font-size:13px;font-weight:700;transition:all .18s cubic-bezier(.16,1,.3,1);display:inline-flex;box-shadow:0 4px 12px -4px #0000008c,inset 0 1px #ffffff80,inset 0 -1px #78561e66}.past-notice-btn:hover{background:linear-gradient(177deg,#efd59a 0%,#e0c281 48%,#caa85f 100%);transform:translateY(-1px);box-shadow:0 8px 20px -6px #000000a6,inset 0 1px #ffffff8c}.past-notice-btn:active{transform:translateY(0)scale(.985)}.app.aiming canvas{cursor:crosshair}.aim-banner{bottom:calc(28px + env(safe-area-inset-bottom));z-index:15;border-radius:var(--radius-full);background:var(--bg-surface-elevated);-webkit-backdrop-filter:blur(24px)saturate(160%);backdrop-filter:blur(24px)saturate(160%);border:1px solid var(--border-glass);box-sizing:border-box;align-items:center;gap:14px;width:auto;max-width:min(520px,100vw - 28px);padding:8px 12px 8px 16px;animation:.25s cubic-bezier(.16,1,.3,1) banner-appear;display:flex;position:absolute;left:50%;transform:translate(-50%);box-shadow:0 12px 36px -6px #0009,inset 0 1px #ffffff1a}@keyframes banner-appear{0%{opacity:0;transform:translate(-50%,10px)scale(.96)}to{opacity:1;transform:translate(-50%)scale(1)}}@keyframes section-appear{0%{opacity:0;transform:translateY(8px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.aim-banner-icon-box{border-radius:var(--radius-full);width:32px;height:32px;color:var(--accent-gold);background:#d9b97829;border:1px solid #d9b9786b;flex:none;place-items:center;display:grid}.aim-banner-info{flex-direction:column;flex:auto;gap:2px;min-width:0;display:flex}.aim-banner-wish{font-family:var(--font-serif);color:var(--text-accent);word-break:break-word;overflow-wrap:anywhere;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;max-width:100%;font-size:13.5px;font-weight:700;line-height:1.4;display:-webkit-box;overflow:hidden}.aim-secret-badge{border-radius:var(--radius-full);color:#d8b4fe;vertical-align:middle;background:#ba8cff29;border:1px solid #ba8cff59;align-items:center;gap:3px;margin-right:6px;padding:1px 7px;font-size:11px;font-weight:600;display:inline-flex}.aim-secret-badge svg{width:11px;height:11px}.aim-banner-hint{color:var(--text-secondary);font-size:12px}.aim-banner-cancel{border-radius:var(--radius-full);border:1px solid var(--border-subtle);color:var(--text-secondary);cursor:pointer;background:#ffffff0d;flex:none;padding:6px 16px;font-size:12px;font-weight:500;transition:all .15s}.aim-banner-cancel:hover{color:var(--text-primary);background:#ffffff1f}.wish-modal-backdrop{z-index:50;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#04090fa6;justify-content:center;align-items:center;animation:.2s ease-out backdrop-fade;display:flex;position:absolute;inset:0}@keyframes backdrop-fade{0%{opacity:0}to{opacity:1}}.wish-modal-card{overscroll-behavior:contain;background:var(--bg-surface-elevated);-webkit-backdrop-filter:blur(24px)saturate(180%);backdrop-filter:blur(24px)saturate(180%);border:1px solid var(--border-glass);border-radius:var(--radius-lg);width:min(440px,100vw - 32px);max-height:calc(100dvh - 32px);box-shadow:var(--shadow-card);flex-direction:column;gap:20px;padding:26px 28px;animation:.25s cubic-bezier(.16,1,.3,1) modal-slide;display:flex;overflow-y:auto}@keyframes modal-slide{0%{opacity:0;transform:translateY(14px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}.wish-modal-header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.wish-modal-title-group{flex-direction:column;gap:3px;display:flex}.wish-modal-sub{letter-spacing:.12em;color:var(--accent-gold);text-transform:uppercase;font-size:11px;font-weight:600}.wish-modal-title{font-family:var(--font-serif);letter-spacing:.01em;color:var(--text-primary);word-break:keep-all;margin:0;font-size:clamp(16px,5.2vw,20px);font-weight:800}.wish-modal-close{width:28px;height:28px;color:var(--text-secondary);cursor:pointer;background:#ffffff0d;border:1px solid #0000;border-radius:50%;flex:none;place-items:center;transition:all .15s;display:grid}.wish-modal-close:hover{color:var(--text-primary);background:#ffffff1f}.wish-modal-body{position:relative}.wish-modal-body textarea{border-radius:var(--radius-md);border:1px solid var(--border-subtle);background:var(--bg-input);width:100%;min-height:84px;max-height:140px;color:var(--text-primary);letter-spacing:-.01em;resize:none;word-break:break-word;overflow-wrap:anywhere;box-sizing:border-box;outline:none;padding:14px 16px;font-size:clamp(15px,4.3vw,16px);line-height:1.6;transition:all .2s}.wish-modal-body textarea:focus{border-color:#e2c27599;box-shadow:0 0 0 3px #e2c27526,inset 0 1px 2px #0006}.wish-modal-body textarea::placeholder{color:var(--text-muted)}.wish-modal-counter{text-align:right;color:var(--text-muted);margin-top:6px;font-size:12px}.wish-modal-counter span{color:var(--text-secondary)}.wish-modal-secret-section{border-radius:var(--radius-md);box-sizing:border-box;background:#ba8cff0d;border:1px solid #ba8cff33;margin-top:10px;padding:12px 14px;transition:all .2s}.wish-modal-secret-section:hover{background:#ba8cff14;border-color:#ba8cff59}.wish-modal-secret-toggle{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:flex-start;gap:10px;display:flex}.wish-modal-secret-toggle input[type=checkbox]{opacity:0;width:0;height:0;position:absolute}.secret-toggle-custom{background:#ffffff14;border:1px solid #ffffff40;border-radius:4px;flex-shrink:0;width:18px;height:18px;margin-top:1px;transition:all .2s;position:relative}.wish-modal-secret-toggle input[type=checkbox]:checked+.secret-toggle-custom{background:#c084fc;border-color:#c084fc;box-shadow:0 0 10px #c084fc66}.wish-modal-secret-toggle input[type=checkbox]:checked+.secret-toggle-custom:after{content:"";border:2px solid #141716;border-width:0 2px 2px 0;width:4px;height:8px;position:absolute;top:2px;left:5px;transform:rotate(45deg)}.secret-toggle-content{flex-direction:column;gap:3px;display:flex}.secret-toggle-title{color:#f3e8ff;align-items:center;gap:6px;font-size:13.5px;font-weight:700;display:flex}.secret-icon{color:#d8b4fe;width:14px;height:14px}.secret-toggle-desc{color:#c4b5fd;opacity:.82;word-break:keep-all;font-size:11.5px;line-height:1.45}.wish-modal-secret-pass-box{border-radius:var(--radius-sm);box-sizing:border-box;background:#0a0e16b3;border:1px solid #ba8cff4d;flex-direction:column;gap:6px;margin-top:10px;padding:12px 14px;animation:.2s ease-out section-appear;display:flex}.secret-pass-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.secret-pass-label{color:#e9d5ff;font-size:12px;font-weight:700}.secret-pass-req{color:#c084fc;font-size:11px;font-weight:500}.wish-modal-secret-pass-box input{border-radius:var(--radius-sm);color:#fff;letter-spacing:.06em;box-sizing:border-box;background:#00000073;border:1px solid #ba8cff59;outline:none;width:100%;padding:10px 12px;font-size:15px;transition:all .2s}.wish-modal-secret-pass-box input:focus{border-color:#c084fc;box-shadow:0 0 12px #c084fc59}.wish-modal-secret-pass-box .pass-hint{color:#a78bfa;margin-top:2px;font-size:11px;transition:color .2s}.wish-modal-secret-pass-box .pass-hint.pass-hint-valid{color:#4ade80;font-weight:600}.wish-modal-pass-section{margin-top:10px}.wish-modal-pass-toggle{color:var(--text-muted);cursor:pointer;text-align:left;word-break:keep-all;background:0 0;border:none;align-items:center;gap:4px;padding:4px 0;font-size:clamp(10px,3.3vw,12px);transition:color .15s;display:inline-flex}.wish-modal-pass-toggle:hover{color:var(--text-secondary);text-decoration:underline}.pass-toggle-part{white-space:nowrap}.wish-modal-pass-input-box{border-radius:var(--radius-md);border:1px dashed var(--border-subtle);background:#0a101873;flex-direction:column;gap:6px;padding:10px 12px;animation:.2s ease-out section-appear;display:flex}.wish-modal-pass-input-box label{color:var(--text-secondary);justify-content:space-between;align-items:center;gap:8px;font-size:12px;font-weight:500;display:flex}.wish-modal-pass-input-box label>span:first-child{white-space:nowrap;flex:none}.pass-hint{color:var(--text-muted);font-size:11px;font-weight:400}.pass-input-row{align-items:center;gap:8px;display:flex}.pass-input-row input{border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:var(--bg-input);color:var(--text-primary);letter-spacing:.05em;outline:none;flex:1;padding:7px 12px;font-size:13px}.pass-input-row input:focus{border-color:#e2c27580}.pass-cancel-btn{border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;background:#ffffff0d;border:1px solid #0000;padding:6px 10px;font-size:11px;transition:all .15s}.pass-cancel-btn:hover{color:var(--text-secondary);background:#ffffff1a}.wish-modal-footer{align-items:stretch;gap:10px;display:flex}.wish-modal-footer .btn-secondary{flex:none;padding:12px 20px;font-size:clamp(12px,3.7vw,14px)}.wish-modal-footer .btn-primary{flex:auto;justify-content:center;padding:12px 20px;font-size:clamp(12px,3.7vw,15px)}.btn-secondary,.btn-primary,.confirm-btn-cancel,.confirm-btn-delete,.pass-form-confirm,.pass-form-cancel,.pass-cancel-btn,.past-notice-btn,.aim-banner-cancel{white-space:nowrap;flex-shrink:0}.btn-secondary{border-radius:var(--radius-md);border:1px solid var(--border-subtle);color:var(--text-secondary);cursor:pointer;background:0 0;padding:10px 18px;font-size:14px;font-weight:500;transition:all .15s}.btn-secondary:hover{color:var(--text-primary);background:#ffffff14}.btn-primary{border-radius:var(--radius-md);color:#2a1e0e;font-family:var(--font-serif);letter-spacing:.01em;cursor:pointer;background:linear-gradient(177deg,#e9cd8f 0%,#d9b978 48%,#c39f56 100%);border:1px solid #78561e80;align-items:center;gap:8px;padding:11px 22px;font-size:15px;font-weight:700;transition:all .2s;display:inline-flex;box-shadow:0 6px 18px -6px #0000008c,inset 0 1px #ffffff80,inset 0 -1px #78561e66}.btn-primary:hover:not(:disabled){background:linear-gradient(177deg,#efd59a 0%,#e0c281 48%,#caa85f 100%);transform:translateY(-1px);box-shadow:0 10px 24px -8px #0009,inset 0 1px #ffffff8c}.btn-primary:disabled{opacity:.35;cursor:not-allowed}.wish-popover-backdrop{z-index:50;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#04090f99;justify-content:center;align-items:center;animation:.2s ease-out backdrop-fade;display:flex;position:absolute;inset:0}.wish-popover-card{overscroll-behavior:contain;background:var(--bg-surface-elevated);-webkit-backdrop-filter:blur(24px)saturate(180%);backdrop-filter:blur(24px)saturate(180%);border:1px solid var(--border-glass);border-radius:var(--radius-lg);width:min(420px,100vw - 28px);max-height:calc(100dvh - 32px);box-shadow:var(--shadow-card);text-align:center;box-sizing:border-box;flex-direction:column;align-items:center;gap:16px;padding:28px 26px 22px;animation:.25s cubic-bezier(.16,1,.3,1) modal-slide;display:flex;position:relative;overflow-y:auto}.wish-popover-card:before{content:"";background:linear-gradient(90deg,#0000,#d9b97880,#0000);height:1px;position:absolute;inset:0 0 auto}.wish-popover-close{border:1px solid var(--border-subtle);width:28px;height:28px;color:var(--text-secondary);cursor:pointer;background:#d9b9780f;border-radius:50%;place-items:center;transition:all .15s;display:grid;position:absolute;top:14px;right:14px}.wish-popover-close:hover{color:var(--text-accent);background:#d9b97829;border-color:#d9b97866}.wish-popover-badge-group{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;display:flex}.wish-popover-badge{border-radius:var(--radius-full);color:var(--accent-gold);letter-spacing:.04em;white-space:nowrap;background:#d9b97814;border:1px solid #d9b97852;align-items:center;gap:6px;padding:4px 12px;font-size:clamp(10.5px,3.2vw,11.5px);font-weight:600;display:inline-flex}.wish-popover-badge.badge-mine{color:var(--accent-gold);background:#d9b97829;border-color:#d9b9786b}.wish-popover-badge.badge-locked{color:#b9c4bd;background:#9aa89f1a;border-color:#9aa89f4d}.wish-popover-badge.badge-secret{color:#d8b4fe;background:#ba8cff1f;border-color:#ba8cff59}.wish-popover-icon{width:13px;height:13px}.wish-popover-text-box{box-sizing:border-box;justify-content:center;align-items:center;width:100%;max-width:100%;padding:2px 4px;display:flex}.wish-popover-text{width:100%;max-width:100%;font-family:var(--font-serif);letter-spacing:-.01em;color:var(--text-primary);word-break:break-word;overflow-wrap:anywhere;white-space:pre-wrap;text-shadow:0 1px 8px #0009;box-sizing:border-box;margin:0;font-size:clamp(15.5px,4.4vw,18.5px);font-weight:700;line-height:1.65}.wish-popover-secret-text{color:#c4b5fd;letter-spacing:.02em;opacity:.92;font-style:italic}.wish-popover-footer{border-top:1px solid var(--border-subtle);flex-direction:column;align-items:center;gap:12px;width:100%;margin-top:4px;padding-top:14px;display:flex}.wish-popover-date{font-family:var(--font-serif);letter-spacing:.03em;color:var(--text-muted);white-space:nowrap;font-size:clamp(11px,3.4vw,12.5px)}.wish-popover-unlock-box{justify-content:center;width:100%;margin:10px 0 4px;animation:.2s ease-out section-appear;display:flex}.wish-popover-unlock-btn{border-radius:var(--radius-full);color:#e9d5ff;font-family:var(--font-serif);cursor:pointer;background:#ba8cff24;border:1px solid #ba8cff66;align-items:center;gap:7px;padding:8px 20px;font-size:13px;font-weight:700;transition:all .2s;display:inline-flex}.wish-popover-unlock-btn:hover{color:#fff;background:#ba8cff40;border-color:#ba8cffa6;transform:translateY(-1px);box-shadow:0 4px 14px #ba8cff40}.wish-popover-delete-btn{border-radius:var(--radius-full);border:1px solid var(--danger-border);background:var(--danger-soft);color:#d69179;font-family:var(--font-serif);white-space:nowrap;cursor:pointer;justify-content:center;align-items:center;gap:6px;padding:9px 20px;font-size:clamp(12px,3.6vw,14px);font-weight:700;transition:all .15s;display:inline-flex}.wish-popover-delete-btn:hover:not(:disabled){color:var(--danger-text);background:#b5674f3d;border-color:#b5674f99}.wish-popover-delete-btn:disabled{opacity:.4;cursor:not-allowed}.wish-popover-confirm-box{border-radius:var(--radius-md);background:var(--danger-soft);border:1px solid var(--danger-border);flex-direction:column;gap:10px;width:100%;padding:13px 14px;animation:.2s ease-out section-appear;display:flex}.confirm-text{font-family:var(--font-serif);color:var(--danger-text);text-align:center;font-size:14px;font-weight:700}.confirm-actions{justify-content:center;align-items:center;gap:8px;display:flex}.confirm-btn-cancel{border-radius:var(--radius-sm);border:1px solid var(--border-glass);color:var(--text-secondary);font-family:var(--font-serif);white-space:nowrap;cursor:pointer;background:0 0;padding:8px 18px;font-size:clamp(12px,3.6vw,13px);font-weight:600;transition:all .15s}.confirm-btn-cancel:hover{color:var(--text-primary);background:#d9b9781a}.confirm-btn-delete{border-radius:var(--radius-sm);background:var(--danger);color:#fbeee7;font-family:var(--font-serif);white-space:nowrap;cursor:pointer;border:1px solid #b5674f99;padding:8px 20px;font-size:clamp(12px,3.6vw,13px);font-weight:700;transition:all .15s;box-shadow:inset 0 1px #ffffff2e}.confirm-btn-delete:hover:not(:disabled){background:#c2735b}.wish-popover-password-form{border-radius:var(--radius-md);box-sizing:border-box;background:#0e141ed9;border:1px solid #ba8cff59;flex-direction:column;gap:10px;width:100%;padding:14px 16px;animation:.2s ease-out section-appear;display:flex;box-shadow:0 4px 20px #0006}.wish-popover-password-form.pass-form-delete-theme{border-color:var(--danger-border);background:#1a0e0ed9}.pass-form-title{color:#e9d5ff;text-align:center;justify-content:center;align-items:center;gap:6px;font-size:12.5px;font-weight:600;display:flex}.pass-form-delete-theme .pass-form-title{color:#fca5a5}.pass-form-icon{color:#c084fc;flex-shrink:0;width:14px;height:14px}.pass-form-delete-theme .pass-form-icon{color:#f87171}.pass-form-input{border-radius:var(--radius-sm);color:#fff;text-align:center;letter-spacing:.08em;box-sizing:border-box;background:#00000073;border:1px solid #ba8cff66;outline:none;width:100%;padding:10px 14px;font-size:15px;transition:all .2s}.pass-form-delete-theme .pass-form-input{border-color:#ef444466}.pass-form-input:focus{border-color:#c084fc;box-shadow:0 0 12px #c084fc59}.pass-form-delete-theme .pass-form-input:focus{border-color:#f87171;box-shadow:0 0 12px #f8717159}.pass-form-actions{align-items:center;gap:8px;width:100%;display:flex}.pass-form-cancel{border-radius:var(--radius-sm);min-height:38px;color:var(--text-secondary);cursor:pointer;box-sizing:border-box;background:#ffffff0f;border:1px solid #ffffff24;flex:1 1 0;padding:9px 12px;font-size:13px;font-weight:600;transition:all .15s}.pass-form-cancel:hover{color:var(--text-primary);background:#ffffff1f}.pass-form-confirm{border-radius:var(--radius-sm);cursor:pointer;box-sizing:border-box;white-space:nowrap;border:none;flex:1.4 1 0;min-height:38px;padding:9px 12px;font-size:13px;font-weight:700;transition:all .15s}.pass-form-unlock{color:#fff;background:linear-gradient(135deg,#a855f7,#7e22ce);box-shadow:0 2px 10px #a855f766}.pass-form-unlock:hover:not(:disabled){background:linear-gradient(135deg,#c084fc,#9333ea);box-shadow:0 4px 14px #a855f799}.pass-form-delete{color:#fff;background:linear-gradient(135deg,#ef4444,#b91c1c);box-shadow:0 2px 10px #ef444466}.pass-form-delete:hover:not(:disabled){background:linear-gradient(135deg,#f87171,#dc2626)}.pass-form-confirm:disabled{opacity:.45;cursor:not-allowed}.wish-popover-error{color:#f87171;text-align:center;margin:0;font-size:12px}.only-wide{display:inline}.only-narrow{display:none}@media (width<=640px){.hud{top:calc(14px + env(safe-area-inset-top));left:calc(16px + env(safe-area-inset-left));right:calc(16px + env(safe-area-inset-right));gap:4px}.hud-guide{max-width:100%}.only-wide,.only-narrow{display:none}.wish-cta{bottom:calc(18px + env(safe-area-inset-bottom));gap:7px}.wish-cta-guide{font-size:11.5px}.wish-cta-btn{padding:12px 22px}.week-nav{top:calc(52px + env(safe-area-inset-top));gap:1px;padding:0}.week-arrow{width:28px;height:28px}.week-label{min-width:130px;padding:0 2px}.week-label-main{font-size:14.5px}.week-label-sub{font-size:10.5px}.past-notice{bottom:calc(20px + env(safe-area-inset-bottom));border-radius:var(--radius-md);text-align:center;flex-direction:column;gap:8px;padding:12px 18px}.aim-banner{bottom:calc(18px + env(safe-area-inset-bottom));border-radius:var(--radius-lg);box-sizing:border-box;flex-wrap:nowrap;justify-content:space-between;align-items:center;gap:10px;width:calc(100vw - 24px);max-width:440px;padding:8px 12px}.aim-banner-info{text-align:left;flex:auto;min-width:0}.aim-banner-wish{-webkit-line-clamp:2;line-clamp:2;font-size:12.5px}.aim-banner-hint{white-space:nowrap;font-size:11px}.aim-banner-cancel{flex:none;padding:6px 12px;font-size:11.5px}.wish-modal-card{border-radius:var(--radius-md);box-sizing:border-box;gap:16px;width:calc(100vw - 24px);max-width:390px;padding:22px 18px 18px}.wish-modal-secret-section{padding:10px 12px}.wish-modal-secret-pass-box{gap:6px;padding:10px 12px}.wish-modal-secret-pass-box input{padding:10px 12px;font-size:16px}.only-wide{display:none}.only-narrow{display:inline}.wish-popover-card{border-radius:var(--radius-md);box-sizing:border-box;gap:14px;width:calc(100vw - 24px);max-width:380px;padding:22px 18px 18px}.wish-popover-text{font-size:clamp(14px,4.2vw,16px);line-height:1.6}.wish-popover-unlock-box{margin:6px 0 2px}.wish-popover-unlock-btn{justify-content:center;width:100%;padding:10px 16px;font-size:13.5px}.pass-form-input{padding:10px 12px;font-size:16px}.pass-form-actions{gap:8px;width:100%;display:flex}.pass-form-cancel,.pass-form-confirm{min-height:42px;font-size:13.5px}}@media (hover:none){.wish-cta-btn:hover{box-shadow:var(--shadow-btn), 0 8px 24px -4px #00000080, 0 0 20px -2px var(--accent-gold-glow);transform:none}.btn-primary:hover{transform:none}}.hud-right-group{pointer-events:auto;align-items:center;gap:12px;display:flex}.hud-menu-container{pointer-events:auto;display:inline-block;position:relative}.hud-icon-btn,.hud-menu-btn{border:1px solid var(--border-subtle);width:32px;height:32px;color:var(--text-secondary);cursor:pointer;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);pointer-events:auto;background:#14181ca6;border-radius:50%;place-items:center;transition:all .2s cubic-bezier(.16,1,.3,1);display:grid;position:relative}.hud-icon-btn:hover,.hud-menu-btn:hover,.hud-menu-btn.active{color:var(--accent-gold);background:#d9b97826;border-color:#d9b97866;transform:scale(1.05)}.hud-audio-btn.is-active{color:var(--accent-gold);background:#d9b97833;border-color:#d9b97899;box-shadow:0 0 14px #d9b97859}.hud-audio-pulse{border:1px solid var(--accent-gold);opacity:0;pointer-events:none;border-radius:50%;animation:2.2s ease-out infinite audio-wave;position:absolute;inset:-3px}@keyframes audio-wave{0%{opacity:.8;transform:scale(.9)}50%{opacity:.2;transform:scale(1.35)}to{opacity:0;transform:scale(1.6)}}.hud-dropdown-menu{background:var(--bg-surface-elevated);-webkit-backdrop-filter:blur(24px)saturate(180%);backdrop-filter:blur(24px)saturate(180%);border:1px solid var(--border-glass);border-radius:var(--radius-md);z-index:50;pointer-events:auto;flex-direction:column;gap:3px;width:190px;padding:6px;animation:.2s cubic-bezier(.16,1,.3,1) dropdown-pop;display:flex;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 12px 32px -4px #000000a6,0 0 1px 1px #ffffff1a}@keyframes dropdown-pop{0%{opacity:0;transform:translateY(-6px)scale(.95)}to{opacity:1;transform:translateY(0)scale(1)}}.hud-dropdown-item{border-radius:var(--radius-sm);width:100%;color:var(--text-secondary);text-align:left;cursor:pointer;white-space:nowrap;background:0 0;border:none;align-items:center;gap:10px;padding:9px 12px;font-size:12.5px;font-weight:500;text-decoration:none;transition:all .15s;display:flex}.hud-dropdown-item:hover{color:var(--accent-gold);background:#d9b9781f}.dropdown-item-icon{width:15px;height:15px;color:var(--text-muted);flex-shrink:0;transition:color .15s}.hud-dropdown-item:hover .dropdown-item-icon{color:var(--accent-gold)}.wish-modal-profanity-alert{border-radius:var(--radius-md);color:#fca5a5;background:#ef44441f;border:1px solid #ef444459;align-items:center;gap:8px;margin-top:10px;padding:9px 12px;font-size:12px;font-weight:500;animation:.2s ease-out section-appear;display:flex}.wish-modal-profanity-alert svg{color:#ef4444;flex-shrink:0;width:14px;height:14px}.wish-popover-actions{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;display:flex}.wish-popover-report-btn{border-radius:var(--radius-full);color:#f87171;cursor:pointer;background:#ef444414;border:1px solid #ef444440;align-items:center;gap:5px;padding:8px 16px;font-size:clamp(11.5px,3.4vw,13px);font-weight:600;transition:all .2s;display:inline-flex}.wish-popover-report-btn:hover{color:#fca5a5;background:#ef44442e;border-color:#ef444480}.wish-popover-badge.badge-blind{color:#fca5a5;background:#ef444426;border-color:#ef444473}.wish-popover-blind-text{font-style:italic;color:var(--text-muted)!important;font-size:14px!important}.report-modal-backdrop{z-index:60;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#04090fb3;justify-content:center;align-items:center;animation:.2s ease-out backdrop-fade;display:flex;position:absolute;inset:0}.report-modal-card{overscroll-behavior:contain;background:var(--bg-surface-elevated);-webkit-backdrop-filter:blur(24px)saturate(180%);backdrop-filter:blur(24px)saturate(180%);border:1px solid var(--border-glass);border-radius:var(--radius-lg);width:min(420px,100vw - 32px);max-height:calc(100dvh - 32px);box-shadow:var(--shadow-card);flex-direction:column;gap:16px;padding:24px 26px;animation:.25s cubic-bezier(.16,1,.3,1) modal-slide;display:flex;overflow-y:auto}.report-modal-header{border-bottom:1px solid var(--border-subtle);justify-content:space-between;align-items:center;padding-bottom:12px;display:flex}.report-modal-title-group{align-items:center;gap:8px;display:flex}.report-modal-icon{color:#f87171;width:18px;height:18px}.report-modal-title{font-family:var(--font-serif);color:var(--text-primary);margin:0;font-size:17px;font-weight:700}.report-modal-close{width:28px;height:28px;color:var(--text-secondary);cursor:pointer;background:#ffffff0d;border:1px solid #0000;border-radius:50%;place-items:center;transition:all .15s;display:grid}.report-modal-close:hover{color:var(--text-primary);background:#ffffff1f}.report-modal-body{flex-direction:column;gap:14px;display:flex}.report-modal-guide{color:var(--text-secondary);margin:0;font-size:13px;line-height:1.4}.report-reasons-list{flex-direction:column;gap:8px;display:flex}.report-reason-item{border-radius:var(--radius-md);cursor:pointer;background:#ffffff08;border:1px solid #ffffff14;align-items:center;gap:10px;padding:10px 12px;transition:all .15s;display:flex}.report-reason-item:hover{background:#ffffff0f;border-color:#ffffff26}.report-reason-item.active{background:#ef44441f;border-color:#ef444466}.report-reason-item input[type=radio]{display:none}.report-reason-radio{border:2px solid #ffffff4d;border-radius:50%;flex-shrink:0;width:14px;height:14px;transition:all .15s;position:relative}.report-reason-item.active .report-reason-radio{border-color:#ef4444}.report-reason-item.active .report-reason-radio:after{content:"";background:#ef4444;border-radius:50%;position:absolute;inset:2px}.report-reason-label{color:var(--text-primary);font-size:13px;font-weight:500}.report-detail-group{flex-direction:column;gap:6px;display:flex}.report-detail-group label{color:var(--text-secondary);font-size:12px}.report-detail-group textarea{border-radius:var(--radius-md);border:1px solid var(--border-subtle);background:var(--bg-input);width:100%;color:var(--text-primary);resize:none;outline:none;padding:10px 12px;font-size:13px;transition:border-color .2s}.report-detail-group textarea:focus{border-color:#ef444480}.report-error-box{border-radius:var(--radius-sm);color:#fca5a5;background:#ef444426;align-items:center;gap:6px;padding:8px 12px;font-size:12px;display:flex}.report-error-box svg{flex-shrink:0;width:14px;height:14px}.report-modal-footer{justify-content:flex-end;align-items:center;gap:8px;margin-top:6px;display:flex}.btn-danger{border-radius:var(--radius-md);color:#fff;cursor:pointer;background:#ef4444;border:1px solid #ef444499;padding:10px 20px;font-size:14px;font-weight:600;transition:all .15s}.btn-danger:hover:not(:disabled){background:#dc2626;box-shadow:0 4px 12px #ef44444d}.btn-danger:disabled{opacity:.5;cursor:not-allowed}.report-modal-success{text-align:center;flex-direction:column;align-items:center;gap:10px;padding:24px 12px;display:flex}.report-success-icon-box{color:#4ade80;background:#22c55e26;border:1px solid #22c55e66;border-radius:50%;place-items:center;width:44px;height:44px;display:grid}.report-success-title{color:var(--text-primary);margin:0;font-size:16px;font-weight:700}.report-success-desc{color:var(--text-secondary);margin:0;font-size:13px}.privacy-modal-backdrop{z-index:60;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-sizing:border-box;background:#04090fbf;justify-content:center;align-items:center;padding:16px;animation:.2s ease-out backdrop-fade;display:flex;position:absolute;inset:0}.privacy-modal-card{background:var(--bg-surface-elevated);-webkit-backdrop-filter:blur(24px)saturate(180%);backdrop-filter:blur(24px)saturate(180%);border:1px solid var(--border-glass);border-radius:var(--radius-lg);width:min(580px,100%);height:min(720px,100dvh - 32px);box-shadow:var(--shadow-card);box-sizing:border-box;flex-direction:column;animation:.25s cubic-bezier(.16,1,.3,1) modal-slide;display:flex;overflow:hidden}.privacy-modal-header{border-bottom:1px solid var(--border-glass);background:#0e151e99;flex:none;justify-content:space-between;align-items:center;padding:18px 24px;display:flex}.privacy-modal-title-group{align-items:center;gap:8px;display:flex}.privacy-modal-icon{color:var(--accent-gold);width:18px;height:18px}.privacy-modal-title{font-family:var(--font-serif);color:var(--text-primary);margin:0;font-size:18px;font-weight:700}.privacy-modal-close{width:30px;height:30px;color:var(--text-secondary);cursor:pointer;background:#ffffff0f;border:1px solid #0000;border-radius:50%;flex:none;place-items:center;transition:all .15s;display:grid}.privacy-modal-close:hover{color:var(--text-primary);background:#ffffff24}.privacy-modal-content{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;color:var(--text-secondary);box-sizing:border-box;flex-direction:column;flex:auto;gap:16px;padding:20px 24px;font-size:13.5px;line-height:1.65;display:flex;overflow-y:auto}.privacy-modal-content::-webkit-scrollbar{width:6px}.privacy-modal-content::-webkit-scrollbar-track{background:0 0}.privacy-modal-content::-webkit-scrollbar-thumb{background:#d9b97838;border-radius:999px}.privacy-modal-content::-webkit-scrollbar-thumb:hover{background:#d9b97873}.privacy-intro{color:var(--text-primary);margin:0;font-size:13.5px;font-weight:500}.privacy-divider{background:var(--border-subtle);border:0;height:1px;margin:0}.privacy-section h4{color:var(--accent-gold);margin:0 0 8px;font-size:14px;font-weight:700}.privacy-section p{margin:0 0 6px}.privacy-subtext-lead{color:var(--text-secondary);margin-bottom:8px;font-size:12.5px}.privacy-callout{border-left:3px solid var(--accent-gold);border-radius:0 var(--radius-sm) var(--radius-sm) 0;color:var(--text-primary);background:#d9b97814;margin:8px 0 0;padding:10px 14px;font-size:12.5px}.privacy-list{flex-direction:column;gap:4px;margin:4px 0 8px;padding-left:18px;display:flex}.privacy-list li{font-size:12.5px}.privacy-table-wrapper{-webkit-overflow-scrolling:touch;border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:#0003;margin:8px 0;overflow-x:auto}.privacy-table{border-collapse:collapse;text-align:left;width:100%;font-size:12px}.privacy-table th,.privacy-table td{border-bottom:1px solid #ffffff0f;padding:9px 12px}.privacy-table th{color:var(--text-primary);white-space:nowrap;background:#ffffff0d;font-weight:600}.privacy-table td{color:var(--text-secondary)}.privacy-table tbody tr:last-child td{border-bottom:none}.privacy-subtext{color:var(--text-muted);margin:6px 0 0;font-size:11.5px}.privacy-date{color:var(--text-muted);font-size:12px;font-style:italic}.privacy-modal-footer{border-top:1px solid var(--border-glass);background:#0e151eb3;flex:none;justify-content:flex-end;padding:14px 24px;display:flex}@media (width<=640px){.privacy-modal-backdrop{padding:12px}.privacy-modal-card{border-radius:var(--radius-md);width:100%;height:calc(100dvh - 24px)}.privacy-modal-header{padding:14px 18px}.privacy-modal-content{gap:14px;padding:16px 18px;font-size:13px}.privacy-modal-footer{padding:12px 18px}.privacy-modal-footer .btn-primary{justify-content:center;width:100%;padding:12px 16px}}
