:root{--white:#FFFFFF;--paper:#F7FAFF;--paper-2:#EEF4FD;--ink:#08131F;--ink-mid:#3C5470;--ink-soft:#5E7590;--line:rgba(15,45,90,.11);--line-lit:rgba(37,99,235,.35);--cobalt:#1D4ED8;--cobalt-br:#2563EB;--ice:#60A5FA;--gold:#B45309;--green:#047857;--red:#BE123C;--ease:cubic-bezier(.16,1,.3,1);--wrap:1160px}*,*::before,*::after{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{margin:0;background:var(--white);color:var(--ink-mid);font-family:'Inter',system-ui,sans-serif;font-size:106.25%;line-height:1.72;-webkit-font-smoothing:antialiased}h1,h2,h3,h4{color:var(--ink);margin:0;letter-spacing:-.022em;font-weight:700}h1{font-size:clamp(2.35rem,5.4vw,4rem);line-height:1.05;font-weight:800}h2{font-size:clamp(1.7rem,3.4vw,2.5rem);line-height:1.15}h3{font-size:1.12rem;font-weight:600;line-height:1.35;letter-spacing:-.012em}p{margin:0 0 1.1em;max-width:66ch}a{color:var(--cobalt);text-underline-offset:3px}.wrap{max-width:var(--wrap);margin:0 auto;padding:0 1.5rem}.eyebrow{font-family:'JetBrains Mono',monospace;font-size:.75rem;letter-spacing:.21em;text-transform:uppercase;color:var(--cobalt-br);display:flex;align-items:center;gap:.7rem;margin-bottom:1.1rem}.eyebrow::after{content:'';height:1px;flex:1;max-width:90px;background:linear-gradient(90deg,var(--line-lit),transparent)}section{padding:5.5rem 0}.lede{font-size:1.17rem;color:var(--ink-mid);max-width:60ch}:focus-visible{outline:2.5px solid var(--cobalt-br);outline-offset:3px;border-radius:8px}.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}header{position:sticky;top:0;z-index:60;background:rgba(255,255,255,.88);backdrop-filter:blur(18px) saturate(1.4);-webkit-backdrop-filter:blur(18px) saturate(1.4);border-bottom:1px solid transparent;transition:border-color 250ms var(--ease),box-shadow 250ms var(--ease)}header.stuck{border-bottom-color:var(--line);box-shadow:0 6px 26px -14px rgba(8,19,31,.28)}.wordmark .n em{font-style:normal;font-weight:500;color:var(--cobalt-br)}.nav-cta:hover{background:var(--cobalt);box-shadow:0 8px 20px -6px rgba(37,99,235,.55)}@media(max-width:1080px){.menu.open{display:flex}}.btn{display:inline-flex;align-items:center;gap:.55rem;border:0;cursor:pointer;text-decoration:none;font-family:inherit;font-size:.98rem;font-weight:600;padding:.92rem 1.6rem;border-radius:13px;min-height:44px;transition:all 200ms var(--ease)}.btn-primary{background:var(--cobalt-br);color:#fff}.btn-primary:hover{background:var(--cobalt);transform:translateY(-2px);box-shadow:0 14px 30px -10px rgba(37,99,235,.6)}.btn-ghost{background:rgba(255,255,255,.85);color:var(--ink);border:1.5px solid var(--line)}.btn-ghost:hover{border-color:var(--line-lit);transform:translateY(-2px)}.grid{display:grid;gap:1rem}.g3{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.g5{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}.card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:1.5rem;transition:all 220ms var(--ease);text-decoration:none;display:block}a.card:hover{border-color:var(--line-lit);transform:translateY(-4px);box-shadow:0 22px 46px -22px rgba(37,99,235,.4)}.card h3{margin-bottom:.45rem}.card p{font-size:.93rem;margin:0;color:var(--ink-mid)}.card .idx{font-family:'JetBrains Mono',monospace;font-size:.75rem;color:var(--cobalt-br);letter-spacing:.14em;display:block;margin-bottom:.7rem}.ico{width:26px;height:26px;color:var(--cobalt-br);margin-bottom:.85rem}.alt{background:var(--paper)}.hero{position:relative;overflow:hidden;padding:4.5rem 0 5rem;background:linear-gradient(180deg,#fff 0%,#FAFCFF 55%,#F2F7FE 100%)}#trace{position:absolute;inset:0;width:100%;height:100%;z-index:0}.hero::after{content:'';position:absolute;inset:0;z-index:1;pointer-events:none;background:radial-gradient(ellipse 62% 70% at 28% 48%,rgba(255,255,255,.95),rgba(255,255,255,.6) 50%,transparent 76%)}@media(max-width:900px){.hero::after{background:rgba(255,255,255,.78)}}.hero .wrap{position:relative;z-index:2}.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:3rem;align-items:center}@media(max-width:900px){.hero-grid{grid-template-columns:1fr}}h1 em{font-style:normal;background:linear-gradient(100deg,var(--cobalt) 20%,#3B82F6);-webkit-background-clip:text;background-clip:text;color:transparent}.cta-row{display:flex;gap:.75rem;flex-wrap:wrap;margin-top:2rem}.trust{display:flex;flex-wrap:wrap;gap:1.4rem;margin-top:2.4rem;padding-top:1.6rem;border-top:1px solid var(--line)}.trust div{display:flex;align-items:center;gap:.5rem;font-size:.87rem;color:var(--ink-mid)}.trust svg{width:16px;height:16px;color:var(--green);flex:none}.stat-card{background:rgba(255,255,255,.9);backdrop-filter:blur(16px);border:1px solid var(--line);border-radius:20px;padding:1.7rem 1.6rem;box-shadow:0 26px 60px -26px rgba(8,19,31,.3)}.stat-card .k{font-family:'JetBrains Mono',monospace;font-size:.75rem;letter-spacing:.17em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:.5rem}.stat-card .big{font-family:'JetBrains Mono',monospace;font-size:2.5rem;font-weight:600;color:var(--ink);line-height:1;letter-spacing:-.03em}.stat-card p{font-size:.9rem;margin:.6rem 0 0;color:var(--ink-mid)}.stat-card cite{display:block;font-size:.76rem;color:var(--ink-soft);font-style:normal;margin-top:1rem;padding-top:.9rem;border-top:1px solid var(--line)}.tbl{width:100%;border-collapse:collapse;margin-top:1.8rem;font-size:.92rem}.tbl th,.tbl td{text-align:start;padding:.95rem 1rem;border-bottom:1px solid var(--line);vertical-align:top}.tbl th{font-family:'JetBrains Mono',monospace;font-size:.75rem;letter-spacing:.13em;text-transform:uppercase;color:var(--ink-soft);font-weight:500;border-bottom:1.5px solid var(--line)}.tbl td:first-child{font-weight:600;color:var(--ink)}.tbl tr:hover td{background:var(--paper)}.wrapscroll{overflow-x:auto}.band{background:var(--ink);color:#CBDAEB;border-radius:22px;padding:2.6rem 2.4rem}.band h2{color:#fff}.band p{color:#B9CCE1}.band .big{font-family:'JetBrains Mono',monospace;font-size:2.6rem;color:#fff;font-weight:600;line-height:1}.band cite{font-style:normal;font-size:.79rem;color:#93AAC6;display:block;margin-top:.5rem}.band-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:2.4rem;align-items:center}@media(max-width:820px){.band-grid{grid-template-columns:1fr}.band{padding:2rem 1.5rem}}details{border-bottom:1px solid var(--line)}summary{cursor:pointer;padding:1.15rem 2rem 1.15rem 0;font-weight:600;color:var(--ink);font-size:1.02rem;list-style:none;position:relative}summary::-webkit-details-marker{display:none}summary:hover{color:var(--cobalt)}summary::after{content:'';position:absolute;inset-inline-end:.35rem;top:1.5rem;width:9px;height:9px;border-inline-end:2px solid var(--ink-soft);border-bottom:2px solid var(--ink-soft);transform:rotate(45deg);transition:transform 220ms var(--ease)}details[open] summary::after{transform:rotate(-135deg)}details p{padding:0 1.5rem 1.3rem 0;font-size:.95rem;margin:0}footer h4{color:#fff;font-size:.75rem;font-family:'JetBrains Mono',monospace;letter-spacing:.16em;text-transform:uppercase;margin-bottom:.9rem;font-weight:500}.disc{border:1px solid rgba(255,255,255,.14);border-radius:14px;padding:1.2rem 1.4rem;margin:2.5rem 0 1.5rem;font-size:.82rem;line-height:1.65;color:#A3B8D0}.disc b{color:#fff}body.eval{overflow:hidden}body.eval #view-eval{display:grid}#view-eval{grid-template-columns:1fr 430px;height:calc(100dvh - 60px)}@media(max-width:960px){#view-eval{grid-template-columns:1fr;grid-template-rows:40vh 1fr}}.stage{position:relative;overflow:hidden;background:linear-gradient(160deg,#FAFCFF,#EDF3FD)}.board{position:absolute;top:0;inset-inline-start:0;width:1700px;height:1040px;transform-origin:0 0;transition:transform 900ms var(--ease);will-change:transform}.strings{position:absolute;inset:0;width:1700px;height:1040px;pointer-events:none}.strings path{fill:none;stroke-linecap:round;stroke-dasharray:var(--len);stroke-dashoffset:var(--len);transition:stroke-dashoffset 800ms var(--ease)}.strings path.drawn{stroke-dashoffset:0}.pin{position:absolute;width:216px;transform:translate(-50%,-50%) rotate(var(--rot));transform-origin:50% 0}.pin .tack{position:absolute;top:-9px;inset-inline-start:50%;width:15px;height:15px;margin-inline-start:-7.5px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff,var(--cobalt-br) 65%);box-shadow:0 2px 5px rgba(8,19,31,.35);z-index:3}.pin .slip{background:#fff;border-radius:4px;padding:.85rem .95rem;box-shadow:0 10px 26px -10px rgba(8,19,31,.32);border:1px solid rgba(8,19,31,.07)}.pin .lab{font-family:'JetBrains Mono',monospace;font-size:.75rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:.28rem}.pin .val{font-size:.94rem;font-weight:600;color:var(--ink);line-height:1.32}.pin.pending .slip{background:rgba(255,255,255,.5);border:1.5px dashed rgba(37,99,235,.34);box-shadow:none;min-height:64px;display:grid;place-items:center}.pin.pending .val{color:var(--ink-soft);font-weight:500;font-size:.85rem}.pin.pending .tack{background:rgba(37,99,235,.25);box-shadow:none}.pin.active .slip{border-color:var(--cobalt-br);box-shadow:0 0 0 4px rgba(37,99,235,.12),0 12px 30px -10px rgba(37,99,235,.4)}.pin.flag .slip{border-inline-start:3px solid var(--red)}.pin.flag .tack{background:radial-gradient(circle at 35% 30%,#fff,var(--red) 65%)}.pin.drop{animation:drop 620ms var(--ease) both}@keyframes drop{0%{opacity:0;transform:translate(-50%,-50%) rotate(var(--rot)) scale(1.5) translateY(-40px)}60%{opacity:1}100%{opacity:1;transform:translate(-50%,-50%) rotate(var(--rot)) scale(1)}}.verdict-node{position:absolute;width:280px;transform:translate(-50%,-50%);z-index:5}.verdict-node .slip{background:linear-gradient(180deg,#fff,#F6FAFF);border:2px solid var(--cobalt-br);border-radius:8px;padding:1.1rem;box-shadow:0 20px 50px -14px rgba(37,99,235,.5)}.verdict-node .lab{color:var(--cobalt-br)}.verdict-node .val{font-size:1.05rem}.panel{background:rgba(255,255,255,.9);backdrop-filter:blur(24px);border-inline-start:1px solid var(--line);overflow-y:auto;padding:1.7rem 1.6rem 2.6rem}@media(max-width:960px){.panel{border-inline-start:0;border-top:1px solid var(--line);padding:1.3rem 1.2rem 2rem}}.prog{display:flex;align-items:center;gap:.8rem;margin-bottom:1.5rem}.ptrack{flex:1;height:3px;background:rgba(37,99,235,.16);border-radius:99px;overflow:hidden}.pfill{height:100%;width:0;border-radius:99px;background:linear-gradient(90deg,var(--cobalt),#60A5FA);transition:width 700ms var(--ease)}.pnum{font-family:'JetBrains Mono',monospace;font-size:.75rem;color:var(--ink-soft);letter-spacing:.08em;font-variant-numeric:tabular-nums;white-space:nowrap}.panel h1{font-size:1.34rem;line-height:1.3;font-weight:700;margin-bottom:.55rem}.help{font-size:.89rem;color:var(--ink-soft);margin:0 0 1.4rem;line-height:1.55}.opts{display:flex;flex-direction:column;gap:.5rem}.opt{display:flex;align-items:flex-start;gap:.75rem;width:100%;text-align:start;cursor:pointer;font-family:inherit;font-size:.94rem;color:var(--ink);background:rgba(255,255,255,.8);border:1.5px solid var(--line);border-radius:11px;padding:.85rem .95rem;min-height:44px;transition:all 170ms var(--ease)}.opt:hover{border-color:var(--line-lit);background:#fff;transform:translateX(3px);box-shadow:0 6px 18px -8px rgba(37,99,235,.34)}.opt .dot{width:8px;height:8px;border-radius:99px;background:var(--line-lit);flex:none;margin-top:.5rem;transition:all 170ms var(--ease)}.opt:hover .dot{background:var(--cobalt-br);box-shadow:0 0 0 4px rgba(37,99,235,.15)}.opt b{font-weight:500;display:block}.opt small{display:block;color:var(--ink-soft);font-size:.8rem;margin-top:.08rem;line-height:1.45}.back{margin-top:1.2rem;background:none;border:0;cursor:pointer;font-family:inherit;font-size:.86rem;color:var(--ink-soft);padding:.5rem 0;text-decoration:underline;text-decoration-style:dotted;text-underline-offset:4px}.back:hover{color:var(--cobalt)}.fade{transition:opacity 260ms var(--ease),transform 260ms var(--ease)}.fade.out{opacity:0;transform:translateY(-10px)}.verdict{display:inline-flex;align-items:center;font-family:'JetBrains Mono',monospace;font-size:.75rem;letter-spacing:.15em;text-transform:uppercase;padding:.35rem .75rem;border-radius:99px;margin-bottom:1rem}.v-act{background:rgba(4,120,87,.1);color:var(--green);border:1px solid rgba(4,120,87,.3)}.v-mid{background:rgba(37,99,235,.1);color:var(--cobalt);border:1px solid rgba(37,99,235,.3)}.v-low{background:rgba(180,83,9,.1);color:var(--gold);border:1px solid rgba(180,83,9,.3)}.res p{margin:0 0 .95rem;font-size:.93rem}.res h2{font-size:.97rem;font-weight:600;color:var(--ink);margin:1.7rem 0 .7rem}.steps{list-style:none;padding:0;margin:0}.steps li{display:flex;gap:.7rem;padding:.6rem 0;border-top:1px solid var(--line);font-size:.89rem;line-height:1.5}.steps li:first-child{border-top:0;padding-top:0}.steps .n{font-family:'JetBrains Mono',monospace;font-size:.75rem;color:var(--cobalt-br);flex:none;margin-top:.25rem}.flag-box{border-inline-start:3px solid var(--red);background:rgba(190,18,60,.05);padding:.9rem 1.05rem;border-radius:0 10px 10px 0;margin:1.1rem 0}.flag-box strong{color:var(--red);display:block;margin-bottom:.25rem;font-size:.89rem}.flag-box p{margin:0;font-size:.86rem}.match{border:1px solid var(--line);background:rgba(37,99,235,.045);border-radius:13px;padding:1.15rem 1.2rem;margin-top:1.2rem}.match strong{color:var(--ink);display:block;margin-bottom:.5rem;font-size:.94rem}.match ul{margin:.6rem 0 0;padding-inline-start:1.05rem}.match li{margin-bottom:.5rem;font-size:.86rem;line-height:1.5}.spec{font-family:'JetBrains Mono',monospace;font-size:.75rem;background:rgba(37,99,235,.1);padding:.15rem .4rem;border-radius:4px;color:var(--cobalt)}.row{display:flex;gap:.6rem;flex-wrap:wrap;margin-top:1.5rem}.tiny{font-size:.78rem;color:var(--ink-soft);margin-top:1.3rem;line-height:1.5}.ok{background:var(--green)!important}.person{text-align:start}.person .avatar{width:52px;height:52px;border-radius:50%;background:linear-gradient(135deg,#DCE9FC,#EFF5FF);border:1px solid var(--line);display:grid;place-items:center;font-family:'JetBrains Mono',monospace;font-size:.85rem;color:var(--cobalt);margin-bottom:1rem;font-weight:600}.person .role{font-family:'JetBrains Mono',monospace;font-size:.75rem;letter-spacing:.15em;text-transform:uppercase;color:var(--ink-soft);display:block;margin-bottom:.7rem}.person p{margin-bottom:1rem}.person .todo{background:rgba(180,83,9,.07);border-inline-start:3px solid var(--gold);padding:.6rem .75rem;border-radius:0 8px 8px 0;font-size:.86rem;color:var(--gold)}.person .li{display:inline-flex;align-items:center;gap:.4rem;font-size:.85rem;font-weight:600;color:var(--cobalt);text-decoration:none;min-height:44px}.person .li svg{width:16px;height:16px}.person .li:hover{text-decoration:underline}.pledge{margin-top:2.2rem;border:1px solid var(--line);background:var(--paper);border-radius:16px;padding:1.6rem 1.8rem}.pledge ul{margin:0;padding-inline-start:1.15rem}.pledge li{margin-bottom:.6rem;font-size:.94rem;line-height:1.6}.pledge li:last-child{margin-bottom:0}.pledge b{color:var(--ink)}.juris{border:1px solid var(--line);border-radius:13px;padding:1.15rem 1.2rem;margin-top:1.2rem;background:var(--paper)}.juris strong.hd{color:var(--ink);display:block;margin-bottom:.6rem;font-size:.94rem}.juris ol{margin:0;padding-inline-start:1.15rem}.juris li{margin-bottom:.7rem;font-size:.88rem;line-height:1.55}.juris li:last-child{margin-bottom:0}.juris .tagline{font-family:'JetBrains Mono',monospace;font-size:.75rem;letter-spacing:.12em;text-transform:uppercase;padding:.15rem .45rem;border-radius:4px;margin-inline-start:.35rem}.t-police{background:rgba(4,120,87,.12);color:var(--green)}.t-data{background:rgba(37,99,235,.12);color:var(--cobalt)}.t-reg{background:rgba(180,83,9,.12);color:var(--gold)}.juris .alert{border-inline-start:3px solid var(--red);background:rgba(190,18,60,.05);padding:.7rem .9rem;border-radius:0 8px 8px 0;margin-top:.9rem;font-size:.85rem}.reveal{opacity:0;transform:translateY(26px);transition:opacity 700ms var(--ease),transform 700ms var(--ease)}.reveal.in{opacity:1;transform:none}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}html{scroll-behavior:auto}.reveal{opacity:1;transform:none}.board{transition:none}}[dir="rtl"] .eyebrow::after{background:linear-gradient(270deg,var(--line-lit),transparent)}[dir="rtl"] .tbl th,[dir="rtl"] .tbl td{text-align:end}[dir="rtl"] summary{padding:1.15rem 0 1.15rem 2rem}[dir="rtl"] summary::after{right:auto;left:.35rem}[dir="rtl"] [dir="rtl"] .panel{border-inline-start:0;border-inline-end:1px solid var(--line)}[dir="rtl"] .opt:hover{transform:translateX(-3px)}[dir="rtl"] .flag-box{border-inline-start:0;border-inline-end:3px solid var(--red);border-radius:10px 0 0 10px}
section[id]{scroll-margin-top:80px}

/* ─── mobile menu hit-target fixes ─── */
.menu,.menu a,.burger,.btn,button,a{-webkit-tap-highlight-color:rgba(37,99,235,.12)}
.burger,.menu a,.btn,.pw-opt,.opt{touch-action:manipulation}
@media(max-width:1080px){
 /* The header uses backdrop-filter, which creates a stacking context and
    breaks hit-testing for absolutely positioned children on iOS Safari.
    An explicit layer and its own compositing fixes it. */
 
 
 .menu a:active{background:rgba(37,99,235,.07)}
 
 
 /* Stop the page scrolling behind an open menu — scrolling mid-tap was
    causing the header to re-render and drop the touch. */
 body.menu-open{overflow:hidden;touch-action:none}
 body.menu-open 
}

/* ─── first-visit privacy notice ─── */
.cp-notice{position:fixed;inset-inline-start:1rem;inset-inline-end:1rem;bottom:1rem;z-index:120;
 opacity:0;transform:translateY(14px);transition:opacity 320ms cubic-bezier(.16,1,.3,1),transform 320ms cubic-bezier(.16,1,.3,1)}
.cp-notice.in{opacity:1;transform:none}
.cp-notice-in{max-width:640px;margin:0 auto;background:#fff;border:1px solid var(--line);
 border-radius:16px;padding:1.15rem 1.3rem;box-shadow:0 24px 60px -20px rgba(8,19,31,.32);
 display:flex;gap:1.2rem;align-items:center;flex-wrap:wrap}
.cp-notice-txt{flex:1;min-width:230px}
.cp-notice-txt strong{display:block;color:var(--ink);font-size:.97rem;margin-bottom:.25rem}
.cp-notice-txt p{margin:0;font-size:.86rem;line-height:1.55;color:var(--ink-mid);max-width:none}
.cp-notice-act{display:flex;align-items:center;gap:.9rem;flex:none}
.cp-notice-act a{font-size:.86rem;color:var(--ink-soft);text-decoration:underline;
 text-underline-offset:3px;white-space:nowrap;padding:.6rem 0;touch-action:manipulation}
.cp-notice-act a:hover{color:var(--cobalt)}
.cp-notice-act button{background:var(--cobalt-br);color:#fff;border:0;border-radius:10px;
 font-family:inherit;font-size:.9rem;font-weight:600;padding:.72rem 1.4rem;cursor:pointer;
 min-height:44px;touch-action:manipulation;transition:background 180ms}
.cp-notice-act button:hover{background:var(--cobalt)}
.cp-notice-act button:focus-visible{outline:2.5px solid var(--ink);outline-offset:2px}
@media(max-width:560px){
 .cp-notice{left:.7rem;right:.7rem;bottom:.7rem}
 .cp-notice-in{padding:1.1rem;gap:.9rem}
 .cp-notice-act{width:100%;justify-content:space-between}
 .cp-notice-act button{flex:1;margin-inline-start:.8rem}
}
@media(prefers-reduced-motion:reduce){.cp-notice{transition:none}}

/* ─── case submission form ─── */
.cp-two{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin:1.2rem 0}
@media(max-width:640px){.cp-two{grid-template-columns:1fr}}
.cp-col{border:1px solid var(--line);border-radius:14px;padding:1.1rem 1.2rem}
.cp-col h3{font-size:.95rem;margin-bottom:.6rem}
.cp-col ul{margin:0;padding-inline-start:1.1rem}
.cp-col li{font-size:.9rem;margin-bottom:.35rem;line-height:1.5}
.cp-yes{background:rgba(4,120,87,.04);border-color:rgba(4,120,87,.25)}
.cp-yes h3{color:var(--green)}
.cp-no{background:rgba(190,18,60,.04);border-color:rgba(190,18,60,.22)}
.cp-no h3{color:var(--red)}
.cp-attach{border:1.5px solid var(--cobalt-br);background:rgba(37,99,235,.05);border-radius:14px;
 padding:1.1rem 1.2rem;margin:1.6rem 0}
.cp-attach-head{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.6rem}
.cp-attach-body ul{margin:.5rem 0 0;padding-inline-start:1.1rem;font-family:'JetBrains Mono',monospace;font-size:.78rem;color:var(--ink-mid)}
.cp-attach-body li{margin-bottom:.25rem}
.cp-field{margin-bottom:1.2rem}
.cp-field label{display:block;font-weight:600;color:var(--ink);font-size:.95rem;margin-bottom:.4rem}
.cp-field label span{font-weight:400;color:var(--ink-soft);font-size:.85rem}
.cp-field input,.cp-field textarea{width:100%;font-family:inherit;font-size:1rem;color:var(--ink);
 background:#fff;border:1.5px solid var(--line);border-radius:11px;padding:.8rem .95rem;min-height:48px}
.cp-field textarea{min-height:130px;resize:vertical;line-height:1.6}
.cp-field input:focus,.cp-field textarea:focus{outline:0;border-color:var(--cobalt-br);
 box-shadow:0 0 0 3px rgba(37,99,235,.14)}
.cp-field small{display:block;font-size:.84rem;color:var(--ink-soft);margin-top:.35rem;line-height:1.5}
.cp-check{display:flex;gap:.8rem;align-items:flex-start;border:1px solid var(--line);border-radius:12px;
 padding:.95rem 1.1rem;margin-bottom:.7rem;cursor:pointer;transition:border-color 160ms}
.cp-check:hover{border-color:var(--line-lit)}
.cp-check input{width:20px;height:20px;flex:none;margin-top:.15rem;accent-color:var(--cobalt-br)}
.cp-check span{font-size:.91rem;line-height:1.55;color:var(--ink-mid)}
.cp-check strong{color:var(--ink);font-weight:600}
.cp-msg{border-radius:12px;padding:1rem 1.2rem;margin:1.2rem 0;font-size:.93rem;line-height:1.6}
.cp-msg.err{background:rgba(190,18,60,.06);border-inline-start:3px solid var(--red);color:var(--ink-mid)}
.cp-msg.ok{background:rgba(4,120,87,.06);border-inline-start:3px solid var(--green);color:var(--ink-mid)}
.cp-msg code{font-family:'JetBrains Mono',monospace;background:rgba(37,99,235,.1);padding:.15rem .45rem;border-radius:5px}

/* ── buttons: a single definition so nothing diverges ── */
.btn,button.btn,a.btn,#cp-send,.pw-links a,.pw-restart,.filing a{font-family:'Inter',sans-serif}
.btn,button.btn,a.btn,#cp-send{
 display:inline-flex;align-items:center;justify-content:center;gap:.5rem;
 font-size:.95rem;font-weight:600;line-height:1;padding:.85rem 1.5rem;
 border:1.5px solid transparent;border-radius:12px;min-height:48px;cursor:pointer;
 text-decoration:none;transition:background 180ms var(--ease),border-color 180ms var(--ease),
 transform 180ms var(--ease),box-shadow 180ms var(--ease)}
.btn-primary,#cp-send{background:var(--cobalt-br);color:#fff;border-color:var(--cobalt-br)}
.btn-primary:hover,#cp-send:hover{background:var(--cobalt);border-color:var(--cobalt);
 transform:translateY(-1px);box-shadow:0 10px 24px -10px rgba(37,99,235,.55)}
.btn-ghost{background:#fff;color:var(--ink);border-color:var(--line)}
.btn-ghost:hover{border-color:var(--line-lit);transform:translateY(-1px)}
.btn:focus-visible,#cp-send:focus-visible{outline:2.5px solid var(--cobalt-br);outline-offset:3px}
#cp-send:disabled{opacity:.6;cursor:default;transform:none;box-shadow:none}

/* ── interface boxes keep the sans face even inside articles ── */
.article .box h3,.article .fig-head strong,.article .cp-notice strong,
.article .alert strong,.article .acard-eyebrow,.article .acard-cta{font-family:'Inter',sans-serif}
.article .box h3{font-size:1rem;font-weight:600;margin:0 0 .5rem}

/* ── homepage cards adopt the article-card language ── */
a.card{position:relative;display:flex;flex-direction:column;gap:.5rem;overflow:hidden;
 padding:1.4rem 1.5rem 1.3rem}
a.card::before{content:'';position:absolute;inset-inline-start:0;top:0;bottom:0;width:3px;
 background:var(--line-lit);transition:width 220ms var(--ease)}
a.card:hover::before{width:5px;background:var(--cobalt)}
a.card h3{font-family:'Newsreader',Georgia,serif;font-size:1.28rem;font-weight:600;
 line-height:1.26;letter-spacing:-.012em;margin:0;transition:color 180ms var(--ease)}
a.card:hover h3{color:var(--cobalt)}
a.card p{flex:1;margin:0;font-size:.9rem;line-height:1.58;color:var(--ink-mid)}
a.card .idx{margin:0 0 .1rem}
a.card .ico{margin-bottom:.5rem}
/* an arrow affordance so every card reads as clickable */
a.card::after{content:'→';position:absolute;inset-inline-end:1.3rem;bottom:1.2rem;
 font-size:1.05rem;color:var(--cobalt-br);opacity:0;transform:translateX(-6px);
 transition:opacity 200ms var(--ease),transform 200ms var(--ease)}
a.card:hover::after{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){a.card::before,a.card::after{transition:none}}

.g5 a.card{padding:1.2rem 1.3rem 1.2rem}
.g5 a.card h3{font-size:1.12rem}
.g5 a.card p{font-size:.86rem}

/* ══════════════════════════════════════════════════════════
   CASE EVALUATOR — mobile layout
   The desktop rule uses calc(100dvh - 60px), which assumes a
   60px header. On mobile the topbar wraps and the header is
   nearer 100px, so the panel was pushed off-screen and the
   board clipped its own cards. Below 960px we stop doing
   viewport arithmetic and let the page scroll normally.
   ══════════════════════════════════════════════════════════ */
@media(max-width:960px){
 body.eval{overflow:auto;overflow-x:hidden}
 #view-eval{display:block;height:auto;min-height:0}

 .stage{position:relative;height:clamp(230px,34vh,300px);overflow:hidden;
  border-bottom:1px solid var(--line);contain:paint}

 .panel{position:static;overflow:visible;height:auto;
  border-inline-start:0;border-top:0;padding:1.4rem 1.15rem 3rem;
  background:#fff;backdrop-filter:none}

 /* cards are a fixed pixel width; at small viewports they must
    shrink with the board or they hang past the edges */
 .pin{width:190px}
 .pin .slip{padding:.7rem .8rem}
 .pin .lab{font-size:.82rem}
 .pin .val{font-size:.86rem;line-height:1.28}
 .verdict-node{width:220px}
 .verdict-node .val{font-size:.95rem}

 .panel h1{font-size:1.2rem}
 .prog{margin-bottom:1.1rem}
 .opt{padding:.95rem .9rem}
}

@media(max-width:400px){
 .stage{height:210px}
 .pin{width:168px}
 .pin .val{font-size:.8rem}
}

/* The board is absolutely positioned and wider than any phone.
   contain:paint above stops it painting outside the stage during
   the pan transition, which is what put cards over the text. */
.stage{contain:paint}

/* ─── contact addresses in the About section ─── */
.contact-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:.9rem;
 margin-top:1.8rem;padding-top:1.6rem;border-top:1px solid var(--line)}
.contact-row div{display:flex;flex-direction:column;gap:.2rem}
.contact-row span{font-family:'JetBrains Mono',monospace;font-size:.75rem;letter-spacing:.14em;
 text-transform:uppercase;color:var(--ink-soft)}
.contact-row a{font-size:.94rem;font-weight:500;color:var(--cobalt);text-decoration:none;word-break:break-all}
.contact-row a:hover{text-decoration:underline}

.pw-readout{display:flex;align-items:baseline;gap:.6rem;margin:.2rem 0 .7rem}
.pw-pct{font-family:'JetBrains Mono',monospace;font-size:2.5rem;font-weight:600;
 line-height:1;letter-spacing:-.03em;font-variant-numeric:tabular-nums;color:var(--ink)}
.pw-pct small{font-size:1.1rem;font-weight:500;margin-inline-start:.1rem;opacity:.55}
.pw-word{font-size:.95rem;font-weight:600}

.pw-meter.pw-green .pw-pct,.pw-meter.pw-green .pw-word{color:var(--green)}
.pw-meter.pw-green .pw-fill{background:linear-gradient(90deg,#047857,#10B981)}
.pw-meter.pw-green{border-color:rgba(4,120,87,.34);background:rgba(4,120,87,.04)}

.pw-meter.pw-amber .pw-pct,.pw-meter.pw-amber .pw-word{color:var(--gold)}
.pw-meter.pw-amber .pw-fill{background:linear-gradient(90deg,#B45309,#F59E0B)}
.pw-meter.pw-amber{border-color:rgba(180,83,9,.32);background:rgba(180,83,9,.04)}

.pw-meter.pw-red .pw-pct,.pw-meter.pw-red .pw-word{color:var(--red)}
.pw-meter.pw-red .pw-fill{background:linear-gradient(90deg,#BE123C,#F43F5E)}
.pw-meter.pw-red{border-color:rgba(190,18,60,.3);background:rgba(190,18,60,.035)}

/* ─── pathway: exact amount input ─── */
.pw-amount{margin:1.3rem 0}
.pw-amount-row{display:flex;gap:.6rem;margin-bottom:.8rem}
.pw-amount-row select{font-family:'JetBrains Mono',monospace;font-size:.95rem;font-weight:500;
 color:var(--ink);background:#fff;border:1.5px solid var(--line);border-radius:12px;
 padding:0 .8rem;min-height:56px;cursor:pointer;flex:none}
.pw-amount-row input{flex:1;min-width:0;font-family:'JetBrains Mono',monospace;font-size:1.3rem;
 font-weight:500;color:var(--ink);background:#fff;border:1.5px solid var(--line);
 border-radius:12px;padding:.8rem 1rem;min-height:56px}
.pw-amount-row input:focus,.pw-amount-row select:focus{outline:0;border-color:var(--cobalt-br);
 box-shadow:0 0 0 3px rgba(37,99,235,.14)}
.pw-amount-row input.pw-invalid{border-color:var(--red);box-shadow:0 0 0 3px rgba(190,18,60,.12)}
.pw-amount-note{font-size:.87rem;color:var(--ink-mid);line-height:1.55;
 background:rgba(37,99,235,.05);border-inline-start:3px solid var(--line-lit);
 padding:.7rem .9rem;border-radius:0 9px 9px 0;margin:0 0 1rem}
.pw-amount .pw-next{width:100%;margin-bottom:.4rem}
[dir="rtl"] .pw-amount-note{border-inline-start:0;border-inline-end:3px solid var(--line-lit);border-radius:9px 0 0 9px}

/* footer column headings: styled as headings, not in the heading outline */

/* current language is marked, not linked */

[dir="rtl"]{text-align:start}
[dir="rtl"] 
/* directional glyphs and motion flip; logical properties do not cover these */
[dir="rtl"] .acard-cta svg,[dir="rtl"] a.card::after{transform:scaleX(-1)}
[dir="rtl"] .acard:hover .acard-cta svg{transform:scaleX(-1) translateX(4px)}
[dir="rtl"] .pw-opt:hover{transform:translateX(-3px)}
[dir="rtl"] .crumb{direction:rtl}
/* Arabic needs more leading and a face with real Arabic coverage */
[lang="ar"] body,[lang="ar"] .article main p{line-height:1.9}
[lang="ar"] .article main p,[lang="ar"] .lead,[lang="ar"] h1,[lang="ar"] h2,[lang="ar"] h3{
 font-family:'Noto Naskh Arabic','Segoe UI',Tahoma,sans-serif}
[lang="ar"] .acard-title,[lang="ar"] .article h1{font-family:'Noto Naskh Arabic',serif}
/* Chinese: the serif editorial layer has no CJK coverage, so keep sans */
[lang="zh"] .article main p,[lang="zh"] .lead,[lang="zh"] .acard-title,
[lang="zh"] .article h1,[lang="zh"] .article h3{
 font-family:'Inter','PingFang SC','Hiragino Sans GB','Microsoft YaHei',sans-serif}
[lang="zh"] body{line-height:1.85}
[lang="zh"] .article main p{font-size:1.08rem;line-height:1.9}

/* ── evaluator result panel: nothing may overflow its column ── */
.panel,.panel *{min-width:0}
.panel{overflow-wrap:anywhere;word-break:normal}
.res,.res *{max-width:100%}
.res p,.res li,.res h1,.res h2{overflow-wrap:anywhere}
.pnum{white-space:normal}
.juris a,.res a{overflow-wrap:anywhere}
.juris ol,.res ol{padding-inline-start:1.15rem;margin-inline-start:0}
.steps{padding-inline-start:0;list-style:none}
@media(max-width:960px){
 .panel{padding:1.25rem 1.1rem 2.4rem}
 .res h1{font-size:1.25rem;line-height:1.3}
 .res p,.res li{font-size:.94rem;line-height:1.62}
 .row{flex-direction:column;gap:.6rem}
 .row .btn{width:100%}
 .match,.juris,.flag-box{padding:.9rem 1rem}
}

/* ── footer social ── */

.social a:active{transform:translateY(0)}

.cards a b{display:block;font-family:'Newsreader',Georgia,serif;font-size:1.2rem;
 font-weight:600;line-height:1.3;color:var(--ink);margin-bottom:.35rem}
.cards a span{display:block;font-family:'Inter',sans-serif;font-size:.88rem;
 line-height:1.55;color:var(--ink-mid)}
.cards a:hover b{color:var(--cobalt)}

/* Arabic: no letter-spacing, it breaks cursive joining */
[lang="ar"] .eyebrow,[lang="ar"] .meta,[lang="ar"] .acard-eyebrow,[lang="ar"] .idx,
[lang="ar"] .lab,[lang="ar"] .pw-meter-title,[lang="ar"] .pw-step,[lang="ar"] .spec,
[lang="ar"] .fig-head strong,[lang="ar"] .tag,[lang="ar"] .k,[lang="ar"] h2{
 letter-spacing:normal;text-transform:none}

.meta-review{margin-top:-.4rem;font-size:.82rem;color:var(--ink-soft)}
