:root{--bg:#f1eee7;--bg2:#e7e2d8;--panel:rgba(255,255,255,.58);--panel2:rgba(255,255,255,.4);--card:rgba(250,248,243,.86);--pb:rgba(30,30,40,.1);--ink:#1b1a16;--muted:#5b564d;--faint:#938d81;--line:rgba(30,30,40,.1);--accent:#15876b;--aglow:rgba(21,135,107,.2);--asoft:rgba(21,135,107,.1);--on-accent:#fbfaf6;--shadow:0 22px 55px rgba(40,42,50,.12);--ease:cubic-bezier(.16,.84,.44,1)}[data-theme=sepia]{--bg:#ece0ca;--bg2:#e2d3b6;--panel:rgba(255,250,238,.52);--panel2:rgba(255,250,238,.34);--card:rgba(246,238,222,.88);--pb:rgba(90,66,30,.15);--ink:#2b2317;--muted:#6a5c46;--faint:#9c8a6f;--line:rgba(90,66,30,.16);--accent:#1c7257;--aglow:rgba(28,114,87,.2);--asoft:rgba(28,114,87,.1);--on-accent:#fcf7ec;--shadow:0 22px 55px rgba(80,60,30,.16)}[data-theme=dark]{--bg:#0c0f0e;--bg2:#101413;--panel:rgba(255,255,255,.05);--panel2:rgba(255,255,255,.035);--card:rgba(255,255,255,.055);--pb:rgba(255,255,255,.11);--ink:#eceee8;--muted:#9aa39b;--faint:#616a63;--line:rgba(255,255,255,.09);--accent:#34d6a0;--aglow:rgba(52,214,160,.22);--asoft:rgba(52,214,160,.12);--on-accent:#06140f;--shadow:0 26px 60px rgba(0,0,0,.55)}*{box-sizing:border-box}html,body{margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--ink);font-family:Plus Jakarta Sans,sans-serif;overflow-x:hidden;-webkit-font-smoothing:antialiased;transition:background-color .5s ease,color .5s ease}a{color:inherit}::selection{background:var(--accent);color:var(--on-accent)}::-webkit-scrollbar{width:9px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--pb);border-radius:5px}@keyframes blob1{0%,to{transform:translate(0) scale(1)}50%{transform:translate(6%,4%) scale(1.12)}}@keyframes blob2{0%,to{transform:translate(0) scale(1.05)}50%{transform:translate(-5%,-6%) scale(.92)}}@keyframes blob3{0%,to{transform:translate(0) scale(1)}50%{transform:translate(4%,-5%) scale(1.1)}}@keyframes riseIn{0%{transform:translateY(118%)}to{transform:translateY(0)}}@keyframes fadeUp{0%{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeSoft{0%{opacity:0}to{opacity:1}}@keyframes bob{0%,to{transform:translateY(0);opacity:.85}50%{transform:translateY(9px);opacity:.35}}@keyframes drawLine{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes marquee{0%{transform:translate(0)}to{transform:translate(-50%)}}@keyframes pulseDot{0%,to{box-shadow:0 0 0 0 var(--aglow)}50%{box-shadow:0 0 0 7px transparent}}.wrap{position:relative;min-height:100vh}section{position:relative;z-index:2}h1,h2,h3{font-family:Newsreader,serif;font-weight:400;letter-spacing:-.01em}.em{font-style:italic;color:var(--accent)}.mono{font-family:JetBrains Mono,monospace}.kicker{font-family:JetBrains Mono,monospace;font-size:.62rem;letter-spacing:.26em;text-transform:uppercase;color:var(--accent)}.bg{position:fixed;top:-10%;right:-10%;bottom:-10%;left:-10%;z-index:0;pointer-events:none;will-change:transform}.blob{position:absolute;border-radius:50%;will-change:transform}.blob1{top:2%;right:4%;width:46vw;height:46vw;background:radial-gradient(circle at 40% 40%,var(--aglow),transparent 62%);animation:blob1 16s ease-in-out infinite}.blob2{bottom:6%;left:-6%;width:40vw;height:40vw;background:radial-gradient(circle at 50% 50%,var(--aglow),transparent 60%);animation:blob2 20s ease-in-out infinite}.blob3{top:42%;left:38%;width:34vw;height:34vw;background:radial-gradient(circle at 50% 50%,var(--asoft),transparent 60%);animation:blob3 24s ease-in-out infinite}.spot{position:fixed;top:0;left:0;width:280px;height:280px;margin:-140px 0 0 -140px;z-index:1;pointer-events:none;background:radial-gradient(circle,var(--aglow),transparent 60%);opacity:.7;transform:translate(-1000px,-1000px);transition:opacity .4s ease;will-change:transform}.progress-track{position:fixed;top:0;left:0;right:0;height:2px;z-index:60;background:transparent}.progress{height:100%;width:100%;transform-origin:0 50%;background:var(--accent)}header{position:fixed;top:0;left:0;right:0;z-index:50;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px clamp(20px,5vw,64px)}.pill{display:flex;align-items:center;background:var(--panel);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid var(--pb);box-shadow:var(--shadow);border-radius:40px}.logo{gap:9px;text-decoration:none;color:var(--ink);padding:8px 14px}.logo .mt{font-family:Newsreader,serif;font-weight:600;font-size:1.2rem;line-height:1}.logo .dot{width:6px;height:6px;border-radius:50%;background:var(--accent)}nav{gap:6px;padding:6px}nav a{font-family:JetBrains Mono,monospace;font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;text-decoration:none;padding:8px 14px;border-radius:30px;transition:color .25s ease,background-color .25s ease;cursor:pointer;color:var(--muted);background:transparent}nav a:hover{color:var(--ink)}nav a.active{color:var(--on-accent);background:var(--accent)}.themes{gap:4px;padding:5px}.themes button{width:34px;height:30px;border:none;border-radius:24px;cursor:pointer;font-family:JetBrains Mono,monospace;font-size:.82rem;line-height:1;display:flex;align-items:center;justify-content:center;transition:color .25s ease,background-color .25s ease;color:var(--muted);background:transparent}.themes button.active{color:var(--on-accent);background:var(--accent)}.nav-toggle{display:none}.hero{min-height:100vh;display:flex;align-items:center;padding:130px clamp(20px,5vw,64px) 70px}.hero-grid{width:100%;max-width:1200px;margin:0 auto;display:grid;grid-template-columns:1.5fr minmax(260px,1fr);gap:clamp(32px,5vw,72px);align-items:center}.badge{display:inline-flex;align-items:center;gap:10px;font-family:JetBrains Mono,monospace;font-size:.64rem;letter-spacing:.22em;text-transform:uppercase;color:var(--accent);background:var(--panel);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--pb);border-radius:40px;padding:7px 15px;margin-bottom:1.8rem;animation:fadeUp .8s var(--ease) .1s both}.badge .live{width:7px;height:7px;border-radius:50%;background:var(--accent);animation:pulseDot 2.4s ease-in-out infinite}.hero h1{font-size:clamp(3.4rem,8.5vw,7.6rem);line-height:.94;letter-spacing:-.02em;margin:0}.hero h1 .line{display:block;overflow:hidden;padding:0 .03em}.hero h1 .line span{display:block;animation:riseIn 1.05s var(--ease) both}.hero h1 .l1 span{animation-delay:.3s}.hero h1 .l2 span{animation-delay:.44s;font-style:italic;color:var(--accent)}.rule{height:2px;width:150px;background:var(--accent);transform-origin:0 50%;border-radius:2px;margin:1.5rem 0 1.3rem;animation:drawLine .9s var(--ease) 1.05s both}.role{font-family:JetBrains Mono,monospace;font-size:.78rem;color:var(--muted);letter-spacing:.08em;text-transform:uppercase;animation:fadeUp .8s ease .8s both}.role .sep{color:var(--accent)}.lede{font-size:clamp(1.02rem,1.5vw,1.2rem);color:var(--muted);line-height:1.7;max-width:480px;margin:1.4rem 0 0;font-weight:400;animation:fadeUp .8s ease .95s both}.stats{display:flex;gap:14px;flex-wrap:wrap;margin-top:2.4rem;animation:fadeUp .8s ease 1.15s both}.stat{display:flex;flex-direction:column;gap:4px;padding:14px 22px;border-radius:16px;background:var(--card);border:1px solid var(--pb);box-shadow:var(--shadow)}.stat .n{font-family:Newsreader,serif;font-size:2.3rem;font-weight:500;line-height:1;color:var(--ink)}.stat .n span{color:var(--accent)}.stat .l{font-family:JetBrains Mono,monospace;font-size:.56rem;color:var(--faint);letter-spacing:.14em;text-transform:uppercase}.photo{position:relative;animation:fadeSoft 1s ease .3s both}.photo .halo{position:absolute;top:-22px;right:-22px;bottom:-22px;left:-22px;border-radius:34px;background:radial-gradient(circle at 50% 30%,var(--aglow),transparent 65%);filter:blur(10px);z-index:0}.tilt{position:relative;z-index:1;border-radius:26px;overflow:hidden;aspect-ratio:4/5;background:var(--card);border:1px solid var(--pb);box-shadow:var(--shadow);padding:10px;transition:transform .3s ease;transform-style:preserve-3d;will-change:transform}.tilt img{width:100%;height:100%;object-fit:cover;border-radius:18px;display:block}.scroll-cue{position:absolute;bottom:30px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:9px;animation:fadeSoft 1s ease 1.6s both}.scroll-cue span:first-child{font-family:JetBrains Mono,monospace;font-size:.56rem;letter-spacing:.28em;text-transform:uppercase;color:var(--faint)}.scroll-cue .ln{width:1px;height:34px;background:linear-gradient(var(--accent),transparent);animation:bob 2s ease-in-out infinite}.sec-head{display:flex;align-items:baseline;justify-content:space-between;gap:24px;flex-wrap:wrap;margin-bottom:2.4rem}.sec-head h2{margin:0}.about{max-width:1100px;margin:0 auto;padding:clamp(60px,10vh,140px) clamp(20px,5vw,64px)}.about .big{font-size:clamp(1.7rem,3.6vw,3rem);line-height:1.3;color:var(--ink);max-width:960px;margin:1.2rem 0 0}.about .sub{color:var(--muted);font-size:1.04rem;line-height:1.8;margin:2rem 0 0;max-width:560px}.container{max-width:1200px;margin:0 auto;padding:clamp(30px,5vh,70px) clamp(20px,5vw,64px)}.container.tight{max-width:1100px}.grid-cards{display:grid;gap:18px;perspective:1100px}.grid-3{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.grid-work{grid-template-columns:repeat(auto-fit,minmax(330px,1fr))}.card{height:100%;padding:1.8rem;border-radius:20px;background:var(--card);border:1px solid var(--pb);box-shadow:var(--shadow);transition:transform .3s ease,border-color .3s ease;transform-style:preserve-3d}.card:hover{border-color:var(--accent)}.card .top{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.2rem}.card .no{font-family:JetBrains Mono,monospace;font-size:.7rem;color:var(--accent)}.icon-box{display:flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:12px;background:var(--asoft);border:1px solid var(--pb);color:var(--accent)}.card h3{font-weight:500;font-size:1.55rem;margin:0 0 .6rem;color:var(--ink)}.card p{color:var(--muted);font-size:.94rem;line-height:1.65;margin:0}.timeline{display:flex;flex-direction:column;gap:16px}.job{display:grid;grid-template-columns:210px 1fr;gap:clamp(18px,4vw,48px);padding:1.9rem;border-radius:20px;background:var(--card);border:1px solid var(--pb);box-shadow:var(--shadow);transition:border-color .3s ease}.job:hover{border-color:var(--accent)}.job .date{font-family:JetBrains Mono,monospace;font-size:.66rem;color:var(--accent);letter-spacing:.06em}.job .place{font-family:JetBrains Mono,monospace;font-size:.6rem;color:var(--faint);letter-spacing:.04em;margin-top:8px;line-height:1.6}.tag-current{display:inline-block;margin-top:12px;font-family:JetBrains Mono,monospace;font-size:.54rem;letter-spacing:.14em;text-transform:uppercase;color:var(--on-accent);background:var(--accent);padding:3px 9px;border-radius:20px}.job h3{font-weight:500;font-size:clamp(1.4rem,2.6vw,2rem);margin:0 0 .9rem;color:var(--ink)}.job ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.6rem}.job li{display:grid;grid-template-columns:16px 1fr;gap:10px;color:var(--muted);font-size:.96rem;line-height:1.65}.job li .slash{color:var(--accent)}.work-card{display:flex;flex-direction:column;text-decoration:none;color:var(--ink);border-radius:22px}.work-card .head{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.2rem}.work-card .num{font-family:JetBrains Mono,monospace;font-size:.72rem;color:var(--faint)}.work-card .arrow{font-family:Newsreader,serif;font-size:1.5rem;line-height:1;color:var(--accent);transition:transform .3s var(--ease);display:inline-block}.work-card:hover .arrow{transform:translate(3px,-3px)}.work-card h3{font-weight:500;font-size:1.5rem;line-height:1.1;margin:0 0 .7rem}.work-card p{color:var(--muted);font-size:.92rem;line-height:1.65;margin:0 0 1.3rem;flex:1}.badge-live{font-family:JetBrains Mono,monospace;font-size:.54rem;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);border:1px solid var(--accent);border-radius:20px;padding:3px 9px;margin-right:8px}.chips{display:flex;flex-wrap:wrap;gap:7px}.chip{font-family:JetBrains Mono,monospace;font-size:.6rem;color:var(--muted);background:var(--asoft);border:1px solid var(--pb);border-radius:20px;padding:4px 10px;letter-spacing:.03em}.more{margin-top:2.4rem;text-align:center}.more a{display:inline-flex;align-items:center;gap:10px;font-family:JetBrains Mono,monospace;font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink);background:var(--card);border:1px solid var(--pb);box-shadow:var(--shadow);border-radius:40px;padding:14px 28px;text-decoration:none;transition:border-color .25s ease}.more a:hover{border-color:var(--accent)}.skills{padding:clamp(40px,7vh,90px) 0}.marquee-wrap{position:relative;overflow:hidden;padding:1rem 0;margin-bottom:2.6rem;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}.marquee{display:flex;width:max-content;animation:marquee 28s linear infinite}.marquee .item{display:inline-flex;align-items:center;gap:clamp(22px,4vw,44px);padding-right:clamp(22px,4vw,44px);font-family:Newsreader,serif;font-style:italic;font-size:clamp(1.5rem,3vw,2.3rem);color:var(--faint);white-space:nowrap}.marquee .item .d{width:7px;height:7px;border-radius:50%;background:var(--accent);flex:none}.skill-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px}.skill-cat{padding:1.6rem;border-radius:20px;background:var(--card);border:1px solid var(--pb);box-shadow:var(--shadow);transition:border-color .3s ease}.skill-cat:hover{border-color:var(--accent)}.skill-cat .label{font-family:JetBrains Mono,monospace;font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:var(--accent);margin-bottom:1rem}.skill-cat .items{display:flex;flex-wrap:wrap;gap:8px}.skill-cat .s{font-family:JetBrains Mono,monospace;font-size:.68rem;color:var(--muted);border:1px solid var(--pb);border-radius:20px;padding:5px 12px;transition:color .2s ease,border-color .2s ease,background-color .2s ease}.skill-cat .s:hover{border-color:var(--accent);color:var(--ink);background:var(--asoft)}.cert-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:12px}.cert{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:1.3rem 1.5rem;border-radius:16px;background:var(--card);border:1px solid var(--pb);box-shadow:var(--shadow);text-decoration:none;color:var(--ink);transition:border-color .3s ease}.cert:hover{border-color:var(--accent)}.cert .name{font-family:Newsreader,serif;font-weight:500;font-size:1.15rem;color:var(--ink)}.cert .issuer{font-family:JetBrains Mono,monospace;font-size:.58rem;color:var(--faint);letter-spacing:.05em;margin-top:5px}.cert .arrow{font-family:Newsreader,serif;font-size:1.2rem;color:var(--accent)}.contact{max-width:1100px;margin:0 auto;padding:clamp(60px,11vh,160px) clamp(20px,5vw,64px) 50px}.contact h2{font-size:clamp(3rem,8vw,6.6rem);line-height:.96;letter-spacing:-.02em;margin:1.3rem 0 0}.contact-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin-top:2.6rem}.ccard{display:flex;flex-direction:column;gap:8px;padding:1.6rem;border-radius:18px;background:var(--card);border:1px solid var(--pb);box-shadow:var(--shadow);text-decoration:none;color:var(--ink);transition:border-color .3s ease,transform .3s ease}.ccard:hover{border-color:var(--accent);transform:translateY(-4px)}.ccard .l{font-family:JetBrains Mono,monospace;font-size:.58rem;letter-spacing:.16em;text-transform:uppercase;color:var(--faint)}.ccard .v{font-family:Newsreader,serif;font-size:1.45rem;color:var(--ink)}.ccard .cta{font-family:JetBrains Mono,monospace;font-size:.66rem;color:var(--accent)}.form{margin-top:2.4rem;padding:2rem;border-radius:22px;background:var(--card);border:1px solid var(--pb);box-shadow:var(--shadow)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.3rem}.form label{display:flex;flex-direction:column;gap:.5rem}.form label.full{grid-column:1 / -1}.form label span{font-family:JetBrains Mono,monospace;font-size:.58rem;letter-spacing:.14em;text-transform:uppercase;color:var(--faint)}.form input,.form textarea{background:transparent;border:none;border-bottom:1px solid var(--pb);color:var(--ink);font-family:Plus Jakarta Sans,sans-serif;font-size:1rem;padding:10px 0;transition:border-color .25s ease}.form textarea{min-height:80px;resize:vertical}.form input:focus,.form textarea:focus{border-color:var(--accent);outline:none}.form-foot{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-top:1.6rem}.form button{font-family:JetBrains Mono,monospace;font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--on-accent);background:var(--accent);border:none;padding:14px 30px;border-radius:30px;cursor:pointer;transition:transform .2s ease}.form button:hover{transform:translateY(-2px)}.status{font-family:JetBrains Mono,monospace;font-size:.7rem;color:var(--accent)}.status.err{color:#c4564e}[data-theme=dark] .status.err{color:#e88a82}footer{margin-top:4rem;padding-top:1.8rem;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}footer span{font-family:JetBrains Mono,monospace;font-size:.58rem;color:var(--faint);letter-spacing:.08em}@media (max-width: 860px){.hero-grid{grid-template-columns:1fr}.photo{order:-1;max-width:320px}.job{grid-template-columns:1fr;gap:1rem}header{padding:12px 16px}nav.pill{display:none;position:fixed;top:70px;left:16px;right:16px;flex-direction:column;align-items:stretch;padding:10px;border-radius:20px;background:var(--panel);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid var(--pb);box-shadow:var(--shadow)}nav.pill.open{display:flex}nav a{text-align:center;font-size:.72rem}.nav-toggle{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border:none;cursor:pointer;color:var(--ink);background:transparent}}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}
