:root{--bg: #020603;--bg-panel: rgba(4, 14, 8, .72);--border: rgba(61, 255, 122, .22);--border-strong: rgba(61, 255, 122, .5);--text: #b9f7cf;--text-dim: #6ba883;--text-bright: #eafff1;--accent: #3dff7a;--accent-deep: #0b5d2a;--glow: 0 0 18px rgba(61, 255, 122, .35);--font-mono: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--font-display: "Tektur", "JetBrains Mono", ui-monospace, monospace;--font-body: var(--font-mono);--radius: 4px;--content-width: 74rem}html[data-mode=blue]{--font-display: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--bg: #ffffff;--bg-panel: #f7f8fa;--border: #dfe3e8;--border-strong: #b9c0c9;--text: #1f2933;--text-dim: #5c6773;--text-bright: #0b1219;--accent: #1c5ed6;--accent-deep: #d6e3fb;--glow: none;--font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--content-width: 48rem}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth;overflow-x:hidden}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:15px;line-height:1.65;-webkit-font-smoothing:antialiased;overflow-x:hidden}a{color:var(--accent);text-decoration:none;border-bottom:1px solid transparent;transition:border-color .2s,color .2s}a:hover{border-bottom-color:currentColor}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.rain,.scene,.trail{position:fixed;inset:0;pointer-events:none}.rain,.trail{width:100%;height:100%}.rain{z-index:0;opacity:.32}.scene{z-index:1}.trail{z-index:3}.scanlines{position:fixed;inset:0;z-index:2;pointer-events:none;background:repeating-linear-gradient(to bottom,#0000 0px 2px,#00000047 3px 4px);mix-blend-mode:multiply;opacity:.5}.topbar{position:fixed;top:0;left:0;right:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.9rem clamp(1rem,4vw,3rem);backdrop-filter:blur(6px);background:linear-gradient(to bottom,var(--bg) 20%,transparent)}.topbar__brand{font-family:var(--font-display);font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--text-bright);font-size:.8rem;border:0}.topbar__controls{display:flex;align-items:center;gap:.5rem}.pill{display:inline-flex;align-items:center;gap:.5rem;padding:.35rem .8rem;font:inherit;font-size:.75rem;letter-spacing:.08em;color:var(--text);background:var(--bg-panel);border:1px solid var(--border);border-radius:999px;cursor:pointer;transition:border-color .2s,box-shadow .2s}.pill:hover{border-color:var(--border-strong);box-shadow:var(--glow)}.pill--locale{letter-spacing:.12em;text-decoration:none;border-bottom:0;color:var(--text)}.pill--locale:hover{border-color:var(--border-strong);color:var(--text-bright)}.pill__dot{width:.55rem;height:.55rem;border-radius:999px}.pill__dot--red{background:#ff3b4e;box-shadow:0 0 10px #ff3b4eb3}.pill__dot--blue{background:#4d8dff;box-shadow:0 0 10px #4d8dffb3}.nav{position:fixed;right:clamp(.75rem,2vw,2rem);top:50%;transform:translateY(-50%);z-index:20}.nav ul{list-style:none;margin:0;padding:0;display:grid;gap:.85rem}.nav__link{display:flex;align-items:center;justify-content:flex-end;gap:.6rem;color:var(--text-dim);font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;border:0}.nav__label{opacity:0;transform:translate(6px);transition:opacity .2s,transform .2s}.nav__link:hover .nav__label,.nav__link--active .nav__label{opacity:1;transform:none}.nav__marker{width:1.4rem;height:1px;background:currentColor;transition:width .2s,background .2s}.nav__link--active{color:var(--accent)}.nav__link--active .nav__marker{width:2.4rem;box-shadow:var(--glow)}.content{position:relative;z-index:10;max-width:var(--content-width);margin:0 auto;padding:0 clamp(1rem,5vw,3rem)}.section{padding:clamp(4.5rem,12vh,9rem) 0;scroll-margin-top:4rem}.section__inner{position:relative;max-width:39rem}.section__inner:before{content:"";position:absolute;inset:-2rem -2.5rem;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at center,#020603e0,#020603b8 55%,#02060300)}.section[data-side=left] .section__inner{margin-left:auto}.section[data-side=center] .section__inner{margin:0 auto}.section--hero{min-height:100vh;display:flex;flex-direction:column;justify-content:center}.section__lead{margin:-.8rem 0 1.8rem;color:var(--text-dim);font-size:.9rem;max-width:34rem}.section__title{font-family:var(--font-display);margin:0 0 1.6rem;font-size:clamp(1.4rem,3.4vw,2rem);font-weight:700;letter-spacing:.04em;color:var(--text-bright);text-shadow:var(--glow)}.section__title:before{content:"// ";color:var(--text-dim);text-shadow:none}.prompt{color:var(--accent)}.hero__prompt{margin:0 0 1.2rem;font-size:.85rem;color:var(--text-dim)}.hero__name{font-family:var(--font-display);margin:0;font-size:clamp(2rem,8vw,5rem);line-height:1.05;font-weight:700;letter-spacing:-.02em;color:var(--text-bright);text-shadow:var(--glow)}.decode--pending{opacity:0}.type-line{display:block}.caret{display:inline-block;width:.5em;height:.09em;margin-left:.1em;background:var(--text);vertical-align:baseline;box-shadow:0 0 12px #b9f7cf80;animation:caret-blink 1.05s step-end infinite}.caret--typing{animation:none}@keyframes caret-blink{50%{opacity:0}}html[data-mode=blue] .caret{display:none}.hero__role{margin:.6rem 0 0;font-size:clamp(1.05rem,3.2vw,1.7rem);color:var(--accent)}.hero__tagline{margin:.4rem 0 0;color:var(--text-dim);letter-spacing:.05em}.hero__facts{list-style:none;margin:2rem 0 0;padding:0;display:flex;flex-wrap:wrap;gap:.6rem}.hero__facts li{padding:.3rem .75rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-panel);font-size:.78rem;color:var(--text)}.hero__scroll{margin-top:3rem;display:inline-flex;align-items:center;gap:.6rem;font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;color:var(--text-dim);border:0}.hero__arrow{animation:bob 1.8s ease-in-out infinite}@keyframes bob{0%,to{transform:translateY(0)}50%{transform:translateY(4px)}}.about__summary p{margin:0 0 1rem;max-width:46rem;font-size:1rem}.cards{margin-top:2.4rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr))}.card{min-width:0;padding:1.1rem 1.2rem;background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);transition:border-color .2s,box-shadow .2s,transform .2s}.card:hover{border-color:var(--border-strong);box-shadow:var(--glow);transform:translateY(-2px)}.card__title{margin:0 0 .7rem;font-size:.82rem;letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}.card__list,.job__achievements,.oss__list{margin:0;padding:0;list-style:none;display:grid;gap:.5rem}.card__list li,.job__achievements li,.oss__list li{position:relative;padding-left:1.1rem;font-size:.88rem;color:var(--text)}.card__list li:before,.job__achievements li:before,.oss__list li:before{content:"▸";position:absolute;left:0;color:var(--accent)}.skills{display:grid;gap:1.4rem}.skills__title{margin:0 0 .6rem;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--text-dim)}.skills__list,.job__stack{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.45rem}.tag{padding:.22rem .6rem;font-size:.78rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-panel);color:var(--text);transition:border-color .2s,color .2s}.tag:hover{border-color:var(--border-strong);color:var(--text-bright)}.tag--dim{color:var(--text-dim);font-size:.72rem}.timeline{list-style:none;margin:0;padding:0;display:grid;gap:1.6rem}.job,.job__window,.job__bar,.job__body{min-width:0}.job__window{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-panel);overflow:hidden;transition:border-color .2s,box-shadow .2s}.job__window:hover{border-color:var(--border-strong);box-shadow:var(--glow)}.job__bar{display:flex;align-items:center;gap:.7rem;padding:.5rem .9rem;border-bottom:1px solid var(--border);background:#3dff7a0f}.job__dots{display:inline-flex;gap:.3rem}.job__dots i{width:.5rem;height:.5rem;border-radius:999px;background:var(--border-strong)}.job__path{flex:1;min-width:0;font-size:.72rem;letter-spacing:.06em;color:var(--text-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.job__body{padding:1.1rem 1.2rem 1.2rem}.job__company{font-family:var(--font-display);margin:0;font-size:1.15rem;color:var(--text-bright)}.job__badge{margin-left:auto;padding:.1rem .5rem;font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:var(--bg);background:var(--accent);border-radius:999px;white-space:nowrap}.job__period{margin:.15rem 0 .8rem;font-size:.78rem;color:var(--text-dim)}.job__scale{position:relative;height:3px;margin-bottom:1rem;border-radius:2px;background:#3dff7a1f}.job__scale-fill{position:absolute;top:0;height:100%;border-radius:2px;background:var(--accent);box-shadow:var(--glow)}.job__description{margin:0 0 .9rem;font-size:.92rem}.job__stack{margin-top:.9rem}.oss{padding:1.3rem 1.4rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--bg-panel)}.oss__title{margin:0;display:flex;align-items:baseline;gap:.8rem;flex-wrap:wrap;font-size:1.1rem;color:var(--text-bright)}.oss__stars{font-size:.8rem;color:var(--text-dim)}.oss__meta{margin:.2rem 0 .8rem;font-size:.78rem;color:var(--text-dim)}.oss__description{margin:0 0 1rem;font-size:.9rem}.education{margin-top:2rem}.education__title{margin:0 0 .4rem;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--text-dim)}.education p{margin:0}.education__note{color:var(--text-dim);font-size:.85rem}.project{padding:1.3rem 1.4rem;border:1px solid var(--border);border-left:2px solid var(--accent);border-radius:var(--radius);background:var(--bg-panel)}.project__head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;flex-wrap:wrap}.project__name{font-family:var(--font-display);margin:0;font-size:1.3rem;color:var(--text-bright)}.project__status{font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--text-dim)}.project__tagline{margin:.3rem 0 .9rem;color:var(--accent);font-size:.95rem}.project__description{margin:0 0 1rem;font-size:.92rem}.project__bullets{margin:0;padding:0;list-style:none;display:grid;gap:.5rem}.project__bullets li{position:relative;padding-left:1.1rem;font-size:.88rem}.project__bullets li:before{content:"▸";position:absolute;left:0;color:var(--accent)}.project__stack{list-style:none;margin:1.1rem 0 0;padding:0;display:flex;flex-wrap:wrap;gap:.45rem}.counter{display:flex;align-items:baseline;gap:.6rem;flex-wrap:wrap;margin:2rem 0 0;font-size:.82rem;color:var(--text-dim)}.counter__value{padding:.1rem .5rem;border:1px solid var(--border);border-radius:var(--radius);color:var(--accent);letter-spacing:.22em;font-variant-numeric:tabular-nums;text-shadow:var(--glow)}.section--contact{min-height:80vh;padding-bottom:clamp(13rem,30vh,24rem)}.contact__lead{margin:0 0 1.6rem;max-width:40rem}.contact__list{list-style:none;margin:0;padding:0;display:grid;gap:.7rem;max-width:34rem}.contact__list li{display:grid;grid-template-columns:6.5rem 1fr;gap:.8rem;align-items:baseline;padding-bottom:.6rem;border-bottom:1px dashed var(--border)}.contact__key{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--text-dim)}.contact__value{color:var(--text-bright);word-break:break-word}a.contact__value{color:var(--accent)}.contact__reveal{justify-self:start;padding:.15rem .6rem;font:inherit;font-size:.82rem;color:var(--accent);background:transparent;border:1px dashed var(--border-strong);border-radius:var(--radius);cursor:pointer}.contact__outro{margin-top:2.5rem;color:var(--text-dim);font-size:.85rem}.footer{position:relative;z-index:10;max-width:var(--content-width);margin:0 auto;padding:2rem clamp(1rem,5vw,3rem) 3rem;border-top:1px solid var(--border);font-size:.76rem;color:var(--text-dim)}.footer p{margin:.2rem 0}.neo-banner{position:fixed;inset:0;z-index:60;display:grid;place-items:center;pointer-events:none}.neo-banner__text{font-family:var(--font-display);position:relative;font-size:clamp(1.3rem,5vw,3rem);font-weight:700;letter-spacing:.22em;color:var(--text-bright);text-shadow:0 0 26px rgba(61,255,122,.8);animation:neo-in .35s ease,neo-out 1.2s ease 7.8s forwards}.neo-banner__text:before,.neo-banner__text:after{content:attr(data-text);position:absolute;inset:0;opacity:.75}.neo-banner__text:before{color:#ff2d55;animation:glitch-x .35s steps(2,end) infinite}.neo-banner__text:after{color:#2de2ff;animation:glitch-x .27s steps(2,end) infinite reverse}@keyframes glitch-x{0%{transform:translate(-3px,1px)}50%{transform:translate(3px,-1px)}to{transform:translate(-2px)}}@keyframes neo-in{0%{opacity:0;letter-spacing:.6em}to{opacity:1;letter-spacing:.22em}}@keyframes neo-out{to{opacity:0}}html.neo .rain{opacity:.55}html.neo .scanlines{opacity:.85;animation:scan-roll 1.6s linear infinite}html.neo .section__title,html.neo .hero__name{animation:text-flicker .9s steps(3,end) infinite}@keyframes scan-roll{0%{background-position-y:0}to{background-position-y:8px}}@keyframes text-flicker{0%,to{opacity:1}45%{opacity:.72}55%{opacity:1}}html[data-mode=blue] *,html[data-mode=blue] *:before,html[data-mode=blue] *:after{animation:none!important;transition:none!important}html[data-mode=blue] body{font-size:15.5px;line-height:1.6}html[data-mode=blue] .section__title:before,html[data-mode=blue] .card__list li:before,html[data-mode=blue] .job__achievements li:before,html[data-mode=blue] .oss__list li:before,html[data-mode=blue] .project__bullets li:before{content:""}html[data-mode=blue] .card__list,html[data-mode=blue] .job__achievements,html[data-mode=blue] .oss__list,html[data-mode=blue] .project__bullets{padding-left:1.15rem;list-style:disc;gap:.35rem}html[data-mode=blue] .card__list li,html[data-mode=blue] .job__achievements li,html[data-mode=blue] .oss__list li,html[data-mode=blue] .project__bullets li{padding-left:0;list-style:disc}html[data-mode=blue] .nav,html[data-mode=blue] .counter,html[data-mode=blue] .hero__prompt,html[data-mode=blue] .hero__scroll,html[data-mode=blue] .contact__outro,html[data-mode=blue] .job__bar,html[data-mode=blue] .job__scale,html[data-mode=blue] .section__inner:before{display:none}html[data-mode=blue] .section__inner,html[data-mode=blue] .section[data-side=left] .section__inner,html[data-mode=blue] .section[data-side=center] .section__inner{max-width:none;margin:0}html[data-mode=blue] .section.section--hero{min-height:auto;padding:5.5rem 0 1.8rem}html[data-mode=blue] .hero__name{font-size:clamp(1.9rem,5vw,2.6rem);letter-spacing:-.01em;font-weight:700}html[data-mode=blue] .hero__role{font-size:1.05rem;font-weight:500}html[data-mode=blue] .hero__tagline{color:var(--text-dim)}html[data-mode=blue] .section{padding:1.9rem 0;border-bottom:1px solid var(--border)}html[data-mode=blue] .section:last-of-type{border-bottom:0}html[data-mode=blue] .section__title{font-size:1.15rem;letter-spacing:.06em;text-transform:uppercase;color:var(--accent);margin-bottom:1.1rem;padding-bottom:.4rem;border-bottom:2px solid var(--accent-deep)}html[data-mode=blue] .section__lead{margin:-.6rem 0 1.2rem}html[data-mode=blue] .card,html[data-mode=blue] .oss,html[data-mode=blue] .project{background:var(--bg-panel);border:1px solid var(--border);border-left-width:1px;border-radius:6px;padding:.9rem 1rem}html[data-mode=blue] .card:hover,html[data-mode=blue] .tag:hover,html[data-mode=blue] .job__window:hover{transform:none;box-shadow:none;border-color:var(--border)}html[data-mode=blue] .card__title{color:var(--text-bright);font-size:.78rem}html[data-mode=blue] .job__window{border:0;background:transparent;border-radius:0}html[data-mode=blue] .job__body{padding:0}html[data-mode=blue] .timeline{gap:1.6rem}html[data-mode=blue] .job{padding-left:.9rem;border-left:3px solid var(--accent-deep)}html[data-mode=blue] .job__company{font-size:1.08rem;font-weight:700}html[data-mode=blue] .job__badge{color:#fff}html[data-mode=blue] .tag{background:var(--bg-panel);border-radius:4px;font-size:.74rem}html[data-mode=blue] .contact__list li{border-bottom:0;padding-bottom:.15rem}html[data-mode=blue] .footer{border-top:1px solid var(--border);padding-top:1.2rem}@media(max-width:860px){.nav{display:none}.contact__list li{grid-template-columns:1fr;gap:.15rem}}@page{size:A4;margin:14mm 14mm 16mm}@media print{html,html[data-mode=red],html[data-mode=blue]{--bg: #ffffff;--bg-panel: #ffffff;--border: #c9ced6;--border-strong: #9aa3ae;--text: #14181d;--text-dim: #4c5560;--text-bright: #000000;--accent: #16233a;--accent-deep: #16233a;--glow: none;--content-width: none;--font-body: Georgia, "Times New Roman", serif;--font-display: "Helvetica Neue", Arial, sans-serif}.rain,.scene,.scanlines,.trail,.nav,.topbar,.counter,.neo-banner,.caret,.hero__prompt,.hero__scroll,.contact__outro,.job__bar,.job__scale,.section__inner:before,#boot{display:none!important}body{background:#fff;color:#14181d;font-size:10.5pt;line-height:1.45}.content,.footer{max-width:none;margin:0;padding:0}.section__inner,.section[data-side=left] .section__inner,.section[data-side=center] .section__inner{max-width:none;margin:0}.section{padding:0 0 8pt;border-bottom:0;break-inside:auto}.section--hero{min-height:0;padding:0 0 10pt;border-bottom:1pt solid #c9ced6}.hero__name{font-size:22pt;line-height:1.1;text-shadow:none}.hero__role{font-size:12pt}.hero__facts{gap:6pt;margin-top:8pt}.hero__facts li{border:0;padding:0;font-size:9.5pt}.hero__facts li+li:before{content:"· ";color:#4c5560}.section__title{font-size:12pt;margin:0 0 6pt;text-transform:uppercase;letter-spacing:.08em;border-bottom:1pt solid #c9ced6;padding-bottom:3pt;break-after:avoid;break-inside:avoid}.section__lead{margin:0 0 6pt;font-size:9.5pt}.card,.oss,.project,.job,.education,.skills__group{break-inside:avoid;background:transparent;border:0;padding:0}.cards{gap:8pt;grid-template-columns:1fr 1fr}.card__title{color:#14181d;font-size:9pt}.timeline{gap:12pt}.job{border-left:2pt solid #c9ced6;padding-left:8pt}.job__body{padding:0}.job__company{font-size:12pt}.job__badge{background:transparent;color:#4c5560;border:1pt solid #c9ced6}.tag{border:0;padding:0;font-size:8.5pt;color:#4c5560}.tag:after{content:" ·"}.job__stack li:last-child:after,.skills__list li:last-child:after,.project__stack li:last-child:after{content:""}.skills{gap:7pt}.contact__list li{grid-template-columns:70pt 1fr;border-bottom:0;padding-bottom:2pt}a{color:#14181d;text-decoration:none}.contact__value[href^=http]:after,.project__name a:after,.oss__title a:after{content:" (" attr(href) ")";font-size:8.5pt;color:#4c5560;word-break:break-all}.footer{border-top:1pt solid #c9ced6;padding-top:6pt;font-size:8.5pt;color:#4c5560}.footer__tech{display:none}}
