:root{--bg: #fafafa;--surface: #ffffff;--surface-2: #f4f4f5;--border: #e4e4e7;--ink: #0f0f10;--ink-2: #52525b;--ink-3: #8b8b93;--accent: #111113;--accent-ink: #ffffff;--link: #1a4ed8;--good: #16794a;--warn: #a15c07;--bad: #b42318;--radius: 12px;--radius-sm: 9px;--shadow: 0 1px 2px rgba(9, 9, 11, .04);--tap: 44px;--safe-b: env(safe-area-inset-bottom, 0px);color-scheme:light}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--bg: #0b0b0c;--surface: #161618;--surface-2: #202023;--border: #2c2c31;--ink: #f4f4f5;--ink-2: #a1a1aa;--ink-3: #71717a;--accent: #fafafa;--accent-ink: #0b0b0c;--link: #8ab0ff;--good: #4ade80;--warn: #fbbf24;--bad: #f87171;--shadow: 0 1px 2px rgba(0, 0, 0, .5);color-scheme:dark}}:root[data-theme=dark]{--bg: #0b0b0c;--surface: #161618;--surface-2: #202023;--border: #2c2c31;--ink: #f4f4f5;--ink-2: #a1a1aa;--ink-3: #71717a;--accent: #fafafa;--accent-ink: #0b0b0c;--link: #8ab0ff;--good: #4ade80;--warn: #fbbf24;--bad: #f87171;--shadow: 0 1px 2px rgba(0, 0, 0, .5);color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.5 system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-synthesis:none;font-optical-sizing:auto;text-rendering:optimizeLegibility;overscroll-behavior-y:none}h1,h2,h3{margin:0;line-height:1.18;font-weight:700;letter-spacing:-.015em}h1{font-size:1.75rem}h2{font-size:1.3rem}h3{font-size:1rem;letter-spacing:-.01em;font-weight:650}a{color:var(--link)}p{margin:0}button{font:inherit;color:inherit;cursor:pointer}input,select,textarea{font:inherit;color:inherit}.app{min-height:100%;display:flex;flex-direction:column;padding-bottom:calc(64px + var(--safe-b))}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:10px;padding:12px max(16px,calc((100% - 1100px)/2 + 16px));background:color-mix(in srgb,var(--bg) 88%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border)}.topbar .grow{flex:1;min-width:0}.topbar .sub{color:var(--ink-3);font-size:.75rem}.page{padding:16px;max-width:1100px;width:100%;margin:0 auto}.stack{display:flex;flex-direction:column;gap:12px}.row{display:flex;align-items:center;gap:10px}.wrap{flex-wrap:wrap}.grow{flex:1;min-width:0}.muted{color:var(--ink-2)}.dim{color:var(--ink-3);font-size:.85rem}.center{text-align:center}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:14px}.card.tight{padding:10px 12px}.btn{min-height:var(--tap);padding:0 16px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:550;transition:transform .06s ease,background .15s ease;touch-action:manipulation}.btn:active{transform:scale(.98)}.btn.primary{background:var(--accent);color:var(--accent-ink);border-color:transparent}.btn.ghost{background:transparent}.btn.danger{color:var(--bad)}.btn.sm{min-height:44px;padding:0 11px;font-size:.85rem;border-radius:8px}.btn.block{width:100%}.btn:disabled{opacity:.45;cursor:not-allowed}.field{width:100%;min-height:var(--tap);padding:0 13px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface)}.field:focus-visible{outline:2px solid var(--accent);outline-offset:1px}textarea.field{padding:10px 13px;min-height:76px;line-height:1.45}.label{font-size:.68rem;font-weight:700;color:var(--ink-3);letter-spacing:.11em;text-transform:uppercase}.chip{display:inline-flex;align-items:center;gap:6px;padding:3px 9px;border-radius:999px;font-size:.75rem;font-weight:650;letter-spacing:.02em;border:1px solid transparent;white-space:nowrap}.chip.AB{background:#e8dcff;color:#43307a}.chip.Beginner{background:#d8ecff;color:#14496f}.chip.CT1{background:#d5f0e2;color:#14543a}.chip.CT2{background:#fbeecb;color:#6b4a0d}.chip.CT3{background:#ffe0d2;color:#7c3418}.chip.CT4{background:#ffd9e4;color:#7d1f42}.chip.none{background:var(--surface-2);color:var(--ink-3)}@media (prefers-color-scheme: dark){:root:not([data-theme=light]) .chip.AB{background:#3b2f5c;color:#ddd0ff}:root:not([data-theme=light]) .chip.Beginner{background:#1e3d54;color:#cfe8ff}:root:not([data-theme=light]) .chip.CT1{background:#1d4436;color:#cdf0de}:root:not([data-theme=light]) .chip.CT2{background:#4a3a15;color:#f7e4b6}:root:not([data-theme=light]) .chip.CT3{background:#52281a;color:#ffd8c6}:root:not([data-theme=light]) .chip.CT4{background:#4f1f33;color:#ffd0de}}:root[data-theme=dark] .chip.AB{background:#3b2f5c;color:#ddd0ff}:root[data-theme=dark] .chip.Beginner{background:#1e3d54;color:#cfe8ff}:root[data-theme=dark] .chip.CT1{background:#1d4436;color:#cdf0de}:root[data-theme=dark] .chip.CT2{background:#4a3a15;color:#f7e4b6}:root[data-theme=dark] .chip.CT3{background:#52281a;color:#ffd8c6}:root[data-theme=dark] .chip.CT4{background:#4f1f33;color:#ffd0de}.counts{display:flex;gap:8px;overflow-x:auto;padding:2px 0 6px;scrollbar-width:none}.counts::-webkit-scrollbar{display:none}.count{flex:0 0 auto;min-width:74px;padding:9px 12px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);text-align:center}.count.active{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.count .n{font-size:1.3rem;font-weight:700;line-height:1.1}.count .l{font-size:.7rem;color:var(--ink-3);font-weight:600;letter-spacing:.03em}.student{display:flex;align-items:center;gap:12px;width:100%;min-height:58px;padding:9px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);text-align:left}.student:active{background:var(--surface-2)}.student.declined{opacity:.55}.student .nm{font-weight:600}.student .meta{font-size:.78rem;color:var(--ink-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav{position:fixed;left:0;right:0;bottom:0;z-index:30;display:flex;background:color-mix(in srgb,var(--surface) 92%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--border);padding:0 max(0px,calc((100% - 1100px)/2)) var(--safe-b)}.nav button{flex:1;min-height:60px;border:none;background:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:.68rem;font-weight:600;color:var(--ink-3)}.nav button.on{color:var(--accent)}@media (min-width: 900px){.nav{justify-content:center}.nav button{flex:0 1 220px}}.nav .ic{font-size:1.15rem;line-height:1}.savebar{position:fixed;left:0;right:0;bottom:0;z-index:25;padding:10px 16px calc(10px + var(--safe-b));background:color-mix(in srgb,var(--surface) 94%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--border)}.savebar .hint{margin-top:6px}.grading{padding-bottom:96px}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#00000073;display:flex;align-items:flex-end;justify-content:center}.sheet{width:100%;max-width:560px;max-height:88vh;overflow-y:auto;background:var(--bg);border-radius:18px 18px 0 0;padding:8px 16px calc(20px + var(--safe-b));animation:rise .18s ease}@keyframes rise{0%{transform:translateY(14px);opacity:.6}}.sheet .handle{width:38px;height:4px;border-radius:99px;background:var(--border);margin:8px auto 14px}@media (min-width: 700px){.scrim{align-items:center}.sheet{border-radius:18px;max-height:82vh;padding-bottom:20px}}.pinpad{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;max-width:300px;margin:0 auto}.pinpad button{min-height:62px;font-size:1.3rem;font-weight:600;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface)}.pindots{display:flex;gap:11px;justify-content:center;margin:18px 0 22px}.pindot{width:13px;height:13px;border-radius:99px;border:2px solid var(--border)}.pindot.on{background:var(--accent);border-color:var(--accent)}.tablewrap{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius);background:var(--surface)}table{border-collapse:collapse;width:100%;font-size:.85rem}th,td{text-align:left;padding:9px 12px;border-bottom:1px solid var(--border);white-space:nowrap}th{font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3);background:var(--surface-2);position:sticky;top:0}tr:last-child td{border-bottom:none}td.wrap-cell{white-space:normal;min-width:260px}@media (min-width: 900px){.more-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 24px;align-items:start}}.banner{border-radius:var(--radius-sm);padding:10px 13px;font-size:.85rem;border:1px solid var(--border);background:var(--surface-2)}.banner.warn{border-color:color-mix(in srgb,var(--warn) 45%,var(--border))}.banner.bad{border-color:color-mix(in srgb,var(--bad) 55%,var(--border));color:var(--bad)}.board{display:grid;gap:12px;grid-template-columns:1fr}@media (min-width: 900px){.board{grid-template-columns:repeat(6,minmax(0,1fr));align-items:start}}.student.departed{opacity:.5;background:var(--surface-2)}.student.departed:hover{opacity:.75}.empty{padding:34px 16px;text-align:center;color:var(--ink-3)}.spinner{width:22px;height:22px;border-radius:99px;border:2px solid var(--border);border-top-color:var(--accent);animation:spin .7s linear infinite;margin:30px auto}@keyframes spin{to{transform:rotate(360deg)}}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.ladder-row{display:grid;grid-template-columns:1.6rem minmax(4.5rem,12rem) auto 1fr 3rem 3.4rem;align-items:center;gap:8px;min-height:32px}.ladder-rank{font-size:.7rem;font-weight:700;color:var(--ink-3);text-align:right;font-variant-numeric:tabular-nums}.ladder-name{font-size:.86rem;font-weight:550;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ladder-track{position:relative;height:14px;border-radius:999px;background:var(--surface-2);min-width:60px}.ladder-band{position:absolute;top:3px;bottom:3px;border-radius:999px;background:var(--accent)}.ladder-dot{position:absolute;top:50%;width:8px;height:8px;margin:-4px 0 0 -4px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 2px var(--surface)}.ladder-num{font-size:.82rem;font-weight:700;text-align:right;font-variant-numeric:tabular-nums}.ladder-n{font-size:.66rem;color:var(--ink-3);text-align:right;font-variant-numeric:tabular-nums}.ladder-legend{display:flex;flex-wrap:wrap;gap:14px}.ladder-key{display:inline-flex;align-items:center;gap:6px}.ladder-band-key{width:26px;height:8px;border-radius:999px;background:var(--accent);opacity:.34}.ladder-dot-key{width:8px;height:8px;border-radius:50%;background:var(--accent)}@media (max-width: 560px){.ladder-row{grid-template-columns:1.4rem minmax(3.5rem,1fr) auto 2.6rem}.ladder-track,.ladder-n,.ladder-legend,.ladder-note{display:none}}.spark{display:block;width:100%;height:30px;overflow:visible}.spark-line{fill:none;stroke:var(--accent);stroke-width:1.6;stroke-linejoin:round}.spark-area{fill:var(--accent);opacity:.13}.spark-end{fill:var(--accent)}.heat{display:grid;grid-auto-flow:column;grid-template-rows:repeat(7,10px);gap:2px;overflow-x:auto;padding-bottom:4px;scrollbar-width:none}.heat::-webkit-scrollbar{display:none}.heat i{width:10px;height:10px;border-radius:2px;background:var(--surface-2);display:block}.ctxmenu{min-width:210px;max-width:280px;padding:5px;border-radius:12px;background:var(--surface);border:1px solid var(--border);box-shadow:0 12px 34px #00000038;display:flex;flex-direction:column;gap:1px}.ctxhead{padding:7px 10px 5px;font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-3)}.ctxitem{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:0;background:none;text-align:left;font:inherit;color:var(--ink);padding:8px 10px;border-radius:8px;min-height:var(--tap);cursor:pointer}.ctxitem:hover{background:var(--surface-2)}.ctxitem.danger{color:var(--bad)}.board .card.dropping{outline:2px dashed var(--accent);outline-offset:2px}.student[draggable=true]{cursor:grab}.student.dragging{opacity:.45}.chip.done{background:var(--surface-2);color:var(--ink-2)}.chip.warn{background:#fdf0d5;color:#7a4b00}.chip.bad{background:#fbe3e3;color:#8a1f1f}@media (prefers-color-scheme: dark){:root:not([data-theme=light]) .chip.warn{background:#3a2c10;color:#f2cf8a}:root:not([data-theme=light]) .chip.bad{background:#3a1a1a;color:#f0a6a6}}:root[data-theme=dark] .chip.warn{background:#3a2c10;color:#f2cf8a}:root[data-theme=dark] .chip.bad{background:#3a1a1a;color:#f0a6a6}table.syllabus{width:100%;border-collapse:collapse}table.syllabus th{text-align:left;font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);padding:6px 8px;border-bottom:1px solid var(--border)}table.syllabus td{padding:10px 8px;border-bottom:1px solid var(--border);vertical-align:top}table.syllabus td.n{color:var(--ink-3);width:2.2em}table.syllabus td.date{white-space:nowrap;color:var(--ink-2)}table.syllabus td.topic{font-weight:600}table.syllabus ul.objectives{margin:0;padding-left:1.1em}table.syllabus tr.unplanned td{color:var(--ink-3)}table.syllabus tbody tr[style*=pointer]:hover td{background:var(--surface-2)}.coachsheet h3.topic{font-size:1.6rem;margin:6px 0 12px}.coachsheet ol.objectives{line-height:1.5;padding-left:1.3em}table.runsheet{border-collapse:collapse;margin:4px 0 2px}table.runsheet td{padding:3px 10px 3px 0;vertical-align:top}table.runsheet td.mins{white-space:nowrap;font-weight:600;width:4.6em}.sheetdot{color:var(--ok, #2e7d32);font-weight:700}.warn-text{color:var(--warn);font-size:.85rem;font-weight:600}table.seasongrid{width:100%;border-collapse:collapse;font-size:.82rem}table.seasongrid th{text-align:left;font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);padding:6px 8px;border-bottom:1px solid var(--border)}table.seasongrid td{padding:7px 8px;border-bottom:1px solid var(--border);vertical-align:top}table.seasongrid td.date{white-space:nowrap;color:var(--ink-2);font-variant-numeric:tabular-nums}table.seasongrid td.gap{background:color-mix(in srgb,var(--warn) 10%,transparent)}table.seasongrid td.off{color:var(--ink-3)}table.seasongrid td.has:hover,table.seasongrid td.gap:hover{background:var(--surface-2)}.diagram{display:block;width:100%;height:auto}.diagram .sq.light{fill:#fff}.diagram .sq.dark{fill:#d8dee6}.diagram .edge{fill:none;stroke:#111;stroke-width:1.2}.diagram .coords text{font-size:9px;fill:#55504a;font-family:inherit}.diagram-broken{display:flex;align-items:center;justify-content:center;text-align:center;border:2px dashed var(--warn);border-radius:var(--radius-sm);color:var(--warn);font-size:.72rem;padding:8px}.tomove{display:inline-flex;align-items:center;gap:5px;font-size:.74rem;font-weight:600}.tomove .disc{width:9px;height:9px;border-radius:50%;border:1px solid #111;display:inline-block}.tomove .disc.white{background:#fff}.tomove .disc.black{background:#111}.worksheet .ws-namebar{display:flex;flex-wrap:wrap;gap:16px;font-size:.86rem;padding-bottom:8px;margin-bottom:8px;border-bottom:1px solid var(--border)}.worksheet .ws-instructions{margin:0 0 12px;font-size:.9rem}.worksheet ol.ws-grid{list-style:none;margin:0;padding:0;display:grid;gap:14px;grid-template-columns:repeat(2,1fr)}@media (min-width: 760px){.worksheet.cols-2 ol.ws-grid{grid-template-columns:repeat(2,1fr)}.worksheet.cols-3 ol.ws-grid{grid-template-columns:repeat(3,1fr)}}.worksheet .ws-item{display:flex;flex-direction:column;gap:4px;break-inside:avoid}.worksheet .ws-n{font-weight:700;font-size:.9rem}.worksheet .ws-prompt{display:flex;flex-wrap:wrap;gap:8px;align-items:baseline}.worksheet .ws-goal{font-size:.78rem;color:var(--ink-2)}.worksheet .ws-answer .rule{display:block;border-bottom:1px solid var(--ink-3);height:20px}.worksheet .ws-foot{margin-top:12px}table.keysheet td.name{font-weight:600;white-space:nowrap}.site{--board: color-mix(in srgb, var(--ink) 6%, transparent);max-width:760px;margin:0 auto;padding:0 22px calc(56px + var(--safe-b));display:flex;flex-direction:column;gap:64px}.site h1{font-size:clamp(2.6rem,9vw,4.4rem);line-height:.95;letter-spacing:-.04em;font-weight:800}.site h2{font-size:clamp(1.5rem,4vw,2rem);letter-spacing:-.025em;font-weight:750;margin:6px 0 10px}.site-eyebrow{font-size:.7rem;font-weight:700;color:var(--ink-3);letter-spacing:.14em;text-transform:uppercase}.site-lede{margin:0 0 22px;color:var(--ink-2);font-size:1.05rem;line-height:1.6;max-width:52ch}.site-header{position:relative;padding-top:72px;display:flex;flex-direction:column;align-items:center;text-align:center;gap:14px;isolation:isolate}.site-board{position:absolute;inset:0 -22px auto;height:300px;z-index:-1;background:repeating-conic-gradient(var(--board) 0 25%,transparent 0 50%) 50% 0 / 48px 48px;-webkit-mask-image:radial-gradient(ellipse 60% 70% at 50% 30%,#000 20%,transparent 75%);mask-image:radial-gradient(ellipse 60% 70% at 50% 30%,#000 20%,transparent 75%);pointer-events:none}.site-mark{border-radius:22px;box-shadow:0 8px 24px #09090b29;margin-bottom:6px}.site-tagline{margin:0;font-size:1.15rem;color:var(--ink-2)}.site-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:1px;background:var(--border);border:1px solid var(--border);border-radius:16px;overflow:hidden;box-shadow:var(--shadow)}.site-fact{background:var(--surface);padding:22px 22px 20px;display:flex;flex-direction:column;gap:6px}.site-fact strong{font-size:1.25rem;line-height:1.2;letter-spacing:-.015em}.site-fact-sub{color:var(--ink-2)}.site-ladder{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}.site-rung{min-height:76px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-weight:750;font-size:.95rem;letter-spacing:.01em;transition:transform .15s ease}.site-rung:hover{transform:translateY(-3px)}.site-rung.AB{background:#e8dcff;color:#43307a}.site-rung.Beginner{background:#d8ecff;color:#14496f}.site-rung.CT1{background:#d5f0e2;color:#14543a}.site-rung.CT2{background:#fbeecb;color:#6b4a0d}.site-rung.CT3{background:#ffe0d2;color:#7c3418}.site-rung.CT4{background:#ffd9e4;color:#7d1f42}.site-events{display:flex;flex-direction:column;gap:10px}.site-event{display:flex;gap:18px;align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow);padding:16px 18px}.site-date{flex:0 0 60px;height:64px;border-radius:12px;background:var(--accent);color:var(--accent-ink);display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1}.site-date-month{font-size:.66rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;opacity:.75}.site-date-day{font-size:1.7rem;font-weight:800;letter-spacing:-.03em;margin-top:3px}.site-event-body{display:flex;flex-direction:column;gap:3px;min-width:0}.site-event-name{font-size:1.12rem;font-weight:700;letter-spacing:-.01em}.site-event-meta{color:var(--ink-2);font-size:.9rem}.site-tag{align-self:flex-start;margin-top:4px;font-size:.68rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:3px 8px;border-radius:999px;border:1px solid var(--border);color:var(--ink-2)}.site-join{position:relative;overflow:hidden;isolation:isolate;background:var(--accent);color:var(--accent-ink);border-radius:20px;padding:36px 32px}.site-join-board{position:absolute;right:-40px;top:-40px;width:300px;height:300px;z-index:-1;background:repeating-conic-gradient(color-mix(in srgb,var(--accent-ink) 10%,transparent) 0 25%,transparent 0 50%) 0 0 / 40px 40px;-webkit-mask-image:radial-gradient(circle at 80% 20%,#000 10%,transparent 65%);mask-image:radial-gradient(circle at 80% 20%,#000 10%,transparent 65%);pointer-events:none}.site-join .site-eyebrow{color:var(--accent-ink);opacity:.6}.site-join h2{margin-bottom:8px}.site-join-body{display:flex;flex-direction:column;gap:12px;max-width:52ch}.site-join p{margin:0;font-size:1.05rem;line-height:1.6;opacity:.9}.site-cta{align-self:flex-start;margin-top:6px;min-height:48px;padding:0 24px;border-radius:12px;background:var(--accent-ink);color:var(--accent);font-weight:650;display:inline-flex;align-items:center;text-decoration:none;transition:transform .06s ease}.site-cta:active{transform:scale(.98)}.site-join-note{font-size:.88rem!important;opacity:.6!important}.site-footer{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 20px;color:var(--ink-3);font-size:.8rem;padding-top:20px;border-top:1px solid var(--border)}.site-footer a{color:inherit}.site-footer .site-link,.site-signin{background:none;border:0;padding:0;font:inherit;color:inherit;text-decoration:underline;cursor:pointer;min-height:0}.site-features{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}.site-feature{background:var(--surface);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow);padding:20px 20px 18px;display:flex;flex-direction:column;gap:8px}.site-feature h3{font-size:1.15rem;letter-spacing:-.015em;font-weight:700;margin:0}.site-feature p{margin:0;color:var(--ink-2);line-height:1.55}.site-join .site-cta{border:0;font:inherit;font-weight:650;cursor:pointer}.site-join-note a{color:inherit}.site-narrow{max-width:440px;gap:28px}.site-header.compact{padding-top:40px;gap:10px}.site-header.compact h1{font-size:clamp(2rem,7vw,2.6rem)}.site-header.compact .site-board{height:220px}.site-header.compact .site-mark{border-radius:17px}.site-card{background:var(--surface);border:1px solid var(--border);border-radius:20px;box-shadow:var(--shadow);padding:22px 20px}.site-card h1{font-size:1.3rem}@media (max-width: 560px){.site{gap:48px;padding-bottom:calc(40px + var(--safe-b))}.site-narrow{gap:22px}.site-header{padding-top:48px}.site-ladder{grid-template-columns:repeat(3,1fr);gap:8px}.site-rung{min-height:68px}.site-join{padding:28px 22px}.site-event{gap:14px;padding:14px}}@media (max-width: 340px){.site-ladder{grid-template-columns:repeat(2,1fr)}}@media print{@page{margin:14mm 13mm}:root,:root[data-theme=dark],:root:not([data-theme=light]){--bg: #ffffff;--surface: #ffffff;--surface-2: #ffffff;--border: #b9b3a6;--ink: #000000;--ink-2: #333029;--ink-3: #55504a;--accent: #000000;--shadow: none;color-scheme:light}body{background:#fff;font-size:11pt}.topbar,.nav,.no-print,.banner,button{display:none!important}.app{padding:0!important;display:block}.page{padding:0;max-width:none}.paper{break-inside:avoid;break-after:page;padding:0;border:0;box-shadow:none;background:#fff}.paper:last-child{break-after:auto}.paper-head{display:flex;align-items:baseline;gap:10px;border-bottom:1.5pt solid #000;padding-bottom:5pt;margin-bottom:10pt}.paper-head h2{font-size:15pt;letter-spacing:-.01em}.paper-head .meta{margin-left:auto;font-size:9pt;color:#333029}table.syllabus{width:100%;border-collapse:collapse;font-size:9.5pt}table.syllabus th{text-align:left;font-size:8pt;text-transform:uppercase;letter-spacing:.06em;color:#333029;border-bottom:.8pt solid #000;padding:0 4pt 3pt}table.syllabus td{padding:4pt;border-bottom:.5pt solid #b9b3a6;vertical-align:top}table.syllabus td.n,table.syllabus th.n{width:6mm;color:#55504a}table.syllabus td.date,table.syllabus th.date{width:20mm;white-space:nowrap}table.syllabus td.topic{font-weight:600}table.syllabus td.practice{width:34mm;color:#333029}table.syllabus ul.objectives{margin:0;padding-left:1.1em}table.syllabus tr.unplanned td{color:#55504a}.coachsheet h3.topic{font-size:20pt;margin:6pt 0 10pt;letter-spacing:-.01em}.coachsheet .label{font-size:8pt;text-transform:uppercase;letter-spacing:.06em;color:#333029;margin:10pt 0 2pt}.coachsheet ol.objectives{font-size:12pt;line-height:1.5;margin:0;padding-left:1.3em}table.checklist td.name{height:auto;padding:4pt;font-weight:400}.worksheet .ws-namebar{display:flex;gap:14mm;font-size:10pt;border-bottom:.6pt solid #000;padding-bottom:3pt;margin-bottom:6pt}.worksheet .ws-instructions{font-size:10pt;margin:0 0 7pt}.worksheet ol.ws-grid{list-style:none;margin:0;padding:0;display:grid;gap:7mm 8mm}.worksheet.cols-2 ol.ws-grid{grid-template-columns:repeat(2,1fr)}.worksheet.cols-3 ol.ws-grid{grid-template-columns:repeat(3,1fr)}.worksheet .ws-item{break-inside:avoid;display:flex;flex-direction:column;gap:1.5mm}.worksheet .ws-n{font-size:10pt;font-weight:700}.worksheet .ws-prompt{display:flex;gap:4mm;align-items:baseline;font-size:8.5pt}.worksheet .ws-goal{color:#333029}.worksheet .ws-answer .rule{display:block;border-bottom:.6pt solid #000;height:7mm}.worksheet .ws-foot{font-size:7.5pt;margin-top:6pt}.diagram{width:100%!important;height:auto!important}.diagram .sq.light{fill:#fff}.diagram .sq.dark{fill:#d6dce4;-webkit-print-color-adjust:exact;print-color-adjust:exact}.diagram .edge{fill:none;stroke:#000;stroke-width:1.2}.diagram .coords text{font-size:9px;fill:#333029}.tomove .disc{-webkit-print-color-adjust:exact;print-color-adjust:exact}table.keysheet{font-size:9.5pt}table.keysheet td{height:auto;padding:3pt 4pt}table.runsheet{border-collapse:collapse;font-size:10.5pt}table.runsheet td{padding:2pt 6pt 2pt 0;vertical-align:top}table.runsheet td.mins{font-weight:700;white-space:nowrap;width:16mm}table.seasongrid{width:100%;border-collapse:collapse;font-size:8.5pt}table.seasongrid th{text-align:left;font-size:7.5pt;text-transform:uppercase;letter-spacing:.06em;border-bottom:.8pt solid #000;padding:0 3pt 3pt}table.seasongrid td{padding:3pt;border-bottom:.4pt solid #b9b3a6;vertical-align:top}table.seasongrid td.date{white-space:nowrap;width:20mm}table.seasongrid td.gap{background:#f0efe9;-webkit-print-color-adjust:exact;print-color-adjust:exact}table.register{width:100%;border-collapse:collapse;font-size:10.5pt}table.register th{text-align:left;font-size:8pt;text-transform:uppercase;letter-spacing:.06em;color:#333029;border-bottom:.8pt solid #000;padding:0 4pt 3pt}table.register th.tick{width:8.5mm;text-align:center}table.register td{padding:0;border-bottom:.5pt solid #b9b3a6;height:8.6mm;vertical-align:middle}table.register td.name{padding-left:4pt;font-weight:500}table.register td.tick{border-left:.5pt solid #d6d1c6}table.register tbody tr:nth-child(2n) td{background:#f4f2ed;-webkit-print-color-adjust:exact;print-color-adjust:exact}.badge-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:0}.badge{height:32mm;border:.4pt dashed #b9b3a6;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2mm;break-inside:avoid;text-align:center;padding:3mm}.badge .who{font-size:16pt;font-weight:700;letter-spacing:-.01em}.badge .where{font-size:9pt;text-transform:uppercase;letter-spacing:.1em;color:#333029}.badge .club{font-size:7.5pt;letter-spacing:.14em;text-transform:uppercase;color:#55504a}.certificate{height:245mm;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:6mm;border:1.2pt solid #000;padding:16mm 12mm;break-inside:avoid;break-after:page}.certificate .knight{font-size:34pt;line-height:1}.certificate .club{font-size:10pt;letter-spacing:.28em;text-transform:uppercase}.certificate .who{font-size:30pt;font-weight:700;letter-spacing:-.02em;border-bottom:.8pt solid #000;padding:0 8mm 3mm}.certificate .what{font-size:12pt;max-width:120mm;line-height:1.6}.certificate .sign{margin-top:14mm;display:flex;gap:20mm;font-size:9pt;color:#333029}.certificate .sign span{border-top:.6pt solid #000;padding-top:2mm;width:58mm}}.paper{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow)}.paper-head{display:flex;align-items:baseline;gap:10px;border-bottom:2px solid var(--ink);padding-bottom:8px;margin-bottom:12px}.paper-head .meta{margin-left:auto;font-size:.78rem;color:var(--ink-3)}table.register{width:100%;border-collapse:collapse;font-size:.9rem}table.register th{text-align:left;font-size:.66rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);border-bottom:1px solid var(--ink);padding:0 6px 5px}table.register th.tick{width:34px;text-align:center}table.register td{border-bottom:1px solid var(--border);height:34px;padding:0 6px}table.register td.tick{border-left:1px solid var(--border)}.badge-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}.badge{border:1px dashed var(--border);border-radius:var(--radius-sm);padding:14px 10px;text-align:center;display:flex;flex-direction:column;gap:4px;align-items:center}.badge .who{font-weight:700}.badge .where{font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3)}.badge .club{font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}.certificate{border:2px solid var(--border);border-radius:var(--radius);padding:28px 20px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:10px}.certificate .knight{font-size:2rem;line-height:1}.certificate .club{font-size:.7rem;letter-spacing:.28em;text-transform:uppercase;color:var(--ink-3)}.certificate .who{font-size:1.5rem;font-weight:700;border-bottom:1px solid var(--ink);padding:0 16px 6px}.certificate .what{color:var(--ink-2);max-width:42ch;line-height:1.6}.certificate .sign{margin-top:18px;display:flex;gap:24px;font-size:.72rem;color:var(--ink-3)}.certificate .sign span{border-top:1px solid var(--border);padding-top:5px;width:130px}.printsheet{margin-bottom:22px}.printsheet+.printsheet{break-before:page}.printsheet h2{margin:0 0 2px}.printsheet .signoff{margin-top:14px}table.gridsheet{width:100%;border-collapse:collapse;margin-top:8px;font-size:.86rem}table.gridsheet th,table.gridsheet td{border:1px solid var(--border);padding:4px 6px;text-align:center}table.gridsheet th.wide,table.gridsheet td.wide{text-align:left;width:34%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}table.gridsheet tr.scale th{font-weight:500;font-size:.72rem}table.gridsheet td.tick{width:26px;height:26px}table.gridsheet td.ruled{height:26px}.placegroup{margin-top:12px}.placegroup h3{margin:0}@media print{.printsheet{break-inside:auto}table.gridsheet tr{break-inside:avoid}table.gridsheet th,table.gridsheet td{border-color:#999}}
