/* ═══════════════════════════════════════════════════════
   OUII.CH — Design System
   Mobile-first, Garmin-inspired
   ═══════════════════════════════════════════════════════ */

/* ── Tokens ─────────────────────────────────────────── */
:root {
  --bg:      #0b0e1a;
  --bg2:     #0f1221;
  --bg3:     #131728;
  --surf:    #181c2e;
  --surf2:   #1e2338;
  --surf3:   #242840;

  --b1:      rgba(255,255,255,0.06);
  --b2:      rgba(255,255,255,0.10);
  --b3:      rgba(255,255,255,0.16);

  --accent:  #1de9b6;
  --adim:    rgba(29,233,182,0.10);
  --aglow:   rgba(29,233,182,0.22);
  --adark:   #0fb88a;

  --blue:    #5c6bc0;
  --orange:  #ffa040;
  --red:     #ef5350;
  --green:   #66bb6a;
  --purple:  #ab47bc;
  --yellow:  #ffca28;

  --t1:  #eaecf5;
  --t2:  #8891a8;
  --t3:  #50576a;

  --r:   10px;
  --rl:  16px;
  --rx:  22px;
  --sh:  0 4px 24px rgba(0,0,0,.35);
  --shl: 0 16px 56px rgba(0,0,0,.45);
  --ease: cubic-bezier(.4,0,.2,1);
  --spring: cubic-bezier(.34,1.56,.64,1);
}

/* ── Reset ──────────────────────────────────────────── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;font-size:16px}
body{font-family:'Plus Jakarta Sans',system-ui,sans-serif;background:var(--bg);color:var(--t1);line-height:1.65;overflow-x:hidden;-webkit-font-smoothing:antialiased}
::selection{background:var(--accent);color:#000}
a{text-decoration:none;color:inherit}
button{cursor:pointer;border:none;background:none;font-family:inherit;font-size:inherit}
input,select{font-family:inherit}
img,canvas{display:block}

/* ── Scrollbar ──────────────────────────────────────── */
::-webkit-scrollbar{width:5px;height:5px}
::-webkit-scrollbar-track{background:var(--bg2)}
::-webkit-scrollbar-thumb{background:var(--surf3);border-radius:99px}
::-webkit-scrollbar-thumb:hover{background:var(--accent)}

/* ── Layout ─────────────────────────────────────────── */
.container{max-width:1200px;margin:0 auto;padding:0 20px}
@media(min-width:768px){.container{padding:0 32px}}

/* ── Card ───────────────────────────────────────────── */
.card{background:var(--surf);border:1px solid var(--b1);border-radius:var(--rx);padding:24px;transition:border-color .25s var(--ease)}
.card:hover{border-color:var(--b2)}
.card.p0{padding:0;overflow:hidden}
@media(min-width:768px){.card{padding:32px}}

/* ── Buttons ────────────────────────────────────────── */
.btn-primary{display:inline-flex;align-items:center;gap:8px;background:var(--accent);color:#000;font-weight:700;font-size:.9rem;padding:13px 26px;border-radius:99px;transition:transform .18s var(--spring),box-shadow .18s var(--ease),background .18s;white-space:nowrap}
.btn-primary:hover{transform:translateY(-2px) scale(1.02);box-shadow:0 8px 28px var(--aglow);background:#26ffca}
.btn-primary:active{transform:scale(.97)}
.btn-ghost{display:inline-flex;align-items:center;gap:6px;color:var(--t2);font-weight:600;font-size:.9rem;transition:color .18s}
.btn-ghost:hover{color:var(--accent)}

/* ── Navigation ─────────────────────────────────────── */
.nav{position:fixed;top:0;left:0;right:0;z-index:900;transition:background .3s,border-color .3s}
.nav.solid{background:rgba(11,14,26,.93);backdrop-filter:blur(22px);border-bottom:1px solid var(--b1)}
.nav-wrap{max-width:1200px;margin:0 auto;padding:0 20px;height:64px;display:flex;align-items:center;gap:16px}
@media(min-width:768px){.nav-wrap{padding:0 32px;gap:40px}}

.logo{display:flex;align-items:center;gap:10px;flex-shrink:0}
.logo-mark{width:34px;height:34px;background:var(--adim);border:1px solid var(--aglow);border-radius:9px;display:flex;align-items:center;justify-content:center;color:var(--accent);transition:background .2s,box-shadow .2s}
.logo:hover .logo-mark{background:var(--accent);color:#000;box-shadow:0 0 18px var(--aglow)}
.logo-mark svg{width:18px;height:18px}
.logo-name{font-size:1.15rem;font-weight:800;letter-spacing:1px;color:var(--t1)}
.logo-dot{color:var(--accent)}

.nav-links{display:none;list-style:none;gap:2px;margin-left:auto}
@media(min-width:900px){.nav-links{display:flex}}
.nl{font-size:.85rem;font-weight:600;color:var(--t2);padding:8px 14px;border-radius:8px;transition:color .18s,background .18s}
.nl:hover{color:var(--t1);background:var(--surf2)}
.nl.active{color:var(--accent)}

/* Hamburger */
.hamburger{margin-left:auto;width:40px;height:40px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;background:var(--surf2);border:1px solid var(--b2);border-radius:8px;transition:border-color .18s}
.hamburger:hover{border-color:var(--accent)}
.hamburger span{display:block;width:18px;height:2px;background:var(--t2);border-radius:1px;transition:transform .25s,opacity .25s}
.hamburger.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.hamburger.open span:nth-child(2){opacity:0}
.hamburger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
@media(min-width:900px){.hamburger{display:none}}

/* Mobile menu */
.mobile-menu{display:none;flex-direction:column;background:var(--surf);border-bottom:1px solid var(--b2);padding:12px 20px 20px}
.mobile-menu.open{display:flex}
.mm-link{font-size:1rem;font-weight:600;color:var(--t2);padding:13px 4px;border-bottom:1px solid var(--b1);transition:color .18s}
.mm-link:last-child{border-bottom:none}
.mm-link:hover{color:var(--accent)}

/* ── Hero ───────────────────────────────────────────── */
.hero{position:relative;min-height:100svh;display:flex;align-items:center;overflow:hidden;padding-top:64px}
#heroCanvas{position:absolute;inset:0;width:100%;height:100%}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(135deg,rgba(11,14,26,.7) 0%,rgba(11,14,26,.4) 100%)}
.hero-body{position:relative;z-index:2;padding:60px 20px 100px}
@media(min-width:768px){.hero-body{padding:80px 32px 120px}}

.hero-pill{display:inline-flex;align-items:center;gap:9px;background:var(--adim);border:1px solid var(--aglow);color:var(--accent);font-size:.78rem;font-weight:600;letter-spacing:.5px;padding:7px 16px;border-radius:99px;margin-bottom:24px}
.pill-dot{width:7px;height:7px;background:var(--accent);border-radius:50%;animation:pulsdot 2s ease-in-out infinite}
@keyframes pulsdot{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.7)}}

.hero-h1{font-size:clamp(2.8rem,8vw,5.5rem);font-weight:800;letter-spacing:-2px;line-height:1.05;margin-bottom:20px}
.hero-h1 em{font-style:normal;color:var(--accent);display:block}
.desktop-br{display:none}
@media(min-width:768px){.desktop-br{display:inline}}

.hero-p{font-size:1.05rem;color:var(--t2);max-width:540px;margin-bottom:36px;font-weight:400;line-height:1.75}

.hero-btns{display:flex;flex-wrap:wrap;gap:16px;margin-bottom:60px}

.hero-stats{display:flex;flex-wrap:wrap;gap:0;background:var(--surf);border:1px solid var(--b1);border-radius:var(--rl);overflow:hidden;width:fit-content;max-width:100%}
.hstat{padding:18px 24px;text-align:center;flex:1;min-width:80px}
@media(min-width:600px){.hstat{padding:20px 32px}}
.hstat-n{font-family:'Space Mono',monospace;font-size:2rem;font-weight:700;color:var(--accent);line-height:1}
@media(min-width:768px){.hstat-n{font-size:2.4rem}}
.hstat-u{font-size:.85rem;color:var(--t2)}
.hstat-l{display:block;font-size:.68rem;color:var(--t3);letter-spacing:1.5px;text-transform:uppercase;font-weight:600;margin-top:4px}
.hstat-bar{width:1px;align-self:stretch;background:var(--b1)}

.hero-scroll{position:absolute;bottom:32px;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:8px;z-index:2;color:var(--t3);font-size:.68rem;letter-spacing:2px;text-transform:uppercase;font-weight:600}
.scroll-bar{width:1px;height:36px;background:linear-gradient(to bottom,var(--accent),transparent);animation:scrollbar 1.6s ease-in-out infinite}
@keyframes scrollbar{0%,100%{opacity:1;transform:scaleY(1)}50%{opacity:.3;transform:scaleY(.6)}}

/* ── Sections ───────────────────────────────────────── */
.section{padding:72px 0}
@media(min-width:768px){.section{padding:100px 0}}
.section-alt{background:var(--bg2)}

.sec-head{margin-bottom:44px}
@media(min-width:768px){.sec-head{margin-bottom:56px}}
.sec-tag{font-family:'Space Mono',monospace;font-size:.7rem;letter-spacing:3px;text-transform:uppercase;color:var(--accent);margin-bottom:12px;display:block}
.sec-h2{font-size:clamp(1.8rem,4vw,2.8rem);font-weight:800;letter-spacing:-1px;line-height:1.15}
.sec-h2 em{font-style:normal;color:var(--accent)}
.sec-sub{color:var(--t2);font-size:.95rem;margin-top:12px;max-width:600px;line-height:1.7}

/* Card heading */
.card-h3{font-size:1.1rem;font-weight:700;margin-bottom:20px;color:var(--t1)}

/* ── Form ───────────────────────────────────────────── */
.field{display:flex;flex-direction:column;gap:8px}
.flabel{font-size:.72rem;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--t2)}
.finput{background:var(--bg3);border:1px solid var(--b2);color:var(--t1);font-size:.95rem;font-weight:500;padding:11px 14px;border-radius:var(--r);outline:none;transition:border-color .2s,box-shadow .2s;width:100%}
.finput:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--adim)}
.finput::placeholder{color:var(--t3)}
.finput.sm{width:72px;text-align:center;flex-shrink:0}
.fselect{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%238891a8' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:36px;cursor:pointer}
.fselect option{background:var(--surf)}

.iunit{display:flex;align-items:center;background:var(--bg3);border:1px solid var(--b2);border-radius:var(--r);overflow:hidden;transition:border-color .2s,box-shadow .2s}
.iunit:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--adim)}
.iunit .finput{border:none;background:none;box-shadow:none;border-radius:0}
.iunit .finput:focus{box-shadow:none}
.uspan{font-family:'Space Mono',monospace;font-size:.72rem;color:var(--t3);padding:0 13px;border-left:1px solid var(--b1);flex-shrink:0;white-space:nowrap}

.pace-inputs{display:flex;align-items:center;gap:8px}
.colon{font-family:'Space Mono',monospace;font-size:1.2rem;color:var(--t2);font-weight:700;flex-shrink:0}
.hms-row{display:flex;gap:8px;align-items:flex-end;flex-wrap:wrap}
.hms-grp{display:flex;flex-direction:column;gap:4px;align-items:center}
.hms-l{font-size:.65rem;color:var(--t3);letter-spacing:1px;text-transform:uppercase;font-weight:600}

.chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}
.chip{font-size:.78rem;font-weight:600;color:var(--t2);background:var(--bg3);border:1px solid var(--b2);padding:5px 13px;border-radius:99px;transition:all .18s var(--ease);white-space:nowrap}
.chip:hover,.chip.active{color:var(--accent);border-color:var(--accent);background:var(--adim)}

.slider-row{display:flex;align-items:center;gap:12px}
.sbound{font-family:'Space Mono',monospace;font-size:.7rem;color:var(--t3);width:34px;text-align:center;flex-shrink:0}
.slider{flex:1;-webkit-appearance:none;height:4px;background:var(--surf3);border-radius:2px;outline:none;cursor:pointer}
.slider::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;background:var(--accent);border-radius:50%;box-shadow:0 0 0 3px var(--bg3),0 0 10px var(--aglow);transition:transform .15s var(--spring)}
.slider::-webkit-slider-thumb:hover{transform:scale(1.3)}
.slider-labels{display:flex;justify-content:space-between;font-size:.65rem;color:var(--t3);font-weight:600;letter-spacing:.5px;margin-top:4px}

/* ── Mode tabs ──────────────────────────────────────── */
.mode-tabs{display:flex;background:var(--bg3);border:1px solid var(--b1);border-radius:var(--r);padding:4px;gap:3px;margin-bottom:24px;flex-wrap:wrap}
.mtab{flex:1;min-width:80px;font-size:.78rem;font-weight:600;color:var(--t2);padding:9px 8px;border-radius:7px;transition:all .2s;text-align:center}
.mtab:hover:not(.active){color:var(--t1);background:var(--surf2)}
.mtab.active{background:var(--accent);color:#000;font-weight:700}
.mpane{display:none;flex-direction:column;gap:20px;animation:pin .25s var(--ease)}
.mpane.active{display:flex}
@keyframes pin{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}

/* ── Calc layout ────────────────────────────────────── */
.calc-grid{display:grid;grid-template-columns:1fr;gap:20px}
@media(min-width:900px){.calc-grid{grid-template-columns:1fr 1fr}}
.calc-card{display:flex;flex-direction:column}

.calc-btn{width:100%;margin-top:12px;background:var(--accent);color:#000;font-weight:800;font-size:.95rem;padding:15px;border-radius:12px;transition:transform .18s var(--spring),box-shadow .18s,background .18s;display:flex;align-items:center;justify-content:center;gap:8px}
.calc-btn:hover{transform:translateY(-2px);box-shadow:0 8px 28px var(--aglow);background:#26ffca}
.calc-btn:active{transform:scale(.97)}
.calc-btn.secondary{background:transparent;border:2px solid var(--accent);color:var(--accent)}
.calc-btn.secondary:hover{background:var(--accent);color:#000}

/* Result */
.result-card{min-height:340px;display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden}
.result-card::before{content:'';position:absolute;top:-60px;right:-60px;width:200px;height:200px;background:radial-gradient(circle,var(--aglow) 0%,transparent 70%);pointer-events:none;opacity:0;transition:opacity .4s}
.result-card.lit::before{opacity:1}
.result-empty{text-align:center;color:var(--t3)}
.empty-ico{font-size:3rem;margin-bottom:12px;opacity:.4}
.res-big{font-family:'Space Mono',monospace;font-size:clamp(2.2rem,5vw,3.8rem);font-weight:700;color:var(--accent);line-height:1;margin-bottom:8px;letter-spacing:-1px;text-shadow:0 0 40px var(--aglow);animation:valin .4s var(--spring)}
@keyframes valin{from{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}
.res-lbl{font-size:.82rem;color:var(--t2);font-weight:600;margin-bottom:20px}
.res-divider{height:1px;background:var(--b1);margin-bottom:20px}
.res-metrics{display:flex;gap:0;margin-bottom:16px}
.rmet{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;padding:12px 8px;background:var(--bg3);border:1px solid var(--b1)}
.rmet:first-child{border-radius:var(--r) 0 0 var(--r)}
.rmet:last-child{border-radius:0 var(--r) var(--r) 0}
.rmet+.rmet{border-left:none}
.rmet span:first-child{font-family:'Space Mono',monospace;font-size:.9rem;font-weight:700;color:var(--t1)}
.rmet-l{font-size:.63rem;color:var(--t3);text-transform:uppercase;letter-spacing:1px;font-weight:600}
.effort-wrap{margin-bottom:14px}
.effort-track{height:5px;background:var(--surf3);border-radius:3px;overflow:hidden;margin-bottom:5px}
.effort-bar{height:100%;background:linear-gradient(90deg,var(--accent),var(--blue),var(--red));border-radius:3px;transition:width .8s var(--ease)}
.effort-labels{display:flex;justify-content:space-between;font-size:.62rem;color:var(--t3);font-weight:600}
#resLimits{display:flex;flex-direction:column;gap:3px}
.limit-row{display:flex;justify-content:space-between;align-items:center;font-size:.8rem;color:var(--t2);padding:4px 10px;background:var(--bg3);border-radius:7px}
.limit-t{font-family:'Space Mono',monospace;font-size:.8rem;color:var(--accent);font-weight:700}

/* ── Splits ─────────────────────────────────────────── */
.splits-fields{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:20px}
@media(min-width:600px){.splits-fields{grid-template-columns:repeat(4,1fr)}}
.splits-strategy{display:flex;align-items:center;gap:12px;margin-bottom:16px;flex-wrap:wrap}
.strat-lbl{font-size:.72rem;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--t2);flex-shrink:0}
.strat-grp{display:flex;gap:6px;flex-wrap:wrap}
.strat-btn{font-size:.78rem;font-weight:600;color:var(--t2);background:var(--bg3);border:1px solid var(--b2);padding:7px 14px;border-radius:99px;transition:all .18s}
.strat-btn:hover,.strat-btn.active{color:var(--accent);border-color:var(--accent);background:var(--adim)}

/* ── Table ──────────────────────────────────────────── */
.tscroll{overflow-x:auto}
.dtable{width:100%;border-collapse:collapse;min-width:500px}
.dtable th{background:var(--bg3);border-bottom:2px solid var(--accent);padding:12px 16px;text-align:left;font-size:.68rem;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--t2);white-space:nowrap}
.dtable td{padding:11px 16px;border-bottom:1px solid var(--b1);font-size:.87rem;color:var(--t1);white-space:nowrap;transition:background .15s}
.dtable tbody tr:hover td{background:var(--surf2)}
.dtable tbody tr:last-child td{border-bottom:none}
.tp{font-family:'Space Mono',monospace;color:var(--accent);font-weight:700}
.ts{font-family:'Space Mono',monospace;color:var(--t2)}
.tt{font-family:'Space Mono',monospace;color:var(--t1)}
.tc{font-family:'Space Mono',monospace;color:var(--blue);font-weight:700}
.ta{font-family:'Space Mono',monospace;color:var(--green)}
.tmile{font-family:'Space Mono',monospace;color:var(--accent);font-weight:700}
.row-ms{background:rgba(29,233,182,.04)!important}
.row-ms td{border-color:rgba(29,233,182,.12)!important}
.prog-w{display:flex;align-items:center;gap:7px;min-width:100px}
.prog-b{flex:1;height:3px;background:var(--surf3);border-radius:2px;overflow:hidden}
.prog-f{height:100%;background:linear-gradient(90deg,var(--accent),var(--blue));border-radius:2px}
.prog-p{font-size:.68rem;color:var(--t3);font-family:'Space Mono',monospace;width:30px;text-align:right}

/* ── Ref controls ───────────────────────────────────── */
.ref-controls{display:flex;flex-direction:column;gap:20px}
@media(min-width:700px){.ref-controls{flex-direction:row;gap:40px}}
.rdual-wrap{display:flex;align-items:center;gap:10px}
.rdual{display:flex;flex-direction:column;gap:5px;flex:1}
.rval{font-family:'Space Mono',monospace;font-size:.8rem;color:var(--accent);font-weight:700;flex-shrink:0;width:40px;text-align:center}
.dchecks{display:flex;flex-wrap:wrap;gap:8px}
.cklbl{display:flex;align-items:center;gap:7px;font-size:.82rem;font-weight:600;color:var(--t2);cursor:pointer;transition:color .18s}
.cklbl:hover{color:var(--accent)}
.cklbl input{appearance:none;width:16px;height:16px;border:1.5px solid var(--b2);border-radius:4px;background:var(--bg3);transition:all .18s;cursor:pointer;flex-shrink:0}
.cklbl input:checked{background:var(--accent);border-color:var(--accent);background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 16 16' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3 8l3.5 3.5L13 4' stroke='%23000' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-size:10px;background-repeat:no-repeat;background-position:center}

/* ── Nutrition ──────────────────────────────────────── */
.nutr-featured{margin-bottom:24px;display:grid;gap:24px}
@media(min-width:768px){.nutr-featured{grid-template-columns:1fr 1fr;align-items:center}}
.nf-visual{border-radius:var(--rl);overflow:hidden;aspect-ratio:16/9;background:var(--surf2);display:flex;align-items:center;justify-content:center;font-size:5rem;min-height:180px}
.nf-content{}
.nf-tag{font-size:.68rem;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--accent);margin-bottom:10px;display:block}
.nf-h3{font-size:1.5rem;font-weight:800;line-height:1.25;margin-bottom:12px}
@media(min-width:768px){.nf-h3{font-size:1.8rem}}
.nf-desc{font-size:.9rem;color:var(--t2);line-height:1.7;margin-bottom:20px}
.nf-meta{display:flex;gap:16px;font-size:.75rem;color:var(--t3);font-weight:600}
.nf-meta span{display:flex;align-items:center;gap:5px}
.read-btn{display:inline-flex;align-items:center;gap:6px;color:var(--accent);font-weight:700;font-size:.85rem;transition:gap .18s}
.read-btn:hover{gap:10px}

.nutr-grid{display:grid;grid-template-columns:1fr;gap:16px;margin-bottom:40px}
@media(min-width:600px){.nutr-grid{grid-template-columns:1fr 1fr}}
@media(min-width:900px){.nutr-grid{grid-template-columns:repeat(3,1fr)}}

.na-card{background:var(--surf);border:1px solid var(--b1);border-radius:var(--rx);overflow:hidden;transition:transform .22s var(--spring),border-color .22s,box-shadow .22s;cursor:pointer}
.na-card:hover{transform:translateY(-4px);border-color:var(--b3);box-shadow:var(--shl)}
.na-thumb{aspect-ratio:16/9;background:var(--surf2);display:flex;align-items:center;justify-content:center;font-size:3.5rem;border-bottom:1px solid var(--b1)}
.na-body{padding:20px}
.na-cat{font-size:.65rem;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--accent);margin-bottom:8px;display:block}
.na-title{font-size:1rem;font-weight:700;line-height:1.35;margin-bottom:8px;color:var(--t1)}
.na-desc{font-size:.82rem;color:var(--t2);line-height:1.6;margin-bottom:12px}
.na-meta{display:flex;justify-content:space-between;font-size:.72rem;color:var(--t3)}

/* Macro chart */
.nutr-macro{}
.macro-layout{display:grid;grid-template-columns:1fr;gap:24px;margin-top:20px}
@media(min-width:768px){.macro-layout{grid-template-columns:180px 1fr 1fr;align-items:center}}
.macro-chart{position:relative;display:flex;align-items:center;justify-content:center;width:160px;height:160px;margin:0 auto}
@media(min-width:768px){.macro-chart{width:180px;height:180px}}
.macro-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}
.macro-kcal{font-family:'Space Mono',monospace;font-size:1.4rem;font-weight:700;color:var(--accent);line-height:1}
.macro-unit{font-size:.65rem;color:var(--t3);text-transform:uppercase;letter-spacing:1px;font-weight:600}
.macro-legend{display:flex;flex-direction:column;gap:10px}
.ml-item{display:flex;align-items:center;gap:10px;font-size:.85rem}
.ml-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}
.ml-name{font-weight:600;color:var(--t1);flex:1}
.ml-val{font-family:'Space Mono',monospace;font-size:.82rem;color:var(--accent);font-weight:700}
.ml-g{font-size:.75rem;color:var(--t2);margin-left:4px}

/* ── Tips ───────────────────────────────────────────── */
.tips-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:36px}
.ttab{font-size:.82rem;font-weight:600;color:var(--t2);background:var(--surf);border:1px solid var(--b2);padding:9px 18px;border-radius:99px;transition:all .2s;white-space:nowrap}
.ttab:hover:not(.active){color:var(--t1);border-color:var(--b3)}
.ttab.active{background:var(--adim);color:var(--accent);border-color:var(--accent)}

.tips-grid{display:grid;grid-template-columns:1fr;gap:14px;animation:pin .3s var(--ease)}
@media(min-width:600px){.tips-grid{grid-template-columns:1fr 1fr}}
@media(min-width:900px){.tips-grid{grid-template-columns:repeat(3,1fr)}}

.tip-card{background:var(--surf);border:1px solid var(--b1);border-radius:var(--rx);padding:22px;display:flex;flex-direction:column;gap:10px;transition:transform .2s var(--spring),border-color .2s,box-shadow .2s;animation:card-in .35s var(--ease) both}
.tip-card:hover{transform:translateY(-3px);border-color:var(--b2);box-shadow:var(--sh)}
@keyframes card-in{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
.tip-icon{font-size:1.8rem;line-height:1}
.tip-title{font-size:.95rem;font-weight:700;color:var(--t1);line-height:1.3}
.tip-body{font-size:.83rem;color:var(--t2);line-height:1.65}
.tip-tag{font-size:.65rem;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--t3);margin-top:auto;padding-top:8px;border-top:1px solid var(--b1)}

/* ── Blog ───────────────────────────────────────────── */
.blog-cats{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:32px}
.bcat{font-size:.8rem;font-weight:600;color:var(--t2);background:var(--surf);border:1px solid var(--b2);padding:8px 18px;border-radius:99px;transition:all .18s}
.bcat:hover:not(.active){color:var(--t1);border-color:var(--b3)}
.bcat.active{background:var(--adim);color:var(--accent);border-color:var(--accent)}

/* Featured post */
.blog-featured{margin-bottom:24px;background:var(--surf);border:1px solid var(--b1);border-radius:var(--rx);overflow:hidden;display:grid;grid-template-columns:1fr;transition:border-color .22s,box-shadow .22s;cursor:pointer}
@media(min-width:768px){.blog-featured{grid-template-columns:1.1fr 1fr}}
.blog-featured:hover{border-color:var(--b3);box-shadow:var(--shl)}
.bf-img{aspect-ratio:16/9;background:var(--surf2);display:flex;align-items:center;justify-content:center;font-size:5rem;min-height:160px}
@media(min-width:768px){.bf-img{min-height:auto}}
.bf-body{padding:28px;display:flex;flex-direction:column;justify-content:center}
.bf-cats{display:flex;gap:8px;margin-bottom:12px;flex-wrap:wrap}
.post-tag{font-size:.65rem;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;padding:4px 10px;border-radius:99px}
.ptag-recit{background:rgba(92,107,192,.15);color:#7986cb}
.ptag-analyse{background:rgba(171,71,188,.15);color:#ce93d8}
.ptag-interview{background:rgba(255,160,64,.15);color:var(--orange)}
.ptag-test{background:rgba(102,187,106,.15);color:var(--green)}
.ptag-training{background:rgba(29,233,182,.12);color:var(--accent)}
.ptag-nutrition_post{background:rgba(255,202,40,.12);color:var(--yellow)}
.bf-h3{font-size:1.3rem;font-weight:800;line-height:1.3;margin-bottom:10px;color:var(--t1)}
@media(min-width:768px){.bf-h3{font-size:1.6rem}}
.bf-excerpt{font-size:.88rem;color:var(--t2);line-height:1.7;margin-bottom:16px}
.bf-meta{display:flex;gap:14px;font-size:.75rem;color:var(--t3);font-weight:600;flex-wrap:wrap}
.bf-meta span{display:flex;align-items:center;gap:4px}

/* Blog grid */
.blog-grid{display:grid;grid-template-columns:1fr;gap:16px;margin-bottom:32px}
@media(min-width:600px){.blog-grid{grid-template-columns:1fr 1fr}}
@media(min-width:900px){.blog-grid{grid-template-columns:repeat(3,1fr)}}

.post-card{background:var(--surf);border:1px solid var(--b1);border-radius:var(--rx);overflow:hidden;transition:transform .22s var(--spring),border-color .22s,box-shadow .22s;cursor:pointer;animation:card-in .35s var(--ease) both}
.post-card:hover{transform:translateY(-5px);border-color:var(--b3);box-shadow:var(--shl)}
.pc-img{aspect-ratio:16/9;background:var(--surf2);display:flex;align-items:center;justify-content:center;font-size:3rem;border-bottom:1px solid var(--b1)}
.pc-body{padding:20px}
.pc-tags{display:flex;gap:6px;margin-bottom:10px;flex-wrap:wrap}
.pc-title{font-size:.97rem;font-weight:700;line-height:1.35;margin-bottom:8px;color:var(--t1)}
.pc-excerpt{font-size:.81rem;color:var(--t2);line-height:1.6;margin-bottom:14px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.pc-meta{display:flex;justify-content:space-between;align-items:center;font-size:.72rem;color:var(--t3);font-weight:600;padding-top:12px;border-top:1px solid var(--b1)}
.pc-author{display:flex;align-items:center;gap:7px}
.author-ava{width:24px;height:24px;border-radius:50%;background:var(--adim);border:1px solid var(--accent);display:flex;align-items:center;justify-content:center;font-size:.7rem;color:var(--accent);font-weight:700;flex-shrink:0}

.blog-load-wrap{text-align:center}
.btn-load{background:var(--surf);border:1px solid var(--b2);color:var(--t2);font-weight:600;font-size:.88rem;padding:13px 32px;border-radius:99px;transition:all .2s}
.btn-load:hover{border-color:var(--accent);color:var(--accent);background:var(--adim)}

/* ── Races ──────────────────────────────────────────── */
.races-toolbar{display:flex;flex-direction:column;gap:14px;margin-bottom:16px}
@media(min-width:768px){.races-toolbar{flex-direction:row;align-items:center}}
.search-wrap{position:relative;flex:1}
.search-ico{position:absolute;left:13px;top:50%;transform:translateY(-50%);width:16px;height:16px;color:var(--t3)}
.search-inp{width:100%;background:var(--bg3);border:1px solid var(--b2);color:var(--t1);font-size:.9rem;font-weight:500;padding:11px 14px 11px 40px;border-radius:var(--r);outline:none;transition:border-color .2s,box-shadow .2s}
.search-inp:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--adim)}
.search-inp::placeholder{color:var(--t3)}
.filter-group{display:flex;gap:10px;flex-wrap:wrap}
.filter-group .finput{min-width:120px;flex:1;font-size:.83rem;padding:10px 34px 10px 12px}

.sort-bar{display:flex;align-items:center;gap:10px;margin-bottom:24px;flex-wrap:wrap}
.sort-lbl{font-size:.68rem;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--t3);flex-shrink:0}
.sort-btns{display:flex;gap:6px;flex-wrap:wrap}
.sbtn{font-size:.78rem;font-weight:600;color:var(--t2);background:var(--surf);border:1px solid var(--b2);padding:7px 13px;border-radius:8px;display:flex;align-items:center;gap:5px;transition:all .18s}
.sbtn:hover{color:var(--t1);border-color:var(--b3)}
.sbtn.active{background:var(--adim);border-color:var(--accent);color:var(--accent)}
.sarr{font-size:.85rem;opacity:.7}
.races-count{margin-left:auto;font-size:.8rem;color:var(--t3);font-weight:600}
.races-count span{color:var(--accent);font-family:'Space Mono',monospace;font-weight:700}

.races-grid{display:grid;grid-template-columns:1fr;gap:16px;min-height:180px}
@media(min-width:600px){.races-grid{grid-template-columns:1fr 1fr}}
@media(min-width:900px){.races-grid{grid-template-columns:repeat(3,1fr)}}

.loading-state{grid-column:1/-1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:80px 0;color:var(--t3)}
.loader{width:36px;height:36px;border:3px solid var(--b2);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

.race-card{background:var(--surf);border:1px solid var(--b1);border-radius:var(--rx);overflow:hidden;transition:transform .22s var(--spring),border-color .22s,box-shadow .22s;animation:card-in .35s var(--ease) both}
.race-card:hover{transform:translateY(-5px);border-color:var(--b3);box-shadow:var(--shl)}
.rc-stripe{height:4px}
.rc-stripe.route{background:linear-gradient(90deg,#1de9b6,#00b0ff)}
.rc-stripe.trail{background:linear-gradient(90deg,#69f0ae,#40c4ff)}
.rc-stripe.ultra{background:linear-gradient(90deg,#ff5252,#ff6d00)}
.rc-stripe.cross{background:linear-gradient(90deg,#7c4dff,#e040fb)}
.rc-stripe.ekiden{background:linear-gradient(90deg,#ffd740,#ff6d00)}
.rc-body{padding:20px}
.rc-header{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;margin-bottom:14px}
.rc-name{font-size:.97rem;font-weight:700;line-height:1.35;color:var(--t1)}
.rc-type{font-size:.65rem;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;padding:4px 10px;border-radius:99px;flex-shrink:0}
.rc-type.route{background:var(--adim);color:var(--accent)}
.rc-type.trail{background:rgba(105,240,174,.1);color:#69f0ae}
.rc-type.ultra{background:rgba(255,82,82,.1);color:#ff6f60}
.rc-type.cross{background:rgba(124,77,255,.1);color:#b388ff}
.rc-type.ekiden{background:rgba(255,215,64,.1);color:var(--yellow)}
.rc-meta{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:14px}
.rcm-lbl{font-size:.62rem;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--t3);margin-bottom:1px}
.rcm-val{font-size:.85rem;font-weight:600;color:var(--t1)}
.rcm-val.acc{color:var(--accent)}
.rc-footer{display:flex;justify-content:space-between;align-items:center;padding-top:12px;border-top:1px solid var(--b1)}
.rc-date{font-family:'Space Mono',monospace;font-size:.75rem;color:var(--blue)}
.rc-cd{font-family:'Space Mono',monospace;font-size:.68rem;color:var(--t3);background:var(--bg3);padding:4px 10px;border-radius:99px;border:1px solid var(--b1)}
.rc-cd.soon{color:var(--orange);border-color:rgba(255,160,64,.3);background:rgba(255,160,64,.06)}
.rc-cd.today{color:var(--accent);border-color:var(--aglow);background:var(--adim)}
.races-empty{grid-column:1/-1;text-align:center;padding:80px 20px;color:var(--t3)}
.races-empty h3{font-size:1.1rem;color:var(--t2);margin-bottom:6px}

.pagination{display:flex;justify-content:center;gap:6px;margin-top:36px;flex-wrap:wrap}
.pgbtn{width:38px;height:38px;background:var(--surf);border:1px solid var(--b2);color:var(--t2);font-size:.82rem;font-weight:600;border-radius:8px;display:flex;align-items:center;justify-content:center;transition:all .18s;font-family:'Space Mono',monospace;cursor:pointer}
.pgbtn.pgnav{width:auto;padding:0 14px;font-family:inherit}
.pgbtn:hover{color:var(--t1);border-color:var(--b3)}
.pgbtn.pgact{background:var(--accent);border-color:var(--accent);color:#000;font-weight:700}

/* ── Newsletter ─────────────────────────────────────── */
.newsletter-section{background:var(--bg2)}
.nl-card{display:flex;flex-direction:column;gap:24px;background:linear-gradient(135deg,var(--surf) 0%,var(--surf2) 100%);border:1px solid var(--b2);text-align:center;padding:40px 24px;align-items:center}
@media(min-width:768px){.nl-card{flex-direction:row;text-align:left;padding:48px;gap:40px}}
.nl-content{flex:1}
.nl-icon{font-size:2.5rem;margin-bottom:10px}
.nl-h3{font-size:1.4rem;font-weight:800;margin-bottom:8px}
.nl-content p{font-size:.9rem;color:var(--t2);line-height:1.7}
.nl-form{display:flex;flex-direction:column;gap:10px;width:100%;max-width:360px}
@media(min-width:500px){.nl-form{flex-direction:row}}
@media(min-width:768px){.nl-form{flex-direction:column}}
.nl-input{padding:13px 16px}
.nl-input::placeholder{color:var(--t3)}

/* ── Footer ─────────────────────────────────────────── */
.footer{background:var(--bg3);border-top:1px solid var(--b1);padding:52px 0 0}
.footer-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin-bottom:40px}
@media(min-width:768px){.footer-grid{grid-template-columns:2fr 1fr 1fr 1fr 1fr;gap:24px}}
.footer-brand{grid-column:1/-1}
@media(min-width:768px){.footer-brand{grid-column:span 1}}
.footer-desc{font-size:.83rem;color:var(--t2);max-width:240px;line-height:1.7;margin:10px 0 16px}
.footer-socials{display:flex;gap:8px;flex-wrap:wrap}
.social-btn{font-size:.75rem;font-weight:600;color:var(--t2);background:var(--surf2);border:1px solid var(--b2);padding:6px 14px;border-radius:99px;transition:all .18s}
.social-btn:hover{color:var(--accent);border-color:var(--accent);background:var(--adim)}
.footer-col{display:flex;flex-direction:column;gap:10px}
.footer-col-h{font-size:.72rem;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--t1);margin-bottom:4px}
.footer-col a{font-size:.83rem;color:var(--t2);transition:color .18s}
.footer-col a:hover{color:var(--accent)}
.footer-bottom{background:var(--bg);padding:18px 0}
.footer-bottom .container{display:flex;justify-content:space-between;align-items:center;font-size:.75rem;color:var(--t3);font-family:'Space Mono',monospace;flex-wrap:wrap;gap:8px}

/* ── Reveal animations ──────────────────────────────── */
[data-reveal]{opacity:0;transform:translateY(20px);transition:opacity .55s var(--ease),transform .55s var(--ease)}
[data-reveal].shown{opacity:1;transform:translateY(0)}
