    :root {
      --ui-bg-page: #111318;
      --ui-bg-panel:
        linear-gradient(180deg, rgba(255,255,255,0.03) 0%, rgba(255,255,255,0.00) 18%),
        linear-gradient(180deg, #232529 0%, #1a1c20 100%);
      --ui-bg-surface: #111318;
      --ui-bg-surface-alt: #141821;
      --ui-bg-soft: #0d0f13;
      --ui-border: rgba(255, 255, 255, 0.08);
      --ui-border-strong: rgba(255, 255, 255, 0.12);
      --ui-text: #f2f4f7;
      --ui-text-muted: #c7ccd3;
      --ui-text-soft: #9ea6b2;
      --ui-button-text: #0f1216;
      --ui-button-bg: linear-gradient(180deg, #f2f5f8 0%, #d9dfe6 100%);
      --ui-shadow-md:
        0 18px 42px rgba(0, 0, 0, 0.36),
        inset 0 1px 0 rgba(255, 255, 255, 0.03);
      --cell-type-c-color: #2c2f33;
      --cell-type-s-color: #685847;
      --cell-type-m-color: #767d86;
      --cell-type-neutral-color: #2b2c2c;
      --cell-size: 100px;
      --grid-width: calc(var(--cell-size) * 9);
      --grid-height: calc(var(--cell-size) * 12);
      --grid-space-height: calc(var(--cell-size) * 3);
    }

    body {
      margin: 0;
      padding: 0;
      font-family:
        Inter,
        "Segoe UI",
        Roboto,
        "Helvetica Neue",
        Arial,
        sans-serif;
      background: var(--ui-bg-page);
      color: var(--ui-text);
      overflow-x: hidden;
    }

    .page {
      max-width: 1400px;
      margin: 0 auto;
      padding: 20px;
    }

    h1,
    h2,
    .center-placeholder-title,
    .investor-row-title,
    .investor-card-name {
      font-family: Verdana, "Segoe UI", Arial, sans-serif;
    }

    button,
    select,
    input {
      font-family: inherit;
    }

    button {
      min-width: 48px;
      padding: 4px 14px;
      box-sizing: border-box;
      color: var(--ui-button-text);
      background: var(--ui-button-bg);
      border: 0;
      border-radius: 12px;
      box-shadow:
        0 8px 20px rgba(0, 0, 0, 0.22),
        inset 0 1px 0 rgba(255, 255, 255, 0.55);
      cursor: pointer;
      transition:
        transform 0.12s ease,
        box-shadow 0.18s ease,
        filter 0.18s ease;
    }

    button:hover:not(:disabled) {
      transform: translateY(-1px);
      filter: brightness(1.02);
      box-shadow:
        0 12px 28px rgba(0, 0, 0, 0.28),
        inset 0 1px 0 rgba(255, 255, 255, 0.55);
    }

    button:active:not(:disabled) {
      transform: translateY(0);
      box-shadow:
        0 6px 14px rgba(0, 0, 0, 0.22),
        inset 0 1px 0 rgba(255, 255, 255, 0.4);
    }

    button:disabled {
      opacity: 0.45;
      cursor: default;
      box-shadow: none;
      filter: none;
    }

    select {
      min-width: 48px;
      padding: 4px 14px;
      box-sizing: border-box;
      color: var(--ui-button-text);
      background: var(--ui-button-bg);
      border: 0;
      border-radius: 12px;
      box-shadow:
        0 8px 20px rgba(0, 0, 0, 0.22),
        inset 0 1px 0 rgba(255, 255, 255, 0.55);
      cursor: pointer;
    }

    input[type="text"],
    input[type="number"] {
      color: var(--ui-text);
      background: var(--ui-bg-surface);
      border: 1px solid var(--ui-border-strong);
      border-radius: 12px;
    }

    select:focus,
    input[type="text"]:focus,
    input[type="number"]:focus {
      border-color: rgba(126, 180, 255, 0.7);
      box-shadow: 0 0 0 4px rgba(126, 180, 255, 0.14);
      background: var(--ui-button-bg);
      outline: none;
    }

    .start-screen,
    .finish-screen {
      display: flex;
      justify-content: center;
    }

    .start-screen[hidden],
    .finish-screen[hidden],
    .top-bar[hidden],
    .game-container[hidden] {
      display: none !important;
    }

    body.game-active .site-footer {
      display: none !important;
    }

    .start-screen-panel {
      width: min(960px, calc(100vw - 64px));
      min-height: 1200px;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: flex-start;
      gap: 32px;
      padding: 72px 64px 56px;
      box-sizing: border-box;

      background: var(--ui-bg-panel);
      border: 1px solid var(--ui-border);
      border-radius: 18px;
      box-shadow: none;
      color: var(--ui-text);
    }

    .start-screen-title {
      margin: 0;
      font-family: inherit;
      font-size: clamp(52px, 6vw, 76px);
      font-weight: 800;
      line-height: 1.02;
      letter-spacing: -0.03em;
      text-transform: uppercase;
      text-align: center;
      color: var(--ui-text);
      text-wrap: balance;
    }

    .start-screen-description {
      max-width: 860px;
      margin: 0;
      font-size: 27px;
      line-height: 1.55;
      text-align: center;
      color: var(--ui-text-muted);
      text-wrap: balance;
    }

    .start-screen-controls {
      display: flex;
      flex-direction: row;
      align-items: end;
      justify-content: center;
      gap: 18px;
      flex-wrap: wrap;
      margin-top: 6px;
    }

    .start-screen-controls-text {
      width: 100%;
      margin: 0;
      text-align: center;
      font-size: 15px;
      font-weight: 600;
      letter-spacing: 0.03em;
      text-transform: uppercase;
      color: var(--ui-text-soft);
    }

    .start-screen-license-controls {
      align-items: center;
    }

    .start-screen-option {
      display: flex;
      align-items: center;
      gap: 8px;
      min-height: 38px;
      padding: 8px 12px;
      box-sizing: border-box;
      border: 1px solid var(--ui-border);
      border-radius: 8px;
      background: var(--ui-bg-surface);
      color: var(--ui-text);
      font-size: 16px;
      font-weight: 600;
      cursor: pointer;
      user-select: none;
    }

    .start-screen-option input {
      margin: 0;
    }

    .start-screen-field {
      display: flex;
      flex-direction: column;
      gap: 10px;
      align-items: flex-start;
      font-size: 15px;
      font-weight: 600;
      letter-spacing: 0.03em;
      text-transform: uppercase;
      color: var(--ui-text-soft);
    }

    .start-screen-input,
    .start-screen-input[type="number"] {
      width: 220px;
      height: 56px;
      padding: 0 16px;
      box-sizing: border-box;

      font-family: inherit;
      font-size: 24px;
      font-weight: 600;
      text-align: center;
      color: #000;

      background: #fff;
      border: 1px solid var(--ui-border-strong);
      border-radius: 12px;
      outline: none;
      transition:
        border-color 0.18s ease,
        box-shadow 0.18s ease,
        background 0.18s ease;
    }

    .start-screen-input:hover,
    .start-screen-input[type="number"]:hover {
      border-color: rgba(255, 255, 255, 0.2);
    }

    .start-screen-input:focus,
    .start-screen-input[type="number"]:focus {
      border-color: rgba(126, 180, 255, 0.7);
      box-shadow: 0 0 0 4px rgba(126, 180, 255, 0.14);
      background: #fff;
      color: #000;
    }

    .start-screen-seed-preview {
      width: 54px;
      height: 54px;
      box-sizing: content-box;
      border: 1px solid var(--ui-border-strong);
      border-radius: 4px;
      background: var(--ui-bg-surface);
      box-shadow: var(--ui-shadow-md);
      image-rendering: pixelated;
    }

    .start-screen-button {
      width: 220px;
      height: 56px;
      max-width: 100%;
      padding: 0 20px;
      box-sizing: border-box;

      font-family: inherit;
      font-size: 22px;
      font-weight: 700;
      letter-spacing: 0.01em;
      color: var(--ui-button-text);

      background: var(--ui-button-bg);
      border: 0;
      border-radius: 12px;
      cursor: pointer;

      box-shadow:
        0 8px 20px rgba(0, 0, 0, 0.22),
        inset 0 1px 0 rgba(255, 255, 255, 0.55);

      transition:
        transform 0.12s ease,
        box-shadow 0.18s ease,
        filter 0.18s ease;
    }

    .start-screen-button:hover {
      transform: translateY(-1px);
      filter: brightness(1.02);
      box-shadow:
        0 12px 28px rgba(0, 0, 0, 0.28),
        inset 0 1px 0 rgba(255, 255, 255, 0.55);
    }

    .start-screen-button:active {
      transform: translateY(0);
      box-shadow:
        0 6px 14px rgba(0, 0, 0, 0.22),
        inset 0 1px 0 rgba(255, 255, 255, 0.4);
    }

    .start-screen-image {
      display: block;
      max-width: 760px;
      width: 100%;
      height: auto;
      object-fit: contain;

      margin-top: 12px;
      border-radius: 16px;
      border: 1px solid rgba(255, 255, 255, 0.08);
      background: var(--ui-bg-soft);
      box-shadow: var(--ui-shadow-md);
    }

    .finish-screen-summary {
      display: flex;
      flex-direction: column;
      gap: 12px;
      align-items: center;
      text-align: center;
      color: var(--ui-text-muted);
      font-size: 26px;
      line-height: 1.5;
    }

    .finish-screen-summary p {
      margin: 0;
    }

    .top-bar {
      display: grid;
      grid-template-columns: repeat(6, minmax(0, 1fr));
      gap: 8px;
      position: sticky;
      top: 12px;
      z-index: 100;
      margin-bottom: 16px;
      padding: 10px;
      border: 1px solid var(--ui-border);
      background: var(--ui-bg-panel);
      border-radius: 18px;
      backdrop-filter: blur(8px);
      box-shadow: none;
      box-sizing: border-box;
    }

    .top-bar-nav {
      display: contents;
    }

    .top-bar-actions {
      display: contents;
    }

    .top-bar-nav button,
    .top-bar-actions button {
      width: 100%;
      box-sizing: border-box;
    }

    .grid {
      display: grid;
      grid-template-columns: repeat(9, var(--cell-size));
      grid-template-rows: repeat(12, var(--cell-size));
      width: var(--grid-width);
      height: var(--grid-height);
      gap: 0;
      border: 0px solid #666;
      background: var(--ui-bg-soft);
      position: relative;
      overflow: hidden;
    }

    .grid::before {
      content: '';
      position: absolute;
      top: 0;
      left: 0;
      width: var(--grid-width);
      height: var(--grid-space-height);
      background-image: url('./img/Space900x300.png');
      background-position: center;
      background-repeat: no-repeat;
      background-size: cover;
      pointer-events: none;
      z-index: 0;
    }

    .grid-wrap {
      position: relative;
      width: var(--grid-width);
      margin: 0 10px;
    }

    .grid-wrap.center-placeholder-mode .grid-modes-host,
    .grid-wrap.center-placeholder-mode .grid-warnings-host,
    .grid-wrap.center-placeholder-mode .grid {
      display: none;
    }

    .grid-wrap.base-mode .center-placeholder-view {
      display: none;
    }

    .grid-wrap.center-placeholder-mode .center-placeholder-view {
      display: block;
    }

    .center-placeholder-view {
      width: var(--grid-width);
      min-height: var(--grid-height);
      background: var(--ui-bg-panel);
      border: 1px solid var(--ui-border);
      border-radius: 18px;
      box-shadow: none;
      box-sizing: border-box;
      padding: 16px;
    }

    .center-placeholder-title {
      margin: 0;
      font-size: 24px;
      font-weight: 700;
    }

    .prospectopedia-intro {
      margin: 16px 0 20px 0;
      color: var(--ui-text-muted);
      line-height: 1.4;
    }

    .prospectopedia-keyword-columns {
      column-count: 3;
      column-gap: 32px;
    }

    .prospectopedia-keyword {
      display: block;
      break-inside: avoid;
      margin-bottom: 10px;
      color: var(--ui-text);
      line-height: 1.3;
    }

    .prospectopedia-keyword-button {
      display: block;
      min-width: 0;
      padding: 0;
      color: var(--ui-text);
      background: none;
      border: 0;
      border-radius: 0;
      box-shadow: none;
      text-shadow: none;
      font: inherit;
      line-height: inherit;
      text-align: left;
      cursor: pointer;
      width: 100%;
    }

    .prospectopedia-keyword-button:hover:not(:disabled),
    .prospectopedia-keyword-button:active:not(:disabled) {
      filter: none;
      transform: none;
      box-shadow: none;
    }

    .prospectopedia-keyword-button:hover,
    .prospectopedia-keyword-button:focus-visible {
      text-decoration: underline;
      outline: none;
      filter: none;
      transform: none;
      box-shadow: none;
    }

    .prospectopedia-keyword-button:active {
      transform: none;
      box-shadow: none;
    }

    .investor-layout {
      display: flex;
      flex-direction: column;
      gap: 24px;
      margin-top: 24px;
    }

    .investor-row {
      display: flex;
      flex-direction: column;
      gap: 12px;
    }

    .investor-row-title {
      margin: 0;
      font-size: 18px;
      font-weight: 700;
    }

    .ipo-section {
      display: flex;
      flex-direction: column;
      gap: 12px;
    }

    .ipo-description {
      margin: 0;
      color: var(--ui-text-muted);
      line-height: 1.4;
    }

    .ipo-button {
      width: 140px;
      max-width: 100%;
      align-self: center;
    }

    .ipo-readiness-list {
      display: flex;
      flex-direction: column;
      gap: 14px;
    }

    .ipo-readiness-item {
      display: flex;
      flex-direction: column;
      gap: 6px;
    }

    .ipo-readiness-label,
    .ipo-readiness-value {
      margin: 0;
    }

    .ipo-readiness-label {
      color: var(--ui-text-muted);
      line-height: 1.35;
    }

    .ipo-readiness-value {
      color: var(--ui-text);
      font-weight: 700;
    }

    .ipo-readiness-meter {
      width: 100%;
      height: 6px;
      border: 1px solid var(--ui-border-strong);
      border-radius: 999px;
      background: var(--ui-bg-surface);
      overflow: hidden;
    }

    .ipo-readiness-fill {
      height: 100%;
      background: var(--ui-text);
    }

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

    .investor-card {
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: flex-start;
      aspect-ratio: 1 / 1;
      border: 1px solid var(--ui-border);
      background: var(--ui-bg-panel);
      border-radius: 16px;
      box-shadow: var(--ui-shadow-md);
      text-align: center;
      padding: 16px;
      box-sizing: border-box;
      gap: 12px;
    }

    .investor-card-name {
      font-size: 18px;
      font-weight: 700;
      line-height: 1.2;
    }

    .investor-card-details {
      display: flex;
      flex-direction: column;
      gap: 8px;
      font-size: 13px;
      line-height: 1.25;
    }

    .investor-card-button {
      margin-top: auto;
      width: 100%;
      box-sizing: border-box;
    }

    .grid-modes-host {
      position: sticky;
      top: 12px;
      z-index: 20;
      height: 0;
      pointer-events: none;
    }

    .grid-modes {
      display: flex;
      gap: 10px;
      width: fit-content;
      margin-left: 12px;
      padding: 6px 10px;
      border: 1px solid #666;
      border-radius: 8px;
      background: rgba(17, 19, 24, 0.9);
      backdrop-filter: blur(6px);
      pointer-events: auto;
    }

    .grid-warnings-host {
      position: sticky;
      top: 12px;
      z-index: 20;
      height: 0;
      pointer-events: none;
    }

    .grid-warnings {
      display: flex;
      flex-direction: column;
      gap: 6px;
      width: fit-content;
      max-width: 320px;
      margin-left: auto;
      margin-right: 12px;
      pointer-events: auto;
    }

    .grid-warnings[hidden] {
      display: none !important;
    }

    .grid-warning {
      margin: 0;
      padding: 4px 6px;
      border-radius: 6px;
      font-size: 13px;
      line-height: 1.3;
    }

    .grid-warning-link {
      appearance: none;
      display: block;
      font: inherit;
      text-align: left;
      text-decoration: underline;
      cursor: pointer;
    }

    .grid-warning-link:hover {
      filter: brightness(1.15);
    }

    .grid-warning-link:focus-visible {
      outline: 2px solid #9fc4ff;
      outline-offset: 2px;
    }

    .grid-warning-bad {
      border: 1px solid #8a5a2b;
      background: rgba(54, 32, 12, 0.92);
      color: #f2d7b2;
      backdrop-filter: blur(6px);
    }

    .grid-warning-good {
      border: 1px solid #2f7341;
      background: rgba(24, 92, 44, 0.95);
      color: #d4f3dd;
      backdrop-filter: blur(6px);
    }

    .grid-modes label {
      display: flex;
      align-items: center;
      gap: 4px;
      font-size: 13px;
      cursor: pointer;
      user-select: none;
      position: relative;
    }

    .grid-modes label::after {
      content: attr(data-tooltip);
      position: absolute;
      left: 50%;
      top: calc(100% + 8px);
      transform: translateX(-50%);
      width: max-content;
      max-width: 220px;
      padding: 5px 7px;
      border: 1px solid #6f7788;
      border-radius: 4px;
      background: rgba(18, 22, 30, 0.96);
      color: #f4f7fb;
      font-size: 12px;
      line-height: 1.25;
      text-align: center;
      white-space: normal;
      opacity: 0;
      pointer-events: none;
      transition: opacity 0.12s ease;
      z-index: 40;
    }

    .grid-modes label:hover::after {
      opacity: 1;
    }

    .cell {
      width: var(--cell-size);
      height: var(--cell-size);
      box-sizing: border-box;
      border: 1px solid transparent;
      background: rgba(255, 255, 255, 0.02);
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 12px;
      color: #ccc;
      position: relative;
      z-index: 1;
      cursor: pointer;
      isolation: isolate;
      --cell-tunnel-image: none;
      --cell-building-image: none;
      --cell-line-color: var(--ui-border-strong);
      --cell-highlight-shadow: none;
      box-shadow:
        inset 0 0 0 1px var(--cell-line-color),
        var(--cell-highlight-shadow);
    }

    .cell::before,
    .cell::after {
      content: '';
      position: absolute;
      inset: 0;
      background-position: center;
      background-repeat: no-repeat;
      background-size: cover;
      opacity: 1;
      pointer-events: none;
      transition: opacity 0.15s ease;
    }

    .cell::before {
      background-image: var(--cell-tunnel-image);
      z-index: 0;
    }

    .cell::after {
      background-image: var(--cell-building-image);
      z-index: 1;
    }

    .grid-overlay-active .cell::before,
    .grid-overlay-active .cell::after {
      opacity: 0.5;
    }

    .grid-hide-lines .cell {
      --cell-line-color: transparent;
    }

    .cell-foreground {
      position: relative;
      z-index: 2;
      text-align: center;
      color: inherit;
    }

    .cell-space {
      background: rgba(255, 255, 255, 0.01);
    }

    .cell-type-e {
      background: rgba(255, 255, 255, 0.01);
    }

    .cell-type-c {
      background: var(--cell-type-c-color);
    }

    .cell-type-s {
      background: var(--cell-type-s-color);
    }

    .cell-type-m {
      background: var(--cell-type-m-color);
    }

    .cell-type-neutral {
      background: var(--cell-type-neutral-color);
    }

    .cell-layer-middle.cell-type-c,
    .cell-layer-middle.cell-type-s,
    .cell-layer-middle.cell-type-m,
    .cell-layer-middle.cell-type-neutral {
      filter: brightness(0.86);
    }

    .cell-layer-deep.cell-type-c,
    .cell-layer-deep.cell-type-s,
    .cell-layer-deep.cell-type-m,
    .cell-layer-deep.cell-type-neutral {
      filter: brightness(0.76);
    }

    .cell-building-inside-asteroid {
      --cell-tunnel-image: url('./img/Tunnel.png');
    }

    .cell-building-command-hub-space {
      --cell-building-image: url('./img/CommandHubSpace.png');
    }

    .cell-building-command-hub-asteroid {
      --cell-building-image: url('./img/CommandHubAsteroid.png');
    }

    .cell-building-power-bank {
      --cell-building-image: url('./img/PowerBank.png');
    }

    .cell-building-storage-bay-surface {
      --cell-building-image: url('./img/StorageBaySurface.png');
    }

    .cell-building-storage-bay-asteroid {
      --cell-building-image: url('./img/StorageBayAsteroid.png');
    }

    .cell-building-mining-unit {
      --cell-building-image: url('./img/MiningUnit.png');
    }

    .cell-building-mining-unit-disabled {
      --cell-building-image: url('./img/MiningUnitDisabled.png');
    }

    .cell-building-solar-array-ship-left {
      --cell-building-image: url('./img/SolarArrayShipL.png');
    }

    .cell-building-solar-array-ship-right {
      --cell-building-image: url('./img/SolarArrayShipR.png');
    }

    .cell-building-solar-array-surface {
      --cell-building-image: url('./img/SolarArraySurface.png');
    }

    .cell-building-launch-pad {
      --cell-building-image: url('./img/LaunchPad.png');
    }

    .cell-building-rocket-booster-left {
      --cell-building-image: url('./img/BoosterL.png');
    }

    .cell-building-rocket-booster-right {
      --cell-building-image: url('./img/BoosterR.png');
    }

    .cell-building-tunnel {
      --cell-tunnel-image: url('./img/Tunnel.png');
    }

    .cell-bonus-target {
      --cell-line-color: #d4ae3c;
      --cell-highlight-shadow: inset 0 0 0 2px rgba(212, 174, 60, 0.9);
    }

    .cell-bonus-source {
      --cell-line-color: #3ea35a;
      --cell-highlight-shadow: inset 0 0 0 2px rgba(62, 163, 90, 0.9);
    }

    .cell-selected {
      --cell-line-color: #4a9eff;
      --cell-highlight-shadow:
        inset 0 0 0 2px #4a9eff,
        0 0 10px rgba(74, 158, 255, 0.3);
    }

    .cell-move-valid {
      --cell-line-color: #45c46b;
      --cell-highlight-shadow:
        inset 0 0 0 2px #45c46b,
        0 0 10px rgba(69, 196, 107, 0.3);
      background: rgba(69, 196, 107, 0.15);
    }

    .cell-move-invalid {
      --cell-line-color: #d85b5b;
      --cell-highlight-shadow:
        inset 0 0 0 2px #d85b5b,
        0 0 10px rgba(216, 91, 91, 0.25);
      background: rgba(216, 91, 91, 0.12);
    }

    .cell-debug-coords {
      position: absolute;
      top: 2px;
      right: 2px;
      font-size: 6px;
      color: #666;
    }

    .game-container {
      display: flex;
      align-items: flex-start;
    }

    .left-panel, .right-panel {
      width: 300px;
      height: var(--grid-height);
      border: 1px solid var(--ui-border);
      background: var(--ui-bg-panel);
      border-radius: 18px;
      box-shadow: none;
      padding: 10px;
      box-sizing: border-box;
    }

    .left-panel h2,
    .right-panel h2 {
      margin: 0 0 16px 0;
    }

    .left-panel > :nth-child(2),
    .right-panel .details-content > :first-child {
      margin-top: 0;
    }

    .right-panel {
      position: relative;
      display: flex;
      flex-direction: column;
    }

    .left-panel {
      position: relative;
      display: flex;
      flex-direction: column;
    }

    .left-panel p {
      margin: 12px 0 0 0;
    }

    .details-content {
      flex: 1 1 auto;
      margin-top: 0;
    }

    .details-action-row {
      display: flex;
      align-items: center;
      gap: 8px;
      flex-wrap: wrap;
    }

    .details-secondary-action {
      margin-top: 14px;
    }

    .explanation-text {
      color: var(--ui-text-soft);
    }

    .details-separator {
      border: 0;
      border-top: 1px solid var(--ui-border);
      margin: 12px 0;
    }

    .metric-help {
      display: inline-block;
      position: relative;
      margin-left: 4px;
      color: #8ab8ff;
      cursor: help;
      user-select: none;
    }

    .metric-help::after {
      content: attr(data-tooltip);
      position: absolute;
      right: 0;
      bottom: calc(100% + 8px);
      width: max-content;
      max-width: 240px;
      padding: 6px 8px;
      border: 1px solid #6f7788;
      border-radius: 4px;
      background: rgba(18, 22, 30, 0.96);
      color: #f4f7fb;
      font-size: 12px;
      font-weight: normal;
      line-height: 1.3;
      text-align: left;
      white-space: normal;
      opacity: 0;
      pointer-events: none;
      transition: opacity 0.12s ease;
      z-index: 40;
    }

    .metric-help:hover::after,
    .metric-help:focus-visible::after {
      opacity: 1;
    }

    .revenue-chart-block {
      margin-top: 8px;
      margin-bottom: 12px;
    }

    .revenue-chart-title {
      margin: 0 0 6px 0;
      color: var(--ui-text-soft);
      font-size: 13px;
    }

    .revenue-chart {
      display: block;
      width: 100%;
      height: 80px;
      border: 1px solid var(--ui-border-strong);
      background: var(--ui-bg-surface);
      box-sizing: border-box;
    }

    .revenue-chart-bar {
      fill: #6aa7ff;
    }

    .revenue-chart-bar-recent {
      fill: #9bc2ff;
    }

    .info-row {
      display: flex;
      height: 28px;
      align-items: center;
      justify-content: space-between;
      gap: 8px;
    }

    .left-panel p + .info-row {
      margin-top: 12px;
    }

    .info-row p {
      margin: 0;
    }

    .info-row button {
      flex: 0 0 auto;
    }

    .left-panel .resource-table {
      margin-top: 6px;
    }

    .resource-table {
      width: 100%;
      border-collapse: collapse;
      margin-bottom: 12px;
      table-layout: fixed;
    }

    .resource-table td {
      border: 1px solid var(--ui-border-strong);
      padding: 6px 4px;
      font-size: 11px;
      text-align: center;
      word-break: break-word;
    }

    .resource-table button {
      width: 100%;
      font-size: 11px;
    }

    .market-auto-sell-all-label {
      display: flex;
      align-items: center;
      gap: 6px;
      white-space: nowrap;
      font-size: 14px;
      margin: -4px 0 12px 0;
    }

    .site-footer {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 20px;
      width: min(960px, calc(100vw - 64px));
      margin: 20px auto 0;
      padding: 12px 16px;
      border: 1px solid var(--ui-border);
      border-radius: 18px;
      background: var(--ui-bg-panel);
      color: var(--ui-text-soft);
      font-size: 14px;
      box-sizing: border-box;
    }

    .studio-link {
      display: inline-flex;
      align-items: center;
      gap: 8px;
      color: inherit;
      text-decoration: none;
    }

    .studio-link:hover,
    .studio-link:focus-visible {
      color: var(--ui-text-muted);
      outline: none;
    }

    .studio-link-logo {
      width: 28px;
      height: 28px;
      object-fit: contain;
    }

    @media (max-width: 1400px) {
      :root {
        --cell-size: clamp(66px, calc((100vw - 568px) / 9), 92px);
      }

      .page {
        max-width: none;
        padding: 16px;
      }

      .left-panel,
      .right-panel {
        width: 260px;
        padding: 8px;
      }

      .grid-wrap {
        margin: 0 8px;
      }
    }

    @media (max-width: 1180px) {
      :root {
        --cell-size: clamp(38px, calc((100vw - 32px) / 9), 82px);
      }

      html {
        -webkit-text-size-adjust: 100%;
      }

      body {
        touch-action: manipulation;
      }

      .page {
        width: 100%;
        padding: max(10px, env(safe-area-inset-top)) max(10px, env(safe-area-inset-right)) max(14px, env(safe-area-inset-bottom)) max(10px, env(safe-area-inset-left));
        box-sizing: border-box;
      }

      button,
      select,
      input[type="text"],
      input[type="number"] {
        min-height: 44px;
        font-size: 16px;
      }

      button,
      select {
        padding: 8px 12px;
        border-radius: 10px;
      }

      .start-screen-panel {
        width: 100%;
        min-height: auto;
        gap: 22px;
        padding: 32px 18px 24px;
        border-radius: 14px;
      }

      .start-screen-title {
        font-size: clamp(36px, 11vw, 56px);
        letter-spacing: 0;
      }

      .start-screen-description {
        font-size: clamp(17px, 4.8vw, 22px);
        line-height: 1.45;
      }

      .start-screen-controls {
        width: 100%;
        gap: 10px;
      }

      .start-screen-license-controls {
        align-items: stretch;
      }

      .start-screen-option {
        min-height: 46px;
        flex: 1 1 100%;
        justify-content: center;
      }

      .start-screen-field,
      .start-screen-input,
      .start-screen-input[type="number"],
      .start-screen-button {
        width: 100%;
      }

      .start-screen-seed-preview {
        width: 64px;
        height: 64px;
      }

      .start-screen-image {
        max-width: 100%;
        margin-top: 0;
        border-radius: 10px;
      }

      .finish-screen-summary {
        font-size: clamp(17px, 4.8vw, 22px);
      }

      .site-footer {
        width: 100%;
        flex-direction: column;
        align-items: center;
        gap: 10px;
        text-align: center;
        border-radius: 14px;
      }

      .top-bar {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 8px;
        top: 8px;
        margin-bottom: 12px;
        padding: 8px;
        border-radius: 14px;
      }

      .top-bar-nav button,
      .top-bar-actions button {
        min-width: 0;
        min-height: 44px;
        padding: 8px 6px;
        font-size: 13px;
        white-space: normal;
      }

      .game-container {
        flex-direction: column;
        align-items: stretch;
        gap: 12px;
      }

      .left-panel,
      .right-panel {
        width: 100%;
        height: auto;
        min-height: 0;
        border-radius: 14px;
        padding: 12px;
      }

      .left-panel {
        order: 1;
      }

      .grid-wrap {
        order: 2;
        width: 100%;
        margin: 0;
        overflow-x: auto;
        overscroll-behavior-x: contain;
        -webkit-overflow-scrolling: touch;
      }

      .right-panel {
        order: 3;
      }

      .grid {
        margin: 0 auto;
      }

      .grid-modes-host,
      .grid-warnings-host {
        position: static;
        height: auto;
        margin-bottom: 8px;
      }

      .grid-modes,
      .grid-warnings {
        width: 100%;
        max-width: none;
        margin: 0;
        box-sizing: border-box;
      }

      .grid-modes {
        justify-content: space-between;
        gap: 6px;
      }

      .grid-modes label {
        min-height: 36px;
        padding: 0 4px;
        font-size: 14px;
      }

      .grid-modes label::after,
      .metric-help::after {
        display: none;
      }

      .grid-warning {
        font-size: 14px;
        padding: 8px 10px;
      }

      .cell {
        font-size: clamp(8px, calc(var(--cell-size) * 0.14), 12px);
      }

      .cell-debug-coords {
        font-size: 7px;
      }

      .center-placeholder-view {
        width: 100%;
        min-height: 0;
        padding: 12px;
        border-radius: 14px;
      }

      .prospectopedia-keyword-columns {
        column-count: 2;
        column-gap: 20px;
      }

      .investor-row-cards {
        grid-template-columns: 1fr;
      }

      .investor-card {
        min-height: 220px;
        aspect-ratio: auto;
      }

      .details-action-row {
        align-items: stretch;
      }

      .details-action-row button,
      .details-action-row select,
      .details-secondary-action,
      .ipo-button {
        width: 100%;
      }

      .info-row {
        min-height: 34px;
        height: auto;
      }

      .resource-table {
        table-layout: auto;
      }

      .resource-table td {
        font-size: 12px;
        padding: 7px 5px;
      }

      .resource-table button {
        min-height: 36px;
        font-size: 12px;
        padding: 6px;
      }
    }

    @media (max-width: 480px) {
      :root {
        --cell-size: clamp(34px, calc((100vw - 20px) / 9), 48px);
      }

      .page {
        padding-left: max(6px, env(safe-area-inset-left));
        padding-right: max(6px, env(safe-area-inset-right));
      }

      .top-bar {
        grid-template-columns: 1fr 1fr;
      }

      .top-bar-nav button,
      .top-bar-actions button {
        font-size: 12px;
      }

      .left-panel,
      .right-panel,
      .center-placeholder-view {
        padding: 10px;
      }

      .left-panel h2,
      .right-panel h2,
      .center-placeholder-title {
        font-size: 20px;
      }

      .grid-modes {
        overflow-x: auto;
        justify-content: flex-start;
      }

      .grid-modes label {
        flex: 0 0 auto;
      }

      .prospectopedia-keyword-columns {
        column-count: 1;
      }

      .market-auto-sell-all-label {
        white-space: normal;
      }
    }
