@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:wght@500;600;700&family=DM+Sans:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500&display=swap');
:root { color-scheme: dark; --paper:#191c1c; --panel:#232727; --ink:#f0f0e8; --muted:#afb7b4; --line:#454e4a; --accent:#f5a26c; --mono:'IBM Plex Mono',monospace; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:var(--controls-offset, 110px); }
body { margin:0; background:var(--paper); color:var(--ink); font:16px/1.65 'DM Sans',sans-serif; }
[hidden] { display:none!important; }
a { color:inherit; text-underline-offset:5px; }
a:focus-visible,button:focus-visible { outline:3px solid var(--accent); outline-offset:5px; }
button { font:inherit; cursor:pointer; touch-action:manipulation; }
.site-header,main,footer { max-width:1392px; margin:auto; padding-inline:48px; }
.site-header { display:flex; align-items:center; gap:24px; padding-block:25px; border-bottom:1px solid var(--line); }
.brand { display:flex; align-items:center; gap:12px; font-size:21px; font-weight:600; letter-spacing:-.6px; text-decoration:none; }
.brand img { filter:brightness(1.5) saturate(.75); }
.edition { font:12px/1.5 var(--mono); text-transform:uppercase; color:var(--muted); margin-left:auto; }
.themes-link { font-size:14px; }
.intro { display:grid; grid-template-columns:1.25fr 1fr; gap:80px; align-items:end; padding-block:52px 44px; }
.eyebrow { margin:0; font:12px/1.5 var(--mono); letter-spacing:.08em; text-transform:uppercase; color:var(--accent); }
h1,h2 { font-family:'Barlow Condensed','Arial Narrow',sans-serif; font-weight:500; line-height:1.02; letter-spacing:-.015em; margin:0; }
h1 { font-size:clamp(56px,6.2vw,86px); margin-top:20px; }
h1 span,.closing h2 span { color:var(--muted); }
.intro-copy { max-width:430px; font-size:20px; }
.intro-copy p { margin:0 0 16px; }
.intro-copy .muted { color:var(--muted); font-size:16px; margin-bottom:0; }
.walkthrough-controls { position:sticky; top:0; z-index:10; display:flex; align-items:center; justify-content:space-between; gap:20px; padding:14px 0; background:var(--paper); border-block:1px solid var(--line); }
.walkthrough-controls nav { display:flex; gap:24px; flex-wrap:wrap; }
.walkthrough-controls nav a { font-size:14px; text-decoration:none; padding-block:8px; }
.walkthrough-controls nav a:hover { color:var(--accent); }
.walkthrough-controls nav span { color:var(--accent); font:12px var(--mono); margin-right:7px; }
.depth-control { display:flex; padding:4px; background:#111414; border:1px solid var(--line); flex-shrink:0; }
.depth-control button { border:0; color:var(--muted); background:transparent; font-size:14px; padding:9px 14px; }
.depth-control button[aria-pressed="true"] { color:#20190f; background:var(--accent); }
.depth-status { color:var(--muted); font:12px/1.5 var(--mono); margin:16px 0 34px; }
.case { padding:28px 0 58px; margin-bottom:36px; border-bottom:1px solid var(--line); scroll-margin-top:8px; }
.case-heading { display:flex; justify-content:space-between; align-items:center; gap:16px; margin-bottom:26px; }
.status { border:1px solid #75866e; color:#c2d4b6; padding:5px 9px; font:12px/1.5 var(--mono); }
.status.research { color:#edc391; border-color:#90704c; }
.case-overview { display:grid; grid-template-columns: .85fr 1.15fr; gap:64px; align-items:center; }
h2 { font-size:clamp(38px,4.3vw,58px); }
.case-lead { font-size:24px; line-height:1.35; margin:20px 0; color:var(--muted); }
.case-copy > p:not(.case-lead) { max-width:49ch; }
.principle { border-left:2px solid var(--accent); padding-left:16px; font-size:15px; color:#d0d5cf; margin-top:24px; }
.tags { display:flex; flex-wrap:wrap; gap:7px; list-style:none; padding:0; margin:24px 0; }
.tags li { border:1px solid var(--line); color:var(--muted); padding:4px 8px; font:12px/1.5 var(--mono); }
.evidence-link { font-size:14px; color:var(--accent); }
figure { margin:0; min-width:0; }
figure > a { display:flex; align-items:center; justify-content:center; background:#e8ebe5; border:1px solid #59615b; min-height:250px; }
figure img { display:block; width:100%; height:auto; max-height:440px; object-fit:contain; }
figcaption { color:var(--muted); font:12px/1.5 var(--mono); margin-top:12px; }
.phone-figure > a { background:repeating-linear-gradient(90deg,#232727 0 47px,#303736 47px 48px); padding:24px; }
.phone-figure img { max-height:440px; width:auto; max-width:100%; }
.system-detail { border:1px solid var(--line); margin-top:34px; background:var(--panel); }
.flow { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:22px 26px; border-bottom:1px solid var(--line); font:14px/1.5 var(--mono); }
.flow b { color:var(--accent); font-size:22px; font-weight:400; }
.detail-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); }
.detail-grid > div { padding:26px; }
.detail-grid > div + div { border-left:1px solid var(--line); }
h3 { margin:0 0 12px; font:500 14px/1.5 var(--mono); color:var(--accent); }
.detail-grid p { margin:0; color:#d1d7d0; font-size:16px; line-height:1.7; }
.discussion { margin:0; border-top:1px solid var(--line); padding:22px 26px; font-size:20px; line-height:1.5; }
.discussion span { display:block; font:12px/1.5 var(--mono); text-transform:uppercase; color:var(--muted); margin-bottom:10px; }
.closing { padding:24px 0 66px; }
.closing h2 { margin:24px 0; font-size:clamp(42px,4.7vw,65px); }
.closing a { color:var(--accent); font-size:14px; }
footer { display:flex; justify-content:space-between; gap:24px; border-top:1px solid var(--line); padding-block:24px; color:var(--muted); font:12px/1.5 var(--mono); }
.skip-link { position:fixed; top:-100px; left:16px; padding:12px; background:var(--paper); z-index:30; }
.skip-link:focus { top:8px; }
dialog { max-width:94vw; max-height:94vh; background:var(--paper); border:1px solid var(--line); color:var(--ink); padding:20px; }
dialog::backdrop { background:#050808e8; }
#image-close { display:block; margin:0 0 16px auto; padding:8px 16px; background:var(--panel); color:var(--ink); border:1px solid var(--line); }
#image-large { display:block; max-width:85vw; max-height:72vh; width:auto; height:auto; margin:auto; }
#image-caption { text-align:center; font-size:14px; }
@media (max-width:1100px) {
  .site-header,main,footer { padding-inline:28px; }
  .edition { display:none; }
  .themes-link { margin-left:auto; }
  .intro { gap:40px; }
  .walkthrough-controls { flex-wrap:wrap; gap:8px; }
  .walkthrough-controls nav { gap:20px; }
  .case-overview { gap:36px; }
  html { scroll-padding-top:var(--controls-offset, 158px); }
}
@media (max-width:700px) {
  .site-header,main,footer { padding-inline:20px; }
  .site-header { gap:16px; }
  .brand { font-size:18px; gap:8px; }
  .themes-link { font-size:12px; }
  .intro { grid-template-columns:1fr; gap:24px; padding-block:36px; }
  .intro-copy { font-size:18px; }
  .walkthrough-controls nav { gap:0; display:grid; grid-template-columns:repeat(2,1fr); width:100%; }
  .walkthrough-controls { padding-block:10px; }
  .depth-control { width:100%; }
  .depth-control button { flex:1; }
  .case-overview { grid-template-columns:1fr; gap:28px; }
  .case-heading { align-items:start; flex-wrap:wrap; }
  .case-lead { font-size:22px; }
  .detail-grid { grid-template-columns:1fr; }
  .detail-grid > div + div { border-left:0; border-top:1px solid var(--line); }
  .detail-grid > div { padding:22px; }
  .flow { flex-direction:column; align-items:flex-start; gap:8px; padding:22px; }
  .flow b { transform:rotate(90deg); }
  .discussion { padding:22px; font-size:18px; }
  figure > a { min-height:0; }
  footer { flex-direction:column; gap:10px; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }

/* Keep the same project names and a usable return path at phone widths. */
.intro > *, .case-overview > *, .flow > *, .detail-grid > * { min-width: 0; }
.case-overview { grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); }
.evidence-link, .themes-link, .closing a { display: inline-flex; align-items: center; min-height: 44px; }
.walkthrough-controls nav a, .depth-control button { min-height: 44px; }
#image-large { max-width: 100%; }
@media(max-width:700px) {
  .site-header { flex-wrap: wrap; padding-block: 16px; gap: 10px 20px; }
  .brand { min-width: 0; }
  .themes-link { margin-left: 0; }
  .case-overview { grid-template-columns: minmax(0, 1fr); }
  .walkthrough-controls nav { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .walkthrough-controls nav a { font-size: 13px; }
  .depth-control { min-width: 0; }
  .depth-control button { min-width: 0; }
}
