/* Semantic theme treatments shared by the actual studio and the brand reference. */
body, .launch, .g-hero { color:var(--text); }
:focus-visible { outline-color:var(--text); }
.site-h { background:var(--header); }
.mast-actions { display:flex; align-items:center; gap:8px; flex:none; }
.theme-toggle { width:44px; height:44px; padding:7px; display:grid; place-items:center; border:2px solid var(--ink); border-radius:50%; background:var(--cream); color:var(--ink); cursor:pointer; flex:none; }
.theme-toggle svg { grid-area:1/1; width:26px; height:26px; overflow:visible; transition:transform var(--brand-motion-feedback) ease, opacity var(--brand-motion-feedback) ease; }
.theme-sun { opacity:1; transform:rotate(0) scale(1); }
.theme-moon { opacity:0; transform:rotate(-35deg) scale(.6); }
[data-theme="night"] .theme-toggle { background:var(--yolk); }
[data-theme="night"] .theme-sun { opacity:0; transform:rotate(35deg) scale(.6); }
[data-theme="night"] .theme-moon { opacity:1; transform:rotate(0) scale(1); }
.theme-toggle:hover { box-shadow:2px 2px 0 var(--ink); }
.theme-toggle:disabled { cursor:default; }
.theme-toggle:focus-visible { outline-color:var(--text); }
.theme-night { display:none; }
[data-theme="night"] .theme-day { display:none; }
[data-theme="night"] .theme-night { display:block; }
@media (prefers-color-scheme:dark) {
  :root:not([data-theme="day"]) .theme-day { display:none; }
  :root:not([data-theme="day"]) .theme-night { display:block; }
}
.chapter h2 span, .world-index a { color:var(--accent-text); }
.studio-label .ico, .follow-trail { color:var(--accent-text); }
.btn.primary, .explore-link, .art-id, .crew .btn, .crew .ico, .card .card-index span:first-child, .s-released, .g-info .btn.primary, .availability .status { color:var(--ink); }
.btn:hover:not(.primary) { color:var(--text); }
.launch h1 em { color:var(--yolk); }
.hero-illustration { --shadow-contact-opacity:.32; --shadow-ambient-opacity:.16; }
.hero-illustration .shadow-stop { stop-color:var(--ink); }
.hero-illustration .shadow-contact { opacity:var(--shadow-contact-opacity); }
.hero-illustration .shadow-ambient { opacity:calc(var(--shadow-ambient-opacity) * (1 + var(--ground-flow,0) * .22)); }
[data-theme="night"] .hero-illustration { --shadow-contact-opacity:.62; --shadow-ambient-opacity:.3; }
[data-theme="night"] .hero-illustration .shadow-stop { stop-color:color-mix(in srgb,var(--ink) 65%,#000); }
.chip-btn[aria-pressed="true"] { background:var(--text); color:var(--surface); }
.chip-btn { color:var(--text); }
.chip-btn:hover { background:var(--yolk); color:var(--ink); border-color:var(--ink); }
.soc:hover { color:var(--ink); }
.thumb { background:var(--surface-soft); color:var(--text); border-color:var(--line); }
.thumb:hover { background:var(--surface); border-color:var(--accent-text); }
.thumb[aria-selected="true"] { background:var(--surface); border-color:var(--text); }
.thumb .t-status { color:var(--text-muted); }
.vt, .vt[aria-pressed="true"] { color:var(--cream); border-color:var(--cream); background:var(--ink); }
/* Media controls keep a recognizable face over the same artwork in either theme. */
.play-btn { color:var(--ink); background:var(--cream); }
.play-btn:focus-visible { outline:3px solid var(--cream); outline-offset:5px; }
.dot:before { background:transparent; border-color:var(--text-muted); }
.dot[aria-current="true"]:before { background:var(--text); border-color:var(--text); }
.group-link:hover { background:var(--yolk); color:var(--ink); }
.group-link:hover .ico { color:var(--ink); }
.stretch:focus-visible:after { outline-color:var(--text); }
[data-theme="night"] .group-link { box-shadow:inset 0 0 0 1px var(--line); }
[data-theme="night"] .btn:not(.primary), [data-theme="night"] .mobile-nav nav { border-color:var(--line); }
.g-media { color:var(--ink); }
.viewer-bar, .viewer-bar button { color:var(--ink); }
.gallery-tools button { color:var(--ink); }
.g-hero :focus-visible, .launch :focus-visible { outline-color:var(--accent-text); }
.g-media :focus-visible { outline-color:var(--ink); }
.nf { background:transparent; }
.lb-count { color:var(--cream); }
.mobile-nav nav { background:var(--surface); }
.mobile-nav nav a:hover { background:var(--yolk); color:var(--ink); }
.site-f { --muted:var(--on-ink-muted); --line:var(--on-ink-line); color:var(--cream); background:var(--ink); padding-block:46px 24px; }
.site-f h2 { color:var(--yolk); }
.site-f .f-brand p, .site-f .legal { color:var(--muted); }
.site-f .legal { opacity:1; }
.site-f .soc { color:var(--cream); background:transparent; border-color:var(--line); width:44px; height:44px; }
.site-f .soc:hover { color:var(--ink); background:var(--yolk); }
.site-f ul a:hover { color:var(--yolk); }
.site-f .store-btn, .site-f .store-btn:hover { background:var(--cream); color:var(--ink); }
.site-f .store-ico .st-d { stroke:var(--cream); }
.site-f :focus-visible { outline-color:var(--yolk); }
.brand-guide-link { display:inline-block; padding-block:10px; text-underline-offset:4px; font-weight:800; }
.site-f .more a { min-height:44px; }
@media (max-width:800px) {
  .studio-nav { display:none; }
  .mobile-nav { display:block; position:relative; margin-left:auto; }
  .mobile-nav summary { display:grid; place-items:center; min-height:44px; padding:0 8px; cursor:pointer; list-style:none; font-size:13px; font-weight:800; }
  .mobile-nav summary::-webkit-details-marker { display:none; }
  .mobile-nav nav { position:absolute; right:0; top:100%; min-width:165px; padding:5px; border:2px solid var(--ink); border-radius:8px; box-shadow:3px 4px 0 var(--ink); }
  .mobile-nav nav a { display:block; min-height:44px; padding:10px 12px; font-weight:800; text-decoration:none; }
}
@media (max-width:680px) {
  .masthead { gap:6px; }
  .mast-actions { gap:5px; }
  .group-link { width:44px; height:44px; padding:0; justify-content:center; }
  .group-link span { display:none; }
  .theme-toggle { padding:8px; }
  .site-h { backdrop-filter:none; }
}
@media (prefers-reduced-motion:reduce) {
  .theme-toggle svg { transition:none; }
}
