@font-face{font-family:Fraunces;src:url(/fonts/fraunces-latin-var.woff2) format("woff2");font-weight:400 800;font-style:normal;font-display:swap}@font-face{font-family:DM Mono;src:url(/fonts/dm-mono-latin-400.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:DM Mono;src:url(/fonts/dm-mono-latin-500.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}:root{--paper: #f2e8d0;--sheet: #fbf6ea;--sunk: #e8dcbd;--ink: #17211b;--ink-soft: #46524a;--ink-faint: #615c4d;--rule: #cbbb96;--rule-strong: #8a7a5a;--felt: #1d5239;--felt-deep: #12382a;--buff: #e6d3a3;--on-felt: #f2e8d0;--on-felt-soft: #b7cbbb;--red: #c0352c;--red-edge: #8a1f18;--red-rim: #f3c9b8;--red-ink: #9b261d;--white: #f7f2e6;--white-edge: #c4b89c;--brass: #c8962a;--brass-ink: #7a5810;--glow: #ffd447;--draw: #2c4a8c;--font-serif: "Fraunces", Georgia, "Times New Roman", serif;--font-mono: "DM Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--text-xs: .8125rem;--text-sm: .9375rem;--text-md: 1.125rem;--text-lg: 1.375rem;--text-xl: clamp(1.75rem, 1.2rem + 2vw, 2.5rem);--text-2xl: clamp(2.5rem, 1.6rem + 4vw, 4.5rem);--text-3xl: clamp(3rem, 1.8rem + 6vw, 6.5rem);--leading-tight: 1.02;--leading-body: 1.6;--tracking-label: .14em;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.5rem;--space-6: 2rem;--space-7: 3rem;--space-8: 4rem;--space-9: 6rem;--page-max: 78rem;--measure: 40rem;--cols: 8;--radius-square: 2px;--radius-card: 6px;--shadow-sheet: 0 1px 0 rgba(23, 33, 27, .06), 0 14px 30px -18px rgba(23, 33, 27, .45)}*,*:before,*:after{box-sizing:border-box}html{color-scheme:light;-webkit-text-size-adjust:100%;scroll-padding-top:var(--space-6)}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-serif);font-size:var(--text-md);line-height:var(--leading-body);font-optical-sizing:auto;text-rendering:optimizeLegibility}img,svg{display:block;max-width:100%}h1,h2,h3{margin:0;font-weight:650;line-height:var(--leading-tight);letter-spacing:-.01em;text-wrap:balance}h1{font-size:var(--text-2xl);font-weight:700;letter-spacing:-.02em}h2{font-size:var(--text-xl)}h3{font-size:var(--text-lg);line-height:1.2}p{margin:0 0 var(--space-4);text-wrap:pretty}a{color:var(--red-ink);text-decoration-thickness:1px;text-underline-offset:.18em}a:hover{text-decoration-thickness:2px}:focus-visible{outline:3px solid var(--draw);outline-offset:2px}strong,b{font-weight:650}.mono,.notation,code{font-family:var(--font-mono);font-size:.92em;letter-spacing:0}.notation{white-space:nowrap}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.skip-link{position:absolute;left:var(--space-4);top:-4rem;z-index:10;padding:var(--space-2) var(--space-4);background:var(--ink);color:var(--sheet);font-family:var(--font-mono);font-size:var(--text-sm)}.skip-link:focus{top:var(--space-2)}.shell{width:100%;max-width:var(--page-max);margin-inline:auto;padding-inline:var(--space-4)}@media(min-width:48rem){.shell{padding-inline:var(--space-6)}}.label{display:flex;align-items:center;gap:var(--space-2);margin:0 0 var(--space-3);color:var(--ink-soft);font-family:var(--font-mono);font-size:var(--text-xs);font-weight:500;letter-spacing:var(--tracking-label);text-transform:uppercase}.label:before{content:"";flex:none;width:.7em;height:.7em;background:var(--felt);border-radius:1px}.lede{font-size:var(--text-lg);line-height:1.45;color:var(--ink-soft);max-width:var(--measure)}.small,.microcopy{color:var(--ink-faint);font-size:var(--text-sm)}.button{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:2.875rem;padding:var(--space-3) var(--space-5);border:0;border-radius:var(--radius-square);background:var(--red);color:var(--sheet);box-shadow:0 3px 0 var(--red-edge);font-family:var(--font-mono);font-size:var(--text-sm);font-weight:500;letter-spacing:.06em;text-transform:uppercase;text-decoration:none;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease}.button:hover{transform:translateY(-1px);box-shadow:0 4px 0 var(--red-edge)}.button:active{transform:translateY(3px);box-shadow:0 0 0 var(--red-edge)}.button.quiet{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 2px var(--ink)}.button.quiet:active{transform:translateY(1px)}.actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3) var(--space-4);margin:var(--space-5) 0}.chip-button{display:inline-flex;align-items:center;gap:var(--space-2);min-height:2.5rem;padding:var(--space-2) var(--space-3);border:1px solid var(--rule-strong);border-radius:var(--radius-square);background:var(--sheet);color:var(--ink);font-family:var(--font-mono);font-size:var(--text-xs);font-weight:500;letter-spacing:.08em;text-transform:uppercase;cursor:pointer}.chip-button:hover{border-color:var(--ink)}.chip-button svg{width:1.1rem;height:1.1rem}.badges{display:flex;flex-wrap:wrap;gap:var(--space-3);margin:var(--space-4) 0}.badge{display:inline-flex;align-items:center;gap:var(--space-3);min-width:11rem;padding:var(--space-2) var(--space-4);border-radius:var(--radius-card);background:var(--ink);color:var(--paper);text-decoration:none;line-height:1.15}.badge svg{width:1.6rem;height:1.6rem;flex:none}.badge small{display:block;font-family:var(--font-mono);font-size:.6875rem;letter-spacing:.04em;color:var(--on-felt-soft)}.badge b{font-size:1.1875rem;font-weight:600}.badge.mine{outline:3px solid var(--brass);outline-offset:2px}.masthead{border-bottom:3px double var(--rule-strong)}.masthead .shell{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-2) var(--space-5);padding-block:var(--space-3)}.wordmark{display:inline-flex;align-items:center;gap:var(--space-3);color:var(--ink);font-size:1.3125rem;font-weight:700;letter-spacing:-.01em;text-decoration:none}.wordmark svg{width:2.25rem;height:2.25rem}.masthead nav{display:flex;align-items:center;gap:var(--space-5)}.masthead nav a:not(.button){color:var(--ink);font-family:var(--font-mono);font-size:var(--text-xs);font-weight:500;letter-spacing:var(--tracking-label);text-transform:uppercase;text-decoration:none;padding-block:var(--space-2);border-bottom:2px solid transparent}.masthead nav a:not(.button):hover,.masthead nav a[aria-current=page]{border-bottom-color:var(--red)}.masthead .button{min-height:2.5rem;padding:var(--space-2) var(--space-4)}@media(max-width:40rem){.masthead .shell{display:grid;grid-template-columns:1fr auto}.masthead nav{display:contents}.masthead nav .links{grid-column:1 / -1;grid-row:2;display:flex;gap:var(--space-5)}.masthead .button{grid-column:2;grid-row:1}}.masthead nav .links{display:flex;gap:var(--space-5)}.strip{height:1.5rem;background:conic-gradient(var(--buff) 0 25%,var(--felt) 0 50%,var(--buff) 0 75%,var(--felt) 0) 0 0 / 1.5rem 1.5rem}.colophon{background:var(--felt-deep);color:var(--on-felt);margin-top:var(--space-9)}.colophon .shell{display:grid;gap:var(--space-5);padding-block:var(--space-7)}@media(min-width:48rem){.colophon .shell{grid-template-columns:1fr 2fr}}.colophon .wordmark{color:var(--on-felt)}.colophon p{color:var(--on-felt-soft);font-size:var(--text-sm);max-width:24rem;margin-top:var(--space-3)}.colophon a{color:var(--on-felt)}.colophon nav{display:grid;grid-template-columns:repeat(auto-fill,minmax(10rem,1fr));gap:var(--space-2) var(--space-5);align-content:start}.colophon nav a{font-family:var(--font-mono);font-size:var(--text-sm);text-decoration:none;padding-block:var(--space-1)}.colophon nav a:hover{text-decoration:underline}.colophon :focus-visible{outline-color:var(--glow)}.demo{display:grid;gap:var(--space-4) var(--space-7);grid-template-areas:"intro" "head" "stage" "panel";padding-block:var(--space-5) var(--space-8)}@media(min-width:60rem){.demo{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"intro stage" "head stage" "panel stage";grid-template-rows:auto auto 1fr;row-gap:var(--space-5);align-items:start;padding-block:var(--space-7) var(--space-9)}}.demo-head{grid-area:head;display:grid;gap:var(--space-4)}.demo-intro{grid-area:intro}.demo-intro h1{font-size:clamp(2.25rem,1.4rem + 2.8vw,3.75rem);margin-bottom:var(--space-4)}.demo-intro .lede{margin-bottom:0}@media(max-width:40rem){.demo-intro h1{margin-bottom:var(--space-3)}.demo-intro .lede{font-size:var(--text-md)}}.demo-stage{grid-area:stage;width:100%}@media(min-width:60rem){.demo-stage{position:sticky;top:var(--space-5);width:min(40rem,52vw,calc(100vh - 7rem))}}.demo-frame{padding:clamp(.375rem,1.6vw,.875rem);background:var(--felt-deep);border-radius:var(--radius-card);box-shadow:var(--shadow-sheet)}.demo-board{position:relative;display:grid;grid-template-columns:repeat(8,1fr);aspect-ratio:1;container-type:inline-size;user-select:none;-webkit-user-select:none;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.sq{position:relative;display:block;margin:0;padding:0;border:0;border-radius:0;background:var(--felt);font:inherit;aspect-ratio:1}.sq.light{background:var(--buff)}button.sq{cursor:pointer}button.sq:focus-visible{outline:none;box-shadow:inset 0 0 0 3px var(--on-felt);z-index:4}.sq .num{position:absolute;left:5%;top:3%;color:var(--on-felt-soft);font-family:var(--font-mono);font-size:clamp(9px,2cqi,12px);line-height:1}.sq.nope{animation:nope .45s ease-out}@keyframes nope{0%{background:var(--red)}}.demo-pieces,.demo-marks{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.demo-marks{z-index:3;overflow:visible}.pc{position:absolute;left:0;top:0;width:12.5%;height:12.5%;transform:translate(calc(var(--c) * 100%),calc(var(--r) * 100%));z-index:1;transition:opacity .26s ease,scale .26s ease}.pc.is-moving{z-index:2}.pc:before{content:"";position:absolute;inset:14.5%;border-radius:50%;translate:0 -2%}.pc.white:before{background:radial-gradient(circle,var(--white) 0 42%,var(--white-edge) 43% 47%,var(--white) 48% 60%,var(--white-edge) 61% 64%,var(--white) 65%);box-shadow:0 0 0 .25cqi #17211b66,0 .9cqi 0 0 var(--white-edge),0 .9cqi 0 .25cqi #17211b66,0 1.6cqi 1.6cqi #00000059}.pc.red:before{background:radial-gradient(circle,var(--red) 0 42%,var(--red-edge) 43% 47%,var(--red) 48% 60%,var(--red-edge) 61% 64%,var(--red) 65%);box-shadow:0 0 0 .45cqi var(--red-rim),0 .9cqi 0 .45cqi var(--red-edge),0 1.6cqi 1.6cqi #00000059}.pc.white.king:before{translate:0 -9%;box-shadow:0 0 0 .25cqi #17211b66,0 .9cqi 0 0 var(--white-edge),0 .9cqi 0 .25cqi #17211b66,0 1.2cqi 0 .25cqi var(--white),0 2.1cqi 0 .25cqi var(--white-edge),0 2.1cqi 0 .5cqi #17211b66,0 2.8cqi 1.6cqi #00000059}.pc.red.king:before{translate:0 -9%;box-shadow:0 0 0 .45cqi var(--red-rim),0 .9cqi 0 .45cqi var(--red-edge),0 1.3cqi 0 .45cqi var(--red-rim),0 2.2cqi 0 .45cqi var(--red-edge),0 2.9cqi 1.6cqi #00000059}.pc .crown{position:absolute;left:31%;top:33%;width:38%;height:30%;translate:0 -30%;fill:var(--brass);stroke-width:1.6;stroke-linejoin:round;opacity:0;transition:opacity .2s ease}.pc.red .crown{stroke:var(--red-rim)}.pc.white .crown{stroke:var(--brass-ink)}.pc.king .crown{opacity:1}.pc.crowning .crown{animation:crown-drop .55s cubic-bezier(.3,1.4,.5,1)}.pc.crowning:before{animation:stack .5s ease-out}@keyframes crown-drop{0%{transform:translateY(-140%) scale(1.5);opacity:0}60%{opacity:1}}@keyframes stack{0%{filter:brightness(1.5)}}.pc.taken{opacity:.55}.pc.taken:after{content:"";position:absolute;inset:30%;background:linear-gradient(45deg,transparent 44%,var(--ink) 44% 56%,transparent 56%),linear-gradient(-45deg,transparent 44%,var(--ink) 44% 56%,transparent 56%)}.pc.gone{opacity:0;scale:.6}.m-last{fill:none;stroke:var(--on-felt);stroke-width:.03;opacity:.45}.m-must{fill:none;stroke:var(--glow);stroke-width:.075;animation:must 1.1s ease-in-out infinite alternate}@keyframes must{to{stroke-width:.03;opacity:.55}}.m-sel{fill:#ffd44729;stroke:var(--glow);stroke-width:.09}.m-jump,.m-step,.m-red{fill:none;stroke-linecap:round;stroke-linejoin:round}.m-jump{stroke:var(--glow);stroke-width:.1}.m-step{stroke:var(--glow);stroke-width:.06;stroke-dasharray:.01 .14}.m-red{stroke:var(--red-rim);stroke-width:.09;stroke-dasharray:.2 .12}.m-jump-via,.m-step-via{fill:var(--glow)}.m-red-via{fill:var(--red-rim)}.m-jump-end{fill:#ffd44733;stroke:var(--glow);stroke-width:.08}.m-step-end,.m-jump-crown,.m-step-crown{fill:var(--glow)}.m-red-crown{fill:var(--red-rim)}.m-red-end{fill:none;stroke:var(--red-rim);stroke-width:.07}.demo-panel{grid-area:panel;display:grid;gap:var(--space-4);align-content:start}.demo-tabs{display:flex;gap:var(--space-2);border-bottom:1px solid var(--rule)}.demo-tabs button{display:inline-flex;align-items:center;gap:var(--space-2);margin-bottom:-1px;padding:var(--space-2) var(--space-3) var(--space-3);border:0;border-bottom:3px solid transparent;background:none;color:var(--ink-soft);font-family:var(--font-mono);font-size:var(--text-xs);font-weight:500;letter-spacing:var(--tracking-label);text-transform:uppercase;cursor:pointer}.demo-tabs button[aria-pressed=true]{color:var(--ink);border-bottom-color:var(--red)}.demo-tabs .n{display:inline-grid;place-items:center;width:1.5em;height:1.5em;background:var(--felt);color:var(--on-felt);border-radius:1px}.demo-task .label{margin-bottom:var(--space-2)}.demo-task h2{font-size:var(--text-lg);font-style:italic;font-weight:600}.demo-status{min-height:5.2em;margin:0;padding:var(--space-3) var(--space-4);border-left:4px solid var(--felt);background:var(--sheet);font-size:1.0625rem;line-height:1.45;box-shadow:var(--shadow-sheet)}.choices{display:grid;gap:var(--space-2)}.choices[hidden]{display:none}.choices-label{margin:0;color:var(--ink-soft);font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:var(--tracking-label);text-transform:uppercase}.choice{display:flex;justify-content:space-between;gap:var(--space-3);padding:var(--space-3) var(--space-4);border:2px solid var(--felt);border-radius:var(--radius-square);background:var(--sheet);color:var(--ink);font:inherit;font-size:var(--text-sm);text-align:left;cursor:pointer}.choice:hover{background:var(--sunk)}.choice .notation{font-weight:500}.draw-chip{display:inline-flex;align-items:center;gap:var(--space-2);margin:0;padding:var(--space-2) var(--space-3);border:1.5px solid var(--draw);border-radius:999px;background:var(--sheet);color:var(--draw);font-family:var(--font-mono);font-size:var(--text-xs);font-weight:500;line-height:1.35}.demo-panel .draw-chip{justify-self:start}.draw-chip[hidden]{display:none}.draw-chip svg{flex:none;width:1.1rem;height:1.1rem}.draw-chip.is-close{background:var(--draw);color:var(--sheet)}.draw-chip.is-drawn{border-style:double;border-width:3px}.demo-sheet{background:repeating-linear-gradient(to bottom,transparent 0 calc(2rem - 1px),var(--rule) calc(2rem - 1px) 2rem),var(--sheet);border:1px solid var(--rule);border-radius:var(--radius-square);font-family:var(--font-mono);font-size:var(--text-sm)}.sheet-head{display:grid;grid-template-columns:2.5rem 1fr 1fr;margin:0;height:2rem;align-items:center;color:var(--ink-faint);font-size:var(--text-xs);letter-spacing:var(--tracking-label);text-transform:uppercase}.sheet-head span:first-child{grid-column:2}.demo-sheet ol{max-height:10rem;margin:0;padding:0;overflow-y:auto;list-style:none;counter-reset:move}.demo-sheet li{display:grid;grid-template-columns:2.5rem 1fr 1fr;height:2rem;align-items:center;counter-increment:move}.demo-sheet li:before{content:counter(move) ".";color:var(--ink-faint);text-align:right;padding-right:var(--space-3)}.sheet-empty{display:none;min-height:2rem;margin:0;padding:.3rem 0 .3rem 2.5rem;line-height:1.4rem;color:var(--ink-faint)}.demo-sheet.is-empty .sheet-empty{display:block}.demo-tray{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-5);margin:0;color:var(--ink-soft);font-family:var(--font-mono);font-size:var(--text-xs)}.demo-tray>span{display:inline-flex;align-items:center;gap:var(--space-2)}.demo-tray [data-took-white],.demo-tray [data-took-red]{display:inline-flex;gap:3px;min-height:.9rem}.mini{width:.9rem;height:.9rem;border-radius:50%}.mini.red{background:var(--red);box-shadow:inset 0 -2px 0 var(--red-edge)}.mini.white{background:var(--white);box-shadow:inset 0 -2px 0 var(--white-edge),0 0 0 1px var(--rule-strong)}.demo-controls{display:flex;flex-wrap:wrap;gap:var(--space-2)}.demo-controls [hidden]{display:none}.chip-button.is-ready{border-color:var(--red);box-shadow:inset 0 0 0 1px var(--red)}.sound .off,.sound[aria-pressed=false] .on{display:none}.sound[aria-pressed=false] .off{display:inline}.demo-cta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3) var(--space-4)}.demo.is-solved .demo-cta .button{animation:ready 1.4s ease-in-out 2}@keyframes ready{50%{box-shadow:0 3px 0 var(--red-edge),0 0 0 6px #c0352c40}}.demo-keys{margin:0;color:var(--ink-faint);font-size:var(--text-sm)}.demo:not(.is-live) .demo-tabs,.demo:not(.is-live) .demo-sheet,.demo:not(.is-live) .demo-controls,.demo:not(.is-live) .demo-tray,.demo:not(.is-live) .demo-keys{display:none}.chapter{display:grid;gap:var(--space-5) var(--space-6);padding-block:var(--space-8);border-top:1px solid var(--rule)}@media(min-width:60rem){.chapter{grid-template-columns:repeat(var(--cols),minmax(0,1fr))}.chapter-tab{grid-column:1 / span 2}.chapter-body{grid-column:3 / -1}.chapter-tab>div{position:sticky;top:var(--space-6)}}.chapter-tab .square{position:relative;display:grid;place-items:center;width:4.5rem;height:4.5rem;margin-bottom:var(--space-3);background:var(--felt);color:var(--on-felt);border-radius:var(--radius-square);font-size:2rem;font-weight:700}.chapter-tab .square small{position:absolute;left:.4rem;top:.25rem;color:var(--on-felt-soft);font-family:var(--font-mono);font-size:.6875rem;font-weight:400}.chapter-tab .label{margin:0}.chapter-tab .label:before{display:none}@media(max-width:59.99rem){.chapter-tab>div{display:flex;align-items:center;gap:var(--space-4)}.chapter-tab .square{width:3.25rem;height:3.25rem;margin:0;font-size:1.5rem}}.chapter-body>h2{max-width:22ch;margin-bottom:var(--space-4)}.chapter-body>.lede{margin-bottom:var(--space-6)}.chapter-foot{margin:var(--space-5) 0 0;color:var(--ink-soft);font-size:var(--text-sm)}.diagram{width:100%;height:auto}.dg-frame{fill:var(--felt-deep)}.dg-dark{fill:var(--felt)}.dg-light{fill:var(--buff)}.dg-num{fill:var(--on-felt-soft);font-family:var(--font-mono);font-size:.22px}.dg-num.marked{font-size:.3px}.dg-pc .edge{stroke-width:.05}.dg-pc.red .face{fill:var(--red);stroke:var(--red-rim);stroke-width:.06}.dg-pc.red .edge{fill:var(--red-edge);stroke:var(--red-rim)}.dg-pc.red .ridge{fill:none;stroke:var(--red-edge);stroke-width:.035}.dg-pc.white .face{fill:var(--white);stroke:#17211b73;stroke-width:.025}.dg-pc.white .edge{fill:var(--white-edge);stroke:#17211b73;stroke-width:.025}.dg-pc.white .ridge{fill:none;stroke:var(--white-edge);stroke-width:.035}.dg-pc .crown{fill:var(--brass);stroke-width:1.6;stroke-linejoin:round;overflow:visible}.dg-pc.red .crown{stroke:var(--red-rim)}.dg-pc.white .crown{stroke:var(--brass-ink)}.dg-arrow polyline{fill:none;stroke-width:.1;stroke-linecap:round;stroke-linejoin:round}.dg-arrow.go polyline{stroke:var(--glow)}.dg-arrow.go polygon{fill:var(--glow)}.dg-arrow.no polyline{stroke:var(--red-rim);stroke-dasharray:.16 .12;stroke-width:.07}.dg-arrow.no polygon{display:none}.dg-arrow .cross{fill:none;stroke:var(--red-rim);stroke-width:.09;stroke-linecap:round}.dg-ring{fill:#ffd4472e;stroke:var(--glow);stroke-width:.06;stroke-dasharray:.12 .08}.dg-crown-mark{fill:var(--brass);stroke:var(--felt-deep);stroke-width:1.6;stroke-linejoin:round;overflow:visible}figure{margin:0}figcaption{margin-top:var(--space-3);color:var(--ink-soft);font-size:var(--text-sm);font-style:italic;line-height:1.45}figcaption .notation{font-style:normal}.chapter-wide{grid-column:1 / -1}.rulesets{display:grid;gap:var(--space-4)}@media(min-width:34rem){.rulesets{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(min-width:60rem){.rulesets{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:33.99rem){.rulesets .ruleset{display:grid;grid-template-columns:9rem minmax(0,1fr);grid-template-areas:"dg name" "dg where" "cap cap" "blurb blurb" "facts facts";column-gap:var(--space-4);align-items:start}.rulesets .ruleset figure{display:contents}.rulesets .ruleset .diagram{grid-area:dg}.rulesets .ruleset figcaption{grid-area:cap;margin-top:var(--space-2)}.rulesets .ruleset h3{grid-area:name;align-self:end}.rulesets .ruleset .where{grid-area:where}.rulesets .ruleset>p:not(.where){grid-area:blurb}.rulesets .ruleset .facts{grid-area:facts}.rulesets .ruleset .dg-num{display:none}}.ruleset{display:flex;flex-direction:column;padding:var(--space-4);background:var(--sheet);border:1px solid var(--rule);border-radius:var(--radius-card);box-shadow:var(--shadow-sheet)}.ruleset .diagram{margin-bottom:var(--space-3)}.ruleset figcaption{margin:0 0 var(--space-4)}.ruleset h3{margin-bottom:var(--space-1)}.ruleset .where{margin-bottom:var(--space-3);color:var(--ink-faint);font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.02em}.ruleset>p{font-size:var(--text-sm);line-height:1.5}.facts{display:grid;grid-template-columns:1fr auto;margin:auto 0 0;border-top:1px solid var(--rule);font-size:var(--text-sm)}.facts dt,.facts dd{margin:0;padding:var(--space-2) 0;border-bottom:1px solid var(--rule)}.facts dt{color:var(--ink-soft)}.facts dd{font-family:var(--font-mono);font-size:var(--text-xs);font-weight:500;text-align:right}.facts dd.yes{color:var(--red-ink)}.pair{display:grid;gap:var(--space-5)}@media(min-width:48rem){.pair{grid-template-columns:1fr 1fr}}.panel{display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-5);background:var(--sheet);border:1px solid var(--rule);border-radius:var(--radius-card);box-shadow:var(--shadow-sheet)}.panel h2,.panel h3{margin:0;font-size:var(--text-lg)}.panel>p{margin:0}.ticks{margin:0;padding:0;list-style:none;font-size:var(--text-sm)}.ticks li{position:relative;padding:var(--space-2) 0 var(--space-2) var(--space-5);border-top:1px solid var(--rule)}.ticks li:before{content:"";position:absolute;left:.15rem;top:.95em;width:.55rem;height:.55rem;background:var(--felt);border-radius:1px}.scoresheet{margin:0;padding:0;border:1px solid var(--rule-strong);border-radius:var(--radius-square);font-family:var(--font-mono);font-size:var(--text-sm)}.scoresheet .row{display:grid;grid-template-columns:3rem 2rem 1fr 1fr;align-items:center;min-height:2.25rem;border-bottom:1px solid var(--rule)}.scoresheet .row:last-child{border-bottom:0}.scoresheet .head{color:var(--ink-faint);font-size:var(--text-xs);letter-spacing:var(--tracking-label);text-transform:uppercase;background:var(--sunk)}.scoresheet .day{padding-left:var(--space-3);color:var(--ink-faint);font-size:var(--text-xs)}.scoresheet .n{color:var(--ink-faint)}.scoresheet .yours{color:var(--red-ink);font-weight:500}.clock{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3)}.clock-face{display:grid;gap:var(--space-1);padding:var(--space-4);border-radius:var(--radius-card);background:var(--felt-deep);color:var(--on-felt-soft);font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:var(--tracking-label);text-transform:uppercase}.clock-face b{color:var(--on-felt);font-size:2.25rem;font-weight:500;letter-spacing:0}.clock-face.on{background:var(--felt);box-shadow:inset 0 0 0 2px var(--glow)}.clock-face .bar{height:4px;background:#f2e8d033;border-radius:2px;overflow:hidden}.clock-face .bar i{display:block;width:var(--left, 100%);height:100%;background:var(--glow)}.daily{display:grid;gap:var(--space-6);align-items:start}@media(min-width:48rem){.daily{grid-template-columns:minmax(0,5fr) minmax(0,6fr)}}.week{display:grid;grid-template-columns:repeat(7,1fr);gap:var(--space-1);margin:0 0 var(--space-5);padding:0;list-style:none;font-family:var(--font-mono);font-size:var(--text-xs);text-align:center}.week li{display:grid;gap:var(--space-2);justify-items:center;padding:var(--space-2) 0;background:var(--sheet);border:1px solid var(--rule);border-radius:var(--radius-square)}.week .pips{display:grid;gap:2px}.week .pips i{display:block;width:.5rem;height:.5rem;background:var(--rule);border-radius:1px}.week .pips i.on{background:var(--felt)}.answer{margin-top:var(--space-4);border-top:1px solid var(--rule)}.answer summary{padding:var(--space-3) 0;color:var(--red-ink);font-family:var(--font-mono);font-size:var(--text-sm);cursor:pointer}.answer p{font-size:var(--text-sm)}.syllabus{display:grid;gap:var(--space-5)}@media(min-width:48rem){.syllabus{grid-template-columns:minmax(0,4fr) minmax(0,7fr);align-items:start}}.contents{display:grid;gap:var(--space-5)}.contents section{padding-top:var(--space-3);border-top:2px solid var(--ink)}.contents h3{display:flex;align-items:baseline;gap:var(--space-3);margin-bottom:var(--space-2);font-size:var(--text-lg)}.contents h3 span{font-family:var(--font-mono);font-size:var(--text-sm);font-weight:500;color:var(--brass-ink)}.contents ul{display:flex;flex-wrap:wrap;gap:var(--space-2);margin:0;padding:0;list-style:none}.contents li{padding:var(--space-1) var(--space-3);background:var(--sunk);border-radius:var(--radius-square);font-size:var(--text-sm)}.ladder{display:grid;gap:var(--space-2);margin:0;padding:0;list-style:none}.ladder li{display:grid;grid-template-columns:6.5rem 1fr;align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-4);background:var(--sheet);border:1px solid var(--rule);border-left:4px solid var(--felt);border-radius:var(--radius-square);font-size:var(--text-sm)}.ladder b{font-family:var(--font-mono);font-size:var(--text-xs);font-weight:500;letter-spacing:var(--tracking-label);text-transform:uppercase}.ladder li:first-child{border-left-color:var(--brass)}.notice{position:relative;padding:var(--space-6) var(--space-5) var(--space-5);background:var(--sheet);border:1px solid var(--rule-strong);outline:1px solid var(--rule-strong);outline-offset:-6px;border-radius:var(--radius-square);box-shadow:var(--shadow-sheet)}.notice:before{content:"";position:absolute;top:-.6rem;left:50%;width:1.2rem;height:1.2rem;margin-left:-.6rem;border-radius:50%;background:var(--brass);box-shadow:0 2px 0 var(--brass-ink)}.notice h3{margin-bottom:var(--space-4);font-size:var(--text-lg);text-align:center;font-style:italic}.notice ol{display:grid;gap:var(--space-4);margin:0;padding:0;list-style:none;counter-reset:rule}@media(min-width:48rem){.notice ol{grid-template-columns:1fr 1fr;gap:var(--space-5) var(--space-6)}}.notice li{counter-increment:rule;display:grid;grid-template-columns:2rem 1fr;gap:var(--space-3)}.notice li:before{content:counter(rule);display:grid;place-items:center;width:2rem;height:2rem;background:var(--felt);color:var(--on-felt);border-radius:1px;font-family:var(--font-mono);font-size:var(--text-sm)}.notice li b{display:block}.notice li p{margin:0;color:var(--ink-soft);font-size:var(--text-sm)}.qa{border-top:2px solid var(--ink)}.qa details{border-bottom:1px solid var(--rule)}.qa summary{display:flex;justify-content:space-between;gap:var(--space-4);padding:var(--space-4) 0;font-size:var(--text-md);font-weight:600;cursor:pointer;list-style:none}.qa summary::-webkit-details-marker{display:none}.qa summary:after{content:"+";flex:none;font-family:var(--font-mono);color:var(--red-ink)}.qa details[open] summary:after{content:"−"}.qa details>p{max-width:var(--measure);color:var(--ink-soft)}.qa h3{margin:var(--space-6) 0 var(--space-2);font-family:var(--font-mono);font-size:var(--text-xs);font-weight:500;letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--ink-soft)}.closing{margin-top:var(--space-8);background:var(--felt);color:var(--on-felt);border-radius:var(--radius-card);overflow:hidden}.closing-inner{display:grid;gap:var(--space-5);padding:var(--space-7) var(--space-5)}@media(min-width:48rem){.closing-inner{grid-template-columns:minmax(0,3fr) minmax(0,2fr);align-items:center;padding:var(--space-8) var(--space-7)}}.closing h2{font-size:var(--text-2xl)}.closing p,.closing .label{color:var(--on-felt-soft)}.closing .label:before{background:var(--buff)}.closing .button{box-shadow:0 3px 0 var(--red-edge),0 0 0 2px var(--red-rim)}.closing :focus-visible{outline-color:var(--glow)}.closing .badge{background:var(--felt-deep)}.doc{display:grid;gap:var(--space-6);padding-block:var(--space-7) 0}@media(min-width:60rem){.doc{grid-template-columns:repeat(var(--cols),minmax(0,1fr))}.doc-head{grid-column:3 / -1}.doc-toc{grid-column:1 / span 2;grid-row:2}.doc-body{grid-column:3 / span 5;grid-row:2}.doc-toc>div{position:sticky;top:var(--space-6)}}.doc-head h1{margin-bottom:var(--space-4)}.updated{color:var(--ink-faint);font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.04em}.doc-toc{font-size:var(--text-sm)}.doc-toc summary{padding:var(--space-3) var(--space-4);background:var(--sheet);border:1px solid var(--rule);border-radius:var(--radius-square);font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:var(--tracking-label);text-transform:uppercase;cursor:pointer}.doc-toc ol{margin:var(--space-3) 0 0;padding:0;list-style:none;border-left:2px solid var(--rule)}.doc-toc li a{display:block;padding:var(--space-1) var(--space-3);color:var(--ink-soft);text-decoration:none;line-height:1.35}.doc-toc li a:hover{color:var(--ink);box-shadow:inset 2px 0 0 var(--red)}.toc-title{margin:0;color:var(--ink-faint);font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:var(--tracking-label);text-transform:uppercase}.toc-wide{display:none}@media(min-width:60rem){.toc-wide{display:block}.toc-narrow{display:none}}.doc-body{max-width:44rem}.doc-body>h2{margin:var(--space-8) 0 var(--space-4);padding-top:var(--space-4);border-top:2px solid var(--ink)}.doc-body>h2:first-child{margin-top:0}.doc-body h3{margin:var(--space-6) 0 var(--space-2);font-size:var(--text-md)}.doc-body ul,.doc-body ol:not(.steps){padding-left:var(--space-5)}.doc-body li{margin-bottom:var(--space-2)}.sheet-card{margin:var(--space-5) 0;padding:var(--space-5);background:var(--sheet);border:1px solid var(--rule);border-radius:var(--radius-card);box-shadow:var(--shadow-sheet)}.sheet-card>:last-child{margin-bottom:0}.sheet-card ul{margin:0}.contact-email{display:inline-block;margin-bottom:var(--space-3);font-family:var(--font-mono);font-size:clamp(1rem,.8rem + 1.2vw,1.375rem);font-weight:500;word-break:break-all}.steps{margin:var(--space-4) 0;padding:0;list-style:none;counter-reset:step}.steps li{position:relative;counter-increment:step;padding:var(--space-3) 0 var(--space-3) 3rem;border-top:1px solid var(--rule)}.steps li:before{content:counter(step);position:absolute;left:0;top:var(--space-3);display:grid;place-items:center;width:2rem;height:2rem;background:var(--felt);color:var(--on-felt);border-radius:1px;font-family:var(--font-mono);font-size:var(--text-sm)}.table-wrap{margin:var(--space-4) 0 var(--space-5);overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}th,td{padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--rule);text-align:left;vertical-align:top}thead th{border-bottom:2px solid var(--ink);color:var(--ink-soft);font-family:var(--font-mono);font-size:var(--text-xs);font-weight:500;letter-spacing:.06em;text-transform:uppercase}tbody tr:nth-child(2n){background:#e8dcbd73}[data-placeholder]{padding:0 .2em;background:var(--sunk);outline:1px dashed var(--rule-strong);font-family:var(--font-mono);font-size:.85em}.doc-foot{margin-top:var(--space-7);padding-top:var(--space-4);border-top:1px solid var(--rule);color:var(--ink-soft);font-size:var(--text-sm)}.doc-figure{max-width:18rem;margin:var(--space-5) 0}.plain{padding-block:var(--space-7) 0;max-width:52rem}.plain h1{margin-bottom:var(--space-4)}.ways{display:grid;gap:var(--space-5);margin-top:var(--space-6)}@media(min-width:48rem){.ways{grid-template-columns:1fr 1fr}}.ways .panel .button{align-self:flex-start}.way-now{border-top:6px solid var(--red)}.way-soon{border-top:6px solid var(--felt)}.split{display:grid;gap:var(--space-6);align-items:start;padding-block:var(--space-7) 0}@media(min-width:52rem){.split{grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:var(--space-8)}}.split h1{margin-bottom:var(--space-4)}.pairing{display:grid;grid-template-columns:auto 1fr;margin:var(--space-5) 0;border:1px solid var(--rule-strong);border-radius:var(--radius-square);background:var(--sheet);font-size:var(--text-sm)}.pairing dt,.pairing dd{margin:0;padding:var(--space-2) var(--space-4);border-bottom:1px solid var(--rule)}.pairing dt{color:var(--ink-faint);font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:var(--tracking-label);text-transform:uppercase;border-right:1px solid var(--rule)}.pairing dd{font-family:var(--font-mono)}.pairing>div{display:contents}.pairing>div:last-child>*{border-bottom:0}.pairing [hidden]{display:none}.code{font-family:var(--font-mono);font-weight:500;letter-spacing:.12em}.hint{color:var(--ink-soft);font-size:var(--text-sm)}.side-board{max-width:26rem}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.m-must{animation:none}}
