:root {
  --ink: #211b17;
  --paper: #f3eee7;
  --cream: #fffaf3;
  --brown: #211b17;
  --orange: #211b17;
  --line: rgba(33, 27, 23, .22);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: "DM Sans", sans-serif; }
img { display: block; width: 100%; height: auto; image-rendering: auto; }
a { color: inherit; text-decoration: none; }
figure { margin: 0; }
em { font-style: normal; }

.site-header { position: sticky; top: 0; z-index: 10; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; padding: 18px 30px; background: rgba(243,238,231,.92); border-bottom: 1px solid var(--line); backdrop-filter: blur(12px); text-transform: uppercase; letter-spacing: .12em; font-size: 11px; }
.mark { justify-self: start; width: 36px; height: 36px; display: grid; place-items: center; border: 1px solid var(--ink); border-radius: 50%; font-family: "DM Sans", sans-serif; font-size: 14px; font-weight: 600; letter-spacing: 0; }
nav { display: flex; gap: 32px; }
nav a { position: relative; }
nav a::after { content: ""; position: absolute; left: 0; right: 100%; bottom: -5px; height: 1px; background: var(--ink); transition: right .25s ease; }
nav a:hover::after, nav a:focus-visible::after { right: 0; }
.index { justify-self: end; }

.hero { padding: 34px 30px 0; }
.eyebrow { display: flex; justify-content: space-between; padding-bottom: 18px; border-bottom: 1px solid var(--ink); font-size: 11px; text-transform: uppercase; letter-spacing: .13em; }
h1, h2 { margin: 0; font-family: "DM Sans", sans-serif; font-weight: 500; line-height: .83; letter-spacing: -.055em; }
h1 { font-size: clamp(110px, 20vw, 300px); padding: 34px 0 25px; }
h1 em, h2 em { color: var(--brown); font-style: normal; font-weight: 500; }
.hero-copy { max-width: 520px; margin: 0 0 34px auto; font-size: clamp(19px, 2.1vw, 32px); line-height: 1.25; }
.hero-image { height: min(76vw, 900px); overflow: hidden; background: var(--cream); }
.hero-image img { height: 100%; object-fit: cover; }

.section-grid { display: grid; grid-template-columns: 1fr 2fr 1fr; gap: 38px; padding: 120px 30px; border-bottom: 1px solid var(--line); }
.section-label { text-transform: uppercase; letter-spacing: .14em; font-size: 11px; padding-top: 7px; }
.lead { margin: 0 0 32px; font-family: "DM Sans", sans-serif; font-weight: 500; font-size: clamp(42px, 5vw, 75px); line-height: .98; letter-spacing: -.035em; }
.overview-copy > p:last-child, .opportunity-notes, .making-copy > p, .resolution-copy > p { font-size: 16px; line-height: 1.65; max-width: 680px; }
.details { margin: 0; }
.details div { padding: 0 0 22px; margin-bottom: 22px; border-bottom: 1px solid var(--line); }
.details dt { margin-bottom: 6px; text-transform: uppercase; letter-spacing: .14em; font-size: 10px; }
.details dd { margin: 0; font-size: 14px; }

.opportunity { background: var(--cream); color: var(--ink); }
.statement { grid-column: 2 / 4; }
.statement p { margin: 0; font-family: "DM Sans", sans-serif; font-weight: 500; font-size: clamp(58px, 8vw, 122px); line-height: .96; letter-spacing: -.035em; }
.statement em { color: var(--brown); }
.opportunity-notes { grid-column: 2 / 3; margin-top: 50px; }

.full-bleed-photo { padding: 96px 30px; background: var(--cream); }
.full-bleed-photo img { width: min(100%, 822px); margin: 0 auto; }

.ideation { grid-template-columns: 1fr 1fr 2fr; }
.ideation-intro h2, .making-copy h2, .resolution-copy h2 { font-size: clamp(62px, 7.5vw, 118px); }
.ideation-intro p { margin-top: 42px; font-size: 16px; line-height: 1.65; }
.sketch-card { align-self: start; }
.sketch-card img { background: #fff; mix-blend-mode: multiply; }
figcaption { display: flex; justify-content: space-between; padding-top: 10px; text-transform: uppercase; letter-spacing: .12em; font-size: 9px; }

.iterations { padding: 120px 30px; background: #e9e2d9; color: var(--ink); }
.iterations > h2 { max-width: 1100px; margin: 45px 0 80px; font-size: clamp(70px, 10vw, 150px); }
.iterations h2 em { color: var(--brown); }
.iteration-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px; margin-left: 25%; }
.iteration-grid article { border-top: 1px solid currentColor; padding-top: 16px; }
.step { font-family: "DM Sans", sans-serif; font-size: 28px; font-weight: 500; }
.iteration-grid h3 { margin: 50px 0 12px; font-size: 16px; text-transform: uppercase; letter-spacing: .08em; }
.iteration-grid p { font-size: 14px; line-height: 1.6; }
.concept-board { margin-top: 80px; padding: 24px; background: var(--cream); }

.making { grid-template-columns: 1fr 3fr; }
.making-copy { grid-column: 2; }
.making-copy > p { margin: 40px 0 80px; max-width: 680px; }
.making-gallery { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr 1fr; align-items: start; gap: 28px; }
.making-gallery img { width: auto; max-width: 100%; justify-self: center; }
.making-gallery .wide { max-width: 644px; }
.making-gallery img:nth-child(2) { max-width: 738px; }
.making-gallery img:nth-child(3) { max-width: 598px; }
.making-prototype { grid-column: 1 / -1; width: min(100%, 760px); justify-self: center; margin-top: 18px; }

.resolution { grid-template-columns: 1fr 1fr 1fr; }
.resolution-copy { grid-column: 2 / 4; }
.resolution-copy > p { margin: 40px 0 75px; }
.feature-image { grid-column: 1 / 3; background: #fff; padding: 20px; }
.drawing-image { align-self: end; }

.finale { padding: 120px 30px 35px; background: var(--cream); }
.finale-title { display: flex; align-items: flex-end; justify-content: space-between; margin-bottom: 45px; }
.finale-title > span { text-transform: uppercase; font-size: 11px; letter-spacing: .14em; }
.finale-title h2 { font-size: clamp(80px, 13vw, 190px); }
.finale > img { width: min(100%, 1800px); margin: 0 auto; }
.finale-caption { display: flex; justify-content: space-between; align-items: end; padding-top: 28px; font-size: 17px; line-height: 1.5; }
.finale-caption a { text-transform: uppercase; letter-spacing: .12em; font-size: 10px; }

footer { display: flex; justify-content: space-between; padding: 28px 30px; background: var(--ink); color: var(--paper); font-size: 10px; text-transform: uppercase; letter-spacing: .12em; }

@media (max-width: 800px) {
  .site-header { grid-template-columns: auto 1fr; padding: 14px 18px; }
  nav { justify-self: end; gap: 15px; }
  .index { display: none; }
  .hero { padding: 24px 18px 0; }
  h1 { font-size: 30vw; padding-top: 30px; }
  .section-grid { grid-template-columns: 1fr; padding: 80px 18px; gap: 30px; }
  .statement, .opportunity-notes, .ideation-intro, .making-copy, .making-gallery, .resolution-copy, .feature-image, .drawing-image { grid-column: 1; }
  .full-bleed-photo { padding: 58px 18px; }
  .iteration-grid { grid-template-columns: 1fr; margin-left: 0; }
  .iterations { padding: 80px 18px; }
  .making-gallery { grid-template-columns: 1fr; }
  .making-gallery .wide { grid-row: auto; }
  .finale { padding: 80px 18px 28px; }
  .finale-title { display: block; }
  .finale-title h2 { margin-top: 25px; }
  footer { flex-direction: column; gap: 4px; padding: 25px 18px; }
  footer p { margin: 0; }
}

/* Step Up */
.step-page { --step-wood:#805438; --step-green:#354d42; --step-gold:#c79a55; background:#eee8dc; }
.step-header { background:rgba(238,232,220,.92); }
.step-hero { padding:34px 30px 0; }
.step-kicker { display:flex; justify-content:space-between; padding-bottom:18px; border-bottom:1px solid var(--ink); font-size:11px; text-transform:uppercase; letter-spacing:.13em; }
.step-title-wrap { display:grid; grid-template-columns:2.5fr 1fr; align-items:end; gap:40px; padding:34px 0 42px; }
.step-title-wrap h1 { padding:0; color:var(--step-green); }
.step-title-wrap h1 em { color:var(--step-wood); }
.step-title-wrap p { margin:0 0 12px; font-size:clamp(19px,2vw,31px); line-height:1.28; }
.step-hero > img { width:100%; }
.step-overview em { color:var(--step-wood); }
.step-slide { padding:14px; background:#faf8f2; box-shadow:0 14px 40px rgba(28,24,20,.08); }
.step-opportunity { display:grid; grid-template-columns:1fr 3fr; gap:40px; padding:120px 30px; background:var(--step-green); color:#f5efe4; }
.step-opportunity-title { display:contents; }
.step-opportunity-title h2, .criteria-heading h2, .step-heading h2, .engineering-copy h2, .finish-copy h2 { margin:0; font-size:clamp(64px,8vw,122px); }
.step-opportunity-title h2 em { color:#dcb67b; }
.step-opportunity-body { grid-column:2; display:grid; grid-template-columns:1fr 1fr; gap:34px; max-width:900px; margin:45px 0; }
.step-opportunity-body p, .engineering-copy p, .finish-copy p { font-size:16px; line-height:1.65; }
.step-opportunity .step-slide { grid-column:1 / -1; color:var(--ink); }
.step-criteria { padding:120px 30px; border-bottom:1px solid var(--line); }
.criteria-heading { display:grid; grid-template-columns:1fr 3fr; gap:40px; }
.criteria-heading h2 em, .step-heading h2 em, .engineering-copy h2 em, .finish-copy h2 em { color:var(--step-wood); }
.criteria-list { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; margin:75px 0; }
.criteria-list article { border-top:1px solid var(--ink); padding-top:14px; }
.criteria-list span { text-transform:uppercase; letter-spacing:.12em; font-size:12px; }
.criteria-list p { margin-top:42px; font-size:14px; line-height:1.6; }
.step-ideation, .step-engineering, .step-assembly { padding:120px 30px; border-bottom:1px solid var(--line); }
.step-heading { display:grid; grid-template-columns:1fr 3fr; gap:40px; margin-bottom:75px; }
.step-two-slides { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.step-scale { padding:120px 30px; background:#bf8e4d; color:#211b17; }
.step-scale .step-heading h2 em { color:#fff0d9; }
.scale-notes { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin:0 0 70px 25%; }
.scale-notes article { border-top:1px solid currentColor; padding-top:15px; }
.scale-notes b { font-family:"DM Sans",sans-serif; font-weight:500; font-size:30px; }
.scale-notes p { font-size:14px; line-height:1.6; }
.scale-gallery { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.scale-gallery .full { grid-column:1 / -1; width:75%; justify-self:end; }
.step-engineering { background:#f6f1e7; }
.engineering-copy { display:grid; grid-template-columns:1fr 3fr; gap:40px; margin-bottom:70px; }
.engineering-copy .section-label { grid-row:1 / 3; }
.engineering-copy p { max-width:700px; }
.step-finish { display:grid; grid-template-columns:1fr 1.2fr; gap:70px; align-items:center; padding:120px 30px; background:#34271f; color:#f3eade; }
.finish-copy p { margin-top:44px; }
.step-assembly { background:#d9d0c0; }
.assembly-image { width:min(100%,1200px); margin:0 auto; }
.step-final { padding:120px 30px 40px; background:#f7f3ea; }
.step-final-heading { display:flex; justify-content:space-between; align-items:end; margin-bottom:50px; }
.step-final-heading > span { text-transform:uppercase; letter-spacing:.14em; font-size:11px; }
.step-final-heading h2 { font-size:clamp(80px,13vw,190px); color:var(--step-green); }
.step-final-heading h2 em { color:var(--step-wood); }
.step-context { padding:16px; background:#fff; }
.step-final-copy { display:flex; justify-content:space-between; align-items:end; gap:40px; padding:35px 0 85px; }
.step-final-copy p { max-width:730px; font-family:"DM Sans",sans-serif; font-weight:500; font-size:clamp(30px,3.2vw,52px); line-height:1.06; letter-spacing:-.025em; }
.step-final-copy a { white-space:nowrap; text-transform:uppercase; letter-spacing:.12em; font-size:10px; }
.final-views { max-width:1200px; margin:0 auto; }

@media (max-width:800px) {
  .step-hero { padding:24px 18px 0; }
  .step-title-wrap, .step-opportunity, .criteria-heading, .step-heading, .engineering-copy, .step-finish { grid-template-columns:1fr; }
  .step-title-wrap { gap:28px; }
  .step-opportunity, .step-criteria, .step-ideation, .step-scale, .step-engineering, .step-finish, .step-assembly, .step-final { padding:80px 18px; }
  .step-opportunity-title { display:block; }
  .step-opportunity-title h2 { margin-top:35px; }
  .step-opportunity-body { grid-column:1; grid-template-columns:1fr; }
  .criteria-list, .scale-notes { grid-template-columns:1fr; margin-left:0; }
  .step-two-slides, .scale-gallery { grid-template-columns:1fr; }
  .scale-gallery .full { grid-column:1; width:100%; }
  .engineering-copy .section-label { grid-row:auto; }
  .step-final-heading, .step-final-copy { display:block; }
  .step-final-heading h2 { margin-top:28px; }
  .step-final-copy a { display:inline-block; margin-top:30px; white-space:normal; }
}

/* Accessible Eyedrop Dispenser */
.eye-page { --eye-blue:#397d9c; --eye-blue-soft:#dce8ed; background:#fff; }
.eye-page h1 em,.eye-page h2 em { color:var(--eye-blue); }
.eye-hero { padding:54px 30px 0; background:#f5f7f8; }
.eye-hero .eyebrow { border:0; padding:0; color:#625c57; }
.eye-hero h1 { max-width:1180px; padding:42px 0 30px; font-size:clamp(64px,9vw,138px); line-height:.86; }
.eye-hero-copy { max-width:560px; margin:0 0 36px auto; font-size:clamp(19px,2vw,29px); line-height:1.35; }
.eye-cover { display:block; width:min(100%,1180px); margin:0 auto; border:1px solid var(--line); background:#fff; }
.eye-page .case-framework span { color:var(--eye-blue); }
.eye-context,.eye-market,.eye-ideation,.eye-final,.eye-next { padding:104px max(30px,calc((100vw - 1180px)/2)); }
.eye-context { display:grid; grid-template-columns:1fr 2fr; gap:52px; border-bottom:1px solid var(--line); }
.eye-context h2,.eye-market h2,.eye-ideation h2,.eye-final h2,.eye-next h2 { font-size:clamp(52px,7vw,96px); line-height:.92; }
.eye-context-copy { max-width:760px; }
.eye-context-copy p { margin:0 0 22px; font-size:18px; line-height:1.65; }
.eye-context-copy .eye-quote { padding:26px 0 0; border-top:1px solid var(--line); color:var(--eye-blue); font-size:clamp(25px,3vw,40px); line-height:1.2; }
.eye-market { background:#edf2f4; }
.eye-section-heading { display:grid; grid-template-columns:1fr 3fr; gap:40px; margin-bottom:58px; }
.eye-research-brief { margin:0 0 68px; }
.eye-research-brief img { display:block; width:100%; border:1px solid rgba(33,27,23,.14); background:#fff; }
.eye-research-brief figcaption { padding-top:12px; color:#625c57; font-size:12px; letter-spacing:.06em; text-transform:uppercase; }
.eye-market-grid { display:grid; grid-template-columns:1.15fr .85fr; gap:38px; align-items:start; }
.eye-market-grid img { border:1px solid rgba(33,27,23,.14); }
.eye-market-copy p { margin:0 0 24px; font-size:17px; line-height:1.62; }
.eye-gap-list { display:grid; gap:0; margin-top:34px; border-top:1px solid var(--ink); }
.eye-gap-list div { display:grid; grid-template-columns:48px 1fr; gap:16px; padding:18px 0; border-bottom:1px solid var(--line); }
.eye-gap-list b { color:var(--eye-blue); }
.eye-gap-list span { font-size:15px; line-height:1.5; }
.eye-criteria { padding:94px max(30px,calc((100vw - 1180px)/2)); background:#1f2d33; color:#f7fbfc; }
.eye-criteria h2 { max-width:920px; margin:34px 0 66px; font-size:clamp(48px,6vw,88px); }
.eye-criteria-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }
.eye-criteria-grid article { padding-top:16px; border-top:1px solid rgba(255,255,255,.55); }
.eye-criteria-grid span { color:#9dc9db; font-size:12px; letter-spacing:.12em; text-transform:uppercase; }
.eye-criteria-grid p { margin:34px 0 0; font-size:15px; line-height:1.55; }
.eye-ideation { background:#fff; }
.eye-sketch-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:22px; }
.eye-sketch-grid figure { padding:12px; border:1px solid var(--line); background:#fff; }
.eye-final { background:#edf2f4; }
.eye-final-intro { max-width:720px; margin:-24px 0 58px 25%; font-size:18px; line-height:1.65; }
.eye-concepts { display:grid; grid-template-columns:repeat(2,1fr); gap:28px; }
.eye-concept { background:#fff; border:1px solid rgba(33,27,23,.14); }
.eye-concept:last-child { grid-column:1 / -1; width:calc(50% - 14px); justify-self:center; }
.eye-concept img { width:100%; }
.eye-concept figcaption { padding:12px 14px 15px; color:#625c57; }
.eye-next { text-align:center; background:#fff; }
.eye-next-box { display:grid; place-items:center; min-height:440px; margin-top:52px; padding:44px; border:1px dashed rgba(57,125,156,.65); background:linear-gradient(135deg,rgba(57,125,156,.05),rgba(57,125,156,.12)); }
.eye-next-box div { max-width:580px; }
.eye-next-box span { color:var(--eye-blue); font-size:12px; letter-spacing:.14em; text-transform:uppercase; }
.eye-next-box p { margin:18px 0 0; font-size:20px; line-height:1.5; }
.project-eye .project-image img { object-position:center; }
.project-eye .project-info h3 { font-size:clamp(34px,4vw,64px); }
@media (max-width:800px) {
  .eye-hero { padding:36px 18px 0; }
  .eye-hero h1 { font-size:18vw; }
  .eye-context,.eye-market,.eye-ideation,.eye-final,.eye-next,.eye-criteria { padding:72px 18px; }
  .eye-context,.eye-section-heading,.eye-market-grid { grid-template-columns:1fr; }
  .eye-criteria-grid { grid-template-columns:1fr 1fr; }
  .eye-sketch-grid,.eye-concepts { grid-template-columns:1fr; }
  .eye-concept:last-child { grid-column:1; width:100%; }
  .eye-final-intro { margin:0 0 42px; }
  .eye-next-box { min-height:320px; }
}

/* Interaction layer */
.scroll-progress { position:fixed; inset:0 auto auto 0; z-index:40; width:100%; height:3px; pointer-events:none; }
.scroll-progress span { display:block; width:100%; height:100%; background:var(--brown); transform:scaleX(0); transform-origin:left; }
.back-to-top { position:fixed; right:22px; bottom:22px; z-index:30; display:grid; place-items:center; width:48px; height:48px; border:1px solid currentColor; border-radius:50%; background:rgba(255,255,255,.92); color:var(--ink); font:500 18px/1 "DM Sans",sans-serif; cursor:pointer; backdrop-filter:blur(10px); opacity:0; visibility:hidden; transform:translateY(10px); transition:opacity .25s ease,transform .25s ease,background .2s ease; }
.back-to-top.is-visible { opacity:1; visibility:visible; transform:translateY(0); }
.back-to-top:hover,.back-to-top:focus-visible { background:var(--brown); color:#fff; }
.js .reveal-item { opacity:0; transform:translateY(24px); transition:opacity .65s ease,transform .65s cubic-bezier(.2,.65,.25,1); }
.js .reveal-item.is-revealed { opacity:1; transform:none; }
.case-study .zoomable { cursor:zoom-in; }
.case-study .zoomable:focus-visible { outline:3px solid var(--brown); outline-offset:5px; }
.image-lightbox { width:min(94vw,1500px); max-width:none; height:min(92vh,1000px); max-height:none; padding:0; border:0; background:transparent; color:#fff; overflow:visible; }
.image-lightbox::backdrop { background:rgba(20,16,14,.92); backdrop-filter:blur(8px); }
.image-lightbox figure { display:grid; grid-template-rows:minmax(0,1fr) auto; width:100%; height:100%; gap:12px; }
.image-lightbox img { width:100%; height:100%; object-fit:contain; }
.image-lightbox figcaption { padding:0 56px 0 0; color:#fff; font-size:11px; }
.lightbox-close { position:absolute; top:-4px; right:0; z-index:2; width:44px; height:44px; border:1px solid rgba(255,255,255,.55); border-radius:50%; background:rgba(20,16,14,.75); color:#fff; font:400 24px/1 "DM Sans",sans-serif; cursor:pointer; }
.lightbox-close:hover,.lightbox-close:focus-visible { background:#fff; color:var(--ink); }
.project-card { position:relative; transition:transform .3s ease; }
.project-card:hover { transform:translateY(-5px); }
.project-card .project-info b { transition:letter-spacing .25s ease; }
.project-card:hover .project-info b { letter-spacing:.18em; }
.case-study .case-meta div { transition:transform .25s ease; }
.case-study .case-meta div:hover { transform:translateY(-3px); }

@media (prefers-reduced-motion:reduce) {
  .js .reveal-item { opacity:1; transform:none; transition:none; }
  .project-card,.case-study .case-meta div { transition:none; }
}

@media (max-width:800px) {
  .back-to-top { right:14px; bottom:14px; width:44px; height:44px; }
  .image-lightbox { width:96vw; height:88vh; }
  .image-lightbox figcaption { padding-right:48px; }
}

/* Case study redesign: concise, image-led, editorial */
.case-study { background:#fff; }
.case-study main { overflow:hidden; }
.case-study .site-header { background:rgba(255,255,255,.96); padding-top:14px; padding-bottom:14px; }
.case-study .hero,
.case-study .shoe-hero,
.case-study .step-hero { padding-top:54px; background:#fff; }
.case-study .eyebrow,
.case-study .shoe-kicker,
.case-study .step-kicker { border:0; padding:0; color:#625c57; }
.case-study .hero h1,
.case-study .shoe-title-wrap h1,
.case-study .step-title-wrap h1 {
  font-size:clamp(64px,8vw,118px);
  line-height:.88;
  letter-spacing:-.05em;
}
.case-study .hero-copy,
.case-study .shoe-title-wrap p,
.case-study .step-title-wrap p { max-width:430px; font-size:clamp(18px,1.65vw,25px); line-height:1.35; }
.case-study .hero-image,
.case-study .shoe-hero > img,
.case-study .step-hero > img { margin-top:18px; max-height:760px; object-fit:cover; }
.case-study .case-brief {
  padding:34px max(30px,calc((100vw - 1180px)/2)) 92px;
  background:#fff;
}
.case-study .case-meta { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; margin:0; padding:26px 0 38px; border-bottom:1px solid var(--line); }
.case-study .case-meta div { min-width:0; }
.case-study .case-meta dt,
.case-study .case-prompt span,
.case-study .case-framework span { margin-bottom:9px; color:#6a625c; text-transform:uppercase; letter-spacing:.12em; font-size:11px; }
.case-study .case-meta dd { margin:0; font-size:14px; line-height:1.45; }
.case-study .case-prompt { display:grid; grid-template-columns:1fr 3fr; gap:30px; padding-top:54px; }
.case-study .case-prompt p { max-width:850px; margin:0; font-size:clamp(34px,4.2vw,62px); line-height:1.06; letter-spacing:-.035em; }
.case-study .case-framework { display:grid; grid-template-columns:repeat(3,1fr); gap:0; padding-top:44px; }
.case-study .case-framework article { min-width:0; padding:0 28px 4px; border-left:1px solid var(--line); }
.case-study .case-framework article:first-child { padding-left:0; border-left:0; }
.case-study .case-framework article:last-child { padding-right:0; }
.case-study .case-framework span { display:block; color:var(--brown); font-weight:600; }
.case-study .case-framework p { margin:24px 0 0; font-size:17px; line-height:1.55; }
.case-study .overview,
.case-study .shoe-overview,
.case-study .step-overview {
  grid-template-columns:1fr 3fr;
  max-width:1180px;
  margin:0 auto;
  padding:78px 0;
  border-top:1px solid var(--line);
  background:#fff;
}
.case-study .overview-copy { display:grid; grid-template-columns:1.15fr 1fr; gap:54px; }
.case-study .overview-copy .lead { margin:0; }
.case-study .overview-copy > p:last-child { margin:0; }
.case-study .details { display:none; }
.case-study .opportunity,
.case-study .shoe-opportunity,
.case-study .step-opportunity {
  max-width:none;
  padding-top:94px;
  padding-bottom:94px;
  background:#f2f0ed;
}
.case-study .statement,
.case-study .step-opportunity-title h2 { max-width:1180px; }
.case-study .statement p,
.case-study .step-opportunity-title h2 { font-size:clamp(38px,4.8vw,68px); }
.case-study .opportunity-notes,
.case-study .step-opportunity-body { max-width:760px; margin-top:38px; }
.case-study .ideation,
.case-study .making,
.case-study .resolution { grid-template-columns:1fr 3fr; }
.case-study .ideation-intro,
.case-study .making-copy,
.case-study .resolution-copy { grid-column:2; display:grid; grid-template-columns:1.2fr 1fr; gap:54px; align-items:start; }
.case-study .ideation-intro p,
.case-study .making-copy > p,
.case-study .resolution-copy > p { margin:0; }
.case-study .sketch-card { grid-column:1 / -1; margin-top:52px; }
.case-study .iterations > h2 { max-width:850px; margin:32px 0 52px 25%; }
.case-study .iteration-grid { margin-left:25%; }
.case-study .concept-board { margin-top:52px; }
.case-study .shoe-slide,
.case-study .step-slide,
.case-study .concept-board,
.case-study .feature-image,
.case-study .drawing-image { overflow:hidden; }
.case-study .shoe-slide img,
.case-study .step-slide img,
.case-study .concept-board img { transition:transform .45s ease; }
.case-study .shoe-slide:hover img,
.case-study .step-slide:hover img,
.case-study .concept-board:hover img { transform:scale(1.01); }
.case-study .shoe-section-heading,
.case-study .step-heading,
.case-study .criteria-heading,
.case-study .engineering-copy,
.case-study .material-statement { grid-template-columns:1fr 3fr; max-width:1180px; margin-left:auto; margin-right:auto; }
.case-study .test-grid,
.case-study .scale-notes { max-width:880px; margin-left:auto; }
.case-study .shoe-final,
.case-study .step-final,
.case-study .finale { background:#211b17; color:#fff; }
.case-study .shoe-final h2,
.case-study .step-final h2,
.case-study .finale h2 { color:#fff; }
.case-study .shoe-final h2 em,
.case-study .step-final h2 em,
.case-study .finale h2 em { color:#d8a9b7; }

@media (max-width:800px) {
  .case-study .site-header nav a:nth-child(3) { display:none; }
  .case-study .case-brief { padding:26px 18px 64px; }
  .case-study .case-meta { grid-template-columns:1fr 1fr; gap:28px 18px; }
  .case-study .case-framework { grid-template-columns:1fr; gap:28px; padding-top:38px; }
  .case-study .case-framework article,.case-study .case-framework article:first-child,.case-study .case-framework article:last-child { padding:24px 0 0; border-left:0; border-top:1px solid var(--line); }
  .case-study .case-framework p { margin-top:12px; font-size:16px; }
  .case-study .case-prompt,
  .case-study .overview-copy,
  .case-study .ideation-intro,
  .case-study .making-copy,
  .case-study .resolution-copy { grid-template-columns:1fr; }
  .case-study .case-prompt { gap:18px; padding-top:38px; }
  .case-study .overview,
  .case-study .shoe-overview,
  .case-study .step-overview { grid-template-columns:1fr; margin:0 18px; padding:64px 0; }
  .case-study .ideation-intro,
  .case-study .making-copy,
  .case-study .resolution-copy,
  .case-study .sketch-card { grid-column:1; }
  .case-study .iterations > h2,
  .case-study .iteration-grid { margin-left:0; }
}

/* Unified case-study rhythm */
.case-study {
  --case-accent:#211b17;
  --case-surface:#f7f5f2;
  --case-panel:#ece8e3;
  background:var(--case-surface);
}
.case-study .site-header,
.case-study .shoe-header,
.case-study .step-header { background:rgba(247,245,242,.94); }
.case-study .hero,
.case-study .shoe-hero,
.case-study .step-hero {
  padding:34px max(30px,calc((100vw - 1440px)/2)) 0;
}
.case-study .hero { display:grid; grid-template-columns:2.5fr 1fr; gap:36px; align-items:end; }
.case-study .hero .eyebrow { grid-column:1 / -1; width:100%; }
.case-study .hero h1 { grid-column:1; }
.case-study .hero-copy { grid-column:2; margin:0 0 28px; }
.case-study .hero-image { grid-column:1 / -1; width:100%; height:auto; aspect-ratio:16 / 9; }
.case-study .hero-image img { object-position:center; }
.case-study .shoe-title-wrap,
.case-study .step-title-wrap { grid-template-columns:2.5fr 1fr; padding:38px 0 34px; }
.case-study .hero h1,
.case-study .shoe-title-wrap h1,
.case-study .step-title-wrap h1 {
  padding:32px 0 28px;
  font-size:clamp(72px,10vw,152px);
  line-height:.84;
  color:var(--ink);
}
.case-study .shoe-title-wrap h1,
.case-study .step-title-wrap h1 { padding:0; }
.case-study h1 em,
.case-study h2 em,
.case-study .shoe-title-wrap h1 em,
.case-study .step-title-wrap h1 em,
.case-study .step-final-heading h2 em,
.case-study .final-header h2 em { color:var(--case-accent); }
.case-study .shoe-hero > img,
.case-study .step-hero > img { aspect-ratio:16 / 9; object-fit:cover; }
.case-study .step-hero > .step-main-photo { width:min(100%,1024px); aspect-ratio:4 / 3; margin-left:auto; margin-right:auto; object-fit:cover; object-position:center; background:#3d3e3b; }
.case-study .section-grid,
.case-study .iterations,
.case-study .measurement-section,
.case-study .shoe-ideation,
.case-study .shoe-testing,
.case-study .shoe-material,
.case-study .shoe-validation,
.case-study .shoe-final,
.case-study .step-opportunity,
.case-study .step-criteria,
.case-study .step-ideation,
.case-study .step-scale,
.case-study .step-engineering,
.case-study .step-finish,
.case-study .step-assembly,
.case-study .step-final,
.case-study .finale,
.case-study .full-bleed-photo {
  padding-left:max(30px,calc((100vw - 1440px)/2));
  padding-right:max(30px,calc((100vw - 1440px)/2));
}
.case-study .section-grid,
.case-study .measurement-section,
.case-study .shoe-ideation,
.case-study .shoe-testing,
.case-study .shoe-material,
.case-study .shoe-validation,
.case-study .step-opportunity,
.case-study .step-criteria,
.case-study .step-ideation,
.case-study .step-scale,
.case-study .step-engineering,
.case-study .step-finish,
.case-study .step-assembly { padding-top:78px; padding-bottom:78px; }
.case-study .section-label { font-size:12px; font-weight:600; letter-spacing:.11em; }
.case-study .lead { font-size:clamp(30px,3.4vw,50px); line-height:1.08; }
.case-study .statement p,
.case-study .step-opportunity-title h2,
.case-study .criteria-heading h2,
.case-study .step-heading h2,
.case-study .engineering-copy h2,
.case-study .finish-copy h2,
.case-study .measure-copy h2,
.case-study .shoe-section-heading h2,
.case-study .material-statement h2,
.case-study .ideation-intro h2,
.case-study .making-copy h2,
.case-study .resolution-copy h2,
.case-study .iterations > h2 {
  font-size:clamp(42px,5vw,72px);
  line-height:1;
  letter-spacing:-.035em;
}
.case-study .opportunity,
.case-study .iterations,
.case-study .shoe-opportunity,
.case-study .shoe-testing,
.case-study .shoe-material,
.case-study .step-opportunity,
.case-study .step-scale,
.case-study .step-finish,
.case-study .step-assembly {
  background:var(--case-panel);
  color:var(--ink);
}
.case-study .step-scale .step-heading h2 em,
.case-study .shoe-testing .shoe-section-heading h2 em,
.case-study .shoe-opportunity .statement em,
.case-study .step-opportunity-title h2 em { color:var(--case-accent); }
.case-study .shoe-slide,
.case-study .step-slide,
.case-study .concept-board,
.case-study .feature-image,
.case-study .final-context,
.case-study .prototype-board,
.case-study .step-context { padding:0; box-shadow:none; background:transparent; }
.case-study figcaption { padding-top:12px; font-size:10px; }
.case-study .two-slides,
.case-study .testing-slides,
.case-study .validation-grid,
.case-study .step-two-slides,
.case-study .scale-gallery,
.case-study .making-gallery { gap:18px; }
.case-study .finale,
.case-study .shoe-final,
.case-study .step-final { padding-top:82px; background:#fff; }
.case-study .finale-title h2,
.case-study .final-header h2,
.case-study .step-final-heading h2 { font-size:clamp(54px,7vw,98px); color:var(--ink); }
.case-study .final-details p,
.case-study .step-final-copy p { font-size:clamp(24px,2.4vw,36px); }

@media (max-width:800px) {
  .case-study .hero { grid-template-columns:1fr; padding:24px 18px 0; }
  .case-study .hero .eyebrow,
  .case-study .hero h1,
  .case-study .hero-copy,
  .case-study .hero-image { grid-column:1; }
  .case-study .hero h1,
  .case-study .shoe-title-wrap h1,
  .case-study .step-title-wrap h1 { font-size:22vw; }
  .case-study .section-grid,
  .case-study .iterations,
  .case-study .measurement-section,
  .case-study .shoe-ideation,
  .case-study .shoe-testing,
  .case-study .shoe-material,
  .case-study .shoe-validation,
  .case-study .shoe-final,
  .case-study .step-opportunity,
  .case-study .step-criteria,
  .case-study .step-ideation,
  .case-study .step-scale,
  .case-study .step-engineering,
  .case-study .step-finish,
  .case-study .step-assembly,
  .case-study .step-final,
  .case-study .finale,
  .case-study .full-bleed-photo { padding-left:18px; padding-right:18px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}

/* Homepage */
.home-page { --home-red:#211b17; --home-accent:#211b17; background:#f2eee7; }
.home-header { background:rgba(242,238,231,.92); }
.home-hero { display:grid; grid-template-columns:1.15fr .85fr 1.2fr .55fr; grid-template-rows:auto auto; gap:28px; padding:32px 30px 42px; align-items:end; }
.home-intro { grid-column:1 / 4; align-self:start; }
.home-intro > span, .home-section-heading > span, .about-heading > span { display:block; padding-bottom:18px; border-bottom:1px solid var(--ink); text-transform:uppercase; letter-spacing:.14em; font-size:11px; }
.home-intro h1 { padding:22px 0 0; font-size:clamp(96px,14vw,220px); color:var(--ink); font-weight:600; letter-spacing:-.07em; }
.home-intro h1 em { color:var(--ink); font-weight:inherit; letter-spacing:inherit; text-transform:none; }
.home-hero-copy { grid-column:1 / 3; align-self:end; padding-bottom:25px; }
.home-hero-copy p { max-width:660px; margin:0 0 40px; font-family:"DM Sans",sans-serif; font-weight:500; font-size:clamp(34px,4vw,62px); line-height:1.03; letter-spacing:-.035em; }
.home-hero-copy a, .home-contact a { display:inline-block; padding-bottom:5px; border-bottom:1px solid currentColor; text-transform:uppercase; letter-spacing:.12em; font-size:11px; }
.hero-actions { display:flex; flex-wrap:wrap; gap:28px; }
.home-portrait { grid-column:3 / 5; display:grid; grid-template-columns:1.2fr .8fr; gap:12px; align-items:end; align-self:end; }
.home-portrait img { object-fit:cover; }
.home-portrait .portrait-solo img { aspect-ratio:4 / 5; object-position:center; }
.home-portrait .portrait-work img { aspect-ratio:3 / 4; object-position:center; }
.home-portrait .portrait-ny { grid-column:1 / -1; position:relative; z-index:2; width:78%; margin-top:-34px; justify-self:end; border:8px solid #fff; }
.home-portrait .portrait-ny img { aspect-ratio:4 / 3; object-fit:cover; object-position:center; }
.home-portrait figcaption { grid-column:1 / -1; }
.home-portrait > div { cursor:zoom-in; transform:translate3d(var(--portrait-x,0),var(--portrait-y,0),0) rotate(var(--portrait-r,0)); transition:transform .18s ease-out,filter .22s ease; }
.home-portrait > div:hover,.home-portrait > div:focus-visible { filter:drop-shadow(0 14px 18px rgba(0,0,0,.13)); outline:none; }
.home-portrait > div:focus-visible { box-shadow:0 0 0 3px #fff,0 0 0 5px var(--ink); }
.home-photo-lightbox figcaption { color:#fff !important; }
.home-side-note { grid-column:3 / 5; max-width:260px; justify-self:end; align-self:start; font-size:13px; line-height:1.55; transform:rotate(-2deg); }
.home-proof { display:grid; grid-template-columns:repeat(4,1fr); gap:0; border-top:1px solid var(--ink); border-bottom:1px solid var(--ink); }
.home-proof > div { min-height:145px; padding:22px 24px; border-right:1px solid var(--ink); }
.home-proof > div:last-child { border-right:0; }
.home-proof span { display:block; margin-bottom:34px; text-transform:uppercase; letter-spacing:.13em; font-size:10px; }
.home-proof strong { display:block; font-family:"DM Sans",sans-serif; font-size:clamp(24px,2.2vw,34px); font-weight:500; line-height:1.08; letter-spacing:-.025em; }
.home-proof p { margin:8px 0 0; font-size:12px; }
.home-proof .proof-secondary { margin-top:18px; font-size:clamp(17px,1.45vw,22px); }
.selected-work { padding:95px 30px 120px; background:#e9e2d9; color:var(--ink); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.home-section-heading, .about-heading { display:grid; grid-template-columns:1fr 3fr; gap:40px; margin-bottom:90px; }
.home-section-heading h2, .about-heading h2 { font-size:clamp(65px,8vw,124px); }
.home-section-heading h2 em { color:var(--home-accent); }
.project-list { display:flex; flex-direction:column; gap:80px; }
.project-card { display:grid; grid-template-columns:3fr 1fr; gap:30px; color:inherit; }
.project-card:nth-child(even) { grid-template-columns:1fr 3fr; }
.project-card:nth-child(even) .project-image { grid-column:2; grid-row:1; }
.project-card:nth-child(even) .project-info { grid-column:1; grid-row:1; }
.project-image { overflow:hidden; background:#ddd5ce; }
.project-image img { aspect-ratio:16 / 9; object-fit:cover; filter:none; }
.project-cub .project-image img { object-position:center 48%; }
.project-shoe .project-image img { object-position:center 66%; }
.project-card:hover .project-image img, .project-card:focus-visible .project-image img { transform:none; }
.project-info { display:flex; flex-direction:column; align-items:flex-start; padding-top:14px; border-top:1px solid currentColor; }
.project-info > span { font-family:"DM Sans",sans-serif; font-size:26px; font-weight:500; }
.project-info > small { margin-top:10px; color:var(--brown); font-size:10px; font-weight:600; letter-spacing:.11em; text-transform:uppercase; }
.project-info h3 { margin:auto 0 8px; font-family:"DM Sans",sans-serif; font-size:clamp(40px,4.5vw,72px); font-weight:500; line-height:.98; letter-spacing:-.035em; }
.project-info p { margin:0 0 28px; font-size:13px; text-transform:uppercase; letter-spacing:.1em; }
.project-info b { font-size:10px; text-transform:uppercase; letter-spacing:.12em; font-weight:500; }
.project-card .project-info h3 { color:var(--home-accent); }
.home-about { display:grid; grid-template-columns:1fr 1fr 1fr; gap:30px; padding:120px 30px; }
.about-heading { grid-column:1 / -1; grid-template-columns:1fr 2fr; }
.about-heading h2 em { color:var(--home-red); }
.about-story { grid-column:1 / 3; display:grid; grid-template-columns:1.25fr 1fr; gap:32px; align-content:start; }
.about-story .about-lead { grid-column:1 / -1; max-width:900px; margin:0 0 40px; font-family:"DM Sans",sans-serif; font-weight:500; font-size:clamp(38px,4.6vw,72px); line-height:1.03; letter-spacing:-.035em; }
.about-story p:not(.about-lead) { max-width:520px; margin:0; font-size:16px; line-height:1.65; }
.about-story .pets-story { padding:20px; border:1px solid rgba(114,38,61,.3); background:rgba(255,255,255,.68); }
.about-story .pets-story strong { display:block; margin-bottom:12px; color:var(--home-red); font-size:19px; line-height:1.3; }
.about-photo { align-self:start; }
.about-photo img { width:100%; object-fit:cover; }
.about-pets { grid-column:3; grid-row:2; }
.about-pets img { aspect-ratio:4 / 3; }
.home-contact { padding:130px 30px 45px; background:var(--home-red); color:#fff8f3; }
.home-contact > span { text-transform:uppercase; letter-spacing:.14em; font-size:11px; }
.home-contact h2 { margin:55px 0 45px; font-size:clamp(110px,20vw,290px); }
.home-contact h2 em { color:#f8eade; }
.home-contact a { font-size:14px; }
.home-contact-links { display:flex; flex-wrap:wrap; gap:12px; }

@media (max-width:800px) {
  .home-hero { grid-template-columns:1fr; min-height:auto; padding:28px 18px 70px; }
  .home-intro, .home-hero-copy, .home-portrait, .home-side-note { grid-column:1; }
  .home-intro h1 { font-size:30vw; }
  .home-hero-copy { padding:30px 0; }
  .home-portrait { width:100%; grid-template-columns:1.15fr .85fr; justify-self:stretch; }
  .home-portrait .portrait-ny { width:86%; margin-top:-22px; border-width:6px; }
  .home-side-note { justify-self:start; transform:none; }
  .home-proof { grid-template-columns:1fr 1fr; }
  .home-proof > div { border-bottom:1px solid var(--ink); }
  .home-proof > div:nth-child(2n) { border-right:0; }
  .home-proof > div:nth-last-child(-n+2) { border-bottom:0; }
  .selected-work, .home-about, .home-contact { padding:80px 18px; }
  .home-section-heading, .about-heading { grid-template-columns:1fr; }
  .project-card, .project-card:nth-child(even) { grid-template-columns:1fr; gap:20px; }
  .project-card:nth-child(even) .project-image, .project-card:nth-child(even) .project-info { grid-column:1; grid-row:auto; }
  .project-info h3 { margin:45px 0 8px; }
  .home-about { grid-template-columns:1fr; }
  .about-heading, .about-story, .about-pets { grid-column:1; grid-row:auto; }
  .about-story { grid-template-columns:1fr; }
  .about-story .about-lead { grid-column:1; }
  .site-header nav a[href="#process"] { display:none; }
}

/* Strata Sole */
.shoe-page { --shoe-blue: #2d7392; --shoe-sand: #d8c19a; --shoe-deep: #132f3c; background: #f5f0e7; }
.shoe-header { background: rgba(245,240,231,.92); }
.shoe-hero { padding: 34px 30px 0; background: #f5f0e7; }
.shoe-kicker { display: flex; justify-content: space-between; padding-bottom: 18px; border-bottom: 1px solid var(--ink); font-size: 11px; text-transform: uppercase; letter-spacing: .13em; }
.shoe-title-wrap { display: grid; grid-template-columns: 2.4fr 1fr; align-items: end; gap: 40px; padding: 34px 0 42px; }
.shoe-title-wrap h1 { padding: 0; color: var(--shoe-deep); }
.shoe-title-wrap h1 em { color: var(--shoe-blue); }
.shoe-title-wrap p { margin: 0 0 12px; font-size: clamp(19px,2vw,31px); line-height: 1.28; }
.shoe-hero > img { width: 100%; }
.shoe-overview em { color: var(--shoe-blue); }
.shoe-opportunity { background: var(--shoe-deep); color: #f8f2e8; }
.shoe-opportunity .statement em { color: #73b6cf; }
.shoe-slide { padding: 14px; background: #fff; box-shadow: 0 14px 40px rgba(28,24,20,.08); }
.shoe-slide img { width: 100%; }
.span-two { grid-column: 2 / 4; margin-top: 45px; }
.measurement-section { display: grid; grid-template-columns: 1fr 1.3fr; gap: 80px; padding: 120px 30px; align-items: center; border-bottom: 1px solid var(--line); }
.measure-copy h2, .shoe-section-heading h2, .material-statement h2 { margin-top: 40px; font-size: clamp(65px,8vw,124px); }
.measure-copy h2 em, .shoe-section-heading h2 em, .material-statement h2 em { color: var(--shoe-blue); }
.measure-copy p, .material-statement p, .validation-copy { max-width: 680px; margin-top: 42px; font-size: 16px; line-height: 1.65; }
.shoe-ideation, .shoe-testing, .shoe-validation { padding: 120px 30px; border-bottom: 1px solid var(--line); }
.shoe-section-heading { display: grid; grid-template-columns: 1fr 3fr; gap: 40px; align-items: start; }
.shoe-section-heading h2 { margin-top: 0; }
.two-slides { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-top: 80px; }
.shoe-testing { background: var(--shoe-blue); color: #f9f2e6; }
.shoe-testing .shoe-section-heading h2 em { color: var(--shoe-sand); }
.test-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 28px; margin: 80px 0 60px 25%; }
.test-grid article { padding-top: 15px; border-top: 1px solid currentColor; }
.test-grid article > span { font-family: "DM Sans",sans-serif; font-size: 28px; font-weight: 500; }
.test-grid h3 { margin-top: 45px; text-transform: uppercase; font-size: 14px; letter-spacing: .1em; }
.test-grid p { font-size: 14px; line-height: 1.6; }
.testing-slides { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.testing-slides figcaption { color: var(--ink); }
.shoe-material { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; padding: 120px 30px; background: #e0c99f; }
.material-statement { grid-column: 1 / -1; display: grid; grid-template-columns: 1fr 3fr; gap: 40px; margin-bottom: 55px; }
.material-statement h2 { margin: 0; }
.material-statement p { grid-column: 2; }
.material-image, .render-image { align-self: start; }
.validation-copy { margin: 55px 0 70px 25%; }
.validation-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.shoe-final { padding: 120px 30px 40px; background: #f8f4ed; }
.final-header { display: flex; justify-content: space-between; align-items: end; margin-bottom: 50px; }
.final-header > span { text-transform: uppercase; letter-spacing: .14em; font-size: 11px; }
.final-header h2 { font-size: clamp(80px,13vw,190px); color: var(--shoe-deep); }
.final-header h2 em { color: var(--shoe-blue); }
.final-context { padding: 16px; background: #fff; }
.final-details { display: flex; justify-content: space-between; align-items: end; gap: 40px; padding: 35px 0 85px; }
.final-details p { max-width: 680px; font-family: "DM Sans",sans-serif; font-weight: 500; font-size: clamp(30px,3.2vw,52px); line-height: 1.06; letter-spacing: -.025em; }
.final-details a { white-space: nowrap; text-transform: uppercase; letter-spacing: .12em; font-size: 10px; }
.prototype-board { max-width: 1200px; margin: 0 auto; padding: 16px; background: #fff; }

@media (max-width: 800px) {
  .shoe-hero { padding: 24px 18px 0; }
  .shoe-title-wrap, .measurement-section, .shoe-section-heading, .material-statement { grid-template-columns: 1fr; }
  .shoe-title-wrap { gap: 28px; }
  .span-two, .material-statement p { grid-column: 1; }
  .measurement-section, .shoe-ideation, .shoe-testing, .shoe-validation, .shoe-material, .shoe-final { padding: 80px 18px; }
  .two-slides, .testing-slides, .validation-grid, .shoe-material { grid-template-columns: 1fr; }
  .test-grid { grid-template-columns: 1fr; margin-left: 0; }
  .material-statement { grid-column: 1; }
  .validation-copy { margin-left: 0; }
  .final-header, .final-details { display: block; }
  .final-header h2 { margin-top: 28px; }
  .final-details a { display: inline-block; margin-top: 30px; white-space: normal; }
}

/* Calmer editorial scale */
h1, h2 { line-height:.92; letter-spacing:-.03em; }
h1 { font-size:clamp(84px,14vw,210px); }
.hero-image { height:min(62vw,760px); }
.section-grid { padding:88px 30px; }
.lead { font-size:clamp(38px,4.2vw,62px); line-height:1.04; }
.statement p { font-size:clamp(46px,6vw,88px); line-height:1; }
.full-bleed-photo { padding:72px 30px; }
.ideation-intro h2, .making-copy h2, .resolution-copy h2 { font-size:clamp(50px,6vw,88px); }
.iterations { padding:88px 30px; }
.iterations > h2 { margin:32px 0 58px; font-size:clamp(54px,7vw,104px); }
.iteration-grid h3 { margin-top:32px; }
.concept-board { margin-top:58px; }
.making-copy > p { margin:32px 0 58px; }
.resolution-copy > p { margin:32px 0 58px; }
.finale { padding:88px 30px 32px; }
.finale-title { margin-bottom:32px; }
.finale-title h2 { font-size:clamp(60px,9vw,128px); }

.step-opportunity, .step-criteria, .step-ideation, .step-scale, .step-engineering, .step-finish, .step-assembly { padding:88px 30px; }
.step-opportunity-title h2, .criteria-heading h2, .step-heading h2, .engineering-copy h2, .finish-copy h2 { font-size:clamp(50px,6vw,88px); }
.step-heading { margin-bottom:54px; }
.criteria-list { margin:54px 0; }
.step-scale { background:var(--step-wood); color:#fff8f0; }
.step-final { padding:88px 30px 32px; }
.step-final-heading { margin-bottom:34px; }
.step-final-heading h2 { font-size:clamp(60px,9vw,128px); }
.step-final-copy { padding:28px 0 58px; }
.step-final-copy p { font-size:clamp(28px,2.7vw,42px); line-height:1.12; }

.home-hero { gap:22px; padding:28px 30px 34px; }
.home-intro h1 { font-size:clamp(76px,11vw,164px); }
.home-hero-copy p { max-width:600px; margin-bottom:30px; font-size:clamp(30px,3.2vw,48px); line-height:1.08; }
.home-proof > div { min-height:118px; padding:18px 22px; }
.home-proof span { margin-bottom:24px; }
.home-proof strong { font-size:clamp(22px,1.8vw,29px); }
.selected-work { padding:76px 30px 90px; }
.home-section-heading, .about-heading { margin-bottom:62px; }
.home-section-heading h2, .about-heading h2 { font-size:clamp(52px,6vw,88px); }
.project-list { gap:60px; }
.project-info h3 { font-size:clamp(36px,3.5vw,56px); }
.home-about { padding:88px 30px; }
.about-story .about-lead { margin-bottom:30px; font-size:clamp(32px,3.6vw,52px); line-height:1.08; }
.home-contact { padding:88px 30px 38px; }
.home-contact h2 { margin:38px 0 34px; font-size:clamp(78px,13vw,180px); }

.measurement-section, .shoe-ideation, .shoe-testing, .shoe-validation, .shoe-material { padding:88px 30px; }
.measure-copy h2, .shoe-section-heading h2, .material-statement h2 { font-size:clamp(50px,6vw,88px); }
.two-slides, .test-grid { margin-top:58px; }
.shoe-final { padding:88px 30px 32px; }
.final-header { margin-bottom:34px; }
.final-header h2 { font-size:clamp(60px,9vw,128px); }
.final-details { padding:28px 0 58px; }
.final-details p { font-size:clamp(28px,2.7vw,42px); line-height:1.12; }

@media (max-width:800px) {
  h1 { font-size:23vw; }
  .section-grid, .iterations, .finale,
  .step-opportunity, .step-criteria, .step-ideation, .step-scale, .step-engineering, .step-finish, .step-assembly, .step-final,
  .selected-work, .home-about, .home-contact,
  .measurement-section, .shoe-ideation, .shoe-testing, .shoe-validation, .shoe-material, .shoe-final { padding:64px 18px; }
  .home-intro h1 { font-size:23vw; }
  .home-section-heading, .about-heading { margin-bottom:44px; }
  .project-list { gap:48px; }
}

/* Final case-study cascade */
.case-study { background:#fff; }
.case-study .site-header { background:rgba(255,255,255,.96); padding-top:14px; padding-bottom:14px; }
.case-study .hero,
.case-study .shoe-hero,
.case-study .step-hero { padding-top:54px; background:#fff; }
.case-study .hero h1,
.case-study .shoe-title-wrap h1,
.case-study .step-title-wrap h1 { font-size:clamp(64px,8vw,118px); line-height:.88; }
.case-study .hero-copy,
.case-study .shoe-title-wrap p,
.case-study .step-title-wrap p { max-width:430px; font-size:clamp(18px,1.65vw,25px); line-height:1.35; }
.case-study .shoe-hero > img,
.case-study .step-hero > img { margin-top:18px; max-height:760px; object-fit:cover; }
.case-study .overview,
.case-study .shoe-overview,
.case-study .step-overview { grid-template-columns:1fr 3fr; max-width:1180px; margin:0 auto; padding:78px 0; background:#fff; }
.case-study .overview-copy { display:grid; grid-template-columns:1.15fr 1fr; gap:54px; }
.case-study .overview-copy .lead,
.case-study .overview-copy > p:last-child { margin:0; }
.case-study .details { display:none; }
.case-study .opportunity,
.case-study .shoe-opportunity,
.case-study .step-opportunity { background:#f2f0ed; color:var(--ink); padding-top:94px; padding-bottom:94px; }
.case-study .statement p,
.case-study .step-opportunity-title h2 { font-size:clamp(38px,4.8vw,68px); }
.case-study .shoe-slide,
.case-study .step-slide,
.case-study .concept-board,
.case-study .feature-image,
.case-study .final-context,
.case-study .prototype-board,
.case-study .step-context { padding:0; box-shadow:none; background:transparent; }
.case-study .finale,
.case-study .shoe-final,
.case-study .step-final { background:#211b17; color:#fff; }
.case-study .finale h2,
.case-study .shoe-final h2,
.case-study .step-final h2 { color:#fff; }
.case-study .finale h2 em,
.case-study .shoe-final h2 em,
.case-study .step-final h2 em { color:#d8a9b7; }

@media (max-width:800px) {
  .case-study .hero h1,
  .case-study .shoe-title-wrap h1,
  .case-study .step-title-wrap h1 { font-size:22vw; }
  .case-study .overview,
  .case-study .shoe-overview,
  .case-study .step-overview { grid-template-columns:1fr; margin:0 18px; padding:64px 0; }
  .case-study .overview-copy { grid-template-columns:1fr; }
}

/* Image framing and native-resolution safeguards */
.project-list { max-width:1340px; margin-left:auto; margin-right:auto; }
.project-cub .project-image img { object-position:center 30%; }
.project-step .project-image img,
.project-card.project-step:hover .project-image img,
.project-card.project-step:focus-visible .project-image img { transform:none; object-position:center bottom; }
.cub-page .full-bleed-photo img { width:100%; max-width:738px; }
.cub-page .making-prototype { width:100%; max-width:576px; }
.cub-page .finale > img { width:100%; max-width:822px; }
.cub-page .drawing-image { max-width:977px; justify-self:center; }
.case-study .shoe-slide,
.case-study .step-slide { max-width:1200px; margin-left:auto; margin-right:auto; }
.case-study .two-slides .shoe-slide,
.case-study .testing-slides .shoe-slide,
.case-study .validation-grid .shoe-slide,
.case-study .step-two-slides .step-slide,
.case-study .scale-gallery .step-slide { max-width:none; }

/* Subtle future-modern finish */
:root { --tech-line:rgba(114,38,61,.13); --glass:rgba(255,255,255,.78); }
body { background-image:linear-gradient(var(--tech-line) 1px,transparent 1px),linear-gradient(90deg,var(--tech-line) 1px,transparent 1px); background-size:48px 48px; background-attachment:fixed; }
.site-header { margin:10px 12px 0; padding:12px 18px; border:1px solid rgba(33,27,23,.18); border-radius:4px; background:var(--glass); box-shadow:0 8px 30px rgba(33,27,23,.07); }
.case-study .site-header,.home-header { background:rgba(248,247,245,.82); }
.mark { border-radius:4px; background:var(--ink); color:#fff; transition:background .2s ease,color .2s ease,transform .2s ease; }
.mark:hover,.mark:focus-visible { background:var(--brown); transform:translateY(-2px); }
nav { gap:8px; }
nav a { padding:8px 11px; border:1px solid transparent; border-radius:999px; transition:border-color .2s ease,background .2s ease,color .2s ease; }
nav a::after { display:none; }
nav a:hover,nav a:focus-visible { border-color:rgba(114,38,61,.35); background:rgba(114,38,61,.07); color:var(--brown); }
.section-label,.home-intro > span,.home-section-heading > span,.about-heading > span { color:var(--brown); font-weight:600; }
.section-label::before,.home-section-heading > span::before,.about-heading > span::before { content:"[ "; }
.section-label::after,.home-section-heading > span::after,.about-heading > span::after { content:" ]"; }
.home-hero,.case-study .hero,.case-study .shoe-hero,.case-study .step-hero { background-color:rgba(247,245,242,.94); }
.home-proof { background:rgba(247,245,242,.9); }
.home-proof > div { transition:background .25s ease,color .25s ease; }
.home-proof > div:hover { background:var(--ink); color:#fff; }
.project-image { position:relative; border:1px solid rgba(33,27,23,.22); box-shadow:0 18px 50px rgba(33,27,23,.08); }
.project-info { padding:14px 2px 0; }
.project-info > span { color:var(--brown); font-variant-numeric:tabular-nums; }
.case-study .case-meta { padding:20px; border:1px solid rgba(33,27,23,.18); background:rgba(255,255,255,.72); box-shadow:0 14px 40px rgba(33,27,23,.05); backdrop-filter:blur(10px); }
.case-study .case-prompt { border-bottom:1px solid var(--line); padding-bottom:54px; }
.case-study .shoe-slide,.case-study .step-slide,.case-study .concept-board,.case-study .feature-image,.case-study .drawing-image { border:1px solid rgba(33,27,23,.14); }
.home-hero-copy a,.home-contact a { padding:11px 15px; border:1px solid currentColor; border-radius:999px; transition:background .2s ease,color .2s ease,transform .2s ease; }
.home-hero-copy a:hover,.home-hero-copy a:focus-visible { background:var(--ink); color:#fff; transform:translateY(-2px); }
.scroll-progress { height:2px; }
.scroll-progress span { background:linear-gradient(90deg,var(--brown),#c68499); box-shadow:0 0 14px rgba(114,38,61,.45); }
.back-to-top { border-radius:4px; }

@media (max-width:800px) {
  body { background-size:32px 32px; }
  .site-header { margin:6px 6px 0; padding:9px 11px; }
  nav a { padding:7px 8px; }
  .case-study .case-meta { padding:16px; }
}

/* Cub Corner empty-to-filled cover */
.project-cub .project-image { aspect-ratio:16 / 9; }
.project-cub .project-image img,
.project-card.project-cub:hover .project-image img,
.project-card.project-cub:focus-visible .project-image img { position:absolute; inset:0; width:100%; height:100%; aspect-ratio:auto; object-fit:cover; object-position:center 30%; transform:translateX(-3.7%) scale(1.08); transition:opacity .55s ease; }
.project-cub .cub-empty { opacity:1; }
.project-cub .cub-filled { opacity:0; }
.project-cub .project-image:hover .cub-empty,.project-cub:focus-visible .cub-empty { opacity:0; }
.project-cub .project-image:hover .cub-filled,.project-cub:focus-visible .cub-filled { opacity:1; }
.image-toggle-hint { position:absolute; left:14px; bottom:14px; z-index:2; padding:8px 11px; border:1px solid rgba(255,255,255,.7); border-radius:999px; background:rgba(33,27,23,.72); color:#fff; font-size:10px; text-transform:uppercase; letter-spacing:.12em; backdrop-filter:blur(8px); transition:opacity .25s ease,transform .25s ease; }
.project-cub .project-image:hover .image-toggle-hint,.project-cub:focus-visible .image-toggle-hint { opacity:0; transform:translateY(4px); }

/* Preserve the full Strata Sole pair on the homepage */
.project-shoe .project-image img,
.project-card.project-shoe:hover .project-image img,
.project-card.project-shoe:focus-visible .project-image img { aspect-ratio:1640 / 1080; object-fit:cover; object-position:center; transform:none; }

@media (prefers-reduced-motion:reduce) {
  .project-cub .project-image img,.image-toggle-hint { transition:none; }
}

@media (hover:none) {
  .image-toggle-hint { display:none; }
}

/* Resume + contact pages */
.utility-page { min-height:100vh; background:#f7f5f2; }
.utility-main { min-height:calc(100vh - 73px); padding:64px 30px 90px; }
.utility-heading { display:grid; grid-template-columns:1fr 2fr; gap:40px; align-items:end; padding-bottom:28px; border-bottom:1px solid var(--ink); }
.utility-heading span { color:var(--brown); font-size:12px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; }
.utility-heading h1 { padding:0; font-size:clamp(68px,11vw,168px); }
.utility-actions { display:flex; flex-wrap:wrap; gap:12px; margin:24px 0 34px; }
.utility-button { display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:11px 17px; border:1px solid var(--ink); border-radius:999px; background:transparent; color:var(--ink); font:500 12px/1 "DM Sans",sans-serif; letter-spacing:.1em; text-transform:uppercase; cursor:pointer; }
.utility-button:hover,.utility-button:focus-visible { background:var(--ink); color:#fff; }
.resume-frame { width:100%; height:calc(100vh - 245px); min-height:680px; border:1px solid var(--line); background:#fff; }
.contact-layout { display:grid; grid-template-columns:1fr 2fr; gap:40px; padding-top:72px; }
.contact-layout > p { margin:0; color:#625c57; font-size:14px; line-height:1.6; }
.contact-details { display:grid; gap:34px; }
.contact-item { padding-bottom:26px; border-bottom:1px solid var(--line); }
.contact-item span { display:block; margin-bottom:12px; color:var(--brown); font-size:11px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; }
.contact-item a,.contact-item strong { font-size:clamp(27px,4vw,58px); font-weight:500; letter-spacing:-.035em; overflow-wrap:anywhere; }
.contact-email + .contact-email { margin-top:32px; padding-top:28px; border-top:1px solid var(--line); }
.contact-email small { display:block; margin-bottom:8px; color:#625c57; font-size:12px; letter-spacing:.1em; text-transform:uppercase; }
.contact-email .utility-button { width:max-content; margin-top:14px; }
.copy-status { min-height:20px; margin:10px 0 0; color:var(--brown); font-size:13px; }
@media (max-width:800px) {
  .utility-main { padding:46px 18px 70px; }
  .utility-heading,.contact-layout { grid-template-columns:1fr; gap:24px; }
  .resume-frame { min-height:560px; height:72vh; }
  .contact-layout { padding-top:48px; }
}

/* Visual-first case studies */
.case-study .overview-copy > p:last-child,
.case-study .opportunity-notes,
.case-study .making-copy > p,
.case-study .resolution-copy > p,
.case-study .measure-copy p,
.case-study .material-statement p,
.case-study .validation-copy,
.case-study .engineering-copy p,
.case-study .finish-copy p,
.eye-context-copy > p { max-width:58ch; }

.case-study .full-bleed-photo img { width:min(100%,1100px); }
.cub-page .full-bleed-photo img { max-width:1100px; }
.cub-page .making-gallery img,
.cub-page .making-gallery .wide,
.cub-page .making-gallery img:nth-child(2),
.cub-page .making-gallery img:nth-child(3) { width:100%; max-width:none; }
.cub-page .making-prototype { width:min(100%,900px); max-width:900px; }
.cub-page .finale > img { width:min(100%,1180px); max-width:1180px; }
.cub-page .concept-board { margin-left:auto; margin-right:auto; max-width:1260px; }

.shoe-page .shoe-opportunity .span-two { grid-column:1 / -1; width:min(100%,1180px); margin:54px auto 0; }
.shoe-page .measurement-section { grid-template-columns:.75fr 1.45fr; gap:54px; }
.shoe-page .measurement-section .shoe-slide,
.shoe-page .prototype-board,
.step-page .assembly-image,
.step-page .final-views { width:100%; max-width:1380px; }
.step-page .scale-gallery .full { width:100%; justify-self:stretch; }

.eye-page .eye-cover { width:min(100%,1380px); }
.eye-page .eye-context-copy { max-width:900px; }
.eye-page .eye-market-grid { grid-template-columns:1.45fr .55fr; gap:46px; }
.eye-page .eye-concept:last-child { width:100%; }
.eye-page .eye-sketch-grid figure,
.eye-page .eye-concept,
.eye-page .eye-research-brief { box-shadow:0 18px 48px rgba(31,45,51,.08); }
.eye-model-lineup { margin:64px 0 24px; background:#fff; border:1px solid rgba(31,45,51,.14); box-shadow:0 18px 48px rgba(31,45,51,.08); }
.eye-model-lineup img { display:block; width:100%; aspect-ratio:4 / 3; object-fit:cover; }
.eye-model-lineup figcaption { padding:14px 16px; color:#4a5559; font-size:12px; letter-spacing:.06em; text-transform:uppercase; }
.eye-model-gallery { display:grid; grid-template-columns:1fr 1fr; gap:24px; margin:0 0 28px; }
.eye-model-gallery figure { margin:0; background:#fff; border:1px solid rgba(31,45,51,.14); box-shadow:0 18px 48px rgba(31,45,51,.08); }
.eye-model-gallery img { display:block; width:100%; aspect-ratio:4 / 3; object-fit:cover; }
.eye-model-gallery figcaption { padding:14px 16px; color:#4a5559; font-size:12px; letter-spacing:.06em; text-transform:uppercase; }
.eye-next-box { display:grid; grid-template-columns:1fr 1fr; gap:24px; }

.home-side-note { grid-column:3 / 5; width:100%; max-width:none; justify-self:stretch; align-self:start; display:grid; grid-template-columns:auto 1fr; align-items:center; gap:16px; padding:14px 16px; border:1px solid rgba(114,38,61,.3); background:rgba(255,255,255,.72); box-shadow:0 10px 30px rgba(33,27,23,.06); transform:none; }
.home-side-note span { color:var(--home-red); font-size:10px; font-weight:600; letter-spacing:.13em; text-transform:uppercase; white-space:nowrap; }
.home-side-note p { margin:0; padding-left:16px; border-left:1px solid rgba(114,38,61,.28); font-size:13px; line-height:1.5; }
.case-next-link { padding:0 30px 90px; text-align:right; }
.case-next-link a { display:inline-block; padding-bottom:5px; border-bottom:1px solid currentColor; font-size:12px; letter-spacing:.1em; text-transform:uppercase; }

@media (min-width:801px) {
  .home-hero { grid-template-columns:1.05fr .95fr 1.2fr .55fr; padding-top:20px; padding-bottom:24px; }
  .home-intro h1 { padding-top:16px; font-size:clamp(68px,8.5vw,128px); line-height:.9; }
  .home-hero-copy p { margin-bottom:22px; font-size:clamp(27px,2.7vw,41px); }
  .home-portrait { max-width:650px; justify-self:end; }
  .home-portrait .portrait-solo img { max-height:340px; }
  .home-portrait .portrait-work img { max-height:290px; }
  .home-side-note { padding:10px 14px; }
  .home-proof > div { min-height:96px; padding:14px 20px; }
  .home-proof span { margin-bottom:16px; }
  .home-proof strong { font-size:clamp(19px,1.5vw,25px); }
}

@media (max-width:800px) {
  .shoe-page .measurement-section,
  .eye-page .eye-market-grid { grid-template-columns:1fr; }
  .eye-model-gallery,.eye-next-box { grid-template-columns:1fr; }
  .home-side-note { grid-column:1; grid-template-columns:1fr; gap:8px; }
  .home-side-note p { padding:0; border-left:0; }
}

/* Editorial reset: quieter interface, more emphasis on the work */
body { background:#f7f6f3; background-image:none; }
.site-header,
.case-study .site-header,
.home-header { margin:0; border:0; border-bottom:1px solid rgba(33,27,23,.18); border-radius:0; background:rgba(247,246,243,.96); box-shadow:none; backdrop-filter:none; }
.mark { width:auto; height:auto; padding:0; border:0; border-radius:0; background:transparent; color:var(--ink); font-size:15px; letter-spacing:.04em; }
.mark:hover,.mark:focus-visible { background:transparent; color:var(--brown); transform:none; }
nav { gap:24px; }
nav a { padding:2px 0; border:0; border-radius:0; }
nav a:hover,nav a:focus-visible { border:0; background:transparent; color:var(--brown); }
nav a::after { display:block; }
.section-label::before,.section-label::after,
.home-section-heading > span::before,.home-section-heading > span::after,
.about-heading > span::before,.about-heading > span::after { content:none; }
.section-label,.home-intro > span,.home-section-heading > span,.about-heading > span { color:#625c57; font-weight:500; letter-spacing:.09em; }
.home-hero,.case-study .hero,.case-study .shoe-hero,.case-study .step-hero { background:#f7f6f3; }
.home-proof { background:#f7f6f3; }
.home-proof > div { transition:none; }
.home-proof > div:hover { background:transparent; color:inherit; }
.project-image { border:0; box-shadow:none; }
.project-card { transition:none; }
.project-card:hover { transform:none; }
.project-info { padding-top:12px; }
.project-info > span { color:#625c57; }
.project-card .project-info h3 { color:var(--ink); }
.project-card .project-info b { padding-bottom:3px; border-bottom:1px solid currentColor; transition:none; }
.project-card:hover .project-info b { letter-spacing:.12em; }
.case-study .case-meta { padding:20px 0; border:1px solid var(--line); border-left:0; border-right:0; background:transparent; box-shadow:none; backdrop-filter:none; }
.case-study .case-meta div:hover { transform:none; }
.case-study .shoe-slide,.case-study .step-slide,.case-study .concept-board,.case-study .feature-image,.case-study .drawing-image { border:0; }
.eye-page .eye-sketch-grid figure,.eye-page .eye-concept,.eye-page .eye-research-brief,.eye-model-lineup,.eye-model-gallery figure { box-shadow:none; }
.eye-next-box { border:1px solid var(--line); background:#f7f6f3; }
.home-hero-copy a,.home-contact a,.utility-button { padding:0 0 5px; border:0; border-bottom:1px solid currentColor; border-radius:0; }
.home-hero-copy a:hover,.home-hero-copy a:focus-visible,.utility-button:hover,.utility-button:focus-visible { background:transparent; color:inherit; transform:none; }
.home-side-note { border:0; border-left:2px solid var(--brown); background:transparent; box-shadow:none; }
.scroll-progress span { background:var(--brown); box-shadow:none; }
.back-to-top,.lightbox-close { border-radius:50%; }
.image-toggle-hint { border:0; border-radius:2px; background:rgba(33,27,23,.78); backdrop-filter:none; }

@media (max-width:800px) {
  nav { gap:14px; }
}

/* Homepage editorial project index */
.home-page { background:#fff; }
.home-page .home-header { background:#fff; }
.home-page .home-hero,
.home-page .home-proof { background:#fff; }
.selected-work { padding:96px 40px 132px; background:#fff; border-top:1px solid #dedede; border-bottom:0; }
.selected-work .home-section-heading { display:block; max-width:1480px; margin:0 auto 64px; }
.selected-work .home-section-heading h2 { font-size:clamp(54px,5.5vw,88px); line-height:1; letter-spacing:-.045em; }
.project-list { max-width:1480px; gap:78px; }
.project-card,
.project-card:nth-child(even) { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(320px,.95fr); gap:52px; align-items:center; }
.project-card:nth-child(even) .project-image,
.project-card:nth-child(even) .project-info { grid-column:auto; grid-row:auto; }
.project-image { border-radius:14px; background:#eee; }
.project-card .project-image { transform:translate3d(var(--shift-x,0),var(--shift-y,0),0) rotate(var(--shift-r,0)); transition:transform .18s ease-out,border-radius .25s ease; }
.project-card:hover .project-image,.project-card:focus-visible .project-image { border-radius:4px; }
.project-image img { aspect-ratio:4 / 3; }
.project-cub .project-image { aspect-ratio:4 / 3; }
.project-cub .project-image img,
.project-card.project-cub:hover .project-image img,
.project-card.project-cub:focus-visible .project-image img { object-position:center 30%; }
.project-shoe .project-image img,
.project-card.project-shoe:hover .project-image img,
.project-card.project-shoe:focus-visible .project-image img { aspect-ratio:4 / 3; object-fit:cover; }
.project-info { min-height:100%; justify-content:center; padding:28px 0; border-top:0; }
.project-info > span { display:none; }
.project-info > small { order:0; margin:0 0 24px; color:#6b625d; font-size:11px; letter-spacing:.1em; }
.project-info h3 { order:1; margin:0 0 24px; max-width:620px; font-size:clamp(38px,4vw,66px); line-height:1.02; }
.project-info p { order:2; max-width:650px; margin:0 0 34px; font-size:clamp(17px,1.35vw,22px); line-height:1.5; text-transform:none; letter-spacing:0; }
.project-info b { order:3; align-self:flex-start; font-size:11px; }
.project-card .project-info b::after { content:""; display:inline-block; width:0; height:1px; margin:0 0 3px 8px; background:currentColor; transition:width .25s ease; }
.project-card:hover .project-info b::after,.project-card:focus-visible .project-info b::after { width:28px; }

.project-hover-label { position:fixed; top:0; left:0; z-index:50; padding:9px 12px; border-radius:999px; background:var(--ink); color:#fff; font-size:10px; letter-spacing:.1em; text-transform:uppercase; pointer-events:none; opacity:0; transition:opacity .15s ease; }
.project-hover-label.is-visible { opacity:1; }

.home-contact { position:relative; display:grid; grid-template-columns:1fr auto; gap:70px; min-height:660px; padding:86px 40px 0; overflow:hidden; background:#fff; color:var(--ink); border-top:1px solid #dedede; }
.contact-invite { max-width:620px; }
.contact-invite p { max-width:500px; margin:0 0 44px; font-size:18px; line-height:1.55; }
.contact-invite a { padding:0 0 8px; font-size:clamp(18px,2vw,30px); letter-spacing:.02em; text-transform:uppercase; }
.contact-socials { display:flex; flex-direction:column; gap:24px; min-width:150px; }
.contact-socials span { margin-bottom:4px; color:#6b625d; font-size:12px; letter-spacing:.1em; text-transform:uppercase; }
.contact-socials a { align-self:flex-start; padding:0; border:0; font-size:15px; letter-spacing:.08em; }
.footer-marquee { position:absolute; left:0; right:0; bottom:-.22em; overflow:hidden; }
.footer-name { display:flex; width:max-content; gap:.22em; white-space:nowrap; font-family:"DM Sans",sans-serif; font-size:clamp(104px,17vw,290px); font-weight:600; line-height:1; letter-spacing:-.07em; text-transform:none; animation:footer-name-scroll 20s linear infinite; will-change:transform; }
.footer-name span { display:block; padding-right:.22em; }
.footer-marquee:hover .footer-name { animation-play-state:paused; }
@keyframes footer-name-scroll { from { transform:translateX(0); } to { transform:translateX(calc(-50% - .11em)); } }
.home-page footer { background:#fff; color:var(--ink); border-top:1px solid #dedede; }

@media (max-width:800px) {
  .selected-work { padding:70px 18px 86px; }
  .selected-work .home-section-heading { margin-bottom:42px; }
  .project-list { gap:64px; }
  .project-card,
  .project-card:nth-child(even) { grid-template-columns:1fr; gap:22px; }
  .project-info { min-height:0; padding:0; }
  .project-info > small { margin-bottom:14px; }
  .project-info h3 { margin:0 0 16px; font-size:clamp(34px,10vw,52px); }
  .project-info p { margin-bottom:24px; font-size:17px; }
  .home-contact { grid-template-columns:1fr; gap:52px; min-height:560px; padding:68px 18px 0; }
  .footer-marquee { bottom:-.08em; }
  .footer-name { font-size:22vw; animation-duration:14s; }
}

@media (prefers-reduced-motion:reduce) {
  .footer-name { animation:none; }
  .project-card .project-image { transform:none; transition:none; }
  .home-portrait > div { transform:none; transition:none; }
}

@media (hover:none),(pointer:coarse) {
  .project-hover-label { display:none; }
  .project-card .project-image { transform:none; }
}

/* Rebuilt About section */
.home-about { display:grid; grid-template-columns:minmax(320px,.9fr) minmax(0,1.1fr); gap:70px 88px; padding:120px 40px 132px; background:#fff; border-top:1px solid #dedede; }
.home-about .about-heading { grid-column:1 / -1; display:grid; grid-template-columns:minmax(220px,.45fr) minmax(0,1.55fr); gap:70px; margin:0; align-items:start; }
.home-about .about-heading > span { padding:8px 0 16px; border-bottom:1px solid var(--ink); }
.home-about .about-heading h2 { max-width:900px; font-size:clamp(58px,7vw,112px); line-height:.92; }
.home-about .about-pets { grid-column:1; grid-row:2; align-self:start; }
.home-about .about-pets img { aspect-ratio:4 / 5; object-fit:cover; object-position:center; }
.home-about .about-pets figcaption { font-size:10px; }
.home-about .about-story { grid-column:2; display:block; align-self:start; }
.home-about .about-story .about-lead { max-width:920px; margin:0 0 72px; padding-bottom:64px; border-bottom:1px solid var(--ink); font-size:clamp(38px,4.5vw,68px); line-height:1.06; }
.home-about .about-detail { display:grid; grid-template-columns:200px 1fr; gap:42px; padding:30px 0; border-bottom:1px solid #d7d7d7; }
.home-about .about-detail:first-of-type { padding-top:0; }
.home-about .about-detail > span { color:var(--home-red); font-size:11px; font-weight:600; letter-spacing:.11em; line-height:1.45; text-transform:uppercase; }
.home-about .about-detail p { max-width:680px; margin:0; font-size:18px; line-height:1.65; }
.home-about .about-viola { grid-column:2; width:min(100%,260px); margin-top:10px; }
.home-about .about-viola img { aspect-ratio:3 / 4; object-fit:cover; }
.home-about .about-viola figcaption { display:block; padding-top:9px; font-size:9px; }

@media (max-width:800px) {
  .home-about { grid-template-columns:1fr; gap:44px; padding:76px 18px 88px; }
  .home-about .about-heading { grid-column:1; grid-template-columns:1fr; gap:26px; }
  .home-about .about-heading h2 { font-size:clamp(48px,15vw,76px); }
  .home-about .about-pets,.home-about .about-story { grid-column:1; grid-row:auto; }
  .home-about .about-pets img { aspect-ratio:4 / 3; }
  .home-about .about-story .about-lead { margin-bottom:46px; padding-bottom:42px; font-size:clamp(32px,9vw,48px); }
  .home-about .about-detail { grid-template-columns:1fr; gap:16px; }
  .home-about .about-viola { grid-column:1; width:min(72%,280px); margin-top:6px; }
}

/* Unified white case-study canvas */
.case-study,
.case-study main,
.case-study .site-header,
.case-study .hero,
.case-study .shoe-hero,
.case-study .step-hero,
.case-study .opportunity,
.case-study .full-bleed-photo,
.case-study .iterations,
.case-study .making,
.case-study .resolution,
.case-study .finale,
.case-study .eye-hero,
.case-study .eye-market,
.case-study .eye-criteria,
.case-study .eye-ideation,
.case-study .eye-final,
.case-study .eye-next,
.case-study .step-opportunity,
.case-study .step-criteria,
.case-study .step-ideation,
.case-study .step-scale,
.case-study .step-engineering,
.case-study .step-finish,
.case-study .step-assembly,
.case-study .step-final,
.case-study .shoe-opportunity,
.case-study .shoe-ideation,
.case-study .shoe-testing,
.case-study .shoe-validation,
.case-study .shoe-material,
.case-study .shoe-final { background:#fff; color:var(--ink); }

.case-study .opportunity,
.case-study .full-bleed-photo,
.case-study .iterations,
.case-study .making,
.case-study .resolution,
.case-study .finale,
.case-study .eye-context,
.case-study .eye-market,
.case-study .eye-criteria,
.case-study .eye-ideation,
.case-study .eye-final,
.case-study .eye-next,
.case-study .step-opportunity,
.case-study .step-criteria,
.case-study .step-ideation,
.case-study .step-scale,
.case-study .step-engineering,
.case-study .step-finish,
.case-study .step-assembly,
.case-study .step-final,
.case-study .measurement-section,
.case-study .shoe-opportunity,
.case-study .shoe-ideation,
.case-study .shoe-testing,
.case-study .shoe-validation,
.case-study .shoe-material,
.case-study .shoe-final { border-bottom:1px solid #dedede; }

.case-study .finale h2,
.case-study .shoe-final h2,
.case-study .step-final h2,
.case-study .eye-criteria h2 { color:var(--ink); }
.case-study .step-scale .step-heading h2 em { color:var(--step-wood); }
.case-study .shoe-testing .shoe-section-heading h2 em { color:var(--shoe-blue); }
.case-study .eye-criteria-grid article { border-top-color:#b9b9b9; }
.case-study .eye-criteria-grid span { color:var(--eye-blue); }
.case-study .eye-next-box { background:#fff; }
.case-study footer { background:#fff; color:var(--ink); border-top:1px solid #dedede; }

/* Black typography throughout the portfolio */
.home-page main :is(h1,h2,h3,h4,p,span,small,b,strong,em,dt,dd,a,figcaption),
.case-study main :is(h1,h2,h3,h4,p,span,small,b,strong,em,dt,dd,a,figcaption),
.utility-page main :is(h1,h2,h3,h4,p,span,small,b,strong,em,dt,dd,a,figcaption) { color:var(--ink) !important; }
.home-page footer,
.case-study footer,
.utility-page footer { background:#fff; color:var(--ink); border-top:1px solid #dedede; }
.project-hover-label,
.image-toggle-hint { color:#fff !important; }

/* Art-directed About composition */
.home-about { grid-template-columns:repeat(12,minmax(0,1fr)); gap:28px; padding:120px 40px 150px; }
.home-about .about-heading { grid-column:1 / -1; display:grid; grid-template-columns:3fr 9fr; gap:28px; margin-bottom:60px; }
.home-about .about-heading h2 { grid-column:2; max-width:780px; }
.home-about .about-pets { grid-column:1 / 6; grid-row:2 / span 2; width:92%; align-self:start; }
.home-about .about-pets img { aspect-ratio:4 / 5; }
.home-about .about-story { display:contents; }
.home-about .about-story .about-lead { grid-column:6 / 13; grid-row:2; align-self:start; max-width:900px; margin:0; padding:0; border:0; }
.home-about .about-detail { display:block; padding:0; border:0; }
.home-about .about-detail > span { display:block; margin-bottom:18px; padding-top:14px; border-top:1px solid var(--ink); }
.home-about .about-detail p { max-width:none; }
.home-about .about-detail:not(.about-detail-personal) { grid-column:7 / 12; grid-row:3; margin-top:-40px; }
.home-about .about-detail-personal { grid-column:2 / 9; grid-row:4; display:grid; grid-template-columns:minmax(0,1fr) 210px; gap:24px 34px; margin-top:84px; }
.home-about .about-detail-personal > span { grid-column:1 / -1; }
.home-about .about-detail-personal > p { grid-column:1; }
.home-about .about-viola { grid-column:2; width:100%; margin:-48px 0 0; transform:none; }
.home-about .about-viola img { aspect-ratio:3 / 4; }

.image-toggle-hint { left:18px; bottom:18px; padding:11px 14px; background:rgba(20,20,20,.9); font-size:12px; font-weight:600; line-height:1.2; letter-spacing:.09em; box-shadow:0 4px 18px rgba(0,0,0,.2); }
.home-page main .image-toggle-hint { color:#fff !important; }

@media (max-width:800px) {
  .home-about { grid-template-columns:1fr; gap:38px; padding:76px 18px 96px; }
  .home-about .about-heading { grid-column:1; grid-template-columns:1fr; gap:22px; margin-bottom:10px; }
  .home-about .about-heading h2 { grid-column:1; }
  .home-about .about-pets,
  .home-about .about-story .about-lead,
  .home-about .about-detail:not(.about-detail-personal),
  .home-about .about-detail-personal { grid-column:1; grid-row:auto; width:100%; margin:0; }
  .home-about .about-pets { width:88%; }
  .home-about .about-detail-personal { grid-template-columns:minmax(0,1fr) 120px; gap:20px; margin-top:22px; }
  .home-about .about-viola { grid-column:2; margin:-28px 0 0; }
  .image-toggle-hint { left:12px; bottom:12px; padding:9px 11px; font-size:11px; }
}
