/* Application explorer: shared Passive Edge typography and brand tokens. */
.explorer-page{--ex-line:#c5cdd1;--ex-quiet:#edf1f3;--ex-steel:#d7dfe3;--ex-shadow:#aab9c2}
.explorer-page [hidden]{display:none!important}
.explorer-announcement{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.explorer-page .container{max-width:1440px}
.explorer-intro{padding-top:36px;padding-bottom:30px}
.explorer-breadcrumb{display:flex;gap:10px;flex-wrap:wrap;font-size:13px;color:var(--ink-2);margin-bottom:23px}
.explorer-breadcrumb a:hover{color:var(--brand-deep)}
.explorer-intro h1{font-size:clamp(30px,3.5vw,48px);font-weight:400;max-width:27ch;line-height:1.17}
.explorer-intro .lead{font-size:16px;margin-top:16px;max-width:75ch}
.explorer-shell{padding-bottom:80px}
.explorer-toolbar{display:flex;justify-content:space-between;align-items:center;gap:16px;border-top:1px solid var(--rule);padding:15px 0}
.explorer-stages{display:flex;flex-wrap:wrap;gap:8px 22px}
.explorer-stages button{display:flex;gap:8px;align-items:center;text-align:left;min-height:44px;font-size:14px;border-bottom:2px solid transparent;color:var(--ink-2)}
.explorer-stages button span{font-family:var(--font-mono);font-size:12px}
.explorer-stages button[aria-pressed=true]{color:var(--brand-deep);border-color:var(--brand)}
.explorer-caption{font:12px var(--font-mono);color:var(--ink-2);white-space:nowrap}
.explorer-workspace{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(320px,1fr);gap:clamp(26px,4vw,52px);align-items:start}
.explorer-workspace{scroll-margin-top:100px}
.explorer-workspace[data-stage=map]{display:block}
.explorer-workspace[data-stage=map] .explorer-map-credit{max-width:1120px;margin:18px auto 0;border-top:1px solid var(--rule);padding-top:16px}
.explorer-shell{scroll-margin-top:90px}
.explorer-info h2:focus-visible{outline:2px solid var(--brand);outline-offset:5px}
.explorer-visual{min-width:0}
.explorer-map{position:relative;aspect-ratio:3/2;background:#fff;overflow:hidden;border-radius:var(--r-card)}
.explorer-map img{width:100%;height:100%;object-fit:contain}
.explorer-hotspot{position:absolute;left:var(--pin-x);top:var(--pin-y);transform:translate(-50%,-50%);width:50px;height:50px;display:grid;place-items:center;border-radius:50%;padding:7px;color:var(--ink-1)}
.explorer-hotspot span{width:34px;height:34px;display:grid;place-items:center;border:1px solid #b3bec5;border-radius:50%;background:#fff;font:12px var(--font-mono);box-shadow:0 3px 12px #0e111623;transition:background .2s,border-color .2s,transform .2s}
.explorer-hotspot[aria-current=true] span,.explorer-hotspot:hover span{background:var(--brand-deep);border-color:var(--brand-deep);color:#fff;transform:scale(1.08)}
.explorer-map-credit{font-size:12px;color:var(--ink-2);margin:8px 0 14px}
.explorer-choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 20px;margin-top:8px}
.explorer-choice{display:grid;grid-template-columns:22px 1fr;align-items:start;gap:8px;border-bottom:1px solid var(--rule);padding:13px 0;min-height:48px;font-size:14px;line-height:1.45}
.explorer-choice span{font:12px/1.7 var(--font-mono);color:var(--ink-2)}
.explorer-choice:hover,.explorer-choice[aria-current=true]{color:var(--brand-deep);border-color:var(--brand)}
.explorer-next{display:flex;flex-wrap:wrap;gap:14px;align-items:center;margin-top:22px}
.explorer-next .btn{font-size:14px;white-space:normal;text-align:left;min-height:44px}
.explorer-diagram{background:var(--bg-1);border-radius:var(--r-card);padding:12px;overflow:hidden}
.explorer-diagram svg{width:100%;height:auto;display:block;overflow:visible}
.explorer-diagram .ex-base{fill:var(--ex-quiet);stroke:var(--ex-line);stroke-width:1}
.explorer-diagram .ex-front{fill:var(--ex-steel);stroke:var(--ex-line);stroke-width:1}
.explorer-diagram .ex-side{fill:var(--ex-shadow);stroke:var(--ex-line);stroke-width:1}
.explorer-diagram .ex-top{fill:#fff;stroke:var(--ex-line);stroke-width:1}
.explorer-diagram .ex-pcm{fill:var(--brand);fill-opacity:.62;stroke:var(--brand-deep);stroke-width:1}
.explorer-diagram .ex-pipe{fill:none;stroke:var(--brand-deep);stroke-width:6;stroke-linejoin:round;stroke-linecap:round;opacity:.72}
.explorer-diagram .ex-return{fill:none;stroke:var(--warn);stroke-width:5;stroke-linejoin:round;stroke-linecap:round;opacity:.62}
.explorer-diagram .ex-heat{fill:#f4c5a0;stroke:#ad754b;stroke-width:1.3}
.explorer-diagram .ex-callout path{fill:none;stroke:#9aabb6;stroke-width:1.5}
.explorer-diagram .ex-callout circle{fill:#fff;stroke:#9aabb6;stroke-width:1.2}
.explorer-diagram .ex-callout text{fill:var(--brand-deep);font:18px var(--font-mono)}
.explorer-diagram .ex-flow{fill:none;stroke:var(--brand);stroke-width:3;stroke-dasharray:10 12;stroke-linecap:round;opacity:0}
.explorer-diagram .ex-part{transform-box:fill-box;transform-origin:center;transition:transform .65s cubic-bezier(.2,.7,.2,1),opacity .65s}
.explorer-diagram .ex-shell{opacity:.7}
.explorer-workspace[data-stage=material] .ex-shell{transform:translate(0,-55px);opacity:.16}
.explorer-workspace[data-stage=material] .ex-core{transform:translate(0,-18px)}
.explorer-workspace[data-stage=material] .ex-support{transform:translate(0,20px)}
.explorer-workspace[data-phase="1"] .ex-pcm{fill:var(--warn);stroke:var(--warn);fill-opacity:.65}
.explorer-workspace[data-phase="1"] .ex-flow{stroke:var(--warn)}
.explorer-workspace.is-playing .ex-flow{opacity:1;animation:explorer-flow 2s linear 3}
@keyframes explorer-flow{to{stroke-dashoffset:-88}}
.explorer-diagram-caption{display:flex;justify-content:space-between;gap:14px;padding:5px 12px 10px;font-size:12px;color:var(--ink-2)}
.explorer-key{display:flex;align-items:center;gap:6px}
.explorer-key:before{content:"";width:8px;height:8px;background:var(--brand)}
.explorer-components{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;list-style:none;margin:18px 0;padding:0}
.explorer-components li{font-size:14px;line-height:1.5;border-top:1px solid var(--rule);padding-top:10px}
.explorer-components span{display:block;font:12px var(--font-mono);color:var(--brand-deep);margin-bottom:5px}
.explorer-components b{font-weight:400}
.explorer-cycle{border-top:1px solid var(--rule);padding-top:19px;margin-top:20px}
.explorer-cycle-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:9px}
.explorer-cycle h3{font-size:14px;font-weight:500}
.explorer-play{font-size:13px;color:var(--brand-deep);min-height:44px;text-align:right}
.explorer-phases{display:flex;gap:10px;flex-wrap:wrap}
.explorer-phases button{font-size:14px;padding:7px 13px;min-height:44px;border:1px solid var(--rule);border-radius:var(--r-chip)}
.explorer-phases button[aria-pressed=true]{border-color:var(--brand-deep);background:var(--brand-soft);color:var(--brand-deep)}
.explorer-phase-text{font-size:15px;color:var(--ink-1);margin-top:12px;min-height:4.5em}
.explorer-diagram-note{font-size:12px;line-height:1.6;color:var(--ink-2);margin-top:15px}
.explorer-info{border-top:2px solid var(--brand);padding-top:18px;min-width:0}
.explorer-index{font:12px var(--font-mono);letter-spacing:.1em;color:var(--ink-2);margin-bottom:12px}
.explorer-info h2{font-size:clamp(24px,2.2vw,32px);font-weight:400;line-height:1.2}
.explorer-question{font-size:16px;line-height:1.65;margin:12px 0 22px;color:var(--ink-1)}
.explorer-specs{margin:0;display:grid;gap:15px}
.explorer-specs dt{font-size:13px;color:var(--ink-2);margin-bottom:4px}
.explorer-specs dd{font-size:15px;line-height:1.65;margin:0}
.explorer-details{display:flex;gap:12px 20px;flex-wrap:wrap;margin-top:18px}
.explorer-details a{font-size:14px;color:var(--brand-deep);min-height:32px;text-decoration:underline;text-underline-offset:5px}
.explorer-role-block{margin-top:24px;border-top:1px solid var(--rule);padding-top:20px}
.explorer-role-block label{font-size:14px;font-weight:500;display:block;margin-bottom:10px}
.explorer-role-block select{font-size:16px;background:#fff;width:100%;min-height:48px;border:1px solid var(--rule-strong);border-radius:var(--r-chip);padding:11px 34px 11px 12px;color:var(--ink-0)}
.explorer-role-copy{font-size:15px;margin:14px 0;color:var(--ink-1)}
.explorer-path{list-style:none;padding:0;margin:16px 0;display:grid;gap:10px;counter-reset:route}
.explorer-path li{font-size:14px;display:grid;grid-template-columns:22px 1fr;gap:8px;align-items:start;counter-increment:route}
.explorer-path li:before{content:counter(route,decimal-leading-zero);font:12px/1.8 var(--font-mono);color:var(--brand-deep)}
.explorer-prepare{margin-top:17px}
.explorer-prepare summary{font-size:14px;cursor:pointer;min-height:40px;padding:6px 0;color:var(--ink-1)}
.explorer-prepare p{font-size:14px;padding-top:5px;color:var(--ink-1)}
.explorer-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:20px}
.explorer-actions .btn{font-size:14px;min-height:46px;white-space:normal;text-align:left}
.explorer-tool-note{font-size:12px;color:var(--ink-2);margin-top:12px;line-height:1.6}
.explorer-directory{border-top:1px solid var(--rule);padding:40px 0 60px}
.explorer-directory>summary{font-size:20px;cursor:pointer;line-height:1.5;padding:8px 0}
.explorer-fallback-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;margin-top:32px}
.explorer-fallback-grid article{border-top:1px solid var(--rule);padding-top:22px;scroll-margin-top:100px}
.explorer-fallback-grid h2{font-size:20px;line-height:1.3;margin-bottom:12px}
.explorer-fallback-grid p{font-size:15px;line-height:1.7;margin:10px 0}
.explorer-fallback-grid a{font-size:14px;color:var(--brand-deep);display:inline-block;min-height:40px;padding-top:8px;text-decoration:underline;text-underline-offset:4px}
.explorer-footer{background:var(--bg-1);border-top:1px solid var(--rule);padding:28px 0}
.explorer-footer .container{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;font-size:13px;color:var(--ink-2)}
.explorer-footer a{color:var(--ink-1)}
.explorer-js-only{display:none}
.explorer-role-choice{display:none}
.explorer-ready .explorer-role-choice{display:block}
.explorer-ready .explorer-js-only{display:flex}
.explorer-ready .explorer-static-only{display:none}
@media(min-width:1600px){.explorer-map{margin-top:5px}}
@media(max-width:1050px){.explorer-workspace{grid-template-columns:minmax(0,1.1fr) minmax(300px,1fr);gap:28px}.explorer-choices{grid-template-columns:repeat(2,minmax(0,1fr))}.explorer-caption{display:none}.explorer-components{gap:12px}.explorer-components li{font-size:13px}}
@media(max-width:760px){.explorer-intro{padding-top:24px;padding-bottom:22px}.explorer-intro h1{max-width:100%;font-size:32px}.explorer-workspace{grid-template-columns:1fr;gap:30px}.explorer-toolbar{padding:7px 0 12px}.explorer-stages{gap:5px 16px}.explorer-stages button{font-size:13px}.explorer-stages button span{font-size:12px}.explorer-choice{font-size:14px}.explorer-choices{grid-template-columns:repeat(3,minmax(0,1fr));gap:0 14px}.explorer-next{margin-top:16px}.explorer-info{padding-top:20px}.explorer-fallback-grid{grid-template-columns:1fr 1fr}.explorer-shell{padding-bottom:45px}.explorer-phase-text{min-height:4.5em}.explorer-diagram{padding:6px}}
@media(max-width:440px){.explorer-choices{grid-template-columns:repeat(2,minmax(0,1fr))}.explorer-stages{gap:5px 12px}.explorer-stages button{gap:5px}.explorer-intro h1{font-size:29px}.explorer-breadcrumb{margin-bottom:16px}.explorer-hotspot{width:44px;height:44px;padding:8px}.explorer-hotspot span{width:28px;height:28px}.explorer-map{margin:0 -4px}.explorer-fallback-grid{grid-template-columns:1fr}.explorer-components{gap:10px}.explorer-components li{font-size:13px}.explorer-cycle-head{align-items:flex-start}.explorer-actions{display:grid}.explorer-actions .btn{justify-content:space-between}}
@media(prefers-reduced-motion:reduce){.explorer-page *{scroll-behavior:auto!important}.explorer-hotspot span,.explorer-diagram .ex-part{transition:none}.explorer-workspace.is-playing .ex-flow{animation:none;opacity:1}}
