/*9.18: retain full-bleed materials; keep reading grids bounded on large displays.*/
.hero-actions .button{min-height:48px}
/* Preserve intrinsic label/separator widths in the horizontal scroll strip,
   including coarse-pointer minimum targets and enlarged text. */
.directions-nav>button,.directions-nav>span{flex:0 0 auto}
.directions-nav button{min-height:44px}
.language-switch{font-size:12px}
.language-switch button{min-width:44px;min-height:44px}
.menu-button{width:44px;height:44px}
.header .brand,.footer .brand{min-height:44px}
.chapter-steps button{width:44px;height:44px;flex:none}
.chapter-steps button:after{left:12px;right:12px;top:21px}
.chapter-control{flex-wrap:wrap;row-gap:4px;font-size:clamp(11px,.72vw,18px)}
.chapter-control>#chapter-title{font-size:clamp(11px,.61vw,18px)}
.scene-controls button,.footer-motion,.flow-footer button,.dialog-close,#assistant-form>button{min-width:44px;min-height:44px}
.dialog-close{width:44px;height:44px}
#assistant-form>button{width:44px;height:44px}
.navigation a,.mobile-menu a,.footer>a,.ai-source,.message.answer>a{min-height:44px}
.navigation a,.footer>a{display:inline-flex;align-items:center}
.ai-source,.message.answer>a{padding-block:10px}
.section{padding-inline:max(var(--pad),calc((100% - 1760px)/2))}
.section>*{min-width:0}
.scene-controls{max-width:calc(100% - 2 * var(--pad));gap:10px}
.scene-quality{margin:0;max-width:210px;font-size:11px;line-height:1.5;color:#3c544c;overflow-wrap:break-word}
.scene-quality[hidden]{display:none}
.hero[data-scene-quality]:not([data-scene-quality=full]) .scene-signature,.hero[data-ribbon=fallback] .scene-signature{display:none}
#living-atrium,#glass-ribbon{pointer-events:none}
.hero[data-ribbon=fallback] #glass-ribbon{display:none}
@media(min-width:951px){.hero-actions .button{font-size:clamp(12px,.95vw,25px)}}
@media(max-width:700px){.chapter-control>#chapter-title{flex-basis:100%;margin-left:0}.scene-controls{left:var(--pad);right:var(--pad);justify-content:flex-end}.scene-quality{max-width:min(180px,55%)}.chapter-control{column-gap:10px}}
@media(min-width:1800px){
 .header{gap:clamp(22px,1.1vw,42px)}
 .header .brand{font-size:clamp(35px,1.25vw,48px)}
 .brand>span{font-size:clamp(8px,.33vw,13px)}
 .navigation a,.language-switch{font-size:clamp(14px,.6vw,23px)}
 .header-login{font-size:clamp(24px,.85vw,32px)}
 .ribbon-volume .scene-themes{font-size:clamp(16px,.85vw,30px)}
 .scene-word{width:clamp(190px,8vw,320px)}
 .column-inscription{font-size:clamp(13px,.55vw,21px)}
 .directions-nav{flex-wrap:wrap;justify-content:center;gap:12px 24px;padding-inline:max(var(--pad),calc((100% - 2100px)/2))}
 .directions-nav button{font-size:clamp(13px,.6vw,21px)}
 .overview,.module-exposition,.process-lab,.ai-section,.effect-section,.final-section{padding-block:clamp(100px,4vw,160px)}
 .overview{padding-top:clamp(50px,2.5vw,96px)}
 .section h2{font-size:clamp(62px,2.3vw,88px)}
 .section .section-kicker{font-size:clamp(12px,.45vw,17px)}
 .lead-copy{font-size:clamp(18px,.65vw,24px);max-width:38em}
 .body-copy,.section .section-intro{font-size:clamp(16px,.55vw,21px);max-width:40em}
 .context-plane p{font-size:clamp(24px,.85vw,32px)}
 .context-plane small,.context-sculpture figcaption{font-size:clamp(13px,.45vw,17px)}
 .context-core>small{font-size:clamp(11px,.4vw,15px)}
 .module-entry{padding-block:44px;gap:30px}
 .module-entry h3{font-size:clamp(33px,1.15vw,44px)}
 .module-entry li{font-size:clamp(16px,.55vw,21px)}
 .module-link{font-size:clamp(14px,.5vw,19px)}
 .process-lab .capability-layout{align-items:start}
 .process-lab #direction-panel{width:100%;max-width:820px;justify-self:end;padding:clamp(36px,1.6vw,60px);min-height:0}
 .process-lab .direction-list button{font-size:clamp(26px,.9vw,34px);min-height:80px}
 .process-lab #direction-title{font-size:clamp(38px,1.3vw,50px);max-width:100%}
 .process-lab #direction-description,.process-lab .flow-stage-detail,.process-lab .panel-note>p,.process-foot{font-size:clamp(15px,.5vw,19px)}
 .process-lab .flow-stage-label{font-size:clamp(18px,.6vw,23px)}
 .process-lab .panel-topline,.process-lab .demo-label,.process-lab .panel-note>span{font-size:clamp(12px,.4vw,15px)}
 .process-lab .flow-footer .flow-status-area,.process-lab .flow-footer button,.handoff-strip{font-size:clamp(14px,.48vw,18px)}
 .ai-glass{max-width:760px;width:100%;justify-self:end;padding:clamp(34px,1.6vw,60px)}
 .ai-glass h3{font-size:clamp(32px,1.1vw,42px)}
 .ai-answer,.final-section .university-copy>p:first-child{font-size:clamp(17px,.58vw,22px)}
 .ai-source,.human-review,.ai-disclosure,.benefit-row div>p,.final-section .university-copy li{font-size:clamp(15px,.5vw,19px)}
 .mini-label,.benefit-head,.final-section .final-note,.footer-demo{font-size:clamp(12px,.42vw,16px)}
 .benefit-before{font-size:clamp(27px,.9vw,34px)}
 .benefit-row h3{font-size:clamp(32px,1.1vw,42px)}
 .ai-copy .button,.final-section .button,.final-section .text-button,.footer-motion{font-size:clamp(15px,.5vw,19px)}
 .footer{padding-inline:max(var(--pad),calc((100% - 1760px)/2))}
 .footer p,.footer>a:last-of-type{font-size:clamp(15px,.5vw,19px)}
 .scene-quality,.scene-controls button{font-size:clamp(12px,.45vw,17px)}
}
@media(pointer:coarse){
 .button,.language-switch button,.menu-button,.header .brand,.footer .brand,.chapter-steps button,.scene-controls button,.footer-motion,.flow-footer button,.dialog-close,#assistant-form>button,.question-presets button,.directions-nav button{min-height:48px;min-width:48px}
 .menu-button,.dialog-close{width:48px;height:48px}
 .chapter-steps button{width:48px;height:48px}.chapter-steps button:after{left:14px;right:14px;top:23px}
 .navigation a,.mobile-menu a,.footer>a,.ai-source,.message.answer>a{min-height:48px}
 input,select,textarea,#assistant-question{font-size:16px;min-height:48px}
}
@media(min-width:1800px) and (pointer:coarse){
 .language-switch button,.chapter-steps button,.scene-controls button,.footer-motion,.header-login,.hero-actions .button{min-height:56px;min-width:56px}
 .chapter-steps button{width:56px;height:56px}.chapter-steps button:after{left:18px;right:18px;top:27px}
 .scene-controls button{padding-inline:20px}
}
/* Let content, including enlarged controls and translated text, set a real floor
   for desktop hero height. The world remains at its original width/registration. */
@media(min-width:951px){.hero{height:auto;min-height:44.14vw}.hero-copy{padding-bottom:20px}}

/* 9.20 — readable roles, intrinsic reflow, no new visual system. */
.atrium-static-wash{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;opacity:0}
.atrium-ready .atrium-static-wash{opacity:1}
.eyebrow{font-size:clamp(12px,.54vw,21px);white-space:normal;color:#586158;letter-spacing:.16em}
.hero-description{font-size:clamp(17px,1.37vw,53px);line-height:1.5}
.hero-actions .button{font-size:clamp(14px,.95vw,36px)}
.hero-actions{flex-wrap:wrap}
.chapter-control,.chapter-control>#chapter-title{font-size:clamp(12px,.72vw,22px);color:#556055}
.chapter-total{color:#596457}
.directions-nav button{font-size:clamp(13px,.6vw,21px);color:#536457}
.scene-signature,.scene-controls button,.scene-quality{font-size:clamp(12px,.45vw,17px)}
.section .section-kicker{font-size:clamp(12px,.45vw,17px)}
.body-copy,.module-entry li,.process-lab #direction-description,.benefit-row div>p,
.final-section .university-copy li,.section .section-intro,
.process-lab .panel-note>p,.ai-answer,.dialog-intro,.message,.login-note{font-size:clamp(16px,.55vw,21px);line-height:1.8}
.module-link,.ai-copy .button,.final-section .button,.final-section .text-button,
.flow-footer button,.footer-motion,.question-presets button,.message.answer>a{font-size:clamp(14px,.5vw,19px)}
.process-lab .flow-stage-label{font-size:clamp(16px,.6vw,23px)}
.process-lab .flow-stage-detail{font-size:clamp(14px,.5vw,19px)}
.process-lab .flow-status-area{font-size:clamp(13px,.48vw,18px);color:#4c624f}
.process-lab .direction-list button{color:#536452}
.process-lab .direction-list button[aria-selected=true]{color:#214b48}
.process-lab .direction-list button>span:first-child{color:#586650}
.ai-disclosure,.assistant-disclosure,.message.answer>small,.login-note,
.ai-source,.human-review,.process-foot,.footer-demo,.final-section .final-note{color:#52634e;font-size:clamp(13px,.48vw,18px);line-height:1.8}
.benefit-before{color:#58634f}
.mini-label,.benefit-head,.benefit-number,.module-mark>span,.context-core>small,
.context-plane small,.context-sculpture figcaption,.process-lab .panel-topline,
.process-lab .demo-label,.process-lab .panel-note>span,.handoff-strip{font-size:clamp(12px,.45vw,17px)}
.ribbon-volume .scene-word{text-shadow:0 1px 1px #293d4b60}
/* Text may wrap or grow; the narrowest track is never a word's min-content. */
.module-entry{grid-template-columns:60px minmax(0,1fr)}
.module-entry>*,.benefit-row>*,.section-heading>*,.hero-copy>*,
.header>*,.navigation>a,.flow-stages button>*,.university-copy>*{min-width:0}
.module-entry h3,.module-entry li,.ai-glass h3,.benefit-before,.benefit-row h3,
#direction-title,.direction-name,.flow-stage-detail,.flow-stage-label,.flow-status-area,
h1,h2,.hero-description,.final-section li,.message{overflow-wrap:anywhere}
.header{flex-wrap:wrap;height:auto;min-height:8vw;max-height:none;padding-block:18px;row-gap:8px}
.header .brand{max-width:100%;white-space:normal}
.navigation{min-width:0;flex:1 1 auto;flex-wrap:wrap}
.navigation a{white-space:normal}
.header-login{max-width:100%;white-space:normal}
.hero-copy{padding-top:max(9.9vw,var(--header-floor,112px))}
.panel-topline{flex-wrap:wrap}
@media(min-width:951px){
 .hero-description{max-width:41vw}
 .hero[data-text-reflow=true]{min-height:calc(var(--copy-floor) + 56.28vw)}
 .hero[data-text-reflow=true] .world-stage{top:var(--copy-floor)}
 .hero[data-text-reflow=true] .hero-copy{width:92%;padding-right:var(--pad)}
 .hero[data-text-reflow=true] h1{line-height:1.08}
}
@media(max-width:1100px){.module-entry{grid-template-columns:40px minmax(0,1fr)}}
@media(max-width:800px) and (min-width:701px){.module-entry{grid-template-columns:minmax(0,1fr)}}
@media(max-width:950px){
 .header{min-height:95px;padding-block:12px}
 .hero-copy{padding-top:max(157px,var(--header-floor,95px))}
}
@media(max-width:700px){
 .header{min-height:80px}
 :lang(kk) .hero-copy,.hero-copy{padding-top:max(128px,var(--header-floor,95px))}
 .hero-description{max-width:100%}
 .hero-actions .button{font-size:14px}
 .module-entry,.module-entry:nth-child(even){grid-template-columns:35px minmax(0,1fr)}
 .context-core>span{overflow-wrap:anywhere}
 .benefit-row{grid-template-columns:25px minmax(0,1fr)}
 .flow-status-area{max-width:none}
 .process-lab .flow-footer{flex-wrap:wrap}
 .process-lab .flow-footer p{max-width:none}
 .flow-footer #flow-replay{flex-shrink:1}
 .scene-controls{flex-wrap:wrap}
 .column-inscription{font-size:12px;overflow-wrap:anywhere}
 #assistant-question{font-size:16px}
}
@media(max-width:370px){.module-entry,.module-entry:nth-child(even){grid-template-columns:28px minmax(0,1fr)}}

.navigation a,.mobile-menu a,.mobile-menu button{font-size:clamp(14px,.6vw,23px)}
/* Final live read-through: keep dialog input and meaningful microcopy readable. */
#assistant-question{font-size:16px;min-height:44px}
dialog .section-kicker{font-size:12px}
.question-presets button{min-height:44px}
.process-lab .direction-list button>span:first-child,.process-lab .flow-index{font-size:12px}
.column-inscription{font-size:clamp(12px,.55vw,21px)}

/*9.21: short ordinals never absorb shrink pressure from translated prose. */
.final-section .university-copy li{display:grid;grid-template-columns:2.5ch minmax(0,1fr);align-items:start}
.final-section .university-copy li>span{min-width:2.5ch;white-space:nowrap;overflow-wrap:normal;font-size:12px;line-height:1.8;font-variant-numeric:tabular-nums;color:#58634f}
/* One stable ink on the actual glass; no white-on-pale ready state or halo. */
.ribbon-volume .scene-themes{color:#233e4a;font-size:13px}
.ribbon-ready .ribbon-volume .scene-themes{color:#233e4a}
.ribbon-volume .scene-word{text-shadow:none}
@media(min-width:1800px){.ribbon-volume .scene-themes{font-size:clamp(16px,.85vw,30px)}}

@media(max-width:700px){.ribbon-volume .scene-word{top:30.5%}}
@media(min-width:701px) and (max-width:950px){.ribbon-volume .scene-word{top:34%}}
@media(min-width:951px) and (max-width:1100px){.ribbon-volume .scene-word{top:32%;left:51%}.ribbon-volume .scene-themes{line-height:1.5}:lang(kk) .ribbon-volume .scene-themes{letter-spacing:.02em}}
/*9.22: the full, embedded raster scene owns loading/error/no-script states.
  Empty architecture may cover it only after a verified live tree frame. */
.atrium-poster{position:absolute;inset:0;width:100%;height:100%;display:block}
.architecture-plate,.distant-astana{visibility:hidden}
.atrium-ready .architecture-plate,.atrium-ready .distant-astana{visibility:visible}
.atrium-ready .atrium-poster{visibility:hidden}
#living-atrium{transition:none}
.mobile-scene-jump,.scene-target{display:none}
@media(max-width:950px){
 .mobile-scene-jump{display:inline-flex;align-items:center;min-height:44px;margin-top:10px;font-size:14px;line-height:1.6;color:#3c5b50;text-decoration:underline;text-underline-offset:4px;pointer-events:auto}
 .scene-target{display:block;position:absolute;left:0;right:0;top:calc(var(--mobile-scene-top,620px) + var(--scene-offset,0px));height:calc(var(--mobile-world-height,613.45px) - 23px);pointer-events:none;scroll-margin-top:18px}
 .scene-target:focus-visible{outline:2px solid #718875;outline-offset:-4px}
 .chapter-control{margin-top:14px}
}
@media(min-width:701px) and (max-width:950px){
 .hero{height:calc(620px + var(--scene-offset,0px) + var(--mobile-world-height,613.45px) - 23px);min-height:calc(620px + var(--scene-offset,0px) + var(--mobile-world-height,613.45px) - 23px)}
}
