
:root { --ink:#0d2024; --ink-soft:#173238; --cream:#f3f0e8; --paper:#fbfaf6; --teal:#54d4bf; --coral:#ff6c55; --line:rgba(13,32,36,.18); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:Arial,Helvetica,sans-serif; }
a { color:inherit; text-decoration:none; }
button { font:inherit; }
img { max-width:100%; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
::selection { background:var(--teal); color:var(--ink); }

.site-header { height:84px; display:grid; grid-template-columns:1fr auto 1fr; align-items:center; padding:0 4vw; border-bottom:1px solid var(--line); background:rgba(251,250,246,.92); backdrop-filter:blur(12px); position:sticky; top:0; z-index:20; }
.brand { display:flex; align-items:center; gap:12px; font-weight:700; }
.brand>span:first-child { width:38px; height:38px; display:grid; place-items:center; background:var(--ink); color:var(--teal); font-size:13px; border-radius:50%; letter-spacing:-.04em; }
.brand-name { font-size:14px; }
nav { display:flex; gap:34px; font-size:13px; }
nav a,.text-link { position:relative; }
nav a::after,.text-link::after { content:""; position:absolute; height:1px; left:0; right:100%; bottom:-5px; background:currentColor; transition:right .25s ease; }
nav a:hover::after,.text-link:hover::after { right:0; }
.header-contact { justify-self:end; display:flex; align-items:center; gap:8px; font-size:13px; font-weight:700; }
.menu-toggle,.mobile-contact { display:none; }
.header-contact svg,.button svg,.contact-row svg { width:18px; transition:transform .2s ease; }
.header-contact:hover svg,.button:hover svg,.contact-row a:hover svg { transform:translateX(4px); }

.hero { min-height:calc(100vh - 84px); padding:6vh 4vw 4vh; display:flex; flex-direction:column; justify-content:space-between; overflow:hidden; }
.hero-kicker { align-self:flex-end; display:flex; align-items:center; gap:9px; font-size:11px; text-transform:uppercase; letter-spacing:.12em; }
.status-dot { width:8px; height:8px; border-radius:50%; background:var(--teal); box-shadow:0 0 0 5px rgba(84,212,191,.16); }
.hero-grid { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr); gap:6vw; align-items:center; padding:5vh 0 4vh; }
.eyebrow,.section-label { margin:0 0 20px; font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.18em; }
.hero h1 { margin:0; max-width:980px; font-family:Georgia,'Times New Roman',serif; font-size:clamp(54px,5.6vw,96px); font-weight:400; letter-spacing:-.055em; line-height:.92; }
.hero h1 em { color:var(--coral); font-weight:400; }
.hero-promise { max-width:760px; margin:34px 0 0; font-size:clamp(16px,1.25vw,20px); line-height:1.6; color:#354a4f; }
.hero-actions { display:flex; align-items:center; gap:30px; margin-top:34px; }
.button { display:inline-flex; align-items:center; justify-content:center; gap:24px; padding:17px 22px; font-size:13px; font-weight:700; }
.button-primary { background:var(--ink); color:white; }
.button-primary:hover { background:var(--ink-soft); }
.text-link { font-size:13px; font-weight:700; }
.text-link span { margin-left:8px; }
.portrait-frame { position:relative; margin:0; align-self:stretch; min-height:480px; background:var(--teal); overflow:hidden; }
.portrait-frame::before { content:""; position:absolute; inset:16px; border:1px solid rgba(13,32,36,.24); z-index:1; pointer-events:none; }
.portrait-frame img { width:100%; height:100%; min-height:480px; display:block; object-fit:cover; object-position:center 26%; filter:saturate(.88) contrast(1.02); }
.portrait-frame figcaption { position:absolute; left:0; right:0; bottom:0; z-index:2; display:flex; justify-content:space-between; padding:18px 22px; background:var(--ink); color:white; font-size:10px; text-transform:uppercase; letter-spacing:.1em; }
.hero-footer { display:flex; justify-content:space-between; padding-top:22px; border-top:1px solid var(--line); font-size:10px; text-transform:uppercase; letter-spacing:.12em; }
.proof-strip span { display:flex; align-items:baseline; gap:8px; }
.proof-strip strong { font-family:Georgia,'Times New Roman',serif; font-size:23px; font-weight:400; color:var(--coral); letter-spacing:-.03em; text-transform:none; }

.metrics-section { background:var(--ink); color:white; padding:96px 4vw 64px; }
.light { color:var(--teal); }
.metrics-grid { display:grid; grid-template-columns:repeat(4,1fr); margin-top:68px; }
.metric { min-height:220px; display:flex; flex-direction:column; justify-content:space-between; padding:0 2.5vw 22px; border-left:1px solid rgba(255,255,255,.22); }
.metric:first-child { padding-left:0; border-left:0; }
.metric strong { font-family:Georgia,'Times New Roman',serif; font-size:clamp(58px,7vw,108px); font-weight:400; letter-spacing:-.06em; color:var(--cream); }
.metric span { max-width:150px; font-size:12px; line-height:1.5; text-transform:uppercase; letter-spacing:.1em; color:rgba(255,255,255,.72); }
.impact-note { max-width:560px; margin:50px 0 0 auto; font-size:12px; line-height:1.7; color:rgba(255,255,255,.55); }

.section-pad { padding:130px 4vw; }
.section-heading { display:grid; grid-template-columns:.55fr 1.45fr; gap:6vw; align-items:start; }
.section-heading h2,.case-study h2,.now-section h2,.contact-section h2 { margin:0; font-family:Georgia,'Times New Roman',serif; font-size:clamp(42px,5.4vw,86px); font-weight:400; line-height:1.02; letter-spacing:-.045em; }
.manifesto { background:var(--cream); }
.manifesto-copy { width:52%; margin:92px 0 0 auto; display:grid; grid-template-columns:1fr 1fr; gap:4vw; }
.manifesto-copy p { margin:0; font-size:17px; line-height:1.65; }
.manifesto-copy p:first-child { font-weight:700; }
.section-heading.compact { grid-template-columns:1fr; gap:0; }
.section-heading.compact h2 { max-width:620px; }
.capability-list { margin-top:90px; border-top:1px solid var(--line); }
.capability { display:grid; grid-template-columns:.2fr .65fr 1fr; gap:4vw; align-items:start; padding:44px 0; border-bottom:1px solid var(--line); }
.capability-number { font-family:Georgia,serif; color:var(--coral); font-style:italic; }
.capability h3 { margin:0; font-size:clamp(23px,2vw,32px); font-weight:500; }
.capability p { margin:0; max-width:610px; font-size:15px; line-height:1.75; color:#415156; }

.case-study { background:var(--ink-soft); color:white; padding:120px 4vw; }
.case-intro { display:flex; justify-content:space-between; align-items:center; }
.case-index { font-size:11px; color:rgba(255,255,255,.5); }
.case-grid { display:grid; grid-template-columns:1.2fr .8fr; gap:10vw; margin-top:70px; }
.case-grid h2 { color:var(--cream); }
.case-copy { padding-top:12px; }
.case-copy p { margin:0 0 24px; font-size:16px; line-height:1.75; color:rgba(255,255,255,.74); }
.case-pillars { display:grid; grid-template-columns:repeat(3,1fr); margin-top:110px; border-top:1px solid rgba(255,255,255,.2); border-bottom:1px solid rgba(255,255,255,.2); }
.case-pillars div { padding:28px 3vw; border-left:1px solid rgba(255,255,255,.2); }
.case-pillars div:first-child { padding-left:0; border-left:0; }
.case-pillars span { display:block; margin-bottom:9px; font-size:10px; text-transform:uppercase; letter-spacing:.14em; color:var(--teal); }
.case-pillars strong { font-size:13px; font-weight:500; }

.journey { background:var(--paper); }
.timeline { margin-top:100px; border-top:1px solid var(--line); }
.timeline-item { display:grid; grid-template-columns:.55fr 1.45fr; gap:6vw; padding:58px 0; border-bottom:1px solid var(--line); }
.timeline-period { display:flex; align-items:flex-start; gap:24px; font-size:12px; letter-spacing:.08em; }
.timeline-period span { color:var(--coral); font-family:Georgia,serif; font-style:italic; }
.timeline-main { display:grid; grid-template-columns:.7fr .9fr; column-gap:5vw; }
.timeline-main h3 { margin:0; font-size:27px; font-weight:500; line-height:1.2; }
.timeline-company { margin:9px 0 36px!important; font-size:12px!important; text-transform:uppercase; letter-spacing:.1em; color:#68777a!important; grid-column:1; }
.timeline-main>p:not(.timeline-company) { margin:0; grid-column:2; grid-row:1/span 2; font-size:15px; line-height:1.7; color:#415156; }
.timeline-main ul { grid-column:2; margin:24px 0 0; padding:0; list-style:none; }
.timeline-main li { position:relative; margin-top:10px; padding-left:18px; font-size:13px; line-height:1.5; color:#415156; }
.timeline-main li::before { content:"—"; position:absolute; left:0; color:var(--coral); }

.now-section { display:grid; grid-template-columns:1fr 1fr; gap:9vw; background:var(--teal); }
.now-content>p { margin:42px 0 50px; max-width:580px; font-size:18px; line-height:1.65; }
.tag-list { display:flex; flex-wrap:wrap; gap:10px; }
.tag-list span { padding:10px 14px; border:1px solid rgba(13,32,36,.35); border-radius:999px; font-size:11px; text-transform:uppercase; letter-spacing:.08em; }

.contact-section { padding:150px 4vw 100px; background:var(--ink); color:white; }
.contact-section h2 { max-width:1000px; color:var(--cream); }
.contact-row { display:flex; gap:2vw; margin-top:90px; }
.contact-row a { flex:1; display:flex; align-items:center; justify-content:space-between; padding:23px 0; border-top:1px solid rgba(255,255,255,.24); border-bottom:1px solid rgba(255,255,255,.24); font-size:14px; }
footer { display:flex; justify-content:space-between; padding:28px 4vw; background:var(--ink); color:rgba(255,255,255,.45); border-top:1px solid rgba(255,255,255,.12); font-size:10px; text-transform:uppercase; letter-spacing:.1em; }
.has-js .reveal { opacity:0; transform:translateY(28px); transition:opacity .7s ease,transform .7s ease; }
.has-js .reveal.is-visible { opacity:1; transform:none; }

@media (max-width:900px) {
  .site-header { grid-template-columns:1fr auto auto; } .brand-name { display:none; }
  .menu-toggle { display:flex; width:42px; height:42px; padding:0; border:0; background:transparent; flex-direction:column; justify-content:center; gap:6px; cursor:pointer; }
  .menu-toggle>span:not(.sr-only) { display:block; width:24px; height:1px; background:var(--ink); transition:transform .2s ease; }
  .site-header nav { display:none; position:absolute; top:84px; left:0; right:0; padding:28px 4vw 34px; background:var(--paper); border-bottom:1px solid var(--line); flex-direction:column; gap:22px; font-size:18px; }
  .site-header.menu-open nav { display:flex; }
  .site-header.menu-open .menu-toggle>span:first-child { transform:translateY(3.5px) rotate(45deg); }
  .site-header.menu-open .menu-toggle>span:nth-child(2) { transform:translateY(-3.5px) rotate(-45deg); }
  .mobile-contact { display:block; color:var(--coral); }
  .hero { min-height:auto; padding-top:56px; } .hero-kicker { align-self:flex-start; line-height:1.5; }
  .hero-grid,.case-grid,.now-section { grid-template-columns:1fr; }
  .hero-grid { padding:70px 0 50px; gap:52px; } .hero h1 { font-size:clamp(56px,11vw,82px); }
  .hero-copy { max-width:820px; } .portrait-frame { min-height:620px; } .portrait-frame img { min-height:620px; object-position:center 22%; }
  .metrics-grid { grid-template-columns:1fr 1fr; row-gap:54px; } .metric:nth-child(3) { padding-left:0; border-left:0; }
  .section-heading,.timeline-item { grid-template-columns:1fr; gap:34px; } .manifesto-copy { width:80%; } .case-grid { gap:48px; }
  .timeline-main { grid-template-columns:1fr; } .timeline-main>p:not(.timeline-company),.timeline-main ul { grid-column:1; grid-row:auto; }
  .now-content>p { margin-top:0; } .contact-row { flex-wrap:wrap; } .contact-row a { flex-basis:45%; }
}

@media (max-width:580px) {
  .site-header { height:70px; padding:0 20px; } .header-contact { font-size:12px; }
  .site-header nav { top:70px; padding-left:20px; padding-right:20px; }
  .hero { padding:36px 20px 28px; } .hero h1 { font-size:55px; }
  .hero-actions { align-items:flex-start; flex-direction:column; gap:22px; }
  .portrait-frame,.portrait-frame img { min-height:470px; }
  .hero-footer { gap:16px; flex-wrap:wrap; } .hero-footer span { flex-basis:45%; }
  .proof-strip strong { font-size:20px; }
  .metrics-section,.section-pad,.case-study,.contact-section { padding-left:20px; padding-right:20px; }
  .metrics-section { padding-top:80px; } .metrics-grid { grid-template-columns:1fr; }
  .metric { min-height:160px; padding:0 0 20px; border-left:0; border-bottom:1px solid rgba(255,255,255,.2); }
  .section-pad { padding-top:90px; padding-bottom:90px; }
  .section-heading h2,.case-study h2,.now-section h2,.contact-section h2 { font-size:42px; }
  .manifesto-copy { width:100%; margin-top:60px; grid-template-columns:1fr; }
  .capability { grid-template-columns:46px 1fr; gap:18px; } .capability p { grid-column:2; }
  .case-study { padding-top:90px; padding-bottom:90px; } .case-pillars { grid-template-columns:1fr; margin-top:70px; }
  .case-pillars div,.case-pillars div:first-child { padding:24px 0; border-left:0; border-top:1px solid rgba(255,255,255,.18); }
  .case-pillars div:first-child { border-top:0; } .timeline { margin-top:70px; } .timeline-item { padding:42px 0; }
  .contact-row { flex-direction:column; gap:0; margin-top:60px; } .contact-row a { width:100%; }
  footer { padding:28px 20px; flex-direction:column; gap:14px; }
}

@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { transition:none!important; } .has-js .reveal { opacity:1; transform:none; } }
