/* Dark by default; the explicit light palette leaves image colours unchanged. */
:root {
  --c-bg:#000000; --c-panel:#121212; --c-panel-2:#0c0c0c; --c-surface:rgb(255 255 255 / 4%);
  --c-line:rgb(255 255 255 / 24%); --c-border:#737373;
  --c-text:#ffffff; --c-text-2:#d9d9d9; --c-text-3:#b5b5b5;
  --c-logo:#ffffff; --c-accent:#ffffff; --c-accent-hover:#e6e6e6; --c-accent-active:#cccccc;
  --c-accent-ink:#000000; --c-on-accent:#000000; --c-focus:#ffffff;
  --c-blue:#242424; --c-violet:#737373; --c-error:#ff8c91; --c-success:#8dddad;
  --f-display:"Manrope",Arial,sans-serif; --f-text:"Inter",Arial,sans-serif; --f-mono:"Inter",Arial,sans-serif;
  --fs-display:88px; --fs-h1:64px; --fs-h2:48px; --fs-h3:28px; --fs-lead:22px;
  --fs-body:18px; --fs-small:14px; --fs-label:12px;
  --lh-tight:1; --lh-body:1.6; --ls-display:-.04em; --ls-label:.14em;
  --gutter:48px; --gap:24px; --section:112px; --container:1344px;
  --r-pill:999px; --r-card:24px; --r-panel:24px; --r-input:12px;
  --blur:16px; --shadow-card:0 16px 48px rgb(0 0 0 / 24%);
  --t-fast:160ms; --t-base:240ms; --t-reveal:480ms;
  --ease:cubic-bezier(.2,0,0,1); --ease-reveal:cubic-bezier(.22,1,.36,1);
}
:root[data-theme="light"] {
  color-scheme:light;
  --c-bg:#ffffff; --c-panel:#f3f3f3; --c-panel-2:#fafafa; --c-surface:rgb(0 0 0 / 4%);
  --c-line:rgb(0 0 0 / 22%); --c-border:#737373;
  --c-text:#171717; --c-text-2:#444444; --c-text-3:#595959;
  --c-logo:#171717; --c-accent:#171717; --c-accent-hover:#333333; --c-accent-active:#000000;
  --c-accent-ink:#ffffff; --c-on-accent:#ffffff; --c-focus:#171717;
  --c-blue:#dddddd; --c-violet:#737373; --c-error:#b4232a; --c-success:#176b3b;
  --shadow-card:0 16px 48px rgb(0 0 0 / 12%);
}
/* Utility controls can wrap instead of squeezing the navigation on small screens. */
.site-header .header-inner:has(.theme-toggle){height:auto;min-height:88px;flex-wrap:wrap;padding-block:14px;row-gap:12px}
.theme-toggle{display:inline-flex;align-items:center;justify-content:center;gap:6px;flex:0 0 auto;min-height:44px;padding:8px 12px;border:1px solid var(--c-border);border-radius:999px;background:var(--c-panel);color:var(--c-text-2);font:500 12px/20px var(--f-text);white-space:nowrap}
.theme-toggle:hover{border-color:var(--c-text);background:var(--c-surface)}
.theme-toggle .theme-choice.is-active{color:var(--c-text);font-weight:700;text-decoration:underline;text-underline-offset:4px}
.theme-toggle .theme-separator{color:var(--c-text-3)}
:root[data-theme="light"] .btn-secondary{background:var(--c-bg);border-color:var(--c-border);color:var(--c-text)}
:root[data-theme="light"] .btn-secondary:hover,:root[data-theme="light"] .btn-secondary.is-hover{background:#ededed;border-color:var(--c-text)}
:root[data-theme="light"] .btn-secondary:active,:root[data-theme="light"] .btn-secondary.is-active{background:#dedede}
:root[data-theme="light"] .btn:disabled,:root[data-theme="light"] .btn[aria-disabled=true]{background:#e6e6e6;color:var(--c-text-3)}
:root[data-theme="light"] :is(.card-media,.card-image,.project-image){background:var(--c-panel)}
:root[data-theme="light"] .card:has(>a):hover{border-color:var(--c-border)}
:root[data-theme="light"] :is(.program-card,.cta-band,.contact-aside){background:var(--c-panel);border-color:var(--c-line)}
:root[data-theme="light"] .placeholder{background:repeating-linear-gradient(135deg,transparent,transparent 12px,rgb(0 0 0 / 3%) 12px,rgb(0 0 0 / 3%) 13px)}
:root[data-theme="light"] :is(.project-placeholder,.journal-cover,.journal-cover-frame,.journal-card .card-media){background:linear-gradient(135deg,#f3f3f3,#ffffff)}
:root[data-theme="light"] :is(.choice:has(:checked),.dropzone.is-over,.dropzone.is-hover,.dropzone.is-dragover){background:rgb(0 0 0 / 6%)}
:root[data-theme="light"] .dropzone{background:var(--c-panel-2)}
:root[data-theme="light"] .dropzone.is-invalid{background:rgb(180 35 42 / 5%)}
:root[data-theme="light"] .reading-controls{background:var(--c-panel)}
:root[data-theme="light"] .reading-controls button:hover{background:rgb(0 0 0 / 6%)}
:root[data-theme="light"] .reading-controls button[aria-pressed=true]{background:var(--c-accent);color:var(--c-on-accent)}
/* The original dark material plates are photographs, not interface backgrounds. */
:root[data-theme="light"] .material-stage{background:#000000}
@media(width<960px){.site-header .header-inner:has(.theme-toggle){min-height:64px;padding-block:10px}}
@media (768px <= width < 1200px){:root{--gutter:32px;--fs-h1:52px;--fs-h2:40px;--fs-display:64px}}
@media (width < 768px){:root{--gutter:20px;--gap:16px;--section:72px;--fs-h1:40px;--fs-h2:32px;--fs-h3:24px;--fs-display:44px;--fs-lead:20px;--fs-body:16px;--t-reveal:320ms;--blur:10px}}
@media(prefers-reduced-motion:reduce){:root{--t-fast:0ms;--t-base:0ms;--t-reveal:0ms}}
