:root{--ink:#0b0b0b;--graphite:#3a3a3a;--pencil:#6b6b6b;--chalk:#dadada;--concrete:#f2f2f2;--white:#fff;--ash:#bdbdbd;--space-xs:8px;--space-sm:12px;--space-md:24px;--space-lg:32px;--space-xl:40px;--space-2xl:56px;--space-3xl:64px;--space-section:clamp(var(--space-3xl), 9vw, calc(var(--space-3xl) * 2));--gutter:20px;--measure:65ch;--radius:3px;--font:var(--font-franklin), "Helvetica Neue", Arial, sans-serif;--text-display:clamp(2.5rem, 5.2vw, 4.125rem);--text-headline:clamp(1.75rem, 3.2vw, 2.5rem);--text-title:1.625rem;--text-lead:1.125rem;--text-body:1rem;--text-small:.9375rem;--ease-out:cubic-bezier(.22, 1, .36, 1);--z-sticky:10;--z-dropdown:20;--header-h:64px}@media (min-width:720px){:root{--gutter:40px}}@media (min-width:1080px){:root{--gutter:64px;--header-h:76px}}*,:before,:after{box-sizing:border-box}html{-moz-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:calc(var(--header-h) + 20px)}body{background:var(--white);color:var(--graphite);font-family:var(--font);font-size:var(--text-body);font-kerning:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;line-height:1.55}img,svg{max-width:100%;display:block}body{padding-bottom:calc(76px + env(safe-area-inset-bottom))}@media (min-width:1200px){body{padding-bottom:0}}h1,h2,h3,h4{color:var(--ink);text-wrap:balance;margin:0;font-weight:800}h1{font-size:var(--text-display);letter-spacing:-.025em;line-height:1.03}h2{font-size:var(--text-headline);letter-spacing:-.02em;line-height:1.1}h3{font-size:var(--text-title);letter-spacing:-.01em;font-weight:700;line-height:1.15}p{text-wrap:pretty;margin:0}p+p{margin-top:1em}a{color:var(--ink);text-underline-offset:3px;text-decoration-thickness:1px}a[href^=mailto\:]{overflow-wrap:anywhere}a:hover{color:var(--graphite)}:focus-visible{outline:2px solid var(--ink);outline-offset:3px}::selection{background:var(--ink);color:var(--white)}.wrap{width:100%;max-width:calc(1200px + 2 * var(--gutter));padding-inline:var(--gutter);margin-inline:auto}.section{padding-block:var(--space-section)}.section--tight{padding-block:var(--space-2xl)}.measure{max-width:var(--measure)}.lead{font-size:var(--text-lead);line-height:1.6}.stack>*+*{margin-top:var(--space-md)}.stack-sm>*+*{margin-top:var(--space-sm)}.band-concrete{background:var(--concrete)}.band-ink{background:var(--ink);color:var(--ash)}.band-ink h1,.band-ink h2,.band-ink h3{color:var(--white)}.band-ink p{line-height:1.65}.band-ink a{color:var(--white)}.band-ink a:hover{color:var(--ash)}.band-ink :focus-visible{outline-color:var(--white)}.btn{border-radius:var(--radius);background:var(--ink);min-height:52px;color:var(--white);font:600 1rem/1 var(--font);cursor:pointer;transition:background-color .16s var(--ease-out);border:0;justify-content:center;align-items:center;padding:0 26px;text-decoration:none;display:inline-flex}.btn:hover{background:var(--graphite);color:var(--white)}.btn:active{background:var(--pencil)}.btn[disabled],.btn[aria-disabled=true]{background:var(--pencil);cursor:progress}.band-ink .btn,.btn--light{background:var(--white);color:var(--ink)}.band-ink .btn:hover,.btn--light:hover{background:var(--concrete);color:var(--ink)}.btn--outline,.band-ink .btn--outline{color:var(--ink);background:0 0;border:1px solid}.btn--outline:hover{background:var(--concrete);color:var(--ink)}.band-ink .btn--outline{color:var(--white)}.band-ink .btn--outline:hover{background:var(--graphite);color:var(--white)}.action-link{color:var(--ink);text-underline-offset:4px;font-weight:600;text-decoration:underline}.actions{align-items:center;gap:var(--space-sm) var(--space-md);flex-wrap:wrap;display:flex}.arrow-link{min-height:44px;color:var(--ink);align-items:center;gap:8px;font-weight:600;text-decoration:none;display:inline-flex}.arrow-link:after{content:"→";transition:transform .16s var(--ease-out)}.arrow-link:hover{color:var(--ink);text-underline-offset:4px;text-decoration:underline}.arrow-link:hover:after{transform:translate(3px)}.band-ink .arrow-link{color:var(--white)}.photo{border-radius:var(--radius);background:var(--concrete);position:relative;overflow:hidden}.photo img{object-fit:cover}.section-head{gap:var(--space-sm);max-width:62ch;margin-bottom:var(--space-2xl);display:grid}.section-head p{font-size:var(--text-lead);line-height:1.6}.rule-ink{border-top:2px solid var(--ink);padding-top:var(--space-md)}.band-ink .rule-ink{border-top-color:var(--white)}.icon{vertical-align:-.25em;flex:none;width:1.2em;height:1.2em;display:inline-block}.photo img{transition:transform .5s var(--ease-out)}.card-zoom:hover .photo img{transform:scale(1.03)}.rule-chalk{border-top:1px solid var(--chalk)}.numeral{color:var(--pencil);font-size:var(--text-small);font-variant-numeric:tabular-nums;font-weight:700;line-height:1;display:block}.band-ink .numeral{color:var(--ash)}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.skip-link{left:var(--gutter);z-index:calc(var(--z-sticky) + 1);padding:var(--space-sm) var(--space-md);background:var(--ink);color:var(--white);border-radius:var(--radius);font-weight:600;position:absolute;top:-100px}.skip-link:focus{top:var(--space-sm);color:var(--white)}.prose{max-width:var(--measure)}.prose>*+*{margin-top:1em}.prose h2{margin-top:1.6em;font-size:clamp(1.5rem,2.4vw,1.875rem)}.prose h3{margin-top:1.4em;font-size:1.25rem}.prose ul,.prose ol{padding-left:1.25em}.prose li+li{margin-top:.4em}.prose strong{color:var(--ink)}@media screen and (prefers-reduced-motion:no-preference){:root[data-motion] .rule-ink[data-reveal]{border-top-color:#0000;position:relative}:root[data-motion] .rule-ink[data-reveal]:before{content:"";background:var(--ink);transform-origin:0;height:2px;position:absolute;top:-2px;left:0;right:0}:root[data-motion] .band-ink .rule-ink[data-reveal]:before{background:var(--white)}:root[data-motion] .rule-ink[data-reveal]:not([data-inview]):before{transform:scaleX(0)}.rule-ink[data-inview]:before{transition:transform .8s var(--ease-out) var(--reveal-delay,0s)}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
