/* OLESJA interaction scale. See docs/mobile-ui-audit-2026-10-06.md. */
:root{--ui-control:3rem;--ui-gap:.5rem;--ui-body:1rem;--ui-small:.875rem}
html{font-size:100%;scroll-padding-top:5rem}
body{font-size:var(--ui-body)}
button,input,select,textarea{font-family:var(--sans)}
a,button,summary,label,input{touch-action:manipulation}
.nav-inner{min-height:4rem;height:auto;padding-block:.5rem}
.nav-links{font-size:1rem;gap:1.25rem}
.nav .logo{display:inline-flex;align-items:center;min-height:2.75rem;font-size:1.0625rem}
.mobile-menu summary{font-size:1rem;line-height:1.25;min-height:2.75rem;display:flex;align-items:center;padding:.625rem .75rem}
.mobile-links{top:100%;max-height:calc(100svh - 4rem);padding:.5rem 1rem 1rem}
.mobile-links a{font-size:1rem;min-height:var(--ui-control)}
.nav-utility{display:none!important}
.button,.share-button,.winner-cta{font-size:1rem;line-height:1.35;min-height:var(--ui-control);padding:.625rem 1rem;white-space:normal;text-align:center;justify-content:center}
.reading-head,.situation-hero{padding-block:6rem 1.5rem}
.reading-head h1,.situation-hero h1{font-size:clamp(2rem,3.6vw,3rem);line-height:1.12;letter-spacing:-.035em;margin:1rem 0}
.lead,.situation-hero .lead{font-size:1.125rem;line-height:1.5}
.eyebrow,.label,.search-box label,.facet-group strong{font-size:.875rem;line-height:1.4;letter-spacing:.035em}
.library-shell,.home .library-shell{padding-block:1.5rem 2.5rem}
.library-tools{gap:1rem;margin-bottom:1rem}
.search-box input{min-height:var(--ui-control);font-size:1rem;line-height:1.5;padding:.625rem .875rem;border-radius:.5rem}
.filter-row,.situation-shortcuts{flex-wrap:wrap;overflow:visible;gap:.5rem;margin-inline:0;padding-inline:0;padding-bottom:0}
.filter-chip,.home .library-shell .filter-chip,.situation-shortcuts a,.active-filters button{font-size:1rem;line-height:1.25;font-weight:650;min-height:var(--ui-control);min-width:2.75rem;padding:.625rem .875rem;white-space:normal}
.active-strip{position:static;flex-wrap:wrap;margin-block:1rem;background:transparent}
.active-filters span,.result-count{font-size:.875rem;letter-spacing:0;text-transform:none}
.situation-card{padding:1.25rem;border-radius:.75rem}
.situation-card h2,.article-card h2{font-size:clamp(1.5rem,2.6vw,2rem);line-height:1.2;margin-bottom:.875rem}
.situation-card .answer{font-size:1.0625rem;line-height:1.5;font-weight:600}
.situation-card .meta{gap:.375rem;margin-bottom:.75rem}
.situation-card .meta span,.age-relevance-hook{font-size:.8125rem;letter-spacing:0;padding:.25rem .5rem}
.situation-card .today{padding:1rem;margin-block:1rem}
.prose{font-size:1.125rem;line-height:1.65}
.prose h2{font-size:1.75rem;line-height:1.2;margin:2rem 0 1rem}
.article-layout{padding-block:1.75rem 3rem}
.contents{font-size:1rem;top:5rem}
.contents a,.source-section summary{min-height:2.75rem}
.source-section summary{padding-block:.5rem}
.single-page{padding-block:1.5rem 3rem}
.reading-footer{padding-block:2rem}.reading-footer p{font-size:1.375rem}.reading-footer nav{font-size:1rem;gap:.5rem 1.25rem}
.claim-label{font-size:.8125rem;letter-spacing:.025em}
a.claim-label{display:inline-flex;align-items:center;justify-content:center;min-height:2.75rem;min-width:2.75rem;padding:.375rem .625rem}
/* A short, stable entry screen; the original animated sky stays. */
.home .home-film{height:auto}
.home .home-stage{position:relative;height:auto;min-height:0}
.home .stage-intro{height:auto;padding-block:8rem 3.5rem;opacity:1!important;transform:none!important;pointer-events:auto!important}
.home .stage-intro h1{font-size:clamp(2rem,4.5vw,3.75rem);line-height:1.08;max-width:48%;margin:1rem 0;letter-spacing:-.045em}
.home .stage-intro .stage-lead{font-size:1.125rem;line-height:1.5;max-width:44%;margin-bottom:1.5rem}
.home .stage-actions a{font-size:1rem;line-height:1.3;min-height:var(--ui-control);padding:.625rem 1rem}
.home .stage-actions{gap:.5rem;max-width:48%}
.home .stage-chapter,.home .stage-footer{display:none}
.home .motion-toggle{top:5rem;font-size:.875rem;min-height:2.75rem}
.home .home-story{padding-block:2rem}
.home .story-heading{margin-block:1rem 1.5rem;gap:1.25rem}
.home .story-heading h2{font-size:clamp(1.75rem,3vw,2.5rem);line-height:1.15}
.home .story-heading p,.home .signal-response p{font-size:1rem;line-height:1.5}
.home .signal-list button{min-height:4.5rem;padding:.875rem .5rem;gap:.75rem;grid-template-columns:2rem 1fr minmax(12rem,.6fr) 1.5rem}
.home .signal-name{font-size:1.375rem;line-height:1.2}
.home .signal-explain{font-size:1rem;line-height:1.4}
.home .signal-response{padding-top:1.25rem;gap:1rem}
.home .signal-response a{font-size:1rem;min-height:var(--ui-control);padding:.625rem 1rem;white-space:normal}
/* Decision utility: readable controls in a denser frame. */
.utility-page .utility-hero{min-height:0}
.utility-page .utility-hero .wrap{padding-block:6rem 1.5rem}
.utility-page .utility-hero .eyebrow{font-size:.8125rem;letter-spacing:.04em}
.utility-page .utility-hero h1{font-size:clamp(1.75rem,3.5vw,2.75rem);line-height:1.12;letter-spacing:-.035em;margin:.75rem 0}
.utility-page .utility-hero p{font-size:1rem;line-height:1.5;max-width:42rem}
.utility-page .utility-grid{gap:2rem;grid-template-columns:minmax(0,1fr) minmax(15rem,.4fr)}
.utility-page .utility-grid form h2{font-size:1.5rem!important;line-height:1.2!important;margin:0 0 1rem!important;letter-spacing:-.025em}
.utility-page .utility-grid aside{padding:1.25rem;top:5rem}
.utility-page .utility-grid aside h2{font-size:1.5rem!important;line-height:1.2}
.utility-page .field{padding:.875rem 0 1.25rem;min-width:0}
.utility-page .field legend{font-size:1.125rem!important;line-height:1.35;letter-spacing:0!important;text-transform:none;font-weight:650;max-width:100%;margin-bottom:.5rem!important}
.utility-page .field:before{display:none}
.utility-page .choice-row{gap:var(--ui-gap)}
.utility-page .choice-row label,.utility-page .age-choice label{font-size:1rem;line-height:1.35;min-height:var(--ui-control);padding:.625rem .75rem;margin:0;border-radius:.375rem;font-weight:600}
.utility-page .choice-row input{width:1.125rem;height:1.125rem;flex-basis:1.125rem;margin-right:.25rem}
.utility-page .field-help,.utility-page .utility-note,.selection-summary,.utility-page .mobile-step-head{font-size:.875rem;line-height:1.5;letter-spacing:0}
.utility-page .mobile-step-head{text-transform:none}
.utility-page .mobile-progress{margin:.5rem 0 1rem}
.utility-page #decision-form>.button{min-height:var(--ui-control);font-size:1rem;padding:.625rem 1rem}
.utility-page #result{padding:1.5rem;margin-top:2rem;scroll-margin-top:5rem}
.utility-page #result .result-part{padding:1.25rem 0}
.utility-page #result .result-part:first-child{padding-bottom:1.5rem}
.utility-page .winner-card,.utility-page .why-card{padding:1.25rem;min-height:0}
.utility-page .winner-card:before{font-size:.8125rem;letter-spacing:.035em;margin-bottom:.5rem}
.utility-page .winner-card>.claim-label{margin-bottom:.75rem}
.utility-page .winner-title{font-size:clamp(1.625rem,2.8vw,2.25rem);line-height:1.15;letter-spacing:-.025em;margin-bottom:.75rem}
.utility-page .winner-reason{font-size:1.0625rem;line-height:1.5;margin-block:.75rem}
.utility-page .winner-cta{margin-top:.5rem;min-height:var(--ui-control);font-size:1rem;padding:.625rem 1rem}
.utility-page .winner-meta{margin-top:1rem;gap:.375rem}
.utility-page .winner-meta span{font-size:.8125rem;line-height:1.35;letter-spacing:0;padding:.375rem .5rem;text-transform:none}
.utility-page .why-card h3,.utility-page .result-part h3{font-size:1.25rem;line-height:1.3;margin-bottom:.75rem}
.utility-page .tip-source{font-size:.875rem;line-height:1.5;margin-top:1rem;padding-top:1rem}
.utility-page .tip-source small{font-size:inherit}
.utility-page .feedback{display:flex;flex-wrap:wrap;gap:.5rem}
.utility-page .feedback p,.utility-page .feedback small{flex-basis:100%;margin:.25rem 0}
.utility-page .feedback button{font-size:1rem;min-height:var(--ui-control);margin:0;padding:.625rem .875rem}
.utility-page .account-box{margin-top:1.5rem;padding:1.25rem}
.utility-page .account-box h2{font-size:1.5rem}
@media(max-width:980px){
 .nav-utility{display:inline-flex!important;font-size:.875rem;border:1px solid #a7aba5;padding:.5rem .625rem;border-radius:.375rem;min-height:2.75rem}
 .nav-links{gap:.5rem}.nav-inner{gap:.5rem}
 .home .stage-intro{padding-block:8rem 2rem;justify-content:flex-start}
 .home .stage-intro h1,.home .stage-intro .stage-lead,.home .stage-actions{max-width:38rem}
 .home .stage-intro h1{font-size:2.25rem}
 .home .stage-intro .stage-lead{font-size:1rem}
 .home .stage-shade{opacity:.85!important}
 .home .signal-list button{grid-template-columns:1.5rem 1fr 1.25rem;min-height:4.5rem}
 .home .signal-explain{margin-top:0}
 .utility-page .utility-grid{grid-template-columns:1fr}
 .utility-page .winner-wrap{grid-template-columns:1fr;gap:0}
}
@media(max-width:760px){
 .wrap,.wrap.library-shell{padding-inline:1rem}
 .utility-page .utility-hero .wrap{padding-block:5rem 1rem}
 .utility-page .utility-hero h1{font-size:1.75rem}
 .utility-page .utility-hero h1 em{display:inline}
 .utility-page #utility{padding-top:1.25rem}
 .utility-page .choice-row{grid-template-columns:repeat(2,minmax(0,1fr))}
 .utility-page .field{padding:.5rem 0 .75rem}
 .utility-page .mobile-step-controls{position:sticky;bottom:0;z-index:20;background:#f7f6f2;padding:.625rem 0 max(.625rem,env(safe-area-inset-bottom));border-top:1px solid #d9d9d4;margin-top:.5rem}
 .utility-page .mobile-step-controls button{font-size:1rem;line-height:1.35;min-height:var(--ui-control);padding:.625rem 1rem}
 .utility-page #result{padding:1rem;margin-top:1.5rem}
 .utility-page .winner-title{font-size:1.625rem}
 .utility-page .winner-card,.utility-page .why-card{padding:1rem}
 .utility-page .selection-summary{margin-block:.5rem}
 .situation-shortcuts{gap:.5rem;margin-top:1rem}
 .situation-grid{gap:1rem}.situation-card{padding:1rem}
 .prose{font-size:1.0625rem}.prose h2{font-size:1.5rem}
 .reading-footer nav{display:grid;grid-template-columns:1fr 1fr;gap:.25rem .75rem}
 .reading-footer nav a{min-height:2.75rem}
 .hero-situation-summary p{font-size:1rem}
 .home .stage-intro .stage-eyebrow{font-size:.8125rem;line-height:1.4;letter-spacing:.05em;max-width:85%}
 .home .stage-actions{width:100%;display:grid;grid-template-columns:1fr}
 .home .stage-actions a{width:100%;justify-content:flex-start}
 .home .motion-toggle{right:1rem;top:4.5rem}
 .home .story-heading{gap:.75rem}
 .home .signal-name{font-size:1.125rem}
 .home .signal-explain{font-size:.9375rem}
 .home .signal-list button{padding:.75rem .25rem;gap:.5rem}
}
@media(max-width:360px){
 .nav-utility{font-size:.8125rem;padding:.5rem}.nav .logo{font-size:.9375rem;letter-spacing:.07em}
 .mobile-menu summary{padding:.5rem;font-size:.9375rem}
 .home .stage-intro h1{font-size:2rem}
 .utility-page .choice-row:not(.age-choice){grid-template-columns:1fr}
}
/* Header can grow with text settings without covering anchor destinations. */
:root{--nav-height:4rem}
html{scroll-padding-top:calc(var(--nav-height) + 1rem)}
[id],.utility-page #result,.utility-page #winner-how,.utility-page #decision-form{scroll-margin-top:1rem}
.nav-inner{flex-wrap:wrap}.nav-links{flex-wrap:wrap;justify-content:flex-end;max-width:100%}
.mobile-links{max-height:calc(100svh - var(--nav-height))}
.reading-head,.situation-hero{padding-top:calc(var(--nav-height) + 2rem)}
.utility-page .utility-hero .wrap{padding-top:calc(var(--nav-height) + 1rem)}
.home .stage-intro{padding-top:calc(var(--nav-height) + 4rem)}
.home .motion-toggle{top:calc(var(--nav-height) + .5rem)}
@media(max-width:980px){
 .nav-inner{padding-inline:16px;column-gap:8px}
 .nav.large-type .nav-utility{display:none!important}
 .nav.large-type .nav-links{margin-left:auto}
}
@media(max-width:760px){
 .large-text .utility-page .choice-row{grid-template-columns:1fr}
 .large-text .utility-page .mobile-step-controls{flex-wrap:wrap}
 .large-text .utility-page .mobile-step-controls button{flex:1 1 100%;overflow-wrap:anywhere}
 .large-text .reading-footer nav{grid-template-columns:1fr}
 .large-text .home .signal-list button{grid-template-columns:1fr;overflow-wrap:anywhere}
 .large-text .home .signal-explain{grid-column:1;grid-row:auto}
 .large-text .home .signal-number,.large-text .home .signal-arrow{display:none}
}
.home .story-index{margin-bottom:1rem;font-size:.8125rem;letter-spacing:.05em}
