:root{--bg:#0d0f12;--fg:#f2f1ee;--mut:#8b8f96;--line:rgba(255,255,255,.1);--card:#16191e;--acc:#ff7a1a;--red:#ff4d4f;--ease:cubic-bezier(.23,1,.32,1);color-scheme:dark}
*{box-sizing:border-box}
html,body{margin:0;height:100%;background:var(--bg);color:var(--fg);font-family:-apple-system,"PingFang SC","Noto Sans SC","Microsoft YaHei",system-ui,sans-serif;-webkit-font-smoothing:antialiased}
#root{position:fixed;inset:0;container-type:size}
.xn{position:absolute;inset:0;display:grid;grid-template-rows:auto auto minmax(0,1fr) auto auto;grid-template-columns:minmax(0,1fr);gap:1.6em;padding:3em 5em 2.6em;font-size:min(1cqw,1.8cqh);cursor:default;isolation:isolate;
  background:radial-gradient(120% 80% at 50% 0%,#1a1e25 0%,var(--bg) 60%)}
a{color:inherit;text-decoration:none}
.top{display:flex;align-items:center;gap:2em}
.bug{display:flex;align-items:baseline;gap:1em;white-space:nowrap}
.logo{font-weight:800;font-size:2em;letter-spacing:.02em}
.state{font-size:1.25em;color:var(--mut)}
.xn:not([data-muted]):not([data-paused]) .state::before{content:"";display:inline-block;width:.55em;height:.55em;border-radius:50%;background:var(--red);margin-right:.5em;vertical-align:.1em}
.cols{flex:1;display:flex;justify-content:center;gap:.4em}
.cols span{font-size:1.5em;padding:.35em 1em;border-radius:99em;color:var(--mut);transition:color .3s var(--ease),background-color .3s var(--ease)}
.cols span[data-on]{color:#111;background:var(--fg);font-weight:700}
.clock{text-align:right;white-space:nowrap}
.clock .t{font-size:2em;font-weight:600;font-variant-numeric:tabular-nums}
.clock small{display:block;font-size:1.05em;color:var(--mut)}
.notice{justify-self:center;font-size:1.4em;padding:.5em 1.2em;border-radius:.6em;background:rgba(255,190,60,.12);color:#ffcf6b;border:1px solid rgba(255,190,60,.3)}
.stage{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:1.4em;min-height:0}
.head{display:flex;align-items:center;gap:1.2em;max-width:100%}
.topic{margin:0;font-size:2.4em;font-weight:700;letter-spacing:.01em;text-align:center}
.flag{display:flex;align-items:center;gap:.7em;font-size:1.35em;white-space:nowrap}
.flag b{background:var(--red);color:#fff;padding:.2em .6em;border-radius:.35em}
.flag span{color:#ff9a9b}
.post{position:relative;width:min(100%,72em);background:var(--card);border:1px solid var(--line);border-radius:1.4em;padding:2em 2.4em;box-shadow:0 1.6em 4em rgba(0,0,0,.35);min-height:0;overflow:hidden}
.post header{display:flex;align-items:center;gap:1em}
.av{position:relative;flex:none;width:3.6em;height:3.6em;border-radius:50%;display:grid;place-items:center;overflow:hidden;font-weight:700;font-size:1.3em;color:#fff;background:hsl(var(--h) 45% 38%)}
.av img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.post header .av{font-size:1.5em}
.id{display:flex;flex-direction:column;min-width:0}
.id b{font-size:1.7em}
.id i{font-style:normal;font-size:1.3em;color:var(--mut)}
.open{margin-left:auto;font-size:1.3em;color:var(--mut);padding:.4em .9em;border:1px solid var(--line);border-radius:99em;transition:color .2s var(--ease),border-color .2s var(--ease),transform .15s var(--ease)}
.open:active{transform:scale(.97)}
@media (hover:hover) and (pointer:fine){.open:hover{color:var(--fg);border-color:var(--mut)}}
.text{margin:1em 0 0;font-size:2.6em;line-height:1.45;white-space:pre-line;display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden}
.text[lang=en]{font-size:2.2em;color:#d9d7d2}
.zh{margin:.8em 0 0;font-size:2.3em;line-height:1.5}
.zl{display:inline-block;font-size:.55em;color:var(--acc);border:1px solid currentColor;border-radius:.35em;padding:.05em .45em;margin-right:.7em;vertical-align:.3em}
.quote{display:block;margin-top:1.2em;padding:1.1em 1.4em;border:1px solid var(--line);border-radius:1em;background:rgba(255,255,255,.03)}
.quote .who{display:flex;align-items:center;gap:.6em;font-size:1.3em}
.quote .av{width:1.8em;height:1.8em;font-size:.8em}
.quote i{font-style:normal;color:var(--mut)}
.qt{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin-top:.5em;font-size:1.6em;line-height:1.45;color:#c9c7c2}
.post footer{display:flex;gap:2em;margin-top:1.2em;font-size:1.3em;color:var(--mut);font-variant-numeric:tabular-nums}
.duel{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:1.4em;width:100%;min-height:0}
.duel .post{width:100%;padding:1.6em 1.8em}
.duel .text{font-size:2.1em;-webkit-line-clamp:6}
.duel .text[lang=en]{font-size:1.8em}
.duel .zh{font-size:1.9em}
.order{display:inline-block;margin-bottom:.9em;font-size:1.2em;padding:.25em .8em;border-radius:.4em;background:rgba(255,255,255,.08);color:var(--mut)}
.duel .reply{border-color:rgba(255,122,26,.35)}
.duel .reply .order{background:rgba(255,122,26,.15);color:var(--acc)}
.vs{display:flex;flex-direction:column;align-items:center;gap:.5em;font-size:1.3em;color:var(--acc);writing-mode:horizontal-tb}
.vs i{display:block;width:1px;height:3em;background:linear-gradient(transparent,var(--acc),transparent)}
.vs::after{content:"→";font-size:1.6em;line-height:1}
.sub{display:flex;align-items:baseline;gap:1em;justify-content:center;max-width:76em;justify-self:center;min-height:3.6em}
.sub .lab{flex:none;font-size:1.35em;font-weight:700;padding:.2em .7em;border-radius:.4em;background:var(--acc);color:#111}
.sub[data-part=background] .lab{background:rgba(255,255,255,.12);color:#c5c7cc;font-weight:600}
.sub .txt{font-size:2.1em;line-height:1.5;text-align:center;text-wrap:balance}
.band{display:flex;gap:1.2em;align-items:baseline;border-top:1px solid var(--line);padding-top:1.1em;font-size:1.35em;color:var(--mut);white-space:nowrap;overflow:hidden;min-width:0}
.band .next{overflow:hidden;text-overflow:ellipsis}
.listen{position:absolute;left:50%;bottom:9em;transform:translateX(-50%);font:inherit;font-size:2em;font-weight:700;padding:.75em 1.8em;border:0;border-radius:99em;background:var(--acc);color:#111;box-shadow:0 .6em 2em rgba(255,122,26,.35);cursor:pointer;transition:transform .15s var(--ease)}
.listen::before{content:"🔈 "}
.listen:active{transform:translateX(-50%) scale(.97)}
.golive{position:absolute;right:5em;bottom:6.4em;font:inherit;font-size:1.4em;font-weight:700;padding:.6em 1.3em;border:0;border-radius:99em;background:var(--red);color:#fff;cursor:pointer;transition:transform .15s var(--ease)}
.golive:active{transform:scale(.97)}
.xn[data-muted] .sub{opacity:.55}
.offair{position:absolute;inset:0;display:grid;place-content:center;text-align:center;gap:.8em;background:var(--bg);z-index:5}
.offair b{font-size:3em}
.offair p{margin:0;font-size:2.2em;color:var(--mut)}
.offair small{font-size:1.4em;color:var(--mut)}
.offair[hidden]{display:none}
[hidden]{display:none!important}
@container (max-aspect-ratio:1/1){
  .xn{font-size:2.3cqw;padding:3em 2.4em 2.4em;gap:1.4em}
  .top{flex-wrap:wrap;gap:1em}
  .cols{order:3;flex-basis:100%;justify-content:flex-start;overflow:hidden}
  .cols span{font-size:1.3em;padding:.3em .8em}
  .duel{grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto auto}
  .vs{flex-direction:row}.vs i{width:3em;height:1px}.vs::after{content:"↓"}
  .text{font-size:2.3em}.duel .text{-webkit-line-clamp:4}
  .head{flex-direction:column;gap:.6em}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
.shot *{animation:none!important;transition:none!important}
/* 显式行：notice 隐藏时不让后面的元素错位 */
.top{grid-row:1}.notice{grid-row:2}.stage{grid-row:3}.sub{grid-row:4}.band{grid-row:5}
.xn{row-gap:1.4em}
.post{display:flex;flex-direction:column;max-height:100%}
.post>*{flex:none}
.has-zh .text{font-size:1.75em!important;color:var(--mut);-webkit-line-clamp:3}
.has-zh .zh{font-size:2.6em;line-height:1.45;margin-top:.5em;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.duel .has-zh .text{font-size:1.5em!important}
.duel .has-zh .zh{font-size:2.2em}
.sub{align-items:center}
.sub .txt{font-size:2em;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.post>.text{flex:0 1 auto;min-height:0}
.stage{display:grid;grid-template-rows:auto minmax(0,auto);align-content:center;justify-items:center}
.stage>.post,.stage>.duel{max-height:100%;min-height:0}
.post>.text{flex:none}
.post>.quote{flex:0 1 auto;min-height:0;overflow:hidden}
.order{align-self:flex-start}
.vs{white-space:nowrap}
@container (max-aspect-ratio:1/1){.clock small{display:none}.sub{flex-wrap:wrap}}
.post:has(.quote) .text{-webkit-line-clamp:3}
.post>.quote{flex:none}
@container (max-aspect-ratio:1/1){.sub{display:block;text-align:center}.sub .lab{display:inline-block;margin-right:.6em;vertical-align:.15em}.sub .txt{display:inline}}
.post:has(.quote) .text{-webkit-line-clamp:2}
.text{font-size:2.4em}
.listen{bottom:6.6em}
.xn[data-muted] .sub{visibility:hidden}
@container (max-aspect-ratio:1/1){.listen{bottom:7em}}
.listen{bottom:3.1em}
@container (max-aspect-ratio:1/1){.listen{bottom:3.6em}}
/* 快讯：小卡，只一句 */
.xn[data-flash] .topic{font-size:2em;color:var(--mut)}
.post.flash{width:min(100%,56em);padding:1.6em 2em}
.post.flash .order{background:rgba(255,190,60,.14);color:#ffcf6b}
.post.flash .text{font-size:2.2em;-webkit-line-clamp:2}
.post.flash .zh{font-size:2.2em;-webkit-line-clamp:2}
.post.flash .has-zh .text,.post.flash.has-zh .text{-webkit-line-clamp:1}
.post.flash .quote,.post.flash footer{display:none}
/* 回应区：原帖下面最多 3 条，一行一条 */
.resps{display:flex;flex-direction:column;gap:.5em;margin-top:1.1em;padding-top:1em;border-top:1px solid var(--line)}
.post>.resps{flex:none}
.resp{display:flex;align-items:center;gap:.6em;font-size:1.4em;min-width:0;white-space:nowrap}
.resp .av{width:1.7em;height:1.7em;font-size:.75em}
.resp .av.anon{background:#3a3e45;color:#aab}
.resp b{flex:none;font-weight:600}
.resp b.anon{color:var(--mut);font-weight:500}
.resp .rk{flex:none;font-size:.8em;color:var(--mut)}
.resp .uv{flex:none;font-size:.75em;background:var(--red);color:#fff;padding:.1em .45em;border-radius:.3em}
.resp .rt{overflow:hidden;text-overflow:ellipsis;color:#d6d4cf}
@media (hover:hover) and (pointer:fine){.resp:hover .rt{color:var(--fg)}}
.post:has(.resps) .text{-webkit-line-clamp:3}
.post:has(.resps) .zh{-webkit-line-clamp:2}
.post.flash .resps{display:none}
.post:has(.resps).has-zh .text{-webkit-line-clamp:2}
.post:has(.resps) .zh{font-size:2.3em}
.post:has(.resps) footer{display:none}
.post:has(.resps).has-zh .text{-webkit-line-clamp:1}
.post:has(.resps) .zh{margin-top:.35em}
.post:has(.resps) .resps{margin-top:.8em;padding-top:.8em}
@container (max-aspect-ratio:1/1){.post:has(.resps).has-zh .text{-webkit-line-clamp:3}.post:has(.resps) .zh{-webkit-line-clamp:4}.post:has(.resps) footer{display:flex}}
.upd{flex:none;font-size:1.3em;font-weight:700;padding:.2em .6em;border-radius:.35em;background:rgba(80,200,140,.16);color:#6fe0a8}
/* 标签统一：只有「未证实」用红色；其他标签同一种中性样式，靠文字区分 */
.sub .lab,.sub[data-part=background] .lab,.order,.post.flash .order,.duel .reply .order,.upd,.zl{background:rgba(255,255,255,.1);color:#c9cbd0;border:0;font-weight:600}
.zl{padding:.1em .5em}
.duel .reply{border-color:var(--line)}
.vs{color:var(--mut)}
.vs i{background:linear-gradient(transparent,var(--mut),transparent)}
/* 帖子配图：卡片内，按剩余高度收缩，不裁切 */
.post>.media{flex:0 1 auto;min-height:6em;margin:1em 0 0;position:relative;display:flex;justify-content:flex-start;overflow:hidden}
.media img{max-width:100%;max-height:100%;height:auto;border-radius:.8em;border:1px solid var(--line);object-fit:contain;display:block}
.media.vid::after{content:"▶";position:absolute;left:1em;bottom:1em;font-size:1.4em;width:2em;height:2em;display:grid;place-items:center;border-radius:50%;background:rgba(0,0,0,.6);color:#fff}
.post:has(.media) .text{-webkit-line-clamp:3}
.post:has(.media).has-zh .text{-webkit-line-clamp:1}
/* 横屏有配图：左文右图 */
.post:has(>.media){display:grid;grid-template-columns:minmax(0,1fr) minmax(0,44%);column-gap:2.2em;align-content:start;width:min(100%,96em)}
.post:has(>.media)>*{grid-column:1}
.post:has(>.media)>.media{grid-column:2;grid-row:1/span 8;margin:0;align-self:center;min-height:0;max-height:100%}
.post:has(>.media) .media img{max-height:34em}
.post:has(>.media) .text{-webkit-line-clamp:5}
.post:has(>.media).has-zh .text{-webkit-line-clamp:2}
.duel .post:has(>.media){display:flex}
.duel .post:has(>.media)>.media{max-height:12em}
@container (max-aspect-ratio:1/1){
  .post:has(>.media){display:flex}
  .post:has(>.media)>.media{margin-top:1em;max-height:none}
  .post:has(>.media) .media img{max-height:22em}
}
.post:has(>.media):has(.quote) .text,.post:has(>.media):has(.resps) .text{-webkit-line-clamp:3}

/* 沃兹 2026-10-09：没图的帖子把中文大意放大；静音时整屏可点 */
.post.zh-big .zh { font-size: clamp(22px, 3.2vw, 40px); line-height: 1.45; font-weight: 600; }
.xn[data-muted] { cursor: pointer; }
/* 收听入口与网站操作占独立一行，避免盖住字幕。 */
.xn{grid-template-rows:auto auto minmax(0,1fr) auto auto auto}
.controls{grid-row:6;display:flex;align-items:center;gap:12px;font-size:13px;min-width:0}
.controls button{font:inherit;border:0;background:#252930;color:var(--fg);border-radius:8px;min-height:40px;min-width:40px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}
.controls button:hover{background:#373c45}.controls button:active{transform:scale(.96)}
.controls button:disabled{opacity:.4;cursor:wait}
.controls .golive{position:static;font-size:13px;padding:0 12px;background:var(--fg);color:var(--bg);box-shadow:none}
.site-links{display:flex;align-items:center;gap:16px;margin-left:auto;color:var(--mut)}
.site-links a:hover{color:var(--fg)}
.site-links button{background:transparent}
.playback-error{color:#ffcf6b;font-size:12px}
button:focus-visible,a:focus-visible{outline:1px solid var(--fg);outline-offset:3px}
.listen{bottom:7em;box-shadow:none;display:flex;align-items:center;gap:.4em}
.listen::before{content:"";width:0;height:0;border-top:.3em solid transparent;border-bottom:.3em solid transparent;border-left:.5em solid currentColor}
.connection{grid-row:3;text-align:center;align-self:center;justify-self:center;max-width:600px;font-size:16px;line-height:1.6;padding:24px}
.connection h1{font-size:clamp(24px,4vw,40px);line-height:1.3;margin:0 0 16px}.connection p{color:var(--fg)}.connection small{color:var(--mut)}
.xn[data-connecting] .stage,.xn[data-connecting] .sub,.xn[data-connecting] .band{display:none}
.site-dialog{background:var(--card);color:var(--fg);border:1px solid var(--line);border-radius:16px;padding:24px;width:min(360px,calc(100vw - 32px));max-height:calc(100dvh - 40px);font-size:16px;overflow:auto;text-align:center}
.site-dialog::backdrop{background:rgba(0,0,0,.7)}.site-dialog form{display:flex;justify-content:flex-end}.site-dialog button{border:0;color:var(--fg);background:transparent;font-size:24px;cursor:pointer;width:40px;height:40px}.site-dialog h2{font-size:21px;margin:8px 0 20px}.site-dialog img{display:block;width:100%;height:auto;border-radius:8px}.site-dialog p{color:var(--mut);font-size:14px}
@container (max-aspect-ratio:1/1){
  .xn{padding:20px 16px max(12px,env(safe-area-inset-bottom));gap:12px;font-size:9px}
  .top{gap:8px}.clock{margin-left:auto}.logo{font-size:19px}.state{font-size:11px}.clock .t{font-size:16px}
  .cols{gap:4px}.cols span{font-size:12px;padding:5px 10px}
  .topic{font-size:19px;line-height:1.4}.head{gap:6px}
  .stage{overflow:auto;align-content:start;display:flex;justify-content:flex-start;align-items:stretch}
  .stage>.post,.stage>.duel{max-height:none;flex:none}.post{padding:16px;border-radius:12px;max-height:none}
  .post header .av{font-size:10px}.id b{font-size:15px}.id i{font-size:11px}.open{font-size:11px;padding:5px 8px;white-space:nowrap}
  .post.zh-big .zh{font-size:22px}.has-zh .zh{font-size:21px}.duel .has-zh .zh{font-size:19px}
  .post>.media{flex:none}.post:has(>.media) .media img{max-height:190px}
  .sub{min-height:0}.sub .txt{font-size:17px;line-height:1.55;display:-webkit-box;-webkit-line-clamp:3}
  .band{font-size:12px;padding-top:8px}.controls{gap:8px;font-size:12px;flex-wrap:wrap}.site-links{gap:10px}.site-links a{font-size:11px}
  .playback-error:not(:empty){order:3;flex-basis:100%}
  .listen{font-size:17px;bottom:124px;padding:12px 22px}
}
.stage{grid-template-rows:auto minmax(0,1fr);align-content:stretch}
.stage>.post{align-self:center;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}
.post.zh-big .zh{font-size:clamp(22px,2.5vw,34px);line-height:1.45}
.post.flash .zh{-webkit-line-clamp:4}
.controls .play-toggle{background:var(--fg);color:var(--bg);padding:0 12px;gap:8px;font-weight:600}
.controls .play-toggle:hover{background:#d8d7d4}
@container (max-aspect-ratio:1/1){.stage{display:flex}.stage>.post{overflow:visible}.post.zh-big .zh{font-size:22px}.controls .play-toggle span{font-size:12px}}
.post.zh-big .zh{display:block;-webkit-line-clamp:unset;overflow:visible}
