/* Prism · Spectrum. One light, four directions, each with a physically ordered hue.
   Loads after prism.css and explore.css. See docs/prism-spectrum.md. */
:root {
  --sp-courses:#ff6b4a; --sp-places:#ffb340; --sp-careers:#3ccf7e; --sp-money:#9a86ff;
  --sp-courses-ink:#c2410c; --sp-places-ink:#9a5b00; --sp-careers-ink:#137a47; --sp-money-ink:#5b47e0;
  --sp-bench:#0a0b0f; --sp-bench-raised:#12141a; --sp-bench-line:rgba(255,255,255,.08);
  --sp-bench-text:#f5f5f7; --sp-bench-muted:rgba(245,245,247,.66); --sp-bench-link:#6cb4ff;
  --sp-spectrum:linear-gradient(90deg,#ff5a3c,#ff9f1a 22%,#ffd60a 38%,#3ccf7e 56%,#2f8cff 76%,#9a86ff);
  --sp-spectrum-y:linear-gradient(180deg,#ff5a3c,#ff9f1a 22%,#ffd60a 38%,#3ccf7e 56%,#2f8cff 76%,#9a86ff);
  --sp-mono:ui-monospace,"SF Mono","Cascadia Mono","Segoe UI Mono",Consolas,monospace;
  --sp-track-display:-.038em; --sp-action-on-dark:#0071e3;
}
@media(prefers-contrast:more){:root{--sp-bench-muted:rgba(245,245,247,.86)}}

/* Shared instrument primitives */
.sp-mono{font-family:var(--sp-mono);font-variant-numeric:tabular-nums;letter-spacing:.02em}
.sp-label{font:500 .68rem/1.4 var(--sp-mono);letter-spacing:.14em;text-transform:uppercase}
.sp-lam{text-transform:none}
.sp-sr{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}
[data-hue=courses],[data-ray=courses]{--hue:var(--sp-courses);--hue-ink:var(--sp-courses-ink)}
[data-hue=places],[data-ray=places]{--hue:var(--sp-places);--hue-ink:var(--sp-places-ink)}
[data-hue=careers],[data-ray=careers]{--hue:var(--sp-careers);--hue-ink:var(--sp-careers-ink)}
[data-hue=money],[data-ray=money]{--hue:var(--sp-money);--hue-ink:var(--sp-money-ink)}

/* Display tracking: Segoe UI at 650 collided at -.052em. */
.public-site :is(.discovery-main .prism-page-hero h1,.prism-page-hero h1,.money-hero h1,.leaderboard-intro h1,.prism-connections h2,.prism-section-intro h2,.section-heading h2){letter-spacing:var(--sp-track-display)}

/* The header joins the dark bench at the top of the homepage, then returns to the light shell. */
.prism-shell-header{transition:background-color 240ms ease,border-color 240ms ease}
.prism-shell-header :is(.prism-shell-brand,.prism-shell-nav>a,.prism-shell-search,.prism-shell-account){transition:color 240ms ease}
body:has(.prism-bench,[data-sp-bench-top]) .prism-shell-header:not([data-off-bench]){background:var(--sp-bench);border-bottom-color:rgba(255,255,255,.06);color:var(--sp-bench-text);--text:var(--sp-bench-text)}
body:has(.prism-bench,[data-sp-bench-top]) .prism-shell-header:not([data-off-bench]) .prism-shell-brand{color:var(--sp-bench-text)}
body:has(.prism-bench,[data-sp-bench-top]) .prism-shell-header:not([data-off-bench]) :is(.prism-shell-nav>a,.prism-shell-search){color:rgba(245,245,247,.8)}
body:has(.prism-bench,[data-sp-bench-top]) .prism-shell-header:not([data-off-bench]) .prism-shell-account:not(.prism-shell-join){color:var(--sp-bench-link)}
body:has(.prism-bench,[data-sp-bench-top]) .prism-shell-header:not([data-off-bench]) .prism-shell-join{background:var(--sp-action-on-dark);color:#fff}
body:has(.prism-bench,[data-sp-bench-top]) .prism-shell-header:not([data-off-bench]) :focus-visible{outline-color:var(--sp-bench-link)}
@media(hover:hover) and (pointer:fine){body:has(.prism-bench,[data-sp-bench-top]) .prism-shell-header:not([data-off-bench]) :is(.prism-shell-nav>a,.prism-shell-search):hover{color:#fff}}

/* 1 · Optical bench */
.prism-bench{position:relative;isolation:isolate;overflow:hidden;background:var(--sp-bench);color:var(--sp-bench-text);padding:clamp(3.5rem,6vw,6rem) var(--prism-gutter) clamp(3.5rem,6vw,5.5rem)}
.prism-bench::before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;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:64px 64px;-webkit-mask-image:radial-gradient(75% 70% at 68% 45%,#000 25%,transparent 78%);mask-image:radial-gradient(75% 70% at 68% 45%,#000 25%,transparent 78%)}
.prism-bench::after{content:'';position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--sp-spectrum);opacity:.55}
.sp-bench-inner{max-width:var(--prism-width);margin:0 auto;display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(2rem,4vw,4.5rem);align-items:center}
.sp-bench-copy,.sp-bench-visual{min-width:0}
.sp-bench-kicker{color:var(--sp-bench-muted);font:550 .72rem/1.5 var(--prism-sans);letter-spacing:.12em;text-transform:uppercase}
.prism-bench h1{margin:1.25rem 0 1.5rem;color:#fff;font:650 clamp(3.1rem,5.2vw,5.3rem)/1.02 var(--prism-sans);letter-spacing:var(--sp-track-display)}
.prism-bench h1 em{font-style:normal;color:#fff;text-shadow:-1.5px 0 rgba(255,90,60,.6),1.5px 0 rgba(122,110,255,.65)}
.sp-bench-lede{max-width:30rem;margin:0;color:var(--sp-bench-muted);font-size:clamp(1rem,1.25vw,1.125rem);line-height:1.7}
.sp-bench-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem 1.5rem;margin-top:2rem}
.prism-bench .btn--primary,.sp-focus .btn--primary{min-height:50px;padding:.85rem 1.3rem;background:var(--sp-action-on-dark);border-color:var(--sp-action-on-dark);color:#fff;font-size:.9rem}
.sp-bench-link{display:inline-flex;align-items:center;min-height:44px;color:var(--sp-bench-text);font-size:.9rem;text-decoration:underline;text-decoration-color:rgba(245,245,247,.38);text-underline-offset:5px}
.sp-bench-footnote{margin:.9rem 0 0;color:var(--sp-bench-muted);font-size:.78rem}
.prism-bench :focus-visible,.sp-focus :focus-visible{outline:2px solid var(--sp-bench-link);outline-offset:4px}

/* The light source: choosing an interest changes what enters the prism. */
.sp-source{margin-top:1.5rem;padding-top:1.25rem;border-top:1px solid var(--sp-bench-line)}
.sp-source-label{margin:0 0 .85rem;color:#fff;font:600 .95rem/1.4 var(--prism-sans)}
.sp-source-options{display:flex;flex-wrap:wrap;gap:.5rem}
.sp-source-option{min-height:44px;padding:.55rem 1.05rem;border:1px solid rgba(255,255,255,.2);border-radius:999px;background:rgba(255,255,255,.04);color:var(--sp-bench-text);font:500 .88rem/1.2 var(--prism-sans);cursor:pointer;transition:background-color 160ms ease,border-color 160ms ease,color 160ms ease,transform 120ms var(--ease-ui)}
.sp-source-option[aria-pressed=true]{background:#f5f5f7;border-color:#f5f5f7;color:#0a0b0f}
.sp-source-option:active{transform:scale(.97)}
.sp-source-more{display:inline-flex;align-items:center;gap:.45rem;min-height:44px;margin-top:.6rem;color:var(--sp-bench-muted);font-size:.84rem;text-decoration:none}
@media(hover:hover) and (pointer:fine){
  .sp-source-option:not([aria-pressed=true]):hover{border-color:rgba(255,255,255,.5);background:rgba(255,255,255,.08)}
  .sp-source-more:hover{color:#fff;text-decoration:underline;text-underline-offset:4px}
  .sp-readout:hover .sp-readout-name::after{transform:translate(2px,-2px)}
}

/* The instrument: SVG keeps its aspect ratio so readouts align with the screen lines. */
.sp-instrument{position:relative;margin:0;min-width:0;display:grid;grid-template-columns:minmax(0,1fr) clamp(9.75rem,15vw,12.5rem)}
.sp-stage{grid-area:1/1;aspect-ratio:640/470}
.sp-stage svg{display:block;width:100%;height:100%;overflow:visible}
.sp-readouts{grid-area:1/2;position:relative}
.sp-readout{position:absolute;left:0;right:0;top:calc((var(--y) - 40) / 470 * 100%);transform:translateY(-50%);display:grid;align-content:center;gap:.1rem;min-height:44px;padding:.1rem 0 .1rem .7rem;border-radius:8px;color:var(--sp-bench-text);text-decoration:none}
.sp-readout-name{display:flex;align-items:center;gap:.5rem;font:600 .9rem/1.25 var(--prism-sans)}
.sp-readout-name::before{content:'';flex:none;width:7px;height:7px;border-radius:50%;background:var(--hue);box-shadow:0 0 10px var(--hue)}
.sp-readout-name::after{content:'↗';content:'↗' / '';color:var(--sp-bench-muted);font-size:.8rem;transition:transform 160ms var(--ease-ui)}
.sp-readout-value{color:var(--sp-bench-muted);font:500 .74rem/1.3 var(--sp-mono);font-variant-numeric:tabular-nums}
.sp-caption{grid-area:1/2;align-self:start;display:flex;flex-direction:column;gap:.3rem;margin-top:2%;padding-left:.7rem;border-left:1px solid rgba(255,255,255,.14);color:var(--sp-bench-muted);font-size:.78rem;line-height:1.45}
.sp-caption .sp-label{color:var(--sp-bench-text)}
.sp-caption-source{font:500 .66rem/1.45 var(--sp-mono);letter-spacing:.02em}

.sp-measure{fill:none;stroke:rgba(255,255,255,.16);stroke-width:1}
.sp-measure .sp-measure-dash{stroke:rgba(255,255,255,.24);stroke-dasharray:2 5}
.sp-measure text{fill:rgba(245,245,247,.56);stroke:none;font:500 12px var(--sp-mono);letter-spacing:.14em}
.sp-fan{opacity:.2}
.sp-beam path,.sp-inner path,.sp-ray path,.sp-line path{fill:none;stroke-linecap:round}
.sp-beam-glow{stroke-width:8;opacity:.5}
.sp-beam-core{stroke-width:1.8}
.sp-beam-text{fill:rgba(245,245,247,.9);font:600 12px var(--sp-mono);letter-spacing:.16em}
.sp-inner path{stroke:#fff}
.sp-inner-glow{stroke-width:6;opacity:.22}
.sp-inner-core{stroke-width:1.1;opacity:.6}
.sp-glass-side{fill:url(#spGlassSide);stroke:rgba(255,255,255,.26);stroke-width:1;stroke-linejoin:round}
.sp-glass-front{fill:url(#spGlassFront);stroke:rgba(255,255,255,.5);stroke-width:1.2;stroke-linejoin:round}
.sp-glass-edge{fill:none;stroke:rgba(255,255,255,.8);stroke-width:1.3;stroke-linecap:round}
.sp-glass-spec{fill:none;stroke:rgba(255,255,255,.22);stroke-width:.8}
.sp-ray path{stroke:var(--hue)}
.sp-ray-glow{stroke-width:7;opacity:.14}
.sp-ray-line{stroke-width:1.5}
.sp-screen rect:first-child{fill:rgba(255,255,255,.06)}
.sp-screen-band{opacity:.78}
.sp-line circle{fill:var(--hue);opacity:.32}
.sp-line-mark{stroke:#fff;stroke-width:2}
.sp-line-lead{stroke:var(--hue);stroke-opacity:.5;stroke-width:1}
.sp-ray,.sp-line,.sp-fan{transition:opacity 180ms ease}
.sp-instrument[data-active] :is(.sp-ray,.sp-line){opacity:.2}
.sp-instrument[data-active] .sp-fan{opacity:.12}
.sp-instrument[data-active=courses] [data-ray=courses],.sp-instrument[data-active=places] [data-ray=places],.sp-instrument[data-active=careers] [data-ray=careers],.sp-instrument[data-active=money] [data-ray=money]{opacity:1}
html[data-input-mode=keyboard] :is(.sp-ray,.sp-line,.sp-fan){transition:none}

/* 3 · Connections: one spectrum runs through the four directions. */
.prism-connected-list{position:relative}
.prism-connected-list li:not(:last-child)::after{display:none}
.prism-connected-list::before{content:'';position:absolute;left:calc(1.25rem - 1px);top:1.25rem;bottom:2.6rem;width:2px;border-radius:2px;background:var(--sp-spectrum-y);transform-origin:top;transition:transform 900ms var(--ease-ui)}
.prism-connected-list[data-sp-pending]::before{transform:scaleY(0)}
.prism-connected-list .prism-step{position:relative;z-index:1;border:1.5px solid var(--hue-ink);color:var(--hue-ink);background:var(--bg);font:500 .72rem/1 var(--sp-mono)}
.sp-direction{display:block;margin:.4rem 0 .15rem;color:var(--hue-ink)}
.prism-connected-list h3{margin-top:.1rem}

/* 4 · Focus: the four directions recombine into one plan. */
.sp-focus{position:relative;isolation:isolate;overflow:hidden;background:var(--sp-bench);color:var(--sp-bench-text);padding:clamp(3.5rem,6vw,5.5rem) var(--prism-gutter)}
.sp-focus::before{content:'';position:absolute;left:0;right:0;top:0;height:1px;background:var(--sp-spectrum);opacity:.55}
.sp-focus-inner{max-width:var(--prism-width);margin:0 auto;display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(2rem,5vw,5rem);align-items:center}
.sp-focus .sp-label{color:var(--sp-bench-muted)}
.sp-focus h2{margin:1rem 0;color:#fff;font:650 clamp(2.2rem,3.6vw,3.4rem)/1.08 var(--prism-sans);letter-spacing:var(--sp-track-display)}
.sp-focus p{max-width:30rem;margin:0 0 1.75rem;color:var(--sp-bench-muted);font-size:1.02rem;line-height:1.7}
.sp-lens{margin:0;min-width:0}
.sp-lens svg{display:block;width:100%;height:auto;overflow:visible}
.sp-lens-axis{fill:none;stroke:rgba(255,255,255,.12);stroke-dasharray:2 6}
.sp-lens-rays path{fill:none;stroke:var(--hue);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.sp-lens-labels text{font:500 11px var(--sp-mono);letter-spacing:.14em}
.sp-lens-labels text:nth-child(1){fill:var(--sp-courses)}.sp-lens-labels text:nth-child(2){fill:var(--sp-places)}.sp-lens-labels text:nth-child(3){fill:var(--sp-careers)}.sp-lens-labels text:nth-child(4){fill:var(--sp-money)}
.sp-lens-glass{fill:rgba(255,255,255,.07);stroke:rgba(255,255,255,.55);stroke-width:1.2}
.sp-lens-out{fill:none;stroke:#fff;stroke-width:2;stroke-linecap:round}
.sp-lens-focus circle{fill:#fff}.sp-lens-focus circle:first-child{opacity:.45}
.sp-lens-plan{fill:rgba(245,245,247,.78);font:600 11px var(--sp-mono);letter-spacing:.18em}

/* Responsive */
/* Readouts need about 12.5rem beside the stage; below 1240px the bench stacks instead of colliding. */
@media(max-width:1240px){
  .sp-bench-inner{grid-template-columns:1fr;gap:2.5rem}
  .sp-bench-copy{max-width:40rem}
  .sp-bench-visual{width:100%;max-width:780px}
  .sp-instrument{grid-template-columns:minmax(0,1fr) 12.5rem}
  .prism-bench h1{font-size:clamp(3rem,7vw,4.6rem)}
}
@media(max-width:960px){
  .sp-focus-inner{grid-template-columns:1fr;gap:2rem}
  .sp-lens{max-width:560px}
}
@media(max-width:640px){
  .prism-bench{padding-top:2.75rem}
  .prism-bench h1{font-size:clamp(2.75rem,12vw,3.6rem);margin-block:1rem 1.2rem}
  .sp-bench-actions{flex-direction:column;align-items:flex-start;gap:.5rem}
  .sp-instrument{grid-template-columns:1fr}
  .sp-stage{grid-area:1/1}
  .sp-readouts{grid-area:2/1;display:grid;grid-template-columns:1fr 1fr;gap:0 1rem;margin-top:.75rem}
  .sp-readout{position:static;transform:none;align-content:start;padding:.75rem 0;border-top:1px solid var(--sp-bench-line)}
  .sp-caption{grid-area:3/1;margin-top:1rem}
  .sp-line-lead{display:none}
  .sp-measure text{font-size:16px}.sp-beam-text{font-size:18px}
  .sp-lens-labels text,.sp-lens-plan{font-size:15px}
}
@media(max-width:360px){.sp-readouts{grid-template-columns:1fr}}

/* Preferences */
@media(prefers-reduced-motion:reduce){
  .prism-shell-header,.prism-shell-header *,.sp-ray,.sp-line,.sp-fan,.sp-source-option,.sp-readout-name::after{transition:none!important}
  .sp-source-option:active{transform:none}
  .prism-connected-list::before{transition:none;transform:none!important}
}
@media(prefers-reduced-transparency:reduce){body:has(.prism-bench,[data-sp-bench-top]) .prism-shell-header:not([data-off-bench]){background:var(--sp-bench);backdrop-filter:none;-webkit-backdrop-filter:none}}
@media(forced-colors:active){
  .prism-bench,.sp-focus{background:Canvas;color:CanvasText}
  .prism-bench::before,.prism-bench::after,.sp-focus::before{display:none}
  .prism-bench h1,.prism-bench h1 em,.sp-focus h2{color:CanvasText;text-shadow:none}
  .prism-bench svg,.sp-lens svg{forced-color-adjust:none}
  .sp-fan,.sp-beam-glow,.sp-inner-glow,.sp-ray-glow,.sp-line circle,.sp-screen-band,.sp-lens-focus circle:first-child{display:none}
  .sp-glass-front,.sp-glass-side,.sp-lens-glass{fill:Canvas;stroke:CanvasText}
  .sp-glass-edge,.sp-glass-spec,.sp-beam-core,.sp-inner-core,.sp-line-mark,.sp-lens-out,.sp-measure path{stroke:CanvasText}
  .sp-ray .sp-ray-line,.sp-line .sp-line-lead,.sp-lens-rays path{stroke:LinkText}
  .sp-ray .sp-ray-glow{display:none}
  .sp-measure text,.sp-beam .sp-beam-text,.sp-lens-labels text:nth-child(n),.sp-lens-plan{fill:CanvasText}
  .sp-lens-focus circle{fill:CanvasText}
  .sp-readout{color:LinkText}.sp-readout-name::before{background:LinkText;box-shadow:none}
  .sp-source-option{border:1px solid ButtonText;background:ButtonFace;color:ButtonText}
  .sp-source-option[aria-pressed=true]{background:Canvas;color:CanvasText;border:3px solid Highlight;text-decoration:underline;text-underline-offset:3px}
  .prism-connected-list::before{background:CanvasText}
  .prism-connected-list .prism-step,.sp-direction{border-color:CanvasText;color:CanvasText}
}
.sp-lens-focus{transform-box:fill-box;transform-origin:center}

/* ── Phase 2 · the prism effect in every element (docs/prism-spectrum.md) ── */
.public-site{
  --sp-glass:linear-gradient(165deg,#fff 55%,#fafbfd);--sp-glass-line:rgba(29,29,31,.1);
  --sp-glass-shadow:inset 0 1px 0 #fff,0 1px 2px rgba(29,29,31,.04);
  --sp-glint:linear-gradient(100deg,transparent 30%,rgba(255,90,60,.1) 42%,rgba(255,214,10,.1) 47%,rgba(60,207,126,.1) 52%,rgba(47,140,255,.1) 57%,rgba(154,134,255,.1) 62%,transparent 74%);
}
.public-site ::selection{background:rgba(154,134,255,.28)}

/* Glass record: one course, place, career or budget. The hue edge names its direction. */
.public-site :is(.sp-record,.directory-card,.explore-card){position:relative;isolation:isolate;overflow:hidden;border-radius:var(--radius,18px);background:var(--sp-glass);border:1px solid var(--sp-glass-line);box-shadow:var(--sp-glass-shadow)}
.public-site :is(.sp-record,.directory-card,.explore-card)[data-hue]::before{content:'';position:absolute;left:20px;right:20px;top:0;height:2px;border-radius:0 0 2px 2px;background:linear-gradient(90deg,var(--hue),var(--hue-ink));pointer-events:none}
/* Refraction glint: one band of dispersed light crosses the record on pointer hover. */
.public-site :is(.sp-record,.directory-card,.explore-card)::after{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background:var(--sp-glint);transform:translateX(-110%)}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
  .public-site :is(.sp-record,.directory-card,.explore-card):hover::after{transform:translateX(110%);transition:transform 900ms var(--ease-ui)}
}

/* Lit panel: the tool being worked in carries the light along its top edge. */
.public-site .sp-panel{position:relative;background:var(--sp-glass);border:1px solid var(--sp-glass-line);box-shadow:var(--sp-glass-shadow)}
.public-site .sp-panel::before{content:'';position:absolute;left:24px;right:24px;top:-1px;height:2px;border-radius:0 0 2px 2px;background:var(--sp-spectrum);opacity:0;transition:opacity 240ms ease;pointer-events:none}
.public-site .sp-panel:focus-within::before{opacity:.9}

/* Spectral selection in the main navigation */
.prism-shell-header .prism-shell-nav>a[aria-current=page]{color:#1d1d1f;box-shadow:none}
.prism-shell-header .prism-shell-nav>a[aria-current=page]::after{display:block!important;content:'';position:absolute;left:0;right:0;bottom:5px;height:2px;border-radius:2px;background:var(--sp-spectrum);opacity:1;transform:none}

/* Prism border: outlined buttons catch a spectral edge on pointer hover. */
@media(hover:hover) and (pointer:fine){
  .public-site .btn:not(.btn--primary):not(:disabled):not([aria-pressed=true]):not([aria-current]):not([aria-selected=true]):not(.dialog-close):hover{border-color:transparent;background:linear-gradient(#fff,#fff) padding-box,var(--sp-spectrum) border-box}
}

/* Disclosure prisms: a triangle in profile that turns when opened. */
.public-site details>summary{list-style:none}
.public-site details>summary::-webkit-details-marker{display:none}
.public-site details>summary::before{content:'';display:inline-block;flex:none;width:.5em;height:.62em;margin-right:.55em;vertical-align:.02em;background:currentColor;clip-path:polygon(0 0,100% 50%,0 100%);transition:transform 160ms var(--ease-ui)}
.public-site details[open]>summary::before{transform:rotate(90deg)}

/* Section eyebrows carry a short spectrum tick. */
.public-site :is(.section-heading .uni-eyebrow,.prism-eyebrow,.account-heading .uni-eyebrow)::before{content:'';display:inline-block;width:18px;height:2px;margin-right:.6rem;vertical-align:middle;border-radius:1px;background:var(--sp-spectrum)}

/* Glass dialogs over a bench-tinted backdrop */
.public-site dialog{background:var(--sp-glass);border-color:var(--sp-glass-line)}
.public-site dialog::before{content:'';position:absolute;left:28px;right:28px;top:0;height:2px;border-radius:0 0 2px 2px;background:var(--sp-spectrum);pointer-events:none}
.public-site dialog::backdrop{background:rgba(10,11,15,.5);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.prism-search-dialog section[data-hue]>h3{display:flex;align-items:center;gap:.5rem}
.prism-search-dialog section[data-hue]>h3::before{content:'';flex:none;width:3px;height:12px;border-radius:1px;background:var(--hue-ink)}

/* Directory: glass facet tiles; the amber base marks a place. */
.public-site .directory-card:nth-child(n) .directory-monogram{position:relative;overflow:hidden;background:linear-gradient(150deg,#fff,#eef0f5);border:1px solid var(--sp-glass-line);border-radius:12px;box-shadow:inset 0 1px 0 #fff;color:#424247;font:600 .85rem/1 var(--sp-mono);letter-spacing:.06em}
.public-site .directory-card:nth-child(n) .directory-monogram::after{content:'';position:absolute;left:9px;right:9px;bottom:0;height:2px;border-radius:2px 2px 0 0;background:linear-gradient(90deg,var(--sp-places),var(--sp-places-ink))}
.public-site .directory-logo span{font:600 .85rem/1 var(--sp-mono);letter-spacing:.06em}
.public-site .directory-pagination{background:var(--sp-glass);border:1px solid var(--sp-glass-line);box-shadow:var(--sp-glass-shadow)}
.public-site .directory-comparison{background:var(--sp-glass);border:1px solid var(--sp-glass-line);box-shadow:var(--sp-glass-shadow)}

/* Footer as legend: every page ends on the bench with the four directions. */
.public-site .prism-shell-footer{position:relative;max-width:none;margin:0;padding:2.25rem max(var(--prism-gutter),calc((100vw - var(--prism-width))/2))!important;background:var(--sp-bench);border-top:0;color:var(--sp-bench-muted)}
.public-site .prism-shell-footer::before{content:'';position:absolute;left:0;right:0;top:0;height:1px;background:var(--sp-spectrum);opacity:.55}
.public-site .prism-shell-footer .public-brand{color:#fff}
.public-site .prism-shell-footer p{color:var(--sp-bench-muted)}
.public-site .prism-shell-footer>a:not(.public-brand){color:rgba(245,245,247,.78)}
.prism-shell-directions{display:flex;flex-wrap:wrap;gap:0 1.25rem}
.prism-shell-directions a{display:inline-flex;align-items:center;gap:.45rem;min-height:44px;color:#f5f5f7;text-decoration:none;font:500 .74rem/1 var(--sp-mono);letter-spacing:.08em;text-transform:uppercase}
.prism-shell-directions a::before{content:'';flex:none;width:7px;height:7px;border-radius:50%;background:var(--hue);box-shadow:0 0 8px var(--hue)}
.public-site .prism-shell-footer :focus-visible{outline:2px solid var(--sp-bench-link);outline-offset:4px}
@media(hover:hover) and (pointer:fine){.prism-shell-directions a:hover,.public-site .prism-shell-footer>a:not(.public-brand):hover{color:#fff;text-decoration:underline;text-underline-offset:4px}}
@media(max-width:760px){.prism-shell-directions{flex-basis:100%;order:2}.public-site .prism-shell-footer>a:not(.public-brand){order:3}}

@media(prefers-reduced-motion:reduce){.public-site details>summary::before{transition:none}.public-site .sp-panel::before{transition:none}}
@media(prefers-reduced-transparency:reduce){.public-site dialog::backdrop{background:rgba(10,11,15,.72);backdrop-filter:none;-webkit-backdrop-filter:none}}
@media(forced-colors:active){
  .public-site :is(.sp-record,.directory-card,.explore-card)::after{display:none}
  .public-site :is(.sp-record,.directory-card,.explore-card)[data-hue]::before,.public-site .sp-panel::before,.public-site dialog::before,.prism-shell-header .prism-shell-nav>a[aria-current=page]::after{background:CanvasText;forced-color-adjust:none}
  .public-site .prism-shell-footer{background:Canvas;color:CanvasText}.public-site .prism-shell-footer::before{display:none}
  .prism-shell-directions a,.public-site .prism-shell-footer a{color:LinkText}.prism-shell-directions a::before{background:LinkText;box-shadow:none}
  .public-site details>summary::before{background:CanvasText;forced-color-adjust:none}
}

/* ── Light between pages (js/prism-transition.js) ──
   A short composited handoff carries a narrow spectral beam across the page.
   The header stays put. Off under reduced motion. */
@media(prefers-reduced-motion:no-preference){@view-transition{navigation:auto}}
.prism-shell-header{view-transition-name:sp-header}
::view-transition-old(root),::view-transition-new(root){mix-blend-mode:normal;animation-duration:420ms;animation-timing-function:cubic-bezier(.23,1,.32,1);animation-fill-mode:both}
::view-transition-new(root){animation-name:sp-vt-reveal}
::view-transition-old(root){animation-name:sp-vt-recede}
::view-transition-group(sp-header){animation-duration:420ms;animation-timing-function:cubic-bezier(.23,1,.32,1)}
@keyframes sp-vt-reveal{from{opacity:.35;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@keyframes sp-vt-recede{to{opacity:.82}}
.sp-vt-beam{position:fixed;top:0;left:0;height:100vh;z-index:2147483646;pointer-events:none;will-change:transform,opacity;
  background:linear-gradient(90deg,transparent 0%,rgba(154,134,255,.14) 16%,rgba(47,140,255,.18) 32%,rgba(60,207,126,.2) 48%,rgba(255,214,10,.24) 62%,rgba(255,146,46,.3) 74%,rgba(255,90,60,.38) 84%,rgba(255,255,255,.95) 89.4%,rgba(255,255,255,0) 90.6%)}
.sp-vt-beam::after{content:'';position:absolute;top:0;bottom:0;left:calc(90% - 1px);width:1px;background:linear-gradient(180deg,rgba(255,90,60,.7),rgba(255,214,10,.7) 35%,rgba(60,207,126,.7) 60%,rgba(154,134,255,.7))}
@media(forced-colors:active){.sp-vt-beam{display:none}}

/* Keep wide evidence tables usable without widening the whole mobile page. */
.sp-table-hint{display:none}
@media(max-width:700px){
  .sp-table-hint{display:block;margin:.75rem 0 .5rem;color:#555761;font:500 .78rem/1.45 var(--prism-sans)}
  .sp-table-hint::before{content:'↔';display:inline-block;margin-right:.4rem;color:#0066cc;font-size:1rem;vertical-align:-.05em}
  :is(.provider-table-scroll,.cash-table-scroll,.money-compare-scroll,.subject-table-scroll){overscroll-behavior-inline:contain;scrollbar-width:thin}
}
:is(.provider-table-scroll,.cash-table-scroll,.money-compare-scroll,.subject-table-scroll):focus-visible{outline:2px solid #0066cc;outline-offset:3px}

/* ── Interior optical benches: every page opens on its own instrument ──
   Full-bleed dark band (box-shadow + clip-path, so no horizontal overflow), copy on the
   left, the page's instrument on the right. Pages whose bench sits directly under the
   header carry data-sp-bench-top, so the header joins it as on the homepage. */
.public-site .sp-bench-hero{position:relative;isolation:isolate;display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(1.5rem,4vw,4rem);align-items:center;margin-top:0!important;margin-bottom:clamp(2rem,4vw,3rem)!important;padding-block:clamp(2.75rem,5vw,4.75rem)!important;border:0!important;background:var(--sp-bench);box-shadow:0 0 0 100vmax var(--sp-bench);clip-path:inset(0 -100vmax);color:var(--sp-bench-text);text-align:left!important}
.public-site .sp-bench-hero::after{content:'';display:block!important;position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--sp-spectrum);opacity:.55;pointer-events:none}
.public-site .sp-bench-hero>.sp-bench-copy{min-width:0}
.public-site .sp-bench-hero :is(h1,h2){color:#fff;text-align:left}
.public-site .sp-bench-hero h1 :is(em,span){color:#fff!important;-webkit-text-fill-color:currentColor;background:none;text-shadow:-1.5px 0 rgba(255,90,60,.6),1.5px 0 rgba(122,110,255,.65)}
.public-site .sp-bench-hero p{color:var(--sp-bench-muted)}
.public-site .sp-bench-hero :is(.uni-eyebrow,.public-kicker,.prism-kicker,.hero-kicker,[class*=eyebrow],[class*=kicker]){color:var(--sp-bench-muted)}
.public-site .sp-bench-hero a:not(.btn){color:var(--sp-bench-link);text-decoration-color:rgba(108,180,255,.45)}
.public-site .sp-bench-hero :focus-visible{outline:2px solid var(--sp-bench-link);outline-offset:4px}
.public-site .sp-bench-hero .sp-facet{display:none}
.public-site .sp-bench-hero .prism-page-links{justify-content:flex-start}
.sp-bench-figure{margin:0;min-width:0}
.sp-bench-figure svg{display:block;width:100%;height:auto;overflow:visible}
.sp-bench-figure figcaption{margin-top:.6rem;color:var(--sp-bench-muted);font:500 .7rem/1.4 var(--sp-mono);letter-spacing:.06em}

/* Instrument drawing grammar (shared by every bench figure) */
.spi path{fill:none;stroke-linecap:round;stroke-linejoin:round}
.spi-measure path,.spi-scale path{stroke:rgba(255,255,255,.18);stroke-width:1}
.spi-scale path:first-child{stroke:rgba(255,255,255,.4)}
.spi-scale .spi-minor{stroke:rgba(255,255,255,.12)}
.spi-measure text,.spi-labels text{fill:rgba(245,245,247,.6);font:500 11px var(--sp-mono);letter-spacing:.14em}
.spi-beam{stroke-width:1.8}
.spi-beam-plain{stroke:#fff;stroke-width:1.8}
.spi-faint{opacity:.5}
.spi-fan path{stroke-width:1;opacity:.28}
.spi-rays path,.spi-ray{stroke:var(--hue);stroke-width:1.5}
.spi-ray-strong{stroke:var(--hue);stroke-width:2.2}
.spi-dots circle,.spi-nodes circle,.spi-dot{fill:var(--hue)}
.spi-glow{fill:var(--hue);opacity:.35}
.spi-glow-white{fill:#fff;opacity:.3}
.spi-dot-white{fill:#fff}
.spi-glass-front{fill:rgba(255,255,255,.08);stroke:rgba(255,255,255,.5);stroke-width:1.2}
.spi-glass-side{fill:rgba(255,255,255,.04);stroke:rgba(255,255,255,.26);stroke-width:1}
.spi .spi-glass-edge{stroke:rgba(255,255,255,.8);stroke-width:1.3}
.spi-inner{stroke:#fff;stroke-width:1.1;opacity:.6}
.spi-slit rect{fill:rgba(255,255,255,.22)}
.spi-grating path{stroke:rgba(255,255,255,.35);stroke-width:1}
.spi-cone{opacity:.24}
.spi-screen{fill:rgba(255,255,255,.08)}
.spi-screen-band{opacity:.7}
.spi-line-mark path{stroke:#fff;stroke-width:2}
.spi-reading{fill:rgba(245,245,247,.85);font:600 11px var(--sp-mono);letter-spacing:.16em}
.spi-grid path{stroke:rgba(255,255,255,.07)}
.spi-target circle{fill:none;stroke:rgba(255,255,255,.45);stroke-width:1.2}
.spi-target path{stroke:rgba(255,255,255,.45)}
.spi-band{opacity:.5}
.spi-lines path{stroke:#fff;stroke-width:2}
.spi-align path{stroke:rgba(255,255,255,.4);stroke-dasharray:3 5}
.spi-bars rect{opacity:.6}
.spi-threshold{stroke:rgba(255,255,255,.35);stroke-dasharray:3 5}
.spi-lens{fill:rgba(255,255,255,.07);stroke:rgba(255,255,255,.55);stroke-width:1.2}
.spi-axis{stroke-dasharray:2 6}

@media(max-width:860px){
  .public-site .sp-bench-hero{grid-template-columns:1fr;gap:1.75rem}
  .sp-bench-figure{max-width:560px}
}
@media(max-width:640px){.spi-measure text,.spi-labels text,.spi-reading{font-size:15px}}
@media(forced-colors:active){
  .public-site .sp-bench-hero{background:Canvas;box-shadow:none;clip-path:none;color:CanvasText}
  .public-site .sp-bench-hero::after{display:none}
  .public-site .sp-bench-hero :is(h1,h2,h1 em,h1 span){color:CanvasText!important;text-shadow:none}
  .sp-bench-figure svg{forced-color-adjust:none}
  .spi :is(.spi-ray,.spi-ray-strong,.spi-rays path,.spi-beam,.spi-beam-plain,.spi-lines path){stroke:LinkText}
  .spi :is(.spi-fan,.spi-glow,.spi-glow-white,.spi-cone,.spi-band,.spi-bars,.spi-screen-band){display:none}
  .spi :is(.spi-glass-front,.spi-glass-side,.spi-lens){fill:Canvas;stroke:CanvasText}
  .spi :is(text){fill:CanvasText}
  .spi :is(.spi-dot,.spi-dots circle,.spi-nodes circle,.spi-dot-white){fill:LinkText}
}

/* Benches that open a page sit flush under the header; the planner band is compact. */
.public-site main:has(>[data-sp-bench-top]:first-child){padding-top:0!important}
.public-site main>[data-sp-bench-top]:first-child,.public-site main>:first-child>[data-sp-bench-top]:first-child{margin-top:0!important}
.public-site .sp-bench-compact{padding-block:clamp(2rem,4vw,3rem)!important}
.public-site .sp-bench-title{margin:.8rem 0 .9rem;font:650 clamp(2rem,3.6vw,3rem)/1.06 var(--prism-sans);letter-spacing:var(--sp-track-display)}

/* Bench fixes: accents stay upright, outlined buttons read on the bench, and the
   university back link joins the bench instead of leaving a light strip. */
.public-site .sp-bench-hero :is(h1,h2) em{font-style:normal}
.public-site .sp-bench-hero .btn:not(.btn--primary){color:var(--sp-bench-text);border-color:rgba(255,255,255,.3);background:transparent}
.public-site .sp-bench-hero .btn--primary{background:var(--sp-action-on-dark);border-color:var(--sp-action-on-dark);color:#fff}
.public-site .sp-bench-hero .btn:disabled{color:rgba(245,245,247,.5);border-color:rgba(255,255,255,.16)}
@media(hover:hover) and (pointer:fine){
  .public-site .sp-bench-hero .btn:not(.btn--primary):not(:disabled):not([aria-pressed=true]):not([aria-current]):not([aria-selected=true]):not(.dialog-close):hover{border-color:transparent;background:linear-gradient(var(--sp-bench),var(--sp-bench)) padding-box,var(--sp-spectrum) border-box;color:#fff}
}
.public-site main:has(>.discovery-back+[data-university] .sp-bench-hero){padding-top:0!important}
.public-site main:has(.sp-bench-hero)>.discovery-back{display:block;margin:0!important;border:0!important;padding:1.4rem 0 0;background:var(--sp-bench);box-shadow:0 0 0 100vmax var(--sp-bench);clip-path:inset(0 -100vmax);color:var(--sp-bench-link)}
.public-site main:has(.sp-bench-hero)>.discovery-back:focus-visible{outline:2px solid var(--sp-bench-link);outline-offset:4px}
.public-site [data-university]>.sp-bench-hero{margin-top:0!important;padding-top:clamp(1.5rem,3vw,2.5rem)!important}
@media(forced-colors:active){.public-site main:has(.sp-bench-hero)>.discovery-back{background:Canvas;box-shadow:none;color:LinkText}.public-site .sp-bench-hero .btn{color:ButtonText;border-color:ButtonText}}
