    *,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
    html{scroll-behavior:smooth;font-size:16px;overscroll-behavior:none}
    body{font-family:var(--fs);background:var(--bg);color:var(--text);line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden;overscroll-behavior:none}
    /* full-screen overlays (auth gate, boot cover) need the page underneath to be totally
       unscrollable — on iOS Safari, a scrollable body behind a position:fixed overlay can
       "bounce" during a fast/elastic scroll and flash the real page edge through the fixed
       layer for a frame. Locking body scroll here removes anything to bounce in the first
       place, rather than relying on overscroll-behavior alone (spotty on older iOS). */
    body.no-scroll{position:fixed;inset:0;overflow:hidden}
    a{text-decoration:none;color:inherit}
    ul{list-style:none}
    button{cursor:pointer;font-family:inherit;border:none;background:none}
    ::selection{background:var(--lime);color:#fff}

    /* ── ACCESSIBILITY: focus + skip link ── */
    :focus-visible{outline:2px solid var(--lime);outline-offset:2px;border-radius:4px}
    .skip-link{position:absolute;left:1rem;top:-3rem;background:var(--lime);color:var(--on-accent);padding:.6rem 1rem;border-radius:var(--r);font-family:var(--fb);font-weight:600;font-size:.85rem;z-index:1000;transition:top .15s ease}
    .skip-link:focus{top:1rem}

    /* ── HEADINGS ── */
    .eyebrow{font-family:var(--fb);font-size:.72rem;font-weight:600;letter-spacing:0;color:var(--lime);margin-bottom:.5rem;display:flex;align-items:center;gap:.6rem}
    .eyebrow::before{content:'';display:block;width:18px;height:1.5px;background:var(--lime)}
    /* Sentence case, Inter, tight tracking — a page title, not an announcement. The old rule was
       Barlow Condensed 900 UPPERCASE at up to 3.4rem, which is why every screen opened by shouting
       its own name at twice the size of anything it contained. */
    .page-title{font-family:var(--fd);font-weight:500;font-size:clamp(1.75rem,3.4vw,2.35rem);letter-spacing:-.03em;color:var(--text);line-height:1.15;margin-bottom:.35rem}
    .page-title em{font-style:normal;color:var(--lime)}
    .page-desc{font-family:var(--fb);font-size:.85rem;color:var(--t3);line-height:1.6;max-width:640px;margin-bottom:1.6rem}
    .ic{width:18px;height:18px;display:inline-block;vertical-align:middle;flex-shrink:0}
    .ic--fill{fill:currentColor}

    /* ── SUBHEAD ── */
    .subhead{font-family:var(--fd);font-weight:700;font-size:1.02rem;letter-spacing:-.015em;color:var(--text);margin:2rem 0 1rem;display:flex;align-items:center;gap:.75rem}
    .subhead::after{content:'';flex:1;height:1px;background:var(--b1)}
    .hint{font-family:var(--fb);font-size:.72rem;color:var(--t3);margin-top:.5rem}
    .linklike{background:none;border:none;padding:0;font:inherit;font-weight:700;color:var(--lime);text-decoration:underline;cursor:pointer}
    .linklike:hover{color:var(--lime-bright,var(--lime))}
    .danger-zone{margin-top:3rem;padding-top:1.5rem;border-top:1px solid var(--b1)}

    /* ── TABLE SCROLL WRAP ── */
    .table-scroll{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
