/* Shared reading and interaction scale. Loaded after each page's layout CSS.
   16px primary text, 14px supporting text at the default browser size.
   rem units respect the reader's font settings; no fixed-height text boxes. */
body{font-size:1rem;line-height:1.6}
h1,h2,h3{overflow-wrap:anywhere;text-wrap:balance}
p{overflow-wrap:break-word}
.site-header{height:auto;min-height:6rem;padding-block:1rem;flex-wrap:wrap;gap:.5rem 2rem}
.site-header nav{font-size:1rem;flex-wrap:wrap;gap:.25rem 1.5rem}
.site-header nav a{min-height:2.75rem;display:inline-flex;align-items:center}
.small-logo,.site-header .small-logo{font-size:1.75rem;letter-spacing:-.06em;white-space:normal;overflow-wrap:anywhere;max-width:100%;min-width:0}
.site-header nav{min-width:0;max-width:100%}
.header-note{font-size:.875rem}
footer{display:flex;flex-wrap:wrap;gap:.5rem 1.5rem}
footer>a:not(.small-logo){font-size:.875rem;min-height:2.75rem;display:inline-flex;align-items:center}
footer>span{font-size:.875rem}
.btn,.outline-btn,.text-btn,.primary-link,.share-button,.sample-play,.exhibit-play,.filter,.idea-tabs button{font-size:1rem;line-height:1.4;min-height:2.75rem;white-space:normal}
.btn,.outline-btn,.primary-link,.share-button{max-width:100%;overflow-wrap:anywhere}
input,select,textarea,.contact-form input,.contact-form textarea,.studio-layout input,.studio-layout select,.search-label input{font-size:1rem;min-width:0}
.contact-form label,.studio-layout label,.search-label{font-size:1rem}
.idea-story,.idea-detail,.steps p,.lab-home-link p,.document-page p,.idea-explanation>div>p:not(.section-kicker),.manifesto-bottom>div p{font-size:1rem;line-height:1.65}
.hero{max-width:1600px;margin:auto}
.hero-stage{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:2rem;align-items:center;height:auto;min-height:0;max-height:none;padding:4rem 0;overflow:visible}
.hero-intro{position:static;width:auto;padding:0;pointer-events:auto;min-width:0}
.hero h1{font-family:Arial,Helvetica,sans-serif;font-size:clamp(2.75rem,2rem + 3.3vw,5rem);font-weight:800;line-height:1.04;letter-spacing:-.055em;margin:0;transform:none}
.hero h1 em{font-style:normal;color:var(--ink)}
.hero-intro .section-kicker{font-size:.875rem;margin-bottom:1.5rem}
.hero-intro .hero-summary{font-size:1.125rem;margin-top:1.5rem;line-height:1.6}
.hero-intro .hero-disclosure{font-size:.875rem;margin-top:.75rem}
.hero-object{position:relative;inset:auto;width:100%;max-width:none;z-index:0;grid-column:2;grid-row:1;margin:0;min-width:0}
.toy-caption{position:static;grid-column:2;transform:none;white-space:normal;font-size:.875rem;justify-content:center;margin-top:-2rem}
.hero-bottom{gap:1rem;flex-wrap:wrap;padding:1rem 0;font-size:.875rem}
.hero-bottom>span:last-child{display:block}
.hero-bottom>span:first-child{max-width:none}
.hero-bottom a{min-height:2.75rem}
.section-space{padding-block:5rem}
.section-heading h2,.manifesto h2,.how h2,.closing h2,.catalog-heading h1,.idea-copy h1,.document-page h1,.corporate-heading h1,.news-article .corporate-heading h1{font-size:clamp(2.25rem,1.75rem + 2.5vw,4rem);line-height:1.1;letter-spacing:-.045em}
.exhibit h3,.studio-heading h2,.idea-explanation h2{font-size:clamp(2rem,1.5rem + 2vw,3rem);line-height:1.15}
.section-heading>p{font-size:1.125rem;max-width:28rem}
.manifesto-bottom{margin-top:2.5rem}
.manifesto-bottom>p{font-size:1.5rem;line-height:1.4}
.manifesto h2{max-width:20ch}
.closing h2{font-size:clamp(3rem,2rem + 5vw,6rem)}
.idea-tabs{flex-wrap:wrap;gap:.25rem 1.5rem;margin-bottom:2rem}
.idea-price{flex-wrap:wrap;font-size:1rem;gap:.5rem 1rem}
.exhibit-stage{display:flex;flex-direction:column;gap:1rem;padding:1.5rem;min-width:0;overflow:visible}
.exhibit-mark,.sample-label,.exhibit-play{position:static;inset:auto}
.exhibit-mark{align-self:flex-start}
.sample-label{margin-top:auto}
.rock-art{max-width:100%;flex-shrink:0}
.certificate-art{transform:none;width:100%;max-width:24rem}
.exhibit-play{flex-shrink:0}
.idea-layout>*,.exhibit>*,.studio-layout>*,.how>*{min-width:0}
.idea-lead{font-size:1.375rem;line-height:1.45}
.idea-visual{position:static;overflow:visible}
.card-title h2{font-size:1.5rem;line-height:1.25}
.idea-card p{font-size:1rem}
.card-meta{flex-wrap:wrap;font-size:.875rem}
.catalog-heading{align-items:center}
.catalog-heading>div:last-child{max-width:24rem}
.search-label{flex-wrap:wrap}
.search-label input{max-width:100%}
.consent-box{display:block}
.consent-box>div{display:flex;flex-wrap:wrap;margin-top:1rem}
.consent-box p{font-size:1rem}
.consent-box h2{font-size:1.5rem;line-height:1.3}
.corporate-body,.corporate-body table,.corporate-body th,.corporate-body td{font-size:1rem;line-height:1.65}
.company-nav{font-size:1rem;gap:.25rem 1.5rem}
.company-nav a{min-height:2.75rem}
.corporate-intro{font-size:1.25rem;line-height:1.6}
.corporate-body h2,.document-page h2{font-size:1.75rem;line-height:1.3}
.corporate-body h3,.news-list h2{font-size:1.25rem;line-height:1.5}
.document-page{max-width:56rem}
.document-page p,.corporate-body p{max-width:65ch}
@media(max-width:800px){
 .hero-stage{grid-template-columns:1fr;padding:2.5rem 0;gap:1.5rem}
 .hero-object{grid-column:1;grid-row:auto;max-width:38rem;justify-self:center}
 .toy-caption{grid-column:1;margin-top:0}
 .hero-intro{max-width:38rem}
 .section-space{padding-block:3.5rem}
 .idea-layout,.exhibit,.studio-layout,.how,.section-heading,.manifesto-bottom,.idea-explanation{display:grid;grid-template-columns:1fr;gap:2rem}
 .idea-visual{max-width:38rem;justify-self:center;width:100%}
 .catalog-heading{display:block}
 .catalog-heading>div:last-child{margin-top:1.5rem;max-width:none}
 .section-heading>p{justify-self:start}
 .header-note{display:none}
}
@media(max-width:480px){
 :root{--gutter:20px}
 .site-header{align-items:flex-start;flex-direction:column}
 .site-header nav{gap:.25rem 1.25rem}
 .idea-grid{grid-template-columns:1fr}
 .card-title{display:flex}
 .card-meta{display:flex}
 .corporate-body th,.corporate-body td{display:block;width:100%;padding:.75rem 0}
 .corporate-body th{border-bottom:0;padding-bottom:0}
 .corporate-body td{padding-top:.5rem}
 .steps li{gap:1rem}
}
