.case-study-page { background: var(--bg); }
.case-study-page .site-header { background: rgba(10,10,10,.72); backdrop-filter: blur(14px); }
.case-hero { min-height: 92svh; padding-top: 150px; padding-bottom: clamp(4rem,8vw,7rem); display:flex; flex-direction:column; justify-content:flex-end; }
.case-kicker { display:flex; justify-content:space-between; gap:2rem; padding-bottom:1rem; border-bottom:1px solid var(--line); margin-bottom:clamp(2.5rem,6vw,5rem); color:var(--muted); font-size:.64rem; text-transform:uppercase; letter-spacing:.14em; }
.case-kicker a { color:var(--text); }
.case-title-grid { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr); align-items:end; gap:7vw; }
.case-title-grid h1 { margin:0; font-family:var(--display); font-size:clamp(6rem,16vw,14.5rem); font-weight:400; line-height:.72; letter-spacing:-.075em; }
.case-deck { margin:0 0 .45rem; max-width:610px; color:#c3bdb4; font-size:clamp(1.2rem,2vw,1.75rem); line-height:1.38; letter-spacing:-.025em; }
.case-facts { display:grid; grid-template-columns:repeat(4,1fr); margin-top:clamp(4rem,8vw,7rem); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.case-facts div { padding:1rem 1.2rem 1.2rem 0; border-right:1px solid var(--line); }
.case-facts div:last-child { border-right:0; padding-left:1.2rem; }
.case-facts div:not(:first-child) { padding-left:1.2rem; }
.case-facts span { display:block; margin-bottom:.6rem; color:#77726b; font-size:.58rem; text-transform:uppercase; letter-spacing:.15em; }
.case-facts strong { font-size:.82rem; font-weight:550; }

.case-visual { position:relative; min-height:min(82vw,980px); overflow:hidden; border-block:1px solid var(--line); }
.case-visual-sigil { background:radial-gradient(circle at 50% 48%,#592117 0,#261511 31%,#100d0c 63%,#090909 100%); }
.case-visual-sigil::before { content:""; position:absolute; inset:0; background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px); background-size:6vw 6vw; mask-image:linear-gradient(to bottom,transparent,black 18%,black 82%,transparent); }
.case-sigil { position:absolute; left:50%; top:50%; width:min(62vw,760px); aspect-ratio:1; transform:translate(-50%,-50%); }
.cs-circle { position:absolute; inset:3%; border:1px solid rgba(255,198,88,.62); border-radius:50%; box-shadow:0 0 90px rgba(255,92,33,.12),inset 0 0 80px rgba(255,92,33,.05); }
.cs-square,.cs-inner { position:absolute; left:50%; top:50%; width:57%; aspect-ratio:1; border:1px solid rgba(245,236,219,.5); }
.cs-square-a { transform:translate(-50%,-50%); }
.cs-square-b { transform:translate(-50%,-50%) rotate(45deg); }
.cs-inner { width:27%; transform:translate(-50%,-50%) rotate(45deg); border-color:rgba(255,92,33,.64); }
.cs-node { position:absolute; width:8px; height:8px; margin:-4px; border-radius:50%; background:#ffd667; box-shadow:0 0 18px rgba(255,196,77,.75); }
.n1{left:50%;top:50%}.n2{left:29.8%;top:29.8%}.n3{left:70.2%;top:29.8%}.n4{left:70.2%;top:70.2%}.n5{left:29.8%;top:70.2%}.n6{left:50%;top:21.5%}.n7{left:78.5%;top:50%}.n8{left:50%;top:78.5%}.n9{left:21.5%;top:50%}.n10{left:40.5%;top:40.5%}.n11{left:59.5%;top:40.5%}.n12{left:59.5%;top:59.5%}.n13{left:40.5%;top:59.5%}
.visual-caption { position:absolute; inset:auto var(--pad) 1.2rem; display:flex; justify-content:space-between; font-family:monospace; font-size:.56rem; text-transform:uppercase; letter-spacing:.12em; color:rgba(255,255,255,.38); }

.case-section { display:grid; grid-template-columns:minmax(0,.34fr) minmax(0,1fr); gap:8vw; padding-top:clamp(5rem,10vw,10rem); padding-bottom:clamp(5rem,10vw,10rem); }
.case-section + .case-section { border-top:1px solid var(--line); }
.section-index { display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; padding-top:.75rem; border-top:1px solid var(--line); color:#827d75; font-family:monospace; font-size:.6rem; text-transform:uppercase; letter-spacing:.12em; }
.case-copy { max-width:920px; }
.case-copy h2,.system-intro h2 { margin:0 0 2.6rem; font-family:var(--display); font-size:clamp(3.4rem,7vw,7rem); line-height:.9; letter-spacing:-.055em; font-weight:400; }
.case-copy > p { max-width:760px; margin:0 0 1.35rem; color:#bdb7ad; font-size:clamp(1.05rem,1.45vw,1.3rem); line-height:1.63; }
.case-cta { margin-top:1.4rem; }

.system-panel { padding-top:clamp(4rem,8vw,8rem); padding-bottom:clamp(5rem,10vw,10rem); border-top:1px solid var(--line); }
.system-intro { display:grid; grid-template-columns:minmax(0,.4fr) minmax(0,1fr); gap:8vw; align-items:start; }
.system-intro .eyebrow { padding-top:1rem; }
.system-grid { display:grid; grid-template-columns:repeat(2,1fr); margin-top:clamp(3rem,6vw,6rem); border-top:1px solid var(--line); border-left:1px solid var(--line); }
.system-card { min-height:300px; padding:1.5rem clamp(1.3rem,3vw,3rem) 2.5rem; border-right:1px solid var(--line); border-bottom:1px solid var(--line); }
.system-card > span { display:block; margin-bottom:clamp(3rem,6vw,6rem); color:var(--solar); font-family:monospace; font-size:.62rem; }
.system-card h3 { margin:0 0 1rem; font-family:var(--display); font-size:clamp(2rem,3.4vw,3.4rem); font-weight:400; letter-spacing:-.04em; }
.system-card p { margin:0; max-width:560px; color:var(--muted); line-height:1.55; }

.interface-strip { display:grid; grid-template-columns:repeat(3,1fr); min-height:600px; }
.interface-column { display:flex; flex-direction:column; justify-content:flex-end; padding:clamp(1.5rem,4vw,4rem); border-right:1px solid rgba(0,0,0,.16); }
.interface-column span { margin-bottom:auto; font-family:monospace; font-size:.62rem; letter-spacing:.18em; }
.interface-column strong { display:block; max-width:460px; font-family:var(--display); font-size:clamp(2.5rem,4.8vw,5rem); line-height:.92; letter-spacing:-.045em; font-weight:400; }
.interface-column p { max-width:430px; margin:1.5rem 0 0; line-height:1.5; }
.interface-column.dark { background:#121318; color:#eee9e0; }
.interface-column.warm { background:#f0642d; color:#190d08; }
.interface-column.light { background:#e9e3d8; color:#171614; }

.next-project { padding-top:clamp(4rem,8vw,7rem); padding-bottom:clamp(5rem,10vw,9rem); border-top:1px solid var(--line); }
.next-project > a { position:relative; display:grid; grid-template-columns:.38fr 1fr auto; gap:3vw; align-items:end; padding:1.5rem 0 0; border-top:1px solid var(--line); }
.next-project a > span { color:var(--muted); font-size:.68rem; text-transform:uppercase; letter-spacing:.12em; }
.next-project a > strong { font-family:var(--display); font-size:clamp(3rem,7vw,7rem); line-height:.9; font-weight:400; letter-spacing:-.05em; }
.next-project a > i { align-self:center; font-style:normal; font-size:2rem; transition:transform .2s; }
.next-project a:hover > i { transform:translate(4px,-4px); }

@media (max-width: 900px) {
  .case-hero { min-height:auto; padding-top:130px; }
  .case-title-grid,.system-intro { grid-template-columns:minmax(0,1fr); gap:2.3rem; }
  .case-title-grid h1 { font-size:clamp(5.2rem,24vw,10rem); }
  .case-facts { grid-template-columns:1fr 1fr; }
  .case-facts div:nth-child(2) { border-right:0; }
  .case-facts div:nth-child(3),.case-facts div:nth-child(4) { border-top:1px solid var(--line); }
  .case-facts div:nth-child(3) { padding-left:0; }
  .case-visual { min-height:92vw; }
  .case-sigil { width:72vw; }
  .case-section { grid-template-columns:minmax(0,1fr); gap:2rem; }
  .section-index { max-width:none; }
  .system-grid { grid-template-columns:1fr; }
  .system-card { min-height:250px; }
  .interface-strip { grid-template-columns:1fr; }
  .interface-column { min-height:440px; }
  .next-project > a { grid-template-columns:1fr auto; }
  .next-project a > span { grid-column:1/-1; }
}

@media (max-width: 620px) {
  .case-kicker { align-items:flex-start; }
  .case-deck { font-size:1.12rem; }
  .case-facts { grid-template-columns:1fr; }
  .case-facts div,.case-facts div:not(:first-child),.case-facts div:last-child { padding:1rem 0 1.1rem; border-right:0; border-top:1px solid var(--line); }
  .case-facts div:first-child { border-top:0; }
  .visual-caption { gap:.75rem; flex-wrap:wrap; }
  .case-sigil { width:84vw; }
  .system-card > span { margin-bottom:2.7rem; }
  .interface-column { min-height:390px; }
}

@media (prefers-reduced-motion: reduce) {
  .case-study-page * { scroll-behavior:auto !important; }
}
/* Text must fit its own grid track, including enlarged mobile type. */
.case-title-grid > *, .case-section > *, .system-intro > *, .system-card { min-width:0; }
.case-study-page h1, .case-study-page h2, .case-study-page h3 { overflow-wrap:anywhere; }
@media(max-width:620px) {
 .case-study-page .case-title-grid h1 { font-size:clamp(3.5rem,18vw,7rem); line-height:.94; }
 .case-copy h2, .system-intro h2 { font-size:clamp(2.6rem,10vw,3.8rem); line-height:1; }
}
