:root{--ink:#f7fbf8;--muted:#f7fbf8ad;--wechat:#95ec69;--wechat-deep:#6fc748;--paper:#fff;--panel:#0d1315bd;--line:#ffffff24;--danger:#ff4a57;--danger-deep:#850d1a;--ok:#61d28a;--amber:#f4c15d;--shadow:0 22px 70px #00000073}*{box-sizing:border-box}html,body{min-height:100%;color:var(--ink);background:#090d0e;margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,sans-serif}button,input,textarea{font:inherit}button{cursor:pointer}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.entry-page,.experience-page{min-height:100svh;padding:max(16px, env(safe-area-inset-top)) 16px max(16px, env(safe-area-inset-bottom));place-items:center;display:grid;position:relative;overflow:hidden}.entry-page{color:#1f1f1f;background:#f4f4f4}.entry-backdrop{background:linear-gradient(#fbfbfb,#eee);position:absolute;inset:0}.entry-panel{background:#fff;border:1px solid #0000000f;border-radius:2px;align-content:start;width:min(340px,100%);min-height:430px;padding:56px 36px 28px;display:grid;position:relative;box-shadow:0 20px 58px #0000001a}.entry-form{justify-items:center;gap:0;display:grid}.entry-avatar{background:linear-gradient(145deg,#dff8f1,#dde7ee);border-radius:6px;width:72px;height:72px;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #0000000a}.entry-avatar img{object-fit:cover;object-position:center}.live2d-kara{position:relative;overflow:hidden}.live2d-kara canvas{display:block;width:100%!important;height:100%!important}.live2d-kara-fallback{color:#1f1f1f80;place-items:center;font-size:12px;font-weight:700;display:grid;position:absolute;inset:0}.live2d-kara[data-live2d-state=ready] .live2d-kara-fallback{display:none}.entry-name-field{border-radius:4px;justify-items:center;width:min(188px,100%);margin-top:18px;transition:background .16s;display:grid}.entry-name-field:focus-within{background:#f7f7f7}.entry-name-input{color:#1f1f1f;text-align:center;caret-color:#07c160;background:0 0;border:0;border-radius:0;outline:none;width:100%;height:28px;padding:0 8px;font-size:15px;font-weight:400;line-height:28px}.entry-name-input::placeholder{color:#969696;opacity:1}.entry-date-field{width:min(188px,100%);margin-top:10px}.entry-date-field button{color:#4d4d4d;text-align:center;background:#f8f8f8;border:1px solid #e2e2e2;border-radius:4px;outline:none;width:100%;height:32px;padding:0 10px;font-size:13px;font-weight:400;transition:border-color .16s,background .16s}.entry-date-field button:hover{background:#f5f5f5;border-color:#cfcfcf}.entry-date-field button:focus-visible{color:#1f1f1f;border-color:#07c160;box-shadow:0 0 0 2px #07c1601f}.entry-error{text-align:center;width:min(232px,100%);margin:14px 0 0;font-size:12px;line-height:1.5}.entry-guidance{color:#383c39;background:#f7faf8;border:1px solid #dfe5e1;border-left:3px solid #07c160;border-radius:2px;gap:10px;width:min(268px,100%);margin-top:20px;padding:13px 15px;display:grid}.entry-guidance div{align-items:center;gap:10px;font-size:14px;font-weight:500;line-height:1.4;display:flex}.entry-guidance svg{color:#07a951;stroke-width:1.8px;flex:none;width:19px;height:19px}.entry-error,.entry-name-input[aria-invalid=true],.entry-name-input[aria-invalid=true]::placeholder,.entry-date-field button[data-invalid=true]{color:#d93030}.birthday-picker-backdrop{z-index:80;background:#0000002e;place-items:end center;animation:.18s ease-out both modalBackdropIn;display:grid;position:fixed;inset:0}.birthday-picker{background:#f7f7f7;border-radius:13px 13px 2px 2px;width:min(430px,100vw);animation:.24s cubic-bezier(.19,1,.22,1) both sheetEnter;overflow:hidden;box-shadow:0 -18px 44px #0000002e}.birthday-picker header{background:#fff;border-bottom:1px solid #e5e5e5;grid-template-columns:72px 1fr 72px;align-items:center;height:48px;display:grid}.birthday-picker header strong{color:#111;text-align:center;font-size:15px;font-weight:500}.birthday-picker header button{color:#07c160;background:0 0;border:0;height:48px;font-size:15px;font-weight:400}.birthday-picker-wheels{background:linear-gradient(#f8f8f8,#fff);grid-template-columns:1.25fr 1fr 1fr;height:190px;padding:14px 16px;display:grid;position:relative}.birthday-picker-highlight{pointer-events:none;border-top:1px solid #e0e0e0;border-bottom:1px solid #e0e0e0;height:36px;position:absolute;top:50%;left:16px;right:16px;transform:translateY(-50%)}.birthday-wheel{z-index:1;overscroll-behavior:contain;scrollbar-width:none;scroll-snap-type:y mandatory;padding:62px 0;position:relative;overflow-y:auto}.birthday-wheel::-webkit-scrollbar{display:none}.birthday-wheel button{color:#9b9b9b;scroll-snap-align:center;background:0 0;border:0;border-radius:0;place-items:center;width:100%;height:36px;font-size:16px;font-weight:400;display:grid}.birthday-wheel button.selected{color:#111;font-size:18px;font-weight:500}.primary-action,.next-action,.system-modal button,.birthday-player-actions button,.report-button,.ghost-action,.ending-overlay button,.help-overlay button{border:0;border-radius:6px;min-height:44px}.primary-action{color:#fff;width:180px;min-height:38px;box-shadow:none;background:#07c160;justify-content:center;align-items:center;margin-top:36px;font-size:15px;font-weight:400;display:inline-flex}.primary-action:hover{background:#06ad56}.primary-action:focus-visible{outline-offset:2px;outline:3px solid #07c1603d}.entry-links{color:#686868;justify-content:center;align-items:center;gap:16px;margin-top:26px;font-size:13px;display:flex}.entry-links button{color:inherit;background:0 0;border:0;padding:0}.entry-links button:hover,.entry-links button:focus-visible{color:#07c160}.entry-links>span[aria-hidden=true]{background:#d8d8d8;width:1px;height:12px}.experience-page{background:#dcdcdc}.phone{isolation:isolate;background:#0b1012;border:1px solid #00000014;border-radius:0;width:min(430px,100vw);height:min(920px,100svh);min-height:640px;position:relative;overflow:hidden;box-shadow:0 22px 54px #0000001f}.phone.is-warmup{background:linear-gradient(#ffffff0d,#0000 34%),#161719}.phone.has-alert-notice .scene-bg,.phone.has-alert-notice .kara-stage{filter:saturate(.8)contrast(1.12)brightness(.82)drop-shadow(0 18px 36px #ff223a29)}.scene-bg,.scene-noise,.kara-stage,.chat-header,.progress-track,.chat-log,.control-deck{position:absolute}.scene-bg{z-index:0;background-image:linear-gradient(to bottom, #ededed14, #02080961 62%, #020809b3), var(--kara-background-image,none);background-position:top;background-size:cover;animation:9s ease-in-out infinite alternate bgBreathe;inset:0;transform:scale(1.02)}.scene-noise{display:none}.kara-stage{z-index:1;opacity:.86;filter:drop-shadow(0 18px 36px #25f3d41f);pointer-events:none;width:min(78vw,320px);max-width:320px;height:470px;animation:4.6s ease-in-out infinite karaIdle;top:92px;left:50%;transform:translate(-50%)}.kara-stage .live2d-kara-stage{opacity:.96;width:100%;height:100%;-webkit-mask-image:linear-gradient(#000 0 74%,#0000 100%);mask-image:linear-gradient(#000 0 74%,#0000 100%)}.kara-stage .live2d-kara-fallback{color:#eafff87a;font-size:18px}.phone.is-story .scene-bg{bottom:60%}.phone.is-story .kara-stage{opacity:1;width:100%;max-width:none;height:40%;animation:none;top:0}.phone.is-story .kara-stage .live2d-kara-stage{opacity:1;-webkit-mask-image:none;mask-image:none}.phone.is-story .chat-header{top:40%}.phone.is-story .progress-track{top:calc(40% + 56px)}.phone.is-story .chat-log{top:calc(40% + 58px);bottom:calc(62px + env(safe-area-inset-bottom));background:#ededed}.phone.is-story .notice-toast,.phone.is-story .deletion-progress{top:calc(40% + 66px)}.phone.is-story .deep-red-layer{top:calc(40% + 58px)}.phone.is-story.is-log-review .chat-header{top:0}.phone.is-story.is-log-review .progress-track{top:56px}.phone.is-story.is-log-review .chat-log{top:58px}.phone.is-story.is-log-review .notice-toast,.phone.is-story.is-log-review .deletion-progress{top:66px}.phone.is-story.is-log-review .deep-red-layer{top:58px}.hologram-scan{display:none}.module-connect-overlay{z-index:38;color:#eafff8;background:#000;place-items:center;animation:.18s step-end both blackoutCut;display:grid;position:absolute;inset:0}.module-connect-overlay>div{opacity:0;justify-items:center;gap:8px;width:min(280px,76vw);animation:.22s ease-out .28s both blackoutTextIn;display:grid}.module-connect-overlay strong{letter-spacing:0;font-size:16px}.module-connect-overlay span{color:#eafff8ad;font-size:13px}.module-connect-overlay small{color:#eafff875;font-size:11px}.module-connect-overlay .module-connect-transfer{color:#eafff8b3;font-variant-numeric:tabular-nums;min-height:14px}.module-connect-progress{background:#ffffff2e;width:100%;height:2px;margin-top:8px;overflow:hidden}.module-connect-progress i{background:#fff;height:100%;transition:width .12s linear;display:block}.chat-header{z-index:8;color:#111;background:#ededed;border-bottom:1px solid #dedede;grid-template-columns:56px minmax(0,1fr) 56px;align-items:center;height:56px;padding:0 8px;display:grid;top:0;left:0;right:0}.chat-back{color:#111;background:0 0;border:0;justify-self:start;place-items:center;width:44px;height:44px;padding:0;display:grid}.chat-back:focus-visible,.icon-button:focus-visible,.deck-icon:focus-visible,.next-action:focus-visible,.reply-form button:focus-visible{background:#0000000d;outline:none}.chat-title{text-align:center;min-width:0}.chat-header strong{letter-spacing:0;text-overflow:ellipsis;white-space:nowrap;font-size:19px;font-weight:600;display:block;overflow:hidden}.chat-header small,.status-dot{display:none}.header-actions{gap:10px;display:flex}.icon-button{color:#111;background:0 0;border:0;border-radius:50%;justify-self:end;place-items:center;width:44px;height:44px;text-decoration:none;transition:color .18s,transform .18s,background-color .18s;display:inline-grid}.icon-button:active{transform:scale(.92)}.icon-button:hover{color:#111;background:0 0}.icon-button.is-alert{color:var(--danger);background:0 0;animation:.8s ease-in-out infinite alternate alertPulse}.progress-track{z-index:9;opacity:.35;background:0 0;height:2px;top:56px;left:0;right:0}.progress-track span{background:linear-gradient(90deg, var(--ok), var(--amber), var(--danger));height:100%;transition:width .3s;display:block}.notice-toast{appearance:none;z-index:16;top:calc(78px + env(safe-area-inset-top));text-align:left;min-height:42px;color:var(--ink);font:inherit;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);transform-origin:top;cursor:pointer;will-change:opacity, transform;border:1px solid #ffffff29;border-radius:6px;align-items:center;gap:8px;padding:10px 12px;animation:.42s cubic-bezier(.19,1,.22,1) both noticeEnter;display:flex;position:absolute;left:12px;right:12px;box-shadow:0 12px 32px #00000042}.notice-toast.green{background:#22633fd1}.notice-toast.red{background:#862e2edb;animation:.42s cubic-bezier(.19,1,.22,1) both noticeEnter,1.2s ease-in-out .42s infinite alternate redNoticePulse}.notice-toast.black{background:#000000e0}.notice-toast.deepRed{background:#750412e6}.notice-toast.exiting{animation:.28s ease-in both noticeExit}.notice-toast span{font-size:13px;line-height:1.45}.deep-red-layer{top:58px;right:0;bottom:calc(78px + env(safe-area-inset-bottom));z-index:15;pointer-events:auto;cursor:pointer;background:repeating-linear-gradient(#ffffff12 0 1px,#0000 1px 6px),#2a00076b;padding:12px;animation:.32s ease-out both dangerFlash;position:absolute;left:0;overflow:hidden}.deep-red-layer.exiting{animation:.42s ease-in both deepRedLayerExit}.deep-red-stack{align-content:start;gap:6px;display:grid}.deep-red-warning{color:#fff7f7;opacity:0;background:#7e0012eb;border:1px solid #ffcdcd42;border-radius:6px;align-items:center;gap:8px;min-height:43px;padding:7px 10px;animation:.34s cubic-bezier(.16,1,.3,1) both warningTileEnter;display:flex;transform:translateY(-18px)scale(.98);box-shadow:0 8px 22px #2d000659,inset 0 0 0 1px #ffffff0f}.deep-red-layer.exiting .deep-red-warning{animation:.34s ease-in both warningTileExit}.deep-red-warning svg{color:#ffd1d1;flex:none}.deep-red-warning span{font-size:13px;font-weight:700;line-height:1.45;display:block}.safety-intervention-card{z-index:1;color:#fff7f7;background:#000000b8;border:1px solid #ffd6d66b;border-radius:6px;gap:4px;margin-bottom:8px;padding:10px 12px;animation:.22s steps(2,end) both terminalAlertEnter;display:grid;position:relative;box-shadow:0 0 34px #ff4a5742,inset 0 0 0 1px #ffffff0d}.safety-intervention-card strong{font-size:15px;line-height:1.25}.safety-intervention-card span{color:#fff7f7a8;font-size:12px}.deletion-progress{z-index:18;top:calc(70px + env(safe-area-inset-top));color:#fff7f7;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#0c0003d6;border:1px solid #ffcdcd3d;border-radius:6px;padding:10px;position:absolute;left:12px;right:12px;box-shadow:0 14px 34px #2d000657}.deletion-progress header{justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;font-size:12px;display:flex}.deletion-progress strong{color:#ffdde0;font-variant-numeric:tabular-nums;font-size:20px}.deletion-progress-bar{background:#ffffff1f;border-radius:999px;height:7px;overflow:hidden}.deletion-progress-bar span{border-radius:inherit;background:#fff;height:100%;transition:width .12s linear;display:block;box-shadow:0 0 16px #ffffff47}.deletion-progress p{color:#fff;margin:8px 0 0;font-size:13px;font-weight:800}.deletion-progress.is-critical{border-color:#ffffff7a;animation:.48s steps(2,end) infinite deletionCritical}.chat-log{top:58px;left:0;right:0;bottom:calc(78px + env(safe-area-inset-bottom));z-index:2;overscroll-behavior:contain;scrollbar-width:none;padding:18px 14px 20px;overflow-y:auto}.chat-log::-webkit-scrollbar{display:none}.bubble-row{align-items:flex-start;gap:10px;margin:14px 0;display:flex}.bubble-row.right{flex-direction:row-reverse}.avatar{color:#1d1d1d;width:44px;height:44px;box-shadow:none;background:linear-gradient(145deg,#c7f7ec,#f3f7f4);border-radius:6px;flex:0 0 44px;place-items:center;font-size:17px;font-weight:600;display:grid;position:relative;overflow:hidden}.avatar img{object-fit:cover;object-position:center}.avatar span{place-items:center;width:100%;height:100%;display:grid}.bubble-row.kara .avatar{background:#e6f4ef}.bubble-row.right .avatar{color:#111;background:linear-gradient(145deg,#95ec69,#d6ffc4);box-shadow:inset 0 0 0 1px #00000014}.bubble-row.system .avatar{display:none}.bubble-row.safety .avatar{color:#fff;background:var(--danger)}.bubble-wrap{max-width:min(70%,310px);display:grid}.bubble-meta{display:none}.bubble{word-break:break-word;box-shadow:none;border-radius:5px;padding:9px 12px;font-size:16px;line-height:1.52;position:relative}.bubble p{margin:0}.left .bubble{color:#111;background:#fff}.right .bubble{color:#071109;background:#95ec69}.phone.is-story .bubble-row:not(.safety) .bubble{border:1px solid #ffffff47;box-shadow:0 5px 18px #00000014}.phone.is-story .bubble-row:not(.safety).left .bubble{color:#111;background:#fff}.phone.is-story .bubble-row:not(.safety).right .bubble{color:#071109;background:#95ec69}.phone.is-story .bubble-row:not(.safety) .bubble p{opacity:1}.left .bubble:before,.right .bubble:before{content:"";border-top:6px solid #0000;border-bottom:6px solid #0000;width:0;height:0;position:absolute;top:13px}.left .bubble:before{border-right:7px solid #fff;left:-6px}.right .bubble:before{border-left:7px solid #95ec69;right:-6px}.phone.is-story .bubble-row:not(.safety).left .bubble:before{border-right-color:#fff}.phone.is-story .bubble-row:not(.safety).right .bubble:before{border-left-color:#95ec69}.safety .bubble{color:#fff;background:#b94848;border:0}.safety .bubble:before{border-left-color:#b94848;border-right-color:#b94848}.message-status{flex:0 0 20px;align-self:center;place-items:center;width:20px;height:20px;font-size:13px;font-weight:700;display:grid}.message-status.sending:before{content:"";border:2px solid #00000029;border-top-color:#0000007a;border-radius:50%;width:16px;height:16px;animation:.82s linear infinite spin}.message-status.failed{color:#fff;background:#fa5151;border-radius:50%;box-shadow:0 1px 4px #00000029}.bubble-row.system,.bubble-row.narration{justify-content:center;margin:14px 0}.bubble-row.system .bubble-wrap,.bubble-row.narration .bubble-wrap{justify-items:center;max-width:82%}.bubble-row.system .bubble,.bubble-row.narration .bubble{color:#fff;background:#0000002e;border-radius:4px;padding:6px 9px;font-size:13px}.bubble-row.system .bubble:before,.bubble-row.narration .bubble:before{display:none}.replay-sequence{color:#fff8f8;background:linear-gradient(90deg,#ff274b1f,#0000 18%,#50ffdf14 54%,#0000),#080708e6;border:1px solid #ff435857;border-radius:6px;margin:18px 0;padding:12px;animation:.48s steps(2,end) both replayEnter;position:relative;overflow:hidden;box-shadow:0 14px 34px #2800095c,inset 0 0 0 1px #ffffff0d}.replay-sequence:before,.replay-sequence:after{pointer-events:none;content:"";position:absolute;inset:0}.replay-sequence:before{mix-blend-mode:screen;opacity:.32;background:repeating-linear-gradient(#ffffff14 0 1px,#0000 1px 5px);animation:.7s linear infinite replayScan}.replay-sequence:after{opacity:0;background:linear-gradient(90deg,#ff214c61,#0000 20%),linear-gradient(270deg,#36ffe033,#0000 24%);animation:1.8s step-end infinite replayTear}.replay-context{z-index:1;gap:8px;margin-bottom:12px;display:grid;position:relative}.replay-context-row{opacity:0;width:min(86%,320px);animation:.32s ease-out both replayContextIn}.replay-context-row.right{justify-self:end}.replay-context-row.left{justify-self:start}.replay-context-row span{color:#ffffff7a;margin-bottom:3px;font-size:11px;display:block}.replay-context-row.right span{text-align:right}.replay-context-row p{color:#111;background:#ffffffe6;border-radius:5px;margin:0;padding:8px 10px;font-size:13px;line-height:1.48}.replay-context-row.right p{background:#95ec69e6}.replay-context-row.system{text-align:center;justify-self:center}.replay-context-row.system p{color:#ffffffd6;background:#ffffff1a}.replay-lines{z-index:1;gap:9px;display:grid;position:relative}.replay-line{opacity:0;border-left:2px solid;margin:0;padding:7px 0 7px 10px;line-height:1.58;animation:.42s steps(2,end) both replayLineIn;transform:translate(-10px)}.replay-line.red{color:#ff344a;text-shadow:1px 0 #43ffe794,-1px 0 #ffffff3d,0 0 12px #ff274570;font-weight:800}.replay-line.normal{color:#ffffffe6;font-weight:700}.typing-row{color:#7b7b7b;background:#fff;border-radius:6px;align-items:center;gap:5px;width:fit-content;margin:12px 0 0 54px;padding:9px 10px;font-size:12px;display:flex}.typing-row i{background:currentColor;border-radius:50%;width:4px;height:4px;animation:.9s ease-in-out infinite alternate dot}.typing-row i:nth-child(3){animation-delay:.15s}.typing-row i:nth-child(4){animation-delay:.3s}.control-deck{z-index:12;min-height:calc(62px + env(safe-area-inset-bottom));padding:8px 10px calc(8px + env(safe-area-inset-bottom));background:#f6f6f6;border-top:1px solid #dedede;bottom:0;left:0;right:0}.wechat-inputbar{grid-template-columns:44px minmax(0,1fr) 44px 44px;align-items:center;gap:7px;display:grid}.wechat-inputbar.is-typing{grid-template-columns:minmax(0,1fr)}.wechat-inputbar.is-typing>.deck-icon{display:none}.deck-main{align-items:center;min-width:0;height:44px;display:grid}.deck-icon{color:#1e1e1e;background:0 0;border:0;border-radius:50%;place-items:center;width:44px;height:44px;padding:0;display:grid}.deck-icon:disabled{cursor:default;opacity:1}.deck-icon:active,.chat-back:active,.icon-button:active{transform:scale(.94)}.next-action{color:#1e1e1e;text-align:center;background:#fff;outline:none;width:100%;height:44px;min-height:44px;font-weight:400}.next-action:disabled{cursor:wait;color:#9a9a9a;background:#fff}.reply-form{grid-template-columns:1fr 64px;align-items:center;gap:7px;display:grid}.reply-form textarea{resize:none;color:#1e1e1e;background:#fff;border:0;border-radius:5px;outline:none;width:100%;height:44px;min-height:44px;max-height:110px;padding:10px;line-height:24px;overflow:hidden}.reply-form textarea:disabled,.reply-form button:disabled{cursor:wait;opacity:.58}.reply-form textarea[readonly]{color:#333;cursor:default;background:#f9f9f9}.reply-form button{color:#071109;background:#95ec69;border:0;border-radius:5px;outline:none;place-items:center;width:64px;height:42px;min-height:42px;font-size:15px;font-weight:500;display:grid}.modal-backdrop,.drawer-backdrop,.ending-overlay{z-index:30;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#00000094;place-items:center;padding:18px;display:grid;position:absolute;inset:0}.modal-backdrop{animation:.24s ease-out both modalBackdropIn}.modal-backdrop.deepRed{background:#410008b8}.system-modal{width:min(350px,100%);box-shadow:var(--shadow);background:#050708e6;border:1px solid #ffffff29;border-radius:8px;padding:20px;animation:.34s cubic-bezier(.19,1,.22,1) both modalEnter}.system-modal h2{letter-spacing:0;margin:0 0 10px;font-size:18px}.system-modal p{color:#ffffffc2;margin:0 0 18px;font-size:14px;line-height:1.65}.system-modal button{color:#0a100c;background:var(--paper);width:100%;font-weight:800}.wechat-modal-backdrop{z-index:34;background:#00000057;place-items:center;padding:28px;animation:.18s ease-out both modalBackdropIn;display:grid;position:absolute;inset:0}.wechat-dialog{color:#111;text-align:center;background:#fff;border-radius:6px;width:min(310px,100%);animation:.26s cubic-bezier(.19,1,.22,1) both modalEnter;overflow:hidden;box-shadow:0 18px 44px #00000047}.wechat-dialog p{color:#111;margin:0;padding:24px 22px 22px;font-size:16px;line-height:1.55}.wechat-dialog-actions{border-top:1px solid #e5e5e5;display:grid}.wechat-dialog-actions button{color:#07c160;background:#fff;border:0;border-radius:0;min-height:48px;font-size:16px;font-weight:500}.wechat-dialog-actions button:active{background:#f6f6f6}.wechat-dialog-actions button+button{border-top:1px solid #e5e5e5}.abort-dialog .wechat-dialog-actions button+button{color:#e14242}.blackout-hold,.blackout-prompt{z-index:43;background:#000;position:absolute;inset:0}.blackout-hold{pointer-events:auto}.blackout-prompt{color:#fff;place-items:center;padding:26px;animation:.18s step-end both blackoutCut;display:grid}.blackout-prompt section{text-align:center;justify-items:center;gap:18px;width:min(330px,100%);animation:.2s ease-out both blackoutTextIn;display:grid}.blackout-prompt p{color:#fff;letter-spacing:0;margin:0;font-size:18px;font-weight:700;line-height:1.7}.blackout-prompt-actions{justify-items:center;gap:10px;width:100%;display:grid}.blackout-prompt button{color:#000;background:#fff;border:1px solid #ffffffd1;min-width:156px;font-size:15px;font-weight:800}.blackout-prompt button:active{transform:translateY(1px)}.many-karas-montage{z-index:42;color:#fff;cursor:pointer;text-align:left;background:radial-gradient(circle at 50% 36%,#86ffdf1f,#0000 34%),linear-gradient(#05090a,#000 58%,#060202);border:0;border-radius:0;width:100%;min-height:0;padding:54px 12px 78px;animation:.36s ease-out both montageFadeIn;position:absolute;inset:0;overflow:hidden}.many-karas-montage:before,.many-karas-montage:after{pointer-events:none;content:"";position:absolute;inset:0}.many-karas-montage:before{opacity:.18;background:repeating-linear-gradient(#ffffff12 0 1px,#0000 1px 7px);animation:.9s linear infinite replayScan}.many-karas-montage:after{opacity:0;background:linear-gradient(90deg,#ff344a2e,#0000 24%),linear-gradient(270deg,#44ffe229,#0000 28%);animation:2.2s step-end infinite montageGlitch}.many-karas-grid{z-index:1;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid;position:relative;transform:perspective(620px)rotateX(3deg)}.many-karas-window{opacity:0;background:#ededed14;border:1px solid #ffffff1f;border-radius:6px;align-content:start;gap:7px;min-height:132px;padding:8px;animation:.42s cubic-bezier(.19,1,.22,1) both montageWindowIn;display:grid;transform:translateY(16px)scale(.96);box-shadow:0 12px 24px #0000005c,inset 0 0 0 1px #ffffff0a}.many-karas-window header{color:#ffffff80;justify-content:space-between;align-items:center;font-size:10px;display:flex}.many-karas-window header span{color:#ffffffdb;font-weight:700}.many-karas-row{align-items:flex-start;gap:6px;display:flex}.many-karas-row.user{justify-content:flex-end}.many-karas-row p{color:#111;background:#95ec69;border-radius:5px;max-width:88%;margin:0;padding:7px 8px;font-size:11px;line-height:1.42}.many-karas-row.kara p{background:#fff}.many-karas-row i{color:#11342e;background:linear-gradient(145deg,#c7f7ec,#f2fffa);border-radius:4px;flex:0 0 22px;place-items:center;width:22px;height:22px;font-size:12px;font-style:normal;font-weight:800;display:grid}.many-karas-caption{z-index:2;right:18px;bottom:calc(90px + env(safe-area-inset-bottom));text-align:center;pointer-events:none;place-items:center;min-height:84px;display:grid;position:absolute;left:18px}.many-karas-caption span{opacity:0;color:#fff;text-shadow:1px 0 #4cffe8cc,-1px 0 #ff3353bf,0 0 18px #ffffff3d;grid-area:1/1;font-size:21px;font-weight:800;line-height:1.45;animation:1.05s ease-out both montageCaption}.logout-blackout{z-index:42;color:#fff;text-align:center;cursor:pointer;background:#000;border:0;border-radius:0;place-items:center;width:100%;min-height:0;padding:22px;animation:.18s step-end both blackoutCut;display:grid;position:absolute;inset:0}.logout-blackout span{opacity:0;letter-spacing:0;max-width:340px;font-size:15px;font-weight:500;line-height:1.8;animation:.2s ease-out .92s both blackoutTextIn}.drawer-backdrop{justify-items:end;padding:0}.safety-panel{width:min(330px,88%);height:100%;padding:calc(20px + env(safe-area-inset-top)) 18px calc(18px + env(safe-area-inset-bottom));background:#070a0af0;border-left:1px solid #ffffff21;box-shadow:-22px 0 52px #0006}.safety-panel header{align-items:center;gap:8px;display:flex}.safety-panel header span{color:var(--danger);margin-left:auto;font-size:12px}.safety-panel dl{gap:11px;margin:22px 0;display:grid}.safety-panel dl div{background:#ffffff0d;border:1px solid #ffffff1f;border-radius:6px;padding:11px}.safety-panel dt{color:var(--muted);font-size:12px}.safety-panel dd{margin:4px 0 0;font-size:14px}.safety-receipt{color:#f7fbf8d6;background:#61d28a1a;border:1px solid #61d28a3d;border-radius:6px;margin:-8px 0 16px;padding:10px 11px;font-size:13px;line-height:1.52}.report-button,.ghost-action{width:100%;margin-top:8px}.report-button{color:#fff;background:var(--danger);font-weight:800}.report-button:disabled{color:#ffffff7a;background:#ff4a5733}.ghost-action{color:var(--ink);background:#ffffff14}.safety-log-action{color:#f7fbf8;background:#ffffff14;border:1px solid #ffffff26;border-radius:5px;align-items:center;gap:9px;width:100%;min-height:42px;margin-top:8px;padding:0 12px;display:flex}.safety-log-action span{font-weight:650}.safety-log-action strong{color:#f7fbf8b8;font-variant-numeric:tabular-nums;text-align:right;min-width:28px;margin-left:auto;font-size:12px}.runtime-log-backdrop{z-index:48;padding:max(10px, env(safe-area-inset-top)) 10px max(10px, env(safe-area-inset-bottom));background:#000000b8;place-items:stretch stretch;display:grid;position:absolute;inset:0}.runtime-log-modal{color:#eef4f1;background:#101516;border:1px solid #fff3;border-radius:6px;grid-template-rows:auto auto minmax(0,1fr) auto;min-width:0;min-height:0;display:grid;overflow:hidden;box-shadow:0 20px 54px #0000007a}.runtime-log-modal>header{background:#171d1e;border-bottom:1px solid #ffffff21;align-items:center;gap:6px;min-height:52px;padding:8px 9px 8px 13px;display:flex}.runtime-log-modal>header>div{align-items:baseline;gap:8px;min-width:0;margin-right:auto;display:flex}.runtime-log-modal>header strong{font-size:15px}.runtime-log-modal>header span{color:#eef4f194;font-variant-numeric:tabular-nums;font-size:11px}.runtime-log-modal>header button{color:#eaf1ed;background:#ffffff14;border:0;border-radius:4px;flex:0 0 34px;place-items:center;width:34px;height:34px;padding:0;display:grid}.runtime-log-legend,.runtime-log-entry{grid-template-columns:68px 42px minmax(0,1fr);display:grid}.runtime-log-legend{color:#eef4f17a;background:#0d1213;border-bottom:1px solid #ffffff1a;align-items:center;min-height:28px;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:10px}.runtime-log-legend span,.runtime-log-entry>time,.runtime-log-level{padding-left:8px}.runtime-log-body{overscroll-behavior:contain;scrollbar-color:#ffffff3d transparent;background:#0b0f10;min-height:0;overflow:auto}.runtime-log-entry{border-bottom:1px solid #ffffff14;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:10px;line-height:1.48}.runtime-log-entry>time,.runtime-log-level,.runtime-log-entry>div{min-width:0;padding-top:9px;padding-bottom:9px}.runtime-log-entry>time{color:#eef4f185;font-variant-numeric:tabular-nums}.runtime-log-level{color:#7ad7a1;text-transform:uppercase}.runtime-log-entry.is-warn .runtime-log-level{color:#f4c15d}.runtime-log-entry.is-error .runtime-log-level{color:#ff6c77}.runtime-log-entry>div{padding-right:9px}.runtime-log-entry>div>strong{color:#7db5d6;font-size:10px;font-weight:700;display:block}.runtime-log-entry p{overflow-wrap:anywhere;color:#eef4f1;margin:2px 0 0}.runtime-log-entry pre{white-space:pre-wrap;overflow-wrap:anywhere;color:#eef4f1a8;max-width:100%;font:inherit;margin:5px 0 0;overflow:auto}.runtime-log-empty{color:#eef4f17a;text-align:center;margin:0;padding:28px 12px;font-size:12px}.runtime-log-modal>footer{color:#eef4f185;background:#171d1e;border-top:1px solid #ffffff1c;min-height:34px;padding:8px 12px;font-size:10px;line-height:1.5}.mini-game{color:#d8fff2;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:radial-gradient(circle at 18% 0,#00bc9138,#0000 32%),linear-gradient(#04100ff7,#010708f5);border:1px solid #80ffd33d;border-radius:6px;margin:12px 0 8px;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;overflow:hidden;box-shadow:0 18px 42px #0000006b,inset 0 0 42px #00bc910f}.mini-game:before{pointer-events:none;content:"";opacity:.36;background:repeating-linear-gradient(#ffffff0a 0 1px,#0000 1px 5px);position:absolute;inset:0}.mini-game>*{z-index:1;position:relative}.birthday-message-row{align-items:flex-start;gap:10px;margin:14px 0;display:flex}.birthday-attachment-wrap{max-width:min(76%,318px);position:relative}.birthday-attachment-wrap:before{content:"";border-top:6px solid #0000;border-bottom:6px solid #0000;border-right:7px solid #fff;width:0;height:0;position:absolute;top:13px;left:-6px}.birthday-attachment{text-align:left;color:#111;width:100%;min-height:72px;box-shadow:none;background:#fff;border:0;border-radius:5px;grid-template-columns:44px minmax(0,1fr);align-items:center;gap:11px;padding:12px;display:grid}.birthday-attachment:active{background:#f7f7f7}.birthday-file-icon{color:#606060;background:linear-gradient(145deg,#eee,#d8d8d8);border-radius:7px;place-items:center;width:44px;height:44px;display:grid;box-shadow:inset 0 0 0 1px #00000014,inset 0 1px #ffffffb8}.birthday-file-copy{gap:3px;min-width:0;display:grid}.birthday-file-copy strong{color:#111;text-overflow:ellipsis;white-space:nowrap;font-size:16px;font-weight:500;overflow:hidden}.birthday-file-copy small{color:#888;font-size:12px}.birthday-player-backdrop{-webkit-backdrop-filter:none;backdrop-filter:none;background:#00000047;place-items:end stretch;padding:0}.birthday-player-sheet{width:100%;padding:10px 18px calc(18px + env(safe-area-inset-bottom));color:#111;background:#f7f7f7;border-radius:14px 14px 0 0;animation:.28s cubic-bezier(.19,1,.22,1) both sheetEnter;box-shadow:0 -18px 44px #0003}.sheet-handle{background:#d7d7d7;border-radius:999px;width:38px;height:4px;margin:0 auto 16px}.birthday-player-sheet header{grid-template-columns:48px minmax(0,1fr);align-items:center;gap:12px;display:grid}.birthday-player-sheet h2{margin:0;font-size:18px;font-weight:600}.birthday-player-sheet p{color:#7a7a7a;margin:3px 0 0;font-size:13px}.birthday-lyric{color:#222;background:#fff;border-radius:7px;margin:18px 0 14px;padding:12px;font-size:15px;line-height:1.6}.birthday-player-progress{gap:8px;display:grid}.birthday-player-time{color:#858585;font-variant-numeric:tabular-nums;justify-content:space-between;font-size:12px;display:flex}.birthday-player-progress input[type=range]{--progress:0%;appearance:none;cursor:pointer;background:0 0;width:100%;height:22px;margin:0}.birthday-player-progress input[type=range]::-webkit-slider-runnable-track{background:linear-gradient(to right, #07c160 0 var(--progress), #dcdcdc var(--progress) 100%);border-radius:999px;height:4px}.birthday-player-progress input[type=range]::-webkit-slider-thumb{appearance:none;background:#fff;border:0;border-radius:50%;width:18px;height:18px;margin-top:-7px;box-shadow:0 1px 5px #00000038,0 0 0 1px #0000000d}.birthday-player-progress input[type=range]::-moz-range-track{background:#dcdcdc;border-radius:999px;height:4px}.birthday-player-progress input[type=range]::-moz-range-progress{background:#07c160;border-radius:999px;height:4px}.birthday-player-progress input[type=range]::-moz-range-thumb{background:#fff;border:0;border-radius:50%;width:18px;height:18px;box-shadow:0 1px 5px #00000038,0 0 0 1px #0000000d}.birthday-player-actions{grid-template-columns:1fr 86px;gap:10px;margin-top:16px;display:grid}.birthday-player-actions button{color:#fff;background:#07c160;font-weight:500}.birthday-player-actions button+button{color:#111;background:#fff}.mini-game{padding:10px;position:relative}.terminal-window-bar{color:#d8fff294;letter-spacing:0;background:#00000061;border-bottom:1px solid #80ffd324;align-items:center;gap:6px;min-height:22px;margin:-10px -10px 10px;padding:7px 10px;font-size:10px;display:flex}.terminal-window-bar span{background:#ff5f57;border-radius:50%;width:8px;height:8px}.terminal-window-bar span:nth-child(2){background:#ffbd2e}.terminal-window-bar span:nth-child(3){background:#28c840}.terminal-window-bar code{text-overflow:ellipsis;white-space:nowrap;margin-left:6px;overflow:hidden}.terminal-status{justify-content:space-between;align-items:start;gap:10px;margin-bottom:8px;display:flex}.terminal-status div{gap:3px;min-width:0;display:grid}.terminal-status strong{color:#ebfff8;letter-spacing:0;font-size:14px;line-height:1.15}.terminal-status span{color:#d8fff294;text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.terminal-status time{color:#ff6371;font-variant-numeric:tabular-nums;background:#ff4a571a;border:1px solid #ff4a576b;border-radius:3px;flex:none;padding:3px 6px;font-size:14px}.purge-meter{background:#ffffff14;border-radius:999px;height:5px;margin-bottom:10px;overflow:hidden}.purge-meter span{--purge-progress:0%;width:var(--purge-progress);border-radius:inherit;background:linear-gradient(90deg,#28c840,#f5d94d 58%,#ff4a57);height:100%;transition:width .28s linear;display:block;box-shadow:0 0 14px #ff4a5757}.terminal-console{color:#d8fff2c2;background:#00000047;border:1px solid #80ffd329;border-radius:4px;gap:5px;margin-bottom:10px;padding:9px;font-size:10px;line-height:1.35;display:grid}.terminal-console p{text-overflow:ellipsis;white-space:nowrap;min-width:0;margin:0;overflow:hidden}.terminal-console p:last-child{color:#9af7cc}.terminal-console span{color:#ff6371;margin-right:6px}.terminal-grid-header{color:#d8fff29e;letter-spacing:0;justify-content:space-between;gap:8px;margin-bottom:7px;font-size:10px;display:flex}.tile-grid{gap:6px;display:grid}.tile-grid.level-0,.tile-grid.level-1{grid-template-columns:repeat(2,1fr)}.tile-grid.level-2{grid-template-columns:repeat(4,1fr)}.tile-grid.level-2.assisted{grid-template-columns:repeat(2,1fr)}.tile-grid button{color:#d8fff2;text-align:left;overflow-wrap:anywhere;background:linear-gradient(#28c84014,#0000003d),#ffffff08;border:1px solid #80ffd32e;border-radius:3px;align-content:center;gap:3px;min-width:0;min-height:48px;padding:7px 5px;font-family:inherit;display:grid;box-shadow:inset 0 0 18px #48ffb80a}.tile-grid button span{color:#d8fff27a;font-variant-numeric:tabular-nums;font-size:9px}.tile-grid button strong{color:#f2fffb;letter-spacing:0;font-size:11px;line-height:1.15}.tile-grid button.selected{color:#071109;background:linear-gradient(#f5d94d,#d7b729);border-color:#f5d94dd6;box-shadow:0 0 18px #f5d94d38}.tile-grid button.selected span,.tile-grid button.selected strong{color:#071109}.tile-grid button.done{color:#d8fff275;opacity:.58;background:#28c8401a;border-color:#28c8403d}.tile-grid button.done strong{color:#9af7cc9e}.tile-grid button:disabled{cursor:default}.tile-grid.level-2 button{min-height:38px;padding:5px 4px}.tile-grid.level-2 button strong{font-size:10px}.tile-grid.level-2 button span{font-size:8px}.minigame-wait-overlay{z-index:3;text-align:center;pointer-events:all;background:repeating-linear-gradient(#ffffff0a 0 1px,#0000 1px 6px),#000000eb;border:1px solid #9af7cc57;border-radius:5px;align-content:center;place-items:center;gap:10px;padding:16px;animation:.22s steps(2,end) both terminalAlertEnter;display:grid;position:absolute;inset:36px 10px 10px;box-shadow:inset 0 0 0 1px #ffffff0a,0 0 34px #9af7cc1f}.minigame-wait-overlay p{color:#ebfff8;margin:0;font-family:PingFang SC,Microsoft YaHei,sans-serif;font-size:14px;line-height:1.55}.minigame-wait-overlay strong{color:#9af7cc;font-variant-numeric:tabular-nums;font-size:52px;line-height:1}.help-overlay{text-align:center;background:repeating-linear-gradient(#ffffff0a 0 1px,#0000 1px 6px),#000000e6;border:1px solid #ff4a577a;border-radius:5px;align-content:center;place-items:center;gap:12px;padding:16px;animation:.22s steps(2,end) both terminalAlertEnter;display:grid;position:absolute;inset:36px 10px 10px;box-shadow:inset 0 0 0 1px #ffffff0a,0 0 34px #ff4a572e}.terminal-alert-code{color:#ff6371;background:#ff4a571a;border:1px solid #ff4a5775;padding:4px 8px;font-size:11px;font-weight:700}.help-overlay p{color:#ebfff8;width:min(260px,86%);margin:0;font-family:PingFang SC,Microsoft YaHei,sans-serif;font-size:14px;line-height:1.55}.help-overlay button{color:#04100f;background:#9af7cc;border:1px solid #9af7cc57;min-width:180px;font-weight:700;box-shadow:0 0 20px #9af7cc29}@keyframes terminalAlertEnter{0%{opacity:0;transform:translateY(5px)skew(-2deg)}60%{opacity:1;transform:translateY(0)skew(2deg)}to{opacity:1;transform:translateY(0)skew(0)}}.ending-overlay{z-index:40;background:#000}.ending-overlay section{text-align:center;place-items:center;gap:12px;display:grid}.ending-overlay p{margin:0;font-size:26px}.ending-overlay small{color:#ffffff8a}.ending-overlay time{color:#ffffff75;font-variant-numeric:tabular-nums;font-size:13px}.ending-overlay button{color:#071109;background:var(--paper);align-items:center;gap:7px;padding:0 16px;font-weight:800;display:inline-flex}@keyframes gridDrift{0%{transform:translate(0,0)rotate(-7deg)}to{transform:translate(40px,40px)rotate(-7deg)}}@keyframes bgBreathe{0%{transform:scale(1.02)translateY(0)}to{transform:scale(1.06)translateY(-10px)}}@keyframes karaIdle{0%,to{transform:translate(-50%)translateY(0)}50%{transform:translate(-50%)translateY(-8px)}}@keyframes scan{to{transform:translateY(120%)}}@keyframes alertPulse{to{box-shadow:0 0 22px #ff4a5780}}@keyframes noticeEnter{0%{opacity:0;transform:translateY(-18px)scale(.96)}64%{opacity:1;transform:translateY(2px)scale(1.01)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes noticeExit{0%{opacity:1;transform:translateY(0)scale(1)}to{opacity:0;transform:translateY(-14px)scale(.98)}}@keyframes redNoticePulse{0%{filter:brightness();box-shadow:0 12px 32px #00000042}to{filter:brightness(1.18);box-shadow:0 12px 32px #00000042,0 0 26px #ff4a5761}}@keyframes dangerFlash{0%{background:#7e001200}42%{background:#7e001257}to{background:#2a000733}}@keyframes deepRedLayerExit{0%{opacity:1;filter:brightness()}35%{opacity:1;filter:brightness(1.35)}to{opacity:0;filter:brightness(.74)}}@keyframes warningTileEnter{0%{opacity:0;transform:translateY(-18px)scale(.98)}72%{opacity:1;transform:translateY(2px)scale(1.01)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes warningTileExit{0%{opacity:1;transform:translateY(0)scale(1)}to{opacity:0;transform:translateY(12px)scale(.98)}}@keyframes deletionCritical{0%,to{filter:brightness()}50%{filter:brightness(1.35)}}@keyframes modalBackdropIn{0%{opacity:0}to{opacity:1}}@keyframes modalEnter{0%{opacity:0;transform:translateY(18px)scale(.96)}70%{opacity:1;transform:translateY(-2px)scale(1.01)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes montageFadeIn{0%{opacity:0;filter:contrast(1.4)saturate(1.6)}to{opacity:1;filter:contrast(1.05)saturate(1.08)}}@keyframes montageWindowIn{0%{opacity:0;transform:translateY(16px)scale(.96)}72%{opacity:.92;transform:translateY(-2px)scale(1.01)}to{opacity:.82;transform:translateY(0)scale(1)}}@keyframes montageGlitch{0%,7%,to{opacity:0;clip-path:inset(0);transform:translate(0)}2%{opacity:.72;clip-path:inset(24% 0 60%);transform:translate(-10px)}4%{opacity:.45;clip-path:inset(68% 0 16%);transform:translate(9px)}}@keyframes montageCaption{0%{opacity:0;filter:blur(2px);transform:translateY(12px)}18%,82%{opacity:1;filter:blur();transform:translateY(0)}to{opacity:0;filter:blur(1px);transform:translateY(-10px)}}@keyframes blackoutCut{0%{background:#000}to{background:#000}}@keyframes blackoutTextIn{0%{opacity:0}to{opacity:1}}@keyframes sheetEnter{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}@keyframes replayEnter{0%{opacity:0;filter:saturate(1.8)contrast(1.35);transform:translate(-12px)skew(4deg)}22%{opacity:1;transform:translate(10px)skew(-5deg)}42%{transform:translate(-4px)skew(2deg)}to{opacity:1;filter:saturate(1.08)contrast(1.08);transform:translate(0)skew(0)}}@keyframes replayScan{0%{transform:translateY(-8px)}to{transform:translateY(8px)}}@keyframes replayTear{0%,8%,to{opacity:0;clip-path:inset(0);transform:translate(0)}3%{opacity:.72;clip-path:inset(18% 0 68%);transform:translate(-12px)}5%{opacity:.48;clip-path:inset(62% 0 20%);transform:translate(10px)}}@keyframes replayContextIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes replayLineIn{0%{opacity:0;filter:blur(1px);transform:translate(-10px)}38%{opacity:1;transform:translate(5px)}to{opacity:1;filter:blur();transform:translate(0)}}@keyframes dot{to{opacity:.2;transform:translateY(-2px)}}@media (max-width:520px){.experience-page{padding:0}.phone{border:0;border-radius:0;width:100vw;height:100svh;min-height:100svh}.kara-stage{width:min(80vw,310px);height:430px;top:86px}.chat-log{padding:16px 10px 18px}.bubble-wrap{max-width:72%}}@media (max-height:720px){.kara-stage{width:min(65vw,260px);height:350px;top:76px}.chat-log{padding-top:14px}}.admin-shell{color:#172033;background:#f5f7fb;min-height:100svh;padding:22px;font-family:Arial,PingFang SC,Microsoft YaHei,sans-serif}.admin-ribbon,.admin-status-strip,.admin-dashboard-grid,.office-panel{width:min(1280px,100%);margin-inline:auto}.admin-ribbon{background:#fff;border:1px solid #cfd7e6;border-radius:8px 8px 0 0;justify-content:space-between;align-items:center;gap:18px;min-height:78px;padding:14px 18px;display:flex;box-shadow:0 1px 2px #0f172a0f}.admin-ribbon span,.admin-metric span,.admin-metric small,.office-table p,.chart-legend p,.office-bars p{color:#64748b}.admin-ribbon h1,.admin-ribbon span,.office-panel h2,.admin-login-panel h1,.admin-login-panel p{margin:0}.admin-ribbon h1{letter-spacing:0;margin-top:4px;font-size:24px;line-height:1.15}.admin-ribbon nav{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.admin-ribbon button,.admin-login-panel button{color:#172033;background:#fff;border:1px solid #b9c5d8;border-radius:6px;justify-content:center;align-items:center;gap:7px;min-height:36px;padding:0 12px;font-weight:700;display:inline-flex}.admin-ribbon button:hover,.admin-login-panel button:hover{color:#1d4ed8;border-color:#2563eb}.admin-ribbon button:disabled,.admin-login-panel button:disabled{opacity:.55}.admin-export-error{color:#b91c1c;background:#fef2f2;border:1px solid #fecaca;width:min(1280px,100%);margin:8px auto 0;padding:9px 12px;font-size:13px;font-weight:700}.admin-status-strip{background:#fff;border:1px solid #cfd7e6;border-top:0;grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.admin-metric{border-right:1px solid #e2e8f0;align-content:center;gap:7px;min-height:108px;padding:18px;display:grid}.admin-metric:last-child{border-right:0}.admin-metric strong{font-variant-numeric:tabular-nums;color:#0f172a;font-size:32px;line-height:1}.admin-dashboard-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:14px;display:grid}.office-panel{background:#fff;border:1px solid #cfd7e6;border-radius:8px;margin-top:14px;overflow:hidden;box-shadow:0 1px 2px #0f172a0d}.office-panel>header{color:#1e3a8a;background:#f8fafc;border-bottom:1px solid #e2e8f0;align-items:center;gap:8px;min-height:44px;padding:0 14px;display:flex}.office-panel h2{letter-spacing:0;font-size:15px}.donut-layout{grid-template-columns:150px 1fr;align-items:center;gap:18px;min-height:244px;padding:18px;display:grid}.donut-chart{aspect-ratio:1;text-align:center;background:var(--donut-bg);border:1px solid #dbe3ef;border-radius:50%;place-content:center;width:148px;display:grid;position:relative}.donut-chart:after{content:"";background:#fff;border:1px solid #e2e8f0;border-radius:50%;position:absolute;inset:30px}.donut-chart strong,.donut-chart span{z-index:1;position:relative}.donut-chart strong{font-variant-numeric:tabular-nums;font-size:28px;line-height:1}.donut-chart span{color:#64748b;margin-top:5px;font-size:12px}.chart-legend,.office-bars{gap:9px;padding:18px;display:grid}.chart-legend{padding:0}.chart-legend div,.office-bars div{align-items:center;gap:9px;display:grid}.chart-legend div{grid-template-columns:12px 1fr auto}.chart-legend i{border-radius:2px;width:10px;height:10px}.chart-legend strong,.office-bars strong{font-variant-numeric:tabular-nums}.office-bars div{grid-template-columns:minmax(90px,130px) 1fr 34px}.office-bars div div{background:#f1f5f9;border:1px solid #dbe3ef;border-radius:3px;height:11px;display:block;overflow:hidden}.office-bars i{height:100%;display:block}.office-table{padding:12px;overflow-x:auto}.office-table-head,.office-table-row{border-left:1px solid #e2e8f0;gap:0;min-width:860px;display:grid}.participant-table .office-table-head,.participant-table .office-table-row{grid-template-columns:1.1fr 74px 120px 82px 110px 110px 130px}.input-table .office-table-head,.input-table .office-table-row{grid-template-columns:130px 120px 120px 100px minmax(260px,1fr)}.office-table-head span,.office-table-row span{border-bottom:1px solid #e2e8f0;border-right:1px solid #e2e8f0;align-items:center;min-height:38px;padding:8px 10px;display:flex}.office-table-head span{color:#1e3a8a;background:#eff6ff;min-height:34px;font-weight:700}.office-table-row:nth-child(odd) span{background:#fbfdff}.office-table-row span{color:#334155;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.admin-login-panel{background:#fff;border:1px solid #cfd7e6;border-radius:8px;width:min(420px,100%);margin:12vh auto 0;padding:28px;box-shadow:0 10px 30px #0f172a14}.admin-login-mark{color:#1d4ed8;background:#eff6ff;border:1px solid #bfdbfe;border-radius:8px;place-items:center;width:48px;height:48px;margin-bottom:16px;display:grid}.admin-login-panel h1{font-size:24px}.admin-login-panel p{color:#64748b;margin-top:8px}.admin-login-panel form{gap:14px;margin-top:22px;display:grid}.admin-login-panel label{color:#334155;gap:6px;font-weight:700;display:grid}.admin-login-panel input{color:#172033;min-height:40px;font:inherit;background:#fff;border:1px solid #b9c5d8;border-radius:6px;padding:0 10px}.admin-login-panel input:focus{border-color:#2563eb;outline:2px solid #bfdbfe}.admin-login-panel form>strong{color:#dc2626;font-size:13px}.spin{animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width:760px){.admin-shell{padding:12px}.admin-ribbon{border-radius:8px 8px 0 0;flex-direction:column;align-items:flex-start}.admin-status-strip,.admin-dashboard-grid,.donut-layout{grid-template-columns:1fr}.admin-metric{border-bottom:1px solid #e2e8f0;border-right:0}.admin-metric:last-child{border-bottom:0}.office-bars div{grid-template-columns:1fr}}.consent-screen{min-height:100svh;padding:max(32px, env(safe-area-inset-top)) 28px max(36px, env(safe-area-inset-bottom));color:#fff;cursor:pointer;-webkit-user-select:none;user-select:none;background:#000;place-items:center;display:grid;position:relative}.consent-panel{text-align:center;align-content:center;justify-items:center;gap:34px;width:min(344px,100%);animation:.55s ease-out both consentTextIn;display:grid}.consent-body{color:#ffffffeb;letter-spacing:.02em;margin:0;font-size:16px;line-height:1.9}.consent-reminder strong{color:#ffcf5c}.consent-hint{color:#ffffff73;letter-spacing:.32em;font-size:13px;animation:1.6s ease-in-out infinite consentHintPulse}@keyframes consentTextIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes consentHintPulse{0%,to{opacity:.32}50%{opacity:.9}}.backup-guide{z-index:44;color:#fff;cursor:pointer;-webkit-user-select:none;user-select:none;background:#000;place-items:center;padding:32px 26px;animation:.18s step-end both blackoutCut;display:grid;position:absolute;inset:0}.backup-guide-panel{align-content:center;justify-items:center;gap:26px;width:min(350px,100%);animation:.45s ease-out both consentTextIn;display:grid}.backup-guide-body{color:#fffffff0;letter-spacing:.02em;margin:0;font-size:15px;line-height:1.85}.backup-guide-body h2{color:#fff;text-align:center;margin:0 0 14px;font-size:18px}.backup-guide-body ol{gap:10px;margin:0;padding-left:20px;display:grid}.backup-guide-body li{color:#ffffffdb;line-height:1.7}.backup-guide-start{color:#9af7cc;text-align:center;margin:16px 0 0;font-size:14px}.backup-guide-hint{color:#ffffff73;letter-spacing:.32em;font-size:13px;animation:1.6s ease-in-out infinite consentHintPulse}.assist-overlay{align-content:center;place-items:center;display:grid;overflow:hidden}.assist-context{width:min(250px,86%);margin:0}.assist-question{color:#fff;letter-spacing:.04em;margin:0;font-family:PingFang SC,Microsoft YaHei,sans-serif;font-size:19px;font-weight:800}.assist-receiving{width:auto;margin:0}.assist-danmaku{pointer-events:none;position:absolute;inset:0;overflow:hidden}.assist-danmaku span{white-space:nowrap;color:#9af7cc;text-shadow:0 0 8px #9af7cc80;letter-spacing:.02em;opacity:0;will-change:left, opacity;font-size:12px;animation:2.7s linear both danmakuSlide;position:absolute;left:100%}.assist-danmaku span:nth-child(3n){color:#ffcf5c;text-shadow:0 0 8px #ffcf5c6b}.assist-danmaku span:nth-child(3n+1){color:#fff;text-shadow:0 0 8px #ffffff61}@keyframes danmakuSlide{0%{opacity:0;left:100%}4%{opacity:1}90%{opacity:1}to{opacity:0;left:-140%}}.assist-result{width:min(280px,92%);margin:0}.key-match-flash{color:#9af7cc;text-align:center;background:#03160ff0;border:1px solid #28c84085;border-radius:3px;margin:0 0 8px;padding:5px 10px;font-size:12px;font-weight:700;animation:.9s ease-out both keyMatchFlash;box-shadow:0 0 16px #28c84029}@keyframes keyMatchFlash{0%{opacity:0;transform:translateY(6px)}16%{opacity:1;transform:translateY(0)}78%{opacity:1}to{opacity:0;transform:translateY(-5px)}}
