:root {
  color-scheme: dark;
  --paper: #eee9dc;
  --ink: #29332f;
  --muted: #626b62;
  --cream: #f1e6c8;
  --line: #bbbbaa;
  --serif: Georgia, 'Times New Roman', serif;
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  font-size: 15px;
  background: #14222d;
  color: #f2f0e6;
}
* { box-sizing: border-box; }
body { margin: 0; }
button, input, a { -webkit-tap-highlight-color: transparent; }
button, input { font: inherit; }
button, a { touch-action: manipulation; }
button { cursor: pointer; color: inherit; }
button { border: 0; }
a { color: inherit; }
button:disabled { cursor: default; opacity: .5; }
button:focus-visible, a:focus-visible, input:focus-visible, canvas:focus-visible { outline: 2px solid #d5ae62; outline-offset: 5px; }
[hidden] { display: none !important; }
.icon-definitions { position: absolute; width: 0; height: 0; overflow: hidden; }
.icon { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.4; stroke-linecap: round; stroke-linejoin: round; flex-shrink: 0; }
.enhanced-control { display: none !important; }
.enhanced .enhanced-control { display: flex !important; }
.enhanced body { overflow: hidden; }
.enhanced .static-collection { display: none; }
.skip { position: fixed; top: -100px; left: 20px; z-index: 100; padding: 15px; background: var(--paper); color: var(--ink); }
.skip:focus { top: 14px; }
.scene { --day: 0; --twilight: 0; --warmth: 1; position: relative; height: 100svh; min-height: 460px; overflow: hidden; isolation: isolate; }
.scene-surround, .scene-surround > div { position: absolute; inset: -40px; }
.scene-surround { z-index: -2; filter: blur(28px); }
.surround-night { background: #152330 url('scene/night.webp') 65% center / cover no-repeat; }
.surround-day { background: #7b837c url('scene/day.webp') 65% center / cover no-repeat; opacity: var(--day); }
.art-plane { position: absolute; width: 100%; height: 100%; }
.scene-image { position: absolute; width: 100%; height: 100%; display: block; object-fit: cover; object-position: 64% center; }
.day-image { opacity: var(--day); }
.twilight-wash { position: absolute; inset: 0; opacity: var(--twilight); background: linear-gradient(165deg, #af9378 0, transparent 58%); mix-blend-mode: soft-light; pointer-events: none; }
#ambience { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.scene-shade { position: absolute; inset: 0; z-index: 1; pointer-events: none; background: linear-gradient(#0a142955, transparent 18%, transparent 68%, #081319a6); }
.masthead { position: absolute; top: max(28px, env(safe-area-inset-top)); left: max(34px, env(safe-area-inset-left)); right: max(34px, env(safe-area-inset-right)); z-index: 3; display: flex; align-items: center; justify-content: space-between; gap: 24px; text-shadow: 0 1px 14px #000b; }
.brand { display: inline-flex; align-items: center; gap: 12px; text-decoration: none; }
.brand > span { font: 23px/1.15 var(--serif); letter-spacing: -.03em; }
.brand small { display: block; font: 10px/1.5 -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; letter-spacing: .11em; margin-top: 6px; opacity: .8; }
.masthead nav { display: flex; gap: 28px; align-items: center; font-size: 12px; }
.masthead nav a { padding: 14px 0; text-decoration: none; border-bottom: 1px solid #fff3; }
.masthead nav a:hover { border-color: #e7d29c; }
.scene-caption { position: absolute; z-index: 2; left: 5%; top: 33%; max-width: 29%; text-shadow: 0 2px 24px #051320; pointer-events: none; }
.eyebrow { font-size: 10px; letter-spacing: .16em; line-height: 1.6; font-weight: 500; }
.scene-caption h1 { font: normal clamp(30px, 3.3vw, 54px)/1.08 var(--serif); letter-spacing: -.04em; margin: 12px 0; }
.scene-caption > p:last-child { font-size: 12px; line-height: 1.7; max-width: 220px; color: #ecebe4d9; }
.scene-footer { position: absolute; bottom: max(26px, env(safe-area-inset-bottom)); left: max(34px, env(safe-area-inset-left)); right: max(34px, env(safe-area-inset-right)); z-index: 4; display: flex; gap: 20px; align-items: center; justify-content: space-between; }
.dock { display: flex; align-items: center; gap: 5px; padding: 6px; background: #142021db; border: 1px solid #e5e4d23d; box-shadow: 0 8px 32px #05131540; border-radius: 9px; backdrop-filter: blur(14px); }
.journal-launch { display: flex; align-items: center; gap: 13px; min-height: 58px; padding: 9px 18px; text-decoration: none; background: var(--cream); color: #30382d; border-radius: 5px; font: 18px var(--serif); }
.journal-launch small { display: block; margin-top: 5px; font: 10px -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; color: #626654; }
.launch-arrow { margin-left: 12px; font: 17px sans-serif; }
.dock-button { min-width: 70px; min-height: 58px; display: flex; flex-direction: column; gap: 7px; align-items: center; justify-content: center; padding: 7px 12px; background: none; border-radius: 4px; font-size: 10px; color: #e3e3d5; }
.dock-button:hover, .dock-button[aria-pressed=true] { background: #e4e7d414; color: #efd7a3; }
.phase-link { min-height: 44px; align-items: center; gap: 8px; background: none; font-size: 12px; text-align: left; padding: 5px 0; flex-wrap: wrap; width: 155px; }
.phase-dot { width: 6px; height: 6px; border-radius: 50%; background: #d7bf8e; box-shadow: 0 0 8px #d7bf8e55; }
.phase-state { display: block; flex-basis: 100%; font-size: 10px; opacity: .6; padding-left: 14px; }
.contact-link { text-decoration: none; font-size: 11px; padding: 14px 0; width: 155px; text-align: right; }
.hotspot { display: flex; position: absolute; z-index: 3; width: 52px; height: 52px; padding: 0; align-items: center; justify-content: center; transform: translate(-50%, -50%); background: transparent; border: 1px solid #ffe5a500; border-radius: 50%; transition: border-color .25s, background .25s; }
.spot-dot { width: 6px; height: 6px; border-radius: 50%; background: #fae9b9; box-shadow: 0 0 0 5px #1a272454, 0 0 14px #f9e3a845; opacity: .78; }
.hotspot:hover, .hotspot:focus-visible { border-color: #f4ddb983; background: #161d2933; }
.spot-label { pointer-events: none; position: absolute; top: 54px; white-space: nowrap; font-size: 11px; background: #142328df; color: #f4ecda; border: 1px solid #f0e4c845; padding: 7px 10px; border-radius: 4px; opacity: 0; transition: opacity .2s; }
.hotspot:hover .spot-label, .hotspot:focus-visible .spot-label { opacity: 1; }
.telescope-spot { left: 49.1%; top: 17.2%; }
.journal-spot { left: 53.4%; top: 79.2%; }
.radio-spot { left: 78%; top: 80%; }
.music-notes { position: absolute; left: -4px; top: -20px; display: none; width: 65px; height: 70px; pointer-events: none; color: #eddfbe; }
.radio-playing .music-notes { display: block; }
.music-notes i { position: absolute; font: 20px var(--serif); opacity: 0; animation: music-float 4s linear infinite; }
.music-notes i:nth-child(2) { left: 20px; animation-delay: 1.3s; }
.music-notes i:nth-child(3) { left: 40px; animation-delay: 2.6s; }
@keyframes music-float { 0% { transform: translateY(10px); opacity: 0; } 25% { opacity: .7; } 100% { transform: translate(6px, -40px); opacity: 0; } }
.still .music-notes i { animation: none; opacity: .7; }
.still .music-notes i:nth-child(2) { top: -10px; }
.suspended .music-notes i { animation-play-state: paused; }
.scene-error { position: absolute; top: 95px; left: 34px; z-index: 5; font-size: 12px; max-width: 300px; background: #142328df; padding: 12px; }
dialog { border: 0; }
dialog::backdrop { background: #07141973; }
.journal, .small-dialog { color-scheme: light; background: var(--paper); color: var(--ink); box-shadow: 0 20px 70px #07111866; }
.journal { position: fixed; inset: 20px 20px 20px auto; margin: 0; padding: 0; width: 490px; max-width: calc(100vw - 40px); max-height: calc(100svh - 40px); height: calc(100svh - 40px); border-radius: 6px; overflow: hidden; }
.journal-top { display: flex; align-items: center; justify-content: space-between; padding: 15px 20px 15px 30px; border-bottom: 1px solid #b8b5a78c; }
.journal-top .eyebrow { font-size: 9px; color: #596050; }
.icon-button { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; padding: 0; background: none; border-radius: 50%; flex-shrink: 0; }
.icon-button:hover { background: #6b756015; }
.journal-scroll { height: calc(100% - 75px); overflow-y: auto; overscroll-behavior: contain; padding: 30px 30px 24px; scrollbar-color: #aaa995 transparent; scrollbar-width: thin; }
.journal h2 { font: 37px/1.15 var(--serif); letter-spacing: -.045em; margin: 0 0 12px; font-weight: normal; overflow-wrap: anywhere; }
.journal-intro { font: 14px/1.7 var(--serif); color: #687061; margin: 0 0 25px; }
.journal-filters { display: flex; gap: 24px; border-bottom: 1px solid #bab9aa; }
.journal-filters button { position: relative; background: none; color: #697061; min-height: 44px; padding: 9px 0; font-size: 12px; }
.journal-filters button[aria-pressed=true] { color: #29362b; box-shadow: 0 2px #596343; }
.journal-filters span { margin-left: 5px; font-size: 10px; opacity: .65; }
.search-label { display: block; font-size: 10px; color: var(--muted); margin: 20px 0 4px; }
.search-label input { width: 100%; color: var(--ink); background: transparent; border: 0; border-bottom: 1px solid #c9c6b8; min-height: 44px; padding: 8px 0; outline-offset: 2px; border-radius: 0; font-size: 14px; }
.result-count { margin: 13px 0 0; font-size: 10px; color: #6f7668; }
.project-entry { width: 100%; padding: 23px 0; display: grid; grid-template-columns: 24px 1fr 20px; gap: 9px; text-align: left; background: none; color: var(--ink); border-bottom: 1px solid #bdbbad85; border-radius: 0; }
.project-entry:hover .entry-title { color: #687145; }
.entry-number { padding-top: 6px; font: 10px monospace; color: #8d8c76; }
.entry-title { display: block; font: 24px/1.15 var(--serif); letter-spacing: -.03em; margin-bottom: 8px; overflow-wrap: anywhere; }
.entry-summary { display: block; font-size: 12px; line-height: 1.65; color: #606859; }
.entry-meta { display: block; font-size: 10px; margin-top: 11px; color: #737764; }
.entry-arrow { padding-top: 3px; font-size: 17px; color: #7c826a; }
.journal-footer { margin-top: 28px; font-size: 11px; color: #626b59; }
.journal-footer a { display: inline-block; padding: 10px 0; }
.journal-footer p { font-size: 10px; opacity: .75; line-height: 1.6; }
.text-button { display: flex; align-items: center; gap: 8px; min-height: 44px; padding: 0; background: none; color: #646d5e; font-size: 11px; margin-bottom: 25px; }
.text-button .icon { width: 16px; }
#detail-category { color: #7d795d; margin: 0 0 12px; }
.detail-description { font: 17px/1.65 var(--serif); color: #485341; margin: 18px 0 24px; }
.project-image { width: 100%; max-height: 300px; object-fit: contain; background: #d9d6c8; border: 1px solid #b9baa9; margin: 0 0 22px; }
.detail-meta { display: flex; gap: 8px 14px; flex-wrap: wrap; font-size: 10px; color: #6b735e; margin-bottom: 20px; }
.requirement { font-size: 12px; line-height: 1.6; border-left: 2px solid #b0aa83; padding-left: 12px; }
.detail-actions { display: flex; flex-direction: column; gap: 9px; margin-top: 28px; }
.primary, .secondary { min-height: 46px; display: inline-flex; justify-content: center; align-items: center; padding: 11px 18px; border-radius: 4px; font-size: 12px; text-decoration: none; text-align: center; }
.primary { background: #465640; color: #fff7e6; border: 1px solid #465640; }
.primary:hover { background: #34452d; }
.secondary { background: transparent; border: 1px solid #a7ac97; color: #485441; }
.small-dialog { width: 370px; max-width: calc(100vw - 28px); padding: 22px; border-radius: 7px; }
.small-top { display: flex; align-items: center; justify-content: space-between; margin: -9px -8px 14px 0; }
.small-dialog h2 { font: 28px/1.1 var(--serif); font-weight: normal; margin: 0 0 12px; letter-spacing: -.03em; }
.small-dialog > p { font: 14px/1.7 var(--serif); color: #636d5d; }
.time-range-label { display: flex; justify-content: space-between; font-size: 11px; margin-top: 26px; }
#time-range { width: 100%; accent-color: #687154; min-height: 44px; }
.phase-presets { display: flex; justify-content: space-between; margin-bottom: 20px; gap: 6px; }
.phase-presets button { min-height: 44px; flex: 1; background: #c0c4b326; border: 1px solid #abb39c; color: #4c5e40; border-radius: 3px; font-size: 11px; }
.phase-presets button[aria-pressed=true] { background: #465640; color: #fff7e6; }
.wide { width: 100%; }
.small-dialog > .fine-print { font: 10px/1.6 -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; text-align: center; }
.sky-dialog { width: 100vw; max-width: 100vw; height: 100svh; max-height: 100svh; margin: 0; padding: max(26px, env(safe-area-inset-top)) 34px 24px; color: #e0e4d9; background: #09141bed; overflow: auto; }
.sky-dialog[open] { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 22px; }
.sky-dialog::backdrop { background: #081219; }
.sky-top { display: flex; justify-content: space-between; align-items: flex-start; width: 100%; max-width: 980px; }
.sky-top h2 { font: 24px var(--serif); margin: 10px 0 0; font-weight: normal; }
.sky-top .eyebrow { opacity: .6; font-size: 9px; }
.eyepiece { position: relative; width: min(65svh, 680px, 85vw); aspect-ratio: 1; flex-shrink: 0; border-radius: 50%; border: 1px solid #80908655; box-shadow: 0 0 0 8px #23313a77, 0 0 0 9px #76807822, inset 0 0 60px #03090d; overflow: hidden; background: radial-gradient(#172f40, #050e16 80%); }
#sky-canvas { width: 100%; height: 100%; touch-action: none; cursor: grab; }
#sky-canvas:active { cursor: grabbing; }
.scope-reticle { position: absolute; inset: 12%; border: 1px solid #d7debf0c; border-radius: 50%; pointer-events: none; }
.sky-hint { font: 13px/1.7 var(--serif); color: #aabbb7; text-align: center; }
.sky-hint span { display: block; font: 10px/1.7 -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; opacity: .65; margin-top: 5px; }
.viewer { inset: 0; width: 100vw; max-width: 100vw; height: 100dvh; max-height: 100dvh; padding: 0; margin: 0; background: #152126; color: #e5e7db; }
.viewer[open] { display: grid; grid-template-columns: 82px minmax(0, 1fr); }
.viewer-bar { display: flex; flex-direction: column; align-items: center; gap: 18px; padding: 16px 6px; border-right: 1px solid #86957e33; overflow: auto; }
.viewer-bar button, .viewer-bar a { display: flex; flex-direction: column; gap: 8px; align-items: center; justify-content: center; width: 100%; min-height: 60px; font-size: 10px; color: inherit; padding: 7px 1px; background: none; text-decoration: none; border-radius: 4px; }
.viewer-bar button:hover, .viewer-bar a:hover { background: #eee9db12; }
.viewer-label { writing-mode: vertical-rl; max-height: 34vh; font-size: 11px; color: #a4b19c; margin: 12px 0 auto; overflow: hidden; }
.viewer-stage { min-width: 0; min-height: 0; position: relative; }
.viewer-stage iframe { display: block; width: 100%; height: 100%; border: 0; background: #f3f0e6; }
.viewer-help { position: absolute; top: 14px; right: 14px; max-width: min(330px, calc(100% - 28px)); margin: 0; background: #182b30f5; color: #ebe8da; border: 1px solid #f1e8c04d; padding: 14px 38px 14px 14px; font-size: 12px; line-height: 1.7; border-radius: 5px; }
.viewer-help button { position: absolute; right: 0; top: 0; min-width: 36px; min-height: 44px; background: none; font-size: 20px; }
.toast { position: fixed; z-index: 20; bottom: 118px; left: 50%; transform: translateX(-50%); width: max-content; max-width: calc(100vw - 32px); padding: 13px 18px; border: 1px solid #e5e2c74d; color: #ede9d9; background: #14292def; border-radius: 5px; box-shadow: 0 5px 22px #09182040; font-size: 12px; line-height: 1.6; }
.static-collection { background: var(--paper); color: var(--ink); padding: 40px max(20px, 10vw); }
.static-collection h2 { font: 36px var(--serif); }
.fallback-list a { display: block; padding: 20px 0; border-bottom: 1px solid #aeb69f; font-size: 19px; }
.fallback-list small { display: block; font-size: 13px; margin-top: 8px; line-height: 1.6; }
@media (max-width: 1100px) {
  .contact-link { display: none; }
  .scene-footer { gap: 14px; }
  .scene-caption { left: 4%; top: 30%; max-width: 31%; }
  .scene-caption > p:last-child { max-width: 170px; }
}
@media (max-aspect-ratio: 11/10) {
  .art-plane { mask-image: linear-gradient(transparent, #000 9%, #000 94%, transparent); }
  .scene-caption { top: 104px; left: 25px; max-width: 70%; }
  .scene-caption h1 { font-size: 34px; }
  .scene-caption > p:last-child { max-width: none; font-size: 11px; }
  .scene-caption .eyebrow { display: none; }
  .scene-surround { filter: blur(32px) brightness(.78); }
  .scene-shade { background: linear-gradient(#0a142938, transparent 26%, transparent 67%, #0813199e); }
}
@media (max-width: 700px) {
  .masthead { top: max(20px, env(safe-area-inset-top)); left: 22px; right: 22px; gap: 12px; }
  .brand > span { font-size: 19px; }
  .brand small { display: none; }
  .brand { gap: 8px; }
  .brand img { width: 22px; height: 22px; }
  .masthead .github-link { display: none; }
  .masthead nav { font-size: 11px; }
  .scene-caption { top: 88px; left: 24px; }
  .scene-caption h1 { font-size: 31px; margin-bottom: 9px; }
  .scene-footer { bottom: max(16px, env(safe-area-inset-bottom)); left: 14px; right: 14px; flex-direction: column; gap: 8px; }
  .phase-link { width: auto; min-height: 36px; flex-wrap: nowrap; font-size: 10px; padding: 3px 9px; }
  .phase-state { flex-basis: auto; font-size: 10px; padding: 0 0 0 5px; }
  .dock { width: 100%; justify-content: space-between; gap: 1px; padding: 5px; flex-wrap: wrap; }
  .journal-launch { gap: 9px; min-height: 58px; padding: 9px 12px; flex: 1; font-size: 16px; }
  .journal-launch small { font-size: 9px; }
  .journal-launch .icon { width: 20px; }
  .launch-arrow { display: none; }
  .dock-button { min-width: 52px; padding: 7px 5px; font-size: 9px; }
  .dock-button .icon { width: 20px; }
  .journal { inset: auto 0 0; height: 86svh; width: 100vw; max-width: 100vw; max-height: calc(100svh - 24px); border-radius: 16px 16px 0 0; padding-bottom: env(safe-area-inset-bottom); }
  .journal-top { padding: 11px 14px 11px 24px; }
  .journal-scroll { height: calc(100% - 67px); padding: 24px 24px 30px; }
  .search-label input { font-size: 16px; }
  .journal h2 { font-size: 34px; }
  .journal-intro { font-size: 13px; }
  .project-entry { padding: 22px 0; }
  .entry-title { font-size: 24px; }
  .entry-summary { font-size: 13px; }
  .sky-dialog { padding: max(24px, env(safe-area-inset-top)) 20px 20px; gap: 30px; }
  .sky-top h2 { font-size: 23px; }
  .sky-hint span { display: none; }
  .viewer[open] { grid-template-columns: 1fr; grid-template-rows: minmax(0, 1fr) auto; }
  .viewer-stage { grid-row: 1; }
  .viewer-bar { grid-row: 2; flex-direction: row; justify-content: space-evenly; border-top: 1px solid #86957e33; border-right: 0; gap: 8px; padding: 6px 8px calc(6px + env(safe-area-inset-bottom)); }
  .viewer-label { display: none; }
  .viewer-bar button, .viewer-bar a { width: auto; flex: 1; flex-direction: row; gap: 7px; min-height: 48px; font-size: 11px; }
  .viewer-bar .icon { width: 18px; }
  .toast { bottom: 135px; }
}
@media (max-width: 360px) {
  .journal-launch { padding: 8px; font-size: 14px; }
  .journal-launch .icon { display: none; }
  .dock-button { min-width: 48px; }
  .brand > span { font-size: 17px; }
  .journal-scroll { padding: 22px 20px; }
}
@media (max-height: 740px) and (max-aspect-ratio: 11/10) {
  .scene-caption { display: none; }
}
@media (max-height: 540px) and (min-aspect-ratio: 11/10) {
  .scene { min-height: 320px; }
  .scene-caption { top: 25%; }
  .scene-caption h1 { font-size: 30px; }
  .masthead { top: 12px; }
  .brand small { display: none; }
  .scene-footer { bottom: 12px; }
  .dock { width: auto; }
  .sky-dialog[open] { flex-direction: row; }
  .sky-top { max-width: 220px; }
  .sky-hint { display: none; }
  .eyepiece { width: 72svh; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; }
  .music-notes i { animation: none; opacity: .7; }
}
/* Observatory field guide and constellation atlas. */
.hotspot { width:72px; height:72px; border:1px solid #f2d8a17a; background:#17263345; box-shadow:0 0 0 7px #14232b30; }
.spot-dot { width:10px;height:10px;box-shadow:0 0 18px #ffdc8f; }
.spot-label { opacity:1;top:76px;font-size:14px;padding:9px 13px;background:#11212aed;box-shadow:0 3px 14px #0004; }
.hotspot:hover,.hotspot:focus-visible { background:#f3d29830;box-shadow:0 0 0 10px #eac67d20; }
.journal-spot .spot-label,.radio-spot .spot-label { top:auto;bottom:78px; }
.dock-button { font-size:12px; }
.journal-launch small {font-size:12px}
.journal {width:min(1000px,calc(100vw - 64px));inset:32px 32px 32px auto;height:calc(100svh - 64px);max-height:calc(100svh - 64px);}
.journal-scroll {padding:32px 40px 40px;background:linear-gradient(90deg,#d4ccbb40 1px,transparent 1px) 20px 0/100% 100%;}
.journal h2 {font-size:46px;}
.journal-intro {font-size:17px;margin-bottom:20px;}
.journal-top .eyebrow,.eyebrow {font-size:12px;}
.journal-filters button,.search-label,.result-count,.entry-meta,.journal-footer,.detail-meta,.text-button {font-size:14px;}
.journal-filters span {font-size:12px;}
.search-label input {font-size:16px;}
.project-list {display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:20px;}
.project-entry {position:relative;display:grid;grid-template-columns:26px 1fr;padding:0 0 20px;gap:12px;border:1px solid #b7b09e;background:#f7f2e7;border-radius:6px;overflow:hidden;transition:transform .2s,box-shadow .2s;}
.project-entry:hover {transform:translateY(-3px);box-shadow:0 9px 20px #3d352414;}
.project-art {position:relative;display:flex;grid-column:1/-1;height:170px;width:100%;overflow:hidden;align-items:center;justify-content:center;background:radial-gradient(ellipse at 65% 30%,#657575,#162e38);color:#ead8ac;}
.project-art::after {content:'';position:absolute;inset:12px;border:1px solid #f4e7c12b;pointer-events:none;}
.project-art img {position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1;}
.art-symbol {font:100px Georgia;line-height:1;transform:rotate(-12deg);opacity:.85;}
.art-caption {position:absolute;bottom:18px;left:22px;font-size:12px;letter-spacing:.13em;text-transform:uppercase;}
.art-kinwild,.art-kinwild-world {background:radial-gradient(ellipse at 60% 20%,#afbc82,#294c48 80%);}
.art-hydra {background:repeating-radial-gradient(ellipse at 70% 100%,transparent 0 25px,#e7c88b25 26px 27px),linear-gradient(130deg,#142735,#456e7b);}
.art-rubikit {background:linear-gradient(35deg,#332f4a,#967e8c);}
.entry-number {padding-left:14px;font-size:12px;}
.entry-content {padding:0 20px 0 0;}
.entry-title {font-size:27px;}
.entry-summary {font-size:16px;line-height:1.55;}
.entry-arrow {grid-column:2;font:14px -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;color:#45583e;}
#detail-view {max-width:740px;margin:auto;}
#detail-media > .project-art {height:240px;border-radius:4px;}
.entry-notes {display:grid;grid-template-columns:150px 1fr;gap:16px 24px;border-top:1px solid #b7b09e;margin-top:24px;padding-top:24px;}
.entry-notes h3 {font:20px Georgia;margin:0;}
.entry-notes p {font-size:16px;line-height:1.65;margin:0;}
.detail-description {font-size:21px;}.requirement,.primary,.secondary {font-size:16px;}
.detail-actions {flex-direction:row;flex-wrap:wrap;}.detail-actions > * {flex:1;}
.sky-dialog[open] {gap:20px;justify-content:flex-start;background:radial-gradient(ellipse at 35% 55%,#173047,#07121e 75%);}
.sky-top {max-width:1280px;align-items:center;}.sky-top h2 {font-size:36px;}.sky-top .eyebrow {font-size:12px;}
.star-atlas {display:grid;grid-template-columns:minmax(0,1.7fr) minmax(280px,1fr);gap:36px;width:100%;max-width:1280px;flex:1;min-height:420px;align-items:center;}
.atlas-field {position:relative;min-width:0;height:100%;min-height:420px;border:1px solid #aec6d226;border-radius:50% 50% 8px 8px;overflow:hidden;}
#sky-canvas {position:absolute;inset:0;width:100%;height:100%;pointer-events:none;}
.constellations {position:relative;display:grid;grid-template-columns:1fr 1fr;gap:18px;padding:36px 28px;min-height:100%;align-content:center;}
.constellation {min-width:0;background:transparent;color:#a9bccb;display:flex;flex-direction:column;align-items:center;border-radius:12px;padding:14px;border:1px solid transparent;transition:background .2s,color .2s;}
.constellation:hover,.constellation[aria-pressed=true] {background:#d4e4f010;color:#ffe2a1;border-color:#e4c8894a;}
.constellation svg {width:100%;max-width:190px;height:150px;overflow:visible;filter:drop-shadow(0 0 5px #b4dafa55);}
.constellation polyline {fill:none;stroke:currentColor;stroke-width:.65;opacity:.65;}
.constellation circle {fill:currentColor;}
.constellation-title {font:22px Georgia;margin:8px 0;}.constellation small {font-size:12px;opacity:.65;}
.star-detail {padding:24px 0;}.star-detail h3 {font:40px/1.1 Georgia;margin:16px 0 24px;letter-spacing:-.03em;}.star-description {font-size:17px;line-height:1.75;color:#bfccd6;}.star-meta {font-size:14px;color:#96a9b9;margin:24px 0;}
.star-detail .primary,.star-detail .secondary {display:flex;width:100%;margin:12px 0;}.star-detail .primary {background:#ead6a5;color:#182a35;border-color:#ead6a5;}.star-detail .secondary {color:#e3d9bf;border-color:#6a7c89;}.star-source {display:inline-block;font-size:14px;padding:14px 0;color:#b4c3cf;}.sky-hint {font-size:14px;margin:0;}
@media(max-width:700px){
 .hotspot{width:48px;height:48px;}.spot-label{font-size:12px;top:51px;padding:7px 9px;}.journal-spot .spot-label,.radio-spot .spot-label{bottom:51px;}
 .journal{inset:12px 0 0;width:100vw;max-width:100vw;height:calc(100svh - 12px);max-height:calc(100svh - 12px);}.journal-scroll{padding:24px;}.journal h2{font-size:36px;}.project-list{grid-template-columns:1fr;}.project-art{height:180px;}.entry-notes{grid-template-columns:1fr;gap:12px;}.entry-notes p{margin-bottom:14px;}
 .sky-dialog{padding:20px 18px;}.sky-top h2{font-size:28px;}.star-atlas{grid-template-columns:1fr;gap:4px;}.atlas-field{min-height:380px;}.constellations{gap:4px;padding:24px 10px;}.constellation{padding:10px 4px;}.constellation svg{height:100px;}.constellation-title{font-size:18px;}.star-detail{padding:10px 8px;}.star-detail h3{font-size:32px;margin:10px 0;}.sky-hint{padding-bottom:20px;}.detail-actions{flex-direction:column;}
}
@media(max-height:540px) and (min-aspect-ratio:11/10){.sky-dialog[open]{flex-direction:column;}.sky-top{max-width:1280px;}.star-atlas{min-height:400px;}.sky-hint{display:block;}}
.radio-spot .spot-label { right:0; }
.spot-label { pointer-events:auto; } @media(max-width:700px){.telescope-spot .spot-label{left:0;}}
@media(max-width:700px){.star-atlas{display:block;flex:none;min-height:0;}.atlas-field{height:440px;min-height:440px;}.constellations{height:100%;min-height:0;}.sky-hint{flex-shrink:0;}}
