@font-face{font-family:'Bebas Neue';font-style:normal;font-weight:400;font-display:swap;src:url(/shell/fonts/bebas-neue-400.woff2) format('woff2')}@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:400;font-display:swap;src:url(/shell/fonts/plex-mono-400.woff2) format('woff2')}@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:600;font-display:swap;src:url(/shell/fonts/plex-mono-600.woff2) format('woff2')}@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:400;font-display:swap;src:url(/shell/fonts/plex-sans-400.woff2) format('woff2')}@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:600;font-display:swap;src:url(/shell/fonts/plex-sans-600.woff2) format('woff2')}@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:700;font-display:swap;src:url(/shell/fonts/plex-sans-700.woff2) format('woff2')}.panel:focus{outline:none}.tab[aria-selected=true] .micro{color:#233029}.seal b{font-size:36px}
*{box-sizing:border-box} :root{--bg:#080e12;--panel:#101b22;--line:#35444a;--gold:#e3be5a;--gold-dim:#796638;--green:#44d59b;--red:#f17676;--text:#edf0e9;--muted:#aebbbd;--mono:'IBM Plex Mono',ui-monospace,monospace;--display:'Bebas Neue','Arial Narrow',sans-serif;--body:'IBM Plex Sans',Arial,sans-serif} html{background:var(--bg);color:var(--text);font-family:var(--body);line-height:1.55}body{margin:0;background:radial-gradient(ellipse at 45% 0,#18252a 0,transparent 60%)}button,input,select,textarea{font:inherit}button,a,input,select,textarea,summary{outline-offset:4px}button{cursor:pointer}button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--gold)}a{color:var(--gold)}.wrap{max-width:1120px;margin:auto;padding:0 24px 28px}.topnav{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--gold-dim);padding:17px 0;gap:14px}.brand{font:700 23px var(--mono);color:var(--gold);letter-spacing:-1px}.brand sup{font-size:12px}.brandline{display:flex;align-items:center;gap:22px}.eyebrow,.micro{font:10px var(--mono);letter-spacing:.08em;text-transform:uppercase}.eyebrow{color:var(--gold)}.micro{color:var(--muted)}.actions{display:flex;gap:8px;flex-wrap:wrap}.btn{border:1px solid var(--line);background:#142129;color:var(--text);padding:10px 13px;border-radius:4px;text-decoration:none;font:11px var(--mono);display:inline-flex;align-items:center;justify-content:center;gap:8px}.btn:hover{border-color:var(--gold);background:#223039}.btn.gold{background:var(--gold);border-color:var(--gold);color:#172025;font-weight:700}.btn.ghost{background:transparent;border-color:var(--gold-dim);color:var(--gold)}.identity{display:flex;justify-content:space-between;align-items:center;margin:24px 0 20px;gap:18px}.identity h1{font:clamp(32px,4.8vw,53px)/1.08 var(--display);letter-spacing:.025em;margin:5px 0}.subtitle{font-size:16px;color:var(--muted);margin:0 0 9px}.seal{border:1px solid var(--gold-dim);border-radius:50%;width:92px;height:92px;display:flex;flex-direction:column;align-items:center;justify-content:center;flex-shrink:0;box-shadow:inset 0 0 0 5px var(--bg),inset 0 0 0 6px #6b5a31;color:var(--gold)}.seal b{font:36px var(--display);line-height:1}.seal small{font:8px var(--mono)}.tabs{display:flex;gap:3px;overflow-x:auto;border-bottom:1px solid var(--gold-dim);padding:0 0 7px;margin-bottom:16px;scrollbar-width:thin;scrollbar-color:var(--gold-dim) var(--bg)}.tab{flex:1;white-space:nowrap;border:1px solid var(--line);border-radius:4px;background:#111b23;color:var(--muted);font:11px var(--mono);padding:12px 10px}.tab[aria-selected=true]{background:var(--gold);color:#152028;border-color:var(--gold);font-weight:700}.tab:hover{border-color:var(--gold)}[hidden]{display:none!important}.sectionhead{display:flex;justify-content:space-between;color:var(--gold);font:12px var(--mono);letter-spacing:.06em;text-transform:uppercase;margin:14px 0}.panel{animation:reveal .2s ease}.result{display:flex;gap:17px;align-items:center;padding:17px 20px;border:1px solid var(--green);border-left:5px solid var(--green);background:linear-gradient(110deg,#12382c,#0b201c);border-radius:5px}.result .bigicon{font-size:30px;color:var(--green)}.result h2{font:27px/1.15 var(--display);letter-spacing:.045em;color:var(--green);margin:3px 0}.result p{margin:3px 0;font-size:13px}.result small{color:var(--muted);font-size:11px}.brief{border:1px solid var(--gold-dim);border-radius:5px;margin:12px 0;padding:13px 16px;background:#1a211e}.label{font:12px var(--display);letter-spacing:.1em;color:var(--gold);margin-bottom:8px}.briefgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.briefgrid>div{display:flex;gap:10px;border-right:1px solid var(--line);padding-right:10px;font-size:12px;line-height:1.45}.briefgrid>div:last-child{border:0}.num{border:1px solid var(--gold-dim);border-radius:50%;color:var(--gold);width:27px;height:27px;display:grid;place-items:center;flex-shrink:0;font:14px var(--mono)}.brief strong{display:block;font:11px var(--mono);color:var(--gold);margin-bottom:3px}.hero{margin:12px 0 16px;position:relative;border:1px solid #665837;border-radius:5px;overflow:hidden;height:200px}.hero img{width:100%;height:100%;object-fit:cover;object-position:center 55%}.hero:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#080e1299,transparent 55%);pointer-events:none}.hero figcaption{position:absolute;bottom:9px;right:10px;font:8px var(--mono);color:#d3d8d6;background:#081016d9;border:1px solid #566367;padding:5px;z-index:1}.hero .caption{position:absolute;left:18px;bottom:17px;color:#f8ebcd;z-index:1;font:21px var(--display);letter-spacing:.08em}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.card{border:1px solid var(--line);background:linear-gradient(125deg,#15222a,#10191f);border-radius:5px;padding:17px;margin-bottom:12px;min-width:0}.card h2,.card h3{margin:0 0 10px;font:23px/1.1 var(--display);letter-spacing:.025em}.card p{font-size:13px;margin:8px 0;color:var(--muted)}.green{--accent:var(--green);border-color:#238361;background:linear-gradient(130deg,#102b25,#101c20)}.red{--accent:var(--red);border-color:#a04747;background:linear-gradient(130deg,#321b20,#171a21)}.golden{--accent:var(--gold);border-color:var(--gold-dim)}.cardtitle{display:flex;align-items:center;gap:9px;font:17px var(--display);letter-spacing:.05em;color:var(--accent,var(--gold));margin-bottom:11px}.loot{width:100%;display:grid;grid-template-columns:24px 1fr auto 12px;gap:9px;align-items:center;text-align:left;margin:5px 0;padding:10px 9px;border:1px solid #405253;border-radius:4px;background:#0b151ac2;color:var(--text);font-size:12px}.loot:hover{border-color:var(--accent,var(--gold));background:#253235;transform:translateX(2px)}.loot b{font:9px var(--mono);text-transform:uppercase;color:var(--accent,var(--gold));letter-spacing:.04em}.ico{font-size:19px;color:var(--accent,var(--gold))}.arrow{color:var(--muted)}.feature{display:flex;align-items:center;gap:14px;border-top:1px solid #466058;margin-top:12px;padding-top:12px}.feature .ico{font-size:35px}.feature b{font:20px var(--display);color:var(--accent,var(--gold))}.feature p{font-size:12px;margin:0}.note{border-left:3px solid var(--gold);background:#262315;padding:12px 15px;font-size:12px;color:#e3d9bc;margin:0 0 12px}.note.rednote{border-color:var(--red);background:#2a1920}.note strong{color:var(--gold)}.note p{margin:5px 0}.source{font:10px var(--mono);text-decoration:none;white-space:nowrap;padding:2px 4px;color:var(--gold);border-bottom:1px solid var(--gold-dim)}.compact{padding:12px 15px}.impact{display:flex;gap:18px;align-items:center;justify-content:space-between;border:1px solid var(--gold-dim);background:#1d211b;border-radius:5px;padding:13px 17px;margin-bottom:12px}.impactscore{font:42px/1 var(--display);color:var(--gold)}.impactscore small{font:11px var(--mono);color:var(--muted)}.impact p{font-size:12px;color:var(--muted);margin:4px 0}.impact h3{font:19px var(--display);margin:0;letter-spacing:.06em}.next{width:100%;justify-content:space-between;padding:15px 18px;margin:3px 0 13px;font-size:12px}.next small{display:block;font:10px var(--mono);font-weight:400;margin-top:5px}.tag{display:inline-block;padding:4px 7px;border:1px solid var(--line);border-radius:3px;font:9px var(--mono);color:var(--muted)}.tag.g{color:var(--green);border-color:#2a7258}.tag.r{color:var(--red);border-color:#8d4848}.tag.y{color:var(--gold);border-color:var(--gold-dim)}.powerstrip{display:grid;grid-template-columns:110px 1fr 285px;align-items:center;gap:22px}.tier{text-align:center;border-right:1px solid var(--line)}.tier b{display:block;font:58px var(--display);color:var(--gold)}.powerbig{font:68px/1 var(--display)}.powerbig small{font:14px var(--mono);color:var(--muted)}.radar{width:100%;max-width:285px;height:auto}.stat{margin:13px 0}.statline{display:flex;justify-content:space-between;gap:15px;font-size:12px;margin-bottom:5px}.statline b{color:var(--accent,var(--gold));font-family:var(--mono)}.track{height:8px;border-radius:2px;background:#070e12;overflow:hidden}.fill{height:100%;background:var(--accent,var(--gold))}.stat .micro{display:block;margin-top:6px;font-size:9px}.duelname{font:29px var(--display);margin:5px 0}.timeline{position:relative}.event{display:grid;grid-template-columns:110px 1fr;gap:18px;padding:0 0 22px}.event time{color:var(--gold);font:11px var(--mono);padding-top:3px;text-align:right}.event>div{border-left:1px solid var(--gold-dim);padding-left:19px;position:relative}.event>div:before{content:'';position:absolute;left:-5px;top:5px;width:9px;height:9px;background:var(--gold);border-radius:50%}.event h3{font:20px var(--display);margin:0}.event p{margin:4px 0;font-size:13px;color:var(--muted)}.tablewrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:12px}th{text-align:left;color:var(--gold);font:10px var(--mono);text-transform:uppercase;background:#0a131a}td,th{padding:12px;border:1px solid var(--line);vertical-align:top}td small{display:block;color:var(--muted);margin-top:4px}.tools{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.field{width:100%;background:#081219;color:var(--text);border:1px solid var(--line);padding:12px;border-radius:4px}.field:focus{border-color:var(--gold)}label{display:block;font:11px var(--mono);color:var(--gold);margin:10px 0 6px}.evidencecard{padding:14px;border:1px solid var(--line);border-radius:4px;margin-bottom:9px;background:#101c23}.evidencecard h3{font:19px var(--display);margin:0 0 4px}.evidencecard p{font-size:12px;color:var(--muted);margin:5px 0}.sourceheading{display:flex;justify-content:space-between;gap:10px}.clausegrid{display:grid;grid-template-columns:1fr 1fr;gap:8px}details{border:1px solid var(--line);padding:12px;border-radius:4px;margin:8px 0;background:#0d1820}summary{cursor:pointer;color:var(--gold);font:12px var(--mono)}details p{font-size:12px;color:var(--muted)}blockquote{font:17px/1.6 Georgia,serif;color:#eddfc1;border-left:2px solid var(--gold);padding:12px 17px;background:#1d211f;margin:15px 0}.modal{width:min(690px,calc(100% - 30px));max-height:90vh;background:#0c171e;color:var(--text);border:1px solid var(--gold-dim);border-radius:8px;padding:24px;box-shadow:0 25px 100px #000b}.modal::backdrop{background:#000b;backdrop-filter:blur(3px)}.modal h2{font:30px var(--display);margin:10px 0}.modal p{font-size:14px;color:var(--muted)}.close{float:right}.lineage-root{padding:20px;background:linear-gradient(120deg,#2b281a,#15241e);border:1px solid var(--gold);border-radius:5px;text-align:center}.lineage-root h2{font:30px var(--display);margin:7px}.lineage-path{display:grid;grid-template-columns:1fr 34px 1fr;gap:8px;align-items:center;margin:12px 0}.lineage-path .card{margin:0}.lineage-path .arrow{text-align:center;color:var(--gold);font-size:22px}.branch{border-left:2px solid var(--gold-dim);margin:12px 0 12px 16px;padding:0 0 0 20px}.branch .card{position:relative}.branch .card:before{content:'';position:absolute;left:-21px;top:24px;width:20px;height:1px;background:var(--gold-dim)}.routechoice[aria-pressed=true]{color:var(--bg);background:var(--gold)}.mapboard{padding:22px;background:radial-gradient(ellipse at 45% 50%,#213631,#0b1821);border:1px solid var(--line);border-radius:5px;margin:12px 0}.mapnode{border:1px solid var(--gold-dim);padding:18px;border-radius:5px;background:#0a121bbf;flex:1}.mapnode b{font:24px var(--display);color:var(--gold);display:block}.maproute{display:flex;align-items:center;gap:20px}.maproute .arrow{color:var(--gold);font-size:28px}.mapnode p{font-size:12px;color:var(--muted)}.ledgerrow{display:flex;gap:15px;padding:14px 0;border-bottom:1px solid var(--line)}.ledgerrow time{font:10px var(--mono);color:var(--gold);min-width:85px}.ledgerrow p{font-size:13px;color:var(--muted);margin:0}.footer{border-top:1px solid var(--gold-dim);margin-top:20px;padding-top:15px;display:flex;justify-content:space-between;align-items:center;gap:20px}.footer p{font:9px var(--mono);color:var(--muted);margin:0}.visuallyhidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.status{font:11px var(--mono);color:var(--green);padding:9px 0;min-height:20px}.axisrow{display:grid;grid-template-columns:140px 1fr;gap:12px;border-bottom:1px solid var(--line);padding:10px 0;font-size:12px}.axisrow b{color:var(--gold)}code{font:11px var(--mono);overflow-wrap:anywhere}.pills{display:flex;gap:6px;flex-wrap:wrap}.evidence-selected{outline:2px solid var(--gold)}@keyframes reveal{from{opacity:.5;transform:translateY(3px)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){*{animation:none!important;scroll-behavior:auto!important;transition:none!important}}@media(max-width:760px){.wrap{padding:0 14px 20px}.brandline{gap:12px}.brandline .eyebrow{font-size:8px}.topnav .btn{font-size:9px;padding:8px}.identity{margin:20px 0 15px}.identity h1{font-size:37px}.subtitle{font-size:13px}.seal{width:67px;height:67px}.seal b{font-size:28px}.seal small{font-size:6px}.tabs{margin-left:-2px;margin-right:-2px}.tab{padding:12px 10px;min-height:43px}.grid2,.grid3,.clausegrid{grid-template-columns:1fr}.briefgrid{gap:10px}.briefgrid>div{display:block;font-size:11px;padding-right:8px}.briefgrid .num{margin-bottom:8px}.briefgrid strong{font-size:9px}.result{padding:14px 12px;gap:10px}.result h2{font-size:24px}.result .bigicon{font-size:25px}.hero{height:155px}.hero .caption{font-size:16px;bottom:33px;left:12px}.hero figcaption{font-size:7px}.loot{padding:11px 8px}.impact{flex-wrap:wrap;gap:10px}.impact>div:nth-child(2){flex:1}.powerstrip{grid-template-columns:75px 1fr;gap:14px}.powerstrip .radar{grid-column:1/-1;justify-self:center}.event{grid-template-columns:75px 1fr;gap:12px}.event time{font-size:9px}.event>div{padding-left:14px}.lineage-path{grid-template-columns:1fr}.lineage-path .arrow{transform:rotate(90deg)}.maproute{flex-direction:column;align-items:stretch}.maproute>.arrow{transform:rotate(90deg);text-align:center}.footer{align-items:flex-start}.footer .brand{font-size:18px}.footer p{font-size:8px}.sectionhead .micro{display:none}.axisrow{grid-template-columns:100px 1fr}.modal{padding:18px}}@media print{.tabs,.actions,.next,.btn,.tools,.hero,dialog{display:none!important}.panel[hidden]{display:block!important}.panel{break-before:page}.panel:first-of-type{break-before:auto}body,html{background:white;color:black}.card,.note,.result{background:white;color:black}p,td,th,small{color:black!important}}

/* ===== CIVIC3 SCORE BARS (surgical add-on) ===== */
#c3-scoredash{display:flex;flex-direction:column;gap:18px;margin-top:4px}
.c3-sbar{display:flex;flex-direction:column;gap:6px}
.c3-sbar-top{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.c3-sbar-top span:first-child{font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;opacity:.82;font-weight:600}
.c3-sbar-top .b{font-size:1.5rem;font-weight:800;line-height:1;font-variant-numeric:tabular-nums}
.c3-sbar-track{position:relative;height:13px;border-radius:999px;background:rgba(255,255,255,.09);overflow:hidden;box-shadow:inset 0 0 0 1px rgba(255,255,255,.06)}
.c3-sbar-fill{position:absolute;top:0;left:0;bottom:0;border-radius:999px;box-shadow:0 0 10px -2px currentColor}
.c3-sbar-sub{font-size:.82rem;line-height:1.4;opacity:.72}
.c3-pair{display:grid;grid-template-columns:1fr 1fr;gap:22px}
@media(max-width:560px){.c3-pair{grid-template-columns:1fr;gap:18px}}
.c3-eff{position:relative;height:15px;border-radius:999px;overflow:hidden;box-shadow:inset 0 0 0 1px rgba(255,255,255,.08);
  background:linear-gradient(90deg,#c0392b 0%,#d7784a 26%,#5c5c5c 50%,#5aa66a 74%,#2e9e57 100%)}
.c3-eff-mark{position:absolute;top:-3px;bottom:-3px;width:3px;background:#fff;border-radius:2px;transform:translateX(-50%);
  box-shadow:0 0 0 1px rgba(0,0,0,.55),0 0 8px rgba(255,255,255,.55)}
.c3-eff-scale{display:flex;justify-content:space-between;font-size:.68rem;letter-spacing:.04em;text-transform:uppercase;opacity:.6;margin-top:2px}
/* ===== end score bars ===== */

/* Doctrine-only additions on the Brown v. Board chassis. */
.cb4-panel:not([hidden]){display:block}.cb4-panel[hidden]{display:none}.gategrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.gategrid label{display:flex;gap:9px;align-items:center;border:1px solid var(--line,#364047);border-radius:8px;padding:12px}.gategrid input{accent-color:#dec06b}.activation{border:1px solid #95783b;background:#211d13;border-radius:9px;padding:16px;margin-top:12px}.barlabel{display:flex;justify-content:space-between;gap:12px}.qualtrack{height:11px;background:#252d31;border:1px solid #4b5151;border-radius:20px;overflow:hidden;margin:7px 0 12px}.qualtrack span{display:block;height:100%;background:#79c59b}.qualtrack.red span{background:#d88779}.qualtrack.gold span{background:#d5b466}.lineage-list{display:grid;gap:12px}.lineage-list article{border-left:3px solid #9d8252;background:#181c1c;padding:12px 16px;border-radius:4px}.lineage-list article strong{color:#e5c983}.twoway{display:flex;height:30px;border-radius:16px;overflow:hidden;border:1px solid #777}.twoway .citizen{background:#4aa77c}.twoway .institution{background:#a95d55}.quiet{color:#b2b6b6;font-size:.9em}.radar-note{font-size:.84em;color:#b2b6b6}.score-tag{border:1px solid #a99154;color:#e0c886;border-radius:4px;padding:3px 7px;font:10px monospace}.statusgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.statusgrid .card{margin:0}.sourceheading{display:flex;justify-content:space-between;gap:14px}.sourceheading h3{margin:5px 0}.methodrow{display:grid;grid-template-columns:140px 1fr 100px;align-items:center;gap:12px;margin:13px 0}.methodrow .qualtrack{margin:0}.methodrow b{text-align:right}.legend-number{font-size:2em;color:#e4bf6d}.in-page-link{color:#e4bf6d}.cb4-tab[aria-selected="true"]{border-bottom:2px solid #e3be6c}.cb4-panel .card{margin-bottom:16px}@media(max-width:700px){.gategrid,.statusgrid{grid-template-columns:1fr}.methodrow{grid-template-columns:1fr 1fr}.methodrow .qualtrack{grid-column:1/-1;grid-row:2}.methodrow b{grid-column:2;grid-row:1}}

/* ===== Civic Card Standard 2.0 · shell additions ===== */
a.brand{text-decoration:none}
.sitenav{display:flex;gap:14px;flex-wrap:wrap;margin-top:8px}
.sitenav a{font:10px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);text-decoration:none;border-bottom:1px solid transparent}
.sitenav a:hover{color:var(--gold);border-color:var(--gold-dim)}
.cardbanner{margin:20px 0;border:1px dashed #2a3a30;border-radius:10px;overflow:hidden;background:#0f130f;min-height:66px;display:flex;align-items:center;justify-content:center}
#bannerLink{display:block;width:100%}
#bannerImg{width:100%;display:block}
#bannerLabel{font:10px var(--mono);letter-spacing:.12em;color:#5A7088;text-transform:uppercase;padding:16px;text-align:center}
/* States: what a rule IS, never how much. No length, so nothing reads as a measured percentage. */
.state{display:inline-flex;align-items:center;gap:6px;font:700 9px var(--mono);letter-spacing:.08em;text-transform:uppercase;padding:4px 9px;border-radius:999px;border:1px solid;white-space:nowrap}
.state:before{content:'';width:7px;height:7px;border-radius:50%;background:currentColor}
.s-active{color:var(--green);border-color:#2a7258;background:#0f2a22}
.s-conditional{color:var(--gold);border-color:var(--gold-dim);background:#231f12}
.s-conditional:before{background:linear-gradient(90deg,currentColor 50%,transparent 50%);border:1px solid currentColor;width:5px;height:5px}
.s-tested{color:#d5b466;border-color:#796638;border-style:dashed;background:#1d1b12}
.s-tested:before{background:transparent;border:1px solid currentColor;width:5px;height:5px}
.s-overruled{color:var(--red);border-color:#8d4848;background:#2a1719;text-decoration:line-through;text-decoration-thickness:1px}
.s-overruled:before{border-radius:1px;transform:rotate(45deg)}
.s-unmeasured{color:var(--muted);border-color:var(--line);border-style:dashed;background:transparent}
.s-unmeasured:before{background:transparent;border:1px dashed currentColor;width:5px;height:5px}
.staterow .statline{align-items:center}
.methodrow.staterow{grid-template-columns:170px 1fr auto}
.methodrow.staterow .micro{text-transform:none;letter-spacing:0;font-size:11px}
@media(max-width:700px){.methodrow.staterow{grid-template-columns:1fr auto}.methodrow.staterow .micro{grid-column:1/-1;grid-row:2}}
.statelegend{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}
/* long source labels (e.g. full case names in lineage) wrap instead of pushing the page sideways */
.pathview .source{white-space:normal;overflow-wrap:anywhere}
@media(max-width:760px){.source{white-space:normal;overflow-wrap:anywhere}}

/* ===== Card Standard 2.1 · shell 2.2.0: battle loot, battlefield, power inspector, power by encounter ===== */
.s-citizen{color:var(--green);border-color:#2a7258;background:#0f2a22}
.s-institution{color:var(--red);border-color:#8d4848;background:#2a1719}
.s-noruling{color:var(--muted);border-color:var(--line);background:transparent}
.s-noruling:before{background:transparent;border:1px solid currentColor;width:5px;height:5px}
.s-split{color:var(--gold);border-color:var(--gold-dim);background:#231f12}
.battleloot td:first-child{min-width:170px}
.battleloot td:nth-child(3){white-space:nowrap}
.lootcount{margin-top:10px}
.battlefield{position:relative;margin:12px 0 6px;border:1px solid var(--line);border-radius:5px;overflow:hidden;background:#0a1419}
.battlefield>img{display:block;width:100%;height:auto}
.battlefield>svg{position:absolute;inset:0;width:100%;height:100%}
.battlefield line{stroke:#aebbbd;stroke-width:1.2}
.battlefield .pin circle{stroke:#081219;stroke-width:2}
.battlefield .pin text{fill:#081219;font:700 12px var(--mono)}
.battlelist{list-style:none;padding:0;margin:14px 0 0;display:grid;gap:8px}
.battlelist li{display:grid;grid-template-columns:28px 1fr auto;gap:12px;align-items:start;border:1px solid var(--line);border-radius:4px;padding:10px 12px;background:#101c23}
.battlelist .pinno{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:var(--gold);color:#081219;font:700 11px var(--mono)}
.battlelist b{display:block;font-size:13px}
.battlelist p{font-size:12px;color:var(--muted);margin:4px 0 0}
.powerinspector{margin:8px 0;background:#0d1820}
.powerinspector summary{display:flex;align-items:center;justify-content:space-between;gap:12px;font:18px var(--display);letter-spacing:.04em;color:var(--accent,var(--gold));list-style:none}
.powerinspector summary::-webkit-details-marker{display:none}
.powerinspector dl{display:grid;grid-template-columns:140px 1fr;gap:10px;margin:14px 0}
.powerinspector dt{font:10px var(--mono);color:var(--gold);text-transform:uppercase}
.powerinspector dd{margin:0;font-size:13px;color:var(--muted)}
.encounterpower .cardtitle{margin-bottom:6px}
@media(max-width:700px){.powerinspector dl{grid-template-columns:1fr;gap:4px}.battlelist li{grid-template-columns:28px 1fr}.battlelist li>.state{grid-column:2}.battleloot td:first-child{min-width:120px}}
.result.gold{border-color:var(--gold-dim);border-left-color:var(--gold);background:linear-gradient(110deg,#302b1b,#111c22)}
.result.gold h2,.result.gold .bigicon{color:var(--gold)}
.lootsummary .lootparts{display:flex;gap:14px;flex-wrap:wrap;margin:6px 0}
.lootpart{display:inline-flex;align-items:center;gap:8px}
.lootpart .lootn{font:30px/1 var(--display);color:var(--text)}
.tag.n{border-style:dashed}
#sealText{display:flex;flex-direction:column;align-items:center;text-align:center;line-height:1.15;max-width:78px}#sealText small{letter-spacing:.06em}
.battlelist b.state{display:inline-flex;font-size:9px}
@media(max-width:700px){.battlelist li>.state{justify-self:start}.battleloot .tablewrap{overflow:visible}.battleloot table,.battleloot tbody,.battleloot tr,.battleloot td{display:block;width:auto}.battleloot thead{display:none}.battleloot tr{border:1px solid var(--line);border-radius:4px;margin-bottom:9px;background:#101c23}.battleloot td{border:0;padding:7px 12px}.battleloot td:first-child{min-width:0;border-bottom:1px solid var(--line);font-size:13px}.battleloot td[data-k]:before{content:attr(data-k);display:block;font:9px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--gold);margin-bottom:3px}}
/* Quant and Broker shared components · 2.3.0 */
.card-quant .wrap,.card-seat .wrap{max-width:1560px}.quant-workspace{display:grid;grid-template-columns:235px minmax(350px,1fr) 335px;gap:12px;margin:14px 0}.quant-workspace>.card{margin:0}.quant-person{border-color:var(--gold-dim);background:linear-gradient(155deg,#13232a,#091319)}.quant-person h2{font:30px var(--display);color:var(--gold);margin:12px 0 4px}.quant-avatar{width:92px;height:92px;border-radius:50%;border:1px solid var(--muted);background:linear-gradient(145deg,#647b83,#192c35);display:grid;place-items:center}.quant-avatar svg{width:88%;height:88%;fill:#12252d}.quant-roles{border-top:1px solid var(--gold-dim);margin:20px 0;padding-top:15px}.q-role{display:block;text-align:left;width:100%;color:var(--text);background:transparent;border:0;border-left:2px solid var(--line);padding:10px 12px}.q-role span{display:block;color:var(--muted);font:9px var(--mono)}.q-role b{display:block;font-size:13px;margin-top:5px}.q-role:hover,.q-role.selected{border-left-color:var(--gold);background:#27302b}.quant-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.quant-kpis .card{margin:0;padding:12px;border-color:var(--gold-dim)}.quant-kpis b{display:block;font:34px var(--display);color:var(--text);margin-top:8px}.quant-kpis .micro{font-size:8px;line-height:1.5}.quant-history{margin:12px 0}.quant-filters{display:grid;grid-template-columns:1fr 120px;gap:8px}.q-kind-tabs{display:flex;gap:5px;flex-wrap:wrap;margin:10px 0}.q-kind-tabs .btn{padding:8px;font-size:9px}.q-history-list{min-height:280px}.q-event{display:grid;grid-template-columns:76px 1fr 10px;gap:12px;text-align:left;width:100%;padding:15px 5px;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--text)}.q-event time{font:10px/1.8 var(--mono);color:var(--gold)}.q-event b{display:block;font-size:13px;line-height:1.4}.q-event small{display:block;color:var(--muted);font-size:10px;margin-top:6px;line-height:1.5}.q-event:hover,.q-event.selected{background:#24312e;box-shadow:inset 3px 0 var(--gold)}.q-pagination{justify-content:space-between}.quant-inspector{border-color:var(--gold-dim);align-self:start;position:sticky;top:12px}.quant-inspector .cardtitle{border-bottom:1px solid var(--gold-dim);padding-bottom:12px}.quant-inspector h2{font:25px/1.15 var(--display);color:var(--gold);margin:15px 0}.quant-inspector h3{font-size:17px;margin:12px 0 6px}.quant-inspector p{font-size:12px;line-height:1.6}.quant-inspector dl,.broker-power-inspector dl{display:grid;grid-template-columns:85px 1fr;gap:10px;font-size:12px}.quant-inspector dt,.broker-power-inspector dt{font:9px var(--mono);color:var(--muted);text-transform:uppercase}.quant-inspector dd,.broker-power-inspector dd{margin:0}.q-inspector-nav{display:flex;justify-content:space-between;align-items:center}.q-established,.q-unknown{border-top:1px solid var(--gold-dim);margin-top:16px;padding-top:4px}.q-established h3{color:var(--green)}.q-unknown h3{color:var(--gold)}.q-connections{display:flex;gap:8px;overflow:auto;padding:4px 0}.q-connection{min-width:150px;text-align:left;background:#10222c;color:var(--text);border:1px solid var(--line);padding:12px;border-radius:4px}.q-connection b,.q-connection small{display:block;margin-top:8px;font-size:11px}.q-connection small{color:var(--muted);line-height:1.5}.q-connection:hover{border-color:var(--gold)}.quant-dimensions{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.quant-dimensions .card{margin:0;border-color:var(--gold-dim)}.quant-dimensions p{font-size:11px}.broker-atlas{display:grid;grid-template-columns:205px minmax(300px,1fr) 360px;gap:12px;align-items:start;margin:14px 0}.broker-sidebar{border:1px solid var(--gold-dim);background:#0b171e;border-radius:5px;padding:14px;min-width:0}.broker-sidebar .field{margin:10px 0}.broker-seat-list{margin:10px -8px}.broker-seat{display:flex;gap:9px;width:100%;text-align:left;background:transparent;color:var(--text);border:1px solid transparent;padding:12px 9px;font-size:12px;line-height:1.5}.broker-seat span{color:var(--gold)}.broker-seat:hover,.broker-seat.selected{border-color:var(--gold-dim);background:linear-gradient(90deg,#17333d,#242c24)}.broker-territory{min-width:0}.broker-map{width:100%;height:auto;display:block;border:1px solid var(--line);border-radius:5px}.broker-map-caption{padding:6px 0 10px;line-height:1.6}.broker-overlay .btn{font-size:9px;padding:9px}.broker-shape{cursor:pointer;transition:opacity .15s}.broker-shape.selected polygon{stroke:var(--gold);stroke-width:4;fill-opacity:.32}.broker-shape:hover polygon,.broker-shape:focus polygon{stroke-width:5;fill-opacity:.4}.broker-shape.shared-lens polygon{fill-opacity:.35}.broker-map-key{display:flex;gap:6px;flex-wrap:wrap;padding:10px 0}.broker-map-key button{background:#112129;cursor:pointer}.broker-map-key .selected{color:var(--gold);border-color:var(--gold)}.broker-detail{margin:0;border-color:var(--gold-dim)}.broker-detail h2{font:30px var(--display);margin:12px 0 4px;color:var(--gold)}.broker-holder{border-top:1px solid var(--line);padding:12px 0}.broker-holder b{display:block;font-size:13px;margin-top:5px}.broker-tiles{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:12px 0}.broker-tile{display:grid;grid-template-columns:30px 1fr 9px;gap:9px;align-items:start;text-align:left;padding:15px 10px;background:linear-gradient(130deg,#1a292c,#0a161d);color:var(--text);border:1px solid var(--gold-dim);border-radius:5px;min-height:115px}.broker-tile:hover,.broker-tile.selected{border-color:var(--gold);background:linear-gradient(130deg,#353826,#14232b)}.broker-icon{font-size:29px;line-height:1;color:var(--gold)}.broker-tile b{font:18px var(--display);display:block;text-transform:uppercase;letter-spacing:.04em;color:var(--gold)}.broker-tile small{display:block;font-size:11px;line-height:1.55;color:var(--muted);margin-top:8px}.broker-panel>.broker-tiles{grid-template-columns:repeat(3,1fr)}.broker-power-inspector{border-top:1px solid var(--gold-dim);margin-top:18px;padding-top:15px}.broker-power-inspector h3{font:24px var(--display);color:var(--gold);margin:8px 0}.broker-power-inspector p{font-size:12px}.broker-compare-box label{display:block;font-size:11px;margin:10px 0}.broker-compare-result{margin-top:12px}.broker-compare-result table{font-size:10px}.broker-lens-note{margin:12px 0}.election-strip{border-top:1px solid var(--line);padding-top:12px;margin-top:12px}.election-strip b,.election-strip small{display:block;font-size:10px;margin:7px 0}.election-strip small{line-height:1.7;color:var(--muted)}.election-track{height:6px;background:#12212a;border-radius:3px;overflow:hidden}.election-track span{height:100%;display:block}.quant-person .btn{white-space:normal}.card-quant .result,.card-seat .result{margin-top:12px}
.btn:disabled{opacity:.4;cursor:default}
@media(min-width:1500px){.quant-workspace{grid-template-columns:245px minmax(450px,1fr) 365px}.broker-atlas{grid-template-columns:220px minmax(450px,1fr) 390px}}
@media(max-width:1100px){.quant-workspace{grid-template-columns:200px minmax(300px,1fr)}.quant-inspector{grid-column:1/-1;position:static}.broker-atlas{grid-template-columns:180px minmax(300px,1fr)}.broker-detail{grid-column:1/-1}.broker-detail .broker-tiles{grid-template-columns:repeat(3,1fr)}.broker-time{max-width:700px}}
@media(max-width:700px){.quant-workspace,.broker-atlas{grid-template-columns:1fr}.quant-person{display:block}.quant-avatar{float:left;margin:0 15px 12px 0}.quant-roles{clear:both}.quant-kpis{grid-template-columns:1fr 1fr}.quant-inspector,.broker-detail{grid-column:auto}.quant-dimensions{grid-template-columns:1fr}.quant-filters{grid-template-columns:1fr}.broker-panel>.broker-tiles,.broker-detail .broker-tiles{grid-template-columns:1fr 1fr}.broker-tile{min-height:130px}.broker-sidebar .broker-seat-list{display:flex;overflow:auto}.broker-seat{min-width:160px}.q-event{grid-template-columns:66px 1fr 10px}.q-connections{flex-wrap:wrap}.q-connection{min-width:130px;flex:1}.broker-compare-result{overflow:auto}.broker-compare-box{grid-column:1/-1}.quant-person .btn{width:100%}.quant-dimensions .state{white-space:normal}}
@media print{.quant-workspace,.broker-atlas{display:block}.quant-inspector{position:static}.q-history-list{min-height:0}.broker-compare,.q-kind-tabs,.quant-filters,.q-pagination{display:none}}
/* long source labels in the quant and broker side panels wrap instead of pushing the page sideways */
.quant-workspace .source,.broker-atlas .source,.broker-detail .source,.quant-inspector .source{white-space:normal;overflow-wrap:anywhere}
.c3m{margin:0 0 14px}.c3m img{border-radius:inherit}
/* Doctrine Loot relic · shell 2.5.0 */
.relic{--rc:var(--green);text-align:center;border:1px solid var(--line);border-radius:12px;padding:14px 16px;margin:12px 0;background:radial-gradient(circle at 50% 30%,#13241f 0,transparent 65%)}.relic.rc-institution{--rc:var(--red);background:radial-gradient(circle at 50% 30%,#2a1717 0,transparent 65%)}
.relic-btn{background:none;border:0;padding:0;cursor:pointer;display:block;margin:4px auto 0;perspective:400px}.relic-btn:focus-visible{outline:2px solid var(--gold);outline-offset:4px;border-radius:50%}
.relic-svg{width:120px;height:120px;display:block;overflow:visible;filter:drop-shadow(0 0 7px color-mix(in srgb,var(--rc) 55%,transparent))}
.relic-svg .r-glyph{stroke:var(--rc);stroke-width:2.6;stroke-linejoin:round;stroke-linecap:round;transform-origin:60px 60px}
.relic-svg .r-rings{stroke:color-mix(in srgb,var(--rc) 60%,transparent);stroke-width:1.6}.relic-svg .r-lock{stroke:var(--gold);stroke-width:2.2}.relic-svg .r-break{stroke-dasharray:4 5;transform:translate(0,10px);opacity:.35}.relic-svg .r-pulse{stroke:var(--gold);opacity:.6}
.relic.st-removed .relic-svg{filter:grayscale(1);opacity:.45}.relic.st-removed .relic-name{text-decoration:line-through;text-decoration-color:var(--muted)}
.relic-who{font-family:var(--mono);font-size:12px;letter-spacing:.08em;color:var(--rc);margin-top:6px}.relic.st-deployed .relic-who{color:var(--gold)}
.relic-name{font-family:var(--display);font-size:26px;letter-spacing:.04em;margin:2px 0}.relic-ability{margin:0 auto 6px;max-width:46ch;color:var(--muted)}
.relic-panel{text-align:left;border-top:1px solid var(--line);margin-top:10px;padding-top:8px}.relic-sec{margin:8px 0}.relic-sec b{font-family:var(--mono);font-size:12px;letter-spacing:.06em;color:var(--gold)}.relic-sec ul{margin:4px 0 0;padding-left:18px}.relic-sec p{margin:4px 0}
@media (prefers-reduced-motion:no-preference){
.relic.in .relic-svg{animation:relicIn 1.1s ease-out both,relicFloat 7s ease-in-out 1.2s infinite}
.relic.in .r-glyph{animation:relicFlash 1.1s ease-out both}
.relic.st-reinforced.in .r-lock{stroke-dasharray:352;animation:relicLock 1.4s .5s ease-out both}
.relic.st-restricted.in .r-break{animation:relicBreak 1.4s .6s ease-in both}
.relic.st-deployed.in .r-pulse{transform-origin:60px 60px;animation:relicPulse 2.4s .4s ease-out 2 both}
.relic.st-removed.in .relic-svg{animation:relicIn 1.1s ease-out both}}
@keyframes relicIn{from{opacity:0;transform:scale(.6) rotate(-12deg)}to{opacity:1;transform:none}}
@keyframes relicFlash{0%,60%{filter:none}75%{filter:brightness(2.2) drop-shadow(0 0 10px var(--rc))}100%{filter:none}}
@keyframes relicFloat{0%,100%{transform:translateY(0) rotateY(-10deg)}50%{transform:translateY(-5px) rotateY(10deg)}}
@keyframes relicLock{from{stroke-dashoffset:352;opacity:0}to{stroke-dashoffset:0;opacity:1}}
@keyframes relicBreak{from{transform:none;opacity:1}to{transform:translate(0,10px);opacity:.35}}
@keyframes relicPulse{from{transform:scale(.86);opacity:.9}to{transform:scale(1.12);opacity:0}}


/* doctrine showdown (2.5.2): the balance as a headline, and loot drops in a grid */
.card p.showdown,.showdown{font-family:"Bebas Neue",Impact,sans-serif;font-size:clamp(1.25rem,3.4vw,1.9rem);letter-spacing:.05em;line-height:1.1;margin:6px 0 10px;color:var(--gold)}
.grid3>.relic{margin:0}
.grid3>.relic .relic-svg{width:96px;height:96px}
@media (max-width:760px){.grid3>.relic .relic-svg{width:84px;height:84px}}
.relic-to{font-family:"Bebas Neue",Impact,sans-serif;letter-spacing:.06em;font-size:clamp(1.05rem,2.6vw,1.35rem);line-height:1.1;color:var(--muted,#aebbbd);margin-bottom:2px}
.relic-to b{color:var(--rc);font-weight:400;font-size:1.25em}
.relic .relic-who{font-size:11px;margin:2px 0 6px;opacity:.85}
/* Quest markers (2026-10-24). A glowing marker over the tabs where each card type's game is; the big one is where to
   look first: cases → Battle (small on Battle Loot), doctrines → Battle Loot (small on Battle), campaigns →
   Battlefield (small on Battle). A marker retires once its tab has been opened (civic3-card.js adds .seen-<tab>). */
body.hints-ready:is(.card-case,.card-doctrine,.card-campaign,.card-commerce) .tabs{padding-top:30px}
body.hints-ready:is(.card-case,.card-doctrine,.card-commerce) .cb4-tab:is([data-go=battle],[data-go=loot]),body.hints-ready.card-campaign .cb4-tab:is([data-go=battle],[data-go=battlefield]){position:relative;overflow:visible}
body.hints-ready:is(.card-case,.card-doctrine,.card-commerce) .cb4-tab:is([data-go=battle],[data-go=loot])::after,body.hints-ready.card-campaign .cb4-tab:is([data-go=battle],[data-go=battlefield])::after{content:"⚔";content:"⚔" / "";position:absolute;left:50%;bottom:calc(100% + 3px);transform:translateX(-50%);display:grid;place-items:center;width:15px;height:15px;border-radius:50%;font:9px/1 var(--body);color:#172025;background:var(--gold);box-shadow:0 0 0 2px #080e12,0 0 8px #e3be5a88;opacity:.75;pointer-events:none;animation:c3quest 1.6s ease-in-out infinite}
body.hints-ready:is(.card-case,.card-doctrine,.card-commerce) .cb4-tab[data-go=loot]::after{content:"✦";content:"✦" / ""}
body.hints-ready.card-campaign .cb4-tab[data-go=battlefield]::after{content:"◈";content:"◈" / ""}
body.hints-ready.card-case .cb4-tab[data-go=battle]::after,body.hints-ready:is(.card-doctrine,.card-commerce) .cb4-tab[data-go=loot]::after,body.hints-ready.card-campaign .cb4-tab[data-go=battlefield]::after{width:21px;height:21px;font-size:13px;opacity:1;box-shadow:0 0 0 2px #080e12,0 0 14px #e3be5acc,0 0 28px #e3be5a55}
body.seen-battle .cb4-tab[data-go=battle]::after,body.seen-loot .cb4-tab[data-go=loot]::after,body.seen-battlefield .cb4-tab[data-go=battlefield]::after,.cb4-tab[aria-selected=true]::after{display:none!important}
@keyframes c3quest{0%,100%{transform:translate(-50%,0)}50%{transform:translate(-50%,-4px)}}
@media(prefers-reduced-motion:reduce){body.hints-ready .cb4-tab::after{animation:none!important}}
/* v2.5.5 (owner, 25 Oct 2026) · Show the way in.
   1. The quest marker on the tab that matters most for this card type now bounces, and the tab itself glows, until it is opened once.
   2. On a phone, a tab row wider than the screen shows a fading edge with a bouncing ›, and peeks once (slides left and back) so the eye learns it scrolls.
   3. First view of the Verdict: the outcome, then gravity, then current force light up once, in order, then stay still. No glow ranks one above another. */
@keyframes c3bounce{0%,100%{transform:translate(-50%,0)}50%{transform:translate(-50%,-6px)}}
@keyframes c3tabglow{0%,100%{box-shadow:0 0 0 0 #e3be5a00}50%{box-shadow:0 0 0 2px #e3be5a99,0 0 16px #e3be5a66}}
body.hints-ready.card-case:not(.seen-battle) .cb4-tab[data-go=battle]::after,body.hints-ready:is(.card-doctrine,.card-commerce):not(.seen-loot) .cb4-tab[data-go=loot]::after,body.hints-ready.card-campaign:not(.seen-battlefield) .cb4-tab[data-go=battlefield]::after{animation:c3bounce 1s ease-in-out infinite}
body.hints-ready.card-case:not(.seen-battle) .cb4-tab[data-go=battle],body.hints-ready:is(.card-doctrine,.card-commerce):not(.seen-loot) .cb4-tab[data-go=loot],body.hints-ready.card-campaign:not(.seen-battlefield) .cb4-tab[data-go=battlefield]{border-color:var(--gold);color:var(--text);animation:c3tabglow 1.8s ease-in-out infinite}
.c3-tabwrap{position:relative}
.c3-tabwrap.c3-more::after{content:"›";position:absolute;right:0;top:0;bottom:8px;width:44px;display:flex;align-items:flex-end;justify-content:flex-end;padding:0 4px 12px 0;font:700 22px/1 var(--mono);color:var(--gold);background:linear-gradient(90deg,transparent,var(--bg) 70%);pointer-events:none;animation:c3nudge 1.2s ease-in-out infinite}
@keyframes c3nudge{0%,100%{transform:translateX(0)}50%{transform:translateX(4px)}}
.c3-lit{animation:c3lit 1.1s ease-out 1}
@keyframes c3lit{0%{box-shadow:0 0 0 0 #e3be5a00}35%{box-shadow:0 0 0 2px #e3be5acc,0 0 26px #e3be5a77}100%{box-shadow:0 0 0 0 #e3be5a00}}
@media(prefers-reduced-motion:reduce){.c3-tabwrap.c3-more::after,.c3-lit,body.hints-ready .cb4-tab{animation:none!important}}

/* A shared link to #battle etc. lands with the tab row still in view, below the sticky top bar. */
.cb4-panel{scroll-margin-top:150px}
