/* One page scroll, explicit touch intent, and consistent controls. */
html { scroll-padding-top:calc(var(--header) + 20px); }
button, a, summary, select { -webkit-tap-highlight-color:transparent; }
button:focus-visible, a:focus-visible, summary:focus-visible, select:focus-visible, input:focus-visible, textarea:focus-visible { outline:2px solid #d6ef9b; outline-offset:4px; }
.architecture-nav button { min-height:44px; }
.architecture-nav button[aria-current="page"] { background:#173e2b; border-color:#8cc8a4; color:#f0ffe9; }
.world-tools { align-items:center; }
.world-tools #world-gesture-mode { display:none; width:auto; padding:0 14px; font-size:.875rem; border-radius:24px; }
.world-tools .world-touch-hint { flex-basis:100%; margin:3px 0; }
.world-tools button:active, .architecture-nav button:active { background:#24543b; }
.world-more-panel { max-height:min(340px,50dvh); overscroll-behavior:contain; }
.world-info, .world-reader { overflow-wrap:break-word; }
.world-reader input, .world-reader textarea, .world-reader select { max-width:100%; font-size:1rem; }
.world-info .world-boundary, #mobile-home .mobile-home-boundary { font-size:.875rem; line-height:1.65; }
#mobile-home .arrival-architecture-key { font-size:.9375rem; }
#mobile-home { padding-bottom:max(28px,env(safe-area-inset-bottom)); }
.orientation-tip { box-sizing:border-box; width:calc(100% - 40px); max-width:430px; max-height:calc(100dvh - 40px); overflow:auto; padding:30px; color:#ecf4df; background:#092016; border:1px solid #647d54; border-radius:18px; box-shadow:0 24px 90px #0009; }
.orientation-tip::backdrop { background:#010a07bd; }
.orientation-tip h2 { font-size:1.65rem; line-height:1.2; margin:16px 0; }
.orientation-tip p { font-size:1rem; line-height:1.6; color:#c4d3be; }
.orientation-tip .eyebrow { font-size:.8125rem; }
.orientation-tip button { width:100%; min-height:48px; padding:12px; margin-top:14px; background:#d6ef9b; color:#122014; border:0; border-radius:6px; font-size:1rem; font-weight:600; }
.orientation-symbol { display:block; font-size:3rem; line-height:1; color:#d6ef9b; animation:rotate-hint 2.4s ease-in-out 2; }
@keyframes rotate-hint { 0%,100%{transform:rotate(0deg)} 50%{transform:rotate(90deg)} }
@media(max-width:760px), (max-width:1024px) and (pointer:coarse) {
  html.world-open, body.world-open { overflow:auto; height:auto; scroll-snap-type:none; }
  .architecture-world:not(.world-expanded) { position:relative; inset:auto; margin-top:var(--header); display:block; min-height:calc(100svh - var(--header)); overflow:visible; padding-bottom:calc(32px + env(safe-area-inset-bottom)); }
  .architecture-world:not(.world-expanded) .world-workspace { display:flex; flex-direction:column; height:auto; max-height:none; min-height:0; padding:0; overflow:visible; }
  .architecture-world:not(.world-expanded) .world-info { position:static; inset:auto; width:auto; max-height:none; height:auto; overflow:visible; margin:16px; padding:20px; align-self:stretch; }
  .architecture-world:not(.world-expanded) .world-viewport { flex:none; width:100%; height:clamp(300px,54svh,560px); min-height:300px; margin:0; border-radius:0; }
  .architecture-world.world-reading:not(.world-expanded) .world-viewport { display:none; }
  .world-heading { padding:20px 16px 14px; display:flex; flex-wrap:wrap; gap:12px; }
  .world-heading > div:first-child { flex:1 1 100%; }
  .world-heading .world-breadcrumb { margin:0; }
  .world-heading .world-breadcrumb button { min-height:44px; }
  .world-module-bar { grid-template-columns:repeat(2,minmax(0,1fr)); padding:0 16px 16px; gap:8px; }
  .world-module-bar button { font-size:.875rem; min-height:48px; }
  .world-workspace > .world-tools { position:relative; inset:auto; width:auto; max-width:none; display:flex; flex-wrap:wrap; margin:0; padding:12px 16px; gap:8px; background:#071c14; border-bottom:1px solid #2d4938; }
  .world-tools #world-gesture-mode { display:inline-flex; align-items:center; justify-content:center; border-color:#8fab65; color:#e0efc7; }
  .world-tools #world-gesture-mode[aria-pressed=true] { background:#d6ef9b; color:#112116; }
  .world-tools .world-touch-hint { display:block; color:#b3c8b7; font-size:.875rem; line-height:1.5; }
  .world-scroll-mode .world-viewport, .world-scroll-mode #architecture-canvas { touch-action:pan-y pinch-zoom; overscroll-behavior:auto; }
  .world-scroll-mode #architecture-canvas { cursor:auto; }
  .world-orbit-hint { display:none; }
  .world-reading .world-workspace > .world-tools { display:none; }
  .world-reader-actions { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .site-header, .world-open .site-header { height:auto; min-height:0; grid-template-columns:minmax(0,1fr) auto; grid-template-rows:auto auto; gap:8px; padding:12px 16px 8px; }
  .site-header .brand small { display:none; }
  .site-header .brand-mark { width:36px; height:42px; }
  .site-header .header-actions { grid-column:2; grid-row:1; gap:4px; }
  .site-header .journey-nav, .site-header .menu-toggle, .site-header .pilot-link, .site-header .world-price-shortcut, .site-header .world-reserve-shortcut { display:none; }
  .site-header .architecture-nav { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); grid-column:1 / -1; grid-row:2; width:100%; gap:4px; }
  .site-header .architecture-nav button { display:block; padding:10px 4px; font-size:.875rem; }
  .site-header .audio-toggle span { display:none; }
  html.world-open:has(.world-expanded), body.world-open:has(.world-expanded) { overflow:hidden; }
  .architecture-world.world-expanded { position:fixed; inset:0; height:100dvh; margin:0; padding:0; overflow:hidden; }
  .world-expanded .world-workspace { height:100%; min-height:0; overflow:hidden; }
  .world-expanded .world-workspace .world-viewport { height:100%; min-height:0; }
  .world-expanded .world-tools { padding-bottom:calc(12px + env(safe-area-inset-bottom)); }
  .world-expanded #world-gesture-mode { display:none; }
  .world-expanded .world-more-controls { display:block; }
}
@media(prefers-reduced-motion:reduce) { .orientation-symbol { animation:none; } *, *::before, *::after { scroll-behavior:auto !important; } }
.world-open .header-actions .world-price-shortcut { display:none; }
.world-tools button, .architecture-nav button, .orientation-tip button { transition:background-color 140ms ease,border-color 140ms ease; }
@media(prefers-reduced-motion:reduce) { .world-tools button, .architecture-nav button, .orientation-tip button { transition:none; } }
@media(max-width:360px) { .world-reader-actions { grid-template-columns:1fr; } .orientation-tip { padding:22px; } }
/* Reading and exploration are separate destinations. */
.mobile-entry-paths { display:none; }
.mobile-path-card { text-decoration:none; }
.mobile-path-card small,
.mobile-path-card strong,
.mobile-path-card span { display:block; }
.mobile-path-card small { color:#91c5a7; font:.75rem var(--mono,monospace); letter-spacing:.12em; text-transform:uppercase; }
.mobile-path-card strong { margin:5px 0 6px; color:#edf8ed; font-size:1.05rem; line-height:1.35; }
.mobile-path-card span { color:#b9cbbd; font-size:.9375rem; line-height:1.55; }
#information[hidden],#model-overview[hidden] { display:none; }
.information-page { max-width:1100px; margin:0 auto; padding:calc(var(--header,90px) + 48px) 32px max(40px,env(safe-area-inset-bottom)); color:#e5efdf; }
.information-page h1 { max-width:850px; font-size:clamp(2rem,4.2vw,3.8rem); line-height:1.15; margin:18px 0 24px; }
.information-page h2 { font-size:clamp(1.4rem,2.3vw,2rem); line-height:1.3; margin:0 0 16px; }
.information-page h3 { font-size:1.15rem; line-height:1.4; margin:12px 0; }
.information-page p { font-size:1rem; line-height:1.75; max-width:70ch; color:#bfd1c0; }
.information-page .information-lede { font-size:1.125rem; }
.information-model-card { display:grid; grid-template-columns:1fr 1fr; align-items:center; margin:40px 0 52px; border:1px solid #35523d; border-radius:12px; overflow:hidden; background:#0a2118; }
.information-model-card img { width:100%; height:100%; min-height:240px; object-fit:cover; }
.information-model-card > div { padding:28px; }
.information-model-card small { display:block;margin-top:14px;color:#8eaa99;font-size:.78rem;line-height:1.5; }
.model-overview .information-lede { max-width:62ch; }
.model-meaning { margin:0 0 34px; }
.model-links { display:flex;flex-wrap:wrap;gap:18px;margin:26px 0 42px; }
.model-engage { background:#c7f6dd;color:#062014!important;font-weight:650; }
.information-page a { color:#d6ef9b; display:inline-flex; align-items:center; min-height:44px; line-height:1.5; }
.information-page .info-action { margin-top:12px; padding:12px 18px; border:1px solid #93b273; border-radius:6px; text-decoration:none; }
.information-page a:hover { text-decoration:underline; }
.information-steps { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; margin:24px 0 48px; }
.information-steps article { border-top:1px solid #446344; padding-top:18px; }
.information-steps article > span { color:#d6ef9b; font-size:.875rem; }
.information-engine { padding:30px 0 48px; border-top:1px solid #284a35; }
.assurance-layer-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; margin:24px 0 0; }
.assurance-layer-grid article { min-height:180px; padding:18px; border:1px solid #35523d; border-radius:8px; background:linear-gradient(145deg,#0a2118,#06140f); }
.assurance-layer-grid span { color:#d6ef9b; font:.8125rem var(--mono,monospace); letter-spacing:.12em; }
.assurance-layer-grid h3 { color:#ecf4df; }
.assurance-layer-grid p { margin:0; font-size:.9375rem; line-height:1.6; color:#b8cab9; }
.information-proof,.information-status { padding:28px 0; border-top:1px solid #284a35; }
.information-first-example { padding:28px; margin:30px 0 26px; border:1px solid #426349; border-radius:12px; background:linear-gradient(145deg,#10271b,#071a12); }
.information-first-example .eyebrow { margin-top:0; }
.information-sample-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin:20px 0; }
.information-sample-grid > div { padding:16px; border:1px solid #3c6049; border-radius:8px; background:#0b2017; }
.information-sample-grid strong,.information-sample-grid span { display:block; line-height:1.5; }
.information-sample-grid strong { margin-bottom:7px; color:#d6ef9b; }
.information-sample-grid span { color:#d7e6da; }
.information-sample-boundary { color:#a8c4b1; font-size:.875rem; }
@media(max-width:760px) { .information-first-example { padding:20px; } .information-sample-grid { grid-template-columns:1fr; } }

@media(max-width:760px), (max-width:1024px) and (pointer:coarse) {
  .architecture-world.world-case-reading:not(.world-expanded) .world-heading,
  .architecture-world.world-case-reading:not(.world-expanded) .world-module-bar { display:none; }
  .architecture-world.world-case-reading:not(.world-expanded) .world-workspace { display:block; padding:12px 12px 28px; }
  .architecture-world.world-case-reading:not(.world-expanded) .world-info { width:100%; margin:0; }
}
.information-links { display:flex; flex-wrap:wrap; gap:12px 28px; }
.information-footer { display:flex; flex-wrap:wrap; justify-content:space-between; gap:16px; margin-top:24px; padding-top:24px; border-top:1px solid #284a35; }
body:has(#information:not([hidden])) .journey-nav,body:has(#information:not([hidden])) .header-actions { display:none; }
body:has(#information:not([hidden])) .architecture-nav { display:flex; grid-column:2 / -1; justify-self:end; gap:12px; }
body:has(#information:not([hidden])) .site-header { background:#06140ff5; }
body:has(#model-overview:not([hidden])) .journey-nav,body:has(#model-overview:not([hidden])) .header-actions { display:none; }
body:has(#model-overview:not([hidden])) .architecture-nav { display:flex; grid-column:2 / -1; justify-self:end; gap:12px; }
body:has(#model-overview:not([hidden])) .site-header { background:#06140ff5; }
@media(max-width:760px), (max-width:1024px) and (pointer:coarse) {
  #mobile-home .desktop-entry { display:none; }
  .mobile-entry-paths { display:grid; grid-template-columns:1fr; gap:12px; margin:26px 0 8px; }
  #mobile-home .mobile-path-card { display:block; min-height:0; padding:16px; border:1px solid #335a43; border-radius:8px; background:linear-gradient(145deg,#092017,#04120d); color:#e3efda; }
  #mobile-home .model-entry { border-color:#6faf8a; background:linear-gradient(145deg,#123725,#061911); }
  #mobile-home .mobile-path-card:hover { text-decoration:none; border-color:#b8ebd0; }
  .information-page { padding:calc(var(--header,124px) + 28px) 22px max(32px,env(safe-area-inset-bottom)); }
  .information-model-card { grid-template-columns:1fr; margin:28px 0 36px; }
  .information-model-card img { height:200px; min-height:0; }
  .information-model-card > div { padding:22px; }
  .assurance-layer-grid { grid-template-columns:1fr; gap:10px; }
  .assurance-layer-grid article { min-height:0; padding:16px; }
  .information-steps { grid-template-columns:1fr; gap:12px; margin-bottom:28px; }
  .information-steps article { padding:18px 0 8px; }
  body:has(#information:not([hidden])) .architecture-nav { width:100%; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); }
  body:has(#model-overview:not([hidden])) .architecture-nav { width:100%; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); }
  .world-tools #world-gesture-mode { display:none !important; }
  .world-expanded #world-full-view { max-width:none; white-space:nowrap; }
  .world-expanded .world-workspace > .world-tools { padding:8px max(12px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left)); gap:6px; }
  .world-expanded .world-touch-hint { font-size:.8125rem; margin:0; }
}
@media(max-height:500px) and (pointer:coarse) { .world-expanded .world-touch-hint { display:none; } }

/* A compact, opt-in guide belongs with the viewer controls. */
.world-heading .world-decision-brief { display:none !important; }
.world-guide { position:relative; flex:0 0 auto; }
.world-guide > summary { display:flex; align-items:center; min-height:44px; padding:0 12px; border:1px solid #526c49; border-radius:22px; background:#0a2118; color:#d5e5c6; font-size:.875rem; line-height:1.3; cursor:pointer; list-style:none; }
.world-guide > summary::-webkit-details-marker { display:none; }
.world-guide > summary::after { content:' +'; margin-left:8px; }
.world-guide[open] > summary::after { content:' −'; }
.world-guide-panel { position:absolute; z-index:70; bottom:calc(100% + 10px); right:0; width:min(310px,calc(100vw - 32px)); max-height:min(340px,55dvh); overflow:auto; overscroll-behavior:contain; padding:18px; background:#092016; border:1px solid #617e50; border-radius:10px; box-shadow:0 12px 40px #0008; }
.world-guide-panel h2 { margin:0 0 12px; color:#ecf3de; font-size:1.1rem; line-height:1.4; }
.world-guide-panel p { font-size:.9375rem; line-height:1.6; color:#bfd1bb; margin:10px 0; }
.world-guide-context:empty { display:none; }
.world-guide-panel a { display:flex; align-items:center; min-height:44px; font-size:.875rem; color:#d6ef9b; }
.world-tools .world-guide-panel button { width:100%; height:auto; min-height:44px; padding:10px; border-radius:6px; font-size:.875rem; }
@media(max-width:760px), (max-width:1024px) and (pointer:coarse) {
 .architecture-world:not(.world-reading) .world-info { display:none; }
 .world-guide-panel { position:fixed; left:16px; right:16px; bottom:calc(118px + env(safe-area-inset-bottom)); width:auto; max-height:calc(100dvh - 154px); }
}
@media(max-height:500px) and (pointer:coarse) { .world-guide-panel { bottom:70px; max-height:calc(100dvh - 94px); } }

/* Viewer framing is a preference, independent of the reading route. */
.world-view-options { position:relative; flex:0 0 auto; }
.world-view-options > summary { display:flex; align-items:center; min-height:44px; padding:0 14px; border:1px solid #526c49; border-radius:22px; background:#0a2118; color:#d5e5c6; font-size:.875rem; cursor:pointer; list-style:none; }
.world-view-options > summary::-webkit-details-marker { display:none; }
.world-view-options > summary::after { content:' ⌄'; margin-left:8px; }
.world-view-panel { position:absolute; z-index:75; bottom:calc(100% + 10px); right:0; width:250px; max-width:calc(100vw - 32px); max-height:60dvh; overflow:auto; padding:14px; background:#092016; border:1px solid #617e50; border-radius:10px; box-shadow:0 12px 40px #0008; }
.world-view-panel p { margin:0 0 10px; font-size:.875rem; line-height:1.5; color:#bfd1bb; }
.world-tools .world-view-panel button { display:block; width:100%; height:auto; min-height:44px; margin:6px 0; padding:10px 12px; border-radius:6px; font-size:.875rem; text-align:left; }
.world-view-panel button[aria-pressed=true] { border-color:#d6ef9b; background:#23492e; color:#effbdd; }
.view-status:empty { display:none; }
.architecture-world.world-expanded.world-wide-view .world-workspace .world-viewport { width:min(100%,calc((100dvh - 160px) * 1.777778)); height:auto; aspect-ratio:16 / 9; min-height:0; max-height:100%; justify-self:center; align-self:center; margin:0; border:1px solid #39563e; }
.architecture-world.world-expanded.world-wide-view .world-workspace { background:#010806; }
.architecture-world:fullscreen { width:100%; height:100%; }
@media(max-width:760px), (max-width:1024px) and (pointer:coarse) {
 .world-view-panel { position:fixed; right:16px; bottom:calc(118px + env(safe-area-inset-bottom)); max-height:calc(100dvh - 150px); }
}
@media(max-height:500px) and (pointer:coarse) {
 .world-view-panel { bottom:70px; max-height:calc(100dvh - 94px); }
 .architecture-world.world-expanded.world-wide-view .world-workspace .world-viewport { width:min(100%,calc((100dvh - 80px) * 1.777778)); }
}

/* Full-view controls should read as mode choices first, scene options second. */
.world-expanded .world-tools { justify-content:center; align-items:center; }
.world-expanded #world-full-view,
.world-expanded .world-view-options > summary,
.world-expanded .world-guide > summary,
.world-expanded .world-more-controls > summary,
.world-expanded .world-sound-control { min-height:40px; padding:0 12px; border-radius:22px; font-size:.8125rem; }
.world-expanded #world-full-view { order:1; min-width:86px; }
.world-expanded .world-view-options { order:2; }
.world-expanded .world-guide { order:3; }
.world-expanded .world-sound-control { order:4; width:auto; }
.world-expanded [data-world="out"] { order:5; }
.world-expanded [data-world="in"] { order:6; }
.world-expanded .world-more-controls { order:7; }
.world-expanded .world-touch-hint { order:8; text-align:center; color:#9fb9aa; }
@media(max-width:420px) and (pointer:coarse) {
 .world-expanded [data-world="out"],
 .world-expanded [data-world="in"],
 .world-expanded .world-sound-control { display:none; }
 .world-expanded #world-full-view,
 .world-expanded .world-view-options > summary,
 .world-expanded .world-guide > summary,
 .world-expanded .world-more-controls > summary { min-height:42px; padding:0 14px; }
}
