.media{position:relative;overflow:hidden;background:var(--bg-2)}.media img,.media video{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease)}.media--3-2{aspect-ratio:3/2}.media--4-5{aspect-ratio:4/5}.media--1-1{aspect-ratio:1/1}.media--16-9{aspect-ratio:16/9}.media--21-9{aspect-ratio:21/9}.media--2-3{aspect-ratio:2/3}.media--placeholder{display:grid;place-items:center;color:var(--ink);font-family:var(--f-mono);font-size:var(--fs-eyebrow);letter-spacing:.06em;text-transform:uppercase;border:2px dashed var(--line-soft)}.project-link{display:block}.project-media{position:relative}.project-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity var(--dur) var(--ease)}.project-link:hover .project-video{opacity:1}.project-link:hover .media img{transform:scale(1.04) translateY(-6px)}.project-link:hover .project-title{transform:translate(10px)}.project-title{transition:transform .35s var(--ease)}.project-media{container-type:inline-size;overflow:hidden}.project-title{position:absolute;left:clamp(14px,5cqw,36px);right:clamp(14px,5cqw,36px);bottom:clamp(12px,4cqw,30px);margin:0;font-size:clamp(1.3rem,9.5cqw,4.8rem);line-height:.9;letter-spacing:-.02em;color:var(--on-dark);text-shadow:0 2px 24px rgba(0,0,0,.35);pointer-events:none;z-index:2;overflow-wrap:anywhere}.project-media:after{content:"";position:absolute;inset:auto 0 0;height:55%;background:linear-gradient(to top,#1211109e,#12111000);pointer-events:none;z-index:1}.project-title:after{content:"\2192";font-family:var(--f-sans);font-weight:700;font-size:.45em;margin-left:.35em;opacity:0;transform:translate(-8px);display:inline-block;transition:opacity var(--dur-fast),transform var(--dur-fast) var(--ease);vertical-align:.1em;color:var(--accent)}.project-link:hover .project-media:after{background:linear-gradient(to top,#121110bf,#12111000)}.project-link:hover .project-title:after{opacity:1;transform:translate(6px)}.project-meta{display:flex;gap:14px;flex-wrap:wrap;margin-top:12px;font-family:var(--f-display);font-weight:700;font-stretch:80%;font-size:.95rem;letter-spacing:.03em;text-transform:uppercase;color:var(--ink)}.project-meta span+span:before{content:"/";margin-right:14px;color:var(--accent)}.project--full:before,.project--pair-a:before,.project--pair-b:before{margin-left:0}.project--full:before{width:min(100% - 2*var(--gutter),var(--max));margin-inline:auto}.form{display:grid;gap:22px;align-self:end}.form label{display:grid;gap:6px;font-family:var(--f-display);font-weight:700;font-stretch:80%;font-size:.9rem;letter-spacing:.04em;text-transform:uppercase;color:#efeae0bf}.form input,.form textarea{font:inherit;font-family:var(--f-sans);font-size:1.05rem;color:var(--on-dark);background:none;border:0;border-bottom:2px solid rgba(239,234,224,.4);padding:10px 0;border-radius:0;transition:border-color var(--dur-fast)}.form input:focus,.form textarea:focus{outline:none;border-color:var(--accent)}.form textarea{resize:vertical}.form-note{margin:0;min-height:1.4em;font-family:var(--f-body);font-size:1rem;color:#efeae0bf}.form-note.is-ok{color:var(--on-dark)}.form-note.is-err{color:#f3a07a}.form-hp{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}.form.is-sending{opacity:.6;pointer-events:none}.btn{justify-self:start;display:inline-flex;align-items:center;gap:12px;padding:14px 20px 13px;border:2px solid var(--on-dark);font-family:var(--f-display);font-weight:800;font-stretch:80%;font-size:1.05rem;text-transform:uppercase;letter-spacing:.02em;transition:background var(--dur-fast),color var(--dur-fast),border-color var(--dur-fast)}.btn:hover{background:var(--accent);border-color:var(--accent);color:var(--bg)}.btn span{transition:transform var(--dur-fast) var(--ease)}.btn:hover span{transform:translate(4px)}.case-head{max-width:1100px}.case-intro{margin-top:28px;max-width:48ch}.case-facts{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--gutter);margin-top:48px;padding-top:20px;border-top:2px solid var(--line)}.case-facts dt{font-family:var(--f-mono);font-size:var(--fs-eyebrow);letter-spacing:.06em;text-transform:uppercase;color:var(--mute-ink);margin-bottom:6px}.case-body{display:grid;gap:48px;padding-block:var(--pad);max-width:900px}.case-block p{font-size:var(--fs-m);line-height:1.4;margin-top:14px}.case-next{display:grid;gap:10px;padding-block:var(--pad);border-top:2px solid var(--line)}.anim .hero-title .line>span{transform:translateY(105%);transition:transform .55s var(--ease)}.anim.hero-in .hero-title .line>span{transform:none}.anim .hero-pre>span{display:inline-block;opacity:0;transform:translate(-6px);transition:opacity .25s,transform .25s var(--ease)}.anim.hero-in .hero-pre>span{opacity:1;transform:none}.anim .hero-sub,.anim .hero-note{opacity:0;transition:opacity .35s .55s}.anim.hero-in .hero-sub,.anim.hero-in .hero-note{opacity:1}.anim .hero-media{clip-path:inset(0 0 0 100%);transition:clip-path .6s var(--ease) .15s}.anim.hero-in .hero-media{clip-path:inset(0)}.anim .reveal-mask{clip-path:inset(0 0 100% 0);transition:clip-path .55s var(--ease)}.anim .reveal-mask.in{clip-path:inset(0)}.anim .project-meta,.anim .work-head,.anim .statement-meta,.anim .reveal-lines{opacity:0;transform:translateY(10px);transition:opacity .3s,transform .35s var(--ease)}.anim .project-meta.in,.anim .work-head.in,.anim .statement-meta.in,.anim .reveal-lines.in{opacity:1;transform:none}.anim .contact-grid{opacity:0;transition:opacity .4s}.anim .contact-grid.in{opacity:1}.form-privacy{margin:0;font-size:.9rem;color:#efeae099}.form-privacy a{border-bottom:1px solid rgba(239,234,224,.4)}.form-privacy a:hover,.foot-base a:hover{color:var(--on-dark)}
