/* Selected grain background, adapted for light and dark themes. */
body{isolation:isolate}
.ambient-background{display:none;position:fixed;inset:0;z-index:-1;overflow:hidden;pointer-events:none;background:#030718}
.ambient-glow,.ambient-pattern,.ambient-noise{position:absolute;inset:0}
.ambient-noise{background:url('assets/grain.svg') repeat;opacity:.16;mix-blend-mode:soft-light}
html[data-theme="dark"] .ambient-background{display:block}
html[data-theme="dark"] body{--paper:#04091b;--ink:#edf2fc;--muted:#a5b4cc;--line:#89aaff29;--accent:#92b6ff;--surface:#0a1124;--switch-track:#0d1830;--switch-thumb:#283f65}
html[data-theme="dark"] .site-header,html[data-theme="dark"] .portfolio-nav{background:#04091bd9;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
html[data-theme="dark"] .contact-footer{background:#04091b26}
/* 01 — Gren: fine stipple, photographic grain, broad cobalt pools. */
html[data-background="grain"] .ambient-glow{background:radial-gradient(ellipse 65% 52% at -5% 30%,#1248aeb3,transparent 80%),radial-gradient(ellipse 70% 48% at 100% 95%,#0b429db3,transparent 78%),radial-gradient(ellipse 80% 50% at 62% -10%,#11256a99,transparent 85%)}
html[data-background="grain"] .ambient-pattern{background-image:radial-gradient(circle,#9ec3ff .55px,transparent .8px);background-size:4px 4px;opacity:.09;mask-image:linear-gradient(130deg,#000,transparent 60%,#000)}
html[data-background="grain"] .ambient-noise{opacity:.24}
/* White counterparts: retain the exact pattern geometry and light positions. */
html[data-theme="light"] body{--paper:#f7f9fd;--ink:#19283e;--muted:#556780;--line:#486b9c30;--accent:#2855d9;--surface:#e8eef7;--switch-track:#e3eaf5;--switch-thumb:#fff}
html[data-theme="light"] .ambient-background{display:block;background:#f8faff}
html[data-theme="light"] .site-header,html[data-theme="light"] .portfolio-nav{background:#f7faffdb;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
html[data-theme="light"] .contact-footer{background:#f8faff26}
html[data-theme="light"] .ambient-noise{mix-blend-mode:multiply}
html[data-theme="light"][data-background="grain"] .ambient-glow{background:radial-gradient(ellipse 65% 52% at -5% 30%,#4386e94d,transparent 80%),radial-gradient(ellipse 70% 48% at 100% 95%,#5597ed4d,transparent 78%),radial-gradient(ellipse 80% 50% at 62% -10%,#96b9f14d,transparent 85%)}
html[data-theme="light"][data-background="grain"] .ambient-pattern{background-image:radial-gradient(circle,#284f8c .55px,transparent .8px);opacity:.08}
html[data-theme="light"][data-background="grain"] .ambient-noise{opacity:.14}

