body.corp-theme {
  color-scheme: light;
  --bg: #f3fbf8;
  --ink: #21313b;
  --bone: #3f5360;
  --muted: #5a6a6f;
  --line: rgba(42, 72, 83, 0.18);
  --line-hot: rgba(230, 99, 112, 0.42);
  --panel: rgba(255, 255, 255, 0.9);
  --panel-deep: rgba(255, 255, 255, 0.96);
  --blood: #ef6f7c;
  --ember: #e7aa42;
  --cyan: #389faa;
  --green: #54ad77;
  --violet: #9171c8;
  background:
    radial-gradient(circle at 14% 8%, rgba(91, 207, 214, 0.22), transparent 32%),
    radial-gradient(circle at 88% 14%, rgba(239, 111, 124, 0.16), transparent 28%),
    radial-gradient(circle at 58% 90%, rgba(239, 197, 107, 0.16), transparent 28%),
    linear-gradient(135deg, #f3fbf8 0%, #f8f5ff 48%, #fff8ec 100%);
}

body.corp-theme #voidCanvas {
  opacity: 0.08;
  filter: invert(1) saturate(0.55) hue-rotate(160deg);
  background:
    radial-gradient(circle at 40% 32%, rgba(91, 207, 214, 0.18), transparent 38%),
    linear-gradient(135deg, #f5fffb, #fbf7ff);
}

body.corp-theme .ash {
  opacity: 0.035;
}

body.corp-theme .ash i {
  background: rgba(56, 159, 170, 0.22);
  box-shadow: 0 0 8px rgba(239, 197, 107, 0.12);
}

body.corp-theme .hit-flash {
  background:
    radial-gradient(circle at 50% 50%, rgba(239, 197, 107, 0.18), transparent 36%),
    linear-gradient(rgba(56, 159, 170, 0.2), rgba(239, 111, 124, 0.1));
  mix-blend-mode: multiply;
}

body.corp-theme .fracture-flash {
  background:
    linear-gradient(116deg, transparent 0 43%, rgba(56, 159, 170, 0.34) 43.2% 43.8%, transparent 44% 100%),
    linear-gradient(27deg, transparent 0 53%, rgba(145, 113, 200, 0.28) 53.2% 53.8%, transparent 54% 100%),
    radial-gradient(circle at 50% 48%, rgba(255, 255, 255, 0.92), rgba(239, 197, 107, 0.36) 18%, transparent 58%);
  mix-blend-mode: multiply;
}

body.corp-theme .topbar,
body.corp-theme .panel,
body.corp-theme .hand,
body.corp-theme .death-modal,
body.corp-theme .card {
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.96), rgba(255, 252, 247, 0.74)),
    var(--panel);
  border-color: rgba(42, 72, 83, 0.18);
  box-shadow:
    0 22px 72px rgba(78, 97, 105, 0.14),
    inset 0 1px 0 rgba(255, 255, 255, 0.86);
}

body.corp-theme .brand {
  background:
    linear-gradient(90deg, rgba(91, 207, 214, 0.18), transparent 66%),
    linear-gradient(180deg, rgba(239, 197, 107, 0.16), transparent 56%);
}

body.corp-theme .version-badge {
  background: rgba(42, 72, 83, 0.12);
  border-color: rgba(42, 72, 83, 0.16);
  color: #6a7573;
}

body.corp-theme h1 {
  color: #1f303a;
  text-shadow: 0 12px 30px rgba(56, 159, 170, 0.14);
}

body.corp-theme .brand-byline,
body.corp-theme .feedback-status,
body.corp-theme .traveler-field span {
  color: #287f89;
}

body.corp-theme .meter {
  background:
    linear-gradient(135deg, rgba(255, 255, 255, 0.82), rgba(239, 247, 246, 0.72)),
    #f4f8f7;
  border-color: rgba(42, 72, 83, 0.16);
}

body.corp-theme .meter strong {
  color: #21313b;
}

body.corp-theme .meter.blood strong {
  color: #cf3e55;
}

body.corp-theme .meter.light strong {
  color: #96640e;
}

body.corp-theme .meter.echo strong {
  color: #1f7486;
}

body.corp-theme .pip {
  border-color: rgba(42, 72, 83, 0.16);
  background: rgba(42, 72, 83, 0.05);
}

body.corp-theme .pip.filled {
  border-color: color-mix(in srgb, var(--pip-color) 58%, white);
  background: var(--pip-color);
  box-shadow:
    0 0 0 1px color-mix(in srgb, var(--pip-color) 20%, transparent),
    0 0 14px color-mix(in srgb, var(--pip-color) 30%, transparent);
}

body.corp-theme .btn,
body.corp-theme .card-tool,
body.corp-theme .modal-close {
  background: rgba(255, 255, 255, 0.84);
  color: #334650;
  border-color: rgba(42, 72, 83, 0.2);
}

body.corp-theme .btn.hot {
  background: linear-gradient(135deg, #b84252, #b8543e);
  border-color: rgba(184, 66, 82, 0.5);
  color: #fffaf7;
}

body.corp-theme .death-modal h2,
body.corp-theme .welcome-modal h2 {
  color: #6e5a88;
}

body.corp-theme .brand h1,
body.corp-theme .room-name strong,
body.corp-theme .room-event h2,
body.corp-theme .threat h2,
body.corp-theme .card h3,
body.corp-theme .door strong,
body.corp-theme .narrative-card strong,
body.corp-theme .achievement-card strong {
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

body.corp-theme .narrative-card {
  background:
    radial-gradient(circle at 20% 14%, rgba(239, 197, 107, 0.18), transparent 36%),
    rgba(255, 255, 255, 0.8);
}

body.corp-theme .narrative-card.corp {
  border-color: rgba(56, 159, 170, 0.34);
  background:
    radial-gradient(circle at 18% 14%, rgba(91, 207, 214, 0.22), transparent 36%),
    rgba(255, 255, 255, 0.84);
}

body.corp-theme .narrative-card strong,
body.corp-theme .panel-title,
body.corp-theme .achievement-card strong,
body.corp-theme .book-rule strong,
body.corp-theme .door strong,
body.corp-theme .card h3 {
  color: #21313b;
}

body.corp-theme .panel-copy,
body.corp-theme .door small,
body.corp-theme .card p,
body.corp-theme .book-rule p,
body.corp-theme .room-rule p,
body.corp-theme .room-event p,
body.corp-theme .threat p {
  color: #445966;
}

body.corp-theme .stage {
  border-color: rgba(42, 72, 83, 0.14);
  background:
    radial-gradient(circle at 50% 44%, color-mix(in srgb, var(--room-color) 16%, transparent), transparent 31%),
    radial-gradient(circle at 52% 68%, rgba(239, 197, 107, calc(0.06 + 0.08 * var(--light-level))), transparent 32%),
    linear-gradient(135deg, rgba(255, 255, 255, 0.88), rgba(238, 249, 246, 0.72));
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.72);
}

body.corp-theme .stage::after {
  background: radial-gradient(ellipse, rgba(42, 72, 83, 0.22), transparent 66%);
  opacity: 0.58;
}

body.corp-theme .sigil {
  background:
    radial-gradient(circle, rgba(255, 255, 255, 0.84), rgba(255, 255, 255, 0.18) 64%, transparent),
    color-mix(in srgb, var(--room-color) 8%, transparent);
  box-shadow:
    0 0 58px color-mix(in srgb, var(--room-color) 24%, transparent),
    inset 0 0 38px rgba(42, 72, 83, 0.16);
}

body.corp-theme .node-dot {
  border-color: rgba(42, 72, 83, 0.24);
  background: rgba(42, 72, 83, 0.12);
}

body.corp-theme .node-dot.active {
  border-color: rgba(150, 100, 14, 0.58);
  background: #b98218;
  box-shadow: 0 0 18px rgba(214, 158, 46, 0.28);
}

body.corp-theme .node-dot.past {
  border-color: rgba(31, 116, 134, 0.42);
  background: #48aeb9;
}

body.corp-theme .room-rule {
  background: rgba(255, 255, 255, 0.9);
  border-color: rgba(42, 72, 83, 0.16);
  box-shadow: 0 14px 42px rgba(78, 97, 105, 0.12);
}

body.corp-theme .glitch {
  color: #a05275;
  text-shadow:
    1px 0 rgba(56, 159, 170, 0.22),
    -1px 0 rgba(230, 99, 112, 0.22);
}

body.corp-theme .room-event {
  background:
    radial-gradient(circle at 8% 20%, rgba(91, 207, 214, 0.12), transparent 38%),
    rgba(255, 255, 255, 0.92);
  border-color: rgba(42, 72, 83, 0.18);
}

body.corp-theme .room-event h2 {
  color: #21313b;
}

body.corp-theme .threat {
  background:
    radial-gradient(circle at 10% 50%, color-mix(in srgb, var(--threat-color) 16%, transparent), transparent 34%),
    linear-gradient(135deg, rgba(255, 255, 255, 0.92), rgba(255, 247, 251, 0.84)),
    #fffafb;
  border-color: color-mix(in srgb, var(--threat-color) 48%, rgba(42, 72, 83, 0.16));
  box-shadow:
    0 24px 68px rgba(78, 97, 105, 0.2),
    0 0 0 1px color-mix(in srgb, var(--threat-color) 14%, transparent),
    inset 0 0 26px color-mix(in srgb, var(--threat-color) 8%, transparent);
}

body.corp-theme .threat[data-threat="cinder"] {
  --threat-color: #d8735c;
}

body.corp-theme .threat[data-threat="candle"] {
  --threat-color: #d99b35;
}

body.corp-theme .threat[data-threat="choir"] {
  --threat-color: #8b78c8;
}

body.corp-theme .threat[data-threat="collector"] {
  --threat-color: #459aa5;
}

body.corp-theme .threat[data-threat="saint"] {
  --threat-color: #6fac7f;
}

body.corp-theme .threat[data-threat="archivist"] {
  --threat-color: #6e9f72;
}

body.corp-theme .threat[data-threat="heart"] {
  --threat-color: #bd6a80;
}

body.corp-theme .threat-presence {
  background:
    radial-gradient(circle at 50% 50%, color-mix(in srgb, var(--threat-color) 20%, transparent), transparent 68%),
    rgba(255, 255, 255, 0.66);
}

body.corp-theme .threat h2 {
  color: #24343d;
  text-shadow: none;
}

body.corp-theme .threat .threat-progress {
  color: #9a5c31;
}

body.corp-theme .condition-badge {
  background: rgba(255, 246, 219, 0.92);
  border-color: rgba(214, 158, 46, 0.28);
  color: #684d1f;
}

body.corp-theme .condition-badge.unknown {
  background: rgba(255, 233, 239, 0.9);
  border-color: rgba(230, 99, 112, 0.28);
  color: #7f3c55;
}

body.corp-theme .intent-step {
  background: rgba(255, 255, 255, 0.7);
  border-color: rgba(42, 72, 83, 0.14);
  color: #63757b;
}

body.corp-theme .intent-step:hover::after {
  background: rgba(255, 255, 255, 0.96);
  border-color: rgba(214, 158, 46, 0.32);
  color: #354a55;
  box-shadow:
    0 12px 32px rgba(42, 72, 83, 0.14),
    inset 0 1px 0 rgba(255, 255, 255, 0.9);
}

body.corp-theme .intent-step.active {
  background: rgba(255, 246, 219, 0.88);
  border-color: rgba(214, 158, 46, 0.34);
  color: #26313a;
}

body.corp-theme .intent-step.past {
  background: rgba(255, 233, 239, 0.82);
  border-color: rgba(230, 99, 112, 0.28);
  color: #a14f62;
}

body.corp-theme .door {
  background:
    radial-gradient(circle at 50% 0%, color-mix(in srgb, var(--sigil) 16%, transparent), transparent 70%),
    rgba(255, 255, 255, 0.76);
  border-color: rgba(42, 72, 83, 0.14);
}

body.corp-theme .door:disabled {
  opacity: 0.68;
}

body.corp-theme .door.blind {
  background:
    radial-gradient(circle at 50% 0%, rgba(72, 174, 185, 0.08), transparent 70%),
    rgba(247, 249, 248, 0.72);
  border-color: rgba(42, 72, 83, 0.16);
  color: #465e68;
}

body.corp-theme .log p,
body.corp-theme .welcome-goals li,
body.corp-theme .traveler-field,
body.corp-theme .achievement-card,
body.corp-theme .book-rule {
  background: rgba(255, 255, 255, 0.8);
  border-color: rgba(42, 72, 83, 0.14);
}

body.corp-theme .log p {
  color: #435763;
}

body.corp-theme .log p.bad {
  border-color: rgba(230, 99, 112, 0.34);
  color: #934657;
}

body.corp-theme .log p.good {
  border-color: rgba(84, 173, 119, 0.34);
  color: #39744f;
}

body.corp-theme .log p.warn {
  border-color: rgba(214, 158, 46, 0.34);
  color: #7a5b25;
}

body.corp-theme .book-tab {
  background: rgba(255, 255, 255, 0.78);
  border-color: rgba(42, 72, 83, 0.16);
  color: #6b7b80;
}

body.corp-theme .book-tab.active {
  background:
    radial-gradient(circle at 50% 0%, rgba(239, 197, 107, 0.16), transparent 70%),
    rgba(255, 251, 239, 0.9);
  border-color: rgba(214, 158, 46, 0.32);
  color: #26313a;
}

body.corp-theme .book-rule.known {
  border-color: rgba(214, 158, 46, 0.3);
}

body.corp-theme .traveler-field input,
body.corp-theme .feedback-form select,
body.corp-theme .feedback-form textarea {
  background: rgba(255, 255, 255, 0.9);
  color: #21313b;
  border-color: rgba(42, 72, 83, 0.2);
}

body.corp-theme .condition-badge,
body.corp-theme .pill,
body.corp-theme .cost-line .pill {
  background: rgba(255, 255, 255, 0.82);
  color: #435763;
}

body.corp-theme .card::before {
  opacity: 0.5;
}

body.corp-theme .card::after {
  opacity: 0.5;
}

body.corp-theme .card-type {
  color: color-mix(in srgb, var(--accent) 58%, #6c5360);
}

body.corp-theme .card-icon {
  background:
    radial-gradient(circle, color-mix(in srgb, var(--accent) 14%, transparent), transparent 62%),
    rgba(255, 255, 255, 0.62);
  box-shadow:
    inset 0 0 20px rgba(42, 72, 83, 0.12),
    0 0 22px color-mix(in srgb, var(--accent) 18%, transparent);
}

body.corp-theme .card.disabled {
  opacity: 0.56;
}

body.corp-theme .achievement-card.locked {
  background: rgba(247, 249, 248, 0.72);
  opacity: 0.72;
}

body.corp-theme .achievement-button {
  background:
    radial-gradient(circle at 50% 8%, rgba(239, 197, 107, 0.2), transparent 62%),
    linear-gradient(135deg, rgba(255, 255, 255, 0.94), rgba(246, 249, 248, 0.86));
  border-color: rgba(214, 158, 46, 0.28);
  color: #c98223;
  box-shadow:
    0 16px 42px rgba(78, 97, 105, 0.12),
    inset 0 1px 0 rgba(255, 255, 255, 0.9);
}

body.corp-theme .achievement-button:hover:not(:disabled) {
  border-color: rgba(214, 158, 46, 0.46);
  box-shadow:
    0 18px 48px rgba(78, 97, 105, 0.14),
    0 0 0 3px rgba(239, 197, 107, 0.14);
}

body.corp-theme .achievement-button svg {
  filter: none;
}

body.corp-theme .achievement-button strong {
  color: #24343d;
}

body.corp-theme .achievement-button.pulse {
  animation: corpTrophyPulse 920ms ease-out;
}

body.corp-theme .achievement-mark {
  background:
    radial-gradient(circle, rgba(239, 197, 107, 0.2), transparent 68%),
    rgba(255, 251, 239, 0.88);
  border-color: rgba(214, 158, 46, 0.3);
  color: #c98223;
}

body.corp-theme .achievement-toast {
  background:
    radial-gradient(circle at 11% 50%, rgba(239, 197, 107, 0.2), transparent 40%),
    linear-gradient(135deg, rgba(255, 255, 255, 0.98), rgba(250, 247, 239, 0.96));
  border-color: rgba(214, 158, 46, 0.34);
  color: #21313b;
  box-shadow:
    0 24px 64px rgba(78, 97, 105, 0.22),
    0 0 0 1px rgba(255, 255, 255, 0.82);
}

body.corp-theme .achievement-toast .achievement-mark {
  box-shadow: 0 0 28px rgba(239, 197, 107, 0.14);
}

body.corp-theme .achievement-toast span {
  color: #9a6a1e;
}

body.corp-theme .achievement-toast strong {
  color: #21313b;
}

body.corp-theme .achievement-toast p {
  color: #445966;
}

@keyframes corpTrophyPulse {
  0% {
    transform: scale(1);
    box-shadow: 0 0 0 rgba(239, 197, 107, 0);
  }
  32% {
    transform: scale(1.06);
    box-shadow:
      0 0 0 3px rgba(239, 197, 107, 0.2),
      0 18px 52px rgba(78, 97, 105, 0.18);
  }
  100% {
    transform: scale(1);
    box-shadow: 0 0 0 rgba(239, 197, 107, 0);
  }
}
