:root{--bg:#070b0c;--surface:#ffffff0f;--surface-2:#ffffff1a;--surface-3:#ffffff24;--text:#ffffffe6;--muted:#ffffffad;--border:#ffffff24;--accent:#22c7a9;--accent-2:#0e7c86;--danger:#ff4d6d;--shadow:0 18px 44px #0006;--sans:system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;--mono:ui-monospace, Consolas, monospace;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font:16px/1.55 var(--sans);letter-spacing:.2px;color:var(--text);background:radial-gradient(1200px 800px at 12% 12%, #22c7a92e, transparent 55%), radial-gradient(900px 700px at 88% 18%, #0e7c862e, transparent 60%), var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0}a{color:inherit}::selection{background:#22c7a947}#root{min-height:100svh}.page{isolation:isolate;min-height:100svh;position:relative}.page:before{content:"";pointer-events:none;z-index:-1;background:radial-gradient(480px 360px at var(--mx,50%) var(--my,20%), #22c7a92e, transparent 60%), radial-gradient(700px 520px at 20% 120%, #0e7c8629, transparent 55%);opacity:.85;position:fixed;inset:-1px}.page:after{content:"";pointer-events:none;z-index:-1;mix-blend-mode:overlay;background:radial-gradient(900px 600px at 40% -10%,#ffffff0f,#0000 60%),linear-gradient(#0000001a,#0000 38%,#0000002e);position:fixed;inset:0}.container{width:min(1100px,100% - 40px);margin:0 auto}.skip-link{background:var(--surface-2);border:1px solid var(--border);color:var(--text);z-index:20;border-radius:10px;padding:10px 12px;transition:transform .2s;position:absolute;inset:8px auto auto 8px;transform:translateY(-140%)}.skip-link:focus{outline:none;transform:translateY(0)}.header{z-index:10;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border);background:linear-gradient(#00000080,#0000001f,#0000);position:sticky;top:0}.progress{transform-origin:0;opacity:.95;background:linear-gradient(90deg,#22c7a940,#22c7a9f2,#0e7c86e6);height:2px;position:absolute;inset:0 0 auto}.header-inner{justify-content:space-between;align-items:center;gap:16px;padding:14px 0;display:flex}.header-actions{align-items:center;gap:10px;display:flex}.brand{letter-spacing:.3px;align-items:center;gap:10px;font-weight:650;text-decoration:none;display:inline-flex}.brand-dot{background:linear-gradient(135deg, var(--accent), var(--accent-2));border-radius:999px;width:10px;height:10px;box-shadow:0 0 0 4px #0e7c8633}.nav{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:14px;display:flex}.nav a{color:var(--muted);border:1px solid #0000;border-radius:10px;padding:8px 10px;font-size:14px;text-decoration:none;transition:background .2s,border-color .2s,color .2s}.nav a:hover{color:var(--text);background:var(--surface);border-color:var(--border)}.nav a.active{color:var(--text);background:linear-gradient(135deg,#22c7a924,#0e7c861a);border-color:#22c7a96b}.nav-cta{background:linear-gradient(135deg,#0e7c8659,#22c7a940);color:var(--text)!important;border-color:#22c7a959!important}.iconButton{appearance:none;border:1px solid var(--border);color:var(--text);cursor:pointer;background:#ffffff0a;border-radius:12px;padding:8px 10px;font-size:14px;transition:transform 80ms,border-color .2s,background .2s}.iconButton:hover{background:#ffffff0f;border-color:#22c7a959}.iconButton:active{transform:translateY(1px)}.iconButton:focus-visible{outline-offset:2px;outline:2px solid #22c7a999}.menuButton{display:none}.mobileNav{pointer-events:none;opacity:0;z-index:30;transition:opacity .2s;position:fixed;inset:0}.mobileNav.is-open{pointer-events:auto;opacity:1}.mobileNavBackdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0000008c;position:absolute;inset:0}.mobileNavPanel{border:1px solid var(--border);background:var(--surface-2);box-shadow:var(--shadow);border-radius:18px;gap:6px;max-width:520px;margin:0 auto;padding:12px;display:grid;position:absolute;inset:10px 10px auto}.mobileNavPanel a{color:var(--muted);background:#ffffff08;border:1px solid #0000;border-radius:14px;padding:12px;text-decoration:none}.mobileNavPanel a.active{color:var(--text);background:linear-gradient(135deg,#22c7a924,#0e7c861a);border-color:#22c7a96b}.mobileNavTop{justify-content:space-between;align-items:center;gap:12px;padding:4px 2px 6px;display:flex}.mobileNavTitle{letter-spacing:-.2px;font-weight:700}.section{padding:64px 0;scroll-margin-top:84px}.hero{padding-top:48px}.hero-grid{grid-template-columns:1.35fr .65fr;align-items:start;gap:22px;display:grid}.kicker{color:var(--muted);margin:0 0 10px}.title{letter-spacing:-.8px;margin:0 0 12px;font-size:clamp(40px,5.4vw,64px);line-height:1.05}.lead{color:var(--muted);max-width:62ch;margin:0}.hero-actions{flex-wrap:wrap;gap:12px;margin-top:22px;display:flex}.button{appearance:none;border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:10px 14px;text-decoration:none;transition:transform 80ms,background .2s,border-color .2s;display:inline-flex}.button:hover{background:#ffffff13;border-color:#22c7a961}.button:active{transform:translateY(1px)}.button.primary{background:linear-gradient(135deg,#0e7c8673,#22c7a94d);border-color:#22c7a980}.button:focus-visible{outline-offset:2px;outline:2px solid #22c7a9b3}.mini{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 14px;max-width:520px;margin:22px 0 0;padding:0;list-style:none;display:grid}.mini li{border:1px solid var(--border);background:#ffffff0a;border-radius:14px;justify-content:space-between;gap:10px;padding:10px 12px;display:flex}.mini-k{color:var(--muted)}.mini-v{font-weight:600}.hero-card{border:1px solid var(--border);box-shadow:var(--shadow);background:#ffffff0f;border-radius:18px;padding:18px;position:sticky;top:92px}.avatar{letter-spacing:1px;width:86px;height:86px;color:var(--text);background:linear-gradient(135deg,#0e7c86b3,#22c7a98c);border:1px solid #ffffff2e;border-radius:999px;place-items:center;font-weight:800;display:grid;overflow:hidden}.avatarImg{object-fit:cover;width:100%;height:100%;display:block}.avatarText{display:inline-block}.hero-card-body{margin-top:14px}.hero-card-name{font-size:18px;font-weight:700}.hero-card-role{color:var(--muted);margin-top:4px;font-size:14px}.hero-card-links{gap:8px;margin-top:14px;display:grid}.hero-card-links a{color:var(--text);border:1px solid var(--border);overflow-wrap:anywhere;background:#ffffff0a;border-radius:12px;padding:10px 12px;text-decoration:none}.hero-card-links a:hover{border-color:#22c7a959}.section-head{margin-bottom:18px}.section-head h2{letter-spacing:-.2px;margin:0;font-size:26px}.muted{color:var(--muted)}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.card{border:1px solid var(--border);background:linear-gradient(#ffffff14,#ffffff0a);border-radius:18px;padding:18px;transition:transform .18s,border-color .2s,background .2s;position:relative}.card:before{content:"";-webkit-mask-composite:xor;opacity:0;pointer-events:none;background:linear-gradient(135deg,#22c7a973,#0e7c861f,#0000);border-radius:18px;padding:1px;transition:opacity .22s;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);-webkit-mask-position:0 0,0 0;mask-position:0 0,0 0;-webkit-mask-size:auto,auto;mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.card:hover{border-color:#22c7a952;transform:translateY(-2px)}.card:hover:before{opacity:1}.card h3{letter-spacing:-.2px;margin:0 0 8px;font-size:18px}.list{color:var(--muted);margin:12px 0 0;padding-left:18px}.list li{margin:6px 0}.dl{margin:12px 0 0}.dl-row{border-top:1px solid #ffffff14;grid-template-columns:120px minmax(0,1fr);gap:12px;padding:10px 0;display:grid}.dl-row:first-child{border-top:none}.dl dt{color:var(--muted)}.dl dd{margin:0}.dl a{color:var(--text);border-bottom:1px dashed #22c7a966;text-decoration:none}.tags{flex-wrap:wrap;gap:10px;display:flex}.tags.small{gap:8px;margin-top:12px}.tag{border:1px solid var(--border);color:var(--text);background:#ffffff0a;border-radius:999px;padding:8px 12px;font-size:14px;transition:transform .12s,border-color .2s,background .2s}.tag:hover{background:#ffffff0f;border-color:#22c7a959;transform:translateY(-1px)}.tags.small .tag{color:var(--muted);padding:6px 10px;font-size:13px}.skillsGrid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px;display:grid}.skill{--value:0;--delay:0s;padding:16px 18px}.skillTop{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:10px;display:flex}.skillName{letter-spacing:-.2px;font-weight:700}.skillPct{color:var(--muted);font-variant-numeric:tabular-nums;font-size:14px}.skillTrack{background:#ffffff0f;border:1px solid #ffffff1f;border-radius:999px;height:12px;position:relative;overflow:hidden}.skillFill{width:0%;height:100%;transition:width 1.1s cubic-bezier(.2,.8,.2,1);transition-delay:var(--delay);background:linear-gradient(90deg,#22c7a940,#22c7a9f2,#0e7c86e6);border-radius:999px;box-shadow:0 10px 28px #22c7a92e}.skill.reveal.is-visible .skillFill{width:calc(var(--value) * 1%)}.timeline{gap:14px;display:grid;position:relative}.t-item{grid-template-columns:20px minmax(0,1fr);align-items:start;gap:14px;display:grid}.t-dot{background:linear-gradient(135deg, var(--accent), var(--accent-2));border-radius:999px;width:10px;height:10px;margin-top:16px;box-shadow:0 0 0 6px #22c7a924}.t-body{border:1px solid var(--border);background:#ffffff0f;border-radius:18px;padding:16px 18px}.t-top{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.t-title{margin:0;font-size:18px}.t-period{color:var(--muted);white-space:nowrap;font-size:14px}.t-place{color:var(--muted);margin-top:6px}.project{gap:10px;display:grid}.project-top{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.project-link{color:var(--text);border:1px solid var(--border);background:#ffffff0a;border-radius:999px;padding:6px 10px;font-size:14px;text-decoration:none}.project-link:hover{border-color:#22c7a959}.project-link.disabled{color:var(--muted);border-style:dashed}.projectButton{text-align:left;cursor:pointer;width:100%;font:inherit}.projectButton:focus-visible{outline-offset:3px;outline:2px solid #22c7a999}.reveal{opacity:0;filter:blur(4px);will-change:opacity, transform, filter;transition:opacity .5s,transform .5s,filter .5s;transform:translateY(14px)}.reveal.is-visible{opacity:1;filter:blur();transform:translateY(0)}.modal{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:40;background:#0009;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modalCard{border:1px solid var(--border);background:var(--surface-2);width:min(720px,100%);box-shadow:var(--shadow);border-radius:20px;gap:12px;padding:18px;display:grid}.modalTop{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.modalEyebrow{color:var(--muted);letter-spacing:.4px;text-transform:uppercase;font-size:13px}.modalTitle{letter-spacing:-.3px;margin-top:4px;font-size:22px;font-weight:800}.modalActions{flex-wrap:wrap;align-items:center;gap:10px;margin-top:6px;display:flex}.hint{color:var(--muted);border:1px dashed var(--border);background:#ffffff08;border-radius:12px;padding:10px 12px;font-size:14px}.contact-list{gap:10px;margin:12px 0 0;padding:0;list-style:none;display:grid}.contact-list li{border:1px solid var(--border);background:#ffffff0a;border-radius:14px;grid-template-columns:100px minmax(0,1fr);align-items:baseline;gap:12px;padding:10px 12px;display:grid}.contact-k{color:var(--muted)}.contact-v{color:var(--text);overflow-wrap:anywhere;text-decoration:none}.contact-v:hover{border-bottom:1px dashed #22c7a966}.form{gap:12px;display:grid}.field{gap:6px;display:grid}.field label{color:var(--muted);font-size:14px}.field input,.field textarea{border:1px solid var(--border);color:var(--text);font:inherit;background:#ffffff0a;border-radius:14px;padding:10px 12px}.field input:focus,.field textarea:focus{outline-offset:2px;outline:2px solid #22c7a98c}.footer{border-top:1px solid var(--border);background:#0000001a;padding:26px 0 40px}.footer-inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.footer a{text-decoration:none}.footer a:hover{text-decoration:underline}@media (width<=980px){.header-inner{flex-wrap:wrap}.header-actions{justify-content:flex-end;width:100%}.hero-grid{grid-template-columns:1fr}.hero-card{position:static}.grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=720px){.container{width:min(1100px,100% - 28px)}.section{padding:48px 0}.grid-2,.grid-3,.mini{grid-template-columns:1fr}.nav{display:none}.menuButton{display:inline-flex}.skillsGrid{grid-template-columns:1fr}}@media (width<=520px){.header-actions{justify-content:space-between}.hero-actions .button{width:100%}.dl-row,.contact-list li{grid-template-columns:1fr;gap:6px}.t-top{flex-direction:column;align-items:flex-start;gap:6px}.t-period{white-space:normal}.project-top{flex-direction:column;align-items:flex-start;gap:10px}.project-link{align-self:flex-start}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}.reveal{opacity:1;filter:none;transition:none;transform:none}.skillFill{width:calc(var(--value) * 1%);transition:none}.card,.button,.iconButton,.tag{transition:none}}
