/* ASC design system v56 (sitewide). Applied to inner pages via <body class="ds">. Source: /workspace/rd/asc-ds.css; transform: /workspace/rd/sitewide.py */
:root{--night:#07060D;--night2:#0E0C18;--ink:#0B0A14;--ink2:#3A3850;--mut:#6B6880;--dmut:#A6A3BA;--line:#ECEBF2;--bg:#F7F6FA;--vio:#7C3AED;--vio2:#6D28D9;--lav:#C4B5FD;--coral:#FF6B4A;--teal:#6D28D9;--teal2:#5B21B6;--acc:#C2410C;--ease:cubic-bezier(.22,.8,.24,1);
--head:"Avenir Next","Avenir","Segoe UI Variable Display","Futura","Gill Sans","Optima",system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--mono:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif}
body.ds{background:#fff radial-gradient(900px 420px at 85% -120px,rgba(167,139,250,.16),transparent 70%) no-repeat;color:var(--ink);-webkit-font-smoothing:antialiased;font-kerning:normal}
.ds :focus-visible{outline:2px solid var(--vio);outline-offset:3px}
.ds a{color:var(--vio2);text-underline-offset:3px;text-decoration-thickness:1px}
.ds a:hover{color:var(--vio)}
.ds .wrap{max-width:1200px;padding:0 40px}
.ds .narrow{max-width:860px}
/* header (matches homepage) */
.ds .top{position:sticky;top:0;z-index:30;background:rgba(7,6,13,.92);-webkit-backdrop-filter:saturate(160%) blur(16px);backdrop-filter:saturate(160%) blur(16px);border-bottom:1px solid rgba(255,255,255,.06)}
.ds .top .bar{min-height:76px;padding:12px 40px}
.ds .top .wm{color:#fff}.ds .top .w2{color:var(--lav)}
.ds .top nav{gap:2px}
.ds .top nav a{color:#C9C6D8;font-size:14.5px;font-weight:500;padding:8px 14px;border-radius:999px;text-decoration:none;transition:color .2s,background .2s}
.ds .top nav a:hover,.ds .top nav a[aria-current]{color:#fff;background:rgba(255,255,255,.08)}
/* type */
.ds h1,.ds h2,.ds h3,.ds .big,.ds .ov,.ds .sh,.ds caption,.ds .verdict-l{font-family:var(--head);font-feature-settings:"kern","liga"}
.ds h1{font-size:clamp(34px,4.6vw,56px);line-height:1.04;font-weight:600;letter-spacing:-.035em;margin:22px 0 16px;color:var(--ink)}
.ds h2{font-size:clamp(24px,2.6vw,32px);line-height:1.15;font-weight:600;letter-spacing:-.025em;margin:56px 0 16px;color:var(--ink)}
.ds h3{font-size:19px;line-height:1.3;font-weight:600;letter-spacing:-.012em}
.ds .dek,.ds .lede{font-size:19.5px;line-height:1.6;color:var(--ink2)}
.ds .prose p,.ds .prose li{color:#24223A;line-height:1.75}
.ds .meta,.ds .date{color:var(--mut)}
.ds .facts dt,.ds .fitbox h3,.ds .foot h2,.ds .sh{font-size:11.5px;font-weight:600;letter-spacing:.22em;text-transform:uppercase}
.ds .fitbox h3{color:var(--vio2)}
.ds .sh{color:var(--mut);border-top:1px solid var(--line);padding-top:16px;margin:72px 0 22px}
.ds .crumbs{font-size:13px;color:var(--mut);margin-top:32px}
.ds .crumbs a{color:var(--mut);text-decoration:none}.ds .crumbs a:hover{color:var(--vio2)}
/* buttons */
.ds .btn{display:inline-flex;align-items:center;gap:8px;border:0;border-radius:999px;padding:12px 22px;font-weight:600;color:#fff;text-decoration:none;background:linear-gradient(135deg,#8B5CF6,#6D28D9);box-shadow:0 10px 26px -10px rgba(124,58,237,.6),inset 0 1px 0 rgba(255,255,255,.2);transition:transform .2s var(--ease),box-shadow .2s}
.ds .btn:hover{color:#fff;transform:translateY(-2px);box-shadow:0 16px 34px -12px rgba(124,58,237,.75)}
.ds .btn.ghost{background:#fff;color:var(--ink);box-shadow:inset 0 0 0 1px #DEDCE8}
.ds .seeall{color:var(--ink);border:1px solid #DEDCE8;border-radius:999px;padding:10px 18px;text-decoration:none;font-weight:600}
.ds .seeall:hover{border-color:var(--vio);color:var(--vio2)}
/* cards and boxes */
.ds .scorebox{background:radial-gradient(260px 180px at 85% 0%,rgba(167,139,250,.38),transparent 70%),radial-gradient(220px 160px at 0% 100%,rgba(255,107,74,.16),transparent 70%),var(--night2);border:1px solid rgba(255,255,255,.06);border-radius:26px;padding:28px 24px}
.ds .scorebox .big{font-weight:600;letter-spacing:-.03em;font-size:56px}
.ds .verdict-l{color:#E9E4FF;font-weight:600}
.ds .scorebox a{color:var(--dmut)}
.ds .side .facts,.ds .facts{background:#fff;border:1px solid var(--line);border-radius:22px;padding:22px 24px}
.ds .facts div{border-bottom-color:var(--line)}
.ds .facts dt{color:var(--mut);font-size:11px}
.ds .fitbox>div,.ds .vs>div,.ds .fcard,.ds .person,.ds .pp-card,.ds .cat,.ds .rcard,.ds details.sources,.ds .links{border:1px solid var(--line);border-radius:20px;background:#fff;box-shadow:none}
.ds .fitbox>div{padding:22px 24px}
.ds .fcard,.ds .cat,.ds .rcard,.ds .pp-card,.ds .person{transition:transform .3s var(--ease),box-shadow .3s var(--ease),border-color .3s}
.ds .fcard:hover,.ds .cat:hover,.ds .rcard:hover,.ds .pp-card:hover{transform:translateY(-3px);border-color:#DCD3FA;box-shadow:0 24px 48px -28px rgba(76,29,149,.35)}
.ds .cat,.ds .cat:nth-child(n){background:#fff}
.ds .cat span,.ds .cat h2{font-family:var(--head)}
.ds .pp-card .person{border:0;border-radius:20px 20px 0 0;background:none}
.ds .rcard img,.ds .rcard>a>img{border-bottom-color:var(--line)}
.ds .rcard>div{padding:20px 22px 24px}
.ds .rcard h3{font-size:18.5px}
.ds .links{background:var(--bg);border:0;padding:8px 24px 16px}
.ds details.sources{padding:16px 22px}
.ds .ov{font-weight:600;letter-spacing:-.02em}
.ds .pchip{border-color:var(--line);background:#fff}
.ds .phero img,.ds .person img{border-radius:50%}
/* no colored left accent borders */
.ds blockquote{border-left:0;border:1px solid #E7E2F7;background:#FAF8FF;border-radius:18px;padding:18px 22px}
.ds .keyf{border-left:0;border:1px solid #F5DDD3;background:#FCF5F1;border-radius:20px;padding:10px 26px 16px}
.ds .csent{border-left:0;border:1px solid var(--line);border-radius:18px}
/* tables: keep navy header (handbook 6.3), soften chrome */
.ds .tscroll{border:1px solid var(--line);border-radius:16px;overflow-x:auto}
.ds .tscroll table{margin:0}
.ds th,.ds td{border-bottom-color:var(--line)}
.ds thead th{letter-spacing:.06em}
.ds tbody tr:hover td{background:#FAF9FD}
.ds .meter{background:#EEEDF4;border-radius:999px}
.ds .meter i{background:linear-gradient(90deg,#7C3AED,#A78BFA);border-radius:999px}
.ds .fit{background:#F5F3FF;color:var(--vio2)}
/* figures: never recolor charts */
.ds figure img{border:1px solid var(--line);border-radius:16px}
/* inputs (directory, people, contact) */
.ds .fs input,.ds .pp-search input,.ds .cform input,.ds .cform textarea{border:1px solid #DEDCE8;border-radius:16px;box-shadow:0 10px 28px -16px rgba(76,29,149,.25)}
.ds .fs input:focus,.ds .pp-search input:focus{border-color:var(--vio);outline:0;box-shadow:0 0 0 4px rgba(124,58,237,.14)}
.ds .pp-view button[aria-pressed=true]{background:var(--ink)}
.ds .pp-sec h2{border-top:1px solid var(--line)}
/* footer (matches homepage) */
.ds .foot{background:var(--night);margin-top:120px;padding:88px 0 40px;color:#8F8BA6;border-top:1px solid rgba(255,255,255,.06)}
.ds .foot h2{color:#E6E2F2;font-size:12px;margin:4px 0 14px}
.ds .foot a{color:#C9C6D8;text-decoration:none;padding:5px 0}.ds .foot a:hover{color:#fff}
.ds .foot .wm,.ds .foot .wm:hover{color:#fff}.ds .foot .w2{color:var(--lav)}
.ds .foot p{max-width:340px;line-height:1.6}
.ds .legal{border-top-color:rgba(255,255,255,.07);color:#6E6A86;margin-top:56px;padding-top:28px}
@media(max-width:900px){.ds .wrap{padding:0 24px}.ds .top{position:sticky}.ds .top .bar{padding:12px 24px;row-gap:6px}.ds .top nav{margin:0 -10px}.ds .top nav a{padding:6px 10px;font-size:14px}.ds h2{margin-top:44px}.ds .foot{margin-top:88px;padding:64px 0 32px}}
@media(max-width:640px){.ds .wrap{padding:0 20px}.ds .top .bar{padding:12px 20px}.ds h1{font-size:34px}.ds .dek,.ds .lede{font-size:17.5px}.ds .scorebox .big{font-size:46px}}
@media(prefers-reduced-motion:reduce){.ds *,.ds *::before,.ds *::after{animation:none!important;transition:none!important}.ds .fcard:hover,.ds .cat:hover,.ds .rcard:hover,.ds .pp-card:hover,.ds .btn:hover{transform:none}}
.ds .person,.ds .pp-card .person{color:var(--ink);text-decoration:none}
.ds .person b{font-family:var(--head);font-weight:600;letter-spacing:-.01em}
.ds .phero>*{min-width:0}.ds .phero h1{overflow-wrap:break-word}
@media (max-width:640px){.ds .phero{gap:16px}.ds .phero img{width:84px;height:84px;flex:none}.ds .phero h1{font-size:clamp(1.7rem,8vw,2.2rem)}}
.wm img{display:block;height:38px;width:auto}
@media (max-width:640px){.wm img{height:32px}}
