@font-face{font-family:Outfit;src:url(/fonts/Outfit-Regular.ttf)format("truetype");font-weight:400;font-display:swap}@font-face{font-family:Outfit;src:url(/fonts/Outfit-Medium.ttf)format("truetype");font-weight:500;font-display:swap}@font-face{font-family:Outfit;src:url(/fonts/Outfit-Bold.ttf)format("truetype");font-weight:700;font-display:swap}@font-face{font-family:Outfit;src:url(/fonts/Outfit-Black.ttf)format("truetype");font-weight:900;font-display:swap}:root{color-scheme:light;--color-bg:#fff;--color-bg-alt:#f5f7fa;--color-text:#0c3457;--color-text-muted:#437b9e;--color-primary:#27648d;--color-primary-contrast:#fff;--color-accent:#99b9c9;--color-border:#d9e4ec;--shadow:0 10px 30px #0c34571a;--color-border-strong:#99b9c9;--hero-glow-strong:#27648d47;--hero-glow-soft:#99b9c966;--hero-star:#27648d73;--hero-line:#27648d2e;--hero-cta-end:#0c3457;--glass-bg:#ffffff8c;--glass-card:#ffffffb8;--glass-border:#27648d47;--glass-shadow:#0c34572e;--color-spark:#e0a526;--font-sans:"Outfit", system-ui, -apple-system, "Segoe UI", sans-serif;--max-width:1100px;--space:clamp(1rem, 2.5vw, 2rem);--radius:14px}:root[data-theme=dark]{color-scheme:dark;--color-bg:#000c1c;--color-bg-alt:#001938;--color-text:#f1f5f9;--color-text-muted:#9fb3c8;--color-primary:#00b5e8;--color-primary-contrast:#000c1c;--color-accent:#00b5e8;--color-border:#0f2a4a;--shadow:0 10px 30px #00000073;--color-border-strong:#1d4572;--hero-glow-strong:#00b5e84d;--hero-glow-soft:#00b5e81a;--hero-star:#f1f5f9b3;--hero-line:#00b5e838;--hero-cta-end:#0a6f9c;--glass-bg:#00193873;--glass-card:#001228b8;--glass-border:#00b5e847;--glass-shadow:#00000080}@media (prefers-color-scheme:dark){:root:not([data-theme]){color-scheme:dark;--color-bg:#000c1c;--color-bg-alt:#001938;--color-text:#f1f5f9;--color-text-muted:#9fb3c8;--color-primary:#00b5e8;--color-primary-contrast:#000c1c;--color-accent:#00b5e8;--color-border:#0f2a4a;--shadow:0 10px 30px #00000073;--color-border-strong:#1d4572;--hero-glow-strong:#00b5e84d;--hero-glow-soft:#00b5e81a;--hero-star:#f1f5f9b3;--hero-line:#00b5e838;--hero-cta-end:#0a6f9c;--glass-bg:#00193873;--glass-card:#001228b8;--glass-border:#00b5e847;--glass-shadow:#00000080}}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:5rem}body{font-family:var(--font-sans);color:var(--color-text);background:var(--color-bg);margin:0;font-size:1.05rem;line-height:1.6}a{color:var(--color-primary);text-decoration:none}a:hover,a:focus-visible{text-decoration:underline}h1,h2,h3{letter-spacing:-.02em;margin:0 0 .5em;line-height:1.1}h2{text-transform:uppercase;letter-spacing:-.03em;margin-bottom:clamp(1.5rem,3vw,2.5rem);font-size:clamp(2rem,5vw,3.5rem);font-weight:900}main{counter-reset:section}main>section:not(.hero)>h2{counter-increment:section;align-items:baseline;gap:1rem;display:flex}main>section:not(.hero)>h2:before{content:counter(section, decimal-leading-zero);letter-spacing:.25em;color:var(--color-text-muted);font-size:.8rem;font-weight:500}main>section:not(.hero)>h2:after{content:"";background:var(--color-border);flex:1;height:1px}::selection{background:var(--color-primary);color:var(--color-primary-contrast)}:focus-visible{outline:2px solid var(--color-primary);outline-offset:3px}ul{padding-left:1.25rem}.container{width:min(100% - 2 * var(--space), var(--max-width));margin-inline:auto}.site-header{z-index:10;background:color-mix(in srgb, var(--color-bg) 85%, transparent);backdrop-filter:blur(12px);border-bottom:1px solid var(--color-border);position:sticky;top:0}.site-header .container{width:min(100% - 2 * var(--space), 98rem);justify-content:space-between;align-items:center;gap:var(--space);min-height:4rem;display:flex}.brand{letter-spacing:.08em;text-transform:uppercase;color:var(--color-text);font-size:1.25rem;font-weight:900}.site-nav ul{border:1px solid var(--color-border);background:var(--color-bg-alt);border-radius:999px;flex-wrap:wrap;gap:.15rem;margin:0;padding:.25rem;list-style:none;display:flex}.site-nav a{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.1em;border-radius:999px;padding:.35rem .85rem;font-size:.8rem;font-weight:500;transition:background-color .15s,color .15s;display:block}.site-nav a:hover,.site-nav a:focus-visible{background:var(--color-bg);color:var(--color-primary);text-decoration:none}.site-nav li:last-child a{background:var(--color-primary);color:var(--color-primary-contrast)}.site-controls{align-items:center;gap:.5rem;display:flex}.control{border:1px solid var(--color-border);background:var(--color-bg-alt);color:var(--color-text);font:inherit;cursor:pointer;border-radius:999px;align-items:center;gap:.35rem;padding:.4rem .75rem;font-size:.85rem;font-weight:500;display:inline-flex}.control:hover,.control:focus-visible{border-color:var(--color-primary);text-decoration:none}.theme-icon-dark,[data-theme=dark] .theme-icon-light{display:none}[data-theme=dark] .theme-icon-dark{display:inline}.hero{isolation:isolate;background:radial-gradient(ellipse 60% 70% at 88% 65%, var(--hero-glow-strong), transparent 70%), radial-gradient(ellipse 50% 55% at 5% 5%, var(--hero-glow-soft), transparent 70%), var(--color-bg);grid-template-rows:minmax(clamp(2.5rem,5vw,4rem),1fr) auto minmax(clamp(6rem,10vw,9rem),1fr);min-height:calc(100svh - 4rem);display:grid;position:relative;overflow:hidden}.hero-sky,.hero-sky:after{z-index:-1;background-image:radial-gradient(1.5px 1.5px at 12% 18%, var(--hero-star) 50%, transparent 51%), radial-gradient(1px 1px at 34% 72%, var(--hero-star) 50%, transparent 51%), radial-gradient(1.5px 1.5px at 58% 36%, var(--hero-star) 50%, transparent 51%), radial-gradient(1px 1px at 76% 84%, var(--hero-star) 50%, transparent 51%), radial-gradient(1px 1px at 90% 22%, var(--hero-star) 50%, transparent 51%), radial-gradient(1.5px 1.5px at 46% 8%, var(--hero-star) 50%, transparent 51%);background-size:420px 380px;position:absolute;inset:0}.hero-sky:after{content:"";z-index:0;background-position:120px 70px;background-size:310px 290px}.hero-aurora{z-index:-2;background:radial-gradient(ellipse 28% 34% at 70% 40%, var(--hero-glow-strong), transparent 70%), radial-gradient(ellipse 24% 30% at 28% 62%, var(--hero-glow-soft), transparent 70%);filter:blur(40px);position:absolute;inset:-20%}.hero-floor{z-index:-1;contain:paint;grid-row:3;margin-top:1.25rem;position:relative;overflow:hidden;-webkit-mask-image:linear-gradient(#0000,#000 75%);mask-image:linear-gradient(#0000,#000 75%)}.hero-floor-plane{perspective:26rem;perspective-origin:50% 0;position:absolute;inset:0}.hero-floor-plane:before{content:"";background-image:linear-gradient(var(--hero-line) 1px, color-mix(in srgb, var(--hero-line) 45%, transparent) 2.5px, transparent 3px), linear-gradient(90deg, var(--hero-line) 1px, color-mix(in srgb, var(--hero-line) 45%, transparent) 2.5px, transparent 3px);transform-origin:bottom;background-size:6rem 6rem;position:absolute;inset:-26rem -30% 0;rotate:x 73deg}.hero-floor-glow{background:radial-gradient(ellipse 30% 130% at 50% 110%, var(--hero-glow-strong), transparent 70%);filter:blur(18px);will-change:transform;position:absolute;inset:0}.hero-grid{width:min(100% - 2 * var(--space), 98rem);grid-row:2;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:center;gap:clamp(2rem,5vw,6rem);display:grid}.hero-eyebrow{letter-spacing:.4em;text-transform:uppercase;color:var(--color-primary);margin:0 0 1.25rem;font-size:.8rem;font-weight:500}.hero h1{letter-spacing:-.035em;text-transform:uppercase;margin:0 0 1.25rem;font-size:clamp(2.6rem,6vw,6.9rem);font-weight:900;line-height:.92}.hero-name-line{white-space:nowrap;display:block}.hero-name-line:nth-child(2){color:#0000;background:linear-gradient(90deg, var(--color-primary), var(--color-accent), var(--color-primary));background-size:200% 100%;-webkit-background-clip:text;background-clip:text}.hero-roles{flex-wrap:wrap;gap:.4rem;margin:0 0 1.25rem;padding:0;list-style:none;display:flex}.hero-roles li{border:1px solid var(--glass-border);background:var(--glass-bg);backdrop-filter:blur(10px);border-radius:999px;padding:.35rem .9rem;font-size:clamp(.82rem,.95vw,1rem);font-weight:500}.hero-tagline{max-width:38rem;color:var(--color-text-muted);margin:0 0 2rem;font-size:clamp(1.05rem,1.5vw,1.45rem)}.hero-cta{flex-wrap:wrap;gap:.75rem;display:flex}.hero-cta a{border:1px solid var(--glass-border);background:var(--glass-bg);backdrop-filter:blur(10px);color:var(--color-text);border-radius:999px;padding:.9rem 1.9rem;font-weight:700;transition:transform .2s,border-color .2s,box-shadow .2s;display:inline-block}.hero-cta a:first-child{background:linear-gradient(100deg, var(--color-primary), var(--hero-cta-end));color:var(--color-primary-contrast);box-shadow:0 8px 28px var(--hero-glow-strong);border-color:#0000}.hero-cta a:hover,.hero-cta a:focus-visible{border-color:var(--color-primary);box-shadow:0 12px 32px var(--hero-glow-strong);text-decoration:none;transform:translateY(-2px)}.hero-stats{border-top:1px solid var(--glass-border);gap:clamp(1.5rem,3vw,3.5rem);margin:clamp(2rem,4vw,3.5rem) 0 0;padding-top:1.25rem;display:flex}.hero-stats div{flex-direction:column-reverse;display:flex}.hero-stats dt{letter-spacing:.22em;text-transform:uppercase;color:var(--color-text-muted);font-size:.72rem;font-weight:500}.hero-stats dd{letter-spacing:-.03em;color:var(--color-primary);margin:0;font-size:clamp(2rem,3.4vw,3.75rem);font-weight:900;line-height:1}.hero-visual{justify-self:center;width:30em;height:28em;font-size:clamp(.7rem,1.38vw,1.5rem);position:relative;transform:perspective(70em)rotateY(-14deg)rotateX(5deg)}.hero-visual:before{content:"";z-index:-1;background:radial-gradient(closest-side, var(--hero-glow-strong), transparent);border-radius:50%;position:absolute;inset:10% 5%}.glass{border:1px solid var(--glass-border);background:var(--glass-card);backdrop-filter:blur(14px);box-shadow:0 1.2em 2.5em var(--glass-shadow);color:var(--color-text);border-radius:1.1em;gap:.3em;padding:1em 1.1em;transition:border-color .2s,box-shadow .2s,scale .2s;display:grid;position:absolute}.glass:hover,.glass:focus-visible{z-index:1;border-color:var(--color-primary);box-shadow:0 1.2em 3em var(--hero-glow-strong);text-decoration:none;scale:1.04}.glass strong{font-size:1.05em;font-weight:700}.glass-label{letter-spacing:.22em;text-transform:uppercase;color:var(--color-primary);font-size:.62em;font-weight:500}.glass-text{color:var(--color-text-muted);-webkit-line-clamp:3;-webkit-box-orient:vertical;font-size:.72em;line-height:1.45;display:-webkit-box;overflow:hidden}.glass-action{margin-top:.3em}.glass--ask{padding:.7em;top:2em;left:5em;right:1em}.glass-input{border:1px solid var(--color-primary);white-space:nowrap;border-radius:.5em;align-items:center;gap:.3em;padding:.65em .8em;font-size:.74em;display:flex;overflow:hidden}.glass-caret{background:var(--color-primary);flex:none;width:1px;height:1.2em}.glass--now{width:12em;top:9em;left:0}.glass-bars{align-items:end;gap:.3em;height:2.6em;margin-top:.4em;display:flex}.glass-bars i{background:var(--color-primary);transform-origin:bottom;border-radius:.15em .15em 0 0;flex:1}.glass-bars i:first-child{height:35%}.glass-bars i:nth-child(2){height:55%}.glass-bars i:nth-child(3){height:45%}.glass-bars i:nth-child(4){height:100%}.glass-bars i:nth-child(5){height:70%}.glass-bars i:nth-child(6){height:60%}.glass--project{padding:1.3em 1.4em;top:10.5em;left:13.5em;right:0}.glass--agent{gap:.45em;top:20.2em;left:16.5em;right:-.5em}.glass--agent code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.72em}.glass-ok{color:var(--color-primary)}.glass-ok:before{content:"";background:var(--color-primary);width:.55em;height:.55em;box-shadow:0 0 .6em var(--color-primary);border-radius:50%;margin-right:.5em;display:inline-block}.glass--stack{flex-wrap:wrap;justify-content:center;gap:.4em;padding:.8em;display:flex;top:20.2em;left:.5em;right:14.5em}.glass--stack span{background:var(--glass-bg);border-radius:999px;padding:.3em .7em;font-size:.68em;font-weight:500}.hero-scroll{border:1px solid var(--glass-border);background:var(--glass-bg);backdrop-filter:blur(8px);letter-spacing:.2em;text-transform:uppercase;white-space:nowrap;color:var(--color-text-muted);border-radius:999px;padding:.45rem 1rem;font-size:.72rem;font-weight:500;position:absolute;bottom:1.25rem;left:50%;translate:-50%}.hero-scroll:hover,.hero-scroll:focus-visible{color:var(--color-primary);border-color:var(--color-primary);text-decoration:none}@media (prefers-reduced-motion:no-preference){.hero-eyebrow,.hero-name-line,.hero-roles,.hero-tagline,.hero-cta{animation:.7s cubic-bezier(.2,.7,.2,1) both hero-rise}.hero-name-line:first-child{animation-delay:80ms}.hero-name-line:nth-child(2){animation:.7s cubic-bezier(.2,.7,.2,1) .16s both hero-rise,6s linear 1s infinite hero-sheen}.hero-roles{animation-delay:.26s}.hero-tagline{animation-delay:.34s}.hero-cta{animation-delay:.42s}.hero-stats{animation:.7s cubic-bezier(.2,.7,.2,1) .55s both hero-rise}.hero-aurora{animation:18s ease-in-out infinite alternate hero-aurora}.hero-floor-glow{animation:16s ease-in-out infinite alternate hero-floor-sweep}.glass--agent{animation-duration:.8s,9s;animation-delay:1.05s,2s}.glass-ok:before{animation:1.4s step-end infinite hero-blink}.glass{animation:.8s cubic-bezier(.2,.7,.2,1) both hero-pop,7s ease-in-out infinite hero-drift}.glass--ask{animation-delay:.45s,1.3s}.glass--now{animation-duration:.8s,8s;animation-delay:.6s,1.8s}.glass--project{animation-duration:.8s,6.5s;animation-delay:.75s,2.2s}.glass--stack{animation-duration:.8s,7.5s;animation-delay:.9s,1.5s}.glass-bars i{animation:.9s cubic-bezier(.2,.7,.2,1) 1.2s both hero-bar}.glass-bars i:nth-child(2){animation-delay:1.28s}.glass-bars i:nth-child(3){animation-delay:1.36s}.glass-bars i:nth-child(4){animation-delay:1.44s}.glass-bars i:nth-child(5){animation-delay:1.52s}.glass-bars i:nth-child(6){animation-delay:1.6s}.glass-caret{animation:1.1s step-end infinite hero-blink}.hero-sky:after{animation:9s ease-in-out infinite hero-twinkle}.hero-scroll{animation:2.4s ease-in-out 2s infinite hero-nudge}}@keyframes hero-rise{0%{opacity:0;transform:translateY(1.25rem)}}@keyframes hero-pop{0%{opacity:0;scale:.92}}@keyframes hero-drift{50%{translate:0 -.7em}}@keyframes hero-bar{0%{transform:scaleY(0)}}@keyframes hero-blink{50%{opacity:0}}@keyframes hero-twinkle{50%{opacity:.55}}@keyframes hero-sheen{to{background-position:-200% 0}}@keyframes hero-aurora{to{transform:translate(6%,-4%)rotate(8deg)}}@keyframes hero-floor-sweep{0%{transform:translate(-28%)}to{transform:translate(28%)}}@keyframes hero-nudge{50%{translate:-50% .3rem}}main>section:not(.hero){padding-block:clamp(3.5rem,8vw,6.5rem);position:relative}main>section:not(.hero):before{content:"";z-index:-1;background:radial-gradient(ellipse 40% 50% at 85% 50%, var(--hero-glow-soft), transparent 70%);pointer-events:none;width:100vw;height:80%;position:absolute;top:10%;left:50%;translate:-50%}main>section:not(.hero):nth-of-type(2n):before{background:radial-gradient(ellipse 40% 50% at 15% 50%, var(--hero-glow-soft), transparent 70%)}.about-summary{text-wrap:pretty;max-width:52rem;margin:0;font-size:clamp(1.25rem,2.4vw,1.75rem);line-height:1.45}details{border:1px solid var(--glass-border);background:var(--glass-card);backdrop-filter:blur(14px);border-radius:1.25rem;margin-bottom:.75rem;padding:1.25rem 1.5rem;transition:border-color .2s,box-shadow .2s,transform .2s}details:hover,details[open]{border-color:var(--color-primary);box-shadow:0 1rem 2.5rem var(--glass-shadow)}details:not([open]):hover{transform:translate(.35rem)}summary{cursor:pointer;padding-right:2.5rem;font-weight:500;list-style:none;position:relative}summary::-webkit-details-marker{display:none}summary:after{content:"+";color:var(--color-primary);font-size:1.5rem;font-weight:400;line-height:1;transition:rotate .25s;position:absolute;top:0;right:0}details[open]>summary:after{rotate:45deg}.work-entry summary{grid-template-columns:1fr auto;gap:.15rem 1rem;display:grid}.work-position{letter-spacing:-.01em;font-size:clamp(1.15rem,2vw,1.4rem);font-weight:700}.work-period{letter-spacing:.12em;text-transform:uppercase;color:var(--color-text-muted);white-space:nowrap;grid-area:1/2/span 2;align-self:start;font-size:.8rem;font-weight:500}.work-company{color:var(--color-primary)}.work-summary{color:var(--color-text-muted);grid-column:1/-1;font-weight:400}.work-location{color:var(--color-text-muted);margin:1rem 0 .5rem;font-size:.9rem}.work-technologies .label{font-weight:700}.skill-groups{grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));gap:1rem;margin:0;display:grid}.skill-group{border:1px solid var(--glass-border);background:var(--glass-card);backdrop-filter:blur(14px);border-radius:1.25rem;padding:1.25rem;transition:transform .25s,border-color .25s,box-shadow .25s}.skill-group:hover{border-color:var(--color-primary);box-shadow:0 1rem 2.5rem var(--glass-shadow);transform:translateY(-4px)}.skill-group dt{letter-spacing:.18em;text-transform:uppercase;color:var(--color-primary);margin-bottom:.85rem;font-size:.8rem;font-weight:700}.skill-group dd{margin:0}.skill-keywords{flex-wrap:wrap;gap:.4rem;margin:0;padding:0;list-style:none;display:flex}.skill-keywords li{border:1px solid var(--glass-border);background:var(--glass-bg);border-radius:999px;padding:.25rem .65rem;font-size:.85rem;font-weight:500}.project-grid{grid-template-columns:repeat(auto-fit,minmax(18rem,1fr));gap:1.25rem;margin:0 0 3rem;padding:0;list-style:none;display:grid}.project-card{border:1px solid var(--glass-border);background:var(--glass-card);backdrop-filter:blur(14px);border-radius:1.25rem;flex-direction:column;transition:transform .25s,border-color .25s,box-shadow .25s;display:flex;overflow:hidden}.project-card:hover,.project-card:focus-within{border-color:var(--color-primary);box-shadow:0 1.5rem 3rem var(--glass-shadow);transform:translateY(-4px)}.project-card img{aspect-ratio:8/5;object-fit:cover;border-bottom:1px solid var(--color-border);width:100%;height:auto;transition:scale .4s;display:block}.project-card>a{display:block;overflow:hidden}.project-card:hover img{scale:1.03}.project-body{padding:1.25rem}.project-body h3{margin:0 0 .5rem;font-size:1.35rem}.project-body h3 a{color:var(--color-text)}.project-card:hover h3 a{color:var(--color-primary)}.project-body p{color:var(--color-text-muted);margin:0 0 1rem}.other-repos h3{text-transform:uppercase;letter-spacing:.1em;color:var(--color-text-muted);font-size:1.1rem}.repo-list{grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.repo-card{border:1px solid var(--glass-border);background:var(--glass-card);backdrop-filter:blur(14px);border-radius:1.25rem;padding:1rem 1.25rem;transition:transform .2s,border-color .2s,box-shadow .2s}.repo-card:hover,.repo-card:focus-within{border-color:var(--color-primary);box-shadow:0 1rem 2.5rem var(--glass-shadow);transform:translateY(-3px)}.repo-card>a{font-weight:700}.repo-card p{color:var(--color-text-muted);margin:.25rem 0 .5rem}.repo-meta{color:var(--color-text-muted);font-size:.85rem}.other-repos-empty{color:var(--color-text-muted)}.education-entries{gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.education-entry{border:1px solid var(--glass-border);background:var(--glass-card);backdrop-filter:blur(14px);border-radius:1.25rem;grid-template-columns:1fr auto;gap:.15rem 1rem;padding:1.1rem 1.5rem;display:grid}.education-degree{font-weight:700}.education-institution{color:var(--color-text-muted);grid-column:1}.education-year{color:var(--color-text-muted);grid-area:1/2/span 2}.faq-question{font-weight:700}.faq-answer{margin:.75rem 0 0}.contact-grid{gap:var(--space);grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);display:grid}.contact-links ul{gap:.5rem;margin:0;padding:0;list-style:none;display:grid}.contact-links a{font-weight:500}.contact-form{gap:1rem;display:grid}.contact-form label{gap:.35rem;font-weight:500;display:grid}.contact-form input,.contact-form textarea{font:inherit;border:1px solid var(--glass-border);background:var(--glass-card);color:var(--color-text);border-radius:.9rem;padding:.85rem 1rem;transition:border-color .2s,box-shadow .2s}.contact-form input:focus-visible,.contact-form textarea:focus-visible{outline:2px solid var(--color-primary);outline-offset:1px}.contact-form textarea{resize:vertical}.button{background:linear-gradient(100deg, var(--color-primary), var(--hero-cta-end));box-shadow:0 8px 28px var(--hero-glow-strong);color:var(--color-primary-contrast);font:inherit;cursor:pointer;border:1px solid #0000;border-radius:999px;justify-self:start;padding:.9rem 1.9rem;font-weight:700;transition:transform .2s,box-shadow .2s}.button:hover:not(:disabled),.button:focus-visible{box-shadow:0 12px 32px var(--hero-glow-strong);text-decoration:none;transform:translateY(-2px)}.button:disabled{opacity:.6;cursor:wait}.button--outline{border-color:var(--glass-border);background:var(--glass-bg);box-shadow:none;color:var(--color-text);margin-top:1rem;display:inline-block}.contact-status{min-height:1.5em;color:var(--color-text-muted);margin:0}.contact-dialog{border:1px solid var(--glass-border);border-radius:var(--radius);background:var(--color-bg);width:min(26rem,100vw - 2rem);box-shadow:var(--shadow);color:var(--color-text);text-align:center;padding:2rem 1.75rem 1.75rem}.contact-dialog::backdrop{backdrop-filter:blur(4px);background:#000c1c8c}.contact-dialog[open]{animation:.22s ease-out contact-dialog-in}.contact-dialog h3{margin:.75rem 0 .5rem}.contact-dialog p{color:var(--color-text-muted);margin:0 0 1.5rem}.contact-dialog a{overflow-wrap:anywhere}.contact-dialog .button{justify-self:center}.contact-dialog-icon{width:3.25rem;height:3.25rem;color:var(--color-primary-contrast);border-radius:50%;place-items:center;font-size:1.5rem;font-weight:700;display:inline-grid}.contact-dialog-icon--ok{background:linear-gradient(100deg, var(--color-primary), var(--hero-cta-end))}.contact-dialog-icon--error{background:var(--color-spark)}@keyframes contact-dialog-in{0%{opacity:0;transform:translateY(12px)scale(.97)}}@media (prefers-reduced-motion:reduce){.contact-dialog[open]{animation:none}}@media (width<=800px){.contact-grid{grid-template-columns:1fr}}.chat-page{min-height:calc(100vh - 4rem);padding-block:clamp(2rem,5vw,4rem)}.chat-page h1{text-transform:uppercase;font-size:clamp(2rem,5vw,3rem);font-weight:900}.chat{border:1px solid var(--glass-border);background:var(--glass-card);backdrop-filter:blur(14px);box-shadow:0 1.5rem 3rem var(--glass-shadow);border-radius:1.25rem;overflow:hidden}.chat-tabs{border-bottom:1px solid var(--color-border);display:flex}.chat-tab{color:var(--color-text-muted);font:inherit;text-transform:uppercase;letter-spacing:.08em;cursor:pointer;background:0 0;border:0;border-bottom:3px solid #0000;flex:1;padding:.9rem 1rem;font-weight:700}.chat-tab.is-active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.chat-tab:disabled{cursor:not-allowed;opacity:.5}.chat-panel{gap:1rem;padding:1.25rem;display:grid}.chat-intro{color:var(--color-text-muted);margin:0}.chat-messages{gap:.75rem;max-height:55vh;margin:0;padding:0;list-style:none;display:grid;overflow-y:auto}.chat-message{border-radius:var(--radius);white-space:pre-wrap;max-width:85%;padding:.75rem 1rem}.chat-message--user{background:var(--color-primary);color:var(--color-primary-contrast);justify-self:end}.chat-message--assistant{background:var(--color-bg);border:1px solid var(--color-border);justify-self:start}.chat-error{color:#c0392b;margin:0}.chat-form{grid-template-columns:1fr auto;align-items:end;gap:.75rem;display:grid}.chat-form textarea{font:inherit;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-bg);color:var(--color-text);resize:vertical;padding:.75rem .9rem}.chat-cta{justify-self:start;margin-top:0}.chat-actions{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.chat-actions .button{margin-top:0}.chat-privacy{color:var(--color-text-muted);margin-top:1.5rem;font-size:.875rem}.fit-form{gap:.75rem;display:grid}.fit-form textarea{font:inherit;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-bg);color:var(--color-text);resize:vertical;padding:.75rem .9rem}.fit-form .button{justify-self:start}.fit-card{border:1px solid var(--color-border);border-left:6px solid var(--color-primary);border-radius:var(--radius);background:var(--color-bg);gap:1rem;padding:1.25rem;display:grid}.fit-card--strong{border-left-color:#2e8b57}.fit-card--partial{border-left-color:#d9a400}.fit-card--weak{border-left-color:#c0392b}.fit-verdict{text-transform:uppercase;letter-spacing:.06em;margin:0;font-size:1.5rem}.fit-summary{margin:0}.fit-columns{grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:1rem;display:grid}.fit-columns h4{text-transform:uppercase;letter-spacing:.1em;color:var(--color-text-muted);margin:0 0 .4rem;font-size:.85rem}.fit-columns ul{margin:0}.fit-empty{color:var(--color-text-muted);margin:0}@media (width<=600px){.chat-form{grid-template-columns:1fr}}@media (prefers-reduced-motion:no-preference){@supports (animation-timeline:scroll()){body:before{content:"";z-index:60;background:linear-gradient(90deg, var(--color-primary), var(--color-spark));height:3px;box-shadow:0 0 .8rem var(--color-primary);transform-origin:0;animation:linear both scroll-progress scroll(root);position:fixed;inset:0 0 auto}}@supports (animation-timeline:view()){.about-summary,details,.project-card,.repo-card,.skill-group,.education-entry,.contact-grid>*{animation:linear both card-rise view();animation-range:entry entry 45%}}}@keyframes card-rise{0%{opacity:0;translate:0 2rem;scale:.97}}@keyframes scroll-progress{0%{transform:scaleX(0)}}.site-footer{border-top:1px solid var(--color-border);color:var(--color-text-muted);padding-block:2rem;font-size:.8rem}.footer-links ul{flex-wrap:wrap;gap:.5rem 1.5rem;margin:0 0 1rem;padding:0;list-style:none;display:flex}.footer-links a{color:var(--color-text-muted)}.footer-links a:hover,.footer-links a:focus-visible{color:var(--color-primary)}.footer-note{letter-spacing:.08em;text-transform:uppercase;margin:0}.legal-page{max-width:46rem;padding-block:3rem 4rem}.legal-page h1{margin-bottom:.25rem}.legal-updated{color:var(--color-text-muted);margin-top:0;font-size:.9rem}.legal-page h2{margin-top:2.25rem;font-size:1.35rem}.legal-page li+li{margin-top:.35rem}.legal-page table{border-collapse:collapse;max-width:100%;font-size:.95rem;display:block;overflow-x:auto}.legal-page th,.legal-page td{border-bottom:1px solid var(--color-border);text-align:left;vertical-align:top;padding:.6rem .5rem}.legal-contact{border:1px solid var(--glass-border);border-radius:var(--radius);background:var(--glass-bg);margin-top:2.5rem;padding:1.25rem 1.5rem}.legal-contact h2{margin-top:0}.legal-disclaimer{color:var(--color-text-muted);margin-top:1.5rem;font-size:.85rem}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}@media (width<=800px){.hero{min-height:auto}.hero-grid{grid-template-columns:1fr}.hero h1{font-size:clamp(2.2rem,11.5vw,4.5rem)}.hero-visual{margin-top:1rem;font-size:clamp(.62rem,3.05vw,1rem);transform:none}.site-header .container{flex-wrap:wrap;gap:.5rem;min-height:0;padding-block:.6rem 0}.site-nav{width:calc(100% + 2 * var(--space));margin-inline:calc(-1 * var(--space));border-top:1px solid var(--color-border);order:3}.site-nav ul{padding:.5rem var(--space);overscroll-behavior-x:contain;scroll-snap-type:x proximity;scrollbar-width:none;background:0 0;border:0;border-radius:0;flex-wrap:nowrap;gap:.25rem;overflow-x:auto;mask-image:linear-gradient(90deg,#000 calc(100% - 2rem),#0000)}.site-nav ul::-webkit-scrollbar{display:none}.site-nav li{scroll-snap-align:start;flex:none}.site-nav li:last-child{order:-1}.site-nav a{border:1px solid var(--color-border);background:var(--color-bg-alt);white-space:nowrap;padding:.45rem .9rem}html{scroll-padding-top:7.5rem}.work-entry summary,.education-entry{grid-template-columns:1fr}.work-period,.education-year{grid-area:auto/1}}
