@import url('https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,500;0,9..144,600;0,9..144,700;1,9..144,500&family=IBM+Plex+Sans:wght@400;500;600&family=IBM+Plex+Mono:wght@500&display=swap');

:root{
  --bg:#F4F6F9; --surface:#FFFFFF; --surface-2:#EAEEF3; --ink:#161F2C; --ink-soft:#4E5B6B; --ink-faint:#8492A3;
  --line:#DBE1E9; --gold:#A9762F; --gold-soft:#F3E9D8; --teal:#0F7A76; --teal-soft:#DFF1EF;
  --hero-1:#0B1626; --hero-2:#0E2A3E; --hero-ink:#F4F6F9; --hero-ink-soft:#AAB8C6;
  --shadow:0 1px 2px rgba(22,32,44,.05), 0 14px 34px -18px rgba(22,32,44,.28);
  --overlay: rgba(11,22,38,0.62);
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#0C1119; --surface:#131A24; --surface-2:#1A2230; --ink:#E8EDF3; --ink-soft:#A9B7C6; --ink-faint:#69788A;
    --line:#232D3B; --gold:#D6AA5E; --gold-soft:#2B2312; --teal:#4FC2B8; --teal-soft:#12302D;
    --hero-1:#070C14; --hero-2:#0A1E2C; --hero-ink:#EDF1F5; --hero-ink-soft:#8FA0B2;
    --shadow:0 1px 2px rgba(0,0,0,.5), 0 18px 40px -20px rgba(0,0,0,.7);
    --overlay: rgba(3,7,13,0.72);
  }
}
:root[data-theme="dark"]{
  --bg:#0C1119; --surface:#131A24; --surface-2:#1A2230; --ink:#E8EDF3; --ink-soft:#A9B7C6; --ink-faint:#69788A;
  --line:#232D3B; --gold:#D6AA5E; --gold-soft:#2B2312; --teal:#4FC2B8; --teal-soft:#12302D;
  --hero-1:#070C14; --hero-2:#0A1E2C; --hero-ink:#EDF1F5; --hero-ink-soft:#8FA0B2;
  --shadow:0 1px 2px rgba(0,0,0,.5), 0 18px 40px -20px rgba(0,0,0,.7);
  --overlay: rgba(3,7,13,0.72);
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{ margin:0; background:var(--bg); color:var(--ink); font-family:'IBM Plex Sans', system-ui, sans-serif; }
h1,h2,h3{ font-family:'Fraunces', Georgia, serif; text-wrap:balance; margin:0; }
em{ font-style:italic; color:var(--gold); }
a{ color:inherit; }
.container{ max-width:1080px; margin:0 auto; padding-inline:24px; }
section{ padding-block:64px; }
.eyebrow{ font-family:'IBM Plex Mono',monospace; font-size:12px; letter-spacing:0.12em; text-transform:uppercase; }

@media (prefers-reduced-motion: no-preference){
  .reveal{ opacity:0; transform:translateY(16px); transition:opacity .6s ease, transform .6s ease; }
  .reveal.in{ opacity:1; transform:translateY(0); }
}

/* ---- nav ---- */
nav{
  position:sticky; top:0; z-index:20; background:color-mix(in srgb, var(--bg) 88%, transparent);
  backdrop-filter:blur(8px); border-bottom:1px solid var(--line);
}
.nav-in{ max-width:1080px; margin:0 auto; padding:14px 24px; display:flex; align-items:center; justify-content:space-between; gap:16px; }
.wordmark{ font-family:'Fraunces',serif; font-weight:600; font-size:19px; letter-spacing:0.01em; text-decoration:none; }
.navlinks{ display:flex; gap:20px; align-items:center; flex-wrap:wrap; }
.navlinks a{ text-decoration:none; font-size:13.5px; color:var(--ink-soft); font-weight:500; white-space:nowrap; }
.navlinks a:hover, .navlinks a[aria-current="page"]{ color:var(--ink); }
.navlinks a[aria-current="page"]{ font-weight:600; }
.navcta{
  background:var(--ink); color:var(--bg); padding:8px 16px; border-radius:7px; font-size:13.5px; font-weight:600; text-decoration:none;
}
.navtoggle{ display:none; background:none; border:1px solid var(--line); border-radius:8px; width:38px; height:34px; font-size:16px; color:var(--ink); cursor:pointer; }
@media (max-width:900px){
  .navtoggle{ display:block; }
  .navlinks{ position:absolute; top:100%; left:0; right:0; background:var(--bg); border-bottom:1px solid var(--line);
    flex-direction:column; align-items:flex-start; padding:16px 24px; gap:14px; display:none; }
  .navlinks.open{ display:flex; }
  .navcta{ align-self:flex-start; }
}

/* ---- page header (non-home pages) ---- */
.pagehead{ background:linear-gradient(160deg, var(--hero-1), var(--hero-2)); color:var(--hero-ink); padding-block:56px 48px; }
.pagehead .eyebrow{ color:var(--gold); margin-bottom:14px; }
.pagehead h1{ font-size:clamp(28px,4.4vw,42px); font-weight:600; line-height:1.1; max-width:24ch; }
.pagehead p{ margin-top:16px; max-width:60ch; font-size:15.5px; line-height:1.6; color:var(--hero-ink-soft); }
.crumbs{ font-size:12.5px; color:var(--hero-ink-soft); margin-bottom:16px; }
.crumbs a{ text-decoration:none; color:var(--hero-ink-soft); }
.crumbs a:hover{ color:var(--hero-ink); }

/* ---- hero (home only) ---- */
.hero{ position:relative; overflow:hidden; background:linear-gradient(160deg, var(--hero-1), var(--hero-2)); color:var(--hero-ink); padding-block:96px 84px; }
.hero .container{ position:relative; z-index:2; }
.network{ position:absolute; inset:0; width:100%; height:100%; opacity:.9; z-index:1; }
.network .grid-line{ stroke:rgba(244,246,249,0.14); stroke-width:1; fill:none; }
.network .grid-line.equator{ stroke:rgba(244,246,249,0.22); }
.network .route{ stroke:rgba(214,170,94,0.55); stroke-width:1.6; fill:none; stroke-dasharray:2 6; stroke-linecap:round; }
@media (prefers-reduced-motion: no-preference){
  .network .route{ animation:dash 26s linear infinite; }
  @keyframes dash{ to{ stroke-dashoffset:-400; } }
  .network .pulse{ animation:pulse 2.6s ease-out infinite; transform-origin:center; }
  @keyframes pulse{ 0%{ r:3; opacity:.9; } 100%{ r:16; opacity:0; } }
}
.network .node-lbl{ font-family:'IBM Plex Mono', monospace; }
.hero .eyebrow{ color:var(--gold); margin-bottom:18px; }
.hero h1{ font-size:clamp(34px,5.6vw,58px); font-weight:600; line-height:1.06; max-width:16ch; }
.hero .sub{ margin-top:20px; max-width:52ch; font-size:17px; line-height:1.65; color:var(--hero-ink-soft); }
.hero .ctas{ margin-top:34px; display:flex; gap:14px; flex-wrap:wrap; }
.btn{
  display:inline-flex; align-items:center; gap:8px; padding:12px 20px; border-radius:8px; font-size:14.5px; font-weight:600;
  text-decoration:none; border:1px solid transparent; cursor:pointer; font-family:inherit;
}
.btn.primary{ background:var(--gold); color:#1A1204; }
.btn.ghost{ background:transparent; color:var(--hero-ink); border-color:rgba(244,246,249,0.35); }
.btn.line{ background:transparent; color:var(--ink); border-color:var(--line); }
.btn.primary:hover, .btn.ghost:hover, .btn.line:hover{ filter:brightness(1.06); }
.stat-row{ margin-top:52px; display:flex; gap:36px; flex-wrap:wrap; border-top:1px solid rgba(244,246,249,0.16); padding-top:26px; }
.stat b{ display:block; font-family:'Fraunces',serif; font-size:22px; font-weight:600; }
.stat span{ font-size:12.5px; color:var(--hero-ink-soft); }

/* ---- tools strip ---- */
.tools-strip{ background:var(--surface); border-bottom:1px solid var(--line); padding-block:18px; }
.tools-strip .container{ display:flex; align-items:center; gap:16px; flex-wrap:wrap; }
.ts-label{ font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-faint); white-space:nowrap; }
.ts-pills{ display:flex; gap:9px; flex-wrap:wrap; }
.ts-pill{ font-size:12.5px; color:var(--ink-soft); background:var(--surface-2); border:1px solid var(--line); border-radius:99px; padding:5px 12px; }

/* ---- section heads ---- */
.sec-head{ max-width:56ch; margin-bottom:38px; }
.sec-head h2{ font-size:clamp(26px,3.6vw,34px); font-weight:600; }
.sec-head p{ margin-top:12px; color:var(--ink-soft); font-size:15.5px; line-height:1.6; }

/* ---- generic surface panel ---- */
.panel{ background:var(--surface); border:1px solid var(--line); border-radius:16px; padding:28px; box-shadow:var(--shadow); }

/* ---- link-out tiles (home overview -> subpages) ---- */
.linkgrid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:18px; }
.linktile{
  display:block; background:var(--surface); border:1px solid var(--line); border-radius:14px; padding:24px;
  box-shadow:var(--shadow); text-decoration:none; color:inherit; transition:border-color .15s ease;
}
.linktile:hover{ border-color:var(--teal); }
.linktile .eyebrow{ color:var(--teal); margin-bottom:10px; }
.linktile h3{ font-size:18.5px; font-weight:600; }
.linktile p{ margin-top:10px; font-size:14px; color:var(--ink-soft); line-height:1.6; }
.linktile .more{ margin-top:14px; font-size:12.5px; font-weight:600; color:var(--gold); display:flex; align-items:center; gap:5px; }

/* ---- services (clickable) ---- */
.grid{ display:grid; grid-template-columns:repeat(auto-fit, minmax(230px,1fr)); gap:18px; }
.card{
  background:var(--surface); border:1px solid var(--line); border-radius:14px; padding:24px; box-shadow:var(--shadow);
  cursor:pointer; text-align:left; font:inherit; color:inherit; width:100%; transition:border-color .15s ease, transform .1s ease;
}
.card:hover{ border-color:var(--teal); }
.card:active{ transform:translateY(1px); }
.card .num{ font-family:'IBM Plex Mono',monospace; font-size:12.5px; color:var(--teal); font-weight:600; }
.card h3{ font-size:18.5px; font-weight:600; margin-top:12px; }
.card p{ margin-top:10px; font-size:14.5px; color:var(--ink-soft); line-height:1.6; }
.card .more{ margin-top:14px; font-size:12.5px; font-weight:600; color:var(--gold); display:flex; align-items:center; gap:5px; }

/* ---- process ---- */
.process-wrap{ background:var(--surface-2); }
.steps{ display:grid; grid-template-columns:repeat(4,1fr); gap:0; position:relative; }
.steps::before{ content:""; position:absolute; top:19px; left:6%; right:6%; height:1px; background:var(--line); z-index:0; }
.step{ position:relative; z-index:1; padding:0 14px; text-align:left; }
.step .dot{
  width:38px; height:38px; border-radius:50%; background:var(--surface); border:2px solid var(--teal); color:var(--teal);
  display:flex; align-items:center; justify-content:center; font-family:'IBM Plex Mono',monospace; font-weight:600; font-size:14px; margin-bottom:16px;
}
.step h4{ font-family:'Fraunces',serif; font-weight:600; font-size:16.5px; }
.step p{ margin-top:6px; font-size:13.5px; color:var(--ink-soft); line-height:1.55; }
@media (max-width:760px){ .steps{ grid-template-columns:1fr; gap:26px; } .steps::before{ display:none; } }

/* ---- fit check tool ---- */
.fit-box{ background:var(--surface); border:1px solid var(--line); border-radius:16px; padding:30px; box-shadow:var(--shadow); display:grid; grid-template-columns:1fr 1fr; gap:32px; }
@media (max-width:760px){ .fit-box{ grid-template-columns:1fr; } }
.fit-field{ margin-bottom:18px; }
.fit-field label{ display:block; font-size:13.5px; font-weight:600; margin-bottom:8px; }
.fit-field .val{ font-family:'IBM Plex Mono',monospace; color:var(--teal); font-weight:600; }
input[type=range]{ width:100%; accent-color:var(--teal); }
.fit-check{ display:flex; align-items:flex-start; gap:10px; margin-bottom:12px; font-size:14px; color:var(--ink-soft); cursor:pointer; }
.fit-check input{ margin-top:3px; accent-color:var(--teal); }
.fit-result{ background:var(--surface-2); border-radius:12px; padding:20px; border:1px solid var(--line); min-height:100%; }
.fit-result .tag{ display:inline-block; font-family:'IBM Plex Mono',monospace; font-size:11px; font-weight:600; letter-spacing:.04em; text-transform:uppercase; color:var(--teal); background:var(--teal-soft); padding:4px 10px; border-radius:99px; margin-bottom:12px; }
.fit-result h4{ font-family:'Fraunces',serif; font-size:19px; font-weight:600; }
.fit-result p{ margin-top:10px; font-size:14px; line-height:1.6; color:var(--ink-soft); }
.fit-note{ margin-top:16px; font-size:12px; color:var(--ink-faint); }

/* ---- direct tax comparison tool ---- */
.tax-class-row{ border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:18px 0; margin-bottom:22px; }
.tax-class-label{ font-size:13.5px; font-weight:600; margin-bottom:10px; }
.tax-class-row .fit-check{ margin-bottom:10px; }
.tax-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:16px; margin-top:6px; }
.tax-card{ position:relative; background:var(--surface-2); border:1px solid var(--line); border-radius:12px; padding:22px 20px; }
.tax-card.best{ border-color:var(--teal); box-shadow:0 0 0 1px var(--teal) inset; }
.tax-card .best-badge{ position:absolute; top:-11px; right:16px; background:var(--teal); color:#fff; font-size:10px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; padding:4px 10px; border-radius:99px; }
.tax-card h4{ font-family:'Fraunces',serif; font-size:16.5px; font-weight:600; }
.tax-card .rate{ font-family:'IBM Plex Mono',monospace; font-size:23px; font-weight:600; color:var(--teal); margin:10px 0 2px; font-variant-numeric:tabular-nums; }
.tax-card .amt{ font-size:12.5px; color:var(--ink-soft); margin-bottom:14px; }
.tax-bar-track{ height:7px; border-radius:99px; background:var(--line); overflow:hidden; margin-bottom:12px; }
.tax-bar-fill{ height:100%; border-radius:99px; background:var(--teal); transition:width .35s ease; }
.tax-card p{ font-size:12.5px; line-height:1.55; color:var(--ink-soft); }

/* ---- pricing ---- */
.price-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; align-items:stretch; }
@media (max-width:900px){ .price-grid{ grid-template-columns:1fr; } }
.price-card{ position:relative; background:var(--surface); border:1px solid var(--line); border-radius:16px; padding:28px; box-shadow:var(--shadow); display:flex; flex-direction:column; }
.price-card.rec{ border-color:var(--gold); box-shadow:0 0 0 1px var(--gold) inset, var(--shadow); }
.price-card .rec-badge{ position:absolute; top:-12px; left:24px; background:var(--gold); color:#1A1204; font-size:10.5px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; padding:4px 12px; border-radius:99px; }
.price-card h3{ font-size:19px; font-weight:600; }
.price-card .tagline{ margin-top:8px; font-size:13.5px; color:var(--ink-soft); line-height:1.55; min-height:42px; }
.price-card .price{ margin-top:20px; display:flex; align-items:baseline; gap:6px; }
.price-card .price .from{ font-size:11.5px; color:var(--ink-faint); text-transform:uppercase; letter-spacing:.05em; }
.price-card .price .amt{ font-family:'Fraunces',serif; font-size:30px; font-weight:600; color:var(--ink); }
.price-card .price .per{ font-size:13px; color:var(--ink-soft); }
.price-card ul{ list-style:none; margin:22px 0 0; padding:0; display:flex; flex-direction:column; gap:11px; flex:1; }
.price-card li{ font-size:13.5px; color:var(--ink-soft); line-height:1.5; display:flex; gap:9px; }
.price-card li::before{ content:"\2713"; color:var(--teal); font-weight:700; flex:none; }
.price-card .btn{ margin-top:24px; justify-content:center; }
.price-note{ margin-top:26px; font-size:12.5px; color:var(--ink-faint); max-width:64ch; }

/* ---- compliance calendar ---- */
.cc-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:16px; }
.cc-card{ background:var(--surface); border:1px solid var(--line); border-radius:14px; padding:20px; box-shadow:var(--shadow); }
.cc-cat{ display:inline-block; font-family:'IBM Plex Mono',monospace; font-size:10.5px; font-weight:600; letter-spacing:.04em; text-transform:uppercase; padding:3px 9px; border-radius:99px; background:var(--teal-soft); color:var(--teal); }
.cc-card h4{ font-family:'Fraunces',serif; font-size:16px; font-weight:600; margin-top:12px; }
.cc-date{ margin-top:8px; font-family:'IBM Plex Mono',monospace; font-size:13px; color:var(--ink); font-weight:600; }
.cc-when{ color:var(--gold); font-weight:600; }
.cc-card p{ margin-top:10px; font-size:12.5px; color:var(--ink-soft); line-height:1.55; }
.cc-table-wrap{ overflow-x:auto; }
table.cc-table{ width:100%; border-collapse:collapse; font-size:13.5px; }
table.cc-table th{ text-align:left; font-size:11px; text-transform:uppercase; letter-spacing:.05em; color:var(--ink-faint); padding:10px 12px; border-bottom:1px solid var(--line); }
table.cc-table td{ padding:12px; border-bottom:1px solid var(--line); color:var(--ink-soft); vertical-align:top; }
table.cc-table td:first-child{ color:var(--ink); font-weight:600; white-space:nowrap; }
table.cc-table td:nth-child(2){ white-space:nowrap; font-family:'IBM Plex Mono',monospace; font-size:12.5px; }
table.cc-table tr.cc-group td{ background:var(--surface-2); color:var(--gold); font-weight:700; text-transform:uppercase; font-size:11.5px; letter-spacing:.05em; border-bottom:1px solid var(--line); }

/* ---- about / team ---- */
.about{ display:grid; grid-template-columns:1.1fr 0.9fr; gap:48px; align-items:start; }
.about blockquote{ margin:0; font-family:'Fraunces',serif; font-size:clamp(20px,2.6vw,26px); font-weight:500; line-height:1.45; font-style:italic; }
.about blockquote::before{ content:"\201C"; color:var(--gold); }
.about blockquote::after{ content:"\201D"; color:var(--gold); }
.about-cite{ margin-top:18px; font-size:14px; color:var(--ink-soft); }
.about-cite b{ color:var(--ink); }
.about-panel{ background:var(--surface); border:1px solid var(--line); border-radius:14px; padding:26px; box-shadow:var(--shadow); }
.about-panel h3{ font-size:16px; font-weight:600; margin-bottom:14px; }
.about-panel ul{ margin:0; padding:0; list-style:none; display:flex; flex-direction:column; gap:12px; }
.about-panel li{ font-size:14.5px; color:var(--ink-soft); display:flex; gap:10px; }
.about-panel li b{ color:var(--ink); font-weight:600; min-width:78px; }
@media (max-width:760px){ .about{ grid-template-columns:1fr; } }

.team-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:18px; margin-top:8px; }
.team-card{ background:var(--surface); border:1px solid var(--line); border-radius:14px; padding:24px; box-shadow:var(--shadow); }
.team-card .avatar{
  width:52px; height:52px; border-radius:50%; background:var(--teal-soft); color:var(--teal); font-family:'Fraunces',serif;
  font-weight:600; font-size:19px; display:flex; align-items:center; justify-content:center; margin-bottom:14px;
}
.team-card h4{ font-size:16.5px; font-weight:600; }
.team-card .role{ font-size:12.5px; color:var(--gold); font-weight:600; margin-top:2px; }
.team-card p{ margin-top:10px; font-size:13.5px; color:var(--ink-soft); line-height:1.6; }
.team-note{ margin-top:18px; font-size:12.5px; color:var(--ink-faint); border-top:1px dashed var(--line); padding-top:16px; }

/* ---- faq ---- */
.faq-wrap{ background:var(--surface-2); }
.faq-item{ border-bottom:1px solid var(--line); }
.faq-q{
  width:100%; text-align:left; background:none; border:none; padding:18px 4px; font:inherit; font-size:15.5px; font-weight:600;
  color:var(--ink); cursor:pointer; display:flex; justify-content:space-between; align-items:center; gap:14px;
}
.faq-q .plus{ font-family:'IBM Plex Mono',monospace; font-size:18px; color:var(--teal); flex:none; transition:transform .2s ease; }
.faq-item[data-open="true"] .plus{ transform:rotate(45deg); }
.faq-a{ max-height:0; overflow:hidden; transition:max-height .25s ease; font-size:14.5px; color:var(--ink-soft); line-height:1.6; }
.faq-a-in{ padding:0 4px 18px; }

/* ---- resources ---- */
.res-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:14px; }
.res-card{
  display:flex; align-items:center; justify-content:space-between; gap:10px; background:var(--surface); border:1px solid var(--line);
  border-radius:12px; padding:16px 18px; text-decoration:none; color:var(--ink); box-shadow:var(--shadow);
}
.res-card:hover{ border-color:var(--gold); }
.res-card .t{ font-weight:600; font-size:14.5px; }
.res-card .d{ font-size:12.5px; color:var(--ink-faint); margin-top:3px; }
.res-card .arrow{ font-family:'IBM Plex Mono',monospace; color:var(--gold); flex:none; }

/* ---- contact / footer ---- */
.contact{ background:linear-gradient(160deg, var(--hero-1), var(--hero-2)); color:var(--hero-ink); text-align:center; }
.contact h2{ font-size:clamp(26px,4vw,36px); font-weight:600; }
.contact p{ margin-top:14px; color:var(--hero-ink-soft); font-size:15.5px; }
.contact .ctas{ justify-content:center; margin-top:28px; }
.contact-form{ max-width:460px; margin:32px auto 0; text-align:left; background:rgba(244,246,249,0.06); border:1px solid rgba(244,246,249,0.18); border-radius:14px; padding:26px; }
.contact-form label{ display:block; font-size:13px; font-weight:600; margin-bottom:6px; color:var(--hero-ink); }
.contact-form input, .contact-form textarea{
  width:100%; margin-bottom:16px; padding:10px 12px; border-radius:8px; border:1px solid rgba(244,246,249,0.28);
  background:rgba(244,246,249,0.06); color:var(--hero-ink); font:inherit; font-size:14px;
}
.contact-form textarea{ min-height:90px; resize:vertical; }
.contact-form .fine{ font-size:12px; color:var(--hero-ink-soft); margin-top:-6px; margin-bottom:16px; }
footer{ padding:26px 24px; text-align:center; font-size:12.5px; color:var(--ink-faint); }
footer .footlinks{ display:flex; gap:16px; justify-content:center; flex-wrap:wrap; margin-bottom:10px; }
footer .footlinks a{ text-decoration:none; color:var(--ink-soft); }
footer .footlinks a:hover{ color:var(--ink); }

/* ---- modal ---- */
.modal-overlay{
  position:fixed; inset:0; background:var(--overlay); display:flex; align-items:center; justify-content:center;
  padding:24px; z-index:50; opacity:0; pointer-events:none; transition:opacity .18s ease;
}
.modal-overlay[data-show="true"]{ opacity:1; pointer-events:auto; }
.modal-panel{
  background:var(--surface); border-radius:16px; max-width:520px; width:100%; max-height:85vh; overflow-y:auto;
  padding:30px; box-shadow:0 24px 60px -20px rgba(0,0,0,0.45); transform:translateY(10px); transition:transform .18s ease;
}
.modal-overlay[data-show="true"] .modal-panel{ transform:translateY(0); }
.modal-close{
  float:right; background:var(--surface-2); border:1px solid var(--line); border-radius:8px; width:30px; height:30px;
  font-size:16px; cursor:pointer; color:var(--ink-soft);
}
.modal-panel .num{ font-family:'IBM Plex Mono',monospace; font-size:12.5px; color:var(--teal); font-weight:600; }
.modal-panel h3{ font-size:22px; font-weight:600; margin-top:10px; }
.modal-panel .lede{ margin-top:12px; font-size:14.5px; color:var(--ink-soft); line-height:1.6; }
.modal-panel ul{ margin:16px 0 0; padding-left:18px; }
.modal-panel li{ font-size:14px; color:var(--ink-soft); line-height:1.65; margin-bottom:6px; }
.modal-panel .link{ display:inline-flex; align-items:center; gap:6px; margin-top:18px; font-size:13.5px; font-weight:600; color:var(--gold); text-decoration:none; }
