@font-face{font-family:InterVariable;font-style:normal;font-weight:100 900;font-display:swap;src:url("https://rsms.me/inter/font-files/InterVariable.woff2?v=4.1") format("woff2")}

/* ============================================================
   Palette.

   Two complete palettes, A and B, that swap wholesale with the
   viewer's colour scheme. A is always the page ground; B is
   always its opposite, which is what the alternating slabs on
   the home page are made of. Nothing below this block names a
   colour directly, so a section keeps its ROLE in both schemes
   and only the pigment moves.

   .invert re-binds a subtree to B — and re-binds --alt-* back
   to A, so a panel nested inside an inverted slab (the Port
   half of the swap board) inverts once more and lands right.
   ============================================================ */
:root{
  color-scheme:light dark;
  --max:1180px;
  --a-bg:#fff;    --a-sunk:#f5f5f7; --a-fg:#0b0b0d; --a-dim:#3a3a42; --a-mute:#6c6b75; --a-faint:#8a8994; --a-rule:#e3e3df; --a-hard:#0b0b0d;             --a-accent:#6a35ff; --a-mark:none;                     --a-ground:#f1f1f4; --a-surface:#fff;    --a-tint:#ece6ff;
  --b-bg:#0b0b0d; --b-sunk:#141319; --b-fg:#fff;    --b-dim:#a5a2b2; --b-mute:#8d8a99; --b-faint:#6f6c7d; --b-rule:rgba(255,255,255,.16); --b-hard:rgba(255,255,255,.5); --b-accent:#9a7bff; --b-mark:brightness(0) invert(1); --b-ground:#0b0b0d; --b-surface:#16151c; --b-tint:#1e1830;
}
@media(prefers-color-scheme:dark){
  :root{
    --a-bg:#0b0b0d; --a-sunk:#141319; --a-fg:#fff;    --a-dim:#a5a2b2; --a-mute:#8d8a99; --a-faint:#6f6c7d; --a-rule:rgba(255,255,255,.16); --a-hard:rgba(255,255,255,.5); --a-accent:#9a7bff; --a-mark:brightness(0) invert(1); --a-ground:#0b0b0d; --a-surface:#16151c; --a-tint:#1e1830;
    --b-bg:#fff;    --b-sunk:#f5f5f7; --b-fg:#0b0b0d; --b-dim:#3a3a42; --b-mute:#6c6b75; --b-faint:#8a8994; --b-rule:#e3e3df; --b-hard:#0b0b0d;             --b-accent:#6a35ff; --b-mark:none;                     --b-ground:#f1f1f4; --b-surface:#fff;    --b-tint:#ece6ff;
  }
}
/* --ground and --surface are a pair, not a shade of --bg: a card has to sit
   ABOVE its page in both schemes, and that means grey-under-white in light but
   near-black-under-charcoal in dark. Deriving one from the other gets the dark
   case backwards. */
:root{--bg:var(--a-bg);--sunk:var(--a-sunk);--fg:var(--a-fg);--dim:var(--a-dim);--mute:var(--a-mute);--faint:var(--a-faint);--rule:var(--a-rule);--hard:var(--a-hard);--accent:var(--a-accent);--mark:var(--a-mark);--ground:var(--a-ground);--surface:var(--a-surface);--tint:var(--a-tint);--alt-bg:var(--b-bg);--alt-fg:var(--b-fg);--alt-dim:var(--b-dim);--alt-mute:var(--b-mute);--alt-accent:var(--b-accent)}
.invert{--bg:var(--b-bg);--sunk:var(--b-sunk);--fg:var(--b-fg);--dim:var(--b-dim);--mute:var(--b-mute);--faint:var(--b-faint);--rule:var(--b-rule);--hard:var(--b-hard);--accent:var(--b-accent);--mark:var(--b-mark);--ground:var(--b-ground);--surface:var(--b-surface);--tint:var(--b-tint);--alt-bg:var(--a-bg);--alt-fg:var(--a-fg);--alt-dim:var(--a-dim);--alt-mute:var(--a-mute);--alt-accent:var(--a-accent);color:var(--fg);background:var(--bg)}

:root{font-family:InterVariable,-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI Variable","Segoe UI",sans-serif;color:var(--fg);background:var(--bg);font-synthesis:none;font-feature-settings:"kern" 1,"liga" 1,"calt" 1}
*{box-sizing:border-box} html{max-width:100%;scroll-behavior:smooth;overflow-x:clip} body{margin:0;min-width:320px;max-width:100%;color:var(--fg);background:var(--bg);overflow-x:clip} a{color:inherit} img{display:block;max-width:100%}[hidden]{display:none!important}
::selection{color:#0a0710;background:#c3aeff}
.site-header,.site-footer,.document-shell{width:min(calc(100% - 48px),var(--max));max-width:100%;margin-inline:auto}

/* Shared chrome. PortSymbol.svg is filled currentColor, but an <img> resolves
   that against the SVG's own document (black), not the page — so the mark needs
   an explicit filter to survive a dark ground. */
.site-header{height:88px;display:flex;align-items:center;justify-content:space-between}.brand{display:inline-flex;align-items:center;gap:10px;text-decoration:none;font-size:1.28rem;font-weight:800;letter-spacing:-.035em}.brand img{width:29px;height:33px;filter:var(--mark)}.header-nav{display:flex;gap:25px}.header-nav a,.header-link{font-size:.88rem;text-decoration:none;border-bottom:1px solid transparent;padding-bottom:3px}.header-nav a:hover,.header-nav a[aria-current=page],.header-link{border-color:var(--fg)}
.button{display:inline-flex;align-items:center;justify-content:center;min-height:49px;padding:0 20px;border:1px solid var(--fg);border-radius:12px;text-decoration:none;font:inherit;font-size:.9rem;font-weight:700;cursor:pointer}.button.primary{color:var(--bg);background:var(--fg)}.button.primary:hover{color:#fff;background:var(--accent);border-color:var(--accent)}
.store-badge{display:block;flex:none;text-decoration:none}.store-badge img{width:194px;height:auto}.store-badge:hover{opacity:.86}
.site-footer{min-height:150px;display:grid;grid-template-columns:1fr auto;align-items:center;gap:24px;border-top:1px solid var(--rule)}.site-footer nav{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:20px}.site-footer nav a{color:var(--mute);text-decoration:none;font-size:.84rem}.site-footer nav a:hover{color:var(--fg)}.site-footer>p{grid-column:1/-1;margin:-28px 0 28px;color:var(--mute);font-size:.78rem}

/* Legal, support and 404 documents. */
.document-page{background:var(--bg)}.document-page .site-header{border-bottom:1px solid var(--rule)}.document-shell{display:grid;grid-template-columns:210px minmax(0,720px);gap:clamp(42px,9vw,120px);padding:92px 0 130px}.document-aside{position:sticky;top:48px;align-self:start}.document-aside p{margin:0 0 13px;color:var(--mute);font-size:.78rem}.document-aside a{display:block;width:max-content;margin:10px 0;text-decoration:none;font-size:.86rem}.document-aside a[aria-current=page]{font-weight:750;border-bottom:1px solid}.document h1{margin:0;font-size:clamp(2.7rem,6vw,5rem);line-height:.95;letter-spacing:-.055em}.document-label{margin:0 0 18px;text-transform:uppercase;letter-spacing:.14em;font-size:.72rem;font-weight:750}.document-meta{margin:25px 0 58px;color:var(--mute);font-size:.88rem;line-height:1.7}.document-intro{margin:0 0 52px;padding:23px 0;border-block:1px solid var(--rule);font-size:1.12rem;line-height:1.65}.document h2{margin:48px 0 12px;font-size:1.25rem}.document p,.document li{color:var(--dim);font-size:.96rem;line-height:1.75}.document ul{padding-left:22px}.support-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;margin:45px 0;border:1px solid var(--rule);background:var(--rule)}.support-item{padding:25px;background:var(--bg)}.support-item h2{margin:0 0 7px}.support-item p{margin:0}.callout{margin:42px 0;padding:24px;background:var(--sunk);border-left:3px solid var(--accent)}

/* About, journal index and articles. */
.editorial-page{background:var(--bg)}.editorial-page .site-header{border-bottom:1px solid var(--rule)}.editorial-shell,.journal-shell,.article-shell{width:min(calc(100% - 48px),var(--max));margin-inline:auto}.editorial-hero{padding:clamp(92px,13vw,170px) 0 85px}.editorial-kicker{margin:0 0 24px;text-transform:uppercase;letter-spacing:.16em;font-size:.72rem;font-weight:760}.editorial-hero h1,.journal-header h1,.article-header h1{margin:0;max-width:980px;font-size:clamp(4rem,8vw,8rem);line-height:.89;letter-spacing:-.072em;font-weight:760}.editorial-hero h1 em{color:var(--accent);font-style:normal}.editorial-dek{max-width:650px;margin:36px 0 0;color:var(--mute);font-size:clamp(1.3rem,2.3vw,2rem);line-height:1.35;letter-spacing:-.035em}.story-banner{margin:0 0 120px}.story-banner img{width:100%;height:min(60vw,650px);border-radius:36px;object-fit:cover}.story-banner figcaption{margin-top:12px;color:var(--mute);font-size:.76rem}.editorial-grid{display:grid;grid-template-columns:minmax(170px,280px) minmax(0,650px);column-gap:clamp(60px,12vw,180px);row-gap:80px;justify-content:center;padding:0 0 130px}.editorial-grid h2{margin:2px 0 0;font-size:1rem;letter-spacing:-.02em}.editorial-grid p{margin:0 0 20px;color:var(--dim);font-size:clamp(1.2rem,2vw,1.55rem);line-height:1.55;letter-spacing:-.025em}.editorial-cta{display:flex;align-items:center;justify-content:space-between;gap:30px;margin-bottom:115px;padding:42px 48px;border-radius:28px;background:var(--sunk)}.editorial-cta p{margin:0;font-size:1.15rem;font-weight:680}.journal-shell{padding:clamp(90px,13vw,165px) 0 125px}.journal-header{margin-bottom:95px}.story-list{display:grid;grid-template-columns:1.45fr .75fr;gap:24px}.story-card{display:flex;min-height:360px;padding:38px;border:1px solid var(--rule);border-radius:30px;background:var(--sunk);text-decoration:none;transition:transform .2s ease,border-color .2s ease}.story-card:hover{transform:translateY(-4px);border-color:var(--hard)}.story-card span{display:flex;flex-direction:column;align-items:flex-start}.story-card small{margin-bottom:auto;color:var(--mute);font-size:.72rem;font-weight:650;letter-spacing:.08em;text-transform:uppercase}.story-card strong{font-size:clamp(2rem,4vw,3.6rem);line-height:.98;letter-spacing:-.06em}.story-card p{max-width:490px;margin:20px 0 0;color:var(--mute);font-size:1rem;line-height:1.55}
/* The featured card and the home story panel stay dark in both schemes: they
   are photographs with type laid over them, and a photograph has no light mode. */
.story-card-featured{position:relative;min-height:610px;padding:0;overflow:hidden;color:#fff;background:#20123f;border-color:#20123f}.story-card-featured>img{position:absolute;width:100%;height:100%;object-fit:cover;filter:brightness(.72)}.story-card-featured>span{position:relative;z-index:1;width:100%;padding:38px;background:linear-gradient(transparent 25%,rgba(15,7,32,.66))}.story-card-featured small,.story-card-featured p{color:rgba(255,255,255,.78)}
.article-shell{max-width:940px;padding:clamp(85px,12vw,150px) 0 120px}.article-header{max-width:870px;margin-bottom:76px}.back-link{display:inline-block;margin-bottom:44px;color:var(--mute);font-size:.82rem;text-decoration:none}.back-link:hover{text-decoration:underline}.article-header h1{font-size:clamp(4rem,9vw,7.3rem)}.article-lede{max-width:720px;margin:32px 0 0;color:var(--accent);font-size:clamp(1.45rem,3vw,2.35rem);line-height:1.25;letter-spacing:-.04em}.article-meta{margin:32px 0 0;color:var(--mute);font-size:.78rem}.article-image{margin:0 0 78px}.article-image img{width:100%;max-height:600px;border-radius:34px;object-fit:cover}.article-body{max-width:690px;margin-inline:auto}.article-body p{margin:0 0 28px;color:var(--dim);font-size:1.18rem;line-height:1.75;letter-spacing:-.012em}.article-body .article-opening{margin-bottom:48px;font-size:clamp(1.5rem,3vw,2.1rem);line-height:1.45;letter-spacing:-.035em}.article-body h2{margin:72px 0 22px;font-size:clamp(2rem,4vw,3rem);line-height:1.05;letter-spacing:-.05em}.article-body code{padding:.12em .35em;border-radius:5px;background:var(--sunk);font-size:.88em}.article-signoff{padding-top:28px;font-weight:700}.article-body .affiliation-note{margin-top:72px;padding-top:22px;border-top:1px solid var(--rule);color:var(--mute);font-size:.78rem;line-height:1.6}.article-next{display:flex;align-items:end;justify-content:space-between;gap:24px;max-width:690px;margin:95px auto 0;padding-top:28px;border-top:1px solid var(--rule)}.article-next span{color:var(--mute);font-size:.76rem}.article-next a{font-size:1.1rem;font-weight:700;text-decoration:none}.article-next a:hover{text-decoration:underline}

@media(max-width:900px){.document-shell{grid-template-columns:1fr}.document-aside{position:static;display:flex;flex-wrap:wrap;gap:9px 16px}.document-aside p{width:100%;margin:0}.document-aside a{margin:0}.editorial-grid{grid-template-columns:180px 1fr;gap:60px}.story-list{grid-template-columns:1fr}.story-card{min-height:300px}.story-card-featured{min-height:580px}}
@media(max-width:580px){.site-header,.site-footer,.document-shell,.editorial-shell,.journal-shell,.article-shell{width:calc(100% - 32px)}.site-header{height:72px}.header-nav{gap:16px}.header-nav a{font-size:.8rem}.header-nav a:last-child{display:none}.site-footer{grid-template-columns:1fr;align-content:center;padding:35px 0}.site-footer nav{justify-content:flex-start}.site-footer>p{grid-column:auto;margin:0}.support-grid{grid-template-columns:1fr}.editorial-hero{padding:80px 0 58px}.editorial-hero h1,.journal-header h1,.article-header h1{font-size:clamp(3.3rem,15vw,4.5rem)}.editorial-dek{font-size:1.28rem}.story-banner{margin-bottom:75px}.story-banner img{height:82vw;border-radius:24px}.editorial-grid{grid-template-columns:1fr;row-gap:16px;padding-bottom:80px}.editorial-grid div{margin-bottom:35px}.editorial-grid p{font-size:1.16rem}.editorial-cta{align-items:flex-start;flex-direction:column;margin-bottom:75px;padding:30px;border-radius:22px}.journal-shell{padding:75px 0 85px}.journal-header{margin-bottom:60px}.story-card,.story-card-featured{min-height:410px;padding:28px;border-radius:24px}.story-card-featured{padding:0}.story-card-featured>span{padding:28px}.article-shell{padding:72px 0 85px}.article-header{margin-bottom:54px}.article-image{margin-bottom:55px}.article-image img{min-height:340px;border-radius:24px}.article-body p{font-size:1.08rem;line-height:1.7}.article-body h2{margin-top:58px}.article-next{align-items:flex-start;flex-direction:column}.article-next a{font-size:1rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.loader{animation:none}}

/* ============================================================
   Home. Flat, typographic, hard-edged: the page ground and its
   inverse alternating down the page. One accent.
   ============================================================ */
.home .site-bar,.home .stage,.home .argument,.home .how,.home .superport,.home .close,.home .site-foot{width:min(calc(100% - 48px),var(--max));margin-inline:auto}
/* The sticky bar overlaps whatever a #how or #superport jump lands on, so
   anchored sections reserve its height. The base rule uses overflow-x:clip, not
   hidden: hidden would make html a scroll container and kill sticky outright. */
.home section{position:relative;scroll-margin-top:86px}

.site-bar{position:sticky;top:0;z-index:20;height:86px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:32px;background:var(--bg);box-shadow:0 0 0 100vmax var(--bg);clip-path:inset(0 -100vmax)}
.site-mark{display:inline-flex;align-items:baseline;gap:9px;text-decoration:none;font-size:1.18rem;font-weight:820;letter-spacing:-.04em}
.site-mark img{width:25px;height:29px;align-self:center;filter:var(--mark)}
.site-mark small{color:var(--faint);font-size:.72rem;font-weight:600;letter-spacing:-.01em}
.site-bar nav{display:flex;justify-content:center;gap:30px}
.site-bar nav a{color:var(--mute);font-size:.85rem;text-decoration:none}
.site-bar nav a:hover{color:var(--fg)}
.site-bar-cta{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:0 17px;border-radius:999px;color:var(--bg);background:var(--fg);text-decoration:none;font-size:.82rem;font-weight:750;letter-spacing:-.01em}
.site-bar-cta:hover{color:#fff;background:var(--accent)}

.stage{padding:clamp(72px,11vh,130px) 0 clamp(90px,12vh,140px)}
.stage h1{max-width:16ch;margin:0;font-size:clamp(3.2rem,9.4vw,8.6rem);line-height:.87;letter-spacing:-.065em;font-weight:770}
.stage h1 em{color:var(--accent);font-style:normal}
.stage-dek{max-width:56ch;margin:34px 0 0;color:var(--dim);font-size:clamp(1.08rem,1.7vw,1.42rem);line-height:1.5;letter-spacing:-.018em}
.stage-act{display:flex;align-items:center;gap:30px;margin-top:46px}
.stage-act>p{margin:0;color:var(--mute);font-size:.82rem;line-height:1.7}
.stage-act code{color:var(--dim);font-family:ui-monospace,SFMono-Regular,"Cascadia Mono",Menlo,monospace;font-size:.86em;letter-spacing:.02em}

.argument{padding:clamp(90px,12vw,150px) 0;box-shadow:0 0 0 100vmax var(--bg);clip-path:inset(0 -100vmax)}
.argument-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(40px,7vw,110px)}
.argument-grid h2{margin:0;font-size:clamp(2.5rem,5.4vw,4.4rem);line-height:.94;letter-spacing:-.055em;font-weight:760}
.argument-body p{margin:0 0 22px;color:var(--dim);font-size:clamp(1.05rem,1.5vw,1.24rem);line-height:1.6;letter-spacing:-.015em}
.argument-body p:last-child{margin-bottom:0}
.argument-body strong{color:var(--fg)}
.swap{display:grid;grid-template-columns:1fr 60px 1fr;align-items:stretch;margin-top:clamp(56px,8vw,100px);border:1px solid var(--hard)}
.swap>div{display:flex;flex-direction:column;justify-content:flex-end;min-height:250px;padding:30px}
.swap>div:first-child{border-right:1px solid var(--hard)}
/* Inverts once more against the slab it sits in, so it reads as the answer. */
.swap-new{--bg:var(--alt-bg);--fg:var(--alt-fg);--dim:var(--alt-dim);--mute:var(--alt-mute);--accent:var(--alt-accent);color:var(--fg);background:var(--bg);border-left:1px solid var(--hard)}
.swap small{margin-bottom:auto;color:var(--mute);font-size:.68rem;font-weight:760;letter-spacing:.15em;text-transform:uppercase}
.swap-new small{color:var(--accent)}
.swap strong{font-size:clamp(1.9rem,3.6vw,3rem);line-height:1;letter-spacing:-.05em;font-weight:760}
.swap span{margin-top:11px;color:var(--mute);font-size:.92rem}
.swap>p{display:grid;place-items:center;margin:0;border-block:1px solid var(--hard);font-size:1.5rem}

.section-tag{margin:0 0 26px;color:var(--accent);font-size:.68rem;font-weight:760;letter-spacing:.16em;text-transform:uppercase}
.how{padding:clamp(90px,12vw,150px) 0}
.how h2{margin:0;font-size:clamp(2.6rem,6vw,5rem);line-height:.92;letter-spacing:-.06em;font-weight:760}
.steps{list-style:none;margin:clamp(50px,7vw,84px) 0 0;padding:0;border-top:1px solid var(--rule)}
.steps li{display:grid;grid-template-columns:78px minmax(0,300px) minmax(0,1fr);align-items:baseline;gap:28px;padding:34px 0;border-bottom:1px solid var(--rule)}
.steps span{color:var(--faint);font-size:.78rem;font-weight:760;letter-spacing:.12em}
.steps strong{font-size:clamp(2rem,3.4vw,2.9rem);line-height:1;letter-spacing:-.05em;font-weight:760}
.steps p{margin:0;color:var(--dim);font-size:1.02rem;line-height:1.55}
.how-foot{max-width:62ch;margin:44px 0 0;color:var(--dim);font-size:clamp(1.1rem,1.9vw,1.5rem);line-height:1.45;letter-spacing:-.025em}

.superport{padding:clamp(90px,12vw,150px) 0;background:var(--sunk);box-shadow:0 0 0 100vmax var(--sunk);clip-path:inset(0 -100vmax)}
.superport h2{max-width:18ch;margin:0;font-size:clamp(2.6rem,6vw,5rem);line-height:.92;letter-spacing:-.06em;font-weight:760}
.superport-dek{max-width:58ch;margin:28px 0 0;color:var(--dim);font-size:clamp(1.08rem,1.7vw,1.4rem);line-height:1.5;letter-spacing:-.02em}
.superport-set{display:flex;flex-wrap:wrap;gap:12px;margin:clamp(46px,6vw,70px) 0 0;padding:0}
.superport-set span{padding:15px 22px;border:1px solid var(--hard);font-family:ui-monospace,SFMono-Regular,"Cascadia Mono",Menlo,monospace;font-size:clamp(.9rem,1.6vw,1.15rem);font-weight:600;letter-spacing:.04em}
.superport-act{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:26px;margin-top:clamp(46px,6vw,70px);padding-top:34px;border-top:1px solid var(--rule)}
.superport-act p{margin:0;font-size:clamp(1.3rem,2.4vw,1.9rem);line-height:1.25;letter-spacing:-.04em}
.superport-act p strong{font-weight:760}
.superport-act a{display:inline-flex;align-items:center;gap:8px;min-height:52px;padding:0 26px;border-radius:999px;color:var(--bg);background:var(--fg);text-decoration:none;font-size:.94rem;font-weight:730}
.superport-act a:hover{color:#fff;background:var(--accent)}
.superport-note{margin:24px 0 0;color:var(--mute);font-size:.84rem;line-height:1.6}

.story{display:grid;grid-template-columns:1.05fr .95fr;align-items:stretch;min-height:640px;color:#fff;background:#07060c;box-shadow:0 0 0 100vmax #07060c;clip-path:inset(0 -100vmax)}
.story-image{position:relative;overflow:hidden}
.story-image img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.story-copy{display:flex;flex-direction:column;justify-content:center;padding:clamp(70px,9vw,110px) 0 clamp(70px,9vw,110px) clamp(36px,6vw,90px)}
.story-copy .section-tag{color:#9a7bff}
.story-copy h2{margin:0 0 26px;font-size:clamp(2.4rem,5vw,4.2rem);line-height:.94;letter-spacing:-.06em;font-weight:760}
.story-copy p{margin:0 0 18px;max-width:46ch;color:#a5a2b2;font-size:1.05rem;line-height:1.6}
.story-copy a{align-self:flex-start;margin-top:22px;padding-bottom:4px;border-bottom:1px solid rgba(255,255,255,.35);text-decoration:none;font-size:.98rem;font-weight:700}
.story-copy a:hover{border-color:#fff}

.close{display:flex;flex-direction:column;align-items:center;padding:clamp(100px,14vw,180px) 0;text-align:center}
.close h2{max-width:14ch;margin:0;font-size:clamp(3rem,9vw,7.5rem);line-height:.88;letter-spacing:-.065em;font-weight:770}
.close>p{margin:26px 0 46px;color:var(--dim);font-size:clamp(1.1rem,1.8vw,1.45rem);letter-spacing:-.02em}
.close .store-badge img{width:222px}

.site-foot{min-height:230px;display:grid;grid-template-columns:1fr auto;align-items:center;gap:26px;padding:56px 0 34px;border-top:1px solid var(--rule)}
.site-foot .site-mark{margin-bottom:14px}
.site-foot>div p{margin:0;color:var(--mute);font-size:.82rem;line-height:1.7}
.site-foot nav{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:20px}
.site-foot nav a{color:var(--mute);text-decoration:none;font-size:.84rem}
.site-foot nav a:hover{color:var(--fg)}
.site-foot>p{grid-column:1/-1;margin:34px 0 0;color:var(--faint);font-size:.76rem}

@media(max-width:960px){
  .argument-grid{grid-template-columns:1fr;gap:34px}
  .swap{grid-template-columns:1fr}
  .swap>div:first-child{border-right:0;border-bottom:1px solid var(--hard)}
  .swap-new{border-left:0}
  .swap>p{border-block:0;padding:12px 0;transform:rotate(90deg)}
  .steps li{grid-template-columns:60px minmax(0,1fr)}
  .steps p{grid-column:2}
  .story{grid-template-columns:1fr}
  .story-image{min-height:430px}
  .story-copy{padding:clamp(60px,9vw,90px) 0}
}
@media(max-width:640px){
  .home .site-bar,.home .stage,.home .argument,.home .how,.home .superport,.home .close,.home .site-foot{width:calc(100% - 32px)}
  .site-bar{height:70px;grid-template-columns:1fr auto;gap:14px}
  .home section{scroll-margin-top:70px}
  .site-bar nav{display:none}
  .site-mark small{display:none}
  .site-bar-cta{min-height:36px;padding:0 14px;font-size:.76rem}
  .stage{padding:56px 0 74px}
  .stage h1{font-size:clamp(2.7rem,13vw,4.2rem);line-height:.9}
  .stage-dek{margin-top:26px;font-size:1.04rem}
  .stage-act{align-items:flex-start;flex-direction:column;gap:20px;margin-top:36px}
  .store-badge img{width:180px}
  .argument,.how,.superport{padding:80px 0}
  .argument-grid h2,.how h2,.superport h2,.story-copy h2{font-size:clamp(2.3rem,10.5vw,3.3rem)}
  .swap{margin-top:50px}
  .swap>div{min-height:190px;padding:24px}
  .steps{margin-top:44px}
  .steps li{gap:6px 16px;padding:26px 0}
  .steps strong{font-size:2rem}
  .steps p{margin-top:8px;font-size:.98rem}
  .how-foot{margin-top:34px;font-size:1.1rem}
  .superport-set{gap:9px;margin-top:44px}
  .superport-set span{width:100%;padding:14px 17px}
  .superport-act{align-items:flex-start;flex-direction:column;gap:22px;margin-top:44px}
  .superport-act a{width:100%;justify-content:center}
  .story-image{min-height:330px}
  .close{padding:86px 0}
  .close h2{font-size:clamp(2.7rem,13vw,4.2rem)}
  .close>p{margin:22px 0 34px;font-size:1.05rem}
  .close .store-badge img{width:200px}
  .site-foot{min-height:auto;grid-template-columns:1fr;align-items:start;padding:44px 0 28px}
  .site-foot nav{justify-content:flex-start}
  .site-foot>p{margin-top:8px}
}

/* ============================================================
   /send — the page a shared Port link lands on.
   ============================================================ */
.link-page{min-height:100svh;display:flex;flex-direction:column;background:var(--ground)}
.link-page .site-bar,.link-shell,.link-foot{width:min(calc(100% - 40px),640px);margin-inline:auto}
.link-page .site-bar{position:static;grid-template-columns:auto;background:transparent;box-shadow:none;clip-path:none}
.link-shell{flex:1;display:flex;flex-direction:column;justify-content:center;padding:40px 0 64px}
.port-panel{padding:44px 38px 36px;border:1px solid var(--hard);background:var(--surface);text-align:center;overflow-wrap:anywhere}
.panel-eyebrow{margin:0 0 10px;color:var(--accent);font-size:.66rem;font-weight:760;letter-spacing:.16em;text-transform:uppercase}
.panel-meta{margin:10px 0 0;color:var(--mute);font-size:.88rem;font-weight:600}
.panel-hint{margin:16px auto 0;max-width:38ch;color:var(--mute);font-size:.82rem;line-height:1.55}
.panel-secondary{display:inline-block;margin-top:26px;padding-bottom:3px;border-bottom:1px solid var(--rule);color:var(--fg);text-decoration:none;font-size:.9rem;font-weight:650}
.panel-secondary:hover{border-color:var(--fg)}
.port-panel h1{margin:16px 0 0;font-size:clamp(1.9rem,6vw,2.7rem);line-height:1.02;letter-spacing:-.05em;font-weight:760}
.port-panel h1 span{color:var(--accent)}
.panel-copy{margin:18px auto 0;max-width:44ch;color:var(--dim);font-size:1rem;line-height:1.55}
.profile-avatar,.avatar-fallback{width:96px;height:96px;margin:0 auto 22px;border-radius:50%;object-fit:cover}
.avatar-fallback{display:grid;place-items:center;background:var(--tint)}
.avatar-fallback img{width:36px;filter:var(--mark)}
.profile-id{margin:0;color:var(--faint);font-family:ui-monospace,SFMono-Regular,"Cascadia Mono",Menlo,monospace;font-size:.8rem;font-weight:600;letter-spacing:.1em}
.port-panel .store-badge{margin:30px auto 0;width:max-content}
.port-panel .store-badge img{width:186px}
.ios-note{margin-top:30px;padding:24px 22px;border:1px solid var(--rule);background:var(--ground);text-align:left}
.ios-note strong{display:block;margin-bottom:10px;font-size:1.05rem;letter-spacing:-.02em}
.ios-note p{margin:0 0 12px;color:var(--dim);font-size:.94rem;line-height:1.6}
.ios-note p:last-child{margin-bottom:0}
.panel-share{margin-top:24px;padding:9px 4px;border:0;color:var(--mute);background:transparent;font:inherit;font-size:.9rem;font-weight:650;cursor:pointer}
.panel-share:hover{color:var(--fg);text-decoration:underline}
.panel-action{display:inline-flex;align-items:center;justify-content:center;min-height:52px;margin-top:30px;padding:0 30px;border-radius:999px;color:var(--bg);background:var(--fg);text-decoration:none;font-size:.94rem;font-weight:730}
.panel-action:hover{color:#fff;background:var(--accent)}
.loader{display:block;width:28px;height:28px;margin:34px auto 18px;border:2px solid var(--rule);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
.link-foot{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:66px;border-top:1px solid var(--rule)}
.link-foot p{margin:0;color:var(--faint);font-size:.76rem}
.link-foot nav{display:flex;gap:18px}
.link-foot nav a{color:var(--mute);text-decoration:none;font-size:.8rem}
.link-foot nav a:hover{color:var(--fg)}
@media(max-width:520px){.link-page .site-bar,.link-shell,.link-foot{width:calc(100% - 32px)}.link-shell{padding:24px 0 44px}.port-panel{padding:34px 22px 28px}.port-panel h1{font-size:clamp(1.75rem,8vw,2.2rem)}.panel-copy{font-size:.96rem}.port-panel .store-badge img{width:170px}.ios-note{padding:20px 18px}}
