/* EXP-02 — page-specific visual and interactive layer */
.exp02-page{--exp-panel:rgba(111,255,126,.018);--exp-panel-2:rgba(111,255,126,.035);--exp-grid:rgba(111,255,126,.075)}
.exp02-page main{overflow:hidden}
.exp02-hero{padding:82px 0 54px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,rgba(111,255,126,.028),transparent 68%)}
.exp02-crumb{font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:18px}
.exp02-crumb a{color:var(--phosphor)}
.exp02-hero-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);gap:38px;align-items:end}
.exp02-hero h1{font-size:clamp(38px,5.2vw,70px);line-height:.98;margin:10px 0 18px;max-width:920px}
.exp02-hero .lead{font-size:15px;max-width:850px}
.exp02-meta{border:1px solid var(--line-strong);background:var(--exp-panel);padding:20px;display:grid;gap:14px}
.exp02-meta-row{display:flex;justify-content:space-between;gap:16px;padding-bottom:10px;border-bottom:1px solid var(--line)}
.exp02-meta-row:last-child{border-bottom:0;padding-bottom:0}.exp02-meta-row span{color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.1em}.exp02-meta-row b{color:var(--white);font-size:10px;text-align:right}
.exp02-section{padding:64px 0;border-bottom:1px solid rgba(111,255,126,.10)}
.exp02-section-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(250px,.55fr);gap:34px;align-items:end;margin-bottom:28px}
.exp02-section h2{font-size:clamp(27px,3.2vw,43px);margin:8px 0 0}.exp02-section-head p{font-size:11px;color:var(--muted);margin:0}
.exp02-kicker{color:var(--phosphor);font-size:9px;text-transform:uppercase;letter-spacing:.13em}
.exp02-warning{border-left:3px solid var(--amber);padding:14px 16px;background:rgba(255,176,0,.035);color:#c7ad77;font-size:10px;margin-top:22px}
.exp02-model-chain{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:26px}.exp02-model-chain span{border:1px solid var(--line);background:var(--exp-panel);padding:9px 11px;font-size:10px;color:var(--white)}.exp02-model-chain i{font-style:normal;color:var(--muted)}
.exp02-formula{border:1px solid var(--line);background:var(--exp-panel);padding:22px;min-width:0;overflow:hidden}.exp02-formula .formula{font-size:clamp(14px,1.3vw,18px);overflow-x:auto;color:var(--white)}.exp02-formula p{font-size:10px;color:var(--muted);margin-top:12px}
.exp02-two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.exp02-three{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.exp02-resources{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:16px}.exp02-resource{border:1px solid var(--line);padding:14px;background:rgba(0,0,0,.18)}.exp02-resource small{display:block;color:var(--muted);font-size:8px;letter-spacing:.08em}.exp02-resource b{display:block;font-size:20px;color:var(--phosphor);margin-top:5px}.exp02-resource.lost{border-color:rgba(255,75,62,.46);background:rgba(255,75,62,.035)}.exp02-resource.lost b{color:var(--red)}
.exp02-controls{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 16px}.exp02-control{border:1px solid var(--line);background:#050806;color:var(--muted);padding:9px 12px;font-size:9px;text-transform:uppercase;letter-spacing:.08em;cursor:pointer}.exp02-control:hover,.exp02-control.active{color:var(--phosphor);border-color:var(--line-strong);background:rgba(111,255,126,.035)}.exp02-control.run{color:var(--amber);border-color:rgba(255,176,0,.42)}
.exp02-panel{border:1px solid var(--line-strong);background:linear-gradient(180deg,rgba(111,255,126,.018),transparent 55%),#030604;min-width:0}.exp02-panel-head{padding:12px 14px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:15px;align-items:center}.exp02-panel-head b{font-size:10px;color:var(--white);letter-spacing:.06em}.exp02-panel-head span{font-size:8px;color:var(--muted);text-transform:uppercase}.exp02-panel-body{padding:14px;min-width:0}
.exp02-graph-wrap{position:relative;min-height:520px;background:linear-gradient(var(--exp-grid) 1px,transparent 1px),linear-gradient(90deg,var(--exp-grid) 1px,transparent 1px);background-size:34px 34px;overflow:hidden}.exp02-graph{display:block;width:100%;height:520px}.graph-edge{stroke:rgba(126,170,132,.36);stroke-width:1.2;fill:none;marker-end:url(#arrow)}.graph-edge.disabled{stroke:rgba(126,170,132,.10);stroke-dasharray:4 6}.graph-edge.selected{stroke:var(--amber);stroke-width:3;filter:drop-shadow(0 0 4px rgba(255,176,0,.35))}.graph-node rect,.graph-node polygon{fill:#061009;stroke:var(--line-strong);stroke-width:1.2}.graph-node text{font-family:var(--mono);fill:var(--text)}.graph-node .node-id{fill:var(--phosphor);font-size:12px;font-weight:700}.graph-node .node-label{fill:var(--white);font-size:9px}.graph-node .node-value{fill:var(--muted);font-size:8px}.graph-node.disabled{opacity:.22}.graph-node.current rect{stroke:var(--amber);stroke-width:2.5}.graph-node.target rect{stroke:var(--phosphor);stroke-width:2.5;filter:drop-shadow(0 0 5px rgba(111,255,126,.3))}.graph-transient polygon{fill:rgba(255,176,0,.08);stroke:var(--amber);stroke-width:1.6}.graph-transient text{font-family:var(--mono);fill:var(--amber);font-size:10px}.graph-event-edge{stroke:var(--red);stroke-width:1.6;stroke-dasharray:5 5;fill:none;marker-end:url(#arrow-red)}
.exp02-legend{display:flex;flex-wrap:wrap;gap:16px;padding:11px 14px;border-top:1px solid var(--line);font-size:8px;color:var(--muted)}.legend-mark{display:inline-block;width:11px;height:8px;border:1px solid var(--line-strong);margin-right:5px;vertical-align:-1px}.legend-mark.current{border-color:var(--amber)}.legend-mark.target{border-color:var(--phosphor)}.legend-mark.off{opacity:.25}.legend-line{display:inline-block;width:15px;height:2px;background:var(--amber);margin-right:5px;vertical-align:2px}
.exp02-matrix-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px}.exp02-matrix-scroll{overflow:auto}.exp02-matrix{width:100%;border-collapse:collapse;table-layout:fixed;font-size:9px}.exp02-matrix th,.exp02-matrix td{border:1px solid rgba(111,255,126,.11);padding:8px 4px;text-align:center;min-width:42px}.exp02-matrix th{color:var(--muted);background:rgba(111,255,126,.025);font-weight:500}.exp02-matrix .row-head{color:var(--phosphor);font-weight:700}.matrix-one{background:rgba(111,255,126,.13);color:var(--phosphor)}.matrix-zero{color:rgba(126,170,132,.36)}.matrix-na{background:rgba(255,75,62,.022);color:rgba(255,75,62,.35)}.matrix-cost{color:var(--white)}.matrix-cost.low{background:rgba(111,255,126,.11)}.matrix-cost.mid{background:rgba(255,176,0,.07)}.matrix-cost.high{background:rgba(255,75,62,.055)}
.exp02-score-table{width:100%;border-collapse:collapse;font-size:10px}.exp02-score-table th,.exp02-score-table td{padding:10px 8px;border-bottom:1px solid var(--line);text-align:left}.exp02-score-table th{color:var(--muted);font-weight:500;text-transform:uppercase;font-size:8px}.exp02-score-table td.num{text-align:right}.exp02-score-table tr.selected{background:rgba(111,255,126,.045)}.exp02-score-table tr.selected td:first-child{color:var(--phosphor)}.exp02-score-table tr.infeasible{opacity:.34}
.exp02-trace{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0;margin-top:18px}.trace-step{position:relative;border-top:1px solid var(--line-strong);padding:24px 12px 12px}.trace-step::before{content:"";position:absolute;top:-5px;left:12px;width:8px;height:8px;background:#07100a;border:1px solid var(--line-strong)}.trace-step.active::before{border-color:var(--amber);background:var(--amber);box-shadow:0 0 8px rgba(255,176,0,.3)}.trace-step small{display:block;color:var(--muted);font-size:8px;letter-spacing:.08em}.trace-step b{display:block;color:var(--white);font-size:11px;margin:7px 0}.trace-step span{font-size:9px;color:var(--muted)}
.exp02-path-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:14px}.path-kpi{border:1px solid var(--line);padding:13px}.path-kpi small{display:block;font-size:8px;color:var(--muted);text-transform:uppercase}.path-kpi b{display:block;color:var(--phosphor);font-size:19px;margin-top:5px}
.exp02-uml-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:14px}.uml-card{border:1px solid var(--line-strong);background:#030604;min-width:0}.uml-card header{position:static;background:transparent;border:0;padding:12px 14px;border-bottom:1px solid var(--line);font-size:9px;color:var(--white);letter-spacing:.08em}.uml-card svg{display:block;width:100%;height:auto}.uml-node{fill:#061009;stroke:rgba(111,255,126,.52);stroke-width:1}.uml-node.warn{stroke:rgba(255,176,0,.7)}.uml-node.safe{stroke:rgba(111,255,126,.8)}.uml-text{font-family:var(--mono);fill:var(--text);font-size:10px}.uml-small{font-family:var(--mono);fill:var(--muted);font-size:8px}.uml-arrow{stroke:rgba(126,170,132,.58);stroke-width:1.1;fill:none}.uml-arrow.hot{stroke:var(--amber)}.uml-life{stroke:rgba(111,255,126,.18);stroke-dasharray:4 4}.uml-activation{fill:rgba(111,255,126,.06);stroke:rgba(111,255,126,.28)}
.exp02-takeaway{border:1px solid var(--line-strong);padding:30px;background:rgba(111,255,126,.025);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:30px;align-items:center}.exp02-takeaway h3{font-size:clamp(22px,2.8vw,34px);margin:0 0 8px}.exp02-takeaway p{font-size:11px;color:var(--muted);max-width:820px}.exp02-equation-big{font-size:clamp(16px,2vw,24px);color:var(--phosphor);white-space:nowrap}
.exp02-noscript{padding:12px;border:1px solid rgba(255,176,0,.35);color:var(--amber);font-size:10px}
@media(max-width:980px){.exp02-hero-grid,.exp02-section-head,.exp02-matrix-grid,.exp02-uml-grid,.exp02-two,.exp02-three{grid-template-columns:1fr}.exp02-hero-grid{align-items:start}.exp02-trace{grid-template-columns:1fr}.trace-step{border-top:0;border-left:1px solid var(--line-strong);padding:10px 12px 18px 26px}.trace-step::before{top:14px;left:-5px}.exp02-path-summary{grid-template-columns:repeat(2,1fr)}.exp02-resources{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.exp02-hero{padding-top:54px}.exp02-graph-wrap,.exp02-graph{height:430px;min-height:430px}.exp02-panel-body{padding:8px}.exp02-path-summary,.exp02-resources{grid-template-columns:1fr}.exp02-takeaway{grid-template-columns:1fr}.exp02-equation-big{white-space:normal}.exp02-matrix th,.exp02-matrix td{min-width:36px;padding:7px 3px}}
