:root{
  --logo:url(/img/logo.png);
  --paper:#FFFFFF; --mist:#F3F7FC; --fog:#E9F0F8;
  --ink:#0A1E3C; --slate:#42546E; --mute:#8393AB;
  --line:#E2EAF4; --line2:#D4E0EF;
  --blue:#1452E6; --blue-deep:#0B32A8; --blue-soft:#EAF0FE;
  --signal:#12A8BE; --amber:#E0930C; --good:#0FA35B;
  --disp:'Space Grotesk',sans-serif; --body:'Inter',sans-serif; --mono:'IBM Plex Mono',monospace;
  --wrap:1180px; --logoW:0.856;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:var(--body); color:var(--slate); background:var(--paper);
  line-height:1.6; -webkit-font-smoothing:antialiased; overflow-x:hidden;
}
h1,h2,h3,h4{font-family:var(--disp); color:var(--ink); line-height:1.12; font-weight:600; letter-spacing:-.01em}
a{color:inherit; text-decoration:none}
.wrap{max-width:var(--wrap); margin:0 auto; padding:0 28px}
.mono{font-family:var(--mono)}
.eyebrow{
  font-family:var(--mono); font-size:11px; font-weight:500; letter-spacing:.22em;
  text-transform:uppercase; color:var(--blue);
}
section{position:relative}

/* ---- nav ---- */
.nav{
  position:sticky; top:0; z-index:100; background:rgba(255,255,255,.86);
  backdrop-filter:blur(12px); border-bottom:1px solid var(--line);
}
.nav-in{max-width:var(--wrap); margin:0 auto; padding:0 28px; height:64px;
  display:flex; align-items:center; gap:26px}
.brand{display:flex; align-items:center; gap:11px; font-family:var(--disp); font-weight:700;
  font-size:22px; color:var(--ink); letter-spacing:-.02em}
.brand-logo{height:44px; width:38px; display:block; flex:none; background:var(--logo) left center/contain no-repeat}
.brand small{font-family:var(--mono); font-weight:500; font-size:10px; letter-spacing:.14em;
  color:var(--mute); text-transform:uppercase}
.nav-links{display:flex; gap:20px; margin-left:auto; align-items:center}
.nav-links a{font-size:13.5px; font-weight:500; color:var(--slate); transition:color .18s}
.nav-links a:hover{color:var(--blue)}
.nav-links a.pill{background:var(--ink); color:#fff; padding:8px 15px; border-radius:7px}
.nav-links a.pill:hover{background:var(--blue)}
.lang{display:inline-flex; align-items:center}
.lang select{font-family:var(--mono); font-size:12px; font-weight:600; color:var(--ink);
  background:#fff; border:1px solid var(--line2); border-radius:7px; padding:7px 26px 7px 10px; cursor:pointer;
  appearance:none; -webkit-appearance:none; letter-spacing:.02em; max-width:150px;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='10' viewBox='0 0 10 10'><path d='M1 3l4 4 4-4' fill='none' stroke='%231452E6' stroke-width='1.6'/></svg>");
  background-repeat:no-repeat; background-position:right 9px center}
.lang select:hover{border-color:var(--blue)}
.lang select:focus{outline:2px solid var(--blue); outline-offset:1px}
/* CJK / Cyrillic font stacks (applied per language) */
html.font-ru h1, html.font-ru h2, html.font-ru h3, html.font-ru h4{font-family:'Inter',sans-serif}
html.font-ja body, html.font-ja h1, html.font-ja h2, html.font-ja h3, html.font-ja h4,
html.font-ja .brand, html.font-ja .hero-h{font-family:'Noto Sans JP','Inter',sans-serif}
html.font-sc body, html.font-sc h1, html.font-sc h2, html.font-sc h3, html.font-sc h4,
html.font-sc .brand, html.font-sc .hero-h{font-family:'Noto Sans SC','Inter',sans-serif}
html.font-tc body, html.font-tc h1, html.font-tc h2, html.font-tc h3, html.font-tc h4,
html.font-tc .brand, html.font-tc .hero-h{font-family:'Noto Sans TC','Inter',sans-serif}
html.font-ja body, html.font-sc body, html.font-tc body{font-weight:400}
.menu-btn{display:none; margin-left:auto; background:none; border:1px solid var(--line2);
  border-radius:7px; width:40px; height:38px; cursor:pointer; color:var(--ink)}

/* ---- hero ---- */
.hero{padding:72px 0 40px; position:relative; overflow:hidden}
.hero::before{ /* subtle waterfall backdrop */
  content:""; position:absolute; inset:0; z-index:0;
  background:
    repeating-linear-gradient(90deg, rgba(20,82,230,.035) 0 1px, transparent 1px 9px),
    linear-gradient(180deg, var(--mist), transparent 60%);
  mask:linear-gradient(180deg,#000,transparent 78%);
}
.hero-grid{position:relative; z-index:1; display:grid; grid-template-columns:1.05fr .95fr;
  gap:48px; align-items:center}
.tagstrip{display:flex; flex-wrap:wrap; gap:7px; margin-bottom:20px}
.tag{font-family:var(--mono); font-size:10.5px; font-weight:500; letter-spacing:.08em;
  text-transform:uppercase; color:var(--blue-deep); background:var(--blue-soft);
  border:1px solid #D9E4FD; padding:5px 9px; border-radius:5px}
.tag.gold{color:#8a5b06; background:#FCF3DE; border-color:#F1E1B8}
h1.hero-h{font-size:clamp(52px,7vw,92px); font-weight:700; letter-spacing:-.03em; line-height:.94}
h1.hero-h .fade{color:var(--blue)}
.hero-lead{font-size:18px; color:var(--slate); margin:20px 0 8px; max-width:520px}
.hero-lead b{color:var(--ink); font-weight:600}
.hero-cta{display:flex; flex-wrap:wrap; gap:11px; margin-top:26px}
.btn{font-family:var(--body); font-weight:600; font-size:14px; padding:12px 20px; border-radius:9px;
  border:1px solid transparent; cursor:pointer; transition:all .18s; display:inline-flex; align-items:center; gap:8px}
.btn-primary{background:var(--blue); color:#fff}
.btn-primary:hover{background:var(--blue-deep); transform:translateY(-1px)}
.btn-ghost{background:#fff; color:var(--ink); border-color:var(--line2)}
.btn-ghost:hover{border-color:var(--blue); color:var(--blue)}
.btn-dark{background:var(--ink); color:#fff}
.btn-dark:hover{background:#12315c}

/* ---- signature: cycle race ---- */
.race{background:#fff; border:1px solid var(--line); border-radius:18px;
  padding:22px 22px 18px; box-shadow:0 24px 60px -34px rgba(11,50,168,.35)}
.race-top{display:flex; justify-content:space-between; align-items:center; margin-bottom:16px}
.race-top .lbl{font-family:var(--mono); font-size:10.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--mute)}
.race-live{display:inline-flex; align-items:center; gap:6px; font-family:var(--mono); font-size:10.5px; color:var(--good); letter-spacing:.1em}
.dot{width:7px; height:7px; border-radius:50%; background:var(--good); box-shadow:0 0 0 0 rgba(15,163,91,.5); animation:pulse 1.8s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(15,163,91,.45)}70%{box-shadow:0 0 0 7px rgba(15,163,91,0)}100%{box-shadow:0 0 0 0 rgba(15,163,91,0)}}
.race-row{display:grid; grid-template-columns:78px 1fr 74px; align-items:center; gap:12px; padding:11px 0; border-top:1px solid var(--line)}
.race-row:first-of-type{border-top:none}
.race-row .m{font-family:var(--disp); font-weight:700; color:var(--ink); font-size:17px}
.race-row .m span{display:block; font-family:var(--mono); font-weight:500; font-size:10px; color:var(--mute); letter-spacing:.06em; margin-top:1px}
.track{position:relative; height:26px; background:var(--mist); border:1px solid var(--line); border-radius:6px; overflow:hidden}
.burst{position:absolute; top:0; bottom:0; left:0; width:34%; border-radius:5px;
  background:linear-gradient(90deg, rgba(20,82,230,.14), var(--blue));
  box-shadow:0 0 12px rgba(20,82,230,.35)}
.burst::after{content:""; position:absolute; right:0; top:0; bottom:0; width:2px; background:#fff; opacity:.85}
.race-row.ft2 .burst{background:linear-gradient(90deg, rgba(18,168,190,.16), var(--blue)); }
.qcount{font-family:var(--mono); font-weight:600; font-size:15px; color:var(--ink); text-align:right}
.qcount span{display:block; font-size:9.5px; font-weight:500; color:var(--mute); letter-spacing:.1em; text-transform:uppercase}
.race-foot{margin-top:14px; padding-top:13px; border-top:1px dashed var(--line2);
  font-family:var(--mono); font-size:11px; color:var(--mute); text-align:center; letter-spacing:.03em}
.race-foot b{color:var(--blue); font-weight:600}

/* ---- readout strip ---- */
.readout{background:var(--ink); color:#fff}
.readout .wrap{display:grid; grid-template-columns:repeat(6,1fr); gap:0}
.ro{padding:26px 18px; text-align:center; border-right:1px solid rgba(255,255,255,.09)}
.ro:last-child{border-right:none}
.ro .v{font-family:var(--disp); font-weight:700; font-size:30px; letter-spacing:-.02em; color:#fff}
.ro .v em{font-style:normal; color:#5fa0ff; font-size:16px}
.ro .k{font-family:var(--mono); font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:#8fa6c9; margin-top:6px}

/* ---- generic section ---- */
.band{padding:88px 0}
.band.alt{background:var(--mist); border-top:1px solid var(--line); border-bottom:1px solid var(--line)}
.head{max-width:660px; margin-bottom:44px}
.head h2{font-size:clamp(30px,4vw,44px); font-weight:700; letter-spacing:-.02em; margin:12px 0 14px}
.head p{font-size:16.5px; color:var(--slate)}

/* ---- ADIF certificate ---- */
.cert{background:#fff; border:1px solid var(--line2); border-radius:18px; overflow:hidden;
  box-shadow:0 30px 70px -46px rgba(10,30,60,.4)}
.cert-top{display:grid; grid-template-columns:1fr auto 1fr; gap:24px; padding:34px 34px 30px;
  align-items:center; background:linear-gradient(180deg,#fff,var(--mist)); border-bottom:1px solid var(--line)}
.vote{text-align:center}
.vote .n{font-family:var(--disp); font-weight:700; font-size:66px; line-height:1; color:var(--ink)}
.vote.yes .n{color:var(--blue)} .vote.no .n{color:var(--mute)}
.vote .k{font-family:var(--mono); font-size:10.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--mute); margin-top:8px}
.seal{width:118px; height:118px; border-radius:50%; border:2px solid var(--amber);
  display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center;
  background:#FCF7EC; color:#8a5b06}
.seal .s1{font-family:var(--mono); font-size:9px; letter-spacing:.14em}
.seal .s2{font-family:var(--disp); font-weight:700; font-size:20px; color:#7a4f05; line-height:1.05; margin:3px 0}
.seal .s3{font-family:var(--mono); font-size:8.5px; letter-spacing:.1em}
.cert-note{padding:26px 34px; font-size:14.5px; color:var(--slate)}
.cert-note b{color:var(--ink)}
.voters{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line);
  border-top:1px solid var(--line)}
.voter{background:#fff; padding:14px 16px}
.voter .c{font-family:var(--mono); font-weight:600; font-size:13px; color:var(--ink)}
.voter .n{font-size:12px; color:var(--slate); margin:2px 0 1px}
.voter .p{font-size:11px; color:var(--mute)}
.voter .y{float:right; font-family:var(--mono); font-size:9.5px; font-weight:600; color:var(--good); letter-spacing:.08em}
.voter.key .y{color:var(--amber)}

/* ---- metric cards / raptor ---- */
.metrics{display:grid; grid-template-columns:repeat(4,1fr); gap:16px}
.metric{background:#fff; border:1px solid var(--line); border-radius:14px; padding:22px}
.metric .k{font-family:var(--mono); font-size:10.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--mute)}
.metric .v{font-family:var(--disp); font-weight:700; font-size:38px; color:var(--ink); letter-spacing:-.02em; margin:8px 0 2px}
.metric .v em{font-style:normal; color:var(--blue); font-size:20px}
.metric .was{font-family:var(--mono); font-size:11px; color:var(--mute)}
.metric .was s{color:#b9c4d4}
.raptor-tbl{margin-top:22px; width:100%; border-collapse:collapse; background:#fff;
  border:1px solid var(--line); border-radius:12px; overflow:hidden}
.raptor-tbl th{padding:11px 16px; font-size:11.5px; font-family:var(--mono); text-transform:uppercase; letter-spacing:.08em; color:var(--mute); text-align:left; font-weight:600; border-bottom:1px solid var(--line)}
.raptor-tbl th.a,.raptor-tbl th.b{text-align:right}
.raptor-tbl td{padding:11px 16px; border-top:1px solid var(--line); font-size:13.5px}
.raptor-tbl tr:first-child td{border-top:none}
.raptor-tbl td:first-child{color:var(--slate)}
.raptor-tbl td.a{font-family:var(--mono); color:var(--mute); text-align:right}
.raptor-tbl td.b{font-family:var(--mono); color:var(--blue); font-weight:600; text-align:right; width:120px}

/* ---- shannon ---- */
.formula{text-align:center; margin:0 auto 40px; max-width:620px; background:var(--ink); color:#fff;
  border-radius:16px; padding:34px}
.formula .eq{font-family:var(--mono); font-size:30px; font-weight:500; letter-spacing:.02em}
.formula .eq em{font-style:normal; color:#5fa0ff}
.formula .cap{font-family:var(--mono); font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:#8fa6c9; margin-top:12px}
.timeline{display:grid; gap:0; border-left:2px solid var(--line2); margin-left:6px}
.tl{position:relative; padding:0 0 26px 30px}
.tl::before{content:""; position:absolute; left:-7px; top:4px; width:12px; height:12px; border-radius:50%;
  background:#fff; border:2px solid var(--blue)}
.tl.star::before{background:var(--amber); border-color:var(--amber)}
.tl h3{font-size:16px; font-weight:600; margin-bottom:3px}
.tl p{font-size:14px; color:var(--slate); font-family:var(--mono)}
.limit{margin-top:8px; display:flex; gap:20px; flex-wrap:wrap}
.limit .box{flex:1; min-width:200px; background:#fff; border:1px solid var(--line); border-radius:12px; padding:18px}
.limit .box .k{font-family:var(--mono); font-size:10.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--mute)}
.limit .box .v{font-family:var(--disp); font-weight:700; font-size:26px; color:var(--ink); margin-top:6px}
.quote{margin-top:34px; text-align:center; font-family:var(--disp); font-weight:500; font-size:20px;
  color:var(--ink); font-style:italic}
.quote span{display:block; font-family:var(--mono); font-style:normal; font-size:12px; color:var(--mute); letter-spacing:.1em; margin-top:10px; text-transform:uppercase}

/* ---- feature cards ---- */
.feat{display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin-bottom:44px}
.fcard{background:#fff; border:1px solid var(--line); border-radius:14px; padding:24px; transition:all .2s}
.fcard:hover{border-color:var(--blue); transform:translateY(-2px); box-shadow:0 20px 40px -30px rgba(20,82,230,.5)}
.fcard .ico{width:38px; height:38px; border-radius:9px; background:var(--blue-soft); display:flex;
  align-items:center; justify-content:center; margin-bottom:14px}
.fcard .ico svg{width:20px; height:20px; stroke:var(--blue); fill:none; stroke-width:1.8}
.fcard h3{font-size:16px; font-weight:600; margin-bottom:7px}
.fcard p{font-size:13.5px; color:var(--slate)}

/* ---- spec table ---- */
.spec{width:100%; border-collapse:collapse; background:#fff; border:1px solid var(--line);
  border-radius:14px; overflow:hidden; font-size:13.5px}
.spec th,.spec td{padding:13px 16px; text-align:left; border-bottom:1px solid var(--line)}
.spec thead th{background:var(--ink); color:#fff; font-family:var(--mono); font-weight:500;
  font-size:11px; letter-spacing:.08em; text-transform:uppercase}
.spec thead th.hi{background:var(--blue)}
.spec td:first-child{color:var(--slate); font-weight:500}
.spec td{font-family:var(--mono); color:var(--slate)}
.spec td.hi{background:var(--blue-soft); color:var(--blue-deep); font-weight:600}
.spec tbody tr:last-child td{border-bottom:none}
.spec tbody tr:hover td{background:var(--mist)}
.spec tbody tr:hover td.hi{background:#dde8fe}

/* ---- download / docs cards ---- */
.dl-grid{display:grid; grid-template-columns:1fr 1fr; gap:16px}
.dl{display:flex; gap:16px; align-items:flex-start; background:#fff; border:1px solid var(--line2);
  border-radius:14px; padding:22px; transition:all .2s}
.dl:hover{border-color:var(--blue); box-shadow:0 20px 44px -32px rgba(20,82,230,.5)}
.dl .badge{font-family:var(--mono); font-size:10px; font-weight:600; letter-spacing:.08em; color:#fff;
  background:var(--ink); padding:4px 8px; border-radius:5px; white-space:nowrap; margin-top:2px}
.dl.pri .badge{background:var(--blue)}
.dl h3{font-size:15.5px; margin-bottom:4px}
.dl p{font-size:12.5px; color:var(--mute); font-family:var(--mono)}
.dl .who{font-size:12.5px; color:var(--slate); margin-top:5px}
.dl-legacy{margin-top:16px; display:grid; grid-template-columns:repeat(3,1fr); gap:12px}
/* latest banner + OS buttons */
.dl-latest{display:flex; justify-content:space-between; align-items:center; gap:16px; flex-wrap:wrap;
  background:var(--blue-soft); border:1px solid #D9E4FD; border-radius:12px; padding:14px 20px; margin-bottom:16px}
.dl-latest-l{display:flex; align-items:center; gap:14px}
.pillL{display:inline-flex; align-items:center; gap:7px; font-family:var(--mono); font-size:10.5px;
  font-weight:600; letter-spacing:.12em; color:#fff; background:var(--blue); padding:5px 10px; border-radius:6px}
.pillL .ld{width:7px; height:7px; border-radius:50%; background:#fff; animation:pulse 1.8s infinite}
.dl-ver{font-family:var(--disp); font-weight:700; font-size:24px; color:var(--ink); letter-spacing:-.01em}
.dl-latest-r{font-family:var(--mono); font-size:12px; color:var(--blue-deep)}
.os-btns{display:none; grid-template-columns:repeat(3,1fr); gap:12px; margin-bottom:16px}
.os-btn{display:flex; align-items:center; gap:13px; background:var(--ink); color:#fff;
  border-radius:12px; padding:15px 18px; transition:all .18s}
.os-btn:hover{background:#12315c; transform:translateY(-2px); box-shadow:0 18px 40px -26px rgba(20,82,230,.6)}
.os-btn .os-i{width:30px; height:30px; display:flex; align-items:center; justify-content:center; flex:none}
.os-btn .os-i svg{width:22px; height:22px; fill:#5fa0ff}
.os-btn b{display:block; font-family:var(--disp); font-weight:600; font-size:15px; color:#fff}
.os-btn small{display:block; font-family:var(--mono); font-size:10.5px; color:#8fa6c9; letter-spacing:.04em; margin-top:1px}
.dl-sm{background:#fff; border:1px solid var(--line); border-radius:11px; padding:15px; font-size:12.5px}
.dl-sm h4{font-family:var(--disp); font-size:13.5px; color:var(--ink); margin-bottom:3px}
.dl-sm p{font-family:var(--mono); font-size:11px; color:var(--mute)}
.docs{display:grid; grid-template-columns:repeat(3,1fr); gap:16px}
.doc{background:#fff; border:1px solid var(--line); border-radius:14px; padding:24px; display:flex; flex-direction:column}
.doc.reco{border-color:var(--blue); box-shadow:0 20px 44px -34px rgba(20,82,230,.5)}
.doc .top{display:flex; justify-content:space-between; align-items:flex-start; margin-bottom:10px}
.doc .kk{font-family:var(--mono); font-size:10px; letter-spacing:.08em; text-transform:uppercase; color:var(--mute)}
.doc .star{font-family:var(--mono); font-size:9.5px; font-weight:600; color:var(--blue); background:var(--blue-soft); padding:3px 7px; border-radius:5px}
.doc h3{font-size:17px; margin-bottom:8px}
.doc p{font-size:13px; color:var(--slate); flex:1; margin-bottom:16px}
.doc .langs{display:flex; gap:8px; flex-wrap:wrap}
.doc .langs a{font-family:var(--mono); font-size:11.5px; font-weight:500; color:var(--blue);
  border:1px solid var(--line2); border-radius:7px; padding:6px 10px; transition:all .16s}
.doc .langs a:hover{background:var(--blue); color:#fff; border-color:var(--blue)}

/* ---- catalog ---- */
.cat-lead{display:flex; gap:16px; align-items:stretch; margin-bottom:26px; flex-wrap:wrap}
.cat-feature{flex:1; min-width:300px; background:var(--ink); color:#fff; border-radius:16px; padding:28px 30px;
  position:relative; overflow:hidden; display:flex; flex-direction:column; justify-content:center}
.cat-feature::before{content:""; position:absolute; inset:0;
  background:repeating-linear-gradient(90deg, rgba(95,160,255,.08) 0 1px, transparent 1px 8px);
  mask:linear-gradient(180deg,transparent,#000)}
.cat-feature .rel{position:relative; z-index:1}
.cat-feature .kk{font-family:var(--mono); font-size:10.5px; letter-spacing:.16em; text-transform:uppercase; color:#8fa6c9}
.cat-feature h3{color:#fff; font-size:26px; font-weight:700; margin:8px 0 10px; letter-spacing:-.01em}
.cat-feature p{font-size:14px; color:#cdd9ec; max-width:440px}
.cat-feature .dllink{display:inline-flex; align-items:center; gap:8px; margin-top:18px;
  font-family:var(--body); font-weight:600; font-size:14px; color:#fff; background:var(--blue);
  padding:11px 18px; border-radius:9px; align-self:flex-start; transition:all .18s}
.cat-feature .dllink:hover{background:#2a63f0; transform:translateY(-1px)}
.cat-langs{display:grid; grid-template-columns:repeat(7,1fr); gap:10px}
.cat-lang{display:flex; flex-direction:column; gap:2px; background:#fff; border:1px solid var(--line2);
  border-radius:11px; padding:13px 12px; transition:all .18s}
.cat-lang:hover{border-color:var(--blue); transform:translateY(-2px); box-shadow:0 16px 34px -26px rgba(20,82,230,.55)}
.cat-lang .code{font-family:var(--mono); font-weight:600; font-size:14px; color:var(--ink); letter-spacing:.03em}
.cat-lang .name{font-size:11.5px; color:var(--slate); line-height:1.35}
.cat-lang .fmt{font-family:var(--mono); font-size:9.5px; color:var(--mute); letter-spacing:.06em; margin-top:5px}
.cat-lang svg{width:15px; height:15px; stroke:var(--blue); fill:none; stroke-width:1.8; margin-top:6px}

/* ---- gallery ---- */
.gal{display:grid; grid-template-columns:repeat(3,1fr); gap:16px}
.qso{background:var(--ink); color:#fff; border-radius:16px; padding:24px; position:relative; overflow:hidden}
.qso::before{content:""; position:absolute; inset:0;
  background:repeating-linear-gradient(90deg, rgba(95,160,255,.09) 0 1px, transparent 1px 7px);
  mask:linear-gradient(180deg,transparent,#000)}
.qso .rel{position:relative; z-index:1}
.qso .call{font-family:var(--disp); font-weight:700; font-size:26px}
.qso .loc{font-family:var(--mono); font-size:11px; color:#8fa6c9; letter-spacing:.08em; margin:2px 0 18px}
.qso .rows{display:flex; flex-direction:column; gap:6px; font-family:var(--mono); font-size:12.5px; color:#cdd9ec}
.qso .status{margin-top:16px; display:inline-block; font-family:var(--mono); font-size:10.5px; font-weight:600;
  letter-spacing:.1em; color:#5fa0ff; border:1px solid rgba(95,160,255,.4); padding:5px 10px; border-radius:6px}

/* ---- team ---- */
.team{display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-bottom:40px}
.member{background:#fff; border:1px solid var(--line); border-radius:14px; padding:24px}
.member .av{width:52px; height:52px; border-radius:12px; background:var(--blue-soft); color:var(--blue);
  font-family:var(--disp); font-weight:700; font-size:18px; display:flex; align-items:center; justify-content:center; margin-bottom:14px}
.member h3{font-size:18px}
.member .role{font-family:var(--mono); font-size:11px; color:var(--blue); letter-spacing:.08em; text-transform:uppercase; margin:3px 0 10px}
.member p{font-size:13px; color:var(--slate)}
.member .tag2{display:inline-block; margin-top:12px; font-family:var(--mono); font-size:10px; font-weight:600;
  letter-spacing:.08em; color:var(--slate); background:var(--mist); border:1px solid var(--line); padding:4px 8px; border-radius:5px}
.credits{background:#fff; border:1px solid var(--line); border-radius:14px; padding:24px 28px}
.credits h3{font-size:14px; font-family:var(--mono); letter-spacing:.1em; text-transform:uppercase; color:var(--mute); margin-bottom:14px}
.credits ul{list-style:none; display:grid; grid-template-columns:1fr 1fr; gap:8px 30px}
.credits li{font-size:13px; color:var(--slate); border-bottom:1px dashed var(--line); padding-bottom:6px}
.credits li b{color:var(--ink); font-weight:600}

/* ---- contact / footer ---- */
.contact{display:grid; grid-template-columns:1fr 1fr; gap:40px; align-items:start}
.clist{display:flex; flex-direction:column; gap:12px}
.crow{display:flex; align-items:center; gap:12px; font-size:14.5px; color:var(--slate); padding:12px 0; border-bottom:1px solid var(--line)}
.crow b{color:var(--ink)}
.crow a{color:var(--blue); font-weight:500}
.sponsors{display:flex; flex-wrap:wrap; gap:14px; align-items:center}
.sponsors img{height:40px; opacity:.7; filter:grayscale(.3); transition:all .2s}
.sponsors a:hover img{opacity:1; filter:none}
footer{background:var(--ink); color:#9fb2cd; padding:44px 0 34px; text-align:center}
footer .fbrand{font-family:var(--disp); font-weight:700; font-size:24px; color:#fff; letter-spacing:-.02em}
footer .footer-logo{height:88px; width:76px; display:inline-block; background:var(--logo) center/contain no-repeat}
footer .fdev{font-family:var(--body); font-size:13.5px; color:#cdd9ec; margin-top:10px}
footer .fdev b{color:#fff}
footer .cert-line{font-family:var(--mono); font-size:11.5px; color:#5fa0ff; margin:14px 0 8px; letter-spacing:.04em}
footer .flinks{display:flex; gap:22px; justify-content:center; flex-wrap:wrap; margin:16px 0 4px}
footer .flinks a{font-size:13px; font-weight:500; color:#cdd9ec; transition:color .16s}
footer .flinks a:hover{color:#fff}
footer .tags{font-family:var(--mono); font-size:11px; color:#6b83a6; margin-top:14px; letter-spacing:.03em}
footer .cp{font-size:12px; margin-top:8px}

/* reveal */
.rv{opacity:0; transform:translateY(18px); transition:opacity .6s ease, transform .6s ease}
.rv.in{opacity:1; transform:none}

/* responsive */
@media(max-width:960px){
  .hero-grid{grid-template-columns:1fr; gap:36px}
  .readout .wrap{grid-template-columns:repeat(3,1fr)}
  .ro:nth-child(3){border-right:none} .ro:nth-child(n+4){border-top:1px solid rgba(255,255,255,.09)}
  .metrics,.feat{grid-template-columns:repeat(2,1fr)}
  .voters{grid-template-columns:repeat(2,1fr)}
  .dl-grid,.contact{grid-template-columns:1fr}
  .docs,.team,.gal{grid-template-columns:1fr}
  .cat-langs{grid-template-columns:repeat(4,1fr)}
  .dl-legacy{grid-template-columns:1fr 1fr}
  .credits ul{grid-template-columns:1fr}
  .cert-top{grid-template-columns:1fr; gap:18px; justify-items:center; text-align:center}
}
@media(max-width:640px){
  .nav-links{display:none}
  .nav-links.open{display:flex; position:absolute; top:64px; left:0; right:0; flex-direction:column;
    background:#fff; border-bottom:1px solid var(--line); padding:16px 28px; gap:14px; align-items:flex-start}
  .menu-btn{display:block}
  .readout .wrap{grid-template-columns:repeat(2,1fr)}
  .metrics,.feat,.dl-legacy{grid-template-columns:1fr}
  .os-btns{grid-template-columns:1fr}
  .voters{grid-template-columns:1fr}
  .cat-langs{grid-template-columns:repeat(2,1fr)}
  .band{padding:60px 0}
  .spec{display:block; overflow-x:auto; white-space:nowrap}
}
@media(prefers-reduced-motion:reduce){
  *{animation:none!important; transition:none!important}
  .rv{opacity:1; transform:none}
}

.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.skip-link{position:absolute;left:-9999px;top:0;z-index:10000;padding:10px 18px;background:var(--blue,#0b6cff);color:#fff;font-weight:700;text-decoration:none;border-radius:0 0 8px 0}
.skip-link:focus{left:0}

/* ---- FT2 live widget ---- */
.live-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin:26px 0}
.live-stat{background:var(--mist); border:1px solid var(--line); border-radius:14px; padding:20px 22px; text-align:center}
.live-stat .v{font-family:var(--disp); font-size:34px; font-weight:700; color:var(--blue)}
.live-stat .k{font-family:var(--mono); font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--mute); margin-top:4px}
.live-tbl-wrap{overflow-x:auto; border:1px solid var(--line); border-radius:14px; background:#fff}
.live-tbl{width:100%; border-collapse:collapse; font-size:13.5px}
.live-tbl th{font-family:var(--mono); font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:var(--mute); text-align:left; padding:11px 16px; border-bottom:1px solid var(--line); font-weight:600}
.live-tbl td{padding:10px 16px; border-top:1px solid var(--line); color:var(--slate)}
.live-tbl tr:first-child td{border-top:none}
.live-tbl td.mono{font-family:var(--mono)}
.live-cta{margin-top:22px; text-align:center}
@media(max-width:640px){.live-grid{grid-template-columns:1fr}}

/* barra lancio forum */
.forum-launch{display:block; text-align:center; background:var(--blue-soft); color:var(--blue); font-weight:600; font-size:14px; padding:10px 16px; border-bottom:1px solid var(--line)}
.forum-launch:hover{background:#DFE9FD}

/* barra invio log - scadenza classifica finale */
.log-call{display:block; text-align:center; background:#FFF6E0; color:#8A5A00; font-weight:700; font-size:14px; padding:10px 16px; border-bottom:1px solid #F0DFB4}
.log-call:hover{background:#FFEFC7}

/* ---- Decodium Mobile ---- */
.mobile-band{background:linear-gradient(180deg,var(--mist) 0%,var(--paper) 78%); border-top:1px solid var(--line); border-bottom:1px solid var(--line)}
.mob-shots{display:flex; gap:20px; overflow-x:auto; padding:8px 4px 22px; scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch; justify-content:flex-start}
.mob-shots img{height:430px; width:auto; flex:none; border-radius:20px; border:1px solid var(--line2);
  box-shadow:0 30px 60px -38px rgba(10,30,60,.55); scroll-snap-align:center; background:#08111f}
.mob-feat{margin-top:26px}
.mob-cta{margin-top:34px; text-align:center}
.mob-badge{display:inline-block; font-family:var(--mono); font-size:11px; font-weight:600; letter-spacing:.14em;
  text-transform:uppercase; color:#8A5A00; background:#FFF6E0; border:1px solid #F0DFB4; border-radius:999px;
  padding:7px 16px; margin-bottom:18px}
.mob-cta .hero-cta{justify-content:center; margin-top:0}
.mob-note{font-family:var(--mono); font-size:11.5px; color:var(--mute); margin-top:16px}
@media(max-width:640px){.mob-shots img{height:330px}}


/* ---- Decometer (sezione #decometer) ---------------------------------------
   Banda in vetro nero: e' il pannello dello strumento, e annuncia la pagina
   /decometer che ha lo stesso tema scuro. Palette allineata a quella pagina. */
.deco-band{
  background:linear-gradient(180deg,#0B1016 0%,#0E141A 60%,#090D12 100%);
  color:#C9D3DC; border-top:1px solid #1E252C; border-bottom:1px solid #1E252C;
}
.deco-band h2,.deco-band h3{color:#EAEEF1}
.deco-band .eyebrow{color:#2FCADA}
.deco-band p{color:#9AA4AD}
.deco-band .fcard{background:rgba(255,255,255,.028); border-color:#242D35}
.deco-band .fcard:hover{border-color:#2FCADA; box-shadow:0 20px 40px -30px rgba(47,202,218,.6)}
.deco-band .fcard .ico{background:rgba(47,202,218,.12)}
.deco-band .fcard .ico svg{stroke:#2FCADA}
.deco-band .btn-primary{background:#2FCADA; color:#04191C}
.deco-band .btn-primary:hover{background:#52DCEA}
.deco-band .btn-ghost{background:transparent; color:#EAEEF1; border-color:#2A333B}
.deco-band .btn-ghost:hover{border-color:#2FCADA; color:#2FCADA}
.deco-band .mob-note{color:#6B7681; margin-top:14px}

.deco-top{display:grid; grid-template-columns:1.05fr .95fr; gap:44px; align-items:center}
.deco-lead h2{font-size:clamp(28px,3.6vw,40px); font-weight:700; letter-spacing:-.02em; margin:12px 0 14px}
.deco-lead p{font-size:16px}
.deco-dial canvas{width:100%; height:auto; display:block}
.deco-cap{display:flex; justify-content:space-between; gap:12px; margin-top:10px;
  font-size:11px; letter-spacing:.12em; color:#6B7681; text-transform:uppercase}

.deco-tally{display:grid; grid-template-columns:repeat(4,1fr); gap:1px;
  background:#1E252C; border:1px solid #1E252C; border-radius:12px; overflow:hidden; margin-top:38px}
.deco-tally div{background:#11171D; padding:18px 20px}
.deco-tally b{display:block; font-family:var(--disp); font-size:30px; font-weight:600; color:#2FCADA; line-height:1}
.deco-tally span{display:block; font-size:12.5px; color:#9AA4AD; margin-top:6px}

.feat.deco-feat{grid-template-columns:repeat(3,1fr); margin:18px 0 0}

@media(max-width:960px){
  .deco-top{grid-template-columns:1fr; gap:30px}
  .deco-dial{order:-1; max-width:420px; margin:0 auto}
  .feat.deco-feat{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:640px){
  .deco-tally{grid-template-columns:repeat(2,1fr)}
  .feat.deco-feat{grid-template-columns:1fr}
}

/* barra annuncio Decometer: stessa forma di .log-call, palette dello strumento */
.log-call.deco-call{background:#0E141A; color:#2FCADA; border-bottom:1px solid #1E252C; font-weight:600}
.log-call.deco-call:hover{background:#141C24; color:#52DCEA}

/* ---- articolo in evidenza (fastldpc) ---- */
.paper-band{background:var(--paper); padding:52px 0}
.paper-card{display:grid; grid-template-columns:1.4fr .6fr; gap:30px; align-items:center;
  border:1px solid var(--line2); border-radius:16px; padding:28px 30px;
  background:linear-gradient(135deg,var(--blue-soft) 0%,#fff 62%);
  text-decoration:none; color:inherit; transition:border-color .2s, box-shadow .2s, transform .2s}
.paper-card:hover{border-color:var(--blue); transform:translateY(-2px);
  box-shadow:0 26px 50px -34px rgba(20,82,230,.55)}
.pc-main h2{font-size:clamp(21px,2.5vw,29px); font-weight:700; letter-spacing:-.02em; margin:11px 0 11px}
.pc-main p{font-size:15px; color:var(--slate)}
.pc-cta{display:inline-block; margin-top:16px; font-weight:600; color:var(--blue); font-size:14.5px}
.paper-card:hover .pc-cta{text-decoration:underline}
.pc-note{display:block; margin-top:7px; font-family:var(--mono); font-size:11.5px; color:var(--mute)}
.pc-figs{display:grid; gap:1px; background:var(--line); border:1px solid var(--line);
  border-radius:12px; overflow:hidden}
.pc-figs div{background:#fff; padding:14px 16px}
.pc-figs b{display:block; font-family:var(--disp); font-size:23px; font-weight:700; color:var(--blue); line-height:1}
.pc-figs span{display:block; font-size:12px; color:var(--mute); margin-top:4px}
@media(max-width:820px){
  .paper-card{grid-template-columns:1fr; padding:24px 22px}
  .pc-figs{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:560px){.pc-figs{grid-template-columns:1fr}}

/* ---- annuncio stazione speciale VY2XT (palette della sua QSL) ---- */
.vy-band{background:#0A2032; padding:46px 0; border-top:1px solid #0d2a40; border-bottom:1px solid #0d2a40}
.vy-card{position:relative; display:grid; grid-template-columns:1.15fr .85fr; gap:28px; align-items:center;
  background:linear-gradient(135deg,#0C2739 0%,#113A4E 58%,#0B2233 100%);
  border:1px solid #1d4a60; border-radius:18px; padding:30px 34px; overflow:hidden;
  text-decoration:none; color:#c9dbe4; transition:border-color .2s, box-shadow .2s, transform .2s}
.vy-card:hover{border-color:#6AB2AA; transform:translateY(-2px); box-shadow:0 28px 56px -34px rgba(0,0,0,.75)}
.vy-eyebrow{font-family:var(--mono); font-size:11px; font-weight:600; letter-spacing:.22em;
  text-transform:uppercase; color:#6AB2AA}
.vy-main h2{font-size:clamp(23px,2.7vw,33px); font-weight:700; letter-spacing:-.02em; color:#F2E9D8; margin:10px 0 12px}
.vy-main p{font-size:15px; color:#adc4d0; margin-bottom:18px}
.vy-facts{display:flex; flex-wrap:wrap; gap:0; border:1px solid #235469; border-radius:10px; overflow:hidden; max-width:430px}
.vy-facts div{flex:1 1 0; min-width:88px; background:#9E3C28; padding:9px 10px; text-align:center;
  border-right:1px solid rgba(242,233,216,.25)}
.vy-facts div:last-child{border-right:0}
.vy-facts b{display:block; font-family:var(--disp); font-size:19px; color:#F2E9D8; line-height:1.1}
.vy-facts span{display:block; font-family:var(--mono); font-size:9.5px; letter-spacing:.16em; color:#f0cfc3; margin-top:2px}
.vy-cta{display:inline-block; margin-top:20px; font-weight:600; font-size:15px; color:#F2E9D8}
.vy-card:hover .vy-cta{text-decoration:underline}
.vy-note{display:block; margin-top:9px; font-family:var(--mono); font-size:11px; color:#7f9aa8}
.vy-dot{display:inline-block; width:7px; height:7px; border-radius:50%; background:#E0930C; margin-right:6px;
  vertical-align:middle}
.vy-art{position:relative; justify-self:center; width:100%; max-width:330px}
.vy-art img{display:block; width:100%; height:auto; filter:drop-shadow(0 0 2px rgba(242,233,216,.55))}
.vy-call{position:absolute; left:0; bottom:-6px; font-family:var(--disp); font-weight:700; font-size:15px;
  letter-spacing:.2em; color:rgba(242,233,216,.5)}
@media(max-width:860px){
  .vy-card{grid-template-columns:1fr; padding:24px 22px}
  .vy-art{order:-1; max-width:260px}
  .vy-call{display:none}
}
