:root,[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg-deep:#060a08;--bg-panel:#0c1410b8;--bg-panel-solid:#0c1410;--surface-muted:#00000040;--surface-overlay:#060a08bf;--surface-footer:#060a0899;--border:#2d865938;--border-strong:#2d865973;--accent:#1e6b47;--accent-bright:#2d8659;--accent-hover:#3fa872;--accent-glow:#2d86598c;--accent-dim:#134d32;--accent-subtle:#1e6b4740;--text:#e8f0eb;--text-muted:#8fa898;--text-dim:#5c7264;--tag-bg:#1e6b472e;--btn-bg:#1e6b4726;--btn-bg-hover:#2d865947;--btn-shadow:#2d865933;--input-bg:#00000059;--input-focus-ring:#2d865926;--terminal-bar-bg:#00000059;--terminal-dot-red:#5c3d3d;--terminal-dot-yellow:#5c563d;--card-shadow:#00000059;--card-glow:#2d865914;--chip-hover-glow:#2d865933;--nav-hover-bg:#1e6b471f;--nav-active-bg:#1e6b4733;--canvas-bg:#060a08;--canvas-grid:#1e6b470f;--canvas-particle:45, 134, 89;--canvas-gradient:#1e6b4714;--name-gradient-end:#2d8659;--font-mono:"JetBrains Mono", ui-monospace, monospace;--font-sans:"Inter", system-ui, sans-serif;--radius:10px;--nav-height:64px}[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg-deep:#f0f5f2;--bg-panel:#ffffffe0;--bg-panel-solid:#fff;--surface-muted:#ffffffb3;--surface-overlay:#f0f5f2e6;--surface-footer:#f0f5f2f2;--border:#1e6b4747;--border-strong:#1e6b4780;--accent:#1a6b47;--accent-bright:#1e7a52;--accent-hover:#15603a;--accent-glow:#1e6b4759;--accent-dim:#2d8659;--accent-subtle:#1e6b4724;--text:#0d1612;--text-muted:#3d5248;--text-dim:#5c7264;--tag-bg:#1e6b471a;--btn-bg:#1e6b4714;--btn-bg-hover:#1e6b4729;--btn-shadow:#1e6b4726;--input-bg:#ffffffe6;--input-focus-ring:#1e6b4733;--terminal-bar-bg:#0000000d;--terminal-dot-red:#e8a0a0;--terminal-dot-yellow:#e8d4a0;--card-shadow:#00000014;--card-glow:#1e6b470f;--chip-hover-glow:#1e6b471f;--nav-hover-bg:#1e6b4714;--nav-active-bg:#1e6b4724;--canvas-bg:#f0f5f2;--canvas-grid:#1e6b471f;--canvas-particle:30, 107, 71;--canvas-gradient:#1e6b470f;--name-gradient-end:#1e7a52}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font-sans);background:var(--bg-deep);color:var(--text);cursor:none;min-height:100dvh;line-height:1.6;transition:background-color .25s,color .25s;overflow-x:hidden}body a,body button,body [role=button],body input,body textarea,body select{cursor:none}#root{min-height:100dvh;position:relative}::selection{background:var(--accent-dim);color:var(--text)}a{color:var(--accent-bright);text-decoration:none;transition:color .2s,text-shadow .2s}a:hover{color:var(--accent-hover);text-shadow:0 0 12px var(--accent-glow)}code,.mono{font-family:var(--font-mono)}.panel{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transition:background-color .25s,border-color .25s}.panel-solid{background:var(--bg-panel-solid);border:1px solid var(--border);border-radius:var(--radius)}.section-title{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--accent-bright);margin-bottom:.5rem;font-size:.75rem;font-weight:600}.section-heading{font-family:var(--font-mono);color:var(--text);margin-bottom:1.5rem;font-size:clamp(1.5rem,4vw,2rem);font-weight:700}.section-heading:before{content:"// ";color:var(--accent-dim)}.tag{font-family:var(--font-mono);background:var(--tag-bg);border:1px solid var(--border);color:var(--accent-bright);border-radius:4px;padding:.2rem .55rem;font-size:.7rem;display:inline-block}.btn{font-family:var(--font-mono);border-radius:var(--radius);border:1px solid var(--border-strong);background:var(--btn-bg);color:var(--text);align-items:center;gap:.5rem;padding:.65rem 1.25rem;font-size:.85rem;font-weight:500;transition:background .2s,border-color .2s,box-shadow .2s,transform .15s,color .2s;display:inline-flex}.btn:hover{background:var(--btn-bg-hover);border-color:var(--accent-bright);box-shadow:0 0 24px var(--btn-shadow);transform:translateY(-1px)}.btn-primary{background:linear-gradient(135deg, var(--accent-dim), var(--accent));border-color:var(--accent-bright)}.btn-primary:hover{background:linear-gradient(135deg, var(--accent), var(--accent-bright))}@media (pointer:coarse){body,body a,body button,body [role=button],body input,body textarea,body select{cursor:auto}body input,body textarea{cursor:text}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}body{cursor:auto}body a,body button,body [role=button],body input,body textarea,body select{cursor:pointer}}.light-cursor{z-index:9999;pointer-events:none;opacity:0;transition:opacity .3s;position:fixed;inset:0}.light-cursor--visible{opacity:1}.light-cursor__trail,.light-cursor__ring,.light-cursor__core{will-change:transform;pointer-events:none;position:fixed;top:0;left:0}.light-cursor__trail{background:radial-gradient(circle, color-mix(in srgb, var(--accent-bright) 35%, transparent) 0%, color-mix(in srgb, var(--accent) 12%, transparent) 35%, transparent 70%);filter:blur(8px);border-radius:50%;width:120px;height:120px;margin:-60px 0 0 -60px;transition:transform .15s}.light-cursor__ring{border:1px solid color-mix(in srgb, var(--accent-bright) 50%, transparent);width:36px;height:36px;box-shadow:0 0 20px var(--accent-glow), inset 0 0 12px color-mix(in srgb, var(--accent-bright) 15%, transparent);border-radius:50%;margin:-18px 0 0 -18px;transition:width .2s,height .2s,margin .2s,border-color .2s}.light-cursor__ring--hover{border-color:var(--accent-hover);width:52px;height:52px;box-shadow:0 0 32px var(--accent-glow), inset 0 0 16px color-mix(in srgb, var(--accent-bright) 25%, transparent);margin:-26px 0 0 -26px}.light-cursor__core{background:var(--accent-hover);width:6px;height:6px;box-shadow:0 0 8px var(--accent-bright), 0 0 20px var(--accent-glow), 0 0 40px color-mix(in srgb, var(--accent-glow) 40%, transparent);border-radius:50%;margin:-3px 0 0 -3px}.moving-bg{z-index:0;pointer-events:none;position:fixed;inset:0}.lang-switcher{border:1px solid var(--border);background:var(--surface-muted);border-radius:6px;align-items:center;gap:.15rem;padding:.2rem .35rem;display:inline-flex}.lang-switcher__btn{font-family:var(--font-mono);color:var(--text-dim);background:0 0;border:none;border-radius:4px;padding:.25rem .45rem;font-size:.72rem;font-weight:600;transition:color .2s,background .2s}.lang-switcher__btn:hover{color:var(--text-muted)}.lang-switcher__btn--active{color:var(--accent-bright);background:var(--accent-subtle)}.lang-switcher__sep{font-family:var(--font-mono);color:var(--text-dim);-webkit-user-select:none;user-select:none;font-size:.65rem}.nav{z-index:100;height:var(--nav-height);background:var(--surface-overlay);border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);justify-content:space-between;align-items:center;padding:0 clamp(1rem,4vw,2.5rem);display:flex;position:fixed;top:0;left:0;right:0}.nav__start{align-items:center;gap:.85rem;display:flex}.nav__brand{color:var(--accent-bright);font-size:.9rem;font-weight:600}.nav__prompt{color:var(--text-dim);margin-right:.25rem}.nav__cursor-blink{color:var(--accent-bright);animation:1.1s step-end infinite blink}@keyframes blink{50%{opacity:0}}.nav__links{flex-wrap:wrap;justify-content:flex-end;gap:.25rem;display:flex}.nav-link{font-family:var(--font-mono);color:var(--text-muted);background:0 0;border:1px solid #0000;border-radius:6px;padding:.45rem .85rem;font-size:.78rem;font-weight:500;transition:color .2s,background .2s,border-color .2s}.nav-link:hover{color:var(--text);background:var(--nav-hover-bg);border-color:var(--border)}.nav-link--active{color:var(--accent-bright);background:var(--nav-active-bg);border-color:var(--border-strong)}@media (width<=640px){.nav{flex-direction:column;gap:.75rem;height:auto;padding:.75rem 1rem}.nav__start{justify-content:space-between;width:100%}.nav__links{justify-content:center;width:100%}.nav-link{padding:.4rem .6rem;font-size:.72rem}}.theme-toggle{border:1px solid var(--border);background:var(--surface-muted);border-radius:6px;align-items:center;gap:.15rem;padding:.2rem .35rem;display:inline-flex}.theme-toggle__btn{font-family:var(--font-mono);color:var(--text-dim);background:0 0;border:none;border-radius:4px;padding:.25rem .45rem;font-size:.72rem;font-weight:600;transition:color .2s,background .2s}.theme-toggle__btn:hover{color:var(--text-muted)}.theme-toggle__btn--active{color:var(--accent-bright);background:var(--accent-subtle)}.theme-toggle__sep{font-family:var(--font-mono);color:var(--text-dim);-webkit-user-select:none;user-select:none;font-size:.65rem}.contact__layout{gap:1.5rem;display:grid}@media (width>=768px){.contact__layout{grid-template-columns:1fr 1.1fr;align-items:start}}.contact__info,.contact__form{padding:1.5rem}.contact__lead{color:var(--text-muted);margin-bottom:1.5rem;line-height:1.6}.contact__channels{flex-direction:column;gap:1rem;list-style:none;display:flex}.contact__channels li{flex-direction:column;gap:.25rem;display:flex}.contact__label{color:var(--accent-dim);text-transform:uppercase;letter-spacing:.06em;font-size:.72rem}.contact__form-hint{color:var(--text-dim);margin-bottom:1.25rem;font-size:.72rem}.contact__field{flex-direction:column;gap:.4rem;margin-bottom:1rem;display:flex}.contact__field span{color:var(--text-dim);font-size:.75rem}.contact__field input,.contact__field textarea{font-family:var(--font-mono);border-radius:var(--radius);border:1px solid var(--border);background:var(--input-bg);color:var(--text);padding:.7rem .9rem;font-size:.88rem;transition:border-color .2s,box-shadow .2s}.contact__field input::placeholder,.contact__field textarea::placeholder{color:var(--text-dim)}.contact__field input:focus,.contact__field textarea:focus{border-color:var(--accent-bright);box-shadow:0 0 0 3px var(--input-focus-ring);outline:none}.contact__field textarea{resize:vertical;min-height:120px}.home{gap:2.5rem;display:grid}.home__hero{max-width:640px}.home__name{font-family:var(--font-mono);background:linear-gradient(135deg, var(--text) 0%, var(--name-gradient-end) 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-bottom:.75rem;font-size:clamp(2.25rem,6vw,3.5rem);font-weight:700;line-height:1.15}.home__role{color:var(--text-muted);margin-bottom:1rem;font-size:.95rem}.home__role-accent{color:var(--accent-bright)}.home__role-sep{color:var(--text-dim)}.home__tagline{color:var(--text-muted);max-width:52ch;margin-bottom:1.75rem;font-size:1.1rem}.home__actions{flex-wrap:wrap;gap:.75rem;display:flex}.home__terminal{max-width:560px;overflow:hidden}.home__terminal-bar{background:var(--terminal-bar-bg);border-bottom:1px solid var(--border);align-items:center;gap:.4rem;padding:.65rem 1rem;display:flex}.home__dot{border-radius:50%;width:10px;height:10px}.home__dot--red{background:var(--terminal-dot-red)}.home__dot--yellow{background:var(--terminal-dot-yellow)}.home__dot--green{background:var(--accent-dim)}.home__terminal-title{color:var(--text-dim);margin-left:.5rem;font-size:.72rem}.home__terminal-body{min-height:200px;padding:1.25rem 1.5rem;font-size:.82rem;line-height:1.7;overflow-x:auto}.home__line--comment{color:var(--text-dim)}.home__line--cmd{color:var(--accent-bright)}.home__line--out{color:var(--text-muted);padding-left:.5rem}.home__caret{color:var(--accent-bright);animation:.9s step-end infinite blink}.home__bottom{flex-direction:column;gap:2rem;margin-top:.5rem;display:flex}.home__personal{padding:1.5rem}.home__personal-facts{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:1rem 1.5rem;margin-bottom:1.25rem;display:grid}.home__personal-fact dt{color:var(--accent-dim);text-transform:uppercase;letter-spacing:.06em;margin-bottom:.25rem;font-size:.72rem}.home__personal-fact dd{color:var(--text);font-size:.9rem;font-weight:500}.home__personal-muted{color:var(--text-dim);font-weight:400}.home__personal-bio{color:var(--text-muted);max-width:65ch;margin-bottom:1.25rem;font-size:.95rem;line-height:1.65}.home__personal-interests-label{color:var(--accent-dim);text-transform:uppercase;letter-spacing:.06em;margin-bottom:.75rem;font-size:.72rem}.home__skill-list{flex-wrap:wrap;gap:.5rem;list-style:none;display:flex}.skill-chip{transition:border-color .2s,box-shadow .2s}.skill-chip:hover{border-color:var(--accent-bright);box-shadow:0 0 12px var(--chip-hover-glow)}@media (width>=900px){.home{grid-template-columns:1fr 1fr;align-items:start}.home__hero{grid-column:1}.home__terminal{grid-area:1/2/3;justify-self:end;width:100%}.home__bottom{grid-column:1}}.legal{max-width:720px}.legal__back{margin-bottom:1.5rem}.legal__content.panel{padding:1.5rem 1.75rem}.legal__content h2{font-family:var(--font-mono);color:var(--accent-bright);margin:1.75rem 0 .75rem;font-size:1rem;font-weight:600}.legal__content h2:first-child{margin-top:0}.legal__content h3{font-family:var(--font-mono);color:var(--text);margin:1.25rem 0 .5rem;font-size:.85rem;font-weight:600}.legal__content p,.legal__content li{color:var(--text-muted);font-size:.92rem;line-height:1.65}.legal__content p{margin-bottom:.85rem}.legal__content ul{margin:.5rem 0 1rem 1.25rem}.legal__content a{word-break:break-all}.legal__address{color:var(--text-muted);margin:.75rem 0 1rem;font-style:normal;line-height:1.7}.legal__note{font-family:var(--font-mono);color:var(--text-dim);border-top:1px solid var(--border);margin-top:1.5rem;padding-top:1rem;font-size:.75rem}.resume__grid{gap:1.25rem;display:grid}@media (width>=768px){.resume__grid{grid-template-columns:1fr 1fr}.resume__block--full{grid-column:1/-1}}.resume__block{padding:1.5rem}.resume__block-title{color:var(--accent-bright);letter-spacing:.08em;text-transform:uppercase;border-bottom:1px solid var(--border);margin-bottom:1.25rem;padding-bottom:.75rem;font-size:.8rem}.resume__entry+.resume__entry{border-top:1px solid var(--border);margin-top:1.5rem;padding-top:1.5rem}.resume__entry-header{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.5rem;margin-bottom:.35rem;display:flex}.resume__role{font-size:1.05rem;font-weight:600}.resume__company{color:var(--text-muted);margin-bottom:.75rem;font-size:.85rem}.resume__highlights{flex-direction:column;gap:.5rem;list-style:none;display:flex}.resume__highlights li{color:var(--text-muted);padding-left:1.1rem;font-size:.92rem;position:relative}.resume__highlights li:before{content:">";color:var(--accent-dim);font-family:var(--font-mono);font-size:.75rem;position:absolute;left:0}.resume__details{color:var(--text-muted);font-size:.92rem}.resume__skills{flex-wrap:wrap;gap:.5rem;margin-bottom:1.25rem;list-style:none;display:flex}.resume__note{color:var(--text-dim);font-size:.75rem;line-height:1.6}.resume__note code{color:var(--accent-bright);font-size:.72rem}.work__intro{color:var(--text-muted);max-width:60ch;margin-bottom:2rem;font-size:1.02rem}.work__grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.25rem;display:grid}.project-card{padding:1.5rem;transition:border-color .25s,box-shadow .25s,transform .2s;position:relative}.project-card:hover{border-color:var(--border-strong);box-shadow:0 8px 32px var(--card-shadow), 0 0 24px var(--card-glow);transform:translateY(-2px)}.project-card__index{color:var(--accent-dim);margin-bottom:.75rem;font-size:.7rem;display:block}.project-card__title{font-family:var(--font-mono);color:var(--text);margin-bottom:.65rem;font-size:1.05rem;font-weight:600}.project-card__desc{color:var(--text-muted);margin-bottom:1rem;font-size:.9rem;line-height:1.55}.project-card__tags{flex-wrap:wrap;gap:.4rem;list-style:none;display:flex}.main{z-index:1;min-height:100dvh;padding:calc(var(--nav-height) + 2.5rem) clamp(1rem, 4vw, 2.5rem) 5rem;max-width:1100px;margin:0 auto;position:relative}.main__content{animation:.35s fadeIn}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.footer{z-index:1;color:var(--text-dim);border-top:1px solid var(--border);background:var(--surface-footer);flex-wrap:wrap;justify-content:center;align-items:center;gap:.5rem;padding:1.5rem;font-size:.72rem;display:flex;position:relative}.footer__sep{color:var(--accent-dim)}.footer__link{font-family:inherit;font-size:inherit;color:var(--text-muted);text-underline-offset:3px;background:0 0;border:none;padding:0;text-decoration:underline;transition:color .2s}.footer__link:hover{color:var(--accent-bright);text-shadow:none}.footer__theme{align-items:center;display:inline-flex}@media (width<=640px){.main{padding-top:calc(88px + 2rem)}}
