:root{
  --ivory:#f3ebdd;
  --cream:#e7d8bc;
  --sand:#d4bea0;
  --ink:#171714;
  --charcoal:#22211e;
  --bronze:#a9855e;
  --bronze2:#c9a77e;
  --muted:#70675d;
  --white:#fffdf8;
  --line:rgba(23,23,20,.18);
  --darkline:rgba(255,253,248,.18);
  --max:1280px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:86px}
body{margin:0;background:var(--ivory);color:var(--ink);font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.55;overflow-x:hidden}
a{color:inherit;text-decoration:none}img{display:block;max-width:100%}button{font:inherit}
::selection{background:var(--ink);color:var(--ivory)}
.shell{width:min(var(--max),calc(100% - 48px));margin:auto}
.eyebrow{font-size:.74rem;letter-spacing:.18em;text-transform:uppercase;font-weight:700}
.progress{position:fixed;top:0;left:0;right:0;height:2px;z-index:100;background:transparent}.progress span{display:block;height:100%;width:0;background:var(--bronze2)}
.nav{position:sticky;top:0;z-index:80;background:rgba(243,235,221,.91);backdrop-filter:blur(16px);border-bottom:1px solid var(--line)}
.nav-inner{height:76px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{font-weight:850;letter-spacing:.04em;font-size:.95rem}.brand span{font-weight:400}
.links{display:flex;align-items:center;gap:24px;font-size:.72rem;text-transform:uppercase;letter-spacing:.12em}.links>a:not(.cta-mini){position:relative}.links>a:not(.cta-mini)::after{content:"";position:absolute;left:0;bottom:-6px;height:1px;width:0;background:currentColor;transition:.25s}.links>a:hover::after{width:100%}.cta-mini{padding:10px 14px;border:1px solid var(--ink);border-radius:999px;transition:.25s}.cta-mini:hover{background:var(--ink);color:var(--ivory)}
.menu-toggle{display:none;border:0;background:transparent;letter-spacing:.12em;font-size:.74rem;cursor:pointer}
.hero{padding:90px 0 28px;min-height:88vh;display:flex;flex-direction:column;justify-content:flex-end}.hero-grid{display:grid;grid-template-columns:1.28fr .72fr;gap:72px;align-items:end}.hero h1,.section-head h2,.about-copy h2,.proof-grid h2,.contact h2{font-family:"Bodoni 72","Didot","Times New Roman",serif;font-weight:400;letter-spacing:-.055em}.hero h1{font-size:clamp(3.6rem,6.4vw,6.6rem);line-height:.9;margin:14px 0 0}.hero h1 em,.section-head h2 em,.about-copy h2 em,.contact h2 em{font-weight:400;color:var(--bronze);font-style:italic}.hero-copy{padding-bottom:8px}.hero-copy p{font-size:1.17rem;max-width:520px;margin:0 0 28px}.hero-copy .hero-kicker{font-size:.82rem;text-transform:uppercase;letter-spacing:.12em;font-weight:750;margin-bottom:12px}.hero-actions{display:flex;gap:12px;flex-wrap:wrap}
.button{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:15px 22px;background:var(--ink);color:var(--ivory);border-radius:999px;text-transform:uppercase;letter-spacing:.11em;font-size:.72rem;border:1px solid var(--ink);transition:.25s ease}.button:hover{transform:translateY(-2px);box-shadow:0 10px 30px rgba(23,23,20,.14)}.button.secondary{background:transparent;color:var(--ink)}.button.light{background:var(--ivory);color:var(--ink);border-color:var(--ivory)}
.hero-proof{margin-top:72px;border-top:1px solid var(--line);padding-top:18px;display:grid;grid-template-columns:repeat(4,1fr);gap:16px;font-size:.7rem;letter-spacing:.1em;text-transform:uppercase}.hero-proof span{padding-right:10px}.marquee{border-top:1px solid var(--line);border-bottom:1px solid var(--line);white-space:nowrap;overflow:hidden;padding:15px 0;text-transform:uppercase;letter-spacing:.17em;font-size:.7rem}.marquee-track{display:inline-block;animation:ticker 27s linear infinite}.marquee span{margin-right:50px}@keyframes ticker{to{transform:translateX(-50%)}}
.section{padding:116px 0}.dark{background:var(--ink);color:var(--ivory)}.section-head{display:grid;grid-template-columns:160px 1fr;gap:30px;margin-bottom:62px}.section-head h2{font-size:clamp(3.4rem,7vw,6.4rem);line-height:.92;margin:0}.section-head p{max-width:760px;font-size:1.05rem;margin:20px 0 0;opacity:.84}.case{border-top:1px solid currentColor;padding:74px 0 84px;position:relative}.case-index{position:absolute;top:12px;right:0;font-size:.68rem;letter-spacing:.18em;opacity:.55}.case-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:58px;align-items:start}.case.reverse .case-media{order:2}.case-media{position:sticky;top:104px}.case-hero{aspect-ratio:16/10;overflow:hidden;background:#292824}.case-hero img{width:100%;height:100%;object-fit:cover;transition:transform .7s ease}.case-hero:hover img{transform:scale(1.025)}.case-thumbs{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:8px}.case-thumbs img{aspect-ratio:4/3;width:100%;object-fit:cover;filter:saturate(.82)}.case-copy h3{font-family:"Bodoni 72","Didot","Times New Roman",serif;font-size:clamp(3rem,5vw,5rem);font-weight:400;line-height:.94;margin:10px 0 14px;letter-spacing:-.04em}.case-meta{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 30px}.pill{border:1px solid currentColor;border-radius:999px;padding:7px 10px;font-size:.66rem;letter-spacing:.08em;text-transform:uppercase}.case-block{border-top:1px solid currentColor;padding-top:18px;margin-top:24px}.case-block h4{font-size:.72rem;text-transform:uppercase;letter-spacing:.14em;margin:0 0 10px}.case-block p{margin:0;opacity:.86}.metric-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(255,255,255,.17);margin-top:30px}.metric{padding:18px;background:rgba(255,255,255,.045)}.metric strong{display:block;font-size:.98rem}.metric span{font-size:.74rem;opacity:.7}.inline-cta{margin:18px 0 18px;padding:34px 0;border-top:1px solid currentColor;border-bottom:1px solid currentColor;display:flex;justify-content:space-between;gap:30px;align-items:center}.inline-cta h3{font-family:"Bodoni 72","Didot","Times New Roman",serif;font-size:clamp(2.2rem,4vw,3.7rem);font-weight:400;line-height:1;margin:6px 0 0;letter-spacing:-.04em}
.cap-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}.cap{padding:34px;overflow-wrap:break-word;background:var(--ivory);min-height:250px;transition:.25s}.cap:hover{background:var(--cream)}.cap .n{font-family:"Bodoni 72","Didot","Times New Roman",serif;font-size:3.2rem;color:var(--bronze)}.cap h3{margin:34px 0 8px;font-size:1.12rem}.cap p{color:var(--muted);margin:0}.custom-code{margin-top:74px;border:1px solid var(--line);background:#111;color:#f7efe3;overflow:hidden;box-shadow:0 24px 60px rgba(23,23,20,.12)}.code-top{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid rgba(255,255,255,.12);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase}.code-dots{display:flex;gap:6px}.code-dots span{width:8px;height:8px;border:1px solid #aaa;border-radius:50%}pre{margin:0;padding:28px;overflow:auto;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.84rem;line-height:1.75;white-space:pre-wrap}
.about-band{background:var(--cream)}.about-grid{display:grid;grid-template-columns:.72fr 1.28fr;gap:72px;align-items:start}.portrait-wrap{position:sticky;top:104px}.portrait-wrap img{width:100%;aspect-ratio:4/5;object-fit:cover;filter:saturate(.86) contrast(.98);box-shadow:18px 18px 0 rgba(169,133,94,.28)}.about-copy h2{font-size:clamp(3.5rem,6.6vw,6.5rem);line-height:.9;margin:10px 0 30px}.about-copy>.lead{font-size:1.35rem;line-height:1.35;max-width:780px}.about-copy>p{max-width:760px}.founder-card{display:grid;grid-template-columns:220px 1fr;gap:28px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:26px 0;margin:42px 0 24px;align-items:start}.founder-card img{width:220px;aspect-ratio:1.2/1;object-fit:cover;background:#111}.founder-card h3{font-family:"Bodoni 72","Didot","Times New Roman",serif;font-size:2.4rem;font-weight:400;margin:4px 0 8px}.founder-card p{margin:0;color:var(--muted)}.founder-card p+p{margin-top:14px}.text-link{display:inline-block;border-bottom:1px solid currentColor;padding-bottom:4px;font-size:.78rem;text-transform:uppercase;letter-spacing:.12em}
.proof-section{background:var(--white);padding:110px 0}.proof-grid{display:grid;grid-template-columns:.78fr 1.22fr;gap:80px}.proof-grid h2{font-size:clamp(3.3rem,6vw,5.8rem);line-height:.92;margin:12px 0 0}.proof-list>div{display:grid;grid-template-columns:54px 1fr;column-gap:18px;border-top:1px solid var(--line);padding:22px 0}.proof-list span{font-family:"Bodoni 72","Didot","Times New Roman",serif;font-size:1.7rem;color:var(--bronze)}.proof-list h3{margin:2px 0 5px;font-size:1.08rem}.proof-list p{grid-column:2;margin:0;color:var(--muted)}
.contact{padding:122px 0;background:var(--sand)}.contact h2{font-size:clamp(4.4rem,9vw,8.8rem);line-height:.84;margin:12px 0 38px}.contact-row{display:flex;justify-content:space-between;align-items:end;gap:30px}.contact p{max-width:660px;font-size:1.08rem;margin:0}.contact-meta{display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--line);margin-top:54px;padding-top:18px;font-size:.78rem;text-transform:uppercase;letter-spacing:.1em}footer{padding:28px 0;background:var(--ink);color:var(--ivory)}.footer-row{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;font-size:.74rem;letter-spacing:.06em}.reveal{opacity:0;transform:translateY(18px);transition:.7s cubic-bezier(.2,.7,.2,1)}.reveal.show{opacity:1;transform:none}
.about-page{padding:110px 0}.about-page h1{font-family:"Bodoni 72","Didot","Times New Roman",serif;font-size:clamp(4rem,9vw,8rem);font-weight:400;line-height:.9;margin:0 0 60px;letter-spacing:-.05em}.about-page .lead{font-size:clamp(1.55rem,3vw,2.5rem);max-width:940px;line-height:1.2}.split{display:grid;grid-template-columns:1fr 1fr;gap:70px;margin-top:70px}.list{display:grid;gap:14px}.list div{border-top:1px solid var(--line);padding-top:12px}.archive-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-top:60px}.archive-card{border:1px solid var(--line);background:var(--white);padding:12px}.archive-card img{width:100%;aspect-ratio:16/10;object-fit:cover}.archive-card .archive-copy{padding:18px 8px 10px}.archive-card h2{font-family:"Bodoni 72","Didot","Times New Roman",serif;font-weight:400;font-size:2.3rem;margin:3px 0 8px}.archive-card p{margin:0;color:var(--muted)}
@media(max-width:960px){.hero-grid,.section-head,.case-grid,.about-grid,.proof-grid,.split{grid-template-columns:1fr}.hero{min-height:auto}.case.reverse .case-media{order:0}.case-media,.portrait-wrap{position:relative;top:auto}.cap-grid{grid-template-columns:1fr 1fr}.hero-proof{grid-template-columns:1fr 1fr}.about-grid{gap:48px}.portrait-wrap{max-width:620px}.founder-card{grid-template-columns:180px 1fr}.founder-card img{width:180px}}
@media(max-width:760px){.menu-toggle{display:block}.links{position:absolute;left:14px;right:14px;top:70px;background:var(--ivory);border:1px solid var(--line);padding:20px;display:none;flex-direction:column;align-items:stretch;gap:14px}.links.open{display:flex}.links .cta-mini{text-align:center}.nav-inner{height:70px}.hero{padding:74px 0 24px}.hero h1{font-size:clamp(2.7rem,11vw,4.4rem)}.hero-grid{gap:38px}.case{padding:64px 0 74px}.metric-strip,.cap-grid,.archive-grid{grid-template-columns:1fr}.inline-cta,.contact-row{display:block}.inline-cta .button,.contact-row .button{margin-top:18px}.founder-card{grid-template-columns:1fr}.founder-card img{width:100%;max-width:300px}.contact-meta{display:grid}.case-index{position:static;margin-bottom:16px}.section{padding:86px 0}.proof-section{padding:86px 0}}
@media(max-width:520px){.shell{width:min(100% - 28px,var(--max))}.hero-proof{grid-template-columns:1fr}.hero-actions .button{width:100%}.section-head{gap:18px}.case-grid{gap:34px}.case-thumbs{grid-template-columns:1fr 1fr}.case-thumbs img:last-child{display:none}.custom-code pre{font-size:.76rem;padding:20px}.about-copy>.lead{font-size:1.18rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.marquee-track{animation:none}.reveal{opacity:1;transform:none;transition:none}.case-hero img,.button{transition:none}}

/* V4 — richer case-study galleries + client proof */
.case-hero img{object-position:top center}
.case-thumbs img{object-position:top center}
.explore-project{width:100%;margin-top:22px;padding:15px 18px;border:1px solid rgba(255,253,248,.45);background:transparent;color:var(--ivory);display:flex;align-items:center;justify-content:space-between;gap:18px;text-transform:uppercase;letter-spacing:.12em;font-size:.69rem;cursor:pointer;transition:.25s ease}
.explore-project span{opacity:.64;font-size:.64rem}
.explore-project:hover,.explore-project:focus-visible{background:var(--ivory);color:var(--ink);outline:none;transform:translateY(-1px)}

.reviews-section{background:var(--white)}
.reviews-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.review-card{border:1px solid var(--line);background:var(--ivory);padding:30px;min-height:300px;display:flex;flex-direction:column;justify-content:space-between;box-shadow:0 18px 46px rgba(23,23,20,.045)}
.review-top{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center}
.review-initial{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;background:var(--ink);color:var(--ivory);font-family:"Bodoni 72","Didot","Times New Roman",serif;font-size:1.6rem}
.review-top strong{display:block;font-size:1rem}.review-top div span{display:block;color:var(--muted);font-size:.78rem;margin-top:2px}
.review-score{font-size:.76rem;letter-spacing:.05em;color:var(--bronze)}.review-score b{color:var(--ink);font-size:.8rem;margin-left:4px}
.review-card blockquote{font-family:"Bodoni 72","Didot","Times New Roman",serif;font-size:clamp(1.4rem,2.2vw,2rem);line-height:1.18;letter-spacing:-.025em;margin:42px 0 0}

.project-dialog{width:min(1180px,calc(100% - 32px));max-height:92vh;padding:0;border:0;background:transparent;color:var(--ink);overflow:visible}
.project-dialog::backdrop{background:rgba(10,10,9,.78);backdrop-filter:blur(8px)}
.project-modal{position:relative;display:grid;grid-template-columns:minmax(0,1.08fr) minmax(340px,.92fr);background:var(--ivory);border:1px solid rgba(255,255,255,.18);box-shadow:0 34px 100px rgba(0,0,0,.38);max-height:92vh;overflow:hidden}
.project-close{position:absolute;right:14px;top:14px;z-index:5;border:1px solid rgba(23,23,20,.22);background:rgba(243,235,221,.9);backdrop-filter:blur(12px);border-radius:999px;padding:9px 12px;text-transform:uppercase;letter-spacing:.1em;font-size:.65rem;cursor:pointer}
.project-close:hover,.project-close:focus-visible{background:var(--ink);color:var(--ivory);outline:none}
.project-gallery{background:#111;color:var(--ivory);min-width:0;display:flex;flex-direction:column;max-height:92vh}
.project-gallery-head{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid rgba(255,255,255,.12);font-size:.68rem;letter-spacing:.15em;text-transform:uppercase}
.project-gallery-controls{display:flex;gap:7px}.project-gallery-controls button{width:34px;height:34px;border-radius:50%;border:1px solid rgba(255,255,255,.35);background:transparent;color:var(--ivory);cursor:pointer;font-size:1rem}.project-gallery-controls button:hover,.project-gallery-controls button:focus-visible{background:var(--ivory);color:var(--ink);outline:none}
.project-image-stage{min-height:0;overflow:auto;flex:1;padding:18px;background:#0b0b0a;scrollbar-color:#777 #1a1a18}
.project-image-stage img{width:100%;height:auto;max-width:none;background:#fff;box-shadow:0 12px 35px rgba(0,0,0,.28)}
.project-thumbnails{display:flex;gap:8px;overflow-x:auto;padding:12px 14px 14px;border-top:1px solid rgba(255,255,255,.12)}
.project-thumb{flex:0 0 86px;border:1px solid transparent;background:#1d1d1b;padding:0;cursor:pointer;opacity:.58;transition:.2s}
.project-thumb img{width:84px;height:62px;object-fit:cover;object-position:top center}
.project-thumb.active,.project-thumb:hover,.project-thumb:focus-visible{opacity:1;border-color:var(--ivory);outline:none}
.project-details{overflow:auto;padding:58px 42px 42px;max-height:92vh}
.project-details h2{font-family:"Bodoni 72","Didot","Times New Roman",serif;font-size:clamp(3rem,5vw,5.2rem);font-weight:400;line-height:.9;letter-spacing:-.05em;margin:10px 0 20px}
.project-intro{font-size:1.08rem;line-height:1.5;color:var(--muted);margin:0 0 30px}
.project-story{margin:0}.project-story>div{border-top:1px solid var(--line);padding:18px 0}.project-story dt{font-size:.68rem;font-weight:800;letter-spacing:.15em;text-transform:uppercase;margin-bottom:7px}.project-story dd{margin:0;color:#403b35;line-height:1.55}
.project-book{margin-top:26px}
body.dialog-open{overflow:hidden}

@media(max-width:960px){
  .reviews-grid{grid-template-columns:1fr}
  .project-modal{grid-template-columns:1fr;overflow:auto;max-height:92vh}
  .project-gallery,.project-details{max-height:none}
  .project-gallery{min-height:60vh}
  .project-image-stage{max-height:62vh}
  .project-details{overflow:visible;padding:44px 30px 36px}
}
@media(max-width:620px){
  .review-card{padding:22px;min-height:auto}.review-top{grid-template-columns:auto 1fr}.review-score{grid-column:1/-1}.review-card blockquote{margin-top:28px}
  .project-dialog{width:calc(100% - 14px);max-height:96vh}.project-modal{max-height:96vh}.project-gallery{min-height:50vh}.project-image-stage{padding:10px}.project-details{padding:40px 20px 28px}.project-close{right:8px;top:8px}.project-thumb{flex-basis:72px}.project-thumb img{width:70px;height:52px}
}
