@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 300;
  src: url(fonts/ibm-plex-sans-latin-ext-300-normal.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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 300;
  src: url(fonts/ibm-plex-sans-latin-300-normal.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: 'IBM Plex Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(fonts/ibm-plex-sans-latin-ext-400-normal.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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(fonts/ibm-plex-sans-latin-400-normal.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: 'IBM Plex Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url(fonts/ibm-plex-sans-latin-ext-500-normal.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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url(fonts/ibm-plex-sans-latin-500-normal.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: 'IBM Plex Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src: url(fonts/ibm-plex-sans-latin-ext-600-normal.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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src: url(fonts/ibm-plex-sans-latin-600-normal.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: 'IBM Plex Sans';
  font-style: italic;
  font-display: swap;
  font-weight: 400;
  src: url(fonts/ibm-plex-sans-latin-ext-400-italic.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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face {
  font-family: 'IBM Plex Sans';
  font-style: italic;
  font-display: swap;
  font-weight: 400;
  src: url(fonts/ibm-plex-sans-latin-400-italic.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: 'IBM Plex Mono';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(fonts/ibm-plex-mono-latin-ext-400-normal.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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(fonts/ibm-plex-mono-latin-400-normal.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: 'IBM Plex Mono';
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url(fonts/ibm-plex-mono-latin-ext-500-normal.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-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url(fonts/ibm-plex-mono-latin-500-normal.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;
}
:root{
  --bg:#0a0e13; --surface:#10161e; --line:#1f2a36; --text:#e6ecf1; --muted:#8d9aa8;
  --cyan:#5cc4b2; --amber:#ffb547; --green:#5ad68a;
  --sans:'IBM Plex Sans',system-ui,-apple-system,'Segoe UI',Helvetica,Arial,sans-serif;
  --mono:'IBM Plex Mono',ui-monospace,Menlo,Consolas,monospace;
  --w:min(72rem,calc(100% - 3rem));
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:5rem}
body{margin:0;background:var(--bg);color:var(--text);font:400 1.0625rem/1.65 var(--sans)}
img{max-width:100%;height:auto;display:block}
a{color:var(--cyan)}
:focus-visible{outline:2px solid var(--cyan);outline-offset:3px}
.skip{position:absolute;left:-999px;top:0;background:var(--cyan);color:var(--bg);padding:.5rem 1rem;z-index:20}
.skip:focus{left:1rem}

/* header */
.head{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:1.5rem;padding:.9rem max(1.5rem,calc((100% - 72rem)/2));
  background:rgba(10,14,19,.86);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.has-hero .head{position:fixed;left:0;right:0;background:linear-gradient(rgba(10,14,19,.75),rgba(10,14,19,0));border-bottom-color:transparent;backdrop-filter:none;-webkit-backdrop-filter:none}
.has-hero .head.scrolled{background:rgba(10,14,19,.9);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom-color:var(--line)}
.brand{display:inline-flex;align-items:center;text-decoration:none;color:var(--text);margin:0;line-height:0}
.brand img{height:46px;width:auto;border-radius:3px}
.brand--foot img{height:52px}
.brand-mark{font:500 1.15rem var(--mono);letter-spacing:.18em}
.brand-sub{font:400 .95rem var(--sans);color:var(--muted)}
.head nav{margin-left:auto;display:flex;gap:1.6rem;flex-wrap:wrap}
.head nav a{color:var(--muted);text-decoration:none;font-size:.92rem;padding:.3rem 0;border-bottom:1px solid transparent}
.head nav a:hover{color:var(--text)}
.head nav a[aria-current=page]{color:var(--text);border-color:var(--cyan)}
.menu-btn{display:none;margin-left:auto;font:500 .85rem var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--text);
  background:none;border:1px solid var(--line);padding:.45rem .8rem;border-radius:2px;cursor:pointer}

/* type helpers */
.label{font:500 .78rem var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--cyan);margin:0 0 1rem}
.lede{font-size:clamp(1.1rem,1.8vw,1.3rem);line-height:1.55;color:#c5d0da;max-width:38em;margin:0}
.big{font-size:clamp(1.3rem,2.4vw,1.75rem);line-height:1.4;font-weight:300;margin:0 0 1.25rem;max-width:30em}

/* hero */
.hero{position:relative;min-height:min(92vh,56rem);display:flex;align-items:flex-end;overflow:hidden}
.hero picture,.hero-img{position:absolute;inset:0;width:100%;height:100%}
.hero-img{object-fit:cover;object-position:60% 50%}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(10,14,19,.94) 0%,rgba(10,14,19,.7) 45%,rgba(10,14,19,.15) 100%),linear-gradient(0deg,var(--bg) 0%,rgba(10,14,19,0) 35%)}
.hero-text{position:relative;z-index:1;width:var(--w);margin:0 auto;padding:9rem 0 5rem}
.hero h1{font:300 clamp(2.6rem,6.4vw,5.4rem)/1.02 var(--sans);letter-spacing:-.02em;margin:0 0 1.5rem;max-width:12em;text-wrap:balance}
.cta{display:flex;flex-wrap:wrap;gap:.9rem;margin:2.25rem 0 0}
.btn{display:inline-block;font:500 .95rem var(--sans);text-decoration:none;color:var(--bg);background:var(--cyan);padding:.75rem 1.3rem;border-radius:2px}
.btn:hover{background:#86d8ca}
.btn--ghost{background:transparent;color:var(--text);border:1px solid #3a4756}
.btn--ghost:hover{background:rgba(255,255,255,.06)}

/* sections */
.band{width:var(--w);margin:0 auto;padding:6rem 0 0}
.band--tight{padding-top:4rem}
.split{display:grid;grid-template-columns:14rem 1fr;gap:2rem;border-top:1px solid var(--line);padding-top:1.5rem}
.split p:not(.label):not(.big){color:#c5d0da;max-width:38em;margin:0}
.focus{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(17rem,1fr));gap:1px;background:var(--line);border:1px solid var(--line)}
.focus li{background:var(--bg);padding:2rem 1.75rem 2.25rem}
.focus h2{font:500 1.25rem/1.3 var(--sans);margin:0 0 .75rem}
.focus p{color:var(--muted);margin:0}
.wide{margin:6rem 0 0;height:min(70vh,40rem);overflow:hidden;border-block:1px solid var(--line)}
.wide img{width:100%;height:100%;object-fit:cover}
.wide--short{height:min(50vh,28rem);margin-top:4rem}
.tiles{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:1rem}
.tiles a{display:flex;flex-direction:column;height:100%;padding:1.5rem 1.5rem 1.75rem;background:var(--surface);border:1px solid var(--line);text-decoration:none;color:var(--text);transition:border-color .2s}
.tiles a:hover{border-color:var(--cyan)}
.tile-k{font:500 .8rem var(--mono);color:var(--cyan);margin-bottom:2.5rem}
.tile-t{font:500 1.2rem/1.3 var(--sans);margin-bottom:.5rem}
.tile-d{color:var(--muted);font-size:.95rem}

/* inner pages */
.page-head{width:var(--w);margin:0 auto;padding:5rem 0 0}
.page-head h1{font:300 clamp(2.2rem,5vw,3.8rem)/1.08 var(--sans);letter-spacing:-.015em;margin:0 0 1.25rem;max-width:16em}
.values,.goals{margin:0;padding:0;list-style:none}
.values{display:flex;flex-wrap:wrap;gap:.6rem}
.values li{font-size:.98rem;border:1px solid var(--line);padding:.5rem .9rem;border-radius:2px}
.goals{counter-reset:g}
.goals li{counter-increment:g;display:grid;grid-template-columns:2.75rem 1fr;padding:1rem 0;border-bottom:1px solid var(--line);color:#c5d0da}
.goals li::before{content:counter(g,decimal-leading-zero);font:500 .85rem/1.9 var(--mono);color:var(--cyan)}
.cards{list-style:none;margin:0;padding:0;display:grid;gap:1rem}
.card{background:var(--surface);border:1px solid var(--line);padding:2rem 2rem 1.75rem}
.card h2{font:500 1.45rem/1.25 var(--sans);margin:.75rem 0 .75rem}
.card p{margin:0;color:#c5d0da;max-width:46em}
.tags{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.25rem!important}
.tags span{font:400 .78rem var(--mono);color:var(--muted);border:1px solid var(--line);padding:.25rem .55rem;border-radius:2px}
.status{display:inline-flex;align-items:center;gap:.5rem;font:500 .74rem var(--mono);letter-spacing:.12em;text-transform:uppercase;margin:0}
.status::before{content:"";width:.5rem;height:.5rem;border-radius:50%;background:currentColor}
.status--green{color:var(--green)}.status--amber{color:var(--amber)}.status--cyan{color:var(--cyan)}
.pubs,.talks{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.pub{padding:1.75rem 0;border-bottom:1px solid var(--line)}
.pub-meta{display:flex;gap:1.25rem;align-items:center;margin:0 0 .6rem}
.year{font:400 .85rem var(--mono);color:var(--muted)}
.pub h2{font:500 1.25rem/1.35 var(--sans);margin:0 0 .4rem;max-width:42em}
.pub-auth,.pub-src{margin:0;color:var(--muted);font-size:.98rem}
.talk{display:grid;grid-template-columns:8rem 1fr;gap:1.5rem;padding:1.75rem 0;border-bottom:1px solid var(--line)}
.talk-when{font:500 .95rem var(--mono);color:var(--cyan);margin:0}
.talk h2{font:500 1.3rem/1.3 var(--sans);margin:0}
.talk h2 span{font-weight:300;color:var(--muted);margin-left:.4rem}
.talk-kind{font:400 .8rem var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:.35rem 0 .6rem}
.talk p:last-child{margin:0;color:#c5d0da;max-width:42em}
.notice{border:1px solid var(--line);background:var(--surface);padding:2rem}
.notice p{margin:0 0 1.25rem;color:#c5d0da;max-width:40em}
.notice p:last-child{margin:0}

/* footer */
.foot{margin-top:7rem;border-top:1px solid var(--line)}
.foot-inner{width:var(--w);margin:0 auto;padding:3rem 0 2rem;display:flex;flex-wrap:wrap;justify-content:space-between;gap:2rem}
.foot-text{color:var(--muted);margin:.5rem 0 0;font-size:.95rem}
.foot-links{display:flex;flex-direction:column;gap:.5rem;font-size:.95rem}
.foot-links a{color:var(--text);text-decoration:none}
.foot-links a:hover{color:var(--cyan)}
.foot-legal{width:var(--w);margin:0 auto;padding:0 0 2.5rem;font:400 .8rem var(--mono);color:var(--muted)}

@media (max-width:900px){
  .menu-btn{display:block}
  .head nav{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;gap:0;background:rgba(10,14,19,.97);border-bottom:1px solid var(--line);padding:.5rem 1.5rem 1rem}
  .head nav.open{display:flex}
  .head nav a{padding:.7rem 0;border-bottom:1px solid var(--line);font-size:1rem}
  .split{grid-template-columns:1fr;gap:.25rem}
  .talk{grid-template-columns:1fr;gap:.5rem}
  .hero::after{background:linear-gradient(0deg,var(--bg) 8%,rgba(10,14,19,.75) 55%,rgba(10,14,19,.35) 100%)}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}

/* TBD */
.tbd{display:flex;align-items:center;gap:1.5rem;border:1px dashed #33414f;padding:2rem}
.tbd-code{font:500 1.6rem var(--mono);letter-spacing:.2em;color:var(--amber)}
.tbd p{margin:0;color:#c5d0da}

/* writings list */
.w-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.w-item a{display:grid;grid-template-columns:11rem 1fr;gap:1.75rem;align-items:center;padding:1.5rem 0;border-bottom:1px solid var(--line);text-decoration:none;color:var(--text)}
.w-item img{width:100%;aspect-ratio:3/2;object-fit:cover;border:1px solid var(--line);filter:saturate(.9)}
.w-item h2{font:500 1.2rem/1.35 var(--sans);margin:0 0 .5rem;max-width:40em}
.w-item a:hover h2{color:var(--cyan)}
.w-meta{margin:0;color:var(--muted);font-size:.92rem}
.w-meta span{margin-left:.9rem;font:400 .82rem var(--mono)}
.w-lang{color:var(--amber)!important}

/* article */
.art{width:min(44rem,calc(100% - 3rem));margin:0 auto;padding:4.5rem 0 0}
.art-head .label a{color:inherit;text-decoration:none}
.art h1{font:400 clamp(1.9rem,4.4vw,2.8rem)/1.15 var(--sans);letter-spacing:-.01em;margin:0 0 1rem;text-wrap:balance}
.art-cover{margin:2.25rem 0 2.5rem}
.art-cover img{width:100%;height:auto;border:1px solid var(--line)}
.art-body{font-size:1.08rem;line-height:1.75;color:#d4dde5}
.art-body p{margin:0 0 1.15em}
.art-body strong{color:var(--text);font-weight:600}
.art-body h2,.art-body h3{font:500 1.3rem/1.3 var(--sans);color:var(--text);margin:2em 0 .6em}
.art-body figure{margin:2rem 0}
.art-body figure img{width:100%;height:auto;border:1px solid var(--line)}
.art-body ul,.art-body ol{padding-left:1.25rem;margin:0 0 1.15em}
.art-body li{margin:.3em 0}
.art-body a{word-break:break-word}
.art-body blockquote{margin:1.5em 0;padding-left:1.25rem;border-left:2px solid var(--cyan);color:#c5d0da}
.art-body table{width:100%;border-collapse:collapse;font-size:.95rem;margin:1.5em 0;display:block;overflow-x:auto}
.art-body td,.art-body th{border:1px solid var(--line);padding:.5rem .7rem;text-align:left;vertical-align:top}
.pager{width:min(44rem,calc(100% - 3rem));margin:3.5rem auto 0;display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;border-top:1px solid var(--line);padding-top:1.25rem}
.pager a{text-decoration:none;color:var(--text);font-size:.98rem;line-height:1.4}
.pager a span{display:block;font:500 .75rem var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--cyan);margin-bottom:.35rem}
.pager .next{text-align:right}
.pager a:hover{color:var(--cyan)}

/* prose (policy) */
.prose{max-width:44rem}
.prose h2{font:500 1.25rem/1.3 var(--sans);margin:2.25rem 0 .6rem}
.prose h2:first-child{margin-top:0}
.prose p{color:#c5d0da;margin:0 0 1em}

/* cookie notice */
.cookie{position:fixed;left:0;right:0;bottom:0;z-index:30;background:#f4f7f9;color:#1b2530;box-shadow:0 -10px 30px rgba(0,0,0,.35)}
.cookie-inner{position:relative;width:var(--w);margin:0 auto;padding:1.4rem 3rem 1.4rem 0;display:grid;grid-template-columns:1fr auto;gap:.5rem 2.5rem;align-items:center}
.cookie-title{grid-column:1;font:600 1.15rem var(--sans);margin:0}
.cookie-text{grid-column:1;margin:0;font-size:.95rem;line-height:1.55;color:#2c3a47;max-width:52em}
.cookie-text a{color:#1d5c7a;font-weight:500}
.cookie-actions{grid-column:2;grid-row:1/3;display:flex;flex-direction:column;align-items:center;gap:.6rem;padding-left:2rem;border-left:1px solid #d3dbe2}
.cookie-actions .btn{background:#1d4f6e;color:#fff;min-width:11rem;text-align:center;font-weight:600;letter-spacing:.04em;text-transform:uppercase;border:0;cursor:pointer}
.cookie-actions .btn:hover{background:#163f58}
.cookie-more{color:#4a5866;font-size:.92rem;text-decoration:none}
.cookie-more:hover{text-decoration:underline}
.cookie-x{position:absolute;right:0;top:50%;transform:translateY(-50%);background:none;border:0;font-size:1.8rem;line-height:1;color:#2c3a47;cursor:pointer;padding:.25rem .5rem}
@media (max-width:760px){
  .w-item a{grid-template-columns:6.5rem 1fr;gap:1rem}
  .cookie-inner{grid-template-columns:1fr;padding:1.25rem 2.5rem 1.25rem 0}
  .cookie-actions{grid-column:1;grid-row:auto;flex-direction:row;padding-left:0;border-left:0;margin-top:.5rem}
  .cookie-x{top:1rem;transform:none}
  .pager{grid-template-columns:1fr}.pager .next{text-align:left}
}

.focus--five{grid-template-columns:repeat(6,1fr)}
.focus--five li:nth-child(-n+3){grid-column:span 2}
.focus--five li:nth-child(n+4){grid-column:span 3}
@media (max-width:900px){.focus--five{grid-template-columns:1fr}.focus--five li{grid-column:auto!important}}
.focus .sub{font:500 .75rem var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--cyan);margin:-.4rem 0 .75rem}

/* intro video (home, once per visit) */
.intro{position:fixed;inset:0;z-index:50;background:#05080b;display:flex;align-items:center;justify-content:center;transition:opacity .7s ease}
.intro.out{opacity:0;pointer-events:none}
.intro video{width:100%;height:100%;object-fit:contain;background:#05080b}
.intro-ctrl{position:absolute;right:max(1.5rem,env(safe-area-inset-right));bottom:max(1.5rem,env(safe-area-inset-bottom));display:flex;gap:.6rem}
.intro-ctrl button{font:500 .8rem var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--text);background:rgba(10,14,19,.6);
  border:1px solid rgba(230,236,241,.35);padding:.55rem .9rem;border-radius:2px;cursor:pointer;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.intro-ctrl button:hover{border-color:var(--cyan);color:var(--cyan)}
