/* A navigable scene with reading surfaces outside its viewport. */
html.world-open { scroll-snap-type: none; overflow: hidden; }
body.world-open { overflow: hidden; }
body.world-open > main, body.world-open .section-index { display: none; }
.architecture-world[hidden] { display: none; }
.architecture-world {
  position: fixed; inset: var(--header) 0 0; z-index: 15;
  display: grid; grid-template-rows: auto minmax(0,1fr) auto;
  background: #020c0a; overflow: auto;
}
.world-heading { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 24px 3.8vw 12px; }
.world-heading p { margin: 0 0 6px; color: #8dafa0; font: .75rem var(--mono); letter-spacing: .14em; text-transform: uppercase; }
.world-heading h1 { margin: 0; font: 400 clamp(1.65rem,2.6vw,2.6rem)/1.12 var(--serif); letter-spacing: -.02em; }
.world-heading .world-decision-brief { display: none; max-width: 690px; margin: 10px 0 0; color: #c5dccd; font: .875rem/1.45 var(--sans, sans-serif); letter-spacing: 0; text-transform: none; }
.world-decision-brief strong { color: #e7f8ed; font-weight: 650; }
.world-decision-brief span::before { content: ' '; }
.world-breadcrumb { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; font-size: .875rem; }
.world-breadcrumb button { padding: 10px 12px; background: #0a211a; border: 1px solid #294c3e; border-radius: 24px; cursor: pointer; }
.world-breadcrumb span { color: #9ebdad; }
.world-workspace { display: grid; grid-template-columns: minmax(0,1fr) 310px; min-height: 0; padding-right: 3.8vw; }
.world-viewport { position: relative; min-width: 0; min-height: 330px; overflow: hidden; }
.world-viewport::before { content:'';position:absolute;inset:0;z-index:1;pointer-events:none;background:radial-gradient(circle at 50% 52%,transparent 0 35%,rgba(5,32,23,.08) 48%,rgba(1,9,7,.72) 100%),repeating-radial-gradient(ellipse at 50% 58%,transparent 0 8.5%,rgba(95,230,165,.025) 8.8% 9%,transparent 9.2% 17%);mix-blend-mode:screen; }
.world-viewport::after { content:'';position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(180deg,rgba(4,18,14,.32),transparent 28% 68%,rgba(1,8,6,.5)); }
#architecture-canvas { display: block; width: 100%; height: 100%; touch-action: none; cursor: grab; outline-offset: -5px; }
#architecture-canvas:active { cursor: grabbing; }
.world-labels { position: absolute; inset: 0; pointer-events: none; }
.world-node {
  position: absolute; top: 0; left: 0; pointer-events: auto; width: 150px;
  padding: 8px 12px; border: 1px solid rgba(130,211,177,.27); border-radius: 7px;
  background: rgba(3,19,13,.9); color: #d6e9df; text-align: left; cursor: pointer;
  font-size: .875rem; line-height: 1.3; will-change: transform;
  transition: opacity 240ms ease, border-color 160ms ease, background 160ms ease;
}
.world-node small { display: block; margin-bottom: 4px; font: .6875rem var(--mono); color: #85b49d; letter-spacing: .09em; text-transform: uppercase; }
.world-node:hover, .world-node:focus-visible { border-color: #71ffd8; background: #0b3023; }
.world-node[hidden] { display: none; }
.world-node.active { border-color: #62ddb3; box-shadow: 0 0 24px #2cf4bf18; }
.world-node::before { content: ''; position: absolute; left: -5px; top: 50%; width: 5px; height: 5px; border-radius: 50%; background: #71ffd8; box-shadow: 0 0 12px #2cf4bf; }
.world-info { align-self: center; padding: 25px; border: 1px solid #264638; border-radius: 12px; background: #061610; box-shadow: 0 30px 100px #0005; }
.world-info > small { display: block; color: #80b49a; font: .75rem var(--mono); letter-spacing: .1em; text-transform: uppercase; }
.world-info h2 { margin: 15px 0 12px; font: 400 1.9rem/1.1 var(--serif); letter-spacing: -.02em; }
.world-info p { margin: 12px 0; color: #bbd0c4; font-size: 1rem; line-height: 1.65; }
.world-info ul { padding-left: 18px; margin: 20px 0; color: #b5ccbd; font-size: .875rem; line-height: 1.6; }
.world-info li + li { margin-top: 8px; }
.world-answer-mode { display:flex;gap:6px;margin:14px 0 9px; }
.world-answer-mode[hidden],.world-answer-card[hidden],#world-items[hidden] { display:none!important; }
.world-info .world-answer-mode button { width:auto;min-height:38px;margin:0;padding:7px 11px;border:1px solid #3d6752;border-radius:999px;background:#092219;color:#aac7b7; }
.world-info .world-answer-mode button[aria-pressed="true"] { border-color:#8be0b5;background:#17452f;color:#effff5; }
.world-answer-card { display:grid;gap:7px;margin:0 0 14px;padding:15px;border:1px solid #436b58;border-radius:8px;background:linear-gradient(145deg,#103326,#071a13); }
.world-answer-card small,.world-answer-card span { color:#87b39e;font:.65rem var(--mono);letter-spacing:.1em;text-transform:uppercase; }
.world-answer-card strong { color:#f0fff6;font:600 1rem/1.35 var(--sans,sans-serif); }
.world-answer-card span { margin-top:5px;color:#78d7aa; }
.world-info .world-answer-card p { margin:0;color:#cce1d5;font-size:.9rem;line-height:1.5;text-shadow:none; }
.world-info .world-boundary { color: #8cab99; border-top: 1px solid #284635; padding-top: 16px; font-size: .8125rem; }
.world-cards-hidden .world-module-bar,.world-cards-hidden:not(.world-reading) .world-info,.world-cards-hidden .world-map-status { display:none!important; }
.world-info button { width: 100%; padding: 12px 14px; min-height: 44px; margin-top: 10px; background: #c7f6dd; color: #062014; border-radius: 6px; font-size: .875rem; cursor: pointer; }
.world-info button.secondary { color: #bddbc9; background: transparent; border: 1px solid #345c46; }
.world-info-inner { transition: opacity 350ms ease, transform 450ms cubic-bezier(.2,.8,.2,1); }
.world-in-transit .world-info-inner { opacity: .15; transform: translateY(8px); pointer-events: none; }
.world-flight { position:absolute;z-index:12;left:50%;top:50%;display:flex;align-items:center;gap:12px;padding:10px 14px;border:1px solid #5fa68170;border-radius:999px;background:#041610dc;color:#d9f8e6;opacity:0;transform:translate(-50%,18px);transition:opacity 180ms ease,transform 520ms cubic-bezier(.2,.8,.2,1);pointer-events:none;box-shadow:0 12px 50px #0008,0 0 30px #46dfa51a;white-space:nowrap; }
.world-flight i { width:9px;height:9px;border-radius:50%;background:#77ffd0;box-shadow:0 0 18px #62f6c4; }
.world-flight span { display:grid;gap:2px; }
.world-flight small { color:#8dbca7;font:.625rem var(--mono);letter-spacing:.12em;text-transform:uppercase; }
.world-flight b { font:600 .8125rem var(--sans,sans-serif); }
.world-in-transit .world-flight { opacity:1;transform:translate(-50%,0); }
.architecture-world[data-transit="enter"] .world-flight i { animation:flight-pulse .7s ease-in-out infinite alternate; }
@keyframes flight-pulse { to { transform:scale(1.8);box-shadow:0 0 30px #9effdc; } }
.world-tools { position: absolute; left: 24px; bottom: 18px; display: flex; gap: 8px; }
.world-tools button { width: 44px; height: 44px; background: #082118e8; border: 1px solid #365b47; border-radius: 50%; cursor: pointer; font-size: 1.1rem; }
.world-orbit-hint { position: absolute; bottom: 17px; right: 24px; color: #88ad97; font-size: .8125rem; pointer-events: none; margin: 0; }
.world-footer { display: flex; justify-content: space-between; gap: 18px; align-items: center; margin: 0 3.8vw; padding: 16px 0 20px; border-top: 1px solid #193b2c; }
.world-dock { display: flex; flex-wrap: wrap; gap: 8px; }
.world-dock button { padding: 11px 15px; background: transparent; color: #b5cfbf; border: 1px solid #31533f; border-radius: 24px; cursor: pointer; font-size: .875rem; }
.world-dock button[aria-pressed=true] { color: #caffdf; border-color: #72c497; background: #0b2b1b; }
.world-footer > p { margin: 0; color: #89a492; font-size: .75rem; }
.world-fallback { position: absolute; inset: 35% 15%; color: #b9d3c2; text-align: center; }
@media(max-width: 1100px) {
  .world-workspace { grid-template-columns: minmax(0,1fr) 270px; padding-right: 24px; }
  .world-info { padding: 20px; }
  .world-node { width: 126px; }
  .world-orbit-hint { bottom: 72px; left: 24px; right: auto; }
}
@media(max-width: 760px) {
  .architecture-world { grid-template-rows: auto minmax(0,1fr) auto; }
  .world-heading { display: block; padding: 16px 20px 8px; }
  .world-heading h1 { font-size: 1.65rem; }
  .world-heading p { font-size: .6875rem; }
  .world-breadcrumb { margin-top: 10px; gap: 4px; }
  .world-breadcrumb button { padding: 6px 10px; min-height: 36px; }
  .world-workspace { display: flex; flex-direction: column; padding: 0; overflow-y: auto; }
  .world-viewport { height: max(340px, 48svh); min-height: max(340px, 48svh); flex: none; }
  .world-info { align-self: stretch; margin: 0 20px 20px; padding: 20px; }
  .world-info h2 { font-size: 1.65rem; }
  .world-info ul { margin: 12px 0; }
  .world-node { width: 112px; padding: 6px 8px; font-size: .8125rem; }
  .world-node small { font-size: .625rem; }
  .world-tools { left: 20px; bottom: 14px; }
  .world-orbit-hint { left: auto; right: 20px; bottom: 22px; max-width: 160px; font-size: .75rem; }
  .world-footer { margin: 0 20px; padding: 10px 0; }
  .world-dock { display: grid; grid-template-columns: repeat(2,1fr); width: 100%; gap: 6px; }
  .world-dock button { padding: 8px; min-height: 40px; font-size: .8125rem; }
  .world-footer > p { display: none; }
}
@media(prefers-reduced-motion:reduce) { .world-info-inner, .world-node, .world-flight { transition: none; } .world-flight i { animation:none!important; } }

.world-node.label-left::before { left: auto; right: -5px; }

#architecture-canvas[hidden] { display: none; }

/* Compact navigation: module choice first, scene and reading panel below. */
.architecture-world { grid-template-rows: auto auto minmax(0,1fr); }
.world-heading { padding: 16px 28px 12px; }
.world-heading h1 { font-size: clamp(1.5rem,2vw,2rem); }
.world-heading p { margin-bottom: 4px; }
.world-module-bar { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 8px; padding: 0 28px 14px; border-bottom: 1px solid #1f3e2d; }
.world-module-bar button { border-radius: 7px; min-height: 46px; padding: 10px 12px; text-align: center; }
.world-module-bar button::after { content: ' ↗'; color: #8fbda3; }
.world-module-bar button[aria-pressed=true] { background: #103b28; border-color: #88d8b0; color: #ebfff1; }
.world-module-bar button[aria-pressed=true]::after { content: ' ·'; }
.world-workspace { grid-template-columns: minmax(0,1fr) 285px; padding: 0 20px 18px 0; }
.world-info { align-self: start; margin-top: 18px; padding: 20px; max-height: calc(100% - 18px); overflow-y: auto; }
.world-info h2 { font-size: 1.65rem; margin: 12px 0; }
.world-info p { line-height: 1.5; }
.world-info ul { margin: 14px 0; }
.world-info .world-boundary { margin-bottom: 0; font-size: .75rem; }
.world-sections { display: grid; gap: 6px; padding-bottom: 16px; margin-bottom: 16px; border-bottom: 1px solid #2c4838; }
.world-sections[hidden] { display: none; }
.world-sections button { margin: 0; background: #0a2519; color: #c5dccd; border: 1px solid #365b45; text-align: left; }
.world-sections button::after { content: ' →'; float: right; }
.world-sections button[aria-pressed=true] { background: #c7f6dd; color: #062014; border-color: #c7f6dd; }
.architecture-nav { display: none; gap: 8px; }
.world-open .site-header { grid-template-columns: minmax(280px,1fr) auto auto; gap: 22px; }
.world-open .journey-nav { display: none; }
.world-open .architecture-nav { display: flex; }
.architecture-nav button { padding: 10px 12px; min-height: 44px; background: transparent; color: #b9cfbf; font-size: .875rem; border-radius: 6px; cursor: pointer; }
.architecture-nav button[aria-current=page] { color: #b4f8d1; background: #103322; }
@media(max-width:1100px) {
  .world-open .site-header { grid-template-columns: 1fr auto; }
  .world-open .architecture-nav { display: none; }
  .world-workspace { grid-template-columns: minmax(0,1fr) 265px; }
}
@media(max-width:760px) {
  .world-heading { padding: 12px 16px 8px; }
  .world-module-bar { grid-template-columns: repeat(2,minmax(0,1fr)); padding: 0 16px 10px; gap: 6px; }
  .world-module-bar button { min-height: 42px; font-size: .8125rem; padding: 7px; }
  .world-workspace { display: flex; padding: 0; }
  .world-info { align-self: stretch; max-height: none; overflow: visible; margin: 0 16px 16px; }
  .world-sections { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 4px; }
  .world-sections button { padding: 10px 4px; text-align: center; font-size: .8125rem; overflow-wrap: anywhere; }
  .world-sections button::after { content: none; }
}

.world-open .pilot-link { display: none; }
.world-navigation .world-module-bar { padding-bottom: 10px; }
.world-navigation .world-sections { grid-template-columns: repeat(3,minmax(0,1fr)); margin: 0 28px; padding: 2px 0 12px; border-bottom: 1px solid #294836; }
.world-navigation .world-sections button { min-height: 44px; padding: 10px 14px; border-radius: 6px; font-size: .875rem; cursor: pointer; }
@media(max-width:760px) {
  .world-navigation .world-sections { margin: 0 16px; }
  .world-navigation .world-sections button { padding: 8px 4px; font-size: .8125rem; }
}

/* Shared respiration: restrained light, stable labels and text. */
.architecture-world { --tree-breath: 0; }
.world-node {
  border-color: rgba(130,211,177,calc(.27 + var(--tree-breath) * .09));
  box-shadow: 0 0 24px rgba(44,244,191,calc(.025 + var(--tree-breath) * .045));
}
.world-node::before { box-shadow: 0 0 calc(10px + var(--tree-breath) * 5px) rgba(113,255,216,.65); }
.world-node.active { box-shadow: 0 0 28px rgba(44,244,191,calc(.08 + var(--tree-breath) * .055)); }
.world-node:hover, .world-node:focus-visible { border-color: #71ffd8; }

/* The overview gives the world the full stage; details remain readable on arrival. */
.world-overview .world-workspace { grid-template-columns: minmax(0,1fr); padding-right: 0; position: relative; isolation: isolate; }
.world-overview .world-viewport { z-index: 0; }
.world-overview .world-info { position: fixed; top: calc(var(--header) + 220px); bottom: auto; left: 28px; width: 270px; max-height: none; margin: 0; padding: 0; border: 0; background: transparent; box-shadow: none; pointer-events: auto; }
.world-overview .world-info h2 { font-size: 1.5rem; line-height: 1.12; }
.world-overview .world-info #world-kind,
.world-overview .world-info ul { display: none; }
.world-overview .world-info p { font-size: .9rem; line-height: 1.5; text-shadow: 0 2px 12px #000; }
.world-overview .world-info .world-boundary { max-width: 240px; border: 0; padding-top: 0; font-size: .75rem; }
.outcome-rail { display: grid; gap: 6px; margin: 14px 0; padding: 10px 0; border-top: 1px solid #47735b; border-bottom: 1px solid #47735b; }
.outcome-rail div { display: grid; gap: 2px; }
.outcome-rail strong { color: #d3f7e2; font: 600 .8125rem var(--sans, sans-serif); }
.outcome-rail span { color: #a9cdbb; font-size: .75rem; line-height: 1.35; }
.world-info .outcome-rail[hidden] { display: none; }
.world-overview .pilot-capacity-card { display: none; }
.world-overview .world-info #world-pilot,
.world-overview .world-info .world-boundary { display: none !important; }
.world-overview .world-info #world-pilot { display: none !important; }
.world-overview .world-info { display: none; }
.world-landscape.world-overview .world-info { display:block; }
.world-landscape.world-overview .world-info #world-items { display:block; }
.world-overview .world-decision-brief { display: block; }
.world-overview .outcome-rail { gap: 4px; margin: 10px 0; padding: 8px 0; }
.world-overview .outcome-rail div { grid-template-columns: 104px 1fr; align-items: baseline; gap: 6px; }
.world-overview .outcome-rail span { font-size: .75rem; }
.world-overview .world-info #world-demo { min-height: 44px; margin-top: 8px; padding: 10px 12px; }
.world-module-bar { border-bottom: 0; }
.world-module-bar button { border-radius: 24px; background: #09241a80; }
.world-module-bar button:not([data-primary-journey]) { color: #9fb9aa; border-color: #294a39; background: #071b1480; }
.world-module-bar button[data-primary-journey] { border-color: #72c99f; background: linear-gradient(90deg,#123d2b,#0b281d); box-shadow: inset 0 0 22px #4ef0a70c,0 0 18px #55e6a30c; }
.world-module-bar button[data-primary-journey]::before { content: 'START HERE'; margin-right: 8px; color: #bdf5d4; font: .625rem var(--mono); letter-spacing: .08em; }
.world-info { background: linear-gradient(145deg,#0a231de8,#03110de8); border-color: #36554980; }
.world-node { background: #03130bc9; border-radius: 2px; border-width: 0 0 1px; padding: 8px 10px; }
.world-node small { font-size: .75rem; letter-spacing: .05em; }
@media(min-width:761px) {
  .world-overview .world-orbit-hint { right: 28px; left: auto; bottom: 26px; }
}
@media(max-width:760px) {
  .world-overview .world-workspace { display: flex; }
  .world-overview .world-viewport { height: max(430px,62svh); min-height: max(430px,62svh); }
  .world-overview .world-info { position: static; width: auto; margin: 0 20px 20px; }
  .world-overview .world-info .world-boundary { max-width: none; }
  .world-node { font-size: .875rem; }
  .world-node small { font-size: .75rem; }
}

/* A clear route from the world to an example, with comfort controls in reach. */
.world-overview .world-info { z-index: 99; width: 270px; box-sizing: border-box; padding: 14px; border: 1px solid #6a9b7e; border-radius: 10px; background: #0b2f22; box-shadow: 0 18px 48px rgba(0,0,0,.34); transform: translateZ(0); will-change: transform; }
.world-overview .world-info h2 { color: #e8fff0 !important; }
.world-overview .world-info p { color: #d5eadc !important; }
.world-overview .world-info #world-demo { pointer-events: auto; display: block; }
.world-overview .world-info p { font-size: 1rem; }
.world-overview .world-info .world-boundary { font-size: .75rem; }
.world-tools #world-motion { width: auto; min-width: 110px; padding: 0 14px; font-size: .875rem; border-radius: 24px; }
.world-tools #world-motion:disabled { opacity: .65; cursor: default; }
.world-info button[hidden] { display: none; }
@media(max-width:760px) {
  .world-overview .world-info { width: auto; }
  .world-orbit-hint { bottom: 72px; left: 20px; right: auto; max-width: none; }
}

.world-info-inner[hidden], .world-reader[hidden] { display: none; }
.world-reading .world-workspace { grid-template-columns: minmax(0,1fr) minmax(330px,390px); }
.world-reading .world-info { width: auto; }
.world-reader > small { font: .75rem var(--mono); color: #9cc6b2; }
.world-reader > strong { display: block; font-size: 1.8rem; color: #d9fbe8; margin: 20px 0; }
.world-reader button { min-height: 44px; }
.world-reader button:disabled { opacity: .4; cursor: default; }
.world-case-steps { display: grid; gap: 5px; margin: 20px 0; }
.world-case-steps button { margin: 0; padding: 9px 12px; text-align: left; background: #092219; color: #bbd8c9; border: 1px solid #284b3a; }
.world-case-steps button[aria-current=step] { border-color: #83d2ac; background: #173e2b; color: #edfff5; }
.world-reader-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.world-reader > p:last-of-type { font-size: .8125rem; color: #a5beaf; }
@media(max-width:760px) {
  .world-reading .world-workspace { display: flex; }
  .world-reading .world-viewport { height: 220px; min-height: 220px; }
  .world-reading .world-info { margin-top: 12px; }
  .world-reading .world-orbit-hint { display: none; }
}

.world-tools { flex-wrap: wrap; max-width: calc(100% - 48px); }
.world-tools #world-roots { width: auto; padding: 0 14px; border-radius: 24px; font-size: .875rem; }
/* Keep the reading panel and viewport dimensions stable across the plane. */
@media(max-width:760px) { .world-orbit-hint { bottom: 122px; } }

.world-tools #world-sky { min-height: 44px; max-width: 170px; padding: 0 12px; border: 1px solid #365b47; border-radius: 24px; background: #082118; color: #d6e9df; font: .875rem var(--sans, sans-serif); cursor: pointer; color-scheme: dark; }

.world-reader h3 { margin: 20px 0 10px; font-size: 1rem; color: #d6e9df; }
.world-reader ol { padding-left: 20px; color: #bbd0c4; line-height: 1.6; font-size: .9375rem; }
.world-reader ol li + li { margin-top: 10px; }

.world-orbit-hint { max-width: 320px; text-align: right; }
@media(pointer:coarse) { .world-orbit-hint { font-size: 0; } .world-orbit-hint::after { content: 'Drag to orbit · two fingers to move and pinch'; font-size: .75rem; } }

/* One calm transition per gesture; no repeated label flashing during camera travel. */
.world-labels { transition: opacity 140ms ease; }
.world-navigating .world-labels { opacity: 0; }
.world-navigating .world-node { pointer-events: none; }
@media(prefers-reduced-motion:reduce) { .world-labels { transition: none; } }

/* Inquiry stays reachable in the overview and every detail panel. */
.world-info .world-inquiry { display: block; pointer-events: auto; min-height: 44px; padding: 12px 10px; margin-top: 10px; border: 1px solid #6caa88; border-radius: 6px; color: #d3f7e2; font-size: .875rem; line-height: 1.5; text-align: center; text-decoration: none; overflow-wrap: anywhere; }
.world-info .world-inquiry:hover { background: #163c2b; }
.world-info .world-inquiry:focus-visible { outline: 2px solid #b4f8d1; outline-offset: 3px; }
.world-evidence-route { margin-top:12px; padding:12px; border:1px solid #b7733a; border-radius:7px; background:linear-gradient(145deg,#2b190c,#0a1711); }
.world-evidence-route small { display:block; color:#ffd3a5; font: .6875rem var(--mono); letter-spacing:.08em; text-transform:uppercase; }
.world-evidence-route h3 { margin:8px 0 6px; color:#fff0db; font-size:1rem; }
.world-evidence-route p,.world-evidence-route li { color:#d7c6af; font-size:.8125rem; line-height:1.45; }
.world-evidence-route ol { margin:8px 0 12px; padding-left:20px; }
.world-evidence-route li + li { margin-top:6px; }
.world-route-answer { margin:12px 0; padding:10px; border-left:2px solid #f0ae63; background:#1d120a; }
.world-route-answer h4 { margin:0 0 5px; color:#fff0db; font-size:.8125rem; letter-spacing:.04em; text-transform:uppercase; }
.world-route-answer p { margin:0; color:#ead7bd; }
.world-evidence-route button { width:100%; min-height:40px; padding:8px; border-color:#d79652; color:#fff0db; background:#40230f; }

.world-overview .world-info #world-pilot { pointer-events: auto; display: block; }
.world-sample { margin: 24px 0; padding: 16px; border: 1px solid #47735b; border-radius: 8px; background: #092319; }
.world-sample summary { cursor: pointer; min-height: 44px; color: #d3f7e2; font-size: 1rem; font-weight: 600; }
.world-sample dt { margin-top: 18px; color: #b4f8d1; font-weight: 600; font-size: 1rem; }
.world-sample dd { margin: 6px 0 0; font-size: 1rem; line-height: 1.6; color: #cee0d4; }

/* Pricing is a readable comparison surface with a persistent entry point. */
.world-price-shortcut { display: none; }
.world-open .world-price-shortcut { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 8px 12px; color: #d3f7e2; background: #163c2b; border: 1px solid #47735b; border-radius: 6px; font-size: .875rem; cursor: pointer; }
.world-price-shortcut:focus-visible { outline: 2px solid #b4f8d1; outline-offset: 3px; }
.world-pricing-view .world-viewport, .world-pricing-view .world-navigation, .world-pricing-view .world-heading { display: none; }
.world-pricing-view .world-workspace { display: block; }
.world-pricing-view .world-info { position: relative; display: block; width: 100%; max-width: 1180px; margin: 0 auto; padding: 24px; max-height: none; pointer-events: auto; }
.world-pricing-view .world-reader { max-width: none; }
.world-pricing-view .world-reader > p { font-size: 1rem; max-width: 85ch; }
.world-price-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 14px; margin: 24px 0 30px; }
.world-module-prices { grid-template-columns: repeat(4,minmax(0,1fr)); }
.world-price-card { border: 1px solid #365f49; background: #0b261b; padding: 20px; border-radius: 8px; }
.world-price-card h3 { margin: 0 0 14px; font-size: 1rem; }
.world-price-card strong { display: block; color: #d3f7e2; font-size: 1.25rem; }
.world-price-card p { font-size: 1rem; line-height: 1.6; }
.world-price-card small { font-size: .875rem; color: #a8c5b5; }
.world-layer-map { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin:20px 0 28px; }
.world-layer-card { min-height:150px; padding:16px; border:1px solid #365f49; border-radius:8px; background:linear-gradient(145deg,#092319,#041710); }
.world-layer-card h3 { margin:0 0 10px; color:#e5fff0; font-size:1rem; line-height:1.35; }
.world-layer-card strong { display:block; margin-bottom:8px; color:#d6ef9b; font-size:.8125rem; line-height:1.5; text-transform:uppercase; letter-spacing:.08em; }
.world-layer-card p { margin:0; color:#b8cab9; font-size:.9375rem; line-height:1.55; }
@media(max-width:900px) { .world-price-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media(max-width:900px) { .world-layer-map { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:560px) { .world-price-grid, .world-layer-map { grid-template-columns: 1fr; } .world-pricing-view .world-info { padding: 20px 16px; } .world-layer-card { min-height:0; } }

.architecture-world.world-pricing-view { display: block; }

/* Keep the full header usable at narrow widths and enlarged text. */
@media(max-width:560px) {
  :root { --header: 124px; }
  .world-open .site-header { grid-template-columns: minmax(0,1fr); grid-template-rows: auto auto; gap: 4px; padding: 8px 16px; }
  .world-open .header-actions { justify-self: stretch; justify-content: flex-end; gap: 8px; min-width: 0; }
  .world-open .brand { min-width: 0; }
}
.world-reader h2:focus-visible { outline: 2px solid #b4f8d1; outline-offset: 5px; }
.world-open .world-reserve-shortcut { display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:8px 12px;border:1px solid #88c7a6;border-radius:6px;background:#123d32;color:#e0f8e9;font-size:.875rem;cursor:pointer; }
.world-reserve-shortcut:focus-visible { outline:2px solid #b4f8d1;outline-offset:3px; }
@media(max-width:560px) { .world-open .audio-toggle span { display:none; } .world-open .audio-toggle { width:36px;min-width:36px;padding:0;justify-content:center; } .world-open .header-actions { gap:6px; } }
@media(max-width:360px) { :root { --header:168px; } }
.pilot-capacity-card { padding:20px;margin:22px 0;border:1px solid #47735b;border-radius:8px;background:#0b261b; }
.pilot-capacity-card h3 { margin:8px 0 12px;font-size:1.125rem;color:#d3f7e2;line-height:1.5; }
.pilot-capacity-card p { font-size:1rem;line-height:1.6;color:#cee0d4; }
.pilot-capacity-card small { display:block;font-size:.875rem;line-height:1.5;color:#a9cdbb; }
.participant-arc-card { padding:20px;margin:22px 0;border:1px solid #5e7650;border-radius:8px;background:linear-gradient(145deg,#10291d,#081b13); }
.participant-arc-card small { display:block;color:#d6ef9b;font:.75rem var(--mono,monospace);letter-spacing:.12em;text-transform:uppercase; }
.participant-arc-card h3 { margin:8px 0 12px;font-size:1.125rem;color:#edf7e7;line-height:1.45; }
.participant-arc-card p { margin:10px 0 0;font-size:1rem;line-height:1.6;color:#c9dacb; }
.pilot-slots { display:flex;gap:8px;max-width:300px;margin:12px 0; }
.pilot-slots span { flex:1;height:8px;border:1px solid #638c78;border-radius:3px; }
.pilot-slots .available { background:#85d3ac; }
.pilot-slots .occupied { background:#365746; }
.pilot-slots .unknown { border-style:dashed; }
.world-info-inner .pilot-capacity-card { padding:12px;margin:12px 0;pointer-events:auto; }
.world-info-inner .pilot-capacity-card > p,.world-info-inner .pilot-capacity-card > small:first-child,.world-info-inner .pilot-slots { display:none; }
.world-info-inner .pilot-capacity-card h3 { font-size:.875rem;margin:0 0 6px; }
.world-info-inner .pilot-capacity-card small { font-size:.875rem; }
.pilot-request-form { max-width:760px;padding:24px;border:1px solid #47735b;border-radius:8px;background:#092319;margin:28px 0; }
.pilot-request-form label { display:block;margin:16px 0;font-size:1rem;color:#d3f7e2;line-height:1.5; }
.pilot-request-form input:not([type=checkbox]),.pilot-request-form textarea,.pilot-request-form select { display:block;width:100%;box-sizing:border-box;margin-top:8px;padding:12px;background:#041710;color:#e0f8e9;border:1px solid #638c78;border-radius:5px;font:1rem/1.5 var(--sans,sans-serif); }
.pilot-request-form select { min-height:48px;color-scheme:dark; }
.pilot-request-form textarea { resize:vertical; }
.pilot-request-form .pilot-consent { display:flex;align-items:flex-start;gap:12px; }
.pilot-consent input { width:20px;height:20px;flex-shrink:0;accent-color:#85d3ac; }
.pilot-request-form :focus-visible,.pilot-faq summary:focus-visible { outline:2px solid #b4f8d1;outline-offset:3px; }
.pilot-request-form p,.pilot-faq p { font-size:1rem;line-height:1.6;color:#cee0d4; }
.pilot-faq { max-width:900px;padding:16px 0;border-bottom:1px solid #365f49; }
.pilot-faq summary { cursor:pointer;min-height:36px;color:#d3f7e2;font-size:1rem;line-height:1.5; }
.pilot-email-result[hidden] { display:none; }
@media(max-width:560px) { .pilot-request-form { padding:16px; } .world-open .header-actions { flex-wrap:wrap; } .world-open .world-reserve-shortcut { padding:8px;font-size:.875rem; } }
@media(min-width:761px) and (max-height:650px) {
  .world-overview .world-info { position: static; width: auto; padding: 20px; margin: 0 20px 20px; background: #061610; pointer-events: auto; }
  .world-overview .world-workspace { display: flex; flex-direction: column; overflow-y: auto; }
  .world-overview .world-viewport { min-height: 400px; flex: 0 0 400px; }
}

/* Approved identity: 3B Unified Crest. Keep the emblem visible on mobile. */
.world-open .brand-mark-3b { display: block; width: 48px; height: 58px; object-fit: contain; flex: 0 0 48px; filter: none; }
.world-open .brand strong { font-family: var(--sans, sans-serif); font-weight: 750; letter-spacing: -.04em; }
@media(max-width:560px) {
  .world-open .brand-mark-3b { width: 34px; height: 40px; flex-basis: 34px; }
}

/* Customer landscapes share a visual language, not a fixed system layout. */
.landscape-picker { display:flex;align-items:center;gap:10px;margin-top:8px;color:#a9cdbb;font-size:.875rem; }
.landscape-picker select { min-height:36px;max-width:260px;padding:5px 10px;background:#0a261b;color:#e0f8e9;border:1px solid #47735b;border-radius:5px;font:inherit;color-scheme:dark; }
.world-tools .world-map-button { width:auto;padding:0 14px;border-radius:24px;font-size:.875rem; }
.world-city { position:absolute;left:0;top:0;z-index:3;max-width:142px;padding:6px 9px;border:1px solid #43765b;border-radius:5px;background:#041a12ed;color:#dbf5e5;font:500 .8125rem/1.25 var(--sans,sans-serif);cursor:pointer;box-shadow:0 3px 12px #0005; }
.world-city[hidden] { display:none; }
.world-city:hover,.world-city:focus-visible { outline:2px solid #baf5d3;outline-offset:3px; }
.world-city-issue,.world-city-break { border-color:#ffae5e;color:#ffd3a5; }
.world-city-break { background:#391c0ef5;font-weight:700; }
.world-city-core { font-weight:700;background:#123d32ed;border-color:#93d7b3; }
.world-map-status { position:absolute;top:12px;left:18px;z-index:4;display:flex;align-items:center;padding:6px 9px;background:#04170fec;border:1px solid #335744;border-radius:6px;color:#c5ddcf;font-size:.75rem;white-space:nowrap; }
.world-map-status button { padding:6px 10px;min-height:36px;background:#3d2513;color:#ffd3a5;border:1px solid #b7733a;border-radius:4px;cursor:pointer;font:inherit; }
.world-landscape .world-map-status button { display:block; }
.world-map-character,.world-map-legend,.world-map-status button { display:none; }
.world-map-status { display:none; }
.world-landscape .world-map-status { display:flex; }
.world-landscape .world-info #world-items { display:block; }
.world-landscape .world-info button { pointer-events:auto; }

@media(min-width:761px) { .world-landscape.world-overview .world-viewport { margin-left:335px; } .world-landscape.world-overview .world-info { top:20px;bottom:auto; } }
@media(max-width:760px) { .landscape-picker { flex-wrap:wrap;gap:5px; } .world-landscape.world-overview .world-viewport { height:620px;min-height:620px; } .world-map-status { left:12px;right:12px;transform:none;max-width:none; } .world-map-character { display:none; } .world-city { font-size:.8125rem;max-width:135px;padding:6px 8px; } .world-orbit-hint { display:none; } .world-module-bar button[data-primary-journey]::before { display:block;margin:0 0 2px; } }

.world-problem-panel { position:absolute; z-index:30; top:72px; right:12px; width:min(360px,calc(100% - 24px)); max-height:calc(100% - 150px); overflow:auto; box-sizing:border-box; background:#102018fa; box-shadow:0 12px 36px #0008; }
.world-problem-panel[hidden], .world-problem-panel [hidden] { display:none!important; }
.world-problem-panel p,.world-problem-panel li { font-size:14px; }
.world-problem-switch { display:flex; gap:6px; margin-bottom:12px; }
.world-problem-switch button { min-height:44px; }
.world-problem-switch button[aria-pressed="true"] { background:#b16a28; color:#fff; }
.world-break-target { min-width:48px; min-height:48px; width:48px; height:48px; padding:0; border-radius:50%; font-size:22px; border:2px solid #ffc67e; background:#6d310dd9; box-shadow:0 0 18px #f9913c66; }

/* Evidence walkthrough uses the existing reader, including without a 3D view. */
.world-explore-problem { min-height:44px; padding:12px 18px; background:#153f2c; color:#e5fff0; border:1px solid #75bb97; border-radius:10px; font:inherit; cursor:pointer; }
.world-source { margin:12px 0; padding:14px; border:1px solid #416352; border-radius:8px; background:#0b241a; }
.world-source summary { cursor:pointer; min-height:44px; font-size:1rem; line-height:1.5; color:#daf4e5; }
.world-source p,.world-reader > p,.world-reader li { font-size:1rem; line-height:1.65; overflow-wrap:anywhere; }
.world-reader > small { font-size:.875rem; line-height:1.5; display:block; }
.world-reading .world-explore-problem { display:none; }

.world-heading { flex-wrap:wrap; }
.world-explore-problem { flex-shrink:0; }

/* Scope controls remain compact until opened, including on mobile. */
.world-plan {margin-top:8px;max-width:480px;color:#b5d7c8;font-size:.85rem;position:relative;z-index:30;}
.world-plan summary {cursor:pointer;padding:7px 0;color:#b6f7d0;}
.world-plan-form {display:flex;flex-wrap:wrap;gap:10px;padding:14px;background:#09241e;border:1px solid #426955;border-radius:9px;}
.world-plan-form label {display:flex;flex:1;min-width:130px;flex-direction:column;gap:5px;}
.world-plan-form input,.world-plan-form select,.world-plan-form button {min-height:42px;background:#102f25;color:#e0f8e9;border:1px solid #47735b;border-radius:5px;padding:8px;font:inherit;color-scheme:dark;}
.world-plan-form input {width:100%;box-sizing:border-box;}
.world-plan-form p {flex-basis:100%;font-size:.8rem!important;line-height:1.5;}
.world-plan-form button {cursor:pointer;flex:1;}

/* The case opens in a comfortable reading layout; the 3D scene remains optional. */
.world-case-reading .world-workspace { display:block; min-height:min-content; padding:0 20px 32px; }
.world-case-reading .world-heading,.world-case-reading .world-module-bar { display:none; }
.world-case-reading .world-viewport { display:none; }
.world-case-reading .world-info { position:relative; width:min(100%,860px); max-height:none; overflow:visible; margin:0 auto; box-sizing:border-box; }
.world-case-reading .world-reader-actions { position:sticky; bottom:0; z-index:5; padding:10px 0; background:#061610; box-shadow:0 -12px 24px #061610; }
.world-reader .world-case-view-switch { width:auto; min-height:44px; padding:9px 14px; margin:2px 0 16px; color:#d7f3e2; background:#133c2b; border:1px solid #5b9f78; }
@media(max-width:760px) {
  .world-case-reading .world-workspace { display:block; padding:0 12px 24px; }
  .world-case-reading .world-info { width:100%; margin:0; }
}
