  :root{
    --ground:#FEF9F2; --surface:#FFFFFF; --sunken:#F7EEFF;
    --ink:#2A2333; --ink-soft:#6C6876; --line:#E7E0D6;
    --accent:#3C247F; --accent-ink:#FFFFFF; --accent-soft:#F1E3FF;
    --mark:#00767A; --warn:#B85A00;
    --close-bg:#3C247F; --close-ink:#FFFFFF; --close-btn-bg:#FFFFFF; --close-btn-ink:#3C247F;
    --code-bg:#231A42; --code-bg-2:#1B1434; --code-ink:#EFE9FB; --code-dim:#A093CE; --code-line:#3A2E63;
    --shadow:0 1px 2px rgba(42,35,51,.05), 0 12px 28px -18px rgba(42,35,51,.35);
    --serif:"Song Myung", Georgia, "Times New Roman", serif;
    --sans:"Poppins", "Helvetica Neue", Arial, sans-serif;
    --mono:"IBM Plex Mono", ui-monospace, "SFMono-Regular", Consolas, monospace;
  }

  *{box-sizing:border-box;}
  body{
    margin:0; background:var(--ground); color:var(--ink);
    font-family:var(--sans); font-size:16px; line-height:1.65;
    -webkit-font-smoothing:antialiased;
  }
  .wrap{max-width:1060px; margin:0 auto; padding:0 24px;}
  .prose{max-width:660px;}

  h1,h2,h3{font-family:var(--serif); font-weight:400; text-wrap:balance; margin:0;}
  h1{font-size:clamp(38px,6vw,60px); line-height:1.08; letter-spacing:-.01em;color:var(--ink);}
  h2{font-size:clamp(26px,3.4vw,34px); line-height:1.2;color:var(--ink)}
  h3{font-size:19px; line-height:1.35;}
  p{margin:0;}
  a{color:inherit;}

  .eyebrow{
    font-family:var(--sans); font-weight:600; font-size:11px;
    letter-spacing:.16em; text-transform:uppercase; color:var(--accent);
  }
  .lede{font-size:19px; line-height:1.6; color:var(--ink-soft);}

  /* --- masthead --- */
  .masthead{
    border-bottom:1px solid var(--line);
    background:var(--surface);
  }
  .masthead .wrap{display:flex; align-items:center; justify-content:space-between; gap:16px; padding-block:14px;}
  .mark{display:flex; align-items:center; gap:10px; font-weight:600; font-size:15px; letter-spacing:-.01em;}
  .dot{width:22px; height:22px; border-radius:7px 7px 7px 2px; background:var(--accent); flex:none;}
  .themer{
    font:inherit; font-size:12px; font-weight:500; color:var(--ink-soft) !important; font-family:var(--sans);
    background:none; border:1px solid var(--line); border-radius:99px;
    padding:5px 13px; cursor:pointer;
  }
  .themer:hover{color:var(--ink); border-color:var(--ink-soft) !important;}
/* @media (prefers-color-scheme: dark){
    :root:not([data-theme="light"]){
      --ground:#16121E; --surface:#221C2E; --sunken:#2E2740;
      --ink:#F4EFF8 !important; --ink-soft:#ADA4BE; --line:#392F4A;
      --accent:#DCB8FE; --accent-ink:#241A45; --accent-soft:#332747;
      --mark:#5FD9D3; --warn:#F0A63C;
      --close-bg:#2C2150; --close-ink:#F4EFF8; --close-btn-bg:#DCB8FE; --close-btn-ink:#241A45;
      --shadow:0 1px 2px rgba(0,0,0,.3), 0 12px 28px -18px rgba(0,0,0,.8);
    }
  } */

  /* --- hero --- */
  .hero{padding:clamp(48px,7vw,84px) 0 12px;}
  .hero .eyebrow{display:block; margin-bottom:18px;}
  .hero h1{margin-bottom:20px;color:var(--ink);}
  .hero .lede{max-width:600px;}
  .hero-meta{
    display:flex; flex-wrap:wrap; gap:8px 20px; margin-top:26px;
    font-size:13px; color:var(--ink-soft);
  }
  .hero-meta span{display:flex; align-items:center; gap:7px;}
  .tick{width:14px; height:14px; flex:none; color:var(--mark);}

  /* --- code panel --- */
  .panel{
    margin:34px 0 0; border-radius:14px; overflow:hidden;
    background:var(--code-bg); box-shadow:var(--shadow);
    border:1px solid var(--code-line);
  }
  .panel-bar{
    display:flex; align-items:center; gap:6px; flex-wrap:wrap;
    padding:10px 12px; background:var(--code-bg-2);
    border-bottom:1px solid var(--code-line);
  }
  .tab{
    font:inherit; font-size:12px; font-weight:500; font-family:var(--sans);
    color:var(--code-dim); background:none; border:0; border-radius:7px;
    padding:6px 12px; cursor:pointer;
  }
  .tab:hover{color:var(--code-ink);border: none !important;}
  .tab[aria-selected="true"]{background:rgba(255,255,255,.09)!important; color:var(--code-ink);border: none !important;}
  .copy{
    margin-left:auto; font:inherit; font-size:12px; font-weight:600; font-family:var(--sans);
    background:var(--accent) !important; color:var(--accent-ink); border:0; border-radius:7px;
    padding:7px 15px; cursor:pointer; min-width:104px;
  }
  .copy:hover{filter:brightness(1.08);border: none !important;}
  .panel pre{
    margin:0; padding:22px; max-height:440px; overflow:auto;
    font-family:var(--mono); font-size:12.5px; line-height:1.72;
    color:var(--code-ink); white-space:pre-wrap; overflow-wrap:anywhere; tab-size:2;
  }
  .panel pre::-webkit-scrollbar{width:10px; height:10px;}
  .panel pre::-webkit-scrollbar-thumb{background:var(--code-line); border-radius:6px;}
  .panel-foot{
    padding:11px 16px; background:var(--code-bg-2); border-top:1px solid var(--code-line);
    font-size:12px; color:var(--code-dim);
  }

  /* --- sections --- */
  section{padding:clamp(56px,7vw,88px) 0 0;}
  .sec-head{margin-bottom:32px;}
  .sec-head .eyebrow{display:block; margin-bottom:12px;}
  .sec-head p{margin-top:12px; color:var(--ink-soft); max-width:620px;}
  .sec-head-split{
    display:flex; align-items:center; justify-content:space-between;
    gap:24px 40px; flex-wrap:wrap;
  }
  .sec-head-split > div{flex:1 1 300px;}
  .sec-head-split .help{flex:0 1 400px;}
  /* --- three ways --- */
  .ways{display:grid; grid-template-columns:repeat(auto-fit,minmax(268px,1fr)); gap:16px;}
  .way{
    background:var(--surface); border:1px solid var(--line); border-radius:14px;
    padding:24px; display:flex; flex-direction:column; gap:10px;
  }
  .way-top{display:flex; align-items:center; gap:11px;}
  .way-kicker{
    font-size:11px; font-weight:600; letter-spacing:.14em; text-transform:uppercase;
    color:var(--ink-soft);
  }
  .way p{font-size:14.5px; line-height:1.6; color:var(--ink-soft); flex:1;}
  .btn{
    display:inline-flex; align-items:center; gap:8px; align-self:flex-start;
    font-weight:600; font-size:14px; text-decoration:none;
    border-radius:9px; padding:10px 18px; margin-top:6px;
    background:var(--accent); color:var(--accent-ink); border:1px solid var(--accent);
  }
  .btn:hover{filter:brightness(1.08);}
  .btn.ghost{background:transparent; color:var(--accent);}
  .btn.ghost:hover{background:var(--accent-soft); filter:none;}
  .soon{
    display:inline-flex; align-items:center; align-self:flex-start;
    font-weight:600; font-size:14px; border-radius:9px; padding:10px 18px; margin-top:6px;
    background:var(--sunken); color:var(--ink-soft); border:1px dashed var(--line);
    cursor:default;
  }
  .walkthrough{
    display:inline-flex; align-items:center; gap:6px; align-self:flex-start;
    margin-top:10px; font-size:12.5px; color:var(--ink-soft) !important;
    text-decoration:none; border-bottom:1px solid transparent;
  }
  .walkthrough:hover{color:var(--accent) !important; border-bottom-color:currentColor;}
  .walkthrough svg{width:12px; height:12px; flex:none;}
  /* keeps the third card's button on the same line as the other two */
  .walkthrough.spacer{visibility:hidden; pointer-events:none;}
  /* --- constraint spec --- */
  .spec{border-top:1px solid var(--line); max-width:920px; margin:0;}
  .spec-row{
    display:grid; grid-template-columns:minmax(150px,220px) 1fr; gap:8px 32px;
    padding:18px 0; border-bottom:1px solid var(--line); align-items:start;
  }
  .spec-row dt{font-weight:600; font-size:14.5px; display:flex; gap:9px; align-items:baseline;}
  .spec-row dd{margin:0; font-size:14.5px; line-height:1.6; color:var(--ink-soft);}
  .spec-row dd b{color:var(--ink); font-weight:500;}
  @media (max-width:640px){ .spec-row{grid-template-columns:1fr; gap:4px;} }

  /* --- steps --- */
  .steps{counter-reset:s; display:flex; flex-direction:column; gap:2px;}
  .step{
    display:grid; grid-template-columns:34px 1fr; gap:16px; align-items:start;
    padding:16px 0; border-bottom:1px solid var(--line);
  }
  .step:last-child{border-bottom:0;}
  .step::before{
    counter-increment:s; content:counter(s,decimal-leading-zero);
    font-family:var(--mono); font-size:12px; color:var(--accent); padding-top:3px;
    font-variant-numeric:tabular-nums;
  }
  .step p{font-size:15px; color:var(--ink-soft);}
  .step strong{color:var(--ink); font-weight:600;}

  /* --- callout --- */
  .note{
    background:var(--sunken); border-radius:14px; padding:26px 28px;
    display:flex; flex-direction:column; gap:10px;
  }
  .note h3{font-family:var(--sans); font-size:15px; font-weight:600;color: var(--ink);}
  .note p{font-size:14.5px; color:var(--ink-soft);}
 /* --- closing --- */
  .close{
    margin:clamp(56px,7vw,88px) 0 0; padding:clamp(36px,5vw,52px) clamp(28px,5vw,52px);
    background:var(--close-bg); color:var(--close-ink); border-radius:18px;
    display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:24px;
  }
  .close h2{color:var(--close-ink); max-width:15ch;color:var(--close-ink);}
  .close p{color:var(--close-ink); opacity:.82; font-size:15px; margin-top:8px; max-width:38ch;}
  .close .btn{background:var(--close-btn-bg); color:var(--close-btn-ink); border-color:var(--close-btn-bg);}

  .help{
    display:flex; align-items:center; gap:16px;
    background:var(--surface); border:1px solid var(--line); border-radius:14px;
    padding:20px 22px; text-decoration:none;
    transition:border-color .15s ease, box-shadow .15s ease;
  }
  .help:hover{border-color:var(--accent); box-shadow:var(--shadow);}
  .help-icon{
    width:38px; height:38px; flex:none; border-radius:10px;
    background:var(--accent-soft); color:var(--accent);
    display:flex; align-items:center; justify-content:center;
  }
  .help-icon svg{width:18px; height:18px;}
  .help-text{display:flex; flex-direction:column; gap:3px; flex:1;}
  .help-text strong{font-size:15px; font-weight:600; color:var(--ink);}
  .help-text span{font-size:13.5px; color:var(--ink-soft); line-height:1.5;}
  .help-arrow{
    flex:none; color:var(--ink-soft); font-size:18px; line-height:1;
    transition:transform .15s ease, color .15s ease;
  }
  .help:hover .help-arrow{color:var(--accent); transform:translateX(3px);}

  :focus-visible{outline:2px solid var(--accent); outline-offset:3px; border-radius:4px;}
  @media (prefers-reduced-motion:reduce){*{transition:none !important; animation:none !important;}}

  .draft{
    background:var(--warn); color:#1B1434; font-size:12px; font-weight:600;
    text-align:center; padding:7px 16px; font-family:var(--sans);
  }

  :focus-visible{outline:2px solid var(--accent); outline-offset:3px; border-radius:4px;}
  @media (prefers-reduced-motion:reduce){*{transition:none !important; animation:none !important;}}
:where(.fl-builder-content, .fl-page) :is(a[href], button, input, select, textarea, [tabindex]:not([tabindex="-1"])):focus {
  outline-style: none !important;
  border: none !important;
}
body button:hover, body input[type="button"]:hover, body input[type="submit"]:hover {
  background-color: rgba(255,255,255,.09);
  color: #fff;
}