/* WindAnvil Atlas. Chart colors encode conceptual roles, not vulnerability severity. */
body.atlas { background: #081b19; color: #eef8ee; overflow-x: clip; }
.atlas .site-header { border-color: #214039; background: #081b19; }
.atlas .wordmark span { color: #b7ffd0; }
.atlas-nav { display: flex; align-items: center; gap: clamp(14px, 3.3vw, 43px); }
.atlas-nav a { font-size: 12px; color: #b7cfc2; font-weight: 720; padding: 7px 0; }
.atlas-nav a:hover,.atlas-nav a.atlas-nav-active { color: #c1ffd1; }
.atlas-nav a.atlas-nav-active { border-bottom: 2px solid #b7ffd0; }
.atlas a:focus-visible,.atlas button:focus-visible,.atlas select:focus-visible,
.atlas .atlas-table-scroll:focus-visible { outline: 3px solid #b9ffd0; outline-offset: 4px; }
.atlas-intro { position: relative; isolation: isolate; padding-top: 60px; }
.atlas-intro::before {
  position: absolute; content:""; inset: 0 auto 0 50%; z-index: -1; width:100vw; transform: translateX(-50%);
  background: radial-gradient(ellipse at 78% 35%,rgba(63,151,130,.23), transparent 42%),
              radial-gradient(ellipse at 9% 95%,rgba(56,140,110,.15),transparent 46%),
              linear-gradient(130deg,#081b19,#0f2923 60%,#0c201c);
}
.atlas-intro::after {
  position: absolute; content:""; inset: 0 auto 0 50%; z-index: -1; width:100vw; transform: translateX(-50%);
  background-image:linear-gradient(rgba(150,241,186,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(150,241,186,.045) 1px,transparent 1px);
  background-size: 52px 52px; pointer-events: none;
  mask-image:linear-gradient(to right,transparent,black);
}
.atlas-headline-top { display:flex; align-items:flex-start; justify-content:space-between; flex-wrap:wrap; border-top:1px solid #5c8372; padding-top:18px; gap:15px; }
.atlas-kicker,.atlas-serial,.atlas-eyebrow,.atlas-tally-end,.lab-bottom,.atlas-editorial-label > span {
  font-size:11px; font-weight:790; letter-spacing:.115em; line-height:1.6;
}
.atlas-kicker { color:#b6ffd0; margin:0; }
.atlas-signal { display:inline-block; width:7px; height:7px; margin-right:9px; background:#b6ffd0; box-shadow:0 0 0 5px rgba(182,255,208,.13); border-radius:50%; }
.atlas-serial { color:#9cb8a9; }
.atlas-intro h1,.atlas h2,.atlas h3,.atlas h4 { font-family:Georgia,"Times New Roman",serif; font-weight:400; letter-spacing:-.039em; }
.atlas-intro h1 { font-size:clamp(67px,8.2vw,135px); line-height:1.02; margin:62px 0 56px; }
.atlas em { color:#b6ffd0; }
.atlas-lede { display:grid; grid-template-columns:1.4fr .6fr; gap:clamp(40px,9vw,140px); align-items:start; padding-bottom:70px; }
.atlas-lede > p { font-size:clamp(19px,2vw,25px); line-height:1.68; max-width:750px; margin:0; color:#d3e6db; }
.atlas-intro-note { padding:20px 23px; border:1px solid #4c7564; background:rgba(4,25,19,.4); color:#d3e6dc; font-size:14px; line-height:1.7; }
.atlas-intro-note span { display:block; font-size:10px; font-weight:800; letter-spacing:.13em; color:#c3ffcd; margin-bottom:7px; }
.atlas-intro-note strong { font-weight:760; }
.atlas-tally { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)) .75fr; border-top:1px solid #35564a; padding:27px 0 35px; }
.atlas-tally > div { display:flex; flex-direction:column; gap:10px; padding:0 22px; border-right:1px solid #35564a; }
.atlas-tally > div:first-child { padding-left:0; }
.atlas-tally > div:last-child { border-right:0; padding-right:0; }
.atlas-tally strong { font-family:Georgia,"Times New Roman",serif; font-size:clamp(43px,4.8vw,73px); font-weight:400; line-height:1; color:#c0ffd0; }
.atlas-tally span { color:#afcabb; font-size:12px; line-height:1.45; }
.atlas-tally-end { justify-content:space-between; align-items:flex-end; text-align:right; }
.atlas-tally-end span:last-child { font-size:26px; }
.atlas-lab { background:#f0f3eb; color:#10251f; padding:90px 0 100px; }
.lab-head { display:flex; align-items:end; justify-content:space-between; gap:45px; margin-bottom:45px; }
.atlas-eyebrow { color:#285b42; margin:0; }
.atlas-evidence-head .atlas-eyebrow { color:#b3e7be; }
.lab-head h2 { margin:12px 0 0; font-size:clamp(47px,5.2vw,73px); line-height:1.07; }
.lab-head h2 em { color:#426e53; }
.lab-head > p { color:#496258; max-width:400px; font-size:16px; line-height:1.75; margin:0 0 5px; }
.lab-panel { background:#092320; color:#ebf6ef; border:1px solid #426459; border-radius:5px; overflow:hidden; box-shadow:0 35px 85px rgba(7,44,31,.16); }
.lab-toolbar { display:flex; align-items:center; justify-content:space-between; gap:22px; padding:20px 29px; background:#0c2a25; border-bottom:1px solid #355349; }
.toolbar-primary { display:flex; align-items:center; gap:18px; flex-wrap:wrap; }
.toolbar-primary label,.toolbar-status,.atlas-gate-label,.atlas-viz-tag {
  font-size:10px; font-weight:790; letter-spacing:.085em; color:#add3b7; line-height:1.55;
}
.atlas select, .atlas-lab select { font:inherit; color:#f4fff5; background:#183c32; border:1px solid #6a9280; border-radius:3px; padding:11px 34px 11px 14px; font-size:13px; font-weight:700; max-width:100%; }
.atlas select option, .atlas-lab select option { color:#fff; background:#183c32; }
.atlas select:disabled,.atlas-lab select:disabled,.mode-button:disabled { opacity:.75; cursor:default; }
.toolbar-status { display:flex; align-items:center; gap:10px; }
.status-indicator { width:8px; height:8px; background:#c7f1cc; border-radius:50%; box-shadow:0 0 0 5px rgba(189,252,203,.12); flex:none; }
.atlas-modes { display:flex; align-items:stretch; overflow-x:auto; scrollbar-width:thin; border-bottom:1px solid #355349; }
/* Clear mobile affordance for six modes; the scroll strip also has a keyboard focus target. */
.atlas-mode-hint { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
@media(max-width:780px) {
  .atlas-mode-hint { position:static; width:auto; height:auto; margin:0; padding:11px 18px; overflow:visible; clip:auto; white-space:normal; background:#0d3028; border-bottom:1px solid #355349; color:#c3e5ca; font-size:11px; line-height:1.45; letter-spacing:.03em; }
  .atlas-mode-hint span { color:#dfff65; font-weight:800; padding-inline:7px; }
}
.atlas-modes:focus-visible { outline:3px solid #cfff83; outline-offset:-4px; }
/* Screen-reader status for explicit view and evidence changes, never a visual overlay. */
.atlas .screen-reader-only { position:absolute!important; width:1px; height:1px; padding:0; margin:-1px; border:0; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; }


.mode-button {
  appearance:none; cursor:pointer; flex:1 0 auto; text-align:center; border:0; border-right:1px solid #355349;
  border-bottom:3px solid transparent; color:#b8cfc1; background:#102d27;
  font:inherit; padding:18px 9px 17px; font-size:12px; font-weight:740; white-space:nowrap;
}
.mode-button:hover:not(:disabled) { color:#fff; background:#21483a; }
.mode-button[aria-pressed="true"] { color:#c2ffd0; background:#174335; border-bottom-color:#b8ffcb; }
.mode-num { color:#88b69a; margin-right:6px; font-size:10px; letter-spacing:.1em; }
.mode-button[aria-pressed="true"] .mode-num { color:#b8ffcb; }
.atlas-viz-meta { display:flex; justify-content:space-between; align-items:start; gap:28px; padding:31px 34px 26px; }
.atlas-viz-meta .atlas-eyebrow,.atlas-inspector .atlas-eyebrow { color:#a8d8b5; }
.atlas-viz-meta h3 { font-size:clamp(31px,3.1vw,47px); line-height:1.1; margin:12px 0 13px; }
.atlas-viz-meta p:not(.atlas-eyebrow) { margin:0; font-size:14px; line-height:1.75; color:#b5d1c4; max-width:700px; }
.atlas-viz-tag { white-space:nowrap; border:1px solid #6f967c; padding:10px 13px; text-align:center; margin-top:3px; }
.atlas-viz-layout { display:grid; grid-template-columns:minmax(0,1.58fr) minmax(295px,.62fr); border-top:1px solid #355349; }
.atlas-chart-panel { min-width:0; border-right:1px solid #355349; }
.atlas-chart-grid { min-height:540px; height:clamp(540px,49vw,680px); position:relative; overflow:hidden;
  background: radial-gradient(circle at 50% 45%, rgba(39,116,88,.3), transparent 58%),
    radial-gradient(rgba(142,214,170,.18) .8px, transparent .8px);
  background-size:100% 100%,23px 23px;
}
.atlas-viz-placeholder { display:flex; align-items:center; justify-content:center; position:absolute; inset:0; color:#bddbc8; text-align:center; padding:50px; font-size:15px; }
.atlas-chart-foot { border-top:1px solid #355349; padding:16px 24px; display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:14px; font-size:11px; color:#bfd5c8; }
.chart-foot-key { font-size:10px; font-weight:760; letter-spacing:.08em; color:#b8ffcb; }
.chart-foot-key i { display:inline-block; height:7px; width:7px; background:#9edcbb; border-radius:50%; margin-right:7px; }
.atlas-inspector { padding:32px 28px; background:linear-gradient(150deg,#092b24,#081e1b); }
.atlas-inspector h4 { font-size:clamp(29px,2.6vw,40px); line-height:1.18; margin:24px 0 19px; }
.atlas-inspector > p:not(.atlas-eyebrow):not(.atlas-inspector-warning) { font-size:14px; line-height:1.8; color:#c1d8ca; }
.inspector-divider { border-top:1px solid #426052; margin:31px 0; }
.atlas-gate-label { display:block; color:#e3f1e4; font-size:12px; margin:15px 0 10px; letter-spacing:0; }
.atlas-inspector select { width:100%; font-size:12px; }
.gate-requirement { background:#173d31; border-left:3px solid #a8ffc4; padding:18px 19px; margin:22px 0 25px; }
.gate-requirement span { color:#b5ffd0; font-size:10px; font-weight:800; letter-spacing:.1em; }
.gate-requirement p { color:#f0fff2; line-height:1.7; font-size:14px; margin:9px 0 0; }
.atlas-inspector-warning { color:#aac7ba; border-top:1px solid #426052; padding-top:19px; margin-top:27px; font-size:12px; line-height:1.75; }
.atlas-evidence { border-top:1px solid #355349; background:#0a231e; }
.atlas-evidence-head { display:flex; align-items:end; justify-content:space-between; gap:35px; padding:26px 34px 13px; }
.atlas-evidence-head h3 { font-size:clamp(26px,2.4vw,37px); margin:7px 0 0; }
.atlas-evidence-head > p { color:#accabb; font-size:12px; max-width:345px; line-height:1.65; }
.atlas-table-scroll { padding:0 34px 30px; overflow-x:auto; }
.atlas-table { border-collapse:collapse; width:100%; min-width:660px; table-layout:fixed; }
.atlas-table caption { text-align:left; color:#b0cbbb; font-size:12px; padding:12px 0 16px; line-height:1.65; }
.atlas-table th { font-size:10px; text-transform:uppercase; color:#c0ffd0; font-weight:780; letter-spacing:.08em; text-align:left; }
.atlas-table td { font-size:13px; color:#d4e5d9; line-height:1.6; }
.atlas-table th,.atlas-table td { padding:15px 15px 15px 0; border-bottom:1px solid #325345; vertical-align:top; }
.atlas-table th:nth-child(1) { width:23%; }
.atlas-table th:nth-child(2) { width:25%; }
.atlas-table th:nth-child(3) { width:25%; }
.lab-bottom { display:flex; justify-content:space-between; gap:22px; color:#52715e; padding-top:20px; flex-wrap:wrap; font-size:10px; }
.atlas-editorial { display:grid; grid-template-columns:230px minmax(0,1fr); gap:clamp(35px,6vw,105px); padding-block:120px; }
.atlas-editorial-label > span { display:block; color:#90b79d; margin-top:23px; }
.atlas-editorial .atlas-eyebrow { color:#b4ffcc; }
.atlas-editorial h2,.atlas-cta h2 { font-size:clamp(48px,5.7vw,85px); line-height:1.12; margin:0 0 35px; }
.atlas-editorial > div:last-child > p { max-width:750px; font-size:19px; color:#c5dace; line-height:1.82; }
.atlas-editorial-steps { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:30px 42px; margin-top:50px; }
.atlas-editorial-steps article { border-top:1px solid #416257; padding-top:23px; }
.atlas-editorial-steps article > span { color:#b7ffd0; font-size:10px; font-weight:800; letter-spacing:.1em; }
.atlas-editorial-steps h3 { font-size:clamp(23px,2.5vw,34px); margin:15px 0; }
.atlas-editorial-steps p { color:#b0cebb; line-height:1.75; font-size:14px; }
.atlas-cta { background:#daebdb; color:#12382a; padding:94px 0 100px; }
.atlas-cta-inner { max-width:1000px; }
.atlas-cta .atlas-eyebrow { margin-bottom:26px; }
.atlas-cta h2 em { color:#377654; }
.atlas-cta p:not(.atlas-eyebrow) { font-size:19px; line-height:1.75; max-width:780px; }
.atlas-cta-link { display:inline-block; border-bottom:2px solid #12382a; padding:0 0 7px; margin-top:21px; font-weight:800; }
.atlas .site-footer { color:#10251f; }
.atlas-front-lab h3,.atlas-front-lab h4 { font-family:Georgia,'Times New Roman',serif; font-weight:400; letter-spacing:-.039em; }
.atlas-front-lab a:focus-visible,.atlas-front-lab button:focus-visible,.atlas-front-lab select:focus-visible,.atlas-front-lab .atlas-table-scroll:focus-visible { outline:3px solid #96edb7; outline-offset:3px; }
.atlas-standalone-link { color:#315e46; font-weight:800; text-decoration:underline; text-underline-offset:5px; }
.atlas-standalone-link:hover { color:#0b3523; }
.atlas-live .atlas-viz-placeholder { display:none; }
.atlas-live .atlas-chart-grid { cursor:default; }
.atlas :disabled { cursor:not-allowed; }
@media(max-width:1020px) {
  .atlas-viz-layout { grid-template-columns:1fr; }
  .atlas-chart-panel { border-right:0; border-bottom:1px solid #355349; }
  .atlas-chart-grid { height:540px; }
  .atlas-inspector { display:grid; grid-template-columns:1fr 1fr; gap:14px 36px; }
  .atlas-inspector .inspector-divider { grid-column:1/-1; margin:8px 0; }
  .atlas-inspector .atlas-inspector-warning { grid-column:1/-1; }
}
@media(max-width:780px) {
  .atlas-intro { padding-top:47px; }
  .atlas-intro h1 { font-size:clamp(50px,8.4vw,83px); margin:46px 0; }
  .atlas-lede { grid-template-columns:1fr; gap:32px; padding-bottom:55px; }
  .atlas-tally { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .atlas-tally-end { display:none!important; }
  .atlas-lab { padding-block:75px; }
  .lab-head { align-items:start; flex-direction:column; gap:18px; }
  .atlas-editorial { grid-template-columns:1fr; gap:33px; padding-block:85px; }
  .atlas-editorial-label > span { display:none; }
  .atlas-nav { gap:15px; }
  .atlas-nav a { font-size:11px; }
}
@media(max-width:560px) {
  .atlas .wordmark { font-size:17px; }
  .atlas-nav a:nth-child(2) { display:none; }
  .atlas-intro h1 { font-size:clamp(43px,10.5vw,58px); }
  .atlas-intro h1 br { display:none; }
  .atlas-serial { display:none; }
  .atlas-lede > p { font-size:17px; }
  .atlas-tally strong { font-size:43px; }
  .atlas-tally > div { padding-inline:10px; }
  .atlas-tally span { font-size:10px; }
  .lab-head h2 { font-size:43px; }
  .lab-toolbar { align-items:start; flex-direction:column; gap:15px; padding:18px; }
  .atlas-viz-meta { padding:25px 20px; flex-direction:column; gap:19px; }
  .atlas-viz-meta h3 { font-size:35px; }
  .atlas-chart-grid { min-height:390px; height:440px; }
  .atlas-chart-foot { padding:15px; }
  .atlas-inspector { display:block; padding:29px 20px; }
  .atlas-evidence-head { padding:25px 20px 12px; flex-direction:column; align-items:start; gap:7px; }
  .atlas-table-scroll { padding:0 20px 25px; }
  .atlas-editorial-steps { grid-template-columns:1fr; }
  .atlas-cta { padding-block:75px; }
  .atlas-cta h2 { font-size:45px; }
}
@media(prefers-reduced-motion:reduce) {
  .atlas { scroll-behavior:auto; }
  .atlas * { animation:none!important; transition:none!important; }
}

/* Mobile evidence table: readable cards instead of a horizontally clipped grid. */
@media (max-width: 700px) {
  .landing .atlas-table-scroll { overflow-x:visible; padding:0 18px 24px; max-width:100%; }
  .landing .atlas-table { min-width:0; width:100%; display:block; table-layout:auto; }
  .landing .atlas-table caption { display:block; width:100%; overflow-wrap:anywhere; }
  .landing .atlas-table thead { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
  .landing .atlas-table tbody { display:grid; gap:12px; }
  .landing .atlas-table tr { display:block; border:1px solid #42665a; border-radius:6px; padding:12px 14px; background:#102b25; }
  .landing .atlas-table td { display:grid; grid-template-columns:minmax(0,1fr); gap:4px; padding:10px 0; overflow-wrap:anywhere; border:0; }
  .landing .atlas-table td + td { border-top:1px solid #345248; }
  .landing .atlas-table td::before { display:block; color:#c0ffd0; font:700 10px/1.4 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace; letter-spacing:.08em; text-transform:uppercase; }
  .landing .atlas-table td:nth-child(1)::before { content:"Possible upstream"; }
  .landing .atlas-table td:nth-child(2)::before { content:"Illustrative consumer"; }
  .landing .atlas-table td:nth-child(3)::before { content:"Access function"; }
  .landing .atlas-table td:nth-child(4)::before { content:"Evidence needed"; }
}
