:root{
  --black:#030206; --white:#FFFFFC; --yellow:#F3FF97; --lilac:#D5A5E3; --purple:#875CFF; --taupe:#A89F91;
  --ink:#030206; --ink-2:#4A4650; --line:#E4E1DA; --paper:#FFFFFC; --paper-2:#F6F4F0;
  --max:1180px; --pad:clamp(20px,5vw,48px);
  color-scheme: light;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:84px}
body{font-family:"IBM Plex Sans",system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;background:var(--paper);color:var(--ink);font-size:18px;line-height:1.55;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit}
:focus-visible{outline:2px solid var(--purple);outline-offset:3px;border-radius:4px}
.dark :focus-visible{outline-color:var(--lilac)}
.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--pad)}
.dark{background:var(--black);color:var(--white)}
.nav{position:sticky;top:0;z-index:20;background:rgba(3,2,6,.92);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid rgba(255,255,252,.08);padding-top:env(safe-area-inset-top,0px)}
.nav .wrap{display:flex;align-items:center;justify-content:space-between;height:68px;gap:24px}
.brand{display:flex;align-items:center;gap:14px;text-decoration:none;color:var(--white)}
.brand img{height:30px;width:auto}
.brand span{font-size:14px;font-weight:500;color:var(--taupe);padding-left:14px;border-left:1px solid rgba(255,255,252,.2)}
.nav ul{display:flex;list-style:none;gap:28px;align-items:center}
.nav ul a{text-decoration:none;font-size:15px;color:rgba(255,255,252,.75)}
.nav ul a:hover{color:var(--white)}
.nav ul a.btn{color:var(--black)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font:inherit;font-weight:600;font-size:16px;text-decoration:none;border-radius:999px;padding:13px 24px;border:1.5px solid transparent;transition:background .15s,color .15s,border-color .15s}
.btn-yellow{background:var(--yellow);color:var(--black)}
.btn-yellow:hover{background:var(--white)}
.btn-ghost{border-color:rgba(255,255,252,.35);color:var(--white)}
.btn-ghost:hover{border-color:var(--white)}
.btn-sm{padding:9px 18px;font-size:14px}
.btn-white{background:var(--white);color:var(--black)}
.btn-white:hover{background:var(--lilac)}
@media (max-width:860px){.nav ul li:not(:last-child){display:none}.brand span{display:none}}
.hero{position:relative;overflow:hidden;padding:clamp(72px,11vw,140px) 0 clamp(64px,9vw,112px)}
.hero::before{content:"";position:absolute;inset:0;background:
  radial-gradient(60% 80% at 92% 18%, rgba(135,92,255,.55), transparent 65%),
  radial-gradient(45% 60% at 70% 100%, rgba(213,165,227,.22), transparent 70%);pointer-events:none}
.hero .wrap{position:relative}
.hero h1{font-weight:700;font-size:clamp(46px,8.4vw,88px);line-height:.98;letter-spacing:-.01em;max-width:41ch}
.hero .sub{font-weight:500;font-size:clamp(22px,2.6vw,32px);line-height:1.2;margin-top:24px;color:var(--lilac);max-width:28ch}
.hero p.lede{margin-top:22px;max-width:56ch;color:rgba(255,255,252,.78);font-size:19px}
.hero .ctas{display:flex;flex-wrap:wrap;gap:14px;margin-top:38px}
.facts{display:flex;flex-wrap:wrap;gap:12px 36px;margin-top:56px;padding-top:28px;border-top:1px solid rgba(255,255,252,.14);max-width:920px}
.facts div{font-size:15px;color:rgba(255,255,252,.65)}
.facts strong{display:block;color:var(--white);font-size:20px;font-weight:600}

/* sections */
section{padding:clamp(72px,10vw,128px) 0}
h2{font-weight:400;font-size:clamp(34px,4.6vw,36px);line-height:1.04;letter-spacing:-.005em;max-width:38ch}
.intro{margin-top:20px;max-width:62ch;color:var(--ink-2);font-size:19px}
.dark .intro{color:rgba(255,255,252,.75)}
h3{font-weight:600;font-size:21px;line-height:1.25}

/* why canton */
.why-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:0;margin-top:56px;border-top:1px solid var(--line)}
.why-grid article{padding:32px 32px 36px 0;border-bottom:1px solid var(--line)}
.why-grid article:nth-child(odd){border-right:1px solid var(--line)}
.why-grid article:nth-child(even){padding-left:32px;padding-right:0}
.why-grid p{margin-top:10px;color:var(--ink-2);max-width:48ch}
.why-grid .mark{display:block;width:28px;height:4px;background:var(--purple);margin-bottom:20px;border-radius:2px}
.who{margin-top:44px;font-size:16px;color:var(--ink-2)}
.who b{color:var(--ink);font-weight:600}
@media (max-width:760px){.why-grid{grid-template-columns:1fr}.why-grid article,.why-grid article:nth-child(odd),.why-grid article:nth-child(even){padding:28px 0;border-right:0}}

/* daml */
.daml{background:linear-gradient(180deg,var(--black) 0%, #0d0820 100%)}
.daml-grid{display:grid;grid-template-columns:1fr 1.05fr;gap:clamp(36px,6vw,80px);align-items:start;margin-top:8px}
.daml ul{list-style:none;margin-top:34px;display:grid;gap:22px}
.daml li{padding-left:22px;border-left:2px solid var(--purple);color:rgba(255,255,252,.78)}
.daml li b{color:var(--white);font-weight:600;display:block;margin-bottom:2px}
.code{background:#0F0B1C;border:1px solid rgba(213,165,227,.2);border-radius:14px;overflow:hidden}
.code .bar{display:flex;justify-content:space-between;padding:12px 18px;border-bottom:1px solid rgba(213,165,227,.14);font-size:13px;color:var(--taupe)}
.code pre{padding:22px 22px 26px;overflow-x:auto;font-family:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:14.5px;line-height:1.7;color:rgba(255,255,252,.86)}
.k{color:var(--lilac)} .r{color:var(--purple);font-weight:600} .ty{color:var(--taupe)} .c{color:rgba(255,255,252,.42);font-style:italic}
.code .cap{padding:14px 22px 18px;font-size:14px;color:rgba(255,255,252,.6);border-top:1px solid rgba(213,165,227,.14)}
.daml .why3{margin-top:36px;padding:22px 24px;border-radius:12px;background:rgba(135,92,255,.14);color:rgba(255,255,252,.85);font-size:17px}
@media (max-width:900px){.daml-grid{grid-template-columns:1fr}}

/* certified */
.cert{background:var(--paper-2)}
.cert-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(36px,6vw,88px);align-items:start}
.reasons{display:grid;gap:0;border-top:1px solid var(--line)}
.reasons div{padding:24px 0;border-bottom:1px solid var(--line)}
.reasons p{margin-top:6px;color:var(--ink-2)}
@media (max-width:900px){.cert-grid{grid-template-columns:1fr}}

/* paths */
.map{margin-top:56px;background:var(--black);border-radius:20px;padding:clamp(20px,3vw,36px);overflow-x:auto}
.map svg{min-width:700px;width:100%;height:auto;display:block}
.map a{cursor:pointer}
.map a:hover rect.node{stroke:var(--lilac)}
.map a:focus-visible{outline:none}
.map a:focus-visible rect.node{stroke:var(--yellow);stroke-width:2.5}
.group-label{margin:72px 0 18px;font-size:15px;font-weight:600;color:var(--purple)}
.paths{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
.path{border:1px solid var(--line);border-radius:16px;padding:30px 30px 28px;display:flex;flex-direction:column;background:var(--white)}
.path.solo{grid-column:1 / -1}
.path .letter{display:inline-grid;place-items:center;width:44px;height:44px;border-radius:12px;background:var(--black);color:var(--white);font-weight:700;font-size:20px}
.path.soon .letter{background:var(--taupe)}
.path h3{margin-top:18px;font-size:24px}
.meta{display:grid;grid-template-columns:auto 1fr;gap:6px 16px;margin:16px 0 0;font-size:15px}
.meta dt{color:var(--ink-2)}
.meta dd{font-weight:500}
.path p.desc{margin-top:16px;color:var(--ink-2);flex:1}
.path .links{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}
.btn-dark{background:var(--black);color:var(--white)}
.btn-dark:hover{background:var(--purple)}
.btn-line{border-color:var(--ink);color:var(--ink)}
.btn-line:hover{border-color:var(--purple);color:var(--purple)}
.tag{display:inline-block;margin-left:10px;font-size:13px;font-weight:600;padding:4px 10px;border-radius:999px;background:#EFE8E0;color:#5C554B;vertical-align:middle}
.path.solo .inner{display:grid;grid-template-columns:1fr 1fr;gap:12px 48px;align-items:center}
.d2note{margin-top:22px;font-size:16px;color:var(--ink-2)}
@media (max-width:820px){.paths{grid-template-columns:1fr}.path.solo .inner{grid-template-columns:1fr}}

/* faq */
.faq-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(36px,6vw,88px)}
details{border-bottom:1px solid var(--line)}
details:first-of-type{border-top:1px solid var(--line)}
summary{list-style:none;cursor:pointer;padding:22px 44px 22px 0;font-weight:600;font-size:19px;position:relative}
summary::-webkit-details-marker{display:none}
summary::after{content:"";position:absolute;right:6px;top:50%;width:14px;height:14px;margin-top:-7px;background:
  linear-gradient(var(--purple),var(--purple)) center/14px 2px no-repeat,
  linear-gradient(var(--purple),var(--purple)) center/2px 14px no-repeat;transition:transform .2s}
details[open] summary::after{transform:rotate(45deg)}
details .a{padding:0 44px 24px 0;color:var(--ink-2);max-width:62ch}
details .a a{color:var(--purple)}
@media (max-width:900px){.faq-grid{grid-template-columns:1fr}}

/* closing + footer */
.closing{position:relative;overflow:hidden;text-align:left}
.closing::before{content:"";position:absolute;inset:0;background:linear-gradient(100deg, var(--black) 35%, rgba(135,92,255,.75) 100%);pointer-events:none}
.closing .wrap{position:relative;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:end;gap:32px}
.closing h2{max-width:16ch}
.closing p{margin-top:16px;color:rgba(255,255,252,.75);max-width:44ch}
footer{background:var(--black);color:rgba(255,255,252,.6);font-size:14px;padding:40px 0 calc(40px + env(safe-area-inset-bottom,0px));border-top:1px solid rgba(255,255,252,.1)}
footer .wrap{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px}
footer img{height:26px;width:auto}
footer nav{display:flex;flex-wrap:wrap;gap:24px}
footer a{text-decoration:none}
footer a:hover{color:var(--white)}

@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* active nav link (set by script.js) */
.nav ul a.active{color:var(--white)}
.nav ul a.active:not(.btn){box-shadow:inset 0 -2px 0 var(--lilac);padding-bottom:4px}
