/* Case study pages. Tokens come from shell.css (LaunchNest green + cream). */
:root{--ink:var(--green);--ink-2:var(--green-mid);--stone:var(--cream);--stone-2:rgba(249,246,240,.72);--accent:var(--green-light);--accent-deep:var(--green-mid);--gold:#C9A45C;--r:2px;
--t-10:10px;--t-11:11px;--t-14:14px;--t-16:16px;--t-19:19px;--t-24:24px;--t-32:32px;--t-44:44px;--t-64:60px;--t-88:80px;
--display:'Playfair Display',Georgia,serif;--sans:'DM Sans',Helvetica,sans-serif;--mono:'DM Mono',ui-monospace,Menlo,monospace}
body.qasmia{--hero:#1E7F48;--accent:#155F36;--accent-deep:#155F36}
body.federal{--hero:#B03436;--accent:#8B2527;--accent-deep:#8B2527}
@media(max-width:1000px){:root{--t-32:28px;--t-44:34px;--t-64:44px;--t-88:48px}}
@media(max-width:520px){:root{--t-24:21px;--t-32:24px;--t-44:28px;--t-64:34px;--t-88:36px}}
body{font-size:var(--t-16);line-height:1.6}
img{max-width:100%;display:block}
.wrap{padding-inline:clamp(20px,5vw,72px)}
.mono{font-family:var(--mono);font-size:var(--t-11);letter-spacing:.06em;text-transform:uppercase}
.dark{background:var(--ink);color:var(--cream)}
h1,h2,h3{font-family:var(--display);font-weight:600}
.cta{display:inline-flex;align-items:center;min-height:44px;padding:11px 26px;background:var(--accent);color:#fff;font-size:12px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;text-decoration:none;border-radius:var(--r);transition:background .2s}
.cta:hover{background:var(--green-mid)}
.dark .cta{background:var(--cream);color:var(--green)}.dark .cta:hover{background:var(--gold)}
/* hero */
.dark.hero{padding-top:76px;background:var(--hero,var(--ink))}
.hero .top{display:flex;justify-content:space-between;align-items:center;gap:20px;padding-block:40px}
.hero .top img{height:34px;width:auto}
.hero h1{font-size:var(--t-88);line-height:1.04;letter-spacing:-.01em;max-width:17ch;padding-bottom:48px}
.hero h1 .w{display:inline-block;opacity:0;transform:translateY(.5em);animation:up .7s cubic-bezier(.2,.7,.2,1) forwards;animation-delay:calc(var(--i)*90ms + 300ms)}
@keyframes up{to{opacity:1;transform:none}}
.facts{display:grid;grid-template-columns:repeat(4,1fr);gap:0 32px;padding-bottom:56px}
.facts div{border-top:2px solid rgba(255,255,255,.55);padding-top:12px}
.facts dt{font-family:var(--mono);font-size:var(--t-11);letter-spacing:.06em;text-transform:uppercase;color:rgba(255,255,255,.8)}
.facts dd{font-size:var(--t-14)}

.stage{background:linear-gradient(var(--hero,var(--ink)) 50%,var(--cream) 50%)}
.stage .panel{background:var(--cream);padding:clamp(16px,3vw,48px)}
.stage img{width:100%;height:auto;mix-blend-mode:multiply}
.marq{overflow:hidden;background:var(--accent);color:#fff;padding:14px 0;white-space:nowrap}
.marq div{display:inline-flex;gap:48px;padding-right:48px;animation:mq 30s linear infinite}
.marq span{font-family:var(--display);font-size:var(--t-32);font-style:italic}
@keyframes mq{to{transform:translateX(-50%)}}
.obj{display:grid;grid-template-columns:5fr 7fr;gap:clamp(24px,6vw,96px);padding-block:clamp(72px,12vw,160px) clamp(40px,6vw,80px)}
.obj h2{font-size:var(--t-44);line-height:1.1}.obj p{font-size:var(--t-19);max-width:50ch;font-weight:300}
.work{padding-bottom:clamp(40px,7vw,100px)}
.row{display:grid;grid-template-columns:4fr 8fr;gap:clamp(20px,5vw,80px);align-items:center;padding-block:clamp(32px,5vw,72px)}
.row:nth-child(even){grid-template-columns:8fr 4fr}.row:nth-child(even) .txt{order:2}
.row h3{font-size:var(--t-44);line-height:1.1;margin:10px 0 16px}
.row .tag{color:var(--accent-deep)}.row p{max-width:46ch;font-weight:300}
.shot img{width:100%;height:auto;mix-blend-mode:multiply}
.shot.narrow{display:flex;justify-content:center}.shot.narrow img{width:auto;max-height:600px}
.band{background:var(--accent);color:#fff;padding-block:clamp(56px,9vw,120px)}
.band h2{font-size:var(--t-44);margin-bottom:40px;max-width:20ch}
.stats{display:grid;grid-template-columns:repeat(4,1fr)}
.stat{padding:24px 24px 24px 0;border-top:1px solid rgba(255,255,255,.4)}
.stat b{display:block;font-family:var(--display);font-weight:600;font-size:var(--t-88);line-height:1}.stat span{font-size:var(--t-14)}
.note{margin-top:28px;color:rgba(255,255,255,.85);max-width:60ch;font-size:var(--t-14)}
.res{display:grid;grid-template-columns:7fr 5fr;gap:clamp(24px,6vw,96px);padding-block:clamp(72px,11vw,150px)}
.res h2{font-size:var(--t-64);line-height:1.08}.res p{font-size:var(--t-19);align-self:end;font-weight:300}
.next{display:block;text-decoration:none;padding-block:clamp(40px,6vw,80px)}
.next span{color:var(--stone-2)}.next b{display:block;font-family:var(--display);font-weight:600;font-size:var(--t-64);line-height:1.08}
.next:hover b{color:var(--gold)}
.end{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;padding-block:56px}
.end h2{font-size:var(--t-44)}
@media(max-width:1000px){.obj,.row,.row:nth-child(even),.res{grid-template-columns:1fr}.row:nth-child(even) .txt{order:0}
.facts,.stats{grid-template-columns:1fr 1fr}.facts{gap:20px 24px}.hero .top img{height:28px}}
@media(max-width:520px){.stats{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.hero h1 .w{animation:none;opacity:1;transform:none}.marq div{animation:none}}
