/* Shared editorial finish. Route styles continue to own working geometry. */
body{background:var(--paper)}
h1,h2,h3{font-family:var(--display);font-weight:600;letter-spacing:-.015em;line-height:1.22;color:var(--heading)}
button,input,textarea,select{font-family:var(--serif);font-optical-sizing:auto}
button,select,input:not([type=range]):not([type=checkbox]){font-size:16px}
input:not([type=range]):not([type=checkbox]),textarea,select{color:var(--ink);background-color:var(--card)}
input::placeholder,textarea::placeholder{color:var(--muted);opacity:.85}
textarea{font-size:18px}
:where(p,li){text-wrap:pretty}
.eyebrow,.section-label,.edition,.experiment-top,.frame-number,.preview-meta{font-family:var(--mono);font-weight:400;letter-spacing:.055em}
.eyebrow{color:var(--muted)}
:is(.metric,.metrics,.outcome-grid) strong,.metric-value strong,.readout b,.result-value,.gate-number{font-family:var(--display);font-weight:500;letter-spacing:0;font-variant-numeric:tabular-nums}
:is(svg,.chart,.flow-chart,.energy-chart) text{font-family:var(--mono);font-weight:400}
:is(.heading,.page-heading,.page-top,.work-top,.experiment-header,.intro) h1{font-size:clamp(34px,3.1vw,46px);line-height:1.13;letter-spacing:-.02em}
:is(.heading,.page-heading,.page-top,.experiment-header) p:not(.eyebrow),.lede{font-size:18px;line-height:1.5}
:is(.field,.setting,.range-control) label{font-size:16px}
:is(.field textarea,.field select,.text-input){font-size:18px;line-height:1.5}
:is(.problem-input,.problem-bar>textarea,.problem-box textarea){font-family:var(--serif);font-weight:400;letter-spacing:-.015em;background:transparent}
:is(.panel,.surface,.chart-panel,.controls-panel,.frame-card,.comparison-card,.problem-bar,.problem-box,.route,.map-frame,.test-panel){border-radius:4px;box-shadow:none}
:is(button.primary,.button.primary,.primary-button,.btn.primary){background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
:is(button.primary,.button.primary,.primary-button,.btn.primary):hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}
:is(.toast,#notice,#toast){background:var(--ink);color:var(--paper)}
dialog{background:var(--paper);border-color:var(--line);border-radius:4px;box-shadow:0 18px 70px color-mix(in srgb,var(--shadow-ink) 25%,transparent)}
dialog::backdrop{background:color-mix(in srgb,var(--shadow-ink) 48%,transparent)}
:is(button,a,input,select,textarea,summary):focus-visible{outline:2px solid var(--accent);outline-offset:4px}
.lab-header{background:var(--paper);border-color:var(--line);min-height:94px;gap:26px;padding-block:20px}
.lab-brand{font-family:var(--display);font-size:30px;font-weight:600;letter-spacing:-.035em;color:var(--heading)}
.lab-mark{display:none}
.lab-nav{margin-left:auto;gap:14px}
.lab-nav label{font-size:16px;color:var(--muted)}
.lab-nav select{background:transparent;border-color:var(--line);border-radius:3px;color:var(--ink);font-size:16px;max-width:350px}
.lab-appearance{display:inline-flex;align-items:center;gap:9px;border:0;background:transparent;color:var(--ink);min-width:44px;min-height:44px;padding:5px;font-size:17px;line-height:1.2}
.lab-appearance:hover{background:transparent;color:var(--accent)}
.lab-appearance svg{width:23px;height:23px;flex:none;transition:transform .25s ease}
:root[data-theme=dark] .lab-appearance svg{transform:rotate(180deg)}
.lab-footer{font-size:15px;line-height:1.5;color:var(--muted);border-color:var(--line)}
.lab-footer a{color:inherit}
.gallery{padding-top:46px}
.gallery-intro{align-items:center;padding-bottom:38px}
.gallery-intro h1{font-size:clamp(48px,5.5vw,78px);line-height:1.1;font-weight:700;letter-spacing:-.025em}
.gallery-intro .eyebrow{font-size:12px;margin-bottom:24px}
.intro-note{width:340px}
.intro-note p{font-size:25px;line-height:1.35}
.intro-note .edition{font-size:11px;color:var(--muted)}
.note-small{font-size:15px}
.collection-heading{margin-top:30px}
.filters button{background:transparent;color:var(--ink);border-color:var(--line);border-radius:3px;font-size:17px}
.filters button[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.search-label{font-size:15px;color:var(--muted)}
.search-label input{background:var(--card);border-color:var(--line);border-radius:3px;font-size:17px}
.catalog-count{color:var(--muted);font:12px var(--mono);margin:0 0 24px}
.experiment-grid>.experiment{border-radius:3px;background:var(--card);box-shadow:none;transition:border-color .18s,transform .18s,box-shadow .18s}
.experiment-grid>.experiment:hover{border-color:var(--accent);transform:translateY(-2px);box-shadow:3px 4px 0 var(--paper),4px 5px 0 var(--line)}
.experiment-top{font-size:11px;color:var(--muted)}
.experiment-top .type{color:var(--muted)}
.experiment-copy h3{font-size:29px;line-height:1.2;letter-spacing:-.02em;font-weight:600}
.experiment-copy p{font-size:19px;line-height:1.4;color:var(--muted)}
.experiment-copy .try{font-size:16px;line-height:1.45;color:var(--muted)}
.experiment-copy .try strong{font:10px var(--mono);letter-spacing:.05em;color:var(--ink)}
.specimen{border-bottom:1px solid var(--line);margin-bottom:17px}
.gallery-note{padding-top:24px}
.gallery-note h2{font-size:23px}.gallery-note p,.gallery-note a{font-size:17px}
.about{max-width:900px}.about h1{font-size:54px}.about .lede{font-size:26px}.about h2{font-size:28px}.about p,.about li{font-size:20px;line-height:1.55}
@media(max-width:850px){.lab-appearance span{display:none}.intro-note{width:270px}.intro-note p{font-size:22px}}
@media(max-width:650px){
 .lab-header{display:grid;grid-template-columns:1fr auto;padding:19px 20px 17px;gap:15px 12px}
 .lab-brand{font-size:28px}.lab-appearance{grid-column:2;grid-row:1;justify-self:end}
 .lab-nav{grid-column:1/-1;grid-row:2;width:100%;margin:0}.lab-nav select{max-width:none;width:100%}
 .lab-footer{font-size:14px}.gallery{padding-top:30px}.gallery-intro{align-items:start;gap:25px}
 .gallery-intro h1{font-size:53px}.gallery-intro .eyebrow{font-size:10px;margin-bottom:19px}.intro-note{width:100%}
 .intro-note p{font-size:22px;line-height:1.4}.note-small{font-size:14px}.filters button{font-size:17px}
 .experiment-copy h3{font-size:28px}.experiment-copy p{font-size:19px}.experiment-copy .try{font-size:16px}
 .gallery-note a{white-space:normal}.about h1{font-size:40px}.about p,.about li{font-size:19px}
 :is(.heading,.page-heading,.page-top,.work-top,.experiment-header,.intro) h1{font-size:34px}
 .gallery-intro h1{font-size:53px}
}
@media print{
 :root,:root[data-theme=dark]{--paper:white;--card:white;--ink:#24212c;--heading:#24212c;--muted:#686170;--line:#c9c2d1;--accent:#594278;--surface:#eee9f3;--accent-soft:#eee9f3;--on-accent:white;color-scheme:light}
 .lab-appearance{display:none}
}

/* Icon spans are not count badges; keep their primary-button contrast. */
.button.primary>span[aria-hidden]{background:transparent;color:inherit}
