:root{--v-for:#1f6f5c;--v-against:#b3261e;--v-neutral:#8a6d00;--v-none:#7a808a;--edge:#7a808a;--bg:#faf9f7;--card:#fff;--ink:#16181d;--mute:#5f6670;--line:#e5e2dc;--acc:#b3261e;--link:#0b4f8a;--h0:#f8e3dd;--h1:#b3261e;--shadow:0 1px 2px rgba(20,20,20,.05);--r:12px}
@media(prefers-color-scheme:dark){:root{--v-for:#4cb391;--v-against:#ff6f61;--v-neutral:#e0b84a;--v-none:#6b727c;--bg:#111316;--card:#191c20;--ink:#eceae6;--mute:#9aa1ab;--line:#2a2e34;--acc:#ff6f61;--link:#8ec1f0;--h0:#3a2a28;--h1:#ff6f61;--shadow:none}}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.55 ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased}
a{color:var(--link);text-underline-offset:2px}img{max-width:100%}
.wrap{max-width:1120px;margin:0 auto;padding-inline:max(16px,env(safe-area-inset-left))}
.top{border-bottom:1px solid var(--line);background:var(--bg)}.top .wrap{display:flex;justify-content:space-between;align-items:center;gap:1rem;min-height:52px}
.brand{display:flex;align-items:center;gap:.55rem;font-weight:700;color:var(--ink);text-decoration:none;min-height:44px}.brand i{width:.8rem;height:.8rem;border-radius:50%;background:var(--acc)}.src{color:var(--mute);font-size:.82rem}
main{padding-block:1.4rem 3rem}h1{font-size:clamp(1.65rem,4.6vw,2.6rem);line-height:1.12;letter-spacing:-.015em;margin:0 0 .5rem}h2{font-size:1.15rem;line-height:1.3;margin:0 0 .8rem}
.lead{color:var(--mute);font-size:1.05rem;margin:0 0 1.2rem;max-width:42rem}.muted{color:var(--mute)}.small{font-size:.85rem}
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.7rem;margin:1rem 0 1.4rem}
.tile{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:.8rem .95rem;box-shadow:var(--shadow);display:flex;flex-direction:column}
.tile b{font-size:1.65rem;line-height:1.15;letter-spacing:-.01em}.tile span{color:var(--mute);font-size:.85rem}.tile small{color:var(--mute);font-size:.78rem;margin-top:.1rem}
.bar{position:static;z-index:5;background:var(--bg);border-bottom:1px solid var(--line);padding:.7rem 0;margin-bottom:.6rem}
.row1{display:flex;gap:.6rem}.row2{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.6rem;margin-top:.6rem}
.row2 label{display:flex;flex-direction:column;gap:.15rem;font-size:.75rem;color:var(--mute)}.row2 label[hidden]{display:none}
input,select,button{font:inherit;color:var(--ink)}input[type=search],select{width:100%;min-height:44px;padding:.5rem .7rem;border:1px solid var(--edge);border-radius:10px;background:var(--card)}
input[type=search]{flex:1;min-width:0}
.seg{display:flex;border:1px solid var(--edge);border-radius:10px;overflow:hidden;background:var(--card)}.seg button{min-height:44px;padding:0 1rem;border:0;background:transparent;cursor:pointer}.seg .on{background:var(--ink);color:var(--bg);font-weight:600}
.rows{list-style:none;margin:0;padding:0}.row{display:grid;align-items:center;gap:.15rem .8rem;color:inherit;text-decoration:none;border-bottom:1px solid var(--line);padding:.8rem .2rem;min-height:56px}
.rows.head{display:none}
.rk{color:var(--mute);font-size:.85rem}.nm b{display:block;font-size:1.02rem;line-height:1.25}.nm small{color:var(--mute);font-size:.82rem;display:flex;align-items:center;gap:.4rem}.dot,.chip i{width:.65rem;height:.65rem;border-radius:50%;display:inline-block;flex:none}
.sc b{font-size:1.4rem;line-height:1;letter-spacing:-.01em}.meter{display:block;height:6px;border-radius:3px;background:var(--line);margin-top:.35rem;overflow:hidden}.meter u{display:block;height:100%;background:var(--acc);border-radius:3px}
.c{font-size:.9rem}.c::before{content:attr(data-l) " ";color:var(--mute);font-size:.78rem}
@media(max-width:759px){.row{grid-template-columns:1.6rem 1fr auto;grid-template-areas:"rk nm sc" "mt mt mt"}.rk{grid-area:rk;align-self:start;padding-top:.15rem}.nm{grid-area:nm;min-width:0}.sc{grid-area:sc;text-align:right;min-width:4.5rem}
.stats{grid-area:mt;display:flex;flex-wrap:wrap;gap:.1rem .9rem;margin-top:.3rem;padding-left:calc(1.6rem + .8rem)}.c{white-space:nowrap}}
@media(min-width:760px){.rows.head{display:grid}.row{grid-template-columns:2.4rem minmax(0,2.3fr) 7.5rem repeat(5,minmax(0,1fr));gap:0 .8rem}.stats{display:contents}.c::before{content:none}.c,.head span,.head button{text-align:right}.row:hover{background:color-mix(in srgb,var(--card) 70%,var(--line))}
.head{background:var(--bg);border-bottom:1px solid var(--line);grid-template-columns:2.4rem minmax(0,2.3fr) 7.5rem repeat(5,minmax(0,1fr));gap:0 .8rem;padding:.4rem .2rem;z-index:4}.head button{border:0;background:none;color:var(--mute);font-size:.78rem;cursor:pointer;min-height:36px;padding:0}.head button:first-of-type{text-align:left}.head .on{color:var(--ink);font-weight:700}.head .on::after{content:" \25BE"}.head .on.asc::after{content:" \25B4"}#sortwrap{display:none}.sc{text-align:left}}
.empty{color:var(--mute);padding:2rem 0;text-align:center}
.hallbox{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:.8rem}@media(max-width:759px){.hallbox{padding:.6rem .25rem}.halltools{padding-inline:.5rem}.facs{padding-inline:.5rem}}.halltools{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.4rem;font-size:.82rem;color:var(--mute)}
.legend{display:flex;align-items:center;gap:.5rem}.legend i{width:110px;height:.55rem;border-radius:3px;background:linear-gradient(90deg,var(--h0),var(--h1))}.legend b{font-weight:400}
#zoom{min-height:44px;padding:0 .9rem;border:1px solid var(--edge);border-radius:10px;background:var(--card);cursor:pointer}#zoom[aria-pressed=true]{background:var(--ink);color:var(--bg)}#zoom{display:none}@media(max-width:759px){#zoom{display:block}}
.hallscroll{overflow-x:auto;overscroll-behavior-x:contain}#hall{display:block;width:100%;height:auto;max-width:760px;margin:0 auto}.hallscroll.zoom #hall{width:190%;max-width:none}
.seat{cursor:pointer;-webkit-tap-highlight-color:transparent}.seat text{font:700 12px ui-sans-serif,system-ui;pointer-events:none}.empty rect{fill:none;stroke:var(--line);stroke-dasharray:3 3;stroke-width:1.5}.seat.sel .top{stroke:var(--ink);stroke-width:3}.seat:focus{outline:none}.seat:focus-visible .top{stroke:var(--link);stroke-width:4}.seat:hover .top{filter:brightness(1.08)}.hint{font:600 13px ui-sans-serif,system-ui}
.facs{display:flex;flex-wrap:wrap;gap:.2rem 1rem;font-size:.8rem;color:var(--mute);margin-top:.5rem}.facs span{display:flex;align-items:center;gap:.35rem}
.note{color:var(--mute);font-size:.85rem;max-width:46rem}
.sheet{position:fixed;left:0;right:0;bottom:0;z-index:20;background:var(--card);border:1px solid var(--line);border-bottom:0;border-radius:16px 16px 0 0;box-shadow:0 -8px 30px rgba(0,0,0,.18);padding:1rem 1rem calc(1rem + env(safe-area-inset-bottom));max-width:560px;margin-inline:auto}
.sheet[hidden]{display:none}.sheet h3{margin:0;font-size:1.15rem}.sheet .x{position:absolute;right:.4rem;top:.4rem;width:44px;height:44px;border:0;background:none;font-size:1.4rem;cursor:pointer}
.sheet .nums{display:flex;flex-wrap:wrap;gap:.2rem 1rem;margin:.5rem 0;font-size:.9rem}.sheet .go{display:inline-flex;align-items:center;min-height:44px;font-weight:600}
.how{margin-top:2rem;border-top:1px solid var(--line);padding-top:1rem}.how summary{cursor:pointer;font-weight:600;min-height:44px;display:flex;align-items:center}.how p{max-width:46rem;color:var(--mute)}
.chip{display:inline-flex;align-items:center;gap:.4rem;border:1px solid var(--line);border-radius:999px;padding:.1rem .65rem;font-size:.8rem;line-height:1.6;background:var(--card)}.chips{display:flex;flex-wrap:wrap;gap:.4rem;margin:.6rem 0}
.back{margin:0 0 1rem}.back a{display:inline-flex;align-items:center;min-height:44px}
.who{display:grid;grid-template-columns:auto 1fr;gap:1rem;align-items:center}.ph{width:96px;height:120px;object-fit:cover;border-radius:10px;background:var(--line)}.who h1{margin-bottom:.4rem}.meta{display:flex;flex-wrap:wrap;gap:.4rem;margin:.3rem 0}
.score{grid-column:1/-1;display:flex;align-items:baseline;flex-wrap:wrap;gap:.2rem .7rem;border-top:1px solid var(--line);padding-top:.8rem}.score b{font-size:2.6rem;line-height:1;letter-spacing:-.02em;color:var(--acc)}.score span{color:var(--mute)}.rank{color:var(--mute);font-size:.9rem}
@media(min-width:760px){.who{grid-template-columns:auto 1fr auto}.score{grid-column:auto;border:0;padding:0;flex-direction:column;align-items:flex-end;text-align:right}.score b{font-size:3.4rem}.ph{width:120px;height:150px}}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:1rem 1.1rem;margin:0 0 1rem;box-shadow:var(--shadow)}.big{font-size:1.08rem;line-height:1.6;margin:.2rem 0}
.list{list-style:none;margin:0;padding:0}.list li{padding:.6rem 0;border-bottom:1px solid var(--line)}.list li:last-child{border:0}time{color:var(--mute);font-size:.82rem;margin-right:.5rem}.ex a{text-decoration:none}
.topics{margin:0;padding:0;list-style:none}.topics li{display:flex;justify-content:space-between;gap:1rem;padding:.55rem 0;border-bottom:1px solid var(--line)}.topics li:last-child{border:0}.topics span{min-width:0}.topics b{flex:none}
details summary{cursor:pointer;color:var(--link);min-height:44px;display:flex;align-items:center}
.yr{width:100%;border-collapse:collapse;font-size:.92rem}.yr th,.yr td{padding:.5rem .3rem;text-align:right;border-bottom:1px solid var(--line)}.yr th:first-child{text-align:left}.yr thead th{font-size:.74rem;color:var(--mute);font-weight:500}
@media(min-width:760px){.bar{position:sticky;top:0}}
@media(max-width:759px){.home .tiles{grid-template-columns:repeat(4,1fr);gap:.4rem;margin:.8rem 0 1rem}.home .tile{padding:.5rem .5rem}.home .tile b{font-size:1.1rem}.home .tile span{font-size:.75rem;line-height:1.2}.home .lead{font-size:1rem}}
footer{border-top:1px solid var(--line);padding-block:1.2rem 2.5rem;color:var(--mute);font-size:.85rem}
:focus-visible{outline:3px solid var(--link);outline-offset:2px;border-radius:4px}
@media(max-width:759px){.src{display:none}main{padding-top:1rem}}
@media(max-width:759px){.sheet .chips{display:none}.sheet{padding-block:.8rem}.sheet .nums{margin:.3rem 0}}
.yr{table-layout:fixed}.yr th:first-child{width:3.4rem}@media(max-width:759px){.yr{font-size:.84rem}.yr th,.yr td{padding:.5rem .15rem}}
@media(min-width:760px){.head button[data-k=score]{text-align:left}}
.halltools{flex-wrap:wrap}.halltools .seg button{min-height:44px}
.skip{position:absolute;left:-999px;top:0;background:var(--ink);color:var(--bg);padding:.7rem 1rem;z-index:50;border-radius:0 0 8px 0}.skip:focus{left:0}
.hallscroll:focus-visible{outline:3px solid var(--link);outline-offset:2px}
.chip{border-color:var(--edge)}.tile,.card,.hallbox{border-color:var(--line)}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
@media(forced-colors:active){.meter u{background:Highlight}.seat .top{stroke:CanvasText;stroke-width:1.5}}
@media(min-width:1000px){.sheet{left:auto;right:24px;bottom:24px;width:340px;margin:0;border-radius:16px;border-bottom:1px solid var(--line)}}
.seat.dim{opacity:.22}.facs button{display:inline-flex;align-items:center;gap:.4rem;min-height:44px;padding:0 .7rem;border:1px solid var(--edge);border-radius:999px;background:var(--card);color:var(--ink);cursor:pointer;font-size:.85rem}.facs button[aria-pressed=true]{background:var(--ink);color:var(--bg)}.facs{gap:.4rem}
.vf{list-style:none;margin:0 0 1rem;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:.7rem}.fr,.vt{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:.8rem .95rem}
.fh{display:flex;justify-content:space-between;gap:.6rem;margin-bottom:.4rem}.fh b{display:flex;align-items:center;gap:.4rem}
.vb{display:flex;height:12px;border-radius:6px;overflow:hidden;background:var(--line);gap:2px}.vb i{display:block;min-width:0}.vb i[style*="flex:0;"]{display:none}
.vn{display:flex;flex-wrap:wrap;gap:.2rem .9rem;margin:.5rem 0 0;font-size:.85rem;color:var(--mute)}.vn b{color:var(--ink)}.sw{display:inline-block;width:.7rem;height:.7rem;border-radius:2px;margin-right:.3rem}
.vlist{list-style:none;margin:.6rem 0;padding:0;display:grid;gap:.7rem}.vt .vd{margin:0 0 .2rem}.vt .vtt{margin:0 0 .2rem;line-height:1.35}.vt .vb{margin-top:.5rem}
.chk{display:flex;align-items:center;gap:.6rem;min-height:44px}.chk input{width:22px;height:22px}
.more{min-height:44px;padding:0 1.2rem;border:1px solid var(--edge);border-radius:10px;background:var(--card);cursor:pointer;margin:.4rem 0 1rem}.more[hidden]{display:none}
#v-votes h2{margin-top:1.8rem}
.fh .muted{white-space:nowrap}.fh b{min-width:0}
