:root{color-scheme:light;--ink:#162133;--muted:#566174;--accent:#163d8d;--teal:#006b64;--line:#dce2eb;--paper:#fff;--tint:#f4f7fc;--serif:Georgia,"Times New Roman",serif;--sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--paper);color:var(--ink);font:1rem/1.65 var(--sans);-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration:none;text-underline-offset:4px}a:hover{text-decoration:underline}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #3583ed;outline-offset:5px}img{max-width:100%;height:auto;display:block}p{margin:0 0 1.2rem}.wrap{width:min(1180px,calc(100% - 80px));margin-inline:auto}.reading-width{max-width:780px;margin-inline:auto}.skip-link{position:fixed;left:16px;top:-80px;z-index:50;background:var(--ink);color:white;padding:12px 18px}.skip-link:focus{top:12px}.site-header{position:sticky;top:0;background:rgba(255,255,255,.97);border-bottom:1px solid var(--line);z-index:10}.navigation{min-height:76px;display:flex;align-items:center;justify-content:space-between;gap:24px}.wordmark{display:flex;align-items:center;gap:10px;color:var(--ink);font-weight:700;letter-spacing:-.02em}.mark{width:32px;height:32px;display:grid;place-items:center;background:var(--accent);color:#fff;border-radius:7px;font:26px/1 var(--serif)}.nav-links{display:flex;align-items:center;gap:28px;font-size:.9rem}.nav-links a{color:var(--muted)}.hero{text-align:center;padding:68px 0 52px}.eyebrow{font-size:.78rem;text-transform:uppercase;letter-spacing:.15em;font-weight:700;color:var(--accent);margin-bottom:18px}.hero h1{font:clamp(4rem,8vw,6.75rem)/1.02 var(--serif);letter-spacing:-.06em;font-weight:400;margin:0 0 23px}.hero h1 span{color:var(--accent)}.publication-title{font-size:clamp(1.4rem,2.5vw,1.9rem);line-height:1.35;letter-spacing:-.025em;font-weight:500;margin:0 auto 27px}.authors{font-size:1.05rem;margin-bottom:3px}.authors a{color:inherit}.authors sup{font-size:.7em}.separator{margin:0 12px;color:#8c97a9}.affiliation{font-size:.95rem;color:var(--muted);margin-bottom:5px}.contribution{font-size:.8rem;color:var(--muted);margin-bottom:26px}.resource-links{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}.button{display:inline-flex;justify-content:center;align-items:center;gap:14px;min-height:46px;padding:10px 21px;border:1px solid var(--line);border-radius:999px;font-size:.9rem;font-weight:600;color:var(--ink);background:#fff;cursor:pointer;font-family:inherit}.button:hover{border-color:var(--accent);text-decoration:none;background:var(--tint)}.button.primary{background:var(--accent);border-color:var(--accent);color:#fff}.button.primary:hover{background:#0e2b68}.idea{padding-top:18px}.section-heading{margin-bottom:30px}.section-heading h2{font:clamp(2.3rem,4.2vw,3.7rem)/1.12 var(--serif);font-weight:400;letter-spacing:-.035em;margin:0}.section-heading h2 em{font-weight:400;color:var(--accent)}.paper-figure{margin:0 0 34px}.paper-figure>a{display:block;padding:18px;border:1px solid var(--line);border-radius:10px;background:white;overflow:hidden}.paper-figure img{width:100%}.paper-figure figcaption{font-size:.875rem;line-height:1.6;color:var(--muted);max-width:980px;margin:16px auto 0}.figure-label{font-size:.74rem;color:var(--accent);text-transform:uppercase;letter-spacing:.08em;font-weight:700;display:block;margin-bottom:5px}.stat-line{display:grid;grid-template-columns:repeat(4,1fr);border-block:1px solid var(--line);margin:38px 0 42px;padding:25px 0}.stat-line>div{padding:0 24px;border-right:1px solid var(--line)}.stat-line>div:first-child{padding-left:0}.stat-line>div:last-child{border:none}.stat-line strong{display:block;font:2.7rem/1.15 var(--serif);letter-spacing:-.035em}.stat-line span{display:block;font-size:.85rem;color:var(--muted);margin-top:8px}.intro{font-size:1.15rem;line-height:1.8}.site-footer{padding-block:38px;border-top:1px solid var(--line);margin-top:72px;display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;font-size:.85rem;color:var(--muted)}.site-footer p{margin:0}.site-footer .wordmark{font-size:1rem}
@media(max-width:800px){.wrap{width:calc(100% - 40px)}.hero{padding-top:46px}.nav-links{gap:16px}.navigation{min-height:68px}.stat-line>div{padding-inline:14px}.stat-line strong{font-size:2.1rem}.stat-line span{font-size:.8rem}.separator{margin:0 6px}.intro{font-size:1.05rem}.section-heading h2{font-size:2.6rem}}
@media(max-width:520px){html{scroll-padding-top:116px}.wrap{width:calc(100% - 32px)}.navigation{flex-wrap:wrap;justify-content:center;gap:8px;padding:12px 0}.wordmark{font-size:.95rem}.nav-links{justify-content:center;font-size:.85rem}.hero{padding:38px 0}.hero h1{font-size:3.9rem}.publication-title{font-size:1.4rem}.desktop-break{display:none}.authors{font-size:.94rem;line-height:2}.contribution{font-size:.75rem}.resource-links{gap:8px}.button{font-size:.85rem;padding:10px 16px}.section-heading h2{font-size:2.2rem}.eyebrow{font-size:.73rem}.paper-figure>a{padding:8px;border-radius:6px}.paper-figure figcaption{font-size:.85rem}.stat-line{grid-template-columns:repeat(2,1fr);row-gap:24px;padding-block:24px}.stat-line>div{padding:0 16px}.stat-line>div:nth-child(odd){padding-left:0}.stat-line>div:nth-child(even){border:none}.stat-line strong{font-size:2.4rem}.stat-line span{font-size:.8rem}.site-footer{display:block;margin-top:48px}.site-footer>*{margin-bottom:12px!important}}
[hidden]{display:none!important}.chapter{padding-block:88px;border-top:1px solid var(--line);margin-top:70px}.chapter-header{display:flex;align-items:flex-start;gap:34px}.chapter-number{font:1rem/1 var(--sans);color:var(--accent);padding-top:5px;min-width:30px}.chapter-header .section-heading{margin-bottom:30px}.section-intro{max-width:820px;margin-bottom:36px;font-size:1.12rem;line-height:1.8}.source-note{font-size:.875rem;line-height:1.65;color:var(--muted)}.section-intro .source-note{margin-top:18px}.finding-grid{display:grid;grid-template-columns:1fr 1.4fr;gap:50px;border-bottom:1px solid var(--line);padding:10px 0 36px;margin-bottom:38px}.finding .eyebrow{margin-bottom:10px}.large-number{font:5.2rem/1 var(--serif);letter-spacing:-.045em;margin-bottom:15px;color:var(--accent)}.large-number span{font:1.15rem/1 var(--sans);letter-spacing:0}.finding p:last-child{max-width:420px;margin-bottom:0}h3{font-size:1.14rem;line-height:1.4;letter-spacing:-.015em;font-weight:600;margin:0 0 12px}.comparison table{border-collapse:collapse;width:100%;font-size:.94rem}.comparison caption{text-align:left;color:var(--muted);font-size:.85rem;caption-side:bottom;padding-top:12px}.comparison th,.comparison td{text-align:right;border-bottom:1px solid var(--line);padding:12px 8px}.comparison thead th{font-size:.85rem;color:var(--muted);font-weight:500}.comparison th:first-child{text-align:left;padding-left:0}.comparison tbody th{font-weight:500}.comparison td{font-variant-numeric:tabular-nums}.metric-definitions{display:grid;grid-template-columns:1fr 1fr;gap:46px}.metric-definitions>div{padding-left:20px;border-left:2px solid var(--accent)}.metric-definitions>div:first-child{border-color:var(--teal)}.metric-tag{display:inline-block;font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;font-weight:700;margin-bottom:14px}.metric-tag.privacy{color:var(--teal)}.metric-tag.utility{color:var(--accent)}.metric-definitions p{color:var(--muted);margin-bottom:0}.chapter-tinted{background:var(--tint);border-bottom:1px solid var(--line);margin-top:0}.key-observation{max-width:850px;margin:30px 0 40px;font-size:1.06rem;line-height:1.8}.axis-grid{display:grid;grid-template-columns:1fr 1fr;gap:64px;margin-bottom:24px}.axis-grid h3{margin-bottom:18px}.axis-list{margin:0}.axis-list>div{display:flex;align-items:baseline;gap:22px;padding:13px 0;border-bottom:1px solid #d8e0ed}.axis-list dt{font-size:.8rem;font-weight:700;color:var(--accent);min-width:24px}.axis-list dd{margin:0;font-size:1rem}.domain-block{border-top:1px solid #d8e0ed;padding-top:32px;margin-top:38px}.domain-list{list-style:none;padding:0;margin:18px 0 22px;display:flex;gap:10px;flex-wrap:wrap}.domain-list li{border:1px solid #d2dce9;border-radius:5px;padding:6px 13px;font-size:.9rem;background:#fff}.domain-block p{max-width:800px;color:var(--muted)}.text-link{font-size:.94rem;font-weight:600}.steps{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:32px;margin:0 0 40px;padding:0}.step-number{display:block;color:var(--accent);font:2rem/1 var(--serif);margin-bottom:18px}.steps p{color:var(--muted);font-size:.96rem;margin:0}.steps h3{font-size:1.1rem}.code-panel{background:#f6f8fb;border:1px solid var(--line);border-radius:10px;overflow:hidden;margin:26px 0}.code-panel-header{border-bottom:1px solid var(--line);padding:12px 20px;display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--muted);font-size:.875rem}.code-panel-header>div{display:flex;align-items:center;gap:20px}.copy-button{background:white;border:1px solid #c6cfde;border-radius:5px;padding:7px 13px;min-height:36px;color:var(--accent);font:600 .875rem/1.3 var(--sans);cursor:pointer}.copy-button:hover{background:#edf3ff}pre{overflow:auto;margin:0;padding:22px;font-size:.9rem;line-height:1.75;tab-size:2}code{font-family:ui-monospace,SFMono-Regular,Consolas,"Liberation Mono",monospace}.section-actions{display:flex;gap:12px;flex-wrap:wrap;margin:25px 0 22px}.citation-section{margin-top:0;padding-top:70px}.copy-status{font-size:.875rem;color:var(--teal);min-height:1.65em;margin-bottom:16px}.acknowledgments{padding-top:22px;margin-top:20px}.acknowledgments p,.scope-note p{max-width:850px;color:var(--muted);font-size:.94rem}.scope-note{margin-top:32px}.footer-links{display:flex;gap:20px;flex-wrap:wrap}.site-footer>div:first-child p{margin-top:10px}.site-footer{margin-top:0}
@media(max-width:800px){.chapter{padding-block:62px;margin-top:45px}.chapter-tinted,.citation-section{margin-top:0}.chapter-header{gap:20px}.finding-grid{gap:30px;grid-template-columns:1fr 1.4fr}.large-number{font-size:4.3rem}.metric-definitions{gap:30px}.axis-grid{gap:34px}.steps{gap:22px}.section-intro{font-size:1.05rem}.chapter-number{min-width:20px}}
@media(max-width:600px){.finding-grid,.metric-definitions,.axis-grid,.steps{grid-template-columns:1fr}.finding-grid{gap:30px}.metric-definitions{gap:26px}.axis-grid{gap:30px}.steps{gap:28px}.steps li{display:flex;gap:18px}.step-number{min-width:22px;margin-top:3px}.chapter{padding-block:45px}.chapter-header{gap:13px}.chapter-number{font-size:.875rem;padding-top:3px}.section-heading h2{font-size:2.15rem}.code-panel-header{padding:10px 14px}.code-panel-header>div{gap:12px}.code-panel-header>span{font-size:.8rem}pre{font-size:.8rem;padding:16px}.domain-list{gap:8px}.domain-list li{font-size:.85rem;padding:5px 10px}.section-actions .button{width:100%}.nav-links{gap:14px;font-size:.875rem;flex-wrap:wrap}.site-footer .footer-links{gap:16px}.hero h1{font-size:clamp(3rem,14vw,3.9rem)}.comparison table{font-size:.875rem}}
.nav-label{display:none}
/* A persistent left-hand contents rail, with full-width reading on small screens. */
@media(min-width:800px){
  html{scroll-padding-top:32px}
  body{padding-left:208px}
  .site-header{position:fixed;inset:0 auto 0 0;width:208px;height:100vh;height:100dvh;overflow-y:auto;border-bottom:0;border-right:1px solid var(--line);background:var(--paper)}
  .site-header .navigation{width:100%;min-height:0;padding:32px 20px;display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:48px}
  .site-header .wordmark{font-size:.95rem;gap:8px;white-space:nowrap}
  .site-header .mark{flex-shrink:0}
  .nav-links{flex-direction:column;align-items:stretch;gap:4px;font-size:.95rem}
  .nav-label{display:block;margin:0 0 12px;padding-left:12px;font-size:.75rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
  .nav-links a{display:flex;align-items:center;min-height:44px;padding:10px 12px;border-left:2px solid var(--line)}
  .nav-links a:hover,.nav-links a:focus-visible{color:var(--accent);border-left-color:var(--accent);background:var(--tint);text-decoration:none}
}
@media(min-width:800px) and (max-width:1100px){
  .wrap{width:calc(100% - 48px)}
  .finding-grid,.metric-definitions,.axis-grid,.steps{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}
