:root{
  --paper:#F3F8FA;
  --paper-raised:#FFFFFF;
  --paper-sunk:#E9F2F4;
  --ink:#0B2333;
  --ink-muted:#51697A;
  --ink-faint:#8298A4;

  --aqua-100:#DEF3F4;
  --aqua-200:#BCE9EA;
  --aqua-300:#8FDEE0;
  --aqua-400:#3FC4C9;
  --aqua-500:#0EA8B4;
  --aqua-600:#0A7F8A;
  --aqua-700:#06636C;

  --line:#DCE9EC;
  --line-strong:#BFD3D8;

  --font-display:'Bricolage Grotesque','Arial Narrow',sans-serif;
  --font-body:'Karla',-apple-system,'Segoe UI',sans-serif;
  --font-mono:'JetBrains Mono', ui-monospace, monospace;

  --fs-xs:0.75rem;
  --fs-sm:0.9375rem;
  --fs-base:1.0625rem;
  --fs-lg:1.25rem;
  --fs-xl:1.6rem;
  --fs-2xl:clamp(1.7rem, 1.35rem + 1.5vw, 2.35rem);
  --fs-3xl:clamp(2.1rem, 1.5rem + 2.6vw, 3.35rem);

  --space-1:0.5rem;
  --space-2:0.875rem;
  --space-3:1.5rem;
  --space-4:2.25rem;
  --space-5:3.5rem;
  --space-6:5.25rem;

  --radius:14px;
  --radius-sm:8px;
  --focus:3px solid var(--aqua-500);
  --shadow-card:0 1px 2px rgba(11,35,51,0.05), 0 10px 26px rgba(11,35,51,0.06);
  color-scheme: light;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink-muted);
  font-family:var(--font-body);
  font-size:var(--fs-base);
  line-height:1.62;
  -webkit-font-smoothing:antialiased;
}
@media (prefers-reduced-motion: reduce){
  *{animation-duration:0.001ms !important; transition-duration:0.001ms !important; scroll-behavior:auto !important;}
}
a{color:inherit;}
img,svg{display:block; max-width:100%;}
::selection{background:var(--aqua-300); color:var(--ink);}
:focus-visible{outline:var(--focus); outline-offset:3px;}

.wrap{width:100%; overflow-x:hidden;}
.col{width:min(700px, 100% - 2.5rem); margin-inline:auto;}
.col-wide{width:min(1120px, 100% - 2.5rem); margin-inline:auto;}

h1,h2,h3{
  font-family:var(--font-display);
  font-weight:600;
  color:var(--ink);
  text-wrap:balance;
  margin:0;
  letter-spacing:-0.01em;
}
h1{font-size:var(--fs-3xl); line-height:1.06; font-weight:700;}
h1 em{font-style:normal; color:var(--aqua-600);}
h2{font-size:var(--fs-2xl); line-height:1.14;}
h3{font-family:var(--font-body); font-weight:700; font-size:var(--fs-base); text-transform:none; letter-spacing:0; color:var(--ink);}

p{margin:0; text-wrap:pretty;}
.lede{font-size:var(--fs-lg); color:var(--ink-muted); max-width:50ch;}
.muted{color:var(--ink-faint);}

.kicker{
  display:inline-flex; align-items:center; gap:0.6em;
  font-family:var(--font-mono); font-size:var(--fs-xs); letter-spacing:0.12em; text-transform:uppercase;
  color:var(--aqua-600);
}
.kicker::before{content:""; width:7px; height:7px; border-radius:50%; background:var(--aqua-500); box-shadow:0 0 0 4px var(--aqua-100); flex:none;}
.kicker.center{justify-content:center;}
.kicker.on-dark{color:var(--aqua-200);}
.kicker.on-dark::before{background:var(--aqua-300); box-shadow:0 0 0 4px rgba(255,255,255,0.15);}

.section-head{display:flex; flex-direction:column; gap:0.75rem; margin-bottom:var(--space-4);}
.section-head.center{align-items:center; text-align:center;}
.section-head .lede{margin-inline:auto;}

/* buttons */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:0.7em;
  border:none; border-radius:999px; cursor:pointer; text-decoration:none;
  font-family:var(--font-body); font-weight:700;
  transition:transform 0.15s ease, box-shadow 0.2s ease, filter 0.15s ease;
}
.btn-primary{
  background:linear-gradient(135deg, var(--aqua-400), var(--aqua-600));
  color:#FFFFFF;
  padding:1rem 1.9rem;
  font-size:1.02rem;
  box-shadow:0 0 0 1px rgba(10,127,138,0.15), 0 14px 30px rgba(10,127,138,0.25);
}
.btn-primary:hover{transform:translateY(-2px); filter:brightness(1.04);}
.btn-primary:active{transform:translateY(0);}
.btn-sm{padding:0.65rem 1.35rem; font-size:0.9rem;}
.btn svg{width:1.05em; height:1.05em;}
.btn-on-dark{box-shadow:0 0 0 1px rgba(255,255,255,0.25), 0 14px 30px rgba(0,0,0,0.2);}

/* header */
header.site{
  background:rgba(243,248,250,0.86);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  padding:1.1rem 0;
  border-bottom:1px solid var(--line);
  position:sticky; top:0; z-index:60;
}
.header-inner{display:flex; align-items:center; justify-content:space-between; gap:1rem;}
.logo{display:flex; align-items:center; gap:0.65rem; font-family:var(--font-display); font-weight:700; font-size:1.15rem; color:var(--ink); text-decoration:none;}
.logo-mark{width:34px; height:34px; flex:none; color:#FFFFFF; background:linear-gradient(135deg, var(--aqua-400), var(--aqua-600)); border-radius:9px; display:flex; align-items:center; justify-content:center; box-shadow:0 4px 14px rgba(10,127,138,0.3);}
.logo-mark svg{width:19px; height:19px;}
.header-cta{display:none;}
@media(min-width:760px){.header-cta{display:inline-flex;}}

/* footer */
footer{border-top:1px solid var(--line); padding:var(--space-4) 0; font-size:0.82rem;}
.footer-inner{display:flex; flex-direction:column; gap:1.1rem;}
.disclosure{background:var(--paper-raised); border:1px solid var(--line); border-radius:var(--radius-sm); padding:1.1rem 1.25rem; line-height:1.65; color:var(--ink-muted); font-family:var(--font-mono); font-size:0.78rem;}
.disclosure strong{color:var(--ink);}
.footer-links{display:flex; flex-wrap:wrap; gap:1.1rem;}
.footer-links a{text-decoration:underline; color:var(--ink-muted); font-size:0.85rem;}
.copy{color:var(--ink-faint); font-size:0.8rem;}

/* legal / article content */
.legal-hero{padding:var(--space-5) 0 var(--space-4); border-bottom:1px solid var(--line);}
.legal-meta{font-family:var(--font-mono); font-size:var(--fs-xs); color:var(--ink-faint); letter-spacing:0.04em; margin-top:0.75rem;}
.article{padding:var(--space-5) 0; display:flex; flex-direction:column; gap:var(--space-4);}
.article section{padding:0; display:flex; flex-direction:column; gap:0.85rem;}
.article h2{font-size:var(--fs-xl); padding-top:var(--space-2); border-top:1px solid var(--line);}
.article section:first-child h2{border-top:none; padding-top:0;}
.article p{color:var(--ink-muted);}
.article ul{margin:0; padding-left:1.2rem; display:flex; flex-direction:column; gap:0.5rem; color:var(--ink-muted);}
.article li::marker{color:var(--aqua-500);}
.article a.inline-link{color:var(--aqua-700); text-decoration:underline;}
.placeholder{color:var(--aqua-700); background:var(--aqua-100); padding:0.05em 0.4em; border-radius:4px; font-family:var(--font-mono); font-size:0.92em;}
