/* Aha! Concepts draft v5. Light, black type, one orange. */
:root{
  --bg:#faf9f6; --ink:#000; --muted:#5d5a54; --line:#e3e0d8; --soft:#efede7;
  --accent:#ff571a; --max:1360px; --g:clamp(16px,3.5vw,48px); --head:72px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:17px/1.55 "Inter",system-ui,-apple-system,"Segoe UI",sans-serif;-webkit-font-smoothing:antialiased}
img,video{display:block;max-width:100%}
a{color:inherit}
p{margin:0 0 1em}
h1,h2,h3{margin:0;font-weight:inherit}
button{font:inherit;color:inherit}
:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:-999px;top:8px;z-index:100;background:var(--ink);color:#fff;padding:.6em 1em;border-radius:8px}
.skip:focus{left:8px}

.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--g)}
.wrap-wide{max-width:1680px;margin:0 auto;padding:0 var(--g)}
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,5vw,80px);align-items:start}

/* type */
.display{font-family:"Inter Tight","Inter",sans-serif;font-weight:900;text-transform:uppercase;letter-spacing:-.05em;word-spacing:.12em;line-height:.86}
.serif{font-family:"DM Serif Display",Georgia,serif;font-style:normal;font-weight:400;text-transform:none;letter-spacing:-.025em;font-variation-settings:"opsz" 144}
.display .serif{color:var(--accent);padding-right:.04em}
.h2{font-size:clamp(44px,7.4vw,118px)}
.h3{font-size:clamp(28px,3.2vw,46px);margin-bottom:.45em}
.lede{font-size:clamp(18px,1.5vw,22px);line-height:1.45;max-width:38ch}
.kicker{font-size:13.5px;font-weight:600;color:var(--muted);margin:0 0 .5em}
.fine{font-size:13px;color:var(--muted)}
.todo{font-size:14px;font-style:normal;color:var(--muted)}
.center{text-align:center;margin-top:12px}
.arrow{display:inline-flex;gap:.4em;font-weight:600;text-decoration:none;border-bottom:2px solid var(--ink);padding-bottom:2px}
.arrow::after{content:"→";transition:transform .2s}
.arrow:hover::after{transform:translateX(4px)}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:.6em;background:var(--ink);color:#fff;border:1.5px solid var(--ink);border-radius:999px;padding:.95em 1.5em;font-weight:600;font-size:15px;text-decoration:none;cursor:pointer;transition:background .2s,color .2s,border-color .2s}
.btn:hover{background:var(--accent);border-color:var(--accent);color:#000}
.btn.ghost{background:transparent;color:var(--ink)}
.btn.ghost:hover{background:var(--ink);color:#fff;border-color:var(--ink)}
.dot{width:9px;height:9px;border-radius:50%;background:var(--accent);flex:none}
.btn:hover .dot{background:#000}
.link-btn{background:none;border:0;padding:0;cursor:pointer;font-weight:600;text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:2px;text-decoration-color:var(--accent)}
.link-btn::before{content:"▶";font-size:.75em;margin-right:.45em;color:var(--accent)}

/* header */
header.site{position:sticky;top:0;z-index:50;background:var(--bg);border-bottom:1px solid var(--line)}
header.site .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:var(--head)}
.logo{display:block;color:var(--ink)}
.logo svg.mark{height:48px;width:auto;display:block}
nav ul{display:flex;align-items:center;gap:clamp(14px,2.2vw,30px);list-style:none;margin:0;padding:0}
nav a{text-decoration:none;font-size:15px;font-weight:500}
nav a[aria-current]{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:6px;text-decoration-color:var(--accent)}
nav .pill{background:var(--ink);color:#fff;border-radius:999px;padding:.6em 1.1em;font-weight:600}
nav .pill:hover{background:var(--accent);color:#000}

/* hero A: type-led, footage lives inside the aha! mark */
.hero-a .wrap{min-height:calc(86svh - var(--hh,72px));display:flex;flex-direction:column;justify-content:center;padding-top:clamp(28px,5vw,64px);padding-bottom:28px}
.hero-type{font-size:clamp(52px,14.4vw,218px)}
.hero-type .ln{display:block;white-space:nowrap}
.slot{display:inline-block;vertical-align:-.06em;height:1em;width:calc(1em * 103 / 98);background:#000;
  -webkit-mask:url(/aha_mark.svg) center/contain no-repeat;mask:url(/aha_mark.svg) center/contain no-repeat}
.slot video{width:100%;height:100%;object-fit:cover}
.hero-foot{display:grid;grid-template-columns:1fr auto;gap:24px 48px;align-items:end;margin-top:clamp(28px,4vw,56px);padding-top:22px;border-top:1.5px solid var(--ink)}
.hero-sub{font-size:clamp(17px,1.35vw,20px);max-width:46ch;margin:0}
.actions{display:flex;flex-wrap:wrap;gap:10px}
.credit{font-size:12.5px;color:var(--muted);margin:14px 0 0;text-align:right}

/* hero B: frame-led */
.hero-b{padding:clamp(28px,4vw,56px) 0 0}
.hero-b-top{font-size:clamp(40px,12.2vw,184px);white-space:nowrap;position:relative;z-index:2;margin-bottom:-.1em}
.frame{position:relative;aspect-ratio:2.39/1;background:#000;border-radius:4px;overflow:hidden}
.frame video{width:100%;height:100%;object-fit:cover}
.frame-play{position:absolute;left:clamp(12px,2vw,24px);bottom:clamp(12px,2vw,24px);display:inline-flex;align-items:center;gap:.6em;background:#fff;color:#000;border:0;border-radius:999px;padding:.8em 1.3em;font-weight:600;font-size:15px;cursor:pointer}
.frame-play:hover{background:var(--accent)}
.frame-cap{position:absolute;right:clamp(12px,2vw,24px);top:clamp(12px,2vw,24px);margin:0;color:#fff;font-size:13px;font-weight:500;text-shadow:0 1px 8px #0008}
.hero-b-word{font-size:clamp(54px,12vw,190px);line-height:.9;color:var(--accent);text-align:right;margin:-.42em 0 0;position:relative;z-index:2}
.hero-b .hero-foot{margin-top:24px}

/* sections */
section{padding:clamp(64px,9vw,132px) 0}
.sec-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap;margin-bottom:clamp(28px,4vw,48px)}

/* media */
.media{position:relative;overflow:hidden;border-radius:4px;background:#000}
.media img,.media video{width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.2,.7,.2,1)}
.r169{aspect-ratio:16/9}.r239{aspect-ratio:2.39/1}.r45{aspect-ratio:4/5}
.missing{background:var(--soft);border:1px dashed #b9b4a9;display:grid;place-items:center;color:var(--muted);font-size:14px;text-align:center;padding:16px}
.tile-media{display:block}
.tile-media:hover img,.tile-media:hover video{transform:scale(1.03)}

/* work mosaic (A) */
.work{padding-top:clamp(32px,5vw,72px)}
.mosaic{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(40px,5vw,72px) clamp(16px,2vw,28px)}
.tile{grid-column:span 12}
.tile.half{grid-column:span 6}
.tile.third{grid-column:span 4}
.tile-copy{padding-top:16px}
.tile h3{font-family:"Inter Tight",sans-serif;font-weight:800;font-size:clamp(22px,2.1vw,30px);letter-spacing:-.025em;line-height:1.05;margin-bottom:.35em}
.tile h3 a{text-decoration:none}
.tile-copy>p:not(.kicker):not(.tile-links){color:var(--muted);max-width:52ch}
.tile-links{display:flex;gap:20px;align-items:center;font-size:15px;margin:0}
.tile-links a{font-weight:600;text-underline-offset:4px}
.soon{font-size:13.5px;font-style:normal;color:var(--muted)}
.tile.xl .tile-copy{display:grid;grid-template-columns:1.1fr 1fr;gap:8px 48px;align-items:start;padding-top:20px}
.tile.xl .kicker{grid-column:1/-1}
.tile.xl h3{font-family:"Inter Tight",sans-serif;font-weight:900;text-transform:uppercase;letter-spacing:-.05em;font-size:clamp(48px,8vw,128px);line-height:.85;grid-row:span 2}

/* work rows (B) */
.rows{display:grid;gap:clamp(48px,7vw,96px)}
.row-copy{display:grid;grid-template-columns:64px minmax(0,1fr) minmax(0,1fr);gap:4px 32px;padding-top:18px;align-items:start}
.row-n{font-family:"Inter Tight",sans-serif;font-weight:800;color:var(--accent);font-size:18px}
.row h3{font-family:"Inter Tight",sans-serif;font-weight:900;text-transform:uppercase;letter-spacing:-.045em;font-size:clamp(34px,4.6vw,72px);line-height:.88;grid-row:span 2}
.row h3 a{text-decoration:none}
.row-copy p{grid-column:3;margin:0 0 .4em;color:var(--muted)}

/* clients */
.clients{padding:clamp(36px,5vw,56px) 0;border-block:1px solid var(--line)}
.clients ul{list-style:none;margin:0 0 10px;padding:0;display:flex;flex-wrap:wrap;gap:10px clamp(24px,3.4vw,52px)}
.clients li{font-family:"Inter Tight",sans-serif;font-weight:800;font-size:clamp(20px,2.4vw,34px);letter-spacing:-.035em}

/* process: from idea to final mix */
.process-head{display:grid;grid-template-columns:1.4fr 1fr;gap:24px 48px;align-items:end;margin-bottom:clamp(28px,4vw,48px)}
.process-head .lede{margin:0}
.tabs{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}
.step{background:none;border:0;border-top:2px solid var(--line);padding:14px 0 6px;text-align:left;cursor:pointer;color:var(--muted);font-family:"Inter Tight",sans-serif;font-weight:800;font-size:clamp(16px,1.6vw,22px);letter-spacing:-.02em;transition:color .2s,border-color .2s}
.step span{display:block;font-size:13px;font-weight:700;margin-bottom:4px}
.step:hover{color:var(--ink)}
.step[aria-selected="true"]{color:var(--ink);border-top-color:var(--ink)}
.step[aria-selected="true"] span{color:var(--accent)}
.progress{height:3px;background:var(--line);margin-top:10px}
.progress span{display:block;height:100%;width:20%;background:var(--accent);transition:width .45s cubic-bezier(.2,.7,.2,1)}
.panels{margin-top:clamp(24px,3vw,40px)}
.panel{display:grid;grid-template-columns:1.35fr 1fr;gap:clamp(24px,4vw,64px);align-items:center;margin-bottom:56px}
.js .panel{margin-bottom:0}
.js .panel[hidden]{display:none}
.panel-copy h3{font-family:"Inter Tight",sans-serif;font-weight:900;text-transform:uppercase;letter-spacing:-.045em;font-size:clamp(34px,3.8vw,58px);line-height:.9;margin-bottom:.45em}
.panel-copy .n{color:var(--accent)}
.general{font-size:clamp(17px,1.35vw,20px)}
.on-film{border-left:3px solid var(--accent);padding-left:16px;color:var(--muted);margin:0}
.on-film b{display:block;color:var(--ink);font-size:13.5px;margin-bottom:4px}
.artifact{margin:0}
.artifact img{width:100%;border-radius:4px;background:#000;max-height:520px;object-fit:contain}
.artifact figcaption{font-size:14px;color:var(--muted);margin-top:10px;display:flex;gap:16px;flex-wrap:wrap}
.cut{background:#000;color:#fff;border-radius:4px;padding:clamp(24px,4vw,48px);aspect-ratio:16/10;display:flex;flex-direction:column;justify-content:center}
.cut .kicker{color:#aaa}
.bar{position:relative;height:56px;margin:8px 0}
.bar span{position:absolute;left:0;top:0;bottom:0;background:#333;border-radius:3px}
.bar.final span{background:var(--accent)}
.bar b{position:relative;z-index:1;display:inline-block;line-height:56px;padding-left:16px;font-family:"Inter Tight",sans-serif;font-weight:900;font-size:28px;letter-spacing:-.03em}
.bar i{position:absolute;right:12px;top:0;line-height:56px;font-style:normal;font-size:13px;color:#bbb}
.bar.final b{color:#000}
.cut-note{margin:18px 0 0;color:#ccc;font-family:"DM Serif Display",serif;font-style:normal;font-size:clamp(18px,1.6vw,22px)}

/* capabilities */
.caps .h2{margin-bottom:clamp(24px,3vw,40px)}
.cap-list{margin:0 0 32px}
.cap-list div{display:grid;grid-template-columns:1fr 1.25fr;gap:8px 48px;padding:22px 0;border-top:1px solid var(--line)}
.cap-list div:last-child{border-bottom:1px solid var(--line)}
.cap-list dt{font-family:"Inter Tight",sans-serif;font-weight:800;font-size:clamp(22px,2.4vw,34px);letter-spacing:-.03em;line-height:1.05}
.cap-list dd{margin:0;color:var(--muted);font-size:17px;align-self:center}
.cap-list dd a{color:var(--ink);font-weight:600}

/* studio */
.studio .split{align-items:center}
.studio .h2{margin-bottom:.35em}

/* invite + footer: the one black moment */
.invite{background:#000;color:#fff}
.invite-h{font-size:clamp(56px,11vw,176px);margin-bottom:clamp(32px,5vw,64px)}
.invite .lede{color:#ddd}
.invite .fine{color:#999}
form{display:grid;gap:16px;max-width:600px}
label{display:grid;gap:6px;font-weight:600;font-size:14px}
input,textarea,select{font:inherit;font-size:16px;font-weight:400;padding:.85em 1em;border-radius:6px;border:1px solid #3a3a3a;background:#111;color:#fff}
textarea{min-height:140px;resize:vertical}
.invite .btn{background:var(--accent);border-color:var(--accent);color:#000;justify-self:start}
.invite .btn:hover{background:#fff;border-color:#fff}
.big-link{font-family:"Inter Tight",sans-serif;font-weight:800;font-size:clamp(22px,2.8vw,40px);letter-spacing:-.03em;text-decoration:underline;text-decoration-color:var(--accent);text-underline-offset:8px;text-decoration-thickness:3px;word-break:break-word}

footer.site{background:#000;color:#fff;padding:0 0 32px;border-top:1px solid #222}
.foot-big{font-size:clamp(96px,24vw,380px);line-height:.8;padding-top:32px;color:#fff}
.foot-cols{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin:32px 0 24px;font-size:15px;color:#ccc}
.foot-cols b{display:block;color:#fff;margin-bottom:6px}
.foot-cols a{text-decoration:none;margin-right:12px;display:inline-block}
.foot-cols a:hover{text-decoration:underline;text-decoration-color:var(--accent)}
footer .fine{color:#888;margin:0}

/* inner pages */
.page-hero{padding:clamp(48px,8vw,110px) 0 clamp(16px,3vw,32px)}
.page-h{font-size:clamp(56px,12vw,196px)}
.page-h.small{font-size:clamp(40px,7vw,108px)}
.page-hero .lede{margin-top:24px}
.back{display:inline-block;margin-bottom:24px;font-weight:600;text-decoration:none}
.back::before{content:"← "}
.case-hero{padding:clamp(40px,6vw,88px) 0 0}
.case-sub{font-size:clamp(22px,2.5vw,34px);line-height:1.2;max-width:32ch;margin:.5em 0 clamp(28px,4vw,48px)}
.film{border-radius:4px;overflow:hidden;background:#000}
.film video{width:100%;aspect-ratio:16/9}
.facts{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;border-top:1.5px solid var(--ink);padding-top:20px}
section:has(> .facts){padding:clamp(40px,5vw,64px) 0 0}
.case-body{padding:clamp(40px,6vw,80px) 0}
.rules p{margin:0 0 18px}
.gallery{padding:clamp(24px,3vw,40px) 0}
.stills{display:grid;grid-template-columns:1fr 1fr;gap:clamp(8px,1vw,14px)}
.stills img{width:100%;aspect-ratio:2.39/1;object-fit:cover;border-radius:4px}
.ai-table{width:100%;border-collapse:collapse;font-size:15.5px}
.ai-table th,.ai-table td{text-align:left;padding:12px 10px 12px 0;border-bottom:1px solid var(--line);vertical-align:top}
.ai-table thead th{font-size:13px;color:var(--muted);font-weight:600}
.ai-table td:nth-child(2){color:var(--muted);white-space:nowrap}
.credits span{display:inline-block;min-width:112px;color:var(--muted)}
.related{border-top:1px solid var(--line)}
.cap{padding:clamp(40px,6vw,72px) 0;border-top:1px solid var(--line)}
.cap ul{list-style:none;margin:0;padding:0;display:grid;gap:14px;font-size:17px}
.cap li b{font-weight:600}
.principles{list-style:none;margin:0;padding:0}
.principles li{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr) minmax(0,.8fr);gap:8px 32px;align-items:baseline;padding:28px 0;border-top:1px solid var(--line)}
.principles b{font-family:"Inter Tight",sans-serif;font-weight:900;text-transform:uppercase;letter-spacing:-.045em;font-size:clamp(34px,4.4vw,64px);line-height:.9}
.principles span{font-size:18px}
.principles i{color:var(--muted);font-size:14px}

/* reel dialog */
dialog{border:0;padding:0;border-radius:8px;background:#000;color:#fff;width:min(1180px,94vw);overflow:hidden}
dialog::backdrop{background:#000d}
dialog video{width:100%;max-height:78vh;background:#000}
.reel-close{position:absolute;right:12px;top:12px;z-index:2;background:#fff;color:#000;border:0;border-radius:999px;padding:.5em 1em;font-weight:600;cursor:pointer}
.reel-cap{margin:0;padding:12px 16px;font-size:14px;color:#bbb}
.reel-cap a{color:var(--accent);margin-left:8px}

/* review switcher (draft only) */
.review-bar{position:fixed;left:16px;bottom:16px;z-index:60;display:flex;align-items:center;gap:6px;background:#000;color:#aaa;font-size:13px;border-radius:999px;padding:6px 6px 6px 14px;box-shadow:0 6px 24px #0003}
.review-bar a{color:#fff;text-decoration:none;padding:.45em .9em;border-radius:999px}
.review-bar a.on{background:var(--accent);color:#000;font-weight:600}

/* responsive */
@media (max-width:980px){
  .tile.third{grid-column:span 6}
  .process-head{grid-template-columns:1fr}
  .panel{grid-template-columns:1fr}
}
@media (max-width:760px){
  :root{--head:auto}
  header.site .wrap{flex-wrap:wrap;padding-top:10px;padding-bottom:10px;row-gap:8px}
  .logo svg.mark{height:40px}
  nav{width:100%}
  nav ul{gap:16px;flex-wrap:wrap}
  header.site .wrap{position:relative}
  nav li:last-child{position:absolute;right:var(--g);top:12px}
  nav a{font-size:14px}
  .split,.foot-cols,.facts{grid-template-columns:1fr}
  .hero-a .wrap{min-height:auto;padding-top:40px}
  .hero-foot{grid-template-columns:1fr}
  .credit{text-align:left}
  .tile.half,.tile.third{grid-column:span 12}
  .tile.xl .tile-copy{grid-template-columns:1fr}
  .row-copy{grid-template-columns:40px 1fr}
  .row-copy p{grid-column:2}
  .row h3{grid-row:auto}
  .tabs{display:flex;overflow-x:auto;gap:16px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .step{flex:0 0 auto;min-width:118px}
  .cap-list div{grid-template-columns:1fr}
  .principles li{grid-template-columns:1fr}
  .stills{grid-template-columns:1fr}
  .review-bar{left:50%;transform:translateX(-50%)}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{transition:none!important;animation:none!important}
}

/* hero A v2: the big aha! stencil on black */
.hero-a{background:#000;color:#fff;padding:0}
.hero-a .wrap{justify-content:center;padding-top:clamp(28px,4vw,48px)}
.hero-a .hero-type{font-size:clamp(40px,8.6vw,132px);text-align:center}
.big-mark{display:block;margin:.12em auto 0;height:clamp(240px,52svh,620px);max-width:100%;aspect-ratio:103/98;
  -webkit-mask:url(/aha_mark.svg) center/contain no-repeat;mask:url(/aha_mark.svg) center/contain no-repeat;background:#111}
.big-mark video{width:100%;height:100%;object-fit:cover}
.hero-a .hero-foot{border-top-color:#ffffff40}
.hero-a .btn{background:var(--accent);border-color:var(--accent);color:#000}
.hero-a .btn:hover{background:#fff;border-color:#fff}
.hero-a .btn:hover .dot{background:var(--accent)}
.hero-a .btn .dot{background:#000}
.hero-a .btn.ghost{background:transparent;color:#fff;border-color:#fff}
.hero-a .btn.ghost:hover{background:#fff;color:#000}
.hero-a .credit{color:#888}
@media (max-width:760px){.big-mark{height:auto;width:min(86vw,420px)}}

/* v6: review fixes. Calmer rhythm, shorter hero, archive list */
section{padding:clamp(56px,7vw,104px) 0}
.h2{font-size:clamp(34px,4.8vw,72px)}
.h2.big{font-size:clamp(44px,7.4vw,118px)}
.hero-a .wrap{min-height:0;padding-top:clamp(24px,3vw,40px);padding-bottom:clamp(24px,3vw,40px)}
.hero-a .hero-type{font-size:clamp(36px,6.4vw,100px)}
.big-mark{height:clamp(200px,42svh,470px)}
.hero-a .hero-foot{margin-top:clamp(20px,2.5vw,32px)}
.work{padding-top:clamp(40px,5vw,72px)}
.invite-h{font-size:clamp(34px,5.4vw,84px);max-width:16ch;margin-bottom:clamp(28px,4vw,48px)}
.contact-page{padding-top:clamp(32px,4vw,56px)}
.studio .h2{font-size:clamp(34px,4.4vw,64px)}

.archive-wrap{margin-top:clamp(48px,6vw,80px)}
.archive{list-style:none;margin:0;padding:0;border-top:1.5px solid var(--ink)}
.archive a{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.4fr) minmax(0,.7fr) 24px;gap:16px;align-items:baseline;padding:18px 4px;border-bottom:1px solid var(--line);text-decoration:none;transition:background .2s,padding .2s}
.archive a:hover{background:var(--soft);padding-left:14px}
.a-client{font-size:14px;color:var(--muted);font-weight:600}
.a-title{font-family:"Inter Tight",sans-serif;font-weight:800;font-size:clamp(19px,1.8vw,26px);letter-spacing:-.025em;line-height:1.1}
.a-kind{font-size:14px;color:var(--muted)}
.a-go{color:var(--accent);font-weight:700;text-align:right}
@media (max-width:760px){
  .archive a{grid-template-columns:1fr 24px;gap:2px 12px}
  .a-client,.a-kind{grid-column:1}
  .a-title{grid-column:1;grid-row:2}
  .a-go{grid-column:2;grid-row:1/4;align-self:center}
  .review-bar{display:none}
}
/* hero line goes quiet so the mark carries the headline */
.hero-a .hero-type .ln{font-family:"DM Serif Display",Georgia,serif;font-style:normal;font-weight:400;text-transform:none;letter-spacing:-.01em;word-spacing:normal;font-size:clamp(22px,2.4vw,36px);line-height:1.1;color:#ddd;font-variation-settings:"opsz" 144}
.big-mark{height:clamp(220px,50svh,560px);margin-top:.35em}

/* intro: first section of the homepage, white with the mark full of footage (Promise-style) */
.intro{height:100svh;background:#fff;display:grid;place-items:center;padding:0}
.intro-mark{height:min(64svh,74vw);margin:0;background:#000}

/* black nav. On the homepage it waits off-screen and drops in once you scroll */
header.site{background:#000;border-bottom-color:#000}
.logo{color:#fff}
nav a{color:#fff}
nav .pill{background:#fff;color:#000}
nav .pill:hover{background:var(--accent);color:#000}
.js .home header.site{position:fixed;left:0;right:0;top:0;transform:translateY(-100%);transition:transform .45s cubic-bezier(.2,.7,.2,1)}
.js .home header.site.on,.js .home header.site:focus-within{transform:none}
.js .home .hero-a .wrap{min-height:100svh}

/* "who we are": the promise after the intro (orange panel + film, on black) */
.promise{background:#000;padding:clamp(16px,2.4vw,32px)}
.promise-grid{display:grid;grid-template-columns:1fr 1fr;min-height:min(86svh,900px)}
.promise-panel{background:var(--accent);color:#000;display:flex;flex-direction:column;justify-content:center;padding:clamp(28px,6vw,96px)}
.promise-h{font-size:clamp(48px,7vw,112px);margin-bottom:.35em}
.promise-text{font-size:clamp(18px,1.6vw,24px);line-height:1.4;max-width:30ch;margin:0 0 1.6em}
.promise-links{display:flex;flex-wrap:wrap;gap:14px 28px;align-items:center;margin:0}
.promise-link{display:inline-flex;align-items:center;gap:.6em;background:#000;color:#fff;border-radius:999px;padding:.95em 1.5em;font-weight:600;font-size:15px;text-decoration:none;transition:background .2s,color .2s}
.promise-link:hover{background:#fff;color:#000}
.promise-link span{font-size:1.1em}
.link-btn.dark{color:#000;text-decoration-color:#000}
.link-btn.dark::before{color:#000}
.promise-media{position:relative;overflow:hidden;background:#111}
.promise-media video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
@media (max-width:760px){
  .promise-grid{grid-template-columns:1fr;min-height:0}
  .promise-media{aspect-ratio:4/5}
}

/* ===== v12: Promise-style scroll language ===== */
/* intro: mark zooms with scroll, statement lights up word by word, then a line draws down */
.intro{height:auto;min-height:100svh;display:block;padding:0 var(--g) clamp(40px,6vw,80px);overflow:hidden;background:#fff}
.intro-stage{height:100svh;display:grid;place-items:center}
.intro-mark{will-change:transform;transform-origin:50% 45%}
.intro-statement{max-width:24ch;margin:clamp(-40px,-4vw,-10px) auto 0;text-align:center;font-family:"Inter Tight",sans-serif;font-weight:700;
  font-size:clamp(28px,3.6vw,56px);line-height:1.12;letter-spacing:-.025em;color:#000}
.intro-statement .w{color:#c9c6bf;transition:color .25s}
.intro-statement .w.lit{color:#000}
.intro-line{display:block;width:1.5px;height:clamp(120px,22vh,240px);background:#000;margin:clamp(40px,6vw,72px) auto 0;transform-origin:top;transform:scaleY(var(--line,1))}

/* who we are: rows pin and the next one slides over (black frame like a screen) */
.promise{padding:clamp(16px,2.4vw,32px)}
.stack-row{position:sticky;top:calc(var(--hh,72px) + clamp(16px,2.4vw,32px));height:calc(100svh - var(--hh,72px) - 2 * clamp(16px,2.4vw,32px));min-height:0}
.stack-row + .stack-row{margin-top:clamp(16px,2.4vw,32px)}
.promise-grid.flip{grid-template-columns:1fr 1fr}
.promise-panel.light{background:#fff;color:#000}
.promise-panel.light .kicker{color:var(--muted)}
.promise-panel.light .promise-h{font-size:clamp(48px,7vw,112px)}
button.promise-link{border:0;cursor:pointer;font:inherit;font-weight:600;font-size:15px}

/* footer bookend: MAKE THEM SAY + the mark */
.foot-big{font-size:clamp(40px,9.4vw,150px);display:flex;align-items:center;flex-wrap:wrap;gap:.18em;padding-top:48px}
.foot-mark{display:inline-block;height:1.25em;aspect-ratio:103/98;background:#fff;
  -webkit-mask:url(/aha_mark.svg) center/contain no-repeat;mask:url(/aha_mark.svg) center/contain no-repeat;
  transform:scale(var(--fm,1));transform-origin:left center}

/* entrances */
.js .rv{opacity:0;transform:translateY(32px);transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1);transition-delay:calc(var(--d,0) * 70ms)}
.js .rv.in{opacity:1;transform:none}
.clients ul{will-change:transform;transform:translateX(var(--drift,0))}
.clients{overflow:hidden}
.invite{clip-path:inset(0 var(--cx,0) round var(--cr,0))}
.tile-media .media,.media.wipe{clip-path:inset(var(--wy,0) var(--wx,0))}

@media (max-width:760px){
  .stack-row{position:relative;top:auto;height:auto}
  .promise-grid.flip .promise-media{order:-1}
}
@media (prefers-reduced-motion:reduce){
  .intro-statement .w{color:#000}
  .js .rv{opacity:1;transform:none}
}
.intro-mark{transform-origin:50% 100%}
.intro-stage{position:relative;z-index:0}
.intro-statement{position:relative;z-index:1;margin-top:clamp(24px,4vw,56px)}
.foot-big{flex-wrap:nowrap;font-size:clamp(30px,8.2vw,132px);white-space:nowrap}
.foot-mark{height:1.2em;vertical-align:middle}

/* work: image-led, every tile plays its film */
.tile-frame{position:relative}
.play-chip{position:absolute;left:clamp(10px,1.4vw,18px);bottom:clamp(10px,1.4vw,18px);width:clamp(44px,4vw,60px);height:clamp(44px,4vw,60px);border-radius:50%;border:0;background:#fff;color:#000;font-size:clamp(14px,1.2vw,18px);padding-left:3px;cursor:pointer;box-shadow:0 6px 24px #0004;transition:transform .2s,background .2s}
.play-chip:hover{transform:scale(1.08);background:var(--accent)}
.tile .tile-copy>p:not(.kicker):not(.tile-links){font-size:15.5px}
.tile.xl .tile-copy{grid-template-columns:1.1fr 1fr}
.tile.xl h3{font-size:clamp(40px,6vw,96px)}
.film.embed{position:relative;aspect-ratio:16/9;background:#000}
.film.embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.embed-slot{display:none;aspect-ratio:16/9;width:100%}
.embed-slot iframe{width:100%;height:100%;border:0;display:block}
dialog.embed .embed-slot{display:block}
dialog.embed > video{display:none}

/* headshots: two drifting rows of real portraits */
.headshots{overflow:hidden;padding-bottom:clamp(56px,7vw,104px)}
.headshots .sec-head .lede{margin:.6em 0 0}
.hs-rows{display:grid;gap:clamp(8px,1vw,14px);margin-top:clamp(8px,2vw,24px)}
.hs-row{display:flex;gap:clamp(8px,1vw,14px);width:max-content;will-change:transform;transform:translateX(var(--hx,0))}
.hs-row[data-dir="-1"]{margin-left:-12vw}
.hs-row img{width:clamp(150px,15vw,250px);aspect-ratio:4/5;object-fit:cover;border-radius:4px;background:#e9e7e2}
.headshots.compact{padding:clamp(24px,4vw,48px) 0}

/* colour rhythm: orange and black slabs slide over the light sections */
.slab{position:relative;z-index:1;border-radius:clamp(20px,2.4vw,36px) clamp(20px,2.4vw,36px) 0 0;margin-top:calc(-1 * clamp(20px,2.4vw,36px))}
.slab + section:not(.slab){position:relative;z-index:0}
.tone-orange{background:var(--accent);color:#000}
.tone-orange .lede,.tone-orange .kicker,.tone-orange .todo,.tone-orange .cap-list dd{color:#000}
.tone-orange .cap-list div{border-color:#0003}
.tone-orange .cap-list dd a{color:#000;text-decoration-color:#000}
.tone-orange .arrow{border-bottom-color:#000}
.tone-orange .hs-row img{box-shadow:0 10px 30px #0003}
.tone-black{background:#000;color:#fff;border-block:0}
.tone-black .kicker,.tone-black .todo{color:#8a8a8a}
.tone-black li{color:#fff}
.clients.tone-black{padding:clamp(48px,6vw,84px) 0}
.caps.tone-orange .h2{color:#000}

/* orange arrow under the logo: draws itself with scroll, head bobs */
.intro-arrow{display:block;width:28px;height:clamp(140px,22vh,220px);margin:clamp(24px,4vw,48px) auto 0;color:var(--accent)}
.intro-arrow svg{width:100%;height:100%;overflow:visible}
.intro-arrow path{fill:none;stroke:currentColor;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.intro-arrow .shaft{stroke-dasharray:1;stroke-dashoffset:calc(1 - var(--line,1))}
.intro-arrow .head{opacity:var(--head,1);animation:bob 1.6s ease-in-out infinite}
.intro-arrow:hover{color:#000}
@keyframes bob{50%{transform:translateY(6px)}}

/* orange slabs rise into place as they arrive */
.rise{transform:translateY(var(--ry,0)) scale(var(--rs,1));transform-origin:50% 0;will-change:transform}
@media (prefers-reduced-motion:reduce){.intro-arrow .head{animation:none}.rise{transform:none}}

/* client logos on the black band */
.clients ul.logos{display:flex;flex-wrap:nowrap;align-items:center;gap:clamp(36px,5vw,84px);margin:8px 0 0;width:max-content}
.logos li{flex:none;opacity:.92;transition:opacity .2s}
.logos li:hover{opacity:1}
.logos img{display:block;width:auto}
.logos .wide img{height:clamp(24px,2.6vw,40px)}
.logos .tall img{height:clamp(46px,4.8vw,72px)}
.logos .kimberly-clark img{height:clamp(22px,2.2vw,32px)}
@media (max-width:760px){.clients ul.logos{flex-wrap:wrap;width:auto;gap:28px 36px}}
.intro-arrow{width:44px}
.intro-arrow path{stroke-width:4.5}

/* who we are: the statement is the headline */
.promise-label{font-family:"Inter Tight",sans-serif;font-weight:800;font-size:15px;text-transform:uppercase;letter-spacing:.08em;margin:0 0 1.2em;display:flex;align-items:center;gap:.7em}
.promise-label::before{content:"";width:28px;height:3px;background:#000}
.promise-statement{font-family:"Inter Tight",sans-serif;font-weight:800;font-size:clamp(30px,3.5vw,58px);line-height:1.04;letter-spacing:-.035em;margin:0 0 1.1em;max-width:16ch}
.reveal-words .w{opacity:.22;transition:opacity .35s}
.reveal-words .w.lit{opacity:1}
@media (prefers-reduced-motion:reduce){.reveal-words .w{opacity:1}}

/* footer line: starts small, grows inline as you scroll to the bottom */
.foot-big{font-size:clamp(26px,6.4vw,104px);transform:scale(var(--fb,1));transform-origin:0 100%;will-change:transform}
.foot-mark{transform:scale(var(--fm,1));transform-origin:0 70%}

/* ======================= PLAYBOOK: six playable moves =======================
   Modern platform, progressive enhancement:
   - scroll-driven animations (animation-timeline: view()) for reveals and parallax, off the main thread
   - View Transitions for demo state morphs
   - container queries so each move/demo lays out from its own width
   - @property for an animated focus ring
   - :has() for state-driven styling                                                          */
@property --ring{syntax:"<angle>";inherits:false;initial-value:0deg}

.pb-hero{min-height:calc(100svh - var(--hh,72px));display:grid;align-content:center;background:#fff;padding:clamp(48px,8vw,120px) 0 0}
.pb-title{font-size:clamp(64px,12.5vw,210px);margin:.15em 0 .3em}
.pb-hero .lede{max-width:36ch}
.pb-arrow{margin:clamp(24px,4vw,56px) 0 0}

.pb-rail{position:fixed;left:clamp(10px,1.6vw,26px);top:50%;transform:translate(-140%,-50%);z-index:40;transition:transform .5s cubic-bezier(.2,.7,.2,1)}
.pb-rail.show{transform:translate(0,-50%)}
.pb-rail ol{list-style:none;margin:0;padding:8px;display:grid;gap:4px;background:#000;border-radius:999px}
.pb-rail a{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;text-decoration:none;color:#fff;font-family:"Inter Tight",sans-serif;font-weight:900;position:relative}
.pb-rail a span{position:absolute;left:52px;white-space:nowrap;background:#000;color:#fff;font-size:13px;font-weight:700;padding:.35em .8em;border-radius:999px;opacity:0;transform:translateX(-6px);transition:.2s;pointer-events:none}
.pb-rail a:hover span,.pb-rail a:focus-visible span,.pb-rail a[aria-current] span{opacity:1;transform:none}
.pb-rail a[aria-current]{background:var(--accent);color:#000}

.move{container-type:inline-size;min-height:100svh;display:grid;align-items:center;padding:clamp(88px,10vw,150px) 0;background:var(--bg)}
.move-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(32px,5vw,88px);align-items:center;padding-left:clamp(0px,3vw,48px)}
@container (max-width:900px){.move-grid{grid-template-columns:1fr;padding-left:0}}
.move-n{font-family:"Inter Tight",sans-serif;font-weight:800;font-size:15px;letter-spacing:.06em;margin:0 0 .6em;opacity:.7}
.move-word{font-size:clamp(76px,13cqi,210px);margin:0 0 .12em}
.move-line{font-family:"Inter Tight",sans-serif;font-weight:700;font-size:clamp(22px,2.3vw,34px);line-height:1.12;letter-spacing:-.02em;max-width:22ch;margin:0}

/* proof film */
.film-card{margin:0}
.fc-media{position:relative;overflow:hidden;border-radius:14px;aspect-ratio:4/5;background:#111;box-shadow:0 30px 80px -30px #0006}
.fc-media img{width:100%;height:100%;object-fit:cover}
.fc-media .play-chip{left:auto;right:18px;bottom:18px}
.film-card figcaption{display:flex;gap:.6em;align-items:baseline;flex-wrap:wrap;margin-top:14px;font-weight:600}
.film-card figcaption span{opacity:.6;font-weight:500}
.film-card figcaption a{margin-left:auto;text-underline-offset:4px}

/* demos */
.demo{margin-top:clamp(24px,3vw,40px);container-type:inline-size;max-width:560px}
.demo-screen{position:relative;background:#fff;color:#000;border-radius:18px;padding:clamp(20px,6cqi,34px);min-height:190px;display:grid;align-content:center;
  box-shadow:0 1px 0 #0001,0 24px 60px -28px #0005;transition:background .35s,color .35s}
.demo-screen::before{content:"";position:absolute;inset:0;border-radius:inherit;padding:2.5px;pointer-events:none;
  background:conic-gradient(from var(--ring),transparent 0 62%,var(--accent) 80%,transparent 92%);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;
  opacity:0;transition:opacity .3s;animation:ring 3.2s linear infinite}
.demo:hover .demo-screen::before,.demo:focus-within .demo-screen::before{opacity:1}
@keyframes ring{to{--ring:360deg}}
.demo-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:14px}
.demo>.demo-btn{margin-top:14px}
.demo-btn{display:inline-flex;align-items:center;gap:.6em;border:1.5px solid currentColor;background:#000;color:#fff;border-radius:999px;padding:.75em 1.25em;font-weight:700;font-size:14.5px;cursor:pointer;transition:transform .15s,background .2s,color .2s}
.demo-btn:active{transform:scale(.96)}
.demo-btn.ghost{background:transparent;color:inherit}
.tone-black .demo-btn{background:#fff;color:#000;border-color:#fff}
.tone-black .demo-btn.ghost{background:transparent;color:#fff}
.tone-orange .demo-btn.ghost{border-color:#000}
.demo-note{font-size:14px;opacity:.75;margin:12px 0 0}

/* frame */
.d-facts{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.d-facts li{font-family:ui-monospace,Menlo,monospace;font-size:15px;padding:8px 12px;border:1px dashed #0003;border-radius:8px}
.d-story{font-family:"Inter Tight",sans-serif;font-weight:800;font-size:clamp(20px,6.4cqi,30px);line-height:1.12;letter-spacing:-.02em;margin:0}
.demo[data-state="facts"] .d-story,.demo[data-state="story"] .d-facts{display:none}
/* focus */
.d-line{font-family:"Inter Tight",sans-serif;font-weight:800;letter-spacing:-.025em;line-height:1.08;margin:0;font-size:calc(18px + var(--lvl,0) * 7px);transition:font-size .35s}
.d-slider{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;margin-top:16px;font-weight:600;font-size:14px}
.d-slider input{accent-color:var(--accent);width:100%}
.d-who{min-width:10ch;text-align:right}
/* filter */
.d-sentence{font-size:clamp(17px,5cqi,22px);line-height:1.45;margin:0;font-weight:500}
.d-sentence s{text-decoration:none;transition:color .25s,opacity .3s}
.d-sentence s.strike{text-decoration:line-through;text-decoration-color:var(--accent);text-decoration-thickness:3px;color:#999}
.d-sentence s.gone{display:none}
.d-sentence.done{font-family:"Inter Tight",sans-serif;font-weight:900;font-size:clamp(26px,9cqi,40px);letter-spacing:-.03em;line-height:1.05}
.d-count{font-weight:700;font-size:14px;margin-left:auto}
/* familiar */
.d-echo{display:grid;gap:2px}
.d-echo p{margin:0;font-family:"Inter Tight",sans-serif;font-weight:800;letter-spacing:-.03em;line-height:1;font-size:calc(16px + var(--i,0) * 7px);opacity:calc(.35 + var(--i,0) * .2)}
.d-echo p.stuck{color:var(--accent);opacity:1}
/* fearless */
.d-safe{font-family:Georgia,serif;font-size:18px;color:#8a8a8a;margin:0}
.d-bold{font-family:"Inter Tight",sans-serif;font-weight:900;text-transform:uppercase;letter-spacing:-.04em;line-height:.92;font-size:clamp(28px,9.5cqi,46px);margin:0}
.demo[data-state="safe"] .d-bold,.demo[data-state="bold"] .d-safe{display:none}
.demo:has([aria-checked="true"]) .demo-screen{background:#000;color:#fff}
.demo:has([aria-checked="true"]) .d-bold{color:#fff}
.sw{display:inline-block;width:38px;height:22px;border-radius:999px;background:#ffffff40;position:relative}
.sw i{position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:currentColor;transition:transform .25s}
[aria-checked="true"] .sw{background:var(--accent)}
[aria-checked="true"] .sw i{transform:translateX(16px)}
/* flow */
.flow-screen{min-height:280px;place-items:center;background:#f1efe9}
.d-frame{overflow:hidden;border-radius:10px;background:#000;view-transition-name:flow-frame;width:100%;aspect-ratio:16/9}
.demo[data-ratio="square"] .d-frame{width:62%;aspect-ratio:1}
.demo[data-ratio="tall"] .d-frame{width:36%;aspect-ratio:9/16}
.d-frame img{width:100%;height:100%;object-fit:cover}
.demo-btn.on{background:var(--accent);border-color:var(--accent);color:#000}
::view-transition-group(*){animation-duration:.5s;animation-timing-function:cubic-bezier(.2,.7,.2,1)}

/* native scroll-driven motion, where supported */
@supports (animation-timeline: view()){
  .move-word{animation:pb-word linear both;animation-timeline:view();animation-range:entry 5% cover 38%}
  .move-line{animation:pb-rise linear both;animation-timeline:view();animation-range:entry 15% cover 40%}
  .film-card{animation:pb-drift linear both;animation-timeline:view();animation-range:cover 0% cover 100%}
  .fc-media img{animation:pb-zoom linear both;animation-timeline:view();animation-range:entry 0% cover 60%}
  @keyframes pb-word{from{clip-path:inset(0 0 100% 0);transform:translateY(.3em)}to{clip-path:inset(0 0 -10% 0);transform:none}}
  @keyframes pb-rise{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:none}}
  @keyframes pb-drift{from{transform:translateY(10vh) rotate(2deg)}to{transform:translateY(-6vh) rotate(-1.5deg)}}
  @keyframes pb-zoom{from{scale:1.22}to{scale:1}}
}
@media (max-width:760px){
  .pb-rail{top:auto;bottom:12px;left:50%;transform:translate(-50%,160%)}
  .pb-rail.show{transform:translate(-50%,0)}
  .pb-rail ol{grid-auto-flow:column}
  .pb-rail a span{display:none}
  .fc-media{aspect-ratio:16/10}
}
@media (prefers-reduced-motion:reduce){
  .move-word,.move-line,.film-card,.fc-media img{animation:none!important}
  .demo-screen::before{animation:none}
}
.foot-end{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;margin-top:8px}
.foot-badge{display:flex;align-items:center;gap:12px;margin:0;font-size:13px;color:#999}
.foot-badge img{background:#fff;border-radius:6px;padding:6px 8px;height:auto}

/* ======================= LAB THEME (interactive page only): sci-fi ======================= */
.lab{background:#000;color:#fff}
.lab-bg{position:fixed;inset:0;width:100vw;height:100vh;z-index:-1;display:block;background:#000}
.lab main{position:relative;z-index:0}
.lab-glow{position:fixed;inset:0;pointer-events:none;z-index:1;background:radial-gradient(420px circle at var(--mx,50%) var(--my,50%),#ff571a1f,transparent 70%)}
.lab .pb-hero,.lab .move{background:transparent;color:#fff}
.lab .move.slab{border-radius:0;margin-top:0;border-top:1px solid #ffffff14}
.lab .move{border-top:1px solid #ffffff14}
.lab .lede{color:#cfcfcf}
.lab .promise-label,.lab .move-n,.lab .demo-note,.lab .film-card figcaption,.hud{font-family:"Geist Mono",ui-monospace,Menlo,monospace}
.lab .promise-label{font-weight:600;letter-spacing:.12em;font-size:12.5px;color:var(--accent)}
.lab .promise-label::before{background:var(--accent)}
.lab .move-n{color:var(--accent);opacity:1;font-weight:600;letter-spacing:.12em}
.lab .move-word{color:#fff;text-shadow:0 0 60px #ff571a55}
.lab .move-line{color:#e9e9e9}
.lab .pb-title{color:#fff}
.lab .intro-arrow{color:var(--accent)}
/* glass panels over the shader */
.lab .demo-screen{background:#ffffff0d;color:#fff;border:1px solid #ffffff22;-webkit-backdrop-filter:blur(16px) saturate(150%);backdrop-filter:blur(16px) saturate(150%);box-shadow:0 30px 80px -30px #000}
.lab .d-facts li{border-color:#ffffff33}
.lab .d-safe{color:#8d8d8d}
.lab .d-sentence s.strike{color:#777}
.lab .demo:has([aria-checked="true"]) .demo-screen{background:var(--accent);color:#000;border-color:var(--accent)}
.lab .demo:has([aria-checked="true"]) .d-bold{color:#000}
.lab .flow-screen{background:#ffffff0a}
.lab .demo-btn{background:#fff;color:#000;border-color:#fff}
.lab .demo-btn.ghost{background:transparent;color:#fff;border-color:#ffffff66}
.lab .demo-btn.on{background:var(--accent);border-color:var(--accent);color:#000}
.lab .sw{background:#0002}
.lab .fc-media{border:1px solid #ffffff22;box-shadow:0 40px 100px -40px #ff571a55}
.lab .film-card figcaption{font-size:13px;letter-spacing:.04em}
.lab .film-card figcaption a{color:var(--accent)}
.lab .pb-rail ol{background:#ffffff12;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid #ffffff22}
/* HUD */
.hud{position:fixed;inset:calc(var(--hh,72px) + 14px) 18px 16px 18px;pointer-events:none;z-index:30;font-size:11.5px;letter-spacing:.1em;color:#ffffff99}
.hud span{position:absolute;white-space:nowrap}
.hud b{color:var(--accent);font-weight:600}
.hud-tl{top:0;left:0}.hud-tr{top:0;right:0}.hud-bl{bottom:0;left:0}.hud-br{bottom:0;right:0}
.hud::before,.hud::after{content:"";position:absolute;width:14px;height:14px;border:1px solid #ffffff55}
.hud::before{top:-8px;left:-8px;border-right:0;border-bottom:0}
.hud::after{bottom:-8px;right:-8px;border-left:0;border-top:0}
.decrypting{color:var(--accent)!important}
@media (max-width:760px){.hud-bl,.hud-br{display:none}.hud{font-size:10px}}
@media (prefers-reduced-motion:reduce){.lab-glow{display:none}}

/* forward: what AI did vs what people did, from the WATCHER credits */
.d-stages{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.d-stages li{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:12px;align-items:baseline;padding:9px 12px;border-radius:8px;border:1px solid #ffffff1f;transition:background .3s,opacity .3s,border-color .3s}
.d-stages b{font-family:"Inter Tight",sans-serif;font-weight:800}
.d-stages span{font-family:"Geist Mono",ui-monospace,monospace;font-size:13px}
.demo[data-view="ai"] .hu,.demo[data-view="hu"] .ai{display:none}
.demo[data-view="ai"] li[data-ai="none"]{opacity:.35}
.demo[data-view="ai"] li[data-ai="primary"]{background:var(--accent);color:#000;border-color:var(--accent)}
.demo[data-view="ai"] li[data-ai="some"]{border-color:var(--accent)}
.demo[data-view="hu"] li{background:#ffffff14}
.move-grid{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr)}
.move-word{font-size:clamp(60px,9.2cqi,168px)}
.move-proof{min-width:0}
.fc-media{width:100%}
.lab footer.site{position:relative;z-index:2}

/* ======================= DIRECTOR'S CHAIR ======================= */
.dc-page{background:#000}
.dc{background:#000;color:#fff;padding:clamp(40px,6vw,88px) 0 clamp(48px,6vw,80px)}
.dc-head{margin-bottom:clamp(24px,3.5vw,48px)}
.dc .promise-label{color:var(--accent)}
.dc .promise-label::before{background:var(--accent)}
.dc-title{font-size:clamp(52px,10vw,170px);margin:.1em 0 .25em}
.dc .lede{color:#cfcfcf;max-width:44ch}

.dc-stage{position:relative;aspect-ratio:2.39/1;background:#000;border-radius:6px;overflow:hidden;box-shadow:0 0 0 1px #ffffff14,0 40px 120px -40px #ff571a40}
.dc-v{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;visibility:hidden}
.dc-v.on{visibility:visible}
.dc-stage[data-state="idle"] .dc-v[data-id="windshield"]{visibility:visible}
.dc-grain{position:absolute;inset:-50%;pointer-events:none;opacity:.09;mix-blend-mode:overlay;animation:grain .5s steps(4) infinite;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
@keyframes grain{25%{transform:translate(-3%,2%)}50%{transform:translate(2%,-3%)}75%{transform:translate(-2%,-1%)}}
.dc-sub{position:absolute;left:50%;bottom:9%;transform:translateX(-50%);margin:0;max-width:80%;text-align:center;color:#DCD59C;
  font-weight:500;font-size:clamp(14px,1.7vw,26px);line-height:1.3;text-shadow:0 2px 10px #000,0 0 2px #000}
.dc-idle,.dc-end{position:absolute;inset:0;display:grid;place-content:center;justify-items:center;text-align:center;background:radial-gradient(ellipse at center,#0006,#000c)}
.dc-stage:not([data-state="idle"]) .dc-idle{display:none}
.dc-roll{display:inline-flex;align-items:center;gap:.55em;background:var(--accent);color:#000;border:0;border-radius:999px;padding:.85em 1.8em .85em 1.4em;
  font-family:"Inter Tight",sans-serif;font-weight:900;font-size:clamp(18px,2vw,28px);text-transform:uppercase;letter-spacing:.02em;cursor:pointer;transition:transform .15s,background .2s}
.dc-roll:hover{transform:scale(1.04);background:#fff}
.dc-roll .rec{width:.7em;height:.7em;border-radius:50%;background:#000;box-shadow:0 0 0 .18em #0003;animation:rec 1.2s ease-in-out infinite}
@keyframes rec{50%{opacity:.35}}
.dc-summary{margin:14px 0 0;color:#ddd;font-size:14px;font-weight:500}
.dc-end-1{font-family:"Inter Tight",sans-serif;font-weight:900;font-size:clamp(26px,4vw,64px);letter-spacing:-.035em;line-height:1;margin:0}
.dc-end-2{font-family:"DM Serif Display",serif;font-style:normal;color:var(--accent);font-size:clamp(22px,3vw,46px);margin:.15em 0 .8em}
.dc-end-cta{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;align-items:center;margin:0}
.dc-real{color:#fff}
.dc-bar{position:absolute;left:0;right:0;bottom:0;height:3px;background:#ffffff1a}
.dc-bar span{display:block;height:100%;width:0;background:var(--accent)}
.dc-stage[data-state="rolling"]{cursor:pointer}

.dc-console{margin-top:clamp(24px,3vw,40px);display:grid;gap:clamp(20px,2.4vw,32px)}
.dc-presets{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:14px;color:#999}
.dc-presets span{margin-right:6px}
.dc-presets button{background:transparent;color:#fff;border:1px solid #ffffff40;border-radius:999px;padding:.5em 1em;font-weight:600;font-size:14px;cursor:pointer}
.dc-presets button:hover{border-color:var(--accent);color:var(--accent)}
.dc-group h2{font-family:"Inter Tight",sans-serif;font-weight:800;font-size:13px;letter-spacing:.1em;text-transform:uppercase;margin:0 0 12px;color:#fff}
.dc-group h2 small{font-weight:500;letter-spacing:0;text-transform:none;color:#888;margin-left:8px;font-size:13px}
.dc-strip{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:8px}
.dc-shot{position:relative;padding:0;border:0;background:none;color:#fff;cursor:pointer;text-align:left}
.dc-shot img{display:block;width:100%;aspect-ratio:2.39/1;object-fit:cover;border-radius:4px;opacity:.55;transition:opacity .2s,outline-color .2s;outline:2px solid transparent;outline-offset:2px}
.dc-shot:hover img{opacity:.85}
.dc-shot[aria-pressed="true"] img{opacity:1;outline-color:var(--accent)}
.dc-name{display:block;font-size:12.5px;font-weight:600;margin-top:6px;color:#bbb}
.dc-shot[aria-pressed="true"] .dc-name{color:#fff}
.dc-ord{position:absolute;top:6px;left:6px;width:22px;height:22px;border-radius:50%;background:var(--accent);color:#000;font-weight:800;font-size:12px;display:none;place-items:center}
.dc-shot[aria-pressed="true"] .dc-ord{display:grid}
.dc-row{display:grid;grid-template-columns:repeat(4,auto);justify-content:start;gap:clamp(20px,3vw,48px)}
.dc-seg{display:inline-flex;border:1px solid #ffffff33;border-radius:999px;padding:3px}
.dc-seg button{background:transparent;border:0;color:#bbb;border-radius:999px;padding:.55em 1.05em;font-weight:600;font-size:14px;cursor:pointer;transition:background .2s,color .2s}
.dc-seg button[aria-checked="true"]{background:#fff;color:#000}
.dc-credit{margin-top:clamp(24px,3vw,40px);font-size:13px;color:#777}
.dc-page footer.site{border-top:1px solid #1a1a1a}
@media (max-width:900px){.dc-strip{grid-template-columns:repeat(4,minmax(0,1fr))}.dc-row{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.dc-stage{aspect-ratio:16/10}.dc-row{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){.dc-grain,.dc-roll .rec{animation:none}}
.dc-end[hidden]{display:none}
.btn.light{background:#fff;border-color:#fff;color:#000}
.btn.light .dot{background:var(--accent)}
.btn.light:hover{background:var(--accent);border-color:var(--accent);color:#000}
.btn.ghost.light{background:transparent;color:#fff;border-color:#fff}
.btn.ghost.light:hover{background:#fff;color:#000}

/* ======================= AI LABS: one project per screen ======================= */

.lab-intro{background:#000;color:#fff;padding:clamp(56px,9vw,130px) 0 clamp(32px,4vw,56px)}
.lab-intro .lede{color:#cfcfcf;margin-top:20px}
.lab-scene{position:relative;height:100svh;min-height:560px;overflow:hidden;background:#000;color:#fff;padding:0;display:flex;align-items:flex-end;scroll-snap-align:start}
.lab-media{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.lab-shade{position:absolute;inset:0;background:linear-gradient(180deg,#0000 35%,#000c 100%),linear-gradient(90deg,#0008,#0000 60%)}
.lab-copy{position:relative;z-index:2;width:100%;padding-bottom:clamp(40px,7vh,88px)}
.lab-kicker{font-size:14px;font-weight:600;color:#ffffffc0;margin:0 0 14px}
.lab-title{font-size:clamp(56px,10vw,168px);margin:0 0 .2em;max-width:12ch}
.lab-line{font-size:clamp(17px,1.5vw,22px);max-width:46ch;color:#eee;margin:0 0 24px}
.lab-links{display:flex;flex-wrap:wrap;gap:12px 24px;align-items:center;margin:0}
.lab-btn{display:inline-flex;align-items:center;gap:.6em;background:#fff;color:#000;border:0;border-radius:999px;padding:.95em 1.5em;font-weight:700;font-size:15px;text-decoration:none;cursor:pointer;transition:background .2s}
.lab-btn:hover{background:var(--accent)}
.lab-btn .dot{background:var(--accent)}
.lab-btn:hover .dot{background:#000}
.lab-link{color:#fff;font-weight:600;text-underline-offset:5px;text-decoration-thickness:2px;text-decoration-color:var(--accent)}
/* ahaheadshots: the generated headshots drift past as a full-screen strip */
.lab-strip{display:flex;align-items:center;background:#0b0b0b}
.strip-track{display:flex;height:78%;width:max-content;animation:strip 160s linear infinite}
.strip-track img{height:100%;width:auto;display:block}
@keyframes strip{to{transform:translateX(-50%)}}
.lab-scene.light .lab-shade{background:linear-gradient(180deg,#0000 30%,#000e 100%)}
@media (prefers-reduced-motion:reduce){.strip-track{animation:none}}
@media (max-width:760px){.lab-scene{height:auto;min-height:88svh}.strip-track{height:62%}}
.strip-track img{flex:none}
.lab-title.lower{text-transform:none;letter-spacing:-.045em}
.strip-track img{max-width:none}

/* awards */
.award-line{display:inline-flex;align-items:center;gap:8px;margin:0 0 8px;font-size:13px;font-weight:700;letter-spacing:.02em;color:#8a6d1f;background:#f3ead0;border-radius:999px;padding:4px 12px 4px 6px}
.award-line img{height:26px;width:auto}
.tone-black .award-line,.lab-scene .award-line{background:#ffffff14;color:#e6cf8a}
.lab-award{position:absolute;z-index:3;top:calc(var(--hh,72px) + clamp(16px,3vw,40px));right:clamp(16px,4vw,56px);height:clamp(140px,22vh,240px);width:auto;filter:drop-shadow(0 18px 40px #000a)}
.case-award{float:right;height:clamp(120px,14vw,200px);width:auto;margin:0 0 16px 24px}
.award-out{font-weight:700;color:#8a6d1f}
@media (max-width:760px){.lab-award{height:110px}.case-award{float:none;display:block;margin:0 0 16px}}

/* QA: no italics anywhere */
.serif,em.serif{font-style:normal;font-family:inherit;color:inherit}
.case-sub{font-family:"Inter Tight",sans-serif;font-weight:600;font-style:normal;letter-spacing:-.015em;color:var(--muted)}
.cut-note{font-family:"Inter",sans-serif;font-style:normal}
.dc-end-2{font-style:normal}
/* studio: brand block until a real photo arrives */
.studio-mark{aspect-ratio:4/5;background:var(--accent);border-radius:4px;display:grid;place-items:center}
.studio-mark span{width:58%;aspect-ratio:103/98;background:#000;-webkit-mask:url(/aha_mark.svg) center/contain no-repeat;mask:url(/aha_mark.svg) center/contain no-repeat}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

/* about + studio photos */
.r32{aspect-ratio:3/2}
.about-founder{padding-top:clamp(16px,3vw,40px)}
.about-founder .split{align-items:center}
.founder{margin:0}
.founder img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:4px}
.founder figcaption{margin-top:12px;font-size:15px;color:var(--muted)}
.founder figcaption b{color:var(--ink);margin-right:.5em}
.crew-grid{display:grid;grid-template-columns:1.5fr 1fr;gap:clamp(8px,1vw,14px)}
.crew-grid figure{margin:0}
.crew-grid img{width:100%;height:clamp(260px,38vw,560px);object-fit:cover;border-radius:4px}
.crew-grid figcaption{margin-top:10px;font-size:14px;color:var(--muted)}
@media (max-width:760px){.crew-grid{grid-template-columns:1fr}.crew-grid img{height:auto;aspect-ratio:3/2}}

/* WATCHER: character and keyframes */
.dev{padding-bottom:0}
.dev .lede{margin-top:4px;max-width:52ch}
.dev-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(8px,1vw,14px);margin-top:clamp(20px,3vw,36px)}
.dev-grid figure{margin:0}
.dev-grid img{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:4px;background:#111;display:block}
.dev-grid figcaption{font-size:13.5px;color:var(--muted);margin-top:8px;line-height:1.4}
.dev-sheet{grid-column:span 2;grid-row:span 2}
.dev-sheet img{aspect-ratio:1;height:100%}
.dev-title{grid-column:span 2}
@media (max-width:860px){.dev-grid{grid-template-columns:1fr 1fr}.dev-sheet,.dev-title{grid-column:span 2;grid-row:auto}.dev-sheet img{height:auto}}
.dev-top{display:flex;gap:clamp(8px,1vw,14px);margin-top:clamp(20px,3vw,36px)}
.dev-top figure,.dev-keys figure{margin:0}
.dev-top img{display:block;height:clamp(300px,34vw,560px);object-fit:cover;border-radius:4px;background:#111}
.dev-sheet img{aspect-ratio:1;width:auto}
.dev-title{flex:1;min-width:0}
.dev-title img{width:100%}
.dev-keys{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(8px,1vw,14px);margin-top:clamp(12px,1.6vw,22px)}
.dev-keys img{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:4px;display:block}
.dev-top figcaption,.dev-keys figcaption{font-size:13.5px;color:var(--muted);margin-top:8px;line-height:1.4}
@media (max-width:860px){.dev-top{flex-direction:column}.dev-top img{height:auto;width:100%}.dev-keys{grid-template-columns:1fr 1fr}}

/* ahaheadshots strip v2: individual cards, small enough for the GPU to keep painted */
.strip-track{height:auto;display:flex;animation:strip 70s linear infinite;will-change:transform}
.strip-set{display:flex;gap:14px;padding-right:14px;flex:none}
.strip-set img{height:min(62svh,560px);width:auto;max-width:none;flex:none;border-radius:10px;display:block}
@media (max-width:760px){.strip-set img{height:46svh}}

/* alignment: media on case studies / about share the text column's edges */
.wrap-wide{max-width:var(--max)}
.wrap.facts{border-top:0;position:relative}
.wrap.facts::before{content:"";position:absolute;top:0;left:var(--g);right:var(--g);border-top:1.5px solid var(--ink)}

/* slow camera push on a still: no loop seam, no jump */
.kb{overflow:hidden}
.kb img{width:100%;height:100%;object-fit:cover;transform-origin:62% 55%;animation:kb 14s ease-in-out infinite alternate;will-change:transform}
@keyframes kb{from{transform:scale(1.02)}to{transform:scale(1.13) translate(-1.5%,-1%)}}
@media (prefers-reduced-motion:reduce){.kb img{animation:none}}

/* headshots: rows always ~3 screens wide (images scale with the viewport), no offset, so wide monitors never show gaps */
.hs-row[data-dir="-1"]{margin-left:0}
.hs-row img{width:clamp(150px,13vw,420px)}
.tile-award{position:absolute;z-index:2;top:clamp(12px,2vw,28px);right:clamp(12px,2vw,28px);height:clamp(90px,13vw,200px);width:auto;filter:drop-shadow(0 14px 32px #000b);pointer-events:none}

/* ======================= ahaheadshots.ai carousel (ported from the product) ======================= */
.ahs-carousel{display:flex;align-items:center;overflow:hidden;background:#0a0a0a;
  -webkit-mask-image:linear-gradient(to right,transparent,#000 5%,#000 95%,transparent);mask-image:linear-gradient(to right,transparent,#000 5%,#000 95%,transparent)}
.ahs-track{display:flex;gap:20px;will-change:transform;padding:12px 0}
.ahs-card{position:relative;flex:none;height:min(58svh,520px);aspect-ratio:4/5;border-radius:16px;overflow:hidden;background:#f5f5f5;
  box-shadow:0 1px 3px #0003;transition:transform .3s,box-shadow .3s}
.ahs-card:hover{transform:translateY(-4px);box-shadow:0 24px 50px -12px #000c}
.ahs-after{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .5s ease-out;max-width:none}
.ahs-card:hover .ahs-after{transform:scale(1.1)}
.ahs-tag{position:absolute;top:10px;right:10px;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#fff;font-size:11px;font-weight:500;border-radius:999px;padding:3px 11px}
.ahs-before{position:absolute;left:12px;bottom:12px;z-index:2}
.ahs-thumb{width:52px;height:52px;border-radius:9px;overflow:hidden;box-shadow:0 0 0 2px #fffc,0 6px 16px #0006;transition:width .3s ease-out,height .3s ease-out}
.ahs-before:hover .ahs-thumb{width:112px;height:112px}
.ahs-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.ahs-before span{display:block;width:max-content;margin:5px auto 0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#fff;font-size:9px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;border-radius:999px;padding:2px 7px}
@media (max-width:760px){.ahs-card{height:44svh}}

/* accessibility pass: orange used as TEXT on light backgrounds uses a deeper orange (4.9:1 on cream); the brand orange stays for fills */
:root{--accent-text:#c2410c}
.step[aria-selected="true"] span,.panel-copy .n,.a-go{color:var(--accent-text)}
/* focus ring stays visible on orange sections */
.tone-orange :focus-visible,.promise-panel :focus-visible,.studio-mark:focus-visible{outline-color:#000}

/* mobile fixes: these must come after the desktop rules they override */
@media (max-width:760px){
  .tile.xl .tile-copy{grid-template-columns:1fr}
  .tile.xl h3{grid-row:auto}
  .promise-grid,.promise-grid.flip{grid-template-columns:1fr}
  .promise-grid.flip .promise-media{order:-1;aspect-ratio:16/10}
  .promise-media{min-height:0}
}

/* ======================= AI LABS: code that lights up ======================= */
.glyph-hero{position:relative;min-height:calc(100svh - var(--hh,72px));display:flex;align-items:flex-end;overflow:hidden;background:#000}
.glyph-field{position:absolute;inset:0;width:100%;height:100%;display:block}
.glyph-hero .wrap{position:relative;z-index:1;width:100%;padding-bottom:clamp(40px,8vh,96px)}
.glyph-hero .page-h{text-shadow:0 0 40px #000,0 0 80px #000}
.glyph-hero .lede{text-shadow:0 0 18px #000}
.glyph-veil{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none;display:block}
.lab-shade{z-index:1}
.lab-copy{z-index:2}
@media (prefers-reduced-motion:reduce){.glyph-veil{display:none}}

/* ahaheadshots.ai case study */
.ahs-inline{position:relative;height:clamp(300px,46vw,560px);margin-top:8px}
.ahs-inline .ahs-card{height:calc(100% - 24px)}
.ahs-cta{margin:24px 0 0}
.steps4{list-style:none;margin:24px 0 0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.steps4 li{border-top:3px solid var(--ink);padding-top:14px}
.steps4 b{font-family:"Inter Tight",sans-serif;font-weight:900;color:var(--accent-text,#c2410c)}
.steps4 h3{font-family:"Inter Tight",sans-serif;font-weight:800;font-size:22px;letter-spacing:-.02em;margin:.3em 0}
.steps4 p{color:var(--muted);margin:0}
.ahs-ba{padding-top:clamp(24px,4vw,56px)}
.ba-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(10px,1.4vw,18px);margin-top:20px}
.ba{position:relative;margin:0;border-radius:14px;overflow:hidden}
.ba-after{display:block;width:100%;aspect-ratio:4/5;object-fit:cover}
.ba-before{position:absolute;left:10px;bottom:30px;width:28%;aspect-ratio:4/5;object-fit:cover;border-radius:8px;box-shadow:0 0 0 2px #fffc,0 6px 16px #0006}
.ba figcaption{position:absolute;left:10px;bottom:8px;width:28%;text-align:center;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#fff;text-shadow:0 1px 4px #000}
.diff-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:28px 48px;margin-top:24px}
.diff-grid h3{font-family:"Inter Tight",sans-serif;font-weight:800;font-size:clamp(20px,1.8vw,26px);letter-spacing:-.02em;margin:0 0 .3em}
.diff-grid p{color:var(--muted);margin:0}
.sauce-note{margin-top:28px}
.page-h.lower{text-transform:none}
@media (max-width:860px){.steps4,.ba-grid{grid-template-columns:1fr 1fr}.diff-grid{grid-template-columns:1fr}}
.ahs-inline .ahs-track{height:100%;box-sizing:border-box}
.ahs-inline .ahs-card{height:100%}
.ba figcaption{width:auto;left:10px;bottom:8px;background:#000a;border-radius:999px;padding:2px 8px;text-shadow:none}
.ba-before{bottom:32px}

/* ===== vitrine: click a photo for a closer look ===== */
.vitrine{position:fixed;inset:0;width:100vw;height:100vh;max-width:none;max-height:none;margin:0;padding:0;border:0;background:#000;color:#fff;display:none}
.vitrine[open]{display:grid;grid-template-columns:1fr 340px}
.vitrine::backdrop{background:#000}
.vt-stage{position:relative;overflow:hidden;cursor:zoom-in;display:flex;align-items:center;justify-content:center;padding:clamp(16px,4vw,60px)}
.vt-stage img{max-width:100%;max-height:100%;object-fit:contain;transition:transform .45s cubic-bezier(.2,.7,.2,1);box-shadow:0 0 0 8px #f3efe6}
.vt-stage.zoom{cursor:zoom-out}.vt-stage.zoom img{transform:scale(2.4);transition:transform .45s cubic-bezier(.2,.7,.2,1),transform-origin 0s}
.vt-label{background:#f3efe6;color:#000;padding:calc(var(--hh,72px) + 12px) 28px 28px;display:flex;flex-direction:column;gap:6px;overflow:auto}
.vt-label h2{font:800 26px/1.1 "Inter Tight",sans-serif;margin:4px 0}
.vt-count{margin-top:auto;font:500 12px "Geist Mono",monospace;color:#5d5a54}
.vt-hint{font:500 12px "Geist Mono",monospace;color:#5d5a54}
.vt-x,.vt-prev,.vt-next{position:absolute;z-index:2;background:#000;color:#fff;border:1.5px solid #fff;border-radius:99px;height:44px;min-width:44px;padding:0 16px;cursor:pointer;font-weight:600}
.vt-x{top:16px;right:356px}.vt-prev{left:16px;top:50%}.vt-next{right:356px;top:50%}
.vt-x:hover,.vt-prev:hover,.vt-next:hover{background:var(--accent);border-color:var(--accent);color:#000}
.vitrine.solo .vt-prev,.vitrine.solo .vt-next{display:none}
@media (max-width:820px){
  .vitrine[open]{grid-template-columns:1fr;grid-template-rows:1fr auto}
  .vt-label{padding:18px 20px 24px;max-height:40vh}
  .vt-x{right:16px}.vt-next{right:16px}.vt-prev,.vt-next{top:auto;bottom:calc(40vh + 16px)}
}

/* ===== story plates: one photo per screen, one sentence (after heurebleue.studio) ===== */
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
.story{background:#e6e3de}
.plate{margin:0;position:relative;height:100vh;height:100svh;overflow:hidden}
.plate .frame{display:block;padding:0;border:0;background:none;cursor:zoom-in}
.plate.full .frame{position:absolute;inset:0;width:100%;height:100%;overflow:hidden}
.plate.full img{width:100%;height:118%;object-fit:cover;transform:translate3d(0,var(--py,0px),0);will-change:transform}
.plate.full figcaption{position:absolute;left:var(--g);bottom:clamp(24px,5vh,56px);max-width:min(560px,80vw);color:#fff;
  font:500 clamp(18px,1.6vw,24px)/1.35 "Inter Tight",sans-serif;text-shadow:0 1px 18px rgba(0,0,0,.55);pointer-events:none}
.plate.inset{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px;padding:clamp(60px,10vh,120px) var(--g)}
.plate.inset .frame{max-width:min(78vw,1100px)}
.plate.inset img{max-height:66vh;width:auto;max-width:100%;object-fit:contain}
.plate.inset figcaption{max-width:46ch;text-align:center;font:500 clamp(16px,1.25vw,19px)/1.45 "Inter Tight",sans-serif;color:#000}
.plate figcaption{opacity:0;transform:translateY(10px);transition:opacity 1.1s .25s,transform 1.1s .25s cubic-bezier(.16,1,.3,1)}
.plate.in figcaption{opacity:1;transform:none}
.plate.inset .frame{opacity:0;transform:translateY(24px);transition:opacity 1.1s,transform 1.4s cubic-bezier(.16,1,.3,1)}
.plate.inset.in .frame{opacity:1;transform:none}
@media (max-width:820px){
  .plate.inset{height:auto;min-height:80svh}
  .plate.inset .frame{max-width:100%}
  .plate.inset img{max-height:none;width:100%}
}
@media (prefers-reduced-motion:reduce){.plate figcaption,.plate.inset .frame{transition:none;opacity:1;transform:none}.plate.full img{height:100%;transform:none}}
.plate.inset .frame{aspect-ratio:auto;height:auto;overflow:visible;width:auto}
.plate .frame::before,.plate .frame::after{display:none}
.plate .frame{border-radius:0;background:none}
.vt-label .pl-no:empty,.vt-label h2:empty,.vt-label .pl-m:empty{display:none}
.plate figcaption,.plate.full figcaption,.plate.inset figcaption{font:500 12px/1.4 "Geist Mono",ui-monospace,monospace;letter-spacing:.06em;text-transform:uppercase}
.plate.full figcaption{text-shadow:0 1px 10px rgba(0,0,0,.6)}
.plate.full img{position:absolute;left:0;top:-9%}
.plate.series{display:flex;flex-direction:column;justify-content:center;gap:26px;padding:clamp(60px,10vh,120px) var(--g)}
.its{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(10px,1.4vw,20px);max-width:1500px;width:100%;margin:0 auto}
.it{margin:0}
.it .frame{display:block;width:100%;aspect-ratio:16/9;padding:0;border:0;border-radius:0;background:none;cursor:zoom-in;overflow:hidden}
.it img{width:100%;height:100%;object-fit:cover;transition:transform 1s cubic-bezier(.16,1,.3,1)}
.it .frame:hover img{transform:scale(1.04)}
.it figcaption,.series-cap{margin-top:10px;font:500 12px/1.4 "Geist Mono",monospace;letter-spacing:.06em;text-transform:uppercase;color:#5d5a54}
.series-cap{text-align:center;color:#000;margin:0}
.it{opacity:0;transform:translateY(20px);transition:opacity 1s,transform 1.2s cubic-bezier(.16,1,.3,1)}
.plate.in .it{opacity:1;transform:none}
.plate.in .it:nth-child(2){transition-delay:.15s}.plate.in .it:nth-child(3){transition-delay:.3s}.plate.in .it:nth-child(4){transition-delay:.45s}
@media (max-width:820px){.its{grid-template-columns:1fr 1fr}.plate.series{height:auto;min-height:80svh}}
@media (prefers-reduced-motion:reduce){.it{opacity:1;transform:none;transition:none}}
.its{display:flex;align-items:flex-start}
.it{flex:var(--ar) 1 0;min-width:0}
.it .frame{aspect-ratio:var(--ar)}
@media (max-width:820px){.its{flex-wrap:wrap}.it{flex:1 1 calc(50% - 10px)}}
.story-intro{min-height:70vh;min-height:70svh;display:flex;align-items:center;justify-content:center;padding:clamp(60px,10vh,120px) var(--g);text-align:center}
.story-intro p{margin:0;max-width:22ch;font:800 clamp(30px,4vw,64px)/1.05 "Inter Tight",sans-serif;letter-spacing:-.03em}
.facts{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}
/* case beats: the ask, the problem, the move */
.beats{background:#000;color:#fff;padding:clamp(70px,9vw,140px) 0}
.beats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(32px,4vw,64px)}
.b-k{font:500 12px "Geist Mono",monospace;letter-spacing:.06em;text-transform:uppercase;color:#aaa;margin:0 0 18px}
.b-k span{color:var(--accent)}
.beat-c h3{font:900 clamp(26px,2.6vw,40px)/1.02 "Inter Tight",sans-serif;letter-spacing:-.03em;margin:0 0 18px}
.beat-c p:last-child{color:#cfcac0;margin:0;font-size:16px}
.payoff{background:var(--accent);color:#000;padding:clamp(70px,9vw,140px) 0}
.payoff .b-k{color:#000}.payoff .b-k span{color:#000}
.po-row{display:flex;align-items:center;justify-content:space-between;gap:32px}
.po-row h2{font-size:clamp(90px,16vw,260px);margin:0}
.po-badge{width:clamp(110px,14vw,200px);transform:rotate(-4deg)}
.po-body{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:clamp(24px,4vw,64px);margin-top:clamp(32px,4vw,56px);border-top:1.5px solid #000;padding-top:28px;align-items:start}
.po-body p{margin:0;font-size:16px}
.po-q{font:900 clamp(26px,2.8vw,44px)/1.02 "Inter Tight",sans-serif;letter-spacing:-.03em}
.po-q.small{font-size:clamp(18px,1.5vw,22px);font-weight:800;line-height:1.2}
.po-q span{display:block;margin-top:12px;font:500 12px "Geist Mono",monospace;letter-spacing:.04em;text-transform:uppercase}
@media (max-width:820px){.beats-grid,.po-body{grid-template-columns:1fr}.po-row{align-items:flex-end}}
/* homepage runner: orange code, camera pushes in on scroll */
.runner{position:relative;height:170vh;background:#000}
.runner-pin{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden}
.runner-field{position:absolute;inset:0;width:100%;height:100%;display:block}
.runner-hud{position:absolute;inset:0;pointer-events:none;font:500 12px "Geist Mono",monospace;letter-spacing:.06em;color:#ff571a;text-transform:uppercase}
.rn-l{position:absolute;left:calc(var(--g) + 14px);top:calc(var(--hh,72px) + 24px)}
.rn-r{position:absolute;right:var(--g);top:calc(var(--hh,72px) + 24px);display:flex;gap:10px;align-items:center}
.rn-r i{width:8px;height:8px;border-radius:50%;background:#ff571a}
.rn-b{position:absolute;left:calc(var(--g) + 14px);bottom:28px;opacity:calc(1 - var(--rp,0) * 2)}
@keyframes rnrec{50%{opacity:0}}
@media (prefers-reduced-motion:reduce){.runner{height:100vh}.rn-r i{animation:none}}
.runner-hud{opacity:calc(1 - var(--rw,0) * 3)}
.runner{margin-bottom:-1px}
.runner{background:var(--bg)}.runner-pin{background:#000}
.runner{padding:0}
/* through, not down: the last screen of the runner sits on top of Selected Work, which waits underneath */
.runner{height:210vh;position:relative;z-index:2;pointer-events:none;background:transparent}
.runner + .work{margin-top:-100vh;margin-top:-100svh;position:relative;z-index:1}
.runner-field{transform-origin:50% 50%}
.inline-play{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer;text-decoration:underline;text-underline-offset:.18em;text-decoration-thickness:2px;text-decoration-color:var(--accent)}
.inline-play:hover{color:var(--accent-text)}

/* ===== capabilities (after landonorris.com) ===== */
.caps-page{background:#000}
/* x-ray hero: the drawn board lives under the final frame; a lens follows the cursor */
.cx-hero{position:relative;height:100vh;height:100svh;min-height:560px;overflow:hidden;background:#000;color:#fff;--mx:68%;--my:52%;--r:clamp(110px,14vw,210px)}
.cx-hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.xr-board{-webkit-mask-image:radial-gradient(circle var(--r) at var(--mx) var(--my),#000 97%,transparent 100%);mask-image:radial-gradient(circle var(--r) at var(--mx) var(--my),#000 97%,transparent 100%)}
.xr-ring{position:absolute;left:var(--mx);top:var(--my);width:calc(var(--r) * 2);height:calc(var(--r) * 2);transform:translate(-50%,-50%);border:1.5px solid var(--accent);border-radius:50%;pointer-events:none;box-shadow:0 0 0 1px rgba(0,0,0,.25)}
.xr-ring::after{content:"BOARD";position:absolute;left:50%;top:calc(100% + 10px);transform:translateX(-50%);font:600 11px "Geist Mono",monospace;letter-spacing:.12em;color:var(--accent)}
.cx-hero::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(90deg,rgba(0,0,0,.7) 0,rgba(0,0,0,.25) 38%,rgba(0,0,0,0) 60%),linear-gradient(0deg,rgba(0,0,0,.6),rgba(0,0,0,0) 40%)}
.cx-hero-copy{position:absolute;left:0;right:0;bottom:clamp(40px,9vh,100px);z-index:2;pointer-events:none}
.cx-hero-copy .kicker{color:#cfcac0}
.xr-hint{margin:14px 0 0;font:500 12px "Geist Mono",monospace;letter-spacing:.06em;text-transform:uppercase;color:#cfcac0}
.xr-cap{position:absolute;right:var(--g);bottom:24px;z-index:2;margin:0;font:500 11px "Geist Mono",monospace;letter-spacing:.08em;text-transform:uppercase;color:#aaa}
.xr-board,.xr-ring{z-index:0}.xr-ring{z-index:2}
/* manifesto over contour lines */
.cx-manifesto{position:relative;overflow:hidden;background:#000;color:#faf9f6;padding:clamp(100px,16vw,220px) 0}
.topo{position:absolute;inset:-10% 0;width:100%;height:120%;fill:none;stroke:rgba(255,255,255,.07);stroke-width:1.2}
.cx-big{position:relative;margin:0 auto;max-width:18ch;text-align:center;font:900 clamp(40px,6.4vw,104px)/.95 "Inter Tight",sans-serif;letter-spacing:-.04em;text-transform:uppercase}
.cx-s{font-family:"DM Serif Display",Georgia,serif;font-weight:500;letter-spacing:-.02em;color:var(--accent)}
/* collectible cards */
.cx-cards{background:#000;padding:0 0 clamp(80px,10vw,140px)}
.cx-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:14px}
.cx-card{--n:34px;grid-column:span 2;background:#2b2b2b;padding:1px;clip-path:polygon(0 0,100% 0,100% calc(100% - var(--n)),calc(100% - var(--n)) 100%,0 100%)}
.cx-card.s3{grid-column:span 3}
.cx-in{height:100%;background:#0e0e0e;color:#faf9f6;display:flex;flex-direction:column;clip-path:polygon(0 0,100% 0,100% calc(100% - var(--n)),calc(100% - var(--n)) 100%,0 100%)}
.cx-media{position:relative;aspect-ratio:16/10;overflow:hidden;background:#000}
.cx-card.s3 .cx-media{aspect-ratio:16/9}
.cx-media>video,.cx-media>img,.cx-media canvas{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;transition:transform 1.2s cubic-bezier(.16,1,.3,1)}
.cx-card:hover .cx-media>video,.cx-card:hover .cx-media>img{transform:scale(1.05)}
.cx-body{padding:22px 22px calc(22px + 14px);display:grid;gap:8px}
.cx-no{margin:0;font:600 12px "Geist Mono",monospace;color:var(--accent)}
.cx-t{margin:0;font:900 clamp(22px,2vw,30px)/1 "Inter Tight",sans-serif;letter-spacing:-.03em;text-transform:uppercase}
.cx-for{margin:0;color:#cfcac0}
.cx-body ul{list-style:none;margin:8px 0 0;padding:12px 0 0;border-top:1px solid #2b2b2b;display:grid;gap:8px;font-size:14.5px;color:#cfcac0}
.cx-body ul b{color:#faf9f6;font-weight:600}
.cx-body a{color:#faf9f6;text-decoration-color:var(--accent);text-underline-offset:3px}
.cx-hs{position:absolute;inset:0}
.cx-hs img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 25%;opacity:0}
.cx-hs img.on{opacity:1}
/* drifting frames */
.cx-frames{background:#000;color:#faf9f6;overflow:hidden}
.cx-field{position:relative;height:160vh}
.cx-f{position:absolute;margin:0;will-change:transform}
.cx-f img{width:100%;display:block;aspect-ratio:3/2;object-fit:cover}
.cx-f figcaption{margin-top:8px;font:500 11px "Geist Mono",monospace;letter-spacing:.08em;text-transform:uppercase;color:#aaa}
.caps-page .invite{position:relative}
@media (max-width:820px){
  .cx-grid{grid-template-columns:1fr}
  .cx-card,.cx-card.s3{grid-column:auto}
  .cx-field{height:auto;display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:0 var(--g) 80px}
  .cx-f{position:static;width:auto!important}
  .cx-big{font-size:clamp(34px,10vw,56px)}
  .xr-cap{display:none}
}
@media (prefers-reduced-motion:reduce){.cx-media>*{transition:none}}
.cx-s{font-style:normal;font-variation-settings:"opsz" 144}
/* frames you can throw */
@media (min-width:821px) and (pointer:fine){
  .cx-f{cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none;transition:box-shadow .3s}
  .cx-f img{pointer-events:none;-webkit-user-drag:none}
  .cx-f.held{cursor:grabbing;box-shadow:0 30px 60px rgba(0,0,0,.6)}
  .cx-hint{display:block}
}
.cx-hint{display:none;position:absolute;left:var(--g);top:28px;z-index:1;margin:0;font:500 11px "Geist Mono",monospace;letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}
.cx-frames{position:relative}
/* the frames sit on live orange halftone */
.cx-frames{background:var(--accent);color:#000}
.cx-dots{position:absolute;inset:0;width:100%;height:100%;display:block;pointer-events:none}
.cx-field{position:relative;z-index:1;height:175vh}
.cx-f img{aspect-ratio:var(--ar,3/2);box-shadow:0 18px 40px rgba(0,0,0,.28)}
.cx-f figcaption{color:#000}
.cx-hint{color:#000;z-index:2}
@media (max-width:820px){.cx-field{height:auto}.cx-f img{aspect-ratio:var(--ar,3/2)}}
.xr-fluid{position:absolute;inset:0;width:100%;height:100%;display:block;z-index:0;pointer-events:none}
/* horizontal track on orange halftone (after landonorris.com) */
.cx-track{position:relative;background:var(--accent);color:#000}
.cx-pin{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden}
.cx-pin .cx-dots{position:absolute;inset:0;width:100%;height:100%;display:block;pointer-events:none}
.cx-rail{position:absolute;top:0;left:0;height:100%;display:flex;align-items:flex-start;gap:7vw;padding:calc(var(--hh,72px) + 10px) 10vw 0 8vw;width:max-content;will-change:transform}
.cx-h{margin:0;flex:none}
.cx-h img{width:100%;display:block;aspect-ratio:var(--ar);object-fit:cover;box-shadow:0 18px 40px rgba(0,0,0,.25);filter:grayscale(var(--g0,1));transition:filter .4s}
.cx-h figcaption{margin-top:10px;font:500 11px "Geist Mono",monospace;letter-spacing:.08em;text-transform:uppercase}
.cx-q{flex:none;width:min(34vw,560px);margin:0;font:900 clamp(30px,3.4vw,58px)/.98 "Inter Tight",sans-serif;letter-spacing:-.035em;text-transform:uppercase}
.cx-q .cx-s{color:#fff}
@media (max-width:820px),(pointer:coarse){
  .cx-track{height:auto!important}
  .cx-pin{position:relative;height:auto;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  .cx-pin::-webkit-scrollbar{display:none}
  .cx-rail{position:relative;transform:none!important;padding:60px var(--g) 70px;gap:28px;align-items:center}
  .cx-h{width:72vw!important;margin-top:0!important;scroll-snap-align:center}
  .cx-q{width:72vw;margin-top:0!important;scroll-snap-align:center;font-size:clamp(28px,8vw,40px)}
  .cx-h img{filter:none}
}
@media (prefers-reduced-motion:reduce){.cx-h img{filter:none}}
.cx-open{flex:none;align-self:center;margin:0;width:min(30vw,520px);font:900 clamp(40px,4.6vw,80px)/.92 "Inter Tight",sans-serif;letter-spacing:-.04em;text-transform:uppercase}
.cx-open .cx-s,.cx-q .cx-s{color:#fff}
.cx-h figcaption{display:grid;gap:3px}
.cx-h figcaption b{font-weight:600;letter-spacing:.1em}
.cx-h figcaption span{opacity:.75;text-transform:none;letter-spacing:.02em;font-size:12px}
.cx-h.fit img{object-fit:contain;box-shadow:none;filter:drop-shadow(0 18px 30px rgba(0,0,0,.3)) grayscale(var(--g0,1))}
@media (max-width:820px),(pointer:coarse){.cx-open{width:72vw;scroll-snap-align:center;font-size:clamp(36px,10vw,52px)}.cx-h.fit{width:40vw!important}}
/* executive headshots set: the laptop on the table shows the headshots, live */
.cx-set{position:absolute;left:0;width:100%;aspect-ratio:4/3;top:-23%}
.cx-set>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.2s cubic-bezier(.16,1,.3,1)}
.cx-screen{position:absolute;left:19.9%;top:67.4%;width:13.4%;height:11.1%;overflow:hidden;background:#000;transform:skewY(-.5deg)}
.cx-screen .cx-hs img{object-position:50% 22%}
/* the track on black, with orange speed lines */
.cx-track{background:#000;color:#faf9f6}
.cx-open .cx-s,.cx-q .cx-s{color:var(--accent)}
.cx-h figcaption{color:#faf9f6}
.cx-h img{box-shadow:0 18px 40px rgba(0,0,0,.6)}
@media (min-width:821px) and (pointer:fine){.cx-rail{padding-right:calc(50vw - 6vw)}}
/* the hint sits at the top of the hero until you have moved a little */
.cx-hero .xr-hint{position:absolute;left:50%;top:calc(var(--hh,72px) + 28px);transform:translateX(-50%);z-index:3;margin:0;padding:10px 16px;border-radius:99px;background:rgba(0,0,0,.55);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#faf9f6;white-space:nowrap;transition:opacity .6s,transform .6s}
.cx-hero .xr-hint.gone{opacity:0;transform:translate(-50%,-10px);pointer-events:none}
@media (max-width:600px){.cx-hero .xr-hint{white-space:normal;width:max-content;max-width:86vw;text-align:center}}
.cx-setbox{position:relative}
.cx-setbox .cx-screen .cx-hs img{box-shadow:none;aspect-ratio:auto}
/* rhythm: hero, then paper (manifesto + cards), then black again (track + invite) */
.cx-manifesto{background:var(--bg);color:#000}
.cx-manifesto .topo{stroke:rgba(0,0,0,.08)}
.cx-cards{background:var(--bg)}
.cx-card{background:#d8d4ca}
.cx-in{background:#fff;color:#000}
.cx-for{color:var(--muted)}
.cx-body ul{border-top-color:var(--line);color:var(--muted)}
.cx-body ul b{color:#000}
.cx-body a{color:#000}
.cx-no{color:var(--accent-text)}
.cx-manifesto .cx-s{color:var(--accent-text)}
/* the track opens on the lines alone; the title slides in from the right as you scroll */
@media (min-width:821px) and (pointer:fine){.cx-rail{padding-left:96vw}}
/* accent serif: heavier and sturdier so it holds up on black */
.cx-s{font-weight:700;font-variation-settings:"opsz" 48}
.cx-manifesto .cx-s{font-weight:500;font-variation-settings:"opsz" 144}

/* no italics anywhere, by rule */
em,i,cite,dfn,var,address{font-style:normal}
/* Selected Work arrives under the paper flush with the top of the screen: give it room below the nav */
.runner + .work{padding-top:calc(var(--hh,72px) + clamp(56px,8vw,120px))}
.cx-hero{touch-action:pan-y}
/* QA: nav links get a 44px tap target without changing how the nav looks */
nav ul a{display:inline-block;padding:12px 6px;margin:-12px -6px}
/* QA: the MUSE badge in the GOLD. payoff no longer pushes phones sideways */
@media (max-width:600px){.po-row{gap:16px}.po-row h2{font-size:clamp(64px,22vw,120px)}.po-badge{width:min(26vw,110px);flex:none}}
.payoff{overflow-x:clip}
/* QA: footer links get a comfortable tap target too */
footer.site a, footer a{display:inline-block;padding-block:8px}
/* AI Labs: the headshot strip sits up under the nav, so faces clear the title and copy below */
.lab-scene .ahs-carousel:not(.ahs-inline){align-items:flex-start;padding-top:calc(var(--hh,72px) + 2.5svh)}
.lab-scene .ahs-carousel:not(.ahs-inline) .ahs-card{height:min(calc(100svh - var(--hh,72px) - 48svh),520px)}

/* ===== brand thread: the serif accent word and the flowing orange lines, used across every page ===== */
.acc,.cx-s{font-family:"DM Serif Display",Georgia,serif;font-style:normal;font-weight:500;letter-spacing:-.02em;font-variation-settings:"opsz" 144;color:var(--accent-text)}
/* on dark grounds the accent goes bold and bright so it holds up */
.invite .acc,footer .acc,.beats .acc,.cx-track .acc,.cx-track .cx-s,.promise .acc,.clients .acc{color:var(--accent);font-weight:700;font-variation-settings:"opsz" 48}
.cx-manifesto .cx-s{font-weight:500;font-variation-settings:"opsz" 144;color:var(--accent-text)}
[data-flow]{position:relative;isolation:isolate}
[data-flow]>canvas.flow{position:absolute;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none;display:block}

/* ===== Work: the index ===== */
.wx{padding-top:0}
.wx-filters{display:flex;gap:8px;margin-bottom:clamp(20px,3vw,36px)}
.wx-filters button{border:1.5px solid #000;background:none;border-radius:99px;padding:10px 18px;font:600 13px "Geist Mono",monospace;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;min-height:44px}
.wx-filters button.on{background:#000;color:#fff}
.wx-list{list-style:none;margin:0;padding:0;border-top:1.5px solid #000}
.wx-row{border-bottom:1px solid var(--line)}
.wx-row[hidden]{display:none}
.wx-row a{display:grid;grid-template-columns:56px 1fr auto;grid-template-areas:"no t k" "no c k";align-items:center;column-gap:24px;padding:clamp(18px,2.4vw,30px) 0;text-decoration:none;color:#000}
.wx-no{grid-area:no;font:600 12px "Geist Mono",monospace;color:var(--accent-text);align-self:start;padding-top:.6em}
.wx-t{grid-area:t;font:900 clamp(30px,5vw,78px)/.95 "Inter Tight",sans-serif;letter-spacing:-.04em;text-transform:uppercase;transition:color .25s}
.wx-c{grid-area:c;margin-top:8px;font-size:15px;color:var(--muted)}
.wx-k{grid-area:k;font:500 12px "Geist Mono",monospace;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);text-align:right}
.wx-thumb{display:none}
.wx-row a:hover .wx-t,.wx-row a:focus-visible .wx-t{font-family:"DM Serif Display",Georgia,serif;font-weight:500;letter-spacing:-.02em;font-variation-settings:"opsz" 144;color:var(--accent-text)}
.wx-float{position:fixed;left:0;top:0;width:clamp(260px,26vw,420px);aspect-ratio:16/10;pointer-events:none;z-index:50;opacity:0;transform:translate(-50%,-50%) scale(.85);transition:opacity .25s,transform .35s cubic-bezier(.16,1,.3,1);overflow:hidden;border-radius:6px;box-shadow:0 30px 60px rgba(0,0,0,.25)}
.wx-float.on{opacity:1}
.wx-float img,.wx-float video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.wx-float video{opacity:0}.wx-float.vid video{opacity:1}
@media (max-width:820px),(pointer:coarse){
  .wx-float{display:none}
  .wx-row a{grid-template-columns:96px 1fr;grid-template-areas:"th t" "th c" "th k";column-gap:16px}
  .wx-thumb{display:block;grid-area:th;width:96px;aspect-ratio:1;object-fit:cover;border-radius:4px}
  .wx-no{display:none}
  .wx-t{font-size:clamp(22px,6.4vw,34px)}
  .wx-k{text-align:left;margin-top:4px}
}

/* ===== About: behind the camera ===== */
.ab-hero{padding:clamp(48px,7vw,110px) 0 clamp(40px,6vw,90px)}
.ab-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(28px,5vw,80px);align-items:end}
.ab-copy .lede{margin-top:20px}
.ab-portrait{position:relative;margin:0;aspect-ratio:3/4;overflow:hidden;background:#000;border-radius:4px}
.ab-portrait>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ab-portrait .glyph-veil{position:absolute;inset:0;width:100%;height:100%}
.ab-portrait figcaption{position:absolute;left:16px;bottom:14px;z-index:2;color:#fff;font:500 12px "Geist Mono",monospace;letter-spacing:.06em;text-transform:uppercase;text-shadow:0 1px 10px rgba(0,0,0,.6)}
.ab-portrait figcaption b{display:block;font:800 18px "Inter Tight",sans-serif;letter-spacing:-.01em;text-transform:none}
.onset{padding:clamp(40px,6vw,90px) 0}
.os-strip{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;padding:12px var(--g) 24px;scrollbar-width:thin;scroll-padding-left:var(--g)}
.os-f{flex:none;width:min(72vw,620px);margin:0;scroll-snap-align:start}
.os-f img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;border-radius:4px}
.os-f figcaption{margin-top:10px;font:500 12px "Geist Mono",monospace;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.ab-facts{background:#000;color:#fff;padding:clamp(70px,10vw,150px) 0}
.ab-facts .wrap{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(24px,4vw,56px)}
.af b{display:block;font:900 clamp(40px,5vw,84px)/.95 "Inter Tight",sans-serif;letter-spacing:-.04em;text-transform:uppercase}
.af span:not(.acc){display:block;margin-top:12px;color:#cfcac0;font-size:15px}
.ab-facts .acc{color:var(--accent);font-weight:700;font-variation-settings:"opsz" 48}
@media (max-width:820px){.ab-grid{grid-template-columns:1fr}.ab-facts .wrap{grid-template-columns:1fr 1fr}.os-f{width:84vw}}

/* ===== one orange. Big orange type and graphics use the bright brand orange everywhere;
   small labels on light grounds go black (bright orange at 12px on paper is too hard to read) ===== */
:root{--accent:#ff571a;--accent-text:#000}
.acc,.cx-s,.cx-manifesto .cx-s,.wx-row a:hover .wx-t,.wx-row a:focus-visible .wx-t,.inline-play:hover{color:var(--accent)}
/* From idea to final mix: the content sits in a white panel, the lines run full strength around it */
.process>.wrap{background:#fff;border-radius:6px;padding:clamp(28px,4vw,64px);box-shadow:0 30px 80px -40px rgba(0,0,0,.18)}
/* Trusted by: a seamless loop so every logo comes through on any screen */
.clients{overflow:hidden}
.clients ul.logos{flex-wrap:nowrap!important;width:max-content!important;animation:logo-loop 32s linear infinite}
.clients:hover ul.logos{animation-play-state:paused}
@keyframes logo-loop{to{transform:translateX(calc(-50% - clamp(18px,2.5vw,42px)))}}
@media (prefers-reduced-motion:reduce){.clients ul.logos{animation:none;flex-wrap:wrap!important;width:auto!important}.clients ul.logos li[aria-hidden]{display:none}}
/* About facts: light and divided, so the black contact section stays the one dark moment */
.ab-facts{background:var(--bg);color:#000;padding:clamp(60px,8vw,120px) 0}
.ab-facts .wrap{gap:0}
.af{padding:8px clamp(16px,2.4vw,36px);border-left:1.5px solid #000}
.af:first-child{border-left:0;padding-left:0}
.af span:not(.acc){color:var(--muted)}
.ab-facts .acc{color:var(--accent);font-weight:500;font-variation-settings:"opsz" 144}
@media (max-width:820px){.af{border-left:0;border-top:1.5px solid #000;padding:18px 0}.ab-facts .wrap{grid-template-columns:1fr 1fr;column-gap:24px}}
/* contact headline accent, one weight thinner */
.invite .acc{font-weight:600;font-variation-settings:"opsz" 72}
/* every step's image gets the same frame, so switching steps never changes the height */
.panel-art .artifact{margin:0}
.panel-art .artifact img{width:100%;aspect-ratio:16/10;object-fit:cover;display:block}
.panel-art .artifact img[src*="timeline"],.panel-art .artifact img[src*="osprey-sheet"]{object-fit:contain;background:#000}

/* ===== Paper: notes from the studio ===== */
.paper-page{background:var(--bg)}
.pp-mast{padding:clamp(48px,7vw,110px) 0 clamp(20px,3vw,40px);border-bottom:1.5px solid #000}
.pp-title{margin:0;font:500 clamp(96px,20vw,300px)/.82 "DM Serif Display",Georgia,serif;letter-spacing:-.05em;font-variation-settings:"opsz" 144}
.pp-title .acc{color:var(--accent)}
.pp-list{list-style:none;margin:0;padding:0}
.pp-list li{border-bottom:1px solid var(--line)}
.pp-list a{display:grid;grid-template-columns:1fr 220px;grid-template-areas:"k img" "t img" "d img";column-gap:clamp(20px,4vw,64px);padding:clamp(24px,3vw,40px) 0;text-decoration:none;color:#000}
.pp-k{grid-area:k;font:500 12px "Geist Mono",monospace;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.pp-t{grid-area:t;margin:10px 0 8px;font:500 clamp(28px,3.6vw,52px)/1.02 "DM Serif Display",Georgia,serif;letter-spacing:-.02em;font-variation-settings:"opsz" 144;transition:color .2s}
.pp-d{grid-area:d;color:var(--muted)}
.pp-list img{grid-area:img;width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:4px}
.pp-list a:hover .pp-t,.pp-list a:focus-visible .pp-t{color:var(--accent)}
.pp-article{padding:clamp(40px,6vw,90px) 0 clamp(60px,8vw,120px)}
.pp-col{max-width:700px;margin:0 auto;padding:0 var(--g)}
.pp-article .pp-k{display:block;margin-top:28px}
.pp-h{margin:14px 0 16px;font:500 clamp(38px,5.4vw,76px)/1 "DM Serif Display",Georgia,serif;letter-spacing:-.03em;font-variation-settings:"opsz" 144}
.pp-dek{font-size:clamp(18px,1.6vw,22px);color:var(--muted);margin:0 0 12px}
.pp-by{font:500 12px "Geist Mono",monospace;letter-spacing:.06em;text-transform:uppercase}
.pp-hero{margin:clamp(28px,4vw,56px) auto;max-width:1100px;padding:0 var(--g)}
.pp-hero img{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:4px;display:block}
.pp-body{font:400 clamp(18px,1.35vw,20px)/1.65 "Fraunces",Georgia,serif;font-variation-settings:"opsz" 14}
.pp-body p{margin:0 0 1.15em}
.pp-body h2{margin:1.8em 0 .6em;font:900 clamp(22px,2vw,28px)/1.1 "Inter Tight",sans-serif;letter-spacing:-.02em;text-transform:uppercase}
.pp-body blockquote{margin:1.6em 0;padding:0 0 0 clamp(16px,2vw,28px);border-left:3px solid var(--accent)}
.pp-body blockquote p{font-size:1.15em;line-height:1.45;margin:0 0 .5em}
.pp-body blockquote footer{font:500 12px "Geist Mono",monospace;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.pp-small{font:500 13px "Geist Mono",monospace;color:var(--muted)}
.pp-link{font-family:"Inter",sans-serif;font-size:16px}
.ab-paper{padding:0 0 clamp(40px,5vw,72px)}
@media (max-width:720px){.pp-list a{grid-template-columns:1fr;grid-template-areas:"img" "k" "t" "d"}.pp-list img{margin-bottom:14px}}
.fact-sub{display:inline-block;margin-top:6px;font-size:14px;color:var(--muted)}
.fact-link{display:inline-block;margin-top:8px;font-size:14px;font-weight:600;text-decoration-color:var(--accent);text-underline-offset:3px;padding-block:6px}
.case-award-link{display:inline-block;transition:transform .3s}.case-award-link:hover{transform:rotate(-3deg) scale(1.04)}

/* ===== art director pass ===== */
/* one label system: every kicker is the mono label */
.kicker,.lab-kicker{font:500 12px/1.4 "Geist Mono",ui-monospace,monospace;letter-spacing:.06em;text-transform:uppercase}
/* one set of grays on black: warm light for copy, one faint for small print */
:root{--muted-dark:#cfcac0;--faint-dark:#8a8a8a}
.invite .fine,footer .fine,.foot-badge,.beat-c p,.lab .lede,.lab-scene .lede,.cx-for,.af span{color:var(--muted-dark)}
.b-k,.clients .kicker,.tone-black .kicker,.invite .kicker,.lab-kicker,.hero-dark .kicker,.cx-hero-copy .kicker,.beats .kicker,.wall .kicker{color:var(--faint-dark)}
.ab-facts .af span{color:var(--muted)}
/* accents on black are always the heavier cut */
.glyph-hero .acc,.lab-intro .acc,.lab-scene .acc,.tone-black .acc{color:var(--accent);font-weight:700;font-variation-settings:"opsz" 48}
/* award pill: brand black and white, not a second gold accent */
.award-line{color:#fff;background:#000}
.tone-black .award-line,.lab-scene .award-line{background:#ffffff14;color:#fff}
.award-out{color:#000}
/* GMD: the MUSE badge sits to the right of the title again */
.case-award-link{float:right;margin:0 0 16px 24px}
.case-award-link .case-award{float:none}
@media (max-width:600px){.case-award-link{margin:0 0 8px 12px}.case-award-link .case-award{width:72px;height:auto}}
/* phones: nothing clips at the gutter */
@media (max-width:760px){.lab-title,.lab-title.lower{font-size:clamp(38px,11vw,56px)}}
@media (max-width:600px){.po-row h2{font-size:clamp(52px,18vw,110px)}}
/* "01 Concept": keep the space */
.panel-copy .n{margin-right:.3em}
/* beats that carry a full sentence instead of a headline */
.beat-c h3.long{font-size:clamp(20px,1.7vw,26px);line-height:1.2;letter-spacing:-.015em}
/* About: the on-set strip lines up with the page grid */
.os-strip{padding-left:max(var(--g),calc((100vw - var(--max)) / 2 + var(--g)));scroll-padding-left:max(var(--g),calc((100vw - var(--max)) / 2 + var(--g)))}
.ab-links{display:flex;flex-wrap:wrap;gap:12px 28px;margin-top:8px}
/* credits keep a clean label column */
.credits{display:grid;grid-template-columns:minmax(112px,max-content) 1fr;gap:4px 16px}
.credits br{display:none}
/* facts: two to a row on phones */
.facts{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}
/* story plates: no dead bands on phones */
@media (max-width:820px){.plate.inset,.plate.series{min-height:0;height:auto;padding-block:48px}}
/* readability details */
.case-sub{color:#2b2a27;font-weight:500}
.po-q.small{letter-spacing:-.01em}
.pp-mast{border-bottom:0}.pp-mast .wrap{border-bottom:1.5px solid #000;padding-bottom:clamp(16px,2vw,28px)}
.wx-t.lower{text-transform:none}
/* phones: the nav tucks away while you scroll down and comes back the moment you scroll up */
@media (max-width:820px){
  header.site{transition:transform .35s cubic-bezier(.2,.7,.2,1)}
  .js header.site.tuck,.js .home header.site.on.tuck{transform:translateY(-100%)}
  .js header.site.tuck:focus-within{transform:none}
}
@media (max-width:820px) and (prefers-reduced-motion:reduce){header.site{transition:none}}
.ab-facts .af span.acc{color:var(--accent);display:inline;margin:0;font-size:inherit}

/* ===== accent serif is Gloock: one weight, sturdy thins that hold up in orange. Never synthesize a fake bold. ===== */
.acc,.cx-s,.cx-manifesto .cx-s,.invite .acc,footer .acc,.beats .acc,.cx-track .acc,.cx-track .cx-s,.promise .acc,.clients .acc,
.glyph-hero .acc,.lab-intro .acc,.lab-scene .acc,.tone-black .acc,.ab-facts .acc,.ab-facts .af span.acc,
.wx-row a:hover .wx-t,.wx-row a:focus-visible .wx-t,.pp-title,.pp-t,.pp-h,.serif,.dc-end-2,.hero-a .hero-type .ln{
  font-family:"DM Serif Display",Georgia,serif;font-weight:400;font-synthesis:none;font-variation-settings:normal;letter-spacing:-.01em}


/* ===== phones: Lando-style. No bar, two floating buttons, a full-screen menu that drops from the top ===== */
.m-menu-btn,.m-menu{display:none}
@media (max-width:760px){
  header.site,.js .home header.site,.js header.site.tuck,.js .home header.site.on.tuck{position:fixed;left:0;right:0;top:0;background:transparent;border:0;transform:none;pointer-events:none;z-index:80}
  header.site .wrap{flex-direction:row;flex-wrap:nowrap;align-items:center;justify-content:space-between;padding-top:12px;padding-bottom:12px;min-height:0}
  header.site nav{display:none}
  header.site .logo{pointer-events:auto;display:inline-flex;align-items:center;justify-content:center;height:48px;padding:0 14px;border-radius:12px;background:#000;box-shadow:0 6px 20px rgba(0,0,0,.18)}
  header.site .logo svg{height:30px;width:auto}
  .m-menu-btn{pointer-events:auto;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;width:48px;height:48px;border-radius:12px;border:0;background:#faf9f6;box-shadow:0 6px 20px rgba(0,0,0,.18);cursor:pointer}
  .m-menu-btn span{display:block;width:20px;height:2px;background:#000;transition:transform .3s,width .3s}
  .m-menu-btn span:last-child{width:12px;align-self:center;transform:translateX(4px)}
  .m-menu-btn[aria-expanded="true"] span:first-child{transform:translateY(3.5px) rotate(45deg)}
  .m-menu-btn[aria-expanded="true"] span:last-child{width:20px;transform:translateY(-3.5px) rotate(-45deg)}
  main{padding-top:72px}
  .home main{padding-top:0}
  .m-menu{display:flex;flex-direction:column;align-items:center;justify-content:center;position:fixed;inset:0;z-index:70;background:#000;color:#faf9f6;padding:96px 24px calc(28px + env(safe-area-inset-bottom));
    clip-path:ellipse(150% 0% at 50% 0%);transition:clip-path .55s cubic-bezier(.7,0,.2,1)}
  .m-menu[hidden]{display:flex;visibility:hidden}
  .m-menu.open{clip-path:ellipse(150% 140% at 50% 0%);visibility:visible}
  .m-menu nav ul{list-style:none;margin:0;padding:0;text-align:center}
  .m-menu nav a{display:inline-block;position:relative;padding:4px 8px;color:#faf9f6;text-decoration:none;font:900 clamp(40px,12vw,56px)/1 "Inter Tight",sans-serif;letter-spacing:-.04em;text-transform:uppercase}
  .m-menu nav a[aria-current]{color:#8a8a8a}
  .m-menu nav a[aria-current]::after{content:"";position:absolute;left:4px;right:4px;top:50%;height:14px;transform:translateY(-50%);
    background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 14' preserveAspectRatio='none'%3E%3Cpath d='M0 7 Q10 0 20 7 T40 7 T60 7 T80 7 T100 7 T120 7' fill='none' stroke='%23ff571a' stroke-width='3'/%3E%3C/svg%3E") center/100% 100% no-repeat}
  .m-sig{display:flex;flex-direction:column;align-items:center;gap:10px;margin:36px 0 0;font:500 12px "Geist Mono",monospace;letter-spacing:.08em;text-transform:uppercase;color:#8a8a8a}
  .m-mark svg{height:34px;width:auto}
  .m-foot{position:absolute;left:0;right:0;bottom:calc(28px + env(safe-area-inset-bottom));display:flex;flex-direction:column;align-items:center;gap:14px}
  .m-cta{display:inline-flex;align-items:center;min-height:48px;padding:0 26px;border-radius:99px;background:var(--accent);color:#000;font-weight:600;text-decoration:none}
  .m-mail{color:#faf9f6;font:500 13px "Geist Mono",monospace;letter-spacing:.04em;padding:8px}
  .m-menu nav li{opacity:0;transform:translateY(16px);transition:opacity .4s,transform .5s cubic-bezier(.16,1,.3,1)}
  .m-menu.open nav li{opacity:1;transform:none}
  .m-menu.open nav li:nth-child(2){transition-delay:.06s}.m-menu.open nav li:nth-child(3){transition-delay:.12s}.m-menu.open nav li:nth-child(4){transition-delay:.18s}
  body.menu-open{overflow:hidden}
}
@media (max-width:760px) and (prefers-reduced-motion:reduce){.m-menu,.m-menu nav li{transition:none}}
@media (max-width:760px){
  .m-menu nav{width:auto}
  .m-menu nav ul{display:flex!important;flex-direction:column;align-items:center;gap:6px;flex-wrap:nowrap}
  .m-menu nav li,.m-menu nav li:last-child{position:static!important;display:block}
}
/* phones: one button. The aha! logo, which turns into a drawn X */
@media (max-width:760px){
  header.site .wrap{justify-content:flex-end}
  header.site .logo{display:none}
  .m-menu-btn{position:relative;width:52px;height:52px;background:#000;border-radius:14px;gap:0}
  .m-menu-btn .mb-logo{display:flex;align-items:center;justify-content:center;transition:opacity .25s,transform .45s cubic-bezier(.7,0,.2,1)}
  .m-menu-btn .mb-logo svg{height:30px;width:auto}
  .m-menu-btn .mb-x{position:absolute;inset:0}
  .m-menu-btn .mb-x i{position:absolute;left:50%;top:50%;width:24px;height:2.5px;margin:-1.25px 0 0 -12px;border-radius:2px;background:#faf9f6;transform-origin:center;transform:rotate(45deg) scaleX(0);transition:transform .35s cubic-bezier(.2,.7,.2,1)}
  .m-menu-btn .mb-x i:last-child{transform:rotate(-45deg) scaleX(0)}
  .m-menu-btn[aria-expanded="true"] .mb-logo{opacity:0;transform:scale(.4) rotate(-20deg)}
  .m-menu-btn[aria-expanded="true"] .mb-x i{transform:rotate(45deg) scaleX(1);transition-delay:.12s}
  .m-menu-btn[aria-expanded="true"] .mb-x i:last-child{transform:rotate(-45deg) scaleX(1);transition-delay:.22s}
  .m-menu-btn>span:not(.mb-logo):not(.mb-x){display:none}
}
@media (max-width:760px) and (prefers-reduced-motion:reduce){.m-menu-btn .mb-logo,.m-menu-btn .mb-x i{transition:none}}
@media (max-width:760px){
  .m-menu-btn .mb-logo,.m-menu-btn .mb-x{width:auto;height:auto;background:none;align-self:auto}
  .m-menu-btn .mb-x,.m-menu-btn[aria-expanded="true"] .mb-x{width:auto;transform:none}
  .m-menu-btn .mb-x{position:absolute;inset:0}
}
/* phones: the logo in the button is white */
@media (max-width:760px){.m-menu-btn{color:#fff}}
/* phones, homepage: no button over the hero, just a small swipe cue; the button arrives once you scroll past */
.swipe-hint{display:none}
@media (max-width:760px){
  .home header.site:not(.on) .m-menu-btn:not([aria-expanded="true"]){opacity:0;transform:translateY(-12px);pointer-events:none}
  .home .m-menu-btn{transition:opacity .35s,transform .45s cubic-bezier(.2,.7,.2,1)}
  .home .intro-arrow{display:none}
  .swipe-hint{display:flex;flex-direction:column;align-items:center;gap:8px;position:absolute;left:50%;bottom:calc(22px + env(safe-area-inset-bottom));transform:translateX(-50%);z-index:3;pointer-events:none}
  .sw-line{display:block;width:2px;height:34px;border-radius:2px;background:linear-gradient(#000,rgba(0,0,0,0));animation:sw-rise 1.6s cubic-bezier(.4,0,.2,1) infinite}
  .sw-t{font:500 11px "Geist Mono",monospace;letter-spacing:.14em;text-transform:uppercase;color:#000}
  @keyframes sw-rise{0%{transform:translateY(8px);opacity:0}30%{opacity:1}100%{transform:translateY(-10px);opacity:0}}
}
@media (max-width:760px) and (prefers-reduced-motion:reduce){.sw-line{animation:none}}
@media (max-width:760px){
  .m-menu-btn .mb-x,.m-menu-btn[aria-expanded="true"] .mb-x{position:absolute!important;left:0!important;top:0!important;width:100%!important;height:100%!important;margin:0!important;transform:none!important;align-self:auto}
}
@media (max-width:760px){
  .m-menu-btn{transition:background-color .3s,opacity .35s,transform .45s cubic-bezier(.2,.7,.2,1)}
  .m-menu-btn[aria-expanded="true"]{background:#faf9f6}
  .m-menu-btn[aria-expanded="true"] .mb-x i{background:#000}
}
@media (max-width:760px){main{padding-top:8px}.home main{padding-top:0}}
/* serif accent inside uppercase display heads: keep it lowercase and a touch larger so it reads as a deliberate swash, not mismatched caps */
.display .acc,h1 .acc,h2 .acc{text-transform:none;font-size:1.12em;letter-spacing:-.025em;line-height:0}
/* back to caps: serif caps scaled 1.1x so their cap height matches Inter Tight's (66 vs 73 per 100px); heavy sans opened up so letters stop fusing */
.display .acc,h1 .acc,h2 .acc{text-transform:uppercase;font-size:1.1em;letter-spacing:0;line-height:0}
.display{letter-spacing:-.035em}
@media (max-width:760px){.m-menu nav a[aria-current]::after{content:none}.m-menu nav a[aria-current]{color:#faf9f6;opacity:.4}}
@media (max-width:760px){.lab-scene{min-height:100svh}}
/* WATCHER: three MUSE badges side by side, upright */
.award-trio{display:flex;align-items:flex-end;gap:clamp(8px,1.2vw,16px)}
.award-trio a{display:block;transition:transform .3s}
.award-trio a:hover,.award-trio a:focus-visible{transform:translateY(-4px)}
.award-trio img{display:block;height:clamp(96px,10vw,150px);width:auto}
.award-trio.in-hero{float:right;margin:0 0 16px 24px}
.award-trio.in-payoff{margin-top:28px}
.po-badge{transform:none}
.case-award-link:hover{transform:scale(1.04)}
@media (max-width:600px){.award-trio.in-hero{float:none;margin:0 0 16px}.award-trio img{height:84px}}
/* one badge component everywhere: hero, payoff, AI Labs, homepage tile */
.award-trio.in-lab{position:absolute;z-index:3;top:calc(var(--hh,72px) + clamp(16px,3vw,40px));right:clamp(16px,4vw,56px);filter:drop-shadow(0 18px 40px #000a)}
.award-trio.in-lab img{height:clamp(110px,18vh,200px)}
.award-trio.in-tile{position:absolute;z-index:2;top:clamp(12px,2vw,28px);right:clamp(12px,2vw,28px);filter:drop-shadow(0 14px 32px #000b)}
.award-trio.in-tile img{height:clamp(80px,10vw,160px)}
@media (max-width:760px){.award-trio.in-lab img{height:90px}.award-trio.in-tile img{height:64px}}
/* case study: the big question + what we did */
.case-q{padding:clamp(56px,9vw,140px) 0 clamp(40px,6vw,96px)}
.case-q .cq-h{font-size:clamp(40px,6.4vw,104px);line-height:.92;max-width:16ch;margin:14px 0 0}
.svc-k{margin:36px 0 12px}
.svc{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.svc li{font:500 13px/1 "Geist Mono",monospace;text-transform:uppercase;letter-spacing:.04em;padding:10px 14px;border:1.5px solid var(--ink);border-radius:999px}
/* QA pass, Oct 16 */
.cx-body .cx-for{color:var(--muted)}                                   /* was #cfcac0 on white, 1.6:1 */
.reveal-words .w{opacity:.4}
.display,.page-h,.cq-h,h1,h2{text-wrap:balance}
.award-trio.in-tile.sm img{height:clamp(56px,6vw,96px)}
.opt{color:var(--muted);font-weight:400}
@media (max-width:760px){.m-menu-btn{box-shadow:0 0 0 1px #ffffff40,0 8px 24px #0004}}
.reveal-words .w{opacity:.6}                                           /* unlit words still 3.7:1 on orange (large text needs 3:1) */
.opt{color:inherit;font-weight:400}
/* service landing pages */
.sv-cta{display:flex;flex-wrap:wrap;gap:16px 28px;align-items:center;margin-top:28px}
.sv-offers{padding:clamp(40px,6vw,96px) 0}
.sv-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:0;border-top:1.5px solid var(--ink);margin-top:16px}
.sv-o{padding:24px 24px 28px 0;border-bottom:1px solid #0002}
.sv-o h3{font:900 clamp(22px,2vw,28px)/1.05 "Inter Tight",sans-serif;text-transform:uppercase;letter-spacing:-.02em;margin:0 0 10px}
.sv-o p{margin:0;color:var(--muted)}
.sv-proof{padding:clamp(40px,6vw,96px) 0}
.sv-proof .h3{margin-bottom:32px}
.sv-proof .award-trio{margin:0 0 32px}
.sv-hs{display:grid;grid-template-columns:repeat(6,1fr);gap:8px}
.sv-hs img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:6px;display:block}
@media (max-width:760px){.sv-hs{grid-template-columns:repeat(3,1fr)}}
.sv-note{margin-top:28px;max-width:60ch}
.sv-steps{background:#000;color:#fff;padding:clamp(56px,8vw,120px) 0}
.sv-steps ol{list-style:none;margin:32px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:28px}
.sv-steps li{border-top:1.5px solid #fff;padding-top:16px;color:var(--muted-dark)}
.sv-steps li span{display:block;font:500 13px "Geist Mono",monospace;color:var(--accent);margin-bottom:10px}
.sv-steps li b{color:#fff;display:block;font:900 24px/1 "Inter Tight",sans-serif;text-transform:uppercase;margin-bottom:8px}
.sv-faq{padding:clamp(56px,8vw,120px) 0}
.faq-i{border-top:1.5px solid var(--ink)}
.faq-i:last-of-type{border-bottom:1.5px solid var(--ink)}
.faq-i summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:24px;align-items:center;padding:22px 0;min-height:44px}
.faq-i summary::-webkit-details-marker{display:none}
.faq-i summary::after{content:"+";font:400 32px/1 "Inter Tight",sans-serif;transition:transform .25s}
.faq-i[open] summary::after{transform:rotate(45deg)}
.faq-i summary h3{margin:0;font:700 clamp(18px,1.6vw,22px)/1.25 "Inter",sans-serif}
.faq-i p{margin:0 0 24px;max-width:70ch;color:var(--muted)}
.sv-more{margin-top:40px;display:flex;flex-wrap:wrap;gap:12px 28px;align-items:center}
.cx-more{margin-top:8px}
@media (max-width:760px){.sv-h{font-size:clamp(34px,11vw,64px)}}
/* before / after slider (The Emergency) */
.bax-sec{padding:clamp(56px,8vw,120px) 0}
.bax-sec .lede{margin:16px 0 36px}
.bax-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(12px,1.6vw,24px)}
@media (max-width:900px){.bax-grid{grid-template-columns:1fr}}
.bax{position:relative;margin:0;aspect-ratio:4/5;overflow:hidden;border-radius:10px;background:#111;touch-action:pan-y}
.bax img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.bax-b{position:absolute;inset:0;clip-path:inset(0 calc(100% - var(--x)) 0 0)}
.bax-h{position:absolute;top:0;bottom:0;left:var(--x);width:2px;margin-left:-1px;background:#fff;pointer-events:none}
.bax-h::after{content:"";position:absolute;top:50%;left:50%;width:40px;height:40px;margin:-20px 0 0 -20px;border-radius:50%;background:#fff;box-shadow:0 4px 18px #0006}
.bax-l,.bax-r{position:absolute;top:14px;font:500 12px "Geist Mono",monospace;text-transform:uppercase;letter-spacing:.06em;color:#fff;background:#000a;padding:6px 10px;border-radius:999px;pointer-events:none}
.bax-l{left:14px}.bax-r{right:14px}
.bax-in{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:ew-resize}
.bax-in:focus-visible{outline:none}
.bax:has(.bax-in:focus-visible){outline:3px solid var(--accent);outline-offset:3px}
.bax figcaption{position:absolute;left:14px;bottom:14px;font:500 12px "Geist Mono",monospace;text-transform:uppercase;letter-spacing:.06em;color:#fff;background:#000a;padding:6px 10px;border-radius:999px}
/* the trophies close both timelines */
.os-award img{object-fit:contain;background:#000;padding:24px 0;box-sizing:border-box}
@media (max-width:820px),(pointer:coarse){.cx-h.fit[style*="908/900"]{width:72vw!important}}
/* ===== service pages, v2 ===== */
.sv-hero{position:relative;min-height:min(92svh,980px);background:#000;color:#fff;display:flex;align-items:flex-end;overflow:hidden;padding:calc(var(--hh,72px) + 40px) 0 clamp(48px,8vh,96px)}
.sv-media{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.sv-media.kb{animation:sv-kb 24s ease-in-out infinite alternate;transform-origin:60% 40%}
@keyframes sv-kb{from{transform:scale(1.04)}to{transform:scale(1.14) translate(-1.5%,-1%)}}
.sv-shade{position:absolute;inset:0;background:linear-gradient(180deg,#0000 20%,#000c 78%),linear-gradient(90deg,#000b 0%,#0000 60%)}
.sv-copy{position:relative;z-index:2;width:100%}
.sv-hero .kicker{color:#fff;opacity:.85}
.sv-hero .page-h{color:#fff;max-width:13ch;margin-top:14px}
.sv-hero .lede{color:#e9e6df;max-width:52ch;margin-top:22px}
.sv-cta{display:flex;flex-wrap:wrap;gap:16px 28px;align-items:center;margin-top:32px}
.sv-btn{background:#fff;color:#000}
.sv-btn:hover{background:var(--accent);color:#000}
.sv-link{color:#fff;text-decoration:underline;text-decoration-color:var(--accent);text-underline-offset:5px;font-weight:600;padding:10px 0}
/* website design: the site sits in a browser window on the right */
.sv-hero-web{align-items:center}
.sv-browser{position:absolute;z-index:1;right:clamp(-120px,-4vw,0px);top:50%;width:min(60vw,980px);transform:translateY(-50%) perspective(1600px) rotateY(-12deg) rotateX(3deg);border-radius:12px;overflow:hidden;box-shadow:0 40px 120px #000,0 0 0 1px #ffffff1f;background:#111}
.sv-bar{display:flex;align-items:center;gap:7px;padding:11px 14px;background:#1b1b1b}
.sv-bar i{width:10px;height:10px;border-radius:50%;background:#444}
.sv-bar i:first-child{background:var(--accent)}
.sv-bar span{margin-left:12px;font:500 11px "Geist Mono",monospace;color:#9a9a9a}
.sv-browser img{display:block;width:100%;height:auto}
.sv-hero-web .sv-shade{background:linear-gradient(90deg,#000 0%,#000e 38%,#0000 70%)}
@media (max-width:900px){.sv-browser{position:relative;top:auto;right:auto;transform:none;width:100%;margin-bottom:28px}
  .sv-hero-web{flex-direction:column;align-items:stretch;padding-top:calc(var(--hh,72px) + 24px)}
  .sv-hero-web .sv-browser{order:-1;margin:0 var(--g) 28px;width:auto}.sv-hero-web .sv-shade{display:none}}
/* what we make: numbered rows */
.sv-offers{padding:clamp(64px,9vw,140px) 0 clamp(40px,6vw,80px)}
.sv-rows{list-style:none;margin:18px 0 0;padding:0;border-top:1.5px solid var(--ink)}
.sv-row{display:grid;grid-template-columns:72px minmax(0,1.1fr) minmax(0,1fr);gap:8px 32px;align-items:baseline;padding:28px 0;border-bottom:1px solid #0000001f;transition:padding .3s}
.sv-row:hover{padding-left:10px}
.sv-n{font:500 13px "Geist Mono",monospace;color:var(--accent)}
.sv-row h3{margin:0;font:900 clamp(26px,3.4vw,52px)/.95 "Inter Tight",sans-serif;text-transform:uppercase;letter-spacing:-.03em;transition:color .25s}
.sv-row:hover h3{color:var(--accent)}
.sv-row p{margin:0;color:var(--muted);max-width:46ch}
@media (max-width:760px){.sv-row{grid-template-columns:44px 1fr}.sv-row p{grid-column:2}}
/* steps: black, with the orange flow lines */
.sv-steps{position:relative;background:#000;color:#fff;padding:clamp(72px,10vw,160px) 0;overflow:hidden}
.sv-steps .wrap{position:relative;z-index:1}
.sv-steps ol{list-style:none;margin:40px 0 0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:28px}
@media (max-width:900px){.sv-steps ol{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.sv-steps ol{grid-template-columns:1fr}}
.sv-steps li{border-top:1.5px solid #fff;padding-top:18px;color:var(--muted-dark)}
.sv-steps li span{display:block;font:900 clamp(56px,6vw,96px)/1 "Inter Tight",sans-serif;color:var(--accent);margin-bottom:12px;letter-spacing:-.04em}
.sv-steps li b{color:#fff;display:block;font:900 26px/1 "Inter Tight",sans-serif;text-transform:uppercase;margin-bottom:10px}
/* FAQ: heading left, answers right */
.sv-faq-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.4fr);gap:32px clamp(32px,6vw,96px);align-items:start}
.sv-faq-grid > h2{position:sticky;top:calc(var(--hh,72px) + 24px)}
@media (max-width:900px){.sv-faq-grid{grid-template-columns:1fr}.sv-faq-grid > h2{position:static}}
/* next services */
.sv-nexts{padding:0 0 clamp(64px,8vw,120px)}
.sv-next-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
@media (max-width:900px){.sv-next-grid{grid-template-columns:1fr}}
.sv-next{position:relative;display:flex;flex-direction:column;gap:14px;padding:28px 28px 32px;border-radius:12px;background:#000;color:#fff;text-decoration:none;min-height:180px;transition:background .3s}
.sv-next .kicker{color:var(--muted-dark)}
.sv-next b{font:900 clamp(26px,2.6vw,38px)/.95 "Inter Tight",sans-serif;text-transform:uppercase;letter-spacing:-.03em;margin-top:auto}
.sv-next i{position:absolute;top:24px;right:28px;font-style:normal;font-size:28px;transition:transform .3s}
.sv-next:hover,.sv-next:focus-visible{background:var(--accent);color:#000}
.sv-next:hover .kicker,.sv-next:focus-visible .kicker{color:#000}
.sv-next:hover i{transform:translateX(6px)}
@media (prefers-reduced-motion:reduce){.sv-media.kb{animation:none}}
/* award badges: a single badge, smaller on tiles */
.award-trio.in-tile img{height:clamp(64px,7vw,110px)}
.award-trio.in-tile.sm img{height:clamp(48px,4.4vw,72px)}
.sv-n{color:var(--ink)}.sv-row:hover .sv-n{color:var(--ink)}
.sv-hero .sv-h{font-size:clamp(48px,6.2vw,104px)}
.sv-hero-web .sv-copy > *{max-width:min(46%,620px)}
@media (max-width:900px){.sv-hero-web .sv-copy > *{max-width:none}}
.sv-sites{display:grid;grid-template-columns:1fr 1fr;gap:clamp(20px,3vw,40px)}
@media (max-width:760px){.sv-sites{grid-template-columns:1fr}}
.sv-site{display:block;color:inherit;text-decoration:none}
.sv-browser.sm{position:relative;top:auto;right:auto;width:100%;transform:none;box-shadow:0 24px 60px #0003,0 0 0 1px #0000001a;transition:transform .4s}
.sv-site:hover .sv-browser.sm{transform:translateY(-6px)}
.sv-site .kicker{margin:18px 0 6px}
.sv-site b{font:900 clamp(24px,2.4vw,34px)/1 "Inter Tight",sans-serif;text-transform:uppercase;letter-spacing:-.02em}
.sv-site:hover b{color:var(--accent)}
.po-statues{display:block;height:clamp(200px,24vw,340px);width:auto;margin-top:36px;filter:drop-shadow(0 20px 30px #0005)}
/* homepage nest shot: keep the mother osprey centered in the crop */
.promise-media.nest video{object-position:36% 55%}
@media (max-width:760px){.promise-media.nest video{object-position:25% 55%}}
/* service pages: intro, quotes, mid-page CTA band */
.sv-about{padding:clamp(64px,9vw,140px) 0 0}
.sv-about-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.3fr);gap:24px clamp(32px,6vw,96px);align-items:start}
.sv-about-grid h2{text-transform:uppercase}
.sv-about-t p{font-size:clamp(17px,1.3vw,20px);line-height:1.6;margin:0 0 18px;max-width:62ch}
@media (max-width:900px){.sv-about-grid{grid-template-columns:1fr}}
.sv-offers{padding-top:clamp(48px,6vw,96px)}
.sv-quotes{padding:0 0 clamp(56px,7vw,110px)}
.sv-q-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}
.sv-q{margin:0;padding:28px;border-radius:12px;background:#fff;border:1px solid #0000001a;display:flex;flex-direction:column;gap:18px}
.sv-q p{margin:0;font:400 clamp(20px,1.8vw,26px)/1.25 "DM Serif Display",Georgia,serif}
.sv-q footer{font:500 12px "Geist Mono",monospace;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-top:auto}
.sv-band{background:var(--accent);color:#000;padding:clamp(40px,5vw,72px) 0}
.sv-band-in{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:24px}
.sv-band p{margin:0;font-size:clamp(30px,3.6vw,56px);line-height:.95;text-transform:uppercase}
.sv-band .acc{color:#000}
.sv-band .sv-btn{background:#000;color:#fff}
.sv-band .sv-btn:hover{background:#fff;color:#000}
/* homepage: service links under the statement */
.promise-svcs{list-style:none;margin:28px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:10px}
.promise-svcs a{display:inline-block;padding:11px 16px;border:1.5px solid #000;border-radius:999px;color:#000;text-decoration:none;font:500 13px "Geist Mono",monospace;text-transform:uppercase;letter-spacing:.04em}
.promise-svcs a:hover,.promise-svcs a:focus-visible{background:#000;color:#fff}
.svc{margin-bottom:clamp(56px,7vw,104px)}
.labs-page .invite{clip-path:none!important}
.foot-cols{grid-template-columns:1fr 1fr 1.4fr 1.2fr}
@media (max-width:1000px){.foot-cols{grid-template-columns:1fr 1fr}}
@media (max-width:760px){.foot-cols{grid-template-columns:1fr}}
/* homepage: what we make, as plain tags; one tidy block with the statement and buttons */
.promise-statement{margin-bottom:.7em}
.promise-svcs{margin:0 0 32px;gap:8px}
.promise-svcs li{padding:9px 14px;border:1.5px solid #000;border-radius:999px;font:500 12px/1 "Geist Mono",monospace;text-transform:uppercase;letter-spacing:.04em}
/* text links: underline only, no play triangle */
.link-btn::before,.link-btn.dark::before{content:none}
/* capabilities: links to the service pages */
.cx-svc{padding:0 0 clamp(48px,6vw,96px)}
.cx-svc ul{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:12px 32px}
/* homepage orange card: the statement scales with screen height too, buttons first, tags last and small, so nothing gets cut off */
.promise-panel .promise-statement{font-size:clamp(26px,min(3.4vw,5.4vh),58px)}
.promise-svcs{margin:28px 0 0;gap:6px}
.promise-svcs li{padding:7px 11px;font-size:11px}
/* stacked homepage cards: content must fit the card height on short laptop screens */
@media (min-width:761px){
  .stack-row .promise-panel{min-height:0;overflow:hidden;padding:clamp(24px,min(6vw,7vh),96px) clamp(28px,6vw,96px)}
  .stack-row .promise-panel .promise-statement{font-size:clamp(24px,min(3.2vw,4.6vh),56px)}
  .stack-row .promise-label{margin-bottom:.9em}
}
@media (min-width:761px) and (max-height:820px){.promise-svcs{display:none}}
/* process tabs on phones: the next step peeks in beside the current one, feathered out, and is tappable */
@media (max-width:760px){
  .tabs{scroll-snap-type:x proximity;-webkit-mask-image:linear-gradient(90deg,#000 62%,transparent 100%);mask-image:linear-gradient(90deg,#000 62%,transparent 100%);padding-right:30%}
  .step{flex:0 0 46%;min-width:0;scroll-snap-align:start}
}
/* ===== Selected Work in depth (desktop) ===== */
.work.zt{height:calc(var(--zn,7) * 72vh + 100vh);padding-bottom:0}
.work.zt > .wrap{height:100%}
.zt-pin{position:sticky;top:var(--hh,72px);height:calc(100vh - var(--hh,72px));display:flex;flex-direction:column;overflow:hidden}
.zt-pin .sec-head{flex:none;margin-bottom:0;padding-top:clamp(12px,2vh,28px)}
.zt-stage{position:relative;flex:1;perspective:1300px;perspective-origin:50% 45%}
.zt-card{position:absolute!important;left:50%;top:50%;width:min(60vw,calc((100vh - var(--hh,72px) - 330px) * 16 / 9));margin:0!important;grid-column:auto!important;will-change:transform,filter,opacity;transform-style:preserve-3d;backface-visibility:hidden}
.zt-card .media{aspect-ratio:16/9!important}
.zt-card .tile-copy{display:block!important;margin-top:14px}
.zt-card .tile-copy h3{font-size:clamp(26px,2.6vw,44px)!important;line-height:.95;margin:6px 0 0;grid-row:auto!important}
.zt-card .tile-copy p:not(.kicker){display:none}
.zt-card .award-trio.in-tile img{height:clamp(54px,5vw,84px)}
.zt-count{position:absolute;right:0;bottom:clamp(12px,2.5vh,28px);margin:0;font:500 13px "Geist Mono",monospace;letter-spacing:.08em;color:var(--muted)}
/* ===== Selected Work as a fanned deck (after landonorris.com "On Socials") ===== */
.deck-sec .sec-head{margin-bottom:clamp(8px,2vw,24px)}
.deck{position:relative;height:clamp(300px,36vw,520px);perspective:1400px;margin:0 auto}
.dk-card{position:absolute;left:50%;top:50%;width:clamp(150px,17vw,270px);aspect-ratio:3/4;padding:0;border:0;border-radius:18px;overflow:hidden;cursor:pointer;
  background:#111;box-shadow:0 18px 50px #0003;transform-origin:50% 120%;transition:transform .6s cubic-bezier(.2,.8,.2,1),filter .4s,box-shadow .4s;will-change:transform}
.dk-card img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .6s}
.dk-card .dk-label{position:absolute;left:0;right:0;bottom:0;padding:44px 14px 14px;background:linear-gradient(180deg,#0000,#000c);color:#fff;text-align:left;
  display:flex;flex-direction:column;gap:3px;opacity:0;transition:opacity .3s}
.dk-card .dk-label b{font:900 15px/1 "Inter Tight",sans-serif;text-transform:uppercase;letter-spacing:-.01em}
.dk-card .dk-label span{font:500 10px "Geist Mono",monospace;text-transform:uppercase;letter-spacing:.06em;opacity:.8}
.dk-card[aria-pressed="true"] .dk-label,.dk-card:hover .dk-label,.dk-card:focus-visible .dk-label{opacity:1}
.dk-card[aria-pressed="true"]{box-shadow:0 28px 80px #0005}
.dk-card:not([aria-pressed="true"]){filter:saturate(.75) brightness(.92)}
.dk-card:hover:not([aria-pressed="true"]){filter:none}
.dk-card:focus-visible{outline:3px solid var(--accent);outline-offset:4px}
.dk-hint{text-align:center;margin:10px 0 0;font:500 12px "Geist Mono",monospace;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.ft-wrap{margin-top:clamp(28px,4vw,56px);border-top:1.5px solid var(--ink);padding-top:clamp(24px,3vw,40px)}
.ft{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:clamp(20px,3vw,48px);align-items:center}
.ft.on{animation:ft-in .55s cubic-bezier(.2,.8,.2,1)}
@keyframes ft-in{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.ft-media{position:relative;aspect-ratio:16/9;border-radius:14px;overflow:hidden;background:#111}
.ft-media img,.ft-media video{width:100%;height:100%;object-fit:cover;display:block}
.ft-copy h3{font-size:clamp(34px,4.4vw,72px);line-height:.92;margin:10px 0 16px;text-transform:uppercase;text-wrap:balance}
.ft-copy .lede{max-width:44ch}
.ft-links{display:flex;flex-wrap:wrap;gap:14px 28px;align-items:center;margin-top:22px}
@media (max-width:860px){.ft{grid-template-columns:1fr}}
@media (max-width:760px){
  .deck{height:auto;display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;padding:8px var(--g) 18px;margin:0 calc(-1 * var(--g));scrollbar-width:none;perspective:none}
  .dk-card{position:relative;left:auto;top:auto;flex:0 0 46vw;transform:none!important;scroll-snap-align:center}
  .dk-card .dk-label{opacity:1}
}
@media (prefers-reduced-motion:reduce){.dk-card,.dk-card img{transition:none}.ft.on{animation:none}}
.ft[hidden]{display:none!important}
/* homepage MUSE badge: bigger */
.home .award-trio.in-tile img{height:clamp(120px,13vw,220px)}
.home .ft-media .award-trio.in-tile img{height:clamp(84px,8vw,140px)}
/* Selected Work rail: big cards in a row, the next one peeking in; loops play on screen, the card opens the film. */
.rail-sec{padding-bottom:clamp(56px,8vw,120px)}
.rl-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;flex-wrap:wrap;margin-bottom:clamp(24px,3.5vw,48px)}
.rl-head .h2{margin:0}
.rl-nav{display:flex;align-items:center;gap:12px}
.rl-nav .arrow{margin-left:12px}
.rl-btn{width:52px;height:52px;border-radius:50%;border:1.5px solid var(--ink);background:transparent;color:var(--ink);font-size:20px;cursor:pointer;transition:background .2s,color .2s,opacity .2s}
.rl-btn:hover{background:var(--ink);color:var(--bg)}
.rl-btn:disabled{opacity:.25;cursor:default;background:transparent;color:var(--ink)}
.rl-track{display:flex;gap:clamp(16px,2vw,28px);overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;overscroll-behavior-x:contain;
  margin-right:calc(50% - 50vw);padding:0 var(--g) 8px 0;scrollbar-width:none;cursor:grab}
.rl-track::-webkit-scrollbar{display:none}
.rl-track.drag{cursor:grabbing;scroll-snap-type:none;scroll-behavior:auto}
.rl-track.drag *{user-select:none}
.rl-track:focus-visible{outline-offset:6px}
.rl-card{position:relative;flex:0 0 clamp(300px,64vw,880px);scroll-snap-align:start}
.rl-media{position:relative;display:block;width:100%;aspect-ratio:16/9;padding:0;border:0;border-radius:14px;overflow:hidden;background:#111;cursor:pointer}
.rl-media video,.rl-media img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.7,.2,1)}
.rl-media:hover video,.rl-media:hover img,.rl-media:focus-visible video{transform:scale(1.035)}
.rl-play{position:absolute;left:16px;bottom:16px;display:inline-flex;align-items:center;gap:.55em;background:#000c;color:#fff;border-radius:999px;padding:.6em 1.1em;font:600 13px/1 "Geist Mono",ui-monospace,monospace;letter-spacing:.04em;text-transform:uppercase;transition:background .2s,color .2s}
.rl-play::before{content:"";width:0;height:0;border-left:8px solid currentColor;border-top:5px solid transparent;border-bottom:5px solid transparent}
.rl-media:hover .rl-play,.rl-media:focus-visible .rl-play{background:var(--accent);color:#000}
.rl-card .award-trio.in-tile{pointer-events:none}
.home .rl-card .award-trio.in-tile img{height:clamp(80px,8vw,140px)}
.rl-copy{padding-top:18px;max-width:640px}
.rl-copy .kicker{margin-bottom:.35em}
.rl-title{font-size:clamp(24px,2.4vw,36px);line-height:1.1;letter-spacing:-.02em;font-weight:700;margin:0 0 .35em}
.rl-desc{margin:0 0 14px;color:var(--muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
@media (max-width:700px){.rl-card{flex-basis:86vw}.rl-btn{width:44px;height:44px}.rl-play{left:10px;bottom:10px}}
@media (prefers-reduced-motion:reduce){.rl-track{scroll-behavior:auto}.rl-media video,.rl-media img{transition:none}}
/* rail, desktop: the page scroll drives the row sideways while the section is pinned */
.rail-sec.hs{padding-bottom:0}
.rail-sec.hs .rl-pin{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden;display:flex;flex-direction:column;justify-content:center;padding-top:var(--hh,72px);box-sizing:border-box}
.rail-sec.hs .rl-pin > .wrap{width:100%;box-sizing:border-box}
.rail-sec.hs .rl-track{overflow:visible;scroll-snap-type:none;cursor:default;will-change:transform}
.rail-sec.hs .rl-card{flex-basis:min(64vw,880px,calc((100vh - var(--hh,72px) - 330px) * 16 / 9))}
.rl-progress{height:2px;background:var(--line);margin-top:clamp(16px,2.5vw,32px);position:relative;overflow:hidden;display:none}
.rl-progress i{position:absolute;inset:0;background:var(--accent);transform-origin:0 50%;transform:scaleX(0)}
.rail-sec.hs .rl-progress{display:block}
/* phones: the cards simply stack */
@media (max-width:760px){
  .rl-nav .rl-btn{display:none}
  .rl-nav .arrow{margin-left:0}
  .rl-track{flex-direction:column;overflow:visible;margin-right:0;padding:0;scroll-snap-type:none;cursor:default;gap:clamp(36px,9vw,56px)}
  .rl-card{flex-basis:auto;width:100%}
}
.rail-sec.hs,.runner + .rail-sec.hs{padding-top:0}
.rail-sec.hs .rl-pin{padding-top:calc(var(--hh,72px) + clamp(12px,2vh,28px))}
/* burned-in subtitles stay in frame: the script pans the crop to each line; a line too wide for the card shows the whole frame over a blur */
.promise-media.sub-track{background-size:cover;background-position:center}
.promise-media.sub-track video.fit{object-fit:contain}
/* player close: a plain white × in the corner of the screen, outside the film */
.reel-close{position:fixed;top:clamp(10px,2vw,24px);right:clamp(10px,2vw,24px);z-index:5;width:48px;height:48px;padding:0;display:grid;place-items:center;
  background:none;border:0;border-radius:50%;color:#fff;font:300 44px/1 "Inter",system-ui,sans-serif;cursor:pointer;opacity:.85;transition:opacity .2s,transform .2s}
.reel-close:hover{opacity:1;transform:rotate(90deg)}
.reel-close:focus-visible{outline:2px solid #fff;outline-offset:2px}
.reel-close span{margin-top:-4px}
/* phones: full-bleed story plates keep the whole 16:9 frame (no side crop), so subjects and on-screen type stay in shot */
@media (max-width:820px){
  .plate.full{height:auto;aspect-ratio:16/9}
  .plate.full figcaption{bottom:12px;font-size:11px}
}
@media (max-width:820px){.plate.full img{height:100%;top:0;transform:none}}
.more-film{padding:clamp(56px,8vw,112px) 0 0}
.more-film .h3{margin:0 0 clamp(20px,3vw,32px)}
/* She Plays We Win: one sport in each delivery format, side by side at true aspect */
.fmts{padding:clamp(56px,8vw,112px) 0}
.fmts .h3{margin:0 0 clamp(20px,3vw,36px)}
.fmt-row{display:flex;align-items:flex-end;gap:clamp(12px,1.6vw,24px)}
.fmt{margin:0;flex:calc(var(--ar)) 1 0;min-width:0}
.fmt video{display:block;width:100%;aspect-ratio:var(--ar);object-fit:cover;border-radius:10px;background:#111}
.fmt figcaption{margin-top:10px;font:500 12px/1.4 "Geist Mono",ui-monospace,monospace;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.fmt figcaption b{display:block;color:var(--ink);font-weight:600}
@media (max-width:760px){.fmt-row{flex-wrap:wrap;align-items:flex-start}.fmt{flex:1 1 calc(50% - 8px)}}
/* contrast: kicker on the black capabilities band (was #5d5a54 on #000, 3.05:1; now #8a8a8a, 5.9:1) */
.cx-svc .kicker{color:var(--faint-dark)}
/* homepage label: no leading dash; statement: give the spaces back that the tight tracking takes */
.promise-panel .promise-label::before{content:none}
.promise-statement{word-spacing:.08em}
.promise-panel .promise-label{display:block}
.promise-label .pl-brand,.promise-label .pl-sub{display:block}
.promise-label .pl-sub{opacity:.72;margin-top:.25em}
/* pinned full-screen backdrops cover the tallest viewport (iOS toolbars collapsed), so the next section never peeks underneath */
.runner-pin,.cx-pin{height:100vh;height:100lvh}
/* touch: no overlap trick, Selected Work starts after the runner */
.runner.runner-flat + .work{margin-top:0}
.runner.runner-flat{height:200vh;height:200lvh}
/* phone fixes, round 2 */
.m-menu:focus{outline:none}
.wx-t{transition:none}
.wx-row a:hover .wx-t,.wx-row a:focus-visible .wx-t,.wx-row a:active .wx-t{color:var(--accent)}
.po-row h2.po-long{font-size:clamp(56px,10vw,170px)}
@media (max-width:600px){.po-row h2.po-long{font-size:clamp(40px,13vw,72px)}}
.cx-svc a.arrow{color:#faf9f6;border-bottom-color:#faf9f6}
.cx-svc a.arrow:hover{color:var(--accent);border-bottom-color:var(--accent)}
.cx-h img{filter:none!important}
.cx-h.fit img{filter:drop-shadow(0 18px 30px rgba(0,0,0,.3))!important}
.cx-hero img,.cx-hero canvas{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}
.cx-hero{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}
.cx-swipe{display:none}
@media (max-width:820px),(pointer:coarse){
  .cx-swipe{display:block;position:absolute;left:0;right:0;bottom:24px;margin:0;text-align:center;font:500 12px "Geist Mono",monospace;letter-spacing:.12em;text-transform:uppercase;color:#8a8a8a;pointer-events:none}
  .cx-swipe span{display:inline-block;margin-left:6px;color:var(--accent);animation:cxSwipe 1.6s ease-in-out infinite}
}
@keyframes cxSwipe{0%,100%{transform:translateX(0)}50%{transform:translateX(6px)}}
@media (prefers-reduced-motion:reduce){.cx-swipe span{animation:none}}
.xh-touch{display:none}
@media (pointer:coarse){.xh-fine{display:none}.xh-touch{display:inline}}
/* capabilities on phones: the strip fits its cards, the swipe hint sits on top where it is seen */
@media (max-width:820px),(pointer:coarse){
  .cx-pin,.cx-rail{height:auto!important}
  .cx-rail{padding:16px var(--g) 48px;align-items:center}
  .cx-swipe{position:sticky;left:0;bottom:auto;top:auto;padding:28px var(--g) 0;text-align:left;color:#cfcac0}
}
/* the form at the bottom of every page: white, not black */
.invite{background:#fff;color:#000;border-top:1px solid var(--line)}
.invite .lede{color:#333}
.invite .fine,.invite .kicker,.invite .form-status{color:var(--muted)}
.invite label{color:#000}
.invite input,.invite textarea,.invite select{background:#fff;color:#000;border:1px solid #cfcac0}
.invite input::placeholder,.invite textarea::placeholder{color:#8a867f}
.invite input:focus,.invite textarea:focus,.invite select:focus{border-color:#000}
.invite .btn:hover{background:#000;border-color:#000;color:#fff}
.invite a:not(.btn){color:#000}
/* invite headline: the serif line needs its own room, its capitals ride taller than the sans above */
.invite-h .acc{display:inline-block;line-height:1;margin-top:.12em}
.invite label .opt{display:inline;font-weight:400;color:var(--muted);margin-left:.3em}
/* reel lightbox: nothing competing with the film; one quiet link underneath */
dialog .reel-cap{margin:0;padding:14px 0 4px;background:transparent;text-align:center}
dialog .reel-cap a{margin:0;color:#fff;opacity:.5;text-decoration:underline;text-underline-offset:4px;font:500 14px "Inter",system-ui,sans-serif;transition:opacity .2s}
dialog .reel-cap a:hover,dialog .reel-cap a:focus-visible{opacity:1}
