/* Shared tokens used by classic pages and future immersive presentation. */
:root {
  --space-bg:#080f22; --space-panel:#101b35; --space-text:#eeeef6;
  --space-muted:#b5bfd4; --space-line:#a9bce32b;
  --self-accent:#98c7ff; --self-glow:#5a91e8; --love-accent:#e9a2bf; --love-glow:#b494e8;
  --night:var(--space-bg); --paper:var(--space-text); --quiet:var(--space-muted); --gold:var(--self-accent);
  --hairline:var(--space-line); --ink:var(--space-text); --muted:var(--space-muted);
  color-scheme:dark;
}
body {background:var(--space-bg);color:var(--space-text);overflow-wrap:break-word}
body:before {background-image:none}
[hidden] {display:none!important}
:is(a,button,input,textarea,select,summary,[tabindex]):focus-visible {outline:2px solid var(--self-accent);outline-offset:5px}
.home-page .site-header {position:relative;padding-block:24px}
.home-intro {text-align:center;padding:35px 20px 42px}
.home-intro h1 {font:400 clamp(30px,4vw,52px)/1.3 Georgia,serif;letter-spacing:.16em}
.home-intro p {font:400 clamp(14px,1.7vw,21px)/1.9 var(--serif);margin-top:18px;color:var(--space-text)}
.home-intro small {display:block;font:italic 12px/2 Georgia,serif;letter-spacing:.1em;color:var(--space-muted);margin-top:10px}
.home-page .portals {height:640px;min-height:640px;margin:0 4.2%;gap:22px}
.home-page .portal {flex:1!important;border:1px solid var(--space-line);border-radius:24px;transition:box-shadow .5s}
.home-page .portal-self {background:#0b162b}
.home-page .portal-love {background:#19172f}
.home-page .portal-top {top:30px}
.home-page .portal-copy,.home-page .portal-love .portal-copy {left:9%;right:9%;bottom:105px}
.home-page .portal :is(h1,h2) {font-size:clamp(28px,3.2vw,48px);white-space:normal;line-height:1.4}
.home-page .portal-seam {left:50%!important;top:20%;bottom:20%;background:linear-gradient(transparent,#b494e879,transparent)}
.home-page .seam-label {display:none}
.home-page .portal-description {font-size:13px;letter-spacing:.04em;max-width:370px;color:var(--space-text);line-height:2}
.home-page .planet-system {top:14px;opacity:.8;transform:translateX(-50%) scale(.8)}
.home-page .portrait-scene {inset:38px 8% auto auto;width:38%;height:245px;background:transparent;border-radius:95px 95px 20px 20px;z-index:1}
.home-page .portal-portrait,.home-page .portal:hover .portal-portrait {object-fit:contain;transform:none;filter:none}
.home-page .portrait-shade {background:linear-gradient(180deg,transparent,#15142933 45%,#111428 73%)}
.love-planet {position:absolute;left:15%;top:85px;width:150px;height:150px;border-radius:50%;background:radial-gradient(circle at 28% 22%,#f6d7e8,#b494e8 18%,#533e76 46%,#17182c 75%);box-shadow:-4px -3px 22px #b494e822;animation:planet-breathe 12s ease-in-out infinite alternate}
.portal-latest {display:block;font-size:11px;line-height:1.8;color:var(--space-muted);margin-top:18px;max-width:350px}
.portal-glow {background:radial-gradient(300px circle at var(--pointer-x,50%) var(--pointer-y,50%),#5a91e817,transparent)}
.portal-love .portal-glow {background:radial-gradient(300px circle at var(--pointer-x,50%) var(--pointer-y,50%),#b494e81f,transparent)}
.home-page .portal-love :is(.eyebrow,.entry-arrow) {color:var(--love-accent)}
.portal:hover {box-shadow:0 12px 44px #5a91e815}
.portal-love:hover {box-shadow:0 12px 44px #b494e81c}
.home-colophon {height:auto;min-height:85px;gap:18px;flex-wrap:wrap}
.home-colophon p {font-size:11px;letter-spacing:.05em}
.about-page .about-hero .planet-system {z-index:0;pointer-events:none}
.about-chapter,.journal-article {scroll-margin-top:30px}
.content-empty {color:var(--space-muted);line-height:2.1;font-size:14px;padding:24px 0}
.content-card {padding:24px;background:#101b3566;border:1px solid var(--space-line);border-radius:16px;line-height:2;margin-block:15px}
.content-card :is(h3,a) {font:400 21px/1.7 var(--serif);color:var(--self-accent)}
.content-card img {width:100%;max-height:280px;object-fit:contain}
.content-card p {margin-top:12px;color:var(--space-muted);font-size:14px}
.fragment-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.fragment-card {padding:12px;background:var(--space-panel);border:1px solid var(--space-line);border-radius:12px;color:var(--space-text);text-align:left;cursor:pointer}
.fragment-card img {width:100%;height:240px;object-fit:contain}
.fragment-card :is(span,time) {display:block;margin-top:10px;font-size:12px}
.fragment-dialog {width:min(1000px,94vw);max-height:90dvh;border:1px solid var(--space-line);border-radius:18px;padding:20px;background:var(--space-bg);color:var(--space-text)}
.fragment-dialog::backdrop {background:#020712de}
.fragment-dialog img {height:65dvh;width:100%;object-fit:contain;touch-action:pan-y pinch-zoom}
.fragment-dialog p {text-align:center;line-height:2}
.fragment-close,.fragment-controls button,.content-music {min-height:44px;color:var(--self-accent);background:var(--space-panel);border:1px solid var(--space-line);padding:10px 16px;border-radius:8px;cursor:pointer}
.fragment-controls {display:flex;justify-content:space-between;gap:16px}
.journal-page .site-header {position:relative;pointer-events:auto;border-bottom:1px solid var(--space-line)}
.journal-article {padding:64px 0 120px;max-width:760px;margin:auto}
.journal-article h1 {font:400 clamp(32px,4vw,54px)/1.5 var(--serif);margin:24px 0}
.journal-article>a,.journal-row>span {color:var(--self-accent);font-size:13px}
.journal-intro {line-height:2;color:var(--space-muted);margin-bottom:40px}
.journal-row {display:block;padding:26px 0;border-block-end:1px solid var(--space-line)}
.journal-row time,.journal-tags {color:var(--space-muted);font-size:12px;line-height:2}
.journal-row h2 {font:400 24px/1.7 var(--serif);margin:10px 0}
.journal-prose {line-height:2.2;font-size:16px;overflow-wrap:anywhere}
.journal-prose :is(p,h2,h3,h4,pre,blockquote) {margin:24px 0}
.journal-prose pre {overflow:auto;background:var(--space-panel);padding:20px;border-radius:12px;line-height:1.7}
.journal-prose blockquote {border-left:2px solid var(--self-accent);padding-left:20px;color:var(--space-muted)}
.journal-prose a {color:var(--self-accent);text-decoration:underline}
.journal-cover {width:100%;max-height:420px;object-fit:contain;margin:24px 0}
/* Museum keeps its paper shapes and all interactions, within the same night sky. */
.museum-page {--paper:var(--space-bg);--cream:#152039;--ink:#f3e8ee;--muted:#c7b8ca;--rose:#e9a2bf;--wine:#edbcd2;--line:#c5b4d43b;--pink:#241d38;--gold:#e9a2bf}
.museum-page .hero {background:radial-gradient(ellipse at 80% 15%,#b494e814,transparent 60%)}
.museum-page :is(.chapters,.ending-section) {background:#11182b}
.museum-page :is(.anniversary-card,.note-card,.note-paper,.intro-dialog,.letter-dialog,.secret-letter,.card-back) {background:#152039;color:var(--ink);border-color:var(--line)}
.museum-page .card-face {border-color:var(--line);box-shadow:0 18px 50px #0004}
.museum-page :is(.album-stage:before,.album-stage:after) {background:#202942;border-color:var(--line)}
.museum-page .photo-open {background:#0b1325}
.museum-page .photo-open:hover img {transform:none}
.museum-page :is(.photo-caption em,.photo-caption span,.gallery-heading,.gallery-help,.gallery-count,.gallery-seal,.tape,.memory-date) {color:var(--muted)}
.museum-page .gallery-seal {background:#19243b}
.museum-page .mini-photo {background:#152039;border-color:var(--line)}
.museum-page .mini-photo img {object-fit:contain;background:#0b1325}
.museum-page .day-number {color:var(--love-accent)}
.museum-page .primary {background:#e9a2bf;color:#21142c}
.museum-page .primary:hover {background:#f4c1d6}
.museum-page .note-paper p {color:#f4e8f0;line-height:2.2}
.museum-page .final-paper {background:#152039}
.museum-page .letter-body {max-width:580px;margin-inline:auto;line-height:2.3}
.museum-page .photo-zoom-hint {background:#152039dc;color:var(--love-accent)}
.museum-page .photo-dot[aria-current="true"] {background:var(--love-accent)}
.museum-page .timeline {padding-left:28px}
.museum-page .timeline:before {left:12px}
.museum-page .memory-entry,.museum-page .memory-entry.memory-feature {position:relative;width:100%;margin-left:0;background:#121d32;border-color:var(--space-line);padding:28px}
.museum-page .memory-entry:before,.museum-page .memory-entry.memory-feature:before {display:block;content:'✦';position:absolute;left:-26px;right:auto;top:26px;width:15px;height:15px;background:var(--space-bg);border:0;color:var(--love-accent);text-shadow:0 0 15px #e9a2bf66}
.museum-page .memory-feature .memory-date {font-size:26px;color:var(--love-accent);margin-bottom:16px}
.museum-page .memory-entry.is-empty h3 {color:var(--space-muted)}
.museum-page .memory-entry img {background:transparent}
.memory-details summary {cursor:pointer;list-style:none;color:var(--love-accent);min-height:44px;display:flex;align-items:center;gap:12px}
.memory-details summary:after {content:'＋';margin-left:auto}
.memory-details[open] summary:after {content:'−'}
.memory-details p {white-space:pre-wrap;line-height:2.2;margin-top:20px}
.memory-details img {max-height:520px;width:100%;object-fit:contain;margin-top:24px}
.memory-meta {color:var(--muted);font-size:12px}
.album-filters {display:flex;gap:10px;flex-wrap:wrap;margin-bottom:24px}
.album-filters button {background:#152039;border:1px solid var(--space-line);padding:9px 15px;border-radius:99px;color:var(--space-text);min-height:44px}
.album-filters button[aria-pressed="true"] {border-color:var(--love-accent);color:var(--love-accent)}
.mars-player[data-theme="love"] {--radio-bg:#191a31f5;--radio-text:#f3e8f1;--radio-muted:#ccbdd5;--radio-accent:#e9a2bf;--radio-field:#10172b}
.echo-surface {--echo-border:var(--space-line)}
.echo-surface[data-source="love"],.echo-dialog[data-source="love"] {--echo-bg:#171d34;--echo-ink:#f3e8ef;--echo-muted:#c7b8ca;--echo-accent:#e9a2bf;--echo-line:#c5b4d43b}
.echo-bubble[data-source="love"] {color:#f3e8ef;background:#291f3bf0}
.home-page .echo-portal {margin-top:24px;border-radius:20px}
@keyframes planet-breathe {to {transform:translateY(-6px);opacity:.86}}
@media(max-width:700px) {
  body {padding-bottom:100px}
  .home-intro {padding:15px 7% 30px;text-align:left}
  .home-intro h1 {font-size:32px}
  .home-page .portals {height:auto;min-height:0;display:grid;gap:16px;margin:0 5%}
  .home-page .portal,.home-page .portal-self {height:490px;min-height:490px}
  .home-page .portal-top,.home-page .portal-self .portal-top {top:24px}
  .home-page .portal-copy,.home-page .portal-love .portal-copy {bottom:83px;left:7%;right:7%}
  .home-page .portal :is(h1,h2) {font-size:30px}
  .home-page .planet-system {top:0;right:-120px;transform:scale(.58)}
  .home-page .portrait-scene {top:35px;height:175px;width:42%;right:6%}
  .love-planet {width:110px;height:110px;top:65px;left:12%}
  .home-page .portal-description {font-size:12px;max-width:100%}
  .home-page .portal-seam {display:none}
  .portal-latest {font-size:11px;margin-top:14px}
  .home-colophon {padding-block:20px}
  .home-page .entry-link {margin-top:20px}
  .fragment-grid {grid-template-columns:1fr}
  .fragment-dialog img {height:60dvh}
  .journal-article {padding-top:36px}
  .home-page .stars-near {display:none}
  .home-page .planet:after {display:none}
}
@media(hover:none),(pointer:coarse) {.nebula,.star-field,.love-planet {animation:none}}
@media(prefers-reduced-motion:reduce) {
  *,*:before,*:after {animation:none!important;transition:none!important;scroll-behavior:auto!important}
}
