:root{--bg:#0b0b0c;--bg-elevated:#121316;--bg-soft:#17191d;--surface:rgba(255,255,255,0.025);--surface-strong:rgba(255,255,255,0.04);--border:rgba(234,234,234,0.11);--border-strong:rgba(234,234,234,0.18);--text:#eaeaea;--text-soft:#a3a6ad;--text-faint:#767982;--accent:#7f97c2;--accent-soft:rgba(127,151,194,0.14);--accent-line:rgba(127,151,194,0.4);--shadow:0 18px 50px rgba(0,0,0,0.22);--radius:18px;--radius-sm:12px;--container:1120px;--transition-fast:140ms ease}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,sans-serif;color:var(--text);background:var(--bg);line-height:1.7;text-rendering:optimizeLegibility}body::selection{background:rgba(127,151,194,.28)}a{color:inherit;text-decoration:none;transition:color var(--transition-fast),border-color var(--transition-fast),background-color var(--transition-fast),opacity var(--transition-fast)}img{display:block;max-width:100%}h1,h2,h3,h4{margin:0;font-family:Manrope,Inter,sans-serif;letter-spacing:-.04em;line-height:1.05;font-weight:700}p{margin:0}.container{width:min(var(--container),calc(100% - 2.5rem));margin:0 auto}.dev-banner{border-bottom:1px solid var(--border);background:var(--bg-elevated);color:var(--text-soft)}.dev-banner-inner{min-height:40px;display:flex;align-items:center;font-size:.9rem}.section{padding:4.75rem 0;border-top:1px solid rgba(234,234,234,.05)}.eyebrow{display:inline-flex;align-items:center;gap:.65rem;color:var(--text-faint);font-size:.82rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase}.eyebrow:before{content:"";width:2rem;height:1px;background:var(--accent-line)}.site-header{position:-webkit-sticky;position:sticky;top:0;z-index:20;background:rgba(11,11,12,.94);border-bottom:1px solid rgba(234,234,234,.07)}.site-header-inner{min-height:82px;display:flex;align-items:center;justify-content:space-between;gap:1.5rem}.brand{display:inline-flex;align-items:center;gap:.9rem;min-width:0}.brand-mark{width:2.75rem;height:2.75rem;display:grid;flex-shrink:0;place-items:center;border:1px solid var(--border-strong);border-radius:.8rem;background:var(--surface);overflow:hidden}.brand-mark-image{width:100%;height:100%;object-fit:contain}.brand-copy{display:flex;flex-direction:column;gap:.12rem;min-width:0}.brand-name{font-family:Manrope,Inter,sans-serif;font-size:.98rem;font-weight:700;letter-spacing:-.03em;white-space:nowrap}.brand-tagline{color:var(--text-soft);font-size:.72rem;font-weight:500;letter-spacing:-.01em;line-height:1.25}.nav-shell{display:flex;justify-content:flex-end}.nav{gap:.45rem;padding:.4rem;border:1px solid rgba(234,234,234,.09);border-radius:999px;background:rgba(18,19,22,.82)}.nav,.nav-primary{display:flex;align-items:center}.nav-primary{gap:.25rem;min-width:0}.nav-link{display:inline-flex;align-items:center;justify-content:center;min-height:2.5rem;padding:.62rem .95rem;border:1px solid transparent;border-radius:999px;color:var(--text-soft);font-size:.92rem;font-weight:500;letter-spacing:-.01em}.nav-link-active,.nav-link:focus-visible,.nav-link:hover{color:var(--text);outline:none;background:rgba(255,255,255,.03)}.nav-link-active{border-color:rgba(127,151,194,.34);background:rgba(127,151,194,.1);box-shadow:inset 0 0 0 1px rgba(127,151,194,.08)}.language-switch,.nav-cta{color:var(--text)}.language-switch{min-width:2.5rem;min-height:2.5rem;padding:.52rem .78rem;border:1px solid rgba(234,234,234,.1);border-radius:999px;background:rgba(255,255,255,.025);font-size:.74rem;font-weight:700;letter-spacing:.14em}.language-switch:focus-visible,.language-switch:hover{border-color:var(--accent-line);box-shadow:0 0 0 1px rgba(127,151,194,.16)}.hero{padding:4.5rem 0 3rem}.hero-compact{padding:3.5rem 0 1.5rem}.hero-grid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(220px,.7fr);grid-gap:3rem;gap:3rem;align-items:start}.hero-copy,.page-intro{max-width:780px}.hero-copy h1,.page-intro h1{margin:1rem 0 1.15rem;font-size:clamp(2.7rem,7vw,4.75rem)}.page-intro h1{font-size:clamp(2.2rem,5vw,3.4rem)}.contact-item p,.contact-panel-copy p,.cta-box p,.feature-entry p,.form-note,.form-status,.hero-copy p,.page-intro p,.project-entry p,.section-header p,.text-block-entry p,.timeline-entry p{color:var(--text-soft)}.hero-copy p,.page-intro p{max-width:66ch;font-size:1.04rem}.page-intro-compact{padding-bottom:.5rem}.hero-actions{display:flex;flex-wrap:wrap;gap:.9rem;margin-top:1.75rem}.button{display:inline-flex;align-items:center;justify-content:center;min-height:2.9rem;padding:.78rem 1rem;border:1px solid transparent;border-radius:999px;font-size:.94rem;font-weight:600;transition:color var(--transition-fast),border-color var(--transition-fast),background-color var(--transition-fast),transform var(--transition-fast),box-shadow var(--transition-fast)}.button-primary{border-color:rgba(127,151,194,.34);background:var(--accent-soft);color:var(--text)}.button-primary:focus-visible,.button-primary:hover{outline:none;border-color:rgba(127,151,194,.7);box-shadow:0 0 0 1px rgba(127,151,194,.12)}.button-secondary{border-color:var(--border);background:transparent;color:var(--text-soft)}.button-secondary:focus-visible,.button-secondary:hover{outline:none;color:var(--text);border-color:var(--border-strong);background:var(--surface)}.hero-photo-wrapper{display:flex;justify-content:flex-end;align-items:flex-start}.hero-photo{width:220px;height:220px;margin:0;overflow:hidden;border:1px solid var(--border);border-radius:1.15rem;background:#101114}.hero-photo img{width:100%;height:100%;object-fit:cover}.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:1.2rem;gap:1.2rem;margin-top:2rem;padding-top:1.4rem;border-top:1px solid rgba(234,234,234,.08)}.stat{display:grid;grid-gap:.35rem;gap:.35rem;padding-right:1rem}.stat strong{font-family:Manrope,Inter,sans-serif;font-size:1rem;font-weight:700;color:var(--text)}.stat span{font-size:.93rem;color:var(--text-soft)}.section-header{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,36ch);grid-gap:1.5rem;gap:1.5rem;align-items:end;margin-bottom:2rem}.section-heading{position:relative}.section-heading:before{content:"";position:absolute;top:-1rem;left:0;width:2.4rem;height:1px;background:var(--accent-line)}.contact-form-shell h2,.contact-panel-copy h2,.cta-box h2,.section-header h2,.text-block-entry h2{font-size:clamp(1.8rem,4vw,2.8rem)}.grid-3,.skills-grid{display:grid;grid-gap:1.35rem;gap:1.35rem}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.skills-grid{grid-template-columns:1fr;gap:0}.contact-form-shell,.contact-panel-copy,.feature-entry,.text-block-entry{padding:1.4rem 0 0;border-top:1px solid rgba(234,234,234,.09)}.contact-form-shell h2,.contact-panel-copy h2,.feature-entry h3,.project-entry h3,.timeline-entry h3{margin-top:.35rem;font-size:1.3rem}.card-tag{display:inline-flex;align-items:center;color:var(--accent);font-size:.78rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase}.projects-list{display:grid;grid-gap:0;gap:0}.contact-item,.project-entry,.timeline-entry{padding:1.55rem 0;border-top:1px solid rgba(234,234,234,.09)}.contact-item:last-child,.project-entry:last-child,.timeline-entry:last-child{border-bottom:1px solid rgba(234,234,234,.09)}.project-entry-header,.timeline-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.project-heading{max-width:44rem}.project-summary{margin-top:.95rem;max-width:72ch}.project-meta{display:flex;flex-wrap:wrap;gap:.55rem}.project-entry>.project-meta{margin-top:1.25rem}.experience-stack,.project-stack{display:grid;grid-gap:.75rem;gap:.75rem;margin-top:1.25rem}.meta-label{color:var(--text-faint);font-size:.76rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase}.chip{display:inline-flex;align-items:center;min-height:2rem;padding:.34rem .72rem;border:1px solid var(--border);border-radius:999px;color:var(--text-soft);font-size:.84rem;background:rgba(255,255,255,.015)}.experience-stack .chip,.project-stack .chip,.skill-meta .chip{border-color:rgba(127,151,194,.24);background:rgba(127,151,194,.08);color:var(--text)}.project-links{flex-shrink:0}.contact-item a,.footer-links a,.project-links a,.text-block-link a{color:var(--text);text-decoration:underline;-webkit-text-decoration-color:rgba(127,151,194,.36);text-decoration-color:rgba(127,151,194,.36);text-underline-offset:.24em}.contact-item a:focus-visible,.contact-item a:hover,.footer-links a:focus-visible,.footer-links a:hover,.project-links a:focus-visible,.project-links a:hover,.text-block-link a:focus-visible,.text-block-link a:hover{color:var(--accent);outline:none;-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}.about-layout{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:2rem;gap:2rem}.skill-entry{display:grid;grid-template-columns:minmax(180px,220px) minmax(0,1fr);grid-gap:1rem 2rem;gap:1rem 2rem;align-items:start;padding:1.25rem 0;border-top:1px solid rgba(234,234,234,.09)}.skill-entry:last-child{border-bottom:1px solid rgba(234,234,234,.09)}.skill-heading h3{margin-top:.15rem;font-size:1.08rem}.skill-meta{display:flex;flex-wrap:wrap;gap:.6rem}.timeline-period{display:inline-flex;align-items:center;min-height:2rem;padding:.3rem .7rem;border:1px solid var(--border);border-radius:999px;color:var(--text);font-size:.83rem;background:rgba(255,255,255,.02)}.text-block-entry{display:grid;grid-gap:1rem;gap:1rem}.text-block-entry p+p{margin-top:.9rem}.text-block-link{margin-top:.4rem}.cta-box{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-gap:1.5rem 2rem;gap:1.5rem 2rem;padding:1.6rem 0 0;border-top:1px solid rgba(234,234,234,.12)}.cta-box p{max-width:60ch}.cta-box .hero-actions{margin-top:0;align-self:start;justify-content:flex-end}.contact-layout{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);grid-gap:3rem;gap:3rem;align-items:start}.contact-list{display:grid}.contact-item{display:grid;grid-gap:.35rem;gap:.35rem}.contact-item strong{font-size:.82rem;color:var(--text-faint);letter-spacing:.14em;text-transform:uppercase}.contact-form{display:grid;grid-gap:1.2rem;gap:1.2rem;margin-top:1.5rem}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:1rem;gap:1rem}.form-field{display:grid;grid-gap:.5rem;gap:.5rem}.form-field-full{grid-column:1/-1}.form-label{color:var(--text-soft);font-size:.9rem}.input{width:100%;min-height:3rem;padding:.9rem .95rem;border:1px solid var(--border);border-radius:.9rem;background:rgba(255,255,255,.015);color:var(--text);font:inherit}textarea.input{min-height:10rem;resize:vertical}.input::placeholder{color:var(--text-faint)}.input:focus-visible{outline:none;border-color:rgba(127,151,194,.75);box-shadow:0 0 0 1px rgba(127,151,194,.12)}.contact-actions{display:flex;flex-wrap:wrap;gap:.8rem}.form-status-success{color:#b9d8c3}.form-status-error{color:#ddb1b1}.site-footer{padding:2rem 0 2.5rem;color:var(--text-soft)}.site-footer-inner{justify-content:space-between;padding-top:1.25rem;border-top:1px solid rgba(234,234,234,.08)}.footer-links,.site-footer-inner{display:flex;flex-wrap:wrap;gap:1rem}@media (max-width:960px){.about-layout,.contact-layout,.cta-box,.grid-3,.hero-grid,.section-header{grid-template-columns:1fr}.hero-photo-wrapper{justify-content:flex-start}.skill-entry{gap:.85rem}.skill-entry,.stats{grid-template-columns:1fr}.cta-box .hero-actions{justify-content:flex-start}}@media (max-width:760px){.container{width:min(var(--container),calc(100% - 1.5rem))}.nav,.site-header-inner{align-items:flex-start}.site-header-inner{min-height:auto;padding:1rem 0;flex-direction:column}.nav,.nav-shell{width:100%}.nav{justify-content:space-between;padding:.45rem;gap:.45rem}.nav-primary{flex-wrap:wrap}.nav-link{min-height:2.35rem;padding:.55rem .85rem}.language-switch{align-self:stretch}.hero{padding-top:3rem}.hero-copy h1,.page-intro h1{font-size:clamp(2.1rem,12vw,3.2rem)}.contact-actions,.project-entry-header,.site-footer-inner,.timeline-heading{flex-direction:column;align-items:flex-start}.form-grid{grid-template-columns:1fr}}