:root {
  --bg:#ffffff;
  --surface:#ffffff;
  --ink:#1c1b18;
  --ink-2:#525148;
  --ink-3:#9a988e;
  --ink-4:#cfcdc4;
  --line:#ececea;
  --line-2:#dcdad5;
  --accent:#d68068;
  --accent-soft:#fbf1eb;
  --accent-ink:#a4513a;
  --tag-bg:#f5f3ef;
  --serif:'Source Serif 4','Songti SC',Georgia,serif;
  --sans:'Inter',-apple-system,BlinkMacSystemFont,'PingFang SC','Hiragino Sans GB',sans-serif;
  --mono:'JetBrains Mono',ui-monospace,monospace;
  --max-w:1080px;
  --h-font:var(--serif);
  --h-weight:500;
  --b-font:var(--sans);
  --footer-bg:#151515;
}

* { box-sizing:border-box; margin:0; padding:0; }
html, body { background:var(--bg); color:var(--ink); }
body { font-family:var(--b-font); font-size:15px; line-height:1.7; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; }
a { color:inherit; text-decoration:none; }
img, svg { display:block; max-width:100%; }

.topbar { border-bottom:.5px solid var(--line); background:color-mix(in oklab,var(--bg) 85%,transparent); backdrop-filter:blur(8px); position:sticky; top:0; z-index:10; }
.topbar-inner { max-width:var(--max-w); margin:0 auto; padding:14px 28px; display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:24px; }
.logotype { font-family:var(--serif); font-size:19px; font-weight:500; letter-spacing:-.01em; color:var(--ink); justify-self:start; }
.logotype .dot { color:var(--accent); }
.nav-links, .nav-links ul { list-style:none; }
.nav-links { position:relative; display:inline-flex; align-items:center; gap:6px; padding:4px; font-size:13.5px; color:var(--ink-2); justify-self:center; border-radius:999px; }
.nav-links > li, .nav-item { position:relative; }
.nav-links > li::after, .nav-item::after { content:""; position:absolute; left:-8px; right:-8px; top:100%; height:10px; }
.nav-links a, .nav-links .nav-trigger { position:relative; z-index:1; padding:8px 18px; transition:background .16s ease,color .16s ease; color:var(--ink-2); cursor:pointer; display:inline-flex; align-items:center; line-height:1; border-radius:999px; }
.nav-links a:hover, .nav-links .nav-trigger:hover, .nav-links > li:hover > a, .nav-item:hover .nav-trigger, .nav-links a:focus-visible, .nav-links .nav-trigger:focus-visible, .nav-links .current-menu-item > a { background:color-mix(in oklab,var(--ink) 7%,transparent); color:var(--ink); }
.nav-links .current-menu-item > a, .nav-links > a.active { font-weight:500; }
.nav-menu, .nav-links .sub-menu { position:absolute; top:calc(100% + 8px); left:50%; transform:translateX(-50%); min-width:200px; background:var(--surface); border:.5px solid var(--line-2); border-radius:10px; padding:6px; display:none; flex-direction:column; z-index:20; box-shadow:0 16px 40px rgba(0,0,0,.05); }
.nav-item:hover .nav-menu, .nav-item:focus-within .nav-menu, .nav-links li:hover > .sub-menu, .nav-links li:focus-within > .sub-menu { display:flex; }
.nav-menu a, .nav-links .sub-menu a { padding:9px 12px; border-radius:6px; font-size:13px; color:var(--ink-2); display:flex; align-items:baseline; justify-content:space-between; gap:18px; white-space:nowrap; }
.nav-menu a:hover, .nav-links .sub-menu a:hover { background:color-mix(in oklab,var(--ink) 4%,transparent); color:var(--ink); }
.nm-note { font-family:var(--mono); font-size:10.5px; color:var(--ink-4); letter-spacing:.04em; }

.container { max-width:var(--max-w); margin:0 auto; padding:0 28px; }
.hero { max-width:var(--max-w); margin:0 auto; padding:72px 28px 48px; border-bottom:.5px solid var(--line); }
.eyebrow { font-family:var(--eyebrow-font,var(--b-font)); font-size:11.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-3); margin-bottom:18px; display:inline-flex; align-items:center; gap:10px; }
.eyebrow::before { content:""; width:18px; height:.5px; background:var(--ink-3); display:inline-block; }
h1.page-title { font-family:var(--h-font); font-weight:var(--h-weight); font-size:clamp(40px,5.6vw,64px); line-height:1.05; letter-spacing:-.025em; margin-bottom:20px; text-wrap:balance; }
.page-lede { font-size:16px; color:var(--ink-2); max-width:540px; text-wrap:pretty; }
.section-h { display:flex; align-items:baseline; justify-content:space-between; padding-bottom:16px; margin-bottom:32px; border-bottom:.5px solid var(--line); }
.section-h .label { font-family:var(--eyebrow-font,var(--b-font)); font-size:11.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-3); }
.section-h .count { font-family:var(--mono); font-size:11px; color:var(--ink-4); font-variant-numeric:tabular-nums; }
.btn { font-family:var(--b-font); font-size:13.5px; padding:11px 20px; border-radius:4px; border:.5px solid var(--line-2); background:transparent; color:var(--ink); cursor:pointer; transition:all .15s; display:inline-flex; align-items:center; justify-content:center; }
.btn:hover { border-color:var(--ink); }
.btn.primary { background:var(--ink); color:var(--bg); border-color:var(--ink); font-weight:500; }
.btn.primary:hover { background:var(--accent); border-color:var(--accent); color:#fff; }

.home-hero { max-width:var(--max-w); margin:0 auto; padding:96px 28px 80px; }
.home-hero h1 { font-family:var(--h-font); font-weight:var(--h-weight); font-size:clamp(48px,7vw,92px); line-height:1; letter-spacing:-.03em; margin-bottom:32px; max-width:920px; text-wrap:balance; }
.home-hero h1 em { font-style:italic; color:var(--accent-ink); font-weight:400; }
.home-hero .lede { font-size:17px; color:var(--ink-2); max-width:540px; line-height:1.7; margin-bottom:36px; text-wrap:pretty; }
.home-hero .actions { display:inline-flex; gap:12px; flex-wrap:wrap; }

.feat { max-width:var(--max-w); margin:0 auto; padding:80px 28px; }
.feat-grid { display:grid; grid-template-columns:1fr 1fr; gap:56px 40px; }
.card, .proj, .photo { cursor:pointer; }
.card .head, .proj-head { padding-top:16px; display:flex; align-items:baseline; justify-content:space-between; gap:16px; }
.card .cat, .proj-cat { font-family:var(--eyebrow-font,var(--b-font)); font-size:10.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-3); }
.card .y, .proj-year { font-family:var(--mono); font-size:11px; color:var(--ink-4); }
.card h3, .proj h3 { font-family:var(--h-font); font-weight:var(--h-weight); font-size:22px; line-height:1.25; letter-spacing:-.015em; margin-top:8px; transition:color .15s; text-wrap:balance; }
.card:hover h3, .proj:hover h3 { color:var(--accent-ink); }
.card p, .proj p { font-size:14px; color:var(--ink-2); line-height:1.65; margin-top:8px; max-width:460px; }
.latest { max-width:var(--max-w); margin:0 auto; padding:0 28px 80px; }
.latest-grid { display:grid; grid-template-columns:1fr 1fr; gap:40px; }
.latest-col h4 { font-family:var(--eyebrow-font,var(--b-font)); font-size:11.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-3); padding-bottom:14px; border-bottom:.5px solid var(--line); margin-bottom:8px; display:flex; justify-content:space-between; align-items:baseline; }
.latest-col h4 .more { font-family:var(--b-font); letter-spacing:0; text-transform:none; font-size:12.5px; color:var(--ink-3); }
.row { display:grid; grid-template-columns:70px 1fr; gap:18px; padding:14px 0; border-bottom:.5px solid var(--line); align-items:baseline; }
.row .d { font-family:var(--mono); font-size:11.5px; color:var(--ink-4); }
.row-title { font-family:var(--h-font); font-weight:var(--h-weight); font-size:16px; line-height:1.35; transition:color .15s; text-wrap:balance; }
.row:hover .row-title { color:var(--accent-ink); }
.row .meta { font-size:12px; color:var(--ink-3); margin-top:4px; }
.quote-band { border-top:.5px solid var(--line); border-bottom:.5px solid var(--line); padding:80px 28px; }
.quote-inner { max-width:760px; margin:0 auto; }
.quote-inner blockquote { font-family:var(--h-font); font-weight:var(--h-weight); font-size:clamp(22px,2.6vw,32px); line-height:1.35; letter-spacing:-.015em; color:var(--ink); margin-bottom:18px; text-wrap:balance; }
.quote-inner blockquote::before { content:"“"; color:var(--accent); margin-right:4px; }
.quote-inner cite { font-size:13px; color:var(--ink-3); font-style:normal; font-family:var(--b-font); }

.ph { aspect-ratio:4/3; background:var(--surface); border:.5px solid var(--line); position:relative; overflow:hidden; margin-bottom:18px; transition:opacity .2s; }
.ph::before { content:""; position:absolute; inset:0; background:linear-gradient(var(--line) .5px,transparent .5px) 0 0/100% 33.33%,linear-gradient(90deg,var(--line) .5px,transparent .5px) 0 0/33.33% 100%; opacity:.55; }
.ph .ph-mark { position:absolute; left:16px; bottom:14px; font-family:var(--mono); font-size:10.5px; letter-spacing:.16em; color:var(--ink-3); text-transform:uppercase; }
.ph .ph-num { position:absolute; right:16px; top:14px; font-family:var(--mono); font-size:10.5px; letter-spacing:.06em; color:var(--ink-4); }
.ph .ph-glyph { position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); width:38%; aspect-ratio:1; border:.5px solid var(--ink-3); }
.ph[data-shape="circle"] .ph-glyph { border-radius:50%; }
.ph[data-shape="bar"] .ph-glyph { aspect-ratio:6/1; width:56%; height:auto; }
.ph[data-shape="cross"] .ph-glyph { background:linear-gradient(var(--ink-3),var(--ink-3)) center/.5px 100% no-repeat,linear-gradient(var(--ink-3),var(--ink-3)) center/100% .5px no-repeat; border:0; }
.ph[data-shape="diag"] .ph-glyph { background:linear-gradient(135deg,transparent calc(50% - .25px),var(--ink-3) calc(50% - .25px),var(--ink-3) calc(50% + .25px),transparent calc(50% + .25px)); border:0; }
.ph[data-shape="frame"] .ph-glyph { width:60%; aspect-ratio:16/9; }
.ph[data-shape="dot"] .ph-glyph { width:14%; border-radius:50%; background:var(--accent); border-color:var(--accent); }
.ph[data-tone="warm"] { background:var(--accent-soft); }
.ph[data-tone="paper"] { background:var(--bg); }
.ph img { width:100%; height:100%; object-fit:cover; position:relative; z-index:1; }

.projects-page .hero, .projects-page .toolbar, .projects-page .container { width:min(calc(100% - 56px),var(--max-w)); max-width:none; padding-left:0; padding-right:0; }
.toolbar { max-width:var(--max-w); margin:0 auto; padding:18px 28px; border-bottom:.5px solid var(--line); display:flex; align-items:center; gap:24px; flex-wrap:wrap; }
.filters { display:flex; gap:4px; flex-wrap:wrap; flex:1; }
.pill { font-size:13px; font-family:var(--b-font); color:var(--ink-2); padding:7px 14px; border-radius:999px; border:.5px solid transparent; background:transparent; cursor:pointer; transition:all .15s ease; white-space:nowrap; }
.pill:hover { color:var(--ink); background:color-mix(in oklab,var(--ink) 4%,transparent); }
.pill.on { color:var(--ink); background:var(--surface); border-color:var(--line-2); font-weight:500; }
.pill .count { font-size:11px; color:var(--ink-4); margin-left:6px; font-family:var(--mono); }
.view-toggle { display:inline-flex; border:.5px solid var(--line-2); border-radius:999px; padding:2px; }
.view-toggle button { font-family:var(--eyebrow-font,var(--b-font)); font-size:11px; letter-spacing:.12em; text-transform:uppercase; padding:5px 12px; border-radius:999px; border:0; background:transparent; color:var(--ink-3); cursor:pointer; }
.view-toggle button.on { background:var(--ink); color:var(--bg); }
.projects { padding:48px 0 80px; }
.grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:56px 48px; }
.proj-tags { margin-top:12px; display:flex; flex-wrap:wrap; gap:6px; }
.proj-tags .tag { font-size:11.5px; color:var(--ink-3); padding:2px 9px; border-radius:999px; background:var(--tag-bg); }
.list-view { display:none; padding:8px 0 0; }
.lv-head, .lv-row { display:grid; grid-template-columns:60px 1.4fr 1fr .8fr .6fr; gap:24px; padding:14px 0; border-bottom:.5px solid var(--line); align-items:baseline; }
.lv-head { font-family:var(--eyebrow-font,var(--b-font)); font-size:10.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-3); padding-bottom:10px; }
.lv-row:hover { background:color-mix(in oklab,var(--ink) 3%,transparent); }
.lv-num, .lv-year { font-family:var(--mono); font-size:11.5px; color:var(--ink-4); }
.lv-title { font-family:var(--h-font); font-weight:var(--h-weight); font-size:17px; line-height:1.25; }
.lv-client { font-size:13.5px; color:var(--ink-2); }
.lv-cat { font-family:var(--eyebrow-font,var(--b-font)); font-size:10.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-3); }
.lv-year { text-align:right; }
body.view-list .grid { display:none; }
body.view-list .list-view { display:block; }

.blog-layout { max-width:var(--max-w); margin:0 auto; padding:0 28px; display:grid; grid-template-columns:minmax(0,1fr) 280px; gap:48px; min-height:60vh; }
.main-col { padding:40px 0 80px; min-width:0; }
.sidebar { padding:40px 0 80px 32px; border-left:.5px solid var(--line); margin-left:-16px; }
.search { display:flex; align-items:center; gap:10px; min-width:240px; color:var(--ink-3); border-bottom:.5px solid var(--line-2); padding:7px 0; }
.search input { border:0; outline:0; background:transparent; font:inherit; width:100%; color:var(--ink); }
.list-heading { font-family:var(--eyebrow-font,var(--b-font)); font-size:11.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-3); margin-bottom:8px; display:flex; align-items:baseline; justify-content:space-between; }
.list-heading .count { font-family:var(--mono); color:var(--ink-4); letter-spacing:0; }
.post { display:grid; grid-template-columns:92px 1fr auto; gap:28px; padding:28px 0; border-bottom:.5px solid var(--line); align-items:baseline; }
.post-date { font-family:var(--mono); font-size:12px; color:var(--ink-3); font-variant-numeric:tabular-nums; padding-top:4px; }
.post-cat { font-family:var(--eyebrow-font,var(--b-font)); font-size:10.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-3); margin-bottom:8px; display:inline-block; }
.post-title { font-family:var(--h-font); font-weight:var(--h-weight); font-size:20px; line-height:1.3; letter-spacing:-.012em; color:var(--ink); margin-bottom:8px; transition:color .15s; text-wrap:balance; }
.post:hover .post-title { color:var(--accent-ink); }
.post-excerpt { font-size:14px; color:var(--ink-2); line-height:1.65; max-width:680px; text-wrap:pretty; }
.post-read { font-family:var(--mono); font-size:11.5px; color:var(--ink-4); white-space:nowrap; }
.side-block { margin-bottom:42px; }
.side-h { font-family:var(--eyebrow-font,var(--b-font)); font-size:11.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-3); padding-bottom:14px; border-bottom:.5px solid var(--line); margin-bottom:14px; }
.recent { display:grid; grid-template-columns:34px 1fr; gap:12px; padding:12px 0; border-bottom:.5px solid var(--line); }
.recent-num { font-family:var(--mono); font-size:11px; color:var(--ink-4); }
.recent-title { font-family:var(--h-font); font-weight:var(--h-weight); font-size:14.5px; line-height:1.4; color:var(--ink); text-wrap:balance; }

.photo-grid { max-width:var(--max-w); margin:0 auto; padding:56px 28px 90px; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:44px 28px; }
.photo h3 { font-family:var(--h-font); font-size:20px; font-weight:var(--h-weight); line-height:1.25; margin-top:12px; }
.photo .meta { color:var(--ink-3); font-size:12.5px; margin-top:4px; }
.about-content { max-width:var(--max-w); margin:0 auto; padding:64px 28px 96px; display:grid; grid-template-columns:1fr 1fr; gap:56px; }
.about-content h2 { font-family:var(--h-font); font-weight:var(--h-weight); font-size:32px; line-height:1.15; margin-bottom:18px; }
.about-content p { color:var(--ink-2); margin-bottom:16px; max-width:560px; }
.wp-content { max-width:760px; margin:0 auto; padding:72px 28px; }
.wp-content h1, .single-title { font-family:var(--h-font); font-weight:var(--h-weight); font-size:clamp(34px,5vw,56px); line-height:1.1; margin-bottom:24px; }
.wp-content p { color:var(--ink-2); margin-bottom:18px; }

.detail-hero { max-width:var(--max-w); margin:0 auto; padding:72px 28px 40px; }
.back-link { display:inline-flex; align-items:center; gap:8px; color:var(--ink-3); font-size:13px; margin-bottom:34px; transition:color .15s; }
.back-link:hover { color:var(--ink); }
.detail-hero h1 { font-family:var(--h-font); font-weight:var(--h-weight); font-size:clamp(42px,6vw,76px); line-height:1.02; letter-spacing:-.028em; max-width:880px; text-wrap:balance; margin-bottom:24px; }
.detail-lede { max-width:660px; color:var(--ink-2); font-size:17px; line-height:1.75; text-wrap:pretty; }
.detail-meta { margin-top:36px; padding-top:24px; border-top:.5px solid var(--line); display:grid; grid-template-columns:repeat(4,1fr); gap:24px; }
.meta-k { font-family:var(--mono); font-size:10.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-3); margin-bottom:8px; }
.meta-v { font-family:var(--h-font); font-size:20px; line-height:1.25; color:var(--ink); }
.case-image { max-width:var(--max-w); margin:0 auto; padding:0 28px 70px; }
.case-image .ph { aspect-ratio:16/8.5; margin-bottom:0; }
.case-image .ph .ph-glyph { width:46%; aspect-ratio:16/9; }
.case-image .ph[data-shape="circle"] .ph-glyph { width:24%; aspect-ratio:1; border-radius:50%; }
.case-image .ph[data-shape="bar"] .ph-glyph { width:52%; aspect-ratio:6/1; }
.case-image .ph[data-shape="cross"] .ph-glyph { width:30%; aspect-ratio:1; }
.case-image .ph[data-shape="diag"] .ph-glyph { width:34%; aspect-ratio:1; }
.case-image .ph[data-shape="dot"] .ph-glyph { width:13%; aspect-ratio:1; }
.case-image .ph[data-tone="default"] { background:var(--surface); }
.case-body { max-width:var(--max-w); margin:0 auto; padding:0 28px 76px; display:grid; grid-template-columns:minmax(0,1fr) 280px; gap:72px; }
.case-section { border-top:.5px solid var(--line); padding-top:28px; margin-bottom:48px; }
.case-section h2 { font-family:var(--eyebrow-font,var(--b-font)); font-size:11.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-3); margin-bottom:18px; }
.case-section p { color:var(--ink-2); font-size:16px; line-height:1.8; max-width:720px; margin-bottom:16px; text-wrap:pretty; }
.process-list { display:grid; gap:18px; }
.process-item { display:grid; grid-template-columns:54px 1fr; gap:18px; padding-bottom:18px; border-bottom:.5px solid var(--line); }
.process-num { font-family:var(--mono); color:var(--ink-4); font-size:12px; }
.process-item h3 { font-family:var(--h-font); font-weight:var(--h-weight); font-size:20px; line-height:1.25; margin-bottom:6px; }
.process-item p { margin:0; font-size:14px; }
.side-panel { position:sticky; top:86px; align-self:start; border-top:.5px solid var(--line); padding-top:28px; }
.side-row { display:flex; justify-content:space-between; gap:18px; padding:13px 0; border-bottom:.5px solid var(--line); color:var(--ink-2); }
.side-row span:first-child { color:var(--ink-3); font-size:13px; }
.side-row span:last-child { text-align:right; }
.tag-row { margin-top:22px; display:flex; flex-wrap:wrap; gap:8px; }
.tag-row span { font-size:12px; color:var(--ink-3); padding:3px 10px; border-radius:999px; background:var(--tag-bg); }
.related { max-width:var(--max-w); margin:0 auto; padding:64px 28px 90px; border-top:.5px solid var(--line); }
.related-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
.related-card { border-top:.5px solid var(--line); padding-top:18px; min-height:140px; }
.related-card .cat { font-family:var(--eyebrow-font,var(--b-font)); font-size:10.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--accent); margin-bottom:12px; display:block; }
.related-card h3 { font-family:var(--h-font); font-weight:var(--h-weight); font-size:20px; line-height:1.25; margin-bottom:10px; text-wrap:balance; transition:color .15s; }
.related-card:hover h3 { color:var(--accent-ink); }
.related-card p { color:var(--ink-2); font-size:13.5px; line-height:1.6; }

.footer { border-top:0; padding:56px 28px 28px; background:var(--footer-bg); color:rgba(255,255,255,.84); }
.footer-inner { max-width:760px; margin:0 auto; display:grid; grid-template-columns:repeat(3,minmax(120px,1fr)); gap:64px; align-items:start; }
.footer-col h3 { font-family:var(--eyebrow-font,var(--b-font)); font-size:11px; line-height:1; letter-spacing:.16em; text-transform:uppercase; color:rgba(255,255,255,.42); margin-bottom:16px; }
.footer-col a, .footer-menu a { display:block; width:fit-content; color:rgba(255,255,255,.72); font-size:13.5px; line-height:1.35; margin:0 0 11px; transition:color .15s; }
.footer-col a:hover, .footer-menu a:hover { color:#fff; }
.footer-menu { list-style:none; }
.footer-bottom { max-width:var(--max-w); margin:48px auto 0; padding-top:20px; border-top:.5px solid rgba(255,255,255,.13); display:flex; align-items:center; justify-content:space-between; gap:18px; color:rgba(255,255,255,.38); font-family:var(--mono); font-size:11px; }
.footer-legal { display:flex; gap:20px; flex-wrap:wrap; }
.empty { padding:80px 0; text-align:center; color:var(--ink-3); font-size:14px; }

@media (max-width:880px) {
  .blog-layout { grid-template-columns:1fr; gap:0; }
  .sidebar { border-left:0; padding-left:0; margin-left:0; border-top:.5px solid var(--line); padding-top:40px; }
  .photo-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .about-content { grid-template-columns:1fr; }
  .detail-meta { grid-template-columns:repeat(2,1fr); }
  .case-body { grid-template-columns:1fr; gap:32px; }
  .side-panel { position:static; }
  .related-grid { grid-template-columns:1fr; }
}
@media (max-width:720px) {
  .feat-grid, .latest-grid, .grid { grid-template-columns:1fr; gap:48px; }
  .post { grid-template-columns:1fr; gap:8px; }
  .post-read { display:none; }
  .lv-head { display:none; }
  .lv-row { grid-template-columns:1fr auto; }
  .lv-row .lv-num, .lv-row .lv-cat, .lv-row .lv-client { display:none; }
}
@media (max-width:560px) {
  .topbar-inner { grid-template-columns:1fr; justify-items:start; gap:8px; }
  .nav-links { justify-self:start; flex-wrap:wrap; }
  .home-hero, .hero { padding-left:24px; padding-right:24px; }
  .photo-grid { grid-template-columns:1fr; }
  .detail-hero, .case-image, .case-body, .related { padding-left:24px; padding-right:24px; }
  .detail-meta { grid-template-columns:1fr; }
  .footer { padding:44px 24px 24px; }
  .footer-inner { grid-template-columns:1fr; gap:30px; }
  .footer-bottom { align-items:flex-start; flex-direction:column; }
}
