:root {
  --scene-field: var(--paper, #f3f0e7);
  --hero-wash: 243 240 231;
}
:root[data-theme="dark"] {
  color-scheme: dark;
  --paper: #181d2b;
  --ink: #eef2ee;
  --muted: #b4c2c5;
  --accent: #ffb08a;
  --line: #444e60;
  --soft: #293342;
  --hero-wash: 24 29 43;
  --scene-field:
    radial-gradient(ellipse at 80% 19%, #75639157, transparent 52%),
    radial-gradient(ellipse at 27% 76%, #38727645, transparent 54%),
    linear-gradient(135deg, #1c2232, #171d2a 58%, #202938);
}
.studio-sr-only {
  position: absolute;
  width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip-path: inset(50%); white-space: nowrap;
}
.theme-switch {
  flex: none;
  display: inline-grid;
  place-items: center;
  width: 38px; height: 38px;
  border: 1px solid var(--line, #ccd3c8);
  background: transparent;
  border-radius: 50%;
  padding: 0;
  color: inherit;
  cursor: pointer;
}
.theme-switch:hover { border-color: currentColor; }
.theme-switch svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.theme-sun, [data-theme="dark"] .theme-moon { display: none; }
[data-theme="dark"] .theme-sun { display: initial; }
#scene-stage, .about-section { background: var(--scene-field); }
.studio-cursor {
  position: fixed;
  left: 0; top: 0; z-index: 32;
  width: 13px; height: 13px;
  pointer-events: none;
  opacity: 0;
  border: 1px solid #66567db8;
  border-radius: 100px;
  background: radial-gradient(circle at 32% 24%, #fff 0%, #cfc3de 35%, #8ba9a8 85%);
  box-shadow: 0 1px 5px #59536a36;
  transition: width .16s, height .16s, opacity .12s, background-color .16s;
}
.studio-cursor.is-visible { opacity: .85; }
.studio-cursor.is-over { background: #aea5cf16; border-color: #817294; box-shadow: inset 0 0 9px #aaa2d331; }
[data-theme="dark"] .studio-cursor { border-color: #d4c8f3; }
@media (hover: none), (prefers-reduced-motion: reduce) {
  .studio-cursor { display: none; }
}
[data-theme="dark"] .loader {
  color: #dde4e7;
  background: radial-gradient(ellipse at 65% 32%, #63517b60, transparent 51%),
    radial-gradient(ellipse at 35% 70%, #3a758062, transparent 49%), #181d2a;
}
[data-theme="dark"] .loader-run b::after { background: #849796; }
[data-theme="dark"] .loader-capsule { box-shadow: 0 20px 34px -14px #060913be, 0 0 28px #83a2c826; }
[data-theme="dark"] :is(.hero-bio, .work-copy p:not(.eyebrow), .hero-bottom, .scene-caption, .section-footnote, .object-label, .intro-caption, .gallery-exif, .gallery-frame figcaption, .gallery-copy .eyebrow) { color: var(--muted); }
[data-theme="dark"] :is(.pill-button, .intro-skip) { color: var(--ink); border-color: #73828a; background: #252e3ee6; }
[data-theme="dark"] .pill-button:hover { color: var(--paper); background: var(--ink); }
[data-theme="dark"] .language-switch button[aria-pressed="true"] { background: var(--soft); }
[data-theme="dark"] :is(.collection-badge, .film-modes button, .gallery-bottom > button) { border-color: var(--line); color: var(--ink); }
[data-theme="dark"] .film-modes button[aria-pressed="true"] { background: var(--ink); color: var(--paper); }
[data-theme="dark"] .gallery-frame { background: #293445; border-color: var(--line); }
[data-theme="dark"] .gallery-frame img { background: #1d2734; }
[data-theme="dark"] .immersive-dialog { background: var(--scene-field); color: var(--ink); }
[data-theme="dark"] .computer-dialog { color-scheme: light; }
[data-theme="dark"] .computer-dialog .exit-experience { color: #eef2ee; }
[data-theme="dark"] .visitor-panel {
  --atlas-paper: #263541;
  color: var(--ink);
  border-color: #536573;
}
[data-theme="dark"] :is(.atlas-size-toggle, .atlas-places, .atlas-controls, .atlas-compass) { background: #23313ef2; color: var(--ink); }
[data-theme="dark"] :is(.atlas-summary span, .atlas-live-label, .atlas-index summary, .atlas-places small, .place-list button, .atlas-app-icon) { color: #bcd4ce; }
[data-theme="dark"] :is(.atlas-size-toggle:hover, .atlas-controls button:hover:not(:disabled), .place-list button:is([aria-pressed="true"], :hover)) { background: #40505c; }
[data-theme="dark"] .visitor-window[data-standalone]::backdrop,
[data-theme="dark"] .flat-mode { background: var(--scene-field); }
.photo-admin .theme-switch { margin-inline-start: auto; }
[data-theme="dark"] body.photo-admin { min-height: 100vh; background: var(--scene-field); color: var(--ink); }
[data-theme="dark"] .photo-admin :is(.eyebrow, header > span, #message, .desk-note, .frame-number, #placeholder) { color: var(--muted); }
[data-theme="dark"] .photo-admin :is(input, textarea, .proof) { background: #232e3e; color: var(--ink); border-color: var(--line); }
[data-theme="dark"] .photo-admin :is(#published button, #drafts button, #logout) { color: var(--accent); }
[data-theme="dark"] .photo-admin #message[data-error="true"] { color: #ffb6a6; }
@media (max-width: 640px) {
  .theme-switch { width: 40px; height: 40px; }
  .header-end { gap: 5px; }
}
@media (max-width: 420px) {
  .site-header { padding-inline: 4.5%; gap: 9px; }
  .header-nav { gap: 10px; }
  .language-switch button { padding-inline: 4px; }
}
