:root{--ink:#171411;--bone:#f4efe7;--paper:#e9e2d6;--rust:#b65334;--rust-light:#d17956;--line:#6f655b;--muted:#bdafa1;--display:'Bricolage Grotesque',Arial,sans-serif;--body:'Spline Sans',Arial,sans-serif;--mono:'JetBrains Mono',monospace}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--ink);color:var(--bone);font-family:var(--body);overflow-x:hidden}
button,a{font:inherit}
a{color:inherit;text-underline-offset:.25em}
button{cursor:pointer}
img{max-width:100%}
h1,h2,h3,p{margin-top:0}
h1,h2,h3{font-family:var(--display);font-weight:700;letter-spacing:-.055em}
p{line-height:1.55}
section[id]{scroll-margin-top:6rem}
.wrap{width:min(100% - 5rem,1500px);margin-inline:auto}
.eyebrow{font:500 .67rem/1.5 var(--mono);letter-spacing:.13em;text-transform:uppercase}
.skip{position:fixed;top:-5rem;left:1rem;z-index:20;background:var(--bone);color:var(--ink);padding:.7rem 1rem}
.skip:focus{top:1rem}
:focus-visible{outline:3px solid var(--rust-light);outline-offset:4px}
.site-header{height:82px;display:flex;align-items:center;justify-content:space-between;padding-inline:2.5rem;border-bottom:1px solid #554d46}
.wordmark img{display:block;width:248px;height:auto}
.desktop-nav{display:flex;gap:2.1rem}
.desktop-nav a{font-size:.83rem;text-decoration:none}
.desktop-nav a:hover,.text-link:hover,.action-link:hover{color:var(--rust-light)}
.menu-button{display:none}
.menu{width:min(100vw,560px);height:100dvh;max-height:none;margin:0 0 0 auto;padding:1.3rem 2rem;background:var(--ink);color:var(--bone);border:0;border-left:1px solid var(--line);overscroll-behavior:contain}
.menu::backdrop{background:#0a0808bb}
.menu-head{display:flex;justify-content:space-between;align-items:center}
.menu-head button{background:none;border:1px solid var(--line);color:var(--bone);min-height:48px;padding:0 1rem}
.menu nav{display:grid;margin:3rem 0}
.menu nav a{display:flex;justify-content:space-between;align-items:center;padding:1rem 0;border-bottom:1px solid var(--line);font:700 clamp(2rem,7vw,3.6rem)/1 var(--display);text-decoration:none}
.menu nav span{font:400 .65rem var(--mono)}
.menu p{color:var(--muted)}
.intro{padding-block:4.5rem 5.2rem}
.intro-kicker,.intro-tail{display:flex;justify-content:space-between;gap:2rem}
.intro-kicker{color:var(--rust-light)}
.intro h1{font-size:clamp(4.4rem,9vw,10rem);line-height:.89;max-width:12ch;margin:2.3rem 0 2rem;text-wrap:balance}
.intro h1 em{font-weight:600;font-style:normal;color:var(--rust-light)}
.intro-tail{align-items:end}
.intro-tail p{max-width:37ch;font-size:clamp(1rem,1.45vw,1.3rem);margin:0}
.text-link{font:500 .77rem var(--mono);white-space:nowrap}
.text-link span{margin-left:1rem}
.section-heading{display:flex;align-items:end;justify-content:space-between;gap:2rem;border-top:1px solid var(--line);padding-top:1.2rem;margin-bottom:1.75rem}
.section-heading h2{font-size:clamp(2.6rem,5vw,5rem);line-height:1;margin:.65rem 0 0}
.section-heading p{max-width:31ch;color:var(--muted);margin:0}
.work{padding-bottom:7rem}
.work-grid{display:block}
.work-card{background:var(--paper);color:var(--ink);min-width:0;display:grid;grid-template-columns:1.12fr 1fr}
.work-card:not(:last-child){margin-bottom:1.25rem}
.work-card[hidden],.product-switch[hidden]{display:none}
.product-switch{position:sticky;bottom:max(.75rem,env(safe-area-inset-bottom));z-index:4;display:flex;align-items:stretch;gap:1.2rem;margin-top:1.25rem;padding:.55rem;background:var(--bone);color:var(--ink);box-shadow:0 12px 36px #0008}
.product-switch-label{display:flex;align-items:center;gap:.6rem;flex:0 0 auto;padding:0 1rem;font:500 .7rem var(--mono);text-transform:uppercase;letter-spacing:.08em;border-right:1px solid #aa9e90}
.product-switch-label span{color:var(--rust)}
.product-tabs{display:flex;flex:1;min-width:0;overflow-x:auto;scrollbar-width:thin;overscroll-behavior-inline:contain}
.product-tabs button{display:flex;flex:1 0 0;min-width:150px;min-height:60px;flex-direction:column;justify-content:center;gap:.12rem;padding:.5rem .9rem;background:transparent;color:var(--ink);border:0;border-left:1px solid #aa9e90;text-align:left}
.product-tabs button:first-child{border-left:0}
.product-tabs button[aria-selected="true"]{background:var(--ink);color:var(--bone)}
.product-tabs button:not([aria-selected="true"]):hover{background:#dcd2c4}
.product-tabs strong{font:700 .95rem/1.1 var(--display)}
.product-tabs small{font:400 .62rem/1.2 var(--mono)}
.product-tabs button:focus-visible{outline:3px solid var(--rust);outline-offset:-3px}
.reader-preview{height:clamp(400px,42vw,630px);display:flex;flex-direction:column;position:relative;overflow:hidden;background:#272521;color:white;text-decoration:none}
.reader-top{display:flex;justify-content:space-between;align-items:center;position:relative;z-index:2;padding:1.25rem 1.4rem;font:500 .65rem var(--mono);letter-spacing:.12em}
.reader-name{font:800 1.2rem var(--display);letter-spacing:-.06em}
.reader-image{position:absolute;inset:0;background:linear-gradient(140deg,#453b32,#191614)}
.reader-image img{width:100%;height:100%;object-fit:cover;filter:contrast(1.06) saturate(1.1) brightness(.84) sepia(.08)}
.reader-image:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,#0a0a0a8c,#0a0a0a22 36%,#0a0a0ae6)}
.media-state{position:absolute;z-index:1;left:1.4rem;right:1.4rem;top:42%;max-width:35ch}
.reader-story{position:relative;z-index:2;margin-top:auto;padding:1.5rem 1.4rem 1.8rem}
.reader-story h3{font-size:clamp(2rem,4vw,4.4rem);line-height:.99;max-width:13ch;margin:.75rem 0 0;overflow-wrap:break-word}
.reader-arrow{position:absolute;right:1.4rem;bottom:1.4rem;font-size:1.5rem}
.work-copy{padding:1.6rem;display:flex;flex:1;flex-direction:column;justify-content:space-between;gap:1.8rem}
.work-copy .eyebrow{color:#78513f}
.work-copy h3{font-size:clamp(2.2rem,3.2vw,3.8rem);line-height:1.02;margin:.65rem 0 1rem}
.work-copy h3 span{white-space:nowrap}
.work-copy p{max-width:58ch}
.action-link{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #a79a8d;padding-top:1rem;font:500 .8rem var(--mono);text-decoration:none}
.workflow{position:relative;min-height:clamp(400px,42vw,630px);background:#8f402b;color:#fff3e6;padding:1.3rem 1.5rem;display:flex;flex-direction:column}
.workflow-top{display:flex;align-items:center;justify-content:space-between;gap:1rem;font:500 .62rem var(--mono);letter-spacing:.1em}
.workflow-top img{display:block;width:52px;height:52px;object-fit:contain;border-radius:22%}
.workflow-top span{text-align:right}
.workflow ol{list-style:none;margin:auto 0;padding:2rem 0;display:grid;gap:.75rem}
.workflow li{display:grid;grid-template-columns:2.5rem 1fr auto;align-items:baseline;gap:.5rem;border-bottom:1px solid #ffffff66;padding:.65rem 0}
.workflow li span,.workflow li small{font:400 .7rem var(--mono)}
.workflow li strong{font:700 clamp(1.5rem,3vw,3rem)/1 var(--display);letter-spacing:-.05em}
.illustration-label{font:400 .65rem var(--mono);text-transform:uppercase;letter-spacing:.1em}
.proof{padding-top:1rem;border-top:1px solid #a79a8d;font-size:.85rem}
.desk{background:var(--bone);color:var(--ink);padding:5rem 0 5.5rem}
.desk .section-heading{border-color:#aa9e90}
.desk .section-heading p{color:#55483d}
.carousel-bar{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}
.carousel-controls{display:flex;gap:.5rem}
.carousel-controls button{width:48px;height:48px;border-radius:50%;background:transparent;border:1px solid #60564d;color:var(--ink);font-size:1.3rem}
.carousel-controls button:disabled{opacity:.38;cursor:default}
.carousel-controls button:not(:disabled):hover{background:var(--ink);color:var(--bone)}
.desk-track{display:flex;gap:1rem;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:0;overscroll-behavior-inline:contain;scrollbar-width:thin;padding-bottom:1rem}
.original-card{display:block;flex:0 0 clamp(265px,31vw,430px);scroll-snap-align:start;text-decoration:none}
.original-card img,.image-unavailable{display:block;width:100%;aspect-ratio:1.35;object-fit:cover;background:#c9bdaf}
.image-unavailable{display:grid;place-items:center;padding:1rem;text-align:center;font:.75rem var(--mono)}
.original-card h3{font-size:clamp(1.4rem,2.2vw,2rem);line-height:1.1;margin:.8rem 0 0;letter-spacing:-.035em}
.original-card:hover h3{text-decoration:underline;text-decoration-color:var(--rust)}
.content-state{padding:3rem 0;min-height:13rem}
.content-state button{border:1px solid var(--ink);background:transparent;padding:.8rem 1rem;min-height:44px;margin-top:.6rem}
.archive-link{display:inline-block;margin-top:1.3rem}
.house{padding-block:5rem;display:grid;grid-template-columns:1fr 2fr;gap:2rem;border-bottom:1px solid var(--line)}
.house h1,.house h2{font-size:clamp(2.5rem,5vw,5rem);line-height:1.04;max-width:17ch}
.house p{max-width:52ch;color:var(--muted);font-size:1.1rem}
.contact{padding-block:4.5rem 6rem;display:grid;grid-template-columns:1fr 1fr;gap:2rem}
.contact h2{font-size:clamp(2.5rem,4vw,4rem);margin:.7rem 0}
.contact p{color:var(--muted)}
.contact a{font-size:clamp(1rem,1.7vw,1.4rem);overflow-wrap:anywhere}
.footer{min-height:125px;display:flex;align-items:center;justify-content:space-between;gap:1rem;border-top:1px solid var(--line)}
.footer img{display:block}
.footer p,.footer a{font-size:.75rem}
.footer p{margin:0;color:var(--muted)}
.footer div{display:flex;gap:1.2rem}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:900px){.work-card{grid-template-columns:1fr}
.reader-preview,.workflow{min-height:460px}
.intro h1{font-size:clamp(4.5rem,10vw,7.5rem)}
}
@media(max-width:700px){.wrap{width:min(100% - 2rem,1500px)}
.site-header{height:66px;padding-inline:1rem}
.wordmark img{width:200px}
.desktop-nav{display:none}
.menu-button{display:flex;gap:.8rem;align-items:center;justify-content:center;min-width:74px;min-height:44px;border:1px solid var(--line);background:transparent;color:var(--bone);font-size:.8rem}
.intro{padding-block:2.5rem 3.4rem}
.intro-kicker span:last-child{display:none}
.intro h1{font-size:clamp(3.15rem,12vw,5.5rem);line-height:.92;margin:1.5rem 0}
.intro-tail{align-items:start;flex-direction:column;gap:1rem}
.intro-tail p{font-size:1rem}
.section-heading{display:block}
.section-heading p{margin-top:.7rem}
.work{padding-bottom:4.5rem}
.work-card:not(:last-child){margin-bottom:1rem}
.product-switch{display:block;margin-top:1rem;padding:.4rem}
.product-switch-label{min-height:32px;padding:0 .6rem;border-right:0}
.product-tabs button{flex:0 0 43%;min-width:128px;min-height:58px}
.reader-preview{height:auto;min-height:430px}
.workflow{min-height:390px}
.workflow li{grid-template-columns:2rem 1fr;gap:.3rem}
.workflow li small{grid-column:2}
.work-copy{padding:1.3rem}
.desk{padding:3.5rem 0 4rem}
.original-card{flex-basis:min(80vw,360px)}
.house,.contact{display:block;padding-block:3.5rem}
.house>div,.contact>div:last-child{margin-top:1.4rem}
.footer{flex-wrap:wrap;padding-block:1.5rem}
.footer div{width:100%}
}
@media(max-width:390px){.intro h1{font-size:3.1rem}
.reader-story h3{font-size:2rem}
.workflow li strong{font-size:1.55rem}
.original-card{flex-basis:83vw}
.contact a{font-size:1rem}
}
@media(prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}
.reader-preview img{transition:transform .25s ease}
.reader-preview:hover img{transform:scale(1.02)}
.action-link,.text-link{transition:color .15s ease}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}
*{animation-duration:.01ms!important;transition-duration:.01ms!important}
}
@media(forced-colors:active){.carousel-controls button:disabled{opacity:1}
}


.reader-image picture{display:block;width:100%;height:100%}
.media-state button{display:block;min-height:44px;margin-top:.8rem;padding:.6rem .9rem;border:1px solid var(--bone);background:var(--ink);color:var(--bone)}


.hero-retry{display:block;min-height:44px;margin-bottom:1rem;padding:.55rem .85rem;border:1px solid var(--ink);background:transparent;color:var(--ink)}
.hero-retry[hidden]{display:none}
.media-state{top:33%}
.reader-image picture{display:block;width:100%;height:100%}
.work-card :focus-visible,.desk :focus-visible{outline-color:#712e1e}
.product-preview{position:relative;isolation:isolate;display:flex;flex-direction:column;justify-content:space-between;min-height:clamp(400px,42vw,630px);overflow:hidden;padding:1.4rem;color:var(--bone);text-decoration:none}
.preview-top,.preview-bottom{position:relative;z-index:1;display:flex;justify-content:space-between;gap:1rem}
.preview-top{align-items:center;font:500 .65rem/1.4 var(--mono);letter-spacing:.11em}
.preview-top strong{font:800 1.15rem/1 var(--display);letter-spacing:-.045em}
.preview-bottom{align-items:end}
.preview-bottom>span{font:700 clamp(2.15rem,4vw,4.6rem)/.99 var(--display);letter-spacing:-.055em}
.preview-bottom em{font-style:normal;color:var(--rust-light)}
.preview-bottom small{font:400 .6rem/1.4 var(--mono);letter-spacing:.08em;text-align:right;text-transform:uppercase;max-width:12ch}
.elections-preview{padding:1.35rem 1.4rem 0;background:#0a0a0a;color:#f7f4ef}
.elections-preview-top,.elections-preview-bottom{position:relative;z-index:2}
.elections-preview-top{display:flex;justify-content:space-between;gap:1rem;align-items:center;font:500 .62rem/1.4 var(--mono);letter-spacing:.1em}
.elections-preview-top strong{font:800 1.1rem/1 var(--display);letter-spacing:-.05em}
.elections-preview-top span,.elections-preview-bottom small{color:#f5a623}
.elections-map{position:absolute;inset:3.4rem 0 5.5rem;display:block;overflow:hidden}
.elections-map img,.elections-map svg{display:block;width:100%;height:100%;object-fit:contain}
.elections-map svg path{fill:#1f1d1a;stroke:#3a3631;stroke-width:1.2;vector-effect:non-scaling-stroke;transition:fill .42s ease,stroke .42s ease}
.elections-map svg path[data-on]{fill:#f5a623;stroke:#f7c46a}
.elections-preview:after{content:'';position:absolute;z-index:1;inset:0;pointer-events:none;background:linear-gradient(180deg,transparent 39%,#0a0a0a 83%)}
.elections-preview-bottom{margin-top:auto;padding:0 0 1.5rem}
.elections-preview-bottom small{display:block;margin-bottom:.7rem;font:500 .62rem/1.4 var(--mono);letter-spacing:.12em}
.elections-preview-bottom strong{display:block;font:700 clamp(2.1rem,4vw,4.5rem)/.98 var(--display);letter-spacing:-.055em}
.elections-preview-bottom em{font-style:normal;color:#f5a623}
.preview-caption{position:relative;z-index:2;display:block;margin:0 -1.4rem;padding:.8rem 1.4rem;border-top:1px solid #6f655b;background:#0a0a0a;color:#f7f4ef;font:500 .62rem/1.4 var(--mono);letter-spacing:.08em;text-transform:uppercase}
.data-preview{justify-content:initial;padding:0;background:#eff1f5;color:#0a0a0a}
.data-cover-top,.data-cover-bottom{position:relative;z-index:2;display:flex;align-items:start;justify-content:space-between;gap:1.2rem;padding:1.35rem 5%;font:600 .58rem/1.5 var(--mono);letter-spacing:.12em}
.data-cover-top{border-bottom:1px solid #cbd0d6}
.data-cover-brand{font:800 1.2rem/.95 var(--display);letter-spacing:-.04em}
.data-cover-brand b{display:block;margin-top:.45rem;font:600 .52rem/1 var(--mono);letter-spacing:.32em}
.data-cover-top>span:last-child{text-align:right;color:#635d52}
.data-cover-centre{position:relative;z-index:2;display:grid;grid-template-columns:auto 1fr;align-content:center;column-gap:1.2rem;flex:1;padding:2rem 5% 5rem}
.data-cover-glyph{grid-row:span 2;position:relative;display:block;width:clamp(54px,7vw,92px);aspect-ratio:1;margin-top:.4rem;border-radius:17%;background:#f5a623;box-shadow:0 7px 18px #0a0a0a18}
.data-cover-glyph i{position:absolute;right:18%;height:10%;background:#1e47b8}.data-cover-glyph i:nth-child(1){top:25%;width:43%}.data-cover-glyph i:nth-child(2){top:43%;right:29%;width:43%}.data-cover-glyph i:nth-child(3){top:61%;right:40%;width:43%}
.data-cover-centre>strong{font:700 clamp(5.4rem,13vw,12rem)/.78 var(--display);letter-spacing:-.09em}
.data-cover-stop{color:#f5a623}
.data-cover-deck{align-self:end;margin-top:2.2rem;color:#49515c;font:400 clamp(1.05rem,2.1vw,1.75rem)/1.25 var(--body);letter-spacing:-.02em}
.data-cover-line{position:absolute;z-index:1;left:2%;right:0;bottom:18%;width:96%;height:24%;overflow:visible}.data-cover-line path{fill:none;stroke:#1e47b8;stroke-width:3;vector-effect:non-scaling-stroke;stroke-linejoin:round}.data-cover-line circle{fill:#f5a623;stroke:#0a0a0a;stroke-width:2;vector-effect:non-scaling-stroke}
.data-cover-bottom{align-items:end;margin-top:auto;border-top:1px solid #cbd0d6;background:#eff1f5}.data-cover-bottom>span:first-child{max-width:36ch;color:#555d67}.data-cover-bottom>span:last-child{white-space:nowrap;text-align:right;color:#1e47b8}
@media(max-width:700px){.data-cover-top,.data-cover-bottom{padding:1.1rem 5%}.data-cover-top>span:last-child{max-width:16ch}.data-cover-centre{column-gap:.8rem;padding:3.2rem 5% 6rem}.data-cover-glyph{width:clamp(48px,15vw,70px)}.data-cover-centre>strong{font-size:clamp(5rem,25vw,8rem)}.data-cover-deck{margin-top:1.2rem;font-size:clamp(.92rem,4.8vw,1.3rem)}.data-cover-line{bottom:18%;height:19%}.data-cover-bottom{font-size:.5rem;gap:.6rem}}
@media(max-width:390px){.data-cover-centre>strong{font-size:4.7rem}.data-cover-glyph{width:46px}.data-cover-bottom{flex-direction:column;align-items:start}.data-cover-bottom>span:last-child{text-align:left}}
@media(max-width:900px){.product-preview{min-height:460px}}
@media(max-width:700px){.product-preview{min-height:390px}.elections-preview{min-height:460px}.preview-bottom{display:block}.preview-bottom small{display:block;max-width:none;text-align:left;margin-top:1.3rem}.preview-bottom>span{font-size:clamp(2.2rem,9vw,3.7rem)}}
@media(max-width:700px){.elections-map{inset:3.5rem -15% 5rem}.elections-preview-top span{max-width:11ch;text-align:right}.elections-preview-bottom strong{font-size:clamp(2.15rem,8vw,3.7rem)}}
@media(prefers-reduced-motion:reduce){.elections-map svg path{transition:none}}
.data-live{display:flex;flex:1;flex-direction:column;min-height:0;gap:.9rem;padding:1.1rem 5% 1.3rem}
.data-live[hidden]{display:none}
.data-live img{display:block;flex:1;min-height:0;width:100%;object-fit:contain;background:#fff;border:1px solid #cbd0d6}
.data-live-caption{display:block}
.data-live-caption small{display:block;margin-bottom:.35rem;color:#1e47b8;font:600 .58rem/1.4 var(--mono);letter-spacing:.12em;text-transform:uppercase}
.data-live-caption strong{display:block;font:700 clamp(1.3rem,2.4vw,2.2rem)/1.05 var(--display);letter-spacing:-.04em}
.data-preview.is-live .data-cover-centre,.data-preview.is-live .data-cover-line{display:none}
