@font-face {
  font-family: 'Groundstead Inter';
  src: url('./assets/fonts/inter-latin.woff') format('woff');
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
}
@font-face {
  font-family: 'Groundstead Manrope';
  src: url('./assets/fonts/manrope-latin.woff') format('woff');
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
}
:root {
  --sans: 'Groundstead Inter', ui-sans-serif, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --display: 'Groundstead Manrope', var(--sans);
  --serif: var(--display);
}
body { font-family:var(--sans); font-optical-sizing:auto; }
button, input, textarea, select { font-family:var(--sans); }
h1, h2, h3, h4 { font-family:var(--display); }
h1, h2, .act-copy h1, .act-copy h2, .canopy-copy h2 { font-weight:600; line-height:1.12; letter-spacing:-.035em; }
.brand strong, .world-open .brand strong { font-family:var(--display); font-weight:750; letter-spacing:-.045em; line-height:1.15; }
.world-heading h1 { font-family:var(--display); font-size:clamp(1.8rem,2.6vw,2.45rem); font-weight:650; line-height:1.18; letter-spacing:-.035em; }
.world-info h2, .world-overview .world-info h2 { font-family:var(--display); font-size:clamp(1.5rem,2vw,1.85rem); font-weight:650; line-height:1.25; letter-spacing:-.025em; }
.world-reader h3, .world-reader h4 { font-weight:650; line-height:1.35; letter-spacing:-.012em; }
.world-info p, .world-reader > p, .world-source p, .world-info li { font-size:1rem; line-height:1.7; }
.world-reader > p, .world-reader li { max-width:65ch; }
.eyebrow, .demo-label, .world-heading > div > p:first-child, .world-info > small, .world-reader > small {
  font-family:var(--sans); font-size:.8125rem; font-weight:550; line-height:1.5; letter-spacing:.065em;
}
.world-reader > small { font-size:.875rem; letter-spacing:.015em; text-transform:none; }
.world-heading > div > p:first-child { max-width:65ch; }
.architecture-nav button, .world-module-bar button, .world-case-steps button, .world-sections button, .world-info button { font-weight:500; line-height:1.45; }
.world-node small { font-family:var(--sans); font-size:.75rem; font-weight:550; letter-spacing:.025em; line-height:1.4; }
.world-module-bar button[data-primary-journey]::before { font-family:var(--sans); font-size:.75rem; font-weight:650; letter-spacing:.065em; }
.world-city, .world-map-status, .landscape-picker, .world-breadcrumb { font-family:var(--sans); line-height:1.45; }
.world-map-status { font-variant-numeric:tabular-nums; }
.world-source summary { font-weight:550; }
.world-case-steps button { font-size:.9375rem; }
.world-problem-panel p, .world-problem-panel li { font-size:1rem; line-height:1.65; }
.world-evidence-route small { font-family:var(--sans); font-size:.8125rem; line-height:1.5; letter-spacing:.04em; }
@media(max-width:760px) {
  .mobile-home h1 { font-family:var(--display); font-size:clamp(2.15rem,8.5vw,3.4rem); font-weight:600; line-height:1.15; letter-spacing:-.04em; }
  .mobile-home-tree h2 { font-family:var(--display); font-weight:600; line-height:1.2; letter-spacing:-.025em; }
  .mobile-home p { font-size:1rem; line-height:1.7; }
  .world-module-bar button, .world-navigation .world-sections button { font-size:.875rem; }
  .world-explore-problem { margin-top:12px; }
}
@media(max-width:380px) {
  .world-heading h1 { font-size:1.7rem; }
  .brand strong, .world-open .brand strong { font-size:1.25rem; }
}

/* Compact controls stay separate from reading and the scene hit targets. */
.world-tools { flex-wrap:nowrap; gap:6px; align-items:center; max-width:calc(100% - 24px); left:12px; bottom:12px; }
.world-tools > button { flex:0 0 44px; }
.world-tools > #world-full-view { flex:0 0 auto; padding:0 10px; }
.world-more-controls { position:relative; flex:0 0 auto; }
.world-more-controls > summary { min-height:44px; display:flex; align-items:center; padding:0 12px; border:1px solid #365b47; border-radius:22px; background:#082118; cursor:pointer; font-size:.875rem; list-style:none; }
.world-more-controls > summary::-webkit-details-marker { display:none; }
.world-more-controls > summary::after { content:' +'; margin-left:5px; }
.world-more-controls[open] > summary::after { content:' −'; }
.world-more-panel { position:absolute; bottom:54px; right:0; width:min(290px,calc(100vw - 40px)); max-height: min(360px,55dvh); overflow:auto; display:grid; grid-template-columns:minmax(0,1fr); gap:6px; padding:12px; border:1px solid #416352; border-radius:12px; background:#061c14; box-shadow:0 8px 30px #0009; z-index:45; }
.world-tools .world-more-panel button, .world-tools .world-more-panel select { width:100%; max-width:none; height:auto; min-height:44px; border-radius:8px; padding:10px 12px; font-size:.875rem; line-height:1.4; white-space:normal; }
.world-more-panel .world-touch-hint { font-size:.8125rem; }
.world-reading .world-tools, .world-reading .world-orbit-hint, .world-reading .world-navigation { display:none; }
.world-reading { grid-template-rows:auto minmax(0,1fr); }
.world-reading .world-heading { padding-top:10px; padding-bottom:10px; }
.world-reading .world-heading > div > p { display:none; }
.world-reading .world-heading h1 { font-size:1.4rem; }
.world-step-menu { margin:14px 0; border-top:1px solid #294b3b; border-bottom:1px solid #294b3b; }
.world-step-menu > summary { cursor:pointer; padding:12px 0; min-height:44px; font-size:.875rem; }
.world-step-menu .world-case-steps { margin:0 0 12px; }
.world-reader-actions { margin-top:20px; align-items:stretch; }
.world-reader-actions button { margin-top:0; min-width:0; overflow-wrap:anywhere; }
.world-info { min-width:0; }
@media(max-width:760px) {
 .world-workspace > .world-tools { padding:8px 12px; gap:5px; }
 .world-reading .world-info { margin:0; padding:18px 20px max(24px,env(safe-area-inset-bottom)); }
 .world-reading .world-workspace { min-height:0; overflow-y:auto; }
 .world-reading .world-heading { display:flex; flex-wrap:wrap; gap:8px; }
 .world-reading .world-breadcrumb { margin:0; }
 .world-reading .world-breadcrumb span { display:none; }
}
/* Issue context fades in over the existing orbit; product information is opt-in. */
.world-issue-focus .world-info { visibility:hidden; pointer-events:none; }
.world-issue-focus .world-labels, .world-issue-focus .world-map-status { opacity:.16; pointer-events:none; transition:opacity .4s ease; }
.world-issue-focus .world-problem-panel { top:12px; width:min(370px,calc(100% - 24px)); max-height:calc(100% - 88px); padding:20px; background:rgba(43,27,12,.97); border:1px solid #bc8447; border-radius:12px; box-shadow:0 16px 50px #0009; color:#f7e5cb; animation:issue-arrive .35s ease both; transition:background-color .4s ease,border-color .4s ease,color .4s ease; }
.world-issue-focus .world-problem-panel h3 { font-size:1.35rem; line-height:1.25; color:#ffe3ba; }
.world-issue-focus .world-problem-panel h4 { margin:18px 0 6px; color:#ffd397; font-size:1rem; }
.world-issue-focus .world-problem-panel p { color:#ead5ba; font-size:1rem; line-height:1.6; }
.world-issue-focus .world-problem-panel small { color:#e5b67e; font-size:.8125rem; letter-spacing:.035em; }
.world-issue-focus .world-problem-panel button { display:block; width:100%; min-height:44px; margin-top:10px; padding:11px 14px; border:1px solid #926637; border-radius:8px; background:#4c331a; color:#ffe4bf; font:500 .9375rem/1.4 var(--sans); cursor:pointer; }
.world-issue-focus .world-problem-panel details { margin:14px 0; border-top:1px solid #866137; border-bottom:1px solid #866137; }
.world-issue-focus .world-problem-panel summary { padding:12px 0; cursor:pointer; min-height:44px; line-height:1.5; }
.world-issue-focus .world-problem-panel .world-solution-link { background:#e8bc80; color:#30200e; border-color:#f1ce9e; }
.world-product-focus .world-problem-panel { background:rgba(8,36,25,.98); border-color:#6bb58f; color:#dcf5e5; }
.world-product-focus .world-problem-panel h3,.world-product-focus .world-problem-panel h4 { color:#cff7df; }
.world-product-focus .world-problem-panel p { color:#c0ddcb; }
.world-product-focus .world-problem-panel small { color:#9eceb4; }
.world-product-focus .world-problem-panel strong { display:block; margin:18px 0; font-size:1.15rem; color:#e1ffec; }
.world-product-focus .world-problem-panel button { background:#194c33; border-color:#669e7f; color:#e0f9e9; }
@keyframes issue-arrive { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:translateY(0); } }
@media(max-width:760px) {
 .world-issue-focus .world-problem-panel { position:fixed; z-index:45; top:auto; bottom:max(12px,env(safe-area-inset-bottom)); right:12px; width:calc(100% - 24px); max-height:48dvh; padding:16px; }
}
@media(prefers-reduced-motion:reduce) {
 .world-issue-focus .world-problem-panel { animation:none; transition:none; }
 .world-issue-focus .world-labels,.world-issue-focus .world-map-status { transition:none; }
}
.world-node[data-node="cold"], .world-node[data-node="access"], .world-node[data-node="workflow"], .world-node[data-node="continuity"] { min-height:56px; width:clamp(140px,15vw,190px); background:rgba(5,29,20,.96); border-color:#87c8a5; font-weight:600; line-height:1.4; padding:10px 12px; }
.world-node.active { border-width:2px; }

/* Reserve real layout space for the overview instead of floating across the hero. */
.world-heading > div { min-width:0; }
.world-heading { flex-wrap:wrap; }
.world-heading > div:first-child { flex:1 1 520px; }
.world-heading .world-breadcrumb { flex:0 1 auto; }
.world-module-bar button { overflow-wrap:anywhere; }
.world-info h2 { overflow-wrap:break-word; }
.world-map-status { max-width:calc(100% - 36px); flex-wrap:wrap; gap:6px; white-space:normal; }
.world-map-status button { min-height:36px; }
.world-orbit-hint { max-width:calc(100% - 330px); text-align:right; }
.world-more-panel { right:auto; left:0; }
@media(min-width:761px) {
  .world-landscape.world-overview:not(.world-reading):not(.world-expanded) .world-workspace {
    display:grid; grid-template-columns:minmax(260px,300px) minmax(0,1fr);
    gap:20px; padding:8px 24px 20px; min-height:360px;
  }
  .world-landscape.world-overview:not(.world-reading):not(.world-expanded) .world-info {
    position:static; inset:auto; grid-column:1; grid-row:1; align-self:start;
    width:auto; margin:0; max-height:100%; overflow:auto; padding:20px;
    z-index:auto; transform:none; will-change:auto;
    background:#0b241b; border-color:#335b47; box-shadow:none;
  }
  .world-landscape.world-overview:not(.world-reading):not(.world-expanded) .world-viewport {
    grid-column:2; grid-row:1; margin:0; min-height:340px;
    border:1px solid #294b3b; border-radius:12px;
  }
  .world-overview .outcome-rail div { grid-template-columns:1fr; gap:3px; }
  .world-overview .outcome-rail { gap:12px; padding:14px 0; }
  .world-overview .outcome-rail strong, .world-overview .outcome-rail span { font-size:.875rem; }
  .world-landscape.world-overview.world-reading:not(.world-pricing-view) .world-info {
    position:static; width:auto; max-height:100%; overflow:auto; margin:0; transform:none;
  }
  .world-landscape.world-overview.world-reading .world-viewport { margin-left:0; }
}
@media(min-width:761px) and (max-width:1050px) {
  .world-module-bar { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .world-heading { gap:12px; }
  .world-heading > div:first-child { flex-basis:100%; }
  .world-landscape.world-overview:not(.world-reading):not(.world-expanded) .world-workspace {
    grid-template-columns:240px minmax(0,1fr); gap:14px; padding-inline:16px;
  }
  .world-orbit-hint { display:none; }
}
@media(max-width:760px) {
  .world-heading > div:first-child { flex-basis:auto; }
  .world-landscape.world-overview .world-info { position:static; width:auto; margin:16px; transform:none; }
  .world-landscape.world-overview.world-reading .world-info { margin:0; }
  .world-map-status { max-width:calc(100% - 24px); }
  .world-heading .world-breadcrumb { margin-top:10px; }
  .world-overview .outcome-rail div { grid-template-columns:minmax(100px,1fr) minmax(0,1fr); }
}
