:root{--text:#f4ead2;--felt:#0d3326;--muted:#91ad9d;--accent:#d6aa5d;--gold:#c49745;--font-mono:ui-monospace, "Cascadia Code", monospace;--font-serif:Georgia, "Times New Roman", serif;color:var(--text);background:var(--felt);font-family:var(--font-serif);font-synthesis:none;text-rendering:optimizelegibility}*{box-sizing:border-box}html{background:radial-gradient(circle at 80% 20%, #c48f351a, transparent 32rem), var(--felt);min-width:320px}body{min-width:320px;min-height:100vh;margin:0}a{color:inherit}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important}}.eyebrow{color:var(--accent);font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;margin:0 0 1.5rem;font-size:clamp(.72rem,1vw,.9rem)}.action-button{padding:var(--action-padding,.4rem 1.1rem);border:1px solid var(--action-border,var(--gold));border-radius:var(--action-radius,.3rem);color:var(--text);font:inherit;cursor:pointer;background:0 0}:where(.action-button):hover:not(:disabled),:where(.action-button):focus-visible{border-color:var(--action-hover-border,var(--action-border,var(--gold)));background:var(--action-hover,#c48f3526)}.action-button:disabled{opacity:var(--action-disabled-opacity,.4);cursor:default}main{--page-gutter:clamp(1.25rem, 3vw, 3rem);min-height:100vh;padding:var(--page-gutter);grid-template-rows:auto 1fr;display:grid}.masthead{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;justify-content:space-between;align-items:center;gap:1rem;font-size:.72rem;display:flex}.wordmark{font-weight:700;text-decoration:none}.site-nav{gap:1.25rem;display:flex}.site-nav a{color:var(--muted);text-decoration:none}.site-nav a:hover{color:var(--text)}.site-nav a[data-active]{color:var(--accent);text-underline-offset:.3em;text-decoration:underline}.github-link{width:1.25rem;height:1.25rem;color:var(--gold);place-items:center;display:grid}.github-link:hover{color:var(--text)}.github-link svg{width:100%;height:100%}@media (width<42rem){.masthead{grid-template-columns:1fr auto;display:grid}.site-nav{grid-area:2/1/auto/-1;justify-content:space-between;gap:.75rem}.github-link{grid-area:1/2}}@media (width<=640px){.site-nav{gap:.75rem}}body.viewport-layout{height:100dvh;overflow:hidden}main.viewport-main{height:100dvh;min-height:0;padding-bottom:0;overflow:hidden}.hero{align-content:center;width:min(100%,90rem);margin:0 auto;padding:clamp(4rem,10vh,8rem) 0;display:grid}.hero h1{letter-spacing:-.075em;max-width:10ch;margin:0;font-size:clamp(4.2rem,13vw,12rem);font-weight:400;line-height:.76}.hero h1 span{color:var(--accent);margin-left:clamp(0rem,8vw,8rem);font-style:italic;display:block}.count{overflow-wrap:anywhere;max-width:100%;color:var(--muted);font-family:var(--font-mono);letter-spacing:.08em;margin:clamp(2.5rem,7vh,6rem) 0 0;font-size:clamp(.65rem,1.15vw,1rem);line-height:1.7}.home-page{min-width:0;height:100%;min-height:0}.home-hero{width:min(calc(100% - var(--page-gutter) - var(--page-gutter)), 90rem);align-content:end;min-height:0;padding:1.5rem 0 0}.home-hero h1{font-size:clamp(3.8rem,8vw,6rem)}.home-hero>p:not(.eyebrow,.count){color:#a8b9ae;max-width:42rem;margin:clamp(2rem,5vh,3.5rem) 0 0 auto;font-size:clamp(1rem,1.5vw,1.3rem);line-height:1.5}@media (width>760px){.home-hero{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);column-gap:2rem}.home-hero>.eyebrow,.home-hero>.count{grid-column:1/-1}.home-hero>p:not(.eyebrow,.count){align-self:center;margin:0}}@media (width<=640px){.hero h1{line-height:.83}.hero h1 span{margin-left:0}}@media (width<=760px){.home-hero{min-height:0;padding-block:1.5rem 0}.home-hero>p:not(.eyebrow,.count),.home-hero .count{margin-top:1.5rem}}.article-layout{overflow-wrap:anywhere;grid-template-columns:minmax(0,1fr);align-content:start;gap:1.5rem;width:min(100%,44rem);min-width:0;margin:0 auto;padding:1.5rem 0;display:grid}.article-title{letter-spacing:-.04em;max-width:12ch;margin:0;font-size:clamp(2.8rem,8vw,5.5rem);font-weight:400;line-height:.9}.article-layout>section>h2{color:var(--accent);letter-spacing:0;margin:0 0 .9rem;font-size:clamp(1.2rem,2.2vw,1.6rem);font-style:italic;font-weight:400}.article-layout>section>p{margin:0 0 1rem;font-size:clamp(1rem,1.4vw,1.2rem);line-height:1.65}.article-layout>.eyebrow{margin:0}.article-layout>section>p:last-child{margin-bottom:0}.card-spring{margin:1.5rem 0}.card-spring img{border:1px solid #c48f3566;border-radius:.5rem;max-width:min(100%,20rem);height:auto;display:block}.card-spring figcaption{color:var(--muted);margin-top:.6rem;font-size:.85rem;font-style:italic}.permutation-table{border-collapse:collapse;width:100%;max-width:22rem;font-family:var(--font-mono);margin:1rem 0;font-size:.9rem}.permutation-table th,.permutation-table td{text-align:left;border-bottom:1px solid #c48f3540;padding:.3rem .75rem}.permutation-table th{color:var(--accent);letter-spacing:.08em;text-transform:uppercase;font-size:.72rem;font-weight:400}.permutation-table .index{color:var(--muted)}.permutation-table tr.selectable{position:relative}.permutation-select{color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;padding:0}.permutation-select:after{content:"";position:absolute;inset:0}.permutation-select:focus-visible:after{outline:2px solid var(--accent);outline-offset:-2px}.permutation-table tr.selectable:hover td{background:#c48f351a}.stepper{background:#c48f350d;border:1px solid #c48f3559;border-radius:.5rem;margin:1rem 0 1.5rem;padding:1rem 1.25rem;line-height:1.55}.stepper-controls{font-family:var(--font-mono);flex-wrap:wrap;align-items:center;gap:.75rem;font-size:.85rem;display:flex}.stepper-controls input{background:var(--felt);width:6.5rem;color:var(--text);font:inherit;border:1px solid #c48f3566;border-radius:.25rem;padding:.25rem .5rem}.stepper-controls .action-button{--action-padding:.3rem .9rem;--action-radius:.25rem}.stepper-progress{color:var(--muted)}.stepper-stage{margin-top:1rem}.stepper-pool{margin:0 0 .75rem}.stepper-card{text-align:center;min-width:2rem;font-family:var(--font-mono);border:1px solid #f4ead259;border-radius:.25rem;margin-right:.35rem;padding:.25rem .4rem;display:inline-block}.stepper-card.selected{border-color:var(--accent);background:var(--accent);color:var(--felt);font-weight:700}.stepper-math,.stepper-result{font-family:var(--font-mono);color:var(--text);margin:0 0 .5rem;font-size:.9rem}.stepper-result{color:var(--muted)}.explorer{width:calc(100% + var(--page-gutter) + var(--page-gutter));height:100%;margin-left:calc(-1 * var(--page-gutter));touch-action:pinch-zoom;position:relative;overflow:hidden}.explorer:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.explorer-intro{will-change:transform;position:absolute;top:0;left:0;right:0}.explorer-bar{z-index:100;padding:1rem var(--page-gutter);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);will-change:transform;background:#0d3326f5;border-bottom:1px solid #f4ead21f;flex-wrap:wrap;justify-content:space-between;align-items:end;gap:1.25rem 2rem;display:flex;position:absolute;left:0;right:0}.explorer-heading h2{letter-spacing:-.03em;max-width:none;margin:0;font-size:clamp(2rem,5vw,3.5rem);line-height:1}.explorer-heading .eyebrow{margin-bottom:.75rem}.jump{font-family:var(--font-mono);align-items:center;gap:.6rem;font-size:.85rem;display:flex}.jump-actions{grid-template-columns:repeat(2,1fr);gap:.6rem;display:grid}.jump label{align-items:center;gap:.6rem;display:flex}.jump label span{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;font-size:.7rem}.jump input{width:22rem;max-width:40vw;color:var(--text);font:inherit;background:#00000040;border:1px solid #f4ead240;border-radius:.3rem;padding:.4rem .6rem}.jump input:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.jump .action-button{--action-padding:.4rem 1.1rem;--action-radius:.3rem}.jump .random-button{border-color:var(--accent);color:var(--accent)}.jump .random-button:hover{color:var(--text);background:#d6aa5d2e}.explorer-meta{color:var(--muted);font-family:var(--font-mono);letter-spacing:.05em;margin:0;font-size:.7rem}.explorer-feed{background:linear-gradient(#0000002e,#0000002e),#0b0e0c;position:absolute;bottom:0;left:0;right:0;overflow:hidden}.explorer-error{z-index:100;background:var(--felt);padding:1rem;position:absolute;inset:0 0 auto}@media (width<=760px){.jump-actions{width:100%}.explorer-bar{align-items:start;gap:.75rem;padding-top:1rem}.explorer-heading h2{font-size:1.6rem}.explorer-heading .eyebrow,.explorer-meta{display:none}.jump{flex-wrap:wrap;width:100%}.jump label{width:100%}.jump input{width:100%;max-width:none}}.explorer-strip{will-change:transform;position:relative}.explorer-rail{z-index:110;cursor:grab;width:1.1rem;position:absolute;top:0;bottom:0;right:0}.explorer-rail:active{cursor:grabbing}.explorer-rail-thumb{background:var(--gold);border-radius:.3rem;height:3rem;position:absolute;left:.25rem;right:.25rem}.explorer-rail:hover .explorer-rail-thumb,.explorer-rail:active .explorer-rail-thumb{background:var(--accent)}.deck-row{border-bottom:1px solid #f4ead212;padding:0 clamp(.75rem,2vw,1.5rem);display:block;position:relative}.deck-number{z-index:70;color:var(--accent);font-family:var(--font-mono);letter-spacing:.04em;overflow-wrap:anywhere;text-shadow:0 1px 3px #000000b3;font-size:.72rem;position:absolute;top:clamp(.4rem,1.2vh,.8rem);left:clamp(.75rem,2vw,1.5rem)}.deck-fan{width:100%;height:100%;padding-top:clamp(1.1rem,2.6vh,1.7rem);position:relative}.deck-loading{color:#5d6f63;font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;font-size:.75rem;position:absolute;top:50%;transform:translateY(-50%)}.deck-card{transition:transform .14s,box-shadow .14s;top:50%;transform:translateY(-50%)}.deck-card:hover{transform:translateY(-58%);box-shadow:0 6px 18px #0000008c}.deck-fan{--card-width:clamp(2.4rem, 4.4vw, 3.9rem)}.arrange{grid-template-rows:auto auto minmax(15rem,1fr);min-width:0;min-height:0;padding-top:clamp(2rem,6vh,5rem);display:grid}.arrange-heading{justify-content:space-between;align-items:end;gap:2rem;display:flex}.arrange-heading .eyebrow{margin-bottom:.75rem}.arrange-actions{justify-content:end;align-items:center;gap:1rem;display:flex}.arrange-instructions{max-width:26rem;color:var(--muted);margin:0;font-size:.9rem;line-height:1.4}.arrange-control{--action-padding:.7rem .9rem;--action-border:#d6aa5d8c;--action-radius:.2rem;--action-hover:#d6aa5d1a;--action-hover-border:var(--accent);font:.72rem var(--font-mono);letter-spacing:.08em;text-transform:uppercase;flex:none}.arrange-number{overflow-wrap:anywhere;max-width:100%;color:var(--accent);font:clamp(1rem, 2.2vw, 2.1rem) / 1.35 var(--font-mono);letter-spacing:.035em;align-self:center;margin:clamp(2.5rem,7vh,6rem) 0 clamp(1.5rem,4vh,3rem);display:block}.arrange-number span{color:var(--muted);letter-spacing:.14em;text-transform:uppercase;margin-bottom:.45rem;font-size:.65rem;display:block}.arrange-spread{overscroll-behavior-inline:contain;scrollbar-color:var(--gold) #00000024;min-width:0;overflow:auto hidden}.arrange-spread-track{--card-width:clamp(6rem, 9vw, 9rem);width:100%;min-width:calc(var(--card-width) + (var(--card-count) - 1) * 1.25rem);height:100%;min-height:calc(var(--card-width) * 1.55);position:relative}.arrange-card{border-radius:calc(var(--card-width) * .09);cursor:pointer;touch-action:none;background:0 0;border:0;padding:0;transition:transform .14s,filter .14s;bottom:clamp(1.25rem,4vh,3rem)}.arrange-card:hover,.arrange-card:focus-visible,.arrange-card.selected{filter:drop-shadow(0 .6rem .6rem #00000073);outline:none;transform:translateY(-1.2rem)}.arrange-card:focus-visible .playing-card,.arrange-card.selected .playing-card{box-shadow:0 0 0 3px var(--accent)}.arrange-card.dragging{cursor:grabbing;filter:drop-shadow(0 .9rem .8rem #0000008c);transition:none;transform:translateY(-1.6rem)}@media (width>=80rem){.arrange-spread-track{min-width:100%}}@media (width<42rem){.arrange{grid-template-rows:auto auto minmax(12.5rem,1fr);align-content:start;padding-top:1.5rem}.arrange-heading{align-items:start;gap:.75rem;display:grid}.arrange-actions{flex-wrap:wrap;justify-content:start}.arrange-instructions{flex-basis:100%}.arrange-number{margin-block:1rem .5rem;font-size:clamp(.82rem,4.2vw,1.2rem)}.arrange-spread-track{--card-width:6.5rem}.arrange-card{top:50%;bottom:auto;translate:0 -50%}}.playing-card{width:var(--card-width);aspect-ratio:5/7;border-radius:calc(var(--card-width) * .09);color:#1b1b1b;font-family:var(--font-serif);-webkit-user-select:none;user-select:none;background:#fbf7ec;border:1px solid #0d332673;display:block;position:relative;box-shadow:0 1px 2px #00000073}.playing-card.red{color:#a31f2b}.playing-card .corner{flex-direction:column;align-items:center;font-weight:700;line-height:.9;display:flex;position:absolute}.playing-card .corner-rank{font-size:calc(var(--card-width) * .2);letter-spacing:-.02em}.playing-card .corner-suit{font-size:calc(var(--card-width) * .17)}.playing-card .corner-top{top:calc(var(--card-width) * .06);left:calc(var(--card-width) * .07)}.playing-card .corner-bottom{right:calc(var(--card-width) * .07);bottom:calc(var(--card-width) * .06);transform:rotate(180deg)}.playing-card .pips{inset:calc(var(--card-width) * .24) calc(var(--card-width) * .16);position:absolute}.playing-card .pip{font-size:calc(var(--card-width) * .24);line-height:1;position:absolute;transform:translate(-50%,-50%)}.playing-card .pips .pip:only-child{font-size:calc(var(--card-width) * .5)}.playing-card .court{inset:calc(var(--card-width) * .3) calc(var(--card-width) * .22);border-radius:calc(var(--card-width) * .06);border:1px solid;flex-direction:column;display:flex;position:absolute;overflow:hidden}.playing-card .court-figure{flex:1;justify-content:center;align-items:center;line-height:1;display:flex}.playing-card .court-figure-flip{transform:rotate(180deg)}.playing-card .court-glyph{font-size:calc(var(--card-width) * .34);line-height:.9}.playing-card .court-figure .court-glyph.glyph-jack{transform:translateX(calc(var(--card-width) * -.03))}.playing-card .court-figure-flip .court-glyph.glyph-jack{transform:translateX(calc(var(--card-width) * -.04))}.playing-card .court-emblem{padding:calc(var(--card-width) * .02);font-size:calc(var(--card-width) * .22);background:#fbf7ec;border-radius:50%;line-height:1;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.card-slot{right:calc(var(--position) * (100% - var(--card-width)) / max(1, var(--card-count) - 1));position:absolute}.card-grid-page{gap:clamp(1.5rem,3vh,2.5rem);width:min(100%,110rem);margin:0 auto;padding:clamp(1.5rem,4vh,3rem) 0;display:grid}.card-grid-bar{flex-wrap:wrap;justify-content:space-between;align-items:end;gap:1rem 2rem;display:flex}.card-grid-bar h1{letter-spacing:-.03em;max-width:none;margin:0;font-size:clamp(2rem,5vw,3.5rem);font-weight:400;line-height:1}.card-grid-bar .eyebrow{margin-bottom:.75rem}.card-grid-control{color:var(--muted);font-family:var(--font-mono);gap:.4rem;font-size:.8rem;display:grid}.card-grid-control input[type=range]{width:16rem;accent-color:var(--accent);cursor:pointer}.card-grid{grid-template-columns:repeat(auto-fill, minmax(calc(var(--card-width) + 1.25rem), 1fr));gap:calc(var(--card-width) * .22);justify-items:center;display:grid}.card-cell{justify-items:center;gap:.6rem;margin:0;display:grid}.card-cell figcaption{color:var(--muted);font-family:var(--font-mono);text-align:center;font-size:.7rem}
