:root{--bg:#f6f8f7;--surface:#fff;--surface-2:#eef3f2;--text:#0f1f21;--muted:#5b6e70;--line:#dbe4e3;--accent:#0e8f82;--accent-ink:#fff;--accent-soft:#e2f4f1;--amber:#b26a00;--amber-soft:#fff3df;--rose:#b4234a;--rose-soft:#fde8ee;--violet:#5b46c9;--violet-soft:#ece9fc;--green:#22803d;--green-soft:#e3f4e7;--shadow:0 1px 2px #0f1f210d, 0 4px 16px #0f1f210d;--font-display:"Bricolage Grotesque", "Avenir Next", "Segoe UI", sans-serif;--font-body:"IBM Plex Sans", "Helvetica Neue", Arial, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, Menlo, monospace;--lightningcss-light:initial;--lightningcss-dark: ;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#071214;--surface:#0d1b1e;--surface-2:#12262a;--text:#e6f2f0;--muted:#8fa7a5;--line:#1f3539;--accent:#5fe0cf;--accent-ink:#062022;--accent-soft:#5fe0cf1f;--amber:#f5b14a;--amber-soft:#f5b14a1f;--rose:#ff7a98;--rose-soft:#ff7a981f;--violet:#a99bff;--violet-soft:#a99bff1f;--green:#6fd88a;--green-soft:#6fd88a1f;--shadow:none;--lightningcss-light: ;--lightningcss-dark:initial;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:80px}body{background:var(--bg);color:var(--text);font:16px/1.6 var(--font-body);-webkit-font-smoothing:antialiased;margin:0}a{color:var(--accent)}h1,h2,h3{font-family:var(--font-display);letter-spacing:-.015em;margin:0;line-height:1.15}p{margin:0 0 12px}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.topbar{z-index:20;background:color-mix(in srgb, var(--bg) 88%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);align-items:center;gap:16px;padding:12px 20px;display:flex;position:sticky;top:0}.brand{font:600 17px/1 var(--font-display);color:var(--text);align-items:center;gap:9px;text-decoration:none;display:flex}.brand i{background:var(--accent);border-radius:50%;width:10px;height:10px}.brand span{color:var(--muted);font-weight:400}.topbar .spacer{flex:1}.btn{border:1px solid var(--line);background:var(--surface);color:var(--text);font:500 14px/1 var(--font-body);cursor:pointer;border-radius:10px;align-items:center;gap:6px;padding:7px 12px;text-decoration:none;display:inline-flex}.btn:hover{border-color:var(--accent)}.progress{background:var(--accent);width:0;height:2px;position:absolute;bottom:-1px;left:0}.hub{max-width:960px;margin:0 auto;padding:56px 20px 80px}.hub h1{font-size:clamp(32px,6vw,48px)}.hub .sub{color:var(--muted);max-width:560px;margin:12px 0 40px;font-size:18px}.cards{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;display:grid}.card{background:var(--surface);border:1px solid var(--line);color:var(--text);box-shadow:var(--shadow);border-radius:16px;padding:22px;text-decoration:none;transition:border-color .15s,transform .15s;display:block}a.card:hover{border-color:var(--accent);transform:translateY(-2px)}.card .tag{font:500 12px/1 var(--font-mono);text-transform:uppercase;letter-spacing:.06em;color:var(--accent);background:var(--accent-soft);border-radius:6px;margin-bottom:14px;padding:5px 8px;display:inline-block}.card h2{margin-bottom:8px;font-size:22px}.card p{color:var(--muted);margin:0;font-size:15px}.card.soon{box-shadow:none;border-style:dashed}.card.soon .tag{color:var(--muted);background:var(--surface-2)}.layout{grid-template-columns:250px minmax(0,1fr);gap:48px;max-width:1180px;margin:0 auto;padding:0 20px;display:grid}.toc{align-self:start;max-height:calc(100vh - 90px);padding:32px 0;position:sticky;top:72px;overflow:auto}.toc p{font:500 12px/1 var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:12px}.toc ol{gap:2px;margin:0;padding:0;list-style:none;display:grid}.toc a{color:var(--muted);border-radius:8px;gap:10px;padding:7px 10px;font-size:14px;line-height:1.35;text-decoration:none;display:flex}.toc a b{font:500 12px/1.6 var(--font-mono);color:var(--muted);min-width:18px}.toc a:hover{color:var(--text);background:var(--surface-2)}.toc a.active{color:var(--text);background:var(--accent-soft)}.toc a.active b{color:var(--accent)}main{min-width:0;padding:40px 0 96px}.hero{padding:24px 0 8px}.eyebrow{font:500 13px/1 var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--accent);margin-bottom:14px}.hero h1{font-size:clamp(34px,6vw,56px)}.hero .lede{color:var(--muted);max-width:640px;margin:16px 0 0;font-size:20px}section.chapter{padding-top:64px}.chapter-head{align-items:center;gap:14px;margin-bottom:18px;display:flex}.num{background:var(--accent);width:44px;height:44px;color:var(--accent-ink);font:700 18px/1 var(--font-display);border-radius:12px;flex:none;place-items:center;display:grid}.chapter-head h2{font-size:clamp(26px,4vw,34px)}h3{flex-wrap:wrap;align-items:center;gap:10px;margin:32px 0 12px;font-size:19px;display:flex}.goal{background:var(--accent-soft);border-radius:14px;margin-bottom:16px;padding:16px 20px;font-size:18px}.goal b{color:var(--accent)}.note{color:var(--muted)}.badge{font:500 11px/1 var(--font-mono);text-transform:uppercase;letter-spacing:.06em;border-radius:6px;padding:5px 8px;display:inline-block}.badge.admin{background:var(--violet-soft);color:var(--violet)}.badge.auto{background:var(--accent-soft);color:var(--accent)}.badge.you{background:var(--amber-soft);color:var(--amber)}.rules{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:28px 0;display:grid}.rule{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:14px;padding:18px}.rule .n{font:700 32px/1 var(--font-display);color:var(--accent)}.rule h3{margin:10px 0 6px;font-size:17px}.rule p{color:var(--muted);margin:0;font-size:14px}.panel{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:16px;padding:20px}.two{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px;display:grid}.three{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;display:grid}.timeline{margin:0;padding:0;list-style:none;position:relative}.timeline:before{content:"";background:var(--line);width:2px;position:absolute;top:8px;bottom:8px;left:83px}.timeline li{grid-template-columns:72px 1fr;gap:24px;padding:8px 0;display:grid;position:relative}.timeline li:before{content:"";background:var(--surface);border:2px solid var(--accent);border-radius:50%;width:12px;height:12px;position:absolute;top:15px;left:78px}.timeline li.rep:before{border-color:var(--amber);background:var(--amber)}.timeline .when{font:600 13px/1.4 var(--font-mono);color:var(--text);text-align:right;padding-top:2px}.timeline .what{padding-left:4px}.timeline .chan{color:var(--muted);font-size:12px;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.04em;display:block}.legend{color:var(--muted);flex-wrap:wrap;gap:16px;margin:0 0 12px;font-size:13px;display:flex}.legend span:before{content:"";vertical-align:-1px;border:2px solid var(--accent);border-radius:50%;width:10px;height:10px;margin-right:6px;display:inline-block}.legend span.rep:before{border-color:var(--amber);background:var(--amber)}.steps{counter-reset:s;gap:10px;margin:0;padding:0;list-style:none;display:grid}.steps li{counter-increment:s;grid-template-columns:34px 1fr;align-items:start;gap:12px;display:grid}.steps li:before{content:counter(s);background:var(--amber-soft);width:30px;height:30px;color:var(--amber);font:700 14px/1 var(--font-display);border-radius:50%;place-items:center;display:grid}.steps li>div{padding-top:3px}.script{background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--accent);box-shadow:var(--shadow);border-radius:12px;margin:12px 0;padding:16px 18px;position:relative}.script .label{font:500 12px/1 var(--font-mono);text-transform:uppercase;letter-spacing:.06em;color:var(--accent);margin-bottom:10px;display:block}.script p{margin:0;padding-right:64px;font-size:16.5px}.copy{border:1px solid var(--line);background:var(--surface-2);color:var(--text);font:500 12px/1 var(--font-body);cursor:pointer;border-radius:8px;padding:5px 10px;position:absolute;top:12px;right:12px}.copy:hover{border-color:var(--accent)}.tip{background:var(--amber-soft);border-radius:12px;gap:12px;margin:16px 0;padding:14px 16px;display:flex}.tip:before{content:"Tip";font:600 12px/1.9 var(--font-mono);text-transform:uppercase;color:var(--amber);flex:none}.tip p{margin:0}.warn{background:var(--rose-soft)}.warn:before{content:"Rule";color:var(--rose)}.table-wrap{border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow);border-radius:14px;overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:15px}th,td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:11px 14px}th{font:600 12px/1.3 var(--font-mono);text-transform:uppercase;letter-spacing:.05em;color:var(--muted);background:var(--surface-2)}tr:last-child td{border-bottom:0}code,.tagchip{font:500 13px/1.4 var(--font-mono);background:var(--surface-2);border:1px solid var(--line);white-space:nowrap;border-radius:6px;padding:2px 7px}.path{border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow);border-radius:16px;padding:18px}.path header{margin-bottom:12px}.path .stage{font:500 12px/1 var(--font-mono);color:var(--muted)}.path h3{margin:8px 0 0;font-size:18px}.path .dot{border-radius:50%;width:12px;height:12px;display:inline-block}.path.a{border-top:5px solid var(--green)}.path.b{border-top:5px solid var(--amber)}.path.c{border-top:5px solid var(--rose)}.mini{margin:0;padding:0;font-size:14.5px;list-style:none}.mini li{border-top:1px dashed var(--line);grid-template-columns:86px 1fr;gap:10px;padding:7px 0;display:grid}.mini li:first-child{border-top:0}.mini .when{font:600 12.5px/1.6 var(--font-mono)}.mini .who{font-size:11px;font-family:var(--font-mono);text-transform:uppercase;border-radius:5px;margin-right:4px;padding:2px 6px}.mini .who.g{background:var(--accent-soft);color:var(--accent)}.mini .who.r{background:var(--amber-soft);color:var(--amber)}.compare{border:1px solid var(--line);background:var(--surface);border-radius:14px;grid-template-columns:1fr 1fr;gap:0;display:grid;overflow:hidden}.compare>div{border-top:1px solid var(--line);padding:12px 16px;font-size:15px}.compare>.h{font:600 12px/1.3 var(--font-mono);text-transform:uppercase;letter-spacing:.05em;border-top:0}.compare>.bad{background:var(--rose-soft)}.compare>.good{background:var(--green-soft)}.compare>.h.bad{color:var(--rose)}.compare>.h.good{color:var(--green)}.checks{gap:6px;margin:0;padding:0;list-style:none;display:grid}.checks label{cursor:pointer;border-radius:8px;align-items:flex-start;gap:10px;padding:6px 8px;display:flex}.checks label:hover{background:var(--surface-2)}.checks input{width:18px;height:18px;accent-color:var(--accent);flex:none;margin-top:3px}.checks input:checked+span{color:var(--muted);text-decoration:line-through}.formula{flex-wrap:wrap;align-items:center;gap:8px;margin:8px 0 14px;display:flex}.formula span{background:var(--accent);color:var(--accent-ink);font:600 15px/1 var(--font-display);border-radius:10px;padding:10px 14px}.formula i{color:var(--muted);font-style:normal}.stages{gap:8px;margin:0;padding:0;list-style:none;display:grid}.stages li{background:var(--surface);border:1px solid var(--line);border-radius:12px;grid-template-columns:40px 200px 1fr;align-items:center;gap:14px;padding:12px 14px;display:grid}.stages .sn{font:700 16px/1 var(--font-display);color:var(--muted)}.stages b{font-family:var(--font-display);font-size:16px}.stages .meta{color:var(--muted);font-size:14.5px}.stages .meta strong{color:var(--text);font-weight:500}.stages li.won{border-color:var(--green);background:var(--green-soft)}.stages li.lost{opacity:.8}.diagram{margin:24px 0 8px;padding:16px}.diagram svg{width:100%;height:auto;display:block}.diagram figcaption{color:var(--muted);margin-top:8px;font-size:14px}.d-box{fill:var(--surface);stroke:var(--line);stroke-width:1.5px}.d-box.won{fill:var(--green-soft);stroke:var(--green);stroke-width:2px}.d-box.ns{fill:var(--rose-soft);stroke:var(--rose)}.d-box.th{fill:var(--amber-soft);stroke:var(--amber)}.d-dia{fill:var(--surface-2);stroke:var(--muted);stroke-width:1.25px}.d-line{fill:none;stroke:var(--muted);stroke-width:1.5px}.d-name{font:600 14px var(--font-display);fill:var(--text)}.d-sub{font:400 12px var(--font-body);fill:var(--muted)}.d-lbl{font:500 12px var(--font-mono);fill:var(--muted)}.d-arrow{fill:var(--muted)}.weeks{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;display:grid}.week{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:16px;position:relative}.week .wk{font:500 12px/1 var(--font-mono);color:var(--accent);text-transform:uppercase;letter-spacing:.06em}.week h3{margin:8px 0;font-size:17px}.week ul{color:var(--muted);margin:0;padding-left:18px;font-size:14.5px}.footer{color:var(--muted);border-top:1px solid var(--line);margin-top:64px;padding-top:20px;font-size:14px}@media (width<=900px){.layout{grid-template-columns:1fr;gap:0}.toc{display:none}main{padding-top:16px}.stages li{grid-template-columns:30px 1fr}.stages .meta{grid-column:2}}@media (width<=560px){body{font-size:15.5px}.timeline:before{left:67px}.timeline li{grid-template-columns:56px 1fr;gap:22px}.timeline li:before{left:62px}.compare{font-size:14px}.script p{padding-top:18px;padding-right:0}}@media print{.topbar,.toc,.copy{display:none}.layout{display:block}body{background:#fff;font-size:12px}section.chapter{break-before:page;padding-top:0}.panel,.rule,.script,.path,.table-wrap,.week{box-shadow:none;break-inside:avoid}}.gp section.chapter>p,.gp section.chapter>ul{max-width:72ch}.gp .table-wrap,.gp .two,.gp .three,.gp .rules,.gp .formula,.gp .goal,.gp .panel{margin:14px 0}.gp .two>.panel,.gp .three>.panel{margin:0}.gp .panel{min-width:0}.gp .panel h3{margin:0 0 8px;font-size:17px}.gp .panel .sub{color:var(--muted);margin-bottom:8px;font-size:13.5px}.gp .panel ul,.gp .panel>ol{gap:6px;margin:0;padding-left:20px;font-size:15px;display:grid}.gp section.chapter>ul{gap:6px;padding-left:22px;display:grid}.gp .rules{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}.gp .rule .n{font-variant-numeric:tabular-nums;font-size:28px}.gp .rule p{margin-top:8px}.gp .note.small{font-size:13.5px}.gp .formula span{padding:8px 12px;font-size:14px}.gp td.num,.gp th.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.gp td.id{font:500 12.5px/1.6 var(--font-mono);color:var(--muted);white-space:nowrap}.gp tr.hl td{background:var(--accent-soft);font-weight:600}.gp .barcell{min-width:140px}.gp .bar{background:var(--accent);border-radius:3px;height:10px}.gp .tip p{margin:0}@media print{.gp .bar{-webkit-print-color-adjust:exact;print-color-adjust:exact}}
