.astro-route-announcer{position:absolute;left:0;top:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap;width:1px;height:1px}.scroll-to-top[data-astro-cid-73562bqz]{position:fixed;bottom:2rem;right:2rem;z-index:99;display:flex;align-items:center;justify-content:center;width:3rem;height:3rem;border-radius:50%;background:var(--accent-gradient);color:#fff;box-shadow:0 4px 14px var(--glow-color-strong);opacity:0;pointer-events:none;transform:translateY(20px);transition:opacity var(--transition-base),transform var(--transition-base),box-shadow var(--transition-base)}.scroll-to-top[data-astro-cid-73562bqz].visible{opacity:1;pointer-events:auto;transform:translateY(0)}.scroll-to-top[data-astro-cid-73562bqz]:hover{transform:translateY(-4px);box-shadow:0 6px 20px var(--glow-color-strong)}.scroll-to-top[data-astro-cid-73562bqz]:active{transform:translateY(0)}@media(max-width:768px){.scroll-to-top[data-astro-cid-73562bqz]{bottom:1.5rem;right:1.5rem;width:2.5rem;height:2.5rem}}:root{color-scheme:dark;--bg-primary: #0a0a0f;--bg-primary-rgb: 10, 10, 15;--bg-secondary: #12121a;--bg-card: #16161f;--bg-card-hover: #1c1c28;--bg-nav: rgba(10, 10, 15, .6);--bg-nav-scrolled: rgba(10, 10, 15, .85);--text-primary: #e4e4e7;--text-secondary: #a1a1aa;--text-muted: #71717a;--accent-start: #6366f1;--accent-end: #a855f7;--accent-gradient: linear-gradient(135deg, var(--accent-start), var(--accent-end));--glow-color: rgba(99, 102, 241, .15);--glow-color-strong: rgba(99, 102, 241, .35);--border-color: #27272a;--border-color-hover: #3f3f46;--nav-height: 4rem;--section-padding: 6rem 0;--container-width: 1100px;--container-padding: 0 1.5rem;--radius-sm: .5rem;--radius-md: .75rem;--radius-lg: 1rem;--transition-fast: .15s ease;--transition-base: .25s ease;--transition-slow: .4s ease;--font-sans: "Inter", system-ui, -apple-system, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, monospace;--font-serif: "Playfair Display", Georgia, "Times New Roman", serif;--font-display: var(--font-sans);--font-pixel: "Press Start 2P", ui-monospace, monospace;--status-online: #22c55e;--shadow-card: 0 1px 2px rgba(0, 0, 0, .04);--shadow-card-hover: 0 8px 30px rgba(0, 0, 0, .2);--border-width: 1px;--border-style: solid}html[data-theme=light]{color-scheme:light;--bg-primary: #f8fafc;--bg-primary-rgb: 248, 250, 252;--bg-secondary: #f1f5f9;--bg-card: #ffffff;--bg-card-hover: #f1f5f9;--bg-nav: rgba(248, 250, 252, .6);--bg-nav-scrolled: rgba(248, 250, 252, .95);--text-primary: #18181b;--text-secondary: #3f3f46;--text-muted: #71717a;--accent-start: #4f46e5;--accent-end: #9333ea;--accent-gradient: linear-gradient(135deg, var(--accent-start), var(--accent-end));--glow-color: rgba(79, 70, 229, .15);--glow-color-strong: rgba(79, 70, 229, .35);--border-color: #e4e4e7;--border-color-hover: #d4d4d8}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:var(--nav-height);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-sans);font-size:1rem;line-height:1.7;color:var(--text-primary);background-color:var(--bg-primary);overflow-x:hidden}img,svg{display:block;max-width:100%}a{color:inherit;text-decoration:none}ul,ol{list-style:none}button{font:inherit;cursor:pointer;border:none;background:none;color:inherit}h1,h2,h3,h4{line-height:1.2;font-weight:700;color:var(--text-primary)}h1{font-size:clamp(2.5rem,6vw,4rem)}h2{font-size:clamp(1.75rem,4vw,2.5rem)}h3{font-size:clamp(1.25rem,2.5vw,1.5rem)}p{color:var(--text-secondary)}.container{max-width:var(--container-width);margin:0 auto;padding:var(--container-padding)}.section{padding:var(--section-padding)}.section-label{display:inline-block;font-size:.85rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;background:var(--accent-gradient);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;margin-bottom:.75rem}.section-title{margin-bottom:1rem}.section-subtitle{color:var(--text-secondary);max-width:600px;margin-bottom:3rem}@media(max-width:768px){:root{--section-padding: 4rem 0;--container-padding: 0 1.25rem}}.gradient-text{background:var(--accent-gradient);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.reveal{opacity:0;transform:translateY(30px);transition:opacity var(--transition-slow),transform var(--transition-slow)}.reveal.visible{opacity:1;transform:translateY(0)}.reveal-stagger>*{opacity:0;transform:translateY(20px);transition:opacity var(--transition-slow),transform var(--transition-slow)}.reveal-stagger.visible>*{opacity:1;transform:translateY(0)}.reveal-stagger.visible>*:nth-child(1){transition-delay:0ms}.reveal-stagger.visible>*:nth-child(2){transition-delay:80ms}.reveal-stagger.visible>*:nth-child(3){transition-delay:.16s}.reveal-stagger.visible>*:nth-child(4){transition-delay:.24s}.reveal-stagger.visible>*:nth-child(5){transition-delay:.32s}.reveal-stagger.visible>*:nth-child(6){transition-delay:.4s}.reveal-stagger.visible>*:nth-child(7){transition-delay:.48s}.reveal-stagger.visible>*:nth-child(8){transition-delay:.56s}.reveal-stagger.visible>*:nth-child(9){transition-delay:.64s}.reveal-stagger.visible>*:nth-child(10){transition-delay:.72s}@media(prefers-reduced-motion:reduce){.reveal,.reveal-stagger>*{transition:none!important;opacity:1!important;transform:none!important}html{scroll-behavior:auto}}::selection{background:#6366f14d;color:#fff}:focus:not(:focus-visible){outline:none}:focus-visible{outline:2px solid var(--accent-start);outline-offset:4px;border-radius:2px}.skip-to-content{position:absolute;top:-100%;left:50%;transform:translate(-50%);background:var(--accent-gradient);color:#fff;padding:.5rem 1rem;z-index:9999;border-radius:var(--radius-md);font-weight:600;opacity:0;transition:top var(--transition-fast),opacity var(--transition-fast)}.skip-to-content:focus{top:1rem;opacity:1}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--border-color-hover)}.demo-header-actions{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:1.5rem}.demo-header-github{display:inline-flex;align-items:center;gap:.5rem;font-size:.85rem;font-weight:500;color:var(--text-secondary);background:var(--bg-card);border:1px solid var(--border-color);padding:.4rem 1rem;border-radius:var(--radius-sm);text-decoration:none;transition:all var(--transition-fast)}.demo-header-github:hover{background:var(--bg-card-hover);border-color:var(--text-secondary);color:var(--text-primary);transform:translateY(-2px)}html[data-theme=dracula]{color-scheme:dark;--bg-primary: #282a36;--bg-primary-rgb: 40, 42, 54;--bg-secondary: #21222c;--bg-card: #2d2f3d;--bg-card-hover: #343646;--bg-nav: rgba(40, 42, 54, .6);--bg-nav-scrolled: rgba(40, 42, 54, .85);--text-primary: #f8f8f2;--text-secondary: #bfbfbf;--text-muted: #6272a4;--accent-start: #bd93f9;--accent-end: #ff79c6;--accent-gradient: linear-gradient(135deg, var(--accent-start), var(--accent-end));--glow-color: rgba(189, 147, 249, .15);--glow-color-strong: rgba(189, 147, 249, .35);--border-color: #44475a;--border-color-hover: #6272a4}html[data-theme=nord]{color-scheme:dark;--bg-primary: #2e3440;--bg-primary-rgb: 46, 52, 64;--bg-secondary: #272c36;--bg-card: #3b4252;--bg-card-hover: #434c5e;--bg-nav: rgba(46, 52, 64, .6);--bg-nav-scrolled: rgba(46, 52, 64, .85);--text-primary: #eceff4;--text-secondary: #d8dee9;--text-muted: #81a1c1;--accent-start: #88c0d0;--accent-end: #5e81ac;--accent-gradient: linear-gradient(135deg, var(--accent-start), var(--accent-end));--glow-color: rgba(136, 192, 208, .15);--glow-color-strong: rgba(136, 192, 208, .35);--border-color: #434c5e;--border-color-hover: #4c566a}html[data-theme=tokyo-night]{color-scheme:dark;--bg-primary: #1a1b26;--bg-primary-rgb: 26, 27, 38;--bg-secondary: #16161e;--bg-card: #1f2335;--bg-card-hover: #292e42;--bg-nav: rgba(26, 27, 38, .6);--bg-nav-scrolled: rgba(26, 27, 38, .85);--text-primary: #c0caf5;--text-secondary: #a9b1d6;--text-muted: #565f89;--accent-start: #7aa2f7;--accent-end: #bb9af7;--accent-gradient: linear-gradient(135deg, var(--accent-start), var(--accent-end));--glow-color: rgba(122, 162, 247, .15);--glow-color-strong: rgba(122, 162, 247, .35);--border-color: #292e42;--border-color-hover: #3b4261}html[data-theme=catppuccin-mocha]{color-scheme:dark;--bg-primary: #1e1e2e;--bg-primary-rgb: 30, 30, 46;--bg-secondary: #181825;--bg-card: #24243b;--bg-card-hover: #2a2a45;--bg-nav: rgba(30, 30, 46, .6);--bg-nav-scrolled: rgba(30, 30, 46, .85);--text-primary: #cdd6f4;--text-secondary: #bac2de;--text-muted: #6c7086;--accent-start: #cba6f7;--accent-end: #f5c2e7;--accent-gradient: linear-gradient(135deg, var(--accent-start), var(--accent-end));--glow-color: rgba(203, 166, 247, .15);--glow-color-strong: rgba(203, 166, 247, .35);--border-color: #313244;--border-color-hover: #45475a}html[data-theme=one-dark]{color-scheme:dark;--bg-primary: #282c34;--bg-primary-rgb: 40, 44, 52;--bg-secondary: #21252b;--bg-card: #2c313a;--bg-card-hover: #333842;--bg-nav: rgba(40, 44, 52, .6);--bg-nav-scrolled: rgba(40, 44, 52, .85);--text-primary: #abb2bf;--text-secondary: #9da5b4;--text-muted: #5c6370;--accent-start: #61afef;--accent-end: #c678dd;--accent-gradient: linear-gradient(135deg, var(--accent-start), var(--accent-end));--glow-color: rgba(97, 175, 239, .15);--glow-color-strong: rgba(97, 175, 239, .35);--border-color: #3e4451;--border-color-hover: #4b5263}html[data-theme=nord-light]{color-scheme:light;--bg-primary: #eceff4;--bg-primary-rgb: 236, 239, 244;--bg-secondary: #e5e9f0;--bg-card: #ffffff;--bg-card-hover: #e5e9f0;--bg-nav: rgba(236, 239, 244, .6);--bg-nav-scrolled: rgba(236, 239, 244, .95);--text-primary: #2e3440;--text-secondary: #3b4252;--text-muted: #7b88a1;--accent-start: #5e81ac;--accent-end: #81a1c1;--accent-gradient: linear-gradient(135deg, var(--accent-start), var(--accent-end));--glow-color: rgba(94, 129, 172, .15);--glow-color-strong: rgba(94, 129, 172, .35);--border-color: #d8dee9;--border-color-hover: #c8ced9}html[data-theme=catppuccin-latte]{color-scheme:light;--bg-primary: #eff1f5;--bg-primary-rgb: 239, 241, 245;--bg-secondary: #e6e9ef;--bg-card: #ffffff;--bg-card-hover: #e6e9ef;--bg-nav: rgba(239, 241, 245, .6);--bg-nav-scrolled: rgba(239, 241, 245, .95);--text-primary: #4c4f69;--text-secondary: #5c5f77;--text-muted: #8c8fa1;--accent-start: #8839ef;--accent-end: #ea76cb;--accent-gradient: linear-gradient(135deg, var(--accent-start), var(--accent-end));--glow-color: rgba(136, 57, 239, .15);--glow-color-strong: rgba(136, 57, 239, .35);--border-color: #ccd0da;--border-color-hover: #bcc0cc}html[data-theme=solarized-light]{color-scheme:light;--bg-primary: #fdf6e3;--bg-primary-rgb: 253, 246, 227;--bg-secondary: #eee8d5;--bg-card: #ffffff;--bg-card-hover: #eee8d5;--bg-nav: rgba(253, 246, 227, .6);--bg-nav-scrolled: rgba(253, 246, 227, .95);--text-primary: #073642;--text-secondary: #586e75;--text-muted: #93a1a1;--accent-start: #b58900;--accent-end: #268bd2;--accent-gradient: linear-gradient(135deg, var(--accent-start), var(--accent-end));--glow-color: rgba(181, 137, 0, .15);--glow-color-strong: rgba(181, 137, 0, .35);--border-color: #d6ccb3;--border-color-hover: #c9bfa5}html[data-theme=gruvbox-dark]{color-scheme:dark;--bg-primary: #1d2021;--bg-primary-rgb: 29, 32, 33;--bg-secondary: #282828;--bg-card: #32302f;--bg-card-hover: #3c3836;--bg-nav: rgba(29, 32, 33, .6);--bg-nav-scrolled: rgba(29, 32, 33, .85);--text-primary: #ebdbb2;--text-secondary: #d5c4a1;--text-muted: #a89984;--accent-start: #fe8019;--accent-end: #fb4934;--accent-gradient: linear-gradient(135deg, var(--accent-start), var(--accent-end));--glow-color: rgba(254, 128, 25, .18);--glow-color-strong: rgba(254, 128, 25, .4);--border-color: #504945;--border-color-hover: #665c54}html[data-theme=synthwave]{color-scheme:dark;--bg-primary: #0b0221;--bg-primary-rgb: 11, 2, 33;--bg-secondary: #150936;--bg-card: #1d1046;--bg-card-hover: #2a1866;--bg-nav: rgba(11, 2, 33, .6);--bg-nav-scrolled: rgba(11, 2, 33, .88);--text-primary: #f9f7ff;--text-secondary: #d0bdff;--text-muted: #8f7bcf;--accent-start: #ff2a6d;--accent-end: #0ff0fc;--accent-gradient: linear-gradient(135deg, var(--accent-start), var(--accent-end));--glow-color: rgba(255, 42, 109, .22);--glow-color-strong: rgba(255, 42, 109, .5);--border-color: #3a2780;--border-color-hover: #5a3dd6}html[data-theme=phosphor]{color-scheme:dark;--bg-primary: #0a140c;--bg-primary-rgb: 10, 20, 12;--bg-secondary: #0d1b10;--bg-card: #112317;--bg-card-hover: #19331f;--bg-nav: rgba(10, 20, 12, .6);--bg-nav-scrolled: rgba(10, 20, 12, .9);--text-primary: #9fffb4;--text-secondary: #6bd688;--text-muted: #3d8a4d;--accent-start: #33ff66;--accent-end: #00cc44;--accent-gradient: linear-gradient(135deg, var(--accent-start), var(--accent-end));--glow-color: rgba(51, 255, 102, .22);--glow-color-strong: rgba(51, 255, 102, .5);--border-color: #1e4a2b;--border-color-hover: #2d6b42}html[data-theme=amber-crt]{color-scheme:dark;--bg-primary: #140a00;--bg-primary-rgb: 20, 10, 0;--bg-secondary: #1a0f02;--bg-card: #211703;--bg-card-hover: #302205;--bg-nav: rgba(20, 10, 0, .6);--bg-nav-scrolled: rgba(20, 10, 0, .9);--text-primary: #ffd390;--text-secondary: #e5a64b;--text-muted: #a87620;--accent-start: #ffb000;--accent-end: #ff8c00;--accent-gradient: linear-gradient(135deg, var(--accent-start), var(--accent-end));--glow-color: rgba(255, 176, 0, .22);--glow-color-strong: rgba(255, 176, 0, .5);--border-color: #4a3100;--border-color-hover: #6b4700}html[data-theme=sepia]{color-scheme:light;--bg-primary: #f4ecd8;--bg-primary-rgb: 244, 236, 216;--bg-secondary: #ebe1c8;--bg-card: #faf4e3;--bg-card-hover: #ebe1c8;--bg-nav: rgba(244, 236, 216, .6);--bg-nav-scrolled: rgba(244, 236, 216, .95);--text-primary: #3d2b1f;--text-secondary: #5a3f2b;--text-muted: #8a6f50;--accent-start: #a85a2e;--accent-end: #7a4522;--accent-gradient: linear-gradient(135deg, var(--accent-start), var(--accent-end));--glow-color: rgba(168, 90, 46, .15);--glow-color-strong: rgba(168, 90, 46, .35);--border-color: #d8c8a8;--border-color-hover: #c8b794}html[data-theme=paper]{color-scheme:light;--bg-primary: #fafaf5;--bg-primary-rgb: 250, 250, 245;--bg-secondary: #f0f0ea;--bg-card: #ffffff;--bg-card-hover: #f0f0ea;--bg-nav: rgba(250, 250, 245, .6);--bg-nav-scrolled: rgba(250, 250, 245, .95);--text-primary: #0f0f0f;--text-secondary: #3a3a3a;--text-muted: #7a7a7a;--accent-start: #cc4236;--accent-end: #2a2a2a;--accent-gradient: linear-gradient(135deg, var(--accent-start), var(--accent-end));--glow-color: rgba(204, 66, 54, .12);--glow-color-strong: rgba(204, 66, 54, .28);--border-color: #e0e0dd;--border-color-hover: #c8c8c5}html[data-design=minimal]{--font-display: var(--font-sans);--radius-sm: .5rem;--radius-md: .75rem;--radius-lg: 1rem;--border-width: 1px;--shadow-card: 0 1px 2px rgba(0, 0, 0, .04)}html[data-design=editorial]{--font-sans: "Crimson Pro", "Source Serif Pro", Georgia, serif;--font-display: "Playfair Display", Georgia, "Times New Roman", serif;--radius-sm: 0;--radius-md: 0;--radius-lg: 0;--border-width: 1px;--shadow-card: none;--section-padding: 5rem 0;--container-width: 960px}html[data-design=editorial] body{font-size:1.125rem;line-height:1.8;letter-spacing:.005em}html[data-design=editorial] h1,html[data-design=editorial] h2,html[data-design=editorial] h3,html[data-design=editorial] h4{font-family:var(--font-display);font-weight:700;letter-spacing:-.015em}html[data-design=editorial] .hero-name{font-family:var(--font-display);font-weight:900;font-style:italic;letter-spacing:-.04em}html[data-design=editorial] .hero-greeting,html[data-design=editorial] .section-label{font-family:JetBrains Mono,ui-monospace,monospace;font-style:italic;text-transform:none;letter-spacing:.02em}html[data-design=editorial] .section-title{font-size:clamp(2.25rem,5vw,3.5rem);border-bottom:1px solid var(--border-color);padding-bottom:1rem;margin-bottom:2rem}html[data-design=editorial] .about-text p:first-of-type:first-letter{float:left;font-family:var(--font-display);font-size:4.5em;line-height:.85;font-weight:800;padding:.1em .1em 0 0;color:var(--accent-start)}html[data-design=editorial] .about-text{columns:2;column-gap:2.5rem;column-rule:1px solid var(--border-color)}html[data-design=editorial] .about-text p,html[data-design=editorial] .about-text ul,html[data-design=editorial] .about-text .about-actions{break-inside:avoid}html[data-design=editorial] .card,html[data-design=editorial] .skill-group,html[data-design=editorial] .timeline-content,html[data-design=editorial] .work-card,html[data-design=editorial] .education-card,html[data-design=editorial] .demo-card,html[data-design=editorial] .contact-form{background:transparent;border:0;border-top:2px solid var(--text-primary);border-radius:0;box-shadow:none;padding-top:1.25rem}html[data-design=editorial] .skill-pill,html[data-design=editorial] .demo-tags li,html[data-design=editorial] .work-tags li{border-radius:0;border-left:2px solid var(--accent-start);border-top:0;border-right:0;border-bottom:0;background:transparent;padding:0 .5rem}html[data-design=editorial] .navbar{backdrop-filter:none;-webkit-backdrop-filter:none;background:var(--bg-primary);border-bottom:1px solid var(--border-color)}html[data-design=editorial] .nav-logo{font-family:var(--font-display);font-style:italic}html[data-design=editorial] .nav-links{gap:1.25rem}html[data-design=editorial] .nav-link{font-family:JetBrains Mono,ui-monospace,monospace;font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}html[data-design=editorial] .hero-cta,html[data-design=editorial] .contact-submit{border-radius:0;background:var(--text-primary);color:var(--bg-primary);font-family:JetBrains Mono,ui-monospace,monospace;letter-spacing:.1em;text-transform:uppercase}html[data-design=editorial] .hero-grid,html[data-design=editorial] .hero-gradient{display:none}@media(max-width:768px){html[data-design=editorial] .about-text{columns:1}}html[data-design=swiss]{--font-sans: "Inter Tight", Helvetica, Arial, "Helvetica Neue", sans-serif;--font-display: var(--font-sans);--radius-sm: 0;--radius-md: 0;--radius-lg: 0;--border-width: 1px;--shadow-card: none;--section-padding: 7rem 0;--container-width: 1180px;--swiss-accent: #e10600}html[data-design=swiss] body{font-size:1rem;letter-spacing:-.005em}html[data-design=swiss] h1,html[data-design=swiss] h2,html[data-design=swiss] h3,html[data-design=swiss] h4{font-weight:700;letter-spacing:-.03em;text-transform:none}html[data-design=swiss] .hero-name{font-size:clamp(4rem,12vw,8rem);font-weight:900;letter-spacing:-.05em;line-height:.9}html[data-design=swiss] .hero-greeting,html[data-design=swiss] .section-label,html[data-design=swiss] .nav-link{text-transform:uppercase;letter-spacing:.12em;font-size:.75rem;font-weight:600}html[data-design=swiss] .section{position:relative;border-top:1px solid var(--text-primary);padding-top:4rem}html[data-design=swiss] .section[data-num]:before{content:attr(data-num);position:absolute;top:1rem;right:0;font-size:clamp(3rem,8vw,7rem);font-weight:800;color:var(--swiss-accent);line-height:1;letter-spacing:-.05em;font-variant-numeric:tabular-nums;pointer-events:none}html[data-design=swiss] .section-title{font-size:clamp(2.5rem,6vw,4.5rem);font-weight:800;letter-spacing:-.04em}html[data-design=swiss] .navbar{background:var(--bg-primary);backdrop-filter:none;-webkit-backdrop-filter:none;border-bottom:1px solid var(--text-primary)}html[data-design=swiss] .nav-link:after{background:var(--swiss-accent)}html[data-design=swiss] .card,html[data-design=swiss] .skill-group,html[data-design=swiss] .timeline-content,html[data-design=swiss] .work-card,html[data-design=swiss] .education-card,html[data-design=swiss] .demo-card,html[data-design=swiss] .contact-form{background:transparent;border:1px solid var(--text-primary);border-radius:0;box-shadow:none}html[data-design=swiss] .skill-pill,html[data-design=swiss] .demo-tags li,html[data-design=swiss] .work-tags li{border:1px solid var(--text-primary);background:transparent;border-radius:0;font-weight:500}html[data-design=swiss] .hero-cta,html[data-design=swiss] .contact-submit{border-radius:0;background:var(--swiss-accent);color:#fff;text-transform:uppercase;letter-spacing:.15em;font-weight:700;border:0}html[data-design=swiss] .gradient-text{background:none;-webkit-background-clip:initial;background-clip:initial;-webkit-text-fill-color:currentColor;color:var(--swiss-accent)}html[data-design=swiss] .hero-grid,html[data-design=swiss] .hero-gradient{display:none}html[data-design=pixel]{--font-sans: "Press Start 2P", ui-monospace, "Courier New", monospace;--font-mono: "Press Start 2P", ui-monospace, "Courier New", monospace;--font-display: var(--font-sans);--radius-sm: 0;--radius-md: 0;--radius-lg: 0;--border-width: 3px;--shadow-card: 4px 4px 0 var(--text-primary);--section-padding: 4rem 0;image-rendering:pixelated}html[data-design=pixel] body{font-size:.8rem;line-height:1.9;letter-spacing:0}html[data-design=pixel] p,html[data-design=pixel] li,html[data-design=pixel] span,html[data-design=pixel] label,html[data-design=pixel] input,html[data-design=pixel] textarea,html[data-design=pixel] button{font-size:.72rem}html[data-design=pixel] h1{font-size:clamp(1.4rem,3.5vw,2rem);line-height:1.4}html[data-design=pixel] h2{font-size:clamp(1.1rem,2.5vw,1.4rem);line-height:1.4}html[data-design=pixel] h3{font-size:clamp(.9rem,1.5vw,1.05rem);line-height:1.4}html[data-design=pixel] .hero-name{font-size:clamp(1.6rem,4.5vw,2.8rem);font-weight:400;letter-spacing:0;line-height:1.3}html[data-design=pixel] .hero-tagline{font-size:clamp(.8rem,1.6vw,1rem);line-height:1.6}html[data-design=pixel] .hero-description{font-size:.75rem;line-height:2}html[data-design=pixel] .card,html[data-design=pixel] .skill-group,html[data-design=pixel] .timeline-content,html[data-design=pixel] .work-card,html[data-design=pixel] .education-card,html[data-design=pixel] .demo-card,html[data-design=pixel] .contact-form{background:var(--bg-card);border:3px solid var(--text-primary);border-radius:0;box-shadow:6px 6px 0 var(--text-primary)}html[data-design=pixel] .card:hover,html[data-design=pixel] .skill-group:hover,html[data-design=pixel] .timeline-content:hover,html[data-design=pixel] .work-card:hover,html[data-design=pixel] .education-card:hover,html[data-design=pixel] .demo-card:hover{transform:translate(-2px,-2px);box-shadow:8px 8px 0 var(--accent-start)}html[data-design=pixel] .skill-pill,html[data-design=pixel] .demo-tags li,html[data-design=pixel] .work-tags li{border:2px solid var(--text-primary);border-radius:0;box-shadow:3px 3px 0 var(--text-primary);padding:.4rem .7rem;font-size:.65rem;background:var(--bg-secondary)}html[data-design=pixel] .navbar{background:var(--bg-primary);backdrop-filter:none;-webkit-backdrop-filter:none;border-bottom:3px solid var(--text-primary)}html[data-design=pixel] .nav-links{gap:1rem}html[data-design=pixel] .nav-link{font-size:.55rem;white-space:nowrap}html[data-design=pixel] .hero-cta,html[data-design=pixel] .contact-submit{background:var(--accent-start);color:#000;border:3px solid var(--text-primary);border-radius:0;box-shadow:5px 5px 0 var(--text-primary);padding:.85rem 1.5rem;font-size:.75rem}html[data-design=pixel] .hero-cta:hover,html[data-design=pixel] .contact-submit:hover{transform:translate(-2px,-2px);box-shadow:7px 7px 0 var(--text-primary)}html[data-design=pixel] .hero-cta:active,html[data-design=pixel] .contact-submit:active{transform:translate(2px,2px);box-shadow:2px 2px 0 var(--text-primary)}html[data-design=pixel] .form-group input,html[data-design=pixel] .form-group textarea{border:3px solid var(--text-primary);border-radius:0;background:var(--bg-primary);font-family:var(--font-sans);font-size:.72rem}html[data-design=pixel] .gradient-text{background:none;-webkit-background-clip:initial;background-clip:initial;-webkit-text-fill-color:currentColor;color:var(--accent-start)}html[data-design=pixel] .hero-grid,html[data-design=pixel] .hero-gradient{display:none}html[data-design=pixel] .hero-greeting:after{content:"_";display:inline-block;margin-left:.25rem;color:var(--accent-start)}@media(prefers-reduced-motion:no-preference){html[data-design=pixel] .hero-greeting:after{animation:design-pixel-blink 1s step-end infinite}@keyframes design-pixel-blink{0%,50%{opacity:1}50.01%,to{opacity:0}}}html[data-design=terminal]{--font-sans: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--font-display: var(--font-sans);--font-mono: var(--font-sans);--radius-sm: 0;--radius-md: 0;--radius-lg: 0;--border-width: 1px;--shadow-card: none;--container-width: 1100px}html[data-design=terminal] body{font-size:.95rem;line-height:1.7;letter-spacing:0;position:relative}html[data-design=terminal] body:after{content:"";position:fixed;inset:0;pointer-events:none;z-index:1;background:repeating-linear-gradient(to bottom,transparent 0,transparent 2px,rgba(0,0,0,.06) 2px,rgba(0,0,0,.06) 3px),radial-gradient(ellipse at center,transparent 55%,rgba(0,0,0,.25) 100%);mix-blend-mode:multiply}html[data-design=terminal][data-theme=light] body:after,html[data-design=terminal][data-theme=nord-light] body:after,html[data-design=terminal][data-theme=catppuccin-latte] body:after,html[data-design=terminal][data-theme=solarized-light] body:after,html[data-design=terminal][data-theme=sepia] body:after,html[data-design=terminal][data-theme=paper] body:after{background:repeating-linear-gradient(to bottom,transparent 0,transparent 2px,rgba(0,0,0,.04) 2px,rgba(0,0,0,.04) 3px),radial-gradient(ellipse at center,transparent 60%,rgba(0,0,0,.12) 100%)}html[data-design=terminal] h1,html[data-design=terminal] h2,html[data-design=terminal] h3,html[data-design=terminal] h4{font-weight:600;letter-spacing:-.01em}html[data-design=terminal] .hero-name{font-size:clamp(2rem,5.5vw,3.5rem);font-weight:700;letter-spacing:-.02em}html[data-design=terminal] .hero-greeting:before{content:"$ ";color:var(--accent-start)}html[data-design=terminal] .hero-greeting:after{content:"_";display:inline-block;margin-left:.25rem;color:var(--accent-start)}html[data-design=terminal] .section-label:before{content:"// ";color:var(--text-muted);opacity:.7}html[data-design=terminal] .section-title:before{content:"> ";color:var(--accent-start);opacity:.8}html[data-design=terminal] .gradient-text{background:none;-webkit-background-clip:initial;background-clip:initial;-webkit-text-fill-color:currentColor;color:var(--accent-start)}html[data-design=terminal] .card,html[data-design=terminal] .skill-group,html[data-design=terminal] .timeline-content,html[data-design=terminal] .work-card,html[data-design=terminal] .education-card,html[data-design=terminal] .demo-card,html[data-design=terminal] .contact-form{background:var(--bg-card);border:1px dashed var(--border-color-hover);border-radius:0;box-shadow:none;position:relative}html[data-design=terminal] .card:before,html[data-design=terminal] .skill-group:before,html[data-design=terminal] .timeline-content:before,html[data-design=terminal] .work-card:before,html[data-design=terminal] .education-card:before,html[data-design=terminal] .demo-card:before,html[data-design=terminal] .contact-form:before{content:"┌─";position:absolute;top:-.1em;left:.5rem;font-family:var(--font-mono);font-size:.75rem;color:var(--accent-start);background:var(--bg-primary);padding:0 .25rem;line-height:1;opacity:.6}html[data-design=terminal] .skill-pill,html[data-design=terminal] .demo-tags li,html[data-design=terminal] .work-tags li{border:1px solid var(--border-color-hover);background:transparent;border-radius:0;font-family:var(--font-mono);padding:.2rem .5rem}html[data-design=terminal] .skill-pill:before,html[data-design=terminal] .demo-tags li:before,html[data-design=terminal] .work-tags li:before{content:"[";color:var(--accent-start);margin-right:.15rem}html[data-design=terminal] .skill-pill:not(.has-tooltip):after,html[data-design=terminal] .demo-tags li:after,html[data-design=terminal] .work-tags li:after{content:"]";color:var(--accent-start);margin-left:.15rem}html[data-design=terminal] .skill-pill.has-tooltip .skill-bracket-close{color:var(--accent-start);margin-left:.15rem}.skill-bracket-close{display:none}html[data-design=terminal] .skill-bracket-close{display:inline}html[data-design=terminal] .navbar{background:var(--bg-primary);backdrop-filter:none;-webkit-backdrop-filter:none;border-bottom:1px dashed var(--border-color-hover)}html[data-design=terminal] .nav-logo:before{content:"~/";color:var(--accent-start);opacity:.7}html[data-design=terminal] .nav-link{font-family:var(--font-mono);font-size:.85rem}html[data-design=terminal] .nav-link:before{content:"./";opacity:.5;margin-right:.1rem}html[data-design=terminal] .hero-cta,html[data-design=terminal] .contact-submit{background:transparent;color:var(--accent-start);border:1px solid var(--accent-start);border-radius:0;font-family:var(--font-mono);letter-spacing:0}html[data-design=terminal] .hero-cta:before,html[data-design=terminal] .contact-submit:before{content:"> "}html[data-design=terminal] .hero-cta:hover,html[data-design=terminal] .contact-submit:hover{background:var(--accent-start);color:var(--bg-primary)}html[data-design=terminal] .form-group input,html[data-design=terminal] .form-group textarea{background:var(--bg-primary);border:1px solid var(--border-color-hover);border-radius:0;font-family:var(--font-mono)}html[data-design=terminal] .hero-grid,html[data-design=terminal] .hero-gradient{display:none}@media(prefers-reduced-motion:no-preference){html[data-design=terminal] .hero-greeting:after{animation:design-terminal-blink 1s step-end infinite}@keyframes design-terminal-blink{0%,50%{opacity:1}50.01%,to{opacity:0}}}html[data-design=cyber]{--font-sans: "Inter Tight", "Inter", system-ui, sans-serif;--font-display: "Orbitron", "Inter Tight", sans-serif;--radius-sm: 0;--radius-md: 0;--radius-lg: 0;--border-width: 1px;--shadow-card: 0 0 20px color-mix(in oklab, var(--accent-start) 25%, transparent);--cyber-pink: #ff2e88;--cyber-cyan: #00f0ff}html[data-design=cyber] body{letter-spacing:.01em;background:linear-gradient(180deg,transparent 0%,transparent 60%,color-mix(in oklab,var(--accent-start) 10%,transparent) 100%),var(--bg-primary)}html[data-design=cyber] h1,html[data-design=cyber] h2,html[data-design=cyber] h3,html[data-design=cyber] h4{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.02em;font-weight:800}html[data-design=cyber] .hero-name{font-family:var(--font-display);font-size:clamp(3rem,9vw,6rem);font-weight:900;text-transform:uppercase;letter-spacing:.01em;line-height:.95;text-shadow:-2px 0 0 var(--cyber-pink),2px 0 0 var(--cyber-cyan),0 0 30px color-mix(in oklab,var(--accent-start) 50%,transparent)}html[data-design=cyber] .hero-greeting,html[data-design=cyber] .section-label,html[data-design=cyber] .nav-link{font-family:JetBrains Mono,ui-monospace,monospace;text-transform:uppercase;letter-spacing:.2em;font-size:.7rem}html[data-design=cyber] .section-title{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.02em}html[data-design=cyber] .gradient-text{background:linear-gradient(90deg,var(--cyber-pink),var(--cyber-cyan));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}html[data-design=cyber] .card,html[data-design=cyber] .skill-group,html[data-design=cyber] .timeline-content,html[data-design=cyber] .work-card,html[data-design=cyber] .education-card,html[data-design=cyber] .demo-card,html[data-design=cyber] .contact-form{background:color-mix(in oklab,var(--bg-card) 85%,transparent);border:1px solid var(--accent-start);border-radius:0;box-shadow:0 0 0 1px color-mix(in oklab,var(--accent-start) 25%,transparent),0 0 30px color-mix(in oklab,var(--accent-start) 18%,transparent),inset 0 0 20px color-mix(in oklab,var(--accent-start) 6%,transparent);clip-path:polygon(0 0,calc(100% - 14px) 0,100% 14px,100% 100%,14px 100%,0 calc(100% - 14px))}html[data-design=cyber] .card:hover,html[data-design=cyber] .skill-group:hover,html[data-design=cyber] .work-card:hover,html[data-design=cyber] .demo-card:hover,html[data-design=cyber] .education-card:hover{box-shadow:0 0 0 1px var(--accent-start),0 0 40px color-mix(in oklab,var(--accent-start) 35%,transparent),inset 0 0 30px color-mix(in oklab,var(--accent-start) 10%,transparent)}html[data-design=cyber] .skill-pill,html[data-design=cyber] .demo-tags li,html[data-design=cyber] .work-tags li{background:transparent;border:1px solid var(--accent-start);border-radius:0;font-family:JetBrains Mono,ui-monospace,monospace;text-transform:uppercase;letter-spacing:.12em;font-size:.65rem;padding:.3rem .6rem;color:var(--accent-start)}html[data-design=cyber] .navbar{background:color-mix(in oklab,var(--bg-primary) 85%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--accent-start);box-shadow:0 0 20px color-mix(in oklab,var(--accent-start) 20%,transparent)}html[data-design=cyber] .nav-logo{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.15em}html[data-design=cyber] .hero-cta,html[data-design=cyber] .contact-submit{background:linear-gradient(90deg,var(--cyber-pink),var(--accent-start));color:#fff;border:0;border-radius:0;font-family:var(--font-display);text-transform:uppercase;letter-spacing:.15em;font-weight:700;box-shadow:0 0 20px color-mix(in oklab,var(--cyber-pink) 40%,transparent),0 0 40px color-mix(in oklab,var(--accent-start) 25%,transparent);clip-path:polygon(0 0,calc(100% - 10px) 0,100% 10px,100% 100%,10px 100%,0 calc(100% - 10px))}html[data-design=cyber] .hero-cta:hover,html[data-design=cyber] .contact-submit:hover{box-shadow:0 0 30px color-mix(in oklab,var(--cyber-pink) 60%,transparent),0 0 60px color-mix(in oklab,var(--accent-start) 40%,transparent)}html[data-design=cyber] .form-group input,html[data-design=cyber] .form-group textarea{background:color-mix(in oklab,var(--bg-secondary) 70%,transparent);border:1px solid var(--accent-start);border-radius:0;font-family:JetBrains Mono,ui-monospace,monospace}html[data-design=cyber] .form-group input:focus,html[data-design=cyber] .form-group textarea:focus{box-shadow:0 0 0 2px color-mix(in oklab,var(--accent-start) 40%,transparent)}html[data-design=cyber] .hero{position:relative;overflow:hidden}html[data-design=cyber] .hero:before{content:"";position:absolute;left:50%;bottom:0;width:200%;height:50%;transform:translate(-50%) perspective(600px) rotateX(65deg);transform-origin:50% 0;background-image:linear-gradient(to right,color-mix(in oklab,var(--cyber-cyan) 55%,transparent) 1px,transparent 1px),linear-gradient(to bottom,color-mix(in oklab,var(--cyber-pink) 45%,transparent) 1px,transparent 1px);background-size:48px 48px;mask-image:linear-gradient(to top,black 0%,transparent 85%);-webkit-mask-image:linear-gradient(to top,black 0%,transparent 85%);opacity:.6;pointer-events:none;z-index:0}html[data-design=cyber] .hero>*{position:relative;z-index:1}html[data-design=cyber] .hero-grid,html[data-design=cyber] .hero-gradient{display:none}@media(prefers-reduced-motion:no-preference){html[data-design=cyber] .hero:before{animation:design-cyber-grid 18s linear infinite}@keyframes design-cyber-grid{0%{background-position:0 0,0 0}to{background-position:0 48px,48px 0}}}html[data-design=notebook]{--font-display: "Caveat", "Bradley Hand", "Comic Sans MS", cursive;--radius-sm: .25rem;--radius-md: .5rem;--radius-lg: .75rem;--border-width: 1.5px;--shadow-card: 2px 3px 0 rgba(0, 0, 0, .12), 4px 8px 16px rgba(0, 0, 0, .08);--nb-ink: var(--text-primary);--nb-highlight: color-mix(in oklab, var(--accent-start) 35%, #fff58a);--nb-line: color-mix(in oklab, var(--text-primary) 14%, transparent)}html[data-design=notebook] body{background-image:linear-gradient(to right,var(--nb-line) 1px,transparent 1px),linear-gradient(to bottom,var(--nb-line) 1px,transparent 1px);background-size:28px 28px,28px 28px;background-attachment:fixed;line-height:1.75}html[data-design=notebook] h1,html[data-design=notebook] h2,html[data-design=notebook] h3,html[data-design=notebook] h4{font-family:var(--font-display);font-weight:700;letter-spacing:-.01em;line-height:1.1}html[data-design=notebook] .hero-name{font-family:var(--font-display);font-weight:700;font-size:clamp(3.5rem,10vw,6.5rem);letter-spacing:-.02em;line-height:1;transform:rotate(-1deg);display:inline-block;position:relative}html[data-design=notebook] .hero-name:after{content:"";position:absolute;left:-.2em;right:-.2em;bottom:.05em;height:.35em;background:var(--nb-highlight);mix-blend-mode:multiply;opacity:.55;z-index:-1;transform:skewY(-1deg);pointer-events:none}html[data-design=notebook] .hero-greeting,html[data-design=notebook] .section-label{font-family:var(--font-display);font-size:1.25rem;letter-spacing:0;text-transform:none;color:var(--text-muted)}html[data-design=notebook] .hero-greeting:before{content:"PS: ";color:var(--accent-start);font-style:italic}html[data-design=notebook] .section-title{font-family:var(--font-display);font-size:clamp(2.5rem,6vw,4rem);letter-spacing:-.02em}html[data-design=notebook] .gradient-text{background:none;-webkit-background-clip:initial;background-clip:initial;-webkit-text-fill-color:currentColor;color:var(--accent-start);position:relative}html[data-design=notebook] .card,html[data-design=notebook] .skill-group,html[data-design=notebook] .timeline-content,html[data-design=notebook] .work-card,html[data-design=notebook] .education-card,html[data-design=notebook] .demo-card,html[data-design=notebook] .contact-form{background:var(--bg-card);border:1.5px solid var(--nb-ink);border-radius:var(--radius-md);box-shadow:2px 3px #0000001f,4px 8px 16px #00000014;position:relative;transition:transform var(--transition-medium)}html[data-design=notebook] .card:nth-of-type(odd),html[data-design=notebook] .timeline-content:nth-of-type(odd),html[data-design=notebook] .work-card:nth-of-type(odd),html[data-design=notebook] .education-card:nth-of-type(odd),html[data-design=notebook] .demo-card:nth-of-type(odd){transform:rotate(-.4deg)}html[data-design=notebook] .card:nth-of-type(2n),html[data-design=notebook] .timeline-content:nth-of-type(2n),html[data-design=notebook] .work-card:nth-of-type(2n),html[data-design=notebook] .education-card:nth-of-type(2n),html[data-design=notebook] .demo-card:nth-of-type(2n){transform:rotate(.35deg)}html[data-design=notebook] .card:hover,html[data-design=notebook] .work-card:hover,html[data-design=notebook] .education-card:hover,html[data-design=notebook] .demo-card:hover{transform:rotate(0) translateY(-2px);box-shadow:3px 4px #00000024,6px 12px 20px #0000001a}html[data-design=notebook] .card:before,html[data-design=notebook] .work-card:before,html[data-design=notebook] .demo-card:before,html[data-design=notebook] .education-card:before{content:"";position:absolute;top:-10px;left:18px;width:58px;height:18px;background:color-mix(in oklab,var(--accent-start) 55%,#fff);opacity:.85;transform:rotate(-3deg);box-shadow:0 2px 4px #0000001f;pointer-events:none}html[data-design=notebook] .skill-pill,html[data-design=notebook] .demo-tags li,html[data-design=notebook] .work-tags li{background:color-mix(in oklab,var(--accent-start) 18%,var(--bg-card));border:1px dashed var(--nb-ink);border-radius:999px;font-family:var(--font-display);font-size:1rem;padding:.2rem .8rem;transform:rotate(-1deg)}html[data-design=notebook] .skill-pill:nth-child(2n),html[data-design=notebook] .demo-tags li:nth-child(2n),html[data-design=notebook] .work-tags li:nth-child(2n){transform:rotate(1.2deg)}html[data-design=notebook] .navbar{background:color-mix(in oklab,var(--bg-nav) 92%,transparent);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-bottom:1.5px dashed var(--nb-line)}html[data-design=notebook] .nav-logo{font-family:var(--font-display);font-size:1.6rem;font-weight:700}html[data-design=notebook] .nav-link{font-family:var(--font-display);font-size:1.15rem;letter-spacing:0;text-transform:none}html[data-design=notebook] .nav-link:hover{text-decoration:underline;text-decoration-style:wavy;text-underline-offset:.25em}html[data-design=notebook] .hero-cta,html[data-design=notebook] .contact-submit{background:var(--bg-card);color:var(--nb-ink);border:2px solid var(--nb-ink);border-radius:999px;font-family:var(--font-display);font-size:1.25rem;font-weight:700;letter-spacing:0;text-transform:none;box-shadow:3px 3px 0 var(--accent-start);padding:.75rem 1.75rem}html[data-design=notebook] .hero-cta:hover,html[data-design=notebook] .contact-submit:hover{transform:translate(-1px,-1px);box-shadow:5px 5px 0 var(--accent-start)}html[data-design=notebook] .hero-cta:active,html[data-design=notebook] .contact-submit:active{transform:translate(2px,2px);box-shadow:1px 1px 0 var(--accent-start)}html[data-design=notebook] .form-group input,html[data-design=notebook] .form-group textarea{background:transparent;border:0;border-bottom:1.5px dashed var(--nb-ink);border-radius:0;font-family:var(--font-sans);padding:.5rem .25rem}html[data-design=notebook] .form-group input:focus,html[data-design=notebook] .form-group textarea:focus{border-bottom-style:solid;border-bottom-color:var(--accent-start);box-shadow:none;outline:0}html[data-design=notebook] .hero-grid,html[data-design=notebook] .hero-gradient{display:none}html[data-design=brutalist]{--font-sans: "Times New Roman", Times, Georgia, serif;--font-display: var(--font-sans);--radius-sm: 0;--radius-md: 0;--radius-lg: 0;--border-width: 3px;--shadow-card: none;--section-padding: 4rem 0;--container-width: 1080px;--br-yellow: #ffe000;--br-ink: var(--text-primary)}html[data-design=brutalist] body{font-size:1.05rem;line-height:1.55;letter-spacing:0}html[data-design=brutalist] h1,html[data-design=brutalist] h2,html[data-design=brutalist] h3,html[data-design=brutalist] h4{font-weight:900;letter-spacing:-.01em;line-height:1;font-family:var(--font-display)}html[data-design=brutalist] .hero-name{font-family:var(--font-display);font-size:clamp(3.5rem,11vw,7rem);font-weight:900;line-height:.9;letter-spacing:-.04em;background:var(--br-yellow);color:#000;padding:.05em .25em;display:inline-block;transform:rotate(-1deg);border:4px solid var(--br-ink);box-shadow:8px 8px 0 var(--br-ink)}html[data-design=brutalist] .hero-greeting,html[data-design=brutalist] .section-label{font-family:Arial Black,Arial,sans-serif;text-transform:uppercase;letter-spacing:0;font-weight:900;font-size:.85rem;background:var(--br-ink);color:var(--bg-primary);padding:.15rem .45rem;display:inline-block}html[data-design=brutalist] .section-title{font-size:clamp(2.5rem,7vw,4.5rem);font-weight:900;letter-spacing:-.04em;text-decoration:underline;text-decoration-thickness:6px;text-underline-offset:.2em}html[data-design=brutalist] .section{border-top:4px solid var(--br-ink);padding-top:3rem}html[data-design=brutalist] .section:nth-of-type(2n){border-top-style:double;border-top-width:8px}html[data-design=brutalist] .gradient-text{background:var(--br-yellow);-webkit-background-clip:initial;background-clip:initial;-webkit-text-fill-color:#000;color:#000;padding:0 .15em}html[data-design=brutalist] .card,html[data-design=brutalist] .skill-group,html[data-design=brutalist] .timeline-content,html[data-design=brutalist] .work-card,html[data-design=brutalist] .education-card,html[data-design=brutalist] .demo-card,html[data-design=brutalist] .contact-form{background:var(--bg-card);border:4px solid var(--br-ink);border-radius:0;box-shadow:8px 8px 0 var(--br-ink)}html[data-design=brutalist] .card:hover,html[data-design=brutalist] .work-card:hover,html[data-design=brutalist] .education-card:hover,html[data-design=brutalist] .demo-card:hover,html[data-design=brutalist] .skill-group:hover,html[data-design=brutalist] .timeline-content:hover{background:var(--br-yellow);color:#000;transform:translate(-2px,-2px);box-shadow:10px 10px 0 var(--br-ink)}html[data-design=brutalist] .card:hover *,html[data-design=brutalist] .work-card:hover *,html[data-design=brutalist] .demo-card:hover *{color:#000!important;border-color:#000!important}html[data-design=brutalist] .skill-pill,html[data-design=brutalist] .demo-tags li,html[data-design=brutalist] .work-tags li{background:var(--bg-secondary);border:2px solid var(--br-ink);border-radius:0;font-family:Arial,sans-serif;font-weight:700;text-transform:uppercase;letter-spacing:.03em;padding:.25rem .55rem}html[data-design=brutalist] .navbar{background:var(--bg-primary);backdrop-filter:none;-webkit-backdrop-filter:none;border-bottom:4px solid var(--br-ink)}html[data-design=brutalist] .nav-logo{font-family:Arial Black,Arial,sans-serif;text-transform:uppercase;letter-spacing:-.02em;text-decoration:underline;text-decoration-thickness:3px}html[data-design=brutalist] .nav-link{font-family:var(--font-sans);font-style:italic;font-size:1rem;text-decoration:underline;text-underline-offset:.15em}html[data-design=brutalist] .nav-link:hover{background:var(--br-yellow);color:#000;text-decoration:none}html[data-design=brutalist] .hero-cta,html[data-design=brutalist] .contact-submit{background:var(--br-yellow);color:#000;border:4px solid var(--br-ink);border-radius:0;font-family:Arial Black,Arial,sans-serif;font-weight:900;text-transform:uppercase;letter-spacing:.02em;box-shadow:6px 6px 0 var(--br-ink);padding:.85rem 1.75rem}html[data-design=brutalist] .hero-cta:hover,html[data-design=brutalist] .contact-submit:hover{transform:translate(-2px,-2px);box-shadow:8px 8px 0 var(--br-ink)}html[data-design=brutalist] .hero-cta:active,html[data-design=brutalist] .contact-submit:active{transform:translate(3px,3px);box-shadow:2px 2px 0 var(--br-ink)}html[data-design=brutalist] .form-group input,html[data-design=brutalist] .form-group textarea{background:var(--bg-primary);border:3px solid var(--br-ink);border-radius:0;font-family:Arial,sans-serif;padding:.6rem .75rem}html[data-design=brutalist] .form-group input:focus,html[data-design=brutalist] .form-group textarea:focus{background:var(--br-yellow);color:#000;outline:0;box-shadow:4px 4px 0 var(--br-ink)}html[data-design=brutalist] a{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:.15em}html[data-design=brutalist] .hero-grid,html[data-design=brutalist] .hero-gradient{display:none}html[data-design=blueprint]{--font-sans: "Inter Tight", "Inter", system-ui, sans-serif;--font-display: "JetBrains Mono", ui-monospace, monospace;--radius-sm: 0;--radius-md: 0;--radius-lg: 0;--border-width: 1px;--shadow-card: none;--bp-ink: color-mix(in oklab, #ffffff 92%, var(--accent-start));--bp-grid: color-mix(in oklab, var(--accent-start) 35%, transparent);--bp-grid-strong: color-mix(in oklab, var(--accent-start) 55%, transparent);--bp-tint: color-mix(in oklab, var(--bg-primary) 82%, var(--accent-start))}html[data-design=blueprint][data-theme=light],html[data-design=blueprint][data-theme=nord-light],html[data-design=blueprint][data-theme=catppuccin-latte],html[data-design=blueprint][data-theme=solarized-light],html[data-design=blueprint][data-theme=sepia],html[data-design=blueprint][data-theme=paper]{--bp-ink: color-mix(in oklab, var(--text-primary) 80%, transparent);--bp-grid: color-mix(in oklab, var(--accent-start) 30%, transparent);--bp-grid-strong: color-mix(in oklab, var(--accent-start) 50%, transparent);--bp-tint: color-mix(in oklab, var(--bg-primary) 88%, var(--accent-start))}html[data-design=blueprint] body{background-color:var(--bp-tint);background-image:linear-gradient(to right,var(--bp-grid) 1px,transparent 1px),linear-gradient(to bottom,var(--bp-grid) 1px,transparent 1px),linear-gradient(to right,var(--bp-grid-strong) 1px,transparent 1px),linear-gradient(to bottom,var(--bp-grid-strong) 1px,transparent 1px);background-size:32px 32px,32px 32px,128px 128px,128px 128px;background-attachment:fixed;color:var(--bp-ink);letter-spacing:.005em}html[data-design=blueprint] h1,html[data-design=blueprint] h2,html[data-design=blueprint] h3,html[data-design=blueprint] h4{color:var(--bp-ink);font-weight:700;letter-spacing:-.01em}html[data-design=blueprint] .hero-name{font-family:var(--font-sans);font-size:clamp(3rem,9vw,5.5rem);font-weight:800;letter-spacing:-.04em;line-height:.95;color:var(--bp-ink);position:relative;display:inline-block;padding:0 .5em}html[data-design=blueprint] .hero-name:before,html[data-design=blueprint] .hero-name:after{content:"";position:absolute;top:50%;width:.4em;height:1em;border:1px solid var(--bp-ink);transform:translateY(-50%);opacity:.7}html[data-design=blueprint] .hero-name:before{left:-.1em;border-right:0}html[data-design=blueprint] .hero-name:after{right:-.1em;border-left:0}html[data-design=blueprint] .hero-greeting,html[data-design=blueprint] .section-label,html[data-design=blueprint] .nav-link{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.15em;font-size:.72rem;color:color-mix(in oklab,var(--bp-ink) 80%,transparent)}html[data-design=blueprint] .section-label:before{content:"SEC · ";opacity:.6}html[data-design=blueprint] .section-title{font-family:var(--font-sans);font-size:clamp(2rem,5vw,3.5rem);font-weight:800;letter-spacing:-.03em;border-bottom:1px solid var(--bp-ink);padding-bottom:.5rem;margin-bottom:1.5rem;position:relative}html[data-design=blueprint] .section-title:after{content:"—";display:inline-block;margin-left:.5em;font-family:var(--font-display);font-weight:400;opacity:.6}html[data-design=blueprint] .gradient-text{background:none;-webkit-background-clip:initial;background-clip:initial;-webkit-text-fill-color:currentColor;color:var(--bp-ink);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.2em;text-decoration-color:color-mix(in oklab,var(--bp-ink) 40%,transparent)}html[data-design=blueprint] .section[data-num]{position:relative}html[data-design=blueprint] .section[data-num]:before{content:"REV-" attr(data-num);position:absolute;top:.75rem;right:.5rem;font-family:var(--font-display);font-size:.65rem;letter-spacing:.15em;color:color-mix(in oklab,var(--bp-ink) 60%,transparent);padding:.15rem .4rem;border:1px solid color-mix(in oklab,var(--bp-ink) 40%,transparent);pointer-events:none}html[data-design=blueprint] .card,html[data-design=blueprint] .skill-group,html[data-design=blueprint] .timeline-content,html[data-design=blueprint] .work-card,html[data-design=blueprint] .education-card,html[data-design=blueprint] .demo-card,html[data-design=blueprint] .contact-form{background:color-mix(in oklab,var(--bg-card) 50%,transparent);border:1px solid var(--bp-ink);border-radius:0;box-shadow:none;position:relative}html[data-design=blueprint] .card:before,html[data-design=blueprint] .card:after,html[data-design=blueprint] .work-card:before,html[data-design=blueprint] .work-card:after,html[data-design=blueprint] .education-card:before,html[data-design=blueprint] .education-card:after,html[data-design=blueprint] .demo-card:before,html[data-design=blueprint] .demo-card:after{content:"";position:absolute;width:10px;height:10px;border:2px solid var(--bp-ink);pointer-events:none}html[data-design=blueprint] .card:before,html[data-design=blueprint] .work-card:before,html[data-design=blueprint] .education-card:before,html[data-design=blueprint] .demo-card:before{top:-5px;left:-5px;border-right:0;border-bottom:0}html[data-design=blueprint] .card:after,html[data-design=blueprint] .work-card:after,html[data-design=blueprint] .education-card:after,html[data-design=blueprint] .demo-card:after{bottom:-5px;right:-5px;border-left:0;border-top:0}html[data-design=blueprint] .skill-pill,html[data-design=blueprint] .demo-tags li,html[data-design=blueprint] .work-tags li{background:transparent;border:1px solid var(--bp-ink);border-radius:0;font-family:var(--font-display);font-size:.68rem;text-transform:uppercase;letter-spacing:.1em;padding:.25rem .55rem;color:var(--bp-ink)}html[data-design=blueprint] .navbar{background:color-mix(in oklab,var(--bp-tint) 90%,transparent);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-bottom:1px solid var(--bp-ink)}html[data-design=blueprint] .nav-logo{font-family:var(--font-display);font-size:.95rem;letter-spacing:.05em;color:var(--bp-ink)}html[data-design=blueprint] .nav-logo:before{content:"⌗ ";opacity:.6}html[data-design=blueprint] .hero-cta,html[data-design=blueprint] .contact-submit{background:transparent;color:var(--bp-ink);border:1px solid var(--bp-ink);border-radius:0;font-family:var(--font-display);text-transform:uppercase;letter-spacing:.2em;font-size:.8rem;padding:.9rem 1.6rem;position:relative}html[data-design=blueprint] .hero-cta:before,html[data-design=blueprint] .contact-submit:before{content:"[ ";opacity:.5}html[data-design=blueprint] .hero-cta:after,html[data-design=blueprint] .contact-submit:after{content:" ]";opacity:.5}html[data-design=blueprint] .hero-cta:hover,html[data-design=blueprint] .contact-submit:hover{background:color-mix(in oklab,var(--bp-ink) 12%,transparent);box-shadow:inset 0 0 0 1px var(--bp-ink)}html[data-design=blueprint] .form-group input,html[data-design=blueprint] .form-group textarea{background:transparent;border:1px solid var(--bp-ink);border-radius:0;font-family:var(--font-display);font-size:.85rem;color:var(--bp-ink)}html[data-design=blueprint] .form-group input:focus,html[data-design=blueprint] .form-group textarea:focus{outline:0;box-shadow:inset 0 0 0 1px var(--bp-ink)}html[data-design=blueprint] .hero-grid,html[data-design=blueprint] .hero-gradient{display:none}html[data-design=academic]{--font-sans: "EB Garamond", "Crimson Pro", "Source Serif Pro", Georgia, "Times New Roman", serif;--font-display: var(--font-sans);--radius-sm: 0;--radius-md: 0;--radius-lg: 0;--border-width: 1px;--shadow-card: none;--section-padding: 5.5rem 0;--container-width: 880px;counter-reset:acad-section}html[data-design=academic] body{font-size:1.15rem;line-height:1.75;letter-spacing:.005em;background:var(--bg-primary)}html[data-design=academic] p{text-align:justify;text-justify:inter-word;hyphens:auto;-webkit-hyphens:auto}html[data-design=academic] h1,html[data-design=academic] h2,html[data-design=academic] h3,html[data-design=academic] h4{font-family:var(--font-display);font-weight:700;letter-spacing:0}html[data-design=academic] .hero{text-align:center;min-height:auto;align-items:flex-start;padding-top:calc(var(--nav-height) + 4.5rem);padding-bottom:5rem}html[data-design=academic] .hero-inner,html[data-design=academic] .hero-content{text-align:center;margin:0 auto;padding-top:0}html[data-design=academic] .hero-name{font-family:var(--font-display);font-size:clamp(2.5rem,6vw,4rem);font-weight:700;letter-spacing:-.005em;line-height:1.1;margin:0 auto .5rem;text-align:center}html[data-design=academic] .hero-greeting{font-family:var(--font-display);font-style:italic;text-transform:none;letter-spacing:0;font-size:1rem;color:var(--text-muted)}html[data-design=academic] .hero-greeting:before{content:"Abstract. ";font-weight:700;font-style:normal;color:var(--text-primary)}html[data-design=academic] .hero-tagline{font-style:italic;font-size:1.25rem}html[data-design=academic] .hero-description{font-size:1.1rem;line-height:1.75;max-width:62ch;margin-left:auto;margin-right:auto;text-align:center;hyphens:none;-webkit-hyphens:none}html[data-design=academic] .section{counter-increment:acad-section;border-top:1px solid color-mix(in oklab,var(--text-primary) 25%,transparent);padding-top:3.25rem}html[data-design=academic] .section-label{font-family:JetBrains Mono,ui-monospace,monospace;text-transform:uppercase;letter-spacing:.18em;font-size:.7rem;color:var(--text-muted)}html[data-design=academic] .section-title{font-family:var(--font-display);font-size:clamp(1.9rem,3.5vw,2.6rem);font-weight:700;letter-spacing:-.005em;line-height:1.2;margin-top:.25rem;margin-bottom:1.75rem;hyphens:none;-webkit-hyphens:none}html[data-design=academic] .section-title:before{content:counter(acad-section,decimal-leading-zero) ".  ";font-family:var(--font-display);font-weight:700;color:var(--accent-start)}html[data-design=academic] .gradient-text{background:none;-webkit-background-clip:initial;background-clip:initial;-webkit-text-fill-color:currentColor;color:var(--text-primary);font-style:italic}html[data-design=academic] .card,html[data-design=academic] .skill-group,html[data-design=academic] .timeline-content,html[data-design=academic] .work-card,html[data-design=academic] .education-card,html[data-design=academic] .demo-card,html[data-design=academic] .contact-form{background:transparent;border:1px solid color-mix(in oklab,var(--text-primary) 25%,transparent);border-radius:0;box-shadow:none;padding:1.85rem 2.15rem}html[data-design=academic] .work-card h3:before,html[data-design=academic] .demo-card h3:before,html[data-design=academic] .education-card h3:before{content:"§  ";font-family:var(--font-display);color:var(--accent-start);font-weight:400}html[data-design=academic] .skill-pill,html[data-design=academic] .demo-tags li,html[data-design=academic] .work-tags li{background:transparent;border:0;border-radius:0;font-family:JetBrains Mono,ui-monospace,monospace;font-size:.72rem;font-weight:500;text-transform:none;letter-spacing:.04em;padding:.1rem 0;color:var(--accent-start)}html[data-design=academic] .skill-pill:before,html[data-design=academic] .demo-tags li:before,html[data-design=academic] .work-tags li:before{content:"["}html[data-design=academic] .skill-pill:after,html[data-design=academic] .demo-tags li:after,html[data-design=academic] .work-tags li:after{content:"]"}html[data-design=academic] .navbar{background:var(--bg-primary);backdrop-filter:none;-webkit-backdrop-filter:none;border-bottom:1px solid color-mix(in oklab,var(--text-primary) 20%,transparent)}html[data-design=academic] .nav-logo{font-family:var(--font-display);font-style:italic;font-weight:700;font-size:1.15rem;letter-spacing:0;white-space:nowrap;flex-shrink:0}html[data-design=academic] .nav-links{gap:1.25rem}html[data-design=academic] .nav-link{font-family:var(--font-display);font-variant:small-caps;text-transform:lowercase;letter-spacing:.04em;font-size:1rem;white-space:nowrap;hyphens:none;-webkit-hyphens:none}html[data-design=academic] .hero-cta,html[data-design=academic] .contact-submit{background:transparent;color:var(--accent-start);border:0;border-bottom:1px solid var(--accent-start);border-radius:0;font-family:var(--font-display);font-style:italic;font-size:1.05rem;text-transform:none;letter-spacing:0;padding:.25rem .1rem;box-shadow:none}html[data-design=academic] .hero-cta:after,html[data-design=academic] .contact-submit:after{content:" →";font-style:normal}html[data-design=academic] .hero-cta:hover,html[data-design=academic] .contact-submit:hover{color:var(--accent-end);border-bottom-color:var(--accent-end);background:transparent;transform:none;box-shadow:none}html[data-design=academic] .form-group input,html[data-design=academic] .form-group textarea{background:transparent;border:0;border-bottom:1px solid color-mix(in oklab,var(--text-primary) 40%,transparent);border-radius:0;font-family:var(--font-display);font-size:1.05rem;padding:.5rem 0}html[data-design=academic] .form-group input:focus,html[data-design=academic] .form-group textarea:focus{outline:0;border-bottom-color:var(--accent-start);box-shadow:none}html[data-design=academic] blockquote{font-style:italic;border-left:2px solid var(--accent-start);padding-left:1rem}html[data-design=academic] .hero-grid,html[data-design=academic] .hero-gradient{display:none}html[data-design=ide]{--font-sans: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--font-display: var(--font-sans);--font-mono: var(--font-sans);--radius-sm: .25rem;--radius-md: .25rem;--radius-lg: .25rem;--border-width: 1px;--shadow-card: none;--ide-keyword: #c678dd;--ide-string: #98c379;--ide-func: #61afef;--ide-number: #d19a66;--ide-comment: color-mix(in oklab, var(--text-muted) 90%, transparent);--ide-gutter: color-mix(in oklab, var(--bg-secondary) 85%, transparent);--ide-line: color-mix(in oklab, var(--text-muted) 45%, transparent);--ide-tab-bg: color-mix(in oklab, var(--bg-secondary) 95%, transparent);--ide-tab-active: var(--bg-card)}html[data-design=ide][data-theme=light],html[data-design=ide][data-theme=nord-light],html[data-design=ide][data-theme=catppuccin-latte],html[data-design=ide][data-theme=solarized-light],html[data-design=ide][data-theme=sepia],html[data-design=ide][data-theme=paper]{--ide-keyword: #7c3aed;--ide-string: #166534;--ide-func: #1d4ed8;--ide-number: #b45309}html[data-design=ide] body{font-size:.95rem;line-height:1.65;letter-spacing:0;padding-bottom:26px}html[data-design=ide] body:after{content:"⎇ main    ✓ no problems    UTF-8    LF    TypeScript    Ln 42, Col 18";position:fixed;bottom:0;left:0;right:0;height:24px;z-index:50;display:flex;align-items:center;padding:0 1rem;background:var(--accent-start);color:var(--bg-primary);font-family:var(--font-mono);font-size:.7rem;letter-spacing:.02em;white-space:nowrap;overflow:hidden;pointer-events:none}html[data-design=ide] h1,html[data-design=ide] h2,html[data-design=ide] h3,html[data-design=ide] h4{font-family:var(--font-display);font-weight:600;letter-spacing:-.005em}html[data-design=ide] .hero-name{font-family:var(--font-display);font-size:clamp(2rem,5.5vw,3.5rem);font-weight:700;letter-spacing:-.015em;color:var(--ide-string)}html[data-design=ide] .hero-name:before{content:'"';color:var(--ide-string);opacity:.8}html[data-design=ide] .hero-name:after{content:'"';color:var(--ide-string);opacity:.8}html[data-design=ide] .hero-greeting{font-family:var(--font-mono);text-transform:none;letter-spacing:0;color:var(--ide-comment);font-style:italic}html[data-design=ide] .hero-greeting:before{content:"// ";opacity:.75}html[data-design=ide] .hero-tagline{font-family:var(--font-mono)}html[data-design=ide] .section-label{font-family:var(--font-mono);text-transform:none;letter-spacing:0;color:var(--ide-comment);font-style:italic}html[data-design=ide] .section-label:before{content:"// ";opacity:.75}html[data-design=ide] .section-title{font-family:var(--font-display);font-weight:700;letter-spacing:-.01em;color:var(--ide-func)}html[data-design=ide] .section-title:before{content:"▸ ";color:var(--text-muted);opacity:.7;font-weight:400}html[data-design=ide] .section-title:after{content:"()";color:var(--text-muted);opacity:.6;font-weight:400}html[data-design=ide] .gradient-text{background:none;-webkit-background-clip:initial;background-clip:initial;-webkit-text-fill-color:currentColor;color:var(--ide-keyword)}html[data-design=ide] .card,html[data-design=ide] .skill-group,html[data-design=ide] .timeline-content,html[data-design=ide] .work-card,html[data-design=ide] .education-card,html[data-design=ide] .demo-card,html[data-design=ide] .contact-form{background:var(--ide-tab-active);border:1px solid var(--border-color-hover);border-radius:.25rem;box-shadow:none;position:relative;padding:2.25rem 1.25rem 1.25rem 2.5rem;overflow:hidden}html[data-design=ide] .card:before,html[data-design=ide] .work-card:before,html[data-design=ide] .education-card:before,html[data-design=ide] .demo-card:before,html[data-design=ide] .contact-form:before{content:"● card.tsx  ×";position:absolute;top:0;left:0;right:0;height:26px;background:var(--ide-tab-bg);border-bottom:1px solid var(--border-color);display:flex;align-items:center;padding:0 .75rem;font-family:var(--font-mono);font-size:.7rem;color:var(--text-muted);letter-spacing:.02em}html[data-design=ide] .skill-group:before{content:"● skills.json  ×";position:absolute;top:0;left:0;right:0;height:26px;background:var(--ide-tab-bg);border-bottom:1px solid var(--border-color);display:flex;align-items:center;padding:0 .75rem;font-family:var(--font-mono);font-size:.7rem;color:var(--text-muted);letter-spacing:.02em}html[data-design=ide] .timeline-content:before{content:"● experience.log  ×";position:absolute;top:0;left:0;right:0;height:26px;background:var(--ide-tab-bg);border-bottom:1px solid var(--border-color);display:flex;align-items:center;padding:0 .75rem;font-family:var(--font-mono);font-size:.7rem;color:var(--text-muted);letter-spacing:.02em}html[data-design=ide] .card:after,html[data-design=ide] .skill-group:after,html[data-design=ide] .timeline-content:after,html[data-design=ide] .work-card:after,html[data-design=ide] .education-card:after,html[data-design=ide] .demo-card:after,html[data-design=ide] .contact-form:after{content:"";position:absolute;top:26px;bottom:0;left:0;width:32px;background:linear-gradient(to right,var(--ide-gutter) 0,var(--ide-gutter) 31px,var(--ide-line) 31px,var(--ide-line) 32px);pointer-events:none}html[data-design=ide] .skill-pill,html[data-design=ide] .demo-tags li,html[data-design=ide] .work-tags li{background:color-mix(in oklab,var(--ide-keyword) 12%,transparent);border:1px solid color-mix(in oklab,var(--ide-keyword) 35%,transparent);border-radius:.2rem;font-family:var(--font-mono);font-size:.72rem;letter-spacing:0;color:var(--ide-keyword);padding:.15rem .5rem}html[data-design=ide] .skill-pill:before,html[data-design=ide] .demo-tags li:before,html[data-design=ide] .work-tags li:before{content:"#";opacity:.6;margin-right:.1rem}html[data-design=ide] .navbar{background:var(--bg-secondary);backdrop-filter:none;-webkit-backdrop-filter:none;border-bottom:1px solid var(--border-color-hover)}html[data-design=ide] .nav-logo{font-family:var(--font-mono);font-size:.9rem;font-weight:600;letter-spacing:0;color:var(--ide-func)}html[data-design=ide] .nav-logo:before{content:"{ ";color:var(--text-muted);opacity:.6}html[data-design=ide] .nav-logo:after{content:" }";color:var(--text-muted);opacity:.6}html[data-design=ide] .nav-link{font-family:var(--font-mono);font-size:.82rem;letter-spacing:0;text-transform:none;color:var(--text-secondary)}html[data-design=ide] .nav-link:before{content:"▸ ";opacity:.5}html[data-design=ide] .hero-cta,html[data-design=ide] .contact-submit{background:var(--ide-func);color:var(--bg-primary);border:0;border-radius:.2rem;font-family:var(--font-mono);font-size:.85rem;font-weight:600;letter-spacing:0;text-transform:none;box-shadow:none;padding:.6rem 1.25rem}html[data-design=ide] .hero-cta:before,html[data-design=ide] .contact-submit:before{content:"▶ ";font-size:.75rem}html[data-design=ide] .hero-cta:hover,html[data-design=ide] .contact-submit:hover{background:color-mix(in oklab,var(--ide-func) 85%,#fff);transform:none}html[data-design=ide] .form-group input,html[data-design=ide] .form-group textarea{background:var(--bg-primary);border:1px solid var(--border-color-hover);border-radius:.2rem;font-family:var(--font-mono);font-size:.85rem;color:var(--ide-string)}html[data-design=ide] .form-group input:focus,html[data-design=ide] .form-group textarea:focus{outline:0;border-color:var(--ide-func);box-shadow:0 0 0 1px var(--ide-func)}html[data-design=ide] .hero-grid,html[data-design=ide] .hero-gradient{display:none}html[data-design=risograph]{--radius-sm: .15rem;--radius-md: .25rem;--radius-lg: .25rem;--border-width: 2px;--shadow-card: 4px 4px 0 color-mix(in oklab, var(--accent-start) 70%, var(--text-primary));--riso-pink: #ff5b88;--riso-cyan: #3ad3ff}html[data-design=risograph] body{letter-spacing:.005em;background:var(--bg-primary)}html[data-design=risograph] body:after{content:"";position:fixed;inset:0;pointer-events:none;z-index:1;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='240' height='240'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' seed='7' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 0.55 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");opacity:.32;mix-blend-mode:multiply}html[data-design=risograph] .section{position:relative}html[data-design=risograph] .section:nth-of-type(odd){background:color-mix(in oklab,var(--accent-start) 9%,var(--bg-primary))}html[data-design=risograph] .section:nth-of-type(2n){background:color-mix(in oklab,var(--accent-end) 9%,var(--bg-primary))}html[data-design=risograph] h1,html[data-design=risograph] h2,html[data-design=risograph] h3,html[data-design=risograph] h4{font-weight:800;letter-spacing:-.01em}html[data-design=risograph] .hero-name,html[data-design=risograph] .section-title{text-shadow:-1.5px 1.5px 0 color-mix(in oklab,var(--riso-pink) 65%,transparent),1.5px -1.5px 0 color-mix(in oklab,var(--riso-cyan) 65%,transparent)}html[data-design=risograph] .hero-name{font-family:var(--font-sans);font-weight:900;font-size:clamp(3rem,9vw,5.5rem);letter-spacing:-.03em;line-height:.95}html[data-design=risograph] .hero-greeting,html[data-design=risograph] .section-label{display:inline-block;background:var(--text-primary);color:var(--bg-primary);padding:.15rem .5rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;font-size:.7rem;transform:rotate(-1.5deg);box-shadow:2px 2px color-mix(in oklab,var(--accent-start) 80%,transparent)}html[data-design=risograph] .section-title{font-size:clamp(2rem,5vw,3.25rem);font-weight:900;letter-spacing:-.03em}html[data-design=risograph] .gradient-text{background:none;-webkit-background-clip:initial;background-clip:initial;-webkit-text-fill-color:currentColor;color:var(--accent-start);text-shadow:-1.5px 1.5px 0 color-mix(in oklab,var(--riso-pink) 70%,transparent),1.5px -1.5px 0 color-mix(in oklab,var(--riso-cyan) 70%,transparent)}html[data-design=risograph] .card,html[data-design=risograph] .skill-group,html[data-design=risograph] .timeline-content,html[data-design=risograph] .work-card,html[data-design=risograph] .education-card,html[data-design=risograph] .demo-card,html[data-design=risograph] .contact-form{background-color:var(--bg-card);background-image:radial-gradient(color-mix(in oklab,var(--accent-start) 28%,transparent) 1.1px,transparent 1.4px);background-size:8px 8px;background-position:0 0;border:2px solid var(--text-primary);border-radius:.25rem;box-shadow:4px 4px color-mix(in oklab,var(--accent-start) 75%,var(--text-primary))}html[data-design=risograph] .section:nth-of-type(2n) .card,html[data-design=risograph] .section:nth-of-type(2n) .work-card,html[data-design=risograph] .section:nth-of-type(2n) .education-card,html[data-design=risograph] .section:nth-of-type(2n) .demo-card,html[data-design=risograph] .section:nth-of-type(2n) .skill-group,html[data-design=risograph] .section:nth-of-type(2n) .timeline-content{background-image:radial-gradient(color-mix(in oklab,var(--accent-end) 28%,transparent) 1.1px,transparent 1.4px);box-shadow:4px 4px color-mix(in oklab,var(--accent-end) 75%,var(--text-primary))}html[data-design=risograph] .card:hover,html[data-design=risograph] .work-card:hover,html[data-design=risograph] .education-card:hover,html[data-design=risograph] .demo-card:hover{transform:translate(-2px,-2px);box-shadow:6px 6px color-mix(in oklab,var(--accent-start) 85%,var(--text-primary))}html[data-design=risograph] .skill-pill,html[data-design=risograph] .demo-tags li,html[data-design=risograph] .work-tags li{background:var(--text-primary);color:var(--bg-primary);border:0;border-radius:0;font-weight:700;letter-spacing:.04em;text-transform:uppercase;font-size:.65rem;padding:.25rem .55rem;box-shadow:2px 2px color-mix(in oklab,var(--accent-start) 70%,transparent)}html[data-design=risograph] .skill-pill:nth-child(odd),html[data-design=risograph] .demo-tags li:nth-child(odd),html[data-design=risograph] .work-tags li:nth-child(odd){background:var(--accent-start);color:var(--bg-primary)}html[data-design=risograph] .navbar{background:var(--bg-primary);backdrop-filter:none;-webkit-backdrop-filter:none;border-bottom:2px solid var(--text-primary)}html[data-design=risograph] .nav-logo{font-weight:900;letter-spacing:-.02em;text-shadow:-1px 1px 0 color-mix(in oklab,var(--riso-pink) 60%,transparent),1px -1px 0 color-mix(in oklab,var(--riso-cyan) 60%,transparent)}html[data-design=risograph] .nav-link{font-weight:700;text-transform:uppercase;letter-spacing:.08em;font-size:.75rem}html[data-design=risograph] .hero-cta,html[data-design=risograph] .contact-submit{background:var(--accent-start);color:var(--bg-primary);border:2px solid var(--text-primary);border-radius:.25rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;box-shadow:4px 4px 0 var(--text-primary);padding:.8rem 1.5rem}html[data-design=risograph] .hero-cta:hover,html[data-design=risograph] .contact-submit:hover{transform:translate(-2px,-2px);box-shadow:6px 6px 0 var(--text-primary)}html[data-design=risograph] .hero-cta:active,html[data-design=risograph] .contact-submit:active{transform:translate(2px,2px);box-shadow:2px 2px 0 var(--text-primary)}html[data-design=risograph] .form-group input,html[data-design=risograph] .form-group textarea{background:var(--bg-primary);border:2px solid var(--text-primary);border-radius:.15rem;font-family:var(--font-sans);padding:.6rem .75rem}html[data-design=risograph] .form-group input:focus,html[data-design=risograph] .form-group textarea:focus{outline:0;box-shadow:3px 3px 0 var(--accent-start)}html[data-design=risograph] .hero-grid,html[data-design=risograph] .hero-gradient{display:none}html[data-design=deco]{--font-sans: "Cormorant Garamond", "Playfair Display", Georgia, serif;--font-display: "Poiret One", "Playfair Display", "Cormorant Garamond", serif;--radius-sm: 0;--radius-md: 0;--radius-lg: 0;--border-width: 1px;--shadow-card: none;--deco-gold: #c9a961;--deco-gold-grad: linear-gradient(135deg, #e8cf89 0%, #b88d3a 45%, #e8cf89 100%);counter-reset:deco-section}html[data-design=deco][data-theme=light],html[data-design=deco][data-theme=nord-light],html[data-design=deco][data-theme=catppuccin-latte],html[data-design=deco][data-theme=solarized-light],html[data-design=deco][data-theme=sepia],html[data-design=deco][data-theme=paper]{--deco-gold: #886420;--deco-gold-grad: linear-gradient(135deg, #a8842a 0%, #6e4e12 45%, #a8842a 100%)}html[data-design=deco] body{background-image:radial-gradient(ellipse 120% 70% at 50% -20%,color-mix(in oklab,var(--deco-gold) 22%,transparent),transparent 60%),conic-gradient(from 90deg at 50% 0%,transparent 0deg,color-mix(in oklab,var(--deco-gold) 7%,transparent) 4deg,transparent 8deg,color-mix(in oklab,var(--deco-gold) 7%,transparent) 12deg,transparent 16deg,color-mix(in oklab,var(--deco-gold) 7%,transparent) 20deg,transparent 180deg);background-attachment:fixed;background-color:var(--bg-primary);letter-spacing:.015em}html[data-design=deco] h1,html[data-design=deco] h2,html[data-design=deco] h3,html[data-design=deco] h4{font-family:var(--font-display);font-weight:400;letter-spacing:.08em;text-transform:uppercase}html[data-design=deco] .hero-name{font-family:var(--font-display);font-weight:400;font-size:clamp(3rem,9vw,6rem);letter-spacing:.06em;text-transform:uppercase;line-height:1;background:var(--deco-gold-grad);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;text-align:center;display:block;position:relative}html[data-design=deco] .hero-name:before,html[data-design=deco] .hero-name:after{content:"";display:block;height:6px;margin:.5rem auto;width:min(360px,60%);border-top:1px solid var(--deco-gold);border-bottom:1px solid var(--deco-gold)}html[data-design=deco] .hero-greeting,html[data-design=deco] .section-label{font-family:var(--font-display);letter-spacing:.35em;text-transform:uppercase;font-size:.75rem;font-weight:400;color:var(--deco-gold)}html[data-design=deco] .section{counter-increment:deco-section;border-top:1px solid var(--deco-gold);border-bottom:1px solid var(--deco-gold);padding:5rem 0;position:relative}html[data-design=deco] .section:before{content:"";position:absolute;top:4px;left:0;right:0;height:0;border-top:1px solid color-mix(in oklab,var(--deco-gold) 60%,transparent)}html[data-design=deco] .section-title{font-family:var(--font-display);font-size:clamp(2rem,4.5vw,3rem);font-weight:400;letter-spacing:.1em;text-align:center;margin-bottom:2rem;text-transform:uppercase}html[data-design=deco] .section-title:before{content:counter(deco-section,upper-roman) "  ·  ";color:var(--deco-gold);font-weight:400}html[data-design=deco] .gradient-text{background:var(--deco-gold-grad);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}html[data-design=deco] .card,html[data-design=deco] .skill-group,html[data-design=deco] .timeline-content,html[data-design=deco] .work-card,html[data-design=deco] .education-card,html[data-design=deco] .demo-card,html[data-design=deco] .contact-form{background:color-mix(in oklab,var(--bg-card) 80%,transparent);border:1px solid var(--deco-gold);border-radius:0;box-shadow:inset 0 0 0 3px var(--bg-card),inset 0 0 0 4px var(--deco-gold);padding:1.75rem;clip-path:polygon(8px 0,calc(100% - 8px) 0,100% 8px,100% calc(100% - 8px),calc(100% - 8px) 100%,8px 100%,0 calc(100% - 8px),0 8px)}html[data-design=deco] .card h3,html[data-design=deco] .work-card h3,html[data-design=deco] .education-card h3,html[data-design=deco] .demo-card h3{text-align:center;color:var(--deco-gold);font-size:1.1rem;letter-spacing:.15em;margin-bottom:1rem;position:relative}html[data-design=deco] .card h3:after,html[data-design=deco] .work-card h3:after,html[data-design=deco] .education-card h3:after,html[data-design=deco] .demo-card h3:after{content:"◆";display:block;margin:.4rem auto 0;color:var(--deco-gold);font-size:.6rem}html[data-design=deco] .skill-pill,html[data-design=deco] .demo-tags li,html[data-design=deco] .work-tags li{background:transparent;border:1px solid var(--deco-gold);border-radius:0;font-family:var(--font-display);font-size:.7rem;text-transform:uppercase;letter-spacing:.2em;padding:.35rem .75rem;color:var(--deco-gold)}html[data-design=deco] .navbar{background:color-mix(in oklab,var(--bg-primary) 92%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--deco-gold);box-shadow:0 1px 0 var(--deco-gold)}html[data-design=deco] .nav-logo{font-family:var(--font-display);font-size:1.2rem;letter-spacing:.3em;text-transform:uppercase;background:var(--deco-gold-grad);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}html[data-design=deco] .nav-link{font-family:var(--font-display);font-size:.75rem;letter-spacing:.3em;text-transform:uppercase;font-weight:400}html[data-design=deco] .hero-cta,html[data-design=deco] .contact-submit{background:var(--deco-gold-grad);color:var(--bg-primary);border:0;border-radius:0;font-family:var(--font-display);text-transform:uppercase;letter-spacing:.3em;font-size:.8rem;font-weight:400;padding:.9rem 2rem;clip-path:polygon(10px 0,calc(100% - 10px) 0,100% 50%,calc(100% - 10px) 100%,10px 100%,0 50%);box-shadow:none}html[data-design=deco] .hero-cta:hover,html[data-design=deco] .contact-submit:hover{filter:brightness(1.1);transform:none}html[data-design=deco] .form-group input,html[data-design=deco] .form-group textarea{background:transparent;border:1px solid var(--deco-gold);border-radius:0;font-family:var(--font-sans);font-size:1rem;padding:.75rem 1rem}html[data-design=deco] .form-group input:focus,html[data-design=deco] .form-group textarea:focus{outline:0;box-shadow:inset 0 0 0 1px var(--deco-gold)}html[data-design=deco] .hero-grid{display:none}html[data-design=deco] .hero-gradient{background:radial-gradient(circle at 50% 0%,color-mix(in oklab,var(--deco-gold) 35%,transparent),transparent 60%);opacity:.8}html[data-design=wabisabi]{--font-sans: "Shippori Mincho", "Noto Serif JP", "Cormorant Garamond", "Hiragino Mincho ProN", "Yu Mincho", Georgia, serif;--font-display: var(--font-sans);--radius-sm: 0;--radius-md: 0;--radius-lg: 0;--border-width: 1px;--shadow-card: none;--section-padding: 9rem 0;--container-width: 760px;--wabi-ink: color-mix(in oklab, var(--text-primary) 95%, transparent);--wabi-paper: color-mix(in oklab, var(--bg-primary) 90%, #f2ece1);--wabi-hair: color-mix(in oklab, var(--text-primary) 18%, transparent)}html[data-design=wabisabi] body{background:var(--wabi-paper);color:var(--wabi-ink);font-size:1.05rem;line-height:2;letter-spacing:.04em}html[data-design=wabisabi] h1,html[data-design=wabisabi] h2,html[data-design=wabisabi] h3,html[data-design=wabisabi] h4{font-family:var(--font-display);font-weight:400;letter-spacing:.06em;line-height:1.4}html[data-design=wabisabi] .hero{padding:8rem 0 10rem;position:relative}html[data-design=wabisabi] .hero-name{font-family:var(--font-display);font-weight:400;font-size:clamp(2.5rem,5.5vw,4rem);letter-spacing:.02em;line-height:1.5;color:var(--wabi-ink)}html[data-design=wabisabi] .hero-greeting,html[data-design=wabisabi] .section-label{font-family:JetBrains Mono,ui-monospace,monospace;text-transform:lowercase;letter-spacing:.3em;font-size:.65rem;font-weight:400;color:color-mix(in oklab,var(--wabi-ink) 55%,transparent)}html[data-design=wabisabi] .hero-tagline{font-weight:400;font-style:italic;letter-spacing:.03em}html[data-design=wabisabi] .hero-description{font-size:1rem;max-width:48ch;line-height:2.1;color:color-mix(in oklab,var(--wabi-ink) 75%,transparent)}html[data-design=wabisabi] .section{position:relative;padding-left:2.5rem;border:0}html[data-design=wabisabi] .section:before{content:"";position:absolute;left:0;top:2rem;bottom:2rem;width:1px;background:var(--wabi-hair)}html[data-design=wabisabi] .section-title{font-family:var(--font-display);font-size:clamp(1.5rem,3vw,2rem);font-weight:400;letter-spacing:.04em;margin-bottom:3rem;color:var(--wabi-ink)}html[data-design=wabisabi] .section-title:after{content:"";display:block;width:24px;height:1px;background:var(--wabi-hair);margin-top:1.25rem}html[data-design=wabisabi] .gradient-text{background:none;-webkit-background-clip:initial;background-clip:initial;-webkit-text-fill-color:currentColor;color:var(--accent-start);font-style:italic}html[data-design=wabisabi] .card,html[data-design=wabisabi] .skill-group,html[data-design=wabisabi] .timeline-content,html[data-design=wabisabi] .work-card,html[data-design=wabisabi] .education-card,html[data-design=wabisabi] .demo-card,html[data-design=wabisabi] .contact-form{background:transparent;border:0;border-top:1px solid var(--wabi-hair);border-radius:0;box-shadow:none;padding:2rem 0 2.5rem}html[data-design=wabisabi] .skill-pill,html[data-design=wabisabi] .demo-tags li,html[data-design=wabisabi] .work-tags li{background:transparent;border:0;border-radius:0;font-family:JetBrains Mono,ui-monospace,monospace;font-size:.7rem;letter-spacing:.15em;font-weight:400;text-transform:lowercase;padding:0;color:color-mix(in oklab,var(--wabi-ink) 65%,transparent)}html[data-design=wabisabi] .skill-pill+.skill-pill:before,html[data-design=wabisabi] .demo-tags li+li:before,html[data-design=wabisabi] .work-tags li+li:before{content:"·";margin:0 .6rem 0 -.2rem;opacity:.5}html[data-design=wabisabi] .navbar{background:color-mix(in oklab,var(--wabi-paper) 95%,transparent);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-bottom:1px solid var(--wabi-hair)}html[data-design=wabisabi] .nav-logo{font-family:var(--font-display);font-size:1rem;font-weight:400;letter-spacing:.15em;margin-right:2rem}html[data-design=wabisabi] .nav-links{gap:1.15rem}html[data-design=wabisabi] .nav-link{font-family:JetBrains Mono,ui-monospace,monospace;font-size:.65rem;letter-spacing:.12em;text-transform:lowercase;font-weight:400;white-space:nowrap}html[data-design=wabisabi] .hero-cta,html[data-design=wabisabi] .contact-submit{background:transparent;color:var(--wabi-ink);border:0;border-bottom:1px solid var(--wabi-ink);border-radius:0;font-family:var(--font-display);font-size:1rem;letter-spacing:.08em;text-transform:lowercase;font-weight:400;padding:.5rem .25rem;box-shadow:none}html[data-design=wabisabi] .hero-cta:after,html[data-design=wabisabi] .contact-submit:after{content:" →";margin-left:1.5rem;opacity:.6;transition:margin-left var(--transition-medium),opacity var(--transition-medium)}html[data-design=wabisabi] .hero-cta:hover,html[data-design=wabisabi] .contact-submit:hover{background:transparent;transform:none;box-shadow:none}html[data-design=wabisabi] .hero-cta:hover:after,html[data-design=wabisabi] .contact-submit:hover:after{margin-left:2rem;opacity:1}html[data-design=wabisabi] .form-group input,html[data-design=wabisabi] .form-group textarea{background:transparent;border:0;border-bottom:1px solid var(--wabi-hair);border-radius:0;font-family:var(--font-sans);font-size:1rem;padding:.5rem 0}html[data-design=wabisabi] .form-group input:focus,html[data-design=wabisabi] .form-group textarea:focus{outline:0;border-bottom-color:var(--wabi-ink);box-shadow:none}html[data-design=wabisabi] .hero-grid,html[data-design=wabisabi] .hero-gradient{display:none}html[data-design=zine]{--font-sans: "Times New Roman", Times, Georgia, serif;--font-display: "Arial Black", "Helvetica Neue", sans-serif;--radius-sm: 0;--radius-md: 0;--radius-lg: 0;--border-width: 3px;--shadow-card: 4px 4px 0 var(--text-primary);--zine-ink: var(--text-primary);--zine-paper: color-mix(in oklab, var(--bg-primary) 80%, #f4efe3);--zine-spot: var(--accent-start);--zine-tape: color-mix(in oklab, #ffd84d 55%, var(--bg-primary))}html[data-design=zine] body{background-color:var(--zine-paper);background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='g'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix type='matrix' values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 0.08 0'/></filter><rect width='220' height='220' filter='url(%23g)'/></svg>");font-family:var(--font-sans);letter-spacing:0;color:var(--zine-ink)}html[data-design=zine] h1,html[data-design=zine] h2,html[data-design=zine] h3,html[data-design=zine] h4{font-family:var(--font-display);text-transform:uppercase;letter-spacing:0;line-height:1.05}html[data-design=zine] .hero-name{font-size:clamp(2.5rem,8vw,5rem);font-weight:900;text-transform:uppercase;line-height:.95;display:block;transform:rotate(-1.5deg);filter:contrast(1.1)}html[data-design=zine] .hero-name:first-letter{font-family:"Press Start 2P",Courier New,monospace;background:var(--zine-ink);color:var(--zine-paper);padding:0 .1em;margin-right:.1em}html[data-design=zine] .hero-greeting,html[data-design=zine] .section-label{font-family:JetBrains Mono,ui-monospace,monospace;font-size:.75rem;font-weight:700;letter-spacing:.04em;background:var(--zine-ink);color:var(--zine-paper);padding:.2rem .5rem;text-transform:uppercase;display:inline-block;transform:rotate(-2deg)}html[data-design=zine] .hero-tagline{font-family:Caveat,cursive;font-weight:700;font-size:1.8rem;transform:rotate(1deg);color:var(--zine-spot)}html[data-design=zine] .section{border-top:3px solid var(--zine-ink);border-bottom:3px solid var(--zine-ink);padding:4.5rem 0;position:relative}html[data-design=zine] .section-title{font-family:var(--font-display);font-size:clamp(2rem,5vw,3.5rem);font-weight:900;text-transform:uppercase;background:var(--zine-ink);color:var(--zine-paper);display:inline-block;padding:.3rem .8rem;transform:rotate(-1deg);margin-bottom:2rem}html[data-design=zine] .section:nth-of-type(2n) .section-title{background:var(--zine-spot);color:var(--zine-paper);transform:rotate(1deg)}html[data-design=zine] .gradient-text{background:none;-webkit-background-clip:initial;background-clip:initial;-webkit-text-fill-color:currentColor;color:var(--zine-paper);background-color:var(--zine-spot);padding:0 .2em}html[data-design=zine] .card,html[data-design=zine] .skill-group,html[data-design=zine] .timeline-content,html[data-design=zine] .work-card,html[data-design=zine] .education-card,html[data-design=zine] .demo-card,html[data-design=zine] .contact-form{background:var(--zine-paper);border:3px solid var(--zine-ink);border-radius:0;box-shadow:5px 5px 0 var(--zine-ink);padding:1.5rem;position:relative;filter:contrast(1.05)}html[data-design=zine] .card:nth-of-type(odd),html[data-design=zine] .work-card:nth-of-type(odd),html[data-design=zine] .demo-card:nth-of-type(odd),html[data-design=zine] .education-card:nth-of-type(odd){transform:rotate(-.6deg)}html[data-design=zine] .card:nth-of-type(2n),html[data-design=zine] .work-card:nth-of-type(2n),html[data-design=zine] .demo-card:nth-of-type(2n),html[data-design=zine] .education-card:nth-of-type(2n){transform:rotate(.8deg)}html[data-design=zine] .card:before,html[data-design=zine] .work-card:before,html[data-design=zine] .demo-card:before,html[data-design=zine] .education-card:before{content:"";position:absolute;top:-10px;left:18px;width:60px;height:18px;background:var(--zine-tape);border:1px solid color-mix(in oklab,var(--zine-ink) 40%,transparent);transform:rotate(-8deg);box-shadow:1px 1px 2px #00000026;opacity:.85}html[data-design=zine] .card:after,html[data-design=zine] .work-card:after,html[data-design=zine] .demo-card:after,html[data-design=zine] .education-card:after{content:"";position:absolute;top:10px;right:14px;width:14px;height:3px;background:var(--zine-ink);box-shadow:0 4px 0 var(--zine-ink);transform:rotate(8deg)}html[data-design=zine] .card h3,html[data-design=zine] .work-card h3,html[data-design=zine] .demo-card h3,html[data-design=zine] .education-card h3{font-family:var(--font-display);font-weight:900;font-size:1.2rem;text-transform:uppercase;letter-spacing:0;margin-bottom:.5rem}html[data-design=zine] .skill-pill,html[data-design=zine] .demo-tags li,html[data-design=zine] .work-tags li{background:var(--zine-paper);border:2px solid var(--zine-ink);border-radius:0;font-family:JetBrains Mono,ui-monospace,monospace;font-size:.75rem;font-weight:700;letter-spacing:0;text-transform:uppercase;padding:.15rem .5rem;color:var(--zine-ink)}html[data-design=zine] .skill-pill:nth-child(3n){background:var(--zine-spot);color:var(--zine-paper);transform:rotate(-3deg)}html[data-design=zine] .skill-pill:nth-child(3n+1){font-family:"Press Start 2P",ui-monospace,monospace;font-size:.6rem;transform:rotate(2deg)}html[data-design=zine] .skill-pill:nth-child(3n+2){font-family:Caveat,cursive;font-size:1.05rem;font-weight:700;letter-spacing:.02em;text-transform:none;transform:rotate(-1deg)}html[data-design=zine] .navbar{background:var(--zine-ink);color:var(--zine-paper);border-bottom:4px solid var(--zine-spot);backdrop-filter:none;-webkit-backdrop-filter:none}html[data-design=zine] .nav-logo{font-family:var(--font-display);font-weight:900;font-size:1.15rem;letter-spacing:0;text-transform:uppercase;color:var(--zine-paper);background:var(--zine-spot);padding:0 .4rem;transform:rotate(-2deg);display:inline-block}html[data-design=zine] .nav-link{font-family:JetBrains Mono,ui-monospace,monospace;font-weight:700;font-size:.78rem;text-transform:uppercase;color:var(--zine-paper)}html[data-design=zine] .nav-link:hover{background:var(--zine-spot);color:var(--zine-paper)}html[data-design=zine] .hero-cta,html[data-design=zine] .contact-submit{background:var(--zine-ink);color:var(--zine-paper);border:3px solid var(--zine-ink);border-radius:0;font-family:var(--font-display);font-weight:900;font-size:1rem;text-transform:uppercase;letter-spacing:.05em;padding:.75rem 1.5rem;box-shadow:5px 5px 0 var(--zine-spot);transform:rotate(-1deg)}html[data-design=zine] .hero-cta:hover,html[data-design=zine] .contact-submit:hover{transform:rotate(-1deg) translate(2px,2px);box-shadow:3px 3px 0 var(--zine-spot)}html[data-design=zine] .form-group input,html[data-design=zine] .form-group textarea{background:var(--zine-paper);border:3px solid var(--zine-ink);border-radius:0;font-family:JetBrains Mono,ui-monospace,monospace;font-size:.95rem;padding:.5rem .75rem;color:var(--zine-ink)}html[data-design=zine] .form-group input:focus,html[data-design=zine] .form-group textarea:focus{outline:0;background:var(--zine-tape);box-shadow:4px 4px 0 var(--zine-ink)}html[data-design=zine] .hero-grid,html[data-design=zine] .hero-gradient{display:none}html[data-design=comic]{--font-sans: "Inter", system-ui, sans-serif;--font-display: "Bangers", "Inter Tight", sans-serif;--radius-sm: .5rem;--radius-md: .75rem;--radius-lg: 1rem;--border-width: 3px;--comic-ink: var(--text-primary);--comic-pop: var(--accent-start);--comic-pop2: var(--accent-end);--comic-paper: color-mix(in oklab, var(--bg-primary) 70%, #fffef2);--comic-panel: var(--bg-card);--shadow-card: 4px 4px 0 var(--comic-ink)}html[data-design=comic] body{background-color:var(--comic-paper);background-image:radial-gradient(color-mix(in oklab,var(--comic-pop) 45%,transparent) 1.2px,transparent 1.6px);background-size:8px 8px;color:var(--comic-ink);font-family:var(--font-sans)}html[data-design=comic] h1,html[data-design=comic] h2,html[data-design=comic] h3,html[data-design=comic] h4{font-family:var(--font-display);letter-spacing:.03em;line-height:1;color:var(--comic-ink);font-weight:400}html[data-design=comic] .hero{position:relative}html[data-design=comic] .hero-name{font-family:var(--font-display);font-weight:400;font-size:clamp(3rem,10vw,6.5rem);letter-spacing:.02em;line-height:.9;color:var(--comic-pop);text-shadow:-3px 0 0 var(--comic-ink),3px 0 0 var(--comic-ink),0 -3px 0 var(--comic-ink),0 3px 0 var(--comic-ink),-3px -3px 0 var(--comic-ink),3px 3px 0 var(--comic-ink),-3px 3px 0 var(--comic-ink),3px -3px 0 var(--comic-ink),6px 6px 0 var(--comic-ink);transform:rotate(-2deg);display:inline-block}html[data-design=comic] .hero:after{content:"POW!";position:absolute;top:14%;right:5%;font-family:var(--font-display);font-size:clamp(1.5rem,3.5vw,2.5rem);color:var(--comic-pop2);background:#ffeb3b;padding:.5rem 1rem;clip-path:polygon(0% 10%,20% 0%,35% 15%,50% 0%,65% 15%,80% 0%,100% 10%,95% 30%,100% 50%,90% 65%,100% 85%,80% 95%,65% 85%,50% 100%,35% 85%,20% 100%,0% 85%,10% 65%,0% 50%,10% 30%);transform:rotate(15deg);text-shadow:-2px 0 0 var(--comic-ink),2px 0 0 var(--comic-ink),0 -2px 0 var(--comic-ink),0 2px 0 var(--comic-ink);pointer-events:none}html[data-design=comic] .hero-greeting{font-family:var(--font-display);font-size:1.2rem;letter-spacing:.05em;color:var(--comic-ink);background:var(--comic-panel);border:3px solid var(--comic-ink);padding:.25rem .75rem;border-radius:999px;display:inline-block;box-shadow:3px 3px 0 var(--comic-ink);transform:rotate(-1deg);text-transform:uppercase}html[data-design=comic] .hero-tagline{font-family:var(--font-display);font-size:1.6rem;letter-spacing:.02em;font-weight:400;color:var(--comic-ink)}html[data-design=comic] .section-label{font-family:var(--font-display);font-size:1rem;letter-spacing:.08em;color:var(--comic-pop2);text-transform:uppercase}html[data-design=comic] .section{border-top:3px solid var(--comic-ink);padding:4rem 0;position:relative}html[data-design=comic] .section-title{font-family:var(--font-display);font-size:clamp(2.5rem,6vw,4rem);letter-spacing:.04em;margin-bottom:2rem;color:var(--comic-pop);text-shadow:-2px 0 0 var(--comic-ink),2px 0 0 var(--comic-ink),0 -2px 0 var(--comic-ink),0 2px 0 var(--comic-ink),4px 4px 0 var(--comic-ink)}html[data-design=comic] .gradient-text{background:none;-webkit-background-clip:initial;background-clip:initial;-webkit-text-fill-color:currentColor;color:var(--comic-pop2)}html[data-design=comic] .card,html[data-design=comic] .skill-group,html[data-design=comic] .timeline-content,html[data-design=comic] .work-card,html[data-design=comic] .education-card,html[data-design=comic] .demo-card,html[data-design=comic] .contact-form{background:var(--comic-panel);border:3px solid var(--comic-ink);border-radius:.75rem;box-shadow:5px 5px 0 var(--comic-ink);padding:1.5rem;position:relative}html[data-design=comic] .card h3,html[data-design=comic] .work-card h3,html[data-design=comic] .demo-card h3,html[data-design=comic] .education-card h3{font-family:var(--font-display);font-weight:400;font-size:1.6rem;letter-spacing:.03em;color:var(--comic-pop);text-shadow:2px 2px 0 var(--comic-ink);margin-bottom:.5rem}html[data-design=comic] .skill-pill,html[data-design=comic] .demo-tags li,html[data-design=comic] .work-tags li{background:var(--comic-panel);border:2px solid var(--comic-ink);border-radius:999px;font-family:var(--font-display);font-weight:400;font-size:.95rem;letter-spacing:.04em;padding:.2rem .75rem;color:var(--comic-ink);text-transform:uppercase;box-shadow:2px 2px 0 var(--comic-ink)}html[data-design=comic] .skill-pill:nth-child(3n){background:#ffeb3b}html[data-design=comic] .skill-pill:nth-child(3n+1){background:color-mix(in oklab,var(--comic-pop) 25%,var(--comic-panel))}html[data-design=comic] .navbar{background:var(--comic-panel);backdrop-filter:none;-webkit-backdrop-filter:none;border-bottom:3px solid var(--comic-ink);box-shadow:0 3px 0 var(--comic-ink)}html[data-design=comic] .nav-logo{font-family:var(--font-display);font-weight:400;font-size:1.6rem;letter-spacing:.04em;color:var(--comic-pop);text-shadow:2px 2px 0 var(--comic-ink);text-transform:uppercase}html[data-design=comic] .nav-link{font-family:var(--font-display);font-weight:400;font-size:1rem;letter-spacing:.08em;text-transform:uppercase;color:var(--comic-ink)}html[data-design=comic] .hero-cta,html[data-design=comic] .contact-submit{background:var(--comic-pop2);color:var(--comic-ink);border:3px solid var(--comic-ink);border-radius:999px;font-family:var(--font-display);font-weight:400;font-size:1.15rem;letter-spacing:.1em;text-transform:uppercase;padding:.6rem 1.4rem;box-shadow:4px 4px 0 var(--comic-ink)}html[data-design=comic] .hero-cta:hover,html[data-design=comic] .contact-submit:hover{transform:translate(1px,1px);box-shadow:3px 3px 0 var(--comic-ink)}html[data-design=comic] .form-group input,html[data-design=comic] .form-group textarea{background:var(--comic-panel);border:3px solid var(--comic-ink);border-radius:.5rem;font-family:var(--font-sans);font-size:1rem;padding:.6rem .85rem;box-shadow:2px 2px 0 var(--comic-ink)}html[data-design=comic] .form-group input:focus,html[data-design=comic] .form-group textarea:focus{outline:0;box-shadow:4px 4px 0 var(--comic-pop)}html[data-design=comic] .hero-grid{display:none}html[data-design=comic] .hero-gradient{background:radial-gradient(circle at 70% 30%,color-mix(in oklab,#ffeb3b 55%,transparent),transparent 60%);opacity:.7}html[data-design=newspaper]{--font-sans: "EB Garamond", "Crimson Pro", Georgia, serif;--font-display: "UnifrakturMaguntia", "Playfair Display", Georgia, serif;--font-subhead: "Playfair Display", Georgia, serif;--radius-sm: 0;--radius-md: 0;--radius-lg: 0;--border-width: 1px;--news-paper: color-mix(in oklab, var(--bg-primary) 75%, #f4eedd);--news-ink: color-mix(in oklab, var(--text-primary) 98%, #1a1812);--news-muted: color-mix(in oklab, var(--news-ink) 55%, transparent);--news-hair: color-mix(in oklab, var(--news-ink) 30%, transparent);--shadow-card: none}html[data-design=newspaper] body{background:var(--news-paper);background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='1.1' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 0.05 0'/></filter><rect width='180' height='180' filter='url(%23n)'/></svg>");color:var(--news-ink);font-family:var(--font-sans);font-size:1.02rem;line-height:1.55;letter-spacing:0}html[data-design=newspaper] h1,html[data-design=newspaper] h2,html[data-design=newspaper] h3,html[data-design=newspaper] h4{font-family:var(--font-subhead);font-weight:700;letter-spacing:.01em;line-height:1.2}html[data-design=newspaper] .hero{border-top:4px double var(--news-ink);border-bottom:4px double var(--news-ink);padding:3rem 0 2.5rem;text-align:center}html[data-design=newspaper] .hero-name{font-family:var(--font-display);font-weight:400;font-size:clamp(3rem,10vw,6rem);letter-spacing:.02em;line-height:1;color:var(--news-ink);text-align:center;display:block;margin:.25rem 0 .5rem}html[data-design=newspaper] .hero-greeting{font-family:EB Garamond,Georgia,serif;font-variant:small-caps;font-weight:500;font-size:.85rem;letter-spacing:.18em;color:var(--news-muted);display:block;text-align:center;border-bottom:1px solid var(--news-hair);padding-bottom:.5rem;margin-bottom:.75rem}html[data-design=newspaper] .hero-greeting:before{content:"VOL. MMXXVI  ·  NO. III  ·  ";letter-spacing:.2em}html[data-design=newspaper] .hero-greeting:after{content:"  ·  PRICE: FREE";letter-spacing:.2em}html[data-design=newspaper] .hero-tagline{font-family:var(--font-subhead);font-style:italic;font-weight:400;font-size:1.25rem;color:var(--news-ink);max-width:60ch;margin:0 auto .5rem}html[data-design=newspaper] .hero-description{max-width:60ch;margin:.75rem auto 1.25rem;text-align:justify;text-align-last:center;hyphens:auto;color:var(--news-ink)}html[data-design=newspaper] .section{border-top:1px solid var(--news-ink);padding:3rem 0;position:relative}html[data-design=newspaper] .section-label,html[data-design=newspaper] .section[data-num]:before{font-family:EB Garamond,Georgia,serif;font-variant:small-caps;font-weight:600;font-size:.8rem;letter-spacing:.3em;color:var(--news-muted);display:block;margin-bottom:.75rem}html[data-design=newspaper] .section[data-num]:before{content:"SECTION " attr(data-num);position:static;border-bottom:1px solid var(--news-hair);padding-bottom:.35rem;margin-bottom:1rem}html[data-design=newspaper] .section-title{font-family:var(--font-subhead);font-weight:800;font-size:clamp(1.9rem,4vw,2.8rem);letter-spacing:-.005em;color:var(--news-ink);margin-bottom:.25rem;line-height:1.1}html[data-design=newspaper] .section-title:after{content:"";display:block;width:100%;border-top:3px double var(--news-ink);margin-top:.75rem;margin-bottom:1.5rem}html[data-design=newspaper] .gradient-text{background:none;-webkit-background-clip:initial;background-clip:initial;-webkit-text-fill-color:currentColor;color:var(--news-ink);font-style:italic}html[data-design=newspaper] .about-text{column-count:2;column-gap:2rem;column-rule:1px solid var(--news-hair);text-align:justify;hyphens:auto;font-size:1rem;line-height:1.6}html[data-design=newspaper] .about-text p:first-of-type:first-letter{font-family:var(--font-display);font-size:3.2em;float:left;line-height:.9;padding-right:.5rem;padding-top:.2rem;color:var(--news-ink)}@media(max-width:720px){html[data-design=newspaper] .about-text{column-count:1}}html[data-design=newspaper] .card,html[data-design=newspaper] .skill-group,html[data-design=newspaper] .timeline-content,html[data-design=newspaper] .work-card,html[data-design=newspaper] .education-card,html[data-design=newspaper] .demo-card,html[data-design=newspaper] .contact-form{background:var(--news-paper);border:1px solid var(--news-ink);border-radius:0;box-shadow:none;padding:1.5rem;position:relative}html[data-design=newspaper] .work-card:before,html[data-design=newspaper] .demo-card:before,html[data-design=newspaper] .education-card:before{content:"ADVERTISEMENT";display:block;font-family:EB Garamond,Georgia,serif;font-variant:small-caps;font-weight:600;font-size:.7rem;letter-spacing:.25em;color:var(--news-muted);border-bottom:1px solid var(--news-hair);padding-bottom:.35rem;margin:-.5rem -.5rem .75rem;text-align:center}html[data-design=newspaper] .education-card:before{content:"ACADEMIC RECORD"}html[data-design=newspaper] .work-card:before{content:"EMPLOYMENT NOTICE"}html[data-design=newspaper] .demo-card:before{content:"FEATURED DEMO"}html[data-design=newspaper] .card h3,html[data-design=newspaper] .work-card h3,html[data-design=newspaper] .demo-card h3,html[data-design=newspaper] .education-card h3{font-family:var(--font-subhead);font-weight:800;font-size:1.3rem;letter-spacing:-.01em;line-height:1.15;margin-bottom:.5rem}html[data-design=newspaper] .skill-pill,html[data-design=newspaper] .demo-tags li,html[data-design=newspaper] .work-tags li{background:transparent;border:0;border-radius:0;font-family:EB Garamond,Georgia,serif;font-variant:small-caps;font-weight:600;font-size:.78rem;letter-spacing:.12em;padding:0;color:var(--news-ink);text-transform:lowercase}html[data-design=newspaper] .skill-pill:before,html[data-design=newspaper] .demo-tags li:before,html[data-design=newspaper] .work-tags li:before{content:"[ ";color:var(--news-muted)}html[data-design=newspaper] .skill-pill:after,html[data-design=newspaper] .demo-tags li:after,html[data-design=newspaper] .work-tags li:after{content:" ]";color:var(--news-muted)}html[data-design=newspaper] .navbar{background:var(--news-paper);backdrop-filter:none;-webkit-backdrop-filter:none;border-bottom:3px double var(--news-ink);box-shadow:none}html[data-design=newspaper] .nav-logo{font-family:var(--font-display);font-weight:400;font-size:1.6rem;letter-spacing:.02em;color:var(--news-ink)}html[data-design=newspaper] .nav-link{font-family:EB Garamond,Georgia,serif;font-variant:small-caps;font-weight:600;font-size:.9rem;letter-spacing:.15em;text-transform:lowercase;color:var(--news-ink)}html[data-design=newspaper] .hero-cta,html[data-design=newspaper] .contact-submit{background:var(--news-ink);color:var(--news-paper);border:1px solid var(--news-ink);border-radius:0;font-family:EB Garamond,Georgia,serif;font-variant:small-caps;font-weight:700;font-size:.95rem;letter-spacing:.15em;padding:.65rem 1.25rem;box-shadow:4px 4px 0 var(--news-ink),4px 4px 0 1px var(--news-paper) inset;text-transform:lowercase}html[data-design=newspaper] .hero-cta:hover,html[data-design=newspaper] .contact-submit:hover{transform:translate(1px,1px);box-shadow:3px 3px 0 var(--news-ink);background:var(--news-ink)}html[data-design=newspaper] .form-group input,html[data-design=newspaper] .form-group textarea{background:var(--news-paper);border:0;border-bottom:1px solid var(--news-ink);border-radius:0;font-family:var(--font-sans);font-size:1rem;padding:.45rem 0}html[data-design=newspaper] .form-group input:focus,html[data-design=newspaper] .form-group textarea:focus{outline:0;border-bottom-width:2px;box-shadow:none}html[data-design=newspaper] .footer{border-top:3px double var(--news-ink);border-bottom:3px double var(--news-ink);padding:2rem 0;text-align:center;font-family:EB Garamond,Georgia,serif;font-variant:small-caps;letter-spacing:.15em;color:var(--news-muted)}html[data-design=newspaper] .hero-grid,html[data-design=newspaper] .hero-gradient{display:none}.main-bottom-design[data-astro-cid-sckkx6r4]{display:none;justify-content:center;padding:2rem 0 1rem}@media(max-width:768px){.main-bottom-design[data-astro-cid-sckkx6r4]{display:flex}}.main-design-btn[data-astro-cid-sckkx6r4]{display:flex;align-items:center;gap:.5rem;padding:.5rem 1.25rem;border-radius:var(--radius-full, 9999px);background:var(--bg-secondary);color:var(--text-secondary);border:1px solid var(--border-color);font-size:.82rem;font-weight:500;cursor:pointer;transition:color var(--transition-fast),background-color var(--transition-fast),border-color var(--transition-fast)}.main-design-btn[data-astro-cid-sckkx6r4]:hover{color:var(--accent-start);background:var(--bg-card);border-color:var(--accent-start)}
