/* BALON — shared styles for every page: tokens, header, menu, footer, cookie banner, legal pages.
   Dark, full-bleed. Sharp corners, hairlines, light liquid glass. */
:root{
  color-scheme: dark;
  --bg:#0A0B0A;        /* near-black with a slight green bias */
  --bg-2:#121413;
  --bg-3:#1B1E1C;
  --fg:#ECEDE9;
  --fg-2:#8C928D;
  --line:rgba(236,237,233,.12);
  --accent:#8FD9AE;    /* pale pitch green: hover, focus, menu badge and CTA */
  --f:"Raleway","Helvetica Neue",Arial,sans-serif;
  --gut:max(16px, env(safe-area-inset-left, 0px));
  --gut-r:max(16px, env(safe-area-inset-right, 0px));
  --hdr:52px;
  --spine:56px;
  --top:env(safe-area-inset-top,0px);
}
@media (min-width:900px){:root{--gut:max(28px, env(safe-area-inset-left, 0px));--gut-r:max(28px, env(safe-area-inset-right, 0px));--hdr:56px;--spine:62px}}
*{box-sizing:border-box;border-radius:0}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:calc(var(--top) + var(--hdr) + 16px)}
body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--f);font-size:15px;line-height:1.5;font-feature-settings:"lnum" 1,"tnum" 1;-webkit-font-smoothing:antialiased;overflow-x:hidden}
body::before{content:"";position:fixed;inset:0 0 auto;height:var(--top);z-index:60;background:var(--bg)}
body.lock{overflow:hidden}
img{max-width:100%}
button,input,select{font:inherit;color:inherit}
button{cursor:pointer;-webkit-tap-highlight-color:transparent}
a{color:inherit;-webkit-tap-highlight-color:transparent}
:focus-visible{outline:1px solid var(--accent);outline-offset:3px}
[hidden]{display:none!important}
.wrap{padding-left:var(--gut);padding-right:var(--gut-r)}
.label{font-size:11px;font-weight:600;letter-spacing:.16em;text-transform:uppercase}
.muted{color:var(--fg-2)}
h1,h2,h3{margin:0;font-weight:800;letter-spacing:-.02em;line-height:.95;text-wrap:balance}
.sprite{position:absolute;width:0;height:0;overflow:hidden}

/* grain overlay for photographic feel */
.grain{position:absolute;inset:0;pointer-events:none;opacity:.22;mix-blend-mode:overlay;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 .9 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>")}

/* ---------- square arrow buttons ---------- */
.sq{width:52px;height:52px;display:grid;place-items:center;border:0;background:var(--fg);color:var(--bg);transition:background .2s,color .2s,transform .2s;flex:none}
.sq:hover{background:#fff}
.sq:active{transform:scale(.96)}
.sq svg{width:22px;height:22px}
.sq.glass{background:rgba(255,255,255,.08);color:var(--fg);backdrop-filter:blur(14px) saturate(160%);-webkit-backdrop-filter:blur(14px) saturate(160%);box-shadow:inset 0 1px 0 rgba(255,255,255,.22)}
.sq.glass:hover{background:rgba(255,255,255,.16)}
.flip svg{transform:scaleX(-1)}

.btn{display:inline-flex;align-items:center;justify-content:space-between;gap:24px;min-height:56px;padding:0 20px;border:1px solid var(--fg);background:var(--fg);color:var(--bg);font-weight:600;font-size:13px;letter-spacing:.14em;text-transform:uppercase;text-decoration:none;transition:background .2s,border-color .2s,opacity .2s}
.btn:hover{background:#fff;border-color:#fff}
.btn svg{width:20px;height:20px;flex:none}
.btn:disabled{opacity:.35;cursor:not-allowed}
.btn:disabled:hover{background:var(--fg);border-color:var(--fg)}
.btn.ghost{background:transparent;color:var(--fg);border-color:var(--line)}
.btn.ghost:hover{border-color:var(--fg)}

/* ---------- header ---------- */
.hdr{position:sticky;top:var(--top);z-index:70;height:var(--hdr);display:flex;align-items:center;justify-content:space-between;gap:16px;
  background:rgba(10,11,10,.28);backdrop-filter:blur(14px) saturate(150%);-webkit-backdrop-filter:blur(14px) saturate(150%);transition:background .3s}
.hdr .logo{display:flex;align-items:center;border:0;background:none;padding:0;opacity:.92;text-decoration:none}
.hdr .logo svg{height:20px;width:auto;color:var(--fg)}
.hdr nav{display:flex;gap:4px;align-items:center;margin-right:-8px}
.ico{position:relative;width:40px;height:40px;display:grid;place-items:center;border:0;background:none;color:var(--fg);opacity:.85;transition:opacity .2s,border-color .2s}
.ico:hover{opacity:1}
.ico svg{width:21px;height:21px}
.ico .cnt{position:absolute;top:6px;right:4px;min-width:15px;height:15px;padding:0 3px;display:grid;place-items:center;background:var(--fg);color:var(--bg);font-size:9px;font-weight:700;letter-spacing:0}
.ico .cnt:empty{display:none}
.burger .x{display:none}
.menu-open .hdr{background:var(--bg);border-bottom:1px solid var(--line)}
.menu-open .hdr nav > :not(.burger){visibility:hidden}
.menu-open .hdr nav{margin-right:0}
.menu-open .cookie{display:none}
.menu-open .burger{border:1px solid var(--line);opacity:1;width:44px;height:44px;margin-left:4px}
.menu-open .burger .x{display:block}
.menu-open .burger .bars{display:none}

/* ---------- menu (drops from the header, rest of the page blurs) ---------- */
.menu{position:fixed;left:0;right:0;top:calc(var(--top) + var(--hdr));bottom:0;z-index:69;pointer-events:none}
.menu .veil{position:absolute;inset:0;background:rgba(5,6,5,.55);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);opacity:0;transition:opacity .35s}
.menu .panel{position:relative;max-height:100%;overflow-y:auto;overscroll-behavior:contain;background:var(--bg);border-bottom:1px solid var(--line);padding-bottom:28px;
  transform:translateY(-12px);opacity:0;transition:transform .45s cubic-bezier(.2,.8,.2,1),opacity .3s}
.menu-open .menu{pointer-events:auto}
.menu-open .menu .veil{opacity:1}
.menu-open .menu .panel{transform:none;opacity:1}
.menu ul{list-style:none;margin:0;padding:0}
.menu li{border-bottom:1px solid var(--line)}
.menu li a{display:flex;align-items:center;gap:14px;min-height:84px;padding:12px 2px;text-decoration:none;font-size:20px;font-weight:500;letter-spacing:-.01em;line-height:1.2}
.menu li a .t{flex:1;display:flex;align-items:center;gap:14px;flex-wrap:wrap;min-width:0}
.menu li a > svg{width:18px;height:18px;flex:none;color:var(--fg-2);transition:transform .25s,color .25s}
.menu li a:hover > svg{transform:translateX(4px);color:var(--fg)}
.menu li a[aria-current="page"]{color:var(--fg-2)}
.badge{display:inline-block;padding:4px 8px;background:var(--accent);color:var(--bg);font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;line-height:1.2}
.menu .cta{display:flex;align-items:center;justify-content:center;gap:12px;min-height:64px;margin-top:24px;padding:0 20px;background:var(--accent);color:var(--bg);font-size:16px;font-weight:600;text-decoration:none;transition:background .2s}
.menu .cta:hover{background:#A9E6C2}
.menu .cta svg{width:18px;height:18px}
.menu .legal{display:flex;flex-wrap:wrap;gap:8px 20px;margin-top:22px}
.menu .legal a{font-size:13px;color:var(--fg-2);text-decoration:none}
.menu .legal a:hover{color:var(--fg)}
@media (min-width:900px){
  .menu .panel{margin-left:auto;width:min(560px,100%);border-left:1px solid var(--line)}
}

/* ---------- breadcrumbs ---------- */
.crumbs{display:flex;align-items:center;gap:14px;padding-block:22px;flex-wrap:wrap}
.crumbs button,.crumbs a{display:inline-flex;align-items:center;gap:10px;border:0;background:none;padding:0;text-decoration:none}
.crumbs button svg,.crumbs a svg{width:18px;height:18px;transform:scaleX(-1)}

/* ---------- checkbox ---------- */
.consent{display:flex;gap:12px;align-items:flex-start;font-size:13px;color:var(--fg-2);cursor:pointer}
.consent input{appearance:none;-webkit-appearance:none;width:20px;height:20px;border:1px solid var(--fg);flex:none;margin:0;display:grid;place-items:center;cursor:pointer}
.consent input:checked{background:var(--fg)}
.consent input:checked::after{content:"";width:9px;height:5px;border:2px solid var(--bg);border-top:0;border-right:0;transform:rotate(-45deg) translate(1px,-1px)}
.consent a{color:var(--fg);text-underline-offset:3px}

/* ---------- footer ---------- */
.ft{border-top:1px solid var(--line);padding-block:40px calc(28px + env(safe-area-inset-bottom,0px))}
.ft .row{display:grid;grid-template-columns:1fr auto;gap:32px;align-items:start}
.ft .soc{display:flex;gap:8px;flex-wrap:wrap}
.ft .soc a{height:48px;min-width:48px;display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:0 14px;border:1px solid var(--line);text-decoration:none;font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;transition:background .2s,color .2s}
.ft .soc a:hover{background:var(--fg);color:var(--bg)}
.ft .soc svg{width:22px;height:22px}
.ft ul{list-style:none;margin:0;padding:0;display:grid;gap:12px;text-align:right}
.ft ul a{text-decoration:none;font-weight:500;color:var(--fg-2)}
.ft ul a:hover{color:var(--fg)}
.ft .req{margin-top:36px;display:grid;gap:6px;font-size:13px;color:var(--fg-2)}
.ft .req a{text-decoration:none;color:var(--fg)}
.ft .req a:hover{text-decoration:underline;text-underline-offset:3px}
.ft .huge{margin-top:40px;color:var(--fg)}
.ft .huge svg{width:100%;height:auto;display:block}
.ft .bot{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:18px}
@media (max-width:640px){.ft .row{grid-template-columns:1fr}.ft ul{text-align:left}}

/* ---------- toast & cookie banner ---------- */
.toast{position:fixed;left:50%;bottom:calc(24px + env(safe-area-inset-bottom,0px));transform:translate(-50%,160%);z-index:80;display:flex;gap:16px;align-items:center;padding:14px 14px 14px 20px;color:var(--fg);background:rgba(27,30,28,.8);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:inset 0 1px 0 rgba(255,255,255,.12);transition:transform .4s cubic-bezier(.2,.8,.2,1);max-width:calc(100vw - 32px)}
.toast.on{transform:translate(-50%,0)}
.toast span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.toast button{border:0;background:var(--fg);color:var(--bg);height:40px;padding:0 14px;font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;white-space:nowrap}
.cookie{position:fixed;left:var(--gut);right:var(--gut-r);bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:85;margin-inline:auto;max-width:760px;display:flex;gap:16px;align-items:center;padding:16px 16px 16px 20px;font-size:13px;line-height:1.45;color:rgba(236,237,233,.82);
  background:rgba(27,30,28,.86);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 18px 40px rgba(0,0,0,.45);animation:rise .5s cubic-bezier(.2,.8,.2,1)}
.cookie a{color:var(--fg);text-underline-offset:3px}
.cookie button{flex:none;border:0;background:var(--fg);color:var(--bg);height:44px;padding:0 18px;font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase}
.cookie button:hover{background:#fff}
@keyframes rise{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@media (max-width:560px){.cookie{flex-direction:column;align-items:stretch;gap:12px}.cookie button{width:100%}}

/* ---------- legal / info pages ---------- */
.doc{padding-bottom:88px}
@media (max-width:640px){.doc .crumbs span{display:none}}
.doc-hd{display:grid;gap:16px;padding-block:8px 36px;border-bottom:1px solid var(--line)}
.doc-hd h1{font-size:clamp(34px,6.2vw,84px);text-transform:uppercase;hyphens:auto;-webkit-hyphens:auto;overflow-wrap:break-word}
.doc-hd .lead{margin:0;max-width:52ch;color:rgba(236,237,233,.72);font-size:16px}
.doc-hd .meta{display:flex;flex-wrap:wrap;gap:8px 24px}
.doc-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:48px;padding-top:12px}
@media (min-width:1100px){.doc-grid{grid-template-columns:260px minmax(0,72ch);gap:clamp(48px,6vw,120px)}.doc-grid.solo{grid-template-columns:minmax(0,72ch)}}
.toc{display:none}
@media (min-width:1100px){
  .toc{display:block;align-self:start;position:sticky;top:calc(var(--top) + var(--hdr) + 28px);max-height:calc(100svh - var(--hdr) - 56px);overflow-y:auto;padding-top:28px}
  .toc ol{list-style:none;margin:16px 0 0;padding:0;display:grid;gap:2px}
  .toc a{display:grid;grid-template-columns:28px 1fr;gap:8px;padding:6px 0;font-size:13px;line-height:1.35;color:var(--fg-2);text-decoration:none;transition:color .2s}
  .toc a span{font-weight:600;letter-spacing:.08em;font-size:11px;padding-top:1px}
  .toc a:hover,.toc a.on{color:var(--fg)}
}
.doc-body{min-width:0;font-size:15px;line-height:1.7;color:rgba(236,237,233,.86);overflow-wrap:break-word}
.doc-body > :first-child{margin-top:28px}
.doc-body p{margin:0 0 14px}
.doc-body .cl{color:var(--fg-2);font-weight:600;margin-right:4px}
.doc-body h2{display:flex;align-items:baseline;gap:14px;margin:52px 0 20px;padding-top:24px;border-top:1px solid var(--line);font-size:clamp(20px,2.2vw,26px);line-height:1.15;letter-spacing:-.01em;color:var(--fg)}
.doc-body h2:first-child{border-top:0;padding-top:0}
.doc-body h2 .n{flex:none;font-size:11px;font-weight:600;letter-spacing:.16em;color:var(--fg-2)}
.doc-body h3{margin:32px 0 10px;font-size:13px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;line-height:1.3;color:var(--fg)}
.doc-body ul{list-style:none;margin:0 0 18px;padding:0;display:grid;gap:8px}
.doc-body li{position:relative;padding-left:26px}
.doc-body li::before{content:"";position:absolute;left:2px;top:.85em;width:12px;height:1px;background:var(--fg-2)}
.doc-body a{color:var(--fg);text-decoration:underline;text-decoration-color:rgba(236,237,233,.35);text-underline-offset:3px;transition:text-decoration-color .2s}
.doc-body a:hover{text-decoration-color:var(--fg)}
.req{display:grid;margin:0 0 18px;border-top:1px solid var(--line)}
.req div{display:grid;grid-template-columns:minmax(120px,220px) 1fr;gap:16px;padding:14px 0;border-bottom:1px solid var(--line)}
.req dt{color:var(--fg-2)}
.req dd{margin:0;font-weight:500;color:var(--fg)}
@media (max-width:560px){.req div{grid-template-columns:1fr;gap:4px}}
.facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border:1px solid var(--line);margin:28px 0 8px}
.facts div{padding:20px;display:grid;gap:8px;align-content:start}
.facts div + div{border-left:1px solid var(--line)}
.facts b{font-size:clamp(26px,3vw,36px);font-weight:800;letter-spacing:-.02em;line-height:1;color:var(--fg)}
.facts span{font-size:13px;line-height:1.45;color:var(--fg-2)}
@media (max-width:640px){.facts{grid-template-columns:1fr}.facts div + div{border-left:0;border-top:1px solid var(--line)}}
.actions{display:flex;flex-wrap:wrap;gap:8px;margin:28px 0 8px}
.actions .btn{flex:1 1 220px}
.doc-body .btn{color:var(--bg);text-decoration:none}
.doc-body .btn.ghost{color:var(--fg)}
.doc-docs{display:grid;margin-top:56px;border-top:1px solid var(--line)}
.doc-docs a{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 0;border-bottom:1px solid var(--line);text-decoration:none;color:var(--fg);font-weight:500}
.doc-docs a svg{width:18px;height:18px;flex:none;color:var(--fg-2);transition:transform .25s}
.doc-docs a:hover svg{transform:translateX(4px)}

@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
