:root{--bg-page:#e4dff0;--bg:#f7f4fd;--bg-sidebar:#000;--bg-section-stripe:color-mix(in srgb, var(--bg) 82%, #6d28d9 18%);--text:#2a2438;--text-h:#0c0614;--text-muted:#5b5270;--code-bg:#eae4f5;--nav-hover-bg:#6d28d917;--accent:#6d28d9;--accent-hover:#5b21b6;--accent-bg:#6d28d924;--accent-border:#6d28d973;--border:color-mix(in srgb, var(--accent) 55%, #d2c2f0);--bg-main:#000;--bg-main-stripe:#0b0b10;--text-main:#fff;--text-main-h:#fff;--text-main-muted:#ffffffbf;--code-bg-main:#14141c;--accent-main:#c4b5fd;--accent-main-hover:#e9d5ff;--border-main:color-mix(in srgb, var(--accent-main) 50%, transparent);--social-bg:var(--nav-hover-bg);--shadow:color-mix(in srgb, var(--accent) 22%, transparent) 0 10px 28px -8px, color-mix(in srgb, var(--accent) 14%, transparent) 0 4px 12px -4px;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--heading:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;font-size:clamp(15px,.85rem + .45vw,18px);line-height:145%;font-family:var(--sans);letter-spacing:.18px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}html{scroll-behavior:smooth;min-height:100%;background:var(--bg-page);min-height:-webkit-fill-available}@media (prefers-color-scheme:dark){:root{--bg-page:#010002;--bg:#0a0812;--bg-sidebar:#000;--bg-section-stripe:color-mix(in srgb, var(--bg) 78%, #8b5cf6 22%);--text:#c4bbd8;--text-h:#faf8ff;--text-muted:#8f849f;--code-bg:#120e1c;--nav-hover-bg:#a78bfa1f;--accent:#c4b5fd;--accent-hover:#ddd6fe;--accent-bg:#c4b5fd24;--accent-border:#c4b5fd73;--border:color-mix(in srgb, var(--accent) 48%, #1a1228);--bg-main:#000;--bg-main-stripe:#09080f;--text-main:#fff;--text-main-h:#fff;--text-main-muted:#ffffffb8;--code-bg-main:#12101a;--accent-main:var(--accent);--accent-main-hover:var(--accent-hover);--border-main:color-mix(in srgb, var(--accent-main) 52%, transparent);--shadow:color-mix(in srgb, var(--accent) 28%, transparent) 0 12px 32px -8px, color-mix(in srgb, var(--accent) 18%, transparent) 0 4px 16px -4px}}#root{text-align:left;border-inline:1px solid var(--accent);border-top:3px solid var(--accent);width:100%;max-width:min(1280px,100%);min-height:100dvh;box-sizing:border-box;background:var(--bg-sidebar);min-height:-webkit-fill-available;box-shadow:var(--shadow);padding-left:env(safe-area-inset-left,0px);padding-right:env(safe-area-inset-right,0px);flex-direction:column;margin:0 auto;display:flex}@media (width<=480px){#root{border-inline-width:0;box-shadow:none;border-top-width:2px}}body{min-height:100%;background:var(--bg-page);min-height:-webkit-fill-available;margin:0}h1,h2{font-family:var(--heading);color:var(--text-h);font-weight:500}h1{letter-spacing:-.03em;margin:32px 0;font-size:clamp(2rem,4vw + 1.25rem,3.5rem)}@media (width<=1024px){h1{margin:20px 0}}h2{letter-spacing:-.02em;margin:0 0 8px;font-size:clamp(1.15rem,1.5vw + .85rem,1.5rem);line-height:118%}p{margin:0}code,.counter{font-family:var(--mono);color:var(--text-h);border-radius:4px;display:inline-flex}code{background:var(--code-bg);border:1px solid var(--accent-border);padding:4px 8px;font-size:15px;line-height:135%}.app-shell{flex-direction:row;flex:1;align-items:stretch;width:100%;min-height:100dvh;display:flex}.sidebar{border-right:1px solid var(--accent);box-sizing:border-box;background:var(--bg-sidebar);flex-shrink:0;align-self:stretch;width:220px;padding:32px 16px;position:sticky;top:0}.sidebar-nav ul{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.sidebar-nav a{color:#ffffffe0;letter-spacing:.01em;background:0 0;border:1px solid #0000;border-radius:10px;align-items:center;gap:10px;padding:10px 14px;font-size:15px;text-decoration:none;transition:background .2s,color .2s,border-color .2s;display:flex}.nav-icon{width:16px;height:16px;color:color-mix(in srgb, var(--accent) 85%, #fff);flex:none;transition:color .2s}.sidebar-nav a:hover{color:#fff;background:color-mix(in srgb, var(--accent) 16%, transparent);border-color:color-mix(in srgb, var(--accent) 32%, transparent)}.sidebar-nav a:hover .nav-icon{color:var(--accent-hover)}.sidebar-nav a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.main-content{background:var(--bg-main);min-width:0;color:var(--text-main);flex-direction:column;flex:1;display:flex}.main-content h1,.main-content h2{color:var(--text-main-h)}.main-content .section:nth-child(2n){background:var(--bg-main-stripe)}.main-content .section{border-bottom-color:var(--border-main)}.main-content code{color:var(--text-main-h);background:var(--code-bg-main);border:1px solid color-mix(in srgb, var(--accent-main) 55%, transparent)}.main-content a{color:var(--accent-main);text-decoration-line:underline;-webkit-text-decoration-color:color-mix(in srgb, var(--accent-main) 45%, transparent);text-decoration-color:color-mix(in srgb, var(--accent-main) 45%, transparent);text-underline-offset:.22em;text-decoration-thickness:1px}.main-content a:hover{color:var(--accent-main-hover);-webkit-text-decoration-color:var(--accent-main-hover);text-decoration-color:var(--accent-main-hover)}.section{border-bottom:1px solid var(--border);text-align:left;padding:48px 40px;scroll-margin-top:1rem}.section:last-child{border-bottom:none;flex-grow:1}.section p:not(.experience-card__body):not(.project-card__body){max-width:52ch;margin-top:12px}@media (width<=1024px){.section{padding:32px 20px}}@media (width<=480px){.section{scroll-margin-top:max(1rem, env(safe-area-inset-top,0px));padding:24px 16px}}.skills-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(10px,2vw,14px);margin-top:20px;display:grid}@media (width<=1100px){.skills-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=560px){.skills-grid{grid-template-columns:1fr}}.skill-card{border:1px solid color-mix(in srgb, var(--accent-main) 42%, transparent);background:color-mix(in srgb, var(--code-bg-main) 90%, transparent);box-shadow:0 0 0 1px color-mix(in srgb, var(--accent-main) 12%, transparent), 0 12px 28px -12px color-mix(in srgb, var(--accent-main) 35%, transparent);border-radius:12px;padding:12px 12px 10px;transition:transform .22s,border-color .22s,box-shadow .22s}.skill-card:hover{border-color:color-mix(in srgb, var(--accent-main) 65%, transparent);box-shadow:0 0 0 1px color-mix(in srgb, var(--accent-main) 22%, transparent), 0 16px 36px -14px color-mix(in srgb, var(--accent-main) 45%, transparent);transform:translateY(-2px)}.skill-card h3{letter-spacing:.01em;color:var(--text-main-h);align-items:center;gap:8px;margin:0 0 8px;font-size:15px;font-weight:600;display:flex}.skill-icon{width:16px;height:16px;color:var(--accent-main);flex:none}.skill-card ul{color:var(--text-main);margin:0;padding-left:18px}.experience-grid{margin-top:20px;grid-template-columns:1fr;gap:12px;width:100%;max-width:min(42rem,100%);margin-inline:auto;display:grid}.experience-card{border:1px solid color-mix(in srgb, var(--accent-main) 42%, transparent);background:color-mix(in srgb, var(--code-bg-main) 90%, transparent);width:100%;min-width:0;box-shadow:0 0 0 1px color-mix(in srgb, var(--accent-main) 12%, transparent), 0 12px 28px -12px color-mix(in srgb, var(--accent-main) 35%, transparent);border-radius:12px;padding:16px 18px 14px;transition:transform .22s,border-color .22s,box-shadow .22s}.experience-card:hover{border-color:color-mix(in srgb, var(--accent-main) 65%, transparent);box-shadow:0 0 0 1px color-mix(in srgb, var(--accent-main) 22%, transparent), 0 16px 36px -14px color-mix(in srgb, var(--accent-main) 45%, transparent);transform:translateY(-2px)}.experience-card__header{border-bottom:1px solid color-mix(in srgb, var(--accent-main) 22%, transparent);flex-direction:column;align-items:stretch;gap:10px;margin:0;padding-bottom:12px;display:flex}.experience-card__title-row{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:10px 16px;width:100%;display:grid}@media (width<=520px){.experience-card__title-row{grid-template-columns:1fr}.experience-card__title-row .experience-card__location{justify-self:end}}.experience-card__header h3{letter-spacing:.01em;color:var(--text-main-h);margin:0;font-size:15px;font-weight:650}.experience-card__meta-row{flex-wrap:wrap;align-items:center;gap:8px 16px;width:100%;display:flex}.experience-card__meta{color:#fff;flex:auto;min-width:0;font-size:12px;line-height:1.35}.experience-card__meta-row .experience-card__timeline{margin-left:auto}.experience-card__location{color:#ffffffe6;align-items:center;gap:5px;font-size:12px;line-height:1.3;display:inline-flex}.experience-card__location-icon{width:13px;height:13px;color:var(--accent-main);flex-shrink:0}.experience-card__timeline{font-variant-numeric:tabular-nums;color:#fff;white-space:nowrap;align-items:center;gap:8px;font-size:12px;font-weight:500;display:inline-flex}.experience-card__timeline:before{content:"";background:var(--accent-main);border-radius:1px;flex-shrink:0;width:2px;height:14px}.experience-card__body{box-sizing:border-box;background:color-mix(in srgb, var(--bg-main) 72%, var(--code-bg-main) 28%);border:1px solid color-mix(in srgb, var(--accent-main) 32%, transparent);letter-spacing:.015em;color:#ffffffe0;border-radius:10px;width:100%;max-width:100%;margin:12px 0 0;padding:14px 18px;font-size:14px;line-height:1.65}.project-card__body{box-sizing:border-box;letter-spacing:.02em;color:#ffffffd1;background:0 0;border:none;width:100%;max-width:100%;margin:14px 0 0;padding:0 18px;font-size:14px;line-height:1.7}.experience-card__body+.experience-card__body{margin-top:10px}.experience-card__body-label{letter-spacing:.04em;text-transform:uppercase;color:var(--accent-main);margin-bottom:6px;font-size:12px;font-weight:650;display:block}.projects-grid{grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;gap:clamp(12px,2vw,18px);margin-top:24px;display:grid}@media (width<=1100px){.projects-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=640px){.projects-grid{grid-template-columns:1fr}}.project-card{border:1px solid color-mix(in srgb, var(--accent-main) 42%, transparent);background:linear-gradient(165deg, color-mix(in srgb, var(--code-bg-main) 88%, var(--accent-main) 12%) 0%, color-mix(in srgb, var(--bg-main) 55%, var(--code-bg-main) 45%) 100%);width:100%;min-width:0;box-shadow:0 0 0 1px color-mix(in srgb, var(--accent-main) 12%, transparent), 0 12px 28px -12px color-mix(in srgb, var(--accent-main) 35%, transparent);border-radius:14px;flex-direction:column;gap:0;padding:0 0 16px;transition:transform .22s,border-color .22s,box-shadow .22s;display:flex;position:relative;overflow:hidden}.project-card:before{content:"";background:linear-gradient(90deg, var(--accent-main), color-mix(in srgb, var(--accent-main) 35%, transparent));flex-shrink:0;width:100%;height:3px;display:block}.project-card:hover{border-color:color-mix(in srgb, var(--accent-main) 65%, transparent);box-shadow:0 0 0 1px color-mix(in srgb, var(--accent-main) 22%, transparent), 0 16px 36px -14px color-mix(in srgb, var(--accent-main) 45%, transparent);transform:translateY(-2px)}.project-card__header{border-bottom:1px solid color-mix(in srgb, var(--accent-main) 18%, transparent);flex-direction:column;align-items:stretch;gap:12px;padding:16px 18px 14px;display:flex}.project-card__header h3{letter-spacing:-.02em;color:#fff;margin:0;font-size:16px;font-weight:650;line-height:1.25}.project-card__link{letter-spacing:.03em;text-transform:uppercase;color:#ffffffeb;border:1px solid color-mix(in srgb, var(--accent-main) 62%, transparent);background:linear-gradient(135deg, color-mix(in srgb, var(--accent-main) 24%, transparent) 0%, color-mix(in srgb, var(--bg-main) 55%, transparent) 100%);width:fit-content;box-shadow:0 0 0 1px color-mix(in srgb, var(--accent-main) 12%, transparent), 0 10px 18px -14px color-mix(in srgb, var(--accent-main) 55%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:999px;align-items:center;gap:6px;padding:6px 10px;font-size:11px;font-weight:600;text-decoration:none;transition:background .2s,border-color .2s,color .2s,box-shadow .2s,transform .15s;display:inline-flex}.project-card__link:hover{color:#fff;border-color:var(--accent-main);background:linear-gradient(135deg, color-mix(in srgb, var(--accent-main) 34%, transparent) 0%, color-mix(in srgb, var(--bg-main) 45%, transparent) 100%);box-shadow:0 0 0 1px color-mix(in srgb, var(--accent-main) 22%, transparent), 0 14px 22px -14px color-mix(in srgb, var(--accent-main) 65%, transparent);text-decoration:none;transform:translateY(-1px)}.project-card__link:active{transform:translateY(0)}.project-card__link:focus-visible{outline:2px solid var(--accent-main);outline-offset:2px}.project-card__link-icon{opacity:.9;flex-shrink:0;width:13px;height:13px}.project-card__tags{flex-wrap:wrap;gap:6px;margin-top:14px;padding:0 18px;display:flex}.project-card__tag{letter-spacing:.04em;text-transform:uppercase;color:color-mix(in srgb, var(--accent-main) 95%, #fff);background:color-mix(in srgb, var(--accent-main) 14%, transparent);border:1px solid color-mix(in srgb, var(--accent-main) 35%, transparent);border-radius:6px;padding:4px 10px;font-size:11px;font-weight:600;display:inline-block}.skill-list{gap:6px;margin:0;padding:0;list-style:none;display:grid}.skill-item{background:color-mix(in srgb, var(--bg-main) 75%, var(--code-bg-main) 25%);border:1px solid color-mix(in srgb, var(--accent-main) 35%, transparent);border-radius:10px;align-items:center;gap:8px;padding:6px 8px;display:flex}.skill-item__icon{width:16px;height:16px;color:var(--accent-main);flex:none}.skill-item__logo{flex:none;width:16px;height:16px;display:block}.skill-item span{min-width:0}.section--home{text-align:center;flex-direction:column;flex-grow:1;place-content:center;place-items:center;gap:25px;min-height:min(70dvh,720px);display:flex}.section--home .home-intro{flex-direction:column;align-items:center;gap:clamp(1rem,3vw,1.5rem);max-width:52ch;display:flex}.section--home .home-intro h1{margin:0}.section--home .home-intro p{margin-top:0}.section--home .home-role{letter-spacing:.02em;color:var(--accent-main);min-height:1.35em;margin:0;font-size:clamp(1.15rem,2.8vw,1.65rem);font-weight:500;line-height:1.35}.section--home .home-role__text{animation:.42s home-role-in;display:inline-block}.section--home .home-intro p{margin-left:auto;margin-right:auto}@media (width<=1024px){.section--home{gap:18px;min-height:auto;padding-top:40px;padding-bottom:40px}}@keyframes home-role-in{0%{opacity:0;transform:translateY(.2rem)}to{opacity:1;transform:translateY(0)}}.hero{position:relative}.hero .base{z-index:0;width:170px;max-width:100%;height:auto;margin:0 auto;display:block;position:relative}@media (width<=1024px){.app-shell{flex-direction:column}.sidebar{z-index:20;border-right:none;border-bottom:1px solid var(--accent);width:100%;height:auto;padding-top:max(12px, env(safe-area-inset-top,0px));padding-bottom:12px;padding-left:max(16px, env(safe-area-inset-left,0px));padding-right:max(16px, env(safe-area-inset-right,0px));position:sticky;top:0}.sidebar-nav ul{flex-flow:wrap;justify-content:center;gap:6px}.sidebar-nav a{box-sizing:border-box;border-radius:999px;min-height:44px;padding:10px 14px;font-size:14px}}@media (hover:none) and (pointer:coarse){.sidebar-nav a{min-height:44px;padding:12px 16px}.contact-method{padding:20px 18px}.contact-social{box-sizing:border-box;min-height:44px;padding:12px 18px}}.text-center{text-align:center}.section p.text-center{margin-left:auto;margin-right:auto}#skills #skills-heading.text-center{text-align:center;width:100%}#skills .skills-intro.text-center{text-align:center;margin-left:auto;margin-right:auto}.contact-methods{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;max-width:52rem;margin-top:28px;margin-left:auto;margin-right:auto;display:grid}@media (width<=900px){.contact-methods{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=560px){.contact-methods{grid-template-columns:1fr}}.contact-method{text-align:center;color:#ffffffeb;border:1px solid color-mix(in srgb, var(--accent-main) 42%, transparent);background:color-mix(in srgb, var(--code-bg-main) 88%, transparent);box-shadow:0 0 0 1px color-mix(in srgb, var(--accent-main) 10%, transparent);border-radius:12px;flex-direction:column;align-items:center;gap:8px;padding:18px 16px;text-decoration:none;transition:border-color .2s,background .2s,transform .18s;display:flex}.contact-method:hover{color:#fff;border-color:color-mix(in srgb, var(--accent-main) 65%, transparent);background:color-mix(in srgb, var(--accent-main) 12%, transparent);text-decoration:none;transform:translateY(-2px)}.contact-method__icon-wrap{background:color-mix(in srgb, var(--accent-main) 16%, transparent);border:1px solid color-mix(in srgb, var(--accent-main) 35%, transparent);border-radius:12px;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.contact-method__icon{width:22px;height:22px;color:var(--accent-main)}.contact-method__label{letter-spacing:.08em;text-transform:uppercase;color:var(--accent-main);font-size:11px;font-weight:650}.contact-method__value{word-break:break-word;font-size:15px;font-weight:600;line-height:1.35}.contact-socials{flex-wrap:wrap;justify-content:center;gap:12px;max-width:52rem;margin-top:22px;margin-left:auto;margin-right:auto;display:flex}.contact-social{letter-spacing:.02em;color:#ffffffeb;border:1px solid color-mix(in srgb, var(--accent-main) 48%, transparent);background:color-mix(in srgb, var(--bg-main) 45%, transparent);border-radius:999px;align-items:center;gap:8px;padding:10px 16px;font-size:13px;font-weight:600;text-decoration:none;transition:background .2s,border-color .2s,color .2s,transform .15s;display:inline-flex}.contact-social:hover{color:#fff;border-color:var(--accent-main);background:color-mix(in srgb, var(--accent-main) 20%, transparent);text-decoration:none;transform:translateY(-1px)}.contact-social__icon{flex-shrink:0;width:18px;height:18px}.main-content .contact-method,.main-content .contact-social,.main-content .contact-method:hover,.main-content .contact-social:hover{text-decoration:none}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.skill-card,.experience-card,.project-card,.contact-method,.contact-social,.sidebar-nav a,.project-card__link{transition-duration:.01ms}.skill-card:hover,.experience-card:hover,.project-card:hover,.contact-method:hover,.contact-social:hover,.project-card__link:hover{transform:none}.home-role__text{animation:none}}
