/* Temporary, self-contained theme layer. The original design remains in styles.css. */
:root[data-theme]{--surface:var(--paper);--soft:var(--blue);--accent:var(--ink);--button-ink:var(--paper);--contact-bg:var(--yellow);--contact-ink:var(--ink);--art-bg:var(--soft);--art-line:var(--line);--radius:16px;--control-radius:9px;--theme-shadow:none}
:root[data-theme="midnight"]{color-scheme:dark;--paper:#151821;--ink:#f4f1e7;--muted:#b8bac6;--yellow:#f8d76b;--line:#373b4b;--blue:#262b3d;--surface:#202533;--accent:#f8d76b;--button-ink:#1d2331;--contact-bg:#272d3e;--contact-ink:#f4f1e7;--art-bg:#30364c;--radius:24px;--control-radius:50px}
:root[data-theme="paper"]{--paper:#f3efe6;--ink:#272721;--muted:#65635d;--yellow:#a9432d;--line:#c9c2b5;--blue:#e7e0d2;--surface:#faf7f1;--accent:#a9432d;--button-ink:#fff;--contact-bg:#e7e0d2;--display:Georgia,'Times New Roman',serif;--radius:0px;--control-radius:0px;--art-bg:#e1dbcb}
:root[data-theme="blueprint"]{color-scheme:dark;--paper:#102c59;--ink:#eef6ff;--muted:#b7d1ee;--yellow:#8edcff;--line:#45638c;--blue:#153867;--surface:#173866;--accent:#8edcff;--button-ink:#102c59;--contact-bg:#173866;--contact-ink:#eef6ff;--art-bg:#1c4378;--font:'Courier New',monospace;--display:'Courier New',monospace;--radius:2px;--control-radius:2px}
:root[data-theme="arcade"]{color-scheme:dark;--paper:#1b1530;--ink:#f5f1ff;--muted:#c7bddb;--yellow:#c7ff5e;--line:#665184;--blue:#312345;--surface:#2b203d;--accent:#c7ff5e;--button-ink:#1b1530;--contact-bg:#352249;--contact-ink:#f5f1ff;--art-bg:#754a9e;--art-line:#b497ff;--radius:3px;--control-radius:3px;--theme-shadow:6px 6px 0 #b497ff}
:root[data-theme="peach"]{--paper:#fff1e7;--ink:#5b2f27;--muted:#89584b;--yellow:#efb299;--line:#e8c9bb;--blue:#f8ddcd;--surface:#fff9f4;--accent:#a84e36;--button-ink:#512b24;--contact-bg:#f3c4ac;--art-bg:#f4cbb6;--radius:32px;--control-radius:50px;--theme-shadow:0 16px 45px #7e341010}
:root[data-theme="forest"]{color-scheme:dark;--paper:#112e27;--ink:#edf3df;--muted:#b7cabb;--yellow:#cce5a0;--line:#416351;--blue:#23483a;--surface:#1b3a2f;--accent:#cce5a0;--button-ink:#193626;--contact-bg:#cce5a0;--contact-ink:#193626;--art-bg:#406a4c;--art-line:#739674;--radius:28px;--control-radius:50px}
:root[data-theme="ocean"]{--paper:#edf8ff;--ink:#124569;--muted:#4f6e83;--yellow:#0873aa;--line:#bddbea;--blue:#d5eff8;--surface:#fff;--accent:#0873aa;--button-ink:#fff;--contact-bg:#124569;--contact-ink:#f1fbff;--art-bg:#c1e9f3;--art-line:#78bfd5;--radius:22px;--control-radius:50px;--theme-shadow:0 16px 40px #1462910e}
:root[data-theme="mono"]{--paper:#fff;--ink:#151515;--muted:#626262;--yellow:#151515;--line:#d7d7d7;--blue:#efefef;--surface:#fff;--accent:#151515;--button-ink:#fff;--contact-bg:#151515;--contact-ink:#fff;--art-bg:#f0f0f0;--radius:0px;--control-radius:0px}
:root[data-theme="lilac"]{--paper:#f3efff;--ink:#40305b;--muted:#72618b;--yellow:#d8c7fa;--line:#d6cbe8;--blue:#e5dcf6;--surface:#fcfaff;--accent:#6f46a5;--button-ink:#40305b;--contact-bg:#e2d5f5;--art-bg:#ddd0f4;--art-line:#b4a1d1;--radius:32px;--control-radius:18px;--theme-shadow:0 20px 55px #66508416}
:root[data-theme="sunset"]{--paper:#fff0dc;--ink:#672b32;--muted:#89545a;--yellow:#f6b48c;--line:#dfbeb1;--blue:#f8d6bf;--surface:#fff7ec;--accent:#9a3743;--button-ink:#672b32;--contact-bg:#752b3b;--contact-ink:#fff3e6;--art-bg:#f0a986;--art-line:#d47a6e;--radius:28px;--control-radius:50px}
:root[data-theme="studio"]{color-scheme:dark;--paper:#202020;--ink:#f6f3ed;--muted:#bcb9b1;--yellow:#ffb47d;--line:#4c4a46;--blue:#30302f;--surface:#292928;--accent:#ffb47d;--button-ink:#26211c;--contact-bg:#ffb47d;--contact-ink:#26211c;--art-bg:#353431;--radius:6px;--control-radius:5px}
:root[data-theme="retro"]{--paper:#f6e6bb;--ink:#432d24;--muted:#7d5e45;--yellow:#e9a95f;--line:#b9976d;--blue:#ebd2a0;--surface:#ffefc8;--accent:#8b3c24;--button-ink:#432d24;--contact-bg:#e9a95f;--art-bg:#dba46b;--art-line:#8b5c40;--display:Georgia,'Times New Roman',serif;--radius:8px;--control-radius:4px;--theme-shadow:6px 6px 0 #432d24}
:root[data-theme="terminal"]{color-scheme:dark;--paper:#0b1712;--ink:#c9f1d4;--muted:#9cbda7;--yellow:#7fe7a4;--line:#365b46;--blue:#122a1e;--surface:#112219;--accent:#7fe7a4;--button-ink:#0b1712;--contact-bg:#122a1e;--contact-ink:#c9f1d4;--art-bg:#153626;--art-line:#386c4c;--font:'Courier New',monospace;--display:'Courier New',monospace;--radius:0px;--control-radius:0px}
:root[data-theme="candy"]{--paper:#fff3f8;--ink:#552440;--muted:#8b5371;--yellow:#b52c6d;--line:#e7bcd0;--blue:#f8d7e6;--surface:#fffafd;--accent:#b52c6d;--button-ink:#fff;--contact-bg:#f4b6d1;--art-bg:#f3aacb;--art-line:#c76894;--radius:34px;--control-radius:50px;--theme-shadow:5px 6px 0 #eeb5ce}

/* Shared colours reach every visible part of both pages, including dark themes. */
.is-themed body{background:var(--paper);color:var(--ink)}
.is-themed .site-header{background:var(--paper);border-color:var(--line)}
.is-themed .brand-dot,.is-themed .portfolio-heading h1>span{color:var(--accent)}
.is-themed .button{border-radius:var(--control-radius)}
.is-themed .button-dark{background:var(--ink);color:var(--paper);--play-cutout:var(--ink)}
.is-themed .button-yellow{background:var(--yellow);color:var(--button-ink);border-color:transparent}
.is-themed .button-light{background:var(--surface);color:var(--ink);border-color:var(--line)}
.is-themed .site-notice{background:var(--soft);color:var(--ink);border-color:var(--line)}
.is-themed .site-notice span{background:var(--yellow);color:var(--button-ink);border-color:transparent}
.is-themed .hero h1{font-size:clamp(52px,6.5vw,94px);white-space:normal;letter-spacing:-.055em;line-height:1.06}
.is-themed .name-word>svg{stroke:var(--accent)}
.is-themed .sunburst,.is-themed .doodle{color:var(--accent)}
.is-themed .art-backdrop{background:var(--art-bg);border-radius:var(--radius)}
.is-themed .orbit{border-color:var(--art-line)}
.is-themed .discord-banner{background:var(--surface);border-color:var(--line);border-radius:var(--radius);box-shadow:var(--theme-shadow)}
.is-themed .discord-banner:hover{background:var(--soft)}
.is-themed .discord-symbol{background:var(--soft);color:var(--ink);border-radius:var(--control-radius)}
.is-themed .discord-banner p,.is-themed .channel-links p,.is-themed .channel-number,.is-themed .gallery-number{color:var(--muted)}
.is-themed .contact-section{background:var(--contact-bg);color:var(--contact-ink);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--theme-shadow)}
.is-themed .contact-section .eyebrow,.is-themed .contact-section .copy-email,.is-themed .contact-section p:not(.eyebrow){color:var(--contact-ink)}
.is-themed .gallery-image{border-radius:var(--radius);background:var(--soft)}
.is-themed .gallery-expand{background:var(--surface);color:var(--ink)}
.is-themed .gallery-image:hover .gallery-expand{background:var(--yellow);color:var(--button-ink)}
.is-themed .thumbnail-viewer{background:var(--surface);color:var(--ink);border-color:var(--line);border-radius:var(--radius)}
.is-themed .viewer-count{color:var(--muted)}
.is-themed .viewer-close,.is-themed .viewer-pagination button{border-color:var(--line);color:var(--ink)}
.is-themed .viewer-close:hover,.is-themed .viewer-pagination button:hover{background:var(--soft)}
.is-themed .site-header nav{background:var(--paper)}
.is-themed a:focus-visible,.is-themed button:focus-visible{outline-color:var(--accent)}
.is-themed .skip-link{background:var(--ink);color:var(--paper)}

/* Individual design directions vary shape, typography, composition, and surface. */
html[data-theme="midnight"] .art-backdrop{border-radius:50%;background:radial-gradient(circle at 35% 30%,#45506e,#262b3d 70%);box-shadow:0 0 75px #eac65708}
html[data-theme="midnight"] .channel-links>a{background:var(--surface);padding:24px;border:1px solid var(--line);border-radius:18px}
html[data-theme="midnight"] .channel-links{gap:16px}
html[data-theme="paper"] .hero-art,html[data-theme="forest"] .hero-art,html[data-theme="sunset"] .hero-art{order:-1}
html[data-theme="paper"] .hero{gap:60px}
html[data-theme="paper"] .hero h1{font-weight:400;font-style:italic;letter-spacing:-.065em}
html[data-theme="paper"] .art-backdrop{inset:35px 18px;border:1px solid var(--line);transform:none}
html[data-theme="paper"] .sunburst,html[data-theme="paper"] .doodle,html[data-theme="paper"] .orbit,html[data-theme="paper"] .name-word>svg{display:none}
html[data-theme="paper"] .gallery-card figcaption{font-family:Georgia,serif;font-size:18px}
html[data-theme="blueprint"] body{background-image:linear-gradient(#ffffff07 1px,transparent 1px),linear-gradient(90deg,#ffffff07 1px,transparent 1px);background-size:32px 32px}
html[data-theme="blueprint"] .hero h1{font-size:clamp(48px,5.6vw,80px);letter-spacing:-.07em}
html[data-theme="blueprint"] .art-backdrop{transform:none;inset:22px;border:1px solid var(--art-line);background:linear-gradient(#8edcff12 1px,transparent 1px),linear-gradient(90deg,#8edcff12 1px,transparent 1px),var(--art-bg);background-size:45px 45px}
html[data-theme="blueprint"] .button,html[data-theme="blueprint"] .gallery-image{border:1px solid var(--accent)}
html[data-theme="blueprint"] .doodle,html[data-theme="blueprint"] .sunburst{display:none}
html[data-theme="arcade"] .hero h1{font-weight:800;text-transform:uppercase;letter-spacing:-.055em}
html[data-theme="arcade"] .art-backdrop{transform:rotate(5deg);inset:40px 20px;border:3px solid #b497ff;box-shadow:10px 10px 0 #c7ff5e}
html[data-theme="arcade"] .button-yellow{border:2px solid #c7ff5e;box-shadow:4px 4px 0 #b497ff}
html[data-theme="arcade"] .eyebrow,html[data-theme="arcade"] .channel-number{font-family:'Courier New',monospace}
html[data-theme="arcade"] .gallery-image{border:2px solid var(--line);box-shadow:4px 4px 0 #b497ff}
html[data-theme="peach"] .art-backdrop{border-radius:46% 54% 60% 40%;transform:rotate(8deg)}
html[data-theme="peach"] .hero h1{font-weight:500;letter-spacing:-.045em}
html[data-theme="peach"] .channel-links>a{background:var(--surface);padding:24px;border:1px solid var(--line);border-radius:24px}
html[data-theme="peach"] .channel-links{gap:16px}
html[data-theme="forest"] .hero{gap:50px}
html[data-theme="forest"] .art-backdrop{border-radius:48% 48% 16% 16%;transform:none;background:linear-gradient(145deg,#52795a,#274c38)}
html[data-theme="forest"] .hero h1{font-weight:500;letter-spacing:-.04em}
html[data-theme="forest"] .orbit{opacity:.45}
html[data-theme="ocean"] body{background:linear-gradient(180deg,#edf8ff 10%,#f6fcff 55%,#d9effa)}
html[data-theme="ocean"] .art-backdrop{border-radius:50%;transform:none;background:linear-gradient(160deg,#c6edf8,#a5d9ed);box-shadow:0 0 0 16px #d5edf680}
html[data-theme="ocean"] .hero h1{font-weight:500;letter-spacing:-.045em}
html[data-theme="mono"] .hero{display:flex;flex-direction:column;min-height:0;padding-top:64px;gap:22px;text-align:center}
html[data-theme="mono"] .hero-copy{padding:0}
html[data-theme="mono"] .hero .eyebrow{justify-content:center}
html[data-theme="mono"] .hero-actions{justify-content:center;flex-direction:row}
html[data-theme="mono"] .hero-art{height:380px;width:440px;max-width:100%}
html[data-theme="mono"] .art-backdrop{border-radius:50%;transform:none;inset:20px 45px}
html[data-theme="mono"] .doodle,html[data-theme="mono"] .orbit,html[data-theme="mono"] .sunburst,html[data-theme="mono"] .name-word>svg{display:none}
html[data-theme="mono"] .hero h1{font-weight:700;letter-spacing:-.07em}
html[data-theme="mono"] .gallery-card{border-bottom:1px solid var(--line);padding-bottom:20px}
html[data-theme="lilac"] body{background:radial-gradient(ellipse at 15% 18%,#e2d6ff 0,transparent 42%),var(--paper)}
html[data-theme="lilac"] .hero-copy{text-align:center}
html[data-theme="lilac"] .hero .eyebrow,html[data-theme="lilac"] .hero-actions{justify-content:center}
html[data-theme="lilac"] .art-backdrop{border-radius:34px;inset:45px 12px;transform:rotate(-4deg);border:2px solid #fff9;box-shadow:0 20px 70px #69518d20}
html[data-theme="lilac"] .channel-links{gap:18px}
html[data-theme="lilac"] .channel-links>a{background:var(--surface);border:1px solid var(--line);border-radius:24px;padding:24px}
html[data-theme="sunset"] body{background:radial-gradient(ellipse at 100% 0,#f5c4bc,transparent 50%),linear-gradient(180deg,#fff0dc,#f9e4cd)}
html[data-theme="sunset"] .hero{gap:40px}
html[data-theme="sunset"] .art-backdrop{border-radius:50% 50% 25% 25%;background:linear-gradient(145deg,#f4be7e,#da8990);transform:rotate(7deg)}
html[data-theme="sunset"] .hero h1{font-weight:600;letter-spacing:-.05em}
html[data-theme="studio"] .art-backdrop{inset:20px 0;background:transparent;transform:none;border-left:1px solid var(--line);border-radius:0}
html[data-theme="studio"] .doodle,html[data-theme="studio"] .orbit,html[data-theme="studio"] .sunburst,html[data-theme="studio"] .name-word>svg{display:none}
html[data-theme="studio"] .hero h1{font-weight:700;letter-spacing:-.065em}
html[data-theme="studio"] .eyebrow{color:var(--accent)}
html[data-theme="studio"] .discord-banner,html[data-theme="studio"] .contact-section{border-width:1px}
html[data-theme="retro"] .hero h1{font-weight:700;letter-spacing:-.06em;line-height:1.02}
html[data-theme="retro"] .art-backdrop{inset:40px 20px;transform:rotate(-4deg);border:2px solid var(--ink);box-shadow:9px 9px 0 var(--ink)}
html[data-theme="retro"] .button{border:2px solid var(--ink);box-shadow:3px 3px 0 var(--ink)}
html[data-theme="retro"] .discord-banner,html[data-theme="retro"] .contact-section{border:2px solid var(--ink)}
html[data-theme="retro"] .gallery-image{border:2px solid var(--ink);box-shadow:4px 4px 0 var(--ink)}
html[data-theme="retro"] .orbit,html[data-theme="retro"] .name-word>svg{display:none}
html[data-theme="terminal"] .hero h1{font-size:clamp(46px,5.6vw,78px);font-weight:400;letter-spacing:-.075em}
html[data-theme="terminal"] .art-backdrop{inset:25px;transform:none;background:var(--art-bg);border:1px solid var(--art-line)}
html[data-theme="terminal"] .doodle,html[data-theme="terminal"] .orbit,html[data-theme="terminal"] .sunburst,html[data-theme="terminal"] .name-word>svg{display:none}
html[data-theme="terminal"] .button{border:1px solid var(--accent)}
html[data-theme="terminal"] .discord-symbol{border:1px solid var(--line);transform:none}
html[data-theme="terminal"] .gallery-image{border:1px solid var(--line)}
html[data-theme="candy"] .hero h1{font-weight:800;letter-spacing:-.055em}
html[data-theme="candy"] .art-backdrop{border-radius:38% 62% 42% 58%;transform:rotate(8deg);border:3px solid #fff;box-shadow:0 0 0 3px #e6a1c1}
html[data-theme="candy"] .button-yellow{box-shadow:4px 4px 0 #eab0cd}
html[data-theme="candy"] .channel-links{gap:18px}
html[data-theme="candy"] .channel-links>a{padding:24px;background:var(--surface);border:1px solid var(--line);border-radius:24px}

@media(max-width:1100px){html[data-theme="paper"] .hero,html[data-theme="forest"] .hero,html[data-theme="sunset"] .hero{gap:24px}.is-themed .channel-links>a{padding-inline:15px}}
@media(max-width:760px){.is-themed .hero h1{font-size:clamp(48px,8vw,67px)}.is-themed .hero{gap:18px}.is-themed .channel-links{gap:12px}}
@media(max-width:600px){.is-themed .hero h1{font-size:clamp(46px,14vw,65px);letter-spacing:-.055em}.is-themed .hero-art{order:0}.is-themed .hero-actions{flex-direction:row;justify-content:center}.is-themed .art-backdrop{inset:28px 12px}.is-themed .channel-links>a{padding:20px}.is-themed .channel-links>a:last-child{border-bottom:1px solid var(--line)}.is-themed .channel-links>a:first-child{padding-left:20px}.is-themed .gallery-image{border-radius:min(var(--radius),18px)}.is-themed .contact-email{font-size:12px;overflow-wrap:anywhere}.is-themed .contact-section{padding-inline:22px}html[data-theme="blueprint"] .hero h1,html[data-theme="terminal"] .hero h1{font-size:clamp(43px,12vw,57px)}html[data-theme="mono"] .hero{padding-top:38px}html[data-theme="mono"] .hero-art{width:330px;height:340px}html[data-theme="paper"] .hero,html[data-theme="forest"] .hero,html[data-theme="sunset"] .hero{gap:18px}html[data-theme="studio"] .art-backdrop{border-left:0;border-bottom:1px solid var(--line)}}

/* The temporary comparison controls keep one consistent appearance across themes. */
.theme-preview-enabled body{padding-top:54px}
.theme-toolbar{position:fixed;z-index:80;inset:0 0 auto;height:54px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 14px;background:#191b21;color:#f8f8fa;border-bottom:1px solid #383b45;font-family:'DM Sans',Arial,sans-serif;font-size:12px;color-scheme:dark;text-align:left;letter-spacing:0}
.theme-toolbar-controls{display:flex;align-items:center;gap:14px;min-width:0}
.theme-toolbar button{font-family:'DM Sans',Arial,sans-serif;letter-spacing:0;text-transform:none}
.theme-toggle{display:flex;align-items:center;gap:9px;border:1px solid #595d6b;background:#30333e;color:#fff;border-radius:7px;padding:8px 11px;font-size:12px;font-weight:650;min-height:36px}
.theme-toggle:hover,.theme-stepper button:hover,.theme-close:hover{background:#414654}
.theme-current{font-size:12px;font-variant-numeric:tabular-nums;white-space:nowrap;color:#e3e5ec;min-width:124px}
.theme-stepper{display:flex;gap:4px}
.theme-stepper button,.theme-close{height:34px;width:34px;border:1px solid #4b4f5c;background:#252832;color:#fff;border-radius:6px;font-size:18px}
.theme-temporary{color:#b6bbc9;font-size:11px}
.theme-panel{position:absolute;top:62px;left:14px;width:440px;max-width:calc(100vw - 28px);max-height:calc(100dvh - 76px);overflow:auto;overscroll-behavior:contain;background:#fff;color:#20232b;border:1px solid #d7d9e0;border-radius:14px;padding:18px;box-shadow:0 18px 65px #0005;color-scheme:light;scrollbar-gutter:stable}
.theme-panel[hidden]{display:none}
.theme-panel-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:15px}
.theme-panel h2{font-family:'DM Sans',Arial,sans-serif;font-size:18px;font-weight:700;line-height:1.3;letter-spacing:-.35px;color:#20232b;margin:0}
.theme-panel-heading p{font-size:12px;line-height:1.5;color:#666d7c;margin-top:3px}
.theme-close{flex-shrink:0;font-size:23px;background:#f0f1f5;color:#353a46;border-color:#dadde5}
.theme-close:hover{background:#e4e7ee}
.theme-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.theme-option{display:flex;flex-direction:column;gap:6px;min-height:93px;padding:11px;text-align:left;background:#f7f8fa;border:1px solid #e0e3e9;border-radius:9px;color:#20232b;transition:background .15s,border-color .15s}
.theme-option:hover{background:#eeeff5;border-color:#afb5c3}
.theme-option[aria-pressed="true"]{background:#fff8d5;border-color:#aa8500;box-shadow:inset 0 0 0 1px #aa8500}
.theme-option-title{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:700;line-height:1.3}
.theme-option-title>span{font-size:10px;color:#747b89;font-weight:500}
.theme-option-detail{font-size:10px;line-height:1.4;color:#606777}
.theme-selected-mark{margin-left:auto;visibility:hidden;color:#755c00}
.theme-option[aria-pressed="true"] .theme-selected-mark{visibility:visible}
.theme-swatches{display:flex;height:15px;gap:4px}
.theme-swatches i{display:block;width:25px;border-radius:3px;border:1px solid #0002}
.theme-panel-note{font-size:10px;line-height:1.6;color:#666d7c;margin:14px 0 0}
html .theme-toolbar button:focus-visible{outline:3px solid #779cff;outline-offset:3px}
@media(max-width:600px){.theme-toolbar{padding-inline:9px}.theme-toolbar-controls{gap:8px;width:100%}.theme-toggle{font-size:11px;padding-inline:9px;gap:6px}.theme-current{font-size:11px;min-width:0;flex:1}.theme-stepper{margin-left:auto}.theme-temporary{display:none}.theme-panel{left:9px;max-width:calc(100vw - 18px);padding:13px}.theme-options{gap:7px}.theme-option{padding:9px;min-height:92px}.theme-option-detail{font-size:9px}.theme-option-title{font-size:11px}}
