.theme-toggle{position:relative;display:flex;align-items:center;justify-content:space-around;width:74px;height:36px;border:1px solid #ffffffaa;border-radius:24px;background:linear-gradient(135deg,#ffffff90,#dadbd230);backdrop-filter:blur(20px) saturate(1.6);-webkit-backdrop-filter:blur(20px) saturate(1.6);box-shadow:inset 0 1px 1px #fff,0 3px 12px #1b211b10;padding:0;color:#686d62;flex-shrink:0;isolation:isolate;cursor:pointer}.theme-toggle svg{width:16px;height:16px;position:relative;z-index:1;transition:color .5s,transform .65s cubic-bezier(.16,1,.3,1)}.theme-knob{position:absolute;left:3px;top:3px;width:28px;height:28px;border-radius:50%;background:linear-gradient(135deg,#ffffffed,#f5f4e9b3);box-shadow:0 2px 7px #131a2020,inset 0 1px 1px #fff;transition:transform .65s cubic-bezier(.16,1,.3,1),background .5s}.theme-toggle[aria-checked=true] .theme-knob{transform:translateX(38px)}.theme-toggle[aria-checked=true] .theme-moon{color:#f4f1df;transform:rotate(-12deg)}.theme-toggle:active .theme-knob{width:31px}.theme-toggle:focus-visible{outline:2px solid var(--purple);outline-offset:4px}.theme-changing body,.theme-changing header,.theme-changing .contact-compact,.theme-changing .gift-panel,.theme-changing .social-tile{transition:background-color .55s,color .55s,border-color .55s}
.bank-shell{position:fixed;right:22px;bottom:22px;z-index:52;width:110px;height:40px;border:1px solid #ffffff85;border-radius:24px;background:linear-gradient(135deg,#ffffff58,#ffffff24);backdrop-filter:blur(18px) saturate(1.65);-webkit-backdrop-filter:blur(18px) saturate(1.65);box-shadow:inset 0 1px 1px #ffffffec,inset 0 -1px 1px #ffffff50,0 12px 40px #1c251c20;overflow:hidden;transition:width .85s cubic-bezier(.16,1,.3,1),height .85s cubic-bezier(.16,1,.3,1),border-radius .85s cubic-bezier(.16,1,.3,1)}.bank-shell.is-expanded{width:244px;height:var(--bank-height,324px);border-radius:22px}.bank-shell .bank-trigger{position:absolute;inset:auto 0 0 auto;width:110px;height:40px;border:0;border-radius:0;background:none;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;display:flex;justify-content:center;gap:6px;padding:0;transition:opacity .18s,transform .5s;transform:none}.bank-shell.is-expanded .bank-trigger{opacity:0;pointer-events:none;transform:translateY(10px)}.bank-shell .bank-panel{position:absolute;inset:0 auto auto 0;margin:0;width:244px;max-width:none;max-height:none;height:auto;padding:30px 15px 10px;border:0;border-radius:0;background:none;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;overflow:visible;opacity:0;visibility:hidden;transform:translateY(16px);transition:opacity .15s,transform .5s cubic-bezier(.16,1,.3,1),visibility 0s .18s}.bank-shell.is-expanded .bank-panel{opacity:1;visibility:visible;transform:none;transition:opacity .45s .15s,transform .7s .08s cubic-bezier(.16,1,.3,1),visibility 0s}.bank-shell.is-expanded .bank-trigger{visibility:hidden}.bank-trigger:focus-visible{outline:2px solid var(--purple);outline-offset:-4px}
.viewer-image-link{display:block;touch-action:pan-y}.viewer-image-link[href]{cursor:alias}.viewer-bottom{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:12px 3px 0}.viewer-caption{margin:0;line-height:1.5}.viewer-hint{font-size:9px;line-height:1.5;color:#62695d;margin:4px 0 0}.viewer-navigation{display:flex;align-items:center;gap:12px;flex-shrink:0}.viewer-navigation button{width:35px;height:35px;border:1px solid #ffffff88;border-radius:50%;background:#ffffff55;color:inherit;font-size:18px}.viewer-navigation button:hover{background:#ffffffa0}#viewer-count{font-size:9px;letter-spacing:1px;font-variant-numeric:tabular-nums}.viewer-image{max-height:calc(100dvh - 175px)}
html[data-theme=dark]{color-scheme:dark;--paper:#171b19;--ink:#eeeede;--lime:#d5fc50;--purple:#b7a0e4}html[data-theme=dark] body{background:#171b19;color:#eeeede}html[data-theme=dark] header{background:#171b19d9;border-color:#ffffff15}html[data-theme=dark] .nav{border-color:#ffffff15}html[data-theme=dark] .logo span{color:#baa4e5}html[data-theme=dark] .theme-toggle{background:linear-gradient(135deg,#ffffff18,#ffffff06);border-color:#ffffff30;color:#a5aaa0}html[data-theme=dark] .theme-knob{background:linear-gradient(135deg,#ffffff3d,#ffffff13);box-shadow:0 2px 8px #0005,inset 0 1px 1px #ffffff50}html[data-theme=dark] .hero .availability{background:#d5fc5010;border-color:#d5fc5033;color:#d8dfc5}html[data-theme=dark] .hero h1 em{color:#1c2118}html[data-theme=dark] .hero-bottom p,html[data-theme=dark] .about p{color:#aeb4a8}html[data-theme=dark] .hero .round-link{border-color:#ffffff28;background:#ffffff06}html[data-theme=dark] .hero .round-link>span:first-child{background:#d5fc50;color:#1b2116}html[data-theme=dark] .ticker{background:#222923;color:#d5fc50}html[data-theme=dark] .filter{border-color:#ffffff25;color:#b8c0b0}html[data-theme=dark] .filter.active{background:#d5fc50;color:#1b2116;border-color:#d5fc50}html[data-theme=dark] .project-meta p,html[data-theme=dark] .note,html[data-theme=dark] .profile-location span{color:#a0a99b}html[data-theme=dark] .arrow,html[data-theme=dark] .profile-info,html[data-theme=dark] .about,html[data-theme=dark] .chips span{border-color:#ffffff20}html[data-theme=dark] .chips span{color:#c9cdbf;background:#ffffff05}html[data-theme=dark] .art-portrait-sign{background:#eae7d9;color:#242a21}html[data-theme=dark] .art-portrait:before{background:#454a43}html[data-theme=dark] .art-portrait figcaption{border-color:#ffffff22;color:#a4ac9b}html[data-theme=dark] #gift .gift-panel{background:#25232e;border-color:#ffffff16}html[data-theme=dark] #gift .gift-copy p{color:#b4b4ae}html[data-theme=dark] #gift .gift-ticket{background:#1c211c;border-color:#ffffff18}html[data-theme=dark] #gift .gift-ticket button{background:#d5fc50;color:#20271a}html[data-theme=dark] #gift .gift-ticket.won{background:#303e23}html[data-theme=dark] #gift .gift-ticket.won strong{color:#d5fc50}html[data-theme=dark] .contact-compact{background:#212620;border-color:#ffffff15}html[data-theme=dark] .social-tile{background:#2a3028;border-color:#ffffff0f;color:#eeeede}html[data-theme=dark] .compact-qr-row{border-color:#ffffff1a}html[data-theme=dark] .compact-heading>span,html[data-theme=dark] .compact-qr small,html[data-theme=dark] footer{color:#aab29f}html[data-theme=dark] .compact-qr{color:#e6e9da}html[data-theme=dark] .compact-qr>img{background:#fff;border-radius:9px}html[data-theme=dark] .bank-shell,html[data-theme=dark] .music-glass{color:#eeeede;background:linear-gradient(135deg,#343e349c,#1b241b80);border-color:#ffffff38;box-shadow:inset 0 1px 1px #ffffff55,0 10px 40px #0003}html[data-theme=dark] .music-meta small{color:#b2baa7}html[data-theme=dark] .music-controls button,html[data-theme=dark] .bank-actions a,html[data-theme=dark] .bank-actions button,html[data-theme=dark] .bank-close{background:#ffffff12;border-color:#ffffff25;color:#ecefdf}html[data-theme=dark] .bank-brand{color:#d5fc50}html[data-theme=dark] .bank-qr-wrap{background:#f6f5eb;border-radius:8px}html[data-theme=dark] .project-viewer{background:linear-gradient(140deg,#303a33bb,#1b231e99);border-color:#ffffff44;color:#eeeede}html[data-theme=dark] .viewer-caption{color:#eeeede}html[data-theme=dark] .viewer-hint{color:#b3bea9}html[data-theme=dark] .viewer-close,html[data-theme=dark] .viewer-navigation button{background:#ffffff15;border-color:#ffffff30;color:#eeeede}html[data-theme=dark] .viewer-label{color:#b9c2b0}html[data-theme=dark] .music-atmosphere{opacity:0}html[data-theme=dark].music-on .music-atmosphere{opacity:.5}
@media(max-width:760px){.theme-toggle{width:68px;height:34px}.theme-knob{width:26px;height:26px}.theme-toggle[aria-checked=true] .theme-knob{transform:translateX(34px)}.bank-shell{right:14px;bottom:14px}.viewer-bottom{align-items:flex-start;gap:8px}.viewer-navigation{gap:7px}.viewer-navigation button{width:31px;height:31px}.viewer-caption{font-size:10px}.viewer-hint{font-size:8px}.viewer-image{max-height:calc(100dvh - 195px)}}@media(prefers-reduced-motion:reduce){.theme-knob,.theme-toggle svg,.bank-shell,.bank-shell .bank-panel,.bank-shell.is-expanded .bank-panel,.bank-shell .bank-trigger{transition:none}}
html[data-theme=dark] .bank-shell .bank-panel{color:#eeeede}html[data-theme=dark] #bank-status{color:#b8c2ac}
/* Color sampled from each project's artwork; the image itself stays untouched. */
@property --gallery-tint{syntax:'<color>';inherits:true;initial-value:#78a6c8}
.project-viewer{transition:--gallery-tint .8s cubic-bezier(.22,1,.36,1),border-color .8s ease,box-shadow .8s ease;background:linear-gradient(140deg,color-mix(in srgb,var(--gallery-tint) 30%,#ffffff90),color-mix(in srgb,var(--gallery-tint) 12%,#ffffff38));border-color:color-mix(in srgb,var(--gallery-tint) 30%,#ffffffe0);box-shadow:inset 0 1px 1px #ffffffde,0 20px 80px #14191540,0 0 60px color-mix(in srgb,var(--gallery-tint) 13%,transparent)}
html[data-theme=dark] .project-viewer{background:linear-gradient(140deg,color-mix(in srgb,var(--gallery-tint) 24%,#263029d9),color-mix(in srgb,var(--gallery-tint) 10%,#171f1bbf));border-color:color-mix(in srgb,var(--gallery-tint) 35%,#ffffff45);box-shadow:inset 0 1px 1px #ffffff55,0 20px 80px #0006,0 0 60px color-mix(in srgb,var(--gallery-tint) 12%,transparent)}
.project-viewer .viewer-navigation button{border-color:color-mix(in srgb,var(--gallery-tint) 25%,#ffffff88);transition:border-color .8s,background .3s}
@media(prefers-reduced-motion:reduce){.project-viewer,.project-viewer .viewer-navigation button{transition:none}}
.nav-controls{display:flex;gap:10px;align-items:center}.language-toggle{position:relative;display:flex;align-items:center;justify-content:space-around;width:68px;height:36px;padding:0;border:1px solid #ffffffaa;border-radius:24px;background:linear-gradient(135deg,#ffffff90,#dadbd230);backdrop-filter:blur(20px) saturate(1.6);-webkit-backdrop-filter:blur(20px) saturate(1.6);box-shadow:inset 0 1px 1px #fff,0 3px 12px #1b211b10;color:#686d62;font-size:9px;font-weight:600;letter-spacing:.5px;isolation:isolate;flex-shrink:0}.language-toggle>span:not(.language-knob){position:relative;z-index:1}.language-knob{position:absolute;left:3px;top:3px;width:28px;height:28px;border-radius:50%;background:linear-gradient(135deg,#ffffffed,#f5f4e9b3);box-shadow:0 2px 7px #131a2020,inset 0 1px 1px #fff;transition:transform .6s cubic-bezier(.16,1,.3,1)}.language-toggle[aria-checked=true] .language-knob{transform:translateX(32px)}.language-toggle:focus-visible{outline:2px solid var(--purple);outline-offset:4px}html[data-theme=dark] .language-toggle{background:linear-gradient(135deg,#ffffff18,#ffffff06);border-color:#ffffff30;color:#e3e8da}html[data-theme=dark] .language-knob{background:linear-gradient(135deg,#ffffff3d,#ffffff13);box-shadow:0 2px 8px #0005,inset 0 1px 1px #ffffff50}html[lang=en] .hero h1{font-size:clamp(58px,7.9vw,115px)}html[lang=en] #about h2{letter-spacing:-1px}@media(max-width:760px){.nav-controls{gap:6px}.language-toggle{width:60px;height:34px;font-size:8px}.language-knob{width:26px;height:26px}.language-toggle[aria-checked=true] .language-knob{transform:translateX(26px)}html[lang=en] .hero h1{font-size:clamp(45px,9.5vw,74px)}.nav{gap:10px}.nav nav{gap:10px}.bank-shell .bank-trigger{font-size:9px}.bank-actions a,.bank-actions button{font-size:8px}}@media(max-width:430px){header .nav{padding-left:16px;padding-right:16px}.nav .logo{font-size:17px}.nav nav{gap:8px}.nav nav a{font-size:10px}.nav-controls{gap:5px}.theme-toggle{width:60px}.theme-toggle[aria-checked=true] .theme-knob{transform:translateX(26px)}}@media(prefers-reduced-motion:reduce){.language-knob{transition:none}}
@media(max-width:580px){header .nav{display:grid;grid-template-columns:1fr auto;gap:11px 10px;padding:15px 5% 12px}.nav .logo{grid-column:1;grid-row:1}.nav-controls{grid-column:2;grid-row:1}.nav nav{grid-column:1/-1;grid-row:2;justify-content:center;gap:26px;font-size:11px}.nav nav a{font-size:11px}}
.music-atmosphere::before{background:radial-gradient(ellipse at center,var(--music-tone-0,#efb54042) 0%,var(--music-tone-1,#f4cf7629) 25%,transparent 62%)}.music-atmosphere::after{background:radial-gradient(ellipse at center,var(--music-tone-2,#e6a55726),transparent 63%)}
html[data-theme=dark] .bank-shell .bank-trigger{color:#fff}
.music-controls button{width:21px;height:24px}.music-controls{gap:2px;flex-shrink:0}.music-meta{min-width:0}
/* Balanced, flat playback controls inside the continuous glass bar. */
.music-widget.is-expanded{width:232px}.music-widget .music-hud{width:171px;right:8px;gap:7px}.music-widget .music-controls{gap:2px;align-items:center}.music-widget .music-controls button{width:27px;height:30px;padding:0;border:0;border-radius:7px;background:transparent;box-shadow:none;color:#41483c;transform:none;transition:background .2s,color .2s}.music-widget .music-controls button:hover{background:#ffffff65;transform:none}.music-widget .music-controls button:active{background:#ffffffa0}.music-widget .music-controls svg{display:block;width:14px;height:14px}.music-widget #music-play{background:#ffffff40}.music-widget .music-meta strong{font-size:10px;letter-spacing:-.15px}.music-widget .music-meta small{font-size:8px}.music-widget .music-progress{right:2px;bottom:-1px}
html[data-theme=dark] .music-widget .music-controls button{background:transparent;border:0;color:#f4f3e8}html[data-theme=dark] .music-widget #music-play{background:#ffffff0f}html[data-theme=dark] .music-widget .music-controls button:hover{background:#ffffff20}html[data-theme=dark] .music-widget .music-controls button:active{background:#ffffff35}
html[data-theme=dark].music-on .music-atmosphere{opacity:.7}
/* Vector symbols stay consistent on iOS, Android and desktop. */
.ui-icon{display:inline-block;width:16px;height:16px;vertical-align:middle;flex-shrink:0}.star .spark-icon{width:100%;height:100%;stroke-width:2.7}.hero .star{width:106px;height:106px}.hero .round-link>span:first-child .ui-icon{width:21px;height:21px}.ticker .spark-icon{width:17px;height:17px;margin:0 5px;stroke-width:2}.project .arrow .ui-icon{width:13px;height:13px}.social-tile .tile-arrow .ui-icon{width:12px;height:12px}#gift .gift-instruction{font-size:9px;line-height:1.6;margin:7px 0 0;max-width:400px;color:#74786d}#gift .gift-ticket .gift-code{font-size:9px;letter-spacing:.6px;line-height:1.5;margin-top:4px;font-variant-numeric:tabular-nums;color:#646e55}
.promo-open{display:block;width:100%;margin-top:7px;padding:7px 4px;border:1px solid #ffffff80;border-radius:9px;background:#ffffff35;color:#394633;font-size:9px;line-height:1.4}.promo-panel{position:fixed;right:22px;bottom:410px;z-index:53;width:244px;max-height:calc(100dvh - 420px);overflow:auto;border:1px solid #ffffff95;border-radius:19px;padding:13px 14px;background:linear-gradient(135deg,#ffffffe0,#f1f2e8c9);backdrop-filter:blur(24px) saturate(1.5);-webkit-backdrop-filter:blur(24px) saturate(1.5);box-shadow:inset 0 1px 1px #fff,0 12px 44px #202a2326;color:#30392b;opacity:0;visibility:hidden;transform:translateY(13px) scale(.97);transform-origin:bottom right;transition:opacity .25s ease,transform .5s cubic-bezier(.16,1,.3,1),visibility 0s .25s}.promo-panel.is-open{opacity:1;visibility:visible;transform:none;transition:opacity .35s,transform .55s cubic-bezier(.16,1,.3,1),visibility 0s}.promo-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;gap:8px}.promo-heading strong{font-size:11px;font-weight:600}.promo-heading button{display:grid;place-items:center;width:26px;height:26px;padding:4px;border:0;border-radius:7px;background:#ffffff40;color:inherit}.promo-heading svg{width:15px;height:15px}.promo-panel label{display:block;font-size:9px;margin:8px 0 5px}.promo-panel input{display:block;width:100%;min-width:0;border:1px solid #37453225;border-radius:9px;padding:8px 9px;font:inherit;font-size:16px;background:#ffffff70;color:inherit;outline:none}.promo-panel input:focus{border-color:#7e965c;box-shadow:0 0 0 2px #9dbb6a20}.promo-panel input::placeholder{font-size:11px;color:#8a9180}.promo-submit{display:block;width:100%;margin-top:10px;border:0;border-radius:9px;padding:8px;background:#263221;color:#f4f5e8;font-size:10px}.promo-panel #promo-status{font-size:9px;line-height:1.5;color:#89603b;margin:8px 0 0}.promo-panel #promo-status:empty{display:none}#promo-result{border-top:1px solid #3745321a;padding-top:10px;margin-top:10px}#promo-result[hidden]{display:none}#promo-result small{display:block;font-size:9px}#promo-total{display:block;font-size:21px;letter-spacing:-.5px;margin-top:4px}#promo-saving{display:block;font-size:9px;margin-top:4px;color:#56733d}.promo-note{display:block;font-size:8px;line-height:1.5;color:#7d8475;margin-top:9px}html[data-theme=dark] .promo-panel{background:linear-gradient(135deg,#343e34ed,#1b241be6);border-color:#ffffff35;color:#eeeede;box-shadow:inset 0 1px 1px #ffffff40,0 12px 44px #0005}html[data-theme=dark] .promo-open{color:#e5ebd9;background:#ffffff0b;border-color:#ffffff22}html[data-theme=dark] .promo-panel input{background:#00000022;border-color:#ffffff2a}html[data-theme=dark] .promo-submit{background:#d5fc50;color:#20271b}html[data-theme=dark] .promo-panel #promo-status{color:#ebcba4}html[data-theme=dark] #promo-saving{color:#d5fc50}html[data-theme=dark] .promo-note{color:#b1b9a7}html[data-theme=dark] #gift .gift-instruction,html[data-theme=dark] #gift .gift-ticket .gift-code{color:#b5bdab}@media(max-width:760px){.hero .star{width:58px;height:58px}.promo-panel{right:14px}.music-controls button{touch-action:manipulation}.promo-panel{max-height:calc(100dvh - 400px)}.hero .round-link>span:first-child .ui-icon{width:20px;height:20px}}@media(max-height:650px){.bank-shell .bank-qr-wrap{max-width:145px}.promo-panel{max-height:calc(100dvh - 320px)}}@media(prefers-reduced-motion:reduce){.promo-panel,.promo-panel.is-open{transition:none}}
/* One vector icon system, including text-label buttons. */
button,a{-webkit-tap-highlight-color:transparent}.bank-close .ui-icon{width:14px;height:14px}.bank-close{display:grid;place-items:center;padding:0}.viewer-navigation button{display:grid;place-items:center;padding:0}.viewer-navigation .ui-icon{width:16px;height:16px}.bank-actions a,.bank-actions button{display:flex;align-items:center;justify-content:center;gap:4px}.bank-actions .ui-icon{width:12px;height:12px}.tile-arrow .ui-icon{width:12px;height:12px}.note .ui-icon,footer .ui-icon{width:12px;height:12px}#gift-open .ui-icon{width:12px;height:12px;margin-left:4px}.compact-heading>span .ui-icon{width:12px;height:12px}.qr-viewer{position:fixed;inset:0;margin:auto;width:min(390px,calc(100% - 32px));max-height:calc(100dvh - 32px);height:fit-content;overflow:auto;border:1px solid #ffffffc0;border-radius:25px;padding:17px;background:linear-gradient(140deg,#ffffffb3,#ffffff66);backdrop-filter:blur(24px) saturate(1.5);-webkit-backdrop-filter:blur(24px) saturate(1.5);box-shadow:inset 0 1px 1px #fff,0 20px 80px #14191540;color:#30362e}.qr-viewer::backdrop{background:#181d2540;backdrop-filter:blur(9px)}.qr-viewer-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:13px}.qr-viewer-head strong{font-size:13px;font-weight:600}.qr-viewer-head button{display:grid;place-items:center;width:38px;height:38px;border:1px solid #ffffff80;border-radius:12px;padding:0;background:#ffffff55;color:inherit;flex-shrink:0}.qr-viewer-head .ui-icon{width:19px;height:19px}#qr-viewer-image{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:contain;image-rendering:pixelated;background:#fff;border-radius:12px}.qr-viewer>p{font-size:10px;text-align:center;margin:12px 0 2px;color:#6d7565}.qr-viewer button:focus-visible{outline:2px solid var(--purple);outline-offset:3px}html[data-theme=dark] .qr-viewer{background:linear-gradient(140deg,#303a33dd,#1b231ebd);border-color:#ffffff44;color:#eeeede}html[data-theme=dark] .qr-viewer-head button{background:#ffffff15;border-color:#ffffff30}html[data-theme=dark] .qr-viewer>p{color:#b3bea9}@media(max-width:760px){.social-icon svg{width:19px;height:19px}.qr-title svg{width:18px;height:18px}.project-kind svg{width:13px;height:13px}.viewer-navigation .ui-icon{width:15px;height:15px}.bank-trigger>svg{width:16px;height:16px}.theme-toggle svg{width:15px;height:15px}}
.amount-field{position:relative}.amount-field input{padding-right:41px!important}.amount-currency{position:absolute;right:10px;top:50%;transform:translateY(-50%);font-size:9px;opacity:.65;pointer-events:none}#promo-usd{display:block;font-size:8px;line-height:1.4;margin:5px 1px 0;opacity:.62}#promo-usd[hidden]{display:none}#bank-request{margin:-2px 0 10px;text-align:center}#bank-request[hidden]{display:none}#bank-request strong{display:block;font-size:13px;font-weight:600}#bank-request span{display:block;font-size:8px;opacity:.7;margin-top:4px}
