*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Noto Sans SC,sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overscroll-behavior:none;background:#0e1014}#root{position:relative;overflow:hidden;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}html,body,#root{touch-action:pan-y}button{font:inherit;-webkit-tap-highlight-color:transparent}.app-shell{--ink: #f3efe7;--ink-soft: #c9c2b4;--ink-mute: #948d7e;--veil: .62;--surface: rgba(16, 18, 23, var(--veil));--surface-strong: rgba(16, 18, 23, .72);--surface-raised: rgba(24, 26, 32, .82);--surface-glass: rgba(22, 24, 29, .55);--line: rgba(243, 239, 231, .14);--line-soft: rgba(243, 239, 231, .08);--accent: #e8b04b;--accent-ink: #211503;--accent-soft: rgba(232, 176, 75, .16);--danger: #e0654f;--ok: #5cb88a;--name-hue-lightness: 72%;--name-hue-saturation: 62%;--shadow: rgba(0, 0, 0, .45);--row-hover: rgba(255, 255, 255, .05);--backdrop: rgba(8, 9, 12, .55)}.app-shell.theme-warm{--ink: #2a1c12;--ink-soft: #5c4634;--ink-mute: #8a7455;--surface: rgba(246, 231, 200, var(--veil));--surface-strong: rgba(246, 231, 200, .8);--surface-raised: rgba(252, 243, 220, .92);--surface-glass: rgba(252, 245, 224, .62);--line: rgba(61, 36, 18, .18);--line-soft: rgba(61, 36, 18, .1);--accent: #c45c26;--accent-ink: #fff6e8;--accent-soft: rgba(196, 92, 38, .14);--danger: #b8442c;--ok: #3d7a5a;--name-hue-lightness: 36%;--name-hue-saturation: 62%;--shadow: rgba(61, 36, 18, .35);--row-hover: rgba(61, 36, 18, .06);--backdrop: rgba(42, 28, 18, .45)}.app-shell{position:fixed;inset:0;color:var(--ink)}.bg-stage{position:absolute;inset:0;overflow:hidden;background:radial-gradient(120% 90% at 20% 10%,#23283a 0%,transparent 55%),radial-gradient(120% 100% at 85% 90%,#3a2a24 0%,transparent 60%),linear-gradient(180deg,#101218,#171a21 60%,#0e1014)}.app-shell.theme-warm .bg-stage{background:radial-gradient(120% 90% at 20% 10%,#f9eccd 0%,transparent 55%),radial-gradient(120% 100% at 85% 90%,#f3ddba 0%,transparent 60%),linear-gradient(180deg,#f6e7c8,#efe0bd 60%,#e9d6ac)}.bg-edge{position:absolute;inset:0;filter:blur(48px) saturate(1.1);transform:scale(1.15);z-index:0;opacity:.9}.bg-layer{position:absolute;inset:0;background-size:contain;background-position:center;background-repeat:no-repeat;opacity:0;transition:opacity 1.1s ease;transform:none}.bg-layer.is-live{opacity:1}.bg-blur{position:absolute;inset:0;backdrop-filter:blur(0px);-webkit-backdrop-filter:blur(0px);transition:backdrop-filter .7s cubic-bezier(.3,.7,.3,1);pointer-events:none}.app-shell.is-chat-open .bg-blur{backdrop-filter:blur(26px) saturate(1.15);-webkit-backdrop-filter:blur(26px) saturate(1.15)}.bg-scrim{position:absolute;inset:0;background:#08090c00;transition:background .7s ease;pointer-events:none}.app-shell.is-chat-open .bg-scrim{background:#08090c47}.app-shell.theme-warm.is-chat-open .bg-scrim{background:#2a1c1229}.top-bar{position:absolute;top:max(14px,env(safe-area-inset-top));left:max(14px,env(safe-area-inset-left));z-index:40;display:flex;flex-direction:column;align-items:center;gap:8px}.top-bar,.settings-bar{transition:opacity .35s ease,visibility .35s ease}.app-shell:not(.is-chat-open) .top-bar,.app-shell:not(.is-chat-open) .settings-bar{opacity:0;visibility:hidden;pointer-events:none}.top-avatar-btn{position:relative;width:44px;height:44px;padding:0;border:none;border-radius:50%;background:none;cursor:pointer;transition:transform .15s ease}.top-avatar-btn:before{content:"";position:absolute;inset:0;border-radius:50%;padding:0;background:conic-gradient(from -90deg,#f6c453,#ff7a59,#a855f7,#3b82f6,#f6c453);box-shadow:0 3px 10px var(--shadow);-webkit-mask:conic-gradient(from calc(0deg - var(--avatar-progress, 1) * 360deg),#000 0deg,#000 calc(var(--avatar-progress, 1) * 360deg),transparent calc(var(--avatar-progress, 1) * 360deg)),radial-gradient(circle,transparent 20px,#000 22px);-webkit-mask-composite:source-in;mask:conic-gradient(from calc(0deg - var(--avatar-progress, 1) * 360deg),#000 0deg,#000 calc(var(--avatar-progress, 1) * 360deg),transparent calc(var(--avatar-progress, 1) * 360deg)),radial-gradient(circle,transparent 20px,#000 22px);mask-composite:intersect;pointer-events:none;transition:none}.top-avatar-btn.is-critical:before{animation:avatar-critical 1.4s ease-in-out infinite}@keyframes avatar-critical{0%,to{opacity:1;transform:scale(1)}50%{opacity:.45;transform:scale(1.04)}}.top-avatar-btn.is-critical{animation:avatar-critical-wrap 1.4s ease-in-out infinite}@keyframes avatar-critical-wrap{0%,to{transform:scale(1)}50%{transform:scale(1.03)}}.top-avatar-countdown{position:absolute;left:52px;top:50%;transform:translateY(-50%);font-size:12px;font-weight:800;color:var(--ink);background:var(--surface-raised);border:1px solid var(--line);border-radius:999px;padding:2px 8px;box-shadow:0 2px 8px var(--shadow);white-space:nowrap}.chat-top-avatar-wrap{display:none}@media(min-width:821px){.chat-top-avatar-wrap{display:flex;justify-content:center;padding:10px 0 6px;flex-shrink:0}}.chat-top-avatar{position:relative;display:inline-flex;align-items:center;justify-content:center}.chat-top-avatar-btn{position:relative;width:60px;height:60px;padding:0;border:none;border-radius:50%;background:none;cursor:pointer;transition:transform .15s ease}.chat-top-avatar-btn:before{content:"";position:absolute;inset:-2px;border-radius:50%;background:conic-gradient(from -90deg,#f6c453,#ff7a59,#a855f7,#3b82f6,#f6c453);box-shadow:none;-webkit-mask:conic-gradient(from calc(0deg - var(--avatar-progress, 1) * 360deg),#000 0deg,#000 calc(var(--avatar-progress, 1) * 360deg),transparent calc(var(--avatar-progress, 1) * 360deg)),radial-gradient(circle,transparent 28px,#000 30px,transparent 32px);-webkit-mask-composite:source-in;mask:conic-gradient(from calc(0deg - var(--avatar-progress, 1) * 360deg),#000 0deg,#000 calc(var(--avatar-progress, 1) * 360deg),transparent calc(var(--avatar-progress, 1) * 360deg)),radial-gradient(circle,transparent 28px,#000 30px,transparent 32px);mask-composite:intersect;pointer-events:none;animation:chat-top-avatar-breathe 2.4s ease-in-out infinite}@keyframes chat-top-avatar-breathe{0%,to{opacity:.35}50%{opacity:1}}.chat-top-avatar-btn.is-critical:before{animation:chat-top-avatar-breathe 1.2s ease-in-out infinite}.chat-top-avatar-btn:hover{transform:scale(1.06)}.chat-top-avatar-img{width:100%;height:100%;border-radius:50%;object-fit:cover;display:block;border:2px solid rgba(14,16,20,.55);-webkit-user-select:none;user-select:none;box-sizing:border-box}.chat-top-avatar-countdown{position:absolute;left:67px;top:50%;transform:translateY(-50%);font-size:12px;font-weight:800;color:var(--ink);background:var(--surface-raised);border:1px solid var(--line);border-radius:999px;padding:2px 8px;box-shadow:0 2px 8px var(--shadow);white-space:nowrap}.chat-top-avatar-countdown.is-critical{animation:countdown-pulse 2s ease-in-out infinite}@media(min-width:821px){.top-bar{display:none}}.chat-top-avatar-wrap{position:absolute;top:8px;left:50%;transform:translate(-50%);z-index:5;display:none;pointer-events:auto}@media(min-width:821px){.chat-top-avatar-wrap{display:block}}.chat-top-avatar-btn{width:60px;height:60px;position:relative}.chat-top-avatar-img{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:52px;height:52px;border-radius:50%;object-fit:cover;display:block;border:0;-webkit-user-select:none;user-select:none;box-sizing:border-box}.chat-top-avatar .account-pop{left:50%;top:calc(100% + 10px);transform:translate(-50%);transform-origin:top center}.top-avatar-btn:hover{transform:scale(1.06)}.top-avatar-img{width:100%;height:100%;border-radius:50%;object-fit:cover;display:block;border:2px solid rgba(14,16,20,.55);-webkit-user-select:none;user-select:none}.online-pop{position:absolute;left:max(64px,calc(env(safe-area-inset-left) + 64px));top:max(14px,env(safe-area-inset-top));z-index:60;width:min(272px,calc(100vw - 84px));max-height:min(420px,62dvh);display:flex;flex-direction:column;border-radius:18px;border:1px solid var(--line);background:var(--surface-raised);backdrop-filter:blur(20px) saturate(1.2);-webkit-backdrop-filter:blur(20px) saturate(1.2);box-shadow:0 16px 44px var(--shadow);animation:popover-rise .22s cubic-bezier(.2,.9,.3,1.15) both;transform-origin:top left;overflow:hidden}.online-pop-head{padding:13px 16px 9px;font-size:11.5px;font-weight:800;letter-spacing:.05em;color:var(--ink-mute);border-bottom:1px solid var(--line-soft)}.online-pop-list{list-style:none;margin:0;padding:8px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--line) transparent}.online-pop-row{display:flex;align-items:center;gap:10px;padding:8px 9px;border-radius:12px}.online-pop-row:hover{background:var(--row-hover)}.online-pop-avatar{width:28px;height:28px;flex-shrink:0;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;color:#241809;border:1.5px solid var(--line);overflow:hidden}.online-pop-name{flex:1;min-width:0;font-size:13px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.online-pop-empty{padding:18px 12px;text-align:center;font-size:12px;color:var(--ink-mute)}.chat-stage{position:absolute;inset:0;display:flex;justify-content:center;z-index:20;cursor:pointer}.chat-stage.is-hidden{pointer-events:none}.chat-column{cursor:default}.chat-reopen-veil{position:absolute;inset:0;z-index:15;cursor:pointer}.chat-column{position:relative;display:flex;flex-direction:column;width:50%;max-width:50vw;height:100%;transform-origin:6% 96%}@media(max-width:820px){.chat-column{width:100%;max-width:100vw}.top-bar{left:50%;top:max(10px,env(safe-area-inset-top));transform:translate(-50%)}.top-avatar-btn{width:60px;height:60px}.top-avatar-btn:before{-webkit-mask:conic-gradient(from calc(0deg - var(--avatar-progress, 1) * 360deg),#000 0deg,#000 calc(var(--avatar-progress, 1) * 360deg),transparent calc(var(--avatar-progress, 1) * 360deg)),radial-gradient(circle,transparent 26px,#000 28px,transparent 30px);-webkit-mask-composite:source-in;mask:conic-gradient(from calc(0deg - var(--avatar-progress, 1) * 360deg),#000 0deg,#000 calc(var(--avatar-progress, 1) * 360deg),transparent calc(var(--avatar-progress, 1) * 360deg)),radial-gradient(circle,transparent 26px,#000 28px,transparent 30px);mask-composite:intersect}.top-avatar-img{position:absolute;top:5.5px;left:5.5px;width:49px;height:49px;box-sizing:border-box;border:0}.top-avatar-countdown{left:67px}}@media(orientation:landscape)and (pointer:coarse){.chat-column{width:60vw;max-width:60vw}.top-bar{left:max(20px,env(safe-area-inset-left));transform:none}}.chat-column.is-folded{animation:fold-away .5s cubic-bezier(.5,0,.75,.2) forwards;pointer-events:none}.chat-column.is-folded.is-settled{animation:none;opacity:0;transform:translate(-46vw,34vh) scale(.06) rotate(-8deg);filter:blur(4px)}.chat-column.is-unfolding{animation:fold-back .52s cubic-bezier(.2,.7,.25,1.05) both}@keyframes fold-away{0%{opacity:1;transform:translate(0) scale(1) rotate(0);filter:blur(0)}to{opacity:0;transform:translate(-46vw,34vh) scale(.06) rotate(-8deg);filter:blur(4px)}}@keyframes fold-back{0%{opacity:0;transform:translate(-46vw,34vh) scale(.06) rotate(-8deg);filter:blur(4px)}70%{filter:blur(0)}to{opacity:1;transform:translate(0) scale(1) rotate(0);filter:blur(0)}}.chat-reopen-hint{position:absolute;left:max(16px,env(safe-area-inset-left));bottom:max(16px,env(safe-area-inset-bottom));z-index:30;display:flex;align-items:center;gap:8px;height:40px;padding:0 16px;border-radius:999px;border:1px solid var(--line);background:var(--surface-glass);color:var(--ink-soft);font-size:13px;font-weight:600;backdrop-filter:blur(12px) saturate(1.2);-webkit-backdrop-filter:blur(12px) saturate(1.2);box-shadow:0 8px 24px var(--shadow);cursor:pointer;animation:hint-rise .45s .25s ease both}.chat-reopen-hint svg{color:var(--accent)}@keyframes hint-rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.chat-log-wrap{position:relative;flex:1;min-height:0;display:flex;flex-direction:column;padding:26px 0 96px}.chat-column:has(.composer-reply-preview) .chat-log-wrap{padding-bottom:146px}.chat-column:has(.composer.is-multiline) .chat-log-wrap{padding-bottom:160px}.chat-column:has(.composer.is-multiline):has(.composer-reply-preview) .chat-log-wrap{padding-bottom:216px}.chat-list-backdrop{position:absolute;inset:0;z-index:0;border-radius:0;background:var(--surface);border:1px solid var(--line-soft);backdrop-filter:blur(14px) saturate(1.1);-webkit-backdrop-filter:blur(14px) saturate(1.1)}.chat-log{position:relative;z-index:1;flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;padding:26px 18px 10px;display:flex;flex-direction:column;gap:2px;scrollbar-width:none}.chat-log::-webkit-scrollbar{width:0;height:0}.chat-log>*{flex-shrink:0}.chat-log:before{content:"";margin-top:auto}.chat-log{-webkit-mask-image:linear-gradient(180deg,transparent 0%,rgba(0,0,0,.28) 3.5%,rgba(0,0,0,.85) 8%,#000 14%,#000 100%);mask-image:linear-gradient(180deg,transparent 0%,rgba(0,0,0,.28) 3.5%,rgba(0,0,0,.85) 8%,#000 14%,#000 100%)}.chat-empty{margin:0 auto;width:min(100%,560px);max-width:560px;box-sizing:border-box;padding:30px 8px 18px;text-align:center;font-size:clamp(11px,3.8vw,13.5px);line-height:1.8;color:var(--ink-mute)}.chat-empty-logo{display:flex;justify-content:center;margin-bottom:10px}.chat-empty p{margin:0;white-space:nowrap}.chat-empty strong{display:block;margin-bottom:6px;font-size:clamp(12px,4.2vw,15px);color:var(--ink-soft);white-space:nowrap}.chat-empty-line{display:block;white-space:nowrap}.chat-loading-older{padding:8px 0 12px;text-align:center;font-size:12px;color:var(--ink-mute)}.chat-top-hint{padding:5px 0 12px;color:var(--ink-mute);font-size:11px;line-height:1.4;text-align:left;-webkit-user-select:none;user-select:none}.msg-row{position:relative;display:grid;grid-template-columns:37px minmax(0,1fr);gap:0 10px;padding:4px 10px;margin-bottom:3px;border-radius:10px;transition:background .12s ease}.msg-row:hover{background:var(--row-hover)}.msg-row.is-pending .msg-body{opacity:.55}.msg-row.is-failed .msg-body{color:var(--danger)}.msg-row.is-expiring{overflow:hidden;max-height:640px;animation:msg-dissolve 1s cubic-bezier(.4,0,.4,1) forwards;pointer-events:none}@keyframes msg-dissolve{0%{opacity:1;filter:blur(0);transform:translateY(0) scale(1);max-height:640px}55%,99%{opacity:0;filter:blur(7px);transform:translateY(-10px) scale(.96);max-height:640px}to{opacity:0;filter:blur(7px);transform:translateY(-10px) scale(.96);max-height:0;margin:-2px;padding-top:0;padding-bottom:0}}.msg-gutter{display:flex;justify-content:center;align-items:flex-start;padding-top:0}.msg-author-avatar-trigger{appearance:none;border:0;margin:0;padding:0;background:transparent;color:inherit;font:inherit;cursor:pointer}.msg-author-avatar-trigger{display:block;border-radius:50%}.msg-author-avatar-trigger:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.msg-avatar{width:35px;height:35px;border-radius:50%;object-fit:cover;border:1.5px solid var(--line);flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:800;color:#241809;overflow:hidden}.msg-avatar-img{flex-shrink:0;border-radius:50%;border:1.5px solid var(--line)}.msg-main{min-width:0;min-inline-size:0;overflow-wrap:anywhere}.msg-head{position:relative;display:flex;align-items:center;gap:8px;min-width:0}.author-pop-portal{position:fixed;z-index:100}.author-pop-portal .account-pop{position:static;width:min(272px,calc(100vw - 24px));translate:none;text-align:left;background:#181a20;backdrop-filter:blur(12px) saturate(1.1);-webkit-backdrop-filter:blur(12px) saturate(1.1)}.app-shell.theme-warm .author-pop-portal .account-pop{background:#fcf3dc}.msg-name{font-size:13.5px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:none;border:none;padding:0;cursor:pointer;font-family:inherit;text-align:left}.msg-name:hover{text-decoration:underline;text-underline-offset:2px}.msg-dot{width:3px;height:3px;border-radius:50%;background:var(--ink-mute);opacity:.75;flex-shrink:0}.msg-body{font-size:14.5px;line-height:1.55;color:var(--ink);white-space:pre-wrap;word-break:break-word;overflow-wrap:anywhere}.msg-edited{margin-left:6px;font-size:11px;color:var(--ink-mute);font-style:italic;-webkit-user-select:none;user-select:none}.msg-emoji{font-size:calc(1.2em + 2px);line-height:1}.msg-emoji-single{display:inline-block;font-size:37px;line-height:1}.msg-reply-quote{max-width:100%;width:100%;display:flex;flex-direction:column;gap:2px;margin:5px 0 4px;padding:5px 9px;border:0;border-left:2px solid var(--accent);border-radius:0 8px 8px 0;background:var(--row-hover);color:inherit;appearance:none;font:inherit;text-align:left;cursor:pointer;font-size:11.5px;line-height:1.4}.msg-reply-name{color:var(--accent);font-weight:750}.msg-reply-content{display:-webkit-box;overflow:hidden;color:var(--ink-soft);overflow-wrap:anywhere;-webkit-box-orient:vertical;-webkit-line-clamp:1}.msg-reply-quote:disabled{cursor:default}.msg-row.is-reply-target .msg-main{animation:reply-target-flash 1.5s ease;border-radius:10px}@keyframes reply-target-flash{0%,to{background:transparent}25%,65%{background:var(--accent-soft)}}.msg-body .msg-state{margin-left:6px;font-size:11px;opacity:.7}.msg-image{display:block;max-width:min(320px,100%);max-height:320px;border-radius:14px;border:1px solid var(--line-soft);object-fit:cover;cursor:zoom-in;margin-top:4px;transition:transform .15s ease,box-shadow .15s ease;-webkit-touch-callout:none}.msg-image:hover{transform:scale(1.012);box-shadow:0 8px 24px var(--shadow)}.msg-image:active,.msg-image:focus,.msg-image:focus-visible{transform:none;box-shadow:none;outline:none}@media(hover:none),(pointer:coarse){.msg-image,.msg-image:hover,.msg-image:active,.msg-image:focus,.msg-image:focus-visible{transition:none;transform:none;box-shadow:none;outline:none;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;touch-action:manipulation}}.msg-image-pending{filter:saturate(.8);opacity:.85}.msg-youtube-list{display:flex;flex-direction:column;gap:6px;margin-top:6px;max-width:min(420px,100%)}.msg-media-inview{width:100%}.msg-media-inview-video{aspect-ratio:16 / 9}.msg-media-inview-spotify{height:152px}.msg-youtube{border:0;border-radius:0;box-shadow:none;overflow:visible;background:transparent}.msg-youtube-frame{position:relative;width:100%;aspect-ratio:16 / 9;background:#000}.msg-youtube-frame,.msg-audio-frame,.msg-spotify-shell,.msg-media-audio:has(audio){position:relative}.media-loading-skeleton{position:absolute;z-index:2;inset:0;overflow:hidden;border-radius:12px;background:linear-gradient(100deg,#252525 25%,#383838 38%,#252525 60%);background-size:200% 100%;animation:media-skeleton-shimmer 1.4s ease-in-out infinite;pointer-events:none}.msg-youtube-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0;box-shadow:none}.msg-media-audio audio{display:block;width:100%;min-height:42px}.msg-audio-frame{position:relative;width:100%;min-height:166px}.msg-audio-frame iframe{position:absolute;inset:0;width:100%;height:100%;min-height:166px;border:0}.msg-spotify-shell{position:relative;width:100%;height:152px;overflow:hidden;margin:0;padding:0;line-height:0}.msg-spotify-frame,.msg-spotify-frame iframe{display:block;width:100%;height:152px!important;min-height:0;margin:0;padding:0;border:0;box-shadow:none;vertical-align:top}@keyframes media-skeleton-shimmer{to{background-position-x:-200%}}@media(prefers-reduced-motion:reduce){.media-loading-skeleton{animation:none}}.msg-youtube-placeholder{position:absolute;inset:0;background:linear-gradient(135deg,#1a1d26,#0e1014)}.msg-youtube-link{display:block;padding:4px 10px;font-size:11px;color:var(--ink-mute);text-decoration:none;background:var(--row-hover, rgba(255, 255, 255, .04))}.msg-youtube-link:hover{color:var(--accent)}.msg-countdown{display:inline-flex;align-items:center;gap:4px;flex-shrink:0}.msg-countdown-text{font-size:10px;color:var(--ink-mute);font-variant-numeric:tabular-nums;letter-spacing:.02em}.msg-countdown.is-late{color:var(--accent)}.msg-countdown.is-final{color:var(--danger)}.countdown-visual{display:block}.msg-countdown.is-final .countdown-visual{animation:countdown-pulse 1.6s ease-in-out infinite}@keyframes countdown-pulse{0%,to{opacity:1}50%{opacity:.35}}.chat-close{position:absolute;top:max(14px,env(safe-area-inset-top));right:max(16px,env(safe-area-inset-right));z-index:45;width:32px;height:32px;display:grid;place-items:center;border-radius:50%;border:1px solid var(--line);background:var(--surface-raised);color:var(--ink-soft);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);cursor:pointer;box-shadow:0 4px 14px var(--shadow);transition:transform .16s ease,background .16s ease,color .16s ease,opacity .25s ease}.chat-close:hover{color:var(--ink);background:var(--surface-strong);transform:rotate(90deg)}.chat-close:active{transform:scale(.92)}.chat-close.is-fading{opacity:0;transform:scale(.7);pointer-events:none}.music-toggle{position:absolute;top:calc(max(14px,env(safe-area-inset-top)) + 40px);right:max(16px,env(safe-area-inset-right));z-index:45;width:32px;height:32px;display:grid;place-items:center;border-radius:50%;border:1px solid var(--line);background:var(--surface-raised);color:var(--ink-soft);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);cursor:pointer;box-shadow:0 4px 14px var(--shadow);transition:transform .16s ease,background .16s ease,color .16s ease}.music-toggle:hover{color:var(--ink);background:var(--surface-strong)}.music-toggle:active{transform:scale(.92)}.music-bars{display:flex;align-items:flex-end;gap:2px;height:14px;width:14px}.music-bars span{display:block;width:2.5px;border-radius:1.5px;background:currentColor;transition:height .2s ease}.music-bars span:nth-child(1){height:6px}.music-bars span:nth-child(2){height:11px}.music-bars span:nth-child(3){height:5px}.music-bars span:nth-child(4){height:9px}.music-bars.is-playing span{animation:music-bar-bounce .9s ease-in-out infinite}.music-bars.is-playing span:nth-child(1){animation-delay:0s}.music-bars.is-playing span:nth-child(2){animation-delay:.15s}.music-bars.is-playing span:nth-child(3){animation-delay:.3s}.music-bars.is-playing span:nth-child(4){animation-delay:.45s}@keyframes music-bar-bounce{0%,to{height:4px}50%{height:13px}}@media(prefers-reduced-motion:reduce){.music-bars.is-playing span{animation:none;height:9px}}.chat-jump{position:absolute;bottom:104px;right:18px;z-index:10;width:34px;height:34px;display:grid;place-items:center;border-radius:50%;border:1px solid var(--line);background:var(--surface-raised);color:var(--ink-soft);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);cursor:pointer;box-shadow:0 4px 16px var(--shadow);transition:transform .15s ease,color .15s ease;animation:hint-rise .2s ease both}.chat-jump:hover{color:var(--ink);transform:translateY(-2px)}.chat-jump-count{position:absolute;top:-6px;right:-6px;min-width:18px;height:18px;display:grid;place-items:center;padding:0 4px;border:1px solid var(--surface-raised);border-radius:999px;background:var(--accent);color:var(--accent-ink);font-size:9px;font-weight:850;line-height:1;box-shadow:0 3px 9px var(--shadow)}.bg-corner{position:absolute;right:max(10px,env(safe-area-inset-right));bottom:max(10px,env(safe-area-inset-bottom));z-index:20;display:flex;align-items:center;gap:8px;animation:hint-rise .45s .3s ease both}.bg-slot-ring{position:relative;width:30px;height:30px;display:grid;place-items:center;padding:0;border-radius:50%;border:1px solid var(--line);background:var(--surface-glass);color:var(--ink-soft);backdrop-filter:blur(12px) saturate(1.2);-webkit-backdrop-filter:blur(12px) saturate(1.2);box-shadow:0 4px 12px var(--shadow);cursor:pointer;transition:color .15s ease,transform .15s ease}.bg-slot-ring:hover{color:var(--accent)}.bg-tip{position:absolute;bottom:calc(100% + 8px);right:0;white-space:nowrap;padding:3px 8px;border-radius:999px;border:1px solid var(--line);background:var(--surface-glass);color:var(--ink);font-size:10px;font-weight:700;box-shadow:0 8px 22px var(--shadow);opacity:1;visibility:visible;pointer-events:none;backdrop-filter:blur(8px) saturate(1.1);-webkit-backdrop-filter:blur(8px) saturate(1.1)}.bg-link-btn{width:30px;height:30px;display:grid;place-items:center;border-radius:50%;border:1px solid var(--line);background:var(--surface-glass);color:var(--ink-soft);backdrop-filter:blur(12px) saturate(1.2);-webkit-backdrop-filter:blur(12px) saturate(1.2);box-shadow:0 4px 12px var(--shadow);cursor:pointer;transition:color .15s ease,transform .15s ease}.bg-link-btn:hover{color:var(--accent);transform:scale(1.08)}.composer-dock{position:absolute;left:0;right:0;bottom:max(20px,env(safe-area-inset-bottom));z-index:10;display:flex;justify-content:center;padding:0 10px}.app-shell.is-keyboard-open .composer-dock{bottom:5px}.app-shell.is-keyboard-open .chat-log-wrap{padding-bottom:66px}.app-shell.is-keyboard-open:has(.composer.is-multiline) .chat-log-wrap{padding-bottom:140px}.app-shell.is-keyboard-open:has(.composer-reply-preview) .chat-log-wrap{padding-bottom:116px}.app-shell.is-keyboard-open:has(.composer.is-multiline):has(.composer-reply-preview) .chat-log-wrap{padding-bottom:190px}.app-shell.is-keyboard-open .settings-bar{opacity:0;visibility:hidden;pointer-events:none}.composer{position:relative;width:100%;display:flex;align-items:flex-end;gap:4px;padding:6px 6px 6px 7px;border-radius:999px;border:1px solid var(--line);background:var(--surface-raised);backdrop-filter:blur(16px) saturate(1.15);-webkit-backdrop-filter:blur(16px) saturate(1.15);box-shadow:0 10px 32px var(--shadow),inset 0 1px #ffffff0f;transition:border-radius .2s ease,border-color .2s ease}.composer-dock{flex-direction:column;align-items:center}.composer-reply-preview{width:50%;min-width:0;align-self:flex-start;display:flex;align-items:center;gap:10px;margin-bottom:6px;padding:5px 8px;border:1px solid var(--line);border-radius:999px;background:var(--surface-raised);opacity:.7}.composer-dock:has(.composer.is-multiline) .composer-reply-preview{border-radius:26px}.composer-reply-copy{min-width:0;flex:1;display:flex;flex-direction:column;gap:2px;overflow:hidden;text-align:left;font-size:11.5px;line-height:1.4}.composer-reply-copy strong{overflow:hidden;color:var(--accent);text-overflow:ellipsis;white-space:nowrap;margin-left:10px}.composer-reply-copy span{overflow:hidden;color:var(--ink-soft);text-overflow:ellipsis;white-space:nowrap;margin-left:10px}.composer-reply-close{width:28px;height:28px;flex-shrink:0;display:grid;place-items:center;border:0;border-radius:50%;background:transparent;color:var(--ink-soft);cursor:pointer}.composer-reply-close:hover{background:var(--row-hover);color:var(--ink)}.composer.is-multiline{border-radius:26px}.composer:focus-within{border-color:color-mix(in srgb,var(--accent) 55%,transparent)}.composer-side-btn{width:38px;height:38px;flex-shrink:0;display:grid;place-items:center;border-radius:50%;border:none;background:transparent;color:var(--ink-soft);cursor:pointer;transition:background .15s ease,color .15s ease,transform .1s ease}.composer-side-btn:hover{background:var(--row-hover);color:var(--ink)}.composer-side-btn:active{transform:scale(.9)}.composer-side-btn.is-active{color:var(--accent);background:var(--accent-soft)}.composer-input{flex:1;min-width:0;resize:none;border:none;outline:none;background:transparent;color:var(--ink);font:inherit;font-size:15px;line-height:20px;height:38px;padding:9px 4px;max-height:108px;user-select:text;-webkit-user-select:text;scrollbar-width:thin;scrollbar-color:var(--line) transparent}.composer-input::-webkit-scrollbar{width:6px}.composer-input::-webkit-scrollbar-track{background:transparent}.composer-input::-webkit-scrollbar-thumb{background:var(--line);border-radius:999px}.field-input-wrap{position:relative;display:block}.field-input-wrap input{width:100%;padding-right:34px}.field-clear{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:22px;height:22px;display:grid;place-items:center;border:none;border-radius:50%;background:var(--line);color:var(--ink-soft);cursor:pointer;font-size:14px;line-height:1;padding:0}.field-clear:hover{background:var(--line-soft);color:var(--ink)}.composer-input::placeholder{color:var(--ink-mute)}.composer-send{width:38px;height:38px;flex-shrink:0;display:grid;place-items:center;border-radius:50%;border:none;background:var(--accent);color:var(--accent-ink);cursor:pointer;transition:transform .14s cubic-bezier(.3,1.4,.5,1),filter .14s ease,opacity .14s ease;box-shadow:0 4px 14px color-mix(in srgb,var(--accent) 40%,transparent)}.composer-send:hover:not(.is-idle){filter:brightness(1.08)}.composer-send:active:not(.is-idle){transform:scale(.88)}.composer-send.is-idle{opacity:.35;cursor:default;box-shadow:none}.composer-zone{position:relative;display:flex;flex-shrink:0;align-items:center;gap:4px}.popover{position:absolute;bottom:calc(100% + 12px);z-index:30;border-radius:18px;border:1px solid var(--line);background:var(--surface-raised);backdrop-filter:blur(20px) saturate(1.2);-webkit-backdrop-filter:blur(20px) saturate(1.2);box-shadow:0 16px 44px var(--shadow);animation:popover-rise .22s cubic-bezier(.2,.9,.3,1.15) both;transform-origin:bottom left}@keyframes popover-rise{0%{opacity:0;transform:translateY(8px) scale(.92)}to{opacity:1;transform:translateY(0) scale(1)}}.plus-menu{left:0;min-width:168px;width:max-content;max-width:min(78vw,360px);padding:6px;backdrop-filter:none;-webkit-backdrop-filter:none;background:#181a20fa}.app-shell.theme-warm .plus-menu{background:#fcf3dcfa}.plus-menu-item{display:grid;grid-template-columns:17px minmax(0,1fr) auto;align-items:center;column-gap:11px;width:100%;padding:11px 13px;border:none;border-radius:12px;background:transparent;color:var(--ink);font-size:13.5px;font-weight:600;text-align:left;white-space:nowrap;cursor:pointer;transition:background .13s ease}.plus-menu-item:hover{background:var(--row-hover)}.plus-menu-item svg{color:var(--accent);flex-shrink:0}.plus-menu-item>svg{width:17px;height:17px}.emoji-panel{--emoji-panel-bg: #181a20;--emoji-search-bg: #22242b;right:-54px;width:min(360px,calc(100vw - 32px));padding:12px;transform-origin:bottom right;background:var(--emoji-panel-bg);backdrop-filter:none;-webkit-backdrop-filter:none}.app-shell.theme-warm .emoji-panel{--emoji-panel-bg: #fcf3dc;--emoji-search-bg: #f4e8ce}.emoji-search{box-sizing:border-box;width:100%;height:38px;margin:0 0 8px;padding:0 11px;border:1px solid var(--line);border-radius:10px;outline:none;background:var(--emoji-search-bg);color:var(--ink);font:inherit;font-size:13px}.emoji-search::placeholder{color:var(--ink-mute)}.emoji-search:focus-visible{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.emoji-grid{max-height:320px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--line) transparent}.app-shell.is-keyboard-open .emoji-grid{max-height:calc(min(320px,42vh) - 20px)}.emoji-category+.emoji-category{margin-top:8px}.emoji-category-title{position:static;margin:0;padding:5px 4px 6px;background:var(--emoji-panel-bg);color:var(--ink-mute);font-size:11px!important;font-weight:750;letter-spacing:.04em;line-height:1.2;text-transform:none}.emoji-category-toggle{width:100%;border:0;background:transparent;cursor:pointer;font:inherit;text-align:left;display:flex;align-items:center;justify-content:flex-start;gap:6px;font-size:11px!important}.emoji-category-chevron{display:inline-flex;align-items:center;justify-content:center;width:13px;height:13px;opacity:.7}.emoji-no-results{margin:20px 4px;color:var(--ink-mute);font-size:13px;text-align:center}.emoji-category-grid{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:2px}.emoji-cell{aspect-ratio:1;display:grid;place-items:center;border:none;border-radius:9px;background:transparent;font-size:23px;cursor:pointer;transition:background .12s ease,transform .12s ease}.emoji-cell:hover{background:var(--row-hover);transform:scale(1.18)}.image-viewer{position:fixed;inset:0;z-index:300;display:grid;place-items:center;padding:28px;background:#06070ad1;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);animation:viewer-in .25s ease both;cursor:zoom-out;touch-action:none;-webkit-user-select:none;user-select:none}@keyframes viewer-in{0%{opacity:0}to{opacity:1}}.viewer-strip{position:absolute;inset:0;touch-action:none;will-change:transform}.viewer-cell{position:absolute;top:0;width:100%;height:100%;display:grid;place-items:center}.image-viewer img{max-width:min(94vw,1200px);max-height:90dvh;border-radius:12px;box-shadow:0 30px 90px #0009;animation:viewer-img .3s cubic-bezier(.2,.9,.3,1.1) both;cursor:grab;touch-action:none;will-change:transform}@media(max-width:820px){.msg-row{grid-template-columns:39px minmax(0,1fr)}.msg-row:has(.gomoku-card),.msg-row:has(.xiangqi-card),.msg-row:has(.chess-card),.msg-row:has(.mud-card),.msg-row:has(.world-mud-card){grid-template-columns:39px minmax(0,1fr)}.msg-avatar{width:37px;height:37px}.image-viewer{padding:0}.image-viewer img{max-width:100vw;max-height:100dvh;border-radius:0;box-shadow:none}}@keyframes viewer-img{0%{opacity:0}to{opacity:1}}.image-viewer-close{position:absolute;top:max(18px,env(safe-area-inset-top));right:18px;width:40px;height:40px;display:grid;place-items:center;border-radius:50%;border:1px solid rgba(255,255,255,.16);background:#ffffff14;color:#f3efe7;cursor:pointer;transition:background .15s ease,transform .15s ease}.image-viewer-close:hover{background:#ffffff29;transform:rotate(90deg)}.modal-backdrop{position:fixed;inset:0;z-index:400;display:flex;align-items:center;justify-content:center;padding:18px;background:var(--backdrop);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);animation:viewer-in .2s ease both}.account-dialog{position:relative;width:min(370px,100%);border-radius:20px;border:1px solid var(--line);background:var(--surface-raised);backdrop-filter:blur(24px) saturate(1.2);-webkit-backdrop-filter:blur(24px) saturate(1.2);box-shadow:0 24px 70px var(--shadow);animation:popover-rise .24s cubic-bezier(.2,.9,.3,1.1) both;transform-origin:center;padding:20px}.account-title{margin:0 40px 4px 0;font-size:17px;font-weight:800}.account-close{position:absolute;top:12px;right:12px;width:30px;height:30px;display:grid;place-items:center;border:none;border-radius:9px;background:transparent;color:var(--ink-mute);cursor:pointer}.account-close:hover{background:var(--row-hover);color:var(--ink)}.account-body{display:flex;flex-direction:column}.account-fields{display:flex;flex-direction:column;gap:10px}.field{display:flex;flex-direction:column;gap:5px;font-size:12px;font-weight:700;color:var(--ink-soft)}.field input{height:42px;padding:0 13px;border-radius:12px;border:1px solid var(--line);background:var(--row-hover);color:var(--ink);font:inherit;font-size:14px;outline:none;transition:border-color .15s ease;user-select:text;-webkit-user-select:text}.field input:focus{border-color:color-mix(in srgb,var(--accent) 60%,transparent)}.account-feedback{margin:12px 0 0;font-size:12.5px;font-weight:600;line-height:1.5}.account-feedback.is-error{color:var(--danger)}.account-feedback.is-ok{color:var(--ok)}.account-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:16px}.btn-accent{flex:1;min-height:44px;border:none;border-radius:13px;background:var(--accent);color:var(--accent-ink);font-size:14.5px;font-weight:800;letter-spacing:.02em;cursor:pointer;transition:filter .14s ease,transform .1s ease}.btn-accent:hover:not(:disabled){filter:brightness(1.07)}.btn-accent:active:not(:disabled){transform:scale(.98)}.btn-accent:disabled{opacity:.55;cursor:default}.btn-ghost{min-height:38px;padding:0 16px;border-radius:12px;border:1px solid var(--line);background:transparent;color:var(--ink-soft);font-size:13px;font-weight:700;cursor:pointer;transition:background .14s ease,color .14s ease}.btn-ghost:hover:not(:disabled){background:var(--row-hover);color:var(--ink)}.btn-ghost.danger-text{color:var(--danger)}.account-switch{margin-top:14px;align-self:flex-start;padding:0;border:none;background:none;font-size:12.5px;font-weight:700;color:var(--ink-mute);text-decoration:underline;cursor:pointer}.account-status{margin:0 0 10px;font-size:13px;font-weight:600;line-height:1.55;color:var(--ink-soft)}.account-status.is-bottom{margin:14px 0 0;padding-top:12px;border-top:1px solid var(--line-soft);font-size:12px;font-weight:500}.app-toast{position:absolute;left:50%;bottom:max(88px,calc(env(safe-area-inset-bottom) + 88px));transform:translate(-50%);z-index:350;max-width:min(420px,86vw);padding:9px 16px;border-radius:999px;border:1px solid var(--line);background:var(--surface-raised);color:var(--ink);font-size:12.5px;font-weight:600;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 8px 28px var(--shadow);animation:hint-rise .25s ease both;text-align:center}.chat-offline-note{margin:8px auto 2px;padding:6px 12px;font-size:11.5px;color:var(--ink-mute);border:1px dashed var(--line);border-radius:999px;text-align:center}@media(hover:none),(pointer:coarse){.msg-row:hover,.settings-row:hover,.online-pop-row:hover,.plus-menu-item:hover,.emoji-cell:hover,.style-row:hover,.style-row-main:hover,.style-row-reroll:hover{background:transparent}.emoji-cell:hover{transform:none}.chat-log,.online-pop-list,.emoji-grid,.style-picker-list{-webkit-overflow-scrolling:touch;overscroll-behavior:contain;touch-action:pan-y}}.is-touch .msg-row:hover,.is-touch .settings-row:hover,.is-touch .online-pop-row:hover,.is-touch .plus-menu-item:hover,.is-touch .emoji-cell:hover,.is-touch .style-row:hover,.is-touch .style-row-main:hover,.is-touch .style-row-reroll:hover{background:transparent}.is-touch .emoji-cell:hover{transform:none}@media(max-width:820px){.chat-log-wrap{padding:26px 0 92px}.msg-row:has(.gomoku-card),.msg-row:has(.xiangqi-card),.msg-row:has(.chess-card),.msg-row:has(.mud-card),.msg-row:has(.world-mud-card){grid-template-columns:39px minmax(0,1fr);padding-inline:8px}.msg-row:has(.gomoku-card) .msg-main,.msg-row:has(.xiangqi-card) .msg-main,.msg-row:has(.chess-card) .msg-main,.msg-row:has(.mud-card) .msg-main,.msg-row:has(.world-mud-card) .msg-main{display:contents}.msg-row:has(.gomoku-card) .msg-head,.msg-row:has(.xiangqi-card) .msg-head,.msg-row:has(.chess-card) .msg-head,.msg-row:has(.mud-card) .msg-head,.msg-row:has(.world-mud-card) .msg-head{grid-column:2}.msg-row:has(.gomoku-card) .msg-body,.msg-row:has(.xiangqi-card) .msg-body,.msg-row:has(.chess-card) .msg-body,.msg-row:has(.mud-card) .msg-body,.msg-row:has(.world-mud-card) .msg-body{grid-column:1 / -1}.msg-row:has(.gomoku-card) .msg-reactions,.msg-row:has(.xiangqi-card) .msg-reactions,.msg-row:has(.chess-card) .msg-reactions,.msg-row:has(.mud-card) .msg-reactions,.msg-row:has(.world-mud-card) .msg-reactions{grid-column:1 / -1;width:100%}.chat-column:has(.composer.is-multiline) .chat-log-wrap{padding-bottom:160px}.chat-column:has(.composer.is-multiline):has(.composer-reply-preview) .chat-log-wrap{padding-bottom:216px}.popover{backdrop-filter:none;-webkit-backdrop-filter:none}.app-shell .popover{background:#181a20fa}.app-shell .emoji-panel{background:var(--emoji-panel-bg)}.app-shell.theme-warm .popover{background:#fcf3dcfa}.app-shell.theme-warm .emoji-panel{background:var(--emoji-panel-bg)}.emoji-grid{max-height:min(320px,42vh)}.emoji-panel{width:min(380px,calc(100vw - 24px));padding:12px;position:static;margin:0 auto 8px;right:auto;left:auto}.emoji-search{margin-bottom:8px}.emoji-category+.emoji-category{margin-top:8px}.emoji-category-title{padding:5px 4px 6px}.emoji-category-grid{grid-template-columns:repeat(7,1fr);gap:1px}.emoji-cell{font-size:26px}.msg-emoji-single{font-size:37px}.msg-emoji{font-size:calc(1.25em + 2px)}.msg-menu:not(.is-sheet){width:256px}.chat-log{padding:26px 10px 10px}.composer-dock{bottom:max(15px,env(safe-area-inset-bottom))}.composer-reply-preview{width:70%}.composer-side-btn svg{width:24px;height:24px}.msg-image{max-width:min(260px,100%)}.chat-close{width:36px;height:36px}.music-toggle{width:36px;height:36px;top:calc(max(14px,env(safe-area-inset-top)) + 44px)}}.plus-menu-group{display:flex;flex-direction:column}.plus-games-row{margin-top:2px}.plus-menu-sub{display:flex;flex-direction:column;margin-top:4px;padding-top:4px;border-top:1px solid var(--line)}.plus-menu-chevron{display:grid;place-items:center;justify-self:end;color:var(--ink-mute);opacity:.8;transition:transform .18s ease}.plus-menu-chevron.is-open{transform:rotate(90deg)}.msg-row.is-private{background:#5865f214;border-left:2px solid #5865f2;border-radius:0 10px 10px 0}.app-shell.theme-warm .msg-row.is-private{background:#5865f212;border-left-color:#7983f5}.msg-mention{color:#5865f2;font-weight:800;background:#5865f224;padding:0 3px;border-radius:4px}.app-shell.theme-warm .msg-mention{color:#4049d0;background:#5865f21f}.msg-row.is-mentioned{background:#ff7a451a;border-left:2px solid rgba(255,122,69,.55);border-radius:0 10px 10px 0}.app-shell.theme-warm .msg-row.is-mentioned{background:#ff7a4517;border-left-color:#ff7a4580}.composer-companion-btn{width:26px;height:26px;flex-shrink:0;display:grid;place-items:center;border:none;border-radius:50%;background:transparent;padding:0;cursor:pointer;overflow:hidden;transition:transform .14s ease,opacity .14s ease}.composer-companion-btn img{width:26px;height:26px;border-radius:50%;display:block}.composer-companion-btn:hover{transform:scale(1.08);opacity:.9}.composer-companion-btn:active{transform:scale(.94)}.mention-popover{left:0;min-width:200px;max-width:260px;padding:6px;backdrop-filter:none;-webkit-backdrop-filter:none;background:#181a20fa;border:1px solid var(--line)}.app-shell.theme-warm .mention-popover{background:#fcf3dcfa;backdrop-filter:none;-webkit-backdrop-filter:none}.mention-item{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;border:none;border-radius:10px;background:transparent;color:var(--ink);cursor:pointer;text-align:left;transition:background .13s ease}.mention-item:hover,.mention-item.is-selected{background:var(--row-hover)}.mention-item-main{display:flex;flex-direction:column;min-width:0;gap:1px}.mention-name{font-size:13px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mention-role{font-size:11px;opacity:.6;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.msg-row.is-typing{opacity:.95}.msg-typing-label{font-size:11px;color:var(--ink-mute);font-weight:600;margin-left:6px}.typing-dots{display:inline-flex;align-items:center;gap:4px;padding:6px 0 2px}.typing-dot{width:6px;height:6px;border-radius:50%;background:var(--accent);opacity:.85;animation:typing-bounce 1.2s ease-in-out infinite}.typing-dot:nth-child(2){animation-delay:.15s}.typing-dot:nth-child(3){animation-delay:.3s}@keyframes typing-bounce{0%,80%,to{transform:translateY(0);opacity:.6}40%{transform:translateY(-6px);opacity:1}}@media(prefers-reduced-motion:reduce){.typing-dot{animation:none;opacity:.8}}.msg-hoverbar{position:absolute;top:-14px;right:8px;z-index:5;display:flex;align-items:center;gap:1px;padding:2px 4px;background:#2b2d31;border:0;border-radius:8px;box-shadow:0 4px 12px #0000004d;opacity:0;pointer-events:none;transform:translateY(2px);transition:opacity .1s ease,transform .1s ease}.app-shell.theme-warm .msg-hoverbar{background:#f6e7c8;border:2px solid #3d2412;box-shadow:2px 2px #3d24124d}.msg-row:hover .msg-hoverbar,.msg-row:focus-within:not(:has(.msg-author-avatar-trigger:focus,.gomoku-spectator-trigger:focus,.xiangqi-spectator-trigger:focus)) .msg-hoverbar,.msg-row.is-menu-open .msg-hoverbar{opacity:1;pointer-events:auto;transform:translateY(0)}.msg-row:has(.gomoku-spectator-pop) .msg-hoverbar,.msg-row:has(.xiangqi-spectator-pop) .msg-hoverbar{opacity:0;pointer-events:none;transform:translateY(2px)}@media(hover:none){.msg-hoverbar{display:none}}.msg-hoverbar-btn{width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:4px;background:transparent;color:var(--ink-soft);cursor:pointer;padding:0}.msg-hoverbar-btn.is-emoji{font-size:16px}.msg-hoverbar-btn:hover{background:var(--row-hover);color:var(--ink)}.msg-hoverbar-btn.is-danger:hover{color:var(--danger)}.msg-hoverbar-sep{width:1px;height:18px;margin:0 3px;background:var(--line)}@media(hover:none),(pointer:coarse){.msg-row{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}}.msg-row.is-menu-open{background:var(--row-hover)}.msg-menu{position:fixed;z-index:400;width:260px;max-height:min(70vh,520px);overflow-y:auto;overflow-x:hidden;padding:6px;background:var(--surface-raised);border:1px solid var(--line-soft);border-radius:8px;box-shadow:0 8px 28px var(--shadow);backdrop-filter:blur(18px) saturate(1.1);-webkit-backdrop-filter:blur(18px) saturate(1.1);animation:msg-menu-in .1s ease-out}@keyframes msg-menu-in{0%{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}.msg-sheet-backdrop{position:fixed;inset:0;z-index:399;padding:0;border:0;background:#0c090573;cursor:default}.msg-menu.is-sheet{left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom,0px));top:auto;width:auto;max-width:560px;margin:0 auto;max-height:min(62vh,480px);animation:msg-sheet-in .18s ease-out}.msg-menu.is-sheet.is-confirming{inset:50% auto auto 50%;width:min(calc(100vw - 32px),320px);max-height:none;margin:0;transform:translate(-50%,-50%);animation:msg-confirm-center-in .16s ease-out}@keyframes msg-confirm-center-in{0%{opacity:0;transform:translate(-50%,calc(-50% + 8px)) scale(.98)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}@keyframes msg-sheet-in{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@media(hover:none),(pointer:coarse){.msg-menu.is-sheet .msg-menu-item{margin-top:3px}}.msg-menu-emojis{display:flex;flex-wrap:nowrap;align-items:center;gap:2px;padding:4px 2px 8px}.msg-menu-emoji{width:38px;height:38px;flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;font-size:24px;border:0;border-radius:6px;background:transparent;cursor:pointer}@media(hover:hover)and (pointer:fine){.msg-menu-emoji:hover,.msg-menu-item:hover{background:var(--row-hover)}.msg-menu-item.is-danger:hover{background:var(--accent-soft)}.msg-menu-pick:hover{background:var(--row-hover)}}.msg-menu-emoji:active,.msg-menu-item:active,.msg-menu-pick:active{background:var(--row-hover)}.msg-menu-sep{height:1px;margin:2px 6px 6px;background:var(--line)}.msg-menu-item{width:100%;display:flex;align-items:center;justify-content:flex-start;gap:10px;padding:8px 10px;border:0;border-radius:4px;background:transparent;color:var(--ink);font-size:14px;font-weight:600;cursor:pointer}.msg-menu-item.is-danger{color:var(--danger)}.msg-menu-label{text-align:left;flex:1}.msg-menu-icon{display:inline-flex;flex-shrink:0;opacity:.85}.msg-menu-chevron{display:inline-flex;flex-shrink:0;opacity:.6;transition:transform .12s ease}.msg-menu-chevron.is-open{transform:rotate(90deg)}.msg-menu-picker{display:flex;flex-wrap:wrap;gap:2px;max-height:172px;overflow-y:auto;padding:2px 4px 8px;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--line) transparent}.msg-menu-picker::-webkit-scrollbar{width:8px;height:8px}.msg-menu-picker::-webkit-scrollbar-thumb{background:var(--line);border-radius:4px}.msg-menu-picker::-webkit-scrollbar-track{background:transparent}.msg-menu-pick{width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;font-size:22px;border:0;border-radius:6px;background:transparent;cursor:pointer}.msg-reactions{display:flex;flex-wrap:wrap;gap:4px;margin-top:4px}.msg-reaction{display:inline-flex;align-items:center;gap:4px;padding:2px 7px;font-size:14px;line-height:1.3;color:var(--ink);background:var(--row-hover);border:1px solid var(--line);border-radius:999px;cursor:pointer}.msg-reaction:hover{border-color:var(--accent)}.msg-reaction.is-own{background:var(--accent-soft);border-color:var(--accent)}.msg-reaction-count{font-size:12px;font-weight:800}.msg-menu-confirm{padding:4px 2px;min-width:176px}.msg-menu-confirm-text{margin:2px 8px 10px;font-size:13px;font-weight:650;color:var(--ink-soft)}.msg-menu-confirm-row{display:flex;gap:6px;padding:0 4px 4px}.msg-menu-confirm-btn{flex:1;min-height:34px;border:none;border-radius:10px;background:var(--row-hover);color:var(--ink);font:inherit;font-size:12.5px;font-weight:700;cursor:pointer;transition:filter .14s ease}.msg-menu-confirm-btn:hover{filter:brightness(1.15)}.msg-menu-confirm-btn.is-danger{background:var(--danger);color:#fff6ec}.account-pop{position:absolute;left:0;top:calc(100% + 10px);z-index:60;width:min(272px,calc(100vw - 28px));padding:8px;border-radius:18px;border:1px solid var(--line);background:var(--surface-raised);backdrop-filter:blur(20px) saturate(1.2);-webkit-backdrop-filter:blur(20px) saturate(1.2);box-shadow:0 16px 44px var(--shadow);animation:popover-rise .22s cubic-bezier(.2,.9,.3,1.15) both;transform-origin:top left;overflow:hidden}.account-pop-head{display:flex;align-items:center;gap:12px;padding:10px 10px 12px}.account-pop-head img{border-radius:50%;border:1.5px solid var(--line);flex-shrink:0}.account-pop-avatar{position:relative;width:60px;height:60px;display:grid;place-items:center;flex-shrink:0}.account-pop-avatar:before{content:"";position:absolute;inset:0;border-radius:50%;background:conic-gradient(from -90deg,#f6c453,#ff7a59,#a855f7,#3b82f6,#f6c453);box-shadow:none;-webkit-mask:conic-gradient(from calc(0deg - var(--avatar-progress, 1) * 360deg),#000 0deg,#000 calc(var(--avatar-progress, 1) * 360deg),transparent calc(var(--avatar-progress, 1) * 360deg)),radial-gradient(circle,transparent 26px,#000 28px,transparent 30px);-webkit-mask-composite:source-in;mask:conic-gradient(from calc(0deg - var(--avatar-progress, 1) * 360deg),#000 0deg,#000 calc(var(--avatar-progress, 1) * 360deg),transparent calc(var(--avatar-progress, 1) * 360deg)),radial-gradient(circle,transparent 26px,#000 28px,transparent 30px);mask-composite:intersect;pointer-events:none;animation:account-pop-avatar-breathe 2.4s ease-in-out infinite}.account-pop-avatar.is-expired:before{display:none}@keyframes account-pop-avatar-breathe{0%,to{opacity:.35}50%{opacity:1}}.account-pop-avatar-img{width:52px;height:52px;border-radius:50%;object-fit:cover;border:0}.account-pop-role{font-size:15px;font-weight:400;color:var(--ink);line-height:1.3}.account-pop-countdown{font-size:12px;font-weight:700;color:var(--ink-mute);margin-top:2px}.account-pop-id{min-width:0;display:flex;flex-direction:column;gap:2px}.account-pop-name{font-size:15px;font-weight:800;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.account-pop-sub{font-size:11px;font-weight:600;line-height:1.45;color:var(--ink-mute);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.account-pop-actions{display:flex;flex-direction:column;gap:2px;padding-top:6px;border-top:1px solid var(--line-soft)}.account-pop-item{display:flex;align-items:center;gap:10px;padding:9px 10px;border:none;border-radius:12px;background:none;color:var(--ink-soft);font-size:13px;font-weight:650;text-align:left;cursor:pointer;transition:background .14s ease,color .14s ease}.account-pop-item:hover{background:var(--row-hover);color:var(--ink)}.account-pop-item.is-danger:hover{color:var(--danger)}.account-dialog>header{padding-bottom:12px;margin-bottom:14px;border-bottom:1px solid var(--line-soft)}.account-pop-confirm{margin:0;padding:4px 10px 8px;font-size:12.5px;font-weight:600;color:var(--ink-soft)}.account-pop-confirm-row{display:flex;gap:6px}.account-pop-confirm-row .account-pop-item{flex:1;justify-content:center}.account-profile-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px}@media(max-width:820px){.account-pop{left:50%;translate:-50% 0;transform-origin:top center;width:min(272px,calc(100vw - 24px))}}.settings-bar{position:absolute;right:max(16px,env(safe-area-inset-right));top:calc(max(14px,env(safe-area-inset-top)) + 80px);z-index:40;display:grid;justify-items:center;gap:6px}.settings-dismiss-layer{position:fixed;inset:0;z-index:39;background:transparent}.settings-btn{position:relative;width:32px;height:32px;display:grid;place-items:center;border-radius:50%;border:1px solid var(--line);background:var(--surface-raised);color:var(--ink-soft);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:0 4px 14px var(--shadow);cursor:pointer;transition:transform .16s ease,background .16s ease,color .16s ease}.settings-btn:hover{color:var(--ink);background:var(--surface-strong);transform:scale(1.08)}.settings-btn:active{transform:scale(.92)}.settings-btn:not(.settings-online-btn) svg{transition:transform .35s cubic-bezier(.3,.7,.3,1)}.settings-btn:not(.settings-online-btn):hover svg{transform:rotate(45deg)}@media(prefers-reduced-motion:reduce){.settings-btn:not(.settings-online-btn) svg{transition:none}.settings-btn:not(.settings-online-btn):hover svg{transform:none}}.settings-pop{position:absolute;right:0;top:calc(100% + 10px);z-index:60;width:min(280px,calc(100vw - 28px));padding:6px;border-radius:18px;border:1px solid var(--line);background:var(--surface-raised);backdrop-filter:blur(20px) saturate(1.2);-webkit-backdrop-filter:blur(20px) saturate(1.2);box-shadow:0 16px 44px var(--shadow);animation:popover-rise .22s cubic-bezier(.2,.9,.3,1.15) both;transform-origin:top right}.settings-row{display:flex;align-items:center;gap:10px;width:100%;padding:10px 11px;border:none;border-radius:12px;background:none;color:var(--ink-soft);font:inherit;font-size:13px;font-weight:650;cursor:pointer;transition:background .14s ease,color .14s ease}.settings-row:hover{background:var(--row-hover);color:var(--ink)}.settings-row-icon{display:grid;place-items:center;color:var(--ink-mute);flex-shrink:0}.lang-flag{display:inline-block;position:relative;width:21px;height:14px;border-radius:3px;overflow:hidden;flex-shrink:0;box-shadow:0 0 0 1px #00000029}.lang-flag svg{display:block;width:100%;height:100%}.settings-row-icon.is-ok{color:var(--ok)}.settings-row-label{flex:1;min-width:0;overflow:hidden;text-align:left;text-overflow:ellipsis;white-space:nowrap}.settings-row-value{flex-shrink:0;font-size:11.5px;font-weight:700;color:var(--ink-mute)}.settings-current-animation{flex:0 1 94px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:right}.settings-row>svg:last-child{color:var(--ink-mute)}.online-pop-face{flex-shrink:0;border-radius:50%;border:1.5px solid var(--line)}@media(max-width:820px){.app-shell.is-chat-open .settings-bar.is-suppressed{opacity:0;visibility:hidden;pointer-events:none}.settings-btn{width:36px;height:36px}.settings-bar{top:calc(max(14px,env(safe-area-inset-top)) + 88px)}.settings-pop{top:calc(100% + 8px);bottom:auto;width:min(270px,calc(100vw - 28px))}}.online-pop.is-bottom{top:calc(100% + 10px);right:0;left:auto;bottom:auto;min-height:172px;transform-origin:top right}.settings-online-btn{color:var(--ok)}.settings-online-count{position:absolute;top:-5px;right:-6px;min-width:16px;height:16px;display:grid;place-items:center;padding:0 3px;border:1px solid var(--surface-raised);border-radius:999px;background:#ff7a59;color:#fff;font-size:8px;font-weight:800;line-height:1;box-shadow:0 2px 6px var(--shadow)}.countdown-visual{position:relative;display:inline-grid;place-items:center;flex:none;line-height:0}.countdown-visual>*{grid-area:1 / 1}.countdown-visual__ring{display:block;overflow:visible}.countdown-visual__bar,.countdown-visual__segments,.countdown-visual__pulse,.countdown-visual__halo,.countdown-visual__orbit{display:none}.countdown-visual__bar{width:calc(100% - 2px);height:3px;overflow:hidden;border-radius:99px;background:color-mix(in srgb,currentColor 20%,transparent)}.countdown-visual__bar-fill{display:block;height:100%;border-radius:inherit;background:currentColor;transition:width 1s linear}.countdown-visual__segments{width:calc(100% - 2px);height:6px;align-items:center;gap:1px}.countdown-visual__segments i{flex:1;height:100%;border-radius:2px;background:currentColor;transform-origin:center;transition:opacity 1s linear,transform 1s ease}.countdown-visual__pulse{border-radius:50%;background:currentColor;animation:countdown-orb-breathe 2.4s ease-in-out infinite;transition:width 1s ease,height 1s ease,opacity 1s linear}.countdown-visual__halo{width:calc(100% - 2px);height:calc(100% - 2px);border-radius:50%;background-color:color-mix(in srgb,currentColor 20%,transparent);-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 2px),#000 calc(100% - 1px));mask:radial-gradient(farthest-side,transparent calc(100% - 2px),#000 calc(100% - 1px))}.countdown-visual__orbit{width:calc(100% - 4px);height:calc(100% - 4px);border:1px solid color-mix(in srgb,currentColor 24%,transparent);border-radius:50%}.countdown-visual__orbit-dot{position:absolute;width:4px;height:4px;border-radius:50%;background:currentColor;box-shadow:0 0 5px color-mix(in srgb,currentColor 48%,transparent);transform:translate(-50%,-50%);transition:left 1s linear,top 1s linear}@keyframes countdown-orb-breathe{0%,to{box-shadow:0 0 color-mix(in srgb,currentColor 0%,transparent)}50%{box-shadow:0 0 0 3px color-mix(in srgb,currentColor 16%,transparent)}}.app-shell[data-countdown-animation=line] .countdown-visual__ring,.app-shell[data-countdown-animation=segments] .countdown-visual__ring,.app-shell[data-countdown-animation=pulse] .countdown-visual__ring,.app-shell[data-countdown-animation=halo] .countdown-visual__ring,.app-shell[data-countdown-animation=orbit] .countdown-visual__ring{display:none}.app-shell[data-countdown-animation=line] .countdown-visual__bar{display:block}.app-shell[data-countdown-animation=segments] .countdown-visual__segments{display:flex}.app-shell[data-countdown-animation=pulse] .countdown-visual__pulse,.app-shell[data-countdown-animation=halo] .countdown-visual__halo,.app-shell[data-countdown-animation=orbit] .countdown-visual__orbit{display:block}.countdown-visual[data-countdown-preview] .countdown-visual__ring,.countdown-visual[data-countdown-preview] .countdown-visual__bar,.countdown-visual[data-countdown-preview] .countdown-visual__segments,.countdown-visual[data-countdown-preview] .countdown-visual__pulse,.countdown-visual[data-countdown-preview] .countdown-visual__halo,.countdown-visual[data-countdown-preview] .countdown-visual__orbit{display:none}.countdown-visual[data-countdown-preview=ring] .countdown-visual__ring,.countdown-visual[data-countdown-preview=line] .countdown-visual__bar{display:block}.countdown-visual[data-countdown-preview=segments] .countdown-visual__segments{display:flex}.countdown-visual[data-countdown-preview=pulse] .countdown-visual__pulse,.countdown-visual[data-countdown-preview=halo] .countdown-visual__halo,.countdown-visual[data-countdown-preview=orbit] .countdown-visual__orbit{display:block}@media(prefers-reduced-motion:reduce){.countdown-visual__ring,.countdown-visual__bar-fill,.countdown-visual__segments i,.countdown-visual__pulse,.countdown-visual__orbit-dot{transition:none;animation:none}.msg-countdown.is-final .countdown-visual{animation:none}}.countdown-animation-pop{width:min(310px,calc(100vw - 28px));max-height:min(72dvh,430px);overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y;-webkit-overflow-scrolling:touch}.settings-subview-back{display:inline-flex;align-items:center;gap:8px;padding:6px 10px;border:0;border-radius:8px;background:transparent;color:var(--ink-mute);font:inherit;font-size:12.5px;cursor:pointer}.settings-subview-back>span{font-size:22px;line-height:1}.animation-picker-title{margin:3px 9px 8px;color:var(--ink);font-size:13px;font-weight:750}.animation-option-list{display:grid;gap:3px}.animation-option{display:grid;grid-template-columns:28px minmax(0,1fr) 14px;align-items:center;gap:9px;width:100%;padding:8px 9px;border:0;border-radius:11px;background:transparent;color:var(--ink-soft);text-align:left;cursor:pointer;transition:background .14s ease,color .14s ease}.animation-option:hover,.animation-option.is-selected{background:var(--row-hover);color:var(--ink)}.animation-option-preview{display:grid;place-items:center;width:28px;height:28px;border-radius:8px;background:var(--surface-glass);color:var(--accent)}.animation-option-copy{display:grid;gap:3px;min-width:0}.animation-option-name{font-size:12px;font-weight:700}.animation-option-detail{overflow:hidden;color:var(--ink-mute);font-size:10px;font-weight:500;text-overflow:ellipsis;white-space:nowrap}.animation-option-check{color:var(--accent);font-size:13px;font-weight:800;text-align:center}@media(hover:none),(pointer:coarse){.animation-option:hover:not(.is-selected){background:transparent}}@media(max-width:820px){.countdown-animation-pop{width:min(300px,calc(100vw - 28px))}}.welcome-backdrop{position:absolute;inset:0;z-index:300;display:grid;place-items:center;padding:18px;background:var(--backdrop);backdrop-filter:blur(16px) saturate(1.1);-webkit-backdrop-filter:blur(16px) saturate(1.1);animation:viewer-in .2s ease both}.welcome-card{position:relative;width:min(440px,100%);padding:24px 24px 20px;border-radius:24px;border:1px solid var(--line);background:var(--surface-raised);backdrop-filter:blur(24px) saturate(1.2);-webkit-backdrop-filter:blur(24px) saturate(1.2);box-shadow:0 24px 70px var(--shadow);display:flex;flex-direction:column;align-items:center;text-align:center;animation:popover-rise .3s cubic-bezier(.2,.9,.3,1.1) both;transform-origin:center}.welcome-title{display:inline-flex;align-items:center;gap:7px;margin:0 0 10px;font-size:11.5px;font-weight:800;letter-spacing:.09em;color:var(--accent)}.welcome-copy{margin:0 0 18px;font-size:13px;line-height:1.8;color:var(--ink-soft)}.welcome-copy strong{display:block;margin-bottom:2px;font-size:16px;font-weight:800;color:var(--ink)}.welcome-avatar-wrap{position:relative;margin-bottom:18px}.welcome-card .welcome-avatar-wrap{display:flex;flex-direction:column;align-items:center;margin-top:10px;margin-bottom:38px}.summary-stats{width:100%;margin:12px 0 16px;display:flex;flex-direction:column;gap:8px;text-align:left}.summary-stat-row{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:6px 0;border-bottom:1px solid var(--line-soft)}.summary-stat-row:last-child{border-bottom:none}.summary-stat-label{font-size:13px;color:var(--ink-soft);font-weight:500}.summary-stat-value{font-size:14px;font-weight:700;color:var(--ink);white-space:nowrap}.summary-stat-sub{margin-left:8px;font-size:12px;font-weight:500;color:var(--ink-mute)}.summary-interactions{margin-top:4px;padding-top:4px}.summary-interaction-list{display:flex;flex-wrap:wrap;gap:6px 10px;margin-top:6px}.summary-interaction-name{font-weight:700;color:#2563eb;background:none;border:none;cursor:pointer;padding:0;font-size:14px;line-height:1.4}.summary-interaction-name:hover{text-decoration:underline;text-underline-offset:2px}.summary-interaction-empty{margin-top:6px;color:var(--ink-mute);font-size:12px}.summary-author-dialog .account-pop.summary-author-card{position:static;inset:auto;z-index:auto;width:100%;padding:0;border:0;border-radius:0;background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:none;animation:none;transform:none;translate:none;overflow:visible}.summary-author-dialog .summary-author-card .account-pop-head{padding:8px 0 12px}.welcome-avatar{display:block;border-radius:50%;border:2px solid var(--line);box-shadow:0 12px 34px var(--shadow)}.avatar-editor{width:100%;display:flex;flex-direction:column;align-items:center}.welcome-avatar-tools{position:absolute;right:-8px;bottom:-8px;display:flex;gap:6px}.welcome-card .welcome-avatar-tools{position:static;margin-top:10px}.welcome-reroll,.welcome-custom,.welcome-upload{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;border:1px solid var(--line);background:var(--surface-raised);color:var(--accent);cursor:pointer;box-shadow:0 6px 16px var(--shadow);transition:transform .28s cubic-bezier(.2,.9,.3,1.25),color .15s ease}.welcome-reroll:hover{transform:rotate(120deg) scale(1.08)}.welcome-custom:hover{transform:scale(1.08)}.welcome-custom.is-open{color:var(--accent);background:var(--accent-soft)}.welcome-upload:hover{transform:scale(1.08)}.welcome-upload:disabled{opacity:.55;cursor:default}.welcome-field{width:100%;margin-bottom:4px;text-align:left}.welcome-field input{text-align:center;font-weight:700}.welcome-fields{width:100%;display:flex;gap:10px;margin-bottom:4px}.welcome-fields .welcome-field{flex:1;margin-bottom:0}@media(max-width:480px){.welcome-fields{flex-direction:column}}.field-input-wrap .field-icon{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--ink-mute);pointer-events:none;display:grid;place-items:center}.welcome-field .field-input-wrap input{padding-left:30px;padding-right:35px}.welcome-confirm{width:100%;margin-top:12px}.welcome-error{margin:8px 0 0;color:#ef4444;font-size:13px;text-align:center}.profile-body{display:flex;flex-direction:column;padding-top:6px}.profile-body .avatar-editor{margin-bottom:6px}.profile-avatar{display:block;border-radius:50%;border:2px solid var(--line);box-shadow:0 10px 28px var(--shadow)}.profile-meta{display:flex;align-items:flex-start;gap:8px;flex-wrap:wrap;margin:14px 0 0;font-size:12px;font-weight:600;line-height:1.6;color:var(--ink-mute)}.profile-meta svg{flex-shrink:0;margin-top:3px}.profile-bind{border:none;padding:0;background:none;color:var(--accent);font:inherit;font-weight:700;text-decoration:underline;cursor:pointer}.profile-page .account-actions{justify-content:stretch}.profile-page .account-actions .btn-accent{flex:1}.avatar-pending{display:block;flex-shrink:0;background:var(--row-hover);border:1.5px solid var(--line-soft)}.style-picker{width:100%;margin:2px 0 14px;border-radius:16px;border:1px solid var(--line);background:var(--surface-strong);animation:popover-rise .22s cubic-bezier(.2,.9,.3,1.15) both;transform-origin:top center}.style-picker-list{display:grid;grid-template-columns:repeat(2,1fr);gap:2px;padding:6px;max-height:248px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--line) transparent}.style-row{display:flex;align-items:center;gap:4px;min-width:0;padding:4px 4px 4px 6px;border-radius:11px;transition:background .14s ease}.style-row:hover{background:var(--row-hover)}.style-row.is-current{background:var(--accent-soft)}.style-row-main{flex:1;min-width:0;display:flex;align-items:center;gap:8px;border:none;background:none;padding:0;color:var(--ink-soft);font:inherit;font-size:11.5px;font-weight:650;text-align:left;cursor:pointer}.style-row-face{flex-shrink:0;border-radius:50%;border:1px solid var(--line)}.style-row-name{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.style-row.is-current .style-row-name{color:var(--accent)}.style-row-reroll{flex-shrink:0;width:24px;height:24px;display:grid;place-items:center;border:none;border-radius:50%;background:none;color:var(--ink-mute);cursor:pointer;transition:color .14s ease,background .14s ease}.style-row-reroll:hover{color:var(--accent);background:var(--row-hover)}@media(max-width:420px){.style-picker-list{grid-template-columns:1fr}}.game-card-menu-root{position:relative;flex:0 0 auto;margin-left:6px}.game-card-menu-trigger{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;padding:0;border:0;border-radius:50%;background:transparent;color:inherit;cursor:pointer;opacity:.72;transition:background .15s ease,opacity .15s ease}.game-card-menu-trigger:hover{background:#ffffff1a;opacity:1}.game-card-menu-trigger:active{transform:scale(.92)}.app-shell.theme-warm .game-card-menu-trigger:hover{background:#4b301417}.game-card-menu-pop{position:absolute;top:calc(100% + 8px);right:0;z-index:30;min-width:184px;max-width:260px;padding:6px;border:1px solid rgba(255,255,255,.12);border-radius:14px;background:#23252f;box-shadow:0 12px 36px #00000073,0 1px #ffffff0f inset;backdrop-filter:blur(12px) saturate(1.2);-webkit-backdrop-filter:blur(12px) saturate(1.2)}.app-shell.theme-warm .game-card-menu-pop{background:#fcf3dc;border-color:#4b301424;box-shadow:0 12px 32px #3c280a2e}.game-card-menu-item{display:flex;align-items:center;gap:10px;width:100%;min-height:38px;padding:8px 10px;border:0;border-radius:10px;background:transparent;color:#e9e9e9;font:inherit;font-size:13px;text-align:left;cursor:pointer;white-space:nowrap}.game-card-menu-item:hover{background:#ffffff14}.game-card-menu-item.is-active{background:#38bdf829}.app-shell.theme-warm .game-card-menu-item{color:#111}.app-shell.theme-warm .game-card-menu-item:hover{background:#0000000f}.app-shell.theme-warm .game-card-menu-item.is-active{background:#38bdf824}.game-card-menu-icon{display:inline-flex;align-items:center;justify-content:center;flex:0 0 20px;width:20px;height:20px;opacity:.92;color:currentColor}.game-card-menu-label{flex:1;min-width:0;color:currentColor}.game-card-menu-check{display:inline-flex;align-items:center;color:#0ea5e9;flex:0 0 auto}.game-card-menu-sep{height:1px;margin:6px 4px;background:#ffffff14}.app-shell.theme-warm .game-card-menu-sep{background:#4b301414}.chess-player-name .game-ai-source-icon,.gomoku-player-name .game-ai-source-icon,.xiangqi-player-name .game-ai-source-icon{margin-left:10px}.chess-player-name .game-ai-thinking-wrap,.gomoku-player-name .game-ai-thinking-wrap,.xiangqi-player-name .game-ai-thinking-wrap{margin-left:4px}.game-ai-thinking-spinner{display:inline-block;width:12px;height:12px;border:1.9px solid currentColor;border-right-color:transparent;border-top-color:#7dd3fc;border-radius:50%;opacity:.9;flex:0 0 12px;contain:layout paint;animation:game-ai-spin .8s linear infinite}.game-ai-thinking-wrap{display:inline-flex;align-items:center;justify-content:center;gap:4px;flex:0 0 auto;min-width:42px;line-height:1;contain:layout paint}@keyframes game-ai-spin{to{transform:rotate(360deg)}}@media(hover:none),(pointer:coarse){.game-card-menu-trigger:hover{background:transparent}.game-card-menu-trigger:active{background:#ffffff14}.app-shell.theme-warm .game-card-menu-trigger:active{background:#4b301412}.game-card-menu-item:hover{background:transparent}.game-card-menu-item:active{background:#ffffff14}.app-shell.theme-warm .game-card-menu-item:active{background:#0000000f}}@media(max-width:820px){.game-card-menu-trigger{width:32px;height:32px}.game-card-menu-pop{min-width:200px}.game-card-menu-item{min-height:44px;padding:10px 12px;font-size:14px}}.game-ai-thinking-seconds{display:inline-flex;align-items:center;min-width:22px;font-size:11px;font-weight:600;line-height:1;opacity:.75;font-variant-numeric:tabular-nums;text-align:left}@media(prefers-reduced-motion:reduce){.game-ai-thinking-spinner{animation-duration:2s}}.gomoku-card{position:relative;border:1px solid rgba(255,255,255,.14);border-radius:18px;padding:14px;margin:6px 0;background:linear-gradient(145deg,#ffffff17,#ffffff09);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);width:100%;max-width:440px}.app-shell.theme-warm .gomoku-card{background:linear-gradient(145deg,#fffaebd6,#eedab2c2)}.gomoku-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:0;font-size:14px}.gomoku-title{display:inline-flex;align-items:center;gap:6px;font-weight:600}.gomoku-heading{display:flex;align-items:center;gap:15px;flex:1;min-width:0}.gomoku-title{flex:0 0 auto;white-space:nowrap}.gomoku-style-random{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;padding:0;border:1px solid rgba(255,255,255,.18);border-radius:8px;background:#ffffff0f;color:inherit;cursor:pointer;opacity:.75;transition:opacity .15s ease,transform .15s ease,background .15s ease}.gomoku-style-random:hover{opacity:1;background:#ffffff1f}.gomoku-style-random{margin-top:-2px}.gomoku-style-random:active{transform:rotate(20deg)}.app-shell.theme-warm .gomoku-style-random{border-color:#4b30144d;background:#69461c1a}.gomoku-status{display:inline-flex;align-items:center;gap:4px;min-width:0;margin-left:auto;margin-right:6px;padding:3px 9px;border-radius:999px;background:#ffffff14;border:1px solid rgba(255,255,255,.14);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:600;line-height:1.2;letter-spacing:.02em;opacity:1;animation:game-status-breathe 2.6s ease-in-out infinite}.app-shell.theme-warm .gomoku-status{background:#b48c3c24;border-color:#8c641e38;color:#5a3d14}.gomoku-head{position:relative}.gomoku-spectator-control{position:static;display:flex;flex:0 0 auto;min-width:0;margin-left:auto}.gomoku-spectator-trigger{display:inline-flex;flex-wrap:nowrap;flex:0 0 auto;align-items:center;justify-content:flex-end;gap:6px;width:auto;padding:3px 9px;border:1px solid rgba(255,255,255,.14);border-radius:999px;background:#ffffff14;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);color:inherit;cursor:pointer;font:inherit;font-size:11px;font-weight:600;line-height:1.2;white-space:nowrap;animation:game-status-breathe 2.6s ease-in-out infinite}.app-shell.theme-warm .gomoku-status.gomoku-spectator-trigger{background:#b48c3c24;border-color:#8c641e38;color:#5a3d14}.gomoku-status.gomoku-spectator-trigger{display:inline-flex}.gomoku-spectator-trigger{position:relative}.gomoku-spectator-pop{background:#181a20}.app-shell.theme-warm .gomoku-spectator-pop{background:#fcf3dc}.gomoku-spectator-pop.online-pop.is-bottom{left:50%;right:auto;top:calc(100% + 2px);bottom:auto;width:min(280px,calc(100vw - 24px));max-width:calc(100% - 16px);max-height:min(380px,48vh);transform:translate(-50%);transform-origin:top center;z-index:30;animation:spectator-pop-rise .22s cubic-bezier(.2,.9,.3,1.15) both}.gomoku-meta{display:flex;align-items:center;justify-content:flex-end;gap:6px;min-width:0;text-align:right;font-size:12px;line-height:1.2;opacity:.7}.gomoku-status-dot{width:4px;height:4px;flex:0 0 4px;align-self:center;border-radius:50%;background:currentColor}.gomoku-players{display:flex;gap:8px;margin-top:10px;flex-wrap:nowrap;min-width:0}.gomoku-players:empty{display:none}.gomoku-players:not(:empty){margin-bottom:8px}.gomoku-player-slot{display:flex;align-items:center;gap:5px;flex:1 1 0;min-width:0}.gomoku-player-slot+.gomoku-player-slot{margin-left:8px}.gomoku-player-avatar{flex:0 0 30px;width:30px;height:30px;border-radius:50%;object-fit:cover;background:#ffffff1f}.gomoku-ai-avatar{display:grid;place-items:center;flex:0 0 30px;width:30px;height:30px;border-radius:50%;background:#facc1529;border:1px solid rgba(120,105,80,.3);box-sizing:border-box}.gomoku-ai-avatar svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.gomoku-player{display:flex;align-items:center;gap:5px;flex:1 1 0;min-width:0;font-size:12px;padding:4px 6px;border-radius:8px;background:#ffffff0d;border:1px solid rgba(120,105,80,.24);box-sizing:border-box}.gomoku-player.is-turn{box-shadow:0 0 0 2px #facc1599}.gomoku-player.is-self{font-weight:600}.gomoku-stone{width:12px;height:12px;flex:0 0 12px;border-radius:50%;display:inline-block}.gomoku-stone[data-color="1"]{background:radial-gradient(circle at 35% 35%,#555,#000);box-shadow:0 1px 2px #0009}.gomoku-stone[data-color="2"]{background:radial-gradient(circle at 35% 35%,#fff,#ccc);box-shadow:0 1px 2px #0006;border:1px solid rgba(0,0,0,.2)}.gomoku-player-name{display:flex;align-items:center;gap:0;flex:1;min-width:0;overflow:hidden}.gomoku-player-name-text{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gomoku-player-score{font-weight:700;opacity:.8}.gomoku-empty{font-size:12px;opacity:.6}.gomoku-result{text-align:center;font-weight:700;color:#facc15}.app-shell.theme-warm .gomoku-result{color:#000}.gomoku-result:empty{display:none}.gomoku-result:not(:empty){margin:4px 0}.gomoku-board{position:relative;display:grid;grid-template-columns:repeat(11,minmax(0,1fr));grid-template-rows:repeat(11,minmax(0,1fr));grid-auto-flow:row;gap:0;background-color:#d99a54;background-image:repeating-linear-gradient(89deg,transparent 0 2px,rgba(108,56,19,.055) 2px 3px,transparent 3px 7px),repeating-linear-gradient(91deg,transparent 0 17px,rgba(255,229,176,.075) 17px 19px,transparent 19px 31px),linear-gradient(90deg,rgba(126,65,24,.16),transparent 16%,rgba(255,226,173,.12) 48%,transparent 78%,rgba(119,58,20,.13)),linear-gradient(180deg,rgba(255,228,177,.12),transparent 24%,rgba(121,64,27,.08));border:0;border-radius:0;padding:0;margin:6px auto;width:min(100%,408px);aspect-ratio:1 / 1;box-sizing:border-box;box-shadow:inset 0 0 18px #6836142e,0 6px 16px #0003;touch-action:manipulation}.gomoku-winner-toast{position:absolute;top:50%;left:50%;z-index:20;width:max-content;max-width:84%;box-sizing:border-box;padding:11px 24px;border:2px solid #fff0b8;border-radius:999px;background:linear-gradient(135deg,#8b641e,#c49332 52%,#79531a);color:#fff9e6;box-shadow:0 0 0 4px #c4933233,0 8px 28px #3e27076b;font-size:16px;font-weight:700;line-height:1.35;text-align:center;pointer-events:none;transform:translate(-50%,-50%);animation:gomoku-winner-pop 2s ease both}.gomoku-winner-toast:before{content:"★";margin-right:8px;color:#fff0b8}.gomoku-start-toast{position:absolute;top:50%;left:50%;z-index:21;display:inline-flex;align-items:center;gap:8px;width:max-content;max-width:84%;box-sizing:border-box;padding:11px 20px 11px 16px;border:1px solid rgba(255,255,255,.16);border-radius:14px;background:radial-gradient(120% 140% at 15% 20%,rgba(255,235,160,.28),transparent 45%),linear-gradient(135deg,#222632f5,#161a24f7);color:#fff;backdrop-filter:blur(14px) saturate(1.15);-webkit-backdrop-filter:blur(14px) saturate(1.15);box-shadow:0 8px 32px #00000061,0 0 0 1px #ffffff0f,inset 0 1px #ffffff24;font-size:14px;font-weight:700;line-height:1.35;letter-spacing:.02em;text-align:center;pointer-events:none;transform:translate(-50%,-50%);animation:game-start-pop 2s ease both}.gomoku-start-toast:before{content:"✦";flex:0 0 auto;display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:linear-gradient(135deg,#facc15,#f59e0b);color:#422006;font-size:13px;font-weight:800;box-shadow:0 2px 8px #facc1573}.app-shell.theme-warm .gomoku-start-toast{background:radial-gradient(120% 140% at 15% 20%,rgba(255,248,220,.9),transparent 45%),linear-gradient(135deg,#fffcf0fa,#fff4d7f7);color:#4a2f0a;border-color:#8c641e2e;box-shadow:0 8px 28px #5a3c0f2e,0 0 0 1px #8c641e1a}@keyframes gomoku-winner-pop{0%{opacity:0;transform:translate(-50%,-46%) scale(.92);box-shadow:0 0 0 3px #c493321a,0 8px 24px #3e270740}12%{opacity:1;transform:translate(-50%,-50%) scale(1);box-shadow:0 0 0 4px #c4933233,0 8px 28px #3e27076b}50%{box-shadow:0 0 0 8px #ffd56442,0 8px 30px #3e270785}82%{opacity:1;transform:translate(-50%,-50%) scale(1)}to{opacity:0;transform:translate(-50%,-50%) scale(.96)}}.gomoku-grid-lines{position:absolute;inset:4.5455%;background-image:linear-gradient(to right,rgba(70,39,17,.35),rgba(70,39,17,.82) .5px,rgba(255,226,173,.34) 1px,transparent 1px),linear-gradient(to bottom,rgba(70,39,17,.35),rgba(70,39,17,.82) .5px,rgba(255,226,173,.34) 1px,transparent 1px);background-size:10% 100%,100% 10%;background-repeat:repeat;pointer-events:none;z-index:1}.gomoku-frame{position:absolute;inset:4.5455%;border:1px solid rgba(65,38,18,.9);box-shadow:0 0 0 1px #ffe0a66b,inset 0 0 0 1px #4c2b141f;pointer-events:none;z-index:1}.gomoku-cell{position:relative;width:100%;height:100%;min-width:0;min-height:0;background:transparent;border:none;padding:0;cursor:pointer;display:flex;align-items:center;justify-content:center;appearance:none;-webkit-tap-highlight-color:transparent}.gomoku-cell:disabled{cursor:default}.gomoku-cell.is-win{background:#facc1559}.gomoku-cell.is-last:after{content:"";position:absolute;width:26%;height:26%;border-radius:50%;background:#dc2626d9;z-index:3;box-shadow:0 0 4px #dc262699}.gomoku-stone-onboard{position:relative;width:70%;height:70%;border-radius:50%;z-index:2;box-shadow:0 2px 3px #00000080}.gomoku-stone-onboard[data-color="1"]{background:radial-gradient(circle at 35% 35%,#666,#000)}.gomoku-stone-onboard[data-color="2"]{background:radial-gradient(circle at 35% 35%,#fff,#bbb);border:1px solid rgba(0,0,0,.25)}.gomoku-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.gomoku-actions:empty{display:none}.gomoku-actions:not(:empty){margin-top:10px}.gomoku-confirm-backdrop{position:absolute;inset:0;z-index:2000;display:grid;place-items:center;padding:20px;background:#080a0e9e;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.gomoku-confirm{width:min(100%,340px);padding:18px;border:1px solid rgba(255,255,255,.14);border-radius:16px;color:var(--ink, #f3efe7);background:var(--surface-raised, #202127);box-shadow:0 16px 44px #00000059}.gomoku-confirm h3{margin:0 0 8px;font-size:16px}.gomoku-confirm p{margin:0;font-size:13px;line-height:1.5;opacity:.76}.gomoku-confirm-actions{display:flex;gap:8px;margin-top:18px}.gomoku-confirm-actions>button{flex:1;min-width:0}.gomoku-confirm-cancel{min-height:36px;padding:0 12px;border:1px solid rgba(255,255,255,.18);border-radius:13px;color:inherit;background:#ffffff14}.app-shell.theme-warm .gomoku-confirm-cancel{color:var(--ink);background:#69461c1f;border-color:#4b301459}@media(hover:hover)and (pointer:fine){.gomoku-cell:not(:disabled):hover:after{content:"";position:absolute;width:46%;height:46%;border-radius:50%;background:#0000002e;z-index:1}}@media(max-width:820px){.gomoku-card{box-sizing:border-box;max-width:none}.gomoku-board{width:100%;max-width:none}.gomoku-head,.gomoku-heading{align-items:center}.gomoku-status{display:block;position:static;top:auto}.gomoku-actions button,.gomoku-confirm-actions button{min-height:36px;padding:0 10px;font-size:13px;font-weight:700;letter-spacing:0}.gomoku-confirm-cancel{min-height:36px}}@media(max-width:420px){.gomoku-card{padding:10px;border-radius:15px}.gomoku-player{min-width:0}.gomoku-player-slot{gap:4px}.gomoku-player-avatar,.gomoku-ai-avatar{flex-basis:26px;width:26px;height:26px}.gomoku-ai-avatar svg{width:19px;height:19px}.gomoku-player{gap:4px;padding:4px 5px;font-size:11px}.gomoku-stone{width:10px;height:10px;flex-basis:10px}}.gomoku-card{isolation:isolate;contain:layout paint;transform:translateZ(0);backface-visibility:hidden}.gomoku-card.has-spectator-pop{contain:none!important;transform:none!important;overflow:visible!important;isolation:auto!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;filter:none!important}@media(prefers-reduced-motion:reduce){.gomoku-status,.gomoku-spectator-trigger{animation:none}.gomoku-winner-toast,.gomoku-start-toast{animation:none;opacity:1;transform:translate(-50%,-50%)}}.gomoku-board--minimal,.gomoku-board--dark,.gomoku-board--sakura,.gomoku-board--retro{border-radius:16px;box-shadow:inset 0 1px 1px #ffffff7a,inset 0 -18px 34px #171d371f,0 8px 22px #00000038}.gomoku-board--minimal{background-color:#ec9c91;background-image:linear-gradient(138deg,#ffd0b8,#f3a19a 44%,#dc7ca5)}.gomoku-board--minimal .gomoku-grid-lines{background-image:linear-gradient(to right,rgba(110,57,68,.36) 0 1px,transparent 1px),linear-gradient(to bottom,rgba(110,57,68,.36) 0 1px,transparent 1px)}.gomoku-board--minimal .gomoku-frame{border-color:#6736418a;box-shadow:inset 0 0 0 1px #ffffff38}.gomoku-board--minimal .gomoku-cell:not(:disabled):hover:after{background:#5d2d3e24}.gomoku-board--dark{background-color:#253c68;background-image:linear-gradient(135deg,#465ea0,#303e77 48%,#176b74)}.gomoku-board--dark .gomoku-grid-lines{background-image:linear-gradient(to right,rgba(231,239,255,.48) 0 1px,transparent 1px),linear-gradient(to bottom,rgba(231,239,255,.48) 0 1px,transparent 1px)}.gomoku-board--dark .gomoku-frame{border-color:#e0ecffad;box-shadow:inset 0 0 0 1px #08173633}.gomoku-board--dark .gomoku-cell:not(:disabled):hover:after{background:#f0f8ff2e}.gomoku-board--sakura{background-color:#b69ae5;background-image:linear-gradient(135deg,#ecd8ff,#c5a6f2 48%,#987de2)}.gomoku-board--sakura .gomoku-grid-lines{background-image:linear-gradient(to right,rgba(76,56,117,.39) 0 1px,transparent 1px),linear-gradient(to bottom,rgba(76,56,117,.39) 0 1px,transparent 1px)}.gomoku-board--sakura .gomoku-frame{border-color:#4c387594;box-shadow:inset 0 0 0 1px #ffffff3d}.gomoku-board--sakura .gomoku-cell:not(:disabled):hover:after{background:#432e6c24}.gomoku-board--retro{background-color:#9cceb5;background-image:linear-gradient(135deg,#d4f0d6,#a6d8c1 48%,#79b9ac)}.gomoku-board--retro .gomoku-grid-lines{background-image:linear-gradient(to right,rgba(42,85,75,.38) 0 1px,transparent 1px),linear-gradient(to bottom,rgba(42,85,75,.38) 0 1px,transparent 1px)}.gomoku-board--retro .gomoku-frame{border-color:#2a554b8f;box-shadow:inset 0 0 0 1px #ffffff42}.gomoku-board--retro .gomoku-cell:not(:disabled):hover:after{background:#274f4424}.gomoku-board--neon,.gomoku-board--ocean,.gomoku-board--forest,.gomoku-board--glass{isolation:isolate;overflow:hidden;border-radius:18px;background-color:#7b83b5;background-image:linear-gradient(135deg,#ffffff2b,#fff0 52%,#0f194424);box-shadow:inset 0 1px 1px #ffffff9e,inset 0 -1px 1px #20274b33,0 10px 26px #0000003d}.gomoku-board--neon:before,.gomoku-board--ocean:before,.gomoku-board--forest:before,.gomoku-board--glass:before{content:"";position:absolute;z-index:0;inset:-16%;pointer-events:none;filter:blur(28px);transform:scale(1.08);background:radial-gradient(ellipse at 22% 25%,rgba(255,255,255,.66),transparent 38%),radial-gradient(ellipse at 76% 74%,rgba(255,255,255,.38),transparent 36%)}.gomoku-board--neon .gomoku-cell,.gomoku-board--ocean .gomoku-cell,.gomoku-board--forest .gomoku-cell,.gomoku-board--glass .gomoku-cell,.gomoku-board--neon .gomoku-grid-lines,.gomoku-board--ocean .gomoku-grid-lines,.gomoku-board--forest .gomoku-grid-lines,.gomoku-board--glass .gomoku-grid-lines,.gomoku-board--neon .gomoku-frame,.gomoku-board--ocean .gomoku-frame,.gomoku-board--forest .gomoku-frame,.gomoku-board--glass .gomoku-frame{z-index:1}.gomoku-board--neon{background-color:#8884c2;background-image:linear-gradient(132deg,#5bb7dc8f,#a88bdeb8 55%,#f5c7e38a)}.gomoku-board--neon:before{background:radial-gradient(ellipse at 18% 24%,rgba(232,251,255,.95),transparent 42%),radial-gradient(ellipse at 80% 73%,rgba(220,185,255,.82),transparent 43%)}.gomoku-board--neon .gomoku-grid-lines{background-image:linear-gradient(to right,rgba(52,62,116,.42) 0 1px,transparent 1px),linear-gradient(to bottom,rgba(52,62,116,.42) 0 1px,transparent 1px)}.gomoku-board--neon .gomoku-frame{border-color:#ffffffc7;box-shadow:0 0 0 1px #5a57943d,inset 0 0 0 1px #ffffff40}.gomoku-board--neon .gomoku-cell:not(:disabled):hover:after{background:#3f4a7f26}.gomoku-board--ocean{background-color:#56a8a5;background-image:linear-gradient(135deg,#2aaeafa6,#6fcfc2c2 52%,#5b8db899)}.gomoku-board--ocean:before{background:radial-gradient(ellipse at 24% 19%,rgba(224,255,243,.92),transparent 40%),radial-gradient(ellipse at 78% 76%,rgba(112,205,226,.84),transparent 44%)}.gomoku-board--ocean .gomoku-grid-lines{background-image:linear-gradient(to right,rgba(25,82,91,.4) 0 1px,transparent 1px),linear-gradient(to bottom,rgba(25,82,91,.4) 0 1px,transparent 1px)}.gomoku-board--ocean .gomoku-frame{border-color:#edfff6cc;box-shadow:0 0 0 1px #24686f33,inset 0 0 0 1px #ffffff38}.gomoku-board--ocean .gomoku-cell:not(:disabled):hover:after{background:#144e5224}.gomoku-board--forest{background-color:#829d75;background-image:linear-gradient(135deg,#a3c48bad,#6c9e85b8 52%,#cbcc9194)}.gomoku-board--forest:before{background:radial-gradient(ellipse at 20% 20%,rgba(241,255,204,.9),transparent 42%),radial-gradient(ellipse at 76% 77%,rgba(155,220,193,.8),transparent 44%)}.gomoku-board--forest .gomoku-grid-lines{background-image:linear-gradient(to right,rgba(52,83,65,.4) 0 1px,transparent 1px),linear-gradient(to bottom,rgba(52,83,65,.4) 0 1px,transparent 1px)}.gomoku-board--forest .gomoku-frame{border-color:#f3ffd7b8;box-shadow:0 0 0 1px #30513c33,inset 0 0 0 1px #ffffff38}.gomoku-board--forest .gomoku-cell:not(:disabled):hover:after{background:#30513c26}.gomoku-board--glass{background-color:#b9a7c6;background-image:linear-gradient(135deg,#eec5dab8,#c0aad5b3 52%,#97c3da94)}.gomoku-board--glass:before{background:radial-gradient(ellipse at 24% 22%,rgba(255,244,246,.94),transparent 42%),radial-gradient(ellipse at 79% 78%,rgba(153,214,239,.84),transparent 44%)}.gomoku-board--glass .gomoku-grid-lines{background-image:linear-gradient(to right,rgba(77,69,107,.4) 0 1px,transparent 1px),linear-gradient(to bottom,rgba(77,69,107,.4) 0 1px,transparent 1px)}.gomoku-board--glass .gomoku-frame{border-color:#ffffffc7;box-shadow:0 0 0 1px #5a4e7433,inset 0 0 0 1px #fff3}.gomoku-board--glass .gomoku-cell:not(:disabled):hover:after{background:#4a426624}.gomoku-board .gomoku-grid-lines{background-image:linear-gradient(to right,rgba(255,224,166,.42) 0 .5px,rgba(65,38,18,.9) .5px 1.5px,rgba(76,43,20,.12) 1.5px 2px,transparent 2px),linear-gradient(to bottom,rgba(255,224,166,.42) 0 .5px,rgba(65,38,18,.9) .5px 1.5px,rgba(76,43,20,.12) 1.5px 2px,transparent 2px)}.gomoku-board.gomoku-board--classic .gomoku-frame{border-color:#412612e6;box-shadow:0 0 0 1px #ffe0a66b,inset 0 0 0 1px #4c2b141f}.xiangqi-card{position:relative;border:1px solid rgba(255,255,255,.14);border-radius:18px;padding:14px;margin:6px 0;background:linear-gradient(145deg,#ffffff17,#ffffff09);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);width:100%;max-width:440px}.app-shell.theme-warm .xiangqi-card{background:linear-gradient(145deg,#fffaebd6,#eedab2c2)}.xiangqi-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:0;font-size:14px}.xiangqi-title{display:inline-flex;align-items:center;gap:6px;font-weight:600;flex:0 0 auto;white-space:nowrap}.xiangqi-style-random{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;padding:0;border:1px solid rgba(255,255,255,.18);border-radius:8px;background:#ffffff0f;color:inherit;cursor:pointer;opacity:.75;transition:opacity .15s ease,transform .15s ease,background .15s ease}.xiangqi-style-random:hover{opacity:1;background:#ffffff1f}.xiangqi-style-random:active{transform:rotate(20deg)}.app-shell.theme-warm .xiangqi-style-random{border-color:#4b30144d;background:#69461c1a}.xiangqi-heading{display:flex;align-items:center;gap:15px;flex:1;min-width:0}.xiangqi-status{display:inline-flex;align-items:center;gap:4px;min-width:0;margin-left:auto;margin-right:6px;padding:3px 9px;border-radius:999px;background:#ffffff14;border:1px solid rgba(255,255,255,.14);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:600;line-height:1.2;letter-spacing:.02em;opacity:1;animation:game-status-breathe 2.6s ease-in-out infinite}.app-shell.theme-warm .xiangqi-status{background:#b48c3c24;border-color:#8c641e38;color:#5a3d14}.xiangqi-head{position:relative}.xiangqi-spectator-control{position:static;display:flex;flex:0 0 auto;min-width:0;margin-left:auto}.xiangqi-spectator-trigger{display:inline-flex;flex-wrap:nowrap;flex:0 0 auto;align-items:center;justify-content:flex-end;gap:6px;width:auto;padding:3px 9px;border:1px solid rgba(255,255,255,.14);border-radius:999px;background:#ffffff14;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);color:inherit;cursor:pointer;font:inherit;font-size:11px;font-weight:600;line-height:1.2;white-space:nowrap;animation:game-status-breathe 2.6s ease-in-out infinite}.app-shell.theme-warm .xiangqi-status.xiangqi-spectator-trigger{background:#b48c3c24;border-color:#8c641e38;color:#5a3d14}.xiangqi-status.xiangqi-spectator-trigger{display:inline-flex}.xiangqi-spectator-trigger{position:relative}.xiangqi-spectator-pop{background:#181a20}.app-shell.theme-warm .xiangqi-spectator-pop{background:#fcf3dc}.xiangqi-spectator-pop.online-pop.is-bottom{left:50%;right:auto;top:calc(100% + 2px);bottom:auto;width:min(280px,calc(100vw - 24px));max-width:calc(100% - 16px);max-height:min(380px,48vh);transform:translate(-50%);transform-origin:top center;z-index:30;animation:spectator-pop-rise .22s cubic-bezier(.2,.9,.3,1.15) both}.xiangqi-meta{display:flex;align-items:center;justify-content:flex-end;gap:6px;min-width:0;text-align:right;font-size:12px;line-height:1.2;opacity:.7}.xiangqi-status-dot{width:4px;height:4px;flex:0 0 4px;align-self:center;border-radius:50%;background:currentColor}.xiangqi-players{display:flex;gap:8px;margin-top:10px;flex-wrap:nowrap;min-width:0}.xiangqi-players:empty{display:none}.xiangqi-players:not(:empty){margin-bottom:8px}.xiangqi-player-slot{display:flex;align-items:center;gap:5px;flex:1 1 0;min-width:0}.xiangqi-player-slot+.xiangqi-player-slot{margin-left:8px}.xiangqi-player-avatar{flex:0 0 30px;width:30px;height:30px;border-radius:50%;object-fit:cover;background:#ffffff1f}.xiangqi-ai-avatar{display:grid;place-items:center;flex:0 0 30px;width:30px;height:30px;border-radius:50%;background:#facc1529;border:1px solid rgba(120,105,80,.3);box-sizing:border-box}.xiangqi-ai-avatar svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.xiangqi-player{display:flex;align-items:center;gap:5px;flex:1 1 0;min-width:0;font-size:12px;padding:4px 6px;border-radius:8px;background:#ffffff0d;border:1px solid rgba(120,105,80,.24);box-sizing:border-box}.xiangqi-player.is-turn{box-shadow:0 0 0 2px #facc1599}.xiangqi-player.is-self{font-weight:600}.xiangqi-side-indicator{width:9px;height:9px;flex:0 0 9px;border-radius:50%;box-sizing:border-box}.xiangqi-side-indicator.is-red{background:#d93636;border:1px solid #a91f28;box-shadow:0 0 0 1px #d936362e}.xiangqi-side-indicator.is-black{background:#242321;border:1px solid #a9a49a;box-shadow:0 0 0 1px #fff3}.xiangqi-player-name{display:flex;align-items:center;gap:0;flex:1;min-width:0;overflow:hidden}.xiangqi-player-name-text{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.xiangqi-player-score{font-weight:700;opacity:.8}.xiangqi-empty{font-size:12px;opacity:.6}.xiangqi-result{text-align:center;font-weight:700;color:#facc15}.app-shell.theme-warm .xiangqi-result{color:#000}.xiangqi-result:empty{display:none}.xiangqi-result:not(:empty){margin:4px 0}.xiangqi-board{position:relative;display:grid;grid-template-columns:repeat(9,minmax(0,1fr));grid-template-rows:repeat(10,minmax(0,1fr));margin:6px auto;width:min(100%,408px);aspect-ratio:8 / 9;box-sizing:border-box;touch-action:manipulation}.xiangqi-board--flipped{direction:rtl;transform:scaleY(-1)}.xiangqi-board--flipped>.xiangqi-cell{z-index:2;transform:scaleY(-1)}.xiangqi-board--flipped .xiangqi-river{transform:translateY(-50%) scaleY(-1)}.xiangqi-board--flipped .xiangqi-capture-toast{transform:translate(-50%,-50%) scaleY(-1);animation-name:xiangqi-toast-enter-flipped}.xiangqi-board--flipped .xiangqi-capture-toast.is-check{animation-name:xiangqi-check-alert-flipped}.xiangqi-board--flipped .xiangqi-capture-toast.is-winner{animation-name:xiangqi-winner-glow-flipped}@keyframes xiangqi-toast-enter-flipped{0%{opacity:0;transform:translate(-50%,-46%) scaleY(-1)}to{opacity:1;transform:translate(-50%,-50%) scaleY(-1)}}@keyframes xiangqi-check-alert-flipped{0%{transform:translate(-50%,-50%) scaleY(-1);box-shadow:0 0 0 3px #a91f2429,0 8px 24px #5b080c66}to{transform:translate(-50%,-50%) scaleY(-1);box-shadow:0 0 0 8px #ff4a3f4d,0 8px 30px #5b080c9e}}@keyframes xiangqi-winner-glow-flipped{0%,to{transform:translate(-50%,-50%) scaleY(-1);box-shadow:0 0 0 3px #c4933229,0 8px 24px #3e270759}50%{transform:translate(-50%,-50%) scaleY(-1);box-shadow:0 0 0 8px #ffd56447,0 8px 30px #3e270785}}.xiangqi-board--wood{gap:0;padding:0;background-color:#d99a54;background-image:repeating-linear-gradient(89deg,transparent 0 2px,rgba(108,56,19,.055) 2px 3px,transparent 3px 7px),repeating-linear-gradient(91deg,transparent 0 17px,rgba(255,229,176,.075) 17px 19px,transparent 19px 31px),linear-gradient(90deg,rgba(126,65,24,.16),transparent 16%,rgba(255,226,173,.12) 48%,transparent 78%,rgba(119,58,20,.13)),linear-gradient(180deg,rgba(255,228,177,.12),transparent 24%,rgba(121,64,27,.08));border-radius:8px;box-shadow:inset 0 0 18px #6836142e,0 6px 16px #0003;overflow:hidden}.xiangqi-board--classic{gap:0;padding:0;background:#d9a066;border-radius:8px;box-shadow:0 6px 16px #0003}.xiangqi-cell{background:transparent;border:none}.xiangqi-board--concave{gap:0;padding:0;background:#d9a066;border-radius:8px;box-shadow:0 6px 16px #0003}.xiangqi-board--jade{padding:0;overflow:hidden;border:0;border-radius:12px}.xiangqi-board--jade{--board-ink: rgba(18,56,46,.88);background-color:#173b32;background-image:radial-gradient(ellipse at 18% 12%,rgba(191,226,183,.24),transparent 45%),repeating-linear-gradient(135deg,transparent 0 18px,rgba(218,239,204,.055) 19px,transparent 21px),linear-gradient(145deg,#a5c29a,#58836b 48%,#315c4d);box-shadow:inset 0 0 0 2px #f1da9dd9,inset 0 0 20px #0e2e2575,0 8px 20px #0000004d}.xiangqi-board--jade .xiangqi-frame{border-color:var(--board-ink);box-shadow:0 0 0 1px #f4ddb161,inset 0 0 0 1px #f4ddb11f}.xiangqi-board--jade .xiangqi-grid-lines{opacity:.9}.xiangqi-board--jade .xiangqi-palace line{stroke:var(--board-ink)}.xiangqi-board--jade .xiangqi-river{color:var(--board-ink)}.xiangqi-board--concave .xiangqi-cell{background:transparent}.xiangqi-concave-tiles{position:absolute;inset:5% 5.556%;display:grid;grid-template-columns:repeat(8,minmax(0,1fr));grid-template-rows:repeat(9,minmax(0,1fr));gap:2px;pointer-events:none;z-index:0}.xiangqi-concave-tiles>span{border:1px solid #b8864a;border-radius:4px;background:#f2d2a9;box-shadow:inset 0 2px 4px #00000026,inset 0 -1px 2px #fff9}.xiangqi-concave-tiles>.is-river{visibility:hidden}.xiangqi-board--concave .xiangqi-grid-lines{z-index:1}.xiangqi-board--concave .xiangqi-cell{z-index:2}.xiangqi-board--concave .xiangqi-river{z-index:1}.xiangqi-grid-lines{position:absolute;inset:5% 5.556%;background-image:linear-gradient(to bottom,var(--board-ink, rgba(70,39,17,.82)) .5px,rgba(255,226,173,.34) 1px,transparent 1px),linear-gradient(to right,var(--board-ink, rgba(70,39,17,.82)) .5px,rgba(255,226,173,.34) 1px,transparent 1px),linear-gradient(to right,var(--board-ink, rgba(70,39,17,.82)) .5px,rgba(255,226,173,.34) 1px,transparent 1px);background-size:100% 11.111%,12.5% 44.4%,12.5% 44.4%;background-position:top left,top left,bottom left;background-repeat:repeat-y,repeat-x,repeat-x;pointer-events:none;z-index:1}.xiangqi-frame{position:absolute;inset:5% 5.556%;border:1px solid rgba(65,38,18,.9);box-shadow:0 0 0 1px #ffe0a66b,inset 0 0 0 1px #4c2b141f;pointer-events:none;z-index:1}.xiangqi-palace{position:absolute;inset:5% 5.556%;width:88.889%;height:90%;pointer-events:none;z-index:1}.xiangqi-palace line{stroke:var(--board-ink, rgba(70,39,17,.82));stroke-width:1px;vector-effect:non-scaling-stroke}.xiangqi-river{position:absolute;left:5.556%;right:5.556%;top:50%;transform:translateY(-50%);display:flex;justify-content:space-between;padding:0 12%;pointer-events:none;z-index:1;background:transparent;font-family:LiSu,隶书,STLiti,Kaiti SC,serif;font-size:clamp(14px,4vw,20px);font-weight:700;color:var(--board-ink, rgba(70,39,17,.9));letter-spacing:6px}.xiangqi-cell{position:relative;background:transparent;border:none;padding:0;cursor:pointer;display:flex;align-items:center;justify-content:center;appearance:none;-webkit-tap-highlight-color:transparent}.xiangqi-cell:disabled{cursor:default}.xiangqi-cell.is-selected{background:#facc152e}.xiangqi-cell.is-target{background:#4ade802e}.xiangqi-cell.is-last-from:after{content:"";position:absolute;width:8px;height:8px;border-radius:50%;background:#dc2626d9;z-index:3;box-shadow:0 0 4px #dc262699;top:50%;left:50%;transform:translate(-50%,-50%);animation:xiangqi-origin-pulse 1.25s ease-in-out 4 forwards}.xiangqi-cell.is-last-to .xiangqi-piece{animation:xiangqi-piece-breathe 1s ease-in-out 5}@keyframes xiangqi-origin-pulse{0%{opacity:.45;box-shadow:0 0 2px #dc26264d}50%{opacity:1;box-shadow:0 0 10px 3px #ff3028d9}to{opacity:0;box-shadow:none}}@keyframes xiangqi-piece-breathe{0%,to{filter:drop-shadow(0 0 1px rgba(255,54,44,.2));transform:scale(1)}50%{filter:drop-shadow(0 0 4px rgba(255,238,151,1)) drop-shadow(0 0 10px rgba(255,54,44,.95));transform:scale(1.1)}}.xiangqi-capture-toast{position:absolute;top:50%;left:50%;z-index:8;transform:translate(-50%,-50%);width:max-content;max-width:84%;padding:6px 12px;border:1px solid var(--line, rgba(255,255,255,.22));border-radius:999px;background:var(--surface-raised, rgba(24,26,32,.94));color:var(--ink, #f3efe7);box-shadow:0 8px 24px #00000047;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);font-size:11px;font-weight:700;line-height:1.35;text-align:center;pointer-events:none;animation:xiangqi-toast-pop 2s ease both}.app-shell.theme-warm .xiangqi-capture-toast{--line: rgba(96,62,29,.32);--surface-raised: rgba(255,248,228,.96);--ink: #4c321d}.xiangqi-capture-toast.is-check{padding:10px 22px;border:2px solid #ffb1a9;background:#a91f24;color:#fff;font-size:15px;letter-spacing:.04em;box-shadow:0 0 0 4px #a91f2433,0 8px 28px #5b080c80;animation:xiangqi-check-pop 2s ease both}.xiangqi-capture-toast.is-winner{padding:11px 24px;border:2px solid #fff0b8;border-radius:999px;background:linear-gradient(135deg,#8b641e,#c49332 52%,#79531a);color:#fff9e6;font-size:16px;box-shadow:0 0 0 4px #c4933233,0 8px 28px #3e27076b;animation:xiangqi-winner-pop 2s ease both}.xiangqi-capture-toast.is-winner:before{content:"★";margin-right:8px;color:#fff0b8}.xiangqi-start-toast{position:absolute;top:50%;left:50%;z-index:9;display:inline-flex;align-items:center;gap:8px;transform:translate(-50%,-50%);width:max-content;max-width:84%;padding:11px 20px 11px 16px;border:1px solid rgba(255,255,255,.16);border-radius:14px;background:radial-gradient(120% 140% at 15% 20%,rgba(255,235,160,.28),transparent 45%),linear-gradient(135deg,#222632f5,#161a24f7);color:#fff;backdrop-filter:blur(14px) saturate(1.15);-webkit-backdrop-filter:blur(14px) saturate(1.15);box-shadow:0 8px 32px #00000061,0 0 0 1px #ffffff0f,inset 0 1px #ffffff24;font-size:14px;font-weight:700;line-height:1.35;letter-spacing:.02em;text-align:center;pointer-events:none;animation:game-start-pop 2s ease both}.xiangqi-start-toast:before{content:"✦";flex:0 0 auto;display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:linear-gradient(135deg,#facc15,#f59e0b);color:#422006;font-size:13px;font-weight:800;box-shadow:0 2px 8px #facc1573}.app-shell.theme-warm .xiangqi-start-toast{background:radial-gradient(120% 140% at 15% 20%,rgba(255,248,220,.9),transparent 45%),linear-gradient(135deg,#fffcf0fa,#fff4d7f7);color:#4a2f0a;border-color:#8c641e2e;box-shadow:0 8px 28px #5a3c0f2e,0 0 0 1px #8c641e1a}@keyframes xiangqi-toast-pop{0%{opacity:0;transform:translate(-50%,-46%) scale(.92)}12%{opacity:1;transform:translate(-50%,-50%) scale(1)}82%{opacity:1;transform:translate(-50%,-50%) scale(1)}to{opacity:0;transform:translate(-50%,-50%) scale(.96)}}@keyframes xiangqi-winner-pop{0%{opacity:0;transform:translate(-50%,-46%) scale(.92);box-shadow:0 0 0 3px #c493321a,0 8px 24px #3e270740}12%{opacity:1;transform:translate(-50%,-50%) scale(1);box-shadow:0 0 0 4px #c4933233,0 8px 28px #3e27076b}50%{box-shadow:0 0 0 8px #ffd56442,0 8px 30px #3e270785}82%{opacity:1}to{opacity:0;transform:translate(-50%,-50%) scale(.96)}}@keyframes xiangqi-check-pop{0%{opacity:0;transform:translate(-50%,-46%) scale(.92);box-shadow:0 0 0 3px #a91f241a,0 8px 24px #5b080c4d}12%{opacity:1;transform:translate(-50%,-50%) scale(1);box-shadow:0 0 0 4px #a91f2433,0 8px 28px #5b080c80}50%{box-shadow:0 0 0 8px #ff4a3f4d,0 8px 30px #5b080c9e}82%{opacity:1}to{opacity:0;transform:translate(-50%,-50%) scale(.96)}}.xiangqi-board--flipped .xiangqi-start-toast{animation-name:game-start-pop-flipped}@keyframes game-start-pop-flipped{0%{opacity:0;transform:translate(-50%,-46%) scaleY(-1) scale(.92)}12%{opacity:1;transform:translate(-50%,-50%) scaleY(-1) scale(1)}82%{opacity:1;transform:translate(-50%,-50%) scaleY(-1) scale(1)}to{opacity:0;transform:translate(-50%,-50%) scaleY(-1) scale(.96)}}.xiangqi-board--flipped .xiangqi-capture-toast{animation-name:xiangqi-toast-pop-flipped}.xiangqi-board--flipped .xiangqi-capture-toast.is-check{animation-name:xiangqi-check-pop-flipped}.xiangqi-board--flipped .xiangqi-capture-toast.is-winner{animation-name:xiangqi-winner-pop-flipped}@keyframes xiangqi-toast-pop-flipped{0%{opacity:0;transform:translate(-50%,-46%) scaleY(-1) scale(.92)}12%{opacity:1;transform:translate(-50%,-50%) scaleY(-1) scale(1)}82%{opacity:1;transform:translate(-50%,-50%) scaleY(-1) scale(1)}to{opacity:0;transform:translate(-50%,-50%) scaleY(-1) scale(.96)}}@keyframes xiangqi-check-pop-flipped{0%{opacity:0;transform:translate(-50%,-46%) scaleY(-1) scale(.92)}12%{opacity:1;transform:translate(-50%,-50%) scaleY(-1) scale(1)}82%{opacity:1}to{opacity:0;transform:translate(-50%,-50%) scaleY(-1) scale(.96)}}@keyframes xiangqi-winner-pop-flipped{0%{opacity:0;transform:translate(-50%,-46%) scaleY(-1) scale(.92)}12%{opacity:1;transform:translate(-50%,-50%) scaleY(-1) scale(1)}82%{opacity:1}to{opacity:0;transform:translate(-50%,-50%) scaleY(-1) scale(.96)}}.xiangqi-piece{position:relative;width:80%;height:80%;border-radius:50%;display:grid;place-items:center;font-family:LiSu,隶书,STLiti,Kaiti SC,serif;font-size:clamp(12px,3.6vw,18px);font-weight:700;line-height:1;z-index:2;box-shadow:0 4px 8px #00000073,0 1px 2px #00000059,inset 0 2px 4px #ffffffe6,inset 0 -3px 4px #00000040;text-shadow:0 1px 0 rgba(255,255,255,.7);-webkit-user-select:none;user-select:none;overflow:hidden}.xiangqi-moving-piece{position:absolute;z-index:12;margin:0;pointer-events:none}.xiangqi-piece.is-red{color:#b0201a;background:radial-gradient(circle at 32% 28%,#fff7e6,#e8c98a 60%,#d4a85a);border:2px solid #8a5a2a}.xiangqi-piece.is-red:before{content:"";position:absolute;inset:3px;border-radius:50%;border:1px solid rgba(138,90,42,.45);pointer-events:none}.xiangqi-piece.is-black{color:#1a1a1a;background:radial-gradient(circle at 32% 28%,#fff,#d8d8d8 60%,#b0b0b0);border:2px solid #555}.xiangqi-board--concave .xiangqi-piece.is-red,.xiangqi-board--concave .xiangqi-piece.is-black{border:0;box-shadow:0 3px 6px #00000047,inset 0 2px 4px #ffffffe6,inset 0 -3px 4px #0000002e}.xiangqi-board--concave .xiangqi-piece.is-red:before,.xiangqi-board--concave .xiangqi-piece.is-black:before{content:none}.xiangqi-piece.is-black:before{content:"";position:absolute;inset:3px;border-radius:50%;border:1px solid rgba(85,85,85,.45);pointer-events:none}.xiangqi-dot{width:8px;height:8px;border-radius:50%;background:#2e7d32;z-index:2}.xiangqi-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.xiangqi-actions:empty{display:none}.xiangqi-actions:not(:empty){margin-top:10px}.xiangqi-confirm-backdrop{position:absolute;inset:0;z-index:2000;display:grid;place-items:center;padding:20px;background:#080a0e9e;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.xiangqi-confirm{width:min(100%,340px);padding:18px;border:1px solid rgba(255,255,255,.14);border-radius:16px;color:var(--ink, #f3efe7);background:var(--surface-raised, #202127);box-shadow:0 16px 44px #00000059}.xiangqi-confirm h3{margin:0 0 8px;font-size:16px}.xiangqi-confirm p{margin:0;font-size:13px;line-height:1.5;opacity:.76}.xiangqi-confirm-actions{display:flex;gap:8px;margin-top:18px}.xiangqi-confirm-actions>button{flex:1;min-width:0}.xiangqi-confirm-cancel{min-height:36px;padding:0 12px;border:1px solid rgba(255,255,255,.18);border-radius:13px;color:inherit;background:#ffffff14}.app-shell.theme-warm .xiangqi-confirm-cancel{color:var(--ink);background:#69461c1f;border-color:#4b301459}@media(hover:hover)and (pointer:fine){.xiangqi-cell:not(:disabled):hover:after{content:"";position:absolute;width:30%;height:30%;border-radius:50%;background:#0000002e;z-index:1;top:50%;left:50%;transform:translate(-50%,-50%)}}.xiangqi-card{isolation:isolate;contain:layout paint;transform:translateZ(0);backface-visibility:hidden}.xiangqi-card.has-spectator-pop{contain:none!important;transform:none!important;overflow:visible!important;isolation:auto!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;filter:none!important}@media(max-width:820px){.xiangqi-card{box-sizing:border-box;max-width:none}.xiangqi-board{width:100%;max-width:none}.xiangqi-head,.xiangqi-heading{align-items:center}.xiangqi-status{display:block;position:static;top:auto}.xiangqi-actions button,.xiangqi-confirm-actions button{min-height:36px;padding:0 10px;font-size:13px;font-weight:700;letter-spacing:0}.xiangqi-confirm-cancel{min-height:36px}}@media(max-width:420px){.xiangqi-card{padding:10px;border-radius:15px}.xiangqi-player{min-width:0}.xiangqi-player-slot{gap:4px}.xiangqi-player-avatar,.xiangqi-ai-avatar{flex-basis:26px;width:26px;height:26px}.xiangqi-ai-avatar svg{width:19px;height:19px}.xiangqi-player{gap:4px;padding:4px 5px;font-size:11px}}@media(prefers-reduced-motion:reduce){.xiangqi-status,.xiangqi-spectator-trigger{animation:none}.xiangqi-capture-toast,.xiangqi-start-toast{animation:none;opacity:1;transform:translate(-50%,-50%)}.xiangqi-board--flipped .xiangqi-capture-toast,.xiangqi-board--flipped .xiangqi-start-toast{animation:none;transform:translate(-50%,-50%) scaleY(-1)}}.chess-card{position:relative;width:100%;max-width:440px;margin:6px 0;padding:14px;border:1px solid rgba(255,255,255,.14);border-radius:18px;background:linear-gradient(145deg,#ffffff17,#ffffff09);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-sizing:border-box;color:inherit}.app-shell.theme-warm .chess-card{background:linear-gradient(145deg,#fffaebd6,#eedab2c2)}.chess-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:0;font-size:14px}.chess-heading{display:flex;align-items:center;gap:15px;flex:1;min-width:0}.chess-title{display:inline-flex;align-items:center;gap:6px;font-weight:600;flex:0 0 auto;white-space:nowrap}.chess-status{display:inline-flex;align-items:center;gap:4px;min-width:0;margin-left:auto;margin-right:6px;padding:3px 9px;border-radius:999px;background:#ffffff14;border:1px solid rgba(255,255,255,.14);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:600;line-height:1.2;letter-spacing:.02em;opacity:1;animation:game-status-breathe 2.6s ease-in-out infinite}.app-shell.theme-warm .chess-status{background:#b48c3c24;border-color:#8c641e38;color:#5a3d14}@keyframes game-status-breathe{0%,to{opacity:.86;transform:scale(1);box-shadow:0 0 #facc1500,0 1px 4px #00000014}50%{opacity:1;transform:scale(1.045);box-shadow:0 0 0 2px #facc1524,0 0 12px 2px #facc1533,0 3px 8px #0000001f}}.chess-meta{display:flex;align-items:center;justify-content:flex-end;gap:6px;min-width:0;text-align:right;font-size:12px;line-height:1.2;opacity:.7}.chess-status-dot{width:4px;height:4px;flex:0 0 4px;border-radius:50%;background:currentColor}.chess-head{position:relative}.chess-spectator-control{position:static;display:flex;flex:0 0 auto;min-width:0;margin-left:auto}.chess-spectator-trigger{display:inline-flex;flex-wrap:nowrap;align-items:center;justify-content:flex-end;gap:6px;width:auto;padding:3px 9px;border:1px solid rgba(255,255,255,.14);border-radius:999px;background:#ffffff14;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);color:inherit;cursor:pointer;font:inherit;font-size:11px;font-weight:600;line-height:1.2;white-space:nowrap;animation:game-status-breathe 2.6s ease-in-out infinite}.app-shell.theme-warm .chess-status.chess-spectator-trigger{background:#b48c3c24;border-color:#8c641e38;color:#5a3d14}.chess-spectator-pop{background:#181a20}.app-shell.theme-warm .chess-spectator-pop{background:#fcf3dc}.chess-spectator-pop.online-pop.is-bottom{left:50%;right:auto;top:calc(100% + 2px);bottom:auto;width:min(280px,calc(100vw - 24px));max-width:calc(100% - 16px);max-height:min(380px,48vh);transform:translate(-50%);transform-origin:top center;z-index:30;animation:spectator-pop-rise .22s cubic-bezier(.2,.9,.3,1.15) both}@keyframes spectator-pop-rise{0%{opacity:0;transform:translate(-50%) translateY(8px) scale(.92)}to{opacity:1;transform:translate(-50%) translateY(0) scale(1)}}.chess-players{display:flex;gap:8px;margin-top:10px;flex-wrap:nowrap;min-width:0}.chess-players:empty{display:none}.chess-players:not(:empty){margin-bottom:8px}.chess-player-slot{display:flex;align-items:center;gap:5px;flex:1 1 0;min-width:0}.chess-player-slot+.chess-player-slot{margin-left:8px}.chess-player-avatar,.chess-ai-avatar{flex:0 0 30px;width:30px;height:30px;border-radius:50%;box-sizing:border-box}.chess-player-avatar{object-fit:cover;background:#ffffff1f}.chess-ai-avatar{display:grid;place-items:center;background:#facc1529;border:1px solid rgba(120,105,80,.3)}.chess-ai-avatar svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.chess-player{display:flex;align-items:center;gap:5px;flex:1;min-width:0;padding:4px 6px;border:1px solid rgba(120,105,80,.24);border-radius:8px;background:#ffffff0d;box-sizing:border-box;font-size:12px}.chess-player.is-turn{box-shadow:0 0 0 2px #facc1599}.chess-player.is-self{font-weight:600}.chess-side-indicator{width:9px;height:9px;flex:0 0 9px;border-radius:50%;box-sizing:border-box}.chess-side-indicator.is-white{background:#f4ebd5;border:1px solid #a89776;box-shadow:0 0 0 1px #fff3}.chess-side-indicator.is-black{background:#242321;border:1px solid #a9a49a;box-shadow:0 0 0 1px #fff3}.chess-player-name{display:flex;align-items:center;gap:0;flex:1;min-width:0;overflow:hidden}.chess-player-name-text{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chess-player-score{font-weight:700;opacity:.8;margin-left:4px}.chess-empty{font-size:12px;opacity:.6}.chess-result{text-align:center;font-weight:700;color:#facc15}.app-shell.theme-warm .chess-result{color:#000}.chess-result:empty{display:none}.chess-result:not(:empty){margin:4px 0}.chess-board{position:relative;display:grid;grid-template-columns:repeat(8,minmax(0,1fr));grid-template-rows:repeat(8,minmax(0,1fr));gap:0;width:min(100%,408px);aspect-ratio:1;margin:6px auto;border:7px solid #30251a;border-radius:8px;overflow:hidden;box-sizing:border-box;background:#35271b;box-shadow:0 9px 24px #0005,inset 0 0 0 1px #e1c796;touch-action:manipulation}.app-shell.theme-warm .chess-board{border-color:#593b23;box-shadow:0 8px 18px #68401e42,inset 0 0 0 1px #f4dfb4}.chess-board--flipped{transform:rotate(180deg)}.chess-board--flipped>.chess-square{transform:rotate(180deg)}.chess-square{position:relative;display:grid;place-items:center;width:100%;height:100%;min-width:0;min-height:0;padding:0;border:0;border-radius:0;cursor:pointer;touch-action:manipulation}.chess-square.is-light{background:linear-gradient(145deg,#f2dfbc,#dfc294)}.chess-square.is-dark{background:linear-gradient(145deg,#9c6844,#70452f)}.chess-square.is-last{box-shadow:inset 0 0 0 100px #d6af5945}.chess-square.is-last .chess-piece{animation:chess-piece-breathe 1.15s ease-in-out 3 .5s}.chess-square.is-selected{box-shadow:inset 0 0 0 3px #f2c35d,inset 0 0 0 100px #f4d17855;z-index:1}.chess-square.is-target:after{content:"";position:absolute;width:22%;aspect-ratio:1;border-radius:50%;background:#35433365;box-shadow:0 0 0 1px #fff4;pointer-events:none}.chess-square.is-target:has(.chess-piece):after{width:84%;background:transparent;border:4px solid #de544a9c;box-sizing:border-box}.chess-square small,.chess-square em{position:absolute;z-index:5;font:800 11px/1 ui-monospace,monospace;color:#1a1208;font-style:normal;pointer-events:none;text-shadow:0 0 3px rgba(255,248,220,.95),0 1px 0 rgba(255,255,255,.9);background:#f8eed09e;padding:1px 2px;border-radius:2px;line-height:1;font-weight:800}.chess-square small{bottom:2px;right:2px}.chess-square em{top:2px;left:2px}.chess-piece{position:relative;z-index:1;display:block;width:94%;height:94%;object-fit:contain;-webkit-user-select:none;user-select:none;pointer-events:none;filter:drop-shadow(0 2px 1px #21180c55);transition:transform .16s ease}.chess-square:not(:disabled):hover .chess-piece{transform:translateY(-2px)}.chess-moving-piece{position:absolute;z-index:12;margin:0;object-fit:contain;pointer-events:none;filter:drop-shadow(0 4px 4px #21180c88)}.chess-capture-toast{position:absolute;top:50%;left:50%;z-index:13;width:max-content;max-width:84%;transform:translate(-50%,-50%);border:1px solid var(--line,rgba(255,255,255,.22));border-radius:999px;background:var(--surface-raised,rgba(24,26,32,.94));color:var(--ink,#f3efe7);box-shadow:0 8px 24px #0005;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);font-size:11px;font-weight:700;line-height:1.35;text-align:center;pointer-events:none;padding:6px 12px;animation:chess-toast-pop 2s ease both}.chess-start-toast{position:absolute;top:50%;left:50%;z-index:14;display:inline-flex;align-items:center;gap:8px;width:max-content;max-width:84%;transform:translate(-50%,-50%);padding:11px 20px 11px 16px;border:1px solid rgba(255,255,255,.16);border-radius:14px;background:radial-gradient(120% 140% at 15% 20%,rgba(255,235,160,.28),transparent 45%),linear-gradient(135deg,#222632f5,#161a24f7);color:#fff;backdrop-filter:blur(14px) saturate(1.15);-webkit-backdrop-filter:blur(14px) saturate(1.15);box-shadow:0 8px 32px #00000061,0 0 0 1px #ffffff0f,inset 0 1px #ffffff24;font-size:14px;font-weight:700;line-height:1.35;letter-spacing:.02em;text-align:center;pointer-events:none;animation:game-start-pop 2s ease both}.chess-start-toast:before{content:"✦";flex:0 0 auto;display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:linear-gradient(135deg,#facc15,#f59e0b);color:#422006;font-size:13px;font-weight:800;box-shadow:0 2px 8px #facc1573}.app-shell.theme-warm .chess-start-toast{background:radial-gradient(120% 140% at 15% 20%,rgba(255,248,220,.9),transparent 45%),linear-gradient(135deg,#fffcf0fa,#fff4d7f7);color:#4a2f0a;border-color:#8c641e2e;box-shadow:0 8px 28px #5a3c0f2e,0 0 0 1px #8c641e1a}.app-shell.theme-warm .chess-capture-toast,.app-shell.theme-warm .chess-start-toast{--line:rgba(96,62,29,.32);--surface-raised:rgba(255,248,228,.96);--ink:#4c321d}.chess-capture-toast.is-check{padding:10px 22px;border:2px solid #ffb1a9;background:#a91f24;color:#fff;font-size:15px;letter-spacing:.04em;box-shadow:0 0 0 4px #a91f2433,0 8px 28px #5b080c80;animation:chess-check-pop 2s ease both}.chess-capture-toast.is-winner{padding:11px 24px;border:2px solid #fff0b8;border-radius:14px;background:linear-gradient(135deg,#8b641e,#c49332 52%,#79531a);color:#fff9e6;font-size:16px;box-shadow:0 0 0 4px #c4933233,0 8px 28px #3e27076b;animation:chess-winner-pop 2s ease both}.chess-capture-toast.is-winner:before{content:"★";margin-right:8px;color:#fff0b8}.chess-board--flipped .chess-capture-toast{transform:translate(-50%,-50%) rotate(180deg);animation-name:chess-toast-pop-flipped}.chess-board--flipped .chess-capture-toast.is-check{animation-name:chess-check-pop-flipped}.chess-board--flipped .chess-capture-toast.is-winner{animation-name:chess-winner-pop-flipped}.chess-board--flipped .chess-start-toast{transform:translate(-50%,-50%) rotate(180deg);animation-name:game-start-pop-flipped}@keyframes chess-toast-pop{0%{opacity:0;transform:translate(-50%,-46%) scale(.92)}12%{opacity:1;transform:translate(-50%,-50%) scale(1)}82%{opacity:1;transform:translate(-50%,-50%) scale(1)}to{opacity:0;transform:translate(-50%,-50%) scale(.96)}}@keyframes chess-toast-pop-flipped{0%{opacity:0;transform:translate(-50%,-46%) rotate(180deg) scale(.92)}12%{opacity:1;transform:translate(-50%,-50%) rotate(180deg) scale(1)}82%{opacity:1;transform:translate(-50%,-50%) rotate(180deg) scale(1)}to{opacity:0;transform:translate(-50%,-50%) rotate(180deg) scale(.96)}}@keyframes game-start-pop{0%{opacity:0;transform:translate(-50%,-46%) scale(.92)}12%{opacity:1;transform:translate(-50%,-50%) scale(1)}82%{opacity:1;transform:translate(-50%,-50%) scale(1)}to{opacity:0;transform:translate(-50%,-50%) scale(.96)}}@keyframes game-start-pop-flipped{0%{opacity:0;transform:translate(-50%,-46%) rotate(180deg) scale(.92)}12%{opacity:1;transform:translate(-50%,-50%) rotate(180deg) scale(1)}82%{opacity:1;transform:translate(-50%,-50%) rotate(180deg) scale(1)}to{opacity:0;transform:translate(-50%,-50%) rotate(180deg) scale(.96)}}@keyframes chess-check-pop{0%{opacity:0;transform:translate(-50%,-46%) scale(.92);box-shadow:0 0 0 3px #a91f2429,0 8px 24px #5b080c66}12%{opacity:1;transform:translate(-50%,-50%) scale(1);box-shadow:0 0 0 4px #a91f2433,0 8px 28px #5b080c80}50%{box-shadow:0 0 0 8px #ff4a4f4d,0 8px 30px #5b080c9e}82%{opacity:1}to{opacity:0;transform:translate(-50%,-50%) scale(.96)}}@keyframes chess-check-pop-flipped{0%{opacity:0;transform:translate(-50%,-46%) rotate(180deg) scale(.92)}12%{opacity:1;transform:translate(-50%,-50%) rotate(180deg) scale(1)}82%{opacity:1}to{opacity:0;transform:translate(-50%,-50%) rotate(180deg) scale(.96)}}@keyframes chess-winner-pop{0%{opacity:0;transform:translate(-50%,-46%) scale(.92);box-shadow:0 0 0 3px #c4933229,0 8px 24px #3e270759}12%{opacity:1;transform:translate(-50%,-50%) scale(1);box-shadow:0 0 0 4px #c4933233,0 8px 28px #3e27076b}50%{box-shadow:0 0 0 8px #ffd56447,0 8px 30px #3e270785}82%{opacity:1}to{opacity:0;transform:translate(-50%,-50%) scale(.96)}}@keyframes chess-winner-pop-flipped{0%{opacity:0;transform:translate(-50%,-46%) rotate(180deg) scale(.92)}12%{opacity:1;transform:translate(-50%,-50%) rotate(180deg) scale(1)}82%{opacity:1}to{opacity:0;transform:translate(-50%,-50%) rotate(180deg) scale(.96)}}@keyframes chess-piece-breathe{0%,to{filter:drop-shadow(0 2px 1px #21180c55);transform:scale(1)}50%{filter:drop-shadow(0 0 7px #ffda72);transform:scale(1.09)}}.chess-actions{display:flex;align-items:center;gap:8px}.chess-actions:empty{display:none}.chess-actions:not(:empty){margin-top:10px}.chess-actions>.btn-accent{flex:1;min-width:0}.chess-confirm-backdrop{position:fixed;inset:0;z-index:10000;display:grid;place-items:center;padding:18px;background:#06080c94;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.chess-confirm{width:min(100%,360px);padding:18px;border:1px solid rgba(255,255,255,.16);border-radius:16px;background:#181a20;color:#f4f1e8;box-shadow:0 16px 50px #0007}.app-shell.theme-warm .chess-confirm{background:#fcf3dc;color:#42301d;border-color:#4b30143d}.chess-confirm h3{margin:0 0 8px;font-size:16px}.chess-confirm p{margin:0;font-size:13px;line-height:1.5;opacity:.76}.chess-confirm-actions{display:flex;gap:8px;margin-top:16px}.chess-confirm-actions>button{flex:1;min-width:0}.chess-confirm-cancel{min-height:36px;border:1px solid rgba(255,255,255,.2);border-radius:8px;background:#ffffff0f;color:inherit;font:inherit;cursor:pointer}.app-shell.theme-warm .chess-confirm-cancel{border-color:#50371940;background:#7d501e14}@media(hover:hover)and (pointer:fine){.chess-square:not(:disabled):hover{filter:brightness(1.06)}}@media(hover:none),(pointer:coarse){.chess-board{touch-action:pan-y;-webkit-overflow-scrolling:touch}.chess-square:hover{background-color:transparent;filter:none}.chess-square:not(:disabled):hover .chess-piece{transform:none}}@media(max-width:520px){.chess-card{box-sizing:border-box;max-width:none}.chess-board{width:100%;max-width:none;border-width:5px}.chess-head,.chess-heading{align-items:center}.chess-status{display:block;position:static}.chess-actions button,.chess-confirm-actions button,.chess-confirm-cancel{min-height:36px}}@media(max-width:360px){.chess-player-slot{gap:4px}.chess-player-avatar,.chess-ai-avatar{flex-basis:26px;width:26px;height:26px}.chess-ai-avatar svg{width:19px;height:19px}.chess-player{gap:4px;padding:4px 5px;font-size:11px}.chess-side-indicator{width:8px;height:8px;flex-basis:8px}}.chess-card{isolation:isolate;contain:layout paint;transform:translateZ(0);backface-visibility:hidden}.chess-card.has-spectator-pop{contain:none!important;transform:none!important;overflow:visible!important;isolation:auto!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;filter:none!important}@media(prefers-reduced-motion:reduce){.chess-piece{transition:none}.chess-status,.chess-spectator-trigger,.chess-square.is-last .chess-piece,.chess-capture-toast,.chess-start-toast{animation:none}}.chess-tutor-backdrop{position:fixed;inset:0;z-index:10000;display:grid;place-items:center;padding:18px;box-sizing:border-box;background:#06080c94;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.chess-tutor-panel{width:min(100%,420px);max-height:min(86vh,720px);max-height:min(86dvh,720px);display:grid;grid-template-rows:auto 1fr auto;overflow:hidden;border:1px solid rgba(255,255,255,.14);border-radius:18px;background:#1c1e26;color:#f4f1e8;box-shadow:0 24px 64px #0008;box-sizing:border-box}.app-shell.theme-warm .chess-tutor-panel{background:#fdf6e3;color:#3d2a12;border-color:#5a3c142e}.chess-tutor-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px 10px;border-bottom:1px solid rgba(255,255,255,.08)}.app-shell.theme-warm .chess-tutor-head{border-color:#5a3c141f}.chess-tutor-title{margin:0;font-size:15px;font-weight:700;letter-spacing:.02em}.chess-tutor-close{width:30px;height:30px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.14);border-radius:50%;background:#ffffff0f;color:inherit;font-size:18px;line-height:1;cursor:pointer}.app-shell.theme-warm .chess-tutor-close{border-color:#5a3c142e;background:#5a3c140f}.chess-tutor-loading{display:flex;align-items:center;justify-content:center;gap:10px;padding:28px 16px;color:inherit;opacity:.85;font-size:13px;min-height:80px}.chess-tutor-spinner{width:18px;height:18px;border:2px solid rgba(255,255,255,.18);border-top-color:#facc15;border-radius:50%;animation:chess-tutor-spin .7s linear infinite;flex-shrink:0}.app-shell.theme-warm .chess-tutor-spinner{border-color:#3d241224;border-top-color:#b7791f}@keyframes chess-tutor-spin{to{transform:rotate(360deg)}}.chess-tutor-error{overflow:auto;padding:16px;text-align:center;min-height:0}.chess-tutor-error p{margin:0 0 8px;font-size:13px;line-height:1.5}.chess-tutor-error-detail{font-size:11px;opacity:.6;word-break:break-all}.chess-tutor-retry{margin-top:8px;min-height:34px}.chess-tutor-body{overflow-y:auto;overflow-x:hidden;padding:12px 16px 6px;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;min-height:0;scrollbar-width:thin;scrollbar-color:var(--line,rgba(255,255,255,.18)) transparent}.chess-tutor-body::-webkit-scrollbar{width:6px;height:6px}.chess-tutor-body::-webkit-scrollbar-track{background:transparent}.chess-tutor-body::-webkit-scrollbar-thumb{background:var(--line,rgba(255,255,255,.18));border-radius:999px}.chess-tutor-body::-webkit-scrollbar-thumb:hover{background:var(--line,rgba(255,255,255,.28))}.app-shell.theme-warm .chess-tutor-body{scrollbar-color:rgba(61,36,18,.18) transparent}.app-shell.theme-warm .chess-tutor-body::-webkit-scrollbar-thumb{background:#3d24122e}.app-shell.theme-warm .chess-tutor-body::-webkit-scrollbar-thumb:hover{background:#3d241247}.chess-tutor-section{margin-bottom:12px;padding:10px 12px;border:1px solid rgba(255,255,255,.08);border-radius:12px;background:#ffffff0a}.app-shell.theme-warm .chess-tutor-section{border-color:#5a3c141a;background:#5a3c140d}.chess-tutor-section h4{margin:0 0 6px;font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;opacity:.9}.chess-tutor-section p{margin:0;font-size:13px;line-height:1.6;opacity:.88;overflow-wrap:anywhere;word-break:break-word}.chess-tutor-section.is-answer{border-color:#facc1547;background:#facc1514}.chess-tutor-expandable{display:inline}.chess-tutor-expand-btn{margin-left:6px;padding:2px 8px;border:1px solid rgba(250,204,21,.32);border-radius:999px;background:#facc151f;color:inherit;font:inherit;font-size:11px;font-weight:700;cursor:pointer}.app-shell.theme-warm .chess-tutor-expand-btn{border-color:#5a3c1433;background:#5a3c1414}.chess-tutor-recs{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.chess-tutor-rec{padding:8px 10px;border:1px solid rgba(255,255,255,.08);border-radius:10px;background:#ffffff08;transition:border-color .15s,background .15s}.chess-tutor-rec.is-selected{border-color:#facc1580;background:#facc151a}.app-shell.theme-warm .chess-tutor-rec{border-color:#5a3c141a;background:#ffffff80}.chess-tutor-rec-btn{display:flex;align-items:center;gap:8px;width:100%;padding:0;border:0;background:transparent;color:inherit;cursor:pointer;text-align:left}.chess-tutor-rec-move{font-weight:700;font-size:14px;letter-spacing:.02em}.chess-tutor-rec-tag{padding:2px 6px;border-radius:999px;background:#facc152e;border:1px solid rgba(250,204,21,.3);font-size:10px;font-weight:700;letter-spacing:.03em}.chess-tutor-rec-reason{margin:6px 0 0;font-size:12px;line-height:1.5;opacity:.8;overflow-wrap:anywhere}.chess-tutor-rec-hint{font-size:10px;opacity:.5}.chess-tutor-empty{font-size:12px;opacity:.6}.chess-tutor-quality{margin-left:6px;padding:2px 6px;border-radius:999px;font-size:11px;font-weight:700}.chess-tutor-quality.is-good{background:#22c55e2e;color:#4ade80}.chess-tutor-quality.is-ok{background:#facc152e;color:#facc15}.chess-tutor-quality.is-mistake{background:#ef44442e;color:#f87171}.chess-tutor-better{margin-top:6px;font-size:12px}.chess-tutor-encouragement{margin:4px 0 8px;padding:8px 10px;border-radius:10px;background:linear-gradient(135deg,#facc151f,#facc150a);font-size:12px;font-style:italic;opacity:.85}.chess-tutor-ask{padding:10px 16px;border-top:1px solid rgba(255,255,255,.08);background:#0000002e;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.app-shell.theme-warm .chess-tutor-ask{border-color:#5a3c141a;background:#5a3c140a}.chess-tutor-ask-row{display:flex;gap:8px;align-items:center}.chess-tutor-input{flex:1;min-width:0;height:36px;padding:0 12px;border:1px solid rgba(255,255,255,.14);border-radius:10px;background:#ffffff0f;color:inherit;font:inherit;font-size:13px;outline:none}.chess-tutor-input::placeholder{opacity:.5}.chess-tutor-input:focus{border-color:#facc1580;box-shadow:0 0 0 2px #facc1526}.app-shell.theme-warm .chess-tutor-input{border-color:#5a3c142e;background:#fff9}.chess-tutor-send{flex:0 0 auto;min-height:36px;padding:0 14px;white-space:nowrap}.chess-tutor-hl-from{box-shadow:inset 0 0 0 3px #facc15,inset 0 0 0 100px #facc1530!important;z-index:2}.chess-tutor-hl-to{box-shadow:inset 0 0 0 3px #22c55e,inset 0 0 0 100px #22c55e26!important;z-index:2}@media(max-width:520px){.chess-tutor-backdrop{padding:14px}.chess-tutor-panel{width:min(100%,420px);max-height:80vh;max-height:80dvh;border-radius:18px}}.world-mud-card{width:100%;max-width:440px;box-sizing:border-box;--wm-bg: color-mix(in srgb, var(--card-bg, #fff) 97%, transparent);--wm-border: color-mix(in srgb, var(--border, #e8e0d6) 78%, transparent);--wm-gold: #c9a86a;--wm-ink: var(--ink, #1a1a1e);--wm-mute: var(--ink-mute, #8a8380);position:relative;overflow:hidden;background:var(--wm-bg);border:1px solid var(--wm-border);border-radius:16px;padding:12px;display:flex;flex-direction:column;gap:10px;box-shadow:0 8px 24px #16120e14,0 1px 6px #16120e0f}.world-mud-card:before{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;background:linear-gradient(135deg,color-mix(in srgb,var(--wm-gold) 22%,transparent),transparent 60%);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none;opacity:.5}.world-mud-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.world-mud-head-text{gap:5px}.world-mud-title{margin-bottom:5px}.world-mud-head-main{display:flex;align-items:center;gap:9px;min-width:0}.world-mud-icon{width:28px;height:28px;display:grid;place-items:center;border-radius:8px;background:linear-gradient(135deg,var(--wm-gold),#e8c99a);color:#fff;font-size:14px;flex-shrink:0}.world-mud-head-text{display:flex;flex-direction:column;min-width:0}.world-mud-title{font-size:13px;font-weight:800;color:var(--wm-ink);line-height:1.1}.world-mud-loc{font-size:11px;color:var(--wm-mute);line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.world-mud-online{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:800;color:var(--wm-ink);background:color-mix(in srgb,var(--wm-gold) 12%,transparent);border:1px solid color-mix(in srgb,var(--wm-gold) 18%,transparent);padding:5px 10px;border-radius:999px;cursor:pointer;flex-shrink:0}.world-mud-online-dot{width:7px;height:7px;border-radius:50%;background:#2ecc71;box-shadow:0 0 6px #2ecc7180}.world-mud-event{display:flex;align-items:center;gap:6px;padding:6px 10px;border-radius:10px;background:color-mix(in srgb,var(--wm-gold) 10%,var(--wm-bg) 90%);border:1px solid color-mix(in srgb,var(--wm-gold) 16%,transparent);font-size:11px}.world-mud-event-desc{color:var(--wm-mute);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.world-mud-online-pop{border:1px solid color-mix(in srgb,var(--wm-border) 80%,transparent);border-radius:12px;overflow:hidden;background:color-mix(in srgb,var(--card-bg, #fff) 96%,transparent)}.world-mud-online-pop-head{font-size:11px;font-weight:700;color:var(--wm-mute);padding:7px 10px;border-bottom:1px solid color-mix(in srgb,var(--wm-border) 60%,transparent);background:color-mix(in srgb,var(--wm-gold) 6%,transparent)}.world-mud-online-pop-list{max-height:140px;overflow-y:auto;padding:6px 8px;display:flex;flex-direction:column;gap:4px}.world-mud-online-pop-item{display:flex;gap:6px;align-items:center;font-size:12px;color:var(--wm-ink)}.world-mud-online-pop-name{font-weight:800}.world-mud-online-pop-role{color:var(--wm-mute);font-size:11px}.world-mud-online-pop-at{margin-left:auto;font-size:11px;color:var(--wm-mute)}.world-mud-online-pop-empty{font-size:12px;color:var(--wm-mute);font-style:italic;padding:8px}.world-mud-scene-wrap{position:relative}.world-mud-scene{font-size:14.5px;line-height:1.7;color:var(--wm-ink);white-space:pre-wrap;background:color-mix(in srgb,var(--card-bg, #fff) 94%,transparent);border:1px solid color-mix(in srgb,var(--border, #e8e0d6) 55%,transparent);border-radius:12px;padding:10px 12px;min-height:48px}.world-mud-acting-mask{position:absolute;inset:0;z-index:2;display:grid;place-items:center;background:#ffffffb8;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);border-radius:12px;border:1px solid color-mix(in srgb,var(--wm-gold) 18%,transparent)}.world-mud-acting-inner{display:flex;flex-direction:column;align-items:center;gap:10px}.world-mud-acting-orb{display:flex;align-items:center;gap:6px}.world-mud-acting-orb i{width:8px;height:8px;border-radius:50%;background:var(--wm-gold);animation:wm-bounce .9s ease-in-out infinite;box-shadow:0 2px 8px #c9a86a80}.world-mud-acting-orb i:nth-child(2){animation-delay:.15s;opacity:.9}.world-mud-acting-orb i:nth-child(3){animation-delay:.3s;opacity:.8}.world-mud-acting-text{font-size:12px;font-weight:700;letter-spacing:.04em;color:var(--wm-mute)}@keyframes wm-bounce{0%,80%,to{transform:translateY(0) scale(1);opacity:.85}40%{transform:translateY(-7px) scale(1.08);opacity:1}}:root[data-theme=dark] .world-mud-acting-mask,.app-shell:not(.theme-warm) .world-mud-acting-mask{background:#1e1c1ab8}.world-mud-exits{font-size:11px;color:var(--wm-mute)}.world-mud-choices{display:flex;flex-wrap:wrap;gap:6px}.world-mud-choice{flex:1 1 120px;min-height:40px;border-radius:10px;border:1px solid color-mix(in srgb,var(--wm-gold) 14%,var(--border, #ddd) 86%);background:color-mix(in srgb,var(--card-bg, #fff) 98%,#faf6ef);font-size:12.5px;font-weight:700;color:var(--wm-ink);cursor:pointer;padding:7px 12px;display:inline-flex;align-items:center;justify-content:center;gap:7px;line-height:1}.world-mud-choice svg{flex-shrink:0;display:block}.world-mud-choice:hover{border-color:color-mix(in srgb,var(--wm-gold) 28%,transparent)}.world-mud-choice:disabled{opacity:.5;cursor:default}.world-mud-inputrow{display:flex;gap:6px;align-items:center}.world-mud-input{flex:1;min-height:38px;border-radius:10px;border:1px solid color-mix(in srgb,var(--border, #e8e0d6) 75%,transparent);background:color-mix(in srgb,var(--card-bg, #fff) 96%,transparent);padding:8px 11px;font-size:13px;color:var(--wm-ink);outline:none}.world-mud-input:focus{border-color:color-mix(in srgb,var(--wm-gold) 28%,transparent);box-shadow:0 0 0 3px color-mix(in srgb,var(--wm-gold) 12%,transparent)}.world-mud-input::placeholder{color:var(--wm-mute)}.world-mud-send{width:38px;height:38px;border-radius:10px;border:none;background:var(--wm-gold);color:#fff;font-weight:800;cursor:pointer;flex-shrink:0}.world-mud-send:disabled{opacity:.45;cursor:default}.world-mud-foot{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:11px;color:var(--wm-mute)}.world-mud-footbtn{font-size:11px;font-weight:700;padding:5px 10px;border-radius:999px;border:1px solid color-mix(in srgb,var(--wm-border) 70%,transparent);background:transparent;color:var(--wm-mute);cursor:pointer}.world-mud-footbtn.is-on{background:color-mix(in srgb,var(--wm-gold) 14%,transparent);border-color:color-mix(in srgb,var(--wm-gold) 22%,transparent);color:var(--wm-ink)}.world-mud-footmeta{font-size:11px}.world-mud-footnote{flex:1;min-width:120px;font-style:italic;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.world-mud-toast{font-size:12px;color:var(--wm-mute);font-style:italic;text-align:center}.world-mud-map{border:1px solid color-mix(in srgb,var(--wm-border) 70%,transparent);border-radius:12px;overflow:hidden;background:color-mix(in srgb,var(--card-bg, #fff) 96%,transparent)}.world-mud-map-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:6px;padding:8px}.world-mud-map-d{border:1px solid color-mix(in srgb,var(--wm-border) 55%,transparent);border-radius:8px;padding:6px;background:color-mix(in srgb,var(--wm-bg) 92%,transparent)}.world-mud-map-d.is-here{border-color:color-mix(in srgb,var(--wm-gold) 36%,transparent)}.world-mud-map-dtitle{font-size:11px;font-weight:800;display:inline-flex;gap:4px;align-items:center;margin-bottom:4px}.world-mud-map-rooms{display:flex;flex-wrap:wrap;gap:4px}.world-mud-map-room{font-size:11px;padding:3px 7px;border-radius:999px;border:1px solid color-mix(in srgb,var(--wm-border) 65%,transparent);background:transparent;color:var(--wm-ink);cursor:pointer}.world-mud-map-room.is-active{background:var(--wm-gold);color:#fff;border-color:transparent;font-weight:800}.world-mud-map-note{font-size:11px;color:var(--wm-mute);padding:6px 10px;border-top:1px solid color-mix(in srgb,var(--wm-border) 55%,transparent);background:color-mix(in srgb,var(--wm-gold) 5%,transparent)}.world-mud-loading{display:grid;place-items:center;gap:10px;padding:28px 16px;border-radius:16px;border:1px dashed color-mix(in srgb,var(--wm-gold) 18%,transparent);background:color-mix(in srgb,var(--wm-gold) 8%,transparent)}.world-mud-loading-orb{width:32px;height:32px;border-radius:50%;background:radial-gradient(circle at 30% 30%,#fff,#e8c99a 60%,var(--wm-gold));box-shadow:0 4px 12px #c9a86a52;display:grid;place-items:center;animation:wm-pulse 1.6s ease-in-out infinite}.world-mud-loading-orb span{width:8px;height:8px;border-radius:50%;background:#fff;opacity:.9}.world-mud-loading-text{font-size:12px;color:var(--wm-mute)}@keyframes wm-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.06)}}@media(max-width:820px){.world-mud-card{max-width:none}}@media(hover:none),(pointer:coarse){.world-mud-choice:hover{border-color:color-mix(in srgb,var(--wm-gold) 14%,transparent)}}:root[data-theme=dark] .world-mud-card,.app-shell:not(.theme-warm) .world-mud-card{--wm-bg: color-mix(in srgb, #1e1c1a 96%, var(--card-bg, #222) 4%);--wm-ink: #f3efe7;--wm-mute: #a99e96;--wm-gold: #d8b77a;border-color:color-mix(in srgb,#3a332e 80%,transparent)}:root[data-theme=dark] .world-mud-scene,.app-shell:not(.theme-warm) .world-mud-scene{background:color-mix(in srgb,#252220 90%,transparent);border-color:color-mix(in srgb,#3a332e 65%,transparent);color:#f0ebe3}:root[data-theme=dark] .world-mud-choice,.app-shell:not(.theme-warm) .world-mud-choice{background:linear-gradient(180deg,#2a2724,#221f1c);color:#f3efe7;border-color:color-mix(in srgb,var(--wm-gold) 22%,#3a332e 78%);box-shadow:0 1px 6px #0000004d}:root[data-theme=dark] .world-mud-choice:hover,.app-shell:not(.theme-warm) .world-mud-choice:hover{border-color:color-mix(in srgb,var(--wm-gold) 36%,transparent);box-shadow:0 4px 14px #d8b77a2e}:root[data-theme=dark] .world-mud-input,.app-shell:not(.theme-warm) .world-mud-input{background:#252220;border-color:#3a332e;color:#f0ebe3}:root[data-theme=dark] .world-mud-online-pop,.app-shell:not(.theme-warm) .world-mud-online-pop{background:#252220;border-color:#3a332e}:root[data-theme=dark] .world-mud-online-pop-head,.app-shell:not(.theme-warm) .world-mud-online-pop-head{background:color-mix(in srgb,var(--wm-gold) 10%,#252220 90%);border-color:#3a332e;color:#a99e96}:root[data-theme=dark] .world-mud-online-pop-item,.app-shell:not(.theme-warm) .world-mud-online-pop-item{color:#f0ebe3}:root[data-theme=dark] .world-mud-online-pop-at,:root[data-theme=dark] .world-mud-online-pop-role,.app-shell:not(.theme-warm) .world-mud-online-pop-at,.app-shell:not(.theme-warm) .world-mud-online-pop-role{color:#a99e96}:root[data-theme=dark] .world-mud-map,.app-shell:not(.theme-warm) .world-mud-map{background:#252220;border-color:#3a332e}:root[data-theme=dark] .world-mud-map-d,.app-shell:not(.theme-warm) .world-mud-map-d{background:#2a2724;border-color:#3a332e}:root[data-theme=dark] .world-mud-map-room,.app-shell:not(.theme-warm) .world-mud-map-room{background:transparent;border-color:#3a332e;color:#f0ebe3}:root[data-theme=dark] .world-mud-map-room.is-active,.app-shell:not(.theme-warm) .world-mud-map-room.is-active{background:var(--wm-gold);color:#1e1c1a;border-color:transparent}:root[data-theme=dark] .world-mud-map-note,.app-shell:not(.theme-warm) .world-mud-map-note{background:color-mix(in srgb,var(--wm-gold) 8%,#252220 92%);border-color:#3a332e;color:#a99e96}:root[data-theme=dark] .world-mud-footbtn,.app-shell:not(.theme-warm) .world-mud-footbtn{border-color:#3a332e;color:#a99e96}:root[data-theme=dark] .world-mud-footbtn.is-on,.app-shell:not(.theme-warm) .world-mud-footbtn.is-on{background:color-mix(in srgb,var(--wm-gold) 16%,#2a2724 84%);border-color:color-mix(in srgb,var(--wm-gold) 28%,#3a332e 72%);color:#f3efe7}.mud-card{width:100%;max-width:440px;box-sizing:border-box;--mud-bg: color-mix(in srgb, var(--card-bg, #fff) 96%, transparent);--mud-border: color-mix(in srgb, var(--border, #e8e0d6) 80%, transparent);--mud-gold: #c9a86a;--mud-gold-soft: color-mix(in srgb, var(--mud-gold) 14%, transparent);--mud-ink: var(--ink, #1a1a1e);--mud-mute: var(--ink-mute, #8a8380);--mud-shadow: 0 12px 32px rgba(22, 18, 14, .12), 0 2px 8px rgba(22,18,14,.08);position:relative;overflow:hidden;background:radial-gradient(120% 80% at 100% 0%,color-mix(in srgb,var(--mud-gold) 10%,transparent) 0%,transparent 55%),radial-gradient(140% 90% at 0% 100%,color-mix(in srgb,#7c5cff 6%,transparent) 0%,transparent 60%),var(--mud-bg);border:1px solid var(--mud-border);border-radius:18px;padding:16px 16px 14px;display:flex;flex-direction:column;gap:12px;box-shadow:var(--mud-shadow);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.mud-card:before{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;background:linear-gradient(135deg,color-mix(in srgb,var(--mud-gold) 35%,transparent),transparent 45%,color-mix(in srgb,var(--mud-gold) 18%,transparent));-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none;opacity:.7}.mud-header{display:flex;align-items:center;gap:10px;position:relative}.mud-icon{width:30px;height:30px;display:grid;place-items:center;border-radius:10px;background:linear-gradient(135deg,var(--mud-gold),#e8c99a);color:#fff;font-size:16px;box-shadow:0 4px 12px #c9a86a59;flex-shrink:0}.mud-title{flex:1;font-size:15px;font-weight:800;letter-spacing:.02em;color:var(--mud-ink);line-height:1.2}.mud-step{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--mud-gold);background:var(--mud-gold-soft);border:1px solid color-mix(in srgb,var(--mud-gold) 18%,transparent);padding:4px 8px;border-radius:999px;white-space:nowrap}.mud-players{display:flex;flex-wrap:wrap;gap:6px}.mud-player-chip{font-size:12px;font-weight:600;background:color-mix(in srgb,var(--card-bg, #fff) 85%,var(--mud-gold) 8%);border:1px solid color-mix(in srgb,var(--mud-gold) 14%,transparent);border-radius:999px;padding:4px 10px;color:var(--mud-ink);line-height:1}.mud-room-name{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--mud-mute);display:flex;align-items:center;gap:8px}.mud-room-name:before{content:"";width:22px;height:1px;background:linear-gradient(90deg,var(--mud-gold),transparent);opacity:.6}.mud-scene{font-size:15px;line-height:1.75;color:var(--mud-ink);white-space:pre-wrap;background:color-mix(in srgb,var(--card-bg, #fff) 92%,transparent);border:1px solid color-mix(in srgb,var(--border, #e8e0d6) 60%,transparent);border-radius:14px;padding:12px 14px}.mud-history{display:flex;flex-direction:column;gap:5px}.mud-history-line{font-size:12px;color:var(--mud-mute);font-style:italic;padding-left:10px;border-left:2px solid color-mix(in srgb,var(--mud-gold) 20%,transparent);line-height:1.5}.mud-choices{display:flex;flex-wrap:wrap;gap:8px;touch-action:pan-y}.mud-choice-btn{flex:1 1 130px;min-height:42px;border-radius:12px;border:1px solid color-mix(in srgb,var(--mud-gold) 18%,var(--border, #ddd) 82%);background:linear-gradient(180deg,color-mix(in srgb,var(--card-bg, #fff) 98%,white),color-mix(in srgb,var(--card-bg, #fff) 92%,#f6f1e8));font-size:13px;font-weight:700;letter-spacing:.01em;color:var(--mud-ink);cursor:pointer;padding:9px 12px;transition:transform .15s,box-shadow .15s,border-color .15s,background .15s;box-shadow:0 1px 4px #16120e0f}.mud-choice-btn:hover{border-color:color-mix(in srgb,var(--mud-gold) 35%,transparent);box-shadow:0 4px 14px #c9a86a2e;transform:translateY(-1px)}.mud-choice-btn:active{transform:scale(.98)}.mud-choice-btn:disabled{opacity:.55;cursor:default;transform:none;box-shadow:none}.mud-progress{height:6px;background:color-mix(in srgb,var(--border, #e8e0d6) 70%,transparent);border-radius:999px;overflow:hidden;padding:1px}.mud-progress-bar{height:100%;background:linear-gradient(90deg,var(--mud-gold),#e8c99a 60%,#d4b06a);border-radius:inherit;transition:width .4s cubic-bezier(.22,1,.36,1);box-shadow:0 1px 6px #c9a86a59}.mud-footer{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}.mud-hint{font-size:11px;color:var(--mud-mute);letter-spacing:.02em}.mud-finish{font-size:12px;font-weight:800;color:var(--mud-gold);background:var(--mud-gold-soft);border:1px solid color-mix(in srgb,var(--mud-gold) 18%,transparent);padding:4px 10px;border-radius:999px}.mud-loading,.mud-empty{padding:18px;font-size:13px;color:var(--mud-mute);text-align:center;border:1px dashed color-mix(in srgb,var(--mud-gold) 20%,transparent);border-radius:12px;background:var(--mud-gold-soft)}:root[data-theme=warm] .mud-card,.app-shell.theme-warm .mud-card{--mud-bg: #fffaf0;--mud-shadow: 0 14px 36px rgba(80, 45, 10, .1), 0 2px 8px rgba(80,45,10,.06)}:root[data-theme=dark] .mud-card,.app-shell:not(.theme-warm) .mud-card{--mud-bg: color-mix(in srgb, #1e1c1a 94%, var(--card-bg, #222) 6%);--mud-ink: #f3efe7;--mud-mute: #a99e96;--mud-gold: #d8b77a;border-color:color-mix(in srgb,#3a332e 80%,transparent);box-shadow:0 12px 32px #00000059,0 2px 8px #00000040}:root[data-theme=dark] .mud-scene,.app-shell:not(.theme-warm) .mud-scene{background:color-mix(in srgb,#252220 88%,transparent);border-color:color-mix(in srgb,#3a332e 70%,transparent);color:#f0ebe3}:root[data-theme=dark] .mud-choice-btn,.app-shell:not(.theme-warm) .mud-choice-btn{background:linear-gradient(180deg,#2a2724,#221f1c);color:#f3efe7;border-color:color-mix(in srgb,var(--mud-gold) 22%,#3a332e 78%)}@media(max-width:820px){.mud-card{max-width:none}}@media(hover:none),(pointer:coarse){.mud-choice-btn:hover{background:linear-gradient(180deg,color-mix(in srgb,var(--card-bg, #fff) 98%,white),color-mix(in srgb,var(--card-bg, #fff) 92%,#f6f1e8));transform:none;box-shadow:0 1px 4px #16120e0f}.mud-choices{touch-action:pan-y;-webkit-overflow-scrolling:touch}}.game-message{width:100%;max-width:440px;box-sizing:border-box;margin-top:5px}@media(max-width:820px){.game-message{max-width:none}}.msg-row:has(.game-message){overflow-anchor:auto}.chat-log{overflow-anchor:none}
