:root{color:#111722;background:#fbfbf7;font-family:Commissioner,Segoe UI,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,sans-serif;font-size:16px;font-stretch:106%;--paper: #fbfbf7;--paper-warm: #fff8eb;--surface: #ffffff;--surface-blue: #eaf4ff;--ink: #111722;--ink-soft: #1a2a3d;--muted: #45566a;--line: #d5e0ec;--line-strong: #9fb0c2;--accent: #1f6fb8;--accent-strong: #0c3260;--accent-soft: #deefff;--accent-warm: #d58a1f;--accent-warm-soft: #fff0d6;--radius: 12px;--radius-small: 8px;--shadow: 0 24px 80px rgb(18 63 117 / 13%);--elev-border: rgb(88 122 158 / 42%);--elev-shadow: 0 1px 0 rgb(255 255 255 / 88%) inset, 0 10px 24px rgb(18 63 117 / 8%), 0 28px 64px rgb(18 63 117 / 16%);--elev-shadow-strong: 0 1px 0 rgb(255 255 255 / 92%) inset, 0 14px 32px rgb(18 63 117 / 10%), 0 36px 88px rgb(18 63 117 / 20%);--header-elev-shadow: 0 1px 0 rgb(255 255 255 / 16%) inset, 0 10px 28px rgb(6 24 48 / 32%), 0 22px 56px rgb(6 24 48 / 26%);--serif: "Source Serif 4", Georgia, "Times New Roman", serif;--brand: "Plus Jakarta Sans", "Commissioner", "Segoe UI", ui-sans-serif, system-ui, sans-serif}:root[data-theme=night]{color:#f3f8ff;background:#06111f;--paper: #06111f;--paper-warm: #0b1b2e;--surface: #0e2238;--surface-blue: #12304d;--ink: #f4f8ff;--ink-soft: #e8f1fb;--muted: #c8d6e6;--line: rgb(213 231 248 / 26%);--line-strong: rgb(226 238 250 / 48%);--accent: #8ec7ff;--accent-strong: #f2f8ff;--accent-soft: rgb(96 159 219 / 26%);--accent-warm: #ffd27a;--accent-warm-soft: rgb(255 210 122 / 16%);--shadow: 0 26px 86px rgb(0 0 0 / 42%);--elev-border: rgb(170 205 240 / 28%);--elev-shadow: 0 1px 0 rgb(255 255 255 / 8%) inset, 0 12px 28px rgb(0 0 0 / 28%), 0 32px 72px rgb(0 0 0 / 42%);--elev-shadow-strong: 0 1px 0 rgb(255 255 255 / 10%) inset, 0 16px 36px rgb(0 0 0 / 34%), 0 40px 96px rgb(0 0 0 / 52%);--header-elev-shadow: 0 1px 0 rgb(255 255 255 / 8%) inset, 0 12px 30px rgb(0 0 0 / 48%), 0 24px 58px rgb(0 0 0 / 40%)}:root[data-theme=sunset]{color:#20131f;background:#fff3df;--paper: #fff3df;--paper-warm: #fff2dc;--surface: #ffffff;--surface-blue: #fff1dd;--ink: #1a0f16;--ink-soft: #3a1f2c;--muted: #5a3842;--line: #ecd1c3;--line-strong: #c99a86;--accent: #c8523b;--accent-strong: #5a1a28;--accent-soft: #ffe0bb;--accent-warm: #e18a25;--accent-warm-soft: #fff0cf;--shadow: 0 24px 80px rgb(123 38 57 / 15%);--elev-border: rgb(160 96 86 / 46%);--elev-shadow: 0 1px 0 rgb(255 255 255 / 86%) inset, 0 10px 24px rgb(123 38 57 / 10%), 0 28px 64px rgb(123 38 57 / 18%);--elev-shadow-strong: 0 1px 0 rgb(255 255 255 / 90%) inset, 0 14px 32px rgb(123 38 57 / 12%), 0 36px 88px rgb(123 38 57 / 22%);--header-elev-shadow: 0 1px 0 rgb(255 255 255 / 22%) inset, 0 10px 28px rgb(80 20 35 / 34%), 0 22px 56px rgb(80 20 35 / 26%)}:root[data-theme=dawn]{color:#2a1f24;background:#fff6ee;--paper: #fff6ee;--paper-warm: #fff3e8;--surface: #ffffff;--surface-blue: #fff1e8;--ink: #241820;--ink-soft: #4a3540;--muted: #6b5560;--line: #ead8cf;--line-strong: #c9b0a4;--accent: #d4856a;--accent-strong: #8a4a42;--accent-soft: #ffe8d8;--accent-warm: #d9a060;--accent-warm-soft: #fff2e0;--shadow: 0 24px 80px rgb(138 74 66 / 12%);--elev-border: rgb(170 130 118 / 40%);--elev-shadow: 0 1px 0 rgb(255 255 255 / 88%) inset, 0 10px 24px rgb(138 74 66 / 8%), 0 28px 64px rgb(138 74 66 / 14%);--elev-shadow-strong: 0 1px 0 rgb(255 255 255 / 92%) inset, 0 14px 32px rgb(138 74 66 / 10%), 0 36px 88px rgb(138 74 66 / 18%);--header-elev-shadow: 0 1px 0 rgb(255 255 255 / 24%) inset, 0 10px 28px rgb(100 50 45 / 28%), 0 22px 56px rgb(100 50 45 / 20%)}:root[data-theme=rain]{color:#eef6ff;background:#0d1826;--paper: #0d1826;--paper-warm: #122131;--surface: #102235;--surface-blue: #16304a;--ink: #eef6ff;--ink-soft: #e6f0f8;--muted: #c5d3de;--line: rgb(220 235 248 / 26%);--line-strong: rgb(226 238 250 / 44%);--accent: #9fc6e8;--accent-strong: #eef6ff;--accent-soft: rgb(96 137 169 / 28%);--accent-warm: #d7b36a;--accent-warm-soft: rgb(215 179 106 / 16%);--shadow: 0 28px 90px rgb(0 0 0 / 44%);--elev-border: rgb(180 210 235 / 26%);--elev-shadow: 0 1px 0 rgb(255 255 255 / 7%) inset, 0 12px 28px rgb(0 0 0 / 30%), 0 34px 78px rgb(0 0 0 / 46%);--elev-shadow-strong: 0 1px 0 rgb(255 255 255 / 9%) inset, 0 16px 36px rgb(0 0 0 / 36%), 0 42px 98px rgb(0 0 0 / 54%);--header-elev-shadow: 0 1px 0 rgb(255 255 255 / 10%) inset, 0 12px 30px rgb(0 0 0 / 40%), 0 24px 58px rgb(0 0 0 / 34%)}html,body{margin:0;width:100%;min-height:100%}body{background:radial-gradient(ellipse 48% 32% at 76% 10%,rgb(255 252 240 / 62%) 0%,rgb(255 244 210 / 18%) 30%,transparent 70%),radial-gradient(ellipse 75% 40% at 16% 6%,rgb(255 255 255 / 58%) 0%,transparent 65%),radial-gradient(ellipse 60% 34% at 90% 38%,rgb(255 255 255 / 32%) 0%,transparent 72%),radial-gradient(ellipse 85% 42% at 42% 82%,rgb(230 242 250 / 50%) 0%,transparent 74%),linear-gradient(180deg,#8ebfdc,#a6d0e8 16%,#c0e0f2 38%,#d7ecf8 62%,#e8f4fb 84%,#eef6fa);background-attachment:fixed;color:var(--ink);text-rendering:optimizeLegibility}.window-glass{position:fixed;inset:0;z-index:2;display:block;pointer-events:none;--window-glass-sheen: rgb(255 255 255 / 16%);--window-glass-edge: rgb(255 255 255 / 32%);--window-glass-halo: rgb(18 40 64 / 6%);background:linear-gradient(125deg,rgb(255 255 255 / 10%) 0%,transparent 18%,transparent 70%,rgb(255 255 255 / 5%) 100%),radial-gradient(ellipse 95% 50% at 50% -6%,var(--window-glass-sheen) 0%,transparent 55%),radial-gradient(ellipse 40% 30% at 88% 12%,rgb(255 255 255 / 8%) 0%,transparent 60%),radial-gradient(ellipse at center,transparent 55%,var(--window-glass-halo) 100%);box-shadow:inset 0 0 0 1px #ffffff14,inset 0 1px 0 var(--window-glass-edge),inset 0 -1px #ffffff0f,inset 0 0 120px #0c1c300a;-webkit-backdrop-filter:none;backdrop-filter:none}.window-glass:before,.window-glass:after{content:"";position:absolute;inset:0;pointer-events:none}.window-glass:before{background:linear-gradient(152deg,transparent 0%,transparent 16%,rgb(255 255 255 / 12%) 27%,rgb(255 255 255 / 3%) 34%,transparent 42%,transparent 100%),linear-gradient(28deg,transparent 0%,transparent 58%,rgb(255 255 255 / 6%) 70%,transparent 80%);opacity:.9;mix-blend-mode:soft-light}.window-glass:after{background:radial-gradient(ellipse 55% 40% at 0% 0%,rgb(255 255 255 / 10%) 0%,transparent 70%),radial-gradient(ellipse 50% 38% at 100% 0%,rgb(255 255 255 / 8%) 0%,transparent 70%),radial-gradient(ellipse 45% 35% at 100% 100%,rgb(255 255 255 / 5%) 0%,transparent 70%),radial-gradient(ellipse 45% 35% at 0% 100%,rgb(255 255 255 / 5%) 0%,transparent 70%);opacity:.75;mix-blend-mode:soft-light}:root[data-theme=dawn] .window-glass{--window-glass-sheen: rgb(255 248 238 / 18%);--window-glass-edge: rgb(255 250 242 / 36%);--window-glass-halo: rgb(90 45 40 / 5%)}:root[data-theme=sunset] .window-glass{--window-glass-sheen: rgb(255 230 200 / 16%);--window-glass-edge: rgb(255 240 220 / 32%);--window-glass-halo: rgb(95 30 40 / 6%)}:root[data-theme=night] .window-glass{--window-glass-sheen: rgb(180 210 255 / 10%);--window-glass-edge: rgb(200 220 255 / 16%);--window-glass-halo: rgb(0 6 18 / 12%);box-shadow:inset 0 0 0 1px #b4d2ff0f,inset 0 1px #c8dcff24,inset 0 -1px #ffffff0a,inset 0 0 140px #00081614}:root[data-theme=rainbow] .window-glass{--window-glass-sheen: rgb(255 255 255 / 18%);--window-glass-edge: rgb(255 255 255 / 34%);--window-glass-halo: rgb(40 30 70 / 5%);background:linear-gradient(118deg,rgb(255 180 200 / 6%) 0%,transparent 22%,transparent 55%,rgb(180 220 255 / 5%) 78%,transparent 100%),radial-gradient(ellipse 95% 50% at 50% -6%,var(--window-glass-sheen) 0%,transparent 55%),radial-gradient(ellipse at center,transparent 55%,var(--window-glass-halo) 100%)}:root[data-theme=rain] .window-glass{--window-glass-sheen: rgb(230 240 250 / 14%);--window-glass-edge: rgb(230 240 255 / 26%);--window-glass-halo: rgb(16 36 55 / 8%)}:root{--window-wall-sill: clamp(18px, 2.2vw, 28px);--window-wall: #c4bfb6;--window-wall-deep: #a9a399;--window-wall-light: #d9d4cb;--window-wall-top: #e6e1d8;--window-wall-shadow: rgb(40 36 30 / 28%)}.window-frame-end{position:relative;z-index:3;width:100%;height:var(--window-wall-sill);pointer-events:none;background:linear-gradient(180deg,var(--window-wall-top) 0%,var(--window-wall-light) 14%,var(--window-wall) 42%,var(--window-wall) 78%,var(--window-wall-deep) 100%);box-shadow:inset 0 1px #ffffff73,inset 0 -2px #0000001f,0 -6px 16px var(--window-wall-shadow)}.window-frame-end:before{content:"";position:absolute;inset:0;opacity:.35;background:repeating-linear-gradient(90deg,transparent 0 3px,rgb(255 255 255 / 10%) 3px 4px,transparent 4px 9px,rgb(60 50 40 / 6%) 9px 10px),repeating-linear-gradient(0deg,transparent 0 4px,rgb(255 255 255 / 6%) 4px 5px,transparent 5px 11px,rgb(40 35 30 / 5%) 11px 12px);pointer-events:none}.window-frame-end:after{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:linear-gradient(180deg,rgb(255 255 255 / 55%) 0%,transparent 100%);box-shadow:0 1px #0000001a;pointer-events:none}:root[data-theme=dawn]{--window-wall: #d2c4b4;--window-wall-deep: #b8a794;--window-wall-light: #e4d8c8;--window-wall-top: #f0e6d8;--window-wall-shadow: rgb(70 50 30 / 22%)}:root[data-theme=sunset]{--window-wall: #d0b8a8;--window-wall-deep: #b89a88;--window-wall-light: #e4cfc0;--window-wall-top: #f2e0d2;--window-wall-shadow: rgb(70 35 25 / 24%)}:root[data-theme=night]{--window-wall: #2c3138;--window-wall-deep: #1c2026;--window-wall-light: #3a4048;--window-wall-top: #4a515a;--window-wall-shadow: rgb(0 0 0 / 45%)}:root[data-theme=rainbow]{--window-wall: #c8c2d0;--window-wall-deep: #aea8b6;--window-wall-light: #ddd8e4;--window-wall-top: #ebe6f0;--window-wall-shadow: rgb(40 30 55 / 22%)}:root[data-theme=rain]{--window-wall: #b4bbc2;--window-wall-deep: #969da4;--window-wall-light: #cdd3d8;--window-wall-top: #dde2e6;--window-wall-shadow: rgb(25 35 45 / 26%)}@media(max-width:700px){:root{--window-wall-sill: 16px}}.site-header,.spotify-player,.site-shell,.site-footer{position:relative;z-index:4}.sky-traffic{position:fixed;inset:0;z-index:0;overflow:hidden;pointer-events:none}.sky-craft{position:absolute;left:0;top:var(--sky-top, 14vh);color:#233a526b;will-change:transform,opacity;animation-timing-function:linear;animation-fill-mode:forwards}.sky-craft svg{display:block;width:100%;height:100%;fill:currentColor;stroke:currentColor;stroke-width:.55;stroke-linejoin:round;filter:drop-shadow(0 1px 1px rgb(255 255 255 / 30%))}.sky-craft--jet{width:auto;height:16px}.sky-craft--prop{width:auto;height:17px}.sky-craft--light{width:auto;height:14px}.sky-craft--plane{display:flex;align-items:center;justify-content:flex-end;gap:0}.sky-craft--plane>svg{position:relative;z-index:1;flex:0 0 auto}.sky-craft--jet>svg{width:40px;height:16px}.sky-craft--prop>svg{width:34px;height:17px}.sky-craft--light>svg{width:26px;height:14px}.sky-contrail{position:relative;z-index:0;display:block;width:var(--contrail-length, 140px);height:14px;margin-right:-6px;opacity:var(--contrail-opacity, .7);pointer-events:none;transform:translateY(.5px)}.sky-contrail__haze{position:absolute;inset:2px 8% 2px 0;border-radius:999px;background:linear-gradient(90deg,transparent 0%,rgb(255 255 255 / 4%) 18%,rgb(255 255 255 / 16%) 48%,rgb(255 255 255 / 28%) 78%,rgb(255 255 255 / 8%) 100%);filter:blur(3.5px)}.sky-contrail__stream{position:absolute;left:0;right:4%;top:50%;height:1.7px;border-radius:999px;transform:translateY(-50%);background:linear-gradient(90deg,transparent 0%,rgb(255 255 255 / 6%) 12%,rgb(245 250 255 / 28%) 38%,rgb(255 255 255 / 62%) 72%,rgb(255 255 255 / 80%) 92%,rgb(255 255 255 / 25%) 100%);box-shadow:0 0 2px #ffffff73,0 0 6px #dcebff47;filter:blur(.45px)}.sky-contrail__stream--upper{top:38%;height:1.45px;right:6%}.sky-contrail__stream--lower{top:62%;height:1.45px;right:8%;opacity:.88}.sky-contrail--prop{height:12px;margin-right:-4px}.sky-contrail--prop .sky-contrail__haze{filter:blur(2.6px);opacity:.75}.sky-contrail--prop .sky-contrail__stream{height:1.25px;filter:blur(.55px);opacity:.85}.sky-contrail--light{height:10px;margin-right:-3px}.sky-contrail--light .sky-contrail__haze{filter:blur(2.2px);opacity:.55}.sky-contrail--light .sky-contrail__stream{height:1px;filter:blur(.5px);opacity:.75}:root[data-theme=dawn] .sky-contrail__haze,:root[data-theme=dawn] .sky-contrail__stream{filter:blur(3.2px) sepia(.12) saturate(.85)}:root[data-theme=dawn] .sky-contrail__stream{filter:blur(.45px) sepia(.15) saturate(.9);box-shadow:0 0 2px #ffecdc7f,0 0 6px #ffdcc840}:root[data-theme=sunset] .sky-contrail__stream{background:linear-gradient(90deg,transparent 0%,rgb(255 230 210 / 8%) 12%,rgb(255 236 220 / 30%) 40%,rgb(255 245 235 / 58%) 72%,rgb(255 250 245 / 78%) 92%,rgb(255 240 230 / 22%) 100%);box-shadow:0 0 2px #ffdcc873,0 0 6px #ffb49638}:root[data-theme=night] .sky-contrail__haze{background:linear-gradient(90deg,transparent 0%,rgb(180 210 255 / 5%) 18%,rgb(200 225 255 / 18%) 50%,rgb(220 235 255 / 30%) 78%,rgb(200 220 255 / 8%) 100%)}:root[data-theme=night] .sky-contrail__stream{background:linear-gradient(90deg,transparent 0%,rgb(170 205 255 / 8%) 12%,rgb(200 225 255 / 32%) 40%,rgb(230 240 255 / 58%) 72%,rgb(245 250 255 / 78%) 92%,rgb(210 230 255 / 22%) 100%);box-shadow:0 0 2px #b4d7ff8c,0 0 8px #78aaff4d}:root[data-theme=rain] .sky-contrail{opacity:calc(var(--contrail-opacity, .7) * .55)}:root[data-theme=rain] .sky-contrail__stream{background:linear-gradient(90deg,transparent 0%,rgb(210 225 240 / 6%) 12%,rgb(220 232 245 / 22%) 40%,rgb(235 242 250 / 42%) 72%,rgb(245 248 252 / 55%) 92%,rgb(220 230 240 / 15%) 100%)}.sky-craft--balloon{width:32px;height:48px;color:#6a4530}.sky-craft--balloon svg{stroke:none;filter:drop-shadow(0 2px 2px rgb(30 20 10 / 22%))}.sky-craft--balloon .balloon-shell{fill:var(--balloon-c, #c93b32)}.sky-craft--balloon .balloon-panel--a,.sky-craft--balloon .balloon-panel--d,.sky-craft--balloon .balloon-panel--e{fill:var(--balloon-a, #e4574a)}.sky-craft--balloon .balloon-panel--b,.sky-craft--balloon .balloon-panel--c,.sky-craft--balloon .balloon-panel--f{fill:var(--balloon-b, #f7efe6)}.sky-craft--balloon .balloon-highlight{fill:color-mix(in srgb,var(--balloon-b, #f7efe6) 55%,#ffffff)}.sky-craft--balloon .balloon-cords{fill:none;stroke:var(--balloon-basket, #6a4530)}.sky-craft--balloon .balloon-basket,.sky-craft--balloon .balloon-basket-rim{fill:var(--balloon-basket, #6a4530)}.sky-craft--balloon .balloon-basket-rim{fill:color-mix(in srgb,var(--balloon-basket, #6a4530) 78%,#fff)}.sky-craft--birds{color:#2030427a}.sky-craft--birds svg{overflow:visible;stroke:none;filter:drop-shadow(0 1px 1px rgb(255 255 255 / 18%))}.sky-craft--birds-pair{width:64px;height:32px}.sky-craft--birds-small{width:86px;height:34px}.sky-craft--birds-medium{width:112px;height:40px}.sky-craft--birds-large{width:148px;height:48px}.sky-craft--birds-scatter{width:128px;height:52px}.sky-bird__motion{transform-origin:0 0;animation-name:sky-bird-bob;animation-duration:calc(var(--flap-dur, .42s) * 2.1);animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-delay:var(--flap-delay, 0s)}.sky-bird__wing,.sky-bird__body,.sky-bird__beak,.sky-bird__tail{fill:currentColor}.sky-bird__wing{transform-box:fill-box;transform-origin:center;animation-duration:var(--flap-dur, .42s);animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-delay:var(--flap-delay, 0s)}.sky-bird__wing--l{transform-origin:100% 50%;animation-name:sky-bird-wing-l}.sky-bird__wing--r{transform-origin:0% 50%;animation-name:sky-bird-wing-r}.sky-bird__body{opacity:.95}.sky-bird__beak{opacity:.8}.sky-bird__tail{opacity:.75}.sky-craft--cloud{--sky-cloud-top: #ffffff;--sky-cloud-mid: #f5f8fc;--sky-cloud-mid-deep: #d7e0eb;--sky-cloud-base: #aebccd;--sky-cloud-shade: #7f91a8;color:transparent;filter:none}.sky-craft--cloud svg,.sky-craft--cloud .sky-cloud{stroke:none;fill:none;opacity:var(--sky-opacity, .78);filter:drop-shadow(0 6px 14px rgb(40 70 110 / 14%));overflow:visible}.sky-craft--cloud-puff{width:200px;height:108px}.sky-craft--cloud-long{width:340px;height:98px}.sky-craft--cloud-cumulus{width:280px;height:148px}.sky-craft--cloud-wispy{width:300px;height:74px}.sky-craft--cloud-cluster{width:360px;height:136px}.shooting-star{display:none;position:absolute;left:var(--ss-x, 10vw);top:var(--ss-y, 12vh);width:var(--ss-length, 80px);height:2px;border-radius:999px;pointer-events:none;transform-origin:left center;will-change:transform,opacity;background:linear-gradient(90deg,transparent 0%,rgb(210 230 255 / calc(.35 * var(--ss-brightness, 1))) 35%,rgb(255 255 255 / calc(.95 * var(--ss-brightness, 1))) 78%,rgb(255 255 255 / var(--ss-brightness, 1)) 100%);box-shadow:0 0 4px rgb(200 220 255 / calc(.55 * var(--ss-brightness, 1))),0 0 10px rgb(180 210 255 / calc(.35 * var(--ss-brightness, 1)));animation-name:shooting-star-fall;animation-timing-function:cubic-bezier(.2,.7,.3,1);animation-fill-mode:forwards}:root[data-theme=night] .shooting-star{display:block}.sky-craft.is-ltr{animation-name:sky-craft-ltr}.sky-craft.is-rtl{animation-name:sky-craft-rtl}.sky-craft--balloon.is-ltr{animation-name:sky-balloon-ltr}.sky-craft--balloon.is-rtl{animation-name:sky-balloon-rtl}.sky-craft--parachutist{top:0;width:34px;height:52px;color:#323e4e8c;--chute-a: rgb(190 70 60 / 72%);--chute-b: rgb(245 240 230 / 78%);--chute-shade: rgb(40 50 65 / 28%);--chute-line: rgb(45 55 70 / 45%);--chute-body: rgb(35 48 62 / 62%);animation-name:sky-parachutist-fall;animation-timing-function:cubic-bezier(.33,.12,.55,.95);animation-fill-mode:forwards}.sky-craft--parachutist svg{overflow:visible;animation-name:sky-paratrooper-sway;animation-duration:var(--chute-sway, 2.8s);animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-direction:alternate;transform-origin:50% 18%;filter:drop-shadow(0 2px 2px rgb(20 30 45 / 18%))}.sky-craft--parachutist .paratrooper-canopy-shade{fill:var(--chute-shade)}.sky-craft--parachutist .paratrooper-panel--a,.sky-craft--parachutist .paratrooper-panel--d,.sky-craft--parachutist .paratrooper-panel--e{fill:var(--chute-a)}.sky-craft--parachutist .paratrooper-panel--b,.sky-craft--parachutist .paratrooper-panel--c,.sky-craft--parachutist .paratrooper-panel--f{fill:var(--chute-b)}.sky-craft--parachutist .paratrooper-rim,.sky-craft--parachutist .paratrooper-vents,.sky-craft--parachutist .paratrooper-lines path{fill:none;stroke:var(--chute-line)}.sky-craft--parachutist .paratrooper-pack,.sky-craft--parachutist .paratrooper-head{fill:var(--chute-body)}.sky-craft--parachutist .paratrooper-body{fill:none;stroke:var(--chute-body)}:root[data-theme=dawn] .sky-craft--parachutist{--chute-shade: rgb(90 50 40 / 22%);--chute-line: rgb(80 45 40 / 42%);--chute-body: rgb(70 40 40 / 58%)}:root[data-theme=sunset] .sky-craft--parachutist{--chute-shade: rgb(100 40 30 / 24%);--chute-line: rgb(90 40 35 / 44%);--chute-body: rgb(75 35 35 / 60%)}:root[data-theme=night] .sky-craft--parachutist{--chute-shade: rgb(10 18 30 / 45%);--chute-line: rgb(170 190 220 / 35%);--chute-body: rgb(180 195 220 / 48%)}:root[data-theme=rain] .sky-craft--parachutist{--chute-shade: rgb(30 45 60 / 30%);--chute-line: rgb(40 55 70 / 42%);--chute-body: rgb(35 50 65 / 55%)}.sky-craft--nimbus{width:min(44px,9vw);height:auto;aspect-ratio:720 / 485;color:transparent;filter:drop-shadow(0 3px 6px rgb(20 35 55 / 28%));z-index:3}.sky-craft--nimbus.is-ltr{animation-name:sky-nimbus-ltr}.sky-craft--nimbus.is-rtl{animation-name:sky-nimbus-rtl}.sky-craft--nimbus .nimbus-sprite{display:block;width:100%;height:100%;object-fit:contain;pointer-events:none;user-select:none;animation-name:sky-nimbus-bob;animation-duration:var(--nimbus-bob, 2s);animation-timing-function:ease-in-out;animation-iteration-count:infinite;animation-direction:alternate;transform-origin:45% 70%}:root[data-theme=dawn] .sky-craft--nimbus{filter:drop-shadow(0 3px 6px rgb(90 45 30 / 22%))}:root[data-theme=sunset] .sky-craft--nimbus{filter:drop-shadow(0 3px 7px rgb(100 40 25 / 26%))}:root[data-theme=night] .sky-craft--nimbus{filter:drop-shadow(0 0 8px rgb(255 210 90 / 28%)) drop-shadow(0 2px 4px rgb(0 0 0 / 45%));opacity:.92}:root[data-theme=rain] .sky-craft--nimbus{filter:drop-shadow(0 2px 5px rgb(30 45 60 / 30%));opacity:.9}.sky-craft--lightning{top:0;width:var(--bolt-width, 26px);height:100vh;color:#e6f5fff2;animation-name:sky-lightning-flash;animation-timing-function:linear;animation-fill-mode:forwards;filter:drop-shadow(0 0 4px rgb(190 230 255 / 90%)) drop-shadow(0 0 14px rgb(140 200 255 / 65%)) drop-shadow(0 0 28px rgb(110 170 255 / 35%));mix-blend-mode:screen;pointer-events:none}.sky-craft--lightning svg{display:block;width:100%;height:100%;overflow:visible;transform:rotate(var(--bolt-tilt, 0deg));transform-origin:50% 0%;filter:none}.sky-craft--lightning polyline{fill:none;stroke-linecap:round;stroke-linejoin:round}.sky-craft--lightning .lightning-glow{stroke:#a0d2ff8c;stroke-width:7.5}.sky-craft--lightning .lightning-mid{stroke:#d2ebffcc;stroke-width:3.4}.sky-craft--lightning .lightning-core{stroke:#fffffffa;stroke-width:1.35}.sky-craft--lightning .lightning-branch-glow{stroke:#aad7ff66;stroke-width:4.2}.sky-craft--lightning .lightning-branch{stroke:#ebf5ffe0;stroke-width:1.15}.sky-craft--lightning.is-echo{filter:drop-shadow(0 0 3px rgb(190 230 255 / 75%)) drop-shadow(0 0 12px rgb(140 200 255 / 45%))}.sky-craft--birds.is-ltr{animation-name:sky-birds-ltr}.sky-craft--birds.is-rtl{animation-name:sky-birds-rtl}.sky-craft--cloud.is-ltr{animation-name:sky-cloud-ltr}.sky-craft--cloud.is-rtl{animation-name:sky-cloud-rtl}.sky-craft--cloud.is-static{left:var(--sky-left, 12%);animation:none;opacity:1;transform:scale(var(--sky-scale, 1));will-change:auto}.sky-craft--cloud.is-static.is-ltr,.sky-craft--cloud.is-static.is-rtl{animation:none}:root[data-theme=dawn] .sky-craft{color:#462d3761}:root[data-theme=dawn] .sky-craft--cloud{--sky-cloud-top: #fffdf8;--sky-cloud-mid: #ffe9d6;--sky-cloud-mid-deep: #f0c8b0;--sky-cloud-base: #d9a890;--sky-cloud-shade: #c48a78}:root[data-theme=sunset] .sky-craft{color:#371e2866}:root[data-theme=sunset] .sky-craft--cloud{--sky-cloud-top: #fff8f0;--sky-cloud-mid: #ffdcc4;--sky-cloud-mid-deep: #e8b09a;--sky-cloud-base: #d09078;--sky-cloud-shade: #b87868}:root[data-theme=night] .sky-craft{color:#dcebff47}:root[data-theme=night] .sky-craft--cloud{--sky-cloud-top: #e8eef8;--sky-cloud-mid: #c5d0e0;--sky-cloud-mid-deep: #9aabbf;--sky-cloud-base: #7a8da4;--sky-cloud-shade: #5a6f88}:root[data-theme=night] .sky-craft svg{filter:drop-shadow(0 0 2px rgb(0 0 0 / 35%))}:root[data-theme=night] .sky-craft--cloud svg,:root[data-theme=night] .sky-craft--cloud .sky-cloud{filter:drop-shadow(0 4px 12px rgb(0 0 0 / 28%))}.sky-nav-light{stroke:none}.sky-nav-light--nose{fill:#fff8dc;filter:drop-shadow(0 0 2.5px rgb(255 240 180 / 85%)) drop-shadow(0 0 6px rgb(255 220 140 / 55%))}.sky-nav-light--port{fill:#ff4646;filter:drop-shadow(0 0 2.5px rgb(255 60 60 / 80%)) drop-shadow(0 0 5px rgb(255 40 40 / 50%))}.sky-nav-light--starboard{fill:#46ff78;filter:drop-shadow(0 0 2.5px rgb(60 255 110 / 80%)) drop-shadow(0 0 5px rgb(40 230 90 / 50%))}.sky-nav-light--tail{fill:#f5faff;filter:drop-shadow(0 0 2px rgb(230 240 255 / 75%));animation:sky-nav-tail-blink 1.1s ease-in-out infinite}.sky-nav-light--beacon{fill:#ff5a46;filter:drop-shadow(0 0 2.5px rgb(255 70 50 / 80%)) drop-shadow(0 0 6px rgb(255 50 30 / 45%));animation:sky-nav-beacon-blink .85s steps(1,end) infinite}:root[data-theme=night] .sky-nav-light--nose{filter:drop-shadow(0 0 3px rgb(255 240 180 / 95%)) drop-shadow(0 0 7px rgb(255 220 140 / 75%))}:root[data-theme=night] .sky-nav-light--port{filter:drop-shadow(0 0 3px rgb(255 60 60 / 90%)) drop-shadow(0 0 6px rgb(255 40 40 / 65%))}:root[data-theme=night] .sky-nav-light--starboard{filter:drop-shadow(0 0 3px rgb(60 255 110 / 90%)) drop-shadow(0 0 6px rgb(40 230 90 / 65%))}:root[data-theme=night] .sky-nav-light--tail{filter:drop-shadow(0 0 2.5px rgb(230 240 255 / 85%))}:root[data-theme=night] .sky-nav-light--beacon{filter:drop-shadow(0 0 3px rgb(255 70 50 / 90%)) drop-shadow(0 0 8px rgb(255 50 30 / 55%))}@keyframes sky-nav-beacon-blink{0%,49%{opacity:1}50%,to{opacity:.15}}@keyframes sky-nav-tail-blink{0%,70%{opacity:1}71%,to{opacity:.2}}:root[data-theme=rainbow] .sky-traffic{display:none}:root[data-theme=rain] .sky-craft{color:#d2e1f061}:root[data-theme=rain] .sky-craft--birds{color:#bed2e66b}:root[data-theme=rain] .sky-craft--cloud{--sky-cloud-top: #dce4ee;--sky-cloud-mid: #b4c0d0;--sky-cloud-mid-deep: #8a9bb0;--sky-cloud-base: #6d7f94;--sky-cloud-shade: #536578;filter:none}@keyframes sky-craft-ltr{0%{transform:translate3d(-14vw,0,0) rotate(-5deg) scaleX(1);opacity:0}6%{opacity:1}94%{opacity:1}to{transform:translate3d(114vw,5vh,0) rotate(-3deg) scaleX(1);opacity:0}}@keyframes sky-craft-rtl{0%{transform:translate3d(114vw,0,0) rotate(5deg) scaleX(-1);opacity:0}6%{opacity:1}94%{opacity:1}to{transform:translate3d(-14vw,4vh,0) rotate(3deg) scaleX(-1);opacity:0}}@keyframes sky-balloon-ltr{0%{transform:translate3d(-12vw,2vh,0);opacity:0}8%{opacity:1}50%{transform:translate3d(50vw,-1vh,0)}92%{opacity:1}to{transform:translate3d(112vw,3vh,0);opacity:0}}@keyframes sky-balloon-rtl{0%{transform:translate3d(112vw,2vh,0);opacity:0}8%{opacity:1}50%{transform:translate3d(50vw,-1vh,0)}92%{opacity:1}to{transform:translate3d(-12vw,3vh,0);opacity:0}}@keyframes sky-parachutist-fall{0%{transform:translate3d(0,-10vh,0) rotate(-6deg) scale(.92);opacity:0}5%{opacity:.95}18%{transform:translate3d(calc(var(--chute-drift, 6px) * .35),14vh,0) rotate(5deg) scale(.96)}36%{transform:translate3d(calc(var(--chute-drift, 6px) * -.25),34vh,0) rotate(-4deg) scale(1)}58%{transform:translate3d(calc(var(--chute-drift, 6px) * .55),58vh,0) rotate(3.5deg) scale(1.02)}78%{transform:translate3d(calc(var(--chute-drift, 6px) * -.15),82vh,0) rotate(-2.5deg) scale(1.03)}92%{opacity:.8}to{transform:translate3d(calc(var(--chute-drift, 6px) * .2),114vh,0) rotate(2deg) scale(1.04);opacity:0}}@keyframes sky-nimbus-ltr{0%{transform:translate3d(-22vw,1vh,0) scaleX(-1) rotate(2deg);opacity:0}5%{opacity:1}95%{opacity:1}to{transform:translate3d(118vw,4vh,0) scaleX(-1) rotate(0);opacity:0}}@keyframes sky-nimbus-rtl{0%{transform:translate3d(118vw,1vh,0) scaleX(1) rotate(-2deg);opacity:0}5%{opacity:1}95%{opacity:1}to{transform:translate3d(-22vw,4vh,0) scaleX(1) rotate(0);opacity:0}}@keyframes sky-nimbus-bob{0%{transform:translateY(0) rotate(-1.2deg)}to{transform:translateY(-6px) rotate(1.2deg)}}@keyframes sky-paratrooper-sway{0%{transform:rotate(-3.5deg) translate(-1.5px)}to{transform:rotate(3.5deg) translate(1.5px)}}@keyframes sky-lightning-flash{0%{opacity:0;clip-path:inset(0 0 100% 0)}7%{opacity:1;clip-path:inset(0 0 0 0)}14%{opacity:.12}24%{opacity:1}38%{opacity:.28}52%{opacity:.92}72%{opacity:.4}to{opacity:0;clip-path:inset(0 0 0 0)}}@keyframes sky-bird-wing-l{0%,to{transform:rotate(16deg)}50%{transform:rotate(-34deg)}}@keyframes sky-bird-wing-r{0%,to{transform:rotate(-16deg)}50%{transform:rotate(34deg)}}@keyframes sky-bird-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-1.4px)}}@keyframes sky-birds-ltr{0%{transform:translate3d(-16vw,2.2vh,0);opacity:0}7%{opacity:1}22%{transform:translate3d(16vw,-.4vh,0)}40%{transform:translate3d(38vw,1.6vh,0)}58%{transform:translate3d(58vw,-1.1vh,0)}76%{transform:translate3d(82vw,1.3vh,0)}92%{opacity:1}to{transform:translate3d(116vw,.4vh,0);opacity:0}}@keyframes sky-birds-rtl{0%{transform:translate3d(116vw,2.2vh,0) scaleX(-1);opacity:0}7%{opacity:1}22%{transform:translate3d(84vw,-.4vh,0) scaleX(-1)}40%{transform:translate3d(62vw,1.6vh,0) scaleX(-1)}58%{transform:translate3d(42vw,-1.1vh,0) scaleX(-1)}76%{transform:translate3d(18vw,1.3vh,0) scaleX(-1)}92%{opacity:1}to{transform:translate3d(-16vw,.4vh,0) scaleX(-1);opacity:0}}@keyframes sky-cloud-ltr{0%{transform:translate3d(-28vw,1vh,0) scale(var(--sky-scale, 1));opacity:0}10%{opacity:var(--sky-opacity, .42)}50%{transform:translate3d(40vw,-.8vh,0) scale(var(--sky-scale, 1))}90%{opacity:var(--sky-opacity, .42)}to{transform:translate3d(120vw,1.4vh,0) scale(var(--sky-scale, 1));opacity:0}}@keyframes sky-cloud-rtl{0%{transform:translate3d(120vw,1vh,0) scale(var(--sky-scale, 1));opacity:0}10%{opacity:var(--sky-opacity, .42)}50%{transform:translate3d(50vw,-.8vh,0) scale(var(--sky-scale, 1))}90%{opacity:var(--sky-opacity, .42)}to{transform:translate3d(-28vw,1.4vh,0) scale(var(--sky-scale, 1));opacity:0}}@keyframes shooting-star-fall{0%{opacity:0;transform:rotate(var(--ss-angle, 35deg)) translateZ(0) scaleX(.25)}8%{opacity:1;transform:rotate(var(--ss-angle, 35deg)) translate3d(calc(var(--ss-travel, 40vmin) * .08),0,0) scaleX(1)}72%{opacity:.85}to{opacity:0;transform:rotate(var(--ss-angle, 35deg)) translate3d(var(--ss-travel, 40vmin),0,0) scaleX(.15)}}:root[data-theme=night] body{background:radial-gradient(circle at 18% 14%,rgb(255 255 255 / 72%) 0 .7px,transparent 1.5px),radial-gradient(circle at 42% 28%,rgb(220 235 255 / 55%) 0 .6px,transparent 1.4px),radial-gradient(circle at 71% 11%,rgb(255 255 255 / 48%) 0 .55px,transparent 1.3px),radial-gradient(circle at 86% 36%,rgb(190 215 245 / 40%) 0 .5px,transparent 1.2px),radial-gradient(circle at 28% 52%,rgb(255 255 255 / 28%) 0 .45px,transparent 1.1px),radial-gradient(circle at 58% 64%,rgb(210 225 245 / 22%) 0 .4px,transparent 1px),radial-gradient(ellipse 28% 18% at 82% 10%,rgb(235 245 255 / 18%) 0%,transparent 70%),radial-gradient(ellipse 70% 32% at 50% 100%,rgb(42 72 108 / 55%) 0%,transparent 70%),linear-gradient(180deg,#050910,#08111c 22%,#0d1828 48%,#142436 72%,#1b2f44);background-size:240px 180px,280px 210px,320px 200px,260px 190px,300px 220px,340px 240px,auto,auto,auto;background-attachment:fixed}:root[data-theme=sunset] body{background:radial-gradient(ellipse 36% 24% at 72% 62%,rgb(255 220 150 / 70%) 0%,rgb(255 170 90 / 28%) 34%,transparent 72%),radial-gradient(ellipse 55% 28% at 20% 18%,rgb(90 110 150 / 35%) 0%,transparent 68%),radial-gradient(ellipse 60% 34% at 88% 28%,rgb(180 110 120 / 28%) 0%,transparent 70%),linear-gradient(180deg,#3a4762,#5c5f78 16%,#9a6d72,#c97a58,#e09a55 70%,#ecc484 86%,#f0d4a8);background-attachment:fixed}:root[data-theme=dawn] body{background:radial-gradient(ellipse 40% 26% at 28% 58%,rgb(255 230 190 / 45%) 0%,rgb(255 200 150 / 18%) 36%,transparent 72%),radial-gradient(ellipse 55% 30% at 78% 16%,rgb(150 170 195 / 28%) 0%,transparent 70%),radial-gradient(ellipse 50% 28% at 12% 22%,rgb(210 170 175 / 18%) 0%,transparent 68%),linear-gradient(180deg,#7a8aa0,#9aa0b0 18%,#c4a8a4,#dfb89a,#ebcfaa 78%,#f4e6cc);background-attachment:fixed}:root[data-theme=rain] body{background:radial-gradient(ellipse 80% 36% at 30% 0%,rgb(170 185 198 / 28%) 0%,transparent 70%),radial-gradient(ellipse 70% 30% at 78% 18%,rgb(120 140 158 / 30%) 0%,transparent 72%),linear-gradient(180deg,#5a6a78,#4a5966 22%,#3b4854,#2c3742,#1d262e);background-attachment:fixed}.rain-fall{display:none}:root[data-theme=rain] .rain-fall{position:fixed;inset:0;z-index:1;display:block;pointer-events:none;overflow:hidden}:root[data-theme=rain] .rain-fall:before,:root[data-theme=rain] .rain-fall:after{content:"";position:absolute;inset:-30% -5% 0;width:110%;height:160%;pointer-events:none}:root[data-theme=rain] .rain-fall:before{background-image:radial-gradient(ellipse .55px 5.5px at 8% 12%,rgb(235 245 255 / 55%) 0%,transparent 72%),radial-gradient(ellipse .45px 4px at 22% 48%,rgb(230 242 252 / 38%) 0%,transparent 72%),radial-gradient(ellipse .5px 6px at 41% 22%,rgb(235 245 255 / 46%) 0%,transparent 72%),radial-gradient(ellipse .4px 3.5px at 57% 71%,rgb(225 238 250 / 32%) 0%,transparent 72%),radial-gradient(ellipse .5px 5px at 73% 36%,rgb(235 245 255 / 42%) 0%,transparent 72%),radial-gradient(ellipse .45px 4.5px at 89% 58%,rgb(230 242 252 / 34%) 0%,transparent 72%),radial-gradient(ellipse .4px 3.8px at 33% 84%,rgb(225 238 250 / 28%) 0%,transparent 72%),radial-gradient(ellipse .5px 5.2px at 96% 18%,rgb(235 245 255 / 40%) 0%,transparent 72%);background-size:168px 132px;background-repeat:repeat;opacity:.58;animation:rain-fall-near .55s linear infinite}:root[data-theme=rain] .rain-fall:after{background-image:radial-gradient(ellipse .4px 3.2px at 14% 28%,rgb(210 228 245 / 28%) 0%,transparent 72%),radial-gradient(ellipse .35px 2.8px at 36% 62%,rgb(205 224 242 / 22%) 0%,transparent 72%),radial-gradient(ellipse .4px 3.6px at 62% 14%,rgb(210 228 245 / 26%) 0%,transparent 72%),radial-gradient(ellipse .35px 2.6px at 84% 46%,rgb(200 220 238 / 18%) 0%,transparent 72%),radial-gradient(ellipse .38px 3px at 48% 88%,rgb(205 224 242 / 20%) 0%,transparent 72%);background-size:220px 180px;background-repeat:repeat;opacity:.42;animation:rain-fall-far .9s linear infinite}@keyframes rain-fall-near{0%{transform:rotate(14deg) translate3d(0,-24px,0)}to{transform:rotate(14deg) translate3d(-10px,108px,0)}}@keyframes rain-fall-far{0%{transform:rotate(12deg) translate3d(0,-16px,0)}to{transform:rotate(12deg) translate3d(-7px,84px,0)}}:root[data-theme=rain] .weather-theme-button,:root[data-theme=rainbow] .weather-theme-button{pointer-events:auto}*{box-sizing:border-box}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}h1,h2,h3,p{margin-top:0}h1,h2,h3,.brand{color:var(--ink)}p,li{color:var(--muted);line-height:1.72}.sr-only{position:absolute;overflow:hidden;width:1px;height:1px;margin:-1px;clip:rect(0,0,0,0);white-space:nowrap}.site-header,.site-shell,.site-footer{width:min(1180px,calc(100% - 56px));margin:0 auto}.site-header{position:sticky;top:0;z-index:10;isolation:isolate;overflow:visible;display:grid;grid-template-columns:minmax(220px,1fr) auto;align-items:center;gap:28px;padding:10px 0}.site-header:before{position:absolute;inset:0 calc(50% - 50vw);z-index:-2;border-top:1px solid rgb(255 255 255 / 20%);border-bottom:1px solid rgb(0 0 0 / 42%);background:linear-gradient(180deg,rgb(255 255 255 / 12%) 0%,transparent 42%),linear-gradient(180deg,#184a82 0%,var(--accent-strong) 48%,#0b2d58 100%);box-shadow:var(--header-elev-shadow);backdrop-filter:blur(18px);content:""}.site-header:after{position:absolute;inset:0 calc(50% - 50vw);z-index:-1;background:radial-gradient(circle at 8px 10px,rgb(255 255 255 / 62%) 0 1.2px,transparent 2.4px),radial-gradient(circle at 56px 26px,rgb(255 210 122 / 46%) 0 1px,transparent 2.2px),radial-gradient(circle at 102px 15px,rgb(255 255 255 / 46%) 0 1px,transparent 2px),linear-gradient(115deg,transparent 0 43%,rgb(255 255 255 / 16%) 43% 43.6%,transparent 43.6% 100%),linear-gradient(25deg,transparent 0 55%,rgb(255 210 122 / 12%) 55% 55.5%,transparent 55.5% 100%);background-position:0 0,18px 6px,30px 2px,0 0,42px 0;background-size:132px 42px,148px 46px,170px 44px,210px 72px,240px 84px;content:"";opacity:.52;pointer-events:none;animation:constellation-drift 28s linear infinite}.site-header:has(.brand:hover):before{background:linear-gradient(180deg,rgb(255 255 255 / 55%) 0%,transparent 40%),linear-gradient(90deg,#d9efff,#f1f9ff 58%,#fff);border-top-color:#fffc;border-bottom-color:#587a9e59;box-shadow:0 1px #ffffffe5 inset,0 10px 28px #123f7529,0 22px 52px #123f7524}.site-header:has(.brand:hover):after{background:radial-gradient(circle at 8px 10px,rgb(82 61 140 / 34%) 0 1.2px,transparent 2.4px),radial-gradient(circle at 56px 26px,rgb(213 138 31 / 30%) 0 1px,transparent 2.2px),radial-gradient(circle at 102px 15px,rgb(126 91 194 / 26%) 0 1px,transparent 2px),linear-gradient(115deg,transparent 0 43%,rgb(82 61 140 / 10%) 43% 43.6%,transparent 43.6% 100%),linear-gradient(25deg,transparent 0 55%,rgb(126 91 194 / 10%) 55% 55.5%,transparent 55.5% 100%);opacity:.58}:root[data-theme=sunset] .site-header:before{border-top-color:#ffffff3d;border-bottom-color:#46141e73;background:linear-gradient(180deg,rgb(255 255 255 / 14%) 0%,transparent 40%),linear-gradient(90deg,#7b2639,#c8523b 48%,#e18a25);box-shadow:var(--header-elev-shadow)}:root[data-theme=dawn] .site-header:before{border-top-color:#ffffff47;border-bottom-color:#5a2d2859;background:linear-gradient(180deg,rgb(255 255 255 / 16%) 0%,transparent 40%),linear-gradient(90deg,#a8655c,#d4856a 48%,#e0a868);box-shadow:var(--header-elev-shadow)}:root[data-theme=sunset] .nav-links a.active,:root[data-theme=sunset] .language-switch button.active{color:#ffd27a}:root[data-theme=dawn] .nav-links a.active,:root[data-theme=dawn] .language-switch button.active{color:#ffe0a8}:root[data-theme=sunset] .site-header:has(.brand:hover):before{background:linear-gradient(90deg,#fff2bc,#ffd0a5 46%,#f7a0a4)}:root[data-theme=dawn] .site-header:has(.brand:hover):before{background:linear-gradient(90deg,#fff6d8,#ffe0c0 46%,#f7c4b8)}:root[data-theme=sunset] .contact-strip-card,:root[data-theme=sunset] .about-profile-links{border-color:var(--elev-border);box-shadow:var(--elev-shadow)}:root[data-theme=dawn] .contact-strip-card,:root[data-theme=dawn] .about-profile-links{border-color:var(--elev-border);box-shadow:var(--elev-shadow)}:root[data-theme=rain] .site-header:before{border-top-color:#ffffff1f;border-bottom-color:#0000008c;background:linear-gradient(180deg,rgb(255 255 255 / 8%) 0%,transparent 40%),linear-gradient(90deg,#07111d,#13283c 52%,#25394b);box-shadow:var(--header-elev-shadow)}:root[data-theme=rain] .site-header:after{background-image:radial-gradient(ellipse .5px 4.8px at 10% 18%,rgb(230 242 252 / 55%) 0%,transparent 72%),radial-gradient(ellipse .4px 3.6px at 28% 54%,rgb(220 235 248 / 38%) 0%,transparent 72%),radial-gradient(ellipse .45px 5.2px at 46% 28%,rgb(235 245 255 / 48%) 0%,transparent 72%),radial-gradient(ellipse .35px 3.2px at 64% 72%,rgb(210 228 245 / 32%) 0%,transparent 72%),radial-gradient(ellipse .45px 4.4px at 82% 40%,rgb(230 242 252 / 42%) 0%,transparent 72%),radial-gradient(ellipse .4px 3.8px at 94% 64%,rgb(215 230 245 / 30%) 0%,transparent 72%);background-size:96px 52px;background-repeat:repeat;background-position:0 0;opacity:.55;animation:rain-header-fall .48s linear infinite}:root[data-theme=rain] .site-header:has(.brand:hover):after{background-image:radial-gradient(ellipse .5px 4.8px at 10% 18%,rgb(90 120 160 / 40%) 0%,transparent 72%),radial-gradient(ellipse .4px 3.6px at 28% 54%,rgb(80 110 150 / 28%) 0%,transparent 72%),radial-gradient(ellipse .45px 5.2px at 46% 28%,rgb(100 130 170 / 34%) 0%,transparent 72%),radial-gradient(ellipse .35px 3.2px at 64% 72%,rgb(70 100 140 / 24%) 0%,transparent 72%),radial-gradient(ellipse .45px 4.4px at 82% 40%,rgb(90 120 160 / 30%) 0%,transparent 72%),radial-gradient(ellipse .4px 3.8px at 94% 64%,rgb(75 105 145 / 22%) 0%,transparent 72%);opacity:.48;animation:rain-header-fall .48s linear infinite}@keyframes rain-header-fall{0%{background-position:0 0}to{background-position:-14px 52px}}@keyframes constellation-drift{0%{background-position:0 0,18px 6px,30px 2px,0 0,42px 0}to{background-position:132px 0,166px 6px,200px 2px,210px 0,282px 0}}.site-header:has(.brand:hover) .brand,.site-header:has(.brand:hover) .playlist-button,.site-header:has(.brand:hover) .nav-links,.site-header:has(.brand:hover) .nav-links a,.site-header:has(.brand:hover) .language-switch button,.site-header:has(.brand:hover) .theme-switch button{color:#000}.site-header:has(.brand:hover) .brand small{color:#6b7280}.site-header:has(.brand:hover) .nav-controls{border-left-color:#0000002e}.site-header:has(.brand:hover) .language-switch button,.site-header:has(.brand:hover) .theme-switch button{border-color:#00000024}.site-header:has(.brand:hover) .playlist-button{border-color:#00000024;background:#123f7514;color:var(--accent-strong)}.site-header:has(.brand:hover) .language-switch button.active,.site-header:has(.brand:hover) .language-switch button:hover,.site-header:has(.brand:hover) .theme-switch button:hover{color:#8f1d1d}.site-shell{position:relative;z-index:4;padding-bottom:36px}.brand{position:relative;display:inline-flex;align-items:center;gap:10px;width:fit-content;font-family:var(--brand);font-size:1.16rem;font-weight:800;font-stretch:normal;letter-spacing:-.03em;line-height:1;color:#f8fbff}.brand-home{display:inline-flex;align-items:center;gap:10px;color:inherit;text-decoration:none}.brand small{color:#ffffffb8;font-family:var(--brand);font-size:.68rem;font-weight:600;letter-spacing:.04em;line-height:1;transform:translateY(-.02em);opacity:.9}.brand-avatar{display:grid;flex:0 0 28px;width:28px;height:28px;place-items:center;overflow:hidden;border:1px solid rgb(255 255 255 / 36%);border-radius:50%;background:#ffffff1f;box-shadow:0 4px 12px #020a122e}.brand-avatar img{width:100%;height:100%;object-fit:cover;object-position:center center}.brand-avatar:hover{border-color:#ffffffb8}.brand-mark{position:relative;display:inline-grid;align-items:center;justify-items:center;overflow:visible;line-height:0}.brand-logo{display:block;grid-area:1 / 1;width:clamp(5rem,8vw,6.1rem);height:auto;object-fit:contain;filter:drop-shadow(0 2px 6px rgb(8 24 44 / 20%));animation:brand-logo-drift 16s ease-in-out infinite}.brand-logo--alt,.brand.is-swapped .brand-logo--default{visibility:hidden;opacity:0}.brand.is-swapped .brand-logo--alt{visibility:visible;opacity:1}@keyframes brand-logo-drift{0%,to{transform:translateZ(0) scale(1)}50%{transform:translate3d(2px,-3px,0) scale(1.03)}}@media(prefers-reduced-motion:reduce){.brand-logo{animation:none}}.playlist-button{display:grid;width:32px;height:32px;place-items:center;border:1px solid rgb(255 255 255 / 32%);border-radius:999px;background:#ffffff1a;color:#fff;transition:border-color .16s ease,background .16s ease,color .16s ease,transform .16s ease;cursor:pointer}.playlist-button svg{display:block;width:15px;height:15px;fill:currentColor}.playlist-button:hover{border-color:#ffffff94;background:#fff;color:var(--accent-strong);transform:translateY(-1px)}.spotify-player{position:sticky;top:58px;z-index:9;width:min(360px,calc(100% - 56px));margin:14px auto 0;border:1px solid var(--elev-border);border-radius:var(--radius);background:#fff;box-shadow:var(--elev-shadow);overflow:hidden}.spotify-player[hidden]{display:none}.spotify-player iframe{display:block;border:0}:root[data-theme=night] .spotify-player{border-color:var(--elev-border);background:#112d48;box-shadow:var(--elev-shadow)}:root[data-theme=sunset] .spotify-player,:root[data-theme=dawn] .spotify-player{border-color:var(--elev-border);box-shadow:var(--elev-shadow)}.nav-links{display:flex;align-items:center;gap:6px;color:#fff;font-size:.94rem;font-weight:700}.nav-item{position:relative}.nav-links a{border:1px solid transparent;border-radius:var(--radius-small);background:transparent;padding:9px 12px}.nav-links a:hover{border-color:#ffffff47;background:#ffffff17;color:#ffd27a}.nav-links a.active{color:#ffd27a}.language-switch,.theme-switch{display:inline-flex;align-items:center;gap:4px}.nav-controls{display:inline-flex;align-items:center;gap:4px;flex-wrap:nowrap;margin-left:8px;border-left:1px solid rgb(255 255 255 / 24%);padding-left:10px}.language-switch,.theme-switch{margin-left:0;border-left:0;padding-left:0}.theme-switch{margin-left:2px}.language-switch button,.theme-switch button{border:1px solid rgb(255 255 255 / 18%);border-radius:var(--radius-small);background:transparent;color:#fff;cursor:pointer;padding:7px 8px;font-size:.78rem;font-weight:800}.theme-switch button{position:relative;display:grid;width:34px;height:34px;padding:0;place-items:center;background:transparent;overflow:hidden}.theme-icon{grid-area:1 / 1;width:18px;height:18px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.9;opacity:0;visibility:hidden;pointer-events:none}.theme-icon-moon{fill:currentColor;stroke-width:0}.theme-icon-sunset{opacity:1;visibility:visible}:root[data-theme=dawn] .theme-icon-sunset{opacity:0;visibility:hidden}:root[data-theme=dawn] .theme-icon-sun{opacity:1;visibility:visible}:root[data-theme=sunset] .theme-icon-sunset{opacity:0;visibility:hidden}:root[data-theme=sunset] .theme-icon-moon{opacity:1;visibility:visible}:root[data-theme=night] .theme-icon-sunset{opacity:0;visibility:hidden}:root[data-theme=night] .theme-icon-dawn{opacity:1;visibility:visible}:root[data-theme=rain] .theme-icon-sunset,:root[data-theme=rainbow] .theme-icon-sunset{opacity:0;visibility:hidden}:root[data-theme=rain] .theme-icon-sun,:root[data-theme=rainbow] .theme-icon-sun{opacity:1;visibility:visible}.language-switch button:hover,.language-switch button.active,.theme-switch button:hover{border-color:#ffffff61;background:#ffffff1a;color:#ffd27a}.theme-switch button,.theme-switch button:hover{background:transparent}.submenu{position:absolute;top:100%;left:50%;z-index:20;display:grid;gap:0;min-width:200px;padding-top:8px;border:0;background:transparent;box-shadow:none;opacity:0;overflow:visible;pointer-events:none;transform:translate(-50%,-4px);transition:opacity .16s ease,transform .16s ease}.submenu a{position:relative;z-index:1;border-style:solid;border-color:#ffffff42;border-width:0 1px;border-radius:0;background:#0b2d58;color:#f8fbff;padding:11px 14px;white-space:nowrap;box-shadow:none}.submenu a+a{border-top:1px solid rgb(255 255 255 / 14%)}.submenu a:first-child{border-top-width:1px;border-radius:10px 10px 0 0}.submenu a:last-child{border-bottom-width:1px;border-radius:0 0 10px 10px;box-shadow:0 16px 40px #06142a57}.submenu a:only-child{border-width:1px;border-radius:10px;box-shadow:0 16px 40px #06142a57}.submenu a:hover,.submenu a.active{background:#123a6c;color:#ffd27a}.has-submenu:hover .submenu,.has-submenu:focus-within .submenu{opacity:1;pointer-events:auto;transform:translate(-50%)}.site-header:has(.brand:hover) .submenu a{color:#f8fbff;background:#0b2d58}.site-header:has(.brand:hover) .submenu a:hover,.site-header:has(.brand:hover) .submenu a.active{background:#123a6c;color:#ffd27a}.hero{position:relative;isolation:isolate;display:grid;grid-template-columns:minmax(0,.96fr) minmax(clamp(300px,32vw,430px),.46fr);gap:72px;align-items:center;min-height:calc(100vh - 76px);padding:46px 0 112px}.home-page-hero{grid-template-columns:minmax(0,1.15fr) minmax(240px,.72fr);grid-template-areas:"copy visual" "focus focus";gap:28px 32px;align-items:start;min-height:0;padding:28px 0 36px}.home-page-hero .hero-copy{grid-area:copy;display:flex;flex-direction:column;gap:0;max-width:none}.home-page-hero .hero-visual{grid-area:visual;width:100%;max-width:340px;justify-self:end;border:1px solid var(--elev-border);border-radius:10px;box-shadow:var(--elev-shadow)}.home-page-hero .home-focus-list{grid-area:focus}.home-page-hero .hero-kicker{margin-bottom:14px}.home-page-hero .hero-role{margin-bottom:16px;font-size:clamp(1.28rem,2.1vw,1.55rem)}.home-page-hero .hero-actions{margin-bottom:18px}.home-focus-list{display:grid;grid-template-columns:1fr}.home-focus-list article{display:grid;grid-template-columns:minmax(168px,220px) minmax(0,1fr);gap:12px 28px;align-items:baseline;padding:18px 24px}.home-focus-list h2{margin:0;font-size:clamp(1.12rem,1.55vw,1.35rem);line-height:1.25}.home-focus-list p{margin:0;max-width:46ch;font-size:.95rem;line-height:1.55}.home-page .home-section{padding:56px 0}.home-page .contact-strip{padding-top:48px;padding-bottom:20px}.home-project-list{gap:28px}.home-page-hero .visual-header{gap:10px;padding:10px 12px;font-size:.66rem;letter-spacing:.05em}.home-page-hero .visual-metrics div{padding:12px 12px 11px}.home-page-hero .visual-metrics strong{margin-bottom:3px;font-size:clamp(1.35rem,1.8vw,1.55rem)}.home-page-hero .visual-metrics span{font-size:.68rem}.home-page-hero .visual-tabs{gap:0;padding:8px 10px 0}.home-page-hero .visual-tabs span,.home-page-hero .visual-tabs a{padding:5px 8px;font-size:.64rem}.home-page-hero .visual-dashboard{gap:8px;padding:8px}.home-page-hero .visual-panel{min-height:0;padding:6px}.home-page-hero .primary-slot{min-height:clamp(108px,11vw,132px)}.home-page-hero .project-preview-slot{min-height:clamp(68px,7.5vw,86px)}.hero:before,.page-intro:before,.project-hero:before,.story-hero:before{position:absolute;inset:0 calc(50% - 50vw);z-index:-1;background:transparent;content:"";pointer-events:none}.home-page-hero:before{background:transparent}.work-page-intro:before{background:transparent}.contact-page-intro:before{background:transparent}.project-page-hero:before{background:transparent}.hero-copy{max-width:980px}.hero-kicker{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:26px}.hero-kicker span,.eyebrow,.project-type,.contact-list span{color:var(--accent-strong);font-size:.74rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.hero-kicker span{border:1px solid var(--elev-border);border-radius:var(--radius-small);background:#fff;padding:8px 11px;box-shadow:var(--elev-shadow)}.hero-kicker span+span{padding-left:11px}.eyebrow,.project-type{margin:0 0 14px}.hero-identity{display:grid;grid-template-columns:max-content auto;align-items:center;gap:clamp(24px,2.4vw,38px);justify-content:start;margin-bottom:28px}.home-title{position:relative;display:grid;max-width:890px;margin-bottom:0}.home-title img{position:relative;z-index:2;display:block;width:min(300px,40vw);height:auto}.home-title .logo-night{display:none}:root[data-theme=night] .home-title .logo-day{display:none}:root[data-theme=night] .home-title .logo-night{display:block}:root[data-theme=rain] .home-title .logo-day{display:none}:root[data-theme=rain] .home-title .logo-night{display:block}:root[data-theme=rainbow] .home-title:before{position:absolute;top:clamp(-.95rem,-.85vw,-.5rem);left:clamp(148px,19.2vw,232px);z-index:1;width:clamp(86px,11.7vw,136px);height:clamp(44px,5.9vw,70px);border-radius:999px 999px 0 0;background:radial-gradient(ellipse at 50% 100%,transparent 0 39%,rgb(111 78 183 / 62%) 39.5% 43.5%,rgb(42 121 194 / 68%) 44% 48%,rgb(82 166 101 / 70%) 48.5% 52.5%,rgb(247 186 63 / 78%) 53% 57%,rgb(225 92 40 / 76%) 57.5% 61.5%,rgb(184 28 45 / 76%) 62% 66.5%,transparent 67.5% 100%);content:"";filter:blur(.02rem) drop-shadow(0 .22rem .25rem rgb(31 111 184 / 12%)) drop-shadow(0 .55rem .85rem rgb(255 186 92 / 16%));opacity:.86;pointer-events:none;transform:rotate(-4deg)}:root[data-theme=rain] .home-title:after{position:absolute;top:clamp(2.35rem,5.4vw,3.85rem);left:clamp(106px,14.5vw,172px);z-index:1;width:clamp(19px,2.7vw,30px);height:clamp(46px,6.8vw,74px);background:linear-gradient(180deg,#ffe06f,#ffb72d);clip-path:polygon(42% 0,100% 0,64% 42%,92% 42%,20% 100%,42% 55%,10% 55%);content:"";filter:drop-shadow(0 0 .36rem rgb(255 210 72 / 74%));pointer-events:none;transform:rotate(7deg)}.profile-photo{position:relative;align-self:end;display:grid;flex:0 0 clamp(72px,6.8vw,96px);width:clamp(72px,6.8vw,96px);margin-top:0;aspect-ratio:1;place-items:center;overflow:hidden;border:1px solid var(--elev-border);border-radius:50%;background:var(--surface);box-shadow:var(--elev-shadow);transform:translateY(6px)}.profile-photo img{width:100%;height:100%;object-fit:cover;object-position:center center}.profile-photo:after{position:absolute;inset:0;background:radial-gradient(circle at 28% 16%,rgb(255 255 255 / 22%),transparent 36%),linear-gradient(135deg,rgb(23 105 170 / 16%),transparent 42%,rgb(200 138 26 / 10%));content:"";pointer-events:none}.hero-role{max-width:680px;margin-bottom:18px;color:var(--ink);font-family:var(--serif);font-size:1.55rem;font-weight:700;font-stretch:normal;line-height:1.24}.page-title,.project-title,.section-title,.card-title{font-family:var(--brand);font-weight:800;font-stretch:normal;letter-spacing:-.03em}.page-title{max-width:980px;margin-bottom:30px;font-size:3.15rem;line-height:1}.project-title{margin-bottom:30px;font-size:3.15rem;line-height:1}.section-title{margin-bottom:0;font-size:2.45rem;line-height:1.06}.card-title{margin-bottom:18px;font-size:2rem;line-height:1.08}.intro{max-width:650px;margin-bottom:0;color:var(--ink-soft);font-size:clamp(1.08rem,1.55vw,1.28rem);line-height:1.72}.sky-text,.page-title,.project-title,.section-title,.hero-role,.intro,.page-intro>p,.project-hero>p,.eyebrow,.site-footer,.weather-theme-button{text-shadow:0 1px 1px rgb(255 255 255 / 42%)}:root[data-theme=sunset] .sky-text,:root[data-theme=sunset] .page-title,:root[data-theme=sunset] .project-title,:root[data-theme=sunset] .section-title,:root[data-theme=sunset] .intro,:root[data-theme=sunset] .page-intro>p,:root[data-theme=sunset] .project-hero>p,:root[data-theme=sunset] .eyebrow,:root[data-theme=sunset] .site-footer,:root[data-theme=sunset] .weather-theme-button,:root[data-theme=dawn] .sky-text,:root[data-theme=dawn] .page-title,:root[data-theme=dawn] .project-title,:root[data-theme=dawn] .section-title,:root[data-theme=dawn] .intro,:root[data-theme=dawn] .page-intro>p,:root[data-theme=dawn] .project-hero>p,:root[data-theme=dawn] .eyebrow,:root[data-theme=dawn] .site-footer,:root[data-theme=dawn] .weather-theme-button{text-shadow:0 1px 1px rgb(255 244 220 / 48%)}:root[data-theme=sunset] .hero-role{color:#fff;text-shadow:0 1px 2px rgb(0 0 0 / 35%)}:root[data-theme=dawn] .hero-role{color:var(--ink);text-shadow:0 1px 1px rgb(255 248 230 / 55%)}:root[data-theme=night] .sky-text,:root[data-theme=night] .page-title,:root[data-theme=night] .project-title,:root[data-theme=night] .section-title,:root[data-theme=night] .hero-role,:root[data-theme=night] .intro,:root[data-theme=night] .page-intro>p,:root[data-theme=night] .project-hero>p,:root[data-theme=night] .eyebrow,:root[data-theme=night] .site-footer,:root[data-theme=night] .weather-theme-button,:root[data-theme=rain] .sky-text,:root[data-theme=rain] .page-title,:root[data-theme=rain] .project-title,:root[data-theme=rain] .section-title,:root[data-theme=rain] .hero-role,:root[data-theme=rain] .intro,:root[data-theme=rain] .page-intro>p,:root[data-theme=rain] .project-hero>p,:root[data-theme=rain] .eyebrow,:root[data-theme=rain] .site-footer,:root[data-theme=rain] .weather-theme-button{text-shadow:0 1px 2px rgb(0 0 0 / 55%)}.hero-actions,.contact-links,.project-actions{display:flex;flex-wrap:wrap;gap:12px}.hero-actions{margin-top:34px}.project-actions{margin-top:28px}.button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;border:1px solid var(--ink);border-radius:var(--radius);padding:0 20px;font-size:.94rem;font-weight:800}.button.primary{border-color:var(--accent-strong);background:var(--accent-strong);color:#fff}.button.secondary{border-color:var(--elev-border);background:#fff;color:var(--accent-strong);box-shadow:var(--elev-shadow)}.button:hover,.text-link:hover,.contact-links a:hover{color:#ffd27a}.hero-visual{position:relative;overflow:hidden;width:100%;border:1px solid var(--elev-border);border-radius:var(--radius);background:#fff;box-shadow:var(--elev-shadow-strong)}.weather-theme-row{position:relative;z-index:5;width:min(1180px,calc(100% - 56px));margin:0 auto;padding-top:10px}.weather-theme-button{display:inline-flex;width:fit-content;align-items:center;justify-content:center;border:0;background:transparent;box-shadow:none;color:var(--accent-strong);cursor:pointer;opacity:.58;padding:0;transition:color .16s ease,opacity .16s ease,transform .16s ease}.weather-theme-button .weather-icon{width:22px;height:22px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.9}.weather-theme-button .weather-icon-sun{display:none}:root[data-theme=rain] .weather-theme-button .weather-icon-rain{display:none}:root[data-theme=rain] .weather-theme-button .weather-icon-sun{display:block}.weather-theme-button:hover{color:var(--accent-warm);opacity:1;transform:translateY(-1px)}.hero-visual:before{position:absolute;inset:0;background:none;content:"";pointer-events:none}.visual-header,.visual-metrics,.visual-dashboard,.visual-tabs{position:relative}.visual-header{display:flex;justify-content:space-between;gap:18px;border-bottom:1px solid var(--line);background:linear-gradient(90deg,var(--accent-soft),#ffffff 62%,var(--accent-warm-soft));padding:16px 18px;color:var(--accent-strong);font-size:.78rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.visual-metrics{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid var(--line);background:#fff}.visual-metrics div{padding:26px 22px 24px}.visual-metrics div:first-child{border-right:1px solid var(--line)}.visual-metrics strong,.visual-metrics span{display:block}.visual-metrics strong{margin-bottom:6px;color:var(--accent-strong);font-family:var(--serif);font-size:2.45rem;line-height:1}.visual-metrics span{color:var(--muted);font-weight:700}.visual-tabs{display:flex;flex-wrap:wrap;gap:0;background:#fff;padding:18px 18px 0}.visual-tabs span,.visual-tabs a{border:1px solid var(--line);border-right:0;border-radius:var(--radius-small) var(--radius-small) 0 0;background:#fff;padding:8px 12px;color:var(--accent-strong);font-size:.78rem;font-weight:800}.visual-tabs span:last-child,.visual-tabs a:last-child{border-right:1px solid var(--line)}.visual-dashboard{display:grid;grid-template-columns:1fr 1fr;gap:clamp(8px,1.1vw,14px);background:#fff;padding:clamp(12px,1.6vw,22px)}.visual-panel{min-height:clamp(112px,13vw,154px);border:1px solid var(--line);border-radius:var(--radius-small);background:#fff;padding:clamp(10px,1.2vw,14px)}.primary-slot{grid-column:1 / -1}.project-preview-slot{position:relative;overflow:hidden;display:grid;min-height:clamp(116px,13vw,158px);place-items:center;border-radius:var(--radius-small);background:#fff}.primary-slot{min-height:clamp(176px,18vw,240px)}.project-preview-slot span{border:1px solid var(--line);border-radius:var(--radius-small);background:#fff;padding:8px 10px;color:var(--muted);font-size:.68rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.project-preview-slot img{width:100%;height:100%;object-fit:cover;object-position:left top}.project-preview-slot a{display:block;width:100%;height:100%}.page-intro{position:relative;isolation:isolate;max-width:1060px;padding:104px 0 84px}.page-intro p{max-width:730px;font-size:1.16rem}.status-note{display:grid;grid-template-columns:180px minmax(0,1fr);gap:clamp(24px,4vw,56px);max-width:960px;margin:0 0 70px;border:1px solid var(--elev-border);border-left:4px solid var(--accent);border-radius:var(--radius);background:#fff;box-shadow:var(--elev-shadow);padding:18px 22px 20px}.status-note .eyebrow{margin:2px 0 0}.status-note p:last-child{max-width:680px;margin-bottom:0;color:var(--ink-soft);font-size:.98rem;line-height:1.7}.status-note.home-status{grid-template-columns:max-content minmax(0,1fr);gap:6px 10px;max-width:460px;margin:52px 0 0;border-left:2px solid var(--accent);border-radius:6px;box-shadow:0 8px 22px #123f7514;padding:6px 10px 7px}.status-note.home-status .eyebrow{margin:0;font-size:.58rem;letter-spacing:.05em}.status-note.home-status p:last-child{max-width:none;font-size:.74rem;line-height:1.35}.about-hero{display:grid;grid-template-columns:max-content max-content max-content;align-items:center;gap:clamp(24px,3vw,44px)}.about-page-intro:before{background:transparent}.about-profile-links{display:grid;grid-template-columns:repeat(3,44px);gap:10px;border:1px solid var(--elev-border);border-radius:var(--radius);background:#fff;box-shadow:var(--elev-shadow);padding:16px}.about-profile-link{position:relative;display:grid;width:44px;height:44px;place-items:center;border:0;background:transparent;color:var(--accent-strong);font-size:.72rem;font-weight:800;letter-spacing:.04em;line-height:1.2;text-align:center;text-transform:uppercase;transition:border-color .16s ease,opacity .16s ease,transform .16s ease}.about-profile-link img{display:block;max-width:24px;max-height:24px;object-fit:contain}.about-profile-link-large img{max-width:36px;max-height:36px}.about-profile-link[aria-label=Linktree]{order:3}.about-profile-link[aria-label=LinkedIn] img{max-width:30px;max-height:30px}.about-profile-link[aria-label=GitHub]{order:4}.about-profile-link[aria-label="Flourish Studio"]{order:5}.about-profile-link[aria-label="Curriculum Vitae"]{order:6}.about-profile-link-cv{grid-column:1 / -1;width:100%;height:36px;padding:0 12px}.about-profile-links a:hover{opacity:.78;transform:translateY(-2px)}.about-profile-links>span{color:var(--muted);opacity:.62}.about-photo{position:relative;display:grid;width:clamp(132px,14vw,188px);aspect-ratio:1;place-items:center;overflow:hidden;border:1px solid var(--elev-border);border-radius:50%;background:#fff;box-shadow:var(--elev-shadow)}.about-photo img{width:100%;height:100%;object-fit:cover;object-position:center center}.about-photo:after{display:none}.project-hero{position:relative;isolation:isolate;max-width:960px;padding:104px 0 58px}.project-hero p{max-width:760px;font-size:1.08rem}.focus-list{display:grid;border-top:2px solid var(--ink);border-right:1px solid var(--elev-border);border-bottom:1px solid var(--elev-border);border-left:1px solid var(--elev-border);border-radius:var(--radius);background:#fff;box-shadow:var(--elev-shadow);overflow:hidden}.focus-list article{display:grid;grid-template-columns:300px minmax(0,1fr);gap:48px;padding:18px 28px;border-bottom:1px solid var(--line)}.focus-list article:last-child{border-bottom:0}.focus-list h2{font-family:var(--brand);font-weight:800;font-size:clamp(1.45rem,2.2vw,2.05rem);letter-spacing:-.03em;line-height:1.1}.focus-list h2 a{color:inherit}.focus-list h2 a:hover{color:#ffd27a;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:5px}.focus-list p,.project-content p,.prose p{color:var(--muted);line-height:1.75}.section{position:relative;isolation:isolate;padding:112px 0;border-bottom:1px solid var(--line)}.section:before{position:absolute;inset:0 calc(50% - 50vw);z-index:-1;background:transparent;content:"";pointer-events:none}.section:nth-of-type(2n):before{background:transparent}.section:nth-of-type(odd):before{background:transparent}.site-footer{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:18px;border-top:1px solid var(--line);padding:18px 0 16px;color:var(--ink-soft);font-size:.86rem}.footer-copy{display:inline-flex;align-items:center;flex-wrap:wrap;gap:.28em .35em;line-height:1.35}.footer-brand{display:inline-block;width:4.2rem;height:auto;vertical-align:middle;object-fit:contain;filter:drop-shadow(0 1px 3px rgb(8 24 44 / 16%))}.site-footer a{color:var(--accent-strong);font-weight:800}.site-footer a:hover{text-decoration:underline;text-underline-offset:4px}.city-skyline{--skyline-ink: #4a5d6e;--skyline-haze: rgb(180 200 220 / 28%);--skyline-street: rgb(90 110 130 / 18%);--skyline-glow: transparent;--skyline-window-off: rgb(24 36 48 / 42%);--skyline-window-on: rgb(24 36 48 / 42%);--skyline-window-cool: rgb(24 36 48 / 42%);--skyline-lamp: transparent;--skyline-edge: .08;--skyline-tree: #3d5c48;--skyline-trunk: #3a3228;--skyline-hill-far: #8fa3b8;--skyline-hill-mid: #6d8a78;--skyline-hill-near: #557060;--skyline-bldg-far-top: #9aafc2;--skyline-bldg-far: #8499ad;--skyline-bldg-mid-top: #6a7f93;--skyline-bldg-mid: #586d80;--skyline-bldg-near-top: #455868;--skyline-bldg-near: #364858;position:relative;z-index:1;width:100%;height:clamp(180px,28vw,300px);margin-top:4px;overflow:hidden;pointer-events:none;color:var(--skyline-ink);isolation:isolate}.city-skyline__haze{position:absolute;inset:auto 0 38%;height:62%;background:linear-gradient(180deg,transparent 0%,var(--skyline-haze) 100%);opacity:.9}.city-skyline__glow{position:absolute;inset:auto 0 0;height:55%;background:var(--skyline-glow);opacity:0}.city-skyline__street{position:absolute;inset:auto 0 0;height:30%;background:linear-gradient(180deg,transparent 0%,var(--skyline-street) 55%,rgb(20 28 36 / 35%) 100%)}.city-skyline__reflect{position:absolute;inset:auto 0 0;height:16%;opacity:0;background:linear-gradient(180deg,rgb(180 210 240 / 10%) 0%,transparent 100%);mix-blend-mode:soft-light}.city-skyline__art{position:absolute;inset:0;display:block;width:100%;height:100%}.skyline-hills{pointer-events:none}.skyline-hills__far{fill:var(--skyline-hill-far);opacity:.72}.skyline-hills__mid{fill:var(--skyline-hill-mid);opacity:.88}.skyline-hills__near{fill:var(--skyline-hill-near);opacity:.96}.skyline-layer--far,.skyline-layer--mid,.skyline-layer--near{opacity:1}.skyline-edges{opacity:var(--skyline-edge);mix-blend-mode:screen}.skyline-windows{opacity:1}.skyline-streetlights,.skyline-beacon{opacity:0}.skyline-window{fill:var(--skyline-window-off)}.skyline-window.is-on{fill:var(--skyline-window-on)}.skyline-lamp{fill:transparent}.skyline-antenna{fill:currentColor;opacity:.95}.skyline-beacon{fill:#ff463c}.skyline-tree__trunk{fill:var(--skyline-trunk)}.skyline-tree__canopy{fill:var(--skyline-tree)}.skyline-tree--tall .skyline-tree__canopy:last-of-type{opacity:.92}.skyline-tree--small{opacity:.94}:root[data-theme=dawn] .city-skyline{--skyline-ink: #5a4654;--skyline-haze: rgb(230 190 180 / 32%);--skyline-street: rgb(120 80 90 / 16%);--skyline-window-off: rgb(42 28 34 / 40%);--skyline-window-on: rgb(42 28 34 / 40%);--skyline-window-cool: rgb(42 28 34 / 40%);--skyline-edge: .12;--skyline-tree: #4a5c42;--skyline-trunk: #3d322c;--skyline-hill-far: #9a8a9a;--skyline-hill-mid: #746860;--skyline-hill-near: #5c5048;--skyline-bldg-far-top: #b8a4b0;--skyline-bldg-far: #a08e9c;--skyline-bldg-mid-top: #8a7482;--skyline-bldg-mid: #746068;--skyline-bldg-near-top: #5e4a56;--skyline-bldg-near: #4a3844}:root[data-theme=sunset] .city-skyline{--skyline-ink: #2e1a24;--skyline-haze: rgb(220 140 100 / 30%);--skyline-street: rgb(90 40 50 / 22%);--skyline-glow: radial-gradient(ellipse 70% 50% at 50% 100%, rgb(255 140 70 / 18%) 0%, transparent 70%), radial-gradient(ellipse 40% 40% at 20% 90%, rgb(255 170 90 / 14%) 0%, transparent 70%), radial-gradient(ellipse 40% 40% at 80% 92%, rgb(255 120 80 / 12%) 0%, transparent 70%);--skyline-window-off: rgb(30 18 24 / 45%);--skyline-window-on: rgb(255 190 110);--skyline-window-cool: rgb(255 220 160);--skyline-lamp: rgb(255 185 110);--skyline-edge: .18;--skyline-tree: #2a3828;--skyline-trunk: #241c18;--skyline-hill-far: #6a4554;--skyline-hill-mid: #4a342c;--skyline-hill-near: #342820;--skyline-bldg-far-top: #8a5e68;--skyline-bldg-far: #744c56;--skyline-bldg-mid-top: #5a3440;--skyline-bldg-mid: #482832;--skyline-bldg-near-top: #361820;--skyline-bldg-near: #281018}:root[data-theme=night] .city-skyline{--skyline-ink: #05080f;--skyline-haze: rgb(40 70 120 / 24%);--skyline-street: rgb(255 190 110 / 10%);--skyline-glow: radial-gradient(ellipse 80% 55% at 50% 100%, rgb(255 170 90 / 16%) 0%, transparent 72%), radial-gradient(ellipse 35% 40% at 18% 88%, rgb(120 170 255 / 10%) 0%, transparent 70%), radial-gradient(ellipse 35% 40% at 82% 90%, rgb(255 150 80 / 12%) 0%, transparent 70%);--skyline-window-off: rgb(30 42 60 / 40%);--skyline-window-on: rgb(255 220 145);--skyline-window-cool: rgb(190 220 255);--skyline-lamp: rgb(255 215 140);--skyline-edge: .06;--skyline-tree: #0c1410;--skyline-trunk: #0a0c0e;--skyline-hill-far: #161e2c;--skyline-hill-mid: #0e141c;--skyline-hill-near: #0a1016;--skyline-bldg-far-top: #2a3648;--skyline-bldg-far: #1e2838;--skyline-bldg-mid-top: #141c28;--skyline-bldg-mid: #0e141e;--skyline-bldg-near-top: #080c14;--skyline-bldg-near: #05080f}:root[data-theme=rain] .city-skyline{--skyline-ink: #141c26;--skyline-haze: rgb(120 145 170 / 28%);--skyline-street: rgb(60 80 100 / 28%);--skyline-glow: radial-gradient(ellipse 75% 50% at 50% 100%, rgb(140 180 220 / 12%) 0%, transparent 72%), radial-gradient(ellipse 30% 35% at 25% 90%, rgb(255 200 130 / 8%) 0%, transparent 70%), radial-gradient(ellipse 30% 35% at 75% 92%, rgb(255 190 120 / 8%) 0%, transparent 70%);--skyline-window-off: rgb(20 30 42 / 50%);--skyline-window-on: rgb(255 210 150);--skyline-window-cool: rgb(170 205 235);--skyline-lamp: rgb(255 205 145);--skyline-edge: .05;--skyline-tree: #1a2820;--skyline-trunk: #14181a;--skyline-hill-far: #344858;--skyline-hill-mid: #243038;--skyline-hill-near: #1a242c;--skyline-bldg-far-top: #4a5e70;--skyline-bldg-far: #3a4c5c;--skyline-bldg-mid-top: #2a3848;--skyline-bldg-mid: #1e2a36;--skyline-bldg-near-top: #161e28;--skyline-bldg-near: #10161e}:root[data-theme=rainbow] .city-skyline{--skyline-ink: #465868;--skyline-haze: rgb(170 200 230 / 24%);--skyline-street: rgb(80 100 120 / 16%);--skyline-window-off: rgb(28 40 52 / 38%);--skyline-window-on: rgb(28 40 52 / 38%);--skyline-window-cool: rgb(28 40 52 / 38%);--skyline-edge: .1;--skyline-tree: #3a5644;--skyline-trunk: #383028;--skyline-hill-far: #7e94a8;--skyline-hill-mid: #5e7868;--skyline-hill-near: #4a6454;--skyline-bldg-far-top: #8ea4b8;--skyline-bldg-far: #7a90a4;--skyline-bldg-mid-top: #627888;--skyline-bldg-mid: #506474;--skyline-bldg-near-top: #3e5262;--skyline-bldg-near: #304050}:root[data-theme=sunset] .city-skyline__glow,:root[data-theme=night] .city-skyline__glow,:root[data-theme=rain] .city-skyline__glow{opacity:1}:root[data-theme=sunset] .city-skyline__street,:root[data-theme=night] .city-skyline__street,:root[data-theme=rain] .city-skyline__street{background:radial-gradient(ellipse 8% 42% at 8% 70%,color-mix(in srgb,var(--skyline-lamp) 35%,transparent) 0%,transparent 70%),radial-gradient(ellipse 7% 38% at 22% 72%,color-mix(in srgb,var(--skyline-lamp) 28%,transparent) 0%,transparent 70%),radial-gradient(ellipse 8% 44% at 38% 68%,color-mix(in srgb,var(--skyline-lamp) 32%,transparent) 0%,transparent 70%),radial-gradient(ellipse 7% 40% at 54% 74%,color-mix(in srgb,var(--skyline-lamp) 25%,transparent) 0%,transparent 70%),radial-gradient(ellipse 8% 42% at 70% 70%,color-mix(in srgb,var(--skyline-lamp) 30%,transparent) 0%,transparent 70%),radial-gradient(ellipse 7% 38% at 86% 72%,color-mix(in srgb,var(--skyline-lamp) 28%,transparent) 0%,transparent 70%),linear-gradient(180deg,transparent 0%,color-mix(in srgb,var(--skyline-lamp) 12%,transparent) 40%,rgb(10 14 24 / 65%) 100%)}:root[data-theme=rain] .city-skyline__reflect{opacity:.55;background:linear-gradient(180deg,rgb(160 190 220 / 14%) 0%,transparent 85%),repeating-linear-gradient(90deg,transparent 0 18px,rgb(200 220 240 / 6%) 18px 20px)}:root[data-theme=sunset] .skyline-streetlights,:root[data-theme=night] .skyline-streetlights,:root[data-theme=rain] .skyline-streetlights,:root[data-theme=sunset] .skyline-beacon,:root[data-theme=night] .skyline-beacon,:root[data-theme=rain] .skyline-beacon{opacity:1}:root[data-theme=sunset] .skyline-window.is-on,:root[data-theme=night] .skyline-window.is-on,:root[data-theme=rain] .skyline-window.is-on{fill:var(--skyline-window-on);filter:drop-shadow(0 0 1.4px color-mix(in srgb,var(--skyline-window-on) 80%,transparent))}:root[data-theme=sunset] .skyline-window.is-on:nth-child(7n),:root[data-theme=night] .skyline-window.is-on:nth-child(7n),:root[data-theme=rain] .skyline-window.is-on:nth-child(7n){fill:color-mix(in srgb,var(--skyline-window-on) 70%,white)}:root[data-theme=sunset] .skyline-window.is-on:nth-child(11n),:root[data-theme=night] .skyline-window.is-on:nth-child(11n),:root[data-theme=rain] .skyline-window.is-on:nth-child(11n){fill:var(--skyline-window-cool);filter:drop-shadow(0 0 1.4px color-mix(in srgb,var(--skyline-window-cool) 75%,transparent))}:root[data-theme=sunset] .skyline-window.is-flicker,:root[data-theme=night] .skyline-window.is-flicker,:root[data-theme=rain] .skyline-window.is-flicker{animation:skyline-window-flicker 4.8s ease-in-out infinite}:root[data-theme=sunset] .skyline-lamp,:root[data-theme=night] .skyline-lamp,:root[data-theme=rain] .skyline-lamp{fill:var(--skyline-lamp);filter:drop-shadow(0 0 4px color-mix(in srgb,var(--skyline-lamp) 90%,transparent)) drop-shadow(0 0 12px color-mix(in srgb,var(--skyline-lamp) 45%,transparent))}:root[data-theme=sunset] .skyline-beacon,:root[data-theme=night] .skyline-beacon,:root[data-theme=rain] .skyline-beacon{animation:skyline-beacon-blink 1.4s steps(1,end) infinite;filter:drop-shadow(0 0 3px rgb(255 60 50 / 90%))}:root[data-theme=sunset] .skyline-beacon:nth-of-type(2),:root[data-theme=night] .skyline-beacon:nth-of-type(2),:root[data-theme=rain] .skyline-beacon:nth-of-type(2){animation-delay:.45s}:root[data-theme=sunset] .skyline-beacon:nth-of-type(3),:root[data-theme=night] .skyline-beacon:nth-of-type(3),:root[data-theme=rain] .skyline-beacon:nth-of-type(3){animation-delay:.9s}:root[data-theme=rain] .skyline-streetlights{opacity:.7}@keyframes skyline-window-flicker{0%,86%,to{opacity:1}88%,92%{opacity:.25}}@keyframes skyline-beacon-blink{0%,49%{opacity:1}50%,to{opacity:.2}}@media(prefers-reduced-motion:reduce){:root[data-theme=sunset] .skyline-window.is-flicker,:root[data-theme=night] .skyline-window.is-flicker,:root[data-theme=rain] .skyline-window.is-flicker,:root[data-theme=sunset] .skyline-beacon,:root[data-theme=night] .skyline-beacon,:root[data-theme=rain] .skyline-beacon{animation:none}}.privacy-content{display:grid;gap:34px;max-width:860px;padding-bottom:48px}.privacy-content article{border-top:1px solid var(--line);padding-top:22px}.privacy-content h2{margin-bottom:12px;font-family:var(--brand);font-weight:800;font-size:clamp(1.45rem,2vw,1.95rem);letter-spacing:-.03em;line-height:1.08}.privacy-content p{margin-bottom:14px}.privacy-content a{color:var(--accent-strong);font-weight:800;text-decoration:underline;text-underline-offset:4px}.privacy-content code{border:1px solid var(--line);border-radius:6px;background:var(--surface);padding:2px 6px;color:var(--ink-soft);font-size:.92em}.privacy-updated{color:var(--ink-soft);font-weight:700}.section-heading,.split{display:grid;grid-template-columns:220px minmax(0,1fr);gap:64px}.section-heading{position:relative;align-items:start;margin-bottom:54px;border-top:2px solid var(--ink);padding-top:18px}.section-heading:before,.section-heading:after,.story-section:before,.story-embed-section:before{position:absolute;top:-2px;width:1px;height:12px;background:var(--ink);content:""}.section-heading:before,.story-section:before,.story-embed-section:before{left:0}.section-heading:after{left:min(220px,32%)}.project-list{display:grid;gap:68px}.work-list{border-top:1px solid var(--line);padding-top:54px}.project-row{display:grid;grid-template-columns:minmax(390px,1fr) minmax(0,.92fr);gap:62px;align-items:center;border:1px solid var(--elev-border);border-radius:var(--radius);background:#fff;box-shadow:var(--elev-shadow-strong);padding:clamp(24px,3vw,34px)}.home-project-row{grid-template-columns:minmax(380px,.98fr) minmax(0,1fr);gap:54px;border-bottom:1px solid var(--line)}.project-media,.project-screenshot,.project-embed{position:relative;overflow:hidden;border:1px solid var(--elev-border);border-radius:var(--radius);background:#fff;color:var(--accent-strong);font-weight:800;box-shadow:var(--elev-shadow)}.project-media,.project-screenshot{display:flex;align-items:end}.project-media img{position:absolute;inset:0;z-index:1;width:100%;height:100%;border:0;object-fit:cover;object-position:left top;box-shadow:none}.project-media:has(img):after{display:none}.project-embed{min-height:760px;background:#fff}.project-embed iframe{position:relative;z-index:1;display:block;width:100%;min-height:760px;border:0;background:#fff}.project-embed-dash{height:clamp(760px,86vh,980px);min-height:0}.project-embed-dash iframe{height:142.857%;min-height:0;transform:scale(.7);transform-origin:top left;width:142.857%}.app-version-panel,.app-version-heading{margin-bottom:28px}.app-version-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.app-version-card{display:grid;gap:10px;min-height:188px;border:1px solid var(--elev-border);border-radius:var(--radius);background:#fff;box-shadow:var(--elev-shadow);color:var(--ink-soft);cursor:pointer;padding:22px;text-align:left}.app-version-card span{color:var(--accent-strong);font-size:.74rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.app-version-card strong{color:var(--ink);font-family:var(--brand);font-weight:800;font-size:1.55rem;letter-spacing:-.03em;line-height:1.08}.app-version-card p{margin-bottom:0}.app-version-card:hover,.app-version-card.active{border-color:var(--accent);box-shadow:var(--elev-shadow-strong)}.app-version-card.active{background:#fff}.app-version-embed[hidden]{display:none}.project-link-list{display:flex;flex-wrap:wrap;gap:16px 22px}.project-media:after,.project-screenshot:after{position:absolute;right:24px;bottom:24px;width:min(48%,260px);height:44%;border-left:1px solid var(--line-strong);border-bottom:1px solid var(--line-strong);background:linear-gradient(90deg,var(--accent) 16%,transparent 16% 22%,var(--accent-warm) 22% 38%,transparent 38% 46%,#75b8e8 46% 66%,transparent 66% 72%,var(--accent-strong) 72% 88%,transparent 88%) bottom / 100% 68% no-repeat;content:"";opacity:.9}.project-media{min-height:430px;padding:30px}.home-project-row .project-media{min-height:380px}.project-screenshot{min-height:580px;padding:36px}.project-content{max-width:600px}.project-content .project-actions{margin-top:0}.text-link{display:inline-flex;align-items:center;gap:8px;color:var(--accent-strong);font-weight:800}.text-link:after{content:"->"}.tag-list,.tool-list{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none}.tag-list{gap:10px}.stack-prose{margin-top:34px}.tag-list li,.tool-list li{border:1px solid var(--elev-border);border-radius:var(--radius-small);background:#fff;color:#465565;box-shadow:var(--elev-shadow)}.tag-list li{padding:10px 13px;font-size:.9rem;font-weight:800}.tool-list{margin:28px 0}.tool-list li{padding:7px 11px;font-size:.84rem;font-weight:700}.prose{max-width:700px}.full-width{grid-column:1 / -1}.contact-strip{display:block;padding-top:72px;padding-bottom:28px;border-bottom:0}.contact-strip:before{background:transparent}.contact-strip-card{display:flex;align-items:end;justify-content:space-between;gap:48px;border:1px solid var(--elev-border);border-radius:var(--radius);background:#fff;box-shadow:var(--elev-shadow-strong);padding:clamp(24px,3vw,34px)}.contact-links a{border-bottom:1px solid currentColor;color:var(--ink);font-weight:800}.contact-list{display:grid;border:1px solid var(--elev-border);border-top:2px solid var(--ink);border-radius:var(--radius);background:#fff;box-shadow:var(--elev-shadow);overflow:hidden}.contact-list a{display:grid;grid-template-columns:240px minmax(0,1fr);gap:72px;align-items:baseline;padding:24px;border-bottom:1px solid var(--line)}.contact-list strong{color:var(--ink);font-family:var(--brand);font-weight:800;font-size:clamp(1.15rem,2vw,1.75rem);letter-spacing:-.03em;line-height:1.12}.project-details{display:grid;grid-template-columns:240px minmax(0,720px);gap:0 72px;padding-top:78px}.project-details article{display:contents}.project-details h2{color:var(--ink);font-size:1rem;line-height:1.2}.project-details h2,.project-details p,.project-details ul{padding:30px 0;border-top:1px solid var(--line)}.project-details ul:not(.tool-list){margin:0;padding-left:20px}.project-details .tool-list{margin:0}.story-page{padding:86px 0 112px}.story-hero{position:relative;isolation:isolate;max-width:980px;padding:34px 0 72px}.story-hero .project-title{max-width:920px;margin-bottom:24px}.story-deck{max-width:760px;color:var(--ink-soft);font-family:var(--serif);font-size:clamp(1.18rem,1.7vw,1.55rem);font-weight:600;line-height:1.28}.story-page .section-title{font-size:2.15rem;line-height:1.08}.story-section,.story-embed-section{position:relative;display:grid;grid-template-columns:280px minmax(0,1fr);gap:clamp(36px,6vw,86px);border-top:2px solid var(--ink);background:#fff;box-shadow:0 0 0 100vmax #fff;clip-path:inset(0 -100vmax)}.story-section:after,.story-embed-section:after{position:absolute;top:-2px;left:280px;width:1px;height:12px;background:var(--ink);content:""}.story-section{padding:38px 0 70px}.story-question{border-top-color:var(--accent-strong)}.story-copy{max-width:760px}.story-copy p{font-size:1.08rem}.story-copy p+p{margin-top:18px}.story-embed-note{margin-top:22px;max-width:760px}.story-embed-note p{font-size:1.02rem}.story-embed-section{align-items:start;padding:54px 0}.story-embed-copy{position:sticky;top:98px}.story-embed-copy .section-title{margin-bottom:26px}.story-embed-copy p:not(.eyebrow){margin-bottom:0}.tableau-embed{position:relative;overflow:hidden;width:100%;max-width:100%;aspect-ratio:860 / 650;height:auto;border:0;border-radius:var(--radius);background:transparent;box-shadow:none}.tableau-embed tableau-viz{position:absolute;inset:0;display:block;width:100%!important;height:100%!important;min-height:0}.tableau-embed-fluid{aspect-ratio:840 / 587}.tableau-embed-mobile{margin-inline:auto}.tableau-embed-mobile-regions{width:min(100%,340px);min-height:1087px;aspect-ratio:335 / 1087}.tableau-embed-mobile-long-view{width:min(100%,360px);min-height:1012px;aspect-ratio:360 / 1012}.tableau-embed-mobile-europe{width:min(100%,365px);min-height:797px;aspect-ratio:365 / 797}.tableau-embed-tall{aspect-ratio:780 / 972}.tableau-embed-portrait{width:min(100%,516px);aspect-ratio:516 / 891}.flourish-embed-shell{position:relative;overflow:hidden;width:100%;max-width:100%;aspect-ratio:16 / 9;min-height:0;border:0;border-radius:var(--radius);background:transparent;box-shadow:none}.flourish-embed-shell .flourish-embed{position:absolute;inset:0;width:100%!important;height:100%!important;min-height:0}.tableau-embed iframe,.flourish-embed-shell iframe{position:absolute;inset:0;width:100%!important;height:100%!important;border:0}.tableau-placeholder{display:grid;min-height:clamp(420px,52vw,680px);place-items:center;border:0;border-radius:var(--radius);background:transparent;box-shadow:none}.tableau-placeholder span{border:0;border-radius:var(--radius-small);background:transparent;padding:10px 13px;color:var(--muted);font-size:.74rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.story-list{margin:0;padding-left:20px}.story-list li+li{margin-top:10px}.story-source-link{color:var(--accent-strong);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}.story-source-link:hover{color:#ffd27a}:root[data-theme=night] .site-header:before{border-top-color:#ffffff1a;border-bottom-color:#000000b8;background:linear-gradient(180deg,rgb(255 255 255 / 6%) 0%,transparent 42%),linear-gradient(180deg,#161a22,#0b0e14 48%,#050608);box-shadow:var(--header-elev-shadow)}:root[data-theme=night] .site-header:after{background:radial-gradient(circle at 8px 10px,rgb(255 255 255 / 58%) 0 1.2px,transparent 2.4px),radial-gradient(circle at 56px 26px,rgb(255 210 122 / 40%) 0 1px,transparent 2.2px),radial-gradient(circle at 102px 15px,rgb(255 255 255 / 42%) 0 1px,transparent 2px),linear-gradient(115deg,transparent 0 43%,rgb(255 255 255 / 12%) 43% 43.6%,transparent 43.6% 100%),linear-gradient(25deg,transparent 0 55%,rgb(255 210 122 / 10%) 55% 55.5%,transparent 55.5% 100%);background-position:0 0,18px 6px,30px 2px,0 0,42px 0;background-size:132px 42px,148px 46px,170px 44px,210px 72px,240px 84px;opacity:.48}:root[data-theme=night] .brand,:root[data-theme=night] .nav-links,:root[data-theme=night] .nav-links a,:root[data-theme=night] .language-switch button,:root[data-theme=night] .theme-switch button,:root[data-theme=night] .playlist-button{color:#f4f8ff}:root[data-theme=night] .brand small{color:#ffffffb8}:root[data-theme=night] .nav-links a.active,:root[data-theme=night] .language-switch button.active{color:#ffd27a}:root[data-theme=night] .nav-controls{border-left-color:#ffffff3d}:root[data-theme=night] .language-switch button,:root[data-theme=night] .theme-switch button,:root[data-theme=night] .nav-links a{border-color:#ffffff2e}:root[data-theme=night] .nav-links a:hover,:root[data-theme=night] .language-switch button:hover,:root[data-theme=night] .theme-switch button:hover{background:#ffffff1a;color:#ffd27a}:root[data-theme=night] .theme-switch button,:root[data-theme=night] .theme-switch button:hover{background:transparent}:root[data-theme=night] .playlist-button{border-color:#ffffff52;background:#ffffff1a}:root[data-theme=night] .brand-avatar{border-color:#ffffff5c;background:#ffffff1f}:root[data-theme=night] .site-header:has(.brand:hover):before{border-top-color:#ffffff24;border-bottom-color:#000000a6;background:linear-gradient(180deg,rgb(255 255 255 / 8%) 0%,transparent 40%),linear-gradient(180deg,#1c2430,#121821 48%,#0a1018);box-shadow:var(--header-elev-shadow)}:root[data-theme=night] .site-header:has(.brand:hover):after{background:radial-gradient(circle at 8px 10px,rgb(255 255 255 / 62%) 0 1.2px,transparent 2.4px),radial-gradient(circle at 56px 26px,rgb(255 210 122 / 46%) 0 1px,transparent 2.2px),radial-gradient(circle at 102px 15px,rgb(255 255 255 / 46%) 0 1px,transparent 2px),linear-gradient(115deg,transparent 0 43%,rgb(255 255 255 / 16%) 43% 43.6%,transparent 43.6% 100%),linear-gradient(25deg,transparent 0 55%,rgb(255 210 122 / 12%) 55% 55.5%,transparent 55.5% 100%);opacity:.55}:root[data-theme=night] .site-header:has(.brand:hover) .brand,:root[data-theme=night] .site-header:has(.brand:hover) .nav-links,:root[data-theme=night] .site-header:has(.brand:hover) .nav-links a,:root[data-theme=night] .site-header:has(.brand:hover) .language-switch button,:root[data-theme=night] .site-header:has(.brand:hover) .theme-switch button,:root[data-theme=night] .site-header:has(.brand:hover) .playlist-button{color:#f4f8ff}:root[data-theme=night] .site-header:has(.brand:hover) .brand small{color:#ffffffb8}:root[data-theme=night] .site-header:has(.brand:hover) .nav-links a.active,:root[data-theme=night] .site-header:has(.brand:hover) .language-switch button.active{color:#ffd27a}:root[data-theme=night] .site-header:has(.brand:hover) .nav-controls{border-left-color:#ffffff3d}:root[data-theme=night] .site-header:has(.brand:hover) .language-switch button,:root[data-theme=night] .site-header:has(.brand:hover) .theme-switch button,:root[data-theme=night] .site-header:has(.brand:hover) .nav-links a{border-color:#ffffff2e}:root[data-theme=night] .submenu{background:transparent;box-shadow:none}:root[data-theme=night] .submenu a{border-color:#aacdf038;background:#0d1826;color:#f4f8ff;box-shadow:none}:root[data-theme=night] .submenu a+a{border-top-color:#aacdf01f}:root[data-theme=night] .submenu a:last-child,:root[data-theme=night] .submenu a:only-child{box-shadow:0 16px 40px #0000006b}:root[data-theme=night] .submenu a:hover,:root[data-theme=night] .submenu a.active{background:#152436;color:#ffd27a}:root[data-theme=night] .site-header:has(.brand:hover) .submenu{background:transparent}:root[data-theme=night] .site-header:has(.brand:hover) .submenu a{border-color:#aacdf038;background:#111c2b}:root[data-theme=night] .site-header:has(.brand:hover) .submenu a:hover,:root[data-theme=night] .site-header:has(.brand:hover) .submenu a.active{background:#1a2838;color:#ffd27a}:root[data-theme=night] .hero:before,:root[data-theme=night] .page-intro:before,:root[data-theme=night] .project-hero:before,:root[data-theme=night] .story-hero:before{background:transparent}:root[data-theme=night] .intro,:root[data-theme=night] .story-deck,:root[data-theme=night] .hero-role{color:var(--ink-soft)}:root[data-theme=night] .hero-kicker span,:root[data-theme=night] .button.secondary,:root[data-theme=night] .status-note,:root[data-theme=night] .app-version-card,:root[data-theme=night] .focus-list,:root[data-theme=night] .contact-list,:root[data-theme=night] .visual-header,:root[data-theme=night] .visual-metrics,:root[data-theme=night] .visual-tabs,:root[data-theme=night] .visual-tabs span,:root[data-theme=night] .visual-tabs a,:root[data-theme=night] .visual-dashboard,:root[data-theme=night] .visual-panel,:root[data-theme=night] .project-preview-slot,:root[data-theme=night] .tag-list li,:root[data-theme=night] .tool-list li{border-color:var(--elev-border);background:linear-gradient(180deg,#112d48,#0a1d32);color:var(--ink-soft);box-shadow:var(--elev-shadow)}:root[data-theme=night] .visual-header{border-color:#e2eefa47;background:linear-gradient(90deg,#163b5e,#112d48 62%,#24384a)}:root[data-theme=night] .hero-visual,:root[data-theme=night] .project-media,:root[data-theme=night] .project-screenshot,:root[data-theme=night] .project-embed{border-color:var(--elev-border);background:linear-gradient(180deg,#133554,#091d31);color:var(--ink-soft);box-shadow:var(--elev-shadow-strong)}:root[data-theme=night] .project-row{border:1px solid var(--elev-border);border-radius:var(--radius);background:linear-gradient(180deg,#112d48,#0a1d32);box-shadow:var(--elev-shadow-strong);padding:clamp(24px,3vw,34px)}:root[data-theme=night] .home-project-row{border-bottom:1px solid rgb(226 238 250 / 36%)}:root[data-theme=night] .project-content{color:var(--ink-soft)}:root[data-theme=night] .app-version-card span{color:var(--accent)}:root[data-theme=night] .app-version-card strong{color:var(--ink)}:root[data-theme=night] .app-version-card:hover,:root[data-theme=night] .app-version-card.active{border-color:#8ec7ffb8;box-shadow:var(--elev-shadow-strong)}:root[data-theme=night] .app-version-card.active{background:linear-gradient(180deg,#112d48,#0a1d32)}:root[data-theme=night] .status-note p:last-child{color:var(--ink-soft)}:root[data-theme=night] .status-note{border-color:var(--elev-border);border-left-color:var(--accent);background:linear-gradient(180deg,#112d48,#0a1d32);box-shadow:var(--elev-shadow)}:root[data-theme=night] .contact-strip-card{border-color:var(--elev-border);border-top-color:var(--line-strong);background:linear-gradient(180deg,#112d48,#0a1d32);box-shadow:var(--elev-shadow-strong)}:root[data-theme=night] .contact-strip-card .section-title{color:var(--ink-soft)}:root[data-theme=night] .hero-visual:before{background:none}:root[data-theme=night] .visual-metrics strong,:root[data-theme=night] .contact-list strong{color:var(--ink)}:root[data-theme=night] .project-embed iframe,:root[data-theme=night] .about-photo{background:#fff}:root[data-theme=night] .profile-photo{border-color:#ffffff8f;background:#fff}:root[data-theme=night] .about-profile-links{border-color:var(--elev-border);background:#fff;box-shadow:var(--elev-shadow)}:root[data-theme=night] .about-profile-link[aria-label=GitHub],:root[data-theme=night] .about-profile-link[aria-label="Flourish Studio"]{background:#fff;border-radius:var(--radius-small)}:root[data-theme=night] .section:nth-of-type(2n):before,:root[data-theme=night] .section:nth-of-type(odd):before{background:transparent}:root[data-theme=night] .story-section,:root[data-theme=night] .story-embed-section{background:#06111f;box-shadow:0 0 0 100vmax #06111f}:root[data-theme=night] .story-question{border-top-color:var(--accent)}:root[data-theme=night] .button.primary{border-color:#dcecff;background:#dcecff;color:#071827}:root[data-theme=night] .button.secondary,:root[data-theme=night] .contact-links a,:root[data-theme=night] .text-link,:root[data-theme=night] .story-source-link{color:var(--accent)}:root[data-theme=night] .button:hover,:root[data-theme=night] .text-link:hover,:root[data-theme=night] .contact-links a:hover,:root[data-theme=night] .focus-list h2 a:hover,:root[data-theme=night] .story-source-link:hover{color:#ffd27a}:root[data-theme=rain] .hero-kicker span,:root[data-theme=rain] .button.secondary,:root[data-theme=rain] .status-note,:root[data-theme=rain] .app-version-card,:root[data-theme=rain] .focus-list,:root[data-theme=rain] .contact-list,:root[data-theme=rain] .visual-header,:root[data-theme=rain] .visual-metrics,:root[data-theme=rain] .visual-tabs,:root[data-theme=rain] .visual-tabs span,:root[data-theme=rain] .visual-tabs a,:root[data-theme=rain] .visual-dashboard,:root[data-theme=rain] .visual-panel,:root[data-theme=rain] .project-preview-slot,:root[data-theme=rain] .tag-list li,:root[data-theme=rain] .tool-list li,:root[data-theme=rain] .contact-strip-card{border-color:var(--elev-border);background:linear-gradient(180deg,#172b3e,#0d1a29);color:var(--ink-soft);box-shadow:var(--elev-shadow)}:root[data-theme=rain] .hero-visual,:root[data-theme=rain] .project-row,:root[data-theme=rain] .project-media,:root[data-theme=rain] .project-screenshot,:root[data-theme=rain] .project-embed{border-color:var(--elev-border);background:linear-gradient(180deg,#172b3e,#0d1a29);color:var(--ink-soft);box-shadow:var(--elev-shadow-strong)}:root[data-theme=rain] .visual-header{background:linear-gradient(90deg,#22394d,#172b3e 58%,#2d4050)}:root[data-theme=rain] .visual-dashboard,:root[data-theme=rain] .visual-panel,:root[data-theme=rain] .project-preview-slot{background:#0d1a29}:root[data-theme=rain] .weather-theme-button{border-color:transparent;background:transparent;color:var(--accent);box-shadow:none}:root[data-theme=rain] .project-embed iframe,:root[data-theme=rain] .about-photo,:root[data-theme=rain] .about-profile-links,:root[data-theme=rain] .profile-photo{background:#fff}:root[data-theme=rain] .visual-metrics strong,:root[data-theme=rain] .contact-list strong,:root[data-theme=rain] .app-version-card strong{color:var(--ink)}:root[data-theme=rain] .button.primary{border-color:#d9edff;background:#d9edff;color:#0d1826}:root[data-theme=rain] .button.secondary,:root[data-theme=rain] .contact-links a,:root[data-theme=rain] .text-link,:root[data-theme=rain] .story-source-link{color:var(--accent)}.reveal-on-scroll{opacity:0;transform:translate3d(0,26px,0) scale(.992);transition:opacity .62s ease,transform .72s cubic-bezier(.22,1,.36,1);will-change:opacity,transform}.reveal-on-scroll.is-visible{opacity:1;transform:translateZ(0) scale(1)}.reveal-on-scroll[data-reveal-delay="1"]{transition-delay:70ms}.reveal-on-scroll[data-reveal-delay="2"]{transition-delay:.13s}@media(prefers-reduced-motion:reduce){.site-header:after{animation:none}:root[data-theme=rain] .rain-fall:before,:root[data-theme=rain] .rain-fall:after,:root[data-theme=rain] .site-header:after{animation:none}.sky-traffic{display:none}.reveal-on-scroll{opacity:1;transform:none;transition:none}}@media(max-width:700px){.sky-craft--parachutist{width:22px;height:34px}.sky-craft--nimbus{width:min(34px,12vw)}.sky-craft--lightning{width:var(--bolt-width, 16px)}:root[data-theme=rain] .rain-fall{display:none}}@media(max-width:980px){.site-header,.site-shell{width:min(100% - 28px,1180px)}.site-header{grid-template-columns:minmax(180px,1fr) auto;align-items:center;gap:18px;padding:22px 0}.site-shell{padding-bottom:28px}.nav-links{width:auto;justify-content:flex-end;gap:4px}.hero{grid-template-columns:1fr;gap:42px;min-height:auto;padding:42px 0 78px}.home-page-hero{grid-template-columns:1fr;grid-template-areas:"copy" "visual" "focus";gap:24px;padding:28px 0 32px}.home-page-hero .hero-visual{max-width:300px;justify-self:start}.status-note.home-status{grid-template-columns:1fr;gap:2px 0;max-width:none;padding:6px 9px}.home-focus-list{grid-template-columns:1fr}.home-focus-list article{grid-template-columns:1fr;gap:8px;padding:16px 18px}.home-page .home-section{padding:44px 0}.hero-role{font-size:1.35rem}.home-title{line-height:.94}.home-title img{width:min(280px,52vw)}.page-title,.project-title{font-size:2.65rem}.section-title{font-size:2.1rem}.card-title{font-size:1.75rem}.hero-visual{max-width:680px}.visual-metrics strong{font-size:2.25rem}.page-intro{padding:72px 0 54px}.about-hero{grid-template-columns:max-content max-content max-content;gap:20px}.about-profile-links{grid-template-columns:repeat(3,36px);padding-left:14px}.about-profile-link{width:36px;height:36px}.about-profile-link-cv{width:100%}.about-photo{width:clamp(118px,18vw,150px)}.project-hero{padding:72px 0 42px}.focus-list article,.section-heading,.split,.project-row,.contact-list a,.project-details{grid-template-columns:1fr;gap:24px}.section{padding:72px 0}.project-row{gap:30px}.project-media,.home-project-row .project-media{min-height:300px}.project-screenshot{min-height:340px}.project-embed,.project-embed iframe{min-height:680px}.contact-strip-card{align-items:flex-start;flex-direction:column}.project-details{gap:0;padding-top:44px}.project-details article{display:block;padding:30px 0;border-top:1px solid var(--line)}.project-details h2,.project-details p,.project-details ul{padding:0;border-top:0}.story-page{padding:56px 0 78px}.story-hero{padding:22px 0 54px}.story-page .section-title{font-size:1.85rem}.story-section,.story-embed-section{grid-template-columns:1fr;gap:22px}.story-embed-copy{position:static}.tableau-placeholder{min-height:420px}}@media(max-width:720px){.site-header{grid-template-columns:1fr;justify-items:center}.brand{justify-content:center}.brand-logo{width:5.1rem}.nav-links{width:100%;justify-content:center;flex-wrap:nowrap;gap:2px}.nav-links a{padding:7px 8px}.nav-controls{flex-wrap:nowrap;margin-left:4px;padding-left:6px}.submenu{left:0;transform:translateY(-4px)}.has-submenu:hover .submenu,.has-submenu:focus-within .submenu{transform:translate(0)}}@media(max-width:560px){.site-header{position:relative;grid-template-columns:1fr;align-items:start}.nav-links{width:100%;flex-wrap:nowrap;justify-content:center;gap:1px;font-size:.82rem}.nav-links a{padding:6px}.nav-controls{margin-left:2px;padding-left:6px;border-left:1px solid rgb(255 255 255 / 24%)}.language-switch button{padding:5px 6px;font-size:.72rem}.theme-switch button,.playlist-button{width:30px;height:30px}.about-hero{grid-template-columns:1fr}.about-profile-links{grid-template-columns:repeat(3,36px);width:min(100%,280px);border-left:0;border-top:1px solid var(--line);padding:16px 0 0}.about-photo{width:clamp(132px,42vw,180px)}.status-note{grid-template-columns:1fr;gap:10px;margin:0 0 54px;padding:16px 18px 18px}.status-note.home-status{margin:52px 0 0;padding:6px 9px}.app-version-grid{grid-template-columns:1fr}.app-version-card{min-height:auto;padding:18px}.hero-identity{grid-template-columns:1fr;gap:24px}.home-title{line-height:.98}.home-title img{width:min(240px,74vw)}.page-title,.project-title{font-size:2.25rem}.section-title,.story-page .section-title{font-size:1.75rem}.hero-role{font-size:1.22rem}.profile-photo{align-self:start;width:clamp(72px,24vw,96px);margin-top:0;transform:none}.visual-dashboard{grid-template-columns:1fr}.primary-slot{grid-column:auto}.hero-actions,.hero-actions .button{width:100%}.visual-metrics{grid-template-columns:1fr}.visual-metrics strong{font-size:2.05rem}.visual-metrics div:first-child{border-right:0;border-bottom:1px solid var(--line)}}
