@font-face{font-family:"Cormorant Garamond";font-style:normal;font-weight:400 600;font-display:swap;src:url("/fonts/f04-co3bmX5slCNuHLi8bLeY9MK7whWMhyjYp3tKky2F7i6C.woff2") format("woff2")}
@font-face{font-family:"Inter";font-style:normal;font-weight:400 600;font-display:swap;src:url("/fonts/f16-UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa25L7W0Q5n-wU.woff2") format("woff2")}

:root{
  --ready:color-mix(in srgb,#46b14e 60%,var(--linen));
  --partial:color-mix(in srgb,#e8a81e 64%,var(--linen));
  --blocked:color-mix(in srgb,#c8342b 62%,var(--linen));
  --table-line:color-mix(in srgb,var(--linen) 13%,transparent);
}
/* Light is a deliberate remap, never an accident of --linen flipping.
   These three carry 9px status text, so they are pinned to values measured
   at >=4.5:1 on the linen paper rather than mixed toward it. */
:root[data-theme="light"]{
  --ready:#1f6b28;
  --partial:#7a5205;
  --blocked:#a02017;
  /* The fleet --muted lands at 4.0:1 on linen paper, just under AA. Scoped
     here (this sheet loads on the map alone) so the map clears 4.5 without
     touching the shared token every other room renders from. */
  --muted:#6a6359;
}

html{scroll-padding-top:122px}
body{word-break:normal;overflow-wrap:normal;hyphens:none}
.map-rail{position:sticky;top:0;z-index:70;background:color-mix(in srgb,var(--obsidian) 94%,transparent);backdrop-filter:blur(18px);border-bottom:1px solid var(--line2)}
.map-rail-inner{width:min(1420px,calc(100% - 48px));height:48px;margin:0 auto;display:flex;align-items:stretch;gap:8px;overflow-x:auto;scrollbar-width:none}
.map-rail-inner::-webkit-scrollbar{display:none}
.map-rail a{display:flex;align-items:center;flex:0 0 auto;padding:0 10px;border-bottom:2px solid transparent;color:var(--muted);font:600 10px/1 "Inter",sans-serif;letter-spacing:.11em;text-transform:uppercase;text-decoration:none}
.map-rail a:hover,.map-rail a:focus-visible,.map-rail a.is-active{color:var(--linen);border-bottom-color:var(--bronze);outline:0}
.rail-status{display:flex;align-items:center;margin-left:auto;color:var(--muted);font:600 10px/1 "Inter",sans-serif;letter-spacing:.1em;text-transform:uppercase;white-space:nowrap}
.map-rail .progress{bottom:0}

.map-hero{position:relative;overflow:hidden;border-bottom:1px solid var(--line2);background:var(--obsidian)}
.map-hero>canvas{position:absolute;inset:0;width:100%;height:100%;opacity:.18;pointer-events:none}
.map-hero-grid{min-height:630px;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(310px,.55fr);align-items:end;gap:clamp(48px,8vw,140px);padding-top:100px;padding-bottom:82px;position:relative;z-index:2}
.map-hero-copy{align-self:center}
.map-hero h1{max-width:none;font-size:clamp(72px,9vw,148px);line-height:.78;letter-spacing:-.055em;margin:22px 0 34px}
.map-hero .deck{max-width:770px;font-size:clamp(24px,2.8vw,38px);line-height:1.18}
.hero-verdict{align-self:end;padding:28px 0 0;border-top:1px solid var(--bronze)}
.hero-verdict-label{margin:0 0 22px;color:var(--bronze);font:600 10px/1 "Inter",sans-serif;letter-spacing:.15em;text-transform:uppercase}
.hero-verdict-line{margin:0;padding:12px 0;border-bottom:1px solid var(--line2);color:var(--muted);font-size:14px}
.hero-verdict-line strong{display:inline-block;min-width:1.7em;color:var(--linen);font:500 27px/1 "Cormorant Garamond",serif}
.hero-verdict a{display:inline-flex;gap:12px;align-items:center;margin-top:25px;color:var(--linen);font:600 11px/1 "Inter",sans-serif;letter-spacing:.1em;text-transform:uppercase;text-decoration:none}
.hero-verdict a span{color:var(--bronze);font-size:18px}

.protocol-overview{padding:110px 0 92px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,var(--bg),color-mix(in srgb,var(--panel) 64%,var(--bg)))}
.protocol-head,.leaderboard-head,.mission-head{display:grid;grid-template-columns:minmax(0,1.18fr) minmax(300px,.62fr);gap:clamp(36px,7vw,110px);align-items:end}
.protocol-head h2,.leaderboard-head h2,.mission-head h2{margin:12px 0 0;font-size:clamp(52px,6vw,88px);font-weight:500;line-height:.9;letter-spacing:-.04em}
.protocol-head>p,.leaderboard-head>p,.mission-head>p{margin:0 0 4px;color:var(--muted);font-size:15px;line-height:1.55}
.protocol-head>p b,.leaderboard-head>p b,.mission-head>p b{color:var(--linen)}
.protocol-rule{display:grid;grid-template-columns:1fr 1.4fr;gap:1px;margin:48px 0 18px;border:1px solid var(--line);background:var(--line)}
.protocol-rule p{margin:0;padding:20px 22px;background:var(--panel);color:var(--muted);font-size:13px}
.protocol-rule b{display:block;margin-bottom:7px;color:var(--bronze);font:600 9px/1 "Inter",sans-serif;letter-spacing:.11em;text-transform:uppercase}
.protocol-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;border:1px solid var(--line);background:var(--line)}
.protocol-card{position:relative;min-height:305px;padding:24px 21px 22px;background:var(--panel);overflow:hidden}
.protocol-card::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--bronze);transform:scaleX(.18);transform-origin:left}
.protocol-card-maintain{background:linear-gradient(145deg,color-mix(in srgb,var(--bronze) 9%,var(--panel)),var(--panel) 58%)}
.protocol-card-maintain::after{transform:scaleX(1)}
.protocol-index{display:flex;justify-content:space-between;margin:0 0 49px;color:var(--bronze);font:600 10px/1 "Inter",sans-serif;letter-spacing:.13em;text-transform:uppercase}
.protocol-index span{color:var(--muted);font-size:8px}
.protocol-card h3{margin:0 0 16px;font-size:34px;font-weight:500;line-height:1;letter-spacing:-.025em}
.protocol-card>p:not(.protocol-index){margin:0;color:var(--linen);font-size:14px;line-height:1.45}
.protocol-card small{display:block;margin-top:26px;padding-top:17px;border-top:1px solid var(--line2);color:var(--muted);font-size:11px;line-height:1.5}
.protocol-card small b{display:block;margin-bottom:5px;color:var(--bronze);font:600 8px/1 "Inter",sans-serif;letter-spacing:.1em;text-transform:uppercase}
.stage-legend{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;margin-top:18px;border:1px solid var(--line);background:var(--line)}
.stage-legend-item{min-width:0;padding:15px 14px;background:var(--bg)}
.stage-legend-item p{margin:9px 0 0;color:var(--muted);font-size:10px;line-height:1.4}
.stage-state{--stage-color:var(--stone);display:inline-flex;align-items:center;gap:8px;min-width:0;color:var(--stage-color);font:600 8px/1.2 "Inter",sans-serif;letter-spacing:.08em;text-transform:uppercase}
.stage-state-mark{position:relative;display:inline-block;flex:0 0 19px;width:19px;height:19px;border:1px solid color-mix(in srgb,var(--stage-color) 65%,transparent);border-radius:50%;background:color-mix(in srgb,var(--stage-color) 7%,transparent)}
.stage-state-pass{--stage-color:var(--ready)}
.stage-state-active{--stage-color:var(--bronze)}
.stage-state-waiting-owner,.stage-state-reopened{--stage-color:var(--partial)}
.stage-state-blocked{--stage-color:var(--blocked)}
.stage-state-not-started{--stage-color:var(--stone)}
.stage-state-unproven{--stage-color:var(--partial)}
.stage-state-overprivileged{--stage-color:var(--blocked)}
.stage-state-pass .stage-state-mark::before{content:"";position:absolute;left:5px;top:3px;width:5px;height:9px;border-right:2px solid var(--stage-color);border-bottom:2px solid var(--stage-color);transform:rotate(42deg)}
.stage-state-blocked .stage-state-mark::before,.stage-state-blocked .stage-state-mark::after{content:"";position:absolute;left:4px;top:8px;width:10px;height:2px;background:var(--stage-color)}
.stage-state-blocked .stage-state-mark::before{transform:rotate(45deg)}.stage-state-blocked .stage-state-mark::after{transform:rotate(-45deg)}
.stage-state-not-started .stage-state-mark::before{content:"";position:absolute;left:7px;top:7px;width:3px;height:3px;border-radius:50%;background:var(--stage-color)}
.stage-state-active .stage-state-mark::before{content:"";position:absolute;inset:3px;border:2px solid transparent;border-top-color:var(--stage-color);border-right-color:var(--stage-color);border-radius:50%;transform:rotate(24deg)}
.stage-state-waiting-owner .stage-state-mark::before,.stage-state-waiting-owner .stage-state-mark::after{content:"";position:absolute;top:5px;width:2px;height:8px;background:var(--stage-color)}
.stage-state-waiting-owner .stage-state-mark::before{left:6px}.stage-state-waiting-owner .stage-state-mark::after{right:6px}
.stage-state-reopened .stage-state-mark::before{content:"";position:absolute;inset:4px;border:2px solid var(--stage-color);border-left-color:transparent;border-radius:50%}
.stage-state-unproven .stage-state-mark::before{content:"?";position:absolute;inset:0;text-align:center;font:700 11px/18px "Inter",sans-serif}
.stage-state-overprivileged .stage-state-mark::before{content:"!";position:absolute;inset:0;text-align:center;font:700 12px/18px "Inter",sans-serif}

.leaderboard-section{padding:100px 0 112px;border-bottom:1px solid var(--line);scroll-margin-top:78px}
.leaderboard{margin-top:42px;max-width:100%;overflow-x:auto;border:1px solid var(--line);background:var(--panel);box-shadow:var(--shadow);scrollbar-width:thin;scrollbar-color:var(--bronze) var(--panel2)}
.leaderboard:focus-visible{outline:2px solid var(--bronze);outline-offset:4px}
.leaderboard-columns,.leader-row{min-width:1220px;display:grid;grid-template-columns:minmax(235px,.9fr) minmax(190px,.62fr) minmax(560px,1.55fr) minmax(270px,.92fr);align-items:stretch}
.leaderboard-columns{position:sticky;top:0;z-index:7;min-height:46px;background:var(--obsidian);border-bottom:1px solid var(--bronze)}
.leaderboard-columns>span,.leaderboard-stage-columns>span{display:flex;align-items:center;color:var(--bronze);font:600 8px/1.2 "Inter",sans-serif;letter-spacing:.11em;text-transform:uppercase}
.leaderboard-columns>span{padding:0 16px;border-left:1px solid var(--line2)}
.leaderboard-columns>span:first-child{padding-left:16px;border-left:0}
.leaderboard-stage-columns,.leader-stages{display:grid;grid-template-columns:repeat(6,minmax(90px,1fr));border-left:1px solid var(--line2)}
.leaderboard-stage-columns>span{justify-content:center;padding:0 8px;border-right:1px solid var(--line2)}
.leader-row{position:relative;grid-template-columns:minmax(235px,.9fr) minmax(190px,.62fr) minmax(560px,1.55fr) minmax(270px,.92fr);min-height:128px;border-bottom:1px solid var(--line2);background:var(--panel)}
.leader-row:last-child{border-bottom:0}
.leader-row::before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--state-color,var(--stone))}
.status-border-source_ready{--state-color:var(--ready)}.status-border-mapping_partial{--state-color:var(--partial)}.status-border-source_blocked{--state-color:var(--blocked)}
.leader-cell-label{display:none!important}
.leader-room,.leader-connection,.leader-gate{padding:20px 16px;border-left:1px solid var(--line2)}
.leader-room{border-left:0}
.leader-room h3{margin:0;font-size:24px;font-weight:500;line-height:1.04;letter-spacing:-.02em}
.leader-room h3 a{color:var(--linen);text-decoration:none}.leader-room h3 a:hover{color:var(--bronze)}
.leader-room p{margin:9px 0 0;color:var(--muted);font:600 8px/1.4 "Inter",sans-serif;letter-spacing:.08em;text-transform:uppercase}
.leader-connection{display:flex;flex-direction:column;justify-content:center}.leader-connection strong{color:var(--linen);font:600 9px/1.3 "Inter",sans-serif;letter-spacing:.08em;text-transform:uppercase}.leader-connection strong dfn{color:inherit}.leader-connection>span{margin-top:9px;color:var(--muted);font-size:10px;line-height:1.45}
.leader-stage{display:flex;align-items:center;justify-content:center;min-width:0;padding:12px 8px;border-right:1px solid var(--line2)}
.leader-stage-name{display:none}.leader-stage .stage-state{flex-direction:column;gap:9px;text-align:center}.leader-stage .stage-state-label{font-size:7px}
.leader-gate{display:flex;flex-direction:column;justify-content:center}
.leader-gate p{margin:0 0 8px;color:var(--bronze);font:600 8px/1.3 "Inter",sans-serif;letter-spacing:.1em;text-transform:uppercase}.leader-gate p b{color:var(--linen)}
.leader-gate>span{color:var(--muted);font-size:11px;line-height:1.5}

.mission-section{padding:110px 0 118px;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--panel) 58%,var(--bg));scroll-margin-top:78px}
.mission-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:44px}
.mission-card{--mission-color:var(--bronze);display:flex;min-width:0;flex-direction:column;border:1px solid var(--line);border-top:2px solid var(--mission-color);background:var(--panel);box-shadow:var(--shadow)}
.mission-complete-with-finding{--mission-color:var(--ready)}.mission-closed-no-lead{--mission-color:var(--shell)}.mission-waiting-room{--mission-color:var(--blocked)}
.mission-card header{display:grid;grid-template-columns:1fr auto;gap:12px;padding:22px 22px 20px;border-bottom:1px solid var(--line2)}
.mission-card header p,.mission-card header span{margin:0;color:var(--muted);font:600 8px/1.2 "Inter",sans-serif;letter-spacing:.1em;text-transform:uppercase}.mission-card header span{color:var(--mission-color);text-align:right}
.mission-card h3{grid-column:1/-1;margin:20px 0 0;font-size:31px;font-weight:500;line-height:1;letter-spacing:-.025em}
.mission-decision{margin:0;padding:20px 22px;color:var(--muted);font-size:13px;line-height:1.55}.mission-decision b,.mission-result b{display:block;margin-bottom:6px;color:var(--bronze);font:600 8px/1.2 "Inter",sans-serif;letter-spacing:.1em;text-transform:uppercase}
.mission-rooms{display:flex;flex-wrap:wrap;gap:6px;padding:0 22px 18px}.mission-rooms a{padding:7px 8px;border:1px solid var(--line);color:var(--shell);font:600 8px/1 "Inter",sans-serif;letter-spacing:.06em;text-decoration:none;text-transform:uppercase}.mission-rooms a:hover{border-color:var(--bronze);color:var(--linen)}
.mission-stages{display:grid;grid-template-columns:repeat(5,1fr);margin:0;padding:15px 14px;border-top:1px solid var(--line2);border-bottom:1px solid var(--line2);list-style:none}
.mission-stages li{display:flex;min-width:0;flex-direction:column;align-items:center;gap:8px;padding:0 4px;border-right:1px solid var(--line2)}.mission-stages li:last-child{border-right:0}.mission-stages li>span{color:var(--muted);font:600 7px/1.2 "Inter",sans-serif;letter-spacing:.06em;text-align:center;text-transform:uppercase}
.mission-result{flex:1;padding:22px}.mission-result>p:first-child{margin:0;color:var(--mission-color);font:500 22px/1.05 "Cormorant Garamond",serif;letter-spacing:-.01em}.mission-result>p:first-child b{color:inherit;font:inherit;letter-spacing:inherit;text-transform:none}.mission-result>p:nth-child(2){margin:13px 0 0;color:var(--muted);font-size:12px;line-height:1.55}.mission-result small{display:block;margin-top:20px;padding-top:17px;border-top:1px solid var(--line2);color:var(--muted);font-size:10px;line-height:1.5}

.control-deck{position:sticky;top:48px;z-index:55;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--bg) 94%,transparent);backdrop-filter:blur(18px)}
.control-deck-inner{min-height:104px;display:grid;grid-template-columns:minmax(250px,.75fr) minmax(460px,1.35fr) auto;align-items:end;gap:28px;padding-top:18px;padding-bottom:18px}
.search-control,.filter-control{margin:0;padding:0;border:0}
.search-control>span,.filter-control legend{display:block;margin:0 0 8px;color:var(--muted);font:600 9px/1 "Inter",sans-serif;letter-spacing:.12em;text-transform:uppercase}
.search-control input{width:100%;height:40px;padding:0 0 7px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;color:var(--linen);font:400 15px/1.2 "Inter",sans-serif;outline:0}
.search-control input:focus{border-bottom-color:var(--bronze)}
.search-control input::placeholder{color:var(--stone)}
.filter-control{display:flex;flex-wrap:wrap;gap:7px}
.filter-control legend{width:100%}
.filter-button{min-height:40px;padding:0 13px;border:1px solid var(--line);background:transparent;color:var(--muted);font:600 10px/1 "Inter",sans-serif;letter-spacing:.07em;text-transform:uppercase;cursor:pointer}
.filter-button:hover,.filter-button:focus-visible{border-color:var(--bronze);color:var(--linen);outline:0}
.filter-button.is-active{border-color:var(--bronze);background:color-mix(in srgb,var(--bronze) 13%,transparent);color:var(--linen)}
.result-count{margin:0 0 12px;color:var(--muted);font:500 10px/1 "Inter",sans-serif;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}

.map-layout{width:min(1420px,calc(100% - 48px));display:grid;grid-template-columns:215px minmax(0,1fr);gap:clamp(38px,5vw,86px);padding-top:72px;padding-bottom:120px}
.room-index{align-self:start;position:sticky;top:178px;max-height:calc(100vh - 202px);overflow-y:auto;padding-right:18px;scrollbar-width:thin;scrollbar-color:var(--line) transparent}
.room-index-title{margin:0 0 14px;color:var(--bronze);font:600 9px/1 "Inter",sans-serif;letter-spacing:.14em;text-transform:uppercase}
.room-index-list{display:grid}
.room-index-list a{display:grid;grid-template-columns:minmax(0,1fr) 8px;align-items:center;gap:10px;min-height:42px;padding:8px 0;border-bottom:1px solid var(--line2);color:var(--muted);font:500 11px/1.25 "Inter",sans-serif;text-decoration:none}
.room-index-list a:hover,.room-index-list a:focus-visible,.room-index-list a.is-active{color:var(--linen);outline:0}
.room-index-list a[hidden]{display:none}
.status-dot{display:inline-block;width:7px;height:7px;border-radius:50%;box-shadow:0 0 0 3px color-mix(in srgb,currentColor 15%,transparent)}
.status-source_ready{color:var(--ready);background:var(--ready)}
.status-mapping_partial{color:var(--partial);background:var(--partial)}
.status-source_blocked{color:var(--blocked);background:var(--blocked)}
.index-key{margin-top:26px;padding-top:18px;border-top:1px solid var(--line)}
.index-key p{display:grid;grid-template-columns:8px 1fr;gap:10px;margin:0 0 11px;color:var(--muted);font:500 9px/1.35 "Inter",sans-serif;letter-spacing:.02em}

.map-content{min-width:0}
.plain-words{padding:0 0 78px;border-bottom:1px solid var(--line)}
.plain-words h2,.map-section h2,.method h2{margin:12px 0 25px;font-size:clamp(43px,5.5vw,78px);font-weight:500;line-height:.94;letter-spacing:-.035em}
.plain-grid{display:grid;grid-template-columns:1fr 1fr;gap:30px}
.plain-grid p{margin:0;padding:23px 0;border-top:1px solid var(--line);color:var(--muted)}
.plain-grid b{color:var(--linen)}
.holder-warning{margin:30px 0 0;padding:19px 22px;border-left:2px solid var(--bronze);background:var(--panel);color:var(--muted);font-size:14px}
.holder-warning b{color:var(--linen)}
.status-guide{margin-top:58px;padding-top:48px;border-top:1px solid var(--line)}
.status-guide-head{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(240px,.65fr);gap:14px 48px;align-items:end}
.status-guide-head .section-kicker{grid-column:1/-1;margin:0}
.status-guide-head h3{margin:0;font-size:clamp(31px,4vw,48px);font-weight:500;line-height:1;letter-spacing:-.025em}
.status-guide-head>p:last-child{margin:0;color:var(--muted);font-size:14px}
.status-guide-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:28px}
.status-card{--state:var(--bronze);min-width:0;padding:22px 20px;border:1px solid var(--line);border-top:2px solid var(--state);background:var(--panel)}
.status-card-source_ready{--state:var(--ready)}
.status-card-mapping_partial{--state:var(--partial)}
.status-card-source_blocked{--state:var(--blocked)}
.status-card-head{display:grid;grid-template-columns:8px minmax(0,1fr) auto;gap:10px;align-items:center}
.status-card-head h3{margin:0;color:var(--linen);font:600 10px/1.25 "Inter",sans-serif;letter-spacing:.09em;text-transform:uppercase}
.status-card-head>strong{color:var(--state);font:500 24px/1 "Cormorant Garamond",serif}
.status-card>p{margin:17px 0 0;color:var(--muted);font-size:13px;line-height:1.55}
.status-card .status-example{padding-top:15px;border-top:1px solid var(--line2)}
.status-card .status-example b{display:block;margin-bottom:5px;color:var(--state);font:600 8px/1 "Inter",sans-serif;letter-spacing:.12em;text-transform:uppercase}
.working-glossary{margin-top:16px;border:1px solid var(--line);background:var(--panel)}
.working-glossary summary{display:flex;justify-content:space-between;gap:20px;align-items:center;min-height:58px;padding:14px 20px;color:var(--linen);font:600 10px/1.3 "Inter",sans-serif;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;list-style-position:inside}
.working-glossary summary::marker{color:var(--bronze)}
.working-glossary summary span{color:var(--muted);font-size:8px;white-space:nowrap}
.working-glossary summary:hover{background:var(--panel2)}
.working-glossary summary:focus-visible{outline:2px solid var(--bronze);outline-offset:3px}
.working-glossary dl{display:grid;grid-template-columns:1fr 1fr;margin:0;padding:0 20px 20px}
.glossary-item{display:grid;grid-template-columns:minmax(110px,.38fr) minmax(0,1fr);gap:15px;padding:17px 0;border-top:1px solid var(--line2)}
.glossary-item:nth-child(odd){padding-right:18px}.glossary-item:nth-child(even){padding-left:18px;border-left:1px solid var(--line2)}
.glossary-item dt{color:var(--bronze);font:600 9px/1.35 "Inter",sans-serif;letter-spacing:.08em;text-transform:uppercase}
.glossary-item dd{margin:0;color:var(--muted);font-size:12px;line-height:1.5}
.glossary-item dd span{display:block;margin-top:5px;color:var(--shell)}
.glossary-item dd b{color:var(--linen);font-weight:600}

.gloss-trigger{font-style:inherit;color:inherit;text-decoration-line:underline;text-decoration-style:dotted;text-decoration-color:color-mix(in srgb,var(--bronze) 72%,transparent);text-decoration-thickness:1px;text-underline-offset:3px;cursor:help}
.gloss-trigger:hover{color:var(--linen);text-decoration-color:var(--bronze)}
.gloss-trigger:focus-visible{border-radius:2px;outline:2px solid var(--bronze);outline-offset:3px}
.gloss-control{text-decoration-line:underline;text-decoration-style:dotted;text-decoration-color:color-mix(in srgb,var(--bronze) 70%,transparent);text-underline-offset:3px}
.gloss-popover{position:fixed;z-index:240;width:min(340px,calc(100vw - 28px));padding:13px 15px;border:1px solid var(--bronze);background:var(--obsidian);box-shadow:var(--shadow);color:var(--shell);font:500 12px/1.5 "Inter",sans-serif;letter-spacing:0;text-align:left;text-transform:none;pointer-events:none}
.gloss-popover b{display:block;margin-bottom:4px;color:var(--bronze);font:600 9px/1.2 "Inter",sans-serif;letter-spacing:.1em;text-transform:uppercase}
.assistive-definitions{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);clip-path:inset(50%);white-space:nowrap;border:0}

.map-section{padding:105px 0 10px;scroll-margin-top:170px}
.map-section-head{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(280px,.55fr);gap:50px;align-items:end;margin-bottom:32px}
.map-section-head h2{margin-bottom:0}
.map-section-head>p{margin:0 0 4px;color:var(--muted);font-size:14px}
.table-shell{position:relative;max-width:100%;overflow:auto;border:1px solid var(--table-line);background:var(--panel);box-shadow:var(--shadow);scrollbar-width:thin;scrollbar-color:var(--bronze) var(--panel2);overscroll-behavior-inline:contain}
.table-shell:focus-visible{outline:2px solid var(--bronze);outline-offset:4px}
.table-shell::after{content:"";position:sticky;display:block;pointer-events:none;right:0;bottom:0;width:58px;height:0;box-shadow:-28px 0 32px 16px var(--panel)}
table{width:max(1760px,100%);border-collapse:separate;border-spacing:0;text-align:left;font-size:13px;line-height:1.5}
caption{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
th{position:sticky;top:0;z-index:4;min-width:210px;padding:17px 18px;border-right:1px solid var(--table-line);border-bottom:1px solid var(--bronze);background:var(--obsidian);color:var(--bronze);font:600 9px/1.25 "Inter",sans-serif;letter-spacing:.11em;text-transform:uppercase;vertical-align:bottom}
th:first-child{left:0;z-index:6;min-width:190px}
td{min-width:210px;padding:22px 18px;border-right:1px solid var(--table-line);border-bottom:1px solid var(--table-line);color:var(--muted);vertical-align:top;background:var(--panel)}
.cell-value{display:block;min-width:0}
td:first-child{position:sticky;left:0;z-index:3;min-width:190px;background:var(--panel2);box-shadow:12px 0 28px rgba(0,0,0,.12)}
tr:last-child td{border-bottom:0}
tr[id]{scroll-margin-top:170px}
th:last-child,td:last-child{border-right:0}
tr[hidden]{display:none}
.room-name{display:block;color:var(--linen);font:500 19px/1.06 "Cormorant Garamond",serif;text-decoration:none}
.room-name:hover,.room-name:focus-visible{color:var(--bronze);outline:0}
.room-domain{display:block;margin-top:9px;color:var(--bronze);font:600 8px/1.3 "Inter",sans-serif;letter-spacing:.12em;text-transform:uppercase}
.room-evidence-date{display:block;margin-top:5px;color:var(--muted);font:600 8px/1.3 "Inter",sans-serif;letter-spacing:.08em;text-transform:uppercase}
.status-stack{display:grid;justify-items:start;gap:9px}
.status{display:inline-block;padding:7px 9px;border:1px solid currentColor;background:transparent;font:600 9px/1 "Inter",sans-serif;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}
.status-note{max-width:190px;color:var(--muted);font:500 10px/1.45 "Inter",sans-serif;letter-spacing:0;text-transform:none}
.status-source_ready{background:color-mix(in srgb,var(--ready) 9%,transparent)}
.status-mapping_partial{background:color-mix(in srgb,var(--partial) 9%,transparent)}
.status-source_blocked{background:color-mix(in srgb,var(--blocked) 8%,transparent)}

.method{padding:110px 0 0;scroll-margin-top:170px}
.method .machine-record{margin-top:34px}
.method a{color:var(--linen)}
.empty-state{margin:0 auto 100px;padding:44px;border:1px solid var(--line);background:var(--panel);color:var(--muted);text-align:center}

@media(max-width:1180px){
  .control-deck-inner{grid-template-columns:1fr 1.5fr}.result-count{display:none}
  .map-layout{grid-template-columns:175px minmax(0,1fr);gap:36px}
  .room-index-list a{font-size:10px}
}

@media(max-width:900px){
  html{scroll-padding-top:104px}
  .map-hero-grid{min-height:580px;grid-template-columns:1fr;padding-top:78px;padding-bottom:55px}
  .hero-verdict{display:grid;grid-template-columns:1fr 1fr 1fr;gap:0 18px;padding-top:18px}
  .hero-verdict-label,.hero-verdict a{grid-column:1/-1}.hero-verdict-line{font-size:12px}
  .control-deck{position:relative;top:auto}.control-deck-inner{grid-template-columns:1fr;gap:15px;align-items:start;padding-top:20px;padding-bottom:20px}
  .map-layout{grid-template-columns:1fr;padding-top:52px}.room-index{position:relative;top:auto;max-height:none;overflow:visible;padding:0 0 28px;border-bottom:1px solid var(--line)}
  .room-index-list{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:24px}.index-key{display:none}
  .status-guide-head{grid-template-columns:1fr}.status-guide-grid{grid-template-columns:1fr}
  .protocol-head,.leaderboard-head,.mission-head{grid-template-columns:1fr}.protocol-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stage-legend{grid-template-columns:repeat(2,minmax(0,1fr))}
  .mission-grid{grid-template-columns:1fr}
  .map-section,.method{scroll-margin-top:64px}.map-section-head{grid-template-columns:1fr;gap:15px}
}

@media(max-width:700px){
  .map-rail-inner,.map-layout{width:min(100% - 28px,1420px)}
  .rail-status{display:none}
  .map-hero-grid{width:min(100% - 28px,1120px);min-height:560px;padding-top:66px}
  .map-hero h1{font-size:clamp(66px,21vw,104px)}
  .map-hero .deck{font-size:24px}
  .hero-verdict{grid-template-columns:1fr;padding-top:12px}.hero-verdict-line{padding:8px 0}.hero-verdict a{margin-top:18px}
  .control-deck-inner{width:min(100% - 28px,1120px)}
  .filter-control{display:grid;grid-template-columns:repeat(2,1fr)}.filter-control legend{grid-column:1/-1}.filter-button{width:100%}
  .room-index-list{grid-template-columns:1fr}
  .plain-grid{grid-template-columns:1fr;gap:0}
  .protocol-overview,.leaderboard-section,.mission-section{padding-top:78px;padding-bottom:82px}.protocol-head h2,.leaderboard-head h2,.mission-head h2{font-size:clamp(45px,14vw,66px)}
  .protocol-rule{grid-template-columns:1fr}.protocol-grid{grid-template-columns:1fr}.protocol-card,.protocol-card:last-child{grid-column:auto;min-height:0}.protocol-index{margin-bottom:32px}.stage-legend{grid-template-columns:repeat(2,minmax(0,1fr))}
  .leaderboard{overflow:visible;border:0;background:transparent;box-shadow:none}.leaderboard-columns{display:none}.leaderboard-rows{display:grid;gap:14px}.leader-row{min-width:0;min-height:0;grid-template-columns:minmax(0,1fr) 145px;border:1px solid var(--line);box-shadow:var(--shadow)}
  .leader-room{grid-column:1;grid-row:1}.leader-connection{grid-column:2;grid-row:1;padding-left:12px;padding-right:10px}.leader-room h3{font-size:27px}.leader-cell-label{display:block!important;margin:0 0 7px!important}.leader-connection>span{font-size:9px}
  .leader-stages{grid-column:1/-1;grid-row:2;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--line2);border-left:0}.leader-stage{min-height:64px;padding:13px 3px;border-bottom:1px solid var(--line2)}.leader-stage:nth-child(n+4){border-bottom:0}.leader-stage-name{display:block;margin-bottom:8px;color:var(--muted);font:600 6px/1.15 "Inter",sans-serif;letter-spacing:.04em;text-align:center;text-transform:uppercase}.leader-stage{flex-direction:column}.leader-stage .stage-state-label{display:none}
  .leader-gate{grid-column:1/-1;grid-row:3;border-top:1px solid var(--line2);border-left:0;padding:17px 16px}
  .mission-card h3{font-size:29px}.mission-stages{padding-left:8px;padding-right:8px}.mission-result>p:first-child{font-size:20px}
  .status-guide{margin-top:42px;padding-top:36px}.status-guide-grid{gap:12px}.status-card{padding:20px 17px}
  .working-glossary summary{padding-left:16px;padding-right:16px}.working-glossary dl{grid-template-columns:1fr;padding:0 16px 16px}.glossary-item,.glossary-item:nth-child(odd),.glossary-item:nth-child(even){grid-template-columns:1fr;padding:15px 0;border-left:0}.glossary-item dt{margin-bottom:-7px}
  .plain-words h2,.map-section h2,.method h2{font-size:clamp(43px,14vw,64px)}
  .map-section{padding-top:78px}.map-section-head{margin-bottom:23px}
  .table-shell{border:0;overflow:visible;background:transparent;box-shadow:none}
  .table-shell::after{display:none}
  table,tbody,tr{width:100%;max-width:100%;box-sizing:border-box}
  table{display:block;font-size:14px}thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}tbody{display:grid;gap:18px}
  tr{display:block;border:1px solid var(--table-line);background:var(--panel);box-shadow:var(--shadow)}
  tr[id]{scroll-margin-top:64px}
  tr[hidden]{display:none}
  td,td:first-child{position:relative;left:auto;display:grid;width:100%;box-sizing:border-box;grid-template-columns:minmax(94px,.35fr) minmax(0,1fr);gap:15px;min-width:0;padding:15px 16px;border:0;border-bottom:1px solid var(--table-line);background:transparent;box-shadow:none}
  .cell-value{overflow-wrap:break-word}
  td:last-child{border-bottom:0}
  td::before{content:attr(data-label);color:var(--bronze);font:600 8px/1.35 "Inter",sans-serif;letter-spacing:.1em;text-transform:uppercase}
  td:first-child{display:block;padding:22px 16px;background:var(--panel2)}
  td:first-child::before{display:none}
  .room-name{font-size:28px}.room-domain{margin-top:7px}
  .status-stack,.status{white-space:normal;text-align:left;justify-self:start}
  .machine-record{padding:0 18px}
  footer{gap:12px}
}

@media(max-width:360px){td,td:first-child{padding-left:13px;padding-right:13px}td{grid-template-columns:82px minmax(0,1fr);gap:10px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
@media print{.map-rail,.control-deck,.room-index,.map-hero>canvas,.topbar,.working-glossary,.gloss-popover,.assistive-definitions{display:none!important}.map-hero-grid{min-height:0;padding:30px 0}.map-layout{display:block;width:100%;padding:0}.map-section{break-before:page;padding-top:20px}.table-shell{overflow:visible;box-shadow:none}table{width:100%;font-size:8px}th,td{min-width:0;padding:7px}.map-content{width:100%}}
/* Focus must not be signalled by colour alone: the rules above give
   :focus-visible the same treatment as :hover, so a keyboard user cannot tell
   the two apart. These restore a real ring using the idiom .table-shell
   already sets in this file. Declared after those rules so they win. */
.map-rail a:focus-visible{outline:2px solid var(--bronze);outline-offset:-4px}
.filter-button:focus-visible{outline:2px solid var(--bronze);outline-offset:3px}
.room-index-list a:focus-visible{outline:2px solid var(--bronze);outline-offset:2px}
.room-name:focus-visible{outline:2px solid var(--bronze);outline-offset:3px}
