html[data-name="short"] .an-full{display:none}html:not([data-name="short"]) .an-short{display:none}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0}
img,video{max-width:100%;height:auto;display:block}
picture{display:block}
video{width:100%;background:#000}
.skip{position:absolute;left:-9999px;top:0;z-index:99;padding:12px 16px;background:#000;color:#fff}
.skip:focus{left:8px;top:8px}
.cv-t{overflow-wrap:anywhere}
.vnote{opacity:.8;font-size:.85em}
@media (prefers-reduced-motion: reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

@font-face{font-family:Fraunces;src:url(/fonts/Fraunces.ttf);font-weight:100 900;font-display:swap}
@font-face{font-family:Fraunces;src:url(/fonts/Fraunces-Italic.ttf);font-weight:100 900;font-style:italic;font-display:swap}
@font-face{font-family:Work;src:url(/fonts/WorkSans.ttf);font-weight:100 900;font-display:swap}
:root{--clay:#e6e1d9;--clay2:#d6cfc4;--ink:#2a2622;--mute:#5e574f;--pink:#e0457b;--pinkink:#a3214f}
body{background:var(--clay);color:var(--ink);font:400 17px/1.6 Work,system-ui,sans-serif}
a{color:inherit}
:focus-visible{outline:3px solid var(--pinkink);outline-offset:4px;border-radius:8px}
.top{display:flex;justify-content:space-between;align-items:center;padding:16px clamp(20px,5vw,64px)}
.top a{text-decoration:none;min-height:44px;display:inline-flex;align-items:center}
.brand{font:italic 500 22px/1 Fraunces,serif;font-variation-settings:"SOFT" 100,"WONK" 1}
.top nav{display:flex;gap:6px}
.top nav a{padding:0 16px;border-radius:999px;font-size:15px}
.top nav a:hover{background:var(--clay2)}
.hero{position:relative;min-height:min(88vh,860px);display:grid;place-items:center;padding:24px clamp(20px,5vw,64px) 64px;overflow:hidden}
.blob{position:absolute;width:min(52vw,640px);aspect-ratio:1;background:radial-gradient(circle at 35% 30%,#f39ab9,var(--pink) 60%,#b8305f);border-radius:46% 54% 58% 42%/48% 44% 56% 52%;animation:breathe 14s ease-in-out infinite;opacity:.9;top:8%;right:-6%}
@keyframes breathe{0%,100%{border-radius:46% 54% 58% 42%/48% 44% 56% 52%;transform:scale(1)}50%{border-radius:58% 42% 40% 60%/40% 60% 44% 56%;transform:scale(.86) rotate(6deg)}}
.hero-clay{position:absolute;right:clamp(40px,10vw,200px);top:22%;width:min(40vw,520px);mix-blend-mode:multiply}
.hero-text{position:absolute;left:clamp(20px,5vw,64px);bottom:64px;max-width:min(680px,90vw)}
.hero h1{font:300 clamp(48px,8.4vw,128px)/.92 Fraunces,serif;font-variation-settings:"SOFT" 100,"opsz" 144;margin:0;letter-spacing:-.02em}
.hero h1 em{font-style:italic;color:var(--pinkink)}
.hero .lede{font:italic 400 clamp(19px,1.8vw,24px)/1.4 Fraunces,serif;margin:20px 0 0;max-width:32ch}
.hero .lede small{display:block;font:500 13px/1.4 Work,sans-serif;font-style:normal;color:var(--mute);margin-top:8px;letter-spacing:.04em}
.sec-h{font:500 13px/1 Work,sans-serif;letter-spacing:.18em;text-transform:uppercase;color:var(--mute);margin:0 0 32px}
.works{padding:64px clamp(20px,5vw,64px) 96px;max-width:1360px;margin:0 auto}
.flow{display:grid;grid-template-columns:repeat(12,1fr);gap:72px 32px}
.w{text-decoration:none;display:block;grid-column:span 5}
.w:nth-child(4n+1){grid-column:1/span 6}
.w:nth-child(4n+2){grid-column:8/span 5;margin-top:120px}
.w:nth-child(4n+3){grid-column:2/span 4}
.w:nth-child(4n){grid-column:7/span 6;margin-top:-40px}
.w .img{overflow:hidden;border-radius:44% 56% 52% 48%/40% 46% 54% 60%;transition:border-radius 1.2s ease,transform 1.2s ease;aspect-ratio:4/5;background:var(--clay2)}
.w:nth-child(even) .img{border-radius:56% 44% 40% 60%/52% 58% 42% 48%;aspect-ratio:1}
.w .img picture{height:100%}
.w .img img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s ease}
.w:hover .img,.w:focus-visible .img{border-radius:12px;transform:translateY(-6px)}
.w:hover .img img{transform:scale(1.04)}
.w .cap{display:flex;gap:16px;align-items:baseline;margin-top:18px}
.w .yr{font:500 13px/1 Work,sans-serif;color:var(--pinkink);letter-spacing:.06em}
.w h3{font:400 clamp(26px,2.6vw,38px)/1.05 Fraunces,serif;margin:0}
.w .md{font-size:14px;color:var(--mute);margin:6px 0 0 48px}
.about{background:var(--ink);color:#efe9e1;padding:96px clamp(20px,5vw,64px)}
.about-in{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:300px 1fr;gap:64px}
.about .sec-h{color:#bdb4a8}
.about .portrait img{border-radius:50% 50% 46% 54%/56% 52% 48% 44%}
.about .bio{font:300 clamp(22px,2.2vw,30px)/1.4 Fraunces,serif;margin:0 0 48px}
.cv-wrap{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:32px 48px}
.cv-h{font:500 13px/1 Work,sans-serif;letter-spacing:.14em;text-transform:uppercase;color:#f39ab9;margin:0 0 12px}
.cv{list-style:none;padding:0;margin:0;font-size:15px}
.cv li{display:grid;grid-template-columns:52px 1fr;padding:6px 0;border-top:1px solid #ffffff1f}
.cv-y{color:#bdb4a8}
.slots{max-width:1200px;margin:0 auto;padding:72px clamp(20px,5vw,64px);display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:32px}
.slot{border-radius:32px;padding:32px;background:var(--clay2);border:2px dashed #8a8178}
.slot-k{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--pinkink);margin:0}
.slot-t{font:400 30px/1.1 Fraunces,serif;margin:8px 0}
.slot-d{margin:0;color:var(--mute);font-size:15px}
footer{padding:32px clamp(20px,5vw,64px);font-size:14px;color:var(--mute);display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;border-top:1px solid #0000001a}
/* project */
.p-hero{position:relative;padding:32px clamp(20px,5vw,64px) 0;max-width:1360px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}
.p-hero .k{font:500 13px/1 Work,sans-serif;letter-spacing:.16em;text-transform:uppercase;color:var(--pinkink);margin:0 0 20px}
.p-hero h1{font:300 clamp(56px,9vw,148px)/.88 Fraunces,serif;font-variation-settings:"SOFT" 100,"opsz" 144;margin:0;letter-spacing:-.03em}
.p-hero .det{margin:28px 0 0;font-size:16px;color:var(--mute)}
.p-hero .lead-img{mix-blend-mode:multiply;border-radius:48% 52% 44% 56%/52% 46% 54% 48%;overflow:hidden;animation:settle 3s ease-out both}
@keyframes settle{from{border-radius:50%;transform:scale(.94)}to{}}
.p-desc{max-width:780px;margin:96px auto;padding:0 clamp(20px,5vw,64px);font:300 clamp(22px,2.3vw,31px)/1.5 Fraunces,serif}
.p-desc p::first-letter{font-size:2.4em;float:left;line-height:.9;padding:6px 10px 0 0;color:var(--pinkink);font-style:italic}
.elapse{max-width:1360px;margin:0 auto;padding:0 clamp(20px,5vw,64px) 96px;display:grid;gap:96px}
.elapse figure{margin:0;display:grid;grid-template-columns:120px 1fr;gap:32px;align-items:start}
.elapse figure:nth-child(even){grid-template-columns:1fr 120px}
.elapse figure:nth-child(even) .n{order:2;text-align:right}
.elapse .n{font:200 72px/1 Fraunces,serif;color:var(--pinkink);position:sticky;top:24px}
.elapse figure picture{max-width:960px}
.elapse figure:nth-child(even) picture{justify-self:end}
.elapse img{border-radius:20px}
.elapse figcaption{grid-column:2;font-size:14px;color:var(--mute)}
.elapse figure:nth-child(even) figcaption{grid-column:1;text-align:right}
.pn{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid #0000001a}
.pn a{padding:40px clamp(20px,5vw,64px);text-decoration:none;min-height:44px;display:block}
.pn a:last-child{text-align:right;border-left:1px solid #0000001a}
.pn a:hover{background:var(--clay2)}
.pn span{display:block;font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--mute)}
.pn strong{font:400 clamp(24px,3vw,40px)/1.1 Fraunces,serif}
@media (max-width:760px){
 .blob{width:110vw;right:-40vw;top:4%}
 .hero{min-height:auto;place-items:start;padding-bottom:32px}.hero-clay{position:relative;right:auto;top:auto;width:86vw;margin:24px 0 0}
 .hero-text{position:relative;left:auto;bottom:auto;margin-top:16px}
 .flow{grid-template-columns:1fr;gap:56px}.w,.w:nth-child(n){grid-column:1;margin-top:0}
 .w:nth-child(even){width:82%;justify-self:end}
 .about-in{grid-template-columns:1fr;gap:32px}.about .portrait{max-width:200px}
 .p-hero{grid-template-columns:1fr}.p-desc{margin:56px auto}
 .elapse{gap:56px}.elapse figure,.elapse figure:nth-child(even){grid-template-columns:1fr;gap:8px}
 .elapse figure:nth-child(even) .n{order:0;text-align:left}.elapse .n{position:static;font-size:44px}
 .elapse figcaption,.elapse figure:nth-child(even) figcaption{grid-column:1;text-align:left}
 .pn{grid-template-columns:1fr}.pn a:last-child{border-left:0;border-top:1px solid #0000001a}
 .top nav a{padding:0 10px}.brand{font-size:18px}
}

/* CMS page shells (separate routes) */
.page-pad{padding:48px clamp(20px,5vw,64px) 96px;max-width:1360px;margin:0 auto}
.page-pad h1{font:300 clamp(40px,7vw,96px)/.92 Fraunces,serif;font-variation-settings:"SOFT" 100,"opsz" 144;margin:0 0 32px;letter-spacing:-.02em}
.nf{min-height:60vh;display:grid;place-items:center;text-align:center;padding:64px 20px}
.nf h1{font:300 clamp(48px,8vw,120px)/.9 Fraunces,serif;margin:0 0 16px}
.nf p{color:var(--mute);font-size:18px}
.nf a{display:inline-flex;align-items:center;min-height:44px;padding:0 20px;border-radius:999px;background:var(--ink);color:#efe9e1;text-decoration:none;margin-top:24px}
.nf a:hover{background:var(--pinkink)}
.video-block{margin:48px clamp(20px,5vw,64px);max-width:960px}
.video-block figcaption{font-size:14px;color:var(--mute);margin-bottom:8px}
.video-block video{border-radius:20px;width:100%}
.top nav a[aria-current="page"]{background:var(--ink);color:#efe9e1}
.img-missing{background:var(--clay2);min-height:12rem;border-radius:44% 56% 52% 48%/40% 46% 54% 60%}
.works-solo .sec-h{margin-bottom:48px}
@media (prefers-reduced-motion: reduce){
  .blob{opacity:.85}
  .w .img,.w .img img,.p-hero .lead-img{transition:none!important;animation:none!important}
}
.works-solo{padding-top:48px}
.about-page{min-height:70vh}
.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* Home contact strip — no dashed placeholders */
.home-contact{max-width:1200px;margin:0 auto;padding:24px clamp(20px,5vw,64px) 80px}
.home-contact-line{margin:0;font:italic 400 clamp(22px,2.4vw,32px)/1.35 Fraunces,serif;color:var(--ink);max-width:28ch}
.home-contact-line a{color:var(--pinkink);text-decoration:none;border-bottom:1px solid color-mix(in srgb,var(--pinkink) 40%,transparent);padding-bottom:2px;min-height:44px;display:inline-flex;align-items:center}
.home-contact-line a:hover{border-bottom-color:var(--pinkink)}

/* Contact page — Unbearable Lightness form */
.contact-page{max-width:720px}
.contact-panel{margin-top:8px}
.contact-title{font:300 clamp(40px,6vw,72px)/.95 Fraunces,serif;font-variation-settings:"SOFT" 100,"opsz" 144;margin:0 0 16px;letter-spacing:-.02em}
.contact-lede{font:italic 400 clamp(18px,1.6vw,22px)/1.45 Fraunces,serif;color:var(--mute);margin:0 0 40px;max-width:36ch}
.contact-form{display:grid;gap:28px;position:relative}
.contact-form .field{display:grid;gap:8px;position:relative}
.contact-form .field label{font:500 13px/1 Work,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:var(--mute)}
.contact-form input,.contact-form textarea{
  font:400 17px/1.45 Work,system-ui,sans-serif;
  padding:14px 2px 12px;
  border:0;border-bottom:1.5px solid var(--clay2);
  border-radius:0;background:transparent;color:var(--ink);
  min-height:48px;width:100%;outline:none;transition:border-color .2s ease,background .2s ease
}
.contact-form textarea{min-height:140px;resize:vertical;padding-top:12px}
.contact-form input:hover,.contact-form textarea:hover{border-bottom-color:#b6ada3}
.contact-form input:focus,.contact-form textarea:focus{
  border-bottom-color:var(--pinkink);
  background:color-mix(in srgb,var(--pink) 6%,transparent);
  border-radius:12px 12px 0 0;padding-left:12px;padding-right:12px
}
.contact-form input:focus-visible,.contact-form textarea:focus-visible{outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--pinkink) 28%,transparent)}
.contact-form .field.invalid input,.contact-form .field.invalid textarea{border-bottom-color:#8b1e1e}
.contact-form .field-hint{margin:0;font-size:13px;color:#8b1e1e;min-height:1.2em}
.contact-form .field-hint[hidden]{display:none}
.contact-form .hp{position:absolute;left:-9999px;height:0;width:0;opacity:0;pointer-events:none}
.form-actions{margin-top:8px}
.btn-pill{min-height:48px;padding:0 28px;border:0;border-radius:999px;background:var(--ink);color:#efe9e1;font:600 15px Work,sans-serif;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:background .2s ease,transform .2s ease}
.btn-pill:hover{background:var(--pinkink)}
.btn-pill:active{transform:scale(.98)}
.btn-pill:disabled{opacity:.55;cursor:wait}
.form-status{min-height:1.4em;font-size:14px;color:var(--mute);margin:0}
.form-status.ok{color:var(--pinkink)}
.form-status.err{color:#8b1e1e}
.form-success{padding:28px 0 8px;border-top:1px solid color-mix(in srgb,var(--pinkink) 25%,transparent)}
.form-success[hidden]{display:none}
.form-success-k{font:500 12px/1 Work,sans-serif;letter-spacing:.16em;text-transform:uppercase;color:var(--pinkink);margin:0 0 8px}
.form-success-t{font:italic 400 clamp(22px,2.2vw,28px)/1.3 Fraunces,serif;margin:0;color:var(--ink)}
.contact-form.is-success .field,.contact-form.is-success .form-actions{display:none}
@media (max-width:760px){
  .home-contact{padding-top:8px;padding-bottom:56px}
  .contact-form{gap:24px}
}
