/* A shared light switch, on every page. */
.theme-toggle { display:inline-flex; align-items:center; justify-content:center; flex-shrink:0; gap:9px; min-width:44px; min-height:44px; padding:9px 12px; border:1px solid var(--line,#cbd2c7); border-radius:30px; background:transparent; color:var(--ink,#203b30); font:500 13px/1.3 var(--sans,sans-serif); cursor:pointer; white-space:nowrap; }
.theme-toggle svg { flex-shrink:0; }
.theme-toggle:hover { background:var(--panel,#eceee6); }
.theme-toggle:focus-visible { outline:3px solid var(--accent,#284e39); outline-offset:4px; }
.theme-toggle[aria-pressed=true] { border-color:#647a8c; background:#203342; color:#d4edf4; }
html[data-theme=night], html[data-theme=night] body[class] {
  --bg:#0e1721; --panel:#1a2936; --ink:#e3eef3; --muted:#afc2ce; --line:#405363;
  --paper:#e3eef3; --black:#0e1721; --accent:#badbea; --on-accent:#10212c;
  color-scheme:dark;
}
html[data-theme=night] body { background-color:var(--bg); background-image:linear-gradient(155deg,#34516c30 0,transparent 42%,#0003 100%); background-attachment:fixed; color:var(--ink); }
html[data-theme=night] body .site-header .brand img { filter:none; }
html[data-theme=night] :is(.home-news-featured,.home-studio,.journal-home) {
  --bg:#15232f; --panel:#1a2936; --ink:#e3eef3; --muted:#afc2ce; --line:#405363;
  background:var(--bg); color:var(--ink); border-color:var(--line);
}
html[data-theme=night] :is(.home-development,.news-carousel-slide,.studio-method,.studio-home-window>a,.creation-invitation,.creation-observation,.creation-outro,.creation-guide-image,.creation-stage-media>img) { background:var(--panel); color:var(--ink); border-color:var(--line); }
html[data-theme=night] :is(.home-news-featured .eyebrow,.news-carousel-copy>p,.studio-home-window h2+p,.studio-clean-heading>p,.studio-overview figcaption,.studio-work-grid header>p,.studio-photo-grid figcaption,.studio-method-grid article>span,.creation-explanation>p,.creation-observation p,.creation-invitation p:not(.eyebrow)) { color:var(--muted); }
html[data-theme=night] :is(.studio-clean-heading,.studio-overview-copy,.studio-method,.studio-team-heading,.studio-work-grid,.studio-home-window,.home-studio-copy,.creation-heading,.creation-guide-copy,.creation-chapter>header,.creation-outro,.creation-invitation) .eyebrow,
html[data-theme=night] :is(.home-studio h2>span,.home-studio-copy>p:not(.eyebrow):not(.home-studio-lead),.home-studio-image figcaption,.home-studio-image figcaption strong,.creation-guide-steps span,.creation-number,.creation-direction,.creation-observation h3,.film-press-arrow) { color:var(--accent); }
html[data-theme=night] :is(.home-studio-copy>.button,.contact-form-submit button,.creation-outro>.button) { background:var(--accent); border-color:var(--accent); color:var(--on-accent); }
html[data-theme=night] :is(.home-studio-copy>.button,.contact-form-submit button,.creation-outro>.button):hover { background:#e3eef3; border-color:#e3eef3; color:#10212c; }
html[data-theme=night] .creation-invitation>.button { border-color:var(--accent); color:var(--accent); }
html[data-theme=night] .creation-invitation>.button:hover { background:var(--accent); color:var(--on-accent); }
html[data-theme=night] :is(.news-carousel-controls>button,.news-carousel-controls button:hover) { color:var(--ink); border-color:var(--line); background:var(--panel); }
html[data-theme=night] .news-carousel-dots button>span { background:var(--muted); }
html[data-theme=night] .news-carousel-dots button[aria-current=true]>span { background:var(--accent); }
html[data-theme=night] :is(.studio-method-grid article,.page-mission .studio-team-grid article,.journal-home .news-list,.journal-home .news-row) { border-color:var(--line); }
html[data-theme=night] :is(.catalogue-filters button:hover,.creation-navigation a:hover,.creation-navigation a:focus-visible) { background:var(--panel); border-color:var(--line); }
html[data-theme=night] .catalogue-filters button[aria-pressed=true] { background:var(--accent); color:var(--on-accent); border-color:var(--accent); }
html[data-theme=night] :is(.contact-form input,.contact-form textarea,.contact-form select) { background:#15232f; border-color:#647a8c; color:var(--ink); }
html[data-theme=night] :is(.contact-form input,.contact-form textarea,.contact-form select):focus { outline-color:var(--accent); border-color:var(--accent); }
html[data-theme=night] .film-edition-six .film-process { background:var(--panel); color:var(--ink); }
html[data-theme=night] .film-edition-six .film-process>summary { background:var(--panel); color:var(--ink); }
html[data-theme=night] :is(.film-socials a:hover,.film-socials a:focus-visible,.article-share-actions>a:hover,.article-share-actions>button:hover) { background:var(--accent); color:var(--on-accent); border-color:var(--accent); }
html[data-theme=night] .making-of-page { --mk-blue:#d4edf4; --mk-media-bg:#090f18; --mk-media-ink:#d4edf4; }
html[data-theme=night] body[class] .site-footer { --bg:#090f18; --ink:#e3eef3; --muted:#afc2ce; --line:#405363; --accent:#badbea; background:var(--bg); color:var(--ink); border-color:var(--line); }
/* A soft gradient passes over the page as the room lighting changes. */
html.lights-changing :is(body,header,nav,section,footer,article,button,input,textarea,select,summary,p,a,h1,h2,h3,span) { transition:background-color 1.3s ease,color 1.3s ease,border-color 1.3s ease; }
html.lights-changing::after { content:''; position:fixed; inset:0; z-index:9999; pointer-events:none; background:linear-gradient(165deg,#142c4666,transparent 75%); animation:lighting-veil 1.4s ease both; }
@keyframes lighting-veil { 0%,100% { opacity:0; } 40% { opacity:1; } }
@media(max-width:1050px) { .site-header .theme-toggle span { display:none; } .site-header .theme-toggle { padding:10px; } }
@media(max-width:760px) { .site-header .theme-toggle { order:4; } body .site-header { column-gap:10px; } .site-header .menu-toggle { gap:8px; } }
@media(max-width:360px) { body .site-header { column-gap:6px; padding-inline:14px; } body .site-header .brand img { width:82px; } }
@media(prefers-reduced-motion:reduce) { html.lights-changing::after { display:none; } }
@media print { .theme-toggle { display:none; } }
html[data-theme=night] body[class] :focus-visible { outline-color:var(--accent); }
html.lights-changing .brand img { transition:filter 1.3s ease; }
