/* L-ASINAUT public pages (Learn, glossary, Where things moved, About): look of the generated pages.
   Loaded after /styles.css (site tokens --primary --text --text-sub --text-muted --bg --bg-alt --border, nav, .lg-checks).
   Hand-written, no build. Text Syne, numbers Inter, brand #2563eb, square boxes and pill controls
   as on the rest of the site. Light only (the site has no dark theme).
   Markup hooks (the generator writes them; acp.js adds the .acp-wi / .acp-lab / .acp-map / .acp-id* widget parts):
     .acp-strip (top strip) · nav > .nav-inner > .acp-wm + .acp-by + .nav-links[data-no-unify] (shared.js adds .nav-toggle)
     nav[aria-label="Breadcrumb"] or .acp-bc > ol > li (separators drawn here) · .acp-byline · .acp-topline · main / article
     lesson body: .acp-lede .acp-cover .acp-sec .acp-fig .acp-dia(.acp-dia-box svg.acp-dia-w svg.acp-dia-n) .acp-body
       .acp-story .acp-where .acp-terms .acp-tryit .acp-w-t .acp-w[data-w] .acp-tbl .acp-quiz .acp-rules .acp-sources .acp-changes
     hub: .acp-cards > .acp-card · glossary: .acp-az (A-Z links) .acp-gloss (dl, dt[id]) · moved: .acp-lookup, input[data-lookup],
       table[data-moved] (a group row = tr.acp-mv-g or one th/td with colspan) · #waitlist > form[data-wl] (.wl-* names of the
       landing work too; honeypot = its aria-hidden wrapper) · footer (body > footer or .acp-foot) */

/* ------------------------------------------------------------------ 1 · tokens, metric-matched fallbacks (no shift on swap) */
@font-face{font-family:'Syne Fallback';src:local('Arial Bold'),local('Arial-BoldMT');font-weight:600 800;size-adjust:114.06%;ascent-override:81.5%;descent-override:23.7%;line-gap-override:0%}
@font-face{font-family:'Syne Fallback';src:local('Arial'),local('ArialMT');font-weight:400 599;size-adjust:105.2%;ascent-override:88.4%;descent-override:25.7%;line-gap-override:0%}
@font-face{font-family:'Inter Fallback';src:local('Arial'),local('ArialMT');font-weight:400 599;size-adjust:108.3%;ascent-override:89.6%;descent-override:22.2%;line-gap-override:0%}
@font-face{font-family:'Inter Fallback';src:local('Arial Bold'),local('Arial-BoldMT');font-weight:600 800;size-adjust:102.9%;ascent-override:94.3%;descent-override:23.3%;line-gap-override:0%}
:root{
  --acp-syne:'Syne','Syne Fallback',system-ui,sans-serif;
  --acp-inter:'Inter','Inter Fallback',system-ui,sans-serif;
  --acp-mono:ui-monospace,SFMono-Regular,Menlo,Consolas,'Liberation Mono',monospace;
  --acp-ink:#1e293b; --acp-soft:#eff6ff; --acp-soft-edge:#bfdbfe;
  --acp-train-bg:#eef2ff; --acp-train-ink:#3730a3; --acp-train-edge:#c7d2fe;
  --acp-ok:#047857; --acp-ok-bg:#ecfdf5; --acp-ok-edge:#a7f3d0;
  --acp-bad:#b91c1c; --acp-bad-bg:#fef2f2; --acp-bad-edge:#fecaca; --acp-warn:#92400e;
  --acp-strip-h:32px; --acp-nav-h:64px; --acp-col:740px; --acp-gut:24px;
}
@media (max-width:600px){:root{--acp-strip-h:40px;--acp-nav-h:56px;--acp-gut:16px}}

/* ------------------------------------------------------------------ 2 · base */
html{scroll-padding-top:calc(var(--acp-strip-h) + var(--acp-nav-h) + 12px);-webkit-text-size-adjust:100%}
body{margin:0;padding-top:calc(var(--acp-strip-h) + var(--acp-nav-h));background:var(--bg);color:var(--acp-ink);font:400 17px/1.65 var(--acp-syne);font-variant-numeric:lining-nums;overflow-x:hidden}  /* Syne digits are old-style by default */
*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
h1,h2,h3,h4{font-family:var(--acp-syne);text-transform:none;color:var(--text);font-weight:700;margin:0;text-wrap:balance}
h1{font-size:clamp(1.85rem,1.15rem + 2.6vw,2.6rem);line-height:1.12;letter-spacing:-1px}
h2{font-size:1.5rem;line-height:1.25;letter-spacing:-1px}
h3{font-size:1.15rem;line-height:1.35;letter-spacing:-.5px}
h4{font-size:1rem;line-height:1.4}
p{margin:0 0 14px}
img{max-width:100%;height:auto}
b,strong{color:var(--text);font-weight:700}
.acp-sr{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.acp-mono,code{font-family:var(--acp-mono)!important;font-size:.86em;letter-spacing:0!important;background:var(--bg-section,#f1f5f9);padding:1px 5px;overflow-wrap:anywhere}
.acp-n{font-family:var(--acp-inter)!important;letter-spacing:0!important}  /* acp.js wraps digit runs; spacing as the text around (tables: tabular) */
.lg-check-val.acp-n{font-variant-numeric:tabular-nums}
:focus-visible{outline:2px solid var(--primary);outline-offset:2px}
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--primary);outline-offset:2px;box-shadow:0 0 0 4px rgba(37,99,235,.15)}

/* ------------------------------------------------------------------ 3 · top strip (always visible) + header beside the site nav */
.acp-strip{position:fixed;top:0;left:0;right:0;z-index:101;height:var(--acp-strip-h);display:flex;align-items:center;justify-content:center;gap:8px;padding:0 var(--acp-gut);margin:0;background:var(--acp-train-bg);color:var(--acp-train-ink);border-bottom:1px solid var(--acp-train-edge);font:500 12px/1.3 var(--acp-inter);letter-spacing:.01em;text-align:center;overflow:hidden}
.acp-strip a{color:inherit;text-decoration:underline}
@media (max-width:600px){.acp-strip{font-size:11.5px;line-height:1.25}}
nav{top:var(--acp-strip-h)}  /* the site nav (fixed in styles.css) sits under the strip */
nav .nav-inner{height:var(--acp-nav-h);justify-content:flex-start;gap:10px}
.acp-wm{font:800 1.2rem/1 var(--acp-syne);letter-spacing:-.02em;color:var(--text);text-decoration:none;white-space:nowrap}
.acp-by{font:600 .8rem/1 var(--acp-syne);color:var(--text-muted);text-decoration:none;white-space:nowrap;margin-right:auto;padding:6px 0}
.acp-wm:hover{color:var(--primary)} .acp-by:hover{color:var(--primary)}
nav .nav-links{margin-left:auto}
nav .nav-links a{font-family:var(--acp-syne)}
nav .nav-links a[aria-current="page"]{color:var(--primary)}
nav .nav-toggle{margin-left:auto;color:var(--text)}
@media (max-width:600px){nav .nav-inner{padding:0 var(--acp-gut)}.acp-wm{font-size:1.08rem}}
/* the phone menu panel (fixed inside the nav) starts under the strip: end it at the screen bottom */
@media (max-width:1100px){nav .nav-links{height:calc(100vh - var(--acp-strip-h));height:calc(100dvh - var(--acp-strip-h))}}
/* every other <nav> (breadcrumbs, A-Z, footer) is ordinary content, not the fixed site bar of styles.css */
main nav,article nav,footer nav,nav[aria-label="Breadcrumb"],nav.acp-bc,nav.acp-az{position:static;top:auto;left:auto;right:auto;z-index:auto;background:none;backdrop-filter:none;-webkit-backdrop-filter:none;border:0}

/* ------------------------------------------------------------------ 4 · page column, breadcrumbs, byline, top line */
main{display:block;max-width:calc(var(--acp-col) + 2 * var(--acp-gut));margin:0 auto;padding:28px var(--acp-gut) 56px}
main.acp-wide{max-width:calc(1000px + 2 * var(--acp-gut))}
main .container{max-width:none;padding:0}
main > h1,article > h1,main header h1{margin:0 0 14px}
nav[aria-label="Breadcrumb"],.acp-bc{margin:0 0 18px;font-size:.84rem;line-height:1.5;color:var(--text-muted)}
nav[aria-label="Breadcrumb"] ol,.acp-bc ol{display:flex;flex-wrap:wrap;align-items:center;gap:2px 0;list-style:none;margin:0;padding:0}
nav[aria-label="Breadcrumb"] ol > li + li::before,.acp-bc ol > li + li::before{content:"\203A";display:inline-block;margin:0 8px;color:#94a3b8}
nav[aria-label="Breadcrumb"] a,.acp-bc a{color:var(--text-sub);text-decoration:none}
nav[aria-label="Breadcrumb"] a:hover,.acp-bc a:hover{color:var(--primary);text-decoration:underline}
nav[aria-label="Breadcrumb"] [aria-current],.acp-bc [aria-current]{color:var(--text-muted)}
.acp-byline{margin:0 0 22px;font-size:.88rem;line-height:1.55;color:var(--text-muted)}
.acp-byline a{color:var(--text-sub);text-decoration:underline;text-underline-offset:2px}
.acp-topline{margin:0 0 22px;padding:12px 16px;background:var(--acp-train-bg);border-left:3px solid #4338ca;color:var(--acp-train-ink);font-size:.9rem;line-height:1.55}
.acp-lede{font-size:1.16rem;line-height:1.55;color:var(--text);margin:0 0 22px}
main p a,main li a,main td a,main dd a,.acp-where a,.acp-byline a{color:var(--primary);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px}
main p a:hover,main li a:hover,main td a:hover,main dd a:hover{color:var(--primary-dark,#1d4ed8);text-decoration-thickness:2px}

/* ------------------------------------------------------------------ 5 · article typography, figures, stories */
.acp-sec{margin:44px 0 0}
.acp-sec > h2,.acp-terms > h2,.acp-tryit > h2,.acp-quiz > h2,.acp-rules > h2,.acp-sources > h2,.acp-changes > h2,main h2{margin:0 0 14px}
main h3{margin:22px 0 10px}
main section{margin-top:44px}
main section:first-child,main header + section{margin-top:28px}
.acp-body ul,.acp-body ol,main article ul,main article ol{padding-left:1.35em;margin:0 0 14px}
.acp-body li,main article li{margin:0 0 6px}
.acp-body li > p{margin:0 0 6px}
figure{margin:24px 0}
figcaption{margin-top:8px;font-size:.86rem;line-height:1.5;color:var(--text-muted)}
.acp-cover{margin:0 0 30px}
.acp-cover img,.acp-fig img,.acp-story-f img{display:block;width:100%;height:auto;border:1px solid var(--border);background:var(--bg-alt)}
.acp-story{margin:26px 0}
.acp-story-t{margin:0 0 10px;font:700 .95rem/1.4 var(--acp-syne);color:var(--text)}
.acp-story-l{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.acp-story-l > li{margin:0}
.acp-story-f{margin:0}
@media (max-width:560px){.acp-story-l{grid-template-columns:minmax(0,1fr)}}
.acp-where{margin:18px 0 0;padding:10px 14px;background:var(--bg-alt);border-left:3px solid var(--primary);font-size:.9rem;line-height:1.55;color:var(--text-sub)}
.acp-terms dl,main dl{margin:0 0 14px}
.acp-terms dt,main dt{font-weight:700;color:var(--text);margin:14px 0 2px}
.acp-terms dd,main dd{margin:0 0 6px;color:var(--acp-ink)}
.acp-changes ul{list-style:none;margin:0;padding:0;font-size:.9rem;color:var(--text-sub)}
.acp-changes li{padding:6px 0;border-bottom:1px solid var(--border)}
.acp-rules > p{font-size:.92rem;color:var(--text-sub)}

/* ------------------------------------------------------------------ 6 · diagrams: wide drawing, narrow one under ~560 px */
.acp-dia{margin:24px 0;container-type:inline-size}
.acp-dia-box{padding:12px;background:#fff;border:1px solid var(--border)}
.acp-dia-svg{display:block;width:100%;height:auto;font-family:var(--acp-inter);font-variant-numeric:tabular-nums}
.acp-dia-svg .m{font-family:var(--acp-mono)!important}
.acp-dia-n{display:none;max-width:440px;margin-inline:auto}
@container (max-width:559px){.acp-dia-w{display:none}.acp-dia-n{display:block}.acp-dia-box{padding:8px 4px}}
@supports not (container-type:inline-size){@media (max-width:600px){.acp-dia-w{display:none}.acp-dia-n{display:block}.acp-dia-box{padding:8px 4px}}}

/* ------------------------------------------------------------------ 7 · tables in their own scroll box (no page scroll at 375) */
.acp-tbl{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;margin:16px 0;border:1px solid var(--border);background:#fff}
.acp-tbl table,main table{width:100%;border-collapse:collapse;font-size:.88rem;line-height:1.45;font-variant-numeric:lining-nums tabular-nums}
.acp-tbl caption,main caption{caption-side:top;text-align:left;padding:10px 12px 8px;font-size:.84rem;color:var(--text-muted)}
.acp-tbl th,.acp-tbl td,main th,main td{padding:8px 12px;text-align:left;vertical-align:top;border-bottom:1px solid var(--border)}
.acp-tbl thead th,main thead th{background:var(--bg-alt);color:var(--text);font-weight:700}
.acp-tbl tbody tr:last-child > *{border-bottom:0}
.acp-tbl td{overflow-wrap:break-word}
.acp-tbl time{white-space:nowrap}
.acp-tbl[tabindex]:focus-visible{outline-offset:-2px}
.acp-sources td:last-child,.acp-rules td:last-child{overflow-wrap:break-word}
.acp-tbl code,.acp-tbl .acp-mono{overflow-wrap:normal}  /* a short code word never breaks mid-word; a long one scrolls the box */
@media (max-width:600px){.acp-tbl th,.acp-tbl td{padding:8px}.acp-tbl caption{padding:8px 8px 6px}}
.acp-w-ledger td,.acp-w-cards td:nth-child(2){white-space:nowrap}

/* ------------------------------------------------------------------ 8 · Try it: static stand-ins and the widgets acp.js builds */
.acp-tryit{margin-top:48px}
.acp-w-t{margin:0 0 10px}
.acp-w{padding:18px 20px;border:1px solid var(--border);border-top:3px solid var(--primary);background:#fff}
@media (max-width:600px){.acp-w{padding:14px}}
.acp-w > :last-child{margin-bottom:0}
.acp-w-i{color:var(--text-sub);font-size:.95rem}
.acp-w-stops,.acp-w-tasks{margin:0 0 14px;padding-left:1.4em}
.acp-w-stops li,.acp-w-tasks li{margin:0 0 10px}
.acp-w-task{display:block;font-size:.9rem;color:var(--text-muted)}
.acp-w-day,.acp-w-note,.acp-w-rule{font-size:.9rem;color:var(--text-sub)}
.acp-w-start,.acp-w-end{font-size:.95rem}
/* <details> keep the site look of styles.css (bordered box, + / −); only the size and spacing change here */
.acp-w details,.acp-ans{margin:8px 0 0}
.acp-w details > summary,.acp-ans > summary{padding:10px 16px;min-height:44px;gap:12px;font-size:.92rem;color:var(--primary)}
.acp-w details > :not(summary),.acp-ans > :not(summary){margin:0;padding:0 16px 12px;font-size:.94rem;line-height:1.6;color:var(--acp-ink)}
.acp-wi{margin:0 0 16px}
.acp-wi-i{color:var(--text-sub);font-size:.95rem}
.acp-k{color:var(--text-muted);font-weight:600}
.acp-btns{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;margin:12px 0}
.acp-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:40px;padding:8px 18px;border:1.5px solid var(--border-hover,#cbd5e1);border-radius:100px;background:#fff;color:var(--text);font:600 .9rem/1.2 var(--acp-syne);cursor:pointer;text-decoration:none}
.acp-btn:hover{border-color:var(--primary);color:var(--primary)}
.acp-btn-p{background:var(--primary);border-color:var(--primary);color:#fff}
.acp-btn-p:hover{background:var(--primary-dark,#1d4ed8);color:#fff}
.acp-btn[aria-pressed="true"]{background:var(--acp-soft);border-color:var(--primary);color:var(--primary-dark,#1d4ed8)}
.acp-btn:disabled,.acp-btn[aria-disabled="true"]{opacity:.55;cursor:not-allowed}
/* map tour */
.acp-map-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;margin:0 0 12px}
.acp-map-stop{display:flex;align-items:center;gap:10px;min-height:48px;padding:8px 12px;text-align:left;border:1.5px solid var(--border);background:var(--bg-alt);color:var(--text);font:600 .9rem/1.3 var(--acp-syne);cursor:pointer}
.acp-map-stop:hover{border-color:var(--primary)}
.acp-map-stop[aria-pressed="true"]{border-color:var(--primary);background:var(--acp-soft);color:var(--primary-dark,#1d4ed8);box-shadow:inset 0 0 0 1px var(--primary)}
.acp-map-n{flex:none;display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:100px;background:#fff;border:1px solid var(--border-hover,#cbd5e1);font:700 .75rem/1 var(--acp-inter);color:var(--text-sub)}
.acp-map-stop[aria-pressed="true"] .acp-map-n{background:var(--primary);border-color:var(--primary);color:#fff}
.acp-map-info{min-height:8.2em;padding:12px 16px;background:var(--bg-alt);border-left:3px solid var(--primary);font-size:.95rem}
.acp-map-info p{margin:0 0 6px}
.acp-map-info p:last-child{margin:0}
.acp-map-info ol{margin:6px 0 0;padding-left:1.4em}
.acp-map-step{color:var(--text-muted);font-weight:500;font-size:.85rem}
/* ID mapper */
.acp-idcards{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));align-items:start;gap:8px;margin:0 0 14px}
.acp-idcard{border:1.5px solid var(--border);background:#fff;min-width:0}
.acp-idcard > button{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;width:100%;min-height:52px;padding:10px 36px 10px 12px;position:relative;text-align:left;border:0;background:var(--bg-alt);color:var(--text);font:600 .95rem/1.3 var(--acp-syne);cursor:pointer}
.acp-idcard > button::after{content:"";position:absolute;right:14px;top:50%;width:8px;height:8px;margin-top:-6px;border-right:2px solid var(--text-muted);border-bottom:2px solid var(--text-muted);transform:rotate(45deg);transition:transform .15s}
.acp-idcard > button[aria-expanded="true"]{background:var(--acp-soft)}
.acp-idcard > button[aria-expanded="true"]::after{transform:rotate(-135deg);margin-top:-2px}
.acp-idcard-p{padding:10px 12px 4px;font-size:.9rem}
.acp-idcard-p p{margin:0 0 6px}
.acp-idfb{min-height:3.4em;margin:0 0 4px;padding:10px 14px;background:var(--bg-alt);border-left:3px solid var(--border-hover,#cbd5e1);font-size:.95rem}
.acp-idfb p{margin:0 0 4px}
.acp-idfb p:last-child{margin:0}
.acp-idfb.is-right{border-left-color:var(--acp-ok)}
.acp-idfb.is-wrong{border-left-color:var(--acp-bad)}
.acp-idfb .is-right{color:var(--acp-ok);font-weight:600}
.acp-idfb .is-wrong{color:var(--acp-bad);font-weight:600}
.acp-colbtn{display:inline-flex;align-items:center;min-height:36px;padding:4px 10px;border:1.5px solid var(--border-hover,#cbd5e1);border-radius:100px;background:#fff;color:var(--text);font:700 .82rem/1.2 var(--acp-syne);white-space:nowrap;cursor:pointer}
.acp-colbtn:hover{border-color:var(--primary);color:var(--primary)}
.acp-colbtn.is-found,.acp-colbtn.is-found:hover{background:var(--acp-ok-bg);border-color:var(--acp-ok);color:var(--acp-ok)}
.acp-colbtn.is-wrong{border-color:var(--acp-bad);color:var(--acp-bad)}
.acp-tbl td.is-col{background:var(--acp-ok-bg)}
/* title lab (counter), loads the frozen engine when it scrolls into view */
.acp-lab{margin:20px 0 0;padding:18px 0 0;border-top:1px dashed var(--border-hover,#cbd5e1)}
.acp-lab[aria-busy="true"]{min-height:4.5em}
.acp-lab-load{color:var(--text-muted);font-size:.92rem}
.acp-lab-t{font-size:.95rem;color:var(--text-sub)}
.acp-seeds{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 10px}
.acp-lab-facts{font-size:.88rem;color:var(--text-muted)}
.acp-flabel{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin:14px 0 6px;font-weight:700;color:var(--text);font-size:.95rem}
.acp-count{font:700 .9rem/1 var(--acp-inter);font-variant-numeric:tabular-nums;color:var(--acp-ok);white-space:nowrap}
.acp-count.is-warn{color:var(--acp-warn)}
.acp-count.is-bad{color:var(--acp-bad)}
.acp-field{display:block;width:100%;min-height:3.2em;padding:10px 12px;border:1.5px solid var(--border-hover,#cbd5e1);background:#fff;color:var(--text);font:400 1rem/1.5 var(--acp-inter);resize:vertical}
.acp-field:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px rgba(37,99,235,.15)}
.acp-chips{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:10px 0 0;font-size:.82rem}
.acp-kc{padding:3px 10px;border:1px solid var(--border);border-radius:100px;color:var(--text-muted);background:#fff}
.acp-kc.on{border-color:var(--acp-ok-edge);background:var(--acp-ok-bg);color:#065f46}
.acp-check{display:inline-flex;align-items:center;gap:8px;min-height:40px;font-size:.9rem;color:var(--text-sub);cursor:pointer}
.acp-check input{width:18px;height:18px;accent-color:var(--primary)}
.acp-cut{margin:4px 0 0}
.acp-cut:empty{display:none}
.acp-cut > div{padding:10px 14px;background:var(--bg-alt);border-left:3px solid var(--border-hover,#cbd5e1);font-size:.9rem}
.acp-cut p{margin:0 0 4px}
.acp-lab .lg-checks{margin:16px 0 0}
.acp-lab .lg-check-label{font-family:var(--acp-syne)}
.acp-src{display:inline-block;margin-left:4px;padding:0 7px;border:1px solid var(--border);border-radius:100px;font-size:.7rem;font-weight:600;color:var(--text-muted);white-space:nowrap;vertical-align:1px}
.acp-labsteps{margin:16px 0 8px;padding-left:1.4em;font-size:.9rem;color:var(--text-sub)}
.acp-labsteps li{margin:0 0 4px}
.acp-lab-note{font-size:.84rem;color:var(--text-muted)}

/* ------------------------------------------------------------------ 9 · Check yourself */
.acp-qs{margin:0;padding-left:1.4em}
.acp-qs > li{margin:0 0 24px}
.acp-q{font-weight:600;color:var(--text);margin:0 0 6px}
.acp-opts{list-style:upper-alpha;margin:0 0 6px;padding-left:1.6em}
.acp-opts li{margin:0 0 4px}
.acp-ans > ul{list-style:none}
.acp-ans > ul li{margin:0 0 6px}

/* ------------------------------------------------------------------ 10 · hub cards, glossary A-Z, Where things moved + lookup */
.acp-cards{list-style:none;margin:18px 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}
.acp-card{position:relative;margin:0;padding:16px 18px;border:1px solid var(--border);background:#fff;transition:border-color .15s,box-shadow .15s}
.acp-card:hover{border-color:var(--primary);box-shadow:var(--shadow-md,0 4px 12px rgba(15,23,42,.08))}
.acp-card a{color:var(--text);text-decoration:none;font-weight:700}
.acp-card a::after{content:"";position:absolute;inset:0}
.acp-card p{margin:6px 0 0;font-size:.9rem;color:var(--text-sub)}
.acp-card h3{margin:0}
.acp-az{margin:0 0 24px}
.acp-az ul,.acp-az ol,p.acp-az,div.acp-az{display:flex;flex-wrap:wrap;gap:6px;list-style:none;margin:0;padding:0}
.acp-az li{margin:0}
.acp-az a,.acp-az span{display:inline-flex;align-items:center;justify-content:center;min-width:40px;height:40px;padding:0 8px;border:1px solid var(--border);background:#fff;font:700 .9rem/1 var(--acp-inter);color:var(--text);text-decoration:none}
.acp-az a:hover{border-color:var(--primary);color:var(--primary)}
.acp-az span{color:#94a3b8;background:var(--bg-alt)}
.acp-gloss dt,dt[id]{font-size:1.05rem;margin-top:22px}
dfn{font-style:normal} /* Syne has no italic face: no synthetic slant */
.acp-gloss dd p{margin:0 0 6px}
dt:target,h2:target,h3:target,tr:target > *{background:var(--acp-soft);box-shadow:-6px 0 0 var(--acp-soft)}
.acp-lookup{margin:0 0 18px}
.acp-lookup label{display:block;margin:0 0 6px;font-weight:700;color:var(--text);font-size:.95rem}
input[data-lookup]{width:100%;max-width:460px;min-height:44px;padding:10px 16px;border:1.5px solid var(--border-hover,#cbd5e1);border-radius:100px;background:#fff;color:var(--text);font:400 1rem/1.3 var(--acp-inter)}
input[data-lookup]:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px rgba(37,99,235,.15)}
.acp-lookup-s{min-height:1.5em;margin:8px 0 0;font-size:.9rem;color:var(--text-sub)}
table[data-moved] th[scope="row"]{font-weight:700;color:var(--text);background:none;white-space:normal}
table[data-moved] tr.acp-mv-g > *,table[data-moved] th[colspan]{background:var(--bg-section,#f1f5f9);color:var(--text);font-weight:700}
/* fixed columns: filtering rows never makes the columns jump */
@media (min-width:900px){table[data-moved]{table-layout:fixed}
  table[data-moved] thead th:nth-child(1){width:18%}table[data-moved] thead th:nth-child(2){width:31%}table[data-moved] thead th:nth-child(3){width:12%}
  table[data-moved] thead th:nth-child(4){width:27%}table[data-moved] thead th:nth-child(5){width:12%}}
/* Rules, Sources and the moved table on a phone: one card per row (acp.js adds .acp-stack, data-label and roles) */
@media (max-width:600px){
  .acp-tbl:has(> table.acp-stack){overflow:visible}
  table.acp-stack,table.acp-stack > tbody,table.acp-stack > tbody > tr,table.acp-stack > tbody > tr > *,table.acp-stack > caption{display:block;width:auto}
  table.acp-stack > thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  table.acp-stack > tbody > tr{padding:12px 14px;border-bottom:1px solid var(--border)}
  table.acp-stack > tbody:last-child > tr:last-child{border-bottom:0}
  table.acp-stack > tbody > tr > *{margin:6px 0 0;padding:0;border:0;background:none}
  table.acp-stack > tbody > tr > :first-child{margin:0;font-weight:600;color:var(--text)}
  table.acp-stack [data-label]::before{content:attr(data-label) ": ";content:attr(data-label) ": " / "";font-weight:600;color:var(--text-muted)}
  table.acp-stack [data-empty]{display:none}
  table.acp-stack > tbody > tr.acp-mv-g{padding:10px 14px;background:var(--bg-section,#f1f5f9)}
  table.acp-stack tr:target{background:var(--acp-soft)}
  table.acp-stack tr:target > *{box-shadow:none}
}

/* ------------------------------------------------------------------ 11 · waitlist box (#waitlist, form[data-wl]) */
#waitlist{width:calc(100% - 2 * var(--acp-gut));max-width:var(--acp-col);margin:48px auto 0;padding:26px 28px 16px;border:1px solid var(--acp-soft-edge);background:linear-gradient(180deg,#f5f9ff,var(--acp-soft))}
main #waitlist{width:auto}
#waitlist h2{margin:0 0 8px;font-size:1.35rem}
#waitlist > p{color:var(--text-sub)}
form[data-wl]{position:relative;display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px;margin:0}
form[data-wl] > label,form[data-wl] > p,form[data-wl] > [role="status"]{flex:1 1 100%;margin:0}
form[data-wl] > label,form[data-wl] label[for]{display:block;font-weight:700;color:var(--text);font-size:.95rem}
form[data-wl] > div:not([aria-hidden]){flex:1 1 100%;display:flex;flex-wrap:wrap;gap:10px;min-width:0}
form[data-wl] input[type="email"]{flex:1 1 220px;min-width:0;min-height:46px;padding:10px 18px;border:1.5px solid var(--border-hover,#cbd5e1);border-radius:100px;background:#fff;color:var(--text);font:400 1rem/1.3 var(--acp-inter)}
form[data-wl] input[type="email"]:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px rgba(37,99,235,.18)}
form[data-wl] input[aria-invalid="true"]{border-color:var(--acp-bad)}
form[data-wl] button[type="submit"]{flex:0 0 auto;min-height:46px;padding:10px 24px;border:0;border-radius:100px;background:var(--primary);color:#fff;font:700 .95rem/1.2 var(--acp-syne);cursor:pointer}
form[data-wl] button[type="submit"]:hover{background:var(--primary-dark,#1d4ed8)}
form[data-wl] button[type="submit"]:disabled,form[data-wl] button[aria-disabled="true"]{opacity:.6;cursor:progress}
form[data-wl] > p{font-size:.86rem;color:var(--text-sub)}
form[data-wl] [role="status"]{min-height:1.5em;font-size:.92rem;font-weight:600;color:var(--text-sub)}
form[data-wl][data-state="ok"] [role="status"]{color:var(--acp-ok)}
form[data-wl][data-state="email"] [role="status"],form[data-wl][data-state="busy"] [role="status"],form[data-wl][data-state="error"] [role="status"],form[data-wl][data-state="network"] [role="status"]{color:var(--acp-bad)}
/* honeypot: off screen for people, still in the form for bots (never display:none) */
form[data-wl] > [aria-hidden="true"],form[data-wl] .acp-hp,form[data-wl] .wl-hp,form[data-wl] > input[name="wl_hp"]{position:absolute!important;left:-10000px!important;top:auto!important;width:1px!important;height:1px!important;overflow:hidden!important;opacity:0}
@media (max-width:480px){#waitlist{padding:20px 18px}form[data-wl] button[type="submit"]{flex:1 1 100%}}

/* ------------------------------------------------------------------ 12 · footer, cookie banner */
:where(body > footer),.acp-foot{margin:56px 0 0;padding:28px max(var(--acp-gut),calc((100% - 1100px) / 2)) 40px;border-top:1px solid var(--border);background:var(--bg-alt);font-size:.86rem;line-height:1.6;color:var(--text-sub)}
:where(body > footer) p,.acp-foot p{margin:0 0 8px;max-width:760px}
:where(body > footer) ul,.acp-foot ul{display:flex;flex-wrap:wrap;gap:6px 18px;list-style:none;margin:12px 0 0;padding:0}
:where(body > footer) a,.acp-foot a{color:var(--text-sub);text-decoration:underline;text-underline-offset:2px}
:where(body > footer) a:hover,.acp-foot a:hover{color:var(--primary)}
.cookie-banner{position:fixed;left:0;right:0;bottom:0;z-index:9999;display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px 14px;padding:14px var(--acp-gut);background:#fff;border-top:1px solid var(--border);box-shadow:0 -8px 24px rgba(15,23,42,.08);font:500 .86rem/1.5 var(--acp-syne);color:var(--text-sub);transform:translateY(110%);transition:transform .3s ease}
.cookie-banner.show{transform:none}
.cookie-banner a{color:var(--primary);text-decoration:underline}
.cookie-banner .cookie-btn{min-height:40px}
/* until the banner is answered, keyboard focus and the last footer links stay above it (171 px tall at 320) */
html:has(.cookie-banner.show){scroll-padding-bottom:180px}
html:has(.cookie-banner.show) .acp-foot,html:has(.cookie-banner.show) :where(body > footer){padding-bottom:200px}

/* ------------------------------------------------------------------ 13 · reduced motion, print */
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}
@media print{
  body{padding-top:0;font-size:11pt;color:#000}
  .acp-strip{position:static;border:1px solid #999}
  nav:not([aria-label]):not(.acp-bc):not(.acp-az),.nav-overlay,.cookie-banner,#waitlist,.acp-lookup,input[data-lookup],.acp-wi,.skip-link{display:none!important}
  main{max-width:none;padding:0}
  .acp-tbl{overflow:visible;border:0}
  .acp-w details,.acp-ans{display:block}
  .acp-w > [hidden]{display:block!important}
  a{color:#000}
}
/* failed check value: 4.5:1 on white at 13px bold (the shared red gives 3.76:1) */
.acp-w .lg-check.is-fail .lg-check-val{color:#dc2626}
