/* Instrument Sans and Geist Mono (SIL OFL, app/assets/fonts), served from billine.io:
   Latin and Latin Extended, one variable file each. */
@font-face{font-family:"Geist Mono";font-style:normal;font-weight:400 600;font-display:swap;src:url("/assets/geist-mono-latin-ext-582791fc.woff2") format("woff2");unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:"Geist Mono";font-style:normal;font-weight:400 600;font-display:swap;src:url("/assets/geist-mono-latin-2dfee388.woff2") format("woff2");unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:"Instrument Sans";font-style:normal;font-weight:400 700;font-stretch:75% 100%;font-display:swap;src:url("/assets/instrument-sans-latin-ext-f0302588.woff2") format("woff2");unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF}
@font-face{font-family:"Instrument Sans";font-style:normal;font-weight:400 700;font-stretch:75% 100%;font-display:swap;src:url("/assets/instrument-sans-latin-e24d8b67.woff2") format("woff2");unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}

/* Layout: a night hero cut by one luminous horizontal line (the fold), then paper
   sections that alternate copy and real screenshots, closing on a night band. */
:root{
  --night:#0B100F;        /* brand night: Billine's dark paper, a shade deeper */
  --night-raised:#141B1A;
  --night-line:#22302E;
  --paper:#FAFAF8;
  --surface:#FFFFFF;
  --sunken:#EDF1F0;
  --ink:#141A19;
  --soft:#55605E;
  --meta:#64706E;
  --rule:#DCE4E2;
  --verdigris:#125F66;
  --lume:#74C6CE;         /* verdigris as light, for night grounds */
  --lume-soft:#A9DDE2;
  --on-night:#E4EBE9;
  --on-night-soft:#9BA8A6;
  --signal:#B04A2F;       /* rationed: overcommitment only */

  --display:"Instrument Sans", "SF Pro Display", -apple-system, "Helvetica Neue", Arial, sans-serif;
  --body:"Instrument Sans", "SF Pro Text", -apple-system, "Helvetica Neue", Arial, sans-serif;
  --mono:"Geist Mono", "SF Mono", ui-monospace, Menlo, monospace;

  --gutter:clamp(16px, 4vw, 40px);
  --max:1160px;
  color-scheme:light;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
section,header,[id]{scroll-margin-top:24px}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--body);font-size:17px;line-height:1.55;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img{max-width:100%;display:block}
a{color:inherit}
:focus-visible{outline:2px solid var(--lume);outline-offset:3px;border-radius:6px}

.wrap{max-width:var(--max);margin-inline:auto;padding-inline:var(--gutter)}
.eyebrow{font-family:var(--mono);font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--verdigris)}
h1,h2,h3{font-family:var(--display);font-weight:600;letter-spacing:-.025em;line-height:1.04;margin:0;text-wrap:balance}
h2{font-size:clamp(34px,4.6vw,56px)}
h3{font-size:22px;letter-spacing:-.015em;line-height:1.2}
p{margin:0;text-wrap:pretty}
.lede{font-size:clamp(18px,1.6vw,21px);line-height:1.5;color:var(--soft);max-width:34em}

/* ── Night ─────────────────────────────────────────────── */
.night{background:var(--night);color:var(--on-night);position:relative;overflow:hidden;isolation:isolate}
.night .eyebrow{color:var(--lume)}
.night .lede{color:var(--on-night-soft)}

/* nav */
.nav{position:relative;z-index:3;display:flex;align-items:center;justify-content:space-between;gap:16px;padding-block:22px}
.nav img{height:26px;width:auto}
.nav-links{display:flex;align-items:center;gap:6px;padding:5px;border:1px solid var(--night-line);border-radius:999px;background:rgba(20,27,26,.6);backdrop-filter:blur(12px)}
.nav-links a{font-size:14px;text-decoration:none;color:var(--on-night-soft);padding:7px 14px;border-radius:999px;transition:color .2s,background .2s}
.nav-links a:hover{color:var(--on-night);background:var(--night-raised)}
@media (max-width:720px){.nav-links{display:none}}
/* The language switch: two quiet letter pairs beside Get Billine, the current one lit */
.nav-end{display:flex;align-items:center;gap:10px}
.lang-switch{display:flex;align-items:center;padding:3px;border:1px solid var(--night-line);border-radius:999px;font-family:var(--mono);font-size:11px;font-weight:600;letter-spacing:.08em}
.lang-switch a{display:grid;place-items:center;min-width:30px;height:26px;padding:0 8px;border-radius:999px;color:var(--on-night-soft);text-decoration:none;transition:color .2s,background .2s}
.lang-switch a:hover{color:var(--on-night)}
.lang-switch a.is-current{color:var(--on-night);background:var(--night-raised)}
@media (max-width:380px){.nav-end{gap:6px}.lang-switch a{min-width:26px;padding:0 6px}.nav-end .btn-small{padding:8px 12px}}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:10px;font-family:var(--body);font-size:15px;font-weight:600;text-decoration:none;padding:13px 22px;border-radius:999px;border:1px solid transparent;transition:transform .2s ease,background .2s,border-color .2s;white-space:nowrap}
.btn:hover{transform:translateY(-1px)}
.btn-primary{background:var(--on-night);color:var(--night)}
.btn-primary svg{width:16px;height:16px}
.btn-ghost{color:var(--on-night);border-color:var(--night-line)}
.btn-ghost:hover{border-color:var(--on-night-soft)}
.btn-ink{background:var(--ink);color:var(--paper)}
.btn-small{padding:9px 16px;font-size:14px}

/* Apple's App Store badge: the Mac App Store one on a Mac (data-device, set in <head>) */
.store-badge{display:inline-flex;border-radius:12px;transition:transform .2s ease}
.store-badge:hover{transform:translateY(-1px)}
.store-badge img{display:block;height:54px;width:auto}
.store-badge .store-badge-mac,html[data-device=mac] .store-badge .store-badge-ios{display:none}
html[data-device=mac] .store-badge .store-badge-mac{display:block}
@media (prefers-reduced-motion:reduce){.store-badge{transition:none}.store-badge:hover{transform:none}}

/* hero */
.hero{padding-bottom:0}
.hero-grid{position:relative;z-index:2;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(24px,5vw,72px);align-items:end;padding-top:clamp(40px,7vw,96px)}
.hero h1{font-size:clamp(44px,6.6vw,84px);font-stretch:92%;letter-spacing:-.035em}
.hero h1 em{font-style:normal;color:var(--lume)}
.hero-copy{display:grid;gap:26px;padding-bottom:330px}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.hero-note{font-family:var(--mono);font-size:12px;color:var(--on-night-soft);letter-spacing:.04em}
.hero-device{position:relative;justify-self:center;width:min(360px,80vw);margin-bottom:-120px}

/* The fold: one luminous line across the night, drawn at the phone's mid height */
.fold-line{position:absolute;left:0;right:0;bottom:270px;height:1px;z-index:1;pointer-events:none;
  background:linear-gradient(90deg,transparent 0%,rgba(116,198,206,.15) 12%,var(--lume) 50%,rgba(116,198,206,.15) 88%,transparent 100%)}
.fold-line::before{content:"";position:absolute;left:10%;right:10%;top:-90px;height:180px;background:radial-gradient(50% 50% at 50% 50%,rgba(116,198,206,.20),transparent 70%);filter:blur(8px)}
.fold-line::after{content:"THE FOLD";position:absolute;left:var(--gutter);top:-22px;font-family:var(--mono);font-size:11px;letter-spacing:.18em;color:rgba(116,198,206,.7)}
.night-glow{position:absolute;inset:auto -20% -40% -20%;height:80%;background:radial-gradient(40% 50% at 70% 60%,rgba(18,95,102,.45),transparent 70%);z-index:0;pointer-events:none}
@media (max-width:860px){
  .hero-grid{grid-template-columns:minmax(0,1fr);align-items:start}
  .hero-copy{padding-bottom:12px}
  .hero-device{margin-bottom:-90px}
  .fold-line{bottom:220px}
}

/* devices — CSS bezels around real screenshots */
/* Device frames: --w is the device's width; the bezel is a share of it. A plain padding % would resolve
   against the parent's width and thicken the bezel on small devices in wide containers. */
.iphone{--w:100%;width:var(--w);position:relative;border-radius:17% / 8%;padding:calc(var(--w) * .022);background:linear-gradient(145deg,#3a403f,#121616 40%,#2b3130);box-shadow:0 0 0 1px rgba(255,255,255,.08) inset,0 40px 80px -20px rgba(0,0,0,.55),0 18px 36px -18px rgba(0,0,0,.4)}
.iphone img{border-radius:15.4% / 7.1%;width:100%;height:auto;background:#000}
.ipad{--w:100%;width:var(--w);position:relative;border-radius:5.2% / 3.7%;padding:calc(var(--w) * .02);background:linear-gradient(145deg,#3a403f,#121616 40%,#2b3130);box-shadow:0 0 0 1px rgba(255,255,255,.08) inset,0 50px 90px -30px rgba(20,26,25,.45)}
.ipad img{border-radius:3.6% / 2.6%;width:100%;height:auto}


/* ── Paper sections ────────────────────────────────────── */
.section{padding-block:clamp(88px,11vw,150px)}
.section-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px 64px;align-items:end;margin-bottom:clamp(40px,6vw,72px)}
.section-head > div{display:grid;gap:18px}
@media (max-width:860px){.section-head{grid-template-columns:minmax(0,1fr)}}

.intro{padding-top:clamp(160px,16vw,220px)}

/* The fold explained, around the iPad */
.fold-split{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:clamp(32px,6vw,80px);align-items:center}
.fold-split .ipad{--w:min(100%,560px);justify-self:center}
.fold-notes{display:grid;gap:0;border-top:1px solid var(--rule)}
.fold-notes li{list-style:none;display:grid;grid-template-columns:120px minmax(0,1fr);gap:16px;padding-block:22px;border-bottom:1px solid var(--rule)}
.fold-notes ul{margin:0;padding:0}
.fold-notes .k{font-family:var(--mono);font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--verdigris);padding-top:3px}
.fold-notes .k.quiet{color:var(--meta)}
.fold-notes p{color:var(--soft)}
.fold-notes strong{color:var(--ink);font-weight:600}
@media (max-width:860px){.fold-split{grid-template-columns:minmax(0,1fr)}}
@media (max-width:460px){.fold-notes li{grid-template-columns:minmax(0,1fr);gap:6px}}

/* A day, in three moments */
.day{background:var(--sunken)}
.moments{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(20px,3vw,40px)}
.moment{display:grid;gap:22px;align-content:start}
.moment .iphone{--w:min(300px,100%);justify-self:center}
.moment-text{display:grid;gap:8px}
.moment-time{font-family:var(--mono);font-size:12px;font-weight:500;color:var(--meta);letter-spacing:.06em;font-variant-numeric:tabular-nums}
.moment p{color:var(--soft);font-size:16px}
.moment code{font-family:var(--mono);font-size:.86em;background:var(--surface);border:1px solid var(--rule);padding:1px 6px;border-radius:6px;color:var(--ink)}
.moment .signal{color:var(--signal);font-weight:600}
@media (max-width:900px){.moments{grid-template-columns:minmax(0,1fr);gap:72px}.moment{grid-template-columns:minmax(0,1fr)}}

/* Moments: real screen recordings in the iPhone frame (moments.js plays them) */
.moment-video{margin:0}
.moment-video video{display:block;width:100%;height:auto;aspect-ratio:720/1566;border-radius:15.4% / 7.1%;background:#000;object-fit:cover}
.moment-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:26px}
.moment-play{display:inline-flex;align-items:center;gap:6px;padding:4px 11px 4px 8px;border:1px solid var(--rule);border-radius:999px;background:var(--surface);color:var(--verdigris);font-family:var(--mono);font-size:11.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;visibility:hidden;transition:border-color .2s,background .2s}
.moment-play:hover{border-color:var(--verdigris)}
.moment-play svg{width:11px;height:11px}
.moment-play .icon-pause,.moment-play .label-pause,[data-playing] .moment-play .icon-play,[data-playing] .moment-play .label-play{display:none}
[data-playing] .moment-play .icon-pause,[data-playing] .moment-play .label-pause{display:inline}
/* With a mouse, hovering a moment plays it and the button offers the same by click; on
   touch the recordings play on their own, so it only appears when reduced motion turns
   that off. */
@media (hover:hover) and (pointer:fine){.moment-play{visibility:visible}}
@media (prefers-reduced-motion:reduce){.moment-play{visibility:visible}}
.moment-play:focus-visible{visibility:visible}

/* Principles */
.principles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--ink)}
.principle{display:grid;gap:10px;padding:26px 24px 0 0}
.principle + .principle{padding-left:24px;border-left:1px solid var(--rule)}
.principle h3{font-size:19px}
.principle p{color:var(--soft);font-size:15.5px}
@media (max-width:900px){.principles{grid-template-columns:repeat(2,minmax(0,1fr))}.principle:nth-child(3){padding-left:0;border-left:0}}
@media (max-width:520px){.principles{grid-template-columns:minmax(0,1fr)}.principle,.principle + .principle{padding-left:0;border-left:0;padding-bottom:20px;border-bottom:1px solid var(--rule)}}

/* Apple, natively: Mac window as the base, iPad and iPhone in front of it */
.native-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px 64px;align-items:end}
.native-head > div{display:grid;gap:18px}
@media (max-width:860px){.native-head{grid-template-columns:minmax(0,1fr)}}
.devices{position:relative;margin-top:clamp(48px,6vw,80px);padding-bottom:clamp(40px,7vw,90px)}
.devices .mac{width:min(100%,1040px);margin-inline:auto}
.devices .mac img{width:100%;height:auto}
.devices .ipad{position:absolute;left:0;bottom:0;--w:clamp(120px,19%,220px)}
.devices .iphone{position:absolute;right:0;bottom:0;--w:clamp(80px,12%,140px)}
.native-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--rule);border:1px solid var(--rule);border-radius:20px;overflow:hidden;margin-top:clamp(40px,5vw,64px)}
.native-list div{background:var(--surface);padding:22px;display:grid;gap:6px;align-content:start}
.native-list b{font-weight:600}
.native-list span{color:var(--soft);font-size:15px}
@media (max-width:900px){.native-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:460px){.native-list{grid-template-columns:minmax(0,1fr)}}

/* Everywhere: what 1.0 does outside the app (real captures per language in images/site/everywhere) */
.everywhere{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(20px,2.6vw,36px)}
.everywhere article{display:grid;gap:20px;align-content:start}
.everywhere .iphone{--w:min(260px,100%);justify-self:center}
.everywhere article div{display:grid;gap:8px}
.everywhere h3{font-size:19px}
.everywhere p{color:var(--soft);font-size:15.5px}
.everywhere-mac{margin-top:clamp(40px,5vw,64px);display:grid;grid-template-columns:auto minmax(0,1fr);gap:clamp(24px,4vw,56px);align-items:center;padding:clamp(28px,4vw,48px);border-radius:28px}
.everywhere-mac img{display:block;width:auto;max-width:100%;height:auto;filter:drop-shadow(0 30px 60px rgba(0,0,0,.5))}
.everywhere-mac div{display:grid;gap:10px;max-width:34em}
.everywhere-mac p{color:var(--on-night-soft)}
.everywhere-mac kbd{font-family:var(--mono);font-size:.9em;padding:1px 7px;border:1px solid var(--night-line);border-radius:6px;background:var(--night-raised);color:var(--on-night)}
@media (max-width:1000px){.everywhere{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:56px}}
@media (max-width:640px){.everywhere-mac{grid-template-columns:minmax(0,1fr)}.everywhere-mac img{justify-self:center}}

/* Pricing */
.plans{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:20px;align-items:stretch}
.plan{border-radius:24px;padding:clamp(24px,3vw,36px);display:grid;gap:22px;align-content:start;border:1px solid var(--rule);background:var(--surface)}
.plan-top{display:grid;gap:8px}
.plan-name{font-family:var(--mono);font-size:12px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--meta)}
.price{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;font-variant-numeric:tabular-nums}
.price b{font-family:var(--display);font-size:clamp(40px,4.4vw,52px);font-weight:600;letter-spacing:-.035em;line-height:1}
.price span{color:var(--soft);font-size:15px}
.plan p.sub{color:var(--soft);font-size:15.5px}
.plan ul{margin:0;padding:0;list-style:none;display:grid;gap:0;border-top:1px solid var(--rule)}
.plan li{display:grid;grid-template-columns:22px minmax(0,1fr);gap:10px;padding-block:12px;border-bottom:1px solid var(--rule);font-size:15.5px}
.plan li::before{content:"";width:12px;height:7px;margin-top:7px;border-left:2px solid var(--verdigris);border-bottom:2px solid var(--verdigris);transform:rotate(-45deg)}
.plan li small{display:block;color:var(--meta);font-size:13.5px;margin-top:2px}
.plan .btn{justify-self:start}
.plans-note{margin-top:16px;color:var(--meta);font-size:13.5px}
.plan.pro{background:var(--night);border-color:var(--night);color:var(--on-night);position:relative;overflow:hidden;isolation:isolate}
.plan.pro::after{content:"";position:absolute;inset:-30% -30% auto auto;width:70%;height:70%;background:radial-gradient(closest-side,rgba(116,198,206,.22),transparent);z-index:-1}
.plan.pro .plan-name{color:var(--lume)}
.plan.pro .price span,.plan.pro p.sub{color:var(--on-night-soft)}
.plan.pro ul{border-color:var(--night-line)}
.plan.pro li{border-color:var(--night-line)}
.plan.pro li::before{border-color:var(--lume)}
.plan.pro li small{color:var(--on-night-soft)}
.formats{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.formats code{font-family:var(--mono);font-size:12px;padding:3px 8px;border-radius:7px;background:rgba(116,198,206,.12);color:var(--lume-soft)}
.alt-price{font-family:var(--mono);font-size:12.5px;color:var(--on-night-soft);letter-spacing:.02em}
.alt-price b{color:var(--on-night);font-weight:600}
.promise{margin-top:24px;display:grid;grid-template-columns:auto minmax(0,1fr);gap:14px;align-items:start;padding:20px 22px;border-radius:18px;background:var(--sunken)}
.promise svg{width:22px;height:22px;color:var(--verdigris);margin-top:2px}
.promise p{color:var(--soft);font-size:15.5px}
.promise strong{color:var(--ink)}
@media (max-width:860px){.plans{grid-template-columns:minmax(0,1fr)}}

/* Closing band */
.closing{padding-block:clamp(100px,12vw,160px);text-align:left}
.closing-inner{position:relative;z-index:2;display:grid;gap:28px;justify-items:start}
.closing h2{font-size:clamp(40px,6vw,76px);font-stretch:92%;letter-spacing:-.035em;max-width:13em}
.closing h2 span{color:var(--lume)}
.closing .fold-line{bottom:56px}
.closing .fold-line::after{content:""}

/* Footer: the lockup and three short columns, then a meta row with the language switch */
footer{background:var(--night);color:var(--on-night-soft);border-top:1px solid var(--night-line)}
.foot{display:grid;grid-template-columns:minmax(0,1.4fr) repeat(3,minmax(0,1fr));gap:32px;padding-block:56px 40px;font-size:14px}
.foot-brand{display:grid;gap:14px;align-content:start}
.foot-brand img{height:22px;width:auto}
.foot-brand p{max-width:22em;color:var(--on-night-soft)}
.foot-col{display:grid;gap:10px;align-content:start}
.foot-col h2{font-family:var(--mono);font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--lume);margin-bottom:4px}
.foot-col a{text-decoration:none;color:var(--on-night-soft);transition:color .2s}
.foot-col a:hover,.foot-col .nav-current{color:var(--on-night)}
.foot-meta{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;padding-block:20px 28px;border-top:1px solid var(--night-line);font-family:var(--mono);font-size:12px;letter-spacing:.04em}
.foot-meta a{color:var(--on-night-soft);text-decoration:none}
.foot-meta a:hover{color:var(--on-night)}
@media (max-width:760px){.foot{grid-template-columns:repeat(3,minmax(0,1fr))}.foot-brand{grid-column:1 / -1}}
@media (max-width:420px){.foot{grid-template-columns:repeat(2,minmax(0,1fr))}}

@media (prefers-reduced-motion:no-preference){
  .hero-device{animation:rise .9s cubic-bezier(.2,.7,.2,1) both .1s}
  .fold-line{animation:draw 1.2s cubic-bezier(.2,.7,.2,1) both}
  @keyframes rise{from{transform:translateY(24px);opacity:.0001}to{transform:none;opacity:1}}
  @keyframes draw{from{clip-path:inset(0 50% 0 50%)}to{clip-path:inset(0 0 0 0)}}
}

/* ── Inner pages ───────────────────────────────────────── */
/* A short night band (nav, title, lede) cut by the fold line, then paper. */
.page-head{padding-bottom:clamp(64px,8vw,104px)}
.page-head .fold-line{bottom:0}
.page-head .fold-line::after{content:""}
.page-title{position:relative;z-index:2;display:grid;gap:22px;padding-top:clamp(40px,6vw,80px);max-width:46em}
.page-title h1{font-size:clamp(40px,5.4vw,68px);font-stretch:92%;letter-spacing:-.035em}
.page-title h1 em{font-style:normal;color:var(--lume)}
.page-body{padding-block:clamp(64px,8vw,112px)}
.band{padding-block:clamp(48px,6vw,72px)}
.stack{display:grid;gap:clamp(48px,6vw,72px)}
.nav-links .nav-current{color:var(--on-night)!important;background:var(--night-raised)}

/* Long-form documents: a contents column beside a readable measure */
.doc{display:grid;grid-template-columns:minmax(0,220px) minmax(0,1fr);gap:clamp(32px,6vw,96px);align-items:start}
.doc-toc{position:sticky;top:32px;display:grid;gap:14px}
.doc-toc ol{margin:0;padding:0;list-style:none;display:grid;gap:2px;border-left:1px solid var(--rule)}
.doc-toc a{display:block;padding:5px 0 5px 14px;margin-left:-1px;border-left:1px solid transparent;font-size:14px;color:var(--soft);text-decoration:none}
.doc-toc a:hover{color:var(--ink);border-left-color:var(--verdigris)}
.doc-meta{font-family:var(--mono);font-size:12px;letter-spacing:.04em;color:var(--meta)}
.prose{max-width:40em;display:grid;gap:18px;align-content:start}
.prose h2{font-size:clamp(24px,2.4vw,30px);letter-spacing:-.02em;line-height:1.15;margin-top:36px}
.prose h2:first-child{margin-top:0}
.prose h3{font-size:18px;margin-top:10px}
.prose p,.prose li{color:var(--soft)}
.prose strong{color:var(--ink);font-weight:600}
.prose ul,.prose ol{margin:0;padding-left:1.2em;display:grid;gap:8px}
.prose a{color:var(--verdigris);text-underline-offset:3px}
.prose .summary{padding:22px 24px;border-radius:18px;background:var(--sunken);display:grid;gap:10px}
.prose .summary p{color:var(--ink)}
.prose table{width:100%;border-collapse:collapse;font-size:15px}
.prose th,.prose td{text-align:left;vertical-align:top;padding:12px 12px 12px 0;border-bottom:1px solid var(--rule)}
.prose th{font-family:var(--mono);font-size:11.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--meta)}
.prose td:first-child{color:var(--ink);font-weight:600;white-space:nowrap}
.prose td{color:var(--soft)}
@media (max-width:860px){.doc{grid-template-columns:minmax(0,1fr)}.doc-toc{position:static}}
@media (max-width:560px){.prose td:first-child{white-space:normal}}

/* Support: questions as disclosures, and one contact card */
.support{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,360px);gap:clamp(32px,6vw,80px);align-items:start}
.faq{border-top:1px solid var(--rule)}
.faq details{border-bottom:1px solid var(--rule)}
.faq summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:minmax(0,1fr) 20px;gap:16px;align-items:center;padding-block:22px;font-family:var(--display);font-size:19px;font-weight:600;letter-spacing:-.01em}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";width:10px;height:10px;justify-self:center;border-right:2px solid var(--verdigris);border-bottom:2px solid var(--verdigris);transform:rotate(45deg) translateY(-3px);transition:transform .2s}
.faq details[open] summary::after{transform:rotate(225deg) translateY(-3px)}
.faq .answer{padding-bottom:24px;display:grid;gap:12px;max-width:40em}
.faq .answer p,.faq .answer li{color:var(--soft)}
.faq .answer ol,.faq .answer ul{margin:0;padding-left:1.2em;display:grid;gap:6px}
.faq .answer a{color:var(--verdigris);text-underline-offset:3px}
.faq-group + .faq-group{margin-top:56px}
.faq-group > .eyebrow{display:block;margin-bottom:18px}
.contact{position:sticky;top:32px;border-radius:24px;padding:clamp(24px,3vw,32px);background:var(--night);color:var(--on-night);display:grid;gap:16px;overflow:hidden;isolation:isolate}
.contact::after{content:"";position:absolute;inset:-40% -40% auto auto;width:80%;height:80%;background:radial-gradient(closest-side,rgba(116,198,206,.22),transparent);z-index:-1}
.contact .eyebrow{color:var(--lume)}
.contact h2{font-size:28px;letter-spacing:-.02em}
.contact p{color:var(--on-night-soft);font-size:15.5px}
.contact .btn{justify-self:start}
.contact dl{margin:6px 0 0;display:grid;gap:10px;border-top:1px solid var(--night-line);padding-top:16px;font-size:14px}
.contact dt{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--on-night-soft)}
.contact dd{margin:0 0 6px;color:var(--on-night)}
@media (max-width:900px){.support{grid-template-columns:minmax(0,1fr)}.contact{position:relative;top:auto}}
/* The contact form, in the dark card on /support. */
.contact-form{display:grid;gap:14px}
.contact-field{display:grid;gap:6px}
.contact-field span{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--on-night-soft)}
.contact-field input,.contact-field textarea{width:100%;font:inherit;font-size:16px;padding:11px 14px;border:1px solid var(--night-line);border-radius:14px;background:var(--night-raised);color:var(--on-night)}
.contact-field textarea{resize:vertical;min-height:132px;line-height:1.5}
.contact-field input::placeholder,.contact-field textarea::placeholder{color:var(--on-night-soft);opacity:.7}
.contact-field input:focus,.contact-field textarea:focus{outline:2px solid var(--lume);outline-offset:1px;border-color:var(--lume)}
.contact-field [aria-invalid]{border-color:#E08A72}
.contact-form .btn{border:0;cursor:pointer;justify-self:start}
.contact .contact-error{color:#F0A48F;font-size:13.5px}
.contact .contact-note{font-size:13px;color:var(--on-night-soft)}
.contact .contact-note a{color:var(--lume)}

/* About: a statement, then facts */
.statement{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px 64px}
.statement .prose{max-width:none}
@media (max-width:860px){.statement{grid-template-columns:minmax(0,1fr)}}
.facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--rule);border:1px solid var(--rule);border-radius:20px;overflow:hidden}
.facts div{background:var(--surface);padding:22px;display:grid;gap:6px;align-content:start}
.facts dt{font-family:var(--mono);font-size:11.5px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--meta)}
.facts dd{margin:0;font-size:16px}
@media (max-width:900px){.facts{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:460px){.facts{grid-template-columns:minmax(0,1fr)}}

/* Press: downloadable assets */
.kit{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.kit-item{display:grid;grid-template-rows:auto 1fr;align-content:start;border:1px solid var(--rule);border-radius:20px;overflow:hidden;background:var(--surface);text-decoration:none;transition:border-color .2s,transform .2s}
.kit-item:hover{border-color:var(--verdigris);transform:translateY(-2px)}
.kit-preview{height:clamp(170px,17vw,220px);display:flex;align-items:center;justify-content:center;padding:24px;overflow:hidden;background:var(--sunken)}
.kit-preview.dark{background:var(--night)}
.kit-preview img{max-height:100%;max-width:100%;object-fit:contain}
.kit-preview .kit-shot{height:100%;width:auto;border-radius:10px;box-shadow:0 10px 30px -14px rgba(20,26,25,.4)}
.kit-preview .kit-mark{height:44%;width:auto}
.kit-preview .kit-lockup{width:62%;height:auto}
.kit-preview .tile{height:72%;width:auto;border-radius:22.5%;box-shadow:0 18px 40px -16px rgba(20,26,25,.45)}
.kit-text{padding:18px 20px;display:grid;gap:4px}
.kit-text b{font-weight:600}
.kit-text span{font-family:var(--mono);font-size:12px;color:var(--meta)}
@media (max-width:860px){.kit{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:520px){.kit{grid-template-columns:minmax(0,1fr)}}
.boilerplate{display:grid;gap:14px;padding:24px;border-radius:20px;background:var(--sunken)}
.boilerplate p{color:var(--ink)}

/* Announcements: the changelog list and an entry's page */
.changelog{display:grid;gap:0;max-width:960px}
.entry{display:grid;grid-template-columns:200px minmax(0,1fr);gap:16px 48px;padding-block:32px;border-top:1px solid var(--rule)}
.entry:first-child{border-top:0;padding-top:0}
.entry-meta{display:grid;gap:10px;align-content:start;justify-items:start;padding-top:6px}
.entry-meta time{font-family:var(--mono);font-size:12px;letter-spacing:.04em;color:var(--meta)}
.entry-text{display:grid;gap:10px;max-width:40em}
.entry-text h2{font-size:clamp(22px,2.2vw,28px);letter-spacing:-.02em;line-height:1.15}
.entry-text h2 a{text-decoration:none}
.entry-text h2 a:hover{color:var(--verdigris)}
.entry-text p,.entry-text li{color:var(--soft)}
.entry-text ul,.highlights{margin:4px 0 0;padding:0;list-style:none;display:grid;gap:6px}
.entry-text li,.highlights li{position:relative;padding-left:22px}
.entry-text li::before,.highlights li::before{content:"";position:absolute;left:2px;top:.62em;width:9px;height:5px;border-left:2px solid var(--verdigris);border-bottom:2px solid var(--verdigris);transform:rotate(-45deg)}
.entry-text strong,.highlights strong{color:var(--ink)}
.kind{font-family:var(--mono);font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;padding:3px 9px;border-radius:999px;background:var(--sunken);color:var(--verdigris)}
.kind-release{background:var(--verdigris);color:var(--paper)}
.kind-maintenance{color:var(--signal)}
.changelog-empty{color:var(--soft)}
.changelog-pages{display:flex;justify-content:space-between;gap:16px;margin-top:40px;padding-top:24px;border-top:1px solid var(--rule);font-family:var(--mono);font-size:13px}
.changelog-pages a,.doc-back{color:var(--verdigris);text-decoration:none}
.announcement-facts{gap:10px}
.doc-toc a.doc-back{font-family:var(--mono);font-size:13px;margin:8px 0 0;padding:0;border:0}
.highlights{margin-bottom:12px}
@media (max-width:760px){.entry{grid-template-columns:minmax(0,1fr);gap:10px}.entry-meta{display:flex;align-items:center;gap:12px;padding-top:0}}

/* An announcement's body (Action Text): the prose measure, with images as figures */
.prose .trix-content{display:grid;gap:18px}
.prose .trix-content > div{color:var(--soft)}
.prose .trix-content h1{font-size:clamp(24px,2.4vw,30px);letter-spacing:-.02em;line-height:1.15;margin-top:20px;color:var(--ink)}
.prose .trix-content ul,.prose .trix-content ol{color:var(--soft)}
.prose .trix-content blockquote{margin:0;padding:4px 0 4px 20px;border-left:2px solid var(--verdigris);color:var(--ink);font-size:19px;line-height:1.5}
.prose .trix-content pre{margin:0;padding:16px 18px;border-radius:14px;background:var(--night);color:var(--on-night);font-family:var(--mono);font-size:13.5px;line-height:1.6;overflow-x:auto;white-space:pre-wrap}
.prose .trix-content code{font-family:var(--mono);font-size:.88em;background:var(--sunken);padding:1px 6px;border-radius:6px;color:var(--ink)}
.prose .attachment--image{margin:10px 0;display:grid;gap:10px}
.prose .attachment--image img{display:block;width:auto;max-width:100%;height:auto;max-height:min(80vh,720px);margin-inline:auto;border-radius:18px;border:1px solid var(--rule);background:var(--sunken)}
.prose .attachment--image figcaption{font-family:var(--mono);font-size:12px;letter-spacing:.03em;color:var(--meta);text-align:center}
.prose .attachment-gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px}
.prose .attachment-gallery .attachment--image{margin:0}

/* Announcement emails: the sign-up form, the band on /announcements, the outcome pages */
.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.narrow{max-width:640px}
.signup{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px 10px;align-items:center}
.signup-field input{width:100%;font:inherit;font-size:16px;padding:12px 18px;border:1px solid var(--rule);border-radius:999px;background:var(--surface);color:var(--ink)}
.signup-field input:focus{outline:2px solid var(--lume);outline-offset:1px;border-color:var(--verdigris)}
.signup .btn{border:0;cursor:pointer}
.signup-note,.signup-error{grid-column:1 / -1;font-size:13.5px;color:var(--meta)}
.signup-note a{color:var(--verdigris)}
.signup-error{color:var(--signal)}
.signup-trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.signup-band{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:20px 48px;align-items:center;max-width:960px;margin-bottom:56px;padding:24px 28px;border-radius:20px;background:var(--sunken)}
.signup-band h2{font-size:21px;letter-spacing:-.01em}
.signup-band p{color:var(--soft);font-size:15px;margin-top:4px}
.outcome-links{font-family:var(--mono);font-size:14px}
.outcome-links a{color:var(--verdigris);text-decoration:none}
@media (max-width:760px){.signup-band{grid-template-columns:minmax(0,1fr)}}
@media (max-width:460px){.signup{grid-template-columns:minmax(0,1fr)}.signup .btn{justify-content:center}}
