/* SourceDirect — design system (light theme). Tokens first; components below; page-specific rules live in home.css. */
@font-face{font-family:"Inter";font-style:normal;font-weight:400 700;font-display:swap;src:url(/assets/fonts/inter-var-latin.woff2) format("woff2")}
:root{
 /* COLOUR SYSTEM "Deep azure" (B): white page, ink #0f172a, slate greys, one blue. Token names unchanged from cobalt/graphite versions so rules port 1:1. */
 --ink:#0f172a;--ink2:#334155;--ink3:#475569;--mute:#64748b;--line:#e2e8f0;--line2:#cbd5e1;--bg:#f8fafc;--bg2:#f1f5f9;--card:#fff;
 /* accent = deep azure: primary buttons, links, active underline, focus ring, selected chips. acc2/acc3 = tint surface / tint border */
 --acc:#1f55d6;--acc-d:#173fa8;--acc-dd:#102a75;--acc2:#e6eefb;--acc3:#c2d2f4;--acc-rgb:31,85,214;--hov:#c2d2f4;--faint:#94a3b8;
 /* semantic (used sparingly: upcoming fair editions only; claimed = neutral dashed, never green) */
 --up:#7a4a06;--up-bg:#fbf6ea;--up-line:#ead9ad;--ok:#334155;--ok-bg:#f1f5f9;--warn:#475569;
 /* shape + depth */
 --r-sm:8px;--r:14px;--r-lg:20px;--r:14px;
 --sh-xs:0 1px 2px rgba(15,23,42,.05);--sh-sm:0 1px 3px rgba(15,23,42,.07),0 1px 2px rgba(15,23,42,.04);
 --sh-md:0 10px 28px -10px rgba(15,23,42,.16),0 2px 6px rgba(15,23,42,.05);--sh-lg:0 30px 70px -28px rgba(15,23,42,.28);
 --ring:0 0 0 2px #fff,0 0 0 4px var(--acc);--ease:cubic-bezier(.2,.7,.2,1);
 --hdr:64px;--pad:clamp(16px,4vw,64px);
 --sans:"Inter",ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"PingFang SC","Noto Sans CJK SC","Microsoft YaHei",sans-serif;
 --mono:ui-monospace,"SF Mono",SFMono-Regular,Menlo,Consolas,"Liberation Mono",monospace;
}
*{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;font:16px/1.6 var(--sans);letter-spacing:-.006em;color:var(--ink);background:#fff;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}
a{color:var(--acc);text-decoration:none;transition:color .15s,text-decoration-color .15s}a:hover{color:var(--acc-d);text-decoration:underline;text-underline-offset:3px}
/* running-text links: blue, underlined (translucent blue underline, solid on hover); nav, cards, buttons, footer stay clean */
:where(p,li,dd,td,.note,.tiny,.src,.fine,.teaser,.ph) a:where(:not(.btn,.badge)){text-decoration:underline;text-decoration-color:rgba(31,85,214,.4);text-decoration-thickness:1px;text-underline-offset:3px}
:where(p,li,dd,td,.note,.tiny,.src,.fine,.teaser,.ph) a:where(:not(.btn,.badge)):hover{text-decoration-color:var(--acc-d)}
:where(.nav,.rnav,.ftr,.cat,.dd,.tabstrip,.pnav,.dtabs,.pager,.icard,.pcard) a{text-decoration:none}
:where(.logo,.icard,.pcard,.cat):hover{color:var(--ink)}
:focus{outline:none}
/* focus: 2px blue ring with white gap = visible on white and grey surfaces and on blue buttons */
:focus-visible{outline:2px solid var(--acc);outline-offset:2px;border-radius:6px;box-shadow:0 0 0 2px #fff}
::selection{background:var(--acc3);color:var(--ink)}
h1,h2,h3,h4{line-height:1.18;margin:0 0 .5em;letter-spacing:-.022em;text-wrap:balance}
h1{font-size:clamp(30px,4.2vw,48px);font-weight:700;letter-spacing:-.04em}h2{font-size:clamp(24px,2.6vw,32px);font-weight:700;letter-spacing:-.032em}h3{font-size:17px;font-weight:650}
p{margin:0 0 1em;text-wrap:pretty}
.wrap{width:100%;padding-left:var(--pad);padding-right:var(--pad)}
.sec{padding:clamp(40px,5vw,80px) 0}.sec.alt{background:var(--bg)}
.sec-h{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:28px;flex-wrap:wrap}.sec-h p{color:var(--ink3);margin:0;max-width:720px}
/* icons */
.gi{display:inline-grid;place-items:center;width:40px;height:40px;border-radius:10px;background:var(--acc2);color:var(--acc);border:1px solid var(--acc3);flex:none}
.gi svg{width:20px;height:20px;display:block}
/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 18px;border-radius:10px;border:1px solid var(--acc);background:var(--acc);color:#fff;font:600 14px/1.25 var(--sans);letter-spacing:-.005em;cursor:pointer;box-shadow:none;transition:transform .18s var(--ease),box-shadow .18s var(--ease),background .15s,border-color .15s,color .15s}
.btn:hover{background:var(--acc-d);border-color:var(--acc-d);color:#fff;text-decoration:none;transform:translateY(-1px);box-shadow:0 8px 18px -8px rgba(var(--acc-rgb),.55)}
.btn:active{transform:translateY(0);box-shadow:none;background:var(--acc-dd)}
.btn:focus-visible{outline:0;box-shadow:var(--ring)}
.btn.ghost{background:#fff;color:var(--ink);border-color:var(--line2);box-shadow:none}.btn.ghost:hover{background:var(--acc2);border-color:var(--acc);color:var(--acc-d);box-shadow:none}
.btn.sm{padding:7px 13px;font-size:13px;border-radius:9px}.btn.dark{background:var(--acc);border-color:var(--acc);box-shadow:none}
.btn[disabled]{opacity:.5;cursor:default;transform:none}
/* badges / tags */
.badge{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:600;padding:3px 10px;border-radius:999px;background:var(--bg2);color:var(--ink2);white-space:nowrap;line-height:1.35}
.badge.soon{background:var(--acc2);color:var(--acc-d)}.badge.up{background:var(--up-bg);color:var(--up)}.badge.acc{background:var(--acc2);color:var(--acc-d);box-shadow:inset 0 0 0 1px var(--acc3)}
.badge.ok{background:var(--bg2);color:var(--ink2)}.badge.ok::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--ink3)}
/* "claimed": neutral grey, dashed outline = a claim (never a check, never green) */
.badge.warn{background:#fff;color:var(--ink3);box-shadow:none;border:1px dashed var(--faint)}
/* header */
.hdr{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.84);-webkit-backdrop-filter:saturate(1.5) blur(14px);backdrop-filter:saturate(1.5) blur(14px);border-bottom:1px solid var(--line)}
.hdr .in{display:flex;align-items:center;gap:20px;height:var(--hdr)}
.logo{display:flex;align-items:center;gap:10px;font-weight:700;font-size:18.5px;color:var(--ink);letter-spacing:-.03em;flex:none}.logo:hover{text-decoration:none}
.logo i{width:30px;height:30px;border-radius:9px;background:var(--acc);display:grid;place-items:center;color:#fff;font:700 12.5px/1 var(--sans);letter-spacing:-.02em;font-style:normal}
.logo b{color:var(--acc);font-weight:700}
.nav{display:flex;gap:2px;height:100%;margin-left:12px;padding:0}
.nav>li{list-style:none;position:relative;display:flex;align-items:center}
.nav ul,.rnav ul{margin:0;padding:0}
.nav>li>a,.nav>li>button,.rnav>li>a,.rnav>li>button{font:inherit;font-weight:550;color:var(--ink2);background:none;border:0;padding:8px 12px;border-radius:8px;cursor:pointer;display:flex;align-items:center;gap:6px;white-space:nowrap;transition:color .15s,background .15s}
.nav>li>a:hover,.nav>li>button:hover,.nav>li:focus-within>button{background:var(--bg);text-decoration:none;color:var(--ink)}
.car{width:8px;height:8px;border-right:2px solid var(--mute);border-bottom:2px solid var(--mute);transform:rotate(45deg) translateY(-2px)}
.dd{position:absolute;top:100%;left:0;min-width:300px;background:#fff;border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh-md);padding:14px;display:none;z-index:60}
.nav>li:hover>.dd,.nav>li.open>.dd,.rnav>li:hover>.dd,.rnav>li.open>.dd{display:block}
.dd.mega{width:min(860px,92vw);display:none;grid-template-columns:1.1fr 1fr 1fr;gap:20px}
.nav>li:hover>.dd.mega,.nav>li.open>.dd.mega{display:grid}
.dd h5{margin:0 0 8px;font-size:11.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--mute)}
.dd a{display:block;padding:6px 8px;border-radius:8px;color:var(--ink);font-weight:500}.dd a:hover{background:var(--bg);text-decoration:none;color:var(--ink)}
.dd a small{display:block;color:var(--mute);font-weight:400;font-size:12.5px}
.rnav{display:flex;align-items:center;gap:8px;margin-left:auto;padding:0}.rnav>li{list-style:none;position:relative}
.rnav .dd{left:auto;right:0}
.burger{display:none;margin-left:auto;background:#fff;border:1px solid var(--line2);border-radius:10px;width:42px;height:42px;cursor:pointer;color:var(--ink);place-items:center;padding:0;transition:border-color .15s,background .15s}.burger:hover{border-color:var(--acc);background:var(--bg)}
.burger svg{width:20px;height:20px;display:block}
.lang{font-weight:600;border:1px solid var(--line2);border-radius:9px;padding:6px 12px!important;color:var(--ink2)!important;font-size:13.5px;background:#fff!important}.lang:hover{border-color:var(--acc);color:var(--acc-d)!important;text-decoration:none}
/* hero (shared by search page) */
.hero{background:linear-gradient(180deg,var(--bg),#fff);padding:clamp(40px,6vw,88px) 0 clamp(30px,4vw,56px);border-bottom:1px solid var(--line)}
.hero h1{max-width:980px}.hero .lead{font-size:clamp(16px,1.5vw,19px);color:var(--ink3);max-width:820px;margin-bottom:26px}
.sbox{display:flex;gap:0;background:#fff;border:1px solid var(--line2);border-radius:14px;box-shadow:var(--sh-md);overflow:hidden;max-width:1100px;transition:border-color .15s,box-shadow .15s}
.sbox:focus-within{border-color:var(--acc);box-shadow:var(--ring),var(--sh-md)}
.sbox .ai{display:flex;align-items:center;padding:0 16px;color:var(--acc-d);font-weight:700;font-size:11.5px;letter-spacing:.08em;border-right:1px solid var(--line);white-space:nowrap;background:var(--bg2)}
.sbox input{flex:1;border:0;outline:0;font:inherit;font-size:16.5px;padding:18px 18px;min-width:0;background:transparent;color:var(--ink)}.sbox input::placeholder{color:var(--mute)}
.sbox button{border:0;background:var(--acc);color:#fff;font:inherit;font-weight:650;padding:0 28px;cursor:pointer;transition:background .15s}.sbox button:hover{background:var(--acc-d)}
.ex{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px;align-items:center;color:var(--mute);font-size:13px}.ex a{background:#fff;border:1px solid var(--line);border-radius:999px;padding:5px 12px;color:var(--ink2);font-size:13px}.ex a:hover{border-color:var(--acc);color:var(--acc-d);text-decoration:none}
.stats{display:flex;gap:clamp(18px,4vw,56px);flex-wrap:wrap;margin-top:30px}.stats div b{display:block;font-size:26px;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.stats div span{color:var(--mute);font-size:13px}
/* grids + cards */
.grid{display:grid;gap:20px}.g4{grid-template-columns:repeat(4,1fr)}.g3{grid-template-columns:repeat(3,1fr)}.g2{grid-template-columns:repeat(2,1fr)}.g5{grid-template-columns:repeat(5,1fr)}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:22px;box-shadow:var(--sh-xs)}
.card.hov{transition:transform .22s var(--ease),box-shadow .22s var(--ease),border-color .22s}.card.hov:hover{box-shadow:var(--sh-md);border-color:var(--hov);transform:translateY(-2px)}
.card h3{margin-bottom:6px}.card p{color:var(--ink3);font-size:14.5px;margin:0}
.ico{width:40px;height:40px;border-radius:10px;background:var(--acc2);border:1px solid var(--acc3);color:var(--acc);display:grid;place-items:center;font-size:19px;margin-bottom:14px;filter:grayscale(1) contrast(.9)}
.cat{display:block;color:inherit}.cat:hover{text-decoration:none}.cat .n{color:var(--mute);font-size:13px}
.cat ul{margin:10px 0 0;padding:0;list-style:none;font-size:13.5px}.cat li{padding:2px 0}.cat li a{color:var(--ink2)}.cat li a:hover{color:var(--acc);text-decoration:underline}
.steps{counter-reset:s}.step{position:relative;padding-left:56px}.step:before{counter-increment:s;content:counter(s);position:absolute;left:0;top:0;width:38px;height:38px;border-radius:50%;background:var(--acc);color:#fff;display:grid;place-items:center;font-weight:700}
.fairrow{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:14px 0;border-bottom:1px solid var(--line)}.fairrow:last-child{border:0}
.cta{background:linear-gradient(180deg,var(--acc2),#fff);border:1px solid var(--acc3);color:var(--ink);border-radius:var(--r-lg);padding:clamp(24px,4vw,48px);display:flex;gap:28px;align-items:center;justify-content:space-between;flex-wrap:wrap}.cta h2{color:var(--ink)}.cta p{color:var(--ink3);max-width:680px}
/* footer (light) */
.ftr{background:var(--bg);border-top:1px solid var(--line);color:var(--ink3);padding:56px 0 30px;font-size:14px;margin-top:0}.ftr a{color:var(--ink2)}.ftr a:hover{color:var(--acc);text-decoration:underline}
.ftr h5{color:var(--ink);margin:0 0 12px;font-size:12px;letter-spacing:.08em;text-transform:uppercase;font-weight:650}.ftr ul{list-style:none;margin:0;padding:0}.ftr li{padding:4px 0}
.ftr .cols{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:32px}.ftr .brandp{margin-top:14px;max-width:380px;color:var(--ink3)}
.ftr .fine{border-top:1px solid var(--line2);margin-top:36px;padding-top:20px;font-size:12.5px;color:var(--mute);line-height:1.6}.ftr .fine a{color:var(--ink3);text-decoration:underline;text-underline-offset:3px}
/* breadcrumbs / page head */
.crumb{font-size:13px;color:var(--mute);padding:18px 0 0}.crumb a{color:var(--mute)}.crumb a:hover{color:var(--acc);text-decoration:underline}
.phead{padding:20px 0 20px}.phead h1{margin-bottom:12px}.phead p{color:var(--ink3);max-width:860px;font-size:16.5px}
/* results */
.rs{display:grid;grid-template-columns:300px 1fr;gap:32px;align-items:start;padding-top:20px;padding-bottom:56px}
.side{position:sticky;top:calc(var(--hdr) + 16px);max-height:calc(100vh - var(--hdr) - 32px);overflow:auto;padding:8px 20px 12px;background:#fff;border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh-xs);scrollbar-width:thin}
.fg{border-bottom:1px solid var(--line);padding:16px 0}.fg:first-child{padding-top:10px}.fg:last-child{border-bottom:0}
.fg h4{font-size:11.5px;letter-spacing:.09em;text-transform:uppercase;color:var(--mute);margin:0 0 10px;display:flex;justify-content:space-between;font-weight:650}
.fg label{display:flex;gap:10px;align-items:flex-start;padding:5px 8px;margin:0 -8px;border-radius:8px;font-size:14px;cursor:pointer;color:var(--ink2);transition:background .12s}.fg label:hover{background:var(--bg)}.fg label span.c{margin-left:auto;color:var(--mute);font-size:12.5px;font-variant-numeric:tabular-nums}.fg input[type=checkbox]{margin-top:3px;accent-color:var(--acc);width:15px;height:15px;flex:none}
.fg .sub{margin-left:22px}.fg .more{font-size:13px;font-weight:600;background:none;border:0;color:var(--acc);text-decoration:underline;text-decoration-color:rgba(31,85,214,.4);text-underline-offset:3px;cursor:pointer;padding:6px 0 0;font-family:inherit}.fg .more:hover{text-decoration-color:var(--acc-d);color:var(--acc-d)}
.fg details>summary{cursor:pointer;list-style:none;display:flex;gap:8px;font-weight:600;padding:3px 0}.fg details>summary::-webkit-details-marker{display:none}
.chips{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.chips:empty{display:none}
.chip{display:inline-flex;gap:6px;align-items:center;background:var(--acc2);color:var(--acc-d);border-radius:999px;padding:4px 6px 4px 12px;font-size:13px;font-weight:600;box-shadow:inset 0 0 0 1px var(--acc)}.chip button{border:0;background:#fff;color:var(--acc-d);width:20px;height:20px;border-radius:50%;cursor:pointer;line-height:1;transition:background .15s,color .15s}.chip button:hover{background:var(--acc);color:#fff}
.chip.t{background:var(--bg2);color:var(--ink2);box-shadow:none}
.rhead{display:flex;justify-content:space-between;gap:14px;align-items:center;flex-wrap:wrap;margin:18px 0 6px}
.rhead select{font:inherit;font-size:14px;padding:9px 34px 9px 12px;border:1px solid var(--line2);border-radius:10px;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23475569' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 12px center;-webkit-appearance:none;appearance:none;color:var(--ink2);cursor:pointer;box-shadow:var(--sh-xs)}.rhead select:focus-visible{outline:0;border-color:var(--acc);box-shadow:var(--ring)}
.note{background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:12px 16px;font-size:13.5px;color:var(--ink2);margin:10px 0;line-height:1.55}
.row{display:grid;grid-template-columns:1fr auto;gap:12px 24px;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:20px 22px;margin-bottom:12px;box-shadow:var(--sh-xs);transition:border-color .2s,box-shadow .2s var(--ease),transform .2s var(--ease)}
.row:hover{border-color:var(--hov);box-shadow:var(--sh-md)}
.row h3{font-size:18px;margin:0 0 2px}.row h3 a{color:var(--ink)}.row h3 a:hover{color:var(--acc);text-decoration:underline;text-underline-offset:3px}
.row .zh{color:var(--mute);font-size:13.5px;margin-bottom:6px}.row .loc{color:var(--ink3);font-size:13.5px;margin-bottom:8px}
.row .prod{color:var(--ink3);font-size:13.5px;margin:6px 0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.tags{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0}
.tag{font-size:12.5px;padding:2px 9px;border-radius:6px;background:var(--bg2);color:var(--ink2);line-height:1.5}.tag.p{background:var(--line);color:var(--ink)}.tag.m{background:var(--bg2);color:var(--ink2)}
.fyrs{display:flex;gap:6px;flex-wrap:wrap;align-items:center;font-size:12.5px;margin-top:8px}
.fy{display:inline-flex;gap:4px;align-items:center;border:1px solid var(--line);border-radius:8px;padding:2px 8px;color:var(--ink2);background:#fff}.fy b{font-weight:650}
.fy.past{color:var(--mute);background:var(--bg)}.fy.up{background:var(--up-bg);border-color:var(--up-line);color:var(--up)}.fy.cur{background:var(--acc2);border-color:var(--acc);color:var(--acc-d)}
.row .act{display:flex;flex-direction:column;gap:8px;align-items:flex-end;min-width:150px}
.pager{display:flex;gap:6px;flex-wrap:wrap;justify-content:center;margin:24px 0}.pager button{border:1px solid var(--line2);background:#fff;border-radius:9px;padding:7px 13px;cursor:pointer;font:inherit;font-size:14px;color:var(--ink2);transition:border-color .15s,color .15s}.pager button:hover:not(:disabled){border-color:var(--acc);color:var(--acc-d)}.pager button.on{background:var(--acc);color:#fff;border-color:var(--acc)}.pager button:disabled{opacity:.4;cursor:default}
.fbtn{display:none}
/* profile */
.prof{display:grid;grid-template-columns:1fr 360px;gap:32px;align-items:start;padding-top:16px;padding-bottom:64px}
.pt h1{font-size:clamp(28px,3.2vw,40px);margin-bottom:4px}.pt .zh{color:var(--mute);font-size:17px;margin-bottom:10px}
.keybox{position:sticky;top:calc(var(--hdr) + 20px)}.keybox .card{padding:20px;box-shadow:var(--sh-md)}
.kv{display:grid;grid-template-columns:96px 1fr;gap:0 12px;font-size:14px;margin:0}.kv dt,.kv dd{padding:8px 0;border-bottom:1px solid var(--line)}.kv dt:nth-last-of-type(1),.kv dd:last-of-type{border-bottom:0}.kv dt{color:var(--mute)}.kv dd{margin:0;word-break:break-word;color:var(--ink)}
.ps{border:1px solid var(--line);border-radius:var(--r);padding:24px 28px;margin-bottom:20px;background:#fff;box-shadow:var(--sh-xs)}.ps h2{font-size:20px;margin-bottom:16px;letter-spacing:-.022em}.ps .src{font-size:12.5px;color:var(--mute);margin-top:12px}.ps .src a{color:var(--mute);text-decoration:underline;text-underline-offset:3px}.ps .src a:hover{color:var(--acc)}
.tbl{width:100%;border-collapse:collapse;font-size:14px}.tbl th,.tbl td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:top}.tbl tr:last-child>*{border-bottom:0}.tbl th{font-size:11.5px;text-transform:uppercase;letter-spacing:.07em;color:var(--mute);font-weight:650}
.tbl thead th{background:var(--bg);border-bottom:1px solid var(--line)}.tbl thead th:first-child{border-top-left-radius:8px}.tbl thead th:last-child{border-top-right-radius:8px}
.tbl tbody tr{transition:background .12s}.tbl tbody tr:hover{background:var(--bg)}
.faq details{border-bottom:1px solid var(--line);padding:12px 0}.faq summary{cursor:pointer;font-weight:600}.faq p{margin:8px 0 0;color:var(--ink3)}
.mr pre{background:var(--ink);color:#e2e8f0;border-radius:10px;padding:14px;overflow:auto;font-size:12.5px;max-height:320px}
.warn{background:var(--bg);border:1px solid var(--line2);color:var(--ink2);border-radius:10px;padding:10px 14px;font-size:13.5px}
.pill-row{display:flex;gap:8px;flex-wrap:wrap}
/* forms */
.form{display:grid;gap:16px;max-width:760px}.form label{font-weight:600;font-size:14px;display:grid;gap:7px;color:var(--ink)}.form input,.form select,.form textarea{font:inherit;font-weight:400;padding:12px 14px;border:1px solid var(--line2);border-radius:10px;background:#fff;color:var(--ink);box-shadow:var(--sh-xs);transition:border-color .15s,box-shadow .15s}.form textarea{min-height:120px;resize:vertical}
.form input:hover,.form select:hover,.form textarea:hover{border-color:var(--faint)}.form input:focus,.form select:focus,.form textarea:focus{outline:0;border-color:var(--acc);box-shadow:var(--ring)}
.art{max-width:820px}.art h2{margin-top:1.6em}.art li{margin:.3em 0}
.svc{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.logos{display:flex;gap:24px;align-items:center;flex-wrap:wrap;color:var(--ink2)}
@media(max-width:1100px){.g4,.g5{grid-template-columns:repeat(2,1fr)}.g3,.svc{grid-template-columns:repeat(2,1fr)}.prof{grid-template-columns:1fr}.keybox{position:static;order:-1}.ftr .cols{grid-template-columns:1fr 1fr 1fr}}
@media(max-width:860px){
 body{font-size:15.5px}
 .burger{display:grid}.nav,.rnav{display:none;position:absolute;left:0;right:0;top:var(--hdr);background:#fff;border-bottom:1px solid var(--line);flex-direction:column;align-items:stretch;padding:8px var(--pad) 16px;height:auto;max-height:calc(100vh - var(--hdr));overflow:auto;margin:0}
 .hdr.open .nav{display:flex}.hdr.open .rnav{display:flex;top:auto;position:static;border:0;padding:0 var(--pad) 16px}
 .hdr.open .nav{position:static}.hdr .in{flex-wrap:wrap;height:auto;min-height:var(--hdr)}.hdr.open{max-height:100vh;overflow:auto}
 .nav>li{display:block}.nav>li>a,.nav>li>button{width:100%;justify-content:space-between}.dd,.dd.mega{position:static;display:none!important;box-shadow:none;border:0;padding:0 0 8px 12px;width:auto}.nav>li.open>.dd,.rnav>li.open>.dd{display:block!important}.nav>li:hover>.dd{display:none}.nav>li.open>.dd.mega{display:block!important}
 .rs{grid-template-columns:1fr}.side{position:fixed;inset:0;z-index:70;background:#fff;max-height:none;padding:70px 20px 90px;display:none;border:0;border-radius:0;box-shadow:none}.side.show{display:block}.fbtn{display:inline-flex}
 .sbox{flex-wrap:wrap}.sbox .ai{display:none}.sbox input{flex:1 1 100%;padding:15px}.sbox button{flex:1 1 100%;padding:13px}
 .row{grid-template-columns:1fr}.row .act{flex-direction:row;align-items:center;min-width:0}
 .g4,.g3,.g2,.g5,.svc{grid-template-columns:1fr}.ftr .cols{grid-template-columns:1fr 1fr}.kv{grid-template-columns:90px 1fr}
 .ps{padding:20px 18px}
}
@media(max-width:520px){.ftr .cols{grid-template-columns:1fr}}
.sidehead{display:none}.side.show .sidehead{display:flex;position:fixed;top:0;left:0;right:0;background:#fff;padding:14px 20px;border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;z-index:2}.side.show .sidefoot{display:block;position:fixed;bottom:0;left:0;right:0;background:#fff;padding:12px 20px;border-top:1px solid var(--line)}.sidefoot{display:none}
.pt,.keybox,.prof>*{min-width:0}.mr pre{white-space:pre-wrap;word-break:break-word}.tw{overflow-x:auto}.keybox .fyrs{display:grid;gap:5px}.keybox .fy{display:block;border-radius:8px}.ps{overflow-wrap:anywhere}
/* motion: respect reduced-motion everywhere */
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;animation-delay:0s!important;transition-duration:.001ms!important;scroll-behavior:auto!important}.btn:hover,.card.hov:hover{transform:none}}
