:root{--ink:#17202a;--muted:#66717d;--paper:#fbfcfd;--surface:#fff;--line:#dce3e7;--accent:#0b6e75;--accent-dark:#07565c;--accent-soft:#dceff0;--navy:#152d3a;--warm:#f5f2ed}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
.site-header{height:76px;display:flex;align-items:center;justify-content:space-between;padding:0 max(5vw,28px);position:sticky;top:0;background:rgba(251,252,253,.92);backdrop-filter:blur(16px);z-index:20;border-bottom:1px solid rgba(220,227,231,.8)}
.brand{font-size:16px;font-weight:700;letter-spacing:-.02em}
nav{display:flex;align-items:center;gap:28px;font-size:14px;font-weight:500}
nav a{transition:color .2s}
nav a:hover{color:var(--accent)}
.nav-cta{border:1px solid var(--line);border-radius:8px;width:112px;height:42px;display:grid;place-items:center;background:#fff}
.hero,.section,footer,.statement-inner,.contact-inner{width:min(1180px,90vw);margin:auto}
.hero{min-height:650px;padding:115px 0 100px;display:flex;flex-direction:column;justify-content:center}
.hero-layout{display:grid;grid-template-columns:1.45fr .55fr;gap:80px;align-items:end}
.eyebrow{font-size:12px;line-height:1.4;letter-spacing:.14em;font-weight:700;margin:0 0 20px;color:var(--accent)}
.hero h1{font-size:clamp(46px,5.8vw,78px);line-height:1.04;font-weight:600;letter-spacing:-.05em;margin:0;max-width:900px}
.hero h1 span{color:var(--accent)}
.hero-side{padding-bottom:8px}
.hero-side>p{font-size:18px;color:var(--muted);margin:0 0 30px}
.hero-actions{display:flex}
.button{border-radius:8px;width:142px;height:44px;display:grid;place-items:center;font-size:14px;font-weight:600}
.primary{background:var(--navy);color:#fff}
.section{padding:110px 0}
.work{border-top:1px solid var(--line)}
.section-head{display:grid;grid-template-columns:1fr 390px;gap:70px;align-items:end;margin-bottom:52px}
.section-head h2,.about h2,.background h2{font-size:clamp(34px,3.6vw,50px);line-height:1.1;font-weight:600;letter-spacing:-.04em;margin:0}
.section-head>p{color:var(--muted);margin:0 0 5px}
.project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}
.project-link{display:block;height:100%}
/* The first project spans both columns, so the grid reads 1 / 2 / 2. */
.project-link.featured-link{grid-column:1/-1}
.project{background:var(--surface);border:1px solid var(--line);border-radius:16px;overflow:hidden;height:100%;display:flex;flex-direction:column;transition:transform .28s ease,box-shadow .28s ease,border-color .28s ease}
.project-link:hover .project,.project:hover{transform:translateY(-5px);box-shadow:0 18px 45px rgba(21,45,58,.08);border-color:#c8d5da}
/* The five covers are now all 1.57-1.72, so a single 5:3 box suits them all:
   the image fills it edge to edge with at most ~6% trimmed, which leaves no
   margin to colour and keeps every card the same height. */
.project-visual{aspect-ratio:5/3;display:block;overflow:hidden;background:#edf1f2}
.project-visual img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .55s cubic-bezier(.2,.7,.2,1)}
.project-link:hover .project-visual img{transform:scale(1.025)}
/* The featured card is twice as wide, so a 5:3 box would make it twice as
   tall as well. A wider box keeps it proportionate; anchoring to the top
   trims only the bottom, where the mockups are already cut off, and leaves
   the logo and tagline in the upper third untouched. */
.featured-link .project-visual{aspect-ratio:12/5}
.featured-link .project-visual img{object-position:top}
.project-body{padding:32px;display:flex;flex-direction:column;flex:1}
.project-number{font-size:11px;font-weight:700;letter-spacing:.12em;color:var(--accent);margin-bottom:15px}
.project-body h3{font-size:29px;line-height:1.15;font-weight:600;margin:0 0 13px;letter-spacing:-.035em}
.project-body p{color:var(--muted);max-width:620px;margin:0;font-size:15px}
.project-body .project-lead{font-size:17px;color:var(--ink);margin-bottom:12px}
.project-tags{display:flex;gap:7px;flex-wrap:wrap;margin-top:auto;padding-top:27px}
.project-tags span,.skills span{font-size:11px;font-weight:500;padding:6px 10px;border:1px solid var(--line);border-radius:6px;background:#fff}
.statement{background:var(--navy);color:#fff;padding:110px 0;position:relative}
.statement:before{content:"";position:absolute;top:-1px;left:0;right:0;height:46px;background:var(--paper);clip-path:polygon(0 0,100% 0,100% 12%,0 100%)}
.statement .eyebrow{color:#72c2c6}
.statement-text{font-size:clamp(29px,3.5vw,46px);line-height:1.2;letter-spacing:-.035em;max-width:1000px;margin:26px 0 0;color:#cbd7dc}
.statement-text strong{color:#fff}
.process-inline{margin-top:70px;padding-top:28px;border-top:1px solid #35505c}
.process-label{font-size:10px;letter-spacing:.16em;color:#77b8bc;font-weight:700;margin:0 0 18px}
.process-steps{display:grid;grid-template-columns:repeat(5,1fr)}
.process-steps span{padding:12px 18px 2px 0;font-size:13px;font-weight:500;position:relative}
.process-steps span:not(:last-child):after{content:"";position:absolute;right:18px;top:18px;width:5px;height:5px;background:#77b8bc;border-radius:50%}
.process-steps b{display:block;font-size:10px;color:#78909a;font-weight:500;margin-bottom:5px}
.about{display:grid;grid-template-columns:.9fr 1.1fr;gap:100px}
.about-copy{font-size:18px;color:var(--muted);padding-top:32px}
.about-copy p:first-child{margin-top:0;color:var(--ink);font-size:20px}
.skills{display:flex;gap:8px;flex-wrap:wrap;margin-top:36px;color:var(--ink)}
.background{border-top:1px solid var(--line)}
.background-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:22px}
.career-card{border:1px solid var(--line);border-radius:16px;padding:42px;background:var(--surface)}
.origin-card{background:var(--warm)}
.career-label{font-size:11px;letter-spacing:.12em;font-weight:700;color:var(--accent)}
.career-card h3{font-size:27px;letter-spacing:-.03em;margin:12px 0 32px}
.origin-card>p{color:var(--muted);font-size:15px}
.career-item{display:grid;grid-template-columns:100px 1fr;gap:15px;border-top:1px solid var(--line);padding:22px 0}
.career-item>span{font-size:12px;color:var(--muted);padding-top:3px}
.career-item strong{font-size:15px}
.career-item p{margin:3px 0 0;color:var(--muted);font-size:13px}
.career-item.compact{margin-top:20px}
.background-note{border-top:1px solid #ddd6ca;padding-top:20px;margin-top:8px!important;font-size:12px!important}
.contact{background:var(--accent-soft);position:relative;margin-top:20px}
.contact:before{content:"";position:absolute;top:-55px;left:0;right:0;height:56px;background:var(--accent-soft);clip-path:polygon(0 100%,100% 0,100% 100%)}
.contact-inner{padding:105px 0}
.contact-layout{display:grid;grid-template-columns:.85fr 1.15fr;gap:110px}
.contact h2{font-size:clamp(34px,3.8vw,50px);line-height:1.08;font-weight:600;letter-spacing:-.04em;margin:0}
.contact-intro{color:var(--muted);max-width:430px;margin:24px 0 0}
.contact-details{border-top:1px solid #aacfd1}
.contact-row{display:grid;grid-template-columns:120px 1fr;gap:25px;padding:21px 0;border-bottom:1px solid #aacfd1;font-size:15px}
.contact-row>span:first-child{color:var(--muted);font-size:13px}
.contact-row a{font-weight:500}
.contact-row a:hover{text-decoration:underline}
footer{padding:27px 0 38px;display:flex;justify-content:space-between;color:var(--muted);font-size:11px}
@media(max-width:800px){.featured-link .project-visual{aspect-ratio:5/3}
.site-header{height:68px}
nav{gap:12px}
nav a:not(.nav-cta){display:none}
.nav-cta{width:96px;height:40px}
.hero{min-height:600px;padding:85px 0 75px}
.hero-layout{grid-template-columns:1fr;gap:45px}
.hero h1{font-size:44px}
.hero-side>p{font-size:16px}
.section{padding:80px 0}
.section-head{grid-template-columns:1fr;gap:25px;margin-bottom:42px}
.section-head h2,.about h2,.background h2{font-size:36px}
.project-grid{grid-template-columns:1fr}
.project-body{padding:30px}
.statement{padding:100px 0 80px}
.process-steps{grid-template-columns:1fr 1fr;gap:14px 20px}
.process-steps span:not(:last-child):after{display:none}
.about{grid-template-columns:1fr;gap:30px}
.about-copy{padding-top:0}
.background-grid{grid-template-columns:1fr}
.career-card{padding:28px}
.career-item{grid-template-columns:75px 1fr}
.contact-inner{padding:80px 0}
.contact-layout{grid-template-columns:1fr;gap:45px}
.contact-row{grid-template-columns:85px 1fr;gap:15px;word-break:break-word}
footer{gap:12px;flex-direction:column}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}
.project{transition:none}
}

/* ── Case-study pages ───────────────────────────────────────── */
.case{width:min(1040px,90vw);margin:auto}

.back{display:inline-block;margin:32px 0 0;font-size:14px;font-weight:600;color:var(--accent)}

.back:hover{text-decoration:underline}

.case-hero{padding:80px 0 58px}

.case-hero h1{font-size:clamp(58px,9vw,104px);line-height:.95;letter-spacing:-.065em;font-weight:600;margin:0}

.case-hero.long h1{font-size:clamp(50px,8vw,94px);line-height:.98;letter-spacing:-.06em}

.lead{font-size:clamp(20px,2.2vw,27px);line-height:1.45;color:var(--muted);max-width:840px;margin:30px 0 38px}

.case-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;padding:24px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:14px}

.case-facts.four{grid-template-columns:repeat(4,1fr)}

.case-facts small{display:block;color:var(--muted);margin-bottom:4px}

.case-banner{min-height:440px;border-radius:20px;display:grid;place-items:center;margin:45px 0}

.case-banner.image-banner{display:block;min-height:0;background:transparent;overflow:hidden}
.case-banner.image-banner img{display:block;width:100%;max-height:680px;object-fit:cover;border-radius:20px}
.case-figure{margin:36px 0}
.case-figure img{display:block;width:100%;max-height:720px;object-fit:contain;background:#fff;border:1px solid var(--line);border-radius:16px}
.case-figure figcaption,.case-gallery figcaption,.compare figcaption{margin-top:10px;color:var(--muted);font-size:13px}
.case-gallery,.compare{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:36px 0}
.case-gallery figure,.compare figure{margin:0}
.case-gallery img,.compare img{display:block;width:100%;height:100%;max-height:580px;object-fit:contain;background:#fff;border:1px solid var(--line);border-radius:16px}

.case-section{padding:80px 0;border-bottom:1px solid var(--line)}

.case-section h2{font-size:clamp(34px,4vw,48px);line-height:1.12;letter-spacing:-.045em;font-weight:600;margin:0 0 25px;max-width:820px}

.case-section h3{font-size:22px;margin:40px 0 10px}

.case-section>p{font-size:18px;color:var(--muted);max-width:800px}

.card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:34px}

.card-grid.two{grid-template-columns:repeat(2,1fr)}

.card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:25px}

.card strong{font-size:17px}

.card p{font-size:14px;color:var(--muted);margin:8px 0 0}

.tags{display:flex;gap:8px;flex-wrap:wrap;margin-top:30px}

.tags span{font-size:12px;padding:7px 11px;border:1px solid var(--line);border-radius:6px;background:#fff}

.result{background:var(--navy);color:#fff;border-radius:18px;padding:48px;margin-top:35px}

.result p{color:#cbd7dc;font-size:17px;max-width:760px;margin:0}

.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:34px 0}
.detail-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:30px}
.detail-card h3{margin:0 0 12px}
.detail-card p{color:var(--muted);margin:0}
.detail-card .eyebrow{color:var(--accent);margin-bottom:12px}
.case-list{max-width:800px;margin:18px 0 0;padding-left:22px;color:var(--muted);font-size:17px}
.case-list li{padding:4px 0}
.case-list strong{color:var(--ink)}
.compact-list{font-size:15px;margin-top:8px}
.video-callout{display:grid;grid-template-columns:1fr auto;gap:45px;align-items:center;background:var(--accent-soft);border-radius:18px;padding:38px;margin-top:42px}
.video-callout h3{margin:0 0 8px}
.video-callout p{color:var(--muted);margin:0;max-width:650px}
.wide-button{width:190px}
.booklet-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;margin:30px 0 48px}
.booklet-gallery img{display:block;width:100%;aspect-ratio:3/4;object-fit:contain;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 10px 28px rgba(21,45,58,.06)}
.numbered-next-steps{border-top:1px solid var(--line);margin-top:25px}
.numbered-next-steps article{display:grid;grid-template-columns:70px 1fr;gap:20px;padding:28px 0;border-bottom:1px solid var(--line)}
.numbered-next-steps article>span{color:var(--accent);font-size:12px;font-weight:700;letter-spacing:.12em}
.numbered-next-steps h3{margin:0 0 8px}
.numbered-next-steps p{color:var(--muted);margin:0;max-width:800px}

@media(max-width:700px){
.case-facts,.case-facts.four{grid-template-columns:1fr 1fr}

.card-grid,.card-grid.two{grid-template-columns:1fr}

.case-banner{min-height:360px}

.result{padding:32px}
.case-gallery,.compare{grid-template-columns:1fr}
.detail-grid,.video-callout{grid-template-columns:1fr}
.video-callout{padding:28px}
.booklet-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}
.wide-button{width:100%}

}

@media(max-width:480px){.case-facts,.case-facts.four{grid-template-columns:1fr}
}
