@font-face{font-family:"Ledger Inter";src:url(/Inter-Variable.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap}
:root{color-scheme:dark;--paper:#171917;--surface:#1f211f;--soft:#272927;--ink:#f5f4f0;--text:#f5f4f0;--muted:#959892;--text-muted:#959892;--accent:#8b908b;--accent-text:#8b908b;--on-accent:#171917;--line:#3b3c3a;--rule:#3b3c3a;--edge:#2d2f2d;--focus:#8b908b;--shadow:rgba(23, 25, 23, 0.7);--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2.5rem;--space-7:4rem;--space-8:6.5rem;--gutter:clamp(1.25rem,4vw,3rem);--measure:78rem;--radius:.75rem;--font-display:"Ledger Inter",ui-sans-serif,system-ui,sans-serif;--font-body:"Ledger Inter",ui-sans-serif,system-ui,sans-serif;--type-1:.8125rem;--type-2:.9375rem;--type-3:1.0625rem;--type-4:1.25rem;--type-5:clamp(1.55rem,1.05rem + 1.6vw,2.4rem);--type-6:clamp(2.1rem,1.3rem + 2.8vw,3.25rem);--ledger-ease:cubic-bezier(.16,1,.3,1);--ledger-beat:600ms;--ledger-head:4rem}
*,*::before,*::after{box-sizing:border-box}
html{background:var(--paper);scrollbar-color:var(--rule) var(--paper);scrollbar-width:thin;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--text);font:400 var(--type-3)/1.6 var(--font-body);letter-spacing:-.011em;font-optical-sizing:auto;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
::selection{background:var(--accent);color:var(--paper)}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration-color:var(--rule);text-decoration-thickness:1px;text-underline-offset:.25em;transition:color var(--ledger-beat) var(--ledger-ease),text-decoration-color var(--ledger-beat) var(--ledger-ease)}
a:hover{color:var(--accent);text-decoration-color:currentColor}
:focus-visible{outline:2px solid var(--focus);outline-offset:3px;border-radius:.25rem}
h1,h2,h3,h4{margin:0;font-weight:500;letter-spacing:-.02em;line-height:1.15;text-wrap:balance}
p{margin:0}
.ledger-skip{position:absolute;left:var(--gutter);top:-4rem;z-index:20;padding:.6rem 1rem;border-radius:999px;background:var(--text);color:var(--paper);text-decoration:none}
.ledger-skip:hover{color:var(--paper)}
/* Header: sticky, one row whenever wordmark and pages fit (wordmark left, pages right; the wordmark is the way home); otherwise the pages take a second line and the header grows, never clipping a link. Behind it a bar of blurred ground and a keyline that fades in over the first two header heights of scroll (scroll-driven where supported; ledger.js writes --header-reveal elsewhere). */
.ledger-skip:focus{top:1rem}
.ledger-header{position:sticky;top:0;z-index:50;min-height:var(--ledger-head)}
.ledger-header-row{position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:0 2rem;min-height:var(--ledger-head);width:min(100% - 2 * var(--gutter),var(--measure));margin-inline:auto;padding-block:.375rem}
.ledger-header-bar{position:absolute;inset:0;z-index:-1;opacity:var(--header-reveal,1);background:linear-gradient(color-mix(in srgb,var(--paper) 90%,transparent),color-mix(in srgb,var(--paper) 80%,transparent));-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);border-bottom:1px solid color-mix(in srgb,var(--text) 10%,transparent);pointer-events:none}
@supports (animation-timeline:scroll()){.ledger-header-bar{opacity:0;animation:ledger-bar linear both;animation-timeline:scroll(root);animation-range:0 calc(var(--ledger-head) * 2)}}
@keyframes ledger-bar{from{opacity:0}to{opacity:1}}
.ledger-wordmark{flex:0 1 auto;min-width:0;overflow-wrap:anywhere;font-weight:500;font-size:var(--type-2);letter-spacing:-.012em;text-decoration:none}
.ledger-logo{width:auto;max-width:11rem;height:2rem;object-fit:contain}
.ledger-nav{display:flex;flex-wrap:nowrap;justify-content:flex-end;gap:0 1.5rem;margin-inline-start:auto}
.ledger-nav a{display:inline-flex;align-items:center;gap:.45rem;min-height:2.75rem;color:var(--text-muted);font-size:var(--type-2);text-decoration:none}
.ledger-nav a:hover{color:var(--text)}
.ledger-nav a[aria-current=page]{color:var(--text)}
.ledger-nav a[aria-current=page]::before{content:"";width:.3125rem;height:.3125rem;border-radius:50%;background:var(--accent)}
/* Main spans the page so a row can run edge to edge (the strip); its blocks keep the measure. */
.ledger-main{min-height:60vh;padding:0 var(--gutter) var(--space-8)}
.ledger-main>*{max-width:var(--measure);margin-inline:auto}
/* The floating covers bleed past the page edges: on the page that stages them, main (which spans the page) clips its inline overflow so the page never scrolls sideways or widens the phone viewport. */
.ledger-main:has(>.ledger-hero-staged){overflow-x:clip}
/* Footer: a keyline, then where and who, the pages, the ways to reach, over a still field of hexagonally offset dots that rises from the foot of the page. */
.ledger-footer{position:relative;overflow:hidden;border-top:1px solid var(--rule);color:var(--text-muted);font-size:var(--type-2);line-height:1.6;isolation:isolate}
.ledger-footer::before{content:"";position:absolute;inset:0;z-index:-1;background-image:radial-gradient(circle,var(--rule) 0 1px,transparent 1.5px),radial-gradient(circle,var(--rule) 0 1px,transparent 1.5px);background-size:12px 10.4px;background-position:0 0,6px 5.2px;-webkit-mask-image:radial-gradient(120% 90% at 50% 120%,#000 30%,transparent 72%);mask-image:radial-gradient(120% 90% at 50% 120%,#000 30%,transparent 72%);opacity:.9}
.ledger-footer-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr);gap:var(--space-6) var(--space-5);width:min(100% - 2 * var(--gutter),var(--measure));min-height:18rem;margin-inline:auto;padding-block:3.5rem 4rem}
.ledger-footer-where{display:flex;flex-direction:column;justify-content:space-between;gap:var(--space-6)}
.ledger-footer-where p:first-child{color:var(--text);opacity:.82}
.ledger-footer-name{font-size:var(--type-1)}
.ledger-footer-pages,.ledger-footer-ways{display:flex;flex-direction:column;align-items:flex-start}
.ledger-footer a{display:inline-flex;align-items:center;min-height:1.5rem;text-decoration:none}
.ledger-footer a:hover{color:var(--text)}
.ledger-footer a[aria-current=page]{color:var(--text)}
/* Buttons: a quiet light key on the dark ground; secondary actions are plain links. */
.ledger-button,.shell-ledger .button{display:inline-flex;align-items:center;justify-content:center;min-height:2.75rem;padding:.6rem 1rem;border-radius:.5rem;background:var(--text);color:var(--paper);font-weight:500;font-size:var(--type-2);text-decoration:none;transition:background var(--ledger-beat) var(--ledger-ease)}
.ledger-button:hover,.shell-ledger .button:hover{background:var(--accent);color:var(--paper)}
/* Inner page heads: a narrow centred column (about, contact, every other kind); on the work page the intro is the centred statement and the title stays for assistive technology. */
.ledger-head{display:grid;gap:var(--space-4);width:min(100%,37rem);margin-inline:auto;padding-block:clamp(3.5rem,9vw,7.5rem) clamp(2rem,5vw,3.5rem)}
.ledger-head h1{font-size:calc(var(--type-6) * .82);font-weight:500;letter-spacing:-.03em;line-height:1.08}
.ledger-lede{color:var(--text-muted);font-size:var(--type-3);line-height:1.55;text-wrap:pretty}
.ledger-head-work{width:min(100%,38.5rem);min-height:clamp(16rem,46svh,26rem);place-content:center;text-align:center;padding-block:var(--space-7)}
.ledger-head-work:has(.ledger-lede) h1{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.ledger-head-work .ledger-lede{color:var(--text);font-size:calc(var(--type-4) * 1.2);line-height:1.3;letter-spacing:-.012em;text-wrap:balance}
.ledger-home-link{width:min(100%,37rem);margin:var(--space-6) auto 0}
/* Home rhythm: the grid follows the hero directly, the totals sit just under it, then quiet before the names and the quotes. Other pages: quiet between sections, more above a heading than below. */
.ledger-main>section+section{margin-top:clamp(4rem,9vw,7.5rem)}
.ledger-main>.ledger-hero+.ledger-settle{margin-top:0}
@media (scripting:enabled) and (prefers-reduced-motion:no-preference){.ledger-main>.ledger-hero-staged+.ledger-settle{padding-top:7.5rem}}
.ledger-main>.ledger-settle+.stats-line{margin-top:1.75rem}
.ledger-main>.stats-line+.ledger-wall{margin-top:clamp(4.5rem,8vw,6.5rem)}
.ledger-main>.ledger-wall+.ledger-quotes{margin-top:clamp(5rem,10vw,8.5rem)}
/* Totals (proof.stats-line in Ledger): one plain line in the text tone, the way to the work at its end; no rules. */
.shell-ledger .stats-line{width:min(100%,57.625rem);margin-inline:auto;padding:0;border:0;gap:var(--space-4) var(--space-6)}
.shell-ledger .stats-line-text{color:var(--text);font-size:calc(var(--type-4) * 1.2);font-weight:400;letter-spacing:-.012em}
.shell-ledger .stats-line-action{padding:.55rem 1rem;border:0;border-radius:.5rem;background:var(--text);color:var(--paper);transition:background var(--ledger-beat) var(--ledger-ease)}
.shell-ledger .stats-line-action:hover{background:var(--accent);color:var(--paper)}
/* Section entrances: blocks after the first viewport rise into place as they enter (view-linked, CSS only, where supported). */
@supports (animation-timeline:view()){
  @media (prefers-reduced-motion:no-preference){
    .ledger-main>:is(.stats-line,.ledger-wall,.ledger-quotes,.ledger-prose,.proof-counters,.work-strip,.ledger-contact,.site-block),.ledger-main>article>:is(img,section){animation:ledger-enter linear both;animation-timeline:view();animation-range:entry 0% entry 40%}
    .ledger-main>.stats-line{animation-delay:120ms}
  }
}
@keyframes ledger-enter{from{opacity:0;transform:translateY(24px) scale(.97)}to{opacity:1;transform:none}}
/* site-v1 partials (draft sections no ledger variant takes): restyled into hairline rows. */
.shell-ledger .site-block{grid-template-columns:1fr;gap:var(--space-4);width:min(100%,37rem);margin-inline:auto;padding:0 0 var(--space-2);border:0;background:transparent;color:var(--text)}
.shell-ledger .site-block>:is(.site-body,.site-span,h2){grid-column:1}
.shell-ledger .site-block>h2{font-size:var(--type-4);letter-spacing:-.015em}
.shell-ledger .site-prose p,.shell-ledger .site-prose li{font-size:var(--type-3);line-height:1.7;max-width:38rem}
.shell-ledger :is(.site-rows,.site-offer-list,.site-hours-list){border-top:0}
.shell-ledger .site-row{padding:var(--space-4) 0;border-bottom:1px solid var(--rule)}
.shell-ledger .site-row:last-child{border-bottom:0}
.shell-ledger .site-link-list a{display:flex;justify-content:space-between;gap:1rem;font-size:var(--type-4);text-decoration:none}
.shell-ledger .site-link-list a::after{content:"";flex:none;width:.55em;height:.55em;margin-top:.45em;border-top:1.5px solid currentColor;border-right:1.5px solid currentColor;transform:rotate(45deg);opacity:.6}
.shell-ledger .site-link-list a:hover::after{opacity:1}
.shell-ledger .site-figure img,.shell-ledger .site-gallery-grid img{border-radius:var(--radius)}
.shell-ledger .site-figure-wide img{max-height:70svh;aspect-ratio:3/2}
.shell-ledger .site-image .site-figure img{width:auto;max-width:100%;max-height:min(40rem,80svh);aspect-ratio:auto;object-fit:contain}
.shell-ledger .site-figure figcaption,.shell-ledger .site-gallery-grid figcaption,.shell-ledger .site-note{color:var(--text-muted);font-size:var(--type-1)}
.shell-ledger .site-gallery-grid button{background:var(--surface);border-radius:var(--radius)}
.shell-ledger .site-quote blockquote p{font-size:var(--type-5);line-height:1.3;letter-spacing:-.02em}
.shell-ledger .site-quote figcaption{color:var(--text-muted)}
.shell-ledger .site-metric-list div{border-top-color:var(--rule)}
.shell-ledger .site-metric-list dt{color:var(--text-muted);font-size:var(--type-2)}
.shell-ledger .site-metric-list dd{font-size:var(--type-6);font-weight:400;letter-spacing:-.03em}
.shell-ledger .site-hours-list div{border-bottom-color:var(--rule)}
.shell-ledger .site-faq details{border-bottom:1px solid var(--rule);padding:var(--space-4) 0}
.shell-ledger .site-faq summary{cursor:pointer;font-weight:500}
.shell-ledger .site-faq details p{margin-top:var(--space-3);color:var(--text-muted)}
.shell-ledger .site-offer-list li{font-size:var(--type-4);border-bottom-color:var(--rule)}
.shell-ledger .site-contact-grid .site-address h3{font-size:var(--type-4)}
.shell-ledger .site-email a{font-size:var(--type-4)}
/* work.table-roster: the ledger itself, tabular figures in fixed columns. */
.ledger-main>section+.roster-controls,.ledger-main>section+.table-scroll{margin-top:clamp(3rem,7vw,5rem)}
.shell-ledger .roster-controls{margin-bottom:var(--space-5);padding:0;border:0;border-radius:0;background:transparent;color:var(--text)}
.shell-ledger .roster-controls label{font-weight:500;font-size:var(--type-1);color:var(--text-muted)}
.shell-ledger .roster-controls :is(input,select){border-radius:.5rem;border-color:var(--rule);background:var(--paper);color:var(--text);font-size:var(--type-3)}
.shell-ledger .table-scroll{border-top:0}
.shell-ledger .table-scroll th{border-top:1px solid var(--rule)}
.shell-ledger .table-scroll table{font-variant-numeric:tabular-nums}
.shell-ledger .table-scroll :is(th,td){padding:.9rem .75rem .9rem 0;border-bottom-color:var(--rule);vertical-align:baseline}
.shell-ledger .table-scroll th{font-weight:400;font-size:var(--type-1);letter-spacing:.02em;text-transform:none}
.shell-ledger .table-scroll td{color:var(--text-muted)}
.shell-ledger .table-scroll td:nth-child(3){color:var(--text)}
.shell-ledger .table-scroll td:first-child{width:5.5rem}
.shell-ledger .table-scroll td a{text-decoration:none}
.shell-ledger .table-scroll tbody tr{transition:background var(--ledger-beat) var(--ledger-ease)}
.shell-ledger .table-scroll tbody tr[data-href]:hover{background:var(--surface)}
.shell-ledger .table-scroll tbody tr[data-href]:hover td:nth-child(3){color:var(--accent)}
.shell-ledger .pagination{color:var(--text-muted);font-variant-numeric:tabular-nums}
.shell-ledger .pagination:not(:has(a)){display:none}
/* work.featured-grid (accepted for re-rolls): its tile and meta in ledger terms. */
.shell-ledger .orbit-card{border:1px solid var(--edge);border-radius:var(--radius);background:var(--surface);padding:.5rem .5rem .9rem}
.shell-ledger .card-media{border-radius:calc(var(--radius) - .25rem);box-shadow:none}
.shell-ledger .project-card h3{margin:.9rem .25rem .2rem;font-size:var(--type-3)}
.shell-ledger .card-meta{margin-inline:.25rem}
/* project.default: an entry page; facts in a ledger column beside the prose. */
.ledger-main>article{display:grid;grid-template-columns:minmax(0,15rem) minmax(0,1fr);column-gap:clamp(2rem,6vw,6rem);align-items:start;padding-top:clamp(2.5rem,7vw,5rem)}
.ledger-main>article>*{grid-column:1/-1}
.ledger-main>article>p:first-child a{display:inline-flex;align-items:center;gap:.5rem;color:var(--text-muted);font-size:var(--type-2);text-decoration:none}
.ledger-main>article>p:first-child a::before{content:"";width:.45em;height:.45em;border-left:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg)}
.ledger-main>article>p:first-child a:hover{color:var(--text)}
.ledger-main>article>h1{margin-top:var(--space-5);max-width:20ch;font-size:calc(var(--type-6) * 1.3);letter-spacing:-.03em;line-height:1.08}
/* The cover sits as an inset tile in a dark panel, the home grid's grammar at page scale. */
.ledger-main>article>img{box-sizing:border-box;margin-top:var(--space-6);width:100%;height:min(46rem,78svh);padding:clamp(1.5rem,6vw,5.5rem) clamp(1.5rem,14vw,14rem);border-radius:var(--radius);background:var(--surface);object-fit:contain;filter:drop-shadow(0 1.5rem 2rem var(--shadow))}
.ledger-main>article>p:not(:first-child){margin-top:var(--space-6);max-width:44rem;color:var(--text-muted);font-size:var(--type-4);line-height:1.5}
.ledger-main>article>dl{grid-column:1;grid-row:span 30;margin:var(--space-7) 0 0;position:sticky;top:var(--space-5);border-top:1px solid var(--rule);font-size:var(--type-2);font-variant-numeric:tabular-nums}
.ledger-main>article>dl>div{display:grid;grid-template-columns:1fr;gap:.15rem;padding:.75rem 0;border-bottom:1px solid var(--rule)}
.ledger-main>article dt{color:var(--text-muted);font-size:var(--type-1)}
.ledger-main>article dd{margin:0}
.ledger-main>article>section{grid-column:2;margin-top:var(--space-7);max-width:42rem}
.ledger-main>article>section+section{margin-top:var(--space-6)}
.ledger-main>article>section p{line-height:1.7}
.ledger-main>article>section p+p{margin-top:1em}
.ledger-main>article>section :is(h2,h3,h4){margin:var(--space-6) 0 var(--space-3);font-size:var(--type-4)}
.ledger-main>article>section blockquote{margin:0;font-size:var(--type-5);line-height:1.3;letter-spacing:-.02em}
.ledger-main>article>section blockquote footer{margin-top:var(--space-4);color:var(--text-muted);font-size:var(--type-2);letter-spacing:0}
.ledger-main>article>section figure{margin:0}
.ledger-main>article>section figure img{border-radius:var(--radius)}
.ledger-main>article>section figcaption{margin-top:.6rem;color:var(--text-muted);font-size:var(--type-1)}
.ledger-main>article>section .gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-4);padding:var(--space-6);border-radius:var(--radius);background:var(--surface)}
.ledger-main>article>section .gallery img{box-shadow:0 1.25rem 2.5rem -1rem var(--shadow)}
.ledger-main>article>section .gallery figure:nth-child(odd) img{rotate:-1.5deg}
.ledger-main>article>section .gallery figure:nth-child(even) img{rotate:1.25deg}
.ledger-main>article>section ul{list-style:none;margin:0;padding:0}
.ledger-main>article>section li a{display:block;padding:.85rem 0;border-bottom:1px solid var(--rule);text-decoration:none}
.ledger-main>article>section li:first-child a{border-top:1px solid var(--rule)}
.ledger-main>article>section dl{display:grid;grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:var(--space-5);margin:0;font-variant-numeric:tabular-nums}
.ledger-main>article>section dl dd{margin:0;font-size:var(--type-5)}
.ledger-main>article>section dl dt{color:var(--text-muted);font-size:var(--type-2)}
/* Stock credits. */
.shell-ledger .site-credits{margin-top:var(--space-7);color:var(--text-muted);font-size:var(--type-1)}
.shell-ledger .site-credits ul{display:flex;flex-wrap:wrap;gap:.25rem 1.25rem;margin:.5rem 0 0;padding:0;list-style:none}
/* work.strip in Ledger (the work page's featured row, and the strip work view): the same dark 3:4 panels as the home grid, an inset tile with the caption beneath, in one full-bleed row. */
.shell-ledger .work-strip{gap:0}
.shell-ledger .work-strip-title{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.shell-ledger .ledger-main>.work-strip{max-width:none;margin-inline:calc(-1 * var(--gutter))}
.shell-ledger .work-strip-track{grid-auto-columns:clamp(14rem,21vw,19rem);gap:.5rem;width:auto;margin-inline:0;padding:0 .5rem .75rem;scroll-padding-inline:.5rem;scroll-snap-type:x proximity}
.shell-ledger .work-strip-link{grid-template-columns:minmax(0,1fr) auto;grid-template-rows:minmax(0,1fr) auto;align-content:stretch;aspect-ratio:3/4;padding:1.5rem;border:0;background:var(--surface);transition:background var(--ledger-beat) var(--ledger-ease)}
.shell-ledger a.work-strip-link:hover{background:var(--soft)}
.shell-ledger a.work-strip-link:hover .work-strip-name{color:var(--accent-text)}
.shell-ledger .work-strip-media{grid-column:1/-1;align-self:center;justify-self:center;width:70%;aspect-ratio:10/11;border-radius:calc(var(--radius) + .125rem);box-shadow:0 1.5rem 3rem -1.25rem var(--shadow)}
.shell-ledger .work-strip-blank{background:var(--text);color:var(--paper);justify-content:space-between;padding:var(--space-4)}
.shell-ledger .work-strip-blank-title{color:var(--paper);font-size:var(--type-3);line-height:1.3}
.shell-ledger .work-strip-blank-line{color:var(--paper);font-size:var(--type-1)}
.shell-ledger .work-strip-name{grid-column:1;margin:0;padding:0;font-size:var(--type-2);transition:color var(--ledger-beat) var(--ledger-ease)}
.shell-ledger .work-strip-meta{grid-column:2;grid-row:2;padding:0;font-size:var(--type-2);justify-content:flex-end}
.shell-ledger .work-strip-meta>span:not(.work-strip-category){display:none}
.shell-ledger .work-strip-item-blank .work-strip-name{position:static;width:auto;height:auto;overflow:visible;clip-path:none;white-space:normal}
.shell-ledger .work-strip-item-blank .work-strip-category{display:inline}
.shell-ledger .ledger-contact-quiet{width:min(100%,37rem);margin-inline:auto;padding-top:var(--space-2);border-top:0}
/* About and other inner pages: prose, figures and images in the same narrow column as the head. */
.shell-ledger .ledger-main>.proof-counters{width:min(100%,37rem);margin-inline:auto}
.ledger-head+.proof-counters{margin-top:var(--space-4)}
.shell-ledger .ledger-main>.site-image{display:block;width:min(100%,46rem);margin-inline:auto;padding:0;border:0}
.shell-ledger .ledger-main>.site-image .site-figure img{width:100%;max-height:min(36rem,80svh);object-fit:cover}
@media (max-width:760px){
  .ledger-nav{gap:0 1rem}
  .ledger-footer-grid{grid-template-columns:repeat(2,minmax(0,1fr));min-height:0;padding-block:2.5rem 3rem}
  .ledger-footer-where{grid-column:1/-1;gap:var(--space-4)}
  .shell-ledger .stats-line{flex-direction:column;align-items:flex-start}
  .ledger-main>article{display:block}
  .ledger-main>article>img{height:auto;max-height:70svh;padding:1.5rem}
  .ledger-main>article>dl{position:static;margin-top:var(--space-6)}
  .ledger-main>article>section{margin-top:var(--space-6)}
  .shell-ledger .table-scroll table{min-width:0}
  .shell-ledger .table-scroll thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
  .shell-ledger .table-scroll tbody tr{display:grid;grid-template-columns:auto 1fr;gap:.1rem .75rem;padding:.9rem 0;border-bottom:1px solid var(--rule)}
  .shell-ledger .table-scroll td{display:block;padding:0;border:0;width:auto}
  .shell-ledger .table-scroll td:first-child{grid-row:1;grid-column:1;width:auto}
  .shell-ledger .table-scroll td:nth-child(3){grid-row:1;grid-column:2;font-size:var(--type-3)}
  .shell-ledger .table-scroll td:nth-child(2),.shell-ledger .table-scroll td:nth-child(4),.shell-ledger .table-scroll td:nth-child(5){grid-column:2;font-size:var(--type-2)}
  .shell-ledger .table-scroll td:not(:first-child):empty{display:none}
  .shell-ledger .table-scroll td:first-child{min-width:2.75rem}
}
@media (max-width:600px){
  :root{--ledger-head:3.5rem}
}
@media (max-width:600px) and (scripting:enabled) and (prefers-reduced-motion:no-preference){.ledger-main>.ledger-hero-staged+.ledger-settle{padding-top:4rem}}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{transition-duration:0s!important;animation-duration:0s!important;scroll-behavior:auto!important}
}
/* site-v1: inner pages and home additions. Layout only: color comes from the palette tokens and type families from the design's own stylesheet. */
.site-nav nav:has([aria-current]){flex-wrap:wrap;row-gap:.25rem}.site-nav nav a[aria-current=page]{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:.45em}
/* The page nav is forced visible and readable on inner pages and on a multi-page home (some designs hide .site-nav or its links on their home page in favour of a hero menu, and some scripts move the header into the hero). */
:is(.site-page>header.site-nav,.multi-page header.site-nav){position:sticky!important;top:0!important;inset:0 auto auto 0!important;display:flex!important;flex-wrap:wrap;gap:.5rem 2rem;visibility:visible!important;opacity:1!important;transform:none!important;background:var(--paper)!important;color:var(--ink)!important;z-index:60}
:is(.site-page>header.site-nav,.multi-page header.site-nav)>:is(nav,.brand){display:flex!important;visibility:visible!important;opacity:1!important}:is(.site-page>header.site-nav,.multi-page header.site-nav)>nav,:is(.site-page>header.site-nav,.multi-page header.site-nav)>nav a{font-size:14px!important}:is(.site-page>header.site-nav,.multi-page header.site-nav)>nav a{display:inline-flex!important;visibility:visible!important;opacity:1!important;pointer-events:auto!important}:is(.site-page>header.site-nav,.multi-page header.site-nav)>.brand{font-size:16px!important}:is(.site-page>header.site-nav,.multi-page header.site-nav)>nav{gap:.25rem 1.5rem;flex-wrap:wrap}
:is(.site-page>header.site-nav,.multi-page header.site-nav)>:is(button,a):not(.brand){position:static!important;transform:none!important;inset:auto!important}
.site-inner{display:block;max-width:90rem;margin:0 auto;padding:clamp(3rem,7vw,6.5rem) 5vw clamp(4rem,9vw,8rem);background:var(--paper);color:var(--ink)}
.site-page-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2.4fr);gap:1.75rem 4vw;align-items:end;padding-bottom:clamp(2.5rem,6vw,5rem);border-bottom:1px solid var(--line)}
.site-page-head h1{grid-column:1/-1;margin:0;font-size:clamp(2.75rem,7vw,6rem);line-height:.98;letter-spacing:-.035em;max-width:15ch;text-wrap:balance}
.site-page-lede{grid-column:2;margin:0;font-size:clamp(1.15rem,1.9vw,1.5rem);line-height:1.45;max-width:36em}
.site-block{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2.4fr);gap:1.25rem 4vw;padding:4.5rem 0;border-bottom:1px solid var(--line);color:var(--ink)}
.site-inner>.site-block:last-of-type{border-bottom:0}
.site-block>h2{grid-column:1;margin:0;font-size:clamp(1.6rem,2.6vw,2.5rem);line-height:1.08;letter-spacing:-.025em;text-wrap:balance}
.site-block>.site-body{grid-column:2;min-width:0}.site-block>.site-span{grid-column:1/-1}
.site-prose p,.site-prose li{font-size:1.125rem;line-height:1.65;max-width:65ch}.site-prose p+p,.site-prose ul+p,.site-prose p+ul{margin-top:1em}.site-prose :is(h3,h4){margin:2rem 0 .75rem;font-size:1.35rem;line-height:1.2}.site-prose ul{padding-left:1.2em}
.site-lead{margin:0 0 1rem;font-size:clamp(1.25rem,2vw,1.6rem);line-height:1.4;max-width:32em;text-wrap:pretty}
.site-display{margin:0 0 1.5rem;font-size:clamp(2rem,4.4vw,4rem);line-height:1.02;letter-spacing:-.03em;max-width:18ch;text-wrap:balance}
.site-rows{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.site-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);gap:.5rem 3vw;padding:1.4rem 0;border-bottom:1px solid var(--line)}
.site-row :is(h3,dt){margin:0;font-size:1.2rem;line-height:1.3;font-weight:600}.site-row :is(p,dd){margin:0;line-height:1.6;max-width:60ch}.site-row .site-figure{margin-top:1rem}
.site-block:not(:has(>h2)) :is(.site-rows,.site-offer-list){border-top:0}.site-link-list .site-row{display:block}.site-link-list a{font-size:1.2rem;text-underline-offset:.3em}
.site-figure{margin:0}.site-figure img{height:auto;aspect-ratio:3/2;object-fit:cover}.site-figure-wide img{aspect-ratio:16/9;max-height:78svh}.site-figure figcaption{margin-top:.6rem;font-size:.875rem;line-height:1.4}.site-story .site-figure{margin-top:2rem}
.site-offer-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}.site-offer-list li{padding:1rem 0;border-bottom:1px solid var(--line);font-size:clamp(1.3rem,2.4vw,2rem);line-height:1.2;letter-spacing:-.015em}
.site-faq details:first-child{border-top:1px solid var(--line)}.site-faq summary{line-height:1.35}.site-faq details p{line-height:1.6}
.site-hours-list{margin:0;border-top:1px solid var(--line)}.site-hours-list div{display:flex;justify-content:space-between;gap:2rem;padding:1rem 0;border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums}.site-hours-list dd{margin:0}.site-note{margin-top:1.25rem;line-height:1.55;max-width:48ch}
.site-contact-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:2rem 4vw;align-items:start}.site-contact-grid .button{margin-top:.5rem}.site-address h3{margin:0 0 .75rem}.site-address p{margin:.5rem 0;line-height:1.55}.site-email a{font-size:1.15rem}
.site-gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,18rem),1fr));gap:clamp(1rem,2.4vw,2.25rem)}.site-gallery-grid figure{margin:0;min-width:0}
.site-gallery-grid button{display:block;width:100%;padding:0;border:0;background:var(--soft);aspect-ratio:4/3;overflow:hidden}.site-gallery-grid :is(button,figure)>img{height:100%;aspect-ratio:4/3;object-fit:cover;transition:transform .7s cubic-bezier(.16,1,.3,1)}.site-gallery-grid button:hover img{transform:scale(1.03)}.site-gallery-grid figcaption{margin-top:.6rem;font-size:.875rem;line-height:1.4}
.site-quote blockquote{margin:0}.site-quote blockquote p{font-size:clamp(1.4rem,2.6vw,2.2rem);line-height:1.3;max-width:30em;text-wrap:pretty}.site-quote figcaption{margin-top:1.25rem}
.site-metric-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,11rem),1fr));gap:1.5rem 3vw;margin:0}.site-metric-list div{border-top:1px solid var(--line);padding-top:1rem}.site-metric-list dt{line-height:1.4}.site-metric-list dd{margin:.35rem 0 0;font-size:clamp(1.6rem,3vw,2.4rem);line-height:1.1;font-variant-numeric:tabular-nums}
.site-video-link{display:block;text-decoration:none}
.site-next{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1.5rem 3rem;margin-top:clamp(2rem,5vw,4rem);padding-top:clamp(2.5rem,5vw,4rem);border-top:1px solid var(--line)}.site-next h2{margin:0;font-size:clamp(1.8rem,3.6vw,3.2rem);line-height:1.05;letter-spacing:-.03em;max-width:18ch}.site-next .button{margin:0}
.site-home-extra{background:var(--paper);color:var(--ink)}.section.site-home-extra{padding-top:0;padding-bottom:0}.site-home-extra .site-block{border-bottom:0}
.site-pages{background:var(--paper);color:var(--ink)}.site-pages h2{margin:0 0 2rem;font-size:clamp(1.8rem,3.6vw,3.2rem);line-height:1.05;letter-spacing:-.03em}.site-pages ul{list-style:none;margin:0;padding:0}.site-pages li:first-child a{border-top:1px solid var(--line)}
.site-pages a{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);gap:.5rem 3vw;align-items:baseline;padding:1.25rem 0;border-bottom:1px solid var(--line);text-decoration:none}.site-pages a>span:first-child{font-size:clamp(1.3rem,2.4vw,2rem);line-height:1.15}.site-pages a:hover>span:first-child,.site-pages a:focus-visible>span:first-child{text-decoration:underline;text-underline-offset:.3em}.site-pages-title{line-height:1.5}
.site-page>.site-footer{display:flex!important;flex-wrap:wrap;align-items:center;gap:1rem 2.5rem}.site-footer nav{display:flex;flex-wrap:wrap;gap:.5rem 1.5rem}.site-footer nav a{text-decoration:none;min-height:44px;display:inline-flex;align-items:center;font-size:14px!important}.site-footer nav a[aria-current=page]{text-decoration:underline}
@media(max-width:760px){.site-block{padding:2.75rem 0}.site-page-head,.site-block,.site-row,.site-contact-grid,.site-pages a{grid-template-columns:1fr}.site-page-lede,.site-block>h2,.site-block>.site-body{grid-column:1}.site-page-head h1{font-size:clamp(2.4rem,11vw,3.6rem)}.site-hours-list div{gap:1rem}.site-gallery-grid figcaption,.site-figure figcaption{font-size:14px}}
@media(prefers-reduced-motion:reduce){.site-gallery-grid img{transition:none}}
.site-hero-cta{display:flex;justify-content:center;padding-top:2.5rem;padding-bottom:2.5rem;background:var(--paper)}.site-hero-cta .button{margin:0}

/* Project-local navigation inherits the selected shell's palette and typography. */
.project-pages{margin:2rem auto;padding:1rem clamp(1rem,4vw,4rem);max-width:100%;line-height:1.5;overflow-wrap:anywhere}
.project-pages ul{display:flex;flex-wrap:wrap;gap:.75rem 1.5rem;list-style:none;margin:1rem 0 0;padding:0}
.project-pages a{color:inherit;text-underline-offset:.25em}
.project-pages a[aria-current="page"]{font-weight:700;text-decoration-thickness:2px}
.project-pages a:focus-visible{outline:2px solid currentColor;outline-offset:4px}
.ledger-contact{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) minmax(0,1fr);gap:var(--space-5) var(--space-6);padding:2.5rem 0;border-top:1px solid var(--rule)}
.ledger-contact h2{font-size:var(--type-5);font-weight:500;letter-spacing:-.022em;color:var(--text)}
.ledger-contact-lead{display:grid;gap:var(--space-3);align-content:start}
.ledger-contact-lead p{max-width:32rem;color:var(--text-muted);line-height:1.6}
.ledger-contact-ways,.ledger-contact-where{display:grid;gap:var(--space-2);align-content:start;font-size:var(--type-3)}
.ledger-contact-primary{justify-self:start;display:inline-flex;align-items:center;min-height:2.75rem;padding:var(--space-2) var(--space-4);border-radius:.5rem;background:var(--text);color:var(--paper);font-size:var(--type-2);font-weight:500;text-decoration:none;overflow-wrap:anywhere}
.ledger-contact-primary:hover{background:var(--accent-text);color:var(--paper)}
.ledger-contact-secondary{justify-self:start;display:inline-flex;align-items:center;min-height:2.75rem;color:var(--text)}
.ledger-contact-where p{color:var(--text-muted)}
.ledger-contact-where a{justify-self:start;display:inline-flex;align-items:center;min-height:2.75rem;color:var(--text)}
.ledger-contact-note{font-size:var(--type-2)}
.ledger-contact-quiet{display:flex;flex-wrap:wrap;gap:var(--space-5) var(--space-7)}
.ledger-contact-quiet>*{flex:1 1 14rem;max-width:32rem}
.ledger-contact-quiet .ledger-contact-lead:not(:has(p)){position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
@media (max-width:760px){.ledger-contact{grid-template-columns:1fr}}
.ledger-hero{--hero-head:4rem;position:relative;display:grid;place-items:center;min-height:clamp(16rem,46svh,26rem);padding-block:var(--space-6)}
.ledger-hero-copy{position:relative;z-index:1;width:min(100%,38.5rem);text-align:center}
.ledger-hero-emerge{display:grid;gap:var(--space-4);justify-items:center}
.ledger-hero-lead,.ledger-hero-place{margin:0;font-family:var(--font-display);font-size:calc(var(--type-4) * 1.2);font-weight:400;line-height:1.3;letter-spacing:-.012em;color:var(--text);text-wrap:balance}
.ledger-hero-second{color:var(--text-muted)}
.ledger-hero-action a{display:inline-flex;align-items:center;min-height:2.75rem;color:var(--text);font-size:var(--type-2)}
@media (scripting:enabled) and (prefers-reduced-motion:no-preference){
  .ledger-hero-staged{min-height:calc(100svh - var(--hero-head));padding-block:0}
  .ledger-hero-emerge{animation:ledger-hero-emerge 1s cubic-bezier(.16,1,.3,1) both}
}
@keyframes ledger-hero-emerge{from{opacity:0;filter:blur(1rem);transform:scale(1.5)}to{opacity:1;filter:none;transform:none}}
@media (max-width:600px){
  .ledger-hero{--hero-head:3.5rem}
  .ledger-hero-lead,.ledger-hero-place{font-size:var(--type-4)}
  .ledger-hero-copy{text-align:left}
  .ledger-hero-emerge{justify-items:start}
}
.proof-counters{display:grid;gap:var(--space-5)}
.proof-counters-title{font-size:var(--type-4);font-weight:500;color:var(--text)}
.proof-counters-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-6) var(--space-5);margin:0}
.proof-counters-item{display:flex;flex-direction:column-reverse;gap:var(--space-1)}
.proof-counters-item dt{color:var(--text-muted);font-size:var(--type-2)}
.proof-counters-item dd{margin:0}
.proof-counters-value{display:inline-block;font-family:var(--font-display);font-size:calc(var(--type-6) * 1.08);font-weight:500;line-height:1;letter-spacing:-.04em;color:var(--text);font-variant-numeric:tabular-nums}
.proof-counters-rows{margin:0;border-top:1px solid var(--rule)}
.proof-counters-rows div{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:var(--space-2) var(--space-5);padding:var(--space-4) 0;border-bottom:1px solid var(--rule)}
.proof-counters-rows dt{font-weight:500;color:var(--text)}
.proof-counters-rows dd{margin:0;color:var(--text-muted)}
@media (max-width:560px){.proof-counters-rows div{grid-template-columns:1fr}}
.ledger-wall{--m:0;--o:0;display:grid;gap:var(--space-4)}
.ledger-wall-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);width:min(100%,57.625rem);margin:0 auto}
.ledger-wall-title{margin:0;color:var(--text-muted);font-size:var(--type-2);font-weight:400;letter-spacing:-.011em}
.ledger-wall-pause{display:none;align-items:center;gap:var(--space-2);min-height:2.75rem;color:var(--text-muted);font-size:var(--type-2);cursor:pointer}
.ledger-wall-pause:hover{color:var(--text)}
.ledger-wall-hold{appearance:none;display:grid;place-items:center;width:1rem;height:1rem;margin:0;border:1px solid currentColor;border-radius:.25rem;cursor:pointer}
.ledger-wall-hold:checked{background:var(--text);border-color:var(--text)}
.ledger-wall-hold:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.ledger-wall-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.5rem;width:min(100%,57.625rem);margin:0 auto;padding:0;list-style:none}
.ledger-wall-cell{display:grid;place-items:center;align-content:center;gap:var(--space-2);aspect-ratio:1;padding:var(--space-4);border-radius:var(--radius);background:var(--surface);text-align:center}
.ledger-wall-name{max-width:16ch;color:var(--text);font-family:var(--font-display);font-size:var(--type-3);font-weight:500;line-height:1.3;letter-spacing:-.015em;text-wrap:balance;overflow-wrap:anywhere}
@media (prefers-reduced-motion:no-preference){
  .ledger-wall-cell[data-stack] .ledger-wall-name{grid-area:1/1;animation:15s cubic-bezier(.45,0,.55,1) infinite both;animation-delay:calc((var(--m) * 15s / var(--k) + var(--o) * 15s) * -1)}
  .ledger-wall-cell[data-stack="2"]{--k:2}
  .ledger-wall-cell[data-stack="3"]{--k:3}
  .ledger-wall-cell[data-stack="2"] .ledger-wall-name{animation-name:ledger-wall-2}
  .ledger-wall-cell[data-stack="3"] .ledger-wall-name{animation-name:ledger-wall-3}
  .ledger-wall-pause{display:inline-flex}
  .ledger-wall:is(:hover,:focus-within,:has(.ledger-wall-hold:checked)) .ledger-wall-name{animation-play-state:paused}
}
@keyframes ledger-wall-2{0%{opacity:0;filter:blur(.25rem)}5%,45%{opacity:1;filter:none}50%,100%{opacity:0;filter:blur(.25rem)}}
@keyframes ledger-wall-3{0%{opacity:0;filter:blur(.25rem)}5%,28.33%{opacity:1;filter:none}33.33%,100%{opacity:0;filter:blur(.25rem)}}
@media (max-width:600px){
  .ledger-wall-list{grid-template-columns:repeat(2,minmax(0,1fr));width:auto;margin-inline:calc(.25rem - var(--gutter))}
  .ledger-wall-name{font-size:var(--type-2)}
}
.stats-line{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-4) var(--space-6);padding-block:var(--space-6);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.stats-line-text{margin:0;font-family:var(--font-display);font-size:var(--type-5);font-weight:500;line-height:1.25;letter-spacing:-.02em;color:var(--text-muted);font-variant-numeric:tabular-nums}
.stats-line-part{white-space:nowrap}
.stats-line-figure{color:var(--text)}
.stats-line-action{display:inline-flex;align-items:center;min-height:2.75rem;padding:var(--space-2) var(--space-5);border:1px solid var(--rule);border-radius:999px;color:var(--text);font-size:var(--type-2);font-weight:500;text-decoration:none}
.stats-line-action:hover{border-color:var(--accent-text);color:var(--accent-text)}
.ledger-prose{display:grid;gap:var(--space-4);width:min(100%,37rem);margin-inline:auto}
.ledger-prose-heading{font-size:var(--type-4);font-weight:500;letter-spacing:-.015em;color:var(--text)}
.ledger-prose-body{display:grid;gap:var(--space-4);color:var(--text-muted)}
.ledger-prose-body p,.ledger-prose-body li{margin:0;font-size:var(--type-3);line-height:1.65;text-wrap:pretty}
.ledger-prose-body h3{margin:var(--space-4) 0 0;font-size:var(--type-3);font-weight:500;color:var(--text)}
.ledger-prose-body ul{margin:0;padding-left:1.1em;display:grid;gap:var(--space-2)}
.ledger-prose-body li::marker{color:var(--text-muted)}
.ledger-prose-body a{color:var(--text)}
.ledger-prose-figure{margin:var(--space-3) 0 0}
.ledger-prose-figure img{width:100%;border-radius:var(--radius)}
.ledger-prose-figure figcaption{margin-top:var(--space-2);color:var(--text-muted);font-size:var(--type-1)}
.ledger-settle{--settle:1}
.ledger-settle-title{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.ledger-settle-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem;width:min(100%,57.625rem);margin:0 auto;padding:0;list-style:none}
.ledger-settle-card{--settle:1;min-width:0}
.ledger-settle-body{position:relative;display:grid;grid-template-rows:1fr auto;gap:var(--space-4);aspect-ratio:3/4;padding:1.5rem;border-radius:var(--radius);color:var(--text);text-decoration:none}
.ledger-settle-panel{position:absolute;inset:0;border-radius:inherit;background:var(--surface);opacity:var(--settle);transition:background 600ms cubic-bezier(.16,1,.3,1)}
.ledger-settle-slot{position:relative;z-index:2;align-self:start;justify-self:center;width:calc((100% + 3rem) * .7);margin-top:calc((100% + 3rem) * .215 - 1.5rem);aspect-ratio:10/11}
.ledger-settle-move,.ledger-settle-tilt,.ledger-settle-reveal{display:block;width:100%;height:100%}
.ledger-settle-tilt{transform-origin:50% 50%}
.ledger-settle-face{display:block;width:100%;height:100%;border-radius:calc(var(--radius) + .125rem);object-fit:cover;box-shadow:0 1.5rem 3rem -1.25rem var(--shadow),0 .25rem .75rem -.25rem var(--shadow);transition:transform 600ms cubic-bezier(.16,1,.3,1)}
.ledger-settle-blank{display:flex;flex-direction:column;justify-content:space-between;gap:var(--space-3);padding:var(--space-4);background:var(--text);color:var(--paper);overflow:hidden}
.ledger-settle-mark{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:5;overflow:hidden;font-family:var(--font-display);font-size:var(--type-4);font-weight:500;line-height:1.3;letter-spacing:-.02em;text-wrap:balance;overflow-wrap:anywhere}
.ledger-settle-foot{display:flex;justify-content:space-between;gap:var(--space-2);font-size:var(--type-1);font-variant-numeric:tabular-nums}
.ledger-settle-caption{position:relative;align-self:end;z-index:1;display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-3);opacity:var(--settle);font-size:var(--type-2);line-height:1.35}
.ledger-settle-name{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;min-width:0;font-weight:500;color:var(--text);transition:color 600ms cubic-bezier(.16,1,.3,1)}
.ledger-settle-category{flex:none;color:var(--text-muted);text-align:right}
a.ledger-settle-body:hover .ledger-settle-panel{background:var(--soft)}
a.ledger-settle-body:hover .ledger-settle-name{color:var(--accent-text)}
a.ledger-settle-body:hover .ledger-settle-face{transform:translateY(-.375rem)}
a.ledger-settle-body:focus-visible{outline:2px solid var(--focus);outline-offset:3px}
@media (max-width:960px){.ledger-settle-mark{font-size:var(--type-3)}}
@media (max-width:600px){
  .ledger-settle-list{grid-template-columns:repeat(2,minmax(0,1fr));width:auto;margin-inline:calc(.25rem - var(--gutter))}
  .ledger-settle-body{padding:1rem}
  .ledger-settle-slot{width:calc((100% + 2rem) * .7);margin-top:calc((100% + 2rem) * .13 - 1rem)}
  .ledger-settle-caption{flex-direction:column;gap:0}
  .ledger-settle-category{text-align:left}
  .ledger-settle-blank{padding:var(--space-3)}
  .ledger-settle-mark{font-size:var(--type-2);-webkit-line-clamp:4}
}
@media (prefers-reduced-motion:reduce){.ledger-settle-face,.ledger-settle-panel,.ledger-settle-name{transition:none}}

.ledger-thumbnail-toggle{display:block;margin:0 auto var(--space-4);padding:.5rem .75rem;border:1px solid currentColor;border-radius:var(--radius);background:var(--surface);color:var(--text);font:inherit;cursor:pointer;position:relative;z-index:3}
.ledger-thumbnail-toggle[hidden]{display:none}
.ledger-thumbnail-toggle:focus-visible{outline:2px solid var(--focus);outline-offset:3px}
.work-strip{display:grid;gap:var(--space-5)}
.work-strip-title{font-size:var(--type-4);font-weight:500;color:var(--text)}
.work-strip-track{display:grid;grid-auto-flow:column;grid-auto-columns:clamp(15rem,28vw,22rem);gap:var(--space-4);margin:0;padding:0 0 var(--space-4);list-style:none;margin-right:calc(-1 * var(--gutter));padding-right:var(--gutter);scroll-padding-inline-end:var(--gutter);overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-padding-inline:0;scrollbar-width:thin;scrollbar-color:var(--rule) transparent}
.work-strip-track:focus-visible{outline:2px solid var(--focus);outline-offset:4px}
.work-strip-item{scroll-snap-align:start;min-width:0}
.work-strip-link{position:relative;display:grid;align-content:start;gap:var(--space-2);height:100%;padding:var(--space-2) var(--space-2) var(--space-4);border:1px solid var(--rule);border-radius:var(--radius);background:var(--surface);color:var(--text);text-decoration:none}
a.work-strip-link:hover{border-color:var(--accent)}
.work-strip-media{display:block;aspect-ratio:4/3;overflow:hidden;border-radius:calc(var(--radius) - .25rem);background:var(--soft)}
.work-strip-media img{width:100%;height:100%;object-fit:cover}
.work-strip-blank{display:flex;flex-direction:column;justify-content:flex-end;gap:var(--space-2);padding:var(--space-4)}
.work-strip-blank-title{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4;overflow:hidden;color:var(--text);font-family:var(--font-display);font-size:var(--type-4);font-weight:500;line-height:1.2;letter-spacing:-.015em;text-wrap:balance}
.work-strip-blank-line{color:var(--text-muted);font-size:var(--type-2)}
.work-strip-item-blank .work-strip-name{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.work-strip-item-blank .work-strip-category{display:none}
.work-strip-name{margin-top:var(--space-2);padding-inline:var(--space-2);font-weight:500;line-height:1.35}
.work-strip-meta{display:flex;flex-wrap:wrap;gap:0 var(--space-3);padding-inline:var(--space-2);color:var(--text-muted);font-size:var(--type-2);font-variant-numeric:tabular-nums}
@media (max-width:760px){.work-strip-track{grid-auto-columns:78%}}
.roster-controls {
  display: none;
  grid-template-columns: minmax(15rem, 1fr) minmax(12rem, 0.4fr) auto;
  align-items: end;
  gap: 1rem;
  margin-bottom: 2rem;
  padding: 1rem;
  background: var(--surface);
  border: 1px solid var(--rule);
}
html[data-js="true"] .roster-controls { display: grid; }
.roster-controls label { display: grid; gap: 0.35rem; font-weight: 650; }
.roster-controls input, .roster-controls select {
  width: 100%;
  min-height: 2.9rem;
  border: 1px solid var(--rule);
  border-radius: var(--radius);
  padding: 0.65rem 0.75rem;
  background: var(--paper);
  color: var(--text);
  font: inherit;
}
.roster-controls output { color: var(--text-muted); white-space: nowrap; }
.table-scroll { overflow-x: auto; border-top: 1px solid var(--text); }
.table-scroll table { width: 100%; min-width: 48rem; border-collapse: collapse; }
.table-scroll th, .table-scroll td { padding: 1rem 0.7rem; text-align: left; border-bottom: 1px solid var(--rule); }
.table-scroll th { color: var(--text-muted); font-size: var(--type-1); text-transform: uppercase; letter-spacing: 0.08em; }
.table-scroll tbody tr[data-href] { cursor: pointer; }
.table-scroll tbody tr[data-href]:hover { background: var(--surface); }
.pagination { display: flex; gap: clamp(0.8rem, 2vw, 1.8rem); flex-wrap: wrap; align-items: center; justify-content: center; margin-top: 2rem; }
@media (max-width: 760px) {
  .roster-controls { grid-template-columns: 1fr; align-items: stretch; }
  .roster-controls output { white-space: normal; }
}
@media print {
  .roster-controls { display: none !important; }
}
/* The project cover keeps its full photograph and a fixed frame across slides. */
.wm-cover-carousel,.ledger-main>article>section.wm-cover-carousel,.shell-catalog .cf-main>article>section.wm-cover-carousel{grid-column:1/-1;width:100%;max-width:none;min-width:0;margin:2rem 0;border-radius:1rem;background:var(--surface,var(--paper,#20231f));overflow:hidden}
.wm-cover-carousel .wm-cover-carousel__frame{position:relative;width:100%;aspect-ratio:16/10;height:min(46rem,78svh)}
.wm-cover-carousel .wm-cover-carousel__slide{position:absolute;inset:0;margin:0;box-sizing:border-box;padding:clamp(1.5rem,6vw,5.5rem) clamp(1.5rem,14vw,14rem);opacity:0;transition:opacity 600ms ease-in-out;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem}
.wm-cover-carousel .wm-cover-carousel__slide.is-active{opacity:1}
.wm-cover-carousel .wm-cover-carousel__slide[hidden],.wm-cover-carousel [hidden]{display:none!important}
.wm-cover-carousel .wm-cover-carousel__slide img{display:block;object-fit:contain;width:100%;height:100%;min-height:0;max-width:100%;max-height:100%;margin:0;padding:0;border-radius:0;aspect-ratio:auto}
.wm-cover-carousel .wm-cover-carousel__slide figcaption{flex:none;font-size:.85rem;text-align:center}
.wm-cover-carousel .wm-cover-carousel__controls{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:.5rem;padding:.75rem}
.wm-cover-carousel .wm-cover-carousel__dots{display:flex;gap:.35rem;flex-wrap:wrap;justify-content:center}
.wm-cover-carousel button{background:transparent;color:inherit;border:1px solid currentColor;border-radius:50%;min-width:2.5rem;min-height:2.5rem;padding:.25rem;cursor:pointer;font:inherit}
.wm-cover-carousel button[aria-pressed=true]{background:var(--ink,#f5f5ef);color:var(--paper,#191c18)}
.wm-cover-carousel button:focus-visible,.wm-cover-carousel:focus-visible{outline:3px solid currentColor;outline-offset:3px}
.wm-cover-carousel__status{font-size:.8rem;padding-inline:.5rem}
@media(max-width:600px){.wm-cover-carousel .wm-cover-carousel__frame{aspect-ratio:1;height:auto}.wm-cover-carousel .wm-cover-carousel__slide{padding:.75rem}}

@media(prefers-reduced-motion:reduce){.wm-cover-carousel .wm-cover-carousel__slide{transition:none}}

