@font-face{font-family:'Public Sans';src:url('/assets/public-sans-variable.ttf') format('truetype');font-weight:100 900;font-display:swap}
@font-face{font-family:'Open Sans';src:url('/assets/open-sans-latin-variable.woff2') format('woff2');font-weight:300 800;font-display:swap}

/* Standalone publications share the landing palette, type and navigation. */
.research-theme{--publication-paper:#f6f4ef;--publication-ink:#242229;--paper:var(--publication-paper);--ink:var(--publication-ink)}
.research-theme.dark-style{--publication-paper:#000;--publication-ink:#f1eef6;--paper:var(--publication-paper);--ink:var(--publication-ink)}
html.research-theme,body.publication-document{background:var(--publication-paper);color:var(--publication-ink);font-family:'Public Sans',Arial,sans-serif;margin:0;min-height:100%;height:auto}
.publication-document{padding-top:72px}
.publication-document .topbar{position:fixed;inset:0 0 auto;z-index:100;min-height:72px;padding:0 var(--gutter);gap:24px;border:0;border-radius:0;background:color-mix(in srgb,var(--paper) 85%,transparent);backdrop-filter:blur(18px);transform:none;opacity:1}
.publication-document .topbar::before{inset:auto 0 0;height:1px;padding:0;border-radius:0;mask:none;-webkit-mask:none;opacity:1}
.publication-document .desktop-nav{display:flex;align-items:center;gap:24px;font:550 12px/1.6 'Open Sans',Arial,sans-serif}
.publication-document .header-actions{display:flex;align-items:center;gap:16px;font:600 12px/1.6 'Open Sans',Arial,sans-serif}
.publication-document .account-link{white-space:nowrap}
.publication-document .wordmark{position:relative;display:inline-block;line-height:1.2;padding-bottom:8px;font-size:21px;letter-spacing:-1px;font-weight:750;color:var(--ink);background:none;white-space:nowrap}
.publication-document .wordmark-ai{font-weight:450}
.publication-document .wordmark::after{content:'';position:absolute;left:0;right:0;bottom:0;height:5px;background:url('/assets/spectrum-brush.svg') center/100% 100% no-repeat;pointer-events:none}
.publication-document .theme-toggle{display:grid;place-items:center;background:transparent;border:0;color:inherit;width:32px;height:32px;padding:5px;flex-shrink:0}
.publication-document .theme-toggle svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.publication-document .theme-icon-moon{display:none}
.dark-style .publication-document .theme-icon-sun{display:none}
.dark-style .publication-document .theme-icon-moon{display:block}
.publication-document .theme-toggle:hover{opacity:.7}
.publication-menu{display:none}
.publication-menu summary{list-style:none;cursor:pointer;font:600 12px 'Open Sans',Arial,sans-serif;min-height:44px;align-items:center;gap:8px;color:var(--ink)}
.publication-menu summary::-webkit-details-marker{display:none}
.publication-menu .mobile-nav{padding:16px var(--gutter);border-radius:0;border-color:var(--line);background:var(--paper)}
.publication-menu .mobile-nav a{font:550 14px/1.6 'Open Sans',Arial,sans-serif;border-radius:0}
.publication-menu .mobile-nav [aria-current]{color:var(--accent)}
.publication-document :is(a,button,input,select,summary):focus-visible{outline:2px solid var(--accent);outline-offset:4px}

/* Homepage main passes gestures to its background atlas; documents own input. */
.publication-document main{pointer-events:auto}
.publication-document #app-page{padding:32px var(--gutter);max-width:1440px;margin:auto;scroll-margin-top:96px}
.publication-document .content-frame{max-width:1200px;margin:auto;padding:0}
.publication-document :is(h1,h2,h3){text-shadow:none}
.publication-document .research-intro h1{font-size:clamp(48px,6.5vw,92px);font-weight:550;line-height:1.04;letter-spacing:-.06em}
.publication-document .serif{font-family:Georgia,'Times New Roman',serif;font-weight:400;font-style:italic;letter-spacing:-.055em}
.publication-document :is(.publication-copy h2,.publication-heading h1,.research-feature h2){font-weight:550;letter-spacing:-.045em}
.publication-document .publication-heading{padding-top:40px}
.publication-document .publication-back{font:600 12px/1.6 'Open Sans',Arial,sans-serif;margin-bottom:24px}
.publication-document .publication-byline{font-size:13px}
.publication-document .publication-summary{display:grid;gap:18px;padding:40px 0}
.publication-document .publication-summary p{max-width:760px}
.publication-document :is(.publication-cover,.research-preview,.publication-frame){border-radius:0;box-shadow:none;border-color:var(--line)}
.publication-document .publication-cover>span,.publication-document .research-preview>span{font-family:'Open Sans',Arial,sans-serif}
.publication-document img{max-width:100%;height:auto}
.publication-document .publication-reader{margin-top:24px;scroll-margin-top:96px}
.publication-document .publication-reader-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.publication-document .publication-frame{display:block;width:100%;height:80vh;min-height:500px;background:white;border:1px solid var(--line)}
.publication-document .publication-reader-help{margin:14px 0 24px}
.publication-document .publication-accent{color:var(--ink);background:none}
.publication-document :is(button,.button,input,select){border-radius:0;font-family:'Open Sans',Arial,sans-serif}
.publication-document .button{min-height:44px;border:1px solid var(--line);padding:12px 18px;font-size:12px}
.publication-document .publication-github{color:var(--ink);background:color-mix(in srgb,var(--paper) 90%,var(--accent));position:relative}
.publication-document .publication-github:hover{color:var(--ink);background:color-mix(in srgb,var(--paper) 82%,var(--accent))}
.publication-document .brush-link{position:relative;display:inline-flex;align-items:center;justify-content:space-between;gap:18px;align-self:flex-start;min-height:44px;padding:8px 0 14px;border:0;background:none;color:var(--ink);font:600 12px/1.6 'Open Sans',Arial,sans-serif;white-space:nowrap}
.publication-document .brush-link>span{font-size:19px;font-weight:400;line-height:1;transition:transform 180ms ease}
.publication-document .brush-link::after{content:'';position:absolute;left:-1px;right:-1px;bottom:3px;height:7px;background:url('/assets/spectrum-brush.svg') center/100% 100% no-repeat;pointer-events:none}
.publication-document .brush-link:hover>span{transform:translate(2px,-2px)}
.publication-document .publication-actions{gap:20px 28px;align-items:center}
.publication-document .publication-footer{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;max-width:1440px;margin:24px auto 0;padding:32px var(--gutter);border-top:1px solid var(--line);font-size:12px;color:var(--muted)}
.publication-footer nav{display:flex;gap:24px;font-family:'Open Sans',Arial,sans-serif}

/* Keep the data workspace wide, with the same quiet rectangular surfaces. */
.publication-document.atlas-page #app-page{max-width:none;padding:20px var(--gutter)}
.publication-document.atlas-page #workspace{margin:0;min-height:calc(100vh - 150px)}
.publication-document.atlas-page .intro{padding-top:20px;padding-bottom:28px}
.publication-document.atlas-page .intro h1{font-size:clamp(32px,4vw,56px);line-height:1.1;font-weight:550;letter-spacing:-.045em}
.publication-document.atlas-page :is(.plot-wrap,.results-panel,.tour-invitation,.search-panel,.word-input,.group-open,.filters,.guide-dialog,.tour-card){border-radius:0}
.publication-document #help-open{position:static;display:block;width:auto;margin:0 0 8px auto;float:none}
.publication-document.atlas-page .snapshot strong{font-weight:500}

@media(max-width:1100px){
 .publication-document .desktop-nav{display:none}
 .publication-menu{display:block}
 .publication-menu summary{display:flex}
 .publication-document .topbar{gap:16px}
}
@media(max-width:600px){
 .publication-document .topbar{padding:0 20px;min-height:72px}
 .publication-document .header-actions{gap:10px}
 .publication-document .header-actions>.account-link{display:none}
 .publication-document .wordmark{font-size:20px}
 .publication-document #app-page{padding:24px 20px}
 .publication-document .publication-heading{padding-top:20px}
 .publication-document .publication-actions{align-items:flex-start;gap:18px}
 .publication-document .publication-frame{min-height:420px}
 .publication-document .publication-footer{padding:28px 20px;align-items:flex-start;flex-direction:column}
 .publication-document.atlas-page #app-page{padding:16px}
 .publication-document.atlas-page .intro h1{font-size:32px}
}
