/* FlyScope homepage: ink, paper and lime; one heavy grotesk; schematic arbors. */
/* @font-face rules live in fonts.css */

:root{
  color-scheme:dark;
  --ink:#0e100f;--ink-2:#121413;--ink-3:#1b1e1c;
  --paper:#eff2ed;--white:#f4f4ef;--mute-d:#a9aba6;--mute-l:#4a4d4b;
  --lime:#d8fa4b;--lime-deep:#c9f03a;--lavender:#ada4e4;--violet:#b98cf2;--olive:#414c19;
  --font:"Inter Tight","PingFang SC","Hiragino Sans GB","Noto Sans SC","Microsoft YaHei",system-ui,sans-serif;
  --gutter:clamp(16px,2.4vw,48px);
  --hh:clamp(56px,4.1vw,72px);
  --foot-h:clamp(46px,3.4vw,58px);
  --strip:clamp(18px,2.1vw,40px);
  --ease:cubic-bezier(.22,1,.36,1);
  --fs-display:clamp(50px,min(8.6vw,14.2svh),168px);
  --fs-lead:clamp(19px,min(2.35vw,3.9svh),44px);
  --fs-body:clamp(17px,1.7vw,30px);
  --fs-btn:clamp(18px,1.78vw,32px);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:0;-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition-duration:0s!important;animation:none!important}}
body{margin:0;background:var(--ink);color:var(--white);font-family:var(--font);font-size:16px;line-height:1.4;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
a{color:inherit;text-decoration:none}
a[data-href]{cursor:pointer}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
h1,h2,h3,p,ol,ul,dl,dd,figure{margin:0;padding:0}
ol,ul{list-style:none}
[hidden]{display:none!important}
:focus-visible{outline:2px solid var(--lime);outline-offset:3px}
.findings :focus-visible,.explore :focus-visible,.data :focus-visible,.question :focus-visible,.paper :focus-visible{outline-color:var(--ink)}
.skip{position:fixed;left:16px;top:12px;z-index:100;background:var(--lime);color:var(--ink);padding:10px 14px;font-weight:700;transform:translateY(-200%)}
.skip:focus{transform:none}

.arrow{width:.8em;height:.8em;flex:none;fill:none;stroke:currentColor;stroke-width:2.3;stroke-linecap:square;vertical-align:-.04em}
.display{font-weight:800;letter-spacing:-.052em;line-height:.9;font-size:var(--fs-display)}
:lang(zh) .display,:lang(zh) .steps a,:lang(zh) .datasets a{letter-spacing:-.01em}
:lang(zh) .display{line-height:1.02}
.kicker{font-size:clamp(11px,.85vw,15px);font-weight:700;letter-spacing:.17em;text-transform:uppercase}
.kicker--lg{font-size:clamp(14px,1.4vw,24px);letter-spacing:-.005em}
.corner-label{font-size:clamp(10px,.86vw,14px);font-weight:500;letter-spacing:.15em;text-transform:uppercase}
.section-foot{display:flex;align-items:center;justify-content:space-between;gap:24px;border-top:1px solid currentColor;margin:0 var(--gutter);min-height:var(--foot-h)}

/* ── Header ─────────────────────────────────────────────── */
.site-header{position:fixed;inset:0 0 auto;height:var(--hh);z-index:40;color:var(--hd-fg);background:var(--hd-bg);transition:background-color .4s var(--ease),color .4s var(--ease)}
.site-header__inner{height:100%;display:flex;align-items:center;gap:clamp(18px,2.4vw,40px);margin:0 var(--gutter);border-bottom:1px solid var(--hd-line);transition:margin .45s var(--ease),border-color .4s}
.site-header{--hd-bg:var(--ink);--hd-fg:var(--white);--hd-line:rgba(244,244,239,.92);--hd-act-bg:var(--lime);--hd-act-fg:var(--ink);--nav-w:500}
.site-header[data-theme=band]{--hd-line:transparent}
.site-header[data-theme=light],.site-header[data-theme=strip]{--hd-bg:var(--paper);--hd-fg:var(--ink);--hd-line:var(--ink);--nav-w:650}
.site-header[data-theme=lime]{--hd-bg:var(--lime);--hd-fg:var(--ink);--hd-line:var(--ink);--hd-act-bg:var(--ink);--hd-act-fg:var(--lime);--nav-w:650}
.site-header[data-theme=strip]{background:linear-gradient(90deg,var(--lime) var(--strip),var(--paper) var(--strip))}
.site-header[data-theme=strip] .site-header__inner{margin-left:calc(var(--strip) + var(--gutter) * 1.15)}
.logo{font-size:clamp(22px,2.12vw,38px);font-weight:750;letter-spacing:-.035em;line-height:1}
.logo-sub{display:none;align-items:center;gap:clamp(14px,1.7vw,28px);font-size:clamp(14px,1.28vw,22px);font-weight:500;margin-left:calc(clamp(18px,2.4vw,40px) * -.2)}
.logo-sub::before{content:"";width:1px;height:clamp(26px,2.6vw,44px);background:currentColor;opacity:.85}
.site-header[data-theme=band] .logo-sub{display:flex}
.site-nav{display:flex;align-items:center;gap:clamp(10px,1.3vw,24px);margin-left:auto}
.site-nav a{font-size:clamp(14px,1.2vw,21px);font-weight:var(--nav-w);letter-spacing:-.01em;padding:.28em .5em;transition:background-color .3s,color .3s}
.site-nav a:hover{text-decoration:underline;text-underline-offset:.25em}
.site-nav a[aria-current=true]{background:var(--hd-act-bg);color:var(--hd-act-fg);text-decoration:none}
.site-header[data-theme=dark] .site-nav a[aria-current=true],.site-header[data-theme=band] .site-nav a[aria-current=true]{background:none;color:var(--lime)}
.site-header__rule{width:1px;align-self:stretch;margin:12px 0;background:currentColor;opacity:.85}
.header-cta{font-size:clamp(14px,1.13vw,20px)}
.site-header:not([data-top=true]) .site-header__rule,.site-header:not([data-top=true]) .header-cta{display:none}
.menu-toggle{display:none;align-items:center;gap:10px;font-weight:650;font-size:16px;min-height:44px;margin-left:auto}
.menu-toggle i{width:22px;height:10px;border-block:2px solid currentColor;transition:transform .3s}
.menu-toggle[aria-expanded=true] i{transform:scaleY(.2)}

.btn-outline{display:inline-flex;align-items:center;gap:.45em;border:1.5px solid currentColor;padding:.42em .7em;font-weight:650;letter-spacing:-.01em;line-height:1;transition:background .25s,color .25s}
.btn-outline:hover{background:var(--white);color:var(--ink)}
.btn-lime{display:inline-flex;align-items:center;justify-content:center;gap:.4em;background:var(--lime);color:var(--ink);font-weight:750;letter-spacing:-.025em;line-height:1;transition:background .25s,transform .4s var(--ease)}
.btn-lime:hover{background:#e6ff6e}
.btn-lime:active,.btn-ink:active{transform:scale(.985)}
.btn-ink{display:inline-flex;align-items:center;gap:.45em;background:var(--ink);color:var(--white);font-weight:650;font-size:clamp(17px,1.64vw,30px);letter-spacing:-.02em;padding:.6em .95em;line-height:1;transition:background .25s,transform .4s var(--ease)}
.btn-ink:hover{background:#2a2d2b}
.text-link{display:inline-flex;align-items:center;gap:.4em;font-weight:500;letter-spacing:-.015em;font-size:clamp(17px,1.64vw,30px)}
.text-link:hover span{text-decoration:underline;text-underline-offset:.22em;text-decoration-thickness:1.5px}
.text-link--ink{color:var(--ink);font-weight:750;font-size:clamp(19px,2.02vw,36px);letter-spacing:-.03em}

.mobile-menu{position:fixed;inset:var(--hh) 0 0;z-index:39;background:var(--ink);color:var(--white);padding:28px var(--gutter);display:flex;flex-direction:column;gap:28px;overflow:auto}
.mobile-menu nav{display:flex;flex-direction:column}
.mobile-menu nav a{font-size:34px;font-weight:750;letter-spacing:-.04em;padding:12px 0;border-bottom:1px solid rgba(244,244,239,.25)}
.mobile-menu .btn-lime{font-size:22px;min-height:60px}
.lang-switch{display:inline-flex;gap:4px;font-size:clamp(11px,.86vw,14px);letter-spacing:.12em;text-transform:uppercase;font-weight:600}
.lang-switch button{padding:8px 10px;min-height:36px;opacity:.6;transition:opacity .2s}
.lang-switch button[aria-pressed=true]{opacity:1;text-decoration:underline;text-underline-offset:.4em}
.lang-switch button:hover{opacity:1}
.lang-switch--header{gap:0;border:1.5px solid currentColor;font-size:clamp(11px,.78vw,13px);letter-spacing:.08em;flex:none}
.lang-switch--header button{min-height:0;padding:.5em .72em;opacity:1;line-height:1;transition:background-color .25s,color .25s}
.lang-switch--header button[aria-pressed=true]{background:var(--hd-fg);color:var(--hd-bg);text-decoration:none}
.site-header[data-theme=strip] .lang-switch--header button[aria-pressed=true]{color:var(--paper)}
.lang-switch--header button[aria-pressed=false]:hover{background:var(--hd-act-bg);color:var(--hd-act-fg)}

.art{position:absolute;inset:0;width:100%;height:100%;display:block}

/* ── 01 Hero ────────────────────────────────────────────── */
.hero{position:relative;min-height:max(100svh,620px);display:flex;flex-direction:column;background:var(--ink);overflow:hidden}
.hero__art{top:calc(var(--hh) + 2px);height:calc(100% - var(--hh) - 2px - var(--foot-h))}
.hero__copy{position:relative;z-index:1;flex:1;display:flex;flex-direction:column;justify-content:center;padding:calc(var(--hh) + 2vh) var(--gutter) 3vh;pointer-events:none}
.hero__copy a{pointer-events:auto}
.hero__meta{font-size:clamp(11px,.86vw,15px);font-weight:650;letter-spacing:.16em;text-transform:uppercase;color:var(--mute-d);margin-bottom:clamp(14px,2.6svh,30px)}
.hero__title{font-size:clamp(52px,min(8.45vw,13.6svh),168px);line-height:.885}
.hero__name{margin-top:clamp(24px,5.4svh,62px);font-size:clamp(22px,min(2.42vw,4svh),44px);font-weight:750;letter-spacing:-.035em;line-height:1.1}
.hero__lead{margin-top:clamp(8px,1.6svh,18px);font-size:clamp(18px,min(1.72vw,2.85svh),31px);line-height:1.18;letter-spacing:-.012em;max-width:22.8em;color:#efefe9}
.hero__actions{display:flex;align-items:center;flex-wrap:wrap;gap:clamp(18px,2.7vw,46px);margin-top:clamp(20px,4.2svh,46px)}
.btn-lime--hero{font-size:clamp(19px,min(1.8vw,3svh),33px);height:clamp(54px,min(4.3vw,7svh),78px);padding:0 1.05em}
.hero__foot{position:relative;z-index:1;color:var(--white)}
.hero__foot .kicker{font-size:clamp(11px,.88vw,15px)}
.scroll-cue{display:inline-flex;align-items:center;gap:.45em;font-size:clamp(14px,1.22vw,21px);font-weight:450}
.scroll-cue svg{width:1em;height:1em;fill:none;stroke:currentColor;stroke-width:1.8}
.scroll-cue:hover svg{transform:translateY(3px)}
.scroll-cue svg{transition:transform .3s var(--ease)}

/* ── 02 Explore ─────────────────────────────────────────── */
.explore{position:relative;background:var(--paper);color:var(--ink);min-height:max(100svh,700px);padding-left:var(--strip)}
.strip{position:absolute;inset:0 auto 0 0;width:var(--strip);background:var(--lime)}
.strip span{position:absolute;left:50%;top:calc(var(--hh) + 6px);transform:translateX(-50%) rotate(180deg);writing-mode:vertical-rl;font-size:clamp(12px,1.26vw,22px);font-weight:750;letter-spacing:-.01em;text-transform:uppercase;white-space:nowrap}
.explore__body{position:relative;padding:calc(var(--hh) + clamp(20px,3svh,40px)) var(--gutter) clamp(36px,3.2vw,52px) calc(var(--gutter) * 1.15)}
.explore__title{font-size:clamp(50px,min(8.4vw,13.6svh),164px);line-height:.86;margin-left:-.04em;white-space:nowrap}
.explore__lead{font-size:var(--fs-lead);font-weight:500;letter-spacing:-.03em;margin-top:.12em}
.app{margin-top:clamp(18px,3svh,34px);background:var(--ink-2);color:var(--white);display:flex;flex-direction:column;border:1px solid var(--ink-2);--rule:rgba(244,244,239,.42)}
.app__top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:clamp(8px,.62vw,12px) clamp(12px,1.4vw,24px);border-bottom:1px solid var(--rule)}
.app__select,.app__fit,.app__dropdown,.app__search{display:flex;align-items:center;gap:10px;border:1.5px solid rgba(244,244,239,.82);font-weight:600;font-size:clamp(13px,1.08vw,18px);min-height:clamp(34px,2.35vw,40px);padding:0 .85em;transition:border-color .2s,color .2s}
.app__select{width:clamp(160px,14.8vw,250px);justify-content:space-between}
.app__fit svg,.app__select svg,.app__dropdown svg,.app__search svg{width:1.15em;height:1.15em;fill:none;stroke:currentColor;stroke-width:1.8;flex:none}
.app__select:hover,.app__fit:hover,.app__dropdown:hover,.app__search:hover{border-color:var(--lime);color:var(--lime)}
.app__grid{display:grid;grid-template-columns:clamp(220px,18.6vw,320px) minmax(0,1fr) clamp(220px,18.4vw,316px);min-height:clamp(380px,min(34.5vw,53svh),640px)}
.app__library,.app__inspector{padding:clamp(14px,1.2vw,22px) clamp(12px,1.15vw,20px);display:flex;flex-direction:column;gap:clamp(10px,.9vw,16px);min-width:0}
.app__library{border-right:1px solid var(--rule)}
.app__inspector{border-left:1px solid var(--rule)}
.app h3{font-size:clamp(17px,1.6vw,28px);font-weight:750;letter-spacing:.012em;text-transform:uppercase;line-height:1}
.app__search{color:var(--white);font-weight:450;border-color:rgba(244,244,239,.7)}
.app__switch{display:grid;grid-template-columns:1fr 1fr;border:1.5px solid rgba(244,244,239,.6);font-size:clamp(12px,1.02vw,17px);font-weight:650}
.app__switch>*{display:flex;align-items:center;justify-content:center;min-height:clamp(32px,2.3vw,40px);padding:0 .4em;text-align:center;transition:background .2s,color .2s}
.app__switch .is-on,.app__switch [aria-selected=true]{background:var(--lime);color:var(--ink)}
.app__switch a:hover,.app__switch [aria-selected=false]:hover{color:var(--lime)}
.app__tree{font-size:clamp(13px,1.15vw,19px);line-height:1;display:flex;flex-direction:column;gap:clamp(2px,.25vw,5px);padding-bottom:clamp(10px,1vw,16px);border-bottom:1px solid var(--rule);flex:1}
.app__tree button{display:flex;align-items:center;gap:.75em;width:100%;text-align:left;padding:.28em 0;font-weight:450}
.app__tree button::before{content:"";width:0;height:0;border-style:solid;border-width:.3em 0 .3em .48em;border-color:transparent transparent transparent currentColor;transition:transform .25s var(--ease)}
.app__tree button[aria-expanded=true]::before{transform:rotate(90deg)}
.app__tree button:hover{color:var(--lime)}
.app__tree ul{display:flex;flex-direction:column;gap:2px;padding:.15em 0 .2em}
.app__tree ul a{display:block;padding:.3em .6em .3em 1.6em;font-weight:450}
.app__tree ul a:hover{color:var(--lime)}
.app__tree ul a.is-selected{background:var(--lime);color:var(--ink);font-weight:750;margin-left:.6em;padding-left:1em}
.app__scene{display:flex;flex-direction:column;gap:clamp(6px,.7vw,12px);font-size:clamp(13px,1.1vw,18px)}
.app__scene a{display:flex;align-items:center;gap:.8em}
.app__scene a:hover{color:var(--lime)}
.app__scene svg{width:1.4em;height:1.4em;fill:none;stroke:currentColor;stroke-width:1.5}
.app__view{position:relative;display:flex;flex-direction:column;min-width:0}
.app__canvas{position:relative;flex:1;min-height:260px}
.app__layers{display:flex;align-items:center;gap:clamp(12px,2vw,34px);flex-wrap:wrap;padding:clamp(8px,.75vw,13px) clamp(12px,1.4vw,22px);border-top:1px solid var(--rule);font-size:clamp(12px,1.05vw,17px)}
.app__layers label{display:inline-flex;align-items:center;gap:.65em;cursor:pointer}
.app__layers input{position:absolute;opacity:0;pointer-events:none}
.app__layers i{width:1.3em;height:1.3em;border:1.5px solid rgba(244,244,239,.85);display:grid;place-items:center;flex:none}
.app__layers input:checked+i{background:var(--lime);border-color:var(--lime)}
.app__layers input:checked+i::after{content:"";width:.62em;height:.34em;border:solid var(--ink);border-width:0 0 2px 2px;transform:translateY(-.08em) rotate(-45deg)}
.app__layers input:focus-visible+i{outline:2px solid var(--lime);outline-offset:3px}
.app__downloads{margin-left:auto;display:flex;gap:clamp(8px,1.2vw,20px)}
.app__downloads a{display:inline-flex;align-items:center;gap:.5em;border:1.5px solid rgba(244,244,239,.8);padding:.4em .8em;font-weight:500}
.app__downloads a:hover{border-color:var(--lime);color:var(--lime)}
.app__downloads svg{width:1.15em;height:1.15em;fill:none;stroke:currentColor;stroke-width:1.8}
.app__panel{display:flex;flex-direction:column;gap:clamp(10px,.9vw,16px)}
.app__row{border-top:1px solid var(--rule)}
.app__row:last-of-type{border-bottom:1px solid var(--rule);margin-bottom:clamp(4px,.6vw,10px)}
.app__row summary{list-style:none;display:flex;align-items:center;justify-content:space-between;padding:clamp(12px,1.25vw,22px) 0;font-size:clamp(15px,1.3vw,22px);font-weight:650;cursor:pointer}
.app__row summary::-webkit-details-marker{display:none}
.app__row summary::after{content:"";border-style:solid;border-width:.3em 0 .3em .45em;border-color:transparent transparent transparent currentColor;transition:transform .25s var(--ease)}
.app__row[open] summary::after{transform:rotate(90deg)}
.app__row summary:hover{color:var(--lime)}
.app__partners{display:flex;flex-direction:column;gap:6px;padding:0 0 14px;font-size:clamp(12px,1vw,16px)}
.app__partners li{display:flex;justify-content:space-between;gap:10px;border-left:3px solid var(--lime);padding:.2em .6em}
.app__partners li+li{border-color:var(--lavender)}
.app__partners span{color:var(--mute-d)}
.app__partners a:hover{color:var(--lime)}
.app__note{font-size:clamp(12px,.95vw,15px);color:var(--mute-d);padding:0 0 14px}
.app__note a:hover{color:var(--lime)}
.app__dropdown{justify-content:space-between;font-weight:500}
.app__compare{font-size:clamp(13px,1.05vw,17px);color:var(--mute-d)}
.app__compare strong{color:var(--white)}
.app__facts{display:flex;flex-direction:column;gap:clamp(8px,.8vw,14px)}
.app__facts div{border-top:1px solid var(--rule);padding-top:clamp(8px,.7vw,12px)}
.app__facts dt{font-size:clamp(20px,1.9vw,32px);font-weight:750;letter-spacing:-.03em;color:var(--lime);line-height:1}
.app__facts div:nth-child(3) dt{color:var(--white)}
.app__facts small{font-size:.5em;font-weight:600}
.app__facts dd{font-size:clamp(11px,.9vw,14.5px);color:var(--mute-d);line-height:1.3;margin-top:4px}
.app-tabs{display:flex;align-items:center;background:var(--ink-2);margin-top:clamp(8px,.75vw,13px);min-height:clamp(46px,3.5vw,58px);padding:0 clamp(16px,2vw,30px)}
.app-tabs button{color:var(--white);font-size:clamp(16px,1.7vw,29px);font-weight:450;letter-spacing:-.02em;padding:.25em clamp(20px,3.3vw,54px);border-left:1.5px solid rgba(244,244,239,.85);line-height:1.1;transition:color .2s}
.app-tabs button:first-child{border-left:0;padding-left:0}
.app-tabs button[aria-selected=true]{color:var(--lime);font-weight:700}
.app-tabs button:hover{color:var(--lime)}
.explore .corner-label{position:absolute;right:var(--gutter);bottom:clamp(10px,1vw,16px);color:var(--ink)}

/* ── 03 Shared input ────────────────────────────────────── */
.shared{position:relative;background:var(--ink);color:var(--white);min-height:max(100svh,720px);padding-top:var(--hh);display:flex;flex-direction:column}
.band{background:var(--lime);color:var(--ink);padding:clamp(16px,2.25vw,40px) var(--gutter) clamp(14px,1.3vw,24px)}
.band__meta{display:flex;justify-content:space-between;align-items:baseline;font-size:clamp(14px,1.58vw,28px);font-weight:750;letter-spacing:-.025em}
.band__brand{font-size:clamp(18px,1.95vw,34px);letter-spacing:-.035em}
.band__title{font-size:clamp(40px,7.72vw,150px);line-height:.95;margin:.04em -.035em 0;white-space:nowrap}
.shared__stage{position:relative;flex:1;min-height:clamp(440px,42vw,760px)}
.shared__copy{position:absolute;left:var(--gutter);top:clamp(28px,3.3vw,58px);max-width:min(30vw,520px);pointer-events:none}
.caps-title{font-size:clamp(24px,2.7vw,48px);font-weight:750;letter-spacing:.005em;text-transform:uppercase;line-height:1}
.shared__strong{margin-top:.5em;font-size:clamp(17px,1.68vw,30px);font-weight:700;letter-spacing:-.01em}
.shared__text{margin-top:.15em;font-size:clamp(17px,1.68vw,30px);line-height:1.28;letter-spacing:-.01em;color:#ecece6;max-width:16em}
.shared__side{position:absolute;right:var(--gutter);top:34%;width:clamp(190px,14.4vw,270px)}
.legend{border-block:2px solid var(--white);padding:clamp(14px,1.2vw,22px) 0 clamp(14px,1.2vw,22px) .3em;display:flex;flex-direction:column;gap:clamp(10px,.95vw,16px);font-size:clamp(16px,1.6vw,28px);letter-spacing:-.02em}
.legend li{display:flex;align-items:center;gap:.9em}
.sw{width:1em;height:1em;flex:none}
.sw--receiver{background:#f3f0e6}.sw--a{background:var(--lime)}.sw--b{background:var(--lavender)}
.shared__controls{position:absolute;left:clamp(16px,13.2vw,240px);right:var(--gutter);bottom:clamp(16px,1.5vw,26px);display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}
.seg{display:flex;gap:clamp(8px,1vw,16px)}
.seg button{min-width:clamp(120px,14.7vw,250px);min-height:clamp(40px,3vw,50px);padding:0 1.1em;border:2px solid var(--white);background:var(--ink);font-size:clamp(14px,1.4vw,24px);font-weight:650;letter-spacing:-.015em;text-align:left;transition:background .2s,color .2s,border-color .2s}
.seg button:hover{border-color:var(--lime);color:var(--lime)}
.seg button[aria-pressed=true]{border-color:var(--lime);color:var(--lime)}
.underline-link{display:inline-flex;align-items:center;gap:.5em;font-size:clamp(16px,1.45vw,25px);font-weight:700;letter-spacing:-.02em;padding-bottom:.32em;border-bottom:2.5px solid var(--white);transition:color .2s,border-color .2s}
.underline-link:hover{color:var(--lime);border-color:var(--lime)}
.shared__caption{margin-top:12px;font-size:clamp(12px,.92vw,15px);line-height:1.4;color:var(--mute-d)}
.shared__foot{color:var(--white)}
.shared__foot{border-top-width:1.5px}

/* ── 04 Paper findings ──────────────────────────────────── */
.findings{position:relative;background:var(--paper);color:var(--ink);min-height:max(100svh,720px);display:flex;flex-direction:column;overflow:hidden}
.findings__art{z-index:0;height:calc(100% - var(--foot-h))}
.findings__body{position:relative;z-index:1;flex:1;padding:calc(var(--hh) + clamp(22px,4.2svh,46px)) var(--gutter) clamp(28px,4svh,48px);pointer-events:none}
.findings__body a,.findings__body button{pointer-events:auto}
.findings__title{font-size:clamp(50px,min(8.75vw,14svh),170px);line-height:.88;margin:.12em 0 0 -.045em}
.findings__lead{font-size:var(--fs-lead);font-weight:500;letter-spacing:-.03em;margin-top:.14em}
.steps{width:min(32vw,560px);margin-top:clamp(22px,5.4svh,62px);border-top:1px solid rgba(14,16,15,.55)}
.steps li{border-bottom:1px solid rgba(14,16,15,.55)}
.steps a{display:flex;align-items:center;gap:clamp(16px,2.2vw,38px);min-height:clamp(64px,min(7.35vw,11.4svh),128px);font-size:clamp(24px,min(2.7vw,4.3svh),48px);font-weight:750;letter-spacing:-.04em;transition:padding .4s var(--ease)}
.steps__n{min-width:1.45em;letter-spacing:-.02em}
.steps .arrow{margin-left:auto;opacity:0;transform:translate(-8px,8px);transition:opacity .3s,transform .4s var(--ease)}
.steps a:hover .arrow,.steps a:focus-visible .arrow,.steps a.is-active .arrow{opacity:1;transform:none}
.steps a.is-active .steps__n{background:var(--lime);box-shadow:0 0 0 .12em var(--lime)}
.findings .btn-ink{margin-top:clamp(24px,5.2svh,52px)}
.inset{position:absolute;z-index:1;right:var(--gutter);bottom:clamp(96px,7.4vw,124px);width:min(31.8vw,560px);aspect-ratio:504/249;background:var(--ink);color:var(--white)}
.inset__key{position:absolute;right:clamp(10px,1.1vw,18px);bottom:clamp(8px,.9vw,14px);z-index:1;display:flex;gap:1em;font-size:clamp(10px,.78vw,13px);letter-spacing:.04em;color:var(--mute-d)}
.inset__key i{display:inline-block;width:.7em;height:.7em;border-radius:50%;margin-right:.4em;vertical-align:-.02em}
.inset figcaption{position:absolute;left:clamp(12px,1.25vw,22px);top:clamp(10px,1.15vw,20px);z-index:1;font-size:clamp(13px,1.42vw,24px);font-weight:700;letter-spacing:.005em;text-transform:uppercase}
.findings__foot{position:relative;z-index:1;color:var(--ink);border-top-width:1px}
.findings__caption{font-size:clamp(15px,1.58vw,27px);font-weight:450;letter-spacing:-.015em;padding:.5em 0;transition:opacity .25s}
.findings__caption.is-changing{opacity:0}

/* ── 05 Data & sources ──────────────────────────────────── */
.data{position:relative;background:var(--lime);color:var(--ink);min-height:max(72svh,600px);overflow:hidden}
.data__body{position:relative;z-index:1;padding:calc(var(--hh) + clamp(26px,4.4svh,52px)) var(--gutter) clamp(26px,3.6svh,46px) calc(var(--gutter) * 1.2);pointer-events:none}
.data__body a,.data__body button{pointer-events:auto}
.data__title{font-size:clamp(50px,min(8.7vw,14svh),170px);line-height:.88;margin-left:-.05em}
.data__lead{font-size:var(--fs-lead);font-weight:500;letter-spacing:-.03em;margin-top:.1em}
.datasets{width:min(46vw,820px);margin-top:clamp(22px,4.4svh,48px);border-top:2px solid var(--ink)}
.datasets li{border-bottom:2px solid var(--ink)}
.datasets a{display:flex;align-items:center;min-height:clamp(52px,min(4.7vw,7.6svh),84px);padding:clamp(6px,1svh,12px) 0;font-size:clamp(26px,min(2.95vw,4.8svh),52px);font-weight:750;letter-spacing:-.04em;line-height:1}
.datasets__main{display:flex;flex-direction:column;gap:.28em;min-width:0}
.datasets__n{width:clamp(80px,10vw,180px);flex:none;letter-spacing:-.02em}
.datasets__t i{font-style:normal}
.datasets__d{font-size:clamp(12px,.9vw,15.5px);font-weight:600;letter-spacing:.01em;line-height:1.25;opacity:.74}
.datasets .arrow{margin-left:auto;width:.78em;height:.78em;stroke-width:2.4;transition:transform .35s var(--ease)}
.datasets a:hover .arrow{transform:translate(4px,-4px)}
.data .text-link{margin-top:clamp(16px,2.6svh,28px)}

/* ── Footer ─────────────────────────────────────────────── */
.site-footer{background:#111;color:var(--white);padding:clamp(18px,2.3vw,40px) var(--gutter) 0}
.site-footer__main{display:flex;align-items:flex-end;justify-content:space-between;gap:32px;padding-bottom:clamp(14px,1.6vw,26px)}
.wordmark{position:relative;display:flex;flex-direction:column;line-height:.8}
.wordmark__name{font-size:clamp(76px,11.6vw,230px);font-weight:800;letter-spacing:-.06em;margin-left:-.05em}
.wordmark__sub{position:relative;align-self:flex-start;margin-top:.3em;margin-left:.2em;background:#111;padding:.2em .55em .15em 0;font-size:clamp(12px,1.52vw,27px);font-weight:600;letter-spacing:.2em;text-transform:uppercase;line-height:1}
.site-footer__actions{display:flex;flex-direction:column;gap:clamp(12px,1.4vw,24px);width:min(34vw,600px);padding-bottom:.2em}
.btn-lime--xl{font-size:clamp(24px,3vw,54px);height:clamp(70px,6.1vw,112px);justify-content:center;letter-spacing:-.035em}
.site-footer__links{display:flex;gap:clamp(20px,4.2vw,72px);font-size:clamp(16px,1.7vw,30px);font-weight:700;letter-spacing:-.02em}
.site-footer__links a:hover{color:var(--lime)}
.site-footer__bar{display:flex;align-items:center;justify-content:space-between;border-top:1px solid rgba(244,244,239,.85);min-height:clamp(46px,3.2vw,56px);font-size:clamp(15px,1.5vw,25px);letter-spacing:-.015em}

/* ── Data dialog ────────────────────────────────────────── */
.sources{width:min(760px,calc(100vw - 32px));max-height:calc(100svh - 48px);border:0;padding:clamp(24px,3vw,44px);background:var(--paper);color:var(--ink);font-family:var(--font)}
.sources::backdrop{background:rgba(14,16,15,.72)}
.sources h2{font-size:clamp(30px,3.6vw,52px);font-weight:800;letter-spacing:-.045em;line-height:.95;margin:.3em 0 .4em}
.sources>p{font-size:17px;line-height:1.45;max-width:38em}
.sources__close{position:absolute;right:14px;top:10px;font-size:30px;line-height:1;width:44px;height:44px}
.sources__list{margin:22px 0;border-top:2px solid var(--ink)}
.sources__list div{display:grid;grid-template-columns:minmax(150px,.8fr) 1.6fr;gap:4px 20px;padding:14px 0;border-bottom:1px solid rgba(14,16,15,.4)}
.sources__list dt{font-weight:750;font-size:17px;letter-spacing:-.02em;grid-row:span 2}
.sources__list dt i{font-style:italic}
.sources__list dd{font-size:15px;line-height:1.4}
.sources__list a{text-decoration:underline;text-underline-offset:.2em;font-weight:600}
.sources__note{font-size:15px!important;background:var(--lime);padding:10px 14px}
.sources__cite{margin-top:14px;font-size:14px!important;color:var(--mute-l)}


/* ── 02 The question: inside a node, a distant edge ─────── */
.question{position:relative;background:var(--paper);color:var(--ink);min-height:max(100svh,720px);display:flex;flex-direction:column}
.question__body{flex:1;display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);gap:clamp(24px,4vw,80px);align-items:center;padding:calc(var(--hh) + clamp(18px,3svh,40px)) var(--gutter) clamp(18px,3svh,36px)}
.question__title{font-size:clamp(46px,min(6.7vw,11.2svh),136px);line-height:.9;margin:.14em 0 0 -.045em}
.question__lead{margin-top:clamp(14px,2.4svh,28px);font-size:clamp(17px,min(1.42vw,2.5svh),26px);line-height:1.27;letter-spacing:-.015em;max-width:29em}
.qsteps{margin-top:clamp(18px,3.4svh,40px);border-top:1px solid rgba(14,16,15,.55);max-width:40em}
.qsteps li{display:grid;grid-template-columns:clamp(40px,3.4vw,62px) minmax(0,1fr);gap:10px;padding:clamp(9px,1.5svh,17px) 0;border-bottom:1px solid rgba(14,16,15,.55);font-size:clamp(14.5px,min(1.1vw,2svh),19.5px);line-height:1.36}
.qsteps__n{font-weight:800;letter-spacing:-.02em;font-size:1.2em;line-height:1.12}
.qsteps b{font-weight:750}
.lens-fig{justify-self:end;width:min(100%,calc((100svh - var(--hh) - var(--foot-h) - 130px) * 1.185));min-width:0}
.lens-fig__stage{position:relative;aspect-ratio:640/540}
.lens-fig__net{position:absolute;inset:0;width:100%;height:100%;overflow:visible;font-family:var(--font)}
.lens-fig .lens-fig__art{inset:auto;left:50%;top:42.593%;width:46.875%;height:55.556%;border-radius:50%;background:var(--ink)}
.lens-fig__ring{fill:none;stroke:var(--ink);stroke-width:1.5}
.net__bg line{stroke:rgba(14,16,15,.2);stroke-width:1.5}
.net__bgnodes circle{fill:var(--paper);stroke:rgba(14,16,15,.38);stroke-width:1.5}
.net__edge{stroke:var(--ink);stroke-width:2.4}
.net__far{fill:none;stroke:var(--ink);stroke-width:2.6;stroke-dasharray:7 6;animation:net-march 1.1s linear infinite}
@keyframes net-march{to{stroke-dashoffset:-13}}
.net__q circle{fill:var(--lime);stroke:var(--ink);stroke-width:2}
.net__q text{font-size:21px;font-weight:800;fill:var(--ink)}
.net__callout{fill:none;stroke:var(--ink);stroke-width:1.2;opacity:.55}
.net__node{stroke:var(--ink);stroke-width:2.4}
.net__node--a{fill:var(--lime)}.net__node--b{fill:var(--lavender)}.net__node--c{fill:var(--ink)}
.net__letter{font-size:24px;font-weight:800;fill:var(--ink);letter-spacing:-.02em}
.net__letter--c{fill:var(--white);font-size:27px}
.net__label{font-size:15.5px;font-weight:650;fill:var(--ink);letter-spacing:-.01em}
.net__label--lens{font-size:12.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase}
.lens-fig figcaption{margin-top:clamp(8px,1.4svh,16px);display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:6px 20px;font-size:clamp(14px,min(1.05vw,1.9svh),18px);font-weight:600;letter-spacing:-.01em;line-height:1.3}
.lens-fig__key{display:flex;gap:16px;font-size:.84em;font-weight:500;color:var(--mute-l)}
.lens-fig__key>span{display:inline-flex;align-items:center;gap:.5em;white-space:nowrap}
.lens-fig__key .sw{width:.78em;height:.78em;border-radius:50%;box-shadow:0 0 0 1px var(--ink)}
.sw--o{background:#a3a59f}
.question__foot{color:var(--ink)}
.question__held{font-size:clamp(13px,.98vw,17px);padding:.6em 0;line-height:1.35}
.question__held b{font-weight:750;font-size:.8em;letter-spacing:.15em;text-transform:uppercase;margin-right:.9em}

/* ── 05 Results ─────────────────────────────────────────── */
.results{position:relative;background:var(--ink);color:var(--white);min-height:max(100svh,720px)}
.results__body{padding:calc(var(--hh) + clamp(18px,3.4svh,44px)) var(--gutter) clamp(28px,4svh,48px)}
.results__title{font-size:clamp(46px,min(6.7vw,11.2svh),136px);line-height:.9;margin:.14em 0 0 -.045em}
.results__lead{margin-top:clamp(10px,1.8svh,22px);font-size:clamp(17px,min(1.42vw,2.5svh),26px);line-height:1.27;letter-spacing:-.015em;color:#ecece6;max-width:36em}
.rcards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(18px,2.4vw,44px);margin-top:clamp(18px,3.4svh,44px)}
.rcard{border-top:2px solid var(--white);padding-top:clamp(10px,1.4svh,18px);display:flex;flex-direction:column;gap:clamp(8px,1.25svh,14px);min-width:0}
.rcard__n{font-size:clamp(11px,.82vw,14px);font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--lime)}
.rcard h3{font-size:clamp(20px,min(1.75vw,3.1svh),32px);font-weight:750;letter-spacing:-.03em;line-height:1.05}
.rcard__q{font-size:clamp(13px,min(.96vw,1.75svh),16px);line-height:1.38;color:var(--mute-d)}
.rcard__stats{display:grid;grid-template-columns:1fr 1fr;gap:12px;border-top:1px solid rgba(244,244,239,.28);padding-top:clamp(8px,1.2svh,12px)}
.rcard__stats dt{font-size:clamp(22px,min(2vw,3.4svh),36px);font-weight:800;letter-spacing:-.04em;line-height:1;font-variant-numeric:tabular-nums}
.rcard__stats small{font-size:.46em;font-weight:650;letter-spacing:0;margin-left:.12em}
.rcard__stats dd{font-size:clamp(11px,.8vw,13.5px);color:var(--mute-d);margin-top:5px;line-height:1.3}
.rcard__note{font-size:clamp(11.5px,.82vw,14px);color:var(--mute-d);line-height:1.38}
.results__aside{margin-top:clamp(18px,3svh,36px);font-size:clamp(13px,min(.98vw,1.8svh),17px);line-height:1.45;color:#cfd0ca;max-width:64em;border-left:3px solid var(--lime);padding-left:14px}
.results__aside i{font-style:italic}
/* Bars are drawn to scale from the paper's means (home.js) */
.chart{display:flex;flex-direction:column;gap:clamp(6px,1svh,10px);font-size:clamp(11px,.8vw,13.5px)}
.chart__legend{display:flex;flex-wrap:wrap;gap:4px 16px;color:var(--mute-d)}
.chart__legend span{display:inline-flex;align-items:center;gap:.5em}
.chart__legend i{width:.9em;height:.9em;background:#62655f}
.chart__legend i.is-hi{background:var(--lime)}
.chart__legend i.is-tick{width:2px;height:1.1em;background:var(--white)}
.chart__group{display:grid;grid-template-columns:4.9em minmax(0,1fr) 4.3em;align-items:center;gap:4px 8px}
.chart__ds{grid-row:span 2;font-weight:700;color:var(--white)}
.chart__track{position:relative;height:clamp(10px,1.5svh,14px)}
.chart__bar{position:absolute;inset:0 auto 0 0;width:calc(var(--v) * 100%);background:#62655f;transform-origin:left;transition:transform 1s var(--ease)}
.chart__bar.is-hi{background:var(--lime)}
.chart__tick{position:absolute;top:-3px;bottom:-3px;left:calc(var(--v) * 100%);width:2px;background:var(--white)}
.chart__val{font-variant-numeric:tabular-nums;color:var(--mute-d);white-space:nowrap}
.chart__val.is-hi{color:var(--lime);font-weight:650}
.chart__axis{display:flex;justify-content:space-between;margin-left:calc(4.9em + 8px);margin-right:calc(4.3em + 8px);border-top:1px solid rgba(244,244,239,.35);padding-top:3px;color:#80837d;font-variant-numeric:tabular-nums}
.rcards:not(.is-in) .chart__bar{transform:scaleX(0)}
.rcard:nth-child(2) .chart__bar{transition-delay:.12s}.rcard:nth-child(3) .chart__bar{transition-delay:.24s}

/* ── 08 The paper ───────────────────────────────────────── */
.paper{position:relative;background:var(--paper);color:var(--ink);min-height:max(100svh,720px)}
.paper__body{padding:calc(var(--hh) + clamp(18px,3.4svh,44px)) var(--gutter) clamp(32px,5svh,60px)}
.paper__title{font-size:clamp(46px,min(6.7vw,11.2svh),136px);line-height:.9;margin:.14em 0 0 -.045em}
.paper__grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:clamp(24px,4.4vw,80px);margin-top:clamp(18px,3.4svh,44px);border-top:2px solid var(--ink);padding-top:clamp(14px,2.4svh,28px)}
.paper__meta{font-size:clamp(11px,.84vw,14px);font-weight:700;letter-spacing:.15em;text-transform:uppercase}
.paper__name{font-size:clamp(22px,min(2.05vw,3.6svh),38px);font-weight:750;letter-spacing:-.03em;line-height:1.08;margin:.45em 0 0;max-width:24em}
.paper__affil{font-size:clamp(12.5px,.9vw,15px);color:var(--mute-l);margin-top:.7em;line-height:1.4;max-width:46em}
.paper__h{font-size:clamp(11px,.82vw,14px);font-weight:700;letter-spacing:.16em;text-transform:uppercase;margin:clamp(14px,2.6svh,28px) 0 .7em}
.paper__side .paper__h:first-child{margin-top:0}
.paper__abstract{font-size:clamp(14px,min(1vw,1.85svh),17.5px);line-height:1.56;max-width:48em}
.paper__keys{display:flex;flex-wrap:wrap;gap:8px;margin-top:clamp(14px,2.2svh,24px)}
.paper__keys li{border:1.5px solid var(--ink);padding:.3em .7em;font-size:clamp(12px,.84vw,14px);font-weight:600}
.deeper{border-top:1px solid rgba(14,16,15,.55)}
.deeper li{border-bottom:1px solid rgba(14,16,15,.55)}
.deeper a,.deeper button{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 16px;width:100%;text-align:left;padding:clamp(9px,1.5svh,16px) 0;align-items:center}
.deeper b{font-size:clamp(17px,min(1.38vw,2.5svh),24px);font-weight:750;letter-spacing:-.025em;line-height:1.1}
.deeper span{grid-column:1;font-size:clamp(12.5px,.9vw,15px);color:var(--mute-l);line-height:1.35}
.deeper .arrow{grid-column:2;grid-row:1/span 2;width:1.05em;height:1.05em;transition:transform .35s var(--ease)}
.deeper a:hover b,.deeper button:hover b{text-decoration:underline;text-underline-offset:.2em;text-decoration-thickness:1.5px}
.deeper a:hover .arrow,.deeper button:hover .arrow{transform:translate(3px,-3px)}
.cite__text{font-size:clamp(13px,.94vw,16px);line-height:1.45}
.cite__bib{margin:12px 0 0;background:var(--ink);color:#e7e8e2;padding:14px 16px;font:500 clamp(11px,.76vw,13px)/1.5 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;white-space:pre-wrap;overflow-wrap:anywhere}
.cite__copy{margin-top:12px;font-size:clamp(14px,1vw,17px);padding:.72em 1em}
.cite__copy.is-done{background:var(--lime);color:var(--ink)}

/* ── Responsive ─────────────────────────────────────────── */
@media (max-width:1100px){
  .app__grid{grid-template-columns:clamp(200px,24vw,260px) minmax(0,1fr)}
  .app__inspector{display:none}
}
@media (max-width:1320px){.site-header .logo-sub{display:none!important}}
@media (max-width:1180px){
  .site-nav{display:none!important}
  .lang-switch--header{margin-left:auto}
  .menu-toggle{display:inline-flex;margin-left:0}
}
@media (max-width:860px){
  .site-header__rule,.header-cta{display:none!important}
}
@media (max-width:1000px){
  .question__body{grid-template-columns:1fr;align-items:start}
  .lens-fig{justify-self:stretch;width:auto;max-width:640px}
  .rcards{grid-template-columns:1fr;max-width:640px}
  .paper__grid{grid-template-columns:1fr}
}
@media (max-width:1100px){.steps{width:min(50vw,520px)}}
@media (max-width:900px){
  .shared__stage canvas{height:min(62vw,560px)}
  .shared__stage{display:flex;flex-direction:column;min-height:0;padding:24px var(--gutter)}
  .shared__stage canvas{position:relative;order:2;height:62vw;min-height:280px;margin:18px calc(var(--gutter) * -1) 0;width:calc(100% + var(--gutter) * 2)}
  .shared__copy,.shared__side,.shared__controls{position:static;max-width:none;width:auto}
  .shared__copy{order:1}
  .shared__side{order:3;margin-top:16px}
  .legend{flex-direction:row;flex-wrap:wrap;gap:12px 22px;font-size:17px}
  .shared__controls{order:5;margin-top:18px;flex-direction:column;align-items:stretch}
  .seg{display:grid;grid-template-columns:repeat(3,1fr)}
  .seg button{min-width:0;text-align:center;padding:0 .4em;font-size:14px}
  .underline-link{align-self:flex-start}
  .shared__caption{max-width:40em}
}
@media (orientation:portrait) and (max-width:1100px){
  .hero__art{height:min(52svh,620px)}
  .hero__copy::before{content:"";position:absolute;inset:-60px 0 0;background:linear-gradient(transparent,var(--ink) 90px);z-index:-1}
  .hero__copy{flex:none;margin-top:auto;padding-top:0;padding-bottom:clamp(28px,4svh,48px);justify-content:flex-end}
  .hero{justify-content:flex-end}
}
@media (max-width:760px){
  :root{--hh:60px}
  .hero{min-height:max(100svh,640px)}
  .hero__title{font-size:clamp(46px,14.2vw,72px)}
  .hero__actions{gap:16px 24px}
  .explore__title,.findings__title,.data__title{font-size:clamp(44px,13.4vw,72px);white-space:normal}
  .explore__lead,.findings__lead,.data__lead{font-size:20px}
  .app__grid{grid-template-columns:1fr;min-height:0}
  .app__library{border-right:0;border-top:1px solid var(--rule);order:2}
  .app__view{order:1}
  .app__canvas{min-height:300px}
  .app__downloads{margin-left:0}
  .app-tabs{overflow-x:auto;padding:0 12px}
  .app-tabs button{padding:.25em 16px;font-size:16px;white-space:nowrap}
  .explore .corner-label{position:static;display:block;margin-top:12px;text-align:right}
  .band__title{white-space:normal;font-size:clamp(40px,12.6vw,64px);line-height:.92}
  .findings__body{padding-bottom:16px}
  .findings__art{position:relative;order:2;height:96vw;min-height:320px;inset:auto}
  .findings{display:flex;flex-direction:column}
  .findings__body{order:1}
  .inset{order:3;position:relative;right:auto;bottom:auto;width:auto;margin:-28vw var(--gutter) 22px}
  .findings__foot{order:4;flex-direction:column;align-items:flex-start;gap:4px;padding:10px 0}
  .steps{width:100%}
  .steps .arrow{opacity:1;transform:none}
  .data__art{opacity:.32}
  .datasets{width:100%}
  .datasets__n{width:64px}
  .site-footer__main{flex-direction:column;align-items:stretch}
  .site-footer__actions{width:100%}
  .site-footer__bar{flex-direction:column;align-items:flex-start;padding:10px 0;gap:4px}
  .question__title,.results__title,.paper__title{font-size:clamp(44px,13.4vw,72px)}
  .net__label{font-size:24px}.net__label--lens{font-size:19px}
  .net__letter{font-size:30px}.net__letter--c{font-size:32px}
  .question__foot{flex-direction:column;align-items:flex-start;gap:0;padding-bottom:8px}
  .lang-switch--header{font-size:12px}
}
