:root {
  --scene-field: var(--paper, #f3f0e7);
  --hero-wash: 243 240 231;
}
:root[data-theme="dark"] {
  color-scheme: dark;
  --paper: #000000;
  --ink: #f2f2f2;
  --muted: #bcbcbc;
  --accent: #ffb08a;
  --line: #404040;
  --soft: #202020;
  --hero-wash: 0 0 0;
  background: var(--paper);
}
.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; }
.soap-bubble {
  --film-rim: #72a9b0, #cb98c1, #efcf95, #8f99c6, #72a9b0;
  position: fixed;
  z-index: 31;
  width: var(--bubble-size);
  height: var(--bubble-size);
  border-radius: 50%;
  pointer-events: none;
  background:
    radial-gradient(ellipse 17% 13% at 31% 22%, #fffe 0 50%, transparent),
    radial-gradient(ellipse 35% 16% at 71% 80%, #d7b5ed77, transparent),
    radial-gradient(ellipse 39% 19% at 36% 88%, #90dada70, transparent),
    radial-gradient(circle at 48% 44%, transparent 48%, #b3eae223 67%, #a2aedb66 87%, transparent 98%);
  box-shadow: inset 0 0 0 1px #50687966;
}
[data-theme="dark"] .soap-bubble { --film-rim: #99dce0, #deb2d9, #f8e8b9, #a5b4ea, #99dce0; }
.soap-bubble::before, .soap-bubble::after {
  position: absolute;
  content: "";
  border-radius: inherit;
}
.soap-bubble::before {
  inset: 0;
  background: conic-gradient(from var(--film-turn), var(--film-rim));
  mask-image: radial-gradient(closest-side, transparent calc(100% - 1.5px), #000 calc(100% - .5px));
}
.soap-bubble::after {
  inset: 12% 24% 56% 13%;
  border-top: 1px solid #fffffff2;
  transform: rotate(-29deg);
}
@media (hover: none), (prefers-reduced-motion: reduce) {
  .studio-cursor, .soap-bubble { display: none; }
}
[data-theme="dark"] .loader {
  --prism-ink: #bfc1c9;
  --prism-stop: #858891;
  --prism-core: #f4fbff;
  --prism-warm: #ff9872;
  --prism-cool: #69d9ff;
}
[data-theme="dark"] .prism-light-plate { display: none; }
[data-theme="dark"] .prism-dark-plate { display: inline; }
[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: #737373; background: #121212ef; }
[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: #111; border-color: var(--line); }
[data-theme="dark"] :is(.gallery-frame img, .viewfinder-gallery) { background: var(--paper); }
[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: #171717;
  color: var(--ink);
  border-color: #505050;
}
[data-theme="dark"] :is(.atlas-size-toggle, .atlas-places, .atlas-controls, .atlas-compass) { background: #151515f2; 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: #c7c7c7; }
[data-theme="dark"] :is(.atlas-size-toggle:hover, .atlas-controls button:hover:not(:disabled), .place-list button:is([aria-pressed="true"], :hover)) { background: #353535; }
[data-theme="dark"] .visitor-window::backdrop { background: #000b; }
[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: #141414; 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; }
}
