/* Foundational Implementations — Icarus Growth
   Light editorial web system (THE-BRAIN/BRAND.md §6). Light is the default;
   dark rides along on the toggle. */

:root[data-theme="light"]{
  --bg:#F8F8F8; --panel:#FFFFFF; --panel2:#F3F3F5;
  --ink:#14151C; --ink-2:#3A3B42; --ink-3:#14151C;
  --mute:#5F6068; --mute2:#8A8B93; --line:#E2E2E6;
  --hl:#15803D; --accent:#8E009E; --orange:#D93F00; --cyan:#0F6FB8;
  --tint-hl:rgba(21,128,61,.07); --tint-hl-2:rgba(21,128,61,.02); --line-hl:rgba(21,128,61,.34);
  --tint-accent:rgba(142,0,158,.035); --line-accent:rgba(142,0,158,.30);
  --line-orange:rgba(217,63,0,.34);
  --glow1:rgba(142,0,158,.06); --glow2:rgba(21,128,61,.045);
  --shadow:0 8px 24px rgba(20,21,28,.10); --shadow-h:0 10px 30px rgba(20,21,28,.16);
  --card-hover:rgba(20,21,28,.05);
}
:root[data-theme="dark"]{
  --bg:#14151C; --panel:#1b1c24; --panel2:#20212b;
  --ink:#F8F8F8; --ink-2:#cfcfd6; --ink-3:#e8e8ee;
  --mute:#9a9aa4; --mute2:#6f7079; --line:#2a2b35;
  --hl:#E0F014; --accent:#E600FF; --orange:#FF4F00; --cyan:#38B6FF;
  --tint-hl:rgba(224,240,20,.07); --tint-hl-2:rgba(224,240,20,.02); --line-hl:rgba(224,240,20,.42);
  --tint-accent:rgba(230,0,255,.035); --line-accent:rgba(230,0,255,.38);
  --line-orange:rgba(255,79,0,.38);
  --glow1:rgba(230,0,255,.10); --glow2:rgba(224,240,20,.05);
  --shadow:0 8px 24px rgba(224,240,20,.16); --shadow-h:0 10px 30px rgba(224,240,20,.28);
  --card-hover:rgba(255,255,255,.03);
}
:root{
  --btn-bg:#E0F014; --btn-fg:#14151C; --btn-bg-h:#eaff2e;
  --grad:linear-gradient(135deg,#E600FF,#19c37d);
  --sans:'DM Sans',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  --mono:'JetBrains Mono',ui-monospace,'SFMono-Regular',Menlo,monospace;
  --serif:'Fraunces',Georgia,serif;
  --shell:1380px; --side:246px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;background:var(--bg);scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);
  font-size:16px;line-height:1.62;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  background-image:radial-gradient(1100px 460px at 82% -10%,var(--glow1),transparent 60%),
                   radial-gradient(900px 420px at 4% 2%,var(--glow2),transparent 55%);
  background-repeat:no-repeat;background-attachment:fixed}
.bandwrap{max-width:var(--shell);margin:0 auto;padding:0 28px}

/* ── top chrome ── */
.bar{border-bottom:1px solid var(--line)}
.bar .bandwrap{display:flex;align-items:center;justify-content:space-between;height:62px;gap:16px}
.brand{display:flex;align-items:center;gap:11px;font-weight:700;letter-spacing:-.01em;
  text-decoration:none;color:var(--ink);font-size:15px;flex:0 0 auto}
.dot{width:21px;height:21px;border-radius:7px;background:var(--grad);flex:0 0 auto;
  box-shadow:0 0 0 1px rgba(255,255,255,.06),0 6px 18px rgba(230,0,255,.22)}
.brand small{display:block;font-family:var(--mono);font-weight:500;font-size:9.5px;
  letter-spacing:.24em;text-transform:uppercase;color:var(--mute2);margin-top:1px}
.barright{display:flex;align-items:center;gap:10px;flex:0 0 auto}
.barcta,.themebtn{font-family:var(--mono);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--mute);text-decoration:none;padding:8px 15px;border:1px solid var(--line);border-radius:999px;
  background:none;cursor:pointer;transition:color .18s,border-color .18s;white-space:nowrap}
.barcta:hover,.themebtn:hover{color:var(--ink);border-color:var(--mute2)}
@media(max-width:820px){.barcta{display:none}}

.rail{border-bottom:1px solid var(--line)}
.cats{display:flex;overflow-x:auto;scrollbar-width:none}
.cats::-webkit-scrollbar{display:none}
.cat{flex:0 0 auto;text-decoration:none;font-family:var(--mono);font-size:11.5px;letter-spacing:.13em;
  text-transform:uppercase;color:var(--mute2);padding:15px;position:relative;white-space:nowrap;
  transition:color .18s;display:flex;align-items:baseline;gap:7px}
.cat:hover{color:var(--ink)}
.cat .n{font-size:9.5px;opacity:.7}
.cat[aria-current="page"]{color:var(--ink)}
.cat[aria-current="page"] .n{color:var(--hl);opacity:1}
.cat[aria-current="page"]::after{content:"";position:absolute;left:15px;right:15px;bottom:-1px;height:2px;
  background:var(--hl);border-radius:2px 2px 0 0}

/* ── shell + sidebar ── */
.shell{max-width:var(--shell);margin:0 auto;padding:0 28px;
  display:grid;grid-template-columns:var(--side) 1fr;gap:52px;align-items:start}
.wrap{min-width:0}
aside{position:sticky;top:34px;padding:56px 0 40px;max-height:calc(100vh - 60px);
  overflow-y:auto;scrollbar-width:thin}
aside::-webkit-scrollbar{width:5px}
aside::-webkit-scrollbar-thumb{background:var(--line);border-radius:99px}
.sidecat{font-family:var(--mono);font-size:9.5px;letter-spacing:.24em;text-transform:uppercase;
  color:var(--mute2);margin:0 0 16px;padding:0 0 14px;border-bottom:1px solid var(--line)}
.tabs{display:flex;flex-direction:column;gap:1px}
.tab{text-decoration:none;color:var(--mute);font-size:14px;line-height:1.4;letter-spacing:-.012em;
  padding:8px 12px;border-radius:8px;border-left:2px solid transparent;transition:color .16s,background .16s}
.tab:hover{color:var(--ink);background:var(--panel)}
.tab.cur{color:var(--ink);font-weight:700;background:var(--panel);border-left-color:var(--hl)}
.subs{display:flex;flex-direction:column;gap:1px;margin:4px 0 8px;padding:0 0 0 14px}
.sub{text-decoration:none;color:var(--mute2);font-family:var(--mono);font-size:10px;letter-spacing:.14em;
  text-transform:uppercase;padding:7px 10px;border-left:1px solid var(--line);
  transition:color .16s,border-color .16s}
.sub:hover{color:var(--ink)}
.sub.active{color:var(--hl);border-left-color:var(--hl)}
@media(max-width:1080px){.shell{grid-template-columns:1fr;gap:0;max-width:1080px}aside{display:none}}

/* ── hero ── */
.hero{padding:60px 0 0}
.crumb{font-family:var(--mono);font-size:11px;letter-spacing:.24em;text-transform:uppercase;
  color:var(--accent);margin:0 0 20px}
.crumb .idx{color:var(--mute2)}
h1{font-weight:800;font-size:clamp(38px,6vw,66px);line-height:1;letter-spacing:-.04em;margin:0;
  text-wrap:balance;max-width:17ch}
.deck{color:var(--mute);font-size:18px;line-height:1.55;margin:22px 0 0;max-width:62ch}

section{padding:76px 0 0;scroll-margin-top:28px}
.slabel{font-family:var(--mono);font-size:10.5px;letter-spacing:.24em;text-transform:uppercase;
  color:var(--mute2);margin:0 0 24px;display:flex;align-items:center;gap:12px}
.slabel::after{content:"";flex:1;height:1px;background:var(--line)}

/* ── flowchart ── */
.flowpanel{background:var(--panel);border:1px solid var(--line);border-radius:20px;
  padding:26px 0 28px;overflow:hidden}
.flowhead{display:flex;align-items:baseline;justify-content:space-between;gap:20px;flex-wrap:wrap;
  padding:0 28px 22px;border-bottom:1px solid var(--line);margin-bottom:26px}
.flowhead .ann{font-family:var(--mono);font-weight:700;font-size:15px;color:var(--hl);letter-spacing:-.01em}
.flowhead .note{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--mute2)}
.flowscroll{overflow-x:auto;padding:4px 28px 10px;scrollbar-width:thin}
.flowscroll::-webkit-scrollbar{height:6px}
.flowscroll::-webkit-scrollbar-thumb{background:var(--line);border-radius:99px}
.flow{margin:0 auto;padding:6px 0}
.frow{display:flex;align-items:center}

.fbreak{position:relative;height:50px}
.fbreak span{position:absolute;background:var(--line)}
.fbreak .vr{width:1px;top:0;height:25px}
.fbreak .h{height:1px;top:25px}
.fbreak .vl{width:1px;top:25px;bottom:0}
.fbreak .vl::after{content:"";position:absolute;left:50%;bottom:-1px;transform:translateX(-50%);
  width:0;height:0;border-style:solid;border-width:7px 4.5px 0 4.5px;
  border-color:var(--mute2) transparent transparent transparent}
.fbreak em{position:absolute;left:50%;top:17px;transform:translateX(-50%);background:var(--panel);
  padding:0 11px;font-family:var(--mono);font-style:normal;font-size:8.5px;letter-spacing:.2em;
  text-transform:uppercase;color:var(--mute2);white-space:nowrap}

.node{flex:0 0 auto;width:146px;background:var(--panel2);border:1px solid var(--line);border-radius:13px;
  padding:15px;min-height:88px;display:flex;flex-direction:column;justify-content:center}
.node .k{font-family:var(--mono);font-size:8.5px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--mute2);margin:0 0 7px}
.node .t{font-size:13.5px;line-height:1.32;font-weight:500;color:var(--ink-3);margin:0;letter-spacing:-.005em}
.node.trigger,.node.done{border-color:var(--line-hl);
  background:linear-gradient(180deg,var(--tint-hl),var(--tint-hl-2))}
.node.trigger .k,.node.done .k{color:var(--hl)}
.node.gate{border-color:var(--line-orange)}
.node.gate .k{color:var(--orange)}

.arrow{flex:0 0 auto;width:36px;height:1px;background:var(--line);position:relative;align-self:center}
.arrow::after{content:"";position:absolute;right:-1px;top:50%;transform:translateY(-50%);
  width:0;height:0;border-style:solid;border-width:4.5px 0 4.5px 7px;
  border-color:transparent transparent transparent var(--mute2)}
.arrow.lab{width:46px}
.arrow.lab::before{content:attr(data-lab);position:absolute;left:50%;top:-19px;transform:translateX(-50%);
  font-family:var(--mono);font-size:8.5px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--mute2);white-space:nowrap}

.fan{flex:0 0 auto;width:224px;border:1px dashed var(--line-accent);border-radius:15px;
  padding:13px;background:var(--tint-accent)}
.fan .ftag{font-family:var(--mono);font-size:8.5px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--accent);margin:0 0 11px;display:flex;align-items:center;gap:7px}
.fan .ftag::before{content:"";width:5px;height:5px;background:var(--accent);border-radius:1px;flex:0 0 auto}
.fan ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:5px}
.fan li{background:var(--panel2);border:1px solid var(--line);border-radius:7px;padding:6px 10px;
  font-size:12px;line-height:1.3;color:var(--ink-2)}
.fan .ffoot{margin:11px 0 0;font-family:var(--mono);font-size:8.5px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--mute2);line-height:1.5}
.fan .ffoot b,.fan .ffoot strong{color:var(--hl);font-weight:700}

@media(max-width:720px){
  .flowpanel{padding:22px 0 24px}
  .flowhead{padding:0 20px 18px;margin-bottom:22px}
  .flowscroll{overflow-x:visible;padding:2px 20px 4px}
  .flow{width:100% !important;max-width:330px}
  .frow{flex-direction:column;align-items:stretch}
  .node{width:100%;min-height:0;padding:14px 16px}
  .arrow{width:1px;height:24px;align-self:center}
  .arrow::after{right:auto;left:50%;top:auto;bottom:-1px;transform:translateX(-50%);
    border-width:7px 4.5px 0 4.5px;border-color:var(--mute2) transparent transparent transparent}
  .arrow.lab{width:1px;height:30px}
  .arrow.lab::before{top:50%;left:12px;transform:translateY(-50%)}
  .fan{width:100%}
  .fbreak{height:34px}
  .fbreak .vr,.fbreak .h,.fbreak em{display:none}
  .fbreak .vl{left:50% !important;top:0;bottom:0}
}

/* ── description ── */
.lead{font-size:clamp(23px,2.8vw,28px);line-height:1.34;letter-spacing:-.024em;margin:0 0 14px;
  max-width:32ch;font-weight:500;color:var(--ink)}
.lead:last-child{margin-bottom:0}
.lead strong{color:var(--hl);font-weight:500}
.why{margin:32px 0 0;padding:2px 0 2px 26px;border-left:2px solid var(--orange);max-width:64ch}
.why p{margin:0;font-size:20px;line-height:1.5;letter-spacing:-.012em;color:var(--ink-3)}
.why p+p{margin-top:14px;font-size:16.5px;line-height:1.6;color:var(--mute)}
.already{margin:28px 0 0;padding:0 0 0 26px;border-left:2px solid var(--line-hl);max-width:64ch}
.already p{margin:0;font-size:16.5px;line-height:1.6;color:var(--mute)}
.already strong{color:var(--ink-2);font-weight:500}

/* ── screenshot ── */
figure{margin:0 0 26px}
figure:last-child{margin-bottom:0}
figure img{display:block;width:100%;height:auto;border:1px solid var(--line);border-radius:14px}

/* ── benefits ── */
.bens{border-top:1px solid var(--line)}
.ben{display:grid;grid-template-columns:66px 1fr;gap:0 22px;padding:28px 0;border-bottom:1px solid var(--line)}
.ben .bn{font-family:var(--mono);font-weight:700;font-size:13px;letter-spacing:.14em;
  color:var(--mute2);padding-top:4px}
/* discrete accent per index, so the numbers read as markers not decoration */
.ben:nth-of-type(4n+1) .bn{color:var(--hl)}
.ben:nth-of-type(4n+2) .bn{color:var(--accent)}
.ben:nth-of-type(4n+3) .bn{color:var(--orange)}
.ben:nth-of-type(4n+4) .bn{color:var(--cyan)}
.ben .bout{margin:0;font-size:clamp(19px,2.1vw,22px);line-height:1.36;font-weight:700;
  letter-spacing:-.024em;color:var(--ink);max-width:38ch}
.ben .bso{margin:9px 0 0;font-size:16.5px;line-height:1.6;color:var(--mute);max-width:58ch}
@media(max-width:640px){.ben{grid-template-columns:1fr;gap:10px}.ben .bn{padding-top:0}}

/* ── case study ── */
.proof{background:var(--panel);border:1px solid var(--line);border-radius:20px;overflow:hidden}
.proofhead{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:24px 30px;
  border-bottom:1px solid var(--line);background:var(--panel2)}
.proofhead .who{font-weight:800;font-size:23px;letter-spacing:-.026em;margin:0}
.proofhead .role{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--mute2)}
.pill{font-family:var(--mono);font-size:9px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;
  color:var(--btn-fg);background:var(--btn-bg);padding:4px 9px;border-radius:999px;line-height:1;margin-left:auto}
.proofbody{padding:28px 30px 30px}
.proofbody>*:first-child{margin-top:0}
.proofbody>*:last-child{margin-bottom:0}
.results{list-style:none;margin:0 0 24px;padding:0;display:flex;flex-direction:column;gap:12px}
.results li{position:relative;padding-left:22px;font-size:16.5px;line-height:1.55;color:var(--ink-2)}
.results li::before{content:"";position:absolute;left:2px;top:10px;width:6px;height:6px;
  border-radius:1px;background:var(--hl)}
.results strong,.cs strong{color:var(--ink);font-weight:700}
p.cs{margin:0 0 16px;font-size:16.5px;line-height:1.62;color:var(--ink-2);max-width:74ch}
blockquote{margin:0 0 22px;padding:0 0 0 22px;border-left:2px solid var(--line)}
blockquote p{margin:0;font-family:var(--serif);font-style:italic;font-size:19px;line-height:1.5;color:var(--ink-3)}
blockquote p::before{content:"\201C";color:var(--hl)}
blockquote p::after{content:"\201D";color:var(--hl)}
blockquote cite{display:block;margin-top:13px;font-family:var(--mono);font-style:normal;font-size:10px;
  letter-spacing:.16em;text-transform:uppercase;color:var(--mute)}

/* ── how-to — read as pseudo-code: same off-white ground, tokenised words ── */
ol.howto{list-style:none;counter-reset:h;margin:0;padding:0;border-top:1px solid var(--line)}
ol.howto li{counter-increment:h;position:relative;padding:20px 0 20px 56px;
  border-bottom:1px solid var(--line);font-size:16.5px;line-height:1.62;color:var(--ink-2);max-width:76ch}
ol.howto li::before{content:counter(h,decimal-leading-zero);position:absolute;left:0;top:21px;
  font-family:var(--mono);font-weight:700;font-size:13px;letter-spacing:.14em;color:var(--mute2)}
ol.howto li:nth-of-type(4n+1)::before{color:var(--hl)}
ol.howto li:nth-of-type(4n+2)::before{color:var(--accent)}
ol.howto li:nth-of-type(4n+3)::before{color:var(--orange)}
ol.howto li:nth-of-type(4n+4)::before{color:var(--cyan)}

.tk-kw,.tk-num,.tk-str{font-family:var(--mono);font-size:.9em;letter-spacing:-.01em}
.tk-kw{color:var(--accent);font-weight:500}
.tk-num{color:var(--orange);font-weight:700;font-variant-numeric:tabular-nums}
.tk-str{color:var(--hl);font-weight:500}

/* ── CTA / pager / footer ── */
.cta{margin:88px 0 0;padding:44px 0 0;border-top:1px solid var(--line);
  display:flex;align-items:flex-end;justify-content:space-between;gap:32px;flex-wrap:wrap}
.cta h2{margin:0;font-weight:800;font-size:clamp(26px,3.4vw,34px);line-height:1.1;letter-spacing:-.032em;
  max-width:19ch;text-wrap:balance}
.cta p{margin:12px 0 0;color:var(--mute);font-size:16px;max-width:46ch}
.btn{flex:0 0 auto;background:var(--btn-bg);color:var(--btn-fg);text-decoration:none;font-weight:700;
  font-size:15px;letter-spacing:-.01em;padding:15px 28px;border-radius:11px;display:inline-block;
  transition:background .18s,box-shadow .18s;box-shadow:var(--shadow)}
.btn:hover{background:var(--btn-bg-h);box-shadow:var(--shadow-h)}
.pager{display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap;
  margin:66px 0 0;padding:24px 0 0;border-top:1px solid var(--line)}
.pg{text-decoration:none;display:block;max-width:46%}
.pg .d{font-family:var(--mono);font-size:9.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--mute2)}
.pg .t{margin-top:7px;font-weight:700;font-size:18px;letter-spacing:-.022em;color:var(--mute);transition:color .18s}
.pg:hover .t{color:var(--ink)}
.pg.next{text-align:right;margin-left:auto}
footer{margin:44px 0 0;border-top:1px solid var(--line);padding:24px 0 56px;
  display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;
  font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--mute2)}
footer a{color:var(--mute2);text-decoration:none}
footer a:hover{color:var(--ink)}

/* ══ HOMEPAGE ══ */
.homewrap{max-width:var(--shell);margin:0 auto;padding:0 28px}
.homehero{padding:76px 0 0;max-width:70ch}
.homehero h1{max-width:19ch}
.homedeck{color:var(--mute);font-size:18.5px;line-height:1.6;margin:24px 0 0;max-width:60ch}
.homefilm{padding:0;margin:44px 0 0;max-width:960px}
.homefilm .btn{margin-top:30px}
.filmlab{display:flex;align-items:center;gap:14px;margin:0 0 14px;
  font-family:var(--mono);font-size:9.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--mute2)}
.filmlab .r{flex:1;height:1px;background:var(--line)}
.film{position:relative;aspect-ratio:16/9;border-radius:16px;overflow:hidden;
  border:1px solid var(--line);background:#000}
.film iframe{position:absolute;top:0;left:0;width:100%;height:100%;border:0}
@supports not (aspect-ratio:16/9){.film{height:0;padding-bottom:56.25%}}
.catblock{padding:78px 0 0;scroll-margin-top:24px}
.cathead{display:flex;align-items:baseline;gap:16px;padding:0 0 20px;border-bottom:1px solid var(--line);margin-bottom:26px}
.cathead h2{margin:0;font-weight:800;font-size:clamp(24px,3vw,31px);letter-spacing:-.03em}
.ccount{font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;
  color:var(--mute2);margin-left:auto}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(292px,1fr));gap:16px}
.card{display:flex;flex-direction:column;text-decoration:none;background:var(--panel);
  border:1px solid var(--line);border-radius:16px;padding:24px 24px 20px;
  transition:border-color .18s,transform .18s,box-shadow .18s}
.card:hover{border-color:var(--mute2);transform:translateY(-2px);box-shadow:0 10px 26px rgba(20,21,28,.07)}
.card h3{margin:0;font-weight:700;font-size:19px;letter-spacing:-.024em;color:var(--ink);line-height:1.28}
.card p{margin:11px 0 0;color:var(--mute);font-size:14.5px;line-height:1.55;
  display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.cmeta{margin-top:14px;font-family:var(--mono);font-size:9px;letter-spacing:.18em;
  text-transform:uppercase;color:var(--mute2)}
.card .go{margin-top:auto;padding-top:14px;border-top:1px solid var(--line);
  font-family:var(--mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--hl)}
.card p{margin-bottom:14px}
.card .cmeta{margin-top:0;margin-bottom:2px}
.homewrap footer{margin-top:88px}
