:root{
  --ink: #1a1714;
  --ink-soft: #2e2924;
  --sand: #ebe3d4;
  --sand-deep: #d6cbb8;
  --paper: #f4efe6;
  --bone: #faf7f1;
  --indigo: #3a4f7a;
  --indigo-bright: #52689a;
  --indigo-wash: rgba(58,79,122,.12);
  --fg: var(--ink);
  --fg-muted: #5c5348;
  --bg: var(--paper);
  --bg-card: var(--bone);
  --bg-sunken: var(--sand);
  --primary: var(--indigo);
  --primary-dark: #2a3a5c;
  --primary-soft: var(--indigo-wash);
  --accent: var(--indigo-bright);
  --accent-soft: rgba(58,79,122,.1);
  --dark: var(--ink);
  --dark-fg: #cfc6b6;
  --border: rgba(26,23,20,.16);
  --ok-fg: #2f5d45;
  --no-fg: #8a3a2e;
  --radius: 0;
  --radius-sm: 0;
  --shadow: none;
  --ease: cubic-bezier(.22,1,.36,1);
  --wrap: 1180px;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:
    radial-gradient(1200px 600px at 10% -10%, rgba(58,79,122,.08), transparent 55%),
    radial-gradient(900px 500px at 100% 20%, rgba(214,203,184,.55), transparent 50%),
    linear-gradient(rgba(26,23,20,.03) 1px, transparent 1px),
    linear-gradient(90deg, rgba(26,23,20,.03) 1px, transparent 1px),
    var(--bg);
  background-size:auto, auto, 48px 48px, 48px 48px, auto;
  color:var(--fg);
  font-family:'Onest', ui-sans-serif, system-ui, sans-serif;
  font-size:16.5px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  position:relative;
}
body::before{
  content:"";
  position:fixed;inset:0;pointer-events:none;z-index:80;opacity:.045;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
.brand{
  display:inline-flex;align-items:center;gap:10px;
  font-family:'Syne', sans-serif;font-size:clamp(18px,2.2vw,24px);font-weight:800;letter-spacing:-0.04em;
  color:var(--ink);text-decoration:none;flex:none;line-height:1;
}
.is-home header.site .brand{color:var(--bone);}
.brand .mark{
  display:grid;place-items:center;
  width:30px;height:30px;flex:none;
  color:var(--indigo-bright);
  border:1px solid currentColor;
}
.brand .mark svg{width:20px;height:20px;display:block;}
.is-home header.site .brand .mark{color:#9eb0d8;}
.brand em{font-style:normal;color:var(--indigo-bright);}
.is-home header.site .brand em{color:#9eb0d8;}
h1,h2,h3,h4{
  font-family:'Syne', ui-sans-serif, system-ui, sans-serif;
  font-weight:700;
  letter-spacing:-0.03em;
  color:var(--fg);
  line-height:1.12;
}
a{color:var(--indigo);}
a:hover{color:var(--primary-dark);}
img{max-width:100%;display:block;height:auto;}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 28px;}
.skip-link{position:absolute;left:-9999px;top:0;background:var(--ink);color:var(--sand);padding:10px 16px;z-index:100;}
.skip-link:focus{left:0;}
:focus-visible{outline:2px solid var(--indigo);outline-offset:3px;}

.reveal{
  opacity:0;
  transform:translateY(28px);
  transition:opacity .8s var(--ease), transform .8s var(--ease);
}
.reveal.in{opacity:1;transform:none;}

header.site{
  position:absolute;top:0;left:0;right:0;z-index:40;
  background:transparent;
  border-bottom:1px solid transparent;
}
body:not(.is-home) header.site{
  position:sticky;
  background:rgba(244,239,230,.92);
  backdrop-filter:blur(12px);
  border-bottom:1px solid var(--border);
}
header.site .wrap{
  display:flex;align-items:flex-end;justify-content:space-between;gap:20px;
  padding-top:22px;padding-bottom:18px;
}
nav.top{display:flex;align-items:center;gap:2px;font-size:13px;font-weight:500;letter-spacing:.02em;}
nav.top a{
  color:var(--fg-muted);text-decoration:none;padding:8px 10px;
  border-bottom:1px solid transparent;
  transition:color .2s, border-color .2s;white-space:nowrap;
}
.is-home header.site nav.top a{color:rgba(250,247,241,.78);}
nav.top a:hover{color:var(--ink);border-bottom-color:var(--indigo);}
.is-home header.site nav.top a:hover{color:#fff;border-bottom-color:#9eb0d8;}
nav.top a.active{
  color:var(--ink);border-bottom-color:var(--indigo);font-weight:700;
}
.is-home header.site nav.top a.active{color:#fff;border-bottom-color:#9eb0d8;}
.nav-toggle{
  display:none;align-items:center;justify-content:center;gap:8px;
  background:transparent;border:1px solid var(--border);
  padding:9px 14px;font:inherit;font-size:13px;font-weight:600;color:var(--fg);cursor:pointer;
}
.is-home .nav-toggle{border-color:rgba(250,247,241,.35);color:var(--bone);}
.nav-toggle .bars{display:inline-flex;flex-direction:column;gap:3px;}
.nav-toggle .bars i{display:block;width:16px;height:2px;background:currentColor;}
@media (max-width:980px){
  .nav-toggle{display:inline-flex;}
  nav.top{
    display:none;position:absolute;left:0;right:0;top:100%;
    flex-direction:column;align-items:stretch;gap:0;
    background:var(--ink);border-bottom:1px solid rgba(255,255,255,.08);
    padding:10px 28px 18px;
  }
  nav.top.open{display:flex;}
  nav.top a, .is-home header.site nav.top a{
    color:var(--sand);padding:14px 0;border-bottom:1px solid rgba(255,255,255,.08);
  }
  nav.top a.active, .is-home header.site nav.top a.active{
    color:#fff;border-bottom-color:var(--indigo-bright);
  }
}

/* ---------- Generic ---------- */
.eyebrow{
  display:inline-block;font-family:'Syne',sans-serif;font-size:11px;
  letter-spacing:.18em;font-weight:700;color:var(--indigo);text-transform:uppercase;margin-bottom:14px;
}
.breadcrumb{font-size:13px;color:var(--fg-muted);padding:28px 0 0;}
.breadcrumb a{color:var(--fg-muted);text-decoration:none;}
.breadcrumb a:hover{color:var(--indigo);}
.note-box,.warn-box{
  background:transparent;border-left:3px solid var(--indigo);
  border-radius:0;padding:14px 0 14px 18px;font-size:14.5px;color:var(--fg-muted);max-width:720px;
}
.warn-box{border-left-color:#a86b2d;color:#6a4a1f;}
.page-meta{font-size:12.5px;color:var(--fg-muted);margin:-4px 0 22px;letter-spacing:.04em;text-transform:uppercase;}

/* ---------- Home hero: Kinetic Atlas ---------- */
.hero-home{
  position:relative;
  min-height:100vh;
  min-height:100dvh;
  display:flex;
  align-items:flex-end;
  padding:0;
  overflow:hidden;
  background:var(--ink);
}
.hero-home .hero-bg{
  position:absolute;inset:0;z-index:0;
}
.hero-home .hero-bg img{
  width:100%;height:100%;
  object-fit:cover;object-position:62% center;
  transform:scale(1.06);
  animation:heroDrift 18s var(--ease) infinite alternate;
}
@keyframes heroDrift{
  from{transform:scale(1.06) translate3d(0,0,0);}
  to{transform:scale(1.12) translate3d(-1.5%,-1%,0);}
}
.hero-home .hero-overlay{
  position:absolute;inset:0;z-index:1;pointer-events:none;
  background:
    linear-gradient(90deg, rgba(26,23,20,.88) 0%, rgba(26,23,20,.55) 42%, rgba(26,23,20,.18) 68%, rgba(26,23,20,.35) 100%),
    linear-gradient(0deg, rgba(26,23,20,.72) 0%, transparent 42%);
}
.hero-home > .wrap{
  position:relative;z-index:2;width:100%;
  padding-top:120px;padding-bottom:56px;
}
.hero-home .hero-inner{display:block;max-width:none;}
.hero-home .hero-copy{
  max-width:640px;
  color:var(--bone);
}
.hero-home .brand-hero{
  display:block;
  font-family:'Syne',sans-serif;
  font-size:clamp(42px, 10vw, 108px);
  font-weight:800;
  letter-spacing:-0.06em;
  line-height:.88;
  color:var(--bone);
  margin:0 0 28px;
  opacity:0;
  transform:translateY(40px);
  animation:riseIn 1s var(--ease) .15s forwards;
}
.hero-home .brand-hero span{color:#9eb0d8;}
.hero-home h1{
  font-size:clamp(26px, 3.6vw, 42px);
  max-width:560px;
  margin:0 0 16px;
  color:var(--bone);
  font-weight:700;
  opacity:0;
  transform:translateY(28px);
  animation:riseIn .9s var(--ease) .35s forwards;
}
.hero-home p.lead{
  font-size:17px;
  color:rgba(250,247,241,.78);
  max-width:420px;
  margin:0 0 28px;
  opacity:0;
  transform:translateY(24px);
  animation:riseIn .9s var(--ease) .5s forwards;
}
.hero-home .hero-actions{
  display:flex;flex-wrap:wrap;gap:14px;align-items:center;
  opacity:0;
  transform:translateY(20px);
  animation:riseIn .9s var(--ease) .65s forwards;
}
@keyframes riseIn{
  to{opacity:1;transform:none;}
}
@media (max-width:900px){
  .hero-home{min-height:92vh;}
  .hero-home .hero-bg img{object-position:center 28%;animation:none;transform:scale(1.04);}
  .hero-home .hero-overlay{
    background:
      linear-gradient(180deg, rgba(26,23,20,.55) 0%, rgba(26,23,20,.35) 35%, rgba(26,23,20,.82) 100%);
  }
  .hero-home .brand-hero{font-size:clamp(36px, 12vw, 72px);}
}

/* Inner page heroes */
section.hero:not(.hero-home){
  padding:48px 0 20px;
  position:relative;
}
section.hero:not(.hero-home)::before{
  content:"";
  position:absolute;left:0;right:0;top:0;height:1px;
  background:linear-gradient(90deg, transparent, var(--sand-deep), transparent);
}
section.hero:not(.hero-home) h1{
  font-size:clamp(34px,5vw,56px);margin:0 0 18px;max-width:820px;
}
section.hero:not(.hero-home) p.lead{
  font-size:18px;color:var(--fg-muted);max-width:620px;margin:0 0 18px;
}

/* ---------- Atlas strip (stats) ---------- */
.band{
  background:var(--ink);color:var(--dark-fg);
  padding:0;
  border-top:1px solid rgba(255,255,255,.06);
}
.band .stats{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:0;
}
.band .stat{
  padding:36px 28px;
  border-right:1px solid rgba(255,255,255,.08);
}
.band .stat:last-child{border-right:0;}
.band .stat strong{
  display:block;font-family:'Syne',sans-serif;font-size:clamp(22px,2.4vw,32px);
  font-weight:700;color:var(--bone);line-height:1.15;letter-spacing:-0.03em;
}
.band .stat span{font-size:13px;color:#9a9082;display:block;margin-top:8px;max-width:200px;}
@media (max-width:900px){
  .band .stats{grid-template-columns:1fr 1fr;}
  .band .stat:nth-child(2n){border-right:0;}
  .band .stat{border-bottom:1px solid rgba(255,255,255,.08);}
}
@media (max-width:520px){
  .band .stats{grid-template-columns:1fr;}
  .band .stat{border-right:0;}
}

/* ---------- Sections ---------- */
section.content{padding:72px 0 24px;}
section.content > .wrap > h2{font-size:clamp(28px,3.5vw,40px);margin:64px 0 16px;}
section.content > .wrap > h2:first-child{margin-top:0;}
section.content h3{font-size:20px;margin:28px 0 8px;}
section.content p{font-size:16.5px;color:var(--fg-muted);max-width:740px;}
.section-head{max-width:640px;margin-bottom:36px;}
.section-head h2{margin:0 0 10px;font-size:clamp(28px,3.5vw,40px);}
.section-head p{margin:0;color:var(--fg-muted);font-size:16px;}
ul.plain,ul.criteria-list{margin:0 0 22px;padding-left:18px;color:var(--fg-muted);font-size:15.5px;max-width:720px;}
ul.plain li,ul.criteria-list li{margin-bottom:7px;}
.article-body{max-width:740px;}
.article-body h2{font-size:clamp(24px,3vw,32px);margin:48px 0 14px;}
.article-body h3{font-size:19px;margin:28px 0 8px;}
.article-body p{font-size:17px;color:var(--fg-muted);}
.article-body img{
  border-radius:0;margin:36px 0;box-shadow:none;
  width:100%;height:auto;object-fit:contain;
  border:1px solid var(--border);
}
.article-body figure{margin:36px 0;}
.article-body figure.media-wide{margin:36px 0;}
.article-body figcaption{font-size:12.5px;color:var(--fg-muted);margin-top:10px;letter-spacing:.03em;}

.media-frame{
  overflow:hidden;border:1px solid var(--border);border-radius:0;background:var(--sand);
}
.media-frame--product{
  width:100%;max-width:240px;aspect-ratio:1;
  display:flex;align-items:center;justify-content:center;padding:12px;
}
.media-frame--product .shot{
  width:100%;height:100%;max-width:none;margin:0;border:0;border-radius:0;
  background:transparent;padding:0;object-fit:contain;object-position:center;
}
.media-wide{margin:28px 0;max-width:100%;}
.media-wide img{
  width:100%;height:auto;border-radius:0;box-shadow:none;
  object-fit:contain;background:var(--bg-card);border:1px solid var(--border);
}

/* ---------- Atlas links (teasers) — not soft cards ---------- */
.teasers{
  display:grid;
  grid-template-columns:repeat(12,1fr);
  gap:0;
  margin:0 0 12px;
  border-top:1px solid var(--border);
}
.teaser{
  grid-column:span 4;
  background:transparent;
  border:0;
  border-bottom:1px solid var(--border);
  border-right:1px solid var(--border);
  border-radius:0;
  padding:28px 24px 32px;
  text-decoration:none;color:var(--fg);
  display:flex;flex-direction:column;gap:10px;
  transition:background .25s var(--ease), color .25s, transform .2s var(--ease);
  min-width:0;
  position:relative;
}
.teaser:nth-child(3n){border-right:0;}
.teaser:nth-child(4),.teaser:nth-child(5){grid-column:span 6;}
.teaser:nth-child(5){border-right:0;}
.teaser:hover{background:var(--ink);color:var(--bone);}
.teaser:hover p,.teaser:hover .t-eyebrow,.teaser:hover .go{color:rgba(250,247,241,.7);}
.teaser:hover .go{color:#9eb0d8;}
.teaser .t-eyebrow{
  font-family:'Syne',sans-serif;font-size:11px;letter-spacing:.14em;
  font-weight:700;text-transform:uppercase;color:var(--indigo);
}
.teaser h3{margin:0;font-size:24px;}
.teaser p{margin:0;font-size:14.5px;color:var(--fg-muted);}
.teaser .go{
  margin-top:auto;padding-top:16px;
  font-family:'Syne',sans-serif;font-size:13px;font-weight:700;
  letter-spacing:.06em;text-transform:uppercase;color:var(--indigo);
}
@media (max-width:900px){
  .teaser,.teaser:nth-child(4),.teaser:nth-child(5){grid-column:span 6;}
  .teaser:nth-child(2n){border-right:0;}
  .teaser:nth-child(3n){border-right:1px solid var(--border);}
  .teaser:nth-child(2n){border-right:0;}
}
@media (max-width:560px){
  .teasers{grid-template-columns:1fr;}
  .teaser,.teaser:nth-child(4),.teaser:nth-child(5){grid-column:span 1;border-right:0;}
}

/* Article / topic grids */
.article-grid,.topic-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:0;
  margin:0 0 12px;border-top:1px solid var(--border);
}
.article-card,.topic-card{
  background:transparent;border:0;
  border-bottom:1px solid var(--border);border-right:1px solid var(--border);
  border-radius:0;padding:28px 24px;
  text-decoration:none;color:var(--fg);
  display:flex;flex-direction:column;gap:10px;
  min-width:0;overflow-wrap:break-word;
  transition:background .25s var(--ease), color .25s;
}
.article-card:nth-child(2n),.topic-card:nth-child(2n){border-right:0;}
.article-card:hover,.topic-card:hover{background:var(--ink);color:var(--bone);}
.article-card:hover p,.article-card:hover .meta,.article-card:hover .go,
.topic-card:hover p,.topic-card:hover .go{color:rgba(250,247,241,.7);}
.article-card:hover .go,.topic-card:hover .go{color:#9eb0d8;}
.article-card .meta{
  font-family:'Syne',sans-serif;font-size:11px;color:var(--indigo);
  text-transform:uppercase;letter-spacing:.12em;font-weight:700;
}
.article-card h3,.topic-card h3{margin:0;font-size:22px;}
.article-card p,.topic-card p{margin:0;font-size:14.5px;color:var(--fg-muted);}
.article-card .go,.topic-card .go{
  margin-top:auto;padding-top:12px;
  font-family:'Syne',sans-serif;font-size:12px;font-weight:700;
  letter-spacing:.08em;text-transform:uppercase;color:var(--indigo);
}
@media (max-width:700px){
  .article-grid,.topic-grid{grid-template-columns:1fr;}
  .article-card,.topic-card,.article-card:nth-child(2n),.topic-card:nth-child(2n){border-right:0;}
}

/* ---------- FAQ ---------- */
.faq{margin:0 0 12px;max-width:860px;border-top:1px solid var(--border);}
.faq-item{border-bottom:1px solid var(--border);}
.faq-item h3{margin:0;font-size:17px;}
.faq-item .faq-q{
  width:100%;display:flex;align-items:center;justify-content:space-between;gap:16px;
  background:none;border:0;padding:20px 2px;font:inherit;text-align:left;color:var(--fg);cursor:pointer;
  font-family:'Syne',sans-serif;font-weight:700;font-size:17px;letter-spacing:-0.02em;
}
.faq-item .faq-q .chev{flex:none;width:18px;height:18px;color:var(--indigo);transition:transform .25s var(--ease);}
.faq-item .faq-q[aria-expanded="true"] .chev{transform:rotate(180deg);}
.faq-item .faq-a{padding:0 2px 20px;margin:0;font-size:15.5px;color:var(--fg-muted);max-width:720px;}
.faq-item .faq-a[hidden]{display:none;}
section.content .faq-block{margin:28px 0;}
section.content .faq-block h3{font-size:17px;margin:0 0 6px;color:var(--fg);}
section.content .faq-block p{margin:0 0 18px;}

/* ---------- Table ---------- */
.table-scroll{overflow-x:auto;border:1px solid var(--border);border-radius:0;background:var(--bone);}
table.compare{width:100%;border-collapse:collapse;font-size:14.5px;min-width:680px;}
table.compare th, table.compare td{padding:16px 18px;text-align:left;vertical-align:top;border-bottom:1px solid var(--border);}
table.compare th{background:var(--sand);font-family:'Syne',sans-serif;font-weight:700;font-size:13px;letter-spacing:.02em;}
table.compare td{color:var(--fg-muted);}
table.compare tr:last-child td{border-bottom:none;}
table.compare td strong{color:var(--fg);}

/* ---------- Product cards (interaction containers) ---------- */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:0;border-top:1px solid var(--border);}
.card{
  background:var(--bone);border:0;border-right:1px solid var(--border);border-bottom:1px solid var(--border);
  border-radius:0;padding:28px;
  display:flex;flex-direction:column;min-width:0;overflow-wrap:break-word;
  container-type:inline-size;container-name:product-card;
}
@container product-card (max-width: 360px){
  .card .cols{grid-template-columns:1fr;}
}
.card.featured{box-shadow:inset 3px 0 0 var(--indigo);}
.card .tag{
  font-family:'Syne',sans-serif;font-size:11px;letter-spacing:.12em;
  font-weight:700;text-transform:uppercase;color:var(--indigo);margin-bottom:8px;
}
.card h3{font-size:22px;margin:0 0 10px;}
.card .media-frame--product{max-width:280px;margin:0 auto 16px;}
.card .shot{border:0;border-radius:0;margin:0;background:transparent;}
.card p.desc{font-size:14.5px;color:var(--fg-muted);margin:0 0 16px;}
.card .cols{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:16px;min-width:0;}
.card .col{min-width:0;}
.card .col h4{font-size:11px;text-transform:uppercase;letter-spacing:.08em;margin:0 0 6px;font-weight:700;font-family:'Syne',sans-serif;}
.card .col.ok h4{color:var(--ok-fg);}
.card .col.no h4{color:var(--no-fg);}
.card .col ul{margin:0;padding-left:17px;font-size:13.5px;color:var(--fg-muted);overflow-wrap:break-word;}
.card .col ul li{margin-bottom:5px;}
.card .adv{font-size:13.5px;margin-bottom:14px;color:var(--fg-muted);}
.card .adv strong{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--fg);margin-bottom:4px;font-family:'Syne',sans-serif;}
.card .adv.minus strong{color:var(--no-fg);}
.card .adv.plus strong{color:var(--ok-fg);}
.card .caveat{
  font-size:12.5px;background:transparent;border:0;border-left:3px solid #a86b2d;
  color:#6a4a1f;border-radius:0;padding:10px 0 10px 14px;margin-bottom:16px;
}
.spec-list{list-style:none;margin:0 0 18px;padding:0;font-size:13.5px;color:var(--fg-muted);}
.spec-list li{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid var(--border);}
.spec-list li:last-child{border-bottom:none;}
.spec-list li span:last-child{color:var(--fg);font-weight:600;text-align:right;}

/* ---------- CTA ---------- */
.cta{
  margin-top:auto;display:inline-flex;align-items:center;justify-content:center;gap:8px;
  background:var(--indigo);color:#fff;padding:14px 22px;border-radius:0;
  font-family:'Syne',sans-serif;font-size:13px;font-weight:700;
  letter-spacing:.08em;text-transform:uppercase;text-decoration:none;text-align:center;
  transition:background .2s, transform .2s var(--ease), color .2s;
}
.cta:hover{background:var(--primary-dark);transform:translateX(3px);color:#fff;}
.cta.accent{background:var(--ink);color:var(--bone);}
.cta.accent:hover{background:var(--indigo);color:#fff;}
.cta.secondary{
  background:transparent;border:1px solid rgba(250,247,241,.45);color:var(--bone);
}
.hero-home .cta.secondary:hover{border-color:#fff;color:#fff;background:transparent;}
body:not(.is-home) .cta.secondary,
section.content .cta.secondary{
  border-color:var(--border);color:var(--ink);
}
body:not(.is-home) .cta.secondary:hover,
section.content .cta.secondary:hover{
  border-color:var(--indigo);color:var(--indigo);background:transparent;
}
.affiliate-note{font-size:11.5px;color:var(--fg-muted);margin-top:10px;}

/* ---------- Offer strip ---------- */
.offer{
  background:var(--ink);border:0;border-radius:0;
  padding:0;display:grid;
  grid-template-columns:minmax(180px,260px) minmax(0,1fr) minmax(200px,240px);
  gap:0;align-items:stretch;color:var(--bone);
  overflow:hidden;
}
.offer .media-frame,.offer .media-frame--product{
  max-width:none;width:100%;height:100%;min-height:280px;margin:0;
  border:0;background:var(--ink-soft);aspect-ratio:auto;padding:24px;
}
.offer .media-frame--product .shot{object-fit:cover;}
.offer > div{padding:32px 28px;}
.offer > div:nth-child(2){border-left:1px solid rgba(255,255,255,.08);border-right:1px solid rgba(255,255,255,.08);}
.offer .eyebrow{color:#9eb0d8;}
.offer h3{margin:0 0 10px;font-size:26px;color:var(--bone);}
.offer p{margin:0;font-size:14.5px;color:rgba(250,247,241,.7);max-width:none;}
.offer .offer-cta{display:flex;flex-direction:column;align-items:stretch;justify-content:center;gap:0;}
.offer .cta{margin-top:0;background:var(--bone);color:var(--ink);}
.offer .cta:hover{background:#9eb0d8;color:var(--ink);}
.offer .affiliate-note{color:rgba(250,247,241,.45);}
@media (max-width:900px){
  .offer{grid-template-columns:1fr;}
  .offer > div:nth-child(2){border:0;border-top:1px solid rgba(255,255,255,.08);border-bottom:1px solid rgba(255,255,255,.08);}
  .offer .media-frame--product{min-height:220px;}
}

/* ---------- Info / legal ---------- */
.info-grid{display:grid;grid-template-columns:1fr 1fr;gap:0;margin:0 0 12px;border-top:1px solid var(--border);}
.info-box{
  background:transparent;border:0;border-right:1px solid var(--border);border-bottom:1px solid var(--border);
  border-radius:0;padding:28px 24px;
}
.info-box:nth-child(2n){border-right:0;}
.info-box h3{margin:0 0 10px;font-size:18px;}
.info-box p{font-size:14.5px;color:var(--fg-muted);margin:0 0 8px;}
.info-box a{font-size:14.5px;}
.legal-body{max-width:760px;}
.legal-body h2{font-size:24px;margin:40px 0 12px;}
.legal-body p,.legal-body li{font-size:15.5px;color:var(--fg-muted);}
.legal-body ul{padding-left:18px;}
.legal-body li{margin-bottom:6px;}

/* ---------- Sources ---------- */
.sources-list{margin:0 0 12px;padding-left:0;list-style:none;max-width:820px;}
.sources-list li{
  margin-bottom:0;font-size:14.5px;color:var(--fg-muted);
  padding:14px 0;border-bottom:1px solid var(--border);
}
.sources-list a{font-weight:600;font-family:'Syne',sans-serif;letter-spacing:-0.01em;}

/* ---------- Disclaimer band (post-hero) ---------- */
.atlas-note{
  padding:28px 0;
  border-bottom:1px solid var(--border);
  background:var(--sand);
}
.atlas-note p{
  margin:0;max-width:720px;font-size:14.5px;color:var(--fg-muted);
}

/* ---------- Footer ---------- */
footer.site{
  background:var(--ink);color:#a89f90;margin-top:80px;padding:64px 0 36px;
  border-top:1px solid rgba(255,255,255,.06);
}
footer.site h4{
  font-size:12px;color:var(--bone);margin:0 0 12px;
  font-family:'Syne',sans-serif;letter-spacing:.12em;text-transform:uppercase;
}
footer.site p{font-size:13.5px;color:#8f8678;margin:0;}
footer.site a{color:#cfc6b6;}
footer.site .foot-top{
  display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:40px;
  padding-bottom:40px;border-bottom:1px solid rgba(255,255,255,.08);
}
footer.site .brand{color:var(--bone);margin-bottom:14px;font-size:clamp(20px,3vw,28px);}
footer.site .brand em{color:#9eb0d8;}
footer.site .foot-nav{display:flex;flex-direction:column;gap:8px;font-size:14px;}
footer.site .foot-nav a{text-decoration:none;color:#a89f90;}
footer.site .foot-nav a:hover{color:#fff;}
footer.site .disclaimers{display:grid;grid-template-columns:1fr 1fr;gap:32px;padding:32px 0 0;}
footer.site .brandline{
  margin-top:28px;padding-top:22px;border-top:1px solid rgba(255,255,255,.08);
  font-size:12.5px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;
}
footer.site .legal-links{display:flex;gap:18px;flex-wrap:wrap;}
footer.site .legal-links a{color:#a89f90;text-decoration:none;}
footer.site .legal-links a:hover{color:#fff;}

@media (max-width:820px){
  footer.site .foot-top{grid-template-columns:1fr 1fr;}
}
@media (max-width:640px){
  footer.site .foot-top,
  footer.site .disclaimers,
  .info-grid{grid-template-columns:1fr;}
  .info-box,.info-box:nth-child(2n){border-right:0;}
  .card .cols{grid-template-columns:1fr;}
  .wrap{padding:0 20px;}
}

@media (prefers-reduced-motion: reduce){
  .hero-home .hero-bg img{animation:none;}
  .hero-home .brand-hero,
  .hero-home h1,
  .hero-home p.lead,
  .hero-home .hero-actions{animation:none;opacity:1;transform:none;}
  .reveal{opacity:1;transform:none;transition:none;}
  .ticker-track{animation:none;}
  .hero-rings span{animation:none;}
}

/* =========================================================
   Kinetic Atlas — unique detailing
   ========================================================= */
.mono{font-family:'IBM Plex Mono', ui-monospace, monospace;}

/* Hero mesh + rings + crop marks + spine */
.hero-home .hero-mesh{
  position:absolute;inset:0;z-index:1;pointer-events:none;
  background-image:
    linear-gradient(rgba(158,176,216,.12) 1px, transparent 1px),
    linear-gradient(90deg, rgba(158,176,216,.12) 1px, transparent 1px);
  background-size:64px 64px;
  mask-image:linear-gradient(90deg, rgba(0,0,0,.55), transparent 55%);
  opacity:.55;
}
.hero-rings{
  position:absolute;right:8%;top:50%;z-index:1;pointer-events:none;
  width:min(46vw,520px);aspect-ratio:1;transform:translateY(-50%);
}
.hero-rings span{
  position:absolute;inset:0;border:1px solid rgba(158,176,216,.28);border-radius:50%;
  animation:ringPulse 10s var(--ease) infinite;
}
.hero-rings span:nth-child(2){inset:10%;animation-delay:1.2s;border-color:rgba(158,176,216,.2);}
.hero-rings span:nth-child(3){inset:22%;animation-delay:2.4s;border-color:rgba(158,176,216,.14);}
@keyframes ringPulse{
  0%,100%{transform:scale(1);opacity:.7;}
  50%{transform:scale(1.04);opacity:1;}
}
.crop-marks{position:absolute;inset:18px;z-index:2;pointer-events:none;}
.crop-marks i{position:absolute;width:18px;height:18px;border-color:rgba(250,247,241,.55);border-style:solid;border-width:0;}
.crop-marks .tl{top:0;left:0;border-top-width:1px;border-left-width:1px;}
.crop-marks .tr{top:0;right:0;border-top-width:1px;border-right-width:1px;}
.crop-marks .bl{bottom:0;left:0;border-bottom-width:1px;border-left-width:1px;}
.crop-marks .br{bottom:0;right:0;border-bottom-width:1px;border-right-width:1px;}
.hero-spine{
  position:absolute;left:18px;top:50%;z-index:2;margin:0;
  transform:translateY(-50%) rotate(-90deg);
  transform-origin:left center;
  font-family:'IBM Plex Mono', monospace;
  font-size:10px;letter-spacing:.22em;text-transform:uppercase;
  color:rgba(250,247,241,.45);white-space:nowrap;pointer-events:none;
}
.hero-coords{
  position:absolute;right:28px;bottom:28px;z-index:2;
  display:flex;flex-direction:column;align-items:flex-end;gap:4px;
  font-family:'IBM Plex Mono', monospace;font-size:11px;letter-spacing:.08em;
  color:rgba(250,247,241,.55);pointer-events:none;
}
.hero-coords .hc-plate{color:#9eb0d8;margin-top:4px;}
.hero-home .brand-hero{
  position:relative;
  text-shadow:0 0 40px rgba(26,23,20,.35);
}
.hero-home .brand-hero::after{
  content:"";
  display:block;width:72px;height:3px;margin-top:18px;
  background:linear-gradient(90deg,#9eb0d8,transparent);
}

/* Atlas note + ticker */
.atlas-note-inner{display:flex;align-items:flex-start;gap:16px;}
.note-glyph{
  flex:none;width:28px;height:28px;color:var(--indigo);
  border:1px solid var(--indigo);display:grid;place-items:center;margin-top:2px;
}
.note-glyph svg{width:16px;height:16px;}
.ticker{
  overflow:hidden;background:var(--sand);border-bottom:1px solid var(--border);
  padding:12px 0;
}
.ticker-track{
  display:flex;width:max-content;
  animation:tickerMove 38s linear infinite;
  font-family:'IBM Plex Mono', monospace;
  font-size:11px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--fg-muted);white-space:nowrap;
}
.ticker-track span{padding-right:2rem;}
@keyframes tickerMove{
  from{transform:translateX(0);}
  to{transform:translateX(-50%);}
}

/* Stats indices */
.band .stat{position:relative;padding-top:44px;}
.stat-idx{
  position:absolute;top:16px;left:28px;
  font-family:'IBM Plex Mono', monospace;font-size:11px;letter-spacing:.14em;
  color:#9eb0d8;
}

/* Plate meta for section heads */
.plate-meta{
  display:flex;align-items:center;gap:12px;margin-bottom:14px;
  font-family:'IBM Plex Mono', monospace;font-size:11px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--indigo);
}
.plate-line{flex:1;max-width:120px;height:1px;background:var(--border);}
.section-head h2{position:relative;}

/* Teaser atlas details */
.teaser .t-top{
  display:flex;align-items:center;justify-content:space-between;margin-bottom:4px;
}
.teaser .t-idx{
  font-family:'IBM Plex Mono', monospace;font-size:12px;letter-spacing:.12em;color:var(--indigo);
}
.teaser .t-glyph{width:36px;height:36px;color:var(--indigo);opacity:.85;}
.teaser .t-glyph svg{width:100%;height:100%;}
.teaser:hover .t-idx,.teaser:hover .t-glyph{color:#9eb0d8;}
.teaser::after{
  content:"";
  position:absolute;left:0;top:0;width:3px;height:0;background:var(--indigo);
  transition:height .35s var(--ease);
}
.teaser:hover::after{height:100%;background:#9eb0d8;}

/* CTA arrow */
.cta-arrow{
  display:inline-block;width:18px;height:1px;margin-left:4px;
  background:currentColor;position:relative;vertical-align:middle;
  transition:transform .25s var(--ease);
}
.cta-arrow::after{
  content:"";position:absolute;right:0;top:50%;
  width:6px;height:6px;border-right:1px solid currentColor;border-top:1px solid currentColor;
  transform:translateY(-50%) rotate(45deg);
}
.cta:hover .cta-arrow{transform:translateX(4px);}

/* Product stamp */
.offer .media-frame--product{position:relative;}
.offer .stamp{
  position:absolute;top:16px;left:16px;z-index:2;
  font-family:'IBM Plex Mono', monospace;font-size:10px;letter-spacing:.14em;
  color:var(--bone);border:1px solid rgba(250,247,241,.35);
  padding:6px 8px;background:rgba(26,23,20,.45);
}

/* Sources numbered via counters */
.sources-list{counter-reset:src;}
.sources-list li{padding-left:52px;position:relative;}
.sources-list li::before{
  counter-increment:src;
  content:counter(src, decimal-leading-zero);
  position:absolute;left:0;top:14px;
  font-family:'IBM Plex Mono', monospace;font-size:11px;letter-spacing:.08em;
  color:var(--indigo);
}

/* Footer compass mark */
footer.site .brand .mark{border-color:#9eb0d8;color:#9eb0d8;}
footer.site .foot-top > div:first-child{
  position:relative;padding-right:20px;
}
footer.site .foot-top > div:first-child::after{
  content:"ELE · BO · 2026";
  display:block;margin-top:18px;
  font-family:'IBM Plex Mono', monospace;font-size:10px;letter-spacing:.16em;
  color:#6e665c;
}

/* Inner page plate accent */
body:not(.is-home) section.hero:not(.hero-home) .wrap{
  position:relative;
}
body:not(.is-home) section.hero:not(.hero-home) .eyebrow::before{
  content:"◈ ";
  font-size:.9em;
}

@media (max-width:900px){
  .hero-spine,.hero-rings{display:none;}
  .hero-coords{right:20px;bottom:20px;font-size:10px;}
  .crop-marks{inset:12px;}
}
@media (prefers-reduced-motion: reduce){
  .ticker-track{animation:none;}
}


/* ---------- Disclosure pubblicitaria ---------- */
.ad-disclosure{
  background:var(--ink);color:var(--dark-fg);
  font-size:13px;line-height:1.5;letter-spacing:.01em;
  padding:9px 0;position:relative;z-index:60;
  border-bottom:1px solid rgba(250,247,241,.14);
}
.ad-disclosure strong{color:var(--bone);font-family:'Syne',sans-serif;letter-spacing:.02em;}
.ad-disclosure a{color:var(--bone);text-decoration:underline;text-underline-offset:2px;}

/* ---------- Avviso sanitario (tríade) ---------- */
.health-notice-wrap{padding:0 0 56px;}
.health-notice{
  border:1px solid var(--border);border-left:3px solid #a86b2d;
  background:var(--bg-card);
  padding:20px 22px;font-size:14.5px;line-height:1.6;color:var(--fg-muted);max-width:880px;
}
.health-notice strong{color:#6a4a1f;}

/* ---------- Dati societari nel footer ---------- */
.foot-entity{
  border-top:1px solid rgba(250,247,241,.12);
  padding:18px 0 4px;font-size:12.5px;line-height:1.65;color:var(--dark-fg);
}
.foot-entity p{margin:0;max-width:960px;}
.foot-entity strong{color:var(--bone);}
.foot-entity a{color:var(--dark-fg);}

/* ---------- Banner consenso cookie ---------- */
.cookie-banner{
  position:fixed;left:0;right:0;bottom:0;z-index:200;
  background:var(--ink);color:var(--dark-fg);
  border-top:2px solid var(--indigo-bright);
  padding:18px 20px;
}
.cookie-banner[hidden]{display:none;}
.cookie-inner{
  max-width:var(--wrap);margin:0 auto;
  display:flex;gap:24px;align-items:center;justify-content:space-between;flex-wrap:wrap;
}
.cookie-inner p{margin:0;font-size:13.5px;line-height:1.6;max-width:760px;}
.cookie-inner a{color:var(--bone);text-decoration:underline;}
.cookie-actions{display:flex;gap:10px;flex:none;}
.cookie-btn{
  font-family:'Onest',sans-serif;font-size:14px;font-weight:600;
  padding:11px 22px;border:1px solid var(--bone);border-radius:0;cursor:pointer;
  transition:background .2s var(--ease),color .2s var(--ease);
}
.cookie-reject{background:transparent;color:var(--bone);}
.cookie-reject:hover{background:rgba(250,247,241,.12);}
.cookie-accept{background:var(--bone);color:var(--ink);}
.cookie-accept:hover{background:#fff;}
@media (max-width:640px){
  .cookie-inner{flex-direction:column;align-items:stretch;gap:14px;}
  .cookie-actions{justify-content:stretch;}
  .cookie-btn{flex:1;}
}

/* ---------- Segnaposto da sostituire prima della pubblicazione ----------
   Rimuovere questa regola insieme agli ultimi <span class="todo"> presenti. */
.todo{background:#ffe08a;color:#7a3b00;font-weight:600;padding:0 4px;}
