
/* font in casa (OFL, vedi assets/fonts/LICENSE.txt): nessuna richiesta a Google */
@font-face{font-family:'Bricolage Grotesque';font-style:normal;font-weight:200 800;font-display:swap;src:url(/assets/fonts/bricolage-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'Bricolage Grotesque';font-style:normal;font-weight:200 800;font-display:swap;src:url(/assets/fonts/bricolage-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:100 700;font-display:swap;src:url(/assets/fonts/plex-sans-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:100 700;font-display:swap;src:url(/assets/fonts/plex-sans-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/plex-mono-400-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/plex-mono-400-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/plex-mono-500-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/plex-mono-500-latin.woff2) format('woff2');unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
:root{--bg:#020817;--surface:#0f172a;--raised:#1e293b;--line:#1e293b;--line2:#334155;--ink:#f8fafc;
--sub:#cbd5e1;--tile:#e2e8f0;--muted:#94a3b8;--faint:#64748b;--dim:#475569;--accent:#26D968;
--accent2:#4ADE80;--amber:#D4A017;--cyan:#0EA5C9;--alarm:#DE8676;--on:#041018;
--display:'Bricolage Grotesque','IBM Plex Sans',system-ui,sans-serif;
--sans:'IBM Plex Sans',system-ui,-apple-system,sans-serif;--mono:'IBM Plex Mono',ui-monospace,Menlo,monospace;
--spectrum:linear-gradient(115deg,#22D3EE,#4ADE80,#FACC15,#FB923C,#F87171)}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;overflow-x:hidden;background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:17px;line-height:1.55;-webkit-font-smoothing:antialiased}
a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent2)}
h1,h2,h3{margin:0}
.display{font-family:var(--display);font-weight:700;letter-spacing:-0.025em;line-height:1.02;margin:0;text-wrap:balance}
.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}
.label{font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.muted{color:var(--muted)}.faint{color:var(--faint)}.sub{color:var(--sub)}.small{font-size:12.5px}
.wrap{max-width:1280px;margin:0 auto;padding:0 32px}
@media(max-width:700px){.wrap{padding:0 16px}}
.btn{display:inline-flex;align-items:center;gap:10px;height:48px;padding:0 22px;border-radius:999px;font-weight:600;font-size:16px;white-space:nowrap;border:0;cursor:pointer;font-family:inherit}
.btn-primary{background:var(--accent);color:var(--on)}.btn-primary:hover{background:var(--accent2);color:var(--on)}
.link{display:inline-flex;align-items:center;gap:8px;color:var(--ink);border-bottom:1px solid var(--line2);padding-bottom:2px;font-weight:500}.link:hover{color:var(--accent)}
.chip{display:inline-flex;align-items:center;height:24px;padding:0 9px;border-radius:999px;font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;border:1px solid var(--line2);color:var(--muted);white-space:nowrap;vertical-align:middle}
.c-wc,.c-pieno{color:var(--accent);border-color:rgba(38,217,104,.45)}
.c-base,.c-base_list{color:var(--amber);border-color:rgba(250,204,21,.45)}
.c-eso,.c-esordiente{color:var(--cyan);border-color:rgba(34,211,238,.45)}
.c-alarm{color:var(--alarm);border-color:rgba(222,134,118,.45)}
.seg{display:inline-flex;border:1px solid var(--line2);border-radius:8px;overflow:hidden;height:40px;background:var(--surface)}
.seg button{display:inline-flex;align-items:center;padding:0 16px;font-weight:600;font-size:14px;color:var(--muted);background:transparent;border:0;cursor:pointer;font-family:inherit}
.seg button[aria-pressed="true"]{background:var(--accent);color:var(--on)}
select,input[type=search],input[type=text]{font:inherit;font-size:14px;height:40px;padding:0 12px;border:1px solid var(--line2);border-radius:8px;background:var(--surface);color:var(--ink);min-width:0}
input[type=search]{flex:1 1 200px;max-width:300px}
.card{background:var(--surface);border:1px solid var(--line);border-radius:16px}
.pad{padding:22px 24px}
.th{font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);font-weight:500}
.row{border-top:1px solid var(--line)}
.r{text-align:right}.c{text-align:center}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:3px}
.dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--accent);vertical-align:middle}
.star{color:var(--accent);margin-left:4px;font-size:11px}
.tie{color:var(--amber);font-size:11px;margin-left:4px}
.spectrum{width:132px;height:4px;border-radius:2px;background:var(--spectrum)}

/* ---- navigazione ---- */
.nav{position:sticky;top:0;z-index:30;background:rgba(2,8,23,.92);backdrop-filter:blur(8px);border-bottom:1px solid rgba(148,163,184,.14)}
.nav-in{display:flex;align-items:center;gap:24px;min-height:64px;flex-wrap:wrap;padding-top:6px;padding-bottom:6px}
.brand{display:flex;align-items:baseline;gap:10px;color:var(--ink)}.brand:hover{color:var(--ink)}
.brand .display{font-size:21px;letter-spacing:-0.02em}
.disc{font-size:12px;letter-spacing:.16em;color:var(--accent)}
.nav-links{display:flex;gap:28px;flex-wrap:wrap}
.nav-links a{font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.nav-links a:hover,.nav-links a[aria-current]{color:var(--ink)}
.nav-right{margin-left:auto;display:flex;align-items:center;gap:18px}
.by{font-size:12px;letter-spacing:.12em;color:var(--faint)}
.lang{font-size:12px;letter-spacing:.12em;color:var(--muted);border:1px solid var(--line2);border-radius:999px;padding:6px 12px}
.lang:hover{color:var(--ink)}
@media(max-width:900px){.nav-right .by{display:none}.nav-links{order:3;width:100%;gap:18px}}

/* ---- ricerca ---- */
.sr{position:relative}
.sr input{width:100%;max-width:none;height:40px;border-radius:999px;padding:0 16px 0 40px;background:var(--surface);border:1px solid var(--line2);color:var(--ink);font-size:14px}
.sr.sr-big input{height:64px;font-size:17px;padding-left:52px;padding-right:16px;border-radius:999px}
.sr .ico{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--faint);display:flex;pointer-events:none}
.sr.sr-big .ico{left:22px}
.sr-nav{width:220px}
@media(max-width:900px){.sr-nav{width:160px}}
.sr-list{position:absolute;top:100%;left:0;right:0;margin-top:6px;background:var(--surface);border:1px solid var(--line2);border-radius:12px;z-index:40;overflow:hidden;box-shadow:0 12px 32px rgba(0,0,0,.5);text-align:left}
.sr-list a,.sr-list span{display:flex;justify-content:space-between;gap:12px;padding:10px 14px;color:var(--ink);font-size:14px;border-top:1px solid var(--line)}
.sr-list a:first-child{border-top:0}.sr-list a:hover,.sr-list a.sel{background:var(--raised);color:var(--ink)}
.sr-list .k{font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--faint);white-space:nowrap}
.sr-list span{color:var(--muted)}

/* ---- sezioni ---- */
.sec{padding:96px 0 72px}
.sec+.sec{border-top:1px solid var(--line)}
@media(max-width:900px){.sec{padding:56px 0 48px}}
.sec-head{display:flex;flex-direction:column;gap:18px;margin-bottom:34px}
.sec h2.display{font-size:clamp(34px,4.5vw,58px)}
.two{display:grid;grid-template-columns:360px minmax(0,1fr);gap:60px;align-items:start}
.two-r{display:grid;grid-template-columns:minmax(0,1fr) 400px;gap:80px;align-items:start}
@media(max-width:1000px){.two,.two-r{grid-template-columns:minmax(0,1fr);gap:32px}.two-r>:first-child{order:2}}
.cols3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:56px;text-align:left}
@media(max-width:800px){.cols3{grid-template-columns:1fr;gap:32px}}
.cols2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px}
@media(max-width:800px){.cols2{grid-template-columns:minmax(0,1fr)}}

/* ---- hero ---- */
.hero{padding-top:64px;padding-bottom:36px;min-height:min(calc(100vh - 64px),860px);display:flex;flex-direction:column;justify-content:space-between;gap:48px}
.hero h1{font-size:clamp(52px,9.2vw,132px);line-height:.94;letter-spacing:-0.04em;max-width:1000px}
.hero .lede{max-width:620px;font-size:19px;color:var(--sub);margin:0}
.hero-top{display:flex;flex-direction:column;gap:20px}
.ctas{display:flex;align-items:center;gap:22px;margin-top:4px;flex-wrap:wrap}
.swarm{display:flex;flex-direction:column;gap:12px}
.swarm svg{width:100%;height:auto;display:block;overflow:visible}
.swarm-foot{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}
.legend{display:flex;gap:22px;flex-wrap:wrap}.legend div{display:flex;align-items:center;gap:7px}
.legend i{display:block;width:8px;height:8px;border-radius:50%}
.legend span{font-family:var(--mono);font-size:12px;color:var(--muted)}

/* ---- righe gara (scala) ---- */
.rrow{display:grid;grid-template-columns:32px 1fr 68px 64px 200px 72px;align-items:center;min-height:44px;gap:10px}
.rrow .nm{font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rrow .nm a{color:var(--ink)}.rrow .nm a:hover{color:var(--accent)}
.rrow .nm .mono{font-size:12px;margin-left:6px}
.axis{position:relative;height:44px}
.axis i{position:absolute;left:0;right:0;top:50%;height:1px;background:var(--line)}
.axis b{position:absolute;top:50%;width:11px;height:11px;margin:-5.5px 0 0 -5.5px;border-radius:50%;background:var(--accent)}
.axis b.wc{background:var(--accent2)}.axis b.ind{background:var(--surface);border:2px solid var(--accent)}
.axis-h{display:flex;justify-content:space-between}
@media(max-width:800px){.rrow{grid-template-columns:28px 1fr 56px 64px}.rrow .ax,.rrow .fin{display:none}}
.typ{display:grid;grid-template-columns:70px 1fr 72px;align-items:center;height:36px;border-top:1px solid var(--line)}
[data-group][data-gender]{display:none}[data-group][data-gender].on{display:block}

/* ---- tabelle ---- */
table{width:100%;border-collapse:collapse}
thead th{text-align:left;font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);font-weight:500;padding:9px 12px;border-bottom:1px solid var(--line);white-space:nowrap;background:var(--surface)}
tbody td{padding:9px 12px;border-bottom:1px solid var(--line);vertical-align:middle;font-size:14.5px}
tbody tr:last-child td{border-bottom:0}
tbody tr:hover td{background:var(--raised)}
td.num,th.num{text-align:right;font-family:var(--mono);font-variant-numeric:tabular-nums;white-space:nowrap}
.name a{color:var(--ink);font-weight:500}.name a:hover{color:var(--accent)}
.name em{font-style:normal;color:var(--muted);font-weight:400}
.rank{width:58px;color:var(--muted)}
.pts{font-weight:600;font-size:15px}
.tablewrap{background:var(--surface);border:1px solid var(--line);border-radius:12px;overflow:hidden}
.scroll{overflow-x:auto}
.more{display:block;width:100%;padding:14px;border:0;background:var(--raised);color:var(--muted);font-size:13px;font-weight:500;cursor:pointer;font-family:inherit}
.empty{padding:48px 20px;text-align:center;color:var(--muted)}
@media(max-width:620px){.hide-m{display:none}tbody td,thead th{padding:9px 8px}.rank{width:auto}.card{border-radius:12px}}
@media(max-width:700px){.card[style*="padding:30px 34px"]{padding:20px 16px 18px!important}}
.controls{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:22px 0 14px}
.count{margin-left:auto;font-family:var(--mono);font-size:12.5px;color:var(--muted);white-space:nowrap}
.nota{font-size:13px;color:var(--muted);margin:0 0 14px;max-width:900px}
.forma-only{display:none}body.forma .forma-only{display:flex}body.forma .lista-only{display:none}
.f-giu{color:var(--accent);font-weight:600}.f-su{color:var(--alarm)}.f-tot{color:var(--faint)}

/* ---- atleta ---- */
.ath-head{display:flex;justify-content:space-between;align-items:flex-start;gap:30px;flex-wrap:wrap}
.ath-name{font-size:clamp(30px,4vw,42px)}.ath-name span{font-weight:500;color:var(--muted)}
.chips{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:12px}
.bigs{display:flex;gap:40px;align-items:flex-end;flex-wrap:wrap}
.big{display:flex;flex-direction:column;align-items:flex-end}
.big .v{font-family:var(--mono);font-size:44px;font-weight:500;line-height:1}
.big .v.acc{color:var(--accent)}
.big .label{margin-top:8px;text-align:right}
.ath-grid{display:grid;grid-template-columns:560px minmax(0,1fr);gap:40px;align-items:start;margin-top:26px}.ath-grid>div{min-width:0}
@media(max-width:1100px){.ath-grid{grid-template-columns:minmax(0,1fr)}}
.grafico{width:100%;max-width:100%;height:auto;display:block;overflow:visible}
.gr-lab{fill:var(--faint);font-family:var(--mono);font-size:11px}
.gr-grid{stroke:var(--line)}.gr-yr{stroke:var(--line2);stroke-dasharray:2 4}
.gr-line{fill:none;stroke:var(--accent);stroke-width:2;stroke-linejoin:round;opacity:.55}
.gr-band{fill:var(--accent);opacity:.10}.gr-win{fill:#fff;opacity:.03}
.gr-dot{fill:var(--accent);stroke:var(--surface);stroke-width:2}
.gr-best{fill:none;stroke:var(--accent);stroke-width:1.5}
.gr-no{fill:none;stroke:var(--alarm);stroke-width:1.5}
.yr{display:flex;align-items:baseline;gap:9px;margin:26px 0 8px}
.yr b{font-family:var(--display);font-size:18px}.yr span{font-size:12px;color:var(--faint);font-family:var(--mono)}
.how{font-size:15px;color:var(--sub);margin:0}

/* ---- bento ---- */
.bento{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--line);border-right:0;border-bottom:0;border-radius:16px;overflow:hidden}
.tile{padding:30px 30px 26px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;flex-direction:column;justify-content:space-between;gap:26px;min-height:250px;background:var(--surface)}
.tile.w2{grid-column:span 2}
.tile .n{font-family:var(--display);font-weight:700;font-size:clamp(40px,4.5vw,60px);letter-spacing:-0.04em;line-height:.95}
.tile.w2 .n{font-size:clamp(56px,7vw,96px);color:var(--accent)}
.tile .t{font-size:15.5px;line-height:1.45;color:var(--tile)}.tile.w2 .t{font-size:18px}
.tile .s{font-family:var(--mono);font-size:12.5px;color:var(--faint);margin-top:6px}
@media(max-width:900px){.bento{grid-template-columns:repeat(2,minmax(0,1fr))}.tile{min-height:190px}}
@media(max-width:480px){.bento{grid-template-columns:1fr}.tile.w2{grid-column:span 1}}

/* ---- nazioni ---- */
.bar{display:grid;grid-template-columns:56px 130px 1fr 48px;align-items:center;gap:16px;height:48px}
.bar .code{font-family:var(--mono);font-size:14px;font-weight:500}.bar .nm{font-size:15px;color:var(--sub)}
.bar .b{position:relative;height:16px}.bar .b i{position:absolute;left:0;top:0;bottom:0;background:var(--accent);border-radius:0 4px 4px 0}
.bar .v{font-family:var(--mono);font-size:15px;font-weight:500;text-align:right}
@media(max-width:600px){.bar{grid-template-columns:48px 1fr 40px}.bar .nm{display:none}}

/* ---- metodo ---- */
.step{display:flex;flex-direction:column;gap:14px}
.step .n{font-family:var(--display);font-weight:700;font-size:64px;color:var(--dim);letter-spacing:-0.04em;line-height:1}
.step .t{font-size:22px;font-weight:600;letter-spacing:-0.01em}.step p{font-size:16px;color:var(--muted);margin:0}
.prose{max-width:760px}.prose h2{font-size:26px;margin:40px 0 12px}.prose p{color:var(--sub);margin:0 0 16px}

/* ---- chiusura e piede ---- */
.close{text-align:center;display:flex;flex-direction:column;align-items:center;gap:30px}
.close h2{font-size:clamp(40px,6vw,76px);letter-spacing:-0.035em}
.close .sr{width:100%;max-width:760px}
.foot{border-top:1px solid var(--line);padding:22px 0 40px}
.foot-in{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;margin-bottom:14px}
.foot-links{display:flex;gap:28px;flex-wrap:wrap}
.foot-links a{font-family:var(--mono);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.foot-links a:hover{color:var(--ink)}
.page-head{padding-top:64px;padding-bottom:8px}.page-head h1{font-size:clamp(36px,5vw,64px)}
.page-head p{max-width:720px;color:var(--sub)}
.race-meta{display:flex;gap:12px;align-items:center;flex-wrap:wrap;color:var(--muted);margin-top:14px}
