@import url('./fonts.css');
@import url('./cursor.css');
@import url('./header.css');

:root { --paper:#07070b; --ink:#f2f7ff; --muted:#b2adbd; --line:#ffffff24; --accent:#c7a5ee; }
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 100px; }
body.journal-page { margin:0; background:radial-gradient(ellipse at 70% 10%,#201225 0,transparent 65%),#03040a; color:var(--ink); font-family:'Space Grotesk',sans-serif; -webkit-font-smoothing:antialiased; }
a { color:inherit; text-underline-offset:4px; }
button { font:inherit; cursor:pointer; }
button, a, summary { -webkit-tap-highlight-color:transparent; }
img { display:block; max-width:100%; height:auto; }
button:focus-visible, a:focus-visible, summary:focus-visible, [tabindex]:focus-visible { outline:2px solid var(--accent); outline-offset:5px; }
::selection { background:#6e498b; color:#ffffff; }
.editorial-wrap { width:min(1160px,calc(100% - 96px)); margin-inline:auto; }
.journal-skip { position:fixed; top:-80px; left:20px; background:var(--ink); color:white; padding:12px 20px; z-index:10002; }
.journal-skip:focus { top:12px; }
#journal-webgl { position:fixed; inset:0; width:100%; height:100%; z-index:0; pointer-events:none; }
.journal-page > main, .journal-page > .journal-footer { position:relative; z-index:1; }
.journal-header-shell { position:sticky; top:0; height:70px; z-index:30; background:#050409a8; backdrop-filter:blur(16px); -webkit-backdrop-filter:blur(16px); border-bottom:1px solid #ffffff11; }
.journal-header-shell .main-header { width:calc(100% - 120px); margin:auto; }
.journal-page .main-header a { color:white; }
.journal-page .header-nav a { color:#ffffff8c; }
.journal-page .header-nav a:hover, .journal-page .header-nav .is-active { color:white; }
.article-header { padding-top:40px; }
.breadcrumbs { display:flex; flex-wrap:wrap; gap:12px; align-items:center; color:var(--muted); font-size:14px; }
.breadcrumbs a { text-decoration:none; }
.breadcrumbs a:hover { color:var(--accent); }
.article-eyebrow { display:flex; align-items:center; gap:18px; margin:62px 0 25px; color:var(--muted); font-size:14px; letter-spacing:.04em; }
.category-pill { border:1px solid #ffffff40; border-radius:24px; padding:8px 13px; color:var(--accent); }
.article-header h1, .journal-intro h1 { max-width:1100px; margin:0; font-weight:500; font-size:clamp(42px,6.1vw,82px); line-height:1.08; letter-spacing:-.055em; text-wrap:balance; }
.article-header h1 span, .journal-intro h1 span { color:#b9c1d1; }
.article-deck { max-width:780px; font-size:21px; line-height:1.6; letter-spacing:-.015em; margin:30px 0 36px; color:#c5c2ce; }
.article-meta { display:flex; align-items:center; gap:15px; color:var(--muted); font-size:13px; line-height:1.65; padding-bottom:40px; }
.article-meta strong { color:var(--ink); font-weight:500; }
.author-mark { display:grid; place-items:center; height:42px; width:42px; border:1px solid var(--line); border-radius:50%; }
.author-mark svg { height:22px; width:22px; }
.meta-separator { height:28px; width:1px; background:var(--line); margin:0 12px; }
.share-link { display:flex; align-items:center; gap:9px; margin-left:auto; padding:10px 0; border:0; background:none; color:var(--muted); font-size:12px; }
.share-link svg { width:18px; height:18px; }
.share-link:hover { color:var(--accent); }
.article-cover { margin-top:0; margin-bottom:72px; }
.article-cover img { width:100%; aspect-ratio:16/9; object-fit:cover; border-radius:5px; }
.article-cover figcaption, .inline-figure figcaption { color:var(--muted); font-size:13px; line-height:1.6; margin-top:12px; }
.article-layout { display:grid; grid-template-columns:240px minmax(0,1fr); gap:64px; justify-content:start; align-items:start; }
.article-toc { position:sticky; top:110px; font-size:16px; }
.article-toc details { border-top:1px solid var(--line); padding-top:20px; }
.article-toc summary { font-weight:500; font-size:14px; text-transform:uppercase; letter-spacing:.09em; list-style:none; pointer-events:none; }
.article-toc summary::-webkit-details-marker { display:none; }
.article-toc nav { display:flex; flex-direction:column; gap:20px; margin-top:28px; }
.article-toc nav a { display:flex; align-items:baseline; gap:13px; text-decoration:none; color:#8e849c; font-size:12px; }
.article-toc nav a span { color:var(--muted); font-size:16px; line-height:1.6; }
.article-toc nav a[aria-current] span, .article-toc nav a:hover span { color:var(--accent); }
.toc-note { margin-top:36px; color:#aba1b7; font-size:11px; line-height:1.75; }
.article-body { min-width:0; font-size:22px; line-height:1.85; font-weight:400; color:#cbd0dc; }
.article-body p { margin:0 0 25px; }
.article-body .article-intro { font-size:26px; line-height:1.65; letter-spacing:-.02em; color:var(--ink); }
.article-body .demo-note { color:var(--muted); font-size:15px; line-height:1.7; border-bottom:1px solid var(--line); padding-bottom:32px; margin-bottom:0; }
.article-body h2 { margin:68px 0 24px; color:var(--ink); font-size:clamp(30px,3vw,40px); font-weight:500; line-height:1.2; letter-spacing:-.04em; scroll-margin-top:20px; text-wrap:balance; }
.article-body h3 { font-size:24px; color:var(--ink); line-height:1.4; font-weight:500; letter-spacing:-.025em; margin:36px 0 17px; }
.article-body strong { font-weight:600; color:var(--ink); }
.article-body a { color:var(--accent); text-decoration-thickness:1px; }
.article-body mark { background:#573e6c; color:inherit; padding:1px 3px; }
.article-body ul, .article-body ol { padding-left:26px; margin:25px 0 34px; }
.article-body li { padding-left:5px; margin:10px 0; }
.article-body li::marker { color:var(--accent); }
.article-body blockquote { margin:48px 0; padding:6px 0 6px 32px; border-left:2px solid #ac86d1; }
.article-body blockquote p { font-size:clamp(25px,3vw,34px); font-weight:400; letter-spacing:-.035em; line-height:1.4; color:var(--ink); margin:0 0 18px; }
.article-body cite { font-style:normal; font-size:14px; color:var(--muted); }
.article-callout { display:flex; align-items:flex-start; gap:22px; padding:28px 30px; margin:36px 0; border:1px solid #ffffff26; background:#b68bd315; border-radius:4px; font-size:16px; }
.callout-symbol { color:var(--accent); font-size:29px; line-height:1.2; }
.article-callout p { margin:8px 0 0; font-size:18px; line-height:1.75; }
.inline-figure { margin:36px 0; }
.inline-figure img { width:100%; border-radius:4px; }
.article-body hr { height:1px; background:var(--line); border:0; margin:45px 0; }
.article-body code { font: .8em/1.7 ui-monospace,SFMono-Regular,Consolas,monospace; padding:3px 6px; background:#ffffff12; border-radius:3px; color:#dcc1f0; }
.code-block { border-radius:6px; overflow:hidden; background:#1a1723; margin:30px 0 42px; color:#eee9f5; }
.code-toolbar { display:flex; justify-content:space-between; align-items:center; gap:20px; border-bottom:1px solid #ffffff15; padding:13px 20px; color:#afa5bd; font-size:11px; }
.code-toolbar button { background:none; color:#dfd3ed; border:1px solid #6d5b7b; border-radius:5px; padding:6px 10px; font-size:11px; }
.code-toolbar button:hover { background:#35283f; }
.code-block pre { margin:0; padding:25px; overflow-x:auto; font-size:14px; }
.code-block code { padding:0; color:#e3d5ef; background:none; font-size:inherit; }
.table-scroll { overflow-x:auto; margin:30px 0; border:1px solid var(--line); border-radius:4px; }
.article-body table { border-collapse:collapse; width:100%; min-width:530px; font-size:16px; line-height:1.65; }
.article-body caption { text-align:left; padding:16px 20px; color:var(--muted); font-size:12px; background:#ffffff08; }
.article-body th, .article-body td { padding:16px 20px; text-align:left; border-top:1px solid var(--line); }
.article-body th { font-weight:500; color:var(--ink); }
.article-body thead { background:#ffffff09; }
kbd { background:#ffffff09; border:1px solid #ffffff30; border-bottom-width:2px; border-radius:4px; padding:3px 7px; font:12px ui-monospace,monospace; }
.article-body abbr { text-underline-offset:4px; }
.article-body ul.article-checklist { padding:0; list-style:none; }
.article-checklist li { padding-left:30px; position:relative; }
.article-checklist li::before { content:'✓'; position:absolute; left:0; color:var(--accent); }
.article-disclosure { border-top:1px solid var(--line); }
.article-disclosure:last-of-type { border-bottom:1px solid var(--line); margin-bottom:30px; }
.article-disclosure summary { padding:19px 28px 19px 0; font-size:18px; color:var(--ink); font-weight:500; list-style:none; cursor:pointer; position:relative; }
.article-disclosure summary::-webkit-details-marker { display:none; }
.article-disclosure summary::after { content:'+'; position:absolute; right:2px; top:15px; color:var(--accent); font-size:24px; }
.article-disclosure[open] summary::after { content:'−'; }
.article-disclosure > div { padding-bottom:10px; font-size:18px; }
.article-signature { display:flex; gap:22px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:30px 0; margin-top:50px; }
.signature-mark { flex:0 0 50px; width:50px; height:50px; display:grid; place-items:center; border-radius:50%; background:#b08bd322; color:var(--accent); }
.signature-mark svg { width:28px; height:28px; }
.article-signature p { margin-bottom:12px; font-size:17px; line-height:1.7; }
.article-signature p.signature-eyebrow { color:var(--ink); font-size:11px; text-transform:uppercase; letter-spacing:.1em; margin-bottom:8px; }
.article-signature a { font-size:12px; }
.article-bottom-nav { display:flex; justify-content:space-between; gap:20px; font-size:12px; margin:25px 0 0; }
.journal-cta { width:min(1320px,calc(100% - 48px)); margin:110px auto 0; padding:62px max(36px,calc((100% - 1160px)/2)); display:flex; justify-content:space-between; align-items:center; gap:50px; color:#f7f4fc; border-radius:6px; background:radial-gradient(ellipse at 90% 0,#513663 0,transparent 70%),#1b1525; }
.journal-cta p { color:#c5b5d8; text-transform:uppercase; font-size:10px; letter-spacing:.14em; margin:0 0 18px; }
.journal-cta h2 { font-size:clamp(30px,3.6vw,48px); font-weight:400; line-height:1.2; letter-spacing:-.04em; margin:0; }
.journal-cta a { display:flex; justify-content:space-between; align-items:center; gap:28px; font-size:13px; padding:16px 22px; border:1px solid #b09bbd; border-radius:30px; text-decoration:none; white-space:nowrap; }
.journal-cta a:hover { background:#f4edf8; color:#201629; }
.journal-footer { width:min(1160px,calc(100% - 96px)); margin:auto; padding:35px 0; display:flex; justify-content:space-between; gap:24px; font-size:10px; color:var(--muted); }
.journal-footer a { text-decoration:none; }
.copy-status { position:fixed; bottom:24px; left:50%; transform:translateX(-50%); margin:0; z-index:10001; background:#211b2b; color:#fff; padding:12px 18px; border-radius:6px; font-size:12px; max-width:calc(100% - 36px); box-shadow:0 8px 40px #0002; }
.copy-status:empty { display:none; }
.reading-progress { position:fixed; inset:0 0 auto; height:2px; z-index:100; pointer-events:none; }
.reading-progress span { display:block; width:100%; height:100%; background:#9b72be; transform-origin:left; transform:scaleX(0); }
.journal-intro { padding-top:80px; padding-bottom:75px; }
.journal-eyebrow { margin:0 0 24px; font-size:11px; letter-spacing:.11em; text-transform:uppercase; color:var(--muted); }
.journal-intro h1 { font-size:clamp(65px,9vw,112px); }
.journal-intro > p:last-child { font-size:21px; line-height:1.6; color:var(--muted); margin:28px 0 0; }
.section-heading { display:flex; justify-content:space-between; gap:20px; align-items:center; border-top:1px solid var(--line); padding-top:24px; margin-bottom:30px; }
.section-heading h2 { font-size:17px; font-weight:500; margin:0; }
.section-heading > span { font-size:11px; color:var(--muted); }
.featured-story { display:grid; grid-template-columns:1.3fr 1fr; gap:48px; align-items:center; text-decoration:none; }
.story-image { border-radius:5px; overflow:hidden; }
.story-image img { width:100%; aspect-ratio:4/3; object-fit:cover; transition:transform .65s; }
.featured-story:hover .story-image img { transform:scale(1.025); }
.story-copy h3 { font-size:clamp(26px,3.1vw,40px); line-height:1.2; font-weight:500; letter-spacing:-.04em; margin:20px 0; }
.story-copy p { font-size:15px; line-height:1.75; color:var(--muted); margin:0 0 26px; }
.story-link { display:inline-flex; align-items:center; gap:30px; font-size:12px; border-bottom:1px solid #ffffff50; padding-bottom:10px; color:var(--accent); }
.story-date { display:block; font-size:12px; color:var(--muted); margin-bottom:20px; }
.recherche-index .story-image img { aspect-ratio:16/9; }
.recherche-article .article-toc nav a > span:first-child { font-size:12px; color:#8e849c; }
.editorial-data { margin:42px 0; border:1px solid var(--line); border-radius:6px; background:radial-gradient(ellipse at 100% 0,#51366345,transparent 70%),#0c0a12; padding:30px; }
.data-heading > span { text-transform:uppercase; letter-spacing:.12em; font-size:11px; color:var(--accent); }
.article-body .data-heading h3 { margin:12px 0 28px; font-size:28px; }
.data-cards { display:grid; grid-template-columns:1fr 1fr; gap:26px; margin:0; }
.data-cards > div { border-top:1px solid var(--line); padding-top:20px; }
.data-cards > div:last-child { grid-column:1 / -1; }
.data-cards dt { font-size:clamp(34px,4vw,48px); color:#e1c8fa; letter-spacing:-.05em; line-height:1.2; }
.data-cards > div:nth-child(2) dt { color:#e5b18c; }
.data-cards dd { margin:12px 0 0; font-size:17px; line-height:1.65; }
.data-cards small { display:block; color:var(--muted); font-size:12px; margin-top:10px; }
.editorial-data figcaption { font-size:12px; line-height:1.7; color:var(--muted); border-top:1px solid var(--line); margin-top:26px; padding-top:16px; }
.article-body .article-sources { border-top:1px solid var(--line); margin-top:58px; }
.article-body .article-sources h2 { font-size:28px; margin-top:32px; }
.article-sources > p, .article-sources li { font-size:15px; line-height:1.85; overflow-wrap:anywhere; }
.article-sources li { margin-bottom:18px; scroll-margin-top:110px; }
.action-plan li { margin-bottom:24px; }
.article-contact-link { display:inline-flex; gap:24px; align-items:center; border-bottom:1px solid var(--accent); padding:10px 0; text-decoration:none; }
@media (max-width:760px) {
 .editorial-data { padding:24px 20px; }
 .data-cards { grid-template-columns:1fr; gap:24px; }
 .data-cards > div:last-child { grid-column:auto; }
 .data-cards dt { font-size:42px; }
 .recherche-article .article-eyebrow { flex-wrap:wrap; }
 .recherche-article .article-cover img { aspect-ratio:16/9; }
 .recherche-article table { min-width:0; font-size:14px; }
 .recherche-article th, .recherche-article td { padding:13px 10px; }
 .recherche-index .section-heading { align-items:flex-start; }
 .recherche-index .section-heading > span { max-width:150px; text-align:right; line-height:1.6; }
}
.journal-demo-disclaimer { margin-top:32px; font-size:12px; color:var(--muted); line-height:1.7; }
@media (max-width:1050px) {
 .journal-header { gap:25px; } .journal-navigation { gap:18px; }
 .article-layout { grid-template-columns:170px minmax(0,1fr); gap:40px; }
 .article-body { font-size:20px; } .article-deck { font-size:20px; }
}
@media (max-width:760px) {
 .editorial-wrap, .journal-footer { width:calc(100% - 40px); }
 .journal-header { width:calc(100% - 40px); min-height:78px; flex-wrap:wrap; gap:0; padding:20px 0 13px; }
 .journal-brand { font-size:21px; } .journal-contact { margin-left:auto; padding:9px 15px; }
 .journal-navigation { order:3; flex:1 0 100%; margin:19px 0 0; justify-content:space-between; gap:15px; }
 .journal-navigation a { font-size:11px; padding:5px 0; }
 .article-header { padding-top:25px; } .breadcrumbs { font-size:12px; gap:8px; }
 .article-eyebrow { margin-top:38px; gap:12px; font-size:13px; }
 .article-header h1 { font-size:clamp(40px,7.5vw,58px); line-height:1.12; letter-spacing:-.05em; }
 .article-deck { font-size:18px; line-height:1.6; margin:24px 0; }
 .article-meta { flex-wrap:wrap; gap:11px; font-size:12px; padding-bottom:28px; }
 .meta-separator { margin:0 3px; } .author-mark { width:34px; height:34px; }
 .share-link { flex:1 0 100%; margin-top:10px; font-size:11px; }
 .article-cover { margin-bottom:30px; } .article-cover img { aspect-ratio:4/3; }
 .article-cover figcaption { font-size:12px; }
 .article-layout { display:block; }
 .article-toc { position:static; margin-bottom:35px; }
 .article-toc details { padding:17px 0; border-bottom:1px solid var(--line); }
 .article-toc summary { pointer-events:auto; cursor:pointer; }
 .article-toc summary::after { content:'−'; float:right; font-size:17px; }
 .article-toc details:not([open]) summary::after { content:'+'; }
 .article-toc nav { display:grid; grid-template-columns:1fr 1fr; gap:15px 20px; margin-top:22px; }
 .toc-note { display:none; }
 .article-body { font-size:19px; line-height:1.8; }
 .article-body .article-intro { font-size:23px; }
 .article-body h2 { margin-top:48px; font-size:32px; }
 .article-body h3 { font-size:23px; }
 .article-body blockquote { padding-left:23px; margin:36px 0; }
 .article-callout { padding:23px 20px; gap:15px; }
 .code-toolbar { padding:12px 14px; font-size:10px; gap:10px; }
 .code-toolbar button { font-size:10px; } .code-block pre { font-size:12px; padding:20px 16px; }
 .article-signature { gap:16px; } .signature-mark { flex-basis:40px; width:40px; height:40px; }
 .journal-cta { width:calc(100% - 24px); padding:38px 26px; margin-top:65px; flex-direction:column; align-items:flex-start; gap:28px; }
 .journal-cta h2 { font-size:34px; } .journal-cta a { padding:13px 18px; }
 .journal-footer { flex-wrap:wrap; padding:26px 0; gap:16px; }
 .journal-intro { padding-top:50px; padding-bottom:50px; }
 .journal-intro > p:last-child { font-size:18px; }
 .section-heading > span { font-size:9px; }
 .featured-story { grid-template-columns:1fr; gap:25px; }
 .story-image img { aspect-ratio:16/11; }
 .story-copy h3 { font-size:32px; } .story-copy p { font-size:15px; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { transition:none !important; animation:none !important; } }

@media (max-width:900px) {
 .journal-header-shell .main-header { width:calc(100% - 48px); }
}
@media (prefers-reduced-motion:reduce) { #journal-webgl { display:none; } }
