:root{--bg:#fbfaf7;--fg:#1d1d1f;--muted:#6b6b70;--line:#dedbd2;--accent:#a3461a;--ok:#1d7a3a;--no:#a3221a;--card:#fff;--label:#803300;--leader:#b91515}
@media (prefers-color-scheme:dark){:root{--bg:#16161a;--fg:#ececec;--muted:#9a9aa0;--line:#33333a;--accent:#e08250;--ok:#5cc47e;--no:#ec6a5e;--card:#1e1e24;--label:#e08250;--leader:#ec6a5e}}
*{box-sizing:border-box}
:root{--sans:system-ui,-apple-system,"Segoe UI",Roboto,"Noto Sans","Helvetica Neue",Arial,sans-serif}
html:lang(zh){--sans:system-ui,-apple-system,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans CJK SC","Noto Sans SC","Source Han Sans SC",sans-serif}
html:lang(ja){--sans:system-ui,-apple-system,"Hiragino Sans","Hiragino Kaku Gothic ProN","Yu Gothic UI",Meiryo,"Noto Sans CJK JP","Noto Sans JP",sans-serif}
html:lang(ko){--sans:system-ui,-apple-system,"Apple SD Gothic Neo","Malgun Gothic","Noto Sans CJK KR","Noto Sans KR",sans-serif}
html:lang(ko) body{word-break:keep-all;overflow-wrap:anywhere}
html:lang(ar){--sans:system-ui,-apple-system,"Segoe UI","SF Arabic","Geeza Pro","Noto Sans Arabic","Noto Naskh Arabic",Tahoma,"DejaVu Sans",sans-serif}
html:lang(ar) body{line-height:1.7}
html:lang(he){--sans:system-ui,-apple-system,"Segoe UI","SF Hebrew","Arial Hebrew","Noto Sans Hebrew",Arial,"DejaVu Sans",sans-serif}
body{margin:0;background:var(--bg);color:var(--fg);font:16px/1.5 var(--sans)}
a{color:var(--accent)}
header.top{display:flex;flex-wrap:wrap;gap:.6rem 1.2rem;align-items:center;padding:.7rem 1rem;border-bottom:1px solid var(--line)}
.brand{font-weight:700;text-decoration:none;color:var(--fg)}
header nav a{margin-inline-end:.8rem}
.who{margin-inline-start:auto;font-size:.92rem}
main{max-width:62rem;margin:0 auto;padding:1rem}
footer{border-top:1px solid var(--line);padding:1rem;text-align:center;font-size:.9rem;color:var(--muted)}
.small{font-size:.8rem;margin-top:.3rem}
pre,code,textarea,.hash{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.88rem}
pre{background:var(--card);border:1px solid var(--line);padding:.6rem;overflow:auto;max-width:100%}
pre.scroll{max-height:24rem}
pre.answer{white-space:pre-wrap;word-break:break-all;max-height:16rem}
.hash{word-break:break-all}
textarea{width:100%;background:var(--card);color:var(--fg);border:1px solid var(--line)}
input,select,button{font:inherit}
button,.button{display:inline-block;padding:.35rem .9rem;border:1px solid var(--line);background:var(--card);color:var(--fg);border-radius:4px;cursor:pointer;text-decoration:none}
button.primary,.button.primary{background:var(--accent);color:#fff;border-color:var(--accent)}
button.danger{border-color:var(--no);color:var(--no)}
button.link{border:0;background:none;color:var(--accent);padding:0;text-decoration:underline}
form.inline{display:inline}
.muted{color:var(--muted)}
.notice,.provisional{border:2px solid var(--accent);padding:.6rem .9rem;margin:1rem 0;background:var(--card)}
.warn{color:var(--muted);font-size:.92rem}
.danger-note{color:var(--no);font-weight:600}
.verdict{font-weight:700;font-size:1.1rem}.verdict.ok{color:var(--ok)}.verdict.no{color:var(--no)}
.tag{font-size:.75rem;border:1px solid var(--line);padding:0 .35rem;border-radius:3px;color:var(--muted);vertical-align:middle}
table{border-collapse:collapse;margin:.6rem 0;max-width:100%}
table.grid,table.climb{display:block;overflow-x:auto}
code{overflow-wrap:anywhere}
td,th{border-bottom:1px solid var(--line);padding:.25rem .6rem;text-align:start;vertical-align:top}
table.grid td.hash{font-size:.78rem}
.hero{text-align:center;padding:1.5rem 0}
.hero h1{font-size:2rem;margin:.2rem}
.hero h1.anvil{margin:0 auto;max-width:30rem}
.anvil svg{display:block;width:100%;height:auto}
.anvil .leaders{stroke:var(--leader);stroke-width:1}
.anvil .labels{fill:var(--label);font:400 16px var(--sans);paint-order:stroke;stroke:var(--bg);stroke-width:4px;stroke-linejoin:round}
.ways{display:inline-block;text-align:start;font-size:1.1rem;margin:.6rem auto 1rem;padding-inline-start:1.3rem}
.ways li{margin:.25rem 0}
.countdown.big{font-size:1.1rem}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(17rem,1fr));gap:.8rem}
.card{border:1px solid var(--line);background:var(--card);padding:.7rem;text-decoration:none;color:var(--fg)}
.card h2{font-size:1.05rem;margin:.1rem 0 .5rem}
.bar{display:flex;gap:2px}
.cell{flex:1;font-size:.6rem;text-align:center;border:1px solid var(--line);padding:.15rem 0;color:var(--muted)}
.cell.hot{background:var(--accent);color:#fff}.cell.top{border-color:var(--accent)}
nav.sub{display:flex;flex-wrap:wrap;gap:.8rem;position:sticky;top:0;background:var(--bg);padding:.4rem 0;border-bottom:1px solid var(--line)}
.twocol{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem}
@media (max-width:760px){.twocol{grid-template-columns:1fr}}
form.checker label,.answerbox label{display:block;margin:.4rem 0}
.ck-out{display:block;font-weight:700;margin-top:.4rem}
.ck-out.yes{color:var(--ok)}.ck-out.no{color:var(--no)}
tr.locked td{color:var(--muted)}
tr.current td:first-child{font-weight:700}
.name code{font-size:1rem}
svg.hist rect { fill: var(--accent, #2a6fdb); }
svg.hist line { stroke: currentColor; stroke-width: 1; opacity: .5; }
table.stats td { vertical-align: middle; }
section.practice { border-inline-start: 4px solid var(--accent, #2a6fdb); }
section.practice ol { margin: .3rem 0; margin-inline-start: 1.2rem; }
.brand img.logo { vertical-align: middle; height: 1.6em; width: auto; margin-inline-end: .2rem; }
.credits { margin-top: .2rem; }
section.help, section.compete { max-width: 46rem; margin: 1.2rem auto; }
ol.steps { padding-inline-start: 1.4rem; }
ol.steps li { margin: .35rem 0; }
section.compete { border-top: 1px solid var(--line, #ccc); padding-top: .8rem; }
details.langs{position:relative;display:inline-block;margin-inline-start:.6rem}
details.langs summary{cursor:pointer;list-style:none;color:var(--accent)}
details.langs summary::-webkit-details-marker{display:none}
details.langs ul{position:absolute;inset-inline-end:0;z-index:5;margin:.3rem 0 0;padding:.4rem .8rem;list-style:none;background:var(--card);border:1px solid var(--line);white-space:nowrap}
details.langs li{padding:.15rem 0}
details.langs a[aria-current]{font-weight:700;color:var(--fg);text-decoration:none}
.pending{color:var(--muted);font-size:.8rem}
.courtesy,.lang-hint{border-inline-start:4px solid var(--accent);padding:.4rem .8rem;margin:.8rem 0;background:var(--card)}
.lang-hint{margin:0;border-inline-start-width:0;border-bottom:1px solid var(--line);text-align:center}
blockquote{margin:1rem 0;padding:.2rem 1rem;border-inline-start:3px solid var(--line)}
.quote-pair{display:grid;gap:0 1.2rem;margin:1rem 0}
.quote-pair blockquote{margin:.3rem 0}
blockquote.original{color:var(--muted);font-size:.92rem}
@media (min-width:48rem){.quote-pair{grid-template-columns:1fr 1fr}}
[dir=rtl] pre,[dir=rtl] textarea[name=answer],[dir=rtl] .hash,[dir=rtl] .name,[dir=rtl] input[name=month],[dir=rtl] input[type=email]{direction:ltr;text-align:left}
[dir=rtl] code,[dir=rtl] kbd,[dir=rtl] samp{direction:ltr;unicode-bidi:isolate}
[dir=rtl] .bar,[dir=rtl] svg{direction:ltr}
[dir=rtl] .countdown{unicode-bidi:isolate}
.quote-pair blockquote.original{direction:ltr;text-align:left}
.lead{font-size:1.15rem}.why{font-weight:600}
pre.key{white-space:pre-wrap;word-break:break-all}
.potm-draw{max-width:26rem}
svg.potm-svg{display:block;width:100%;height:auto;background:var(--card);border:1px solid var(--line)}
svg.potm-svg line.edge{stroke:var(--line);stroke-width:1.2}
svg.potm-svg line.edge.on{stroke:var(--accent);stroke-width:3.5}
svg.potm-svg g.vertex{cursor:pointer}
svg.potm-svg g.vertex circle{fill:var(--card);stroke:var(--fg);stroke-width:1.5}
svg.potm-svg g.vertex.next circle{stroke:var(--accent);stroke-width:2.5}
svg.potm-svg g.vertex.on circle{fill:var(--accent)}
svg.potm-svg g.vertex.on text{fill:#fff}
svg.potm-svg g.vertex.last circle{stroke:var(--fg);stroke-width:3.5}
svg.potm-svg text{font-size:13px;fill:var(--fg);pointer-events:none}
.potm-seq{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;word-break:break-all}
.graphs{display:flex;flex-wrap:wrap;gap:1rem;justify-content:center;margin:1rem 0}
.graphs figure{margin:0;flex:1 1 12rem;max-width:16rem;text-align:center}
.graph{display:block;width:100%;height:auto}
.graph line{stroke:var(--muted);stroke-width:1.5}
.graph .cycle line{stroke:var(--accent);stroke-width:4;stroke-linecap:round}
.graph circle{fill:var(--card);stroke:var(--fg);stroke-width:1.5}
.graph text{fill:var(--fg);font:600 11px var(--sans);text-anchor:middle}
.graphs figcaption{font-size:.9rem;color:var(--muted);margin-top:.3rem}
.graphs .param{display:block;color:var(--fg);font-weight:600}
.graph circle.on{fill:var(--accent);stroke:var(--accent)}.graph text.on{fill:#fff}
.graph circle.c0{fill:#e69f00}.graph circle.c1{fill:#56b4e9}.graph circle.c2{fill:#009e73}.graph text.c0,.graph text.c1,.graph text.c2{fill:#111}
.graph text.w{font:600 13px var(--sans);paint-order:stroke;stroke:var(--card);stroke-width:4px;stroke-linejoin:round}
.fig-box{border:1px solid var(--line);background:var(--card);padding:.7rem;min-height:9rem;display:flex;flex-direction:column;justify-content:center;font-size:.92rem}
.fig-box p{margin:0}.fig-box .formula{line-height:1.8}.fig-box .assign{margin-top:.4rem;color:var(--muted)}
.fig-box .on{color:var(--accent);font-weight:700}
.chips{display:flex;flex-wrap:wrap;gap:.4rem;justify-content:center}
.chip{border:1px solid var(--line);padding:.1rem .45rem;border-radius:4px;white-space:nowrap}
.fig-box .chip.on{background:var(--accent);border-color:var(--accent);color:#fff}
.beta{background:#fff4d6;color:#3a2a00;border-bottom:1px solid #e0c46a;padding:.45rem 1rem;font-size:.95rem;text-align:center}.beta a{color:inherit}
@media (prefers-color-scheme:dark){.beta{background:#3a3016;color:#f3e6bf;border-bottom-color:#6b5a26}}
.table-scroll{overflow-x:auto;max-width:100%}table.firsts td{vertical-align:top}
.climb-wrap{display:flex;align-items:flex-end;gap:1.5rem}
.clock{font-variant-numeric:tabular-nums}
.climb tr.scored td{font-weight:600;border-top:1px solid var(--line)}
.ladder-art{margin:.6rem 0;flex:none;width:150px}
.ladder-art img{display:block;width:150px;height:auto;background:#fbfaf7;border-radius:8px}
.ladder-art figcaption{font-size:.72rem;color:var(--muted);margin-top:.3rem;line-height:1.3}
@media (max-width:640px){.ladder-art{display:none}}
