.interactive-diagram{margin:42px 0 54px;border:0;background:transparent;overflow:visible}
.viz-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:22px;padding:0 0 17px;border:0}
.viz-heading strong{display:block;margin-top:6px;font-size:17px;letter-spacing:-.01em}
.viz-heading p{max-width:42ch;margin:0!important;text-align:right;font-size:12px!important;line-height:1.5!important;color:rgba(var(--ink),.48)!important}
.viz-controls{display:flex;flex-wrap:wrap;border-top:1px solid rgba(var(--ink),.16);border-bottom:1px solid rgba(var(--ink),.16)}
.viz-control{min-height:46px;padding:12px 18px;border:0;border-right:1px solid rgba(var(--ink),.16);background:transparent;color:rgb(var(--ink));font-family:'Space Mono',monospace;font-size:10px;line-height:1.35;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;transition:background .22s ease,color .22s ease,opacity .22s ease}
.viz-control:hover{background:rgba(var(--ink),.06)}
.viz-control[aria-pressed="true"]{background:rgb(var(--ink));color:rgb(var(--paper))}
.viz-control:focus-visible,.university-option:focus-visible,.band-range:focus-visible,.viz-replay:focus-visible{outline:2px solid rgb(var(--ink));outline-offset:-4px}
.viz-panel{padding:clamp(22px,4vw,36px) 0}
.viz-live{min-height:68px}
.viz-note{margin:0!important;font-family:'Space Mono',monospace;font-size:10px!important;line-height:1.65!important;letter-spacing:.025em;color:rgba(var(--ink),.48)!important}
.viz-kv{display:grid;grid-template-columns:130px 1fr;gap:0;border-top:1px solid rgba(var(--ink),.14)}
.viz-kv>span,.viz-kv>div{padding:14px 0;border-bottom:1px solid rgba(var(--ink),.14)}
.viz-kv>span{padding-right:18px;font-family:'Space Mono',monospace;font-size:9px;line-height:1.55;letter-spacing:.12em;text-transform:uppercase;color:rgba(var(--ink),.46)}
.viz-kv>div{font-size:14px;line-height:1.55;color:rgba(var(--ink),.7)}
.logic-stage{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(220px,.9fr);gap:0;border-top:1px solid rgba(var(--ink),.16);border-bottom:1px solid rgba(var(--ink),.16)}
.logic-map{display:flex;align-items:center;justify-content:center;gap:20px;min-height:270px;padding:32px;border-right:1px solid rgba(var(--ink),.16)}
.logic-node{display:grid;place-items:center;width:112px;min-height:94px;padding:14px;border:1px solid rgba(var(--ink),.28);font-family:'Space Mono',monospace;font-weight:700;font-size:clamp(19px,3vw,30px);text-align:center}
.logic-arrow{position:relative;width:clamp(70px,12vw,130px);height:2px;background:rgba(var(--ink),.32)}
.logic-arrow::after{content:"";position:absolute;right:-1px;top:-5px;width:10px;height:10px;border-top:2px solid rgba(var(--ink),.55);border-right:2px solid rgba(var(--ink),.55);transform:rotate(45deg)}
.logic-marker{position:absolute;left:-5px;top:-5px;width:12px;height:12px;background:rgb(var(--ink));transform:translateX(0)}
.logic-marker.pulse-a{animation:logicTravelA .62s cubic-bezier(.22,1,.36,1) both}
.logic-marker.pulse-b{animation:logicTravelB .62s cubic-bezier(.22,1,.36,1) both}
@keyframes logicTravelA{from{transform:translateX(0);opacity:.15}to{transform:translateX(clamp(70px,12vw,130px));opacity:1}}
@keyframes logicTravelB{from{transform:translateX(0);opacity:.15}to{transform:translateX(clamp(70px,12vw,130px));opacity:1}}
.logic-copy{padding:28px}
.logic-formula{display:block;margin:0 0 14px;font-family:'Space Mono',monospace;font-size:clamp(28px,4vw,44px);font-weight:700;letter-spacing:-.04em}
.viz-status{display:inline-flex;margin-bottom:18px;padding:7px 10px;border:1px solid rgba(var(--ink),.24);font-family:'Space Mono',monospace;font-size:9px;line-height:1.4;letter-spacing:.11em;text-transform:uppercase}
.band-control{display:grid;grid-template-columns:150px 1fr 74px;gap:18px;align-items:center;padding:20px 0;border-top:1px solid rgba(var(--ink),.16);border-bottom:1px solid rgba(var(--ink),.16)}
.band-control label,.band-output{font-family:'Space Mono',monospace;font-size:10px;line-height:1.45;letter-spacing:.1em;text-transform:uppercase}
.band-output{font-size:22px;font-weight:700;text-align:right;letter-spacing:-.04em}
.band-range{width:100%;accent-color:rgb(var(--ink))}
.band-stairs{display:flex;align-items:flex-end;gap:8px;height:168px;padding:24px 0 0}
.band-step{display:flex;align-items:flex-end;justify-content:center;padding:10px 6px;border:1px solid rgba(var(--ink),.22);font-family:'Space Mono',monospace;font-size:9px;line-height:1.3;letter-spacing:.04em;text-align:center;transition:height .55s cubic-bezier(.22,1,.36,1),background .24s,color .24s,opacity .24s}
.band-step:nth-child(1){width:22%;height:45%}.band-step:nth-child(2){width:24%;height:62%}.band-step:nth-child(3){width:26%;height:79%}.band-step:nth-child(4){width:28%;height:100%}
.band-step.is-active{background:rgb(var(--ink));color:rgb(var(--paper))}
.band-result{padding:24px 0 28px}
.university-explorer{display:grid;grid-template-columns:minmax(220px,.8fr) minmax(0,1.2fr);border-top:1px solid rgba(var(--ink),.16);border-bottom:1px solid rgba(var(--ink),.16)}
.university-list{position:relative;border-right:1px solid rgba(var(--ink),.16)}
.university-option{display:flex;width:100%;min-height:58px;align-items:center;justify-content:space-between;gap:14px;padding:13px 16px;border:0;border-bottom:1px solid rgba(var(--ink),.13);background:transparent;color:rgb(var(--ink));text-align:left;cursor:pointer}
.university-option:last-child{border-bottom:0}
.university-option b{font-size:14px}
.university-option span{font-family:'Space Mono',monospace;font-size:8px;line-height:1.4;letter-spacing:.08em;text-transform:uppercase;color:rgba(var(--ink),.48)}
.university-option[aria-pressed="true"]{background:rgb(var(--ink));color:rgb(var(--paper))}
.university-option[aria-pressed="true"] span{color:rgba(var(--paper),.58)}
.university-result{padding:clamp(24px,4vw,38px)}
.university-result h3{margin:8px 0 20px!important;font-size:clamp(24px,3.5vw,38px)!important}
.transition-map{padding:6px 0 20px;border-top:1px solid rgba(var(--ink),.16);border-bottom:1px solid rgba(var(--ink),.16)}
.transition-lane{display:grid;grid-template-columns:1fr 36px 1fr 36px 1fr;align-items:center;gap:8px;padding:16px 0;border-bottom:1px solid rgba(var(--ink),.14);opacity:.42;transition:opacity .3s ease,transform .55s cubic-bezier(.22,1,.36,1)}
.transition-lane:last-child{border-bottom:0}
.transition-lane.is-active{opacity:1;transform:translateX(4px)}
.transition-lane b{font-size:14px;line-height:1.3}
.transition-lane span{font-size:12px;line-height:1.45;color:rgba(var(--ink),.58)}
.transition-arrow{text-align:center!important;font-family:'Space Mono',monospace;font-size:14px!important;color:rgba(var(--ink),.38)!important}
.boundary-chart{padding:18px 0 24px;border-top:1px solid rgba(var(--ink),.16);border-bottom:1px solid rgba(var(--ink),.16)}
.boundary-scale{display:grid;grid-template-columns:58px 1fr 70px;gap:12px;margin-bottom:9px;font-family:'Space Mono',monospace;font-size:8px;letter-spacing:.08em;text-transform:uppercase;color:rgba(var(--ink),.42)}
.boundary-axis{display:flex;justify-content:space-between}
.boundary-row{display:grid;grid-template-columns:58px 1fr 70px;gap:12px;align-items:center;min-height:43px}
.boundary-year{font-family:'Space Mono',monospace;font-size:11px;font-weight:700}
.boundary-track{height:10px;background:rgba(var(--ink),.075);overflow:hidden}
.boundary-fill{display:block;height:100%;width:0;background:rgb(var(--ink));transition:width .65s cubic-bezier(.22,1,.36,1)}
.interactive-diagram.is-visible .boundary-fill{width:var(--bar-width)}
.boundary-fill.is-derived{background:repeating-linear-gradient(90deg,rgb(var(--ink)) 0 7px,transparent 7px 11px)}
.boundary-value{font-family:'Space Mono',monospace;font-size:10px;text-align:right}
.exam-map{display:grid;grid-template-columns:1fr auto 1fr;align-items:stretch;min-height:170px;border-top:1px solid rgba(var(--ink),.16);border-bottom:1px solid rgba(var(--ink),.16)}
.exam-paper{position:relative;display:flex;flex-direction:column;justify-content:space-between;padding:24px;overflow:hidden}
.exam-paper:first-child{border-right:1px solid rgba(var(--ink),.16)}
.exam-fill{position:absolute;inset:auto 0 0;height:5px;background:rgb(var(--ink));transform:scaleX(0);transform-origin:left}
.exam-map.is-running .exam-paper:first-child .exam-fill{animation:fillPaperOne 1.05s cubic-bezier(.22,1,.36,1) forwards}
.exam-map.is-running .exam-paper:last-child .exam-fill{animation:fillPaperTwo 1.05s .95s cubic-bezier(.22,1,.36,1) forwards}
@keyframes fillPaperOne{to{transform:scaleX(1)}}@keyframes fillPaperTwo{to{transform:scaleX(1)}}
.exam-break{display:grid;place-items:center;width:74px;border-right:1px solid rgba(var(--ink),.16);font-family:'Space Mono',monospace;font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:rgba(var(--ink),.42);writing-mode:vertical-rl}
.exam-paper b{font-size:clamp(24px,4vw,40px)}
.exam-paper span{font-family:'Space Mono',monospace;font-size:10px;line-height:1.5;letter-spacing:.09em;text-transform:uppercase;color:rgba(var(--ink),.48)}
.viz-replay{min-height:44px;padding:11px 15px;border:1px solid rgba(var(--ink),.3);background:transparent;color:rgb(var(--ink));font-family:'Space Mono',monospace;font-size:9px;letter-spacing:.11em;text-transform:uppercase;cursor:pointer}
.pressure-strip{position:relative;display:grid;grid-template-columns:repeat(20,1fr);gap:3px;padding:34px 0 20px;border-top:1px solid rgba(var(--ink),.16)}
.pressure-cell{height:72px;border:1px solid rgba(var(--ink),.17);background:rgba(var(--ink),.025)}
.pressure-cell:nth-child(5n){border-color:rgba(var(--ink),.44)}
.pressure-sweep{position:absolute;left:0;top:20px;bottom:12px;width:2px;background:rgb(var(--ink));opacity:0}
.pressure-strip.is-running .pressure-sweep{animation:pressureSweep 2.1s cubic-bezier(.3,.1,.7,1) forwards}
@keyframes pressureSweep{0%{left:0;opacity:1}100%{left:calc(100% - 2px);opacity:1}}
.pressure-labels{display:flex;justify-content:space-between;padding:0 0 18px;border-bottom:1px solid rgba(var(--ink),.16);font-family:'Space Mono',monospace;font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:rgba(var(--ink),.45)}
.curve-shell{padding:22px 0;border-top:1px solid rgba(var(--ink),.16);border-bottom:1px solid rgba(var(--ink),.16)}
.curve-readout{display:flex;align-items:flex-end;justify-content:space-between;gap:22px;margin-bottom:18px}
.curve-score{font-family:'Space Mono',monospace;font-size:clamp(25px,4vw,42px);font-weight:700;line-height:1;letter-spacing:-.045em}
.curve-meta{max-width:48ch;text-align:right;font-family:'Space Mono',monospace;font-size:9px;line-height:1.55;letter-spacing:.04em;color:rgba(var(--ink),.48)}
.curve-chart-frame{position:relative;padding:0 0 24px;border-top:1px solid rgba(var(--ink),.14);border-bottom:1px solid rgba(var(--ink),.14)}
.curve-canvas{display:block;width:100%;height:360px}
.curve-y-title,.curve-x-title{position:absolute;font-family:'Space Mono',monospace;font-size:8px;line-height:1.35;letter-spacing:.1em;text-transform:uppercase;color:rgba(var(--ink),.42);pointer-events:none}
.curve-y-title{left:10px;top:14px}.curve-x-title{right:8px;bottom:8px}
.curve-legend{display:flex;flex-wrap:wrap;gap:18px;margin-top:14px;font-family:'Space Mono',monospace;font-size:9px;line-height:1.5;letter-spacing:.04em;color:rgba(var(--ink),.52)}
.legend-line{display:inline-block;width:26px;height:2px;margin-right:7px;vertical-align:middle;background:rgb(var(--ink))}
.legend-line.historical{height:1px;background:repeating-linear-gradient(90deg,rgba(var(--ink),.55) 0 6px,transparent 6px 10px)}
.curve-explanation{margin:14px 0 0!important;max-width:72ch;font-size:13px!important;line-height:1.55!important;color:rgba(var(--ink),.58)!important}
.motion-ready [data-motion]{opacity:0;transform:translateY(22px)}
.motion-ready [data-motion].is-visible{opacity:1;transform:none;transition:opacity .58s cubic-bezier(.22,1,.36,1),transform .58s cubic-bezier(.22,1,.36,1)}
@media(max-width:760px){
  .viz-heading{display:block}.viz-heading p{margin-top:8px!important;text-align:left}
  .logic-stage,.university-explorer{grid-template-columns:1fr}
  .logic-map,.university-list{border-right:0;border-bottom:1px solid rgba(var(--ink),.16)}
  .logic-map{min-height:210px;padding:24px 14px}.logic-node{width:88px;min-height:80px}
  .band-control{grid-template-columns:1fr 64px}.band-control label{grid-column:1/-1}.band-range{grid-column:1}
  .transition-lane{grid-template-columns:1fr 22px 1fr;gap:5px}.transition-lane>:nth-child(4){display:none}.transition-lane>:nth-child(5){grid-column:3}
  .exam-map{grid-template-columns:1fr}.exam-paper:first-child{border-right:0;border-bottom:1px solid rgba(var(--ink),.16)}.exam-break{width:auto;min-height:42px;border-right:0;border-bottom:1px solid rgba(var(--ink),.16);writing-mode:horizontal-tb}
  .curve-canvas{height:290px}.curve-readout{display:block}.curve-meta{margin-top:10px;text-align:left}
}
@media(max-width:520px){
  .viz-control{flex:1 1 50%;border-bottom:1px solid rgba(var(--ink),.12)}
  .viz-kv{grid-template-columns:1fr}.viz-kv>span{padding-bottom:5px;border-bottom:0}.viz-kv>div{padding-top:0}
  .band-stairs{height:148px;padding-inline:12px}.band-step{font-size:8px}
  .boundary-row,.boundary-scale{grid-template-columns:44px 1fr 58px;gap:8px}
  .pressure-strip{gap:2px;padding-inline:0}
}
@media(prefers-reduced-motion:reduce){
  .viz-control,.band-step,.transition-lane,.boundary-fill,.motion-ready [data-motion]{transition:none!important}
  .boundary-fill{width:var(--bar-width)!important}
  .logic-marker,.exam-fill,.pressure-sweep{animation:none!important}
  .exam-fill{transform:scaleX(1)}.pressure-sweep{display:none}
  .motion-ready [data-motion]{opacity:1;transform:none}
}
