/* R23 — Cognitive Wall × NAPSG case file. Extends SHAPE-03; does not replace it. */
.case-page .site-head nav a:first-child{color:var(--clay);opacity:1}
.tip{border-bottom:1px dotted currentColor;cursor:help;position:relative}
.tip:hover::after,.tip:focus::after{content:attr(data-tip);position:absolute;left:0;top:calc(100% + 8px);z-index:50;width:min(260px,70vw);background:var(--night);color:var(--nightText);border:1px solid #5d6d68;padding:8px 10px;font-family:var(--sans);font-size:11px;line-height:1.4;font-weight:500;letter-spacing:0;text-transform:none;box-shadow:0 10px 30px rgba(0,0,0,.25);white-space:normal}
.eyebrow.light{color:#c9d4d8}

.case-hero{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);gap:clamp(24px,5vw,80px);align-items:center;padding:clamp(48px,7vw,100px) clamp(20px,5vw,78px);border-bottom:1px solid var(--rule)}
.case-hero h1{font-family:var(--serif);font-size:clamp(46px,5.6vw,84px);line-height:.94;letter-spacing:-.05em;margin:22px 0 26px}
.case-hero h1 em{font-weight:400;color:var(--clay)}
.case-lede{font-family:var(--serif);font-size:clamp(18px,1.8vw,24px);line-height:1.4;max-width:760px}
.case-lede strong{color:var(--teal)}
.case-note{color:var(--muted);font-size:14px;max-width:620px}
.case-note a{color:var(--clay);text-decoration:underline;text-underline-offset:3px}

.run-card{background:var(--night);color:var(--nightText);border:1px solid var(--night);padding:22px}
.run-card-head{display:flex;justify-content:space-between;align-items:baseline;border-bottom:1px solid #4c5b57;padding-bottom:10px;font-family:var(--mono)}
.run-card-head b{font-size:10px;letter-spacing:.14em;color:#e4b08f}
.run-card-head span{font-size:9px;color:#9da8a4}
.run-card dl{margin:12px 0 0}
.run-card dl div{display:grid;grid-template-columns:86px 1fr;gap:10px;padding:7px 0;border-bottom:1px solid #34433f}
.run-card dt{font-family:var(--mono);font-size:9px;letter-spacing:.08em;color:#9faeaa;text-transform:uppercase}
.run-card dd{margin:0;font-size:12px;color:#e1e6e3}
.run-stats{display:grid;grid-template-columns:repeat(2,1fr);margin-top:16px;border:1px solid #46544f}
.run-stats div{padding:12px;border-right:1px solid #35433e;border-bottom:1px solid #35433e}
.run-stats div:nth-child(2n){border-right:0}.run-stats div:nth-child(n+3){border-bottom:0}
.run-stats b{display:block;font-family:var(--serif);font-size:30px;line-height:1;color:#f0c3a9}
.run-stats span{display:inline-block;font-family:var(--mono);font-size:9px;letter-spacing:.08em;color:#9da8a4;text-transform:uppercase;margin-top:5px}

.case-model{background:var(--night);color:var(--nightText);padding:clamp(54px,7vw,100px) clamp(16px,4vw,64px)}
.case-section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:14px}
.case-section-head h2{font-family:var(--serif);font-size:clamp(32px,4vw,58px);line-height:1;letter-spacing:-.03em;margin:13px 0 0}
.case-section-head h2 em{font-weight:400;color:var(--clay)}
.real-badge{font-family:var(--mono);font-size:10px;letter-spacing:.12em;color:#85c5a4;border:1px solid #5f8f77;padding:6px 9px;white-space:nowrap}
.case-model-copy{font-family:var(--serif);font-size:17px;line-height:1.5;color:#c8d0cc;max-width:980px}
.case-model-copy em{color:#f0c3a9}
.napsg-demo{border-top:0;margin:18px 0 0;padding:0}
.napsg-stage{height:min(66vh,640px);aspect-ratio:auto;min-height:380px;background:#0e1916}
.napsg-stage .bnsf-scene-head b{font-size:9px}.napsg-stage .bnsf-scene-head span{font-size:8px}
.napsg-legend{font-size:8px;max-width:62%}
.napsg-legend i{width:9px;height:4px}
.napsg-legend .n-obs{background:#d5ded9}.napsg-legend .n-ref{background:transparent;border:1px solid #d5ded9;height:5px}.napsg-legend .n-una{background:#e1735b}
.napsg-legend .e-cor{background:#85c5a4}.napsg-legend .e-obs{background:#7fb9c4}.napsg-legend .e-inf{background:#dfb064}.napsg-legend .e-unr{background:#e1735b}
.napsg-stage .bnsf-decision{max-width:240px}.napsg-stage .bnsf-decision b{font-size:18px}.napsg-stage .bnsf-decision span,.napsg-stage .bnsf-decision small{font-size:8px}
.napsg-coords{grid-template-columns:repeat(6,1fr)}
.napsg-coords span{font-size:7.5px}.napsg-coords b{font-size:12px}
.napsg-coords .tip:hover::after{top:auto;bottom:calc(100% + 8px)}
.case-model .bnsf-controls button,.case-model .bnsf-layers button{font-size:9px;padding:7px 9px}
.case-model .bnsf-controls output{font-size:9px;min-width:170px;text-align:right}
.case-model .bnsf-layers .speed{margin-left:auto;border-color:#c16b46;color:#f0c3a9}
.case-model .demo-foot{font-size:10px;max-width:980px;color:#8f9c97}
.napsg-hover{position:absolute;pointer-events:none;background:rgba(12,22,19,.92);border:1px solid #6b7d76;color:#e3e8e5;font-family:var(--mono);font-size:9px;padding:5px 7px;white-space:nowrap;z-index:5}
.napsg-hover b{color:#e6b594;font-weight:700}

.case-findings{background:var(--white);padding:clamp(58px,8vw,110px) clamp(20px,5vw,78px)}
.finding-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));border-top:1px solid var(--ink);margin-top:30px}
.finding{padding:24px 24px 28px;border-right:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.finding .f-id{font-family:var(--mono);font-size:10px;color:var(--clay);letter-spacing:.12em}
.finding .f-num{font-family:var(--serif);font-size:54px;line-height:1;letter-spacing:-.03em;margin:10px 0 4px}
.finding h3{font-family:var(--serif);font-size:22px;line-height:1.15;margin:0 0 10px}
.finding p{color:var(--muted);font-size:13.5px;line-height:1.5;margin:0}
.finding .f-badges{display:flex;gap:6px;flex-wrap:wrap;margin-top:14px}
.badge{font-family:var(--mono);font-size:9px;letter-spacing:.06em;border:1px solid;padding:3px 6px;border-radius:99px;text-transform:uppercase}
.badge.observed{color:#2f6f84;border-color:#7fb9c4}.badge.inferred{color:#946318;border-color:#dfb064}.badge.corroborated{color:#2f7a55;border-color:#85c5a4}.badge.unresolved{color:#a8452f;border-color:#e1735b}.badge.gap{color:var(--muted);border-color:#b9c0bd}

.case-method{background:var(--night);color:var(--nightText);padding:clamp(44px,6vw,80px) clamp(20px,6vw,100px)}
.case-chain{margin-top:22px}
.case-chain small{font-size:13px;line-height:1.4;display:block}

.case-coverage{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(30px,6vw,90px);align-items:center;background:var(--paper2);padding:clamp(60px,8vw,110px) clamp(20px,6vw,100px);border-bottom:1px solid var(--rule)}
.case-coverage h2{font-family:var(--serif);font-size:clamp(40px,5vw,68px);line-height:.98;letter-spacing:-.04em;margin:18px 0 24px}
.case-coverage h2 em{color:var(--clay);font-weight:400}
.case-coverage p{font-family:var(--serif);font-size:19px;line-height:1.5}
.cov-row{display:grid;grid-template-columns:minmax(150px,220px) 1fr 54px;gap:12px;align-items:center;padding:9px 0;border-bottom:1px solid var(--rule)}
.cov-row span{font-size:12.5px;font-weight:700}
.cov-row small{display:block;font-family:var(--serif);font-style:italic;font-weight:400;color:var(--muted);font-size:12px}
.cov-bar{height:10px;background:rgba(32,43,40,.08);position:relative}
.cov-bar i{position:absolute;left:0;top:0;bottom:0;background:linear-gradient(90deg,var(--teal),var(--clay));width:0;transition:width 1.1s cubic-bezier(.2,.8,.2,1)}
.cov-row b{font-family:var(--mono);font-size:12px;text-align:right;color:var(--clay)}

.case-vocab{background:var(--white);padding:clamp(50px,6vw,90px) clamp(20px,6vw,100px)}
.vocab-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-top:22px;border-top:1px solid var(--ink)}
.vocab-grid article{padding:22px 24px;border-right:1px solid var(--rule)}
.vocab-grid article:last-child{border-right:0}
.vocab-grid h3{font-family:var(--mono);font-size:11px;letter-spacing:.12em;color:var(--clay);margin:0 0 12px;text-transform:uppercase}
.vocab-grid dl{margin:0}.vocab-grid dt{margin-top:10px}.vocab-grid dd{margin:3px 0 0;color:var(--muted);font-size:13px;font-family:var(--serif);font-style:italic}

@media(max-width:1050px){.case-hero,.case-coverage{grid-template-columns:1fr}.napsg-coords{grid-template-columns:repeat(3,1fr)}.napsg-coords div:nth-child(3){border-right:0}.napsg-coords div:nth-child(-n+3){border-bottom:1px solid #33423d}.vocab-grid{grid-template-columns:1fr}.vocab-grid article{border-right:0;border-bottom:1px solid var(--rule)}}
@media(max-width:720px){.case-hero h1{font-size:46px}.napsg-stage{height:62vh;min-height:340px}.napsg-legend{max-width:calc(100% - 16px);bottom:auto;top:50px}.napsg-stage .bnsf-decision{display:none}.case-section-head{flex-direction:column;align-items:flex-start}.cov-row{grid-template-columns:1fr 46px}.cov-bar{grid-column:1/-1;order:3}.case-model .bnsf-controls output{min-width:0}}

/* main-page hook (index.html) */
.case-hook{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(300px,.9fr);gap:clamp(24px,5vw,70px);align-items:center;background:var(--night);color:var(--nightText);padding:clamp(48px,6vw,86px) clamp(20px,6vw,100px)}
.case-hook h2{font-family:var(--serif);font-size:clamp(34px,4.2vw,60px);line-height:1;letter-spacing:-.035em;margin:16px 0 18px}
.case-hook h2 em{color:#e6b594;font-weight:400}
.case-hook p{font-family:var(--serif);font-size:18px;line-height:1.5;color:#c8d0cc;max-width:720px}
.case-hook .btn.primary{background:var(--clay);border-color:var(--clay)}
.case-hook .btn.primary:hover{background:#fff;color:var(--ink);border-color:#fff}
.hook-preview{display:block;border:1px solid #4b5b55;background:#0e1916;position:relative}
.hook-preview canvas{display:block;width:100%;height:260px}
.hook-preview span{position:absolute;left:10px;top:10px;font-family:var(--mono);font-size:9px;letter-spacing:.1em;color:#e6b594;background:rgba(12,22,19,.8);border:1px solid #4b5b55;padding:4px 6px}
.hook-stats{display:flex;gap:22px;flex-wrap:wrap;margin:18px 0 26px;font-family:var(--mono);font-size:10px;letter-spacing:.08em;color:#9da8a4}
.hook-stats b{color:#f0c3a9;font-size:14px;margin-right:4px}
@media(max-width:1050px){.case-hook{grid-template-columns:1fr}}

/* selection card + mode toggle */
.napsg-sel{position:absolute;right:8px;bottom:8px;width:250px;background:rgba(12,22,19,.92);border:1px solid #6b7d76;padding:9px 10px;color:#e3e8e5;z-index:6;backdrop-filter:blur(3px)}
.sel-head{display:flex;justify-content:space-between;align-items:center;gap:8px}
.sel-head b{font-family:var(--serif);font-size:17px;font-weight:700;color:#fff}
.sel-head button{border:1px solid #697872;background:transparent;color:#e3e8e5;width:22px;height:22px;cursor:pointer;font-size:14px;line-height:1}
.sel-meta{font-family:var(--mono);font-size:8.5px;color:#9caaa5;margin:3px 0 7px}
.sel-rows{font-family:var(--mono);font-size:9px;line-height:1.55;border-top:1px solid #34433f;padding-top:6px}
.sel-rows div{display:flex;justify-content:space-between}.sel-rows i{font-style:normal;color:#9caaa5}
.sel-trace{display:flex;gap:10px;font-family:var(--mono);font-size:9px;margin:7px 0 8px;padding-top:6px;border-top:1px solid #34433f}
.sel-trace .up{color:#f0c3a9}.sel-trace .down{color:#bfe3ec}
.sel-btns{display:flex;gap:5px}
.sel-btns button{flex:1;border:1px solid #4d5c57;background:transparent;color:#7f8d88;font-family:var(--mono);font-size:8px;padding:5px 4px;cursor:pointer}
.sel-btns button.active{color:#e1e8e4;border-color:#90a49c;background:rgba(255,255,255,.05)}
.case-model .bnsf-layers .mode{border-color:#90a49c;color:#e1e8e4}
.case-model .bnsf-layers .mode.all{border-color:#e6b594;color:#e6b594}
.napsg-stage canvas{cursor:crosshair}
@media(max-width:720px){.napsg-sel{left:8px;right:8px;width:auto;top:auto;bottom:8px}}

.napsg-stage.has-sel .bnsf-decision{display:none}

/* v3 — STORY projection */
.case-model-copy .lead{font-family:var(--mono);font-size:11px;letter-spacing:.1em;color:#e6b594;font-weight:700}
.story-tabs{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:6px 0 10px}
.story-tabs [data-tab]{border:1px solid #697872;background:transparent;color:#c8d0cc;padding:8px 12px;font-size:11px;font-weight:800;letter-spacing:.06em;cursor:pointer}
.story-tabs [data-tab] b{font-family:var(--mono);margin-right:5px}
.story-tabs [data-tab] small{font-family:var(--serif);font-style:italic;font-weight:400;letter-spacing:0;margin-left:5px;color:#9caaa5}
.story-tabs [data-tab].active{background:var(--nightText);color:var(--ink);border-color:var(--nightText)}
.story-tabs [data-tab].active small{color:#56645f}
.tabs-hint{margin-left:auto;font-family:var(--mono);font-size:9px;color:#82918c;letter-spacing:.08em}
.focus-chip{font-family:var(--mono);font-size:10px;color:#e6b594;border:1px solid #c16b46;padding:5px 6px 5px 9px;display:inline-flex;align-items:center;gap:6px}
.focus-chip[hidden]{display:none}
.focus-chip button{border:0;background:transparent;color:#e6b594;cursor:pointer;font-size:14px;line-height:1}
.story-panel{background:#0e1916;border:1px solid #4b5b55;padding:18px 18px 12px}
.story-panel[hidden],.napsg-stage[hidden]{display:none}
.story-flow{display:grid;grid-template-columns:170px 110px minmax(0,1fr);align-items:center;gap:0}
.story-source{text-align:center;border:1px solid #33423d;background:#13201c;padding:14px 10px}
.portal-glyph{width:120px;height:auto;display:block;margin:0 auto 6px}
.src-name{font-family:var(--serif);font-size:19px;line-height:1.1;color:#fff;font-weight:700}
.src-org{font-size:12px;color:#e6b594;margin-top:3px;font-weight:700}
.src-url{font-family:var(--mono);font-size:9px;color:#9caaa5;margin-top:5px;word-break:break-all}
.src-access{font-family:var(--mono);font-size:8px;color:#82918c;margin-top:4px;letter-spacing:.04em}
.story-stream{position:relative;height:120px}
.story-stream canvas{width:100%;height:100%;display:block}
.stream-lab{position:absolute;left:0;right:0;bottom:-6px;text-align:center;font-family:var(--mono)}
.stream-lab span{display:block;font-size:7px;letter-spacing:.12em;color:#82918c}
.stream-lab b{display:block;font-size:15px;color:#f0c3a9}
.stream-lab em{display:block;font-style:normal;font-size:7.5px;color:#85c5a4}
.stream-lab em.err{color:#e1735b}
.story-uml svg{width:100%;height:auto;display:block}
.uml-class{opacity:.12;transition:opacity .6s ease;cursor:pointer}
.uml-class.on{opacity:1}
.uml-class:hover rect:first-child,.uml-class:focus rect:first-child{fill:#1b2b26}
.uml-class:focus{outline:none}
.uml-stereo{font-family:var(--mono);font-size:8px;fill:#82918c;letter-spacing:.04em}
.uml-name{font-family:var(--serif);font-size:15px;font-weight:700;fill:#fff}
.uml-name.abstract{font-style:italic}
.uml-count{font-family:var(--mono);font-size:10px;fill:#f0c3a9;font-weight:700}
.uml-attr{font-family:var(--mono);font-size:8px;fill:#9caaa5}
.uml-assoc{opacity:.15;transition:opacity .5s}
.uml-assoc.on{opacity:1}
.uml-assoc path{transition:stroke-dashoffset .5s linear}
.uml-alab{font-family:var(--mono);font-size:8.5px;fill:#e1e8e4;font-weight:700;paint-order:stroke;stroke:#0e1916;stroke-width:3px}
.uml-mult{font-family:var(--mono);font-size:8px;fill:#e6b594;paint-order:stroke;stroke:#0e1916;stroke-width:3px}
.uml-note{font-family:var(--serif);font-style:italic;font-size:10px;fill:#82918c}
.story-captions{display:grid;grid-template-columns:1fr 1fr 1.3fr;gap:0;margin-top:10px;border-top:1px solid #33423d}
.story-captions div{padding:9px 10px 2px 0}
.story-captions div:nth-child(n+2){padding-left:18px;border-left:1px solid #33423d}
.story-captions b{display:block;font-family:var(--mono);font-size:8px;letter-spacing:.1em;color:#e6b594}
.story-captions span{display:block;font-family:var(--serif);font-size:12.5px;line-height:1.35;color:#c8d0cc;margin-top:3px}
.story-progress{margin-top:14px}
.story-progress canvas{width:100%;height:46px;display:block}
.story-phases{display:flex;font-family:var(--mono);font-size:8px;letter-spacing:.08em;color:#82918c;margin-top:4px}
.story-phases span{border-left:1px solid #4b5b55;padding-left:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(max-width:900px){.story-flow,.story-captions{grid-template-columns:1fr}.story-stream{height:54px}.stream-lab{bottom:auto;top:50%;transform:translateY(-50%);text-align:right;padding-right:6px}.story-source{display:grid;grid-template-columns:70px 1fr;text-align:left;gap:4px 12px;align-items:center}.portal-glyph{width:64px;grid-row:span 4;margin:0}.story-uml{overflow-x:auto}.story-uml svg{min-width:620px}.story-captions div{padding-left:0!important}.tabs-hint{display:none}}
.story-phases .ph-c{color:#e1735b;border-left-color:#e1735b}
.story-phases span{min-width:0}

/* v6 — ATLAS projection */
.atlas-panel{position:relative;height:min(72vh,700px);min-height:420px;border:1px solid #4b5b55;background:#0b1412;overflow:hidden}
.atlas-panel[hidden]{display:none}
.atlas-panel canvas{display:block;width:100%;height:100%;cursor:grab;touch-action:none}
.atlas-panel canvas:active{cursor:grabbing}
.atlas-ctrls{position:absolute;right:10px;top:10px;display:flex;flex-direction:column;gap:4px}
.atlas-ctrls button{width:34px;height:30px;border:1px solid #6b7d76;background:rgba(12,22,19,.85);color:#e3e8e5;font-family:var(--mono);font-size:12px;cursor:pointer}
.atlas-ctrls button:hover{border-color:#e6b594;color:#e6b594}
.atlas-legend{position:absolute;left:10px;bottom:10px;display:flex;flex-wrap:wrap;gap:10px;max-width:70%;background:rgba(12,22,19,.82);border:1px solid rgba(125,151,142,.3);padding:6px 9px;font-family:var(--mono);font-size:8.5px;color:#aebbb6}
.atlas-legend span{display:flex;align-items:center;gap:5px}
.atlas-legend i{display:inline-block;width:10px;height:6px}
.al-city{background:#a9bcc2}.al-route{height:0!important;border-top:2px dashed #dfb064}.al-fog{background:#091110;border:1px solid #3c4a46}.al-unch{background:repeating-linear-gradient(135deg,rgba(225,115,91,.6) 0 2px,transparent 2px 4px)}.al-prov{border:1px dashed rgba(230,236,232,.5)}
.atlas-sel{position:absolute;right:52px;top:10px;width:250px;background:rgba(12,22,19,.94);border:1px solid #6b7d76;padding:9px 30px 9px 10px;color:#e3e8e5}
.atlas-sel b{display:block;font-family:var(--serif);font-size:16px;color:#fff}
.atlas-sel span{display:block;font-family:var(--mono);font-size:9px;color:#9caaa5;margin-top:3px}
.atlas-sel button{position:absolute;right:6px;top:6px;border:1px solid #697872;background:none;color:#e3e8e5;width:20px;height:20px;cursor:pointer}
.atlas-hint{position:absolute;right:10px;bottom:10px;font-family:var(--mono);font-size:8.5px;color:#82918c;background:rgba(12,22,19,.7);padding:4px 6px}
@media(max-width:720px){.atlas-panel{height:68vh}.atlas-legend{max-width:calc(100% - 20px);bottom:34px}.atlas-sel{left:10px;right:10px;width:auto;top:auto;bottom:10px}.atlas-hint{display:none}}
.atlas-ctrls .atlas-how{display:flex;align-items:center;justify-content:center;width:34px;height:30px;border:1px solid #c16b46;background:rgba(12,22,19,.85);color:#e6b594;font-family:var(--mono);font-size:8.5px;text-decoration:none}
.atlas-ctrls .atlas-how:hover{background:#c16b46;color:#fff}
