/* IMDNOVA sky chapter: warm paper, sea-glass instruments and coral roofs. */
:root {
  --accent: #2f766d;
  --muted: #577078;
  --line: #6e919144;
}
body:not(.sky-desk):not(.sky-forge) {
  color: #274650;
  background: #b7dce8;
}
body:not(.sky-desk):not(.sky-forge) > header {
  height: 90px;
  padding: 22px 32px;
  background: linear-gradient(#f9f4e9eb, #f9f4e96b, transparent);
  color: #264653;
}
body:not(.sky-desk):not(.sky-forge) .brand-mark {
  background: #f9ead0;
  color: #3b6c70;
  border: 2px solid #607f7e;
  box-shadow: 3px 3px 0 #66898440;
  border-radius: 50%;
}
body:not(.sky-desk):not(.sky-forge) .brand small {
  color: #55747c;
}
body:not(.sky-desk):not(.sky-forge) nav {
  gap: 23px;
  font-weight: 600;
}
body:not(.sky-desk):not(.sky-forge) .workshop-link {
  color: #315f64;
  border-color: #60898966;
}
body:not(.sky-desk):not(.sky-forge) #intro {
  top: 24%;
  left: 4%;
  max-width: 440px;
  padding: 26px 28px;
  background: linear-gradient(110deg, #fff8e9ec, #fff8e993);
  border: 1px solid #ffffff90;
  box-shadow: 0 15px 60px #66859520;
  border-radius: 4px 40px 5px 30px;
  backdrop-filter: blur(5px);
}
body:not(.sky-desk):not(.sky-forge) h1 {
  font-size: clamp(38px, 3.8vw, 63px);
  font-weight: 600;
  letter-spacing: -2.8px;
}
body:not(.sky-desk):not(.sky-forge) h1 em {
  color: #cd6e60;
}
body:not(.sky-desk):not(.sky-forge) #intro p {
  color: #4d6c74;
}
body:not(.sky-desk):not(.sky-forge) .primary {
  background: #2e716b;
  color: #fff7e7 !important;
  border-radius: 8px 18px 8px 18px;
  box-shadow: 0 4px 0 #245952;
}
body:not(.sky-desk):not(.sky-forge) .intro-foot {
  color: #668183;
  letter-spacing: 1px;
  font-size: 9px;
}
.tour {
  top: 111px;
  right: 28px;
  width: 202px;
  background: #fcf4e5ed;
  border: 1px solid #758f8970;
  box-shadow:
    5px 8px 0 #628f9520,
    0 15px 50px #618f8d22;
  border-radius: 25px 25px 15px 15px;
  padding: 14px 16px;
}
.tour-title {
  color: #597472;
  padding: 12px 0;
  font-size: 10px;
  border-top: 1px solid #a7b8a877;
}
#destinations button {
  color: #456970;
  font-size: 12px;
  padding: 8px 0;
  gap: 10px;
}
#destinations .number {
  border-color: #92aba68c;
  color: #6b8b8a;
  width: 22px;
  height: 22px;
  font-size: 10px;
}
#destinations .visited .number {
  background: #3d7f75;
  color: #fff8e7;
  border-color: #3d7f75;
}
.tour-bottom {
  color: #718780;
  font-size: 8px;
}
.compass-title {
  display: flex;
  justify-content: space-between;
  font-size: 9px;
  letter-spacing: 1.4px;
  color: #557c79;
  font-weight: 700;
}
.signal-compass svg {
  display: block;
  width: 100%;
  filter: drop-shadow(2px 4px 0 #627e7130);
}
.radar-bezel {
  fill: #d1c29f;
  stroke: #607d72;
  stroke-width: 2;
}
.radar-screen {
  fill: #315f57;
  stroke: #f6e8c2;
  stroke-width: 3;
}
.radar-grid {
  fill: none;
  stroke: #a4d1a5;
  stroke-width: 0.6;
  opacity: 0.4;
}
.radar-sweep {
  transform-origin: 100px 100px;
  animation: compassSweep 8s linear infinite;
  fill: #c4eda4;
  opacity: 0.12;
}
.signal-compass text {
  font-size: 8px;
  fill: #4a6a66;
  font-weight: 700;
}
.radar-dot {
  fill: #ffe8a3;
  stroke: #fff7cd;
  stroke-width: 1;
  cursor: pointer;
  filter: drop-shadow(0 0 3px #fbd488);
}
.radar-dot:hover,
.radar-dot:focus {
  stroke: #fff;
  stroke-width: 3;
  outline: none;
}
#radarPlayer {
  fill: #d5fcdf;
  stroke: #366c59;
  stroke-width: 1;
}
#radarHeading {
  fill: #b1e7c7;
}
.signal-compass p {
  font-size: 9px;
  text-align: center;
  color: #698580;
  margin: 1px 0 15px;
}
.place-label {
  background: #fff5dfeb;
  color: #365e65;
  text-shadow: none;
  border: 1px solid #7b9b9480;
  box-shadow: 2px 3px 0 #627e7130;
  border-radius: 12px 12px 12px 2px;
  font-weight: 600;
  font-size: 10px;
}
.place-label:hover {
  background: #fffdf1;
  color: #245f56;
}
.agent-tag {
  background: #fff4dddf;
  border: 1px solid #799b9366;
  padding: 12px 16px;
  border-radius: 8px 20px 8px 20px;
  color: #315e63;
  bottom: 100px;
}
.agent-tag span:not(.agent-signal) {
  color: #52787a;
}
.agent-signal {
  border-color: #498e70;
  box-shadow: 0 0 10px #5aaf6150;
}
body:not(.sky-desk):not(.sky-forge) > footer {
  background: linear-gradient(0deg, #fcf2dfed, #f9eedb99);
  border-color: #79978c66;
  color: #466d71;
}
.controls {
  color: #4e7479;
}
kbd {
  background: #fff7e7;
  color: #4c7377;
  border-color: #8aa39a88;
}
.world-note {
  color: #476c6d;
}
#nearby {
  background: #fff4dff5;
  border-color: #79968b;
  color: #365b61;
  box-shadow: 4px 5px 0 #627e7140;
}
#nearbyName {
  color: #365b61;
}
#interact {
  color: #327668;
}
dialog {
  background: #fff7e9;
  color: #2e5962;
  border: 1px solid #779e96;
  box-shadow:
    9px 10px 0 #365e7140,
    0 25px 120px #243a5960;
  border-radius: 22px 8px 22px 8px;
}
dialog::backdrop {
  background: #4f788876;
  backdrop-filter: blur(8px);
}
dialog p,
.story-rule span {
  color: #4e737b;
}
dialog .quote {
  color: #b97156;
  border-color: #d39271;
}
.story-rule b {
  color: #325e65;
}
.story-status {
  color: #507361;
  border-color: #9eb392;
  background: #e5ead673;
}
.close {
  color: #69857e;
}
#loading {
  background: #c5e1e7;
}
#loading strong {
  color: #326e70;
}
#loading span {
  color: #587c80;
}
.touch-pad button {
  background: #fcf3dded;
  color: #3a756e;
  border-color: #72948c;
  box-shadow: 2px 3px 0 #688d8640;
}
.touch-pad button:active {
  background: #39776a;
  color: #fff4d8;
}
.fallback {
  background: #fff4de;
  color: #315a60;
}
#toast {
  background: #2f766d;
  color: #fff9e7;
}
@keyframes compassSweep {
  to {
    transform: rotate(360deg);
  }
}
/* Workshop tools keep their existing controls and behavior. */
.sky-desk,
.sky-forge {
  color-scheme: light;
  background: linear-gradient(130deg, #ebf0e5, #e0eef0 55%, #f5eadb);
  color: #284e58;
  --bg: #ecf0e8;
  --panel: #fff8eb;
  --line: #9bb5b173;
  --muted: #617c81;
  --lime: #327a6e;
  --cyan: #5a9aab;
  --accent: #337c6c;
}
.sky-desk header,
.sky-forge > header {
  background: #fff6e8e8;
  border-bottom: 1px solid #96aea577;
  color: #325c64;
  box-shadow: 0 4px 20px #426f7710;
}
.sky-desk header a,
.sky-forge nav {
  color: #3b6970;
}
.sky-desk .mark,
.sky-forge .mark {
  background: #fae5c3;
  color: #45726d;
  border: 1px solid #7e9a8c;
  border-radius: 50%;
}
.sky-desk .brand small,
.sky-forge .brand small {
  color: #65827f;
}
.sky-desk .page-title p {
  color: #5e7c81;
}
.sky-desk .editor,
.sky-desk .preview,
.sky-desk .desk-panel,
.sky-desk .lab-panel,
.sky-desk .panel,
.sky-desk .manage,
.sky-desk .deployment {
  background: #fff8eb;
  border-color: #9cb3ab;
  box-shadow: 4px 5px 0 #789d9419;
  border-radius: 14px;
}
.sky-desk input,
.sky-desk select,
.sky-desk textarea {
  background: #fffcf4;
  color: #305a61;
  border-color: #a5bab2;
}
.sky-desk .muted,
.sky-desk .note,
.sky-desk label small {
  color: #668187;
}
.sky-desk .template {
  background: #e9efe3;
  color: #496e6b;
  border-color: #aec2b0;
}
.sky-desk .template.selected {
  background: #d5e9dc;
  border-color: #528e78;
}
.sky-desk .primary,
.sky-forge .primary {
  background: #367c6d;
  color: #fff5e3 !important;
  border-color: #2b695c;
  box-shadow: 0 3px 0 #286355;
}
.sky-desk .secondary,
.sky-forge .secondary {
  background: #f4e6c9;
  border-color: #b6af91;
  color: #436b66;
}
.sky-desk .badge {
  color: #4f7b64;
  background: #d8e8cd;
  border-color: #94b18f;
}
.sky-desk .quiet {
  color: #48756e;
}
.sky-desk .lab-tabs a {
  color: #416f6b;
}
.sky-desk .spec {
  color: #53736f;
  border-color: #b3c5b7;
}
.sky-desk .spec b {
  color: #315d62;
}
.sky-forge .workspace {
  border: 1px solid #799e9888;
  box-shadow: 6px 8px 0 #6a918b1f;
  border-radius: 16px;
}
.sky-forge .library {
  background: linear-gradient(140deg, #fff5de, #f6efde);
}
.sky-forge .palette-item {
  background: #fffaf0;
  color: #41666a;
  border-color: #bdcabb;
  box-shadow: 0 2px 0 #acbfa526;
}
.sky-forge .palette-item .symbol {
  color: #58816e;
}
.sky-forge .palette-item:hover {
  background: #e0eeda;
}
.sky-forge .library-foot .spark {
  color: #c68159;
}
.sky-forge .archive-link {
  color: #4a756d;
}
.sky-forge .canvas-panel {
  background:
    radial-gradient(ellipse at 48% 50%, #d3ecdc88, transparent 64%), #dceaea;
}
.sky-forge #viewport {
  background-image: radial-gradient(#72999244 1px, transparent 1px);
}
.sky-forge .canvas-toolbar {
  background: #f9f4e4d9;
  border-color: #9ab8af66;
}
.sky-forge .preset-label select {
  background: #fff9e9;
  color: #436b68;
  border-color: #9db6a7;
}
.sky-forge .icon-button,
.sky-forge .canvas-caption,
.sky-forge .canvas-caption span:first-child {
  color: #567d79;
}
.sky-forge .canvas-caption i {
  background: #599d74;
}
.sky-forge .canvas-bottom {
  color: #62817e;
  border-color: #91b3aa55;
}
.sky-forge .node {
  background: linear-gradient(135deg, #fff9e9, #f7efd9);
  border-color: #809e97;
  color: #3d646a;
  box-shadow: 4px 5px 0 #6b948d22;
}
.sky-forge .node header {
  color: #5f8177;
  border-color: #a2b7a077;
  background: #f6edda;
  border-radius: 9px 9px 0 0;
}
.sky-forge .node-body small {
  color: #69817d;
}
.sky-forge .node.selected {
  box-shadow:
    0 0 0 2px #518779,
    5px 6px 0 #517e6e33;
}
.sky-forge .node.active {
  border-color: #629a84;
}
.sky-forge .core {
  background: radial-gradient(at 50% 30%, #ffffff77, transparent 80%), #b7d7c4;
  border-color: #5e9881;
}
.sky-forge .core header {
  background: #c4ddc8;
}
.sky-forge .core .node-body small,
.sky-forge .core .core-footer {
  color: #487763;
}
.sky-forge .port {
  border-color: #4c8e75;
  background: #f7f4dd;
}
.sky-forge .active .port {
  background: #69a785;
  box-shadow: 0 0 0 3px #c4dcc977;
}
.sky-forge .wire {
  stroke: #5d9c8a;
}
.sky-forge .flow {
  stroke: #eaa464;
}
.sky-forge .wire.off {
  stroke: #88aaa4;
}
.sky-forge .wire-halo {
  stroke: #5ea28a;
}
.sky-forge .inspector {
  background: #fff7e8;
}
.sky-forge .inspector-heading .symbol {
  color: #bd8156;
}
.sky-forge .inspector .description {
  color: #688187;
}
.sky-forge .field {
  color: #557679;
}
.sky-forge .field input,
.sky-forge .field select {
  background: #fffdf7;
  color: #315960;
  border-color: #a6bcb0;
}
.sky-forge .connection-switch {
  background: #daead7;
  color: #497a5c;
  border-color: #95b391;
}
.sky-forge .connection-switch[aria-pressed="false"] {
  background: #efe9db;
  color: #7c8273;
  border-color: #b9bdad;
}
.sky-forge .build-bar {
  background: #fff7e7;
  border-color: #99b5a7;
  box-shadow: 3px 4px 0 #76978c19;
}
.sky-forge .build-status p {
  color: #6d8481;
}
.sky-forge .heading-note span,
.sky-forge .rule-note,
.sky-forge .field small {
  color: #6b827f;
}
.sky-forge .network {
  color: #567d70;
}
.sky-forge .diagram-note {
  color: #84a298;
}
.sky-forge .diagram-note b {
  color: #64887d;
}
.sky-forge .sub-bar,
.sky-forge .export-strip p {
  color: #68877f;
}
.sky-forge .export-strip {
  border-color: #91b5a480;
}
.sky-forge h1 em {
  color: #c07857;
}
.sky-forge .status-orb.ready {
  background: #599e71;
}
.forge-nav {
  font-size: 14px;
  color: #3f7c71;
  order: 1;
}
@media (max-width: 1100px) {
  body:not(.sky-desk):not(.sky-forge) nav {
    gap: 15px;
  }
  .tour {
    right: 16px;
    width: 178px;
    padding: 12px;
  }
  body:not(.sky-desk):not(.sky-forge) #intro {
    max-width: 365px;
    padding: 23px;
  }
  #destinations button {
    font-size: 11px;
  }
}
@media (max-width: 700px) {
  body:not(.sky-desk):not(.sky-forge) > header {
    height: auto;
    padding: 14px 16px;
    gap: 12px;
    background: linear-gradient(#fff7e8f5, #fff7e8bb, transparent);
  }
  body:not(.sky-desk):not(.sky-forge) nav {
    gap: 6px;
    font-size: 10px;
  }
  body:not(.sky-desk):not(.sky-forge) #intro {
    top: 121px;
    left: 15px;
    right: 15px;
    max-width: 350px;
    padding: 19px 22px;
    border-radius: 4px 27px 5px 22px;
    background: #fff7e9ef;
  }
  body:not(.sky-desk):not(.sky-forge) h1 {
    font-size: 36px;
    margin: 16px 0;
    letter-spacing: -2px;
  }
  body:not(.sky-desk):not(.sky-forge) #intro p {
    font-size: 13px;
    margin-bottom: 17px;
  }
  .tour {
    top: auto;
    bottom: 78px;
    right: 14px;
    width: 142px;
    padding: 9px;
    border-radius: 20px;
  }
  .signal-compass p,
  .tour-title,
  .tour-bottom,
  #destinations {
    display: none;
  }
  .signal-compass svg {
    height: 120px;
  }
  .compass-title {
    font-size: 7px;
  }
  .agent-tag {
    bottom: 70px;
    left: 14px;
    padding: 8px 10px;
    font-size: 10px;
    max-width: 190px;
  }
  .agent-tag b {
    font-size: 9px;
  }
  .touch-pad {
    left: 15px;
    bottom: 129px;
  }
  .touch-pad button {
    width: 34px;
    height: 34px;
  }
  .place-label {
    font-size: 9px;
  }
  .sky-forge .heading {
    margin-bottom: 16px;
  }
  #nearby {
    top: 119px;
  }
  .exploring .tour {
    bottom: 78px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .radar-sweep {
    animation: none;
  }
}
.sky-desk header {
  flex-wrap: wrap;
  gap: 18px;
}
.sky-desk header .brand {
  margin-left: 0;
  margin-right: auto;
}
.sky-desk header button,
.sky-desk button:not(.primary):not(.template):not(.quiet) {
  background: #e7eddf;
  color: #3a6965;
  border-color: #9db5a2;
}
.sky-desk h2 > span,
.sky-desk .preview p {
  color: #4c7378;
}
.sky-desk .template span {
  color: #648177;
}
.sky-desk #status,
.sky-desk #manageStatus,
.sky-desk .metric,
.sky-desk .metric b,
.sky-desk .step-number {
  color: #367b61;
}
.sky-desk #status.error,
.sky-desk #manageStatus.error,
.sky-desk #labStatus.error {
  color: #a8543e;
}
.sky-desk #deployment {
  background: #fff6e6;
  border-color: #9eb4a3;
}
.sky-desk .risk {
  color: #9c6247 !important;
  border-color: #c7936a;
}
.sky-desk .sim-terminal {
  background: radial-gradient(at top, #dcebd9, #edf1df);
  color: #456a67;
  border-color: #94b29b;
}
.sky-desk pre,
.sky-desk #labStatus {
  background: #ecedda;
  color: #406961;
  border-color: #a4b597;
}
.sky-desk .orb span {
  color: #689576;
  border-color: #94b488;
  background: #f6edcd;
}
.sky-desk .address-line {
  color: #4d777c;
}
.sky-desk input[type="datetime-local"] {
  color-scheme: light;
}
.sky-desk .lab-link {
  color: #3f7f6d;
  border-color: #83a991;
}
.sky-desk a:focus-visible,
.sky-desk button:focus-visible,
.sky-desk input:focus-visible,
.sky-desk select:focus-visible {
  outline-color: #397764;
}
.sky-desk .lab-tabs a:hover {
  background: #d5e7d7;
}
.sky-forge #message {
  color: #37795f;
}
.sky-forge .node.disconnected {
  opacity: 0.8;
}
@media (min-width: 1101px) and (max-height: 850px) {
  .sky-forge > header {
    height: 64px;
  }
  .sky-forge main {
    padding-top: 18px;
  }
  .sky-forge .heading {
    margin-bottom: 18px;
  }
  .sky-forge h1 {
    font-size: 32px;
  }
  .sky-forge .workspace {
    height: 440px;
    min-height: 440px;
  }
  .sky-forge .inspector {
    max-height: 440px;
  }
  .sky-forge #viewport {
    min-height: 310px;
  }
  .sky-forge .library-foot {
    display: none;
  }
  .sky-forge .archive-link {
    display: block;
    margin-top: 16px;
  }
  .sky-forge .build-bar {
    padding: 12px 16px;
  }
  .sky-forge .palette-item {
    margin-bottom: 6px;
    padding: 10px;
  }
  .sky-forge .hint {
    margin-bottom: 12px;
  }
  .sky-forge .canvas-bottom {
    padding: 9px 14px;
  }
}
.sky-forge .node-body b {
  font-size: 22px;
}
.sky-forge .node-body small {
  font-size: 15px;
}
.sky-forge .core .node-body b {
  font-size: 27px;
}
@media (min-width: 1101px) and (max-height: 850px) {
  .sky-forge .workspace {
    height: 480px;
    min-height: 480px;
  }
  .sky-forge .library {
    min-height: 0;
    overflow: auto;
  }
  .sky-forge .inspector {
    max-height: 480px;
  }
  .sky-forge .canvas-panel {
    min-height: 0;
  }
  .sky-forge #viewport {
    min-height: 0;
  }
  .sky-forge .node-body {
    padding-top: 8px;
  }
  .sky-forge .node-body b {
    font-size: 23px;
  }
}
