*,:before,:after{box-sizing:border-box}*{margin:0}:root{--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:3rem;--space-8:4rem;--space-9:6rem;--text-sm:clamp(.8rem, .75rem + .2vw, .9rem);--text-base:clamp(.95rem, .9rem + .3vw, 1.05rem);--text-lg:clamp(1.1rem, 1rem + .6vw, 1.35rem);--text-xl:clamp(1.4rem, 1.1rem + 1.4vw, 2rem);--text-2xl:clamp(1.9rem, 1.4rem + 2.6vw, 3rem);--text-3xl:clamp(2.6rem, 1.8rem + 4vw, 4.5rem);--container:1120px;--container-pad:clamp(1rem, 4vw, 2.5rem);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;overflow-anchor:none;scroll-padding-top:5rem}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{min-height:100dvh;font-family:var(--font-body);font-size:calc(var(--text-base) * var(--font-scale,1));color:var(--color-text);background:var(--color-bg);transition:background .6s var(--ease,ease), color .6s var(--ease,ease);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;line-height:1.6;overflow-x:hidden}h1,h2,h3,h4{font-family:var(--font-display);font-weight:var(--font-weight-display,700);letter-spacing:var(--heading-tracking,normal);text-transform:var(--heading-transform,none);color:var(--color-heading,var(--color-text));line-height:1.1}a{color:var(--color-accent);transition:color .2s var(--ease,ease), opacity .2s var(--ease,ease);text-decoration:none}a:hover{color:var(--color-accent-2)}img{max-width:100%;display:block}button{font:inherit;cursor:pointer;color:inherit;background:0 0;border:none}ul{padding:0;list-style:none}:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px;border-radius:4px}.shell{min-height:100dvh;padding-bottom:68px;position:relative}@media (width>=768px){.shell{padding-bottom:0;padding-left:var(--rail-w,216px);transition:padding-left .3s var(--ease)}}.container{width:100%;max-width:var(--container);padding-inline:var(--container-pad);margin-inline:auto}.section{padding-block:var(--space-8)}@media (width>=768px){.section{padding-block:var(--space-9)}}.section-title{font-size:calc(var(--text-2xl) * var(--display-scale,1));margin-bottom:var(--space-6);overflow-wrap:break-word}.card{background:var(--card-bg);border:var(--card-border);border-radius:var(--card-radius);box-shadow:var(--card-shadow);padding:var(--card-pad);transition:background .6s var(--ease), border-color .6s var(--ease), transform .25s var(--ease);position:relative}.card__label{margin-bottom:var(--space-3);font-family:var(--font-display);font-size:var(--text-sm);font-weight:var(--font-weight-display);text-transform:uppercase;letter-spacing:.18em;color:var(--color-accent);display:inline-block}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}body:before{content:"";z-index:-2;pointer-events:none;background-image:var(--atmos,none);background-size:var(--atmos-size,auto);opacity:var(--atmos-opacity,1);transition:opacity .6s ease-out;position:fixed;inset:0}body:after{content:"";z-index:-1;pointer-events:none;background:var(--vignette,none);transition:background .6s ease-out;position:fixed;inset:0}[data-theme=synthwave]{--color-bg:#0a0616;--color-bg-2:#1a0b34;--bg-scrim:linear-gradient(180deg, #05030f8c, #05030fc7);--bg-fallback:radial-gradient(120% 90% at 50% -10%, #2a1155 0%, #12082b 45%, #05030f 100%);--bg-hero:var(--bg-scrim), url(/images/home-bg.avif) center center / cover no-repeat, var(--bg-fallback);--bg-projects:var(--bg-scrim), url(/images/projects-bg.avif) center center / cover no-repeat, var(--bg-fallback);--bg-contact:var(--bg-scrim), url(/images/projects-bg.avif) center center / cover no-repeat, var(--bg-fallback);--color-surface:#140a2cb8;--color-surface-2:#1e103cd9;--color-text:#e9e6ff;--color-heading:#fff;--color-muted:#a99fd6;--color-accent:#06eeff;--color-accent-2:#ff5cf4;--color-accent-contrast:#05030f;--color-border:#06eeff59;--font-display:"Comfortaa", system-ui, sans-serif;--font-body:"Comfortaa", system-ui, sans-serif;--font-weight-display:700;--heading-transform:none;--heading-tracking:normal;--font-scale:1;--display-scale:1;--card-bg:linear-gradient(160deg, #1e0e3cd1, #0c061ee6);--card-border:1px solid #06eeff59;--card-radius:18px;--card-shadow:0 0 0 1px #ff5cf414, 0 18px 50px -20px #06eeff73;--card-pad:clamp(1.25rem, 3vw, 2rem);--btn-bg:transparent;--btn-fg:#06eeff;--btn-border:1px solid #06eeff;--btn-radius:999px;--btn-shadow:0 0 18px -4px #06eeff99;--btn-hover-bg:#06eeff1f;--ease:cubic-bezier(.22, 1, .36, 1);--dur:.55s;--header-bg:#0804148c;--tag-bg:#06eeff1f;--tag-fg:#7ff6ff;--heading-glow:0 0 24px #06eeff73;--atmos:repeating-linear-gradient(0deg, #ff5cf40d 0 1px, transparent 1px 44px), repeating-linear-gradient(90deg, #06eeff0d 0 1px, transparent 1px 44px);--atmos-size:44px 44px;--atmos-opacity:1;--vignette:radial-gradient(120% 80% at 50% 120%, #ff5cf42e, transparent 60%)}[data-theme=hacker-bro]{--color-bg:#050805;--color-bg-2:#0a120a;--bg-scrim:linear-gradient(180deg, #030603b8, #030603db);--bg-fallback:linear-gradient(180deg, #060a06, #030503);--bg-hero:var(--bg-scrim), url(/images/backgrounds/hacker-bro-hero.jpg) center center / cover no-repeat, var(--bg-fallback);--bg-projects:var(--bg-scrim), url(/images/backgrounds/hacker-bro-projects.jpg) center center / cover no-repeat, var(--bg-fallback);--bg-contact:var(--bg-scrim), url(/images/backgrounds/hacker-bro-contact.jpg) center center / cover no-repeat, var(--bg-fallback);--color-surface:#061008d9;--color-surface-2:#0a160ce6;--color-text:#6bf5a0;--color-heading:#b7ffcf;--color-muted:#3f8f5f;--color-accent:#00ff9c;--color-accent-2:#ffb000;--color-accent-contrast:#030503;--color-border:#00ff9c4d;--font-display:"Share Tech Mono", ui-monospace, monospace;--font-body:"JetBrains Mono", ui-monospace, monospace;--font-weight-display:400;--heading-transform:uppercase;--heading-tracking:.12em;--font-scale:.95;--display-scale:.92;--card-bg:#040c06e6;--card-border:1px solid #00ff9c59;--card-radius:2px;--card-shadow:0 0 0 1px #00ff9c0f, 0 0 30px -12px #00ff9c80;--card-pad:clamp(1.1rem, 3vw, 1.75rem);--btn-bg:#00ff9c14;--btn-fg:#00ff9c;--btn-border:1px solid #00ff9c;--btn-radius:2px;--btn-shadow:none;--btn-hover-bg:#00ff9c33;--ease:steps(6, end);--dur:.3s;--header-bg:#030603cc;--tag-bg:#00ff9c1a;--tag-fg:#7dffb0;--heading-glow:0 0 12px #00ff9c80;--atmos:repeating-linear-gradient(0deg, #00ff9c0f 0 1px, transparent 1px 3px);--atmos-size:auto;--atmos-opacity:.6;--vignette:radial-gradient(120% 100% at 50% 50%, transparent 55%, #000000b3 100%)}[data-theme=sleep-token]{--color-bg:#0a1712;--color-bg-2:#0c1f17;--bg-scrim:linear-gradient(180deg, #050b089e, #050b08d1);--bg-fallback:radial-gradient(120% 90% at 50% 0%, #10281d 0%, #0a1712 50%, #050b08 100%);--bg-hero:var(--bg-scrim), url(/images/backgrounds/sleep-token-hero.jpg) center center / cover no-repeat, var(--bg-fallback);--bg-projects:var(--bg-scrim), url(/images/backgrounds/sleep-token-projects.jpg) center center / cover no-repeat, var(--bg-fallback);--bg-contact:var(--bg-scrim), url(/images/backgrounds/sleep-token-contact.jpg) center center / cover no-repeat, var(--bg-fallback);--color-surface:#0e2219cc;--color-surface-2:#122a1fe6;--color-text:#e8e2d4;--color-heading:#e6c877;--color-muted:#8fa596;--color-accent:#c9a24b;--color-accent-2:#e6c877;--color-accent-contrast:#0a1712;--color-border:#c9a24b66;--font-display:"Cinzel", Georgia, serif;--font-body:"EB Garamond", Georgia, serif;--font-weight-display:600;--heading-transform:uppercase;--heading-tracking:.22em;--font-scale:1.12;--display-scale:.94;--card-bg:linear-gradient(165deg, #122a1fe6, #091610eb);--card-border:1px solid #c9a24b66;--card-radius:4px;--card-shadow:0 24px 60px -28px #000000d9;--card-pad:clamp(1.5rem, 3.5vw, 2.5rem);--btn-bg:transparent;--btn-fg:#e6c877;--btn-border:1px solid #c9a24bb3;--btn-radius:2px;--btn-shadow:none;--btn-hover-bg:#c9a24b24;--ease:cubic-bezier(.65, 0, .35, 1);--dur:.9s;--header-bg:#08120db3;--tag-bg:#c9a24b1f;--tag-fg:#d9c088;--heading-glow:none;--atmos:radial-gradient(circle at 50% 30%, #c9a24b0f, transparent 60%);--atmos-size:auto;--atmos-opacity:1;--vignette:radial-gradient(130% 100% at 50% 40%, transparent 45%, #000000bf 100%)}[data-theme=editorial]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--color-bg:#f4efe6;--color-bg-2:#ece5d8;--bg-scrim:linear-gradient(180deg, #f6f1e8db, #efe8dbe6);--bg-fallback:linear-gradient(180deg, #f6f1e8, #efe8db);--bg-hero:var(--bg-scrim), url(/images/backgrounds/editorial-hero.jpg) center center / cover no-repeat, var(--bg-fallback);--bg-projects:var(--bg-scrim), url(/images/backgrounds/editorial-projects.jpg) center center / cover no-repeat, var(--bg-fallback);--bg-contact:var(--bg-scrim), url(/images/backgrounds/editorial-contact.jpg) center center / cover no-repeat, var(--bg-fallback);--color-surface:#fffdf8;--color-surface-2:#faf6ee;--color-text:#211d17;--color-heading:#14110d;--color-muted:#6b6154;--color-accent:#c2410c;--color-accent-2:#9a2f0a;--color-accent-contrast:#fffdf8;--color-border:#211d1729;--font-display:"Playfair Display", Georgia, serif;--font-body:"Newsreader", Georgia, serif;--font-weight-display:800;--heading-transform:none;--heading-tracking:-.01em;--font-scale:1.05;--display-scale:1;--card-bg:#fffdf8;--card-border:1px solid #211d1729;--card-radius:3px;--card-shadow:0 1px 0 #211d170f, 0 22px 40px -30px #211d1780;--card-pad:clamp(1.4rem, 3.5vw, 2.4rem);--btn-bg:#211d17;--btn-fg:#f6f1e8;--btn-border:1px solid #211d17;--btn-radius:2px;--btn-shadow:none;--btn-hover-bg:#c2410c;--ease:cubic-bezier(.4, 0, .2, 1);--dur:.5s;--header-bg:#f6f1e8d1;--tag-bg:#c2410c1a;--tag-fg:#9a2f0a;--heading-glow:none;--atmos:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E");--atmos-size:120px 120px;--atmos-opacity:1;--vignette:none}[data-theme=doom]{--color-bg:#140a08;--color-bg-2:#1a0f0c;--bg-scrim:linear-gradient(180deg, #0a060599, #0a0605d1);--bg-fallback:radial-gradient(120% 90% at 50% -10%, #3a120a 0%, #1a0d09 45%, #0a0605 100%);--bg-hero:var(--bg-scrim), url(/images/backgrounds/doom-hero.jpg) center center / cover no-repeat, var(--bg-fallback);--bg-projects:var(--bg-scrim), url(/images/backgrounds/doom-projects.jpg) center center / cover no-repeat, var(--bg-fallback);--bg-contact:var(--bg-scrim), url(/images/backgrounds/doom-contact.jpg) center center / cover no-repeat, var(--bg-fallback);--color-surface:#1c0f0be6;--color-surface-2:#28140eeb;--color-text:#d8cabb;--color-heading:#ff5a2b;--color-muted:#9c6f56;--color-accent:#e8331b;--color-accent-2:#ff9a1f;--color-accent-contrast:#0a0605;--color-border:#e8331b80;--font-display:"Press Start 2P", ui-monospace, monospace;--font-body:"VT323", ui-monospace, monospace;--font-weight-display:400;--heading-transform:uppercase;--heading-tracking:.02em;--font-scale:1.15;--display-scale:.5;--card-bg:linear-gradient(170deg, #2a1610f2, #140a08f5);--card-border:2px solid #e8331b;--card-radius:0px;--card-shadow:6px 6px 0 #0009, inset 0 0 0 2px #ff9a1f26;--card-pad:clamp(1.25rem, 3vw, 2rem);--btn-bg:#e8331b;--btn-fg:#0a0605;--btn-border:2px solid #ff9a1f;--btn-radius:0px;--btn-shadow:4px 4px 0 #000000b3;--btn-hover-bg:#ff9a1f;--ease:steps(4, end);--dur:.25s;--header-bg:#0c0605d9;--tag-bg:#e8331b29;--tag-fg:#ff9a1f;--heading-glow:0 0 18px #e8331b8c;--atmos:repeating-linear-gradient(0deg, #00000059 0 2px, transparent 2px 4px), radial-gradient(circle at 50% 0%, #e8331b29, transparent 55%);--atmos-size:auto;--atmos-opacity:.7;--vignette:radial-gradient(120% 100% at 50% 50%, transparent 45%, #000000d9 100%)}.backgrounds{z-index:-3;pointer-events:none;position:fixed;inset:0;overflow:hidden}.bg-layer{opacity:0;backface-visibility:hidden;will-change:opacity, transform;background-position:50%;background-repeat:no-repeat;background-size:cover;transition:opacity .7s ease-out,transform 1.1s ease-out;position:absolute;inset:0;transform:scale(1.06)translateZ(0)}.bg-layer--active{opacity:1;transform:scale(1)translateZ(0)}@media (prefers-reduced-motion:reduce){.bg-layer{transition:opacity .25s linear;transform:none}.bg-layer--active{transform:none}}.rail{z-index:50;justify-content:space-around;align-items:center;gap:var(--space-1);padding:var(--space-2) var(--space-3);background:var(--header-bg);-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);border-top:1px solid var(--color-border);transition:background .6s var(--ease), border-color .6s var(--ease);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;font-size:.95rem;display:flex;position:fixed;inset:auto 0 0}.rail ul,.rail li{display:contents}.rail__brand,.rail__toggle{display:none}.rail__link{border-radius:var(--btn-radius);width:46px;height:46px;color:var(--color-muted);transition:color .2s var(--ease), background .2s var(--ease);justify-content:center;align-items:center;display:inline-flex}.rail__link:hover{color:var(--color-text)}.rail__link--active{color:var(--color-accent);background:var(--tag-bg)}.rail__icon{width:22px;height:22px;display:inline-flex}.rail__icon svg{width:100%;height:100%}.rail__label{display:none}.rail__link[data-rail-id=resume]{order:1}@media (width>=768px){.rail{width:var(--rail-w,216px);justify-content:flex-start;align-items:stretch;gap:var(--space-1);padding:var(--space-4) var(--space-3);border-top:none;border-right:1px solid var(--color-border);transition:width .3s var(--ease), background .6s var(--ease), border-color .6s var(--ease);flex-direction:column;inset:0 auto 0 0;overflow:hidden}.rail ul,.rail li{display:block}.rail__group{gap:var(--space-1);flex-direction:column;display:flex}.rail__group--external{margin-top:var(--space-2);padding-top:var(--space-2);border-top:1px solid var(--color-border)}.rail__brand{margin-bottom:var(--space-4);color:var(--color-heading);letter-spacing:.02em;align-items:center;gap:.7em;padding:.4rem .55rem;font-size:1rem;font-weight:700;display:flex}.rail__brand-mark{border:1px solid var(--color-border);border-radius:calc(var(--btn-radius) * .4);background:var(--tag-bg);width:34px;height:34px;color:var(--color-accent);flex:none;place-items:center;display:inline-grid}.rail__brand-mark svg{width:20px;height:20px}.rail__brand-full{white-space:nowrap}.rail__link{justify-content:flex-start;gap:.9em;width:100%;height:auto;padding:.65rem .6rem}.rail__label{white-space:nowrap;font-size:.95rem;display:inline}.rail__toggle{border-radius:var(--btn-radius);width:100%;color:var(--color-muted);transition:color .2s var(--ease);align-items:center;gap:.9em;margin-top:auto;padding:.65rem .6rem;display:flex}.rail__toggle:hover{color:var(--color-text)}.rail__toggle-icon{width:22px;height:22px;transition:transform .3s var(--ease);display:inline-flex}.rail__toggle-icon svg{width:100%;height:100%}.rail__toggle-icon[data-collapsed=true]{transform:rotate(180deg)}.rail[data-collapsed=true] .rail__label,.rail[data-collapsed=true] .rail__brand-full{display:none}.rail[data-collapsed=true] .rail__link,.rail[data-collapsed=true] .rail__toggle,.rail[data-collapsed=true] .rail__brand{justify-content:center}}.themes{z-index:40;padding-block:var(--space-3);background:var(--header-bg);-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);border-bottom:1px solid var(--color-border);transition:background .6s var(--ease), border-color .6s var(--ease), padding-block .3s var(--ease);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;position:sticky;top:0}.themes__inner{gap:var(--space-3);flex-direction:column;display:flex}.themes__top{border:1px solid var(--color-border);border-radius:var(--btn-radius);background:var(--color-surface);max-width:0;color:var(--color-muted);font-family:inherit;font-size:var(--text-sm);letter-spacing:.02em;white-space:nowrap;opacity:0;pointer-events:none;transition:max-width .3s var(--ease), padding .3s var(--ease), opacity .2s var(--ease), color .25s var(--ease), border-color .25s var(--ease);flex:none;order:-1;align-items:center;gap:.4em;padding:0;font-weight:600;display:inline-flex;overflow:hidden}.themes__top:hover{color:var(--color-text);border-color:var(--color-accent)}.themes__top svg{flex:none}.themes--condensed .themes__top,.themes--expanding .themes__top{max-width:8rem;min-height:34px;padding:.4em .7em}.themes--condensed .themes__top{opacity:1;pointer-events:auto}.themes--expanding .themes__top{opacity:0;pointer-events:none}.themes__intro{flex-direction:column;flex:none;align-items:flex-start;row-gap:2px;display:flex}.themes__eyebrow{font-family:inherit;font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.2em;color:var(--color-accent);font-weight:700}.themes__hint{color:var(--color-muted);white-space:nowrap;margin:0;font-size:.78rem;font-style:italic;animation:.45s ease-out splash-in}@keyframes splash-in{0%{opacity:0;transform:translateY(3px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.themes__hint{animation:none}}.themes__list{gap:var(--space-1);scrollbar-width:none;-webkit-overflow-scrolling:touch;padding-block:2px;display:flex;overflow-x:auto}.themes__list::-webkit-scrollbar{display:none}.theme-chip{border:1px solid var(--color-border);border-radius:var(--btn-radius);background:var(--color-surface);min-height:40px;color:var(--color-muted);letter-spacing:.02em;white-space:nowrap;transition:color .25s var(--ease), border-color .25s var(--ease), background .25s var(--ease), padding .3s var(--ease), gap .3s var(--ease), opacity .2s var(--ease), transform .15s var(--ease);flex:none;align-items:center;gap:.45em;padding:.5em .7em;font-family:inherit;font-size:clamp(.72rem,.68rem + .15vw,.8rem);font-weight:600;display:inline-flex}.theme-chip:hover{color:var(--color-text);transform:translateY(-1px)}.theme-chip--active{color:var(--color-accent-contrast);background:var(--color-accent);border-color:var(--color-accent)}.theme-chip__swatch{border-radius:50%;width:16px;height:16px;box-shadow:inset 0 0 0 1px #ffffff40}.theme-chip__label{opacity:1;max-width:17ch;transition:max-width .3s var(--ease), opacity .2s var(--ease);line-height:1;overflow:hidden}:is(.themes--condensed,.themes--expanding){padding-block:var(--space-2)}:is(.themes--condensed,.themes--expanding) .themes__inner{align-items:center;gap:var(--space-2);flex-direction:row}:is(.themes--condensed,.themes--expanding) .themes__intro{opacity:0;pointer-events:none;max-width:0;max-height:0;overflow:hidden}:is(.themes--condensed,.themes--expanding) .themes__list{justify-content:flex-end;margin-left:auto;overflow:visible}:is(.themes--condensed,.themes--expanding) .theme-chip{background:0 0;border-color:#0000;border-radius:50%;gap:0;min-height:0;padding:0}:is(.themes--condensed,.themes--expanding) .theme-chip__label{opacity:0;max-width:0}:is(.themes--condensed,.themes--expanding) .theme-chip__swatch{width:22px;height:22px;box-shadow:0 0 0 1px var(--color-border)}:is(.themes--condensed,.themes--expanding) .theme-chip--active .theme-chip__swatch{box-shadow:0 0 0 2px var(--color-bg), 0 0 0 4px var(--color-accent)}.themes--condensing .theme-chip,.themes--condensing .themes__intro{opacity:0;pointer-events:none}.themes--expanding .theme-chip{opacity:0}.themes__intro{max-width:100%;max-height:4rem;transition:max-width .3s var(--ease), max-height .3s var(--ease), opacity .2s var(--ease)}.themes__inner{transition:gap .3s var(--ease)}@media (prefers-reduced-motion:reduce){.themes,.themes__intro,.themes__top,.theme-chip,.theme-chip__label,.theme-chip__swatch{transition:none}}.themes__list{flex-wrap:nowrap}@media (width>=768px){.themes__inner{align-items:center;gap:var(--space-4);flex-direction:row}.themes__list{justify-content:flex-start;min-width:0;margin-left:auto}}.marquee{width:100%;position:relative;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#0000,#000 8% 92%,#0000);mask-image:linear-gradient(90deg,#0000,#000 8% 92%,#0000)}.marquee__track{gap:var(--space-5);will-change:transform;width:max-content;margin:0;animation:32s linear infinite marquee-scroll;display:flex}.marquee__item{padding:var(--space-2);border:1px solid var(--color-border);border-radius:calc(var(--card-radius) * .5);background:var(--color-surface);flex:none;place-items:center;display:grid}.marquee__item img{object-fit:contain;width:36px;height:36px}[data-theme=hacker-bro] .marquee__item img,[data-theme=doom] .marquee__item img{filter:saturate(.4)brightness(1.1)}@keyframes marquee-scroll{0%{transform:translate(0)}to{transform:translate(-50%)}}@media (prefers-reduced-motion:reduce){.marquee__track{flex-wrap:wrap;justify-content:center;width:100%;animation:none}}.hero{padding-top:var(--space-6);padding-bottom:var(--space-8)}.hero__eyebrow{font-family:var(--font-display);font-size:var(--text-sm);font-weight:var(--font-weight-display);text-transform:uppercase;letter-spacing:.28em;color:var(--color-accent);margin-bottom:var(--space-2)}.hero__title{font-size:var(--text-3xl);color:var(--color-heading);text-shadow:var(--heading-glow);margin-bottom:var(--space-6);overflow-wrap:break-word}.hero__cards{gap:var(--space-4);display:grid}.hero__cards>.card{min-width:0}.hero__about-grid{column-gap:var(--space-3);row-gap:var(--space-2);grid-template-columns:minmax(0,1fr) auto;align-items:start;display:grid}.hero__about-label{grid-area:1/1;margin-bottom:0}.hero__about-heading{grid-area:2/1}.hero__portrait{border-radius:calc(var(--card-radius) * .75);border:var(--card-border);grid-area:1/2/span 2;align-self:start;width:92px;height:auto}.hero__about-copy{grid-area:3/1/auto/-1}.hero__about-heading,.hero__skills-heading{font-size:var(--text-lg);color:var(--color-heading)}[data-theme=doom] .hero__about-heading,[data-theme=doom] .hero__skills-heading{font-size:.82rem;line-height:1.7}.hero__about-copy,.hero__skills-copy{color:var(--color-text)}.hero__skills{gap:var(--space-3);flex-direction:column;display:flex}.hero__cta{margin-top:var(--space-6);font-family:var(--font-display);font-weight:var(--font-weight-display);font-size:var(--text-base);text-transform:var(--heading-transform);letter-spacing:var(--heading-tracking);color:var(--color-accent);align-items:center;gap:.6em;display:inline-flex}.hero__cta-arrow{animation:1.8s ease-in-out infinite hero-bob;display:inline-block}@keyframes hero-bob{0%,to{transform:translateY(0)}50%{transform:translateY(4px)}}@media (prefers-reduced-motion:reduce){.hero__cta-arrow{animation:none}}@media (width>=768px){.hero{padding-top:var(--space-8)}.hero__cards{grid-template-columns:1fr 1fr;align-items:stretch}.hero__about-grid{column-gap:var(--space-4);grid-template-columns:auto minmax(0,1fr)}.hero__about-label{grid-area:1/1/auto/-1}.hero__about-heading{grid-area:2/1/auto/-1}.hero__portrait{grid-area:3/1;width:150px;margin-top:.3em}.hero__about-copy{grid-area:3/2}}.btn{font-family:var(--font-display);font-size:var(--text-sm);font-weight:var(--font-weight-display);letter-spacing:var(--heading-tracking);text-transform:var(--heading-transform);border-radius:var(--btn-radius);transition:background var(--dur) var(--ease), color var(--dur) var(--ease), transform .15s var(--ease);justify-content:center;align-items:center;gap:.5em;padding:.7em 1.4em;line-height:1;display:inline-flex}.btn:active{transform:translateY(1px)}.btn--ghost{background:var(--btn-bg);color:var(--btn-fg);border:var(--btn-border);box-shadow:var(--btn-shadow)}.btn--ghost:hover{background:var(--btn-hover-bg);color:var(--btn-fg)}.btn--solid{background:var(--color-accent);color:var(--color-accent-contrast);border:var(--btn-border);box-shadow:var(--btn-shadow)}.btn--solid:hover{background:var(--color-accent-2);color:var(--color-accent-contrast)}.project{gap:var(--space-4);flex-direction:column;padding:0;display:flex;overflow:hidden}.project:hover{transform:translateY(-4px)}.project__media{border-bottom:var(--card-border);overflow:hidden}.project__img{aspect-ratio:16/10;object-fit:cover;width:100%;transition:transform .6s var(--ease)}.project:hover .project__img{transform:scale(1.04)}.project__body{gap:var(--space-3);padding:var(--card-pad);flex-direction:column;padding-top:0;display:flex}.project__title{font-size:var(--text-lg);color:var(--color-heading);text-shadow:var(--heading-glow)}.project__tags{gap:var(--space-2);flex-wrap:wrap;display:flex}.tag{font-family:var(--font-display);font-size:.72rem;font-weight:var(--font-weight-display);letter-spacing:.06em;text-transform:uppercase;border-radius:calc(var(--btn-radius) * .5);background:var(--tag-bg);color:var(--tag-fg);padding:.3em .7em}.project__blurb{color:var(--color-text);font-size:var(--text-base)}.project__actions{gap:var(--space-2);flex-wrap:wrap;margin-top:auto;display:flex}.project__egg{font-size:.72rem}@media (width>=768px){.project{flex-direction:row;align-items:stretch}.project__media{border-bottom:none;border-right:var(--card-border);flex:0 0 42%}.project__img{aspect-ratio:auto;height:100%;min-height:260px}.project__body{padding:var(--card-pad);flex:1;justify-content:center}}.modal{border:var(--card-border);border-radius:var(--card-radius);background:var(--color-surface-2);width:min(92vw,900px);color:var(--color-text);box-shadow:var(--card-shadow);margin:auto;padding:0}.modal::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#000000b8}.modal__body{padding:var(--space-4);position:relative}.modal__close{color:#fff;font-size:2rem;line-height:1;position:absolute;top:-.4rem;right:0;transform:translateY(-100%)}.modal__body iframe{aspect-ratio:16/9;border-radius:calc(var(--card-radius) - 4px);border:0;width:100%;height:auto;display:block}.projects__grid{gap:var(--space-5);display:grid}@media (width>=768px){.projects__grid{gap:var(--space-6)}}.contact__inner{max-width:640px}.contact__lede{color:var(--color-text);margin-bottom:var(--space-6)}.contact__form{gap:var(--space-3);flex-direction:column;display:flex}.contact__form input,.contact__form textarea{width:100%;font:inherit;color:var(--color-text);background:var(--color-bg-2);border:1px solid var(--color-border);border-radius:calc(var(--card-radius) * .5);resize:vertical;padding:.8em 1em}.contact__form input::placeholder,.contact__form textarea::placeholder{color:var(--color-muted)}.contact__form input:focus,.contact__form textarea:focus{border-color:var(--color-accent);outline:none}.contact__form .btn{align-self:flex-start}.contact__details{align-items:center;gap:var(--space-3);margin-top:var(--space-5);flex-wrap:wrap;display:flex}.contact__revealed{font-family:var(--font-display);font-size:var(--text-sm);color:var(--color-accent)}.footer{padding-block:var(--space-7);text-align:center;color:var(--color-muted);font-family:var(--font-display);font-size:var(--text-sm);letter-spacing:var(--heading-tracking);border-top:1px solid var(--color-border)}
