@layer reset, theme, components;

@layer reset {
  *, *::before, *::after { box-sizing: border-box; }
  [hidden] { display: none !important; }
  html { color-scheme: dark; scroll-behavior: smooth; }
  body { margin: 0; }
  button, input { font: inherit; }
  img { max-width: 100%; }
}

@layer theme {
  :root {
    --ri-brand-release: "0.18.59";
    --ri-home-room-layout-contract: "1848";
    --ri-void: #0B0F14;
    --ri-ink: #151B23;
    --ri-panel: #10161E;
    --ri-paper: #E8E2D6;
    --ri-fog: #9AA5B1;
    --ri-signal: #D6A84B;
    --ri-verify: #4DB5A5;
    --ri-alert: #C75A5A;
    --ri-border: rgba(232, 226, 214, 0.17);
    --ri-soft: rgba(232, 226, 214, 0.055);
  }

  body {
    min-height: 100vh;
    background:
      radial-gradient(circle at 78% 14%, rgba(46, 158, 143, .12), transparent 29rem),
      radial-gradient(circle at 14% 56%, rgba(214, 168, 75, .07), transparent 34rem),
      linear-gradient(rgba(214, 168, 75, 0.03) 1px, transparent 1px),
      linear-gradient(90deg, rgba(214, 168, 75, 0.03) 1px, transparent 1px),
      var(--ri-void);
    background-size: auto, auto, 40px 40px, 40px 40px, auto;
    color: var(--ri-paper);
    font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  }

  body.low-intensity {
    background: var(--ri-void);
  }
}

@layer components {
  .skip-link { position: fixed; top: 8px; left: 8px; z-index: 100; transform: translateY(-150%); padding: 10px 14px; background: var(--ri-paper); color: var(--ri-void); font-weight: 800; }
  .skip-link:focus { transform: none; }
  .visually-hidden {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    margin: -1px !important;
    padding: 0 !important;
    overflow: hidden !important;
    clip: rect(0 0 0 0) !important;
    clip-path: inset(50%) !important;
    border: 0 !important;
    white-space: nowrap !important;
  }
  .shell { width: min(1240px, calc(100% - 32px)); margin: 0 auto; padding: 28px 0 64px; }
  .topbar { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding-bottom: 24px; border-bottom: 1px solid var(--ri-border); }
  .wordmark { width: min(430px, 70vw); height: auto; }
  .classification { color: var(--ri-fog); font: 700 0.72rem/1.25 ui-monospace, SFMono-Regular, Consolas, monospace; letter-spacing: 0.16em; text-transform: uppercase; }
  .always-visible { display: block; }
  .hero { display: grid; grid-template-columns: 1.08fr .92fr; gap: 48px; align-items: center; padding: 78px 0 58px; }
  .eyebrow { color: var(--ri-signal); font: 800 0.78rem/1.25 ui-monospace, SFMono-Regular, Consolas, monospace; letter-spacing: .18em; text-transform: uppercase; }
  h1 { max-width: 800px; margin: 14px 0 20px; font-size: clamp(3.15rem, 7.5vw, 7rem); line-height: .88; letter-spacing: -.055em; text-transform: uppercase; }
  h2, h3 { letter-spacing: -.02em; }
  .lede { max-width: 720px; color: var(--ri-fog); font-size: clamp(1rem, 2vw, 1.25rem); line-height: 1.68; }
  .muted { color: var(--ri-fog); line-height: 1.55; }
  .actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 30px; }
  .button { border: 1px solid var(--ri-signal); padding: 12px 18px; background: var(--ri-signal); color: var(--ri-void); font-weight: 850; letter-spacing: .05em; text-transform: uppercase; cursor: pointer; }
  .button.secondary { background: transparent; color: var(--ri-paper); border-color: var(--ri-border); }
  .button.tertiary { background: transparent; color: var(--ri-fog); border-color: transparent; }
  .button.compact { padding: 9px 12px; font-size: .78rem; }
  .button:hover:not(:disabled), .step-button:hover:not(:disabled) { transform: translateY(-1px); border-color: var(--ri-verify); }
  .button:focus-visible, .step-button:focus-visible, input:focus-visible { outline: 3px solid var(--ri-verify); outline-offset: 3px; }
  .button:disabled, .step-button:disabled { cursor: not-allowed; opacity: .45; }
  .selection { min-height: 3em; max-width: 680px; margin-top: 18px; color: var(--ri-fog); font: 600 .82rem/1.55 ui-monospace, SFMono-Regular, Consolas, monospace; }
  .operation-card { position: relative; align-self: start; border: 1px solid var(--ri-border); background: linear-gradient(145deg, rgba(21, 27, 35, .98), rgba(11, 15, 20, .96)); padding: 28px; box-shadow: 18px 18px 0 rgba(214, 168, 75, .1); }
  .status-stamp { position: absolute; top: 18px; right: 18px; border: 2px solid var(--ri-verify); color: var(--ri-verify); padding: 5px 8px; font: 850 .7rem/1 ui-monospace, monospace; letter-spacing: .1em; }
  .operation-card h2 { margin: 54px 0 6px; font-size: 1.8rem; text-transform: uppercase; }
  .operation-card p { color: var(--ri-fog); }
  .phase-track { display: grid; grid-template-columns: repeat(5, 1fr); gap: 6px; margin: 26px 0; font: 700 .63rem/1.2 ui-monospace, monospace; text-transform: uppercase; }
  .phase-track span { padding-top: 8px; border-top: 3px solid var(--ri-border); color: var(--ri-fog); }
  .phase-track .complete { border-color: var(--ri-verify); color: var(--ri-verify); }
  .phase-track .active { border-color: var(--ri-signal); color: var(--ri-signal); }
  .meta { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; padding: 20px 0; border-block: 1px solid var(--ri-border); font: 700 .74rem/1.55 ui-monospace, monospace; text-transform: uppercase; }
  .meta b { color: var(--ri-paper); }
  .signal-line { height: 8px; margin: 15px 0; background: linear-gradient(90deg, var(--ri-signal), transparent); opacity: .65; }
  .signal-line.short { width: 62%; }
  .section-heading { grid-column: 1 / -1; margin-bottom: 10px; }
  .section-heading h2 { margin: 8px 0 0; font-size: clamp(2.15rem, 5vw, 4.4rem); text-transform: uppercase; }
  .console-section { margin-top: 40px; padding-top: 38px; border-top: 1px solid var(--ri-border); }
  .console-heading { display: flex; justify-content: space-between; align-items: end; gap: 24px; }
  .connection-state { max-width: 460px; color: var(--ri-verify); font: 700 .72rem/1.5 ui-monospace, monospace; overflow-wrap: anywhere; }
  .console-grid { display: grid; grid-template-columns: .88fr 1.12fr; gap: 18px; margin-top: 26px; }
  .console-panel { border: 1px solid var(--ri-border); background: rgba(16, 22, 30, .93); padding: 24px; min-width: 0; }
  .console-panel h3 { margin: 0 0 8px; font-size: 1.35rem; text-transform: uppercase; }
  .operation-steps { display: grid; gap: 10px; margin: 24px 0; padding: 0; list-style: none; counter-reset: steps; }
  .operation-steps li { display: grid; grid-template-columns: minmax(160px, .85fr) 1.15fr; gap: 14px; align-items: center; padding: 10px 0; border-top: 1px solid var(--ri-border); counter-increment: steps; }
  .operation-steps li::before { content: counter(steps, decimal-leading-zero); grid-column: 1 / -1; color: var(--ri-signal); font: 700 .65rem/1 ui-monospace, monospace; }
  .operation-steps span { color: var(--ri-fog); font-size: .86rem; line-height: 1.45; }
  .step-button { width: 100%; border: 1px solid var(--ri-border); background: var(--ri-soft); color: var(--ri-paper); padding: 10px 12px; text-align: left; font-weight: 750; cursor: pointer; }
  .step-button[aria-busy="true"] { color: var(--ri-signal); }
  .console-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; padding-top: 14px; border-top: 1px solid var(--ri-border); }
  .toggle { display: flex; align-items: center; gap: 8px; color: var(--ri-fog); font-size: .82rem; }
  .toggle input { width: 1.1rem; height: 1.1rem; accent-color: var(--ri-verify); }
  .output-panel { min-height: 650px; }
  .output-header { display: flex; justify-content: space-between; align-items: start; gap: 20px; }
  .output-header h3 { margin-top: 8px; }
  .version-pill { min-width: 48px; border: 1px solid var(--ri-verify); color: var(--ri-verify); padding: 7px 9px; text-align: center; font: 800 .75rem/1 ui-monospace, monospace; }
  .finding { display: grid; gap: 7px; margin: 22px 0; padding: 16px; border-left: 4px solid var(--ri-signal); background: rgba(214, 168, 75, .07); }
  .finding span { color: var(--ri-fog); line-height: 1.5; }
  .result-metrics { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; margin: 0; background: var(--ri-border); border: 1px solid var(--ri-border); }
  .result-metrics > div { min-width: 0; background: var(--ri-void); padding: 13px; }
  .result-metrics dt { color: var(--ri-fog); font: 700 .67rem/1.3 ui-monospace, monospace; text-transform: uppercase; }
  .result-metrics dd { margin: 7px 0 0; overflow-wrap: anywhere; font-weight: 750; }
  .event-log { min-height: 250px; max-height: 390px; margin: 18px 0 0; padding: 16px; overflow: auto; border: 1px solid var(--ri-border); background: #080B0F; color: #C8D1DA; font: 500 .74rem/1.55 ui-monospace, SFMono-Regular, Consolas, monospace; white-space: pre-wrap; overflow-wrap: anywhere; }
  .systems { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-top: 80px; }
  .system-card { min-height: 280px; border: 1px solid var(--ri-border); background: rgba(21, 27, 35, .78); padding: 22px; }
  .system-number { color: var(--ri-signal); font: 800 .75rem/1 ui-monospace, monospace; }
  .system-card h3 { margin: 58px 0 12px; font-size: 1.4rem; text-transform: uppercase; }
  .system-card p { color: var(--ri-fog); line-height: 1.62; }
  .roles { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-top: 78px; }
  .role { min-height: 250px; border: 1px solid var(--ri-border); background: rgba(21, 27, 35, .82); padding: 22px; }
  .role-number { color: var(--ri-signal); font: 700 .75rem/1 ui-monospace, monospace; }
  .role h3 { margin: 58px 0 10px; font-size: 1.6rem; text-transform: uppercase; }
  .role p { color: var(--ri-fog); line-height: 1.62; }
  .provider-boundary { display: grid; grid-template-columns: .9fr 1.1fr; gap: 36px; align-items: center; margin-top: 76px; padding: 34px; border: 1px solid var(--ri-border); background: linear-gradient(135deg, rgba(214, 168, 75, .055), rgba(46, 158, 143, .07)); }
  .provider-boundary h2 { margin: 8px 0 14px; font-size: clamp(2rem, 4vw, 3.7rem); line-height: .98; text-transform: uppercase; }
  .provider-boundary p { color: var(--ri-fog); line-height: 1.65; }
  .boundary-diagram { display: grid; gap: 10px; text-align: center; font: 700 .72rem/1.45 ui-monospace, monospace; }
  .node { border: 1px solid var(--ri-border); background: var(--ri-void); padding: 14px; }
  .node.authority { border-color: var(--ri-signal); color: var(--ri-paper); }
  .node.provider { color: var(--ri-fog); }
  .node small { color: var(--ri-fog); }
  .arrow, .branches { color: var(--ri-signal); }
  .branches, .provider-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
  .synthetic-badge { display: inline-block; margin-right: 5px; border: 1px solid var(--ri-verify); color: var(--ri-verify); padding: 1px 4px; }
  .principles { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; margin-top: 52px; background: var(--ri-border); border: 1px solid var(--ri-border); }
  .principles article { display: grid; gap: 8px; min-height: 130px; background: var(--ri-void); padding: 20px; }
  .principles strong { text-transform: uppercase; }
  .principles span { color: var(--ri-fog); line-height: 1.5; }
  .footer { display: flex; justify-content: space-between; gap: 24px; margin-top: 58px; padding-top: 18px; border-top: 1px solid var(--ri-border); color: var(--ri-fog); font: 600 .69rem/1.55 ui-monospace, monospace; text-transform: uppercase; }
  @media (max-width: 980px) {
    .hero, .console-grid, .provider-boundary { grid-template-columns: 1fr; }
    .systems { grid-template-columns: repeat(2, 1fr); }
    .output-panel { min-height: auto; }
  }
  @media (max-width: 760px) {
    .roles, .systems, .principles { grid-template-columns: 1fr; }
    .classification:not(.always-visible) { display: none; }
    .footer, .console-heading { flex-direction: column; align-items: start; }
    .operation-steps li { grid-template-columns: 1fr; }
    .result-metrics { grid-template-columns: 1fr; }
    .provider-row, .branches { grid-template-columns: 1fr; }
    h1 { font-size: clamp(2.65rem, 15vw, 4.8rem); }
  }
  @media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { transition: none !important; animation: none !important; }
  }
}

/* 0.10.0 educational three-API observatory */
@layer components {
  .api-lab { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-top: 80px; }
  .api-stage, .api-status-card { min-height: 280px; border: 1px solid var(--ri-border); background: rgba(16, 22, 30, .93); padding: 22px; }
  .api-stage-number { color: var(--ri-signal); font: 800 .75rem/1 ui-monospace, monospace; }
  .api-stage h3, .api-status-card h3 { margin: 36px 0 12px; font-size: 1.28rem; text-transform: uppercase; }
  .api-stage code { display: block; min-height: 3.5em; color: var(--ri-verify); font: 650 .72rem/1.55 ui-monospace, monospace; overflow-wrap: anywhere; }
  .api-stage p { color: var(--ri-fog); line-height: 1.6; }
  .boundary-tag { display: inline-block; margin-top: 10px; border: 1px solid var(--ri-signal); color: var(--ri-signal); padding: 5px 8px; font: 750 .65rem/1.2 ui-monospace, monospace; text-transform: uppercase; }
  .api-status-card { grid-column: span 2; background: linear-gradient(145deg, rgba(21, 27, 35, .98), rgba(11, 15, 20, .96)); }
  .api-status-list { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1px; margin: 22px 0 0; background: var(--ri-border); border: 1px solid var(--ri-border); }
  .api-status-list > div { background: var(--ri-void); padding: 13px; }
  .api-status-list dt { color: var(--ri-fog); font: 700 .67rem/1.3 ui-monospace, monospace; text-transform: uppercase; }
  .api-status-list dd { margin: 7px 0 0; font-weight: 750; overflow-wrap: anywhere; }
  .branches.three, .provider-row.three { grid-template-columns: repeat(3, 1fr); }
  @media (max-width: 980px) {
    .api-lab { grid-template-columns: repeat(2, 1fr); }
    .api-status-card { grid-column: span 2; }
  }
  @media (max-width: 760px) {
    .api-lab, .api-status-list, .branches.three, .provider-row.three { grid-template-columns: 1fr; }
    .api-status-card { grid-column: auto; }
  }
}

/* 0.10.0 Dossier Academy and PsychologicalWar.org companion bridge */
@layer components {
  a { color: inherit; }
  .button { display: inline-flex; align-items: center; justify-content: center; text-decoration: none; }
  .dossier-topbar { flex-wrap: wrap; }
  .site-nav { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 8px; }
  .site-nav a { border: 1px solid transparent; padding: 8px 10px; color: var(--ri-fog); font: 750 .7rem/1.2 ui-monospace, monospace; letter-spacing: .08em; text-decoration: none; text-transform: uppercase; }
  .site-nav a:hover, .site-nav a:focus-visible, .site-nav a[aria-current="page"] { border-color: var(--ri-border); color: var(--ri-paper); outline: none; }
  .dossier-hero { display: grid; grid-template-columns: 1.15fr .85fr; gap: 44px; align-items: start; padding: 68px 0 44px; }
  .dossier-hero h1 { font-size: clamp(2.8rem, 6.8vw, 6.3rem); }
  .brief-card { border: 1px solid var(--ri-border); background: linear-gradient(145deg, rgba(21, 27, 35, .98), rgba(11, 15, 20, .96)); padding: 26px; box-shadow: 14px 14px 0 rgba(46, 158, 143, .09); }
  .brief-card h2 { margin: 32px 0 18px; font-size: 1.75rem; line-height: 1.08; text-transform: uppercase; }
  .boundary-list { display: grid; gap: 1px; margin: 0; background: var(--ri-border); border: 1px solid var(--ri-border); }
  .boundary-list > div { background: var(--ri-void); padding: 15px; }
  .boundary-list dt { color: var(--ri-signal); font: 750 .69rem/1.3 ui-monospace, monospace; text-transform: uppercase; }
  .boundary-list dd { margin: 8px 0 0; color: var(--ri-fog); line-height: 1.55; }
  .dossier-section { margin-top: 72px; padding-top: 34px; border-top: 1px solid var(--ri-border); }
  .dossier-section .section-heading p { max-width: 880px; }
  .companion-bridge { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
  .companion-bridge article { min-height: 220px; border: 1px solid var(--ri-border); background: rgba(16, 22, 30, .91); padding: 22px; }
  .companion-bridge h3 { margin: 38px 0 10px; font-size: 1.25rem; text-transform: uppercase; }
  .companion-bridge p { color: var(--ri-fog); line-height: 1.62; }
  .cycle-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-top: 26px; }
  .cycle-grid article { min-height: 230px; border: 1px solid var(--ri-border); background: rgba(21, 27, 35, .76); padding: 22px; }
  .cycle-grid article > span { color: var(--ri-signal); font: 800 .75rem/1 ui-monospace, monospace; }
  .cycle-grid h3 { margin: 54px 0 10px; text-transform: uppercase; }
  .cycle-grid p { color: var(--ri-fog); line-height: 1.6; }
  .discipline-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; margin-top: 26px; border: 1px solid var(--ri-border); background: var(--ri-border); }
  .discipline-grid article { display: grid; gap: 12px; min-height: 190px; background: var(--ri-void); padding: 20px; }
  .discipline-grid strong { color: var(--ri-verify); font: 850 1rem/1 ui-monospace, monospace; }
  .discipline-grid span { color: var(--ri-fog); line-height: 1.55; }
  .cover-table-wrap { overflow-x: auto; margin-top: 26px; border: 1px solid var(--ri-border); }
  .cover-table { width: 100%; min-width: 760px; border-collapse: collapse; background: rgba(16, 22, 30, .92); }
  .cover-table th, .cover-table td { padding: 15px; border-bottom: 1px solid var(--ri-border); text-align: left; vertical-align: top; }
  .cover-table th { color: var(--ri-signal); font: 750 .7rem/1.35 ui-monospace, monospace; letter-spacing: .08em; text-transform: uppercase; }
  .cover-table td { color: var(--ri-fog); line-height: 1.55; }
  .cover-table td:first-child { color: var(--ri-paper); font-weight: 750; }
  .five-questions { display: grid; grid-template-columns: repeat(5, 1fr); gap: 12px; margin-top: 26px; }
  .five-questions article { min-height: 250px; border: 1px solid var(--ri-border); background: rgba(16, 22, 30, .93); padding: 18px; }
  .five-questions article > span { color: var(--ri-signal); font: 800 .7rem/1 ui-monospace, monospace; }
  .five-questions h3 { margin: 48px 0 8px; text-transform: uppercase; }
  .five-questions p { line-height: 1.5; }
  .five-questions small { display: block; color: var(--ri-fog); line-height: 1.45; }
  .doctrine-details { margin-top: 18px; border: 1px solid var(--ri-border); background: rgba(11, 15, 20, .88); }
  .doctrine-details > summary { cursor: pointer; padding: 16px 18px; color: var(--ri-verify); font: 750 .78rem/1.4 ui-monospace, monospace; text-transform: uppercase; }
  .doctrine-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; padding: 18px; border-top: 1px solid var(--ri-border); }
  .doctrine-columns h3 { text-transform: uppercase; }
  .tag-cloud { display: grid; gap: 6px; }
  .tag-cloud details { border: 1px solid var(--ri-border); background: var(--ri-panel); }
  .tag-cloud summary { cursor: pointer; padding: 10px 12px; font-weight: 720; }
  .tag-cloud p { margin: 0; padding: 0 12px 12px; color: var(--ri-fog); line-height: 1.5; }
  .lab-grid { display: grid; grid-template-columns: .98fr 1.02fr; gap: 18px; margin-top: 26px; }
  .lab-panel { min-width: 0; border: 1px solid var(--ri-border); background: rgba(16, 22, 30, .94); padding: 22px; }
  .subject-brief { margin: 20px 0; padding: 16px; border-left: 4px solid var(--ri-verify); background: rgba(46, 158, 143, .07); }
  .subject-brief h3 { margin: 0 0 8px; text-transform: uppercase; }
  .subject-brief p { margin: 6px 0; line-height: 1.5; }
  fieldset { min-width: 0; margin: 0; border: 1px solid var(--ri-border); padding: 14px; }
  legend { padding: 0 8px; color: var(--ri-signal); font: 750 .72rem/1.3 ui-monospace, monospace; text-transform: uppercase; }
  .record-list { display: grid; gap: 8px; max-height: 610px; overflow: auto; }
  .record-option { display: grid; grid-template-columns: auto 1fr; gap: 10px; align-items: start; border: 1px solid var(--ri-border); background: var(--ri-soft); padding: 11px; cursor: pointer; }
  .record-option input { margin-top: 4px; accent-color: var(--ri-verify); }
  .record-option span { display: grid; gap: 5px; }
  .record-option strong { line-height: 1.35; }
  .record-option small { color: var(--ri-fog); line-height: 1.45; }
  .record-option em { color: var(--ri-verify); font: 700 .65rem/1.25 ui-monospace, monospace; text-transform: uppercase; }
  .lab-actions { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 15px; }
  .dossier-log { min-height: 330px; max-height: 690px; }
  .relationship-lab { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 26px; }
  .relationship-column, .relationship-result { min-width: 0; border: 1px solid var(--ri-border); background: rgba(16, 22, 30, .93); padding: 20px; }
  .relationship-column h3 { margin-top: 0; text-transform: uppercase; }
  .relationship-result { grid-column: 1 / -1; }
  .range-control { display: grid; gap: 7px; margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--ri-border); }
  .range-control > span { display: flex; justify-content: space-between; gap: 14px; }
  .range-control output { color: var(--ri-verify); font: 750 .74rem/1 ui-monospace, monospace; }
  .range-control input { width: 100%; accent-color: var(--ri-signal); }
  .range-control small { color: var(--ri-fog); line-height: 1.4; }
  .mental-health-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; margin-top: 26px; }
  .mental-health-grid article { border: 1px solid var(--ri-border); background: rgba(16, 22, 30, .92); padding: 22px; }
  .mental-health-grid h3 { margin-top: 0; text-transform: uppercase; }
  .mental-health-grid > article > p { color: var(--ri-fog); line-height: 1.62; }
  .mental-health-grid details { margin-top: 18px; border-top: 1px solid var(--ri-border); padding-top: 12px; }
  .mental-health-grid summary { cursor: pointer; color: var(--ri-verify); font-weight: 750; }
  .mental-health-grid h4 { margin: 16px 0 6px; color: var(--ri-signal); font: 750 .7rem/1.3 ui-monospace, monospace; text-transform: uppercase; }
  .mental-health-grid ul { margin: 0; padding-left: 20px; color: var(--ri-fog); line-height: 1.55; }
  .mental-boundary { border-left: 3px solid var(--ri-signal); padding-left: 12px; color: var(--ri-paper); line-height: 1.5; }
  .support-lab { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin-top: 20px; padding: 22px; border: 1px solid var(--ri-border); background: rgba(11, 15, 20, .85); }
  .support-lab fieldset { display: grid; gap: 8px; margin: 14px 0; }
  .support-lab label { color: var(--ri-fog); line-height: 1.45; }
  .support-lab input { accent-color: var(--ri-verify); }
  .myth-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; margin-top: 26px; }
  .myth-grid article { border: 1px solid var(--ri-border); background: rgba(16, 22, 30, .91); padding: 20px; }
  .myth-grid h3 { margin-top: 0; color: var(--ri-signal); text-transform: uppercase; }
  .myth-grid p { color: var(--ri-fog); line-height: 1.55; }
  .source-list { display: grid; gap: 10px; margin-top: 24px; }
  .source-list article { border: 1px solid var(--ri-border); background: rgba(16, 22, 30, .91); padding: 18px; }
  .source-list h3 { margin: 0 0 8px; }
  .source-list p { color: var(--ri-fog); line-height: 1.55; }
  .source-list code { display: block; color: var(--ri-verify); font: 620 .7rem/1.5 ui-monospace, monospace; overflow-wrap: anywhere; }
  .source-note { margin-top: 16px; color: var(--ri-fog); line-height: 1.55; }
  .noscript-notice { position: fixed; inset: auto 12px 12px; z-index: 50; padding: 12px 14px; border: 1px solid var(--ri-alert); background: var(--ri-void); color: var(--ri-paper); }
  @media (max-width: 1060px) {
    .dossier-hero, .lab-grid, .support-lab { grid-template-columns: 1fr; }
    .discipline-grid { grid-template-columns: repeat(2, 1fr); }
    .five-questions { grid-template-columns: repeat(3, 1fr); }
  }
  @media (max-width: 820px) {
    .companion-bridge, .cycle-grid, .mental-health-grid, .myth-grid, .relationship-lab, .doctrine-columns { grid-template-columns: 1fr; }
    .five-questions { grid-template-columns: repeat(2, 1fr); }
    .relationship-result { grid-column: auto; }
    .site-nav { order: 3; width: 100%; justify-content: flex-start; }
  }
  @media (max-width: 560px) {
    .discipline-grid, .five-questions { grid-template-columns: 1fr; }
  }
}
@layer components {
  .text-link { display: inline-block; margin-top: 8px; color: var(--ri-verify); font: 750 .72rem/1.4 ui-monospace, monospace; text-decoration: none; text-transform: uppercase; }
  .text-link:hover, .text-link:focus-visible { color: var(--ri-paper); outline: 2px solid var(--ri-verify); outline-offset: 3px; }
}

@layer components {
  [hidden] { display: none !important; }
  body.age-pending { overflow: hidden; }
  body.age-pending > .shell,
  body.age-pending > .skip-link { visibility: hidden; }

  .adult-gate {
    position: fixed;
    inset: 0;
    z-index: 1000;
    display: grid;
    place-items: center;
    overflow: auto;
    padding: 24px;
    background:
      radial-gradient(circle at 75% 20%, rgba(77, 181, 165, .18), transparent 30rem),
      radial-gradient(circle at 16% 78%, rgba(214, 168, 75, .16), transparent 32rem),
      rgba(5, 8, 12, .985);
  }
  .adult-gate-card {
    position: relative;
    width: min(720px, 100%);
    border: 1px solid var(--ri-border);
    background: linear-gradient(145deg, rgba(21, 27, 35, .99), rgba(9, 13, 18, .99));
    padding: clamp(26px, 5vw, 52px);
    box-shadow: 22px 22px 0 rgba(214, 168, 75, .12);
  }
  .adult-gate-card::before {
    content: "ADULT WORLD ENTRY";
    position: absolute;
    top: 14px;
    right: 16px;
    color: var(--ri-fog);
    font: 750 .62rem/1 ui-monospace, monospace;
    letter-spacing: .15em;
  }
  .adult-gate-wordmark { width: min(430px, 80%); margin-bottom: 34px; }
  .adult-badge {
    display: inline-grid;
    place-items: center;
    min-width: 64px;
    min-height: 64px;
    margin-bottom: 18px;
    border: 3px solid var(--ri-signal);
    border-radius: 50%;
    color: var(--ri-signal);
    font: 900 1.25rem/1 ui-monospace, monospace;
  }
  .adult-gate h2 { max-width: 600px; margin: 10px 0 16px; font-size: clamp(2rem, 6vw, 4.3rem); line-height: .98; text-transform: uppercase; }
  .adult-gate p { color: var(--ri-fog); font-size: 1.03rem; line-height: 1.65; }
  .adult-confirmation {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 14px;
    align-items: start;
    margin: 28px 0 20px;
    padding: 18px;
    border: 1px solid var(--ri-border);
    background: var(--ri-soft);
    color: var(--ri-paper);
    font-weight: 700;
    line-height: 1.5;
    cursor: pointer;
  }
  .adult-confirmation input { width: 22px; height: 22px; margin: 1px 0 0; accent-color: var(--ri-signal); }
  .adult-gate-actions { display: flex; flex-wrap: wrap; gap: 12px; }
  .entry-mode-summary {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    margin: 22px 0;
  }
  .entry-mode-summary article {
    border: 1px solid var(--ri-border);
    background: rgba(7, 10, 14, .72);
    padding: 16px;
  }
  .entry-mode-summary h2 { margin: 10px 0 8px; font-size: 1rem; line-height: 1.25; }
  .entry-mode-summary p { margin: 0; font-size: .84rem; line-height: 1.5; }
  .mode-badge { color: var(--ri-verify); font: 820 .61rem/1.2 ui-monospace, monospace; letter-spacing: .08em; }
  .adult-entry-actions { display: grid; grid-template-columns: 1fr 1fr; }
  .adult-entry-actions .tertiary { grid-column: 1 / -1; justify-self: center; }
  .adult-privacy-note { margin-bottom: 0; font-size: .78rem !important; font-family: ui-monospace, monospace; }
  .adult-denied { text-align: center; }
  .adult-denied .adult-badge { margin-inline: auto; }
  .noscript-gate {
    position: fixed;
    inset: 0;
    z-index: 1200;
    display: grid;
    place-items: center;
    padding: 30px;
    background: var(--ri-void);
    color: var(--ri-paper);
    text-align: center;
    font: 800 1rem/1.6 ui-monospace, monospace;
  }

  .hero-enter { min-width: 180px; padding: 15px 24px; font-size: 1rem; }
  .platform-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 18px; }
  .platform-tags span {
    border: 1px solid var(--ri-border);
    padding: 7px 9px;
    color: var(--ri-verify);
    font: 750 .65rem/1.2 ui-monospace, monospace;
    text-transform: uppercase;
  }

  .world-gateway { margin-top: 34px; padding: 46px 0 28px; border-top: 1px solid var(--ri-border); }
  .gateway-heading { display: flex; justify-content: space-between; align-items: end; gap: 28px; }
  .gateway-heading p { max-width: 820px; }
  .world-status {
    flex: 0 0 auto;
    border: 1px solid var(--ri-verify);
    padding: 10px 12px;
    color: var(--ri-verify);
    font: 750 .68rem/1.35 ui-monospace, monospace;
    text-transform: uppercase;
  }
  .gateway-grid { display: grid; grid-template-columns: 1.35fr .8fr .8fr; gap: 16px; margin-top: 26px; }
  .gateway-panel { min-width: 0; border: 1px solid var(--ri-border); background: rgba(16, 22, 30, .94); padding: 22px; }
  .gateway-panel h3 { margin: 28px 0 10px; font-size: 1.45rem; text-transform: uppercase; }
  .gateway-panel p { color: var(--ri-fog); line-height: 1.58; }
  .role-selector { display: grid; gap: 9px; margin-top: 18px; }
  .role-choice {
    display: grid;
    gap: 5px;
    width: 100%;
    border: 1px solid var(--ri-border);
    background: var(--ri-soft);
    padding: 14px;
    color: var(--ri-paper);
    text-align: left;
    cursor: pointer;
  }
  .role-choice:hover,
  .role-choice:focus-visible { border-color: var(--ri-verify); outline: none; }
  .role-choice.selected { border-color: var(--ri-signal); background: rgba(214, 168, 75, .1); box-shadow: inset 4px 0 0 var(--ri-signal); }
  .role-choice-kicker { color: var(--ri-signal); font: 800 .61rem/1.2 ui-monospace, monospace; letter-spacing: .1em; }
  .role-choice strong { font-size: 1rem; text-transform: uppercase; }
  .role-choice small { color: var(--ri-fog); line-height: 1.45; }
  .world-entry-button { width: 100%; margin-top: 18px; padding: 14px 16px; }
  .gateway-note { margin-bottom: 0; font-size: .78rem; font-family: ui-monospace, monospace; }
  .join-label { display: block; margin: 20px 0 7px; color: var(--ri-signal); font: 750 .68rem/1.3 ui-monospace, monospace; text-transform: uppercase; }
  .join-input {
    width: 100%;
    border: 1px solid var(--ri-border);
    background: var(--ri-void);
    padding: 14px 12px;
    color: var(--ri-paper);
    font: 850 1.3rem/1 ui-monospace, monospace;
    letter-spacing: .24em;
    text-transform: uppercase;
  }
  .entry-message {
    margin-top: 14px;
    border-left: 4px solid var(--ri-verify);
    background: rgba(77, 181, 165, .07);
    padding: 13px 15px;
    color: var(--ri-paper);
    font: 700 .76rem/1.5 ui-monospace, monospace;
  }
  .entry-message.error { border-left-color: var(--ri-alert); background: rgba(199, 90, 90, .08); }

  .how-to-play { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin-top: 62px; padding-top: 38px; border-top: 1px solid var(--ri-border); }
  .how-to-play article { min-height: 210px; border: 1px solid var(--ri-border); background: rgba(16, 22, 30, .8); padding: 20px; }
  .how-to-play article > span { color: var(--ri-signal); font: 850 .72rem/1 ui-monospace, monospace; }
  .how-to-play h3 { margin: 54px 0 9px; text-transform: uppercase; }
  .how-to-play p { color: var(--ri-fog); line-height: 1.55; }

  .active-cell-banner {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr)) auto;
    gap: 1px;
    margin: 24px 0 16px;
    border: 1px solid var(--ri-border);
    background: var(--ri-border);
  }
  .active-cell-banner > div { display: grid; gap: 6px; background: var(--ri-panel); padding: 13px 15px; }
  .active-cell-banner span { color: var(--ri-fog); font: 700 .62rem/1.2 ui-monospace, monospace; text-transform: uppercase; }
  .active-cell-banner strong { color: var(--ri-verify); font: 850 .9rem/1.3 ui-monospace, monospace; overflow-wrap: anywhere; }
  .active-cell-banner button { margin: 8px; align-self: center; }
  .step-button.complete { border-color: var(--ri-verify); color: var(--ri-verify); opacity: .8; }
  .step-button.complete::after { content: "  ✓"; }

  .technical-details { margin-top: 72px; border: 1px solid var(--ri-border); background: rgba(11, 15, 20, .72); }
  .technical-details > summary { cursor: pointer; padding: 18px 20px; color: var(--ri-verify); font: 800 .75rem/1.4 ui-monospace, monospace; letter-spacing: .08em; text-transform: uppercase; }
  .technical-details[open] > summary { border-bottom: 1px solid var(--ri-border); }
  .technical-details .api-lab { margin: 0; padding: 26px 20px; border-top: 0; }

  .game-footer { display: grid; gap: 18px; }
  .footer-support {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 24px;
    align-items: center;
    width: 100%;
    border: 1px solid var(--ri-signal);
    background: rgba(214, 168, 75, .07);
    padding: 20px;
  }
  .footer-support > div { display: grid; gap: 6px; }
  .footer-support strong { color: var(--ri-paper); font-size: 1rem; text-transform: uppercase; }
  .footer-support span { color: var(--ri-fog); line-height: 1.5; }
  .footer-support-link { text-decoration: none; white-space: nowrap; }
  .footer-meta { display: flex; justify-content: space-between; gap: 24px; width: 100%; color: var(--ri-fog); font: 700 .68rem/1.5 ui-monospace, monospace; text-transform: uppercase; }

  @media (max-width: 1060px) {
    .gateway-grid { grid-template-columns: 1fr 1fr; }
    .role-selector-panel { grid-column: 1 / -1; }
    .role-selector { grid-template-columns: repeat(3, 1fr); }
    .how-to-play { grid-template-columns: repeat(2, 1fr); }
  }

  @media (max-width: 820px) {
    .gateway-heading { display: grid; align-items: start; }
    .world-status { justify-self: start; }
    .gateway-grid,
    .role-selector { grid-template-columns: 1fr; }
    .role-selector-panel { grid-column: auto; }
    .active-cell-banner { grid-template-columns: 1fr 1fr; }
    .footer-support { grid-template-columns: 1fr; }
    .footer-support-link { justify-self: start; white-space: normal; }
    .footer-meta { flex-direction: column; }
  }

  @media (max-width: 560px) {
    h1 { max-width: 100%; font-size: clamp(2.4rem, 13vw, 4.2rem); letter-spacing: -.065em; }
    .adult-gate { padding: 12px; }
    .adult-gate-card { padding: 26px 18px; box-shadow: 10px 10px 0 rgba(214, 168, 75, .12); }
    .adult-gate-card::before { display: none; }
    .adult-gate-actions { display: grid; }
    .adult-gate-actions .button { width: 100%; }
    .how-to-play { grid-template-columns: 1fr; }
    .active-cell-banner { grid-template-columns: 1fr; }
  }
}

@layer components {
  /* Crawlable public pregame site */
  .public-page { overflow-x: hidden; }
  .public-header {
    position: sticky;
    top: 0;
    z-index: 40;
    display: grid;
    grid-template-columns: minmax(180px, 238px) minmax(0, 1fr) auto;
    gap: clamp(14px, 2vw, 28px);
    align-items: center;
    min-height: 72px;
    width: 100%;
    padding: 11px clamp(18px, 3.4vw, 52px);
    border-bottom: 1px solid var(--ri-border);
    background: rgba(11, 15, 20, .965);
    backdrop-filter: blur(18px);
  }
  .public-brand { display: inline-flex; min-width: 0; }
  .public-brand img { width: 100%; max-width: 238px; height: auto; }
  .public-nav {
    display: flex;
    min-width: 0;
    align-items: center;
    justify-content: flex-end;
    gap: 4px;
  }
  .public-nav-primary { display: flex; min-width: 0; align-items: center; gap: 2px; }
  .public-nav a,
  .public-nav summary,
  .site-nav a {
    display: inline-flex;
    min-height: 44px;
    align-items: center;
    justify-content: center;
    color: var(--ri-fog);
    font: 760 .68rem/1.35 ui-monospace, SFMono-Regular, Consolas, monospace;
    letter-spacing: .07em;
    padding: 0 10px;
    text-decoration: none;
    text-transform: uppercase;
  }
  .public-nav summary { cursor: pointer; list-style: none; user-select: none; }
  .public-nav summary::-webkit-details-marker { display: none; }
  .public-nav summary::after { content: "+"; margin-left: 7px; color: var(--ri-signal); font-size: .92rem; }
  .public-nav details[open] > summary::after { content: "−"; }
  .public-nav a:hover,
  .public-nav a:focus-visible,
  .public-nav a[aria-current="page"],
  .public-nav summary:hover,
  .public-nav summary:focus-visible,
  .public-nav-more-current > summary,
  .site-nav a:hover,
  .site-nav a:focus-visible,
  .site-nav a[aria-current="page"] { color: var(--ri-paper); }
  .public-nav a:focus-visible,
  .public-nav summary:focus-visible,
  .public-text-link:focus-visible,
  .public-mode-grid a:focus-visible {
    border-radius: 2px;
    outline: 3px solid var(--ri-verify);
    outline-offset: 2px;
  }
  .public-nav-more { position: relative; flex: 0 0 auto; }
  .public-nav-more-compact,
  .public-nav-mobile-primary { display: none; }
  .public-nav-more:not([open]) > .public-nav-panel { display: none; }
  .public-nav-panel {
    position: absolute;
    top: calc(100% + 10px);
    right: 0;
    z-index: 60;
    display: grid;
    grid-template-columns: repeat(2, minmax(190px, 1fr));
    width: min(480px, calc(100vw - 32px));
    gap: 1px;
    border: 1px solid var(--ri-border);
    background: var(--ri-border);
    box-shadow: 0 22px 60px rgba(0, 0, 0, .46);
  }
  .public-nav-panel a {
    justify-content: flex-start;
    min-height: 48px;
    background: rgba(11, 15, 20, .985);
    padding-inline: 14px;
  }
  .public-nav-panel a:hover,
  .public-nav-panel a:focus-visible,
  .public-nav-panel a[aria-current="page"] { background: rgba(77, 181, 165, .09); }
  .header-enter { min-height: 44px; justify-self: end; padding-inline: 20px; text-decoration: none; white-space: nowrap; }
  .public-main { width: min(1400px, calc(100% - 48px)); margin: 0 auto; padding: 28px 0 92px; }
  .breadcrumbs { display: flex; gap: 10px; align-items: center; color: var(--ri-fog); font: 700 .68rem/1.4 ui-monospace, monospace; text-transform: uppercase; }
  .breadcrumbs a { color: var(--ri-verify); text-decoration: none; }
  .public-hero {
    position: relative;
    padding: clamp(42px, 6vw, 84px) 0 clamp(38px, 5vw, 68px);
    border-bottom: 1px solid var(--ri-border);
  }
  .public-hero::after {
    content: "";
    position: absolute;
    right: 0;
    bottom: 24px;
    width: min(24vw, 300px);
    height: 1px;
    background: linear-gradient(90deg, transparent, var(--ri-signal));
  }
  .public-page-hero { max-width: 1120px; }
  .public-hero-copy { min-width: 0; max-width: 880px; }
  .public-page-hero h1 {
    max-width: 21ch;
    font-size: clamp(2.65rem, 4.7vw, 4.3rem);
    line-height: .97;
    text-wrap: balance;
  }
  .public-hero .lede { max-width: 760px; font-size: clamp(1rem, 1.45vw, 1.22rem); line-height: 1.62; }
  .public-home-hero {
    display: grid;
    grid-template-columns: minmax(0, 1.25fr) minmax(330px, .75fr);
    gap: clamp(34px, 5vw, 76px);
    align-items: center;
    min-height: min(690px, calc(100vh - 72px));
  }
  .public-home-hero::after { right: 38%; width: min(18vw, 250px); }
  .public-home-title {
    display: grid;
    gap: 14px;
    max-width: 15ch;
    margin: 16px 0 20px;
    line-height: 1;
    letter-spacing: -.045em;
    text-transform: none;
  }
  .public-home-title-primary {
    display: block;
    font-size: clamp(3.35rem, 6vw, 5.65rem);
    font-weight: 900;
    line-height: .92;
    text-transform: uppercase;
    text-wrap: balance;
  }
  .public-home-title-secondary {
    display: block;
    max-width: 24ch;
    color: var(--ri-paper);
    font-size: clamp(1.75rem, 2.75vw, 2.9rem);
    font-weight: 780;
    line-height: 1.03;
    letter-spacing: -.035em;
    text-wrap: balance;
  }
  .public-hero-actions { margin-top: 26px; }
  .public-hero-actions .button-large { min-height: 54px; }
  .public-hero-facts {
    display: flex;
    flex-wrap: wrap;
    gap: 1px;
    max-width: 760px;
    margin: 28px 0 0;
    padding: 0;
    border: 1px solid var(--ri-border);
    background: var(--ri-border);
    list-style: none;
  }
  .public-hero-facts li {
    display: grid;
    flex: 1 1 160px;
    gap: 4px;
    min-height: 70px;
    align-content: center;
    background: rgba(11, 15, 20, .96);
    padding: 12px 15px;
  }
  .public-hero-facts strong { color: var(--ri-signal); font: 850 .78rem/1.25 ui-monospace, monospace; text-transform: uppercase; }
  .public-hero-facts span { color: var(--ri-fog); font-size: .86rem; }
  .public-hero-fact-link {
    display: grid;
    gap: 4px;
    min-height: 44px;
    align-content: center;
    color: inherit;
    text-decoration: none;
  }
  .public-hero-fact-link:hover span { color: var(--ri-paper); }
  .public-hero-fact-link:focus-visible {
    border-radius: 2px;
    outline: 3px solid var(--ri-verify);
    outline-offset: 3px;
  }
  .public-hero-brief {
    position: relative;
    min-width: 0;
    border: 1px solid rgba(214, 168, 75, .5);
    background:
      linear-gradient(145deg, rgba(21, 27, 35, .97), rgba(8, 12, 17, .98)),
      var(--ri-panel);
    padding: clamp(22px, 3vw, 34px);
    box-shadow: 18px 18px 0 rgba(214, 168, 75, .08);
  }
  .public-hero-brief::before {
    content: "";
    position: absolute;
    inset: 10px;
    border: 1px solid rgba(232, 226, 214, .06);
    pointer-events: none;
  }
  .public-hero-brief > * { position: relative; z-index: 1; }
  .public-hero-brief-topline { display: flex; justify-content: space-between; gap: 16px; align-items: center; }
  .public-status-dot {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    color: var(--ri-verify);
    font: 800 .64rem/1.3 ui-monospace, monospace;
    text-transform: uppercase;
  }
  .public-status-dot::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--ri-verify); box-shadow: 0 0 12px rgba(77, 181, 165, .68); }
  .public-ward-route { display: grid; grid-template-columns: auto 1fr auto 1fr auto 1fr auto; align-items: center; margin: 34px 0 38px; }
  .route-node { width: 12px; height: 12px; border: 2px solid var(--ri-fog); border-radius: 50%; background: var(--ri-panel); }
  .route-node-active { border-color: var(--ri-signal); background: var(--ri-signal); box-shadow: 0 0 16px rgba(214, 168, 75, .55); }
  .route-node-goal { border-color: var(--ri-verify); }
  .route-line { height: 1px; background: linear-gradient(90deg, rgba(214, 168, 75, .8), rgba(77, 181, 165, .55)); }
  .public-hero-brief h2 { margin: 8px 0 10px; font-size: clamp(2rem, 3.4vw, 3.25rem); line-height: .95; text-transform: uppercase; }
  .public-hero-brief-summary { margin: 0; color: var(--ri-fog); line-height: 1.62; }
  .public-hero-brief-facts { display: grid; gap: 1px; margin: 24px 0; border: 1px solid var(--ri-border); background: var(--ri-border); }
  .public-hero-brief-facts div { display: grid; grid-template-columns: .72fr 1.28fr; gap: 14px; background: rgba(11, 15, 20, .96); padding: 11px 13px; }
  .public-hero-brief-facts dt { color: var(--ri-fog); font: 720 .64rem/1.35 ui-monospace, monospace; text-transform: uppercase; }
  .public-hero-brief-facts dd { margin: 0; color: var(--ri-paper); font: 760 .72rem/1.4 ui-monospace, monospace; }
  .public-text-link { display: inline-flex; min-height: 44px; align-items: center; color: var(--ri-verify); font-weight: 780; text-decoration: none; }
  .public-creator-credit {
    margin: 0;
    color: var(--ri-fog);
    font-size: .78rem;
    line-height: 1.5;
  }
  .public-creator-credit a {
    color: var(--ri-verify);
    font-weight: 850;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
  }
  .public-hero-creator {
    margin-top: 14px;
    padding-top: 13px;
    border-top: 1px solid var(--ri-border);
  }
  .answer-panel {
    display: grid;
    grid-template-columns: minmax(250px, .68fr) 1.32fr;
    gap: clamp(28px, 4vw, 58px);
    margin: 54px 0;
    border: 1px solid var(--ri-border);
    border-left: 5px solid var(--ri-verify);
    background: rgba(16, 22, 30, .9);
    padding: clamp(24px, 3.5vw, 42px);
  }
  .answer-panel h2 { max-width: 12ch; margin: 8px 0 0; font-size: clamp(2rem, 3.8vw, 3.45rem); line-height: .98; overflow-wrap: anywhere; text-transform: uppercase; text-wrap: balance; }
  .answer-panel p { margin: 0 0 14px; color: var(--ri-fog); font-size: 1.04rem; line-height: 1.72; }
  .answer-panel strong { color: var(--ri-paper); }
  .answer-panel-copy { min-width: 0; }
  .answer-panel .answer-panel-lede { max-width: 780px; margin-bottom: 22px; font-size: clamp(1rem, 1.45vw, 1.15rem); }
  .answer-panel-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; margin: 0; border: 1px solid var(--ri-border); background: var(--ri-border); }
  .answer-panel-facts div { min-width: 0; background: rgba(11, 15, 20, .94); padding: 13px 14px; }
  .answer-panel-facts dt { color: var(--ri-fog); font: 720 .63rem/1.35 ui-monospace, monospace; text-transform: uppercase; }
  .answer-panel-facts dd { margin: 6px 0 0; color: var(--ri-paper); font-size: .9rem; font-weight: 760; line-height: 1.4; }
  .cta-band {
    display: grid;
    grid-template-columns: minmax(0, .9fr) minmax(420px, 1.1fr);
    gap: clamp(28px, 4vw, 54px);
    align-items: center;
    margin: 58px 0 78px;
    border: 1px solid var(--ri-signal);
    background: linear-gradient(110deg, rgba(214, 168, 75, .12), rgba(77, 181, 165, .04));
    padding: clamp(26px, 3.5vw, 44px);
  }
  .cta-band h2 { margin: 12px 0 8px; font-size: clamp(1.8rem, 3.2vw, 3rem); line-height: 1; text-transform: uppercase; text-wrap: balance; }
  .cta-band p { max-width: 780px; margin: 0; color: var(--ri-fog); line-height: 1.6; }
  .button-large { padding: 16px 24px; font-size: .92rem; text-decoration: none; }
  .public-mode-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .public-mode-grid a {
    display: grid;
    gap: 6px;
    min-height: 92px;
    align-content: center;
    border: 1px solid var(--ri-border);
    background: rgba(11, 15, 20, .82);
    padding: 15px 16px;
    text-decoration: none;
  }
  .public-mode-grid a:hover { border-color: var(--ri-verify); background: rgba(77, 181, 165, .07); }
  .public-mode-grid strong { color: var(--ri-paper); font: 820 .72rem/1.3 ui-monospace, monospace; text-transform: uppercase; }
  .public-mode-grid span { color: var(--ri-fog); font-size: .82rem; line-height: 1.4; }
  .public-section { margin-top: clamp(70px, 8vw, 106px); }
  .public-section > .section-heading { max-width: 880px; margin-bottom: 28px; }
  .public-section > .section-heading h2 { font-size: clamp(2.05rem, 4vw, 3.7rem); line-height: .98; text-wrap: balance; }
  .public-section .section-heading p { max-width: 760px; }
  .feature-grid,
  .steps-grid,
  .roles-public-grid,
  .concept-grid,
  .world-grid,
  .faq-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
  }
  .feature-grid article,
  .steps-grid article,
  .roles-public-grid article,
  .concept-grid article,
  .world-grid article,
  .faq-grid article {
    min-width: 0;
    border: 1px solid var(--ri-border);
    background: rgba(16, 22, 30, .82);
    padding: clamp(20px, 2.2vw, 26px);
  }
  .feature-grid article,
  .steps-grid article,
  .roles-public-grid article,
  .concept-grid article,
  .world-grid article,
  .faq-grid article { transition: border-color 140ms ease, background-color 140ms ease, transform 140ms ease; }
  .feature-grid article:hover,
  .steps-grid article:hover,
  .roles-public-grid article:hover,
  .concept-grid article:hover,
  .world-grid article:hover,
  .faq-grid article:hover { border-color: rgba(77, 181, 165, .52); background: rgba(18, 27, 35, .94); transform: translateY(-2px); }
  .feature-grid article > span,
  .steps-grid article > strong,
  .role-number { color: var(--ri-signal); font: 850 .68rem/1.3 ui-monospace, monospace; letter-spacing: .09em; text-transform: uppercase; }
  .feature-grid h3,
  .steps-grid h3,
  .roles-public-grid h3,
  .concept-grid h3,
  .world-grid h3,
  .faq-grid h3 { margin: 26px 0 10px; font-size: 1.2rem; line-height: 1.08; text-transform: uppercase; }
  .feature-grid p,
  .steps-grid p,
  .roles-public-grid p,
  .concept-grid p,
  .world-grid p,
  .faq-grid p { color: var(--ri-fog); line-height: 1.62; }
  .feature-grid a,
  .section-link a { display: inline-flex; min-height: 44px; align-items: center; color: var(--ri-verify); font-weight: 750; text-decoration: none; }
  .operation-feature { display: grid; grid-template-columns: 1.25fr .75fr; gap: 42px; align-items: start; }
  .operation-feature h2 { margin: 10px 0 16px; font-size: clamp(2.6rem, 6vw, 5.4rem); text-transform: uppercase; }
  .operation-feature > div > p { max-width: 760px; color: var(--ri-fog); font-size: 1.05rem; line-height: 1.72; }
  .public-operation-card { margin-top: 12px; }
  .fact-list { display: grid; gap: 1px; margin: 24px 0 0; background: var(--ri-border); }
  .fact-list div { display: grid; grid-template-columns: .8fr 1.2fr; gap: 14px; background: var(--ri-panel); padding: 12px 14px; }
  .fact-list dt { color: var(--ri-fog); font: 720 .65rem/1.4 ui-monospace, monospace; text-transform: uppercase; }
  .fact-list dd { margin: 0; color: var(--ri-paper); font: 760 .75rem/1.4 ui-monospace, monospace; }
  .check-list { display: grid; gap: 10px; padding: 0; list-style: none; }
  .check-list li { position: relative; padding-left: 28px; color: var(--ri-fog); line-height: 1.55; }
  .check-list li::before { content: "✓"; position: absolute; left: 0; color: var(--ri-verify); font-weight: 900; }
  .answer-cluster details,
  .faq-list details {
    border: 1px solid var(--ri-border);
    background: rgba(16, 22, 30, .76);
    margin-bottom: 8px;
  }
  .answer-cluster summary,
  .faq-list summary { cursor: pointer; padding: 17px 20px; color: var(--ri-paper); font-weight: 780; }
  .answer-cluster details p,
  .faq-list details p { margin: 0; padding: 0 20px 19px; color: var(--ri-fog); line-height: 1.65; }
  /* 0.18.55 public creator contact page and non-game footer routing. */
  .contact-intro-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.02fr) minmax(360px, .98fr);
    gap: clamp(22px, 4vw, 48px);
    margin-top: clamp(38px, 5vw, 66px);
    align-items: stretch;
  }
  .contact-profile-card,
  .contact-direct-card {
    min-width: 0;
    border: 1px solid var(--ri-border);
    background: rgba(16, 22, 30, .86);
    padding: clamp(24px, 3.2vw, 42px);
  }
  .contact-profile-card { border-left: 5px solid var(--ri-verify); }
  .contact-direct-card { border-top: 3px solid var(--ri-signal); }
  .contact-profile-card h2,
  .contact-direct-card h2 {
    margin: 10px 0 12px;
    font-size: clamp(2rem, 3.8vw, 3.65rem);
    line-height: .98;
    text-wrap: balance;
  }
  .contact-profile-card p,
  .contact-direct-card p { color: var(--ri-fog); line-height: 1.7; }
  .contact-headline { color: var(--ri-paper) !important; font-weight: 800; }
  .contact-scope-note {
    margin-top: 24px;
    border-top: 1px solid var(--ri-border);
    padding-top: 18px;
    font-size: .9rem;
  }
  .contact-detail-list { display: grid; gap: 1px; margin: 22px 0 0; font-style: normal; background: var(--ri-border); }
  .contact-detail-list div {
    display: grid;
    grid-template-columns: minmax(96px, .38fr) minmax(0, 1.62fr);
    gap: 14px;
    align-items: center;
    background: rgba(8, 12, 17, .96);
    padding: 14px 16px;
  }
  .contact-detail-list span { color: var(--ri-signal); font: 820 .67rem/1.4 ui-monospace, monospace; text-transform: uppercase; }
  .contact-detail-list a { color: var(--ri-paper); overflow-wrap: anywhere; text-underline-offset: 3px; }
  .contact-address-note { margin: 14px 0 0; font-size: .82rem; color: var(--ri-fog); }
  .contact-actions { align-items: stretch; margin-top: 22px; }
  .contact-actions .button { flex: 1 1 180px; }
  .contact-focus-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .contact-focus-grid h3 { margin-top: 0; }
  .contact-principles { align-items: start; }
  .contact-profile-links { display: grid; gap: 10px; }
  .contact-profile-links a {
    display: grid;
    gap: 4px;
    min-height: 68px;
    align-content: center;
    border: 1px solid var(--ri-border);
    background: rgba(11, 15, 20, .84);
    padding: 13px 16px;
    color: var(--ri-paper);
    text-decoration: none;
  }
  .contact-profile-links a:hover,
  .contact-profile-links a:focus-visible { border-color: var(--ri-verify); background: rgba(77, 181, 165, .07); }
  .contact-profile-links strong { font: 850 .76rem/1.3 ui-monospace, monospace; text-transform: uppercase; }
  .contact-profile-links span { color: var(--ri-fog); font-size: .86rem; }
  .contact-boundary {
    border: 1px solid var(--ri-border);
    border-left: 5px solid var(--ri-signal);
    background: rgba(16, 22, 30, .72);
    padding: clamp(24px, 3.4vw, 40px);
  }
  .contact-boundary p { max-width: 900px; color: var(--ri-fog); line-height: 1.7; }
  .footer-contact-link { display: inline-flex; min-height: 44px; align-items: center; color: var(--ri-verify) !important; font-weight: 780; }
  .public-footer { border-top: 1px solid var(--ri-border); background: rgba(7, 10, 14, .86); padding: 48px clamp(18px, 4vw, 62px) 24px; }
  .footer-grid { display: grid; grid-template-columns: 1.1fr .8fr 1fr; gap: 48px; max-width: 1240px; margin: 0 auto; }
  .footer-grid section,
  .footer-grid nav { display: grid; align-content: start; gap: 10px; }
  .footer-wordmark { max-width: 360px; margin-bottom: 12px; }
  .footer-grid h2 { margin: 0 0 10px; color: var(--ri-signal); font: 820 .72rem/1.4 ui-monospace, monospace; text-transform: uppercase; }
  .footer-grid p { margin: 0; color: var(--ri-fog); line-height: 1.6; }
  .footer-grid a:not(.button) { color: var(--ri-paper); text-decoration: none; }
  .footer-grid .public-creator-credit a { color: var(--ri-verify); text-decoration: underline; }
  .footer-grid .button { justify-self: start; margin-top: 8px; text-decoration: none; }
  .footer-legal { display: flex; justify-content: space-between; gap: 24px; max-width: 1240px; margin: 42px auto 0; padding-top: 18px; border-top: 1px solid var(--ri-border); color: var(--ri-fog); font: 700 .64rem/1.55 ui-monospace, monospace; text-transform: uppercase; }

  /* Game-only adult and WebXR entry */
  .play-page { min-height: 100vh; }
  .play-header {
    display: grid;
    grid-template-columns: minmax(210px, 340px) 1fr auto;
    gap: 22px;
    align-items: center;
    padding: 16px clamp(16px, 3vw, 44px);
    border-bottom: 1px solid var(--ri-border);
    background: rgba(11, 15, 20, .95);
  }
  .play-header-status { justify-self: center; display: flex; align-items: center; gap: 9px; color: var(--ri-fog); font: 720 .69rem/1.4 ui-monospace, monospace; text-transform: uppercase; }
  .status-light { width: 8px; height: 8px; border-radius: 50%; background: var(--ri-verify); box-shadow: 0 0 12px var(--ri-verify); }
  .play-main { width: min(1320px, calc(100% - 28px)); min-height: calc(100vh - 160px); margin: 0 auto; padding: 40px 0 60px; }
  .xr-launch-card {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 32px;
    align-items: center;
    min-height: 420px;
    border: 1px solid var(--ri-signal);
    background: linear-gradient(145deg, rgba(16, 22, 30, .98), rgba(7, 10, 14, .97));
    padding: clamp(28px, 5vw, 64px);
    box-shadow: 18px 18px 0 rgba(214, 168, 75, .09);
  }
  .xr-launch-card h1 { max-width: 900px; font-size: clamp(2.8rem, 7vw, 6.4rem); }
  .xr-launch-card p { max-width: 860px; color: var(--ri-fog); line-height: 1.65; }
  .xr-launch-actions { display: grid; gap: 12px; min-width: min(100%, 260px); }
  .xr-overlay { width: 100%; min-height: 100%; }
  .screen-only { display: none; }
  body.play-mode-screen .screen-only { display: grid; }
  .screen-input-guide {
    grid-template-columns: minmax(0, 1.15fr) minmax(280px, .85fr);
    gap: 24px;
    align-items: center;
    margin: 0 0 20px;
    border: 1px solid var(--ri-verify);
    background: rgba(77, 181, 165, .07);
    padding: 20px;
  }
  .screen-input-guide h3 { margin: 10px 0 8px; font-size: 1.35rem; text-transform: uppercase; }
  .screen-input-guide p { margin: 0; color: var(--ri-fog); line-height: 1.55; }
  .screen-input-guide ul { margin: 0; padding-left: 20px; color: var(--ri-fog); line-height: 1.6; }
  .screen-input-guide strong { color: var(--ri-paper); }
  body.play-mode-screen .status-light { background: var(--ri-signal); box-shadow: 0 0 12px var(--ri-signal); }
  body.play-mode-screen .world-status { border-color: var(--ri-signal); color: var(--ri-signal); }
  .xr-overlay.immersive-overlay {
    max-height: 94vh;
    overflow: auto;
    padding: 14px;
    background: rgba(11, 15, 20, .9);
  }
  .xr-render-canvas { position: fixed; inset: 0; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
  .game-lobby { margin-top: 0; }
  .game-lobby .gateway-grid { grid-template-columns: 1.2fr .82fr .65fr .65fr; }
  .comfort-grid { display: grid; gap: 12px; margin-top: 18px; }
  .comfort-grid label { display: grid; gap: 6px; color: var(--ri-fog); font: 720 .68rem/1.4 ui-monospace, monospace; text-transform: uppercase; }
  .comfort-grid select {
    width: 100%;
    border: 1px solid var(--ri-border);
    background: var(--ri-void);
    padding: 11px 12px;
    color: var(--ri-paper);
    font: 700 .8rem/1.4 system-ui, sans-serif;
  }
  .comfort-grid .toggle { display: flex; align-items: center; gap: 9px; text-transform: none; }
  .play-footer { display: flex; justify-content: space-between; gap: 24px; padding: 18px clamp(16px, 3vw, 44px); border-top: 1px solid var(--ri-border); color: var(--ri-fog); font: 700 .68rem/1.5 ui-monospace, monospace; text-transform: uppercase; }
  .play-footer > div { display: flex; flex-wrap: wrap; gap: 8px 16px; }
  .play-footer a { color: var(--ri-verify); }
  .gate-privacy { font-size: .82rem !important; }
  .adult-gate h1 { max-width: 760px; margin: 10px 0 16px; font-size: clamp(2.2rem, 6vw, 5rem); line-height: .94; text-transform: uppercase; }
  body.age-pending > .play-header,
  body.age-pending > .play-main,
  body.age-pending > .play-footer,
  body.age-pending > .skip-link { visibility: hidden; }

  /* Human-readable interactive results */
  .readable-result {
    display: grid;
    gap: 8px;
    min-height: 150px;
    border: 1px solid var(--ri-border);
    border-left: 4px solid var(--ri-verify);
    background: rgba(7, 10, 14, .88);
    padding: 18px;
    overflow-wrap: anywhere;
  }
  .readable-result h4 { margin: 4px 0 2px; color: var(--ri-signal); font: 820 .72rem/1.4 ui-monospace, monospace; letter-spacing: .06em; text-transform: uppercase; }
  .readable-result p { margin: 2px 0; color: var(--ri-fog); line-height: 1.58; }
  .readable-result strong { color: var(--ri-paper); }
  .readable-result ul { margin: 4px 0 12px; padding-left: 22px; color: var(--ri-fog); line-height: 1.58; }
  .readable-result details { border-top: 1px solid var(--ri-border); padding-top: 8px; }
  .readable-result summary { cursor: pointer; color: var(--ri-paper); font-weight: 760; }
  .dossier-result { margin-top: 14px; }
  .source-list article small { display: block; margin-top: 10px; color: var(--ri-verify); line-height: 1.5; }

  @media (max-width: 1080px) {
    .public-home-hero { grid-template-columns: minmax(0, 1.15fr) minmax(310px, .85fr); gap: 34px; }
    .game-lobby .gateway-grid { grid-template-columns: 1fr 1fr; }
    .role-selector-panel { grid-column: 1 / -1; }
  }
  @media (max-width: 920px) {
    .public-header { position: relative; }
    .public-home-hero { grid-template-columns: 1fr; min-height: 0; }
    .public-home-hero::after { right: 0; }
    .public-hero-copy { max-width: 820px; }
    .public-hero-brief { max-width: 760px; box-shadow: 12px 12px 0 rgba(214, 168, 75, .07); }
    .feature-grid,
    .steps-grid,
    .roles-public-grid,
    .concept-grid,
    .world-grid,
    .faq-grid { grid-template-columns: 1fr 1fr; }
    .answer-panel,
    .operation-feature,
    .cta-band,
    .footer-grid,
    .xr-launch-card,
    .screen-input-guide { grid-template-columns: 1fr; }
    .footer-legal,
    .play-footer { flex-direction: column; }
    .xr-launch-actions { min-width: 0; }
    .play-header { grid-template-columns: 1fr auto; }
    .play-header-status { grid-column: 1 / -1; grid-row: 2; justify-self: start; }
  }
  @media (max-width: 820px) {
    .public-header { grid-template-columns: 1fr auto; }
    .public-nav {
      grid-column: 1 / -1;
      grid-row: 2;
      flex-wrap: wrap;
      justify-content: flex-start;
      overflow: visible;
    }
    .public-nav-primary {
      display: flex;
      flex: 1 1 auto;
      flex-wrap: wrap;
    }
    .public-nav a,
    .public-nav summary {
      max-width: 100%;
      overflow-wrap: anywhere;
      text-align: center;
      white-space: normal;
    }
  }
  @media (max-width: 700px) {
    .public-header { position: relative; grid-template-columns: minmax(0, 1fr) auto; padding: 11px 14px; }
    .public-brand img { max-width: 210px; }
    .public-nav { width: 100%; }
    .public-nav a,
    .public-nav summary { min-height: 42px; padding-inline: 9px; }
    .public-nav-more { position: static; }
    .public-nav-panel {
      top: 100%;
      right: 14px;
      left: 14px;
      width: auto;
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .entry-mode-summary,
    .adult-entry-actions { grid-template-columns: 1fr; }
    .adult-entry-actions .tertiary { grid-column: auto; justify-self: stretch; }
    .header-enter { justify-self: end; padding-inline: 16px; text-align: center; }
    .public-main { width: min(100% - 28px, 1400px); padding-top: 10px; }
    .public-hero { padding-top: 38px; }
    .public-page-hero h1 { font-size: clamp(2.5rem, 12vw, 4.5rem); }
    .public-home-title { gap: 10px; }
    .public-home-title-primary { font-size: clamp(2.8rem, 13vw, 4.6rem); }
    .public-home-title-secondary { font-size: clamp(1.45rem, 7vw, 2.35rem); }
    .public-hero-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .public-hero-facts li { min-height: 72px; padding-inline: 10px; }
    .answer-panel h2 { max-width: 100%; font-size: clamp(1.85rem, 9vw, 3rem); }
    .answer-panel-facts { grid-template-columns: 1fr; }
    .feature-grid,
    .steps-grid,
    .roles-public-grid,
    .concept-grid,
    .world-grid,
    .faq-grid,
    .game-lobby .gateway-grid { grid-template-columns: 1fr; }
    .role-selector-panel { grid-column: auto; }
    .cta-band .button { width: 100%; text-align: center; }
    .footer-grid { gap: 34px; }
    .play-header { grid-template-columns: 1fr; }
    .play-header .button { justify-self: start; }
    .play-main { width: min(100% - 20px, 1320px); }
    .xr-launch-card { min-height: 0; padding: 26px 18px; box-shadow: 8px 8px 0 rgba(214, 168, 75, .08); }
    .play-footer { padding-inline: 14px; }
  }
  @media (max-width: 480px) {
    .play-header .public-brand img { max-width: 145px; }
    .play-header-status { max-width: 14ch; font-size: .49rem; }
    .front-desk-header-actions .button { padding-inline: 7px; font-size: .64rem; }
    .public-brand img { max-width: 184px; }
    .header-enter { min-height: 42px; padding-inline: 13px; font-size: .76rem; }
    .public-home-hero { gap: 28px; }
    .public-hero-brief { padding: 20px; box-shadow: 8px 8px 0 rgba(214, 168, 75, .07); }
    .public-hero-brief-topline { align-items: flex-start; flex-direction: column; gap: 8px; }
    .public-mode-grid { grid-template-columns: 1fr; }
    .button-large { width: 100%; text-align: center; }
  }
  @media (max-height: 520px) and (min-width: 760px) {
    .public-header {
      grid-template-columns: minmax(150px, 190px) minmax(0, 1fr) auto;
      min-height: 64px;
      padding-block: 8px;
    }
    .public-brand img { max-width: 190px; }
    .public-nav { grid-column: auto; grid-row: auto; justify-content: flex-end; overflow: visible; }
    .public-main { padding-top: 8px; }
    .public-home-hero { padding-top: 12px; }
    .public-home-title { gap: 4px; max-width: none; margin-block: 6px 8px; }
    .public-home-title-primary { font-size: clamp(2rem, 5vw, 2.65rem); white-space: nowrap; }
    .public-home-title-secondary { max-width: none; font-size: clamp(1.05rem, 2.4vw, 1.35rem); }
    .public-home-hero .lede {
      max-width: 72ch;
      margin-block: 6px;
      font-size: .86rem;
      line-height: 1.35;
    }
    .public-hero-actions { margin-top: 12px; }
    .public-hero-facts { margin-top: 14px; }
  }
  @media (max-width: 340px) {
    .public-header {
      grid-template-columns: minmax(0, 1fr) auto auto;
      min-height: 54px;
      gap: 6px;
      padding: 7px 10px;
    }
    .public-brand img { max-width: 132px; }
    .public-nav {
      grid-column: 2;
      grid-row: 1;
      width: auto;
      justify-content: flex-end;
      overflow: visible;
    }
    .public-nav-primary,
    .public-nav-more-full { display: none; }
    .public-nav-more-compact { display: inline; }
    .public-nav-mobile-primary { display: contents; }
    .public-nav a,
    .public-nav summary { min-height: 42px; padding-inline: 8px; }
    .public-nav-panel {
      max-height: min(420px, calc(100vh - 82px));
      grid-template-columns: 1fr;
      overflow-y: auto;
      overscroll-behavior: contain;
    }
    .header-enter {
      grid-column: 3;
      grid-row: 1;
      min-height: 42px;
      padding-inline: 10px;
      font-size: .7rem;
    }
    .public-main { padding-top: 4px; }
    .public-hero { padding-top: 20px; }
    .public-home-title { gap: 5px; margin-block: 6px 8px; }
    .public-home-title-primary { font-size: clamp(2.2rem, 11.4vw, 3.25rem); }
    .public-home-title-secondary { font-size: clamp(1.1rem, 5.7vw, 1.55rem); }
    .public-home-hero .lede {
      margin-block: 8px;
      font-size: .88rem;
      line-height: 1.4;
    }
    .public-hero-actions { margin-top: 12px; }
    .public-hero-facts { grid-template-columns: 1fr; }
  }
  @media (prefers-reduced-motion: reduce) {
    .feature-grid article:hover,
    .steps-grid article:hover,
    .roles-public-grid article:hover,
    .concept-grid article:hover,
    .world-grid article:hover,
    .faq-grid article:hover { transform: none; }
  }
  @media (forced-colors: active) {
    .public-header,
    .public-nav-panel,
    .public-hero-brief,
    .public-hero-facts,
    .answer-panel,
    .cta-band { border-color: CanvasText; }
    .public-nav a:focus-visible,
    .public-nav summary:focus-visible,
    .public-text-link:focus-visible,
    .public-mode-grid a:focus-visible,
    .public-hero-fact-link:focus-visible,
    .button:focus-visible { outline-color: Highlight; }
    .public-status-dot::before,
    .route-node-active { background: Highlight; border-color: Highlight; box-shadow: none; }
    .button { border: 2px solid ButtonText; }
  }
}

/* 0.12.0 worldwide MMO and dedicated operation routes */
.world-network-banner {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 1px;
  margin: 24px 0 0;
  border: 1px solid var(--ri-border);
  background: var(--ri-border);
}
.world-network-banner > div {
  display: grid;
  gap: 7px;
  min-height: 72px;
  align-content: center;
  padding: 14px 16px;
  background: var(--ri-panel);
}
.world-network-banner span {
  color: var(--ri-fog);
  font: 700 .62rem/1.2 ui-monospace, monospace;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.world-network-banner strong {
  color: var(--ri-verify);
  font: 850 1rem/1.2 ui-monospace, monospace;
}
.world-entry-grid {
  grid-template-columns: 1.15fr .82fr .82fr .82fr !important;
}
.featured-entry-panel {
  border-color: var(--ri-signal);
  background: linear-gradient(150deg, rgba(214, 168, 75, .12), rgba(16, 22, 29, .98));
  box-shadow: 10px 10px 0 rgba(214, 168, 75, .08);
}
.featured-entry-panel .button { width: 100%; }
.featured-entry-panel small,
.private-panel small { display: block; margin-top: 12px; color: var(--ri-fog); line-height: 1.5; }
.private-panel hr { margin: 22px 0; border: 0; border-top: 1px solid var(--ri-border); }
.private-panel .join-input { width: 100%; margin: 8px 0 12px; }
.private-panel .button { width: 100%; }
.operation-route-view { margin-top: 0; padding-top: 0; border-top: 0; }
.operation-route-view .console-heading h1 { margin-top: 6px; }
.operation-page .play-main { padding-top: 26px; }
.private-operation #world-operation-banner { display: none !important; }
.worldwide-operation .private-only[hidden] { display: none !important; }
.operation-route-view .active-cell-banner { margin-top: 20px; }

@media (max-width: 1100px) {
  .world-entry-grid { grid-template-columns: 1fr 1fr !important; }
}

@media (max-width: 720px) {
  .world-network-banner { grid-template-columns: 1fr 1fr; }
  .world-entry-grid { grid-template-columns: 1fr !important; }
}

@media (max-width: 440px) {
  .world-network-banner { grid-template-columns: 1fr; }
}

/* 0.12.0 mode-specific game entry */
@layer components {
  .adult-gate-card { width: min(920px, 100%); }
  .entry-mode-summary { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .adult-entry-actions { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .adult-entry-actions #adult-decline { grid-column: 1 / -1; justify-self: center; }

  .desktop-only,
  .console-only,
  .mobile-only,
  .vr-only { display: none; }
  body.play-mode-desktop .desktop-only { display: grid; }
  body.play-mode-console .console-only { display: grid; }
  body.play-mode-mobile .mobile-only { display: grid; }
  body.play-mode-vr .vr-only { display: grid; }

  .mode-settings-summary {
    margin: 7px 0 0;
    color: var(--ri-fog);
    font-size: .84rem;
    line-height: 1.55;
  }
  .mode-settings { margin-top: 4px; }
  .common-accessibility {
    margin-top: 18px;
    border-top: 1px solid var(--ri-border);
    padding-top: 16px;
  }
  body.play-mode-desktop .comfort-panel { border-color: rgba(77, 181, 165, .75); }
  body.play-mode-console .comfort-panel { border-color: rgba(127, 161, 214, .75); }
  body.play-mode-mobile .comfort-panel { border-color: rgba(214, 168, 75, .75); }
  body.high-contrast .gateway-panel,
  body.high-contrast .screen-input-guide,
  body.high-contrast .world-network-banner,
  body.high-contrast .active-cell-banner > div { border-color: var(--ri-paper); }

  @media (max-width: 1100px) {
    .entry-mode-summary,
    .adult-entry-actions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  }

  @media (max-width: 720px) {
    .entry-mode-summary,
    .adult-entry-actions { grid-template-columns: 1fr; }
    .adult-entry-actions #adult-decline { grid-column: auto; justify-self: stretch; }
  }
}
/* 0.12.0 explicit device-aware entry and operation presentation */
@layer components {
  .device-selector {
    display: grid;
    gap: 9px;
    margin-top: 18px;
  }

  .device-choice {
    display: grid;
    gap: 5px;
    width: 100%;
    border: 1px solid var(--ri-border);
    background: var(--ri-soft);
    padding: 14px;
    color: var(--ri-paper);
    text-align: left;
    cursor: pointer;
  }

  .device-choice:hover,
  .device-choice:focus-visible {
    border-color: var(--ri-verify);
    outline: none;
  }

  .device-choice.selected {
    border-color: var(--ri-signal);
    background: rgba(214, 168, 75, .1);
    box-shadow: inset 4px 0 0 var(--ri-signal);
  }

  .device-choice strong {
    font-size: 1rem;
    text-transform: uppercase;
  }

  .device-choice small {
    color: var(--ri-fog);
    line-height: 1.45;
  }

  .mode-settings[hidden] { display: none !important; }
  .common-settings {
    margin-top: 18px;
    border-top: 1px solid var(--ri-border);
    padding-top: 16px;
  }

  .world-entry-grid {
    grid-template-columns: minmax(260px, 1fr) minmax(260px, 1fr) minmax(280px, 1.15fr) minmax(220px, .8fr) minmax(220px, .8fr) !important;
    align-items: start;
  }

  .active-cell-banner {
    grid-template-columns: repeat(5, minmax(0, 1fr)) auto;
  }

  body.player-high-contrast {
    --ri-border: rgba(255, 255, 255, .62);
    --ri-fog: #D6DCE2;
  }

  body.player-high-contrast .gateway-panel,
  body.player-high-contrast .screen-input-guide,
  body.player-high-contrast .world-network-banner,
  body.player-high-contrast .active-cell-banner > div {
    border-color: var(--ri-paper);
  }

  body.player-reduced-motion,
  body.player-reduced-motion * {
    scroll-behavior: auto !important;
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
  }

  body.player-reduced-motion {
    background: var(--ri-void);
  }

  body.touch-target-large .button,
  body.touch-target-large .step-button,
  body.touch-target-large .role-choice,
  body.touch-target-large .device-choice {
    min-height: 52px;
  }

  body.touch-target-extra-large .button,
  body.touch-target-extra-large .step-button,
  body.touch-target-extra-large .role-choice,
  body.touch-target-extra-large .device-choice {
    min-height: 60px;
    padding-block: 16px;
  }

  @media (max-width: 1450px) {
    .world-entry-grid {
      grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }

    .worldwide-panel,
    .private-panel {
      grid-column: span 1;
    }
  }

  @media (max-width: 1050px) {
    .world-entry-grid {
      grid-template-columns: 1fr 1fr !important;
    }

    .comfort-panel {
      grid-column: 1 / -1;
    }

    .active-cell-banner {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }
  }

  @media (max-width: 720px) {
    .world-entry-grid {
      grid-template-columns: 1fr !important;
    }

    .comfort-panel,
    .worldwide-panel,
    .private-panel {
      grid-column: auto;
    }

    .active-cell-banner {
      grid-template-columns: 1fr;
    }
  }
}

/* 0.13.0 worldwide MMO economy, property, contract, and fugitive hub */
.world-main { max-width: 1560px; }
.world-hub { display: grid; gap: 1rem; }
.world-hero { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 1.5rem; align-items: end; padding: clamp(1.25rem, 2vw, 2rem); border: 1px solid var(--line); background: linear-gradient(130deg, rgba(27, 210, 185, .08), rgba(10, 14, 20, .96) 46%, rgba(220, 176, 65, .08)); }
.world-hero h1 { max-width: none; margin-bottom: .55rem; }
.world-hero p { max-width: 78ch; margin: 0; }
.world-hero-actions, .header-actions { display: flex; flex-wrap: wrap; gap: .55rem; align-items: center; }
.world-hub-network { grid-template-columns: repeat(5, minmax(110px, 1fr)); }
.world-summary-grid { display: grid; grid-template-columns: repeat(6, minmax(150px, 1fr)); gap: .75rem; }
.world-summary-card { display: grid; align-content: start; gap: .35rem; min-height: 130px; padding: 1rem; border: 1px solid var(--line); background: var(--panel); }
.world-summary-card > span { color: var(--muted); font-size: .72rem; letter-spacing: .09em; text-transform: uppercase; }
.world-summary-card > strong { font-family: var(--font-display); font-size: clamp(1.25rem, 2vw, 1.85rem); }
.world-summary-card small { color: var(--muted); line-height: 1.45; }
.world-summary-card.danger { border-color: rgba(232, 99, 85, .72); box-shadow: inset 0 3px 0 rgba(232, 99, 85, .55); }
.meter { overflow: hidden; height: 7px; border: 1px solid var(--line); background: var(--ink); }
.meter span { display: block; width: 0; height: 100%; background: var(--signal); transition: width .25s ease; }
.world-priority-panel { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 1rem; padding: 1rem 1.15rem; border-left: 4px solid var(--signal); background: rgba(27, 210, 185, .07); }
.world-priority-panel h2 { margin: .2rem 0 .35rem; }
.world-priority-panel p { margin: 0; max-width: 78ch; }
.priority-actions, .card-actions, .dual-market-actions, .active-contract-actions { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; }
.world-tab-list { display: flex; gap: .35rem; overflow-x: auto; padding: .4rem; border: 1px solid var(--line); background: var(--panel); scrollbar-width: thin; }
.world-tab { min-width: max-content; padding: .7rem .9rem; border: 1px solid transparent; background: transparent; color: var(--muted); font: inherit; font-weight: 750; cursor: pointer; }
.world-tab:hover, .world-tab:focus-visible { color: var(--paper); border-color: var(--line-strong); }
.world-tab.active { color: var(--ink); background: var(--signal); border-color: var(--signal); }
.world-panel { padding: clamp(1rem, 2vw, 1.35rem); border: 1px solid var(--line); background: rgba(10, 14, 20, .7); }
.world-panel[hidden] { display: none !important; }
.world-card-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(265px, 1fr)); gap: .75rem; }
.world-market-card { display: flex; flex-direction: column; gap: .65rem; min-height: 100%; padding: 1rem; border: 1px solid var(--line); background: var(--panel); }
.world-market-card h3 { margin: 0; }
.world-market-card p { margin: 0; color: var(--muted); }
.world-market-card .button { margin-top: auto; align-self: flex-start; }
.world-market-card.verified { border-top: 3px solid var(--signal); }
.world-market-card.unverified { border-top: 3px solid var(--warning); }
.world-market-card.owned { border-top: 3px solid var(--accent); }
.world-market-card.resale { border-left: 3px solid var(--accent); }
.card-topline { display: flex; justify-content: space-between; gap: .75rem; color: var(--muted); font-size: .69rem; letter-spacing: .08em; text-transform: uppercase; }
.card-topline strong { color: var(--paper); }
.compact-facts { display: grid; gap: .35rem; margin: 0; }
.compact-facts div { display: grid; grid-template-columns: minmax(90px, .7fr) minmax(0, 1fr); gap: .5rem; padding-top: .35rem; border-top: 1px solid var(--line); }
.compact-facts dt { color: var(--muted); }
.compact-facts dd { margin: 0; overflow-wrap: anywhere; }
.signal-list { display: grid; gap: .25rem; margin: 0; padding: 0; list-style: none; }
.signal-list li::before { display: inline-block; width: 1.25rem; font-weight: 900; }
.signal-list li.yes::before { content: "✓"; color: var(--signal); }
.signal-list li.no::before { content: "×"; color: var(--warning); }
.risk-copy { padding: .6rem; border-left: 2px solid var(--warning); background: rgba(220, 176, 65, .06); }
.active-contract-card { margin-bottom: .9rem; }
.active-world-contract { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 1rem; align-items: center; padding: 1rem; border: 1px solid var(--line); background: var(--panel); }
.active-world-contract.verified { box-shadow: inset 4px 0 0 var(--signal); }
.active-world-contract.unverified { box-shadow: inset 4px 0 0 var(--warning); }
.active-world-contract h3, .active-world-contract p { margin: .2rem 0 0; }
.active-world-contract p { color: var(--muted); }
.empty-state { grid-column: 1 / -1; display: grid; gap: .35rem; padding: 1rem; border: 1px dashed var(--line-strong); color: var(--muted); }
.empty-state strong { color: var(--paper); }
.subsection-heading { display: flex; justify-content: space-between; gap: 1rem; align-items: baseline; margin: 1.4rem 0 .7rem; padding-bottom: .45rem; border-bottom: 1px solid var(--line); }
.subsection-heading h3, .subsection-heading p { margin: 0; }
.subsection-heading p { color: var(--muted); }
.inline-listing-label, .inline-share, .courier-form label { display: grid; gap: .3rem; color: var(--muted); font-size: .78rem; }
.inline-listing-label input, .inline-share input, .courier-form input, .courier-form select { width: 100%; padding: .65rem .7rem; border: 1px solid var(--line-strong); background: var(--ink); color: var(--paper); font: inherit; }
.inventory-strip { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: .6rem; margin-bottom: .9rem; }
.inventory-item { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .4rem; align-items: center; padding: .75rem; border: 1px solid var(--line); background: var(--panel); }
.inventory-item .button { grid-column: 1 / -1; justify-self: start; }
.dual-market-actions { margin-top: auto; align-items: stretch; }
.dual-market-actions .button { margin-top: 0; flex: 1 1 190px; }
.legal-rule-grid, .economy-rule-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: .65rem; margin-bottom: 1rem; }
.legal-rule-grid article, .economy-rule-grid article { padding: .9rem; border: 1px solid var(--line); background: var(--panel); }
.legal-rule-grid h3, .economy-rule-grid h3 { margin: 0 0 .4rem; }
.legal-rule-grid p, .economy-rule-grid p { margin: 0; color: var(--muted); }
.economy-rule-grid article > span { color: var(--signal); font-size: .7rem; letter-spacing: .1em; font-weight: 800; }
.inline-action-card { display: flex; flex-wrap: wrap; gap: .8rem; align-items: center; padding: .9rem; border: 1px solid var(--line); background: var(--panel); }
.inline-action-card p { margin: 0; color: var(--muted); }
.courier-form { display: grid; grid-template-columns: 1.4fr 1fr .55fr .8fr auto; gap: .65rem; align-items: end; margin-bottom: 1rem; padding: .9rem; border: 1px solid var(--line); background: var(--panel); }
.status-note { color: var(--muted); font-size: .8rem; }
.world-message { position: sticky; bottom: .5rem; z-index: 6; margin-top: 1rem; box-shadow: 0 8px 26px rgba(0,0,0,.35); }
.world-message.error { border-color: var(--warning); color: var(--warning); }
.button.warning { border-color: var(--warning); color: var(--warning); background: rgba(220, 176, 65, .07); }
.button.warning:hover, .button.warning:focus-visible { background: var(--warning); color: var(--ink); }
.button:disabled { opacity: .48; cursor: not-allowed; }

@media (max-width: 1180px) {
  .world-summary-grid { grid-template-columns: repeat(3, minmax(160px, 1fr)); }
  .world-hub-network { grid-template-columns: repeat(3, minmax(120px, 1fr)); }
  .courier-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .courier-form .button { grid-column: 1 / -1; justify-self: start; }
}

@media (max-width: 760px) {
  .world-hero, .world-priority-panel, .active-world-contract { grid-template-columns: 1fr; align-items: start; }
  .world-summary-grid, .world-hub-network { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .world-hero-actions, .priority-actions { width: 100%; }
  .world-hero-actions .button, .priority-actions .button { flex: 1 1 100%; }
  .subsection-heading { display: grid; }
  .courier-form { grid-template-columns: 1fr; }
  .courier-form .button { grid-column: auto; width: 100%; }
  .header-actions .button { padding-inline: .55rem; }
}

@media (max-width: 450px) {
  .world-summary-grid, .world-hub-network { grid-template-columns: 1fr; }
  .world-panel { padding: .75rem; }
}

/* 0.16.0 progressive entry, first-day character play, persistent presence, and temporary operation stations */
@layer components {
  .entry-wizard {
    display: grid;
    gap: 1rem;
  }

  .entry-progress {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1px;
    margin: 0;
    padding: 0;
    border: 1px solid var(--ri-border);
    background: var(--ri-border);
    list-style: none;
  }

  .entry-progress li {
    display: flex;
    gap: .65rem;
    align-items: center;
    min-height: 58px;
    padding: .75rem 1rem;
    background: var(--ri-panel);
    color: var(--ri-fog);
  }

  .entry-progress li span {
    display: grid;
    place-items: center;
    width: 1.85rem;
    height: 1.85rem;
    border: 1px solid var(--ri-border);
    font: 800 .7rem/1 ui-monospace, monospace;
  }

  .entry-progress li.active,
  .entry-progress li.complete { color: var(--ri-paper); }
  .entry-progress li.active { box-shadow: inset 0 -3px 0 var(--ri-signal); }
  .entry-progress li.complete span { border-color: var(--ri-verify); color: var(--ri-verify); }

  .entry-wizard-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1rem;
  }

  .entry-step-card {
    display: grid;
    gap: .9rem;
    padding: clamp(1rem, 2vw, 1.4rem);
    border: 1px solid var(--ri-border);
    background: rgba(16, 22, 29, .96);
  }

  .entry-step-card h2,
  .entry-step-card p { margin: 0; }

  .device-selector-compact {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .preset-selector {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .55rem;
    margin: 0;
    padding: 0;
    border: 0;
  }

  .preset-selector legend {
    grid-column: 1 / -1;
    margin-bottom: .2rem;
    color: var(--ri-fog);
    font: 750 .68rem/1.3 ui-monospace, monospace;
    letter-spacing: .08em;
    text-transform: uppercase;
  }

  .preset-selector label {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: .65rem;
    align-items: start;
    min-height: 92px;
    padding: .8rem;
    border: 1px solid var(--ri-border);
    background: var(--ri-soft);
    cursor: pointer;
  }

  .preset-selector label:has(input:checked) {
    border-color: var(--ri-signal);
    box-shadow: inset 3px 0 0 var(--ri-signal);
    background: rgba(214, 168, 75, .08);
  }

  .preset-selector span { display: grid; gap: .3rem; }
  .preset-selector small { color: var(--ri-fog); line-height: 1.45; }

  .advanced-settings {
    border: 1px solid var(--ri-border);
    background: rgba(7, 10, 14, .55);
  }

  .advanced-settings > summary {
    padding: .8rem 1rem;
    color: var(--ri-paper);
    font-weight: 800;
    cursor: pointer;
  }

  .advanced-settings > .mode-settings,
  .advanced-settings > .common-settings {
    margin-inline: 1rem;
  }

  .advanced-settings > .common-settings { margin-bottom: 1rem; }

  .configuration-summary {
    padding: .7rem .85rem;
    border-left: 3px solid var(--ri-verify);
    background: rgba(77, 181, 165, .07);
    color: var(--ri-paper);
    font: 750 .75rem/1.5 ui-monospace, monospace;
  }

  .launch-step {
    border-color: var(--ri-signal);
    background: linear-gradient(135deg, rgba(214, 168, 75, .1), rgba(16, 22, 29, .98) 55%);
  }

  .launch-benefits {
    display: grid;
    gap: .45rem;
    margin: 0;
    padding-left: 1.2rem;
    color: var(--ri-fog);
  }

  .world-entry-button { justify-self: start; min-width: min(100%, 320px); }

  .private-entry-card {
    border: 1px solid var(--ri-border);
    background: rgba(7, 10, 14, .72);
  }

  .private-entry-card > summary {
    padding: 1rem 1.1rem;
    cursor: pointer;
  }

  .private-entry-card > summary span { display: grid; gap: .25rem; }
  .private-entry-card > summary small { color: var(--ri-fog); }

  .private-station-block {
    display: grid;
    gap: .75rem;
    padding: 1rem 1.1rem;
    border-top: 1px solid var(--ri-border);
    background: rgba(214, 168, 75, .035);
  }

  .private-station-block h2,
  .private-station-block p { margin: 0; }

  .private-role-selector {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .55rem;
  }

  .private-role-selector .role-choice {
    display: grid;
    gap: .35rem;
    align-content: start;
    min-height: 118px;
    padding: .8rem;
    border: 1px solid var(--ri-border);
    background: var(--ri-panel);
    color: var(--ri-paper);
    text-align: left;
    cursor: pointer;
  }

  .private-role-selector .role-choice small { color: var(--ri-fog); line-height: 1.4; }
  .private-role-selector .role-choice.selected,
  .private-role-selector .role-choice[aria-pressed="true"] {
    border-color: var(--ri-signal);
    box-shadow: inset 3px 0 0 var(--ri-signal);
    background: rgba(214, 168, 75, .07);
  }

  .private-entry-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1px;
    border-top: 1px solid var(--ri-border);
    background: var(--ri-border);
  }

  .private-entry-grid article {
    display: grid;
    gap: .75rem;
    align-content: start;
    padding: 1rem;
    background: var(--ri-panel);
  }

  .private-entry-grid h2,
  .private-entry-grid p { margin: 0; }

  .world-operation-entry {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(320px, .8fr);
    gap: 1rem;
    padding: clamp(1rem, 2vw, 1.35rem);
    border: 1px solid var(--ri-signal);
    background: linear-gradient(135deg, rgba(77, 181, 165, .08), rgba(10, 14, 20, .95));
    scroll-margin-top: 1rem;
  }

  .world-operation-copy,
  .operation-match-controls { display: grid; gap: .7rem; align-content: start; }
  .world-operation-copy h2,
  .world-operation-copy p { margin: 0; }

  .operation-role-selector {
    display: grid;
    gap: .45rem;
    margin: 0;
    padding: 0;
    border: 0;
  }

  .operation-role-selector legend {
    margin-bottom: .2rem;
    color: var(--ri-fog);
    font: 750 .68rem/1.3 ui-monospace, monospace;
    letter-spacing: .08em;
    text-transform: uppercase;
  }

  .operation-role-selector label {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: .65rem;
    align-items: start;
    padding: .65rem .75rem;
    border: 1px solid var(--ri-border);
    background: var(--ri-panel);
    cursor: pointer;
  }

  .operation-role-selector label:has(input:checked) {
    border-color: var(--ri-signal);
    box-shadow: inset 3px 0 0 var(--ri-signal);
  }

  .operation-role-selector label span { display: grid; gap: .2rem; }
  .operation-role-selector label small { color: var(--ri-fog); line-height: 1.4; }

  .active-operation-summary {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr)) auto;
    gap: 1px;
    border: 1px solid var(--ri-border);
    background: var(--ri-border);
  }

  .active-operation-summary[hidden] { display: none !important; }
  .active-operation-summary > div {
    display: grid;
    gap: .25rem;
    padding: .8rem;
    background: var(--ri-panel);
  }
  .active-operation-summary span { color: var(--ri-fog); font-size: .7rem; text-transform: uppercase; letter-spacing: .07em; }
  .active-operation-actions { display: flex !important; flex-wrap: wrap; align-content: center; }

  .operation-role-gate {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(320px, 1fr);
    gap: 1rem;
    margin: 1rem 0;
    padding: 1rem;
    border: 1px solid var(--ri-signal);
    background: linear-gradient(135deg, rgba(214, 168, 75, .09), rgba(16, 22, 29, .98));
  }

  .operation-role-gate[hidden],
  #operation-console[hidden] { display: none !important; }
  .operation-role-gate h2,
  .operation-role-gate p { margin: .3rem 0 0; }

  .operation-role-buttons { display: grid; gap: .55rem; }
  .operation-role-button {
    display: grid;
    gap: .25rem;
    padding: .8rem;
    border: 1px solid var(--ri-border);
    background: var(--ri-panel);
    color: var(--ri-paper);
    text-align: left;
    cursor: pointer;
  }
  .operation-role-button:hover,
  .operation-role-button:focus-visible { border-color: var(--ri-signal); outline: none; }
  .operation-role-button span { color: var(--ri-fog); line-height: 1.45; }
  .operation-role-gate .entry-message { grid-column: 1 / -1; margin: 0; }

  @media (max-width: 960px) {
    .device-selector-compact { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .world-operation-entry,
    .operation-role-gate { grid-template-columns: 1fr; }
    .active-operation-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  }

  @media (max-width: 680px) {
    .entry-progress,
    .device-selector-compact,
    .preset-selector,
    .private-entry-grid,
    .private-role-selector,
    .active-operation-summary { grid-template-columns: 1fr; }
    .entry-progress li { min-height: 48px; }
    .world-entry-button { width: 100%; }
  }
}

/* 0.16.0 classless character dossier, first-day onboarding, and district play */
.character-setup-panel {
  display: grid;
  grid-template-columns: minmax(260px, .75fr) minmax(0, 1.55fr);
  gap: 1.25rem;
  padding: clamp(1rem, 2vw, 1.5rem);
  border: 1px solid var(--signal);
  background: linear-gradient(135deg, rgba(27, 210, 185, .1), rgba(10, 14, 20, .96) 48%, rgba(220, 176, 65, .08));
  box-shadow: inset 4px 0 0 var(--signal);
}
.character-setup-panel[hidden] { display: none !important; }
.character-setup-copy h2 { margin: .35rem 0 .6rem; }
.character-setup-copy p { margin: 0; color: var(--muted); line-height: 1.6; }
.character-setup-form { display: grid; gap: 1rem; }
.character-setup-form > label { display: grid; gap: .35rem; }
.character-setup-form input[type="text"],
.character-setup-form input:not([type]) { width: 100%; padding: .8rem .85rem; border: 1px solid var(--line-strong); background: var(--ink); color: var(--paper); font: inherit; }
.character-setup-form label > span, .character-setup-form legend { color: var(--paper); font-size: .78rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.character-setup-form label > small { color: var(--muted); }
.character-setup-form fieldset { min-width: 0; padding: 0; border: 0; }
.starter-track-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: .55rem; margin-top: .5rem; }
.starter-track-choice { position: relative; display: block; cursor: pointer; }
.starter-track-choice input { position: absolute; opacity: 0; pointer-events: none; }
.starter-track-choice span { display: grid; gap: .35rem; min-height: 100%; padding: .8rem; border: 1px solid var(--line); background: var(--panel); transition: border-color .15s ease, background .15s ease, transform .15s ease; }
.starter-track-choice strong { font-family: var(--font-display); font-size: 1rem; }
.starter-track-choice small { color: var(--muted); line-height: 1.45; }
.starter-track-choice em { color: var(--signal); font-style: normal; font-size: .72rem; }
.starter-track-choice input:checked + span { border-color: var(--accent); background: rgba(220, 176, 65, .09); box-shadow: inset 0 3px 0 var(--accent); }
.starter-track-choice input:focus-visible + span { outline: 3px solid rgba(27, 210, 185, .35); outline-offset: 2px; }
.starter-track-choice:hover span { transform: translateY(-1px); border-color: var(--line-strong); }

.onboarding-panel { display: grid; gap: .8rem; padding: 1rem 1.15rem; border: 1px solid var(--line); background: var(--panel); }
.onboarding-panel.completed { border-color: rgba(27, 210, 185, .5); }
.onboarding-heading { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 1rem; align-items: end; }
.onboarding-heading h2, .onboarding-heading p { margin: .2rem 0 0; }
.onboarding-heading p { color: var(--muted); }
.onboarding-progress-copy { display: grid; text-align: right; }
.onboarding-progress-copy strong { font-family: var(--font-display); font-size: 1.6rem; }
.onboarding-progress-copy span { color: var(--muted); font-size: .72rem; text-transform: uppercase; letter-spacing: .08em; }
.onboarding-progress-track { overflow: hidden; height: 8px; border: 1px solid var(--line); background: var(--ink); }
.onboarding-progress-track span { display: block; height: 100%; width: 0; background: linear-gradient(90deg, var(--signal), var(--accent)); transition: width .25s ease; }
.onboarding-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .55rem; margin: 0; padding: 0; list-style: none; }
.onboarding-steps li { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: .65rem; align-items: start; min-height: 96px; padding: .75rem; border: 1px solid var(--line); background: rgba(10, 14, 20, .65); }
.onboarding-steps li.current { border-color: var(--accent); box-shadow: inset 3px 0 0 var(--accent); }
.onboarding-steps li.complete { border-color: rgba(27, 210, 185, .45); }
.onboarding-steps li .button { grid-column: 1 / -1; justify-self: start; }
.onboarding-step-number { display: grid; place-items: center; width: 1.8rem; height: 1.8rem; border: 1px solid var(--line-strong); color: var(--signal); font-weight: 900; }
.onboarding-steps strong, .onboarding-steps small { display: block; }
.onboarding-steps small { margin-top: .25rem; color: var(--muted); line-height: 1.4; }

.dossier-identity-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; }
.dossier-card { display: flex; flex-direction: column; gap: .65rem; padding: 1rem; border: 1px solid var(--line); background: var(--panel); }
.dossier-card h3, .dossier-card p { margin: 0; }
.dossier-card p, .dossier-card small { color: var(--muted); }
.dossier-card .button { align-self: flex-start; margin-top: auto; }
.skill-grid { display: grid; grid-template-columns: repeat(3, minmax(220px, 1fr)); gap: .7rem; }
.skill-card { display: grid; align-content: start; gap: .55rem; padding: .9rem; border: 1px solid var(--line); background: var(--panel); }
.skill-card h3, .skill-card p { margin: 0; }
.skill-card p, .skill-card small { color: var(--muted); }
.skill-progress { overflow: hidden; height: 7px; border: 1px solid var(--line); background: var(--ink); }
.skill-progress span { display: block; height: 100%; background: var(--signal); }
.dossier-onboarding-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .6rem; }
.dossier-step { padding: .8rem; border: 1px solid var(--line); background: rgba(10, 14, 20, .7); }
.dossier-step > span { color: var(--warning); font-size: .68rem; font-weight: 800; letter-spacing: .1em; }
.dossier-step.complete > span { color: var(--signal); }
.dossier-step h3 { margin: .35rem 0; font-size: 1rem; }
.dossier-step p { margin: 0; color: var(--muted); }

.district-scene-card { display: grid; grid-template-columns: minmax(250px, .75fr) minmax(0, 1.75fr); gap: .85rem; margin-bottom: .9rem; padding: 1rem; border: 1px solid var(--line); background: linear-gradient(135deg, rgba(220, 176, 65, .06), var(--panel)); }
.district-scene-copy h3, .district-scene-copy p { margin: .3rem 0 0; }
.district-scene-copy p { color: var(--muted); line-height: 1.55; }
.district-scene-copy ul { margin: .75rem 0 0; padding-left: 1.2rem; color: var(--muted); }
.scene-action-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: .6rem; }
.scene-action { display: flex; flex-direction: column; gap: .55rem; padding: .8rem; border: 1px solid var(--line); background: rgba(10, 14, 20, .75); }
.scene-action.available { border-top: 3px solid var(--signal); }
.scene-action.cooldown { opacity: .68; }
.scene-action > div > span { color: var(--signal); font-size: .68rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.scene-action h3, .scene-action p { margin: .3rem 0 0; }
.scene-action p { color: var(--muted); }
.scene-action .button { margin-top: auto; align-self: flex-start; }

.world-activity-feed { display: grid; gap: .5rem; margin: 0; padding: 0; list-style: none; }
.world-activity-feed > li { display: grid; gap: .35rem; padding: .75rem .85rem; border-left: 3px solid var(--signal); background: var(--panel); }
.world-activity-feed > li > div { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .5rem; }
.world-activity-feed > li > div span, .world-activity-feed small { color: var(--muted); }
.world-activity-feed p { margin: 0; }

@media (max-width: 1050px) {
  .character-setup-panel, .district-scene-card { grid-template-columns: 1fr; }
  .onboarding-steps, .skill-grid, .dossier-onboarding-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 700px) {
  .onboarding-heading, .dossier-identity-grid { grid-template-columns: 1fr; }
  .onboarding-progress-copy { text-align: left; }
  .onboarding-steps, .skill-grid, .dossier-onboarding-list { grid-template-columns: 1fr; }
  .starter-track-grid { grid-template-columns: 1fr; }
}

/* 0.18.0 prelaunch device wizard and explicit renderer choice. */
@layer components {
  .entry-step-card[hidden],
  .private-entry-card[hidden],
  .device-step-error[hidden] { display: none !important; }

  .entry-step-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .7rem;
    align-items: center;
    justify-content: flex-end;
    padding-top: .25rem;
  }

  .entry-step-actions.split { justify-content: space-between; }

  .device-step-error {
    padding: .8rem 1rem;
    border-left: 4px solid var(--ri-danger);
    background: rgba(173, 68, 71, .13);
    color: var(--ri-paper);
    line-height: 1.55;
  }

  .device-choice:disabled {
    cursor: progress;
    opacity: .62;
    border-style: dashed;
  }

  .device-choice:disabled:hover,
  .device-choice:disabled:focus-visible {
    border-color: var(--ri-border);
    transform: none;
    box-shadow: none;
  }

  .device-choice.unavailable,
  .device-choice[aria-disabled="true"]:not(:disabled) {
    cursor: pointer;
    border-style: dashed;
    opacity: .78;
  }

  .device-choice.unavailable:hover,
  .device-choice[aria-disabled="true"]:not(:disabled):hover {
    border-color: var(--ri-danger);
  }

  .device-availability {
    display: block;
    margin-top: .5rem;
    padding-top: .3rem;
    border-top: 1px solid rgba(255, 255, 255, .08);
    color: var(--muted, #9fb0b7);
    font-family: ui-monospace, monospace;
  }

  .device-choice.unavailable .device-availability { color: var(--ri-danger); }

  @media (max-width: 720px) {
    .entry-step-actions,
    .entry-step-actions.split {
      display: grid;
      grid-template-columns: 1fr;
    }
    .entry-step-actions .button { width: 100%; }
  }
}

/* 0.18.0 explicit renderer handoff for the persistent world. */
.world-renderer-gate {
  max-width: 980px;
  margin: 2rem auto;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 1.25rem;
  align-items: center;
}
.world-renderer-gate[hidden] { display: none !important; }
.world-renderer-gate .xr-launch-actions {
  min-width: min(100%, 260px);
}
@media (max-width: 760px) {
  .world-renderer-gate { grid-template-columns: 1fr; }
}

/* Playable Canal Exchange district */
.district-main { width: min(1500px, calc(100% - 2rem)); margin: 0 auto; }
.district-surface { display: grid; gap: 1rem; width: 100%; }
.district-hero { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(280px, .6fr); gap: 1rem; align-items: start; padding: 1.2rem; border: 1px solid var(--line); background: linear-gradient(135deg, rgba(45, 190, 200, .08), var(--panel)); }
.district-hero h1, .district-hero p { margin: .35rem 0 0; }
.district-hero p { color: var(--muted); max-width: 72ch; }
.district-hero-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border: 1px solid var(--line); }
.district-hero-facts > div { display: grid; gap: .25rem; padding: .75rem; border-right: 1px solid var(--line); }
.district-hero-facts > div:last-child { border-right: 0; }
.district-hero-facts span { color: var(--muted); font-size: .68rem; letter-spacing: .08em; text-transform: uppercase; }
.district-hero-facts strong { color: var(--signal); overflow-wrap: anywhere; }
.district-presentation-panel, .district-semantic-panel, .district-gig-panel { border: 1px solid var(--line); background: var(--panel); padding: 1rem; }
.district-view-heading { display: flex; justify-content: space-between; gap: 1rem; align-items: end; margin-bottom: .9rem; }
.district-view-heading h2, .district-view-heading p { margin: .3rem 0 0; }
.district-view-heading p { color: var(--muted); max-width: 78ch; }
.district-view-actions { display: flex; flex-wrap: wrap; gap: .5rem; }
.district-render-grid { display: grid; grid-template-columns: minmax(0, 2fr) minmax(300px, .75fr); gap: .8rem; }
.district-canvas-shell { position: relative; min-height: 420px; overflow: hidden; border: 1px solid var(--line-strong); background: #050b11; }
#district-canvas { display: block; width: 100%; height: min(62vh, 620px); min-height: 420px; touch-action: none; cursor: crosshair; }
.district-canvas-status { position: absolute; left: .75rem; right: .75rem; bottom: .75rem; padding: .55rem .7rem; background: rgba(5, 11, 17, .88); border: 1px solid var(--line); color: var(--muted); font-size: .78rem; }
.district-canvas-status.error { border-color: var(--warning); color: var(--warning); }
.district-node-inspector { display: flex; flex-direction: column; gap: .65rem; padding: .9rem; border: 1px solid var(--line); background: rgba(8, 14, 20, .86); }
.district-node-inspector h2, .district-node-inspector p { margin: 0; }
.district-node-inspector p { color: var(--muted); line-height: 1.5; }
.district-action-list { display: grid; gap: .5rem; margin-top: auto; }
.district-action-list .button { width: 100%; }
.district-node-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: .65rem; margin: 0; padding: 0; list-style: none; }
.district-node-row { border: 1px solid var(--line); background: rgba(8, 14, 20, .72); }
.district-node-row.current { border-color: var(--signal); box-shadow: inset 3px 0 0 var(--signal); }
.district-node-row.reachable:not(.current) { border-color: var(--accent); }
.district-node-row > button { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: .65rem; align-items: start; width: 100%; min-height: 100%; padding: .8rem; border: 0; background: transparent; color: inherit; text-align: left; cursor: pointer; }
.district-node-row > button:hover, .district-node-row > button:focus-visible { background: rgba(45, 190, 200, .08); outline: 2px solid var(--signal); outline-offset: -2px; }
.district-node-index { color: var(--signal); font-family: var(--mono); font-size: .72rem; }
.district-node-row strong, .district-node-row small, .district-node-requirement { display: block; }
.district-node-row small { margin-top: .25rem; color: var(--muted); line-height: 1.45; }
.district-node-requirement { margin-top: .35rem; color: var(--warning); font-size: .72rem; }
.district-node-status { justify-self: end; color: var(--accent); font-size: .68rem; letter-spacing: .06em; text-transform: uppercase; }
.district-gig-panel { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(300px, .6fr); gap: 1rem; }
.district-gig-panel h2, .district-gig-panel p { margin: .3rem 0 0; }
.district-gig-panel p { color: var(--muted); }
.district-character-setup { margin: 0; }
.district-low-motion .district-canvas-shell { display: none; }
.district-low-motion .district-render-grid { grid-template-columns: 1fr; }
.district-low-motion .district-node-inspector { min-height: 0; }
.district-page.play-mode-vr #district-canvas { height: 45vh; min-height: 280px; }
@media (max-width: 980px) {
  .district-hero, .district-render-grid, .district-gig-panel { grid-template-columns: 1fr; }
  .district-hero-facts { grid-template-columns: 1fr; }
  .district-hero-facts > div { border-right: 0; border-bottom: 1px solid var(--line); }
  .district-hero-facts > div:last-child { border-bottom: 0; }
  .district-view-heading { align-items: start; flex-direction: column; }
  #district-canvas { min-height: 320px; height: 50vh; }
}
@media (prefers-reduced-motion: reduce) {
  #district-canvas { display: none; }
  .district-canvas-shell { min-height: 0; }
  .district-canvas-status { position: static; }
}
.district-launch-card { display: flex; justify-content: space-between; align-items: center; gap: 1rem; margin-bottom: .9rem; padding: 1rem; border: 1px solid var(--signal); background: linear-gradient(135deg, rgba(45, 190, 200, .1), var(--panel)); }
.district-launch-card h3, .district-launch-card p { margin: .25rem 0 0; }
.district-launch-card p { color: var(--muted); max-width: 78ch; }
@media (max-width: 760px) { .district-launch-card { align-items: stretch; flex-direction: column; } }

/* 0.18.1 WIP district connection recovery and read-only authored fallback. */
.district-message-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
}
.district-message-row > span { min-width: 0; }
.district-message-row .button { flex: 0 0 auto; }
@media (max-width: 720px) {
  .district-message-row { align-items: stretch; flex-direction: column; }
  .district-message-row .button { width: 100%; }
}

/* Canal Exchange commerce previews and resilient loading state */
.district-message-row { display: flex; align-items: center; justify-content: space-between; gap: .75rem; }
.district-message-row > span { min-width: 0; }
.district-message-row > span.error { color: var(--warning); }
.district-commerce-preview { display: grid; gap: .85rem; padding: 1rem; border: 1px solid var(--accent); background: linear-gradient(135deg, rgba(221, 169, 68, .08), var(--panel)); }
.district-commerce-heading { display: flex; align-items: start; justify-content: space-between; gap: 1rem; }
.district-commerce-heading h2, .district-commerce-heading p { margin: .3rem 0 0; }
.district-commerce-heading p { color: var(--muted); max-width: 78ch; }
.district-commerce-content { display: grid; gap: .55rem; }
.district-commerce-item { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 1rem; align-items: center; padding: .75rem; border: 1px solid var(--line); background: rgba(8, 14, 20, .72); }
.district-commerce-item strong, .district-commerce-item small, .district-commerce-item span { display: block; }
.district-commerce-item small { margin-top: .2rem; color: var(--muted); }
.district-node-row.selected:not(.current) { outline: 2px solid var(--accent); outline-offset: -2px; }
.district-busy [data-district-move], .district-busy [data-district-intent] { cursor: progress; }
@media (max-width: 760px) {
  .district-message-row, .district-commerce-heading { align-items: stretch; flex-direction: column; }
  .district-commerce-item { grid-template-columns: 1fr; }
}

/* Canal Exchange commerce previews and resilient loading state */
.district-message-row { display: flex; align-items: center; justify-content: space-between; gap: .75rem; }
.district-message-row > span { min-width: 0; }
.district-message-row > span.error { color: var(--warning); }
.district-commerce-preview { display: grid; gap: .85rem; padding: 1rem; border: 1px solid var(--accent); background: linear-gradient(135deg, rgba(221, 169, 68, .08), var(--panel)); }
.district-commerce-heading { display: flex; align-items: start; justify-content: space-between; gap: 1rem; }
.district-commerce-heading h2, .district-commerce-heading p { margin: .3rem 0 0; }
.district-commerce-heading p { color: var(--muted); max-width: 78ch; }
.district-commerce-content { display: grid; gap: .55rem; }
.district-commerce-item { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 1rem; align-items: center; padding: .75rem; border: 1px solid var(--line); background: rgba(8, 14, 20, .72); }
.district-commerce-item strong, .district-commerce-item small, .district-commerce-item span { display: block; }
.district-commerce-item small { margin-top: .2rem; color: var(--muted); }
.district-node-row.selected:not(.current) { outline: 2px solid var(--accent); outline-offset: -2px; }
.district-busy [data-district-move], .district-busy [data-district-intent] { cursor: progress; }
@media (max-width: 760px) {
  .district-message-row, .district-commerce-heading { align-items: stretch; flex-direction: column; }
  .district-commerce-item { grid-template-columns: 1fr; }
}

/* 0.18.18 internationally fair Global Intelligence Atlas. */
@layer components {
  .atlas-intro,
  .profile-summary {
    border-color: rgba(77, 181, 165, .48);
    background:
      linear-gradient(135deg, rgba(77, 181, 165, .08), rgba(214, 168, 75, .04)),
      rgba(16, 22, 30, .92);
  }

  .atlas-boundary {
    padding: clamp(24px, 5vw, 48px);
    border: 1px solid var(--ri-border);
    background: rgba(11, 15, 20, .78);
  }

  .atlas-profile-grid,
  .cycle-module-grid,
  .institution-grid,
  .comparison-grid,
  .method-principles {
    display: grid;
    gap: 16px;
  }

  .atlas-profile-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .atlas-card,
  .cycle-module,
  .institution-grid article,
  .comparison-grid article,
  .method-principles article {
    min-width: 0;
    border: 1px solid var(--ri-border);
    background: rgba(16, 22, 30, .91);
    padding: 22px;
  }

  .atlas-card {
    display: flex;
    flex-direction: column;
    min-height: 360px;
  }

  .atlas-card:hover,
  .atlas-card:focus-within {
    border-color: var(--ri-verify);
    background: rgba(16, 28, 34, .96);
  }

  .atlas-card-meta {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 8px;
    color: var(--ri-verify);
    font: 750 .68rem/1.4 ui-monospace, SFMono-Regular, Consolas, monospace;
    letter-spacing: .08em;
    text-transform: uppercase;
  }

  .atlas-card h3,
  .cycle-module h2,
  .cycle-module h3,
  .institution-grid h3,
  .comparison-grid h3,
  .method-principles h3 {
    margin: 28px 0 10px;
    text-transform: uppercase;
  }

  .atlas-card p,
  .cycle-module p,
  .institution-grid p,
  .comparison-grid p,
  .method-principles p {
    color: var(--ri-fog);
    line-height: 1.64;
  }

  .atlas-card a {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    margin-top: auto;
    padding-top: 16px;
    color: var(--ri-signal);
    font-weight: 800;
    text-underline-offset: 4px;
  }

  .atlas-local-name {
    min-height: 2.8em;
    color: var(--ri-paper) !important;
    font-weight: 700;
  }

  .method-principles {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .comparison-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .cycle-module-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .cycle-module {
    display: grid;
    gap: 12px;
  }

  .cycle-module .atlas-card-meta {
    padding-bottom: 12px;
    border-bottom: 1px solid var(--ri-border);
  }

  .institution-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .profile-facts {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1px;
    margin: 26px 0 0;
    padding: 1px;
    background: var(--ri-border);
  }

  .profile-facts > div {
    min-width: 0;
    background: var(--ri-void);
    padding: 15px;
  }

  .profile-facts dt {
    color: var(--ri-signal);
    font: 750 .68rem/1.4 ui-monospace, SFMono-Regular, Consolas, monospace;
    letter-spacing: .08em;
    text-transform: uppercase;
  }

  .profile-facts dd {
    margin: 8px 0 0;
    color: var(--ri-paper);
    line-height: 1.55;
    overflow-wrap: anywhere;
  }

  .profile-narrative > p {
    max-width: 82ch;
    color: var(--ri-fog);
    font-size: 1.04rem;
    line-height: 1.76;
  }

  .source-note {
    display: grid;
    gap: 12px;
    margin-top: 68px;
    padding: 22px;
    border: 1px solid rgba(214, 168, 75, .45);
    border-left-width: 5px;
    background: rgba(214, 168, 75, .055);
  }

  .source-note p {
    max-width: 92ch;
    margin: 0;
    color: var(--ri-fog);
    line-height: 1.65;
  }

  .atlas-pagination {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin-top: 72px;
    padding-top: 26px;
    border-top: 1px solid var(--ri-border);
  }

  .atlas-pagination a {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 54px;
    border: 1px solid var(--ri-border);
    padding: 12px;
    text-align: center;
    font-weight: 800;
    text-decoration: none;
  }

  .atlas-pagination a:hover,
  .atlas-pagination a:focus-visible {
    border-color: var(--ri-verify);
    outline: 3px solid var(--ri-verify);
    outline-offset: 3px;
  }

  .coverage-index {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
  }

  .coverage-letter {
    min-width: 0;
    border: 1px solid var(--ri-border);
    background: rgba(16, 22, 30, .91);
    padding: 20px;
  }

  .coverage-letter h2 {
    margin: 0 0 16px;
    color: var(--ri-signal);
    font: 850 1.35rem/1 ui-monospace, SFMono-Regular, Consolas, monospace;
  }

  .coverage-letter ul {
    display: grid;
    gap: 10px;
    margin: 0;
    padding: 0;
    list-style: none;
  }

  .coverage-letter li {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 12px;
    align-items: start;
    padding-top: 10px;
    border-top: 1px solid var(--ri-border);
    color: var(--ri-fog);
    line-height: 1.45;
  }

  .coverage-letter code {
    color: var(--ri-verify);
    font: 750 .68rem/1.45 ui-monospace, SFMono-Regular, Consolas, monospace;
    white-space: nowrap;
  }

  .coverage-letter a {
    color: var(--ri-paper);
    font-weight: 750;
    text-underline-offset: 4px;
  }

  @media (max-width: 1080px) {
    .atlas-profile-grid,
    .comparison-grid,
    .coverage-index {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }
  }

  @media (max-width: 760px) {
    .atlas-profile-grid,
    .cycle-module-grid,
    .institution-grid,
    .comparison-grid,
    .method-principles,
    .coverage-index,
    .atlas-pagination,
    .profile-facts {
      grid-template-columns: 1fr;
    }

    .atlas-card {
      min-height: 0;
    }

    .atlas-boundary {
      padding: 22px;
    }
  }
}

/* 0.18.18 public international intelligence and intelligence-cycle expansion. */
@layer components {
  .international-notice {
    display: grid;
    grid-template-columns: minmax(0, .9fr) minmax(0, 1.4fr);
    gap: clamp(20px, 4vw, 48px);
    align-items: start;
    margin: 0 0 clamp(42px, 7vw, 84px);
    padding: clamp(22px, 4vw, 42px);
    border: 1px solid rgba(77, 181, 165, .52);
    border-left-width: 6px;
    background:
      linear-gradient(135deg, rgba(77, 181, 165, .09), rgba(214, 168, 75, .045)),
      rgba(11, 15, 20, .88);
  }

  .international-notice h2,
  .international-notice p {
    margin-top: 0;
  }

  .international-notice p {
    max-width: 88ch;
    color: var(--muted, var(--ri-fog));
    line-height: 1.72;
  }

  .metric-band {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1px;
    padding: 1px;
    background: var(--line, var(--ri-border));
  }

  .metric-band article {
    min-width: 0;
    padding: clamp(20px, 3vw, 34px);
    background: var(--panel, rgba(16, 22, 30, .96));
  }

  .metric-band strong,
  .metric-band span {
    display: block;
  }

  .metric-band strong {
    color: var(--accent, var(--ri-signal));
    font: 850 clamp(2rem, 5vw, 4rem)/1 ui-monospace, SFMono-Regular, Consolas, monospace;
  }

  .metric-band span {
    margin-top: 10px;
    color: var(--muted, var(--ri-fog));
    line-height: 1.45;
  }

  .country-profile-grid,
  .learning-module-grid,
  .institution-list,
  .confidence-key,
  .cycle-learning-grid,
  .split-analysis {
    display: grid;
    gap: 16px;
  }

  .country-profile-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .country-profile-card,
  .learning-module-grid article,
  .institution-list article,
  .confidence-key article,
  .cycle-learning-grid article,
  .split-analysis > article {
    min-width: 0;
    border: 1px solid var(--line, var(--ri-border));
    padding: clamp(19px, 3vw, 28px);
    background: rgba(16, 22, 30, .92);
  }

  .country-profile-card {
    display: flex;
    flex-direction: column;
  }

  .country-profile-card h3,
  .learning-module-grid h3,
  .institution-list h3,
  .cycle-learning-grid h3,
  .split-analysis h2 {
    margin: 16px 0 10px;
  }

  .country-profile-card p,
  .learning-module-grid p,
  .institution-list p,
  .confidence-key p,
  .cycle-learning-grid p,
  .split-analysis p,
  .split-analysis li {
    color: var(--muted, var(--ri-fog));
    line-height: 1.66;
  }

  .country-profile-card a,
  .learning-module-grid a,
  .cycle-learning-grid a {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    margin-top: auto;
    color: var(--accent, var(--ri-signal));
    font-weight: 800;
    text-underline-offset: 4px;
  }

  .profile-region {
    margin-top: 12px;
    color: var(--verify, var(--ri-verify));
    font: 750 .72rem/1.45 ui-monospace, SFMono-Regular, Consolas, monospace;
    letter-spacing: .08em;
    text-transform: uppercase;
  }

  .method-grid article > span,
  .cycle-learning-grid article > span {
    color: var(--accent, var(--ri-signal));
    font: 850 1.15rem/1 ui-monospace, SFMono-Regular, Consolas, monospace;
  }

  .method-details {
    margin-top: 24px;
    border: 1px solid var(--line, var(--ri-border));
    background: rgba(11, 15, 20, .72);
  }

  .method-details summary {
    cursor: pointer;
    padding: 18px 22px;
    color: var(--paper, var(--ri-paper));
    font-weight: 850;
  }

  .method-details > :not(summary) {
    margin-left: 22px;
    margin-right: 22px;
  }

  .method-details > :last-child {
    margin-bottom: 24px;
  }

  .confidence-key {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .status-pill {
    display: inline-flex;
    align-items: center;
    min-height: 30px;
    width: fit-content;
    max-width: 100%;
    border: 1px solid currentColor;
    border-radius: 999px;
    padding: 5px 10px;
    color: var(--verify, var(--ri-verify));
    font: 780 .67rem/1.25 ui-monospace, SFMono-Regular, Consolas, monospace;
    letter-spacing: .055em;
    text-transform: uppercase;
  }

  .status-credibly-alleged,
  .status-disputed,
  .status-planned {
    color: var(--warning, var(--ri-signal));
  }

  .status-unknown {
    color: var(--muted, var(--ri-fog));
  }

  .status-available {
    color: var(--verify, var(--ri-verify));
  }

  .learning-module-grid,
  .cycle-learning-grid,
  .institution-list,
  .split-analysis {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .profile-source-note {
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 1.5fr);
  }

  .coverage-table-wrap {
    max-width: 100%;
    overflow: auto;
    border: 1px solid var(--line, var(--ri-border));
    background: rgba(11, 15, 20, .9);
  }

  .coverage-table-wrap:focus-visible {
    outline: 3px solid var(--verify, var(--ri-verify));
    outline-offset: 4px;
  }

  .coverage-table {
    width: 100%;
    min-width: 920px;
    border-collapse: collapse;
  }

  .coverage-table caption {
    padding: 18px;
    color: var(--muted, var(--ri-fog));
    text-align: left;
  }

  .coverage-table th,
  .coverage-table td {
    border-top: 1px solid var(--line, var(--ri-border));
    padding: 14px 16px;
    text-align: left;
    vertical-align: top;
    line-height: 1.5;
  }

  .coverage-table thead th {
    position: sticky;
    top: 0;
    z-index: 1;
    border-top: 0;
    background: rgba(16, 22, 30, .99);
    color: var(--paper, var(--ri-paper));
    font-size: .78rem;
    letter-spacing: .06em;
    text-transform: uppercase;
  }

  .coverage-table tbody th {
    color: var(--paper, var(--ri-paper));
  }

  .coverage-table tbody tr:hover {
    background: rgba(77, 181, 165, .055);
  }

  .coverage-table a {
    color: var(--accent, var(--ri-signal));
    font-weight: 800;
    text-underline-offset: 4px;
  }

  .international-home-feature {
    border-top: 1px solid rgba(77, 181, 165, .35);
    border-bottom: 1px solid rgba(77, 181, 165, .35);
  }

  @media (max-width: 1080px) {
    .country-profile-grid,
    .confidence-key {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .metric-band {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }
  }

  @media (max-width: 760px) {
    .international-notice,
    .profile-source-note,
    .country-profile-grid,
    .learning-module-grid,
    .institution-list,
    .confidence-key,
    .cycle-learning-grid,
    .split-analysis,
    .metric-band {
      grid-template-columns: 1fr;
    }

    .coverage-table-wrap {
      margin-inline: -12px;
    }
  }
}

/* Global Intelligence Atlas editorial review and correction workflow. */
.maturity-badge {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  padding: 0.28rem 0.55rem;
  border: 1px solid currentColor;
  border-radius: 999px;
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  line-height: 1.2;
  text-transform: uppercase;
}
.maturity-badge::before {
  content: "◈";
  margin-right: 0.35rem;
  font-size: 0.82em;
}
.maturity-badge[data-maturity="correction-pending"]::before { content: "△"; }
.maturity-badge[data-maturity="published"]::before { content: "✓"; }
.atlas-card .maturity-badge { margin: 0.35rem 0 0.75rem; }
.atlas-correction-form {
  display: grid;
  gap: 1rem;
  max-width: 70rem;
}
.atlas-correction-form .form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 1rem;
}
.atlas-correction-form label {
  display: grid;
  gap: 0.45rem;
  font-weight: 700;
}
.atlas-correction-form input,
.atlas-correction-form select,
.atlas-correction-form textarea {
  width: 100%;
  box-sizing: border-box;
  border: 1px solid var(--line, #33444a);
  border-radius: 0.35rem;
  background: #0a1215;
  color: inherit;
  font: inherit;
  padding: 0.75rem 0.8rem;
}
.atlas-correction-form textarea { resize: vertical; }
.atlas-correction-form input:focus-visible,
.atlas-correction-form select:focus-visible,
.atlas-correction-form textarea:focus-visible {
  outline: 3px solid currentColor;
  outline-offset: 2px;
}
.atlas-correction-form .checkbox-row {
  display: flex;
  align-items: flex-start;
  gap: 0.7rem;
  font-weight: 600;
}
.atlas-correction-form .checkbox-row input {
  width: auto;
  margin-top: 0.2rem;
}
.form-status {
  min-height: 1.5rem;
  padding: 0.75rem;
  border-left: 4px solid transparent;
}
.form-status[data-state="pending"] { border-left-color: currentColor; }
.form-status[data-state="success"] { border-left-color: #7bdcb5; }
.form-status[data-state="error"] { border-left-color: #ff9a8f; }
.review-concerns { margin-top: 0.75rem; }
@media (max-width: 760px) {
  .atlas-correction-form .form-grid { grid-template-columns: 1fr; }
}

/* Global Intelligence Atlas editorial-review and correction workflow. */
.maturity-badge {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  padding: .28rem .55rem;
  border: 1px solid var(--ri-border);
  background: rgba(15, 30, 34, .72);
  color: var(--ri-verify);
  font: 800 .66rem/1.3 ui-monospace, monospace;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.maturity-badge::before { content: "◇"; margin-right: .38rem; }
.maturity-badge[data-maturity="correction-pending"] { color: var(--ri-signal); }
.atlas-correction-form { display: grid; gap: 1rem; max-width: 880px; }
.atlas-correction-form .form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.atlas-correction-form label:not(.checkbox-row) { display: grid; gap: .42rem; color: var(--ri-paper); font-weight: 750; }
.atlas-correction-form input,
.atlas-correction-form select,
.atlas-correction-form textarea {
  width: 100%;
  box-sizing: border-box;
  padding: .78rem .85rem;
  border: 1px solid var(--ri-border);
  background: var(--ri-ink);
  color: var(--ri-paper);
  font: inherit;
}
.atlas-correction-form textarea { resize: vertical; }
.atlas-correction-form input:focus,
.atlas-correction-form select:focus,
.atlas-correction-form textarea:focus { outline: 3px solid var(--ri-verify); outline-offset: 2px; }
.atlas-correction-form .checkbox-row { display: flex; gap: .65rem; align-items: flex-start; }
.atlas-correction-form .checkbox-row input { width: auto; margin-top: .28rem; }
.form-status { min-height: 1.7rem; padding: .72rem 0; font-weight: 750; }
.form-status[data-state="success"] { color: var(--ri-verify); }
.form-status[data-state="error"] { color: var(--ri-signal); }
.form-status[data-state="working"] { color: var(--ri-fog); }
.review-concerns { margin-bottom: 1rem; }
@media (max-width: 720px) {
  .atlas-correction-form .form-grid { grid-template-columns: 1fr; }
}

/* Optional first-party continuity account shared by the front desk and game. */
.account-overlay {
  position: fixed;
  inset: 0;
  z-index: 80;
  display: grid;
  place-items: center;
  padding: max(1rem, env(safe-area-inset-top)) max(1rem, env(safe-area-inset-right)) max(1rem, env(safe-area-inset-bottom)) max(1rem, env(safe-area-inset-left));
  background: rgba(2, 5, 8, .88);
  backdrop-filter: blur(12px);
}
.account-overlay[hidden] { display: none !important; }
.account-overlay-panel {
  width: min(44rem, 100%);
  max-height: calc(100dvh - 2rem);
  overflow: auto;
  overscroll-behavior: contain;
  padding: clamp(1rem, 3vw, 1.6rem);
  border: 1px solid rgba(207, 227, 218, .28);
  border-radius: .65rem;
  background: #0b1419;
  box-shadow: 0 1.5rem 5rem rgba(0, 0, 0, .55);
  color: #edf4f1;
}
.account-overlay-heading {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1rem;
  padding-bottom: .9rem;
  border-bottom: 1px solid rgba(207, 227, 218, .18);
}
.account-overlay-heading h2 { margin: .25rem 0 0; font-size: clamp(1.55rem, 5vw, 2.35rem); line-height: 1.05; }
.account-overlay-close {
  flex: 0 0 2.75rem;
  width: 2.75rem;
  height: 2.75rem;
  border: 1px solid rgba(255,255,255,.24);
  border-radius: .3rem;
  background: rgba(255,255,255,.06);
  color: inherit;
  font: inherit;
  font-size: 1.4rem;
  cursor: pointer;
}
.account-overlay-intro { margin: 1rem 0; max-width: 68ch; line-height: 1.6; color: #bdcbc6; }
.account-tabs { display: flex; flex-wrap: wrap; gap: .55rem; margin: .7rem 0; }
.account-form { display: grid; gap: .8rem; padding: .8rem 0; }
.account-form h3 { margin: 0; }
.account-form label { display: grid; gap: .35rem; color: #d9e6e1; font-weight: 700; }
.account-form input {
  width: 100%;
  min-height: 2.75rem;
  padding: .65rem .75rem;
  border: 1px solid rgba(207, 227, 218, .34);
  border-radius: .25rem;
  background: #050b0e;
  color: #fff;
  font: inherit;
}
.account-form input:focus-visible,
.account-overlay button:focus-visible { outline: 3px solid #ffd15c; outline-offset: 3px; }
.account-authenticated-copy { display: grid; gap: .7rem; margin: 1rem 0; }
.account-authenticated-copy strong { color: #ffd15c; }
.account-authenticated-copy span { color: #bdcbc6; line-height: 1.55; }
.account-status { min-height: 1.5em; margin: .8rem 0; color: #a9d9c5; }
.account-status.error { color: #ffb3a7; }
.account-overlay-footnote { margin: .9rem 0 0; padding-top: .8rem; border-top: 1px solid rgba(207, 227, 218, .15); color: #91a49d; font-size: .78rem; line-height: 1.5; }
[data-account-button][data-account-signed-in="true"] { border-color: rgba(150, 232, 197, .7); }
@media (forced-colors: active) {
  .account-overlay-panel, .account-overlay-close, .account-form input { border: 1px solid CanvasText; }
}

/* Adult-confirmed Protocol 5 front desk: immersive lobby with compact semantic controls. */
.front-desk-page {
  --front-desk-header-height: 64px;
  min-height: 100%;
  overflow-x: hidden;
  background: #050d0b;
}
.front-desk-header {
  position: sticky;
  top: 0;
  z-index: 60;
  min-height: var(--front-desk-header-height);
  border-bottom: 1px solid rgba(154, 214, 188, .28);
  background: rgba(3, 12, 10, .97);
  backdrop-filter: blur(14px);
}
.front-desk-location-label {
  justify-self: start;
  align-self: end;
  margin: 0 0 .35rem -1.25rem;
  color: #efb74d;
  font: 800 .55rem/1 ui-monospace, monospace;
  letter-spacing: .06em;
}
.front-desk-header-actions { display: flex; flex-wrap: nowrap; justify-content: flex-end; gap: .55rem; }
.front-desk-main {
  width: 100%;
  min-height: calc(100dvh - var(--front-desk-header-height));
  margin: 0;
  padding: 0;
  background: #07110e;
}
.front-desk-stage {
  position: relative;
  min-height: calc(100dvh - var(--front-desk-header-height));
  overflow: hidden;
  isolation: isolate;
  background: #08120f;
}
.front-desk-scene {
  position: absolute;
  inset: 0;
  overflow: hidden;
  background:
    radial-gradient(circle at 51% 33%, rgba(167, 232, 202, .24), transparent 10rem),
    linear-gradient(#070c0a 0 43%, #34463f 43% 100%);
  pointer-events: none;
}
.front-desk-scene::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 20;
  background:
    linear-gradient(90deg, rgba(0,0,0,.16), transparent 20%, transparent 78%, rgba(0,0,0,.24)),
    linear-gradient(0deg, rgba(0,0,0,.1), transparent 35%);
  pointer-events: none;
}
.front-desk-ceiling {
  position: absolute;
  z-index: 1;
  inset: 0 0 43%;
  clip-path: polygon(0 0, 100% 0, 71% 100%, 29% 100%);
  background:
    radial-gradient(ellipse at 50% 0, rgba(255, 220, 151, .5), transparent 43%),
    linear-gradient(180deg, #251b0c, #0a0c09 82%);
}
.front-desk-wall {
  position: absolute;
  z-index: 2;
  top: 0;
  bottom: 31%;
  width: 50%;
  background: linear-gradient(180deg, #799188, #435c53 66%, #0c2720 66%);
}
.front-desk-wall-left { left: 0; clip-path: polygon(0 0, 58% 43%, 74% 100%, 0 100%); }
.front-desk-wall-right { right: 0; clip-path: polygon(100% 0, 42% 43%, 26% 100%, 100% 100%); }
.front-desk-far-wall {
  position: absolute;
  z-index: 2;
  top: 39%;
  left: 28%;
  width: 44%;
  height: 32%;
  background: linear-gradient(180deg, #30453e 0 56%, #082019 56%);
  box-shadow: inset 0 14px 22px rgba(0,0,0,.25);
}
.front-desk-floor {
  position: absolute;
  z-index: 3;
  left: -26%;
  right: -26%;
  bottom: -63%;
  height: 135%;
  transform: perspective(620px) rotateX(61deg);
  transform-origin: 50% 100%;
  background:
    linear-gradient(rgba(255,255,255,.05), rgba(0,0,0,.08)),
    conic-gradient(from 90deg, #d8dbd1 0 25%, #3b554a 0 50%, #d8dbd1 0 75%, #3b554a 0) 0 0 / 126px 126px;
  filter: saturate(.72) brightness(.88);
}
.front-desk-ceiling-light {
  position: absolute;
  z-index: 4;
  left: 50%;
  height: 4px;
  transform: translateX(-50%);
  background: #efffe8;
  box-shadow: 0 0 22px 7px rgba(221, 255, 230, .32);
  opacity: .9;
}
.front-desk-light-1 { top: 14%; width: 10%; }
.front-desk-light-2 { top: 24%; width: 8%; }
.front-desk-light-3 { top: 31%; width: 6%; }
.front-desk-light-4 { top: 36%; width: 4.5%; }
.front-desk-light-5 { top: 40%; width: 3%; }
.front-desk-door {
  position: absolute;
  z-index: 6;
  top: 40%;
  left: 53.5%;
  width: 5.5%;
  height: 23%;
  border: 5px solid #10231e;
  background: linear-gradient(90deg, #132822, #07100d);
  box-shadow: 0 10px 26px rgba(0,0,0,.5);
}
.front-desk-visiting-sign {
  position: absolute;
  z-index: 8;
  top: 32%;
  left: 56%;
  padding: .35rem .65rem;
  border: 2px solid #1a2823;
  background: #e8ece7;
  color: #17211d;
  font: 800 clamp(.45rem, .85vw, .76rem)/1 ui-monospace, monospace;
  box-shadow: 0 5px 12px rgba(0,0,0,.32);
}
.front-desk-bench {
  position: absolute;
  z-index: 7;
  left: 27%;
  top: 54%;
  width: 16%;
  height: 5.5%;
  border: 5px solid #071713;
  background: #27453b;
  transform: skewY(-4deg);
  box-shadow: 0 14px 0 -7px #0b1e18;
}
.front-desk-bench::before,
.front-desk-bench::after {
  content: "";
  position: absolute;
  top: 100%;
  width: 5px;
  height: 44px;
  background: #081712;
}
.front-desk-bench::before { left: 14%; }
.front-desk-bench::after { right: 14%; }
.front-desk-receptionist {
  position: absolute;
  z-index: 10;
  top: 36%;
  left: 50%;
  width: 62px;
  height: 92px;
  transform: translateX(-50%);
}
.front-desk-receptionist-head {
  position: absolute;
  left: 12px;
  top: 0;
  width: 38px;
  height: 38px;
  border-radius: 48% 48% 42% 42%;
  background: linear-gradient(#3e250f 0 27%, #8a5733 28% 100%);
  box-shadow: inset 0 -5px 0 rgba(0,0,0,.1);
}
.front-desk-receptionist-body {
  position: absolute;
  left: 4px;
  bottom: 0;
  width: 54px;
  height: 57px;
  border-radius: 18px 18px 4px 4px;
  background: linear-gradient(90deg, #2b6a4e, #3d9368 50%, #225f45);
  box-shadow: 0 8px 16px rgba(0,0,0,.3);
}
.front-desk-receptionist-body i {
  position: absolute;
  left: 15px;
  bottom: 15px;
  padding: 2px 4px;
  border: 1px solid #dce8df;
  background: #f5f6f0;
  color: #173229;
  font: 800 5px/1 ui-monospace, monospace;
}
.front-desk-desk {
  position: absolute;
  z-index: 9;
  top: 49%;
  left: 50%;
  width: min(38vw, 510px);
  height: min(20vh, 150px);
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1d4136, #102d25);
  box-shadow: 0 18px 28px rgba(0,0,0,.34);
}
.front-desk-desk-top {
  position: absolute;
  left: -4%;
  top: -13px;
  width: 108%;
  height: 17px;
  background: #a7b7ae;
  box-shadow: 0 5px 8px rgba(0,0,0,.26);
}
.front-desk-desk strong {
  position: absolute;
  left: 50%;
  top: 32%;
  transform: translateX(-50%);
  padding: .55rem 1.15rem;
  border: 2px solid #c4d9d0;
  color: #f5fffb;
  font: 850 clamp(.8rem, 1.8vw, 1.35rem)/1 ui-monospace, monospace;
  letter-spacing: .04em;
  white-space: nowrap;
}
.front-desk-monitor {
  position: absolute;
  z-index: 11;
  top: 42.5%;
  left: calc(50% - min(16vw, 205px));
  width: 90px;
  height: 58px;
  border: 7px solid #07130f;
  background: #0e2b23;
  box-shadow: 0 8px 14px rgba(0,0,0,.4);
}
.front-desk-monitor::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 100%;
  width: 8px;
  height: 25px;
  background: #111c18;
  transform: translateX(-50%);
}
.front-desk-monitor span {
  display: grid;
  place-items: center;
  height: 100%;
  color: #8ff0c2;
  font: 800 .7rem/1.05 ui-monospace, monospace;
  text-align: center;
  text-shadow: 0 0 8px rgba(104, 255, 188, .55);
}
.front-desk-scene-directory,
.front-desk-scene-admissions {
  position: absolute;
  z-index: 24;
  min-height: 44px;
  border: 1px solid rgba(143, 232, 194, .7);
  border-radius: .3rem;
  background: rgba(4, 22, 17, .9);
  color: #9ef3ca;
  font: 800 .62rem/1.1 ui-monospace, monospace;
  text-transform: uppercase;
  cursor: pointer;
  box-shadow: 0 7px 18px rgba(0,0,0,.28);
}
.front-desk-scene-directory {
  top: 42%;
  left: calc(50% - min(16vw, 205px));
  width: 90px;
  height: 58px;
  padding: .25rem;
  opacity: .02;
}
.front-desk-scene-directory:focus-visible { opacity: 1; outline: 3px solid #ffd15c; outline-offset: 4px; }
.front-desk-scene-admissions {
  top: 31.2%;
  left: 55.6%;
  min-height: 34px;
  padding: .58rem .7rem;
  opacity: .01;
  text-decoration: none;
}
.front-desk-scene-admissions:focus-visible { opacity: 1; outline: 3px solid #ffd15c; outline-offset: 4px; }
.front-desk-reception-panel {
  position: absolute;
  z-index: 30;
  left: max(16px, env(safe-area-inset-left));
  bottom: max(14px, env(safe-area-inset-bottom));
  width: min(430px, calc(100% - 32px));
  max-height: min(54dvh, 520px);
  overflow: auto;
  padding: 1rem;
  border: 1px solid rgba(169, 224, 201, .34);
  border-radius: .35rem;
  background: linear-gradient(145deg, rgba(7, 21, 18, .96), rgba(8, 19, 18, .91));
  color: #eef7f3;
  box-shadow: 0 20px 50px rgba(0,0,0,.42);
  backdrop-filter: blur(13px);
}
.front-desk-reception-heading-row {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: .75rem;
}
.front-desk-reception-panel h2 {
  margin: .18rem 0 0;
  font-size: clamp(1.25rem, 3vw, 1.8rem);
  line-height: 1.05;
}
.front-desk-reception-panel > p {
  margin: .55rem 0 .75rem;
  color: #bed0c8;
  font-size: .82rem;
  line-height: 1.45;
}
.front-desk-directory-button { flex: 0 0 auto; min-height: 2.5rem; padding: .6rem .85rem; }
.front-desk-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: .55rem;
  align-items: end;
}
.front-desk-name-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .45rem;
}
.front-desk-name-grid label {
  display: grid;
  gap: .22rem;
  min-width: 0;
  color: #dbe8e2;
  font-size: .63rem;
  font-weight: 780;
}
.front-desk-name-grid input {
  width: 100%;
  min-width: 0;
  min-height: 2.55rem;
  padding: .52rem .55rem;
  border: 1px solid rgba(185, 224, 207, .4);
  border-radius: .25rem;
  background: #03100c;
  color: #fff;
  font: inherit;
  font-size: .84rem;
}
.front-desk-name-grid input:focus-visible,
.front-desk-reception-panel button:focus-visible,
.front-desk-account-pill:focus-visible,
.front-desk-directory button:focus-visible { outline: 3px solid #ffd15c; outline-offset: 3px; }
.front-desk-form > .button { min-height: 2.55rem; padding: .55rem .72rem; white-space: nowrap; }
.front-desk-result {
  min-height: 1.4rem;
  margin-top: .65rem;
  color: #a8bcb4;
  font-size: .73rem;
  line-height: 1.4;
}
.front-desk-result.has-result {
  display: grid;
  gap: .35rem;
  padding-top: .65rem;
  border-top: 1px solid rgba(183, 222, 205, .24);
  color: #d7e5df;
}
.front-desk-result.has-error { color: #ffd1c8; }
.front-desk-result h3 { margin: 0; color: #fff; font-size: 1rem; }
.front-desk-result p { margin: 0; }
.front-desk-result .button { justify-self: start; margin-top: .2rem; }
.front-desk-form-note { margin: 0; color: #8fa79d; font: 700 .59rem/1.45 ui-monospace, monospace; }
.front-desk-result-heading,
.front-desk-character-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: .5rem;
}
.front-desk-ai-label,
.front-desk-count {
  display: inline-flex;
  align-items: center;
  width: fit-content;
  min-height: 1.45rem;
  padding: .2rem .42rem;
  border: 1px solid rgba(143, 220, 187, .38);
  border-radius: 99rem;
  color: #a9e8ca;
  background: rgba(18, 58, 45, .38);
  font-size: .6rem;
  font-weight: 850;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.front-desk-character-role { margin: 0; color: #efb74d; font-weight: 800; }
.front-desk-character-location { margin: 0; color: #8fa79d; font: 700 .62rem/1.35 ui-monospace, monospace; }
.front-desk-result-summary { color: #c1d1cb; }
.front-desk-directory {
  position: absolute;
  z-index: 45;
  top: 10px;
  right: max(10px, env(safe-area-inset-right));
  bottom: 10px;
  width: min(390px, calc(100% - 20px));
  overflow: auto;
  padding: 1rem;
  border: 1px solid rgba(137, 232, 192, .48);
  border-radius: .35rem;
  background: rgba(3, 16, 13, .97);
  color: #eef7f3;
  box-shadow: -18px 0 45px rgba(0,0,0,.42);
  backdrop-filter: blur(16px);
}
.front-desk-directory-heading {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: .65rem;
  align-items: start;
}
.front-desk-directory h2 { margin: .2rem 0 .45rem; font-size: 1.35rem; }
.front-desk-directory-heading p { margin: 0; color: #c2d2cb; font-size: .8rem; line-height: 1.45; }
.front-desk-directory-close {
  display: grid;
  place-items: center;
  width: 2.7rem;
  min-width: 2.7rem;
  height: 2.7rem;
  border: 1px solid #63d4a4;
  border-radius: .3rem;
  background: #061b15;
  color: #fff;
  font: 700 1.45rem/1 system-ui, sans-serif;
  cursor: pointer;
}
.front-desk-directory > .front-desk-count { margin: .85rem 0 .25rem; }
.front-desk-directory-grid { display: grid; gap: .55rem; margin-top: .65rem; }
.front-desk-character-card {
  display: grid;
  gap: .35rem;
  padding: .75rem;
  border: 1px solid rgba(184, 226, 208, .18);
  border-radius: .3rem;
  background: rgba(255,255,255,.025);
}
.front-desk-character-card h3 { margin: 0; font-size: 1rem; }
.front-desk-character-card p { margin: 0; color: #b8c9c1; font-size: .73rem; line-height: 1.4; }
.front-desk-character-card .front-desk-character-role { color: #efb74d; }
.front-desk-character-card .front-desk-character-location::before { content: "Starting location · "; }
.front-desk-character-card .button { justify-self: start; margin-top: .15rem; }
.front-desk-account-pill {
  position: absolute;
  z-index: 35;
  right: max(12px, env(safe-area-inset-right));
  bottom: max(14px, env(safe-area-inset-bottom));
  display: grid;
  justify-items: start;
  gap: .08rem;
  max-width: min(360px, calc(100% - 24px));
  min-height: 46px;
  padding: .55rem .9rem;
  border: 1px solid rgba(115, 236, 187, .62);
  border-radius: 999px;
  background: #73e8b9;
  color: #06130e;
  box-shadow: 0 10px 26px rgba(0,0,0,.28);
  cursor: pointer;
}
.front-desk-account-pill span { font-size: .68rem; font-weight: 850; }
.front-desk-account-pill strong { max-width: 42ch; overflow: hidden; font-size: .58rem; text-overflow: ellipsis; white-space: nowrap; }
.front-desk-footer { position: relative; z-index: 2; background: #06100d; }

/* Keep the lobby visible behind the right-side adult agreement. */
body.front-desk-page.age-pending > .front-desk-header,
body.front-desk-page.age-pending > .front-desk-main,
body.front-desk-page.age-pending > .front-desk-footer,
body.front-desk-page.age-pending > .skip-link { visibility: visible; }
body.front-desk-page.age-pending [data-front-desk-underlay] { pointer-events: none; user-select: none; }
.front-desk-page .front-desk-adult-gate {
  place-items: stretch end;
  padding: calc(var(--front-desk-header-height) + 12px) 14px 14px;
  background:
    linear-gradient(90deg, rgba(2,8,7,.06) 0 42%, rgba(2,8,7,.28) 63%, rgba(2,8,7,.62)),
    transparent;
}
.front-desk-page .front-desk-agreement-card {
  width: min(590px, 100%);
  height: calc(100dvh - var(--front-desk-header-height) - 26px);
  max-height: none;
  padding: 0;
  border-color: rgba(239, 181, 76, .8);
  border-radius: .35rem;
  background: rgba(4, 16, 14, .97);
  box-shadow: 0 20px 60px rgba(0,0,0,.48);
  overflow: hidden;
}
.front-desk-page .front-desk-agreement-card::before { display: none; }
.front-desk-agreement-content {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto auto auto;
  height: 100%;
  min-height: 0;
  padding: 1rem;
}
.front-desk-agreement-header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: .75rem;
  align-items: start;
  padding-bottom: .7rem;
}
.front-desk-page .front-desk-agreement-header h1 {
  max-width: 22ch;
  margin: .2rem 0 .3rem;
  font-size: clamp(1.45rem, 3vw, 2rem);
  line-height: 1.03;
  letter-spacing: -.025em;
  text-transform: none;
}
.front-desk-page .front-desk-agreement-header p { margin: 0; font-size: .82rem; line-height: 1.45; }
.front-desk-leave-link { color: #f2f5f3; font-size: .72rem; line-height: 1.25; text-align: right; }
.front-desk-agreement-scroll {
  min-height: 0;
  overflow: auto;
  padding: .7rem .8rem .7rem .2rem;
  border-block: 1px solid rgba(192, 220, 207, .2);
  scrollbar-color: #8ca69c #17251f;
  scrollbar-width: thin;
}
.front-desk-agreement-scroll:focus-visible { outline: 3px solid #ffd15c; outline-offset: -3px; }
.front-desk-agreement-list {
  display: grid;
  gap: .65rem;
  margin: 0;
  padding-left: 1.35rem;
  color: #c6d5cf;
  font-size: .77rem;
  line-height: 1.48;
}
.front-desk-agreement-list li::marker { color: #efb74d; }
.front-desk-page .front-desk-adult-confirmation {
  margin: .75rem 0 .45rem;
  padding: .65rem;
  border-color: rgba(239, 181, 76, .42);
  background: rgba(239, 181, 76, .06);
  font-size: .75rem;
  line-height: 1.4;
}
.front-desk-page .front-desk-adult-confirmation input { width: 1.15rem; height: 1.15rem; }
.front-desk-page .gate-privacy { margin: 0 0 .55rem; font-size: .65rem !important; line-height: 1.35; }
.front-desk-page .front-desk-agreement-actions {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: .55rem;
}
.front-desk-page .front-desk-agreement-actions .tertiary { grid-column: auto; justify-self: stretch; }
.front-desk-page .front-desk-agreement-actions .button { min-height: 44px; padding: .65rem .8rem; font-size: .72rem; }

@media (max-width: 900px) {
  .front-desk-desk { width: min(50vw, 470px); }
  .front-desk-monitor { left: calc(50% - min(21vw, 195px)); }
  .front-desk-scene-directory { left: calc(50% - min(21vw, 195px)); }
  .front-desk-account-pill { top: 10px; bottom: auto; }
}
@media (max-width: 700px) {
  .front-desk-page { --front-desk-header-height: 96px; }
  .front-desk-location-label { display: none; }
  .front-desk-stage { min-height: calc(100dvh - var(--front-desk-header-height)); }
  .front-desk-reception-panel {
    left: max(6px, env(safe-area-inset-left));
    right: max(6px, env(safe-area-inset-right));
    bottom: max(6px, env(safe-area-inset-bottom));
    width: auto;
    max-height: min(48dvh, 410px);
    padding: .8rem;
  }
  .front-desk-form { grid-template-columns: 1fr; }
  .front-desk-name-grid { gap: .35rem; }
  .front-desk-form > .button { width: 100%; }
  .front-desk-account-pill { top: 8px; right: 8px; bottom: auto; max-width: 48vw; padding: .45rem .7rem; }
  .front-desk-directory { inset: 6px; width: auto; }
  .front-desk-desk { top: 47%; width: min(66vw, 410px); height: 118px; }
  .front-desk-monitor { top: 41%; left: 24%; transform: scale(.82); }
  .front-desk-scene-directory { top: 41%; left: 24%; transform: scale(.82); transform-origin: top left; }
  .front-desk-visiting-sign { left: 60%; }
  .front-desk-scene-admissions { left: 59.6%; }
  .front-desk-bench { left: 7%; width: 22%; }
  .front-desk-page .front-desk-adult-gate { padding: calc(var(--front-desk-header-height) + 6px) 6px 6px; }
  .front-desk-page .front-desk-agreement-card { width: 100%; height: calc(100dvh - var(--front-desk-header-height) - 12px); }
  .front-desk-agreement-content { padding: .8rem; }
}
@media (max-width: 520px) {
  .front-desk-name-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .front-desk-name-grid label { font-size: .58rem; }
  .front-desk-name-grid input { min-height: 2.35rem; padding: .45rem; font-size: .75rem; }
  .front-desk-reception-panel > p { font-size: .72rem; }
  .front-desk-reception-heading-row { align-items: center; }
  .front-desk-directory-button { min-height: 2.25rem; padding: .48rem .62rem; }
  .front-desk-account-pill strong { display: none; }
  .front-desk-page .front-desk-agreement-actions { grid-template-columns: 1fr; }
  .front-desk-page .front-desk-agreement-actions .button { width: 100%; }
  .front-desk-agreement-header { grid-template-columns: 1fr; }
  .front-desk-leave-link { position: absolute; top: .85rem; right: .85rem; max-width: 8ch; }
  .front-desk-page .front-desk-agreement-header h1 { padding-right: 4rem; font-size: 1.35rem; }
  .front-desk-agreement-list { font-size: .71rem; }
  .front-desk-page .front-desk-adult-confirmation { font-size: .7rem; }
}
@media (max-height: 520px) and (min-width: 701px) {
  .front-desk-page { --front-desk-header-height: 52px; }
  .front-desk-reception-panel { max-height: calc(100dvh - var(--front-desk-header-height) - 16px); }
  .front-desk-page .front-desk-adult-gate { padding-top: calc(var(--front-desk-header-height) + 6px); }
  .front-desk-page .front-desk-agreement-card { height: calc(100dvh - var(--front-desk-header-height) - 12px); }
  .front-desk-agreement-list { gap: .45rem; font-size: .68rem; }
}
@media (prefers-reduced-motion: reduce) {
  .front-desk-page * { scroll-behavior: auto !important; }
}
@media (forced-colors: active) {
  .front-desk-scene { background: Canvas; }
  .front-desk-ceiling,
  .front-desk-wall,
  .front-desk-far-wall,
  .front-desk-floor,
  .front-desk-receptionist,
  .front-desk-desk,
  .front-desk-monitor,
  .front-desk-bench,
  .front-desk-door,
  .front-desk-visiting-sign { display: none; }
  .front-desk-reception-panel,
  .front-desk-directory,
  .front-desk-agreement-card,
  .front-desk-account-pill { border: 2px solid CanvasText; background: Canvas; color: CanvasText; }
}

/* Shared fictional three-part player identity */
.entry-identity-card,
.account-public-identity {
  border: 1px solid rgba(143, 220, 187, .28);
  background: rgba(12, 31, 26, .72);
  padding: 1rem;
}
.entry-identity-card { margin: 1rem 0; }
.entry-identity-heading,
.account-public-identity-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
}
.entry-identity-heading h2,
.account-public-identity-heading h3 { margin: .2rem 0 0; }
.entry-identity-heading > strong {
  display: inline-flex;
  align-items: center;
  min-height: 2.75rem;
  padding: .45rem .75rem;
  border: 1px solid rgba(255, 209, 92, .42);
  background: rgba(255, 209, 92, .08);
  color: #f7dfa0;
  text-align: right;
}
.entry-identity-card > p,
.account-public-identity > p { color: #b9c8c3; line-height: 1.55; }
.player-name-form { margin-top: .9rem; }
.player-name-form[hidden] { display: none !important; }
.player-name-form > p { color: #aebfba; line-height: 1.5; }
.player-name-fields {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .7rem;
}
.player-name-fields label { display: grid; gap: .35rem; color: #e7eee9; font-weight: 700; }
.player-name-fields input {
  width: 100%;
  min-height: 44px;
  border: 1px solid rgba(197, 221, 210, .34);
  background: #09120f;
  color: #f3f6f4;
  padding: .65rem .7rem;
  font: inherit;
}
.player-name-fields input:focus-visible { outline: 3px solid #ffd15c; outline-offset: 2px; }
.player-name-actions { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: .8rem; }
.player-name-status { min-height: 1.4em; margin: .65rem 0 0; color: #9fe0c3; }
@media (max-width: 700px) {
  .entry-identity-heading,
  .account-public-identity-heading { align-items: stretch; flex-direction: column; }
  .entry-identity-heading > strong { text-align: left; }
  .player-name-fields { grid-template-columns: 1fr; }
  .player-name-actions .button { flex: 1 1 100%; }
}
@media (forced-colors: active) {
  .entry-identity-card,
  .account-public-identity,
  .entry-identity-heading > strong,
  .player-name-fields input { border: 1px solid CanvasText; }
}

/* 0.18.55 compact public discovery, assigned identity, and game-entry density refinement. */
  .public-header {
    min-height: 60px;
    grid-template-columns: minmax(165px, 210px) minmax(0, 1fr) auto;
    gap: clamp(10px, 1.6vw, 20px);
    padding: 7px clamp(14px, 3vw, 40px);
  }
  .public-brand img { max-width: 205px; }
  .public-nav a,
  .public-nav summary {
    min-height: 44px;
    padding-inline: 8px;
    font-size: .64rem;
  }
  .header-enter { min-height: 44px; padding-inline: 17px; }
  .public-main { padding: 18px 0 64px; }
  .public-hero { padding: clamp(20px, 3vw, 38px) 0 clamp(24px, 3vw, 36px); }
  .public-home-hero {
    grid-template-columns: minmax(0, 1.08fr) minmax(300px, .92fr);
    gap: clamp(24px, 3.4vw, 46px);
    min-height: 0;
    align-items: start;
  }
  .public-home-title {
    gap: 7px;
    max-width: 18ch;
    margin: 8px 0 12px;
  }
  .public-home-title-primary {
    font-size: clamp(2.45rem, 4.25vw, 3.85rem);
    line-height: .91;
  }
  .public-home-title-secondary {
    max-width: 28ch;
    font-size: clamp(1.2rem, 1.9vw, 1.72rem);
    line-height: 1.08;
    letter-spacing: -.025em;
  }
  .public-home-hero .lede,
  .public-hero .lede {
    margin-block: 8px;
    font-size: clamp(.94rem, 1.2vw, 1.06rem);
    line-height: 1.48;
  }
  .public-hero-actions { margin-top: 16px; }
  .public-hero-actions .button-large { min-height: 46px; padding-block: 10px; }
  .public-hero-facts { margin-top: 16px; }
  .public-hero-facts li {
    min-height: 54px;
    padding: 8px 11px;
  }
  .public-hero-facts strong { font-size: .7rem; }
  .public-hero-facts span { font-size: .79rem; }
  .public-hero-brief {
    padding: clamp(16px, 2.2vw, 24px);
    box-shadow: 10px 10px 0 rgba(214, 168, 75, .07);
  }
  .public-hero-brief h2 {
    margin: 6px 0 8px;
    font-size: clamp(1.55rem, 2.35vw, 2.2rem);
    line-height: 1;
  }
  .public-hero-brief-summary { line-height: 1.48; font-size: .92rem; }
  .public-ward-route { margin: 20px 0 22px; }
  .public-hero-brief-facts { margin: 14px 0; }
  .public-hero-brief-facts div { padding: 8px 10px; }
  .public-hero-creator { margin-top: 9px; padding-top: 9px; }
  .answer-panel {
    grid-template-columns: minmax(220px, .72fr) minmax(0, 1.28fr);
    gap: clamp(22px, 3vw, 38px);
    margin: 28px 0;
    padding: clamp(20px, 2.6vw, 30px);
  }
  .answer-panel h2 {
    max-width: 13ch;
    margin-top: 4px;
    font-size: clamp(1.7rem, 2.7vw, 2.55rem);
    line-height: 1.01;
  }
  .answer-panel p { margin-bottom: 10px; font-size: .94rem; line-height: 1.52; }
  .answer-panel .answer-panel-lede { margin-bottom: 14px; font-size: clamp(.94rem, 1.1vw, 1.03rem); }
  .answer-panel-facts div { padding: 9px 10px; }
  .answer-panel-facts dd { margin-top: 4px; font-size: .82rem; }
  .public-section { margin-top: clamp(42px, 5vw, 64px); }
  .public-section > .section-heading { margin-bottom: 18px; }
  .public-section > .section-heading h2 { font-size: clamp(1.75rem, 3vw, 2.8rem); line-height: 1; }
  .public-mode-grid,
  .feature-grid,
  .steps-grid,
  .roles-public-grid,
  .concept-grid,
  .world-grid,
  .faq-grid { gap: 12px; }
  .public-mode-grid a,
  .feature-grid article,
  .steps-grid article,
  .roles-public-grid article,
  .concept-grid article,
  .world-grid article,
  .faq-grid article { padding: 17px; }

  .play-header {
    grid-template-columns: minmax(155px, 205px) minmax(0, 1fr) auto;
    gap: 14px;
    min-height: 56px;
    padding: 6px clamp(12px, 2.2vw, 26px);
  }
  .play-header .public-brand { min-height: 44px; display: inline-flex; align-items: center; }
  .play-header .public-brand img { max-width: 200px; }
  .play-header-status { font-size: .62rem; }
  .front-desk-header-actions { gap: .35rem; }
  .front-desk-header-actions .button { min-height: 44px; padding: 8px 10px; font-size: .7rem; }
  .play-main {
    width: min(1320px, calc(100% - 24px));
    min-height: calc(100vh - 102px);
    padding: 12px 0 24px;
  }
  .world-gateway {
    margin-top: 0;
    padding: 10px 0 8px;
  }
  .entry-wizard { gap: .62rem; }
  .gateway-heading {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: start;
    gap: 18px;
  }
  .gateway-heading h1 {
    max-width: 24ch;
    margin: 7px 0 8px;
    font-size: clamp(1.85rem, 2.8vw, 2.55rem);
    line-height: .98;
    letter-spacing: -.04em;
  }
  .gateway-heading p {
    max-width: 84ch;
    margin: 0;
    font-size: .91rem;
    line-height: 1.44;
  }
  .world-status { min-height: 38px; padding: 8px 10px; font-size: .68rem; }
  .entry-identity-card,
  .account-public-identity {
    padding: .7rem .8rem;
  }
  .entry-identity-card { margin: .4rem 0; }
  .entry-identity-heading { align-items: center; }
  .entry-identity-heading h2 { margin: .08rem 0 0; font-size: 1.08rem; }
  .entry-identity-heading > strong {
    min-height: 2.15rem;
    padding: .3rem .55rem;
    font-size: .82rem;
  }
  .entry-identity-card > p { margin: .35rem 0 0; font-size: .78rem; line-height: 1.38; }
  .entry-identity-card[data-identity-state="assigned"] {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: .65rem;
    min-height: 52px;
    padding: .45rem .65rem;
  }
  .entry-identity-card[data-identity-state="assigned"] .entry-identity-heading { display: contents; }
  .entry-identity-card[data-identity-state="assigned"] .entry-identity-heading > div { min-width: 0; }
  .entry-identity-card[data-identity-state="assigned"] .entry-identity-heading > strong {
    min-height: 36px;
    max-width: min(42vw, 34rem);
    overflow-wrap: anywhere;
    text-align: right;
  }
  .entry-identity-card[data-identity-state="assigned"] > p,
  .entry-identity-card[data-identity-state="assigned"] .player-name-form { display: none !important; }
  .player-name-form { margin-top: .55rem; }
  .player-name-form > p { margin: .35rem 0; font-size: .82rem; }
  .player-name-fields { gap: .5rem; }
  .player-name-fields label { gap: .22rem; font-size: .78rem; }
  .player-name-fields input { min-height: 44px; padding: .5rem .58rem; }
  .player-name-actions { gap: .45rem; margin-top: .55rem; }
  .player-name-actions .button { min-height: 44px; padding: 9px 13px; font-size: .75rem; }
  .player-name-status { margin-top: .4rem; }
  .world-network-banner { margin-top: .4rem; }
  .world-network-banner > div {
    gap: 4px;
    min-height: 44px;
    padding: 8px 11px;
  }
  .world-network-banner span { font-size: .56rem; }
  .world-network-banner strong { font-size: .82rem; }
  .entry-progress li {
    min-height: 40px;
    padding: .4rem .6rem;
    gap: .5rem;
    font-size: .84rem;
  }
  .entry-progress li span { width: 1.5rem; height: 1.5rem; font-size: .62rem; }
  .entry-wizard-grid { gap: .62rem; }
  .entry-step-card {
    gap: .62rem;
    padding: clamp(.75rem, 1.5vw, 1rem);
  }
  .entry-step-card > h2 { font-size: clamp(1.35rem, 2vw, 1.8rem); }
  .entry-step-card > p { font-size: .88rem; line-height: 1.42; }
  .device-selector { gap: 7px; margin-top: .2rem; }
  .device-choice {
    gap: 4px;
    min-height: 104px;
    padding: 8px 10px;
  }
  .device-choice strong { font-size: .9rem; }
  .device-choice small { font-size: .75rem; line-height: 1.34; }
  .role-choice-kicker { font-size: .58rem; }
  .mode-selection { margin: 0; min-height: 1.2em; font-size: .82rem; }
  .gateway-note { margin: 0; font-size: .68rem; line-height: 1.35; }
  .entry-step-actions { gap: .5rem; padding-top: 0; }
  .entry-step-actions .button { min-height: 44px; padding: 9px 13px; font-size: .75rem; }
  .entry-message {
    margin-top: .4rem;
    padding: 9px 11px;
    font-size: .69rem;
  }
  .play-footer { padding: 10px clamp(12px, 2.4vw, 28px); font-size: .58rem; }

  @media (max-width: 920px) {
    .public-home-hero { grid-template-columns: 1fr; }
    .public-hero-brief { max-width: none; }
    .gateway-heading { grid-template-columns: 1fr; }
    .world-status { justify-self: start; }
    .play-header { grid-template-columns: minmax(0, 1fr) auto; }
    .play-header-status { grid-column: 1 / -1; grid-row: 2; }
  }
  @media (max-width: 700px) {
    .public-header { min-height: 56px; padding: 6px 12px; }
    .answer-panel { grid-template-columns: minmax(0, 1fr); gap: 16px; }
    .answer-panel-copy { min-width: 0; }
    .public-brand img { max-width: 185px; }
    .public-home-title-primary { font-size: clamp(2.35rem, 11vw, 3.7rem); }
    .public-home-title-secondary { font-size: clamp(1.18rem, 5.4vw, 1.75rem); }
    .public-hero-facts li { min-height: 54px; }
    .answer-panel { margin-block: 26px; padding: 18px; }
    .answer-panel h2 { font-size: clamp(1.65rem, 8vw, 2.35rem); }
    .play-header {
      grid-template-columns: minmax(130px, 1fr) auto;
      grid-template-rows: auto auto;
      gap: 6px 10px;
    }
    .play-header .public-brand { grid-column: 1; grid-row: 1; }
    .play-header .public-brand img { max-width: 160px; }
    .play-header-status {
      grid-column: 2;
      grid-row: 1;
      justify-self: end;
      align-self: center;
      max-width: 17ch;
      font-size: .52rem;
      line-height: 1.25;
      text-align: right;
    }
    .front-desk-header-actions {
      grid-column: 1 / -1;
      grid-row: 2;
      justify-content: flex-start;
      flex-wrap: nowrap;
    }
    .front-desk-header-actions .button { flex: 1 1 auto; white-space: nowrap; }
    .player-name-actions .button { flex: 1 1 9rem; }
    .play-main { width: min(100% - 16px, 1320px); padding-top: 10px; }
    .gateway-heading h1 { font-size: clamp(1.85rem, 8vw, 2.7rem); }
    .device-choice { min-height: 92px; }
    .entry-identity-heading { align-items: stretch; }
    .entry-identity-card[data-identity-state="assigned"] {
      grid-template-columns: 1fr;
      gap: .35rem;
    }
    .entry-identity-card[data-identity-state="assigned"] .entry-identity-heading > strong {
      max-width: none;
      text-align: left;
    }
  }
  @media (max-width: 480px) {
    .public-main { width: min(100% - 20px, 1400px); }
    .public-home-hero { gap: 20px; }
    .public-hero-brief { padding: 16px; }
    .answer-panel { padding: 16px; }
    .world-network-banner { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .entry-progress { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .entry-progress li { min-height: 42px; padding: .4rem; justify-content: center; }
    .entry-progress li strong { font-size: .72rem; }
    .entry-progress li span { display: none; }
    .device-selector-compact { grid-template-columns: 1fr; }
    .device-choice { min-height: 72px; }
  }
  @media (max-height: 520px) and (min-width: 760px) {
    .public-home-title-primary { font-size: clamp(1.9rem, 4vw, 2.45rem); }
    .public-home-title-secondary { font-size: clamp(1rem, 2vw, 1.25rem); }
    .public-home-hero { grid-template-columns: minmax(0, 1.15fr) minmax(280px, .85fr); }
    .public-hero-brief { padding: 13px; }
    .public-ward-route { margin-block: 12px; }
    .play-header { min-height: 52px; }
    .play-main { padding-top: 8px; }
    .gateway-heading h1 { font-size: clamp(1.65rem, 3.3vw, 2.25rem); }
    .entry-identity-card > p { font-size: .72rem; }
    .device-choice { min-height: 108px; }
  }

/* 0.18.55 immersive Protocol 5 front desk and compact adult agreement. */
.front-desk-page {
  --front-desk-header-height: 58px;
  min-height: 100dvh;
  overflow: hidden;
  background: #030a08;
  color: #f2f7f4;
}

.front-desk-page .sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.front-desk-page.age-pending > .front-desk-header,
.front-desk-page.age-pending > .front-desk-main,
.front-desk-page.age-pending > .skip-link {
  visibility: visible !important;
}

.front-desk-header {
  position: fixed;
  inset: 0 0 auto;
  z-index: 75;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 1rem;
  min-height: var(--front-desk-header-height);
  padding: 6px max(14px, env(safe-area-inset-right)) 6px max(14px, env(safe-area-inset-left));
  border-bottom: 1px solid rgb(162 211 192 / 25%);
  background: rgb(3 13 10 / 93%);
  box-shadow: 0 10px 30px rgb(0 0 0 / 20%);
  backdrop-filter: blur(12px);
}

.front-desk-brand {
  display: inline-flex;
  align-items: center;
  gap: .65rem;
  width: fit-content;
  min-width: 0;
  color: #f2f7f4;
  text-decoration: none;
}

.front-desk-brand img {
  flex: 0 0 20px;
  width: 20px !important;
  height: 20px;
}

.front-desk-brand span {
  display: grid;
  min-width: 0;
  line-height: 1.05;
}

.front-desk-brand strong {
  overflow: hidden;
  font-size: .78rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.front-desk-brand small {
  color: #ddb35d;
  font: 800 .5rem/1.2 ui-monospace, monospace;
  letter-spacing: .04em;
  text-transform: uppercase;
}

.front-desk-header-actions {
  display: flex;
  flex-wrap: nowrap;
  justify-content: flex-end;
  gap: .45rem;
}

.front-desk-header-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 38px;
  padding: 7px 11px;
  border: 1px solid rgb(174 218 201 / 38%);
  border-radius: 4px;
  background: rgb(7 20 16 / 58%);
  color: #eef7f3;
  cursor: pointer;
  font: 760 .62rem/1.15 system-ui, sans-serif;
  text-decoration: none;
  white-space: nowrap;
}

.front-desk-header-button:hover,
.front-desk-header-button:focus-visible {
  border-color: #82e4bd;
  background: rgb(23 60 47 / 82%);
  outline: 3px solid rgb(130 228 189 / 28%);
  outline-offset: 2px;
}

.front-desk-main {
  position: fixed;
  inset: var(--front-desk-header-height) 0 0;
  z-index: 20;
  width: auto;
  min-height: 0;
  margin: 0;
  padding: 0;
}

.front-desk-lobby {
  position: relative;
  width: 100%;
  height: 100%;
  min-height: 0;
  overflow: hidden;
  isolation: isolate;
  background: #07110e;
}

.front-desk-scene {
  position: absolute;
  inset: 0;
  z-index: 0;
  min-width: 0;
  min-height: 0;
  max-width: 100%;
  max-height: 100%;
  overflow: hidden;
  contain: strict;
  background:
    radial-gradient(circle at 52% 12%, rgb(247 216 146 / 32%), transparent 24%),
    linear-gradient(180deg, #26382f 0 43%, #071611 43% 100%);
}

.front-desk-scene::after,
.front-desk-scene-vignette {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 4;
  pointer-events: none;
  background:
    linear-gradient(90deg, rgb(1 7 5 / 28%), transparent 27%, transparent 68%, rgb(1 7 5 / 36%)),
    linear-gradient(180deg, rgb(0 0 0 / 8%), transparent 46%, rgb(0 0 0 / 23%));
}

#front-desk-scene-canvas {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: block;
  width: 100%;
  height: 100%;
  opacity: 0;
  transition: opacity 280ms ease;
}

.front-desk-scene-ready #front-desk-scene-canvas { opacity: 1; }
.front-desk-scene-ready .front-desk-scene-fallback { opacity: 0; }
.front-desk-scene-fallback-only #front-desk-scene-canvas { display: none; }

.front-desk-scene-fallback {
  position: absolute;
  inset: 0;
  z-index: 1;
  overflow: hidden;
  opacity: 1;
  transition: opacity 220ms ease;
  background:
    radial-gradient(ellipse at 50% 0, rgb(255 225 158 / 62%), transparent 42%),
    linear-gradient(#10120d 0 39%, #496057 39% 100%);
}

.front-desk-fallback-ceiling {
  position: absolute;
  inset: 0 0 42%;
  clip-path: polygon(0 0, 100% 0, 69% 100%, 31% 100%);
  background: linear-gradient(180deg, #241a0b, #090c09 84%);
}

.front-desk-fallback-floor {
  position: absolute;
  left: -22%;
  right: -22%;
  bottom: -58%;
  height: 136%;
  transform: perspective(620px) rotateX(61deg);
  transform-origin: 50% 100%;
  background: conic-gradient(from 90deg, #d6d9cf 0 25%, #3a5549 0 50%, #d6d9cf 0 75%, #3a5549 0) 0 0 / 126px 126px;
  filter: saturate(.72) brightness(.88);
}

.front-desk-fallback-desk {
  position: absolute;
  left: 34%;
  bottom: 25%;
  width: 32%;
  height: 25%;
  border-top: 12px solid #aab5aa;
  background: #15362d;
  box-shadow: 0 24px 60px rgb(0 0 0 / 45%);
}

.front-desk-fallback-desk span {
  position: absolute;
  left: 24%;
  right: 24%;
  top: 39%;
  border: 2px solid #dce9e2;
  padding: .45rem;
  text-align: center;
  font: 900 clamp(.7rem, 1.5vw, 1.2rem)/1 ui-monospace, monospace;
}

.front-desk-fallback-monitor {
  position: absolute;
  z-index: 3;
  left: 37%;
  bottom: 48%;
  padding: .75rem .85rem;
  border: 7px solid #071411;
  background: #071b18;
  color: #73f1c0;
  box-shadow: 0 12px 22px rgb(0 0 0 / 34%);
  font: 900 clamp(.55rem, 1vw, .82rem)/1.05 ui-monospace, monospace;
  text-align: center;
}

.front-desk-fallback-person {
  position: absolute;
  z-index: 2;
  left: 51%;
  bottom: 48%;
  width: 56px;
  height: 92px;
  transform: translateX(-50%);
}

.front-desk-fallback-person i {
  position: absolute;
  left: 8px;
  top: 0;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: linear-gradient(#19120d 0 28%, #8b5737 28% 100%);
}

.front-desk-fallback-person b {
  position: absolute;
  left: 2px;
  bottom: 0;
  width: 52px;
  height: 58px;
  border-radius: 18px 18px 3px 3px;
  background: #3c9168;
}

.front-desk-fallback-sign {
  position: absolute;
  z-index: 3;
  top: 25%;
  left: 57%;
  padding: .42rem .7rem;
  border: 2px solid #1a2823;
  background: #e8ece7;
  color: #17211d;
  font: 850 clamp(.5rem, .9vw, .74rem)/1 ui-monospace, monospace;
}

.front-desk-main[inert] .front-desk-reception,
.front-desk-main[inert] .front-desk-account-pill,
.front-desk-main[inert] .front-desk-stage-links {
  filter: saturate(.78) brightness(.78);
}

.front-desk-scene-hotspot {
  position: absolute;
  z-index: 18;
  left: 34.5%;
  top: 42%;
  display: grid;
  place-items: center;
  width: clamp(46px, 5vw, 72px);
  height: clamp(46px, 5vw, 72px);
  border: 1px solid transparent;
  border-radius: 50%;
  background: transparent;
  color: transparent;
  cursor: pointer;
}

.front-desk-scene-hotspot:hover,
.front-desk-scene-hotspot:focus-visible {
  border-color: rgb(117 231 188 / 68%);
  background: rgb(7 27 22 / 34%);
  color: #9cf4d2;
  outline: 3px solid rgb(117 231 188 / 24%);
  outline-offset: 2px;
}

.front-desk-reception {
  position: absolute;
  z-index: 28;
  left: max(16px, env(safe-area-inset-left));
  bottom: max(18px, calc(env(safe-area-inset-bottom) + 18px));
  width: min(590px, calc(100vw - 32px));
  padding: 15px;
  border: 1px solid rgb(166 218 197 / 36%);
  border-radius: 5px;
  background: rgb(4 18 14 / 90%);
  box-shadow: 0 18px 56px rgb(0 0 0 / 42%);
  backdrop-filter: blur(13px);
}

.front-desk-reception-heading {
  display: flex;
  justify-content: space-between;
  align-items: start;
  gap: 1rem;
}

.front-desk-kicker {
  color: #e2b75f;
  font: 850 .56rem/1.15 ui-monospace, monospace;
  letter-spacing: .06em;
  text-transform: uppercase;
}

.front-desk-reception h2 {
  max-width: none;
  margin: .25rem 0 0;
  font-size: clamp(1.25rem, 2.65vw, 1.8rem);
  line-height: 1.02;
  letter-spacing: -.025em;
}

.front-desk-reception > p:not(.front-desk-rules):not(.sr-only) {
  margin: .55rem 0 .72rem;
  color: #c5d2cd;
  font-size: .8rem;
  line-height: 1.42;
}

.front-desk-directory-button,
.front-desk-submit {
  min-height: 39px;
  border: 1px solid #77dcb6;
  border-radius: 4px;
  background: #65d5aa;
  color: #06120e;
  cursor: pointer;
  font: 850 .68rem/1.1 system-ui, sans-serif;
}

.front-desk-directory-button { flex: 0 0 auto; padding: 8px 14px; }
.front-desk-submit { align-self: end; padding: 8px 12px; }

.front-desk-directory-button:hover,
.front-desk-directory-button:focus-visible,
.front-desk-submit:hover,
.front-desk-submit:focus-visible {
  background: #9aebcc;
  outline: 3px solid rgb(119 220 182 / 32%);
  outline-offset: 2px;
}

.front-desk-form {
  display: grid;
  min-height: 0;
  padding: 0;
  border: 0;
  background: transparent;
}

.front-desk-name-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr)) auto;
  gap: .42rem;
  align-items: end;
}

.front-desk-name-grid label {
  display: grid;
  gap: .22rem;
  min-width: 0;
  color: #dce8e3;
  font-size: .62rem;
  font-weight: 800;
}

.front-desk-name-grid input {
  width: 100%;
  min-width: 0;
  min-height: 39px;
  padding: .48rem .55rem;
  border: 1px solid rgb(181 222 205 / 42%);
  border-radius: 4px;
  background: rgb(3 13 10 / 84%);
  color: #fff;
  font: inherit;
  font-size: .76rem;
}

.front-desk-name-grid input:hover { border-color: rgb(181 235 213 / 68%); }
.front-desk-name-grid input:focus-visible {
  border-color: #7ce6bd;
  outline: 3px solid rgb(124 230 189 / 35%);
  outline-offset: 2px;
}

.front-desk-rules {
  display: flex;
  flex-wrap: wrap;
  gap: .25rem .75rem;
  margin: .62rem 0 0;
  padding-top: .58rem;
  border-top: 1px solid rgb(175 217 201 / 24%);
  color: #aebdb7;
  font: 680 .54rem/1.35 ui-monospace, monospace;
}

.front-desk-rules span::before {
  content: "•";
  margin-right: .32rem;
  color: #dcb55f;
}

.front-desk-drawer[hidden] { display: none !important; }
.front-desk-drawer {
  position: fixed;
  inset: var(--front-desk-header-height) 0 0 auto;
  z-index: 68;
  width: min(450px, 39vw);
  min-width: 360px;
  padding: 16px;
  overflow: auto;
  overscroll-behavior: contain;
  border-left: 1px solid rgb(145 222 192 / 35%);
  background: rgb(3 15 12 / 96%);
  box-shadow: -24px 0 56px rgb(0 0 0 / 36%);
  opacity: 0;
  transform: translateX(18px);
  transition: transform 180ms ease, opacity 180ms ease;
  backdrop-filter: blur(16px);
}

.front-desk-drawer.is-open {
  opacity: 1;
  transform: translateX(0);
}

.front-desk-drawer-heading {
  position: sticky;
  top: -16px;
  z-index: 3;
  display: flex;
  justify-content: space-between;
  align-items: start;
  gap: 1rem;
  margin: -16px -16px 10px;
  padding: 16px;
  border-bottom: 1px solid rgb(160 212 192 / 22%);
  background: rgb(3 15 12 / 99%);
}

.front-desk-drawer-heading h2 {
  margin: .22rem 0 0;
  font-size: clamp(1.2rem, 2.25vw, 1.65rem);
  line-height: 1.04;
}

.front-desk-drawer-close {
  flex: 0 0 38px;
  width: 38px;
  height: 38px;
  border: 1px solid #73d9b3;
  border-radius: 5px;
  background: rgb(12 48 37 / 50%);
  color: #f2fff9;
  cursor: pointer;
  font: 900 1.35rem/1 system-ui, sans-serif;
}

.front-desk-drawer-close:hover,
.front-desk-drawer-close:focus-visible {
  background: #75ddb7;
  color: #07110d;
  outline: 3px solid rgb(117 221 183 / 34%);
  outline-offset: 2px;
}

.front-desk-drawer-tabs {
  display: flex;
  gap: .38rem;
  margin: 0 0 .85rem;
  border-bottom: 1px solid rgb(160 212 192 / 20%);
}

.front-desk-drawer-tabs button {
  min-height: 38px;
  padding: 7px 10px;
  border: 0;
  border-bottom: 2px solid transparent;
  background: transparent;
  color: #aebdb7;
  cursor: pointer;
  font: 780 .66rem/1.15 system-ui, sans-serif;
}

.front-desk-drawer-tabs button[aria-selected="true"] {
  border-bottom-color: #77e0b9;
  color: #f4fff9;
}

.front-desk-drawer-tabs button:focus-visible {
  outline: 3px solid rgb(119 224 185 / 28%);
  outline-offset: -2px;
}

.front-desk-drawer-view {
  display: grid;
  align-content: start;
  gap: .72rem;
  min-height: 0;
}

.front-desk-drawer-view[hidden] { display: none !important; }
.front-desk-drawer-intro,
.front-desk-result p {
  margin: 0;
  color: #c0d0ca;
  font-size: .8rem;
  line-height: 1.48;
}

.front-desk-directory-meta {
  display: flex;
  flex-wrap: wrap;
  gap: .38rem;
}

.front-desk-directory-meta span,
.front-desk-ai-label {
  display: inline-flex;
  width: fit-content;
  min-height: 1.55rem;
  align-items: center;
  padding: .22rem .42rem;
  border: 1px solid rgb(165 218 197 / 24%);
  border-radius: 3px;
  background: rgb(255 255 255 / 3%);
  color: #c7d8d1;
  font: 780 .52rem/1.2 ui-monospace, monospace;
  text-transform: uppercase;
}

.front-desk-directory-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: .58rem;
}

.front-desk-character-card {
  display: grid;
  gap: .36rem;
  padding: .78rem;
  border: 1px solid rgb(160 211 192 / 20%);
  border-radius: 4px;
  background: rgb(255 255 255 / 2.5%);
}

.front-desk-character-card-heading {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: .7rem;
}

.front-desk-character-card h3 {
  margin: 0;
  font-size: 1rem;
  line-height: 1.15;
}

.front-desk-character-card p {
  margin: 0;
  color: #b8c8c2;
  font-size: .73rem;
  line-height: 1.42;
}

.front-desk-character-card .front-desk-character-role,
.front-desk-result .front-desk-character-role {
  color: #e7bd66;
  font-weight: 800;
}

.front-desk-character-card .button,
.front-desk-result .button {
  justify-self: start;
  margin-top: .22rem;
}

.front-desk-result h2 {
  margin: .2rem 0 0;
  font-size: clamp(1.35rem, 2.9vw, 2rem);
  line-height: 1.04;
}

.front-desk-empty { text-align: left; }
.front-desk-empty > span { font-size: 2.2rem; }
.front-desk-error { color: #ffc3b7 !important; }

.front-desk-account-pill {
  position: absolute;
  z-index: 36;
  right: max(12px, env(safe-area-inset-right));
  bottom: max(14px, calc(env(safe-area-inset-bottom) + 14px));
  max-width: min(350px, calc(100vw - 24px));
  min-height: 42px;
  padding: 8px 15px;
  overflow: hidden;
  border: 1px solid rgb(113 225 183 / 72%);
  border-radius: 999px;
  background: #6fe0b6;
  color: #06110d;
  cursor: pointer;
  font: 850 .64rem/1.2 system-ui, sans-serif;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.front-desk-account-pill:hover,
.front-desk-account-pill:focus-visible {
  background: #a4f0d2;
  outline: 3px solid rgb(164 240 210 / 38%);
  outline-offset: 2px;
}

.front-desk-stage-links {
  position: absolute;
  z-index: 26;
  left: 50%;
  bottom: max(4px, env(safe-area-inset-bottom));
  display: flex;
  gap: .55rem;
  max-width: min(52vw, 740px);
  padding: 4px 8px;
  overflow: hidden;
  border-radius: 4px;
  background: rgb(3 13 10 / 58%);
  color: rgb(225 236 231 / 72%);
  font: 650 .46rem/1.25 ui-monospace, monospace;
  text-align: center;
  text-transform: uppercase;
  transform: translateX(-50%);
  backdrop-filter: blur(6px);
  white-space: nowrap;
}

.front-desk-stage-links a { color: #b8f1d9; }

.front-desk-admissions[hidden] { display: none !important; }
.front-desk-admissions {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: grid;
  place-items: stretch end;
  overflow: hidden;
  padding: calc(var(--front-desk-header-height) + 10px) 12px 12px;
  background: transparent;
}

.front-desk-admissions-scrim {
  position: absolute;
  inset: 0;
  z-index: 0;
  background: linear-gradient(90deg, rgb(1 7 5 / 8%) 0 42%, rgb(1 7 5 / 38%) 64%, rgb(1 7 5 / 75%));
  pointer-events: none;
}

.front-desk-admissions-panel {
  position: relative;
  z-index: 1;
  display: grid;
  width: min(510px, 100%);
  height: 100%;
  max-height: none;
  padding: 0;
  overflow: hidden;
  border: 1px solid #d9aa50;
  border-radius: 6px;
  background: rgb(3 15 12 / 97%);
  box-shadow: 0 22px 80px rgb(0 0 0 / 55%);
}

.front-desk-admissions-panel::before { display: none; }
.front-desk-admissions-panel > .adult-gate-content {
  display: grid;
  grid-template-rows: auto auto minmax(0, 1fr) auto auto;
  min-height: 0;
  padding: 16px;
}

.front-desk-admissions-heading {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: start;
  gap: .8rem;
}

.front-desk-admissions-heading h2 {
  max-width: 27ch;
  margin: .25rem 0 0;
  font-size: clamp(1.3rem, 2.8vw, 1.85rem);
  line-height: 1.02;
  letter-spacing: -.025em;
  text-transform: none;
}

.front-desk-admissions-close {
  width: 38px;
  height: 38px;
  border: 1px solid #73d9b3;
  border-radius: 5px;
  background: rgb(12 48 37 / 50%);
  color: #f2fff9;
  cursor: pointer;
  font: 900 1.35rem/1 system-ui, sans-serif;
}

.front-desk-admissions-close:hover,
.front-desk-admissions-close:focus-visible {
  background: #75ddb7;
  color: #07110d;
  outline: 3px solid rgb(117 221 183 / 34%);
  outline-offset: 2px;
}

.front-desk-admissions-lead {
  margin: .58rem 0 .66rem;
  color: #c4d0cb;
  font-size: .76rem;
  line-height: 1.42;
}

.front-desk-admissions-scroll {
  min-height: 0;
  padding: .18rem .42rem .55rem 0;
  overflow: auto;
  overscroll-behavior: contain;
  scrollbar-color: #7e8d87 transparent;
  scrollbar-width: thin;
}

.front-desk-admissions-scroll:focus-visible {
  outline: 2px solid rgb(113 225 183 / 60%);
  outline-offset: 2px;
}

.front-desk-admissions-facts {
  display: grid;
  gap: .46rem;
  margin: 0;
  padding-left: 1.1rem;
  color: #d2dbd7;
  font-size: .66rem;
  line-height: 1.43;
}

.front-desk-admissions-facts li::marker { color: #e0b45e; }

.front-desk-acknowledgements {
  display: grid;
  gap: .48rem;
  margin: .78rem 0 0;
  padding: .72rem;
  border: 1px solid rgb(177 219 202 / 28%);
}

.front-desk-acknowledgements legend {
  padding: 0 .32rem;
  color: #e3b860;
  font: 850 .7rem/1.2 system-ui, sans-serif;
}

.front-desk-acknowledgements label {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: start;
  gap: .52rem;
  color: #d6dfdb;
  cursor: pointer;
  font-size: .64rem;
  font-weight: 700;
  line-height: 1.36;
}

.front-desk-acknowledgements input {
  width: 16px;
  height: 16px;
  margin: .07rem 0 0;
  accent-color: #72dfb6;
}

.front-desk-admissions-panel .gate-privacy {
  margin: .62rem 0 0;
  padding: .58rem .64rem;
  border-left: 3px solid rgb(116 221 181 / 62%);
  background: rgb(116 221 181 / 4.5%);
  color: #becbc6;
  font-size: .61rem !important;
  line-height: 1.38;
}

.front-desk-admissions-actions {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: .5rem;
  padding-top: .62rem;
}

.front-desk-admissions-actions .button {
  min-height: 41px;
  padding: 8px 12px;
  font-size: .66rem;
}

.front-desk-admissions-actions #adult-decline {
  grid-column: auto;
  justify-self: stretch;
}

.front-desk-charter-link {
  grid-column: 1 / -1;
  justify-self: start;
  color: #b7d9cb;
  font-size: .58rem;
}

.front-desk-admissions-panel .adult-denied {
  align-self: center;
  padding: 30px;
}

@media (max-width: 980px) {
  .front-desk-drawer {
    width: min(440px, 52vw);
    min-width: 330px;
  }
  .front-desk-stage-links { display: none; }
}

@media (max-width: 760px) {
  .front-desk-page { --front-desk-header-height: 54px; }
  .front-desk-header { gap: .5rem; padding-inline: 8px; }
  .front-desk-brand strong { font-size: .68rem; }
  .front-desk-brand small { font-size: .44rem; }
  .front-desk-header-actions { gap: .28rem; }
  .front-desk-header-button { min-height: 36px; padding: 6px 8px; font-size: .55rem; }
  .front-desk-reception {
    left: 8px;
    right: 8px;
    bottom: 8px;
    width: auto;
    padding: 12px;
  }
  .front-desk-reception h2 { font-size: 1.28rem; }
  .front-desk-reception > p:not(.front-desk-rules):not(.sr-only) { margin-block: .42rem .58rem; font-size: .72rem; }
  .front-desk-name-grid { gap: .3rem; }
  .front-desk-name-grid label { font-size: .56rem; }
  .front-desk-name-grid input { min-height: 37px; padding: .4rem .43rem; }
  .front-desk-submit { min-height: 37px; padding-inline: 8px; font-size: .6rem; }
  .front-desk-rules { gap: .2rem .5rem; margin-top: .5rem; padding-top: .5rem; font-size: .49rem; }
  .front-desk-account-pill { display: none; }
  .front-desk-drawer {
    inset: var(--front-desk-header-height) 0 0;
    width: auto;
    min-width: 0;
    padding-bottom: calc(1rem + env(safe-area-inset-bottom));
  }
  .front-desk-admissions {
    padding: calc(var(--front-desk-header-height) + 6px) 6px 6px;
  }
  .front-desk-admissions-scrim { background: rgb(1 7 5 / 48%); }
  .front-desk-admissions-panel { width: 100%; }
  .front-desk-admissions-panel > .adult-gate-content { padding: 12px; }
  .front-desk-admissions-heading h2 { font-size: 1.25rem; }
  .front-desk-admissions-lead { font-size: .69rem; }
}

@media (max-width: 560px) {
  .front-desk-header-actions a { display: none; }
  .front-desk-name-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .front-desk-submit { grid-column: 1 / -1; width: 100%; }
  .front-desk-rules span:last-child { display: none; }
  .front-desk-scene-hotspot { display: none; }
  .front-desk-admissions-actions { grid-template-columns: 1fr; }
  .front-desk-admissions-actions #adult-decline { grid-column: 1; }
}

@media (max-height: 650px) and (min-width: 761px) {
  .front-desk-reception {
    bottom: 8px;
    width: min(600px, calc(100vw - 32px));
    padding: 11px 13px;
  }
  .front-desk-reception > p:not(.front-desk-rules):not(.sr-only) { margin: .34rem 0 .48rem; }
  .front-desk-name-grid input,
  .front-desk-submit { min-height: 36px; }
  .front-desk-rules { margin-top: .42rem; padding-top: .42rem; }
  .front-desk-admissions { padding-top: calc(var(--front-desk-header-height) + 6px); }
  .front-desk-admissions-panel > .adult-gate-content { padding: 12px; }
  .front-desk-admissions-lead { margin-block: .35rem .46rem; }
  .front-desk-admissions-facts { gap: .34rem; font-size: .6rem; }
  .front-desk-acknowledgements { margin-top: .5rem; padding: .5rem; }
  .front-desk-acknowledgements label { font-size: .58rem; }
  .front-desk-admissions-actions { padding-top: .48rem; }
}

@media (prefers-reduced-motion: reduce) {
  #front-desk-scene-canvas,
  .front-desk-scene-fallback,
  .front-desk-drawer { transition: none !important; }
}

@media (forced-colors: active) {
  .front-desk-scene { display: none; }
  .front-desk-page { background: Canvas; color: CanvasText; }
  .front-desk-header,
  .front-desk-reception,
  .front-desk-drawer,
  .front-desk-admissions-panel,
  .front-desk-account-pill {
    border: 1px solid CanvasText;
    background: Canvas;
    color: CanvasText;
    backdrop-filter: none;
  }
  .front-desk-admissions-scrim { background: rgb(0 0 0 / 72%); }
  .front-desk-name-grid input,
  .front-desk-drawer-close,
  .front-desk-admissions-close { border: 1px solid CanvasText; background: Canvas; color: CanvasText; }
}


/* 0.18.45 final front-desk presentation contract.
   The lobby remains visible immediately while the full adult agreement occupies
   a compact right-side admissions drawer. These selectors intentionally come
   last to supersede historical front-desk prototypes retained in this stylesheet. */
.front-desk-page {
  --front-desk-header-height: 58px;
  min-width: 0;
  min-height: 100dvh;
  overflow: hidden;
  background: #030a08;
  color: #f2f7f4;
}
.front-desk-page.age-pending > .front-desk-header,
.front-desk-page.age-pending > .front-desk-main,
.front-desk-page.age-reviewing > .front-desk-header,
.front-desk-page.age-reviewing > .front-desk-main,
.front-desk-page.age-pending > .skip-link,
.front-desk-page.age-reviewing > .skip-link {
  visibility: visible !important;
}
.front-desk-header {
  position: fixed;
  inset: 0 0 auto;
  z-index: 80;
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: var(--front-desk-header-height);
  padding: 6px max(12px, env(safe-area-inset-right)) 6px max(12px, env(safe-area-inset-left));
  border: 0;
  border-bottom: 1px solid rgb(156 218 193 / 25%);
  background: rgb(2 12 9 / 94%);
  box-shadow: 0 8px 28px rgb(0 0 0 / 24%);
  backdrop-filter: blur(13px);
}
.front-desk-brand {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  min-width: 0;
  color: #f6fbf8;
  text-decoration: none;
}
.front-desk-brand img {
  width: 23px !important;
  height: 23px;
  flex: 0 0 23px;
  object-fit: contain;
}
.front-desk-brand span { display: grid; min-width: 0; gap: 2px; }
.front-desk-brand strong {
  overflow: hidden;
  font-size: .72rem;
  line-height: 1;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.front-desk-brand small {
  color: #e2b55d;
  font: 800 .48rem/1.05 ui-monospace, SFMono-Regular, Consolas, monospace;
  letter-spacing: .05em;
  text-transform: uppercase;
}
.front-desk-header-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: nowrap;
  gap: 7px;
  min-width: 0;
}
.front-desk-header-button {
  display: inline-grid;
  place-items: center;
  min-height: 36px;
  padding: 7px 11px;
  border: 1px solid rgb(173 221 202 / 38%);
  border-radius: 3px;
  background: rgb(5 19 15 / 72%);
  color: #f3f8f6;
  cursor: pointer;
  font: 780 .62rem/1.1 system-ui, sans-serif;
  text-decoration: none;
  white-space: nowrap;
}
.front-desk-header-button:hover,
.front-desk-header-button:focus-visible {
  border-color: #77dfb8;
  background: rgb(22 64 50 / 84%);
  outline: 3px solid rgb(119 223 184 / 25%);
  outline-offset: 2px;
}
.front-desk-main,
.front-desk-stage {
  position: fixed;
  inset: var(--front-desk-header-height) 0 0;
  z-index: 20;
  width: auto;
  min-width: 0;
  min-height: 0;
  margin: 0;
  padding: 0;
  overflow: hidden;
  background: #07100e;
  pointer-events: none;
}
.front-desk-lobby {
  position: absolute;
  inset: 0;
  min-width: 0;
  min-height: 0;
  overflow: hidden;
  isolation: isolate;
}
.front-desk-main[inert] .front-desk-reception,
.front-desk-main[inert] .front-desk-account-pill,
.front-desk-main[inert] .front-desk-stage-links {
  filter: saturate(.76) brightness(.84);
}
.front-desk-scene {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
  background:
    radial-gradient(ellipse at 50% 4%, rgb(255 225 153 / 38%), transparent 27%),
    linear-gradient(180deg, #08100d 0 44%, #31473d 44% 100%);
  pointer-events: none;
}
#front-desk-scene-canvas {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: block;
  width: 100%;
  height: 100%;
  opacity: 0;
  transition: opacity 280ms ease;
}
.front-desk-scene-ready #front-desk-scene-canvas { opacity: 1; }
.front-desk-scene-ready .front-desk-scene-fallback { opacity: 0; }
.front-desk-scene-fallback {
  position: absolute;
  inset: 0;
  z-index: 1;
  overflow: hidden;
  opacity: 1;
  background:
    linear-gradient(90deg, #6f847a 0 23%, transparent 23% 77%, #6f847a 77%),
    linear-gradient(180deg, #14150f 0 42%, #102a22 42% 68%, #d4d4c3 68% 100%);
  transition: opacity 220ms ease;
}
.front-desk-fallback-ceiling {
  position: absolute;
  inset: 0 0 43%;
  clip-path: polygon(0 0, 100% 0, 65% 100%, 35% 100%);
  background:
    repeating-linear-gradient(180deg, transparent 0 13%, rgb(218 255 237 / 72%) 13.2% 13.8%, transparent 14% 18%),
    radial-gradient(ellipse at 50% 0, rgb(255 230 165 / 72%), transparent 49%),
    #070b08;
}
.front-desk-fallback-floor {
  position: absolute;
  left: -28%;
  right: -28%;
  bottom: -63%;
  height: 138%;
  transform: perspective(660px) rotateX(61deg);
  transform-origin: 50% 100%;
  background: conic-gradient(from 90deg, #d8d8c9 0 25%, #354b41 0 50%, #d8d8c9 0 75%, #354b41 0) 0 0 / 112px 112px;
  filter: brightness(.87) saturate(.72);
}
.front-desk-fallback-desk {
  position: absolute;
  left: 50%;
  top: 49%;
  width: min(40vw, 530px);
  height: min(24vh, 174px);
  transform: translateX(-50%);
  border-top: 12px solid #aab8af;
  background: linear-gradient(#1a4437, #102d25);
  box-shadow: 0 28px 46px rgb(0 0 0 / 38%);
}
.front-desk-fallback-desk span {
  position: absolute;
  left: 50%;
  top: 35%;
  transform: translateX(-50%);
  padding: 9px 22px;
  border: 2px solid #c8ded5;
  color: #f4fffa;
  font: 850 clamp(.72rem, 1.6vw, 1.18rem)/1 ui-monospace, SFMono-Regular, Consolas, monospace;
  white-space: nowrap;
}
.front-desk-fallback-monitor {
  position: absolute;
  z-index: 3;
  left: calc(50% - min(17vw, 220px));
  top: 41%;
  display: grid;
  place-items: center;
  width: 92px;
  height: 62px;
  border: 7px solid #07130f;
  background: #09251d;
  color: #7af0be;
  font: 850 .62rem/1.04 ui-monospace, SFMono-Regular, Consolas, monospace;
  text-align: center;
  text-shadow: 0 0 8px rgb(104 255 188 / 50%);
  box-shadow: 0 8px 16px rgb(0 0 0 / 42%);
}
.front-desk-fallback-person {
  position: absolute;
  z-index: 3;
  left: 50%;
  top: 35%;
  width: 62px;
  height: 100px;
  transform: translateX(-50%);
}
.front-desk-fallback-person i {
  position: absolute;
  left: 12px;
  top: 0;
  width: 38px;
  height: 38px;
  border-radius: 48% 48% 42% 42%;
  background: linear-gradient(#24160c 0 28%, #8b5735 29% 100%);
}
.front-desk-fallback-person b {
  position: absolute;
  left: 4px;
  bottom: 0;
  width: 54px;
  height: 66px;
  border-radius: 17px 17px 3px 3px;
  background: linear-gradient(90deg, #245d44, #3c9368 50%, #245d44);
}
.front-desk-fallback-sign {
  position: absolute;
  z-index: 3;
  left: 57%;
  top: 31%;
  padding: 6px 11px;
  border: 2px solid #26342e;
  background: #ecefe8;
  color: #16221d;
  font: 850 clamp(.48rem, .8vw, .72rem)/1 ui-monospace, SFMono-Regular, Consolas, monospace;
  box-shadow: 0 7px 14px rgb(0 0 0 / 32%);
}
.front-desk-scene-vignette {
  position: absolute;
  inset: 0;
  z-index: 4;
  background:
    linear-gradient(90deg, rgb(0 0 0 / 17%), transparent 22%, transparent 76%, rgb(0 0 0 / 25%)),
    linear-gradient(0deg, rgb(0 0 0 / 14%), transparent 38%);
  pointer-events: none;
}
.front-desk-scene-hotspot {
  position: absolute;
  z-index: 24;
  left: calc(50% - min(17vw, 220px));
  top: 41%;
  width: 96px;
  height: 66px;
  border: 0;
  border-radius: 4px;
  background: transparent;
  color: transparent;
  cursor: pointer;
  opacity: .01;
  pointer-events: auto;
}
.front-desk-scene-hotspot:focus-visible {
  opacity: 1;
  border: 2px solid #79e6bc;
  outline: 3px solid rgb(121 230 188 / 30%);
  outline-offset: 3px;
  background: rgb(4 24 18 / 88%);
  color: #b7f9df;
  font-size: 1.25rem;
}
.front-desk-reception {
  position: absolute;
  z-index: 35;
  left: max(16px, env(safe-area-inset-left));
  bottom: max(14px, calc(env(safe-area-inset-bottom) + 14px));
  width: min(430px, calc(100vw - 32px));
  max-height: min(56dvh, 500px);
  overflow: auto;
  padding: 14px 15px;
  border: 1px solid rgb(166 218 197 / 36%);
  border-radius: 5px;
  background: linear-gradient(145deg, rgb(4 18 14 / 94%), rgb(5 19 16 / 88%));
  color: #eef7f3;
  box-shadow: 0 18px 58px rgb(0 0 0 / 44%);
  backdrop-filter: blur(13px);
  pointer-events: auto;
}
.front-desk-reception-heading {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 12px;
}
.front-desk-kicker {
  color: #e4b55b;
  font: 850 .54rem/1.15 ui-monospace, SFMono-Regular, Consolas, monospace;
  letter-spacing: .07em;
  text-transform: uppercase;
}
.front-desk-reception h2,
.front-desk-admissions h2,
.front-desk-drawer h2 {
  max-width: none;
  margin: 4px 0 0;
  text-transform: none;
  letter-spacing: -.025em;
}
.front-desk-reception h2 { font-size: clamp(1.25rem, 2.5vw, 1.65rem); line-height: 1.04; }
.front-desk-reception > p {
  margin: 7px 0 10px;
  color: #c2d1cb;
  font-size: .76rem;
  line-height: 1.42;
}
.front-desk-directory-button,
.front-desk-submit {
  min-height: 38px;
  border: 1px solid rgb(112 224 182 / 72%);
  border-radius: 4px;
  background: #68d9ae;
  color: #06110d;
  cursor: pointer;
  font: 850 .67rem/1.1 system-ui, sans-serif;
}
.front-desk-directory-button { flex: 0 0 auto; padding: 8px 13px; }
.front-desk-submit { align-self: end; padding: 8px 12px; white-space: nowrap; }
.front-desk-directory-button:hover,
.front-desk-directory-button:focus-visible,
.front-desk-submit:hover,
.front-desk-submit:focus-visible {
  background: #a1f0d1;
  outline: 3px solid rgb(161 240 209 / 28%);
  outline-offset: 2px;
}
.front-desk-form { display: block; min-height: 0; margin: 0; padding: 0; border: 0; background: transparent; }
.front-desk-name-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr)) auto;
  gap: 7px;
  align-items: end;
}
.front-desk-name-grid label {
  display: grid;
  min-width: 0;
  gap: 3px;
  color: #dce8e3;
  font-size: .58rem;
  font-weight: 780;
}
.front-desk-name-grid input {
  width: 100%;
  min-width: 0;
  min-height: 38px;
  padding: 7px 8px;
  border: 1px solid rgb(181 222 205 / 42%);
  border-radius: 4px;
  background: rgb(3 13 10 / 84%);
  color: #fff;
  font: 700 .72rem/1.1 system-ui, sans-serif;
}
.front-desk-name-grid input:focus-visible {
  border-color: #7ce6bd;
  outline: 3px solid rgb(124 230 189 / 30%);
  outline-offset: 2px;
}
.front-desk-rules {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 12px;
  margin: 10px 0 0 !important;
  padding-top: 8px;
  border-top: 1px solid rgb(175 217 201 / 22%);
  color: #aebdb7 !important;
  font: 680 .52rem/1.3 ui-monospace, SFMono-Regular, Consolas, monospace !important;
}
.front-desk-rules span::before { content: "•"; margin-right: 5px; color: #dcb55f; }
.front-desk-drawer {
  position: fixed;
  inset: var(--front-desk-header-height) 0 0 auto;
  z-index: 68;
  display: grid;
  grid-template-rows: auto auto minmax(0, 1fr);
  width: min(430px, 38vw);
  min-width: 350px;
  min-height: 0;
  padding: 0;
  overflow: hidden;
  border: 0;
  border-left: 1px solid rgb(145 222 192 / 35%);
  background: rgb(3 15 12 / 96%);
  box-shadow: -24px 0 56px rgb(0 0 0 / 38%);
  backdrop-filter: blur(16px);
  pointer-events: auto;
  transform: translateX(18px);
  opacity: 0;
  transition: transform 180ms ease, opacity 180ms ease;
}
.front-desk-drawer.is-open { transform: translateX(0); opacity: 1; }
.front-desk-drawer-heading {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 14px;
  padding: 15px;
  border-bottom: 1px solid rgb(160 212 192 / 22%);
  background: rgb(3 15 12 / 98%);
}
.front-desk-drawer-heading h2 { font-size: 1.25rem; line-height: 1.06; }
.front-desk-drawer-close,
.front-desk-admissions-close {
  display: grid;
  place-items: center;
  flex: 0 0 36px;
  width: 36px;
  height: 36px;
  padding: 0;
  border: 1px solid #73d9b3;
  border-radius: 5px;
  background: rgb(12 48 37 / 50%);
  color: #f2fff9;
  cursor: pointer;
  font: 900 1.25rem/1 system-ui, sans-serif;
}
.front-desk-drawer-close:hover,
.front-desk-drawer-close:focus-visible,
.front-desk-admissions-close:hover,
.front-desk-admissions-close:focus-visible {
  background: #75ddb7;
  color: #07110d;
  outline: 3px solid rgb(117 221 183 / 30%);
  outline-offset: 2px;
}
.front-desk-drawer-tabs {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  border-bottom: 1px solid rgb(160 212 192 / 18%);
}
.front-desk-drawer-tabs button {
  min-height: 38px;
  border: 0;
  border-right: 1px solid rgb(160 212 192 / 14%);
  background: rgb(8 30 23 / 72%);
  color: #b9c9c3;
  cursor: pointer;
  font: 800 .62rem/1.1 system-ui, sans-serif;
}
.front-desk-drawer-tabs button[aria-selected="true"] { background: rgb(30 81 63 / 74%); color: #fff; }
.front-desk-drawer-tabs button:focus-visible { outline: 3px solid #85e7c0; outline-offset: -3px; }
.front-desk-drawer-view {
  align-content: start;
  min-height: 0;
  margin: 0;
  padding: 15px;
  overflow: auto;
  overscroll-behavior: contain;
  border: 0;
  background: transparent;
}
.front-desk-drawer-intro,
.front-desk-result p,
.front-desk-drawer-view p { margin: 0; color: #c0d0ca; font-size: .76rem; line-height: 1.48; }
.front-desk-directory-meta {
  display: grid;
  gap: 4px;
  margin: 11px 0;
  padding: 8px;
  border-left: 3px solid #68d9ae;
  background: rgb(104 217 174 / 6%);
  color: #aebeb8;
  font: 680 .54rem/1.35 ui-monospace, SFMono-Regular, Consolas, monospace;
}
.front-desk-directory-grid { display: grid; gap: 8px; margin-top: 8px; }
.front-desk-character-card {
  display: grid;
  gap: 6px;
  padding: 10px;
  border: 1px solid rgb(160 211 192 / 20%);
  border-radius: 4px;
  background: rgb(255 255 255 / 2.5%);
}
.front-desk-character-card-heading { display: flex; align-items: start; justify-content: space-between; gap: 8px; }
.front-desk-character-card h3 { margin: 0; font-size: .92rem; line-height: 1.15; }
.front-desk-character-card p { margin: 0; color: #b8c8c2; font-size: .7rem; line-height: 1.4; }
.front-desk-character-role { color: #e7bd66 !important; font-weight: 800; }
.front-desk-character-location { color: #97aaa2 !important; font-size: .66rem !important; }
.front-desk-ai-label {
  width: fit-content;
  min-height: 0;
  padding: 3px 6px;
  border: 1px solid rgb(109 224 181 / 46%);
  border-radius: 999px;
  color: #8ce5bf;
  background: rgb(109 224 181 / 7%);
  font: 850 .5rem/1.2 ui-monospace, SFMono-Regular, Consolas, monospace;
  white-space: nowrap;
}
.front-desk-character-card .button { justify-self: start; min-height: 34px; margin-top: 2px; padding: 7px 11px; font-size: .6rem; }
.front-desk-result { display: grid; align-content: start; gap: 9px; }
.front-desk-result h2 { margin: 0; font-size: 1.45rem; line-height: 1.05; }
.front-desk-empty > span { display: block; color: #e2b14d; font-size: 2.2rem; }
.front-desk-error { color: #ffc3b7 !important; }
.front-desk-account-pill {
  position: absolute;
  z-index: 59;
  right: max(12px, env(safe-area-inset-right));
  bottom: max(14px, calc(env(safe-area-inset-bottom) + 14px));
  min-height: 39px;
  max-width: min(340px, calc(100vw - 24px));
  padding: 8px 16px;
  overflow: hidden;
  border: 1px solid rgb(113 225 183 / 72%);
  border-radius: 999px;
  background: #6fe0b6;
  color: #06110d;
  cursor: pointer;
  font: 850 .64rem/1.2 system-ui, sans-serif;
  text-overflow: ellipsis;
  white-space: nowrap;
  pointer-events: auto;
}
.front-desk-account-pill:hover,
.front-desk-account-pill:focus-visible { background: #a4f0d2; outline: 3px solid rgb(164 240 210 / 30%); outline-offset: 2px; }
.front-desk-stage-links {
  position: absolute;
  z-index: 28;
  left: 50%;
  bottom: max(4px, env(safe-area-inset-bottom));
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  max-width: min(52vw, 720px);
  padding: 4px 8px;
  border-radius: 3px;
  background: rgb(3 13 10 / 56%);
  color: rgb(225 236 231 / 72%);
  font: 650 .45rem/1.25 ui-monospace, SFMono-Regular, Consolas, monospace;
  text-align: center;
  text-transform: uppercase;
  transform: translateX(-50%);
  backdrop-filter: blur(6px);
  pointer-events: auto;
}
.front-desk-stage-links a { color: #b8f1d9; }
.front-desk-admissions,
.front-desk-adult-gate {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: grid;
  place-items: stretch end;
  overflow: hidden;
  padding: calc(var(--front-desk-header-height) + 10px) 10px 10px;
  background: transparent;
  backdrop-filter: none;
}
.front-desk-admissions-scrim {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgb(1 7 5 / 5%) 0 40%, rgb(1 7 5 / 36%) 62%, rgb(1 7 5 / 68%) 100%);
  pointer-events: none;
}
.front-desk-admissions-panel,
.front-desk-adult-card {
  position: relative;
  z-index: 1;
  display: grid;
  width: min(500px, 100%);
  height: 100%;
  max-height: none;
  min-height: 0;
  padding: 0;
  overflow: hidden;
  border: 1px solid #d9aa50;
  border-radius: 6px;
  background: rgb(3 15 12 / 97%);
  box-shadow: 0 22px 80px rgb(0 0 0 / 55%);
}
.front-desk-admissions-panel::before,
.front-desk-adult-card::before { display: none; }
.front-desk-adult-content,
.front-desk-admissions-panel > .adult-gate-content {
  display: grid;
  grid-template-rows: auto auto minmax(0, 1fr) auto auto;
  min-height: 0;
  padding: 15px;
}
.front-desk-admissions-heading,
.front-desk-adult-heading {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: start;
}
.front-desk-admissions-heading h2,
.front-desk-adult-heading h2 {
  margin: 4px 0 0;
  font-size: clamp(1.25rem, 2.5vw, 1.75rem);
  line-height: 1.04;
  letter-spacing: -.026em;
  text-transform: none;
}
.front-desk-admissions-lead,
.front-desk-adult-content > .front-desk-admissions-lead {
  margin: 7px 0 9px;
  color: #c4d0cb;
  font-size: .73rem;
  line-height: 1.42;
}
.front-desk-admissions-scroll,
.front-desk-adult-scroll {
  min-height: 0;
  padding: 3px 7px 8px 0;
  overflow: auto;
  overscroll-behavior: contain;
  scrollbar-color: #7e8d87 transparent;
  scrollbar-width: thin;
}
.front-desk-admissions-scroll:focus-visible,
.front-desk-adult-scroll:focus-visible { outline: 2px solid rgb(113 225 183 / 62%); outline-offset: 2px; }
.front-desk-admissions-facts,
.front-desk-adult-summary {
  display: grid;
  gap: 8px;
  margin: 0;
  padding-left: 18px;
  color: #d2dbd7;
  font-size: .64rem;
  line-height: 1.43;
}
.front-desk-admissions-facts li::marker,
.front-desk-adult-summary li::marker { color: #e0b45e; }
.front-desk-acknowledgements {
  display: grid;
  gap: 7px;
  margin: 12px 0 0;
  padding: 10px;
  border: 1px solid rgb(177 219 202 / 28%);
}
.front-desk-acknowledgements legend {
  padding: 0 5px;
  color: #e3b860;
  font: 850 .7rem/1.2 system-ui, sans-serif;
}
.front-desk-acknowledgements label {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 8px;
  align-items: start;
  color: #d6dfdb;
  font-size: .62rem;
  font-weight: 700;
  line-height: 1.36;
  cursor: pointer;
}
.front-desk-acknowledgements input {
  width: 16px;
  height: 16px;
  margin: 1px 0 0;
  accent-color: #72dfb6;
}
.front-desk-admissions .gate-privacy {
  margin: 8px 0 0;
  padding: 7px 9px;
  border-left: 3px solid rgb(116 221 181 / 62%);
  background: rgb(116 221 181 / 4.5%);
  color: #becbc6;
  font-size: .58rem;
  line-height: 1.37;
}
.front-desk-admissions-actions,
.front-desk-adult-actions {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 7px;
  align-items: center;
  padding-top: 9px;
  border-top: 1px solid rgb(173 218 201 / 20%);
}
.front-desk-admissions-actions .button,
.front-desk-adult-actions .button {
  min-height: 40px;
  padding: 8px 11px;
  font-size: .63rem;
}
.front-desk-charter-link {
  grid-column: 1 / -1;
  justify-self: start;
  color: #aee7cf;
  font: 700 .54rem/1.3 ui-monospace, SFMono-Regular, Consolas, monospace;
}
.front-desk-admissions .adult-denied { align-self: center; padding: 26px; }
@media (max-width: 900px) {
  .front-desk-drawer { width: min(430px, 54vw); min-width: 330px; }
  .front-desk-stage-links { display: none; }
}
@media (max-width: 700px) {
  .front-desk-page { --front-desk-header-height: 54px; }
  .front-desk-header { padding-inline: 8px; }
  .front-desk-brand img { width: 20px !important; height: 20px; flex-basis: 20px; }
  .front-desk-brand strong { font-size: .62rem; }
  .front-desk-brand small { font-size: .42rem; }
  .front-desk-header-actions { gap: 4px; }
  .front-desk-header-button { min-height: 34px; padding: 6px 8px; font-size: .54rem; }
  .front-desk-header-actions .front-desk-header-button:last-child { display: none; }
  .front-desk-reception { left: 8px; right: 8px; bottom: 8px; width: auto; max-height: 58dvh; padding: 11px 12px; }
  .front-desk-reception h2 { font-size: 1.18rem; }
  .front-desk-reception > p { margin-block: 5px 8px; font-size: .68rem; }
  .front-desk-name-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 5px; }
  .front-desk-submit { grid-column: 1 / -1; width: 100%; }
  .front-desk-name-grid label { font-size: .53rem; }
  .front-desk-name-grid input { min-height: 36px; padding: 6px; font-size: .68rem; }
  .front-desk-account-pill { display: none; }
  .front-desk-drawer { inset: var(--front-desk-header-height) 0 0; width: auto; min-width: 0; }
  .front-desk-admissions,
  .front-desk-adult-gate { padding: calc(var(--front-desk-header-height) + 5px) 5px 5px; }
  .front-desk-admissions-scrim { background: rgb(1 7 5 / 50%); }
  .front-desk-admissions-panel,
  .front-desk-adult-card { width: 100%; }
  .front-desk-adult-content,
  .front-desk-admissions-panel > .adult-gate-content { padding: 12px; }
  .front-desk-admissions-heading h2,
  .front-desk-adult-heading h2 { font-size: 1.22rem; }
  .front-desk-admissions-lead { font-size: .66rem; }
  .front-desk-admissions-actions,
  .front-desk-adult-actions { grid-template-columns: 1fr; }
  .front-desk-admissions-actions .button,
  .front-desk-adult-actions .button { width: 100%; }
}
@media (max-width: 440px) {
  .front-desk-brand span { max-width: 125px; }
  .front-desk-header-button { padding-inline: 7px; }
  .front-desk-reception-heading { align-items: center; }
  .front-desk-directory-button { min-height: 34px; padding: 6px 9px; }
  .front-desk-rules span:last-child { display: none; }
}
@media (max-height: 620px) and (min-width: 701px) {
  .front-desk-reception { bottom: 8px; padding: 10px 12px; }
  .front-desk-reception > p { margin-block: 4px 7px; }
  .front-desk-name-grid input { min-height: 34px; }
  .front-desk-admissions,
  .front-desk-adult-gate { padding-top: calc(var(--front-desk-header-height) + 6px); }
  .front-desk-adult-content,
  .front-desk-admissions-panel > .adult-gate-content { padding: 11px; }
  .front-desk-admissions-lead { margin-block: 4px 6px; }
  .front-desk-admissions-facts,
  .front-desk-adult-summary { gap: 6px; font-size: .58rem; }
  .front-desk-acknowledgements { margin-top: 8px; padding: 8px; }
  .front-desk-acknowledgements label { font-size: .57rem; }
  .front-desk-admissions-actions,
  .front-desk-adult-actions { padding-top: 6px; }
}
@media (prefers-reduced-motion: reduce) {
  #front-desk-scene-canvas,
  .front-desk-scene-fallback,
  .front-desk-drawer { transition: none !important; }
}
@media (forced-colors: active) {
  .front-desk-scene { display: none; }
  .front-desk-page { background: Canvas; color: CanvasText; }
  .front-desk-header,
  .front-desk-reception,
  .front-desk-drawer,
  .front-desk-admissions-panel,
  .front-desk-account-pill {
    border: 1px solid CanvasText;
    background: Canvas;
    color: CanvasText;
    backdrop-filter: none;
  }
  .front-desk-admissions-scrim { background: rgb(0 0 0 / 72%); }
  .front-desk-name-grid input,
  .front-desk-drawer-close,
  .front-desk-admissions-close { border: 1px solid CanvasText; background: Canvas; color: CanvasText; }
}

/* Shared accessible text utility used by the redesigned front desk and compact emoji controls. */
.sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important; border: 0 !important; }

/* 0.18.55 mixed-generation-safe scene-first Observation Room 217 home entry. */
.public-home-main {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0 0 72px;
}
.public-home-content {
  width: min(1400px, calc(100% - 48px));
  margin: 0 auto;
}
.home-room-entry {
  position: relative;
  isolation: isolate;
  display: block;
  width: 100%;
  min-height: calc(100svh - 60px);
  padding: 0;
  overflow: hidden;
  contain: layout paint;
  border-bottom: 1px solid rgb(226 181 91 / 42%);
  background: #030907;
}
.home-room-entry::after { display: none; }
.home-room-scene {
  position: absolute;
  inset: 0;
  z-index: 0;
  min-width: 0;
  min-height: 0;
  max-width: 100%;
  max-height: 100%;
  overflow: hidden;
  contain: strict;
  background:
    radial-gradient(circle at 54% 20%, rgb(234 219 167 / 19%), transparent 27%),
    linear-gradient(180deg, #08100d 0%, #0b1511 48%, #040907 100%);
}
#home-room-scene-canvas,
.home-room-scene-fallback,
.home-room-scene-vignette {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
#home-room-scene-canvas {
  z-index: 2;
  display: block;
  max-width: 100%;
  max-height: 100%;
  object-fit: cover;
  opacity: 0;
  transition: opacity 260ms ease;
}
.home-room-entry[data-home-room-rendered="true"] #home-room-scene-canvas { opacity: 1; }
.home-room-scene-fallback {
  z-index: 1;
  overflow: hidden;
  background:
    radial-gradient(ellipse at 53% 10%, rgb(255 241 190 / 62%) 0 3%, rgb(250 230 174 / 19%) 9%, transparent 26%),
    linear-gradient(180deg, #101a16 0 53%, #07100d 53% 100%);
  transition: opacity 220ms ease;
}
.home-room-entry[data-home-room-rendered="true"] .home-room-scene-fallback { opacity: 0; }
.home-room-fallback-ceiling {
  position: absolute;
  inset: 0 0 47%;
  background:
    linear-gradient(90deg, transparent 48%, rgb(244 229 177 / 88%) 49% 51%, transparent 52%) 50% 17% / 24% 2.2% no-repeat,
    linear-gradient(90deg, transparent 48%, rgb(217 206 168 / 65%) 49% 51%, transparent 52%) 50% 35% / 17% 1.2% no-repeat,
    linear-gradient(114deg, #151e19 0 35%, #8a846b 35.2% 42%, #181f1b 42.2% 58%, #8a846b 58.2% 65%, #121a16 65.2% 100%);
  clip-path: polygon(0 0, 100% 0, 79% 100%, 22% 100%);
}
.home-room-fallback-floor {
  position: absolute;
  inset: 53% 0 0;
  background:
    linear-gradient(26deg, transparent 49.4%, rgb(194 204 195 / 8%) 49.7% 50.3%, transparent 50.6%) 0 0 / 145px 145px,
    linear-gradient(-26deg, transparent 49.4%, rgb(194 204 195 / 8%) 49.7% 50.3%, transparent 50.6%) 0 0 / 145px 145px,
    repeating-conic-gradient(from 45deg at 50% 0, #9aa79f 0 25%, #1c2d27 0 50%) 50% 0 / 154px 154px;
  clip-path: polygon(22% 0, 79% 0, 100% 100%, 0 100%);
  filter: brightness(.7) saturate(.72);
}
.home-room-fallback-far-wall {
  position: absolute;
  left: 22%;
  right: 21%;
  top: 31%;
  bottom: 33%;
  border-top: 1px solid rgb(206 220 211 / 10%);
  background:
    linear-gradient(180deg, #9ba9a1 0 48%, #29433a 48% 100%);
  box-shadow: inset 0 -36px 80px rgb(2 8 6 / 28%);
}
.home-room-fallback-bed {
  position: absolute;
  left: 33%;
  top: 56%;
  width: 29%;
  height: 15%;
  border: 5px solid #30463e;
  background: #779087;
  box-shadow: 0 20px 30px rgb(0 0 0 / 42%);
  transform: skewX(-7deg);
}
.home-room-fallback-bed::before {
  content: "";
  position: absolute;
  inset: 14% 7% 25%;
  border-radius: 8px;
  background: #e6e2d4;
  box-shadow: inset 0 -8px 0 #bebeb4;
}
.home-room-fallback-bed i {
  position: absolute;
  top: 17%;
  left: 9%;
  width: 36%;
  height: 32%;
  border-radius: 50% 40% 35% 45%;
  background: #faf6e7;
}
.home-room-fallback-bed b {
  position: absolute;
  top: -20%;
  right: -2%;
  width: 8px;
  height: 125%;
  background: #40574f;
  box-shadow: -18px 0 0 #40574f;
}
.home-room-fallback-cabinet {
  position: absolute;
  left: 64%;
  top: 57%;
  width: 8%;
  height: 17%;
  border: 3px solid #263b34;
  background: linear-gradient(90deg, #436257, #314b42);
  box-shadow: 0 17px 28px rgb(0 0 0 / 42%);
}
.home-room-fallback-cabinet::before,
.home-room-fallback-cabinet::after {
  content: "";
  position: absolute;
  left: 12%;
  right: 12%;
  height: 1px;
  background: rgb(214 226 218 / 23%);
}
.home-room-fallback-cabinet::before { top: 39%; }
.home-room-fallback-cabinet::after { top: 70%; }
.home-room-fallback-cabinet i {
  position: absolute;
  left: 5%;
  right: 5%;
  top: -34%;
  display: grid;
  place-items: center;
  min-height: 27%;
  border: 1px solid rgb(224 178 83 / 53%);
  background: #08110e;
  color: #f2c45e;
  font: 850 clamp(.48rem, .8vw, .78rem)/1 ui-monospace, SFMono-Regular, Consolas, monospace;
  letter-spacing: .12em;
}
.home-room-fallback-bathroom,
.home-room-fallback-door,
.home-room-fallback-monitor {
  position: absolute;
  display: grid;
  place-items: center;
  border: 2px solid rgb(128 198 172 / 55%);
  background: rgb(4 19 15 / 93%);
  color: #c6f9e4;
  font: 850 clamp(.48rem, .8vw, .76rem)/1.1 ui-monospace, SFMono-Regular, Consolas, monospace;
  letter-spacing: .08em;
  text-align: center;
  text-transform: uppercase;
  box-shadow: 0 12px 30px rgb(0 0 0 / 38%);
}
.home-room-fallback-bathroom {
  left: 24%;
  top: 38%;
  width: 9.5%;
  height: 20%;
  align-content: start;
  padding-top: 8px;
}
.home-room-fallback-door {
  right: 22.5%;
  top: 36%;
  width: 11%;
  height: 23%;
  border-color: rgb(210 171 91 / 58%);
  color: #efd078;
}
.home-room-fallback-door small,
.home-room-fallback-monitor small {
  display: block;
  margin-top: 4px;
  color: #93b4a7;
  font-size: .72em;
}
.home-room-fallback-monitor {
  left: 44%;
  top: 37%;
  width: 14%;
  height: 9.5%;
}
.home-room-fallback-vent {
  position: absolute;
  left: 67%;
  top: 32%;
  width: 9%;
  height: 4.5%;
  border: 4px solid #53635c;
  background: repeating-linear-gradient(90deg, #15231e 0 6px, #66766e 6px 8px);
  box-shadow: 0 10px 24px rgb(0 0 0 / 30%);
}
.home-room-scene-vignette {
  z-index: 3;
  pointer-events: none;
  background:
    linear-gradient(90deg, rgb(2 7 6 / 72%) 0%, rgb(2 7 6 / 27%) 37%, rgb(2 7 6 / 12%) 54%, rgb(2 7 6 / 70%) 100%),
    linear-gradient(180deg, rgb(2 7 6 / 12%) 0%, transparent 32%, rgb(2 7 6 / 28%) 72%, rgb(2 7 6 / 78%) 100%),
    radial-gradient(ellipse at 54% 43%, transparent 28%, rgb(0 0 0 / 54%) 100%);
}
.home-room-scene-labels {
  position: absolute;
  top: clamp(14px, 2.1vw, 28px);
  left: clamp(14px, 2.7vw, 38px);
  z-index: 4;
  display: grid;
  gap: 2px;
  width: fit-content;
  padding: 8px 11px;
  border-left: 3px solid #70dfb7;
  background: rgb(3 13 10 / 66%);
  color: #edf7f2;
  backdrop-filter: blur(10px);
}
.home-room-scene-labels span {
  color: #94b9aa;
  font: 760 .5rem/1.2 ui-monospace, SFMono-Regular, Consolas, monospace;
  letter-spacing: .14em;
}
.home-room-scene-labels strong {
  font: 850 .68rem/1.2 ui-monospace, SFMono-Regular, Consolas, monospace;
  letter-spacing: .08em;
}
.home-room-entry-grid {
  position: relative;
  z-index: 5;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(410px, 500px);
  gap: clamp(18px, 2.5vw, 36px);
  align-items: stretch;
  min-height: calc(100svh - 60px);
  padding: clamp(24px, 3.2vw, 50px);
}
.home-room-copy,
.home-room-entry-panel {
  min-width: 0;
  backdrop-filter: blur(16px) saturate(1.08);
}
.home-room-copy {
  align-self: end;
  width: min(100%, 760px);
  margin-bottom: clamp(4px, 2vh, 22px);
  padding: clamp(22px, 3vw, 34px);
  border: 1px solid rgb(112 222 181 / 42%);
  background: linear-gradient(145deg, rgb(3 15 12 / 94%), rgb(4 14 12 / 82%));
  box-shadow: 0 24px 72px rgb(0 0 0 / 46%);
}
.home-room-copy .eyebrow { color: #efc15f; }
.home-room-copy .public-home-title {
  max-width: 17ch;
  gap: 8px;
  margin: 9px 0 12px;
}
.home-room-copy .public-home-title-primary {
  font-size: clamp(2.55rem, 4.7vw, 4.85rem);
  text-shadow: 0 12px 38px rgb(0 0 0 / 45%);
}
.home-room-copy .public-home-title-secondary {
  max-width: 29ch;
  font-size: clamp(1.18rem, 2vw, 1.9rem);
  line-height: 1.06;
}
.home-room-copy .lede {
  max-width: 62ch;
  margin: 0;
  color: #dce8e2;
  font-size: clamp(.92rem, 1.15vw, 1.08rem);
  line-height: 1.52;
}
.home-room-copy .public-hero-actions {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
  gap: 8px;
  margin-top: 17px;
}
.home-room-copy .button-large {
  min-height: 48px;
  padding: 10px 13px;
  font-size: .72rem;
  text-align: center;
}
.home-room-entry-note {
  margin: 10px 0 0;
  color: #b6c8c0;
  font: 650 .65rem/1.43 ui-monospace, SFMono-Regular, Consolas, monospace;
}
.home-room-copy .public-hero-facts {
  max-width: 650px;
  margin-top: 13px;
  border-color: rgb(112 195 164 / 27%);
  background: rgb(112 195 164 / 14%);
}
.home-room-copy .public-hero-facts li {
  min-height: 52px;
  padding: 8px 11px;
  background: rgb(3 13 11 / 87%);
}
.home-room-copy .public-hero-facts span { font-size: .72rem; }
.home-room-entry-panel {
  align-self: center;
  display: grid;
  grid-template-rows: auto auto auto auto minmax(0, 1fr) auto auto auto auto;
  width: 100%;
  height: min(760px, calc(100svh - 86px));
  min-height: 590px;
  max-height: calc(100svh - 76px);
  padding: 15px;
  overflow: hidden;
  border: 1px solid #d9aa50;
  border-radius: 6px;
  background: rgb(3 15 12 / 97%);
  box-shadow: 0 24px 82px rgb(0 0 0 / 56%);
}
.home-room-entry-panel::before { display: none; }
.home-room-entry-panel > * { position: relative; z-index: 1; }
.home-room-entry-panel .public-hero-brief-topline { gap: 10px; }
.home-room-entry-number {
  display: inline-flex;
  min-height: 24px;
  align-items: center;
  padding: 3px 7px;
  border: 1px solid rgb(113 225 183 / 42%);
  border-radius: 999px;
  color: #91e7c2;
  background: rgb(113 225 183 / 6%);
  font: 800 .5rem/1.2 ui-monospace, SFMono-Regular, Consolas, monospace;
  letter-spacing: .06em;
  text-transform: uppercase;
  white-space: nowrap;
}
.home-room-entry-panel h2 {
  margin: 6px 0 0;
  font-size: clamp(1.24rem, 1.8vw, 1.65rem);
  line-height: 1.04;
  letter-spacing: -.026em;
  text-transform: none;
}
.home-room-entry-lead {
  margin: 6px 0 8px;
  color: #c4d0cb;
  font-size: .68rem;
  line-height: 1.38;
}
.home-room-agreement-facts {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  margin: 0 0 8px;
  border: 1px solid rgb(178 211 198 / 20%);
  background: rgb(178 211 198 / 20%);
}
.home-room-agreement-facts div {
  min-width: 0;
  padding: 7px 8px;
  background: rgb(4 17 13 / 94%);
}
.home-room-agreement-facts dt {
  color: #91aaa0;
  font: 750 .48rem/1.2 ui-monospace, SFMono-Regular, Consolas, monospace;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.home-room-agreement-facts dd {
  margin: 4px 0 0;
  color: #f0f4f1;
  font: 800 .58rem/1.25 ui-monospace, SFMono-Regular, Consolas, monospace;
  overflow-wrap: anywhere;
}
.home-room-agreement-scroll {
  min-height: 0;
  padding: 2px 7px 8px 0;
  overflow: auto;
  overscroll-behavior: contain;
  scrollbar-color: #7f8e88 transparent;
  scrollbar-width: thin;
}
.home-room-agreement-scroll:focus-visible {
  border-radius: 2px;
  outline: 2px solid rgb(113 225 183 / 62%);
  outline-offset: 2px;
}
.home-room-agreement-summary {
  display: grid;
  gap: 7px;
  margin: 0;
  padding-left: 18px;
  color: #d2dcd7;
  font-size: .59rem;
  line-height: 1.39;
}
.home-room-agreement-summary li::marker { color: #e0b45e; }
.home-room-acknowledgements {
  display: grid;
  gap: 6px;
  margin: 11px 0 0;
  padding: 9px;
  border: 1px solid rgb(177 219 202 / 28%);
}
.home-room-acknowledgements legend {
  padding: 0 5px;
  color: #e3b860;
  font: 850 .66rem/1.2 system-ui, sans-serif;
  text-transform: none;
}
.home-room-acknowledgements label {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 7px;
  align-items: start;
  color: #d7e0dc;
  font-size: .58rem;
  font-weight: 700;
  line-height: 1.33;
  cursor: pointer;
}
.home-room-acknowledgements input {
  width: 16px;
  height: 16px;
  margin: 1px 0 0;
  accent-color: #72dfb6;
}
.home-room-entry-privacy {
  margin: 7px 0 0;
  padding: 6px 8px;
  border-left: 3px solid rgb(116 221 181 / 62%);
  background: rgb(116 221 181 / 4.5%);
  color: #becbc6;
  font-size: .54rem;
  line-height: 1.34;
}
.home-room-entry-actions {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 7px;
  align-items: center;
  margin-top: 8px;
  padding-top: 8px;
  border-top: 1px solid rgb(173 218 201 / 20%);
}
.home-room-entry-actions .button {
  min-height: 40px;
  padding: 8px 10px;
  font-size: .61rem;
  text-align: center;
  text-decoration: none;
}
.home-room-entry-actions .tertiary {
  color: #b9d8ca;
  white-space: nowrap;
}
.home-room-entry-status {
  min-height: 1.2em;
  margin: 6px 0 0;
  color: #99d9bd;
  font: 700 .54rem/1.3 ui-monospace, SFMono-Regular, Consolas, monospace;
}
.home-room-entry-panel[data-entry-ready="true"] .home-room-entry-status { color: #d9bb72; }
.home-room-entry-creator {
  margin: 5px 0 0;
  padding-top: 5px;
  border-top: 1px solid rgb(178 211 198 / 12%);
  font-size: .52rem;
  line-height: 1.3;
}
.home-room-entry-noscript {
  margin: 6px 0 0;
  color: #ffc2b4;
  font-size: .58rem;
  line-height: 1.35;
}

@media (max-width: 1120px) {
  .home-room-entry-grid {
    grid-template-columns: minmax(0, 1fr) minmax(390px, 46vw);
    gap: 16px;
    padding: 18px;
  }
  .home-room-copy { padding: 22px; }
  .home-room-copy .public-home-title-primary { font-size: clamp(2.35rem, 4.9vw, 4.1rem); }
  .home-room-copy .public-home-title-secondary { font-size: clamp(1.08rem, 2vw, 1.55rem); }
}

@media (max-width: 700px) {
  .home-room-entry {
    min-height: 0;
    padding-top: clamp(170px, 32vh, 280px);
    background: #040b09;
  }
  .home-room-scene {
    bottom: auto;
    height: clamp(220px, 42vh, 360px);
  }
  .home-room-scene-vignette {
    background:
      linear-gradient(180deg, rgb(2 7 6 / 16%) 0 28%, rgb(2 7 6 / 48%) 62%, #040b09 100%),
      radial-gradient(ellipse at 52% 34%, transparent 22%, rgb(0 0 0 / 50%) 100%);
  }
  .home-room-entry-grid {
    grid-template-columns: minmax(0, 1fr);
    min-height: 0;
    gap: 12px;
    padding: 14px 16px 20px;
  }
  .home-room-copy {
    order: 2;
    width: 100%;
    margin: 0;
    padding: 20px;
  }
  .home-room-copy .public-home-title { max-width: 22ch; }
  .home-room-copy .public-home-title-primary { font-size: clamp(2.35rem, 8vw, 4rem); }
  .home-room-copy .public-home-title-secondary { font-size: clamp(1.12rem, 3.6vw, 1.75rem); }
  .home-room-entry-panel {
    order: 1;
    width: 100%;
    height: min(760px, calc(100dvh - 32px));
    min-height: 580px;
    max-height: none;
    background: rgb(3 15 12 / 94%);
  }
}

@media (max-width: 620px) {
  .public-home-content { width: min(100% - 20px, 1400px); }
  .home-room-scene { height: clamp(220px, 42vh, 350px); }
  .home-room-scene-labels { top: 10px; left: 10px; padding: 6px 8px; }
  .home-room-scene-labels span { font-size: .43rem; }
  .home-room-scene-labels strong { font-size: .57rem; }
  .home-room-entry-grid { padding-inline: 10px; }
  .home-room-copy { padding: 16px; backdrop-filter: blur(10px); }
  .home-room-copy .public-home-title { gap: 5px; margin-block: 6px 9px; }
  .home-room-copy .public-home-title-primary { font-size: clamp(2.05rem, 10.8vw, 3.2rem); }
  .home-room-copy .public-home-title-secondary { font-size: clamp(1.03rem, 5.3vw, 1.5rem); }
  .home-room-copy .lede { font-size: .86rem; line-height: 1.42; }
  .home-room-copy .public-hero-actions { grid-template-columns: 1fr; gap: 7px; margin-top: 12px; }
  .home-room-copy .button-large { width: 100%; min-height: 46px; }
  .home-room-entry-note { font-size: .59rem; }
  .home-room-copy .public-hero-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .home-room-copy .public-hero-facts li { min-height: 48px; padding: 7px; }
  .home-room-copy .public-hero-facts strong { font-size: .6rem; }
  .home-room-copy .public-hero-facts span { font-size: .62rem; }
  .home-room-entry-panel {
    height: min(760px, calc(100dvh - 20px));
    min-height: 500px;
    padding: 12px;
  }
  .home-room-entry-panel h2 { font-size: 1.18rem; }
  .home-room-entry-lead { font-size: .63rem; }
  .home-room-agreement-facts dd { font-size: .53rem; }
  .home-room-agreement-summary { font-size: .56rem; }
  .home-room-acknowledgements label { font-size: .55rem; }
  .home-room-entry-actions { grid-template-columns: 1fr; }
  .home-room-entry-actions .button { width: 100%; white-space: normal; }
}

@media (max-width: 390px) {
  .home-room-entry-grid { padding-inline: 7px; }
  .home-room-copy,
  .home-room-entry-panel { padding-inline: 12px; }
  .home-room-agreement-facts { grid-template-columns: 1fr; }
  .home-room-agreement-facts div { display: flex; justify-content: space-between; gap: 10px; }
  .home-room-agreement-facts dd { margin: 0; text-align: right; }
}

@media (max-height: 560px) and (min-width: 701px) {
  .home-room-entry {
    min-height: calc(100svh - 52px);
    padding: 0;
  }
  .home-room-scene { inset: 0; height: auto; }
  .home-room-entry-grid {
    grid-template-columns: minmax(0, 1fr) minmax(350px, 46vw);
    gap: 8px;
    min-height: calc(100svh - 52px);
    padding: 8px;
  }
  .home-room-scene-labels { top: 6px; left: 9px; padding: 4px 7px; }
  .home-room-copy {
    order: 0;
    align-self: end;
    margin: 0;
    padding: 11px 13px;
  }
  .home-room-copy .eyebrow { font-size: .49rem; }
  .home-room-copy .public-home-title { gap: 3px; margin-block: 3px 5px; }
  .home-room-copy .public-home-title-primary { font-size: clamp(1.45rem, 3.1vw, 2rem); }
  .home-room-copy .public-home-title-secondary { font-size: clamp(.79rem, 1.6vw, 1.02rem); }
  .home-room-copy .lede { font-size: .65rem; line-height: 1.3; }
  .home-room-copy .public-hero-actions { gap: 5px; margin-top: 7px; }
  .home-room-copy .button-large { min-height: 37px; padding: 6px 8px; font-size: .56rem; }
  .home-room-entry-note,
  .home-room-copy .public-hero-facts { display: none; }
  .home-room-entry-panel {
    order: 0;
    align-self: center;
    height: calc(100svh - 68px);
    min-height: 0;
    max-height: none;
    padding: 9px 10px;
  }
  .home-room-entry-panel .classification { font-size: .46rem; }
  .home-room-entry-number { min-height: 20px; font-size: .44rem; }
  .home-room-entry-panel h2 { margin-top: 3px; font-size: .96rem; }
  .home-room-entry-lead { margin-block: 3px 5px; font-size: .51rem; }
  .home-room-agreement-facts { display: none; }
  .home-room-agreement-summary { gap: 4px; font-size: .47rem; line-height: 1.28; }
  .home-room-acknowledgements { gap: 3px; margin-top: 6px; padding: 6px; }
  .home-room-acknowledgements legend { font-size: .54rem; }
  .home-room-acknowledgements label { gap: 5px; font-size: .46rem; line-height: 1.25; }
  .home-room-acknowledgements input { width: 13px; height: 13px; }
  .home-room-entry-privacy { margin-top: 4px; padding: 4px 6px; font-size: .43rem; }
  .home-room-entry-actions { gap: 5px; margin-top: 4px; padding-top: 4px; }
  .home-room-entry-actions .button { min-height: 32px; padding: 4px 6px; font-size: .48rem; }
  .home-room-entry-status { margin-top: 3px; font-size: .43rem; }
  .home-room-entry-creator { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  #home-room-scene-canvas,
  .home-room-scene-fallback { transition: none !important; }
}

@media (forced-colors: active) {
  .home-room-scene,
  .home-room-scene-labels { display: none; }
  .home-room-entry {
    background: Canvas;
    color: CanvasText;
  }
  .home-room-copy,
  .home-room-entry-panel {
    border: 1px solid CanvasText;
    background: Canvas;
    color: CanvasText;
    backdrop-filter: none;
    box-shadow: none;
  }
  .home-room-agreement-facts,
  .home-room-agreement-facts div,
  .home-room-acknowledgements,
  .home-room-entry-privacy { border: 1px solid CanvasText; background: Canvas; }
}


/* 0.18.55 narrow-phone room-entry compaction. */
@media (max-width: 340px) and (max-height: 650px) {
  .home-room-scene-labels { top: 7px; left: 7px; }
  .home-room-entry-grid { gap: 8px; padding-inline: 6px; padding-bottom: 12px; }
  .home-room-copy { padding: 10px 11px; }
  .home-room-copy .eyebrow { font-size: .46rem; }
  .home-room-copy .public-home-title { gap: 3px; margin-block: 4px 7px; }
  .home-room-copy .public-home-title-primary { font-size: 1.72rem; line-height: .92; }
  .home-room-copy .public-home-title-secondary { font-size: .88rem; line-height: 1.02; }
  .home-room-copy .lede { font-size: .68rem; line-height: 1.28; }
  .home-room-copy .public-hero-actions { grid-template-columns: 1fr 1fr; gap: 5px; margin-top: 8px; }
  .home-room-copy .button-large { min-height: 38px; padding: 5px 6px; font-size: .49rem; line-height: 1.1; }
  .home-room-entry-note,
  .home-room-copy .public-hero-facts { display: none; }
}

/* 0.18.55 release-scoped, clean home entry menu and bounded agreement review. */
.home-room-entry-panel [hidden] { display: none !important; }
.home-room-entry-panel {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.home-room-entry-panel .public-hero-brief-topline {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 7px 12px;
  margin-bottom: 6px;
}
.home-room-entry-panel > [data-home-entry-choices],
.home-room-entry-panel > [data-home-entry-agreement] {
  min-height: 0;
  overflow: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
  padding-right: 5px;
}
.home-room-entry-panel > [data-home-entry-choices] {
  flex: 1 1 auto;
}
.home-entry-action-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 8px;
  margin-top: 12px;
}
.home-entry-group-disclosure {
  min-width: 0;
}
.home-entry-group-disclosure > summary {
  list-style: none;
}
.home-entry-group-disclosure > summary::-webkit-details-marker { display: none; }
.home-entry-action {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  width: 100%;
  min-height: 62px;
  padding: 10px 12px;
  border: 1px solid rgba(129, 226, 193, .38);
  border-radius: 9px;
  background: linear-gradient(135deg, rgba(7, 23, 19, .96), rgba(8, 17, 17, .92));
  color: var(--paper, #eef7f2);
  text-align: left;
  text-decoration: none;
  box-sizing: border-box;
  cursor: pointer;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .025);
  transition: border-color 140ms ease, transform 140ms ease, background 140ms ease;
}
.home-entry-action:hover,
.home-entry-action:focus-visible,
.home-entry-group-disclosure[open] > .home-entry-action {
  border-color: rgba(151, 245, 213, .9);
  background: linear-gradient(135deg, rgba(20, 61, 49, .96), rgba(9, 28, 24, .96));
  transform: translateY(-1px);
}
.home-entry-action-copy,
.home-entry-action-copy > strong,
.home-entry-action-copy > span { display: block; min-width: 0; }
.home-entry-action-copy > strong {
  font-size: .82rem;
  line-height: 1.18;
  letter-spacing: .005em;
}
.home-entry-action-copy > span {
  margin-top: 3px;
  color: rgba(226, 240, 234, .75);
  font-size: .61rem;
  line-height: 1.34;
}
.home-entry-action-mark {
  display: grid;
  place-items: center;
  width: 30px;
  height: 30px;
  border: 1px solid rgba(112, 223, 183, .32);
  border-radius: 999px;
  color: #91e7c2;
  font-size: 1rem;
  line-height: 1;
}
.home-entry-action-patient {
  border-color: rgba(226, 180, 84, .58);
  background: linear-gradient(135deg, rgba(50, 35, 12, .72), rgba(10, 24, 20, .95));
}
.home-entry-group-disclosure[open] {
  padding: 0 0 8px;
  border: 1px solid rgba(129, 226, 193, .32);
  border-radius: 10px;
  background: rgba(4, 12, 12, .78);
}
.home-entry-group-disclosure[open] > .home-entry-action {
  border-color: transparent;
  border-bottom-color: rgba(129, 226, 193, .28);
  border-radius: 9px 9px 0 0;
  transform: none;
}
.home-group-code {
  margin: 8px 10px 0;
  padding: 10px;
  border: 1px solid rgba(217, 187, 114, .42);
  border-radius: 8px;
  background: rgba(8, 14, 15, .94);
}
.home-group-code label { display: block; margin-bottom: 6px; font-weight: 800; font-size: .68rem; }
.home-group-code > div { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; }
.home-group-code input {
  width: 100%;
  min-height: 42px;
  padding: 8px 11px;
  border: 1px solid rgba(129, 226, 193, .55);
  border-radius: 7px;
  background: #06100f;
  color: #f5fff9;
  font: 800 1rem/1 ui-monospace, SFMono-Regular, Consolas, monospace;
  letter-spacing: .16em;
  text-transform: uppercase;
  box-sizing: border-box;
}
.home-group-code small { display: block; margin-top: 6px; color: rgba(226, 240, 234, .68); font-size: .57rem; }
.home-group-code > .button { margin-top: 7px; }
.home-entry-account-memory {
  display: grid;
  gap: 3px;
  margin-top: 10px;
  padding: 9px 10px;
  border: 1px solid rgba(129, 226, 193, .45);
  border-radius: 9px;
  background: rgba(35, 96, 75, .17);
  font-size: .61rem;
  line-height: 1.4;
}
.home-entry-account-memory strong { color: #c7ffe9; }
.home-entry-information-link { margin: 8px 0 0; font-size: .6rem; }
.home-entry-agreement-heading { display: flex; align-items: flex-start; gap: 10px; }
.home-entry-agreement-heading h2 { margin: 0; flex: 1; }
.home-room-entry-status { min-height: 1.1em; }
.home-room-entry-status.error { color: #ffaaa0; }

@media (max-width: 700px) {
  .home-room-entry-panel > [data-home-entry-choices],
  .home-room-entry-panel > [data-home-entry-agreement] { overflow: visible; padding-right: 0; }
  .home-entry-action { min-height: 60px; }
}

@media (max-height: 560px) and (min-width: 701px) {
  .home-entry-action-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 5px; margin-top: 6px; }
  .home-entry-group-disclosure { grid-column: 1 / -1; }
  .home-entry-action { min-height: 48px; padding: 6px 8px; gap: 7px; }
  .home-entry-action-copy > strong { font-size: .55rem; }
  .home-entry-action-copy > span { margin-top: 2px; font-size: .43rem; }
  .home-entry-action-mark { width: 22px; height: 22px; font-size: .72rem; }
  .home-entry-account-memory { margin-top: 5px; padding: 5px 7px; font-size: .43rem; }
  .home-entry-information-link { margin-top: 4px; font-size: .44rem; }
  .home-group-code { margin: 6px 7px 0; padding: 7px; }
  .home-group-code input { min-height: 32px; font-size: .7rem; }
}

/* 0.18.55 complete seven-part game-gateway agreement. */
.adult-acknowledgements {
  display: grid;
  gap: 8px;
  max-height: min(42dvh, 360px);
  margin: 14px 0 10px;
  padding: 12px;
  overflow-y: auto;
  border: 1px solid rgba(129, 226, 193, .34);
  border-radius: 10px;
  background: rgba(4, 13, 13, .7);
}
.adult-acknowledgements legend {
  padding: 0 6px;
  color: var(--ri-gold, #d9bb72);
  font-weight: 800;
  font-size: .75rem;
  letter-spacing: .05em;
  text-transform: uppercase;
}
.adult-acknowledgements label {
  display: grid;
  grid-template-columns: 22px minmax(0, 1fr);
  gap: 9px;
  align-items: start;
  font-size: .78rem;
  line-height: 1.4;
}
.adult-acknowledgements input {
  width: 20px;
  height: 20px;
  margin: 1px 0 0;
  accent-color: var(--ri-signal, #77e6c3);
}

/* 0.18.55 extreme-narrow public-header containment. */
@media (max-width: 300px) {
  .public-header {
    gap: 3px;
    padding-inline: 5px;
  }
  .public-brand img { max-width: 88px; }
  .public-nav a,
  .public-nav summary {
    padding-inline: 4px;
    font-size: .56rem;
    letter-spacing: .035em;
  }
  .public-nav summary::after { margin-left: 3px; }
  .header-enter {
    padding-inline: 6px;
    font-size: .58rem;
    letter-spacing: 0;
  }
}

/* 0.18.55 coherent home-entry cards and mixed-generation-safe play agreement. */
.home-room-entry-panel[data-entry-view="choices"] {
  grid-template-rows: auto auto;
  height: auto;
  min-height: 0;
  max-height: min(42rem, calc(100svh - 5.375rem));
}
.home-room-entry-panel[data-entry-view="agreement"] {
  grid-template-rows: auto minmax(0, 1fr) auto auto auto;
  height: min(47.5rem, calc(100svh - 5.375rem));
  min-height: 36rem;
}
.home-entry-action-grid {
  align-items: start;
  gap: 10px;
  margin-top: 12px;
}
.home-entry-group-disclosure {
  min-width: 0;
}
.home-entry-group-disclosure > summary {
  list-style: none;
}
.home-entry-group-disclosure > summary::-webkit-details-marker {
  display: none;
}
.home-entry-action {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  width: 100%;
  min-width: 0;
  min-height: 76px;
  padding: 12px 13px;
  text-decoration: none;
  white-space: normal;
}
.home-entry-action-copy {
  display: grid;
  gap: 4px;
  min-width: 0;
}
.home-entry-action-copy strong,
.home-entry-action-copy > span {
  display: block;
  margin: 0;
  overflow-wrap: anywhere;
}
.home-entry-action-copy strong {
  color: #f1f8f4;
  font-size: .8rem;
  line-height: 1.2;
}
.home-entry-action-copy > span {
  color: rgba(226, 240, 234, .76);
  font-size: .63rem;
  line-height: 1.38;
}
.home-entry-action-mark {
  display: block;
  margin: 0;
  color: #77e6c3;
  font: 900 1.08rem/1 system-ui, sans-serif;
}
.home-entry-group-disclosure[open] > .home-entry-action {
  border-color: rgba(217, 187, 114, .8);
  border-bottom-left-radius: 4px;
  border-bottom-right-radius: 4px;
  background: rgba(21, 46, 39, .94);
}
.home-entry-group-disclosure[open] .home-entry-action-mark {
  rotate: 90deg;
}
.home-entry-group-disclosure .home-group-code {
  margin-top: 5px;
  border-top-left-radius: 4px;
  border-top-right-radius: 4px;
}
.home-entry-action-patient {
  border-color: rgba(217, 187, 114, .55);
  background: linear-gradient(135deg, rgba(37, 34, 20, .72), rgba(7, 18, 18, .9));
}
.home-room-entry-panel[data-account-state="guest"] [data-home-auth-only],
.home-room-entry-panel[data-account-state="signed-in"] [data-home-guest-only] {
  display: none !important;
}

.play-page .adult-gate {
  place-items: center;
  padding: clamp(8px, 2vw, 24px);
  background:
    radial-gradient(circle at 78% 18%, rgba(77, 181, 165, .16), transparent 30rem),
    radial-gradient(circle at 12% 82%, rgba(214, 168, 75, .14), transparent 30rem),
    rgba(4, 8, 10, .988);
}
.play-page .adult-gate-card {
  display: grid;
  width: min(1120px, 100%);
  max-height: calc(100dvh - clamp(16px, 4vw, 48px));
  min-height: 0;
  padding: 0;
  overflow: hidden;
  border-color: rgba(217, 170, 80, .62);
  border-radius: 12px;
  background: #0a1111;
  box-shadow: 0 24px 80px rgba(0, 0, 0, .58);
}
.play-page .adult-gate-card::before {
  display: none;
}
.play-page .adult-gate-content {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
  min-height: 0;
  max-height: inherit;
}
.play-page .adult-gate-header {
  display: grid;
  gap: 6px;
  padding: clamp(16px, 2.2vw, 24px);
  border-bottom: 1px solid rgba(129, 226, 193, .2);
  background: linear-gradient(135deg, rgba(7, 24, 20, .98), rgba(7, 14, 14, .98));
}
.play-page .adult-gate-brand-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}
.play-page .adult-gate-wordmark {
  width: min(210px, 55%);
  max-height: 40px;
  margin: 0;
}
.play-page .adult-age-mark {
  display: inline-grid;
  place-items: center;
  min-width: 52px;
  min-height: 32px;
  padding: 4px 9px;
  border: 1px solid #d9aa50;
  border-radius: 999px;
  color: #f3cb76;
  font: 900 .7rem/1 ui-monospace, SFMono-Regular, Consolas, monospace;
  letter-spacing: .08em;
}
.play-page .adult-gate-header h1 {
  max-width: none;
  margin: 2px 0 0;
  font-size: clamp(1.55rem, 3vw, 2.45rem);
  line-height: 1.02;
  letter-spacing: -.03em;
  text-transform: none;
}
.play-page .adult-gate-header p {
  max-width: 82ch;
  margin: 0;
  color: #c4d1cb;
  font-size: .86rem;
  line-height: 1.46;
}
.play-page .adult-gate-layout {
  display: grid;
  grid-template-columns: minmax(250px, .72fr) minmax(380px, 1.28fr);
  gap: clamp(12px, 1.8vw, 20px);
  min-height: 0;
  padding: clamp(12px, 1.8vw, 20px);
  overflow: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
}
.play-page .adult-gate-summary {
  align-self: start;
  display: grid;
  gap: 11px;
  min-width: 0;
  padding: 14px;
  border: 1px solid rgba(129, 226, 193, .24);
  border-radius: 10px;
  background: rgba(5, 18, 15, .72);
}
.play-page .adult-gate-summary h2 {
  max-width: none;
  margin: 0;
  font-size: 1.06rem;
  line-height: 1.15;
  text-transform: none;
}
.play-page .adult-gate-summary-list {
  display: grid;
  gap: 10px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.play-page .adult-gate-summary-list li {
  display: grid;
  gap: 3px;
  padding-left: 11px;
  border-left: 2px solid rgba(112, 223, 183, .55);
}
.play-page .adult-gate-summary-list strong {
  color: #f0f6f3;
  font-size: .76rem;
}
.play-page .adult-gate-summary-list span {
  color: #afc1b9;
  font-size: .68rem;
  line-height: 1.4;
}
.play-page .adult-provider-details {
  padding-top: 10px;
  border-top: 1px solid rgba(129, 226, 193, .2);
}
.play-page .adult-provider-details summary {
  color: #c7f4e1;
  font-size: .7rem;
  font-weight: 800;
  cursor: pointer;
}
.play-page .adult-provider-details p {
  margin: 9px 0 0;
  color: #afc1b9;
  font-size: .66rem;
  line-height: 1.45;
}
.play-page .adult-acknowledgements {
  display: grid;
  align-content: start;
  gap: 8px;
  max-height: none;
  min-width: 0;
  margin: 0;
  padding: 12px;
  overflow: visible;
  border-color: rgba(217, 170, 80, .42);
  border-radius: 10px;
  background: rgba(3, 13, 13, .76);
}
.play-page .adult-acknowledgements legend {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  width: calc(100% - 10px);
  padding: 0 5px;
  color: #e4bd69;
  font-size: .72rem;
  letter-spacing: .02em;
  text-transform: none;
}
.play-page .adult-acknowledgements legend strong {
  color: #9adfc3;
  font: 800 .62rem/1.2 ui-monospace, SFMono-Regular, Consolas, monospace;
  white-space: nowrap;
}
.play-page .adult-acknowledgements label {
  display: grid;
  grid-template-columns: 20px minmax(0, 1fr);
  gap: 10px;
  align-items: start;
  min-width: 0;
  padding: 10px;
  border: 1px solid rgba(129, 226, 193, .16);
  border-radius: 8px;
  background: rgba(9, 24, 21, .72);
  font-size: inherit;
  line-height: normal;
  cursor: pointer;
}
.play-page .adult-acknowledgements label:hover,
.play-page .adult-acknowledgements label:focus-within {
  border-color: rgba(129, 226, 193, .52);
  background: rgba(16, 42, 35, .82);
}
.play-page .adult-acknowledgements input {
  width: 19px;
  height: 19px;
  margin: 1px 0 0;
}
.play-page .adult-acknowledgement-copy {
  display: grid;
  gap: 3px;
  min-width: 0;
}
.play-page .adult-acknowledgement-copy strong {
  color: #f0f6f3;
  font-size: .72rem;
  line-height: 1.2;
}
.play-page .adult-acknowledgement-copy span {
  color: #c5d1cc;
  font-size: .68rem;
  line-height: 1.38;
  overflow-wrap: anywhere;
}
.play-page .adult-acknowledgements[data-complete="true"] {
  border-color: rgba(112, 223, 183, .74);
  box-shadow: inset 0 0 0 1px rgba(112, 223, 183, .15);
}
.play-page .adult-gate-footer {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px 16px;
  align-items: center;
  padding: 14px clamp(16px, 2.2vw, 24px);
  border-top: 1px solid rgba(129, 226, 193, .2);
  background: #07100f;
}
.play-page .gate-privacy {
  margin: 0;
  color: #9fb2aa;
  font-size: .65rem !important;
  line-height: 1.4;
}
.play-page .adult-gate-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
}
.play-page .adult-gate-actions .button {
  min-height: 44px;
  padding: 9px 13px;
  font-size: .68rem;
}
.play-page .adult-gate-status {
  grid-column: 1 / -1;
  min-height: 1.1em;
  margin: 0;
  color: #9adfc3;
  font: 750 .62rem/1.3 ui-monospace, SFMono-Regular, Consolas, monospace;
}
.play-page .adult-gate-status.error {
  color: #ffaaa0;
}
.play-page .adult-denied {
  padding: clamp(24px, 4vw, 48px);
}
.play-page .adult-denied h2 {
  max-width: none;
  margin: 8px 0 12px;
  font-size: clamp(1.5rem, 4vw, 2.5rem);
  line-height: 1.05;
  text-transform: none;
}

@media (max-width: 800px) {
  .home-room-entry-panel[data-entry-view="choices"] {
    height: auto;
    min-height: 0;
    max-height: none;
  }
  .play-page .adult-gate {
    place-items: start center;
  }
  .play-page .adult-gate-card,
  .play-page .adult-gate-content {
    max-height: none;
  }
  .play-page .adult-gate-layout {
    grid-template-columns: 1fr;
    overflow: visible;
  }
  .play-page .adult-gate-footer {
    grid-template-columns: 1fr;
  }
  .play-page .adult-gate-actions {
    justify-content: stretch;
  }
  .play-page .adult-gate-actions .button {
    flex: 1 1 190px;
  }
  body.play-page.age-pending {
    overflow: auto;
  }
}

@media (max-width: 700px) {
  .home-entry-action-grid {
    grid-template-columns: 1fr;
  }
  .home-entry-action {
    min-height: 66px;
  }
}

@media (max-width: 510px) {
  .play-page .adult-gate {
    padding: 5px;
  }
  .play-page .adult-gate-card {
    border-radius: 7px;
  }
  .play-page .adult-gate-header,
  .play-page .adult-gate-layout,
  .play-page .adult-gate-footer {
    padding: 12px;
  }
  .play-page .adult-gate-header h1 {
    font-size: 1.45rem;
  }
  .play-page .adult-gate-header p {
    font-size: .76rem;
  }
  .play-page .adult-gate-summary-list span,
  .play-page .adult-acknowledgement-copy span {
    font-size: .64rem;
  }
  .play-page .adult-acknowledgements {
    padding: 9px;
  }
  .play-page .adult-acknowledgements label {
    padding: 9px;
  }
  .play-page .adult-gate-actions {
    display: grid;
    grid-template-columns: 1fr;
  }
  .play-page .adult-gate-actions .button {
    width: 100%;
  }
}

@media (max-height: 610px) and (min-width: 801px) {
  .play-page .adult-gate-header {
    padding-block: 10px;
  }
  .play-page .adult-gate-header h1 {
    font-size: 1.35rem;
  }
  .play-page .adult-gate-header p {
    font-size: .7rem;
  }
  .play-page .adult-gate-layout {
    gap: 9px;
    padding: 9px;
  }
  .play-page .adult-gate-summary {
    gap: 6px;
    padding: 9px;
  }
  .play-page .adult-gate-summary-list {
    gap: 6px;
  }
  .play-page .adult-gate-summary-list span,
  .play-page .adult-acknowledgement-copy span {
    font-size: .57rem;
    line-height: 1.28;
  }
  .play-page .adult-acknowledgements {
    gap: 4px;
    padding: 7px;
  }
  .play-page .adult-acknowledgements label {
    padding: 6px;
  }
  .play-page .adult-gate-footer {
    padding-block: 8px;
  }
}

@media (forced-colors: active) {
  .home-entry-action,
  .home-entry-group-disclosure .home-group-code,
  .play-page .adult-gate-card,
  .play-page .adult-gate-header,
  .play-page .adult-gate-summary,
  .play-page .adult-acknowledgements,
  .play-page .adult-acknowledgements label,
  .play-page .adult-gate-footer {
    border: 1px solid CanvasText;
    background: Canvas;
    color: CanvasText;
    box-shadow: none;
  }
}

/* 0.18.55 single-screen home entry and direct gateway refinement. */
.home-room-page {
  min-height: 100svh;
  overflow: hidden;
}
.home-room-page .public-home-main {
  min-height: calc(100svh - 60px);
  padding: 0;
}
.home-room-page .home-room-entry,
.home-room-page .home-room-entry-grid {
  min-height: calc(100svh - 60px);
}
.home-room-page .home-room-entry-grid {
  align-items: center;
  gap: clamp(18px, 2.8vw, 42px);
  padding: clamp(14px, 2.5vw, 34px);
}
.home-room-page .home-room-copy {
  align-self: center;
  max-width: 46rem;
}
.home-room-page .home-room-copy .public-hero-title,
.home-room-page .home-room-copy .public-home-title {
  margin-bottom: 12px;
}
.home-room-page .home-room-entry-note {
  max-width: 66ch;
  margin: 12px 0 0;
  color: #c2d1ca;
  line-height: 1.48;
}
.home-room-page .home-room-entry-panel {
  align-self: center;
  height: min(42rem, calc(100svh - 82px));
  min-height: 33rem;
  max-height: calc(100svh - 82px);
  padding: clamp(12px, 1.5vw, 18px);
}
.home-room-entry-panel > [data-home-entry-choices],
.home-room-entry-panel > [data-home-entry-agreement] {
  scrollbar-gutter: stable;
}
.home-entry-step {
  display: flex;
  align-items: center;
  gap: 7px;
  color: #a8c8ba;
  font: 800 .58rem/1.2 ui-monospace, SFMono-Regular, Consolas, monospace;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.home-entry-step > span {
  display: grid;
  place-items: center;
  width: 22px;
  height: 22px;
  border: 1px solid rgba(112, 223, 183, .55);
  border-radius: 999px;
  color: #70dfb7;
}
.home-entry-action-grid {
  grid-template-columns: 1fr;
  gap: 8px;
  margin-top: 10px;
}
.home-entry-action {
  min-height: 58px;
  padding: 10px 12px;
  border-radius: 8px;
}
.home-entry-action:hover,
.home-entry-action:focus-visible {
  border-color: #70dfb7;
  background: rgba(19, 48, 39, .98);
}
.home-entry-action-copy strong {
  font-size: .82rem;
}
.home-entry-action-copy > span {
  font-size: .65rem;
}
.home-entry-action-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 32px;
  padding: 6px 9px;
  border: 1px solid rgba(112, 223, 183, .45);
  border-radius: 6px;
  color: #bff6df;
  font: 850 .58rem/1.1 ui-monospace, SFMono-Regular, Consolas, monospace;
  text-transform: uppercase;
  white-space: nowrap;
}
.home-entry-action-patient {
  border-color: rgba(217, 170, 80, .82);
  background: rgba(48, 34, 12, .42);
}
.home-entry-join-card {
  display: grid;
  gap: 8px;
  min-width: 0;
  padding: 11px 12px;
  border: 1px solid rgba(217, 170, 80, .82);
  border-radius: 8px;
  background: rgba(11, 25, 20, .98);
}
.home-entry-join-card label {
  display: grid;
  gap: 3px;
}
.home-entry-join-card label strong {
  font-size: .82rem;
}
.home-entry-join-card label span {
  color: #bed0c8;
  font-size: .65rem;
  line-height: 1.35;
}
.home-group-code-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 7px;
}
.home-group-code-row input {
  min-width: 0;
  width: 100%;
  min-height: 44px;
  padding: 8px 10px;
  border: 1px solid #70dfb7;
  border-radius: 6px;
  background: #030907;
  color: #f5fff9;
  font: 850 .9rem/1 ui-monospace, SFMono-Regular, Consolas, monospace;
  letter-spacing: .15em;
  text-transform: uppercase;
}
.home-entry-join-card small {
  color: #9fb5ac;
  font-size: .57rem;
  line-height: 1.3;
}
.home-entry-information-link {
  margin-top: 6px;
}
.home-room-entry-panel[data-entry-view="agreement"] {
  height: min(46rem, calc(100svh - 82px));
}
.home-entry-agreement-heading > div {
  min-width: 0;
}
.home-entry-agreement-heading .home-entry-step {
  margin-bottom: 5px;
}

.entry-wizard[data-entry-flow="quick"] {
  gap: .55rem;
}
.entry-wizard[data-entry-flow="quick"] .entry-progress,
.entry-wizard[data-entry-flow="quick"] .launch-benefits {
  display: none;
}
.entry-wizard[data-entry-flow="quick"] .entry-wizard-grid {
  grid-template-columns: 1fr;
}
.entry-wizard[data-entry-flow="quick"] #world-step {
  max-width: 52rem;
  width: 100%;
  margin-inline: auto;
}
.entry-wizard[data-entry-flow="quick"] .world-entry-button {
  min-width: min(100%, 24rem);
}
.entry-wizard[data-entry-flow="quick"] .entry-message {
  margin-top: 0;
}

@media (max-width: 68rem) {
  .contact-intro-grid { grid-template-columns: 1fr; }
}

@media (max-width: 56rem) {
  .contact-focus-grid { grid-template-columns: 1fr; }
  .contact-detail-list div { grid-template-columns: 1fr; gap: 5px; }
  .home-room-page {
    overflow: auto;
  }
  .home-room-page .home-room-entry,
  .home-room-page .home-room-entry-grid {
    min-height: auto;
  }
  .home-room-page .home-room-entry-grid {
    padding-top: clamp(13rem, 34vh, 19rem);
  }
  .home-room-page .home-room-entry-panel {
    height: auto;
    min-height: 0;
    max-height: none;
  }
  .home-room-page .home-room-copy {
    align-self: auto;
  }
}

@media (max-width: 31rem) {
  .home-group-code-row {
    grid-template-columns: 1fr;
  }
  .home-group-code-row .button {
    width: 100%;
  }
  .home-entry-action {
    grid-template-columns: 1fr;
  }
  .home-entry-action-cta {
    justify-self: start;
  }
}

@media (max-height: 35rem) and (min-width: 57rem) {
  .home-room-page .home-room-entry-panel {
    height: calc(100svh - 68px);
    min-height: 0;
    max-height: none;
  }
  .home-entry-action-grid {
    gap: 5px;
  }
  .home-entry-action,
  .home-entry-join-card {
    min-height: 0;
    padding-block: 6px;
  }
  .home-entry-action-copy > span,
  .home-entry-join-card label span,
  .home-entry-join-card small {
    display: none;
  }
  .home-group-code-row input {
    min-height: 36px;
  }
}

/* 0.18.55 automatic home-selected hospital launch. */
.entry-wizard[data-entry-flow="quick"] .entry-identity-card,
.entry-wizard[data-entry-flow="quick"] .world-network-banner {
  display: none;
}
.entry-wizard[data-entry-flow="quick"][data-quick-identity-recovery="true"] .entry-identity-card {
  display: grid;
}
.entry-wizard[data-entry-flow="quick"] .gateway-heading {
  grid-template-columns: 1fr;
  max-width: 52rem;
  width: 100%;
  margin-inline: auto;
}
.entry-wizard[data-entry-flow="quick"] .world-status {
  justify-self: start;
}
.entry-wizard[data-entry-flow="quick"] #world-step {
  text-align: left;
}
.entry-wizard[data-entry-flow="quick"] #world-step .entry-step-actions {
  align-items: stretch;
}
.entry-wizard[data-entry-flow="quick"] #world-step .entry-step-actions .button {
  min-height: 48px;
}

/* 0.18.55 mobile scene-first entry priority. */
@media (max-width: 56rem) {
  .home-room-page .home-room-entry {
    padding-top: 0;
  }
  .home-room-page .home-room-entry-grid {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: calc(clamp(13.5rem, 28vh, 16rem) + 12px) 14px 14px;
  }
  .home-room-page .home-room-scene {
    height: clamp(13.5rem, 28vh, 16rem);
  }
  .home-room-page .home-room-entry-panel {
    order: 1;
  }
  .home-room-page .home-room-copy {
    order: 2;
  }
}

/* 0.18.55 short-landscape direct-entry priority. */
@media (max-height: 35rem) and (min-width: 44rem) {
  .home-room-page {
    overflow: hidden;
  }
  .home-room-page .home-room-entry,
  .home-room-page .home-room-entry-grid {
    height: calc(100svh - 60px);
    min-height: calc(100svh - 60px);
  }
  .home-room-page .home-room-entry-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(22rem, 48vw);
    align-items: start;
    gap: 8px;
    padding: 8px;
    padding-top: 8px;
  }
  .home-room-page .home-room-copy {
    display: none;
  }
  .home-room-page .home-room-entry-panel {
    order: 0;
    align-self: start;
    justify-self: end;
    height: calc(100svh - 76px);
    min-height: 0;
    max-height: calc(100svh - 76px);
    padding: 8px 10px;
  }
  .home-room-page .home-room-entry-panel > [data-home-entry-choices],
  .home-room-page .home-room-entry-panel > [data-home-entry-agreement] {
    overflow: auto;
  }
  .home-room-page .home-room-entry-creator {
    display: none;
  }
}

/* 0.18.59 signed-in player controls for bounded NPC continuity. */
.account-npc-continuity {
  margin: .35rem 0;
  border: 1px solid rgba(143, 220, 187, .28);
  border-radius: .35rem;
  background: rgba(5, 17, 14, .72);
}
.account-npc-continuity > summary {
  min-height: 44px;
  display: flex;
  align-items: center;
  padding: .7rem .8rem;
  color: #e8f2ee;
  font-weight: 850;
  cursor: pointer;
}
.account-npc-continuity[open] > summary { border-bottom: 1px solid rgba(143, 220, 187, .2); }
.account-npc-continuity > p,
.account-npc-continuity > div { margin-inline: .8rem; }
.account-npc-continuity > p { color: #b9c8c3; line-height: 1.5; }
.account-npc-continuity-toolbar,
.account-npc-continuity-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: end;
  gap: .55rem;
  margin-block: .75rem;
}
.account-npc-continuity-toolbar label {
  flex: 1 1 14rem;
  display: grid;
  gap: .3rem;
  color: #d9e6e1;
  font-weight: 750;
}
.account-npc-continuity-toolbar select,
.account-npc-memory-correction input,
.account-npc-memory-correction textarea {
  width: 100%;
  min-height: 44px;
  border: 1px solid rgba(207, 227, 218, .34);
  border-radius: .25rem;
  background: #050b0e;
  color: #fff;
  padding: .62rem .7rem;
  font: inherit;
}
.account-npc-memory-correction textarea { resize: vertical; line-height: 1.45; }
.account-npc-continuity-status { min-height: 1.5em; color: #a9d9c5 !important; }
.account-npc-continuity-status.error { color: #ffb3a7 !important; }
.account-npc-continuity-items { display: grid; gap: .7rem; margin-block: .75rem; }
.account-npc-memory-item {
  padding: .8rem;
  border: 1px solid rgba(207, 227, 218, .18);
  border-radius: .3rem;
  background: rgba(255, 255, 255, .025);
}
.account-npc-memory-item h4 { margin: 0 0 .4rem; color: #f4e2aa; }
.account-npc-memory-item > p { margin: .35rem 0; line-height: 1.5; color: #d2ded9; }
.account-npc-memory-meta { font-size: .76rem; color: #91a49d !important; }
.account-npc-memory-correction { display: grid; gap: .6rem; margin-top: .75rem; }
.account-npc-memory-correction label { display: grid; gap: .3rem; color: #d9e6e1; font-weight: 750; }
.account-npc-continuity-boundary { padding-bottom: .8rem; font-size: .78rem; color: #91a49d !important; }
.account-npc-continuity select:focus-visible,
.account-npc-continuity input:focus-visible,
.account-npc-continuity textarea:focus-visible,
.account-npc-continuity summary:focus-visible {
  outline: 3px solid #ffd15c;
  outline-offset: 3px;
}
@media (max-width: 620px) {
  .account-npc-continuity-toolbar > *,
  .account-npc-continuity-actions > * { flex: 1 1 100%; }
}
@media (forced-colors: active) {
  .account-npc-continuity,
  .account-npc-memory-item,
  .account-npc-continuity-toolbar select,
  .account-npc-memory-correction input,
  .account-npc-memory-correction textarea { border: 1px solid CanvasText; }
}
