:root{--paper:#f1f3f6;--surface:#fff;--ink:#12141a;--ink-soft:#5b6070;--ink-faint:#9aa0ae;--violet:#4a3aff;--violet-deep:#2e22b8;--amber:#ffb800;--mint:#00c2a8;--coral:#ff5d5d;--line:rgba(18,20,26,.09);--radius:20px}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--paper);color:var(--ink);font-family:var(--font-inter),"Inter",sans-serif;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}::selection{background:var(--violet);color:#fff}h1,h2,h3,h4{font-family:var(--font-space-grotesk),"Space Grotesk",sans-serif;letter-spacing:-.02em}.mono{font-family:var(--font-jetbrains),"JetBrains Mono",monospace}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}.wrap{max-width:1180px;margin:0 auto;padding:0 32px}header.nav{position:-webkit-sticky;position:sticky;top:0;z-index:50;background:rgba(241,243,246,.85);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}.nav-inner{justify-content:space-between;padding:18px 32px;max-width:1180px;margin:0 auto}.brand,.nav-inner{display:flex;align-items:center}.brand{gap:10px;font-weight:700;font-size:17px;cursor:pointer}.brand .dot{width:10px;height:10px;border-radius:3px;background:var(--violet);transform:rotate(45deg);animation:dotSpin 6s linear infinite}@keyframes dotSpin{0%{transform:rotate(45deg)}50%{transform:rotate(225deg)}to{transform:rotate(405deg)}}.nav-links{display:flex;gap:34px;font-size:14px;font-weight:500;color:var(--ink-soft)}.nav-links a{position:relative;padding-bottom:2px}.nav-links a:after{content:"";position:absolute;left:0;bottom:0;width:0;height:1.5px;background:var(--violet);transition:width .25s ease}.nav-links a:hover{color:var(--ink)}.nav-links a:hover:after{width:100%}.nav-cta{background:var(--ink);color:#fff;padding:10px 20px;border-radius:100px;font-size:13px;font-weight:600;font-family:var(--font-jetbrains),"JetBrains Mono",monospace;transition:transform .15s ease,box-shadow .15s ease;border:none;cursor:pointer}.nav-cta:hover{transform:translateY(-2px);box-shadow:0 8px 20px rgba(18,20,26,.22)}.back-link{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:500;color:var(--ink-soft);transition:color .15s ease}.back-link:hover{color:var(--ink)}@media (max-width:820px){.nav-links{display:none}}.hero{padding:88px 0 60px;display:grid;grid-template-columns:1.05fr .95fr;grid-gap:40px;gap:40px;align-items:center}@media (max-width:900px){.hero{grid-template-columns:1fr;padding-top:56px}}.eyebrow{font-family:var(--font-jetbrains),"JetBrains Mono",monospace;font-size:12.5px;font-weight:500;text-transform:uppercase;letter-spacing:.12em;color:var(--violet-deep);display:flex;align-items:center;gap:10px;margin-bottom:22px}.eyebrow:before{content:"";width:26px;height:1.5px;background:var(--violet);display:inline-block}.hero h1{font-size:58px;line-height:1.03;font-weight:700;margin-bottom:22px}.hero h1 .accent{color:var(--violet);background:linear-gradient(90deg,#4a3aff,#7a5cff,#4a3aff);background-size:200% auto;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:gradShift 4s linear infinite}@keyframes gradShift{to{background-position:200%}}@media (max-width:600px){.hero h1{font-size:38px}}.rw{overflow:hidden;vertical-align:top;padding-bottom:4px}.rw,.rw span{display:inline-block}.rw span{transform:translateY(115%);opacity:0;animation:wordUp .75s cubic-bezier(.19,1,.22,1) forwards}@keyframes wordUp{to{transform:translateY(0);opacity:1}}.hero p.lead{font-size:18px;color:var(--ink-soft);max-width:480px;margin-bottom:34px;opacity:0;animation:fadeUp .7s ease forwards;animation-delay:.6s}@keyframes fadeUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.hero-ctas{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:44px;opacity:0;animation:fadeUp .7s ease forwards;animation-delay:.75s}.btn{padding:14px 26px;border-radius:100px;font-weight:600;font-size:14.5px;display:inline-flex;align-items:center;gap:8px;transition:transform .15s ease,box-shadow .15s ease;cursor:pointer;border:none}.btn-primary{background:var(--ink);color:#fff}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(18,20,26,.22)}.btn-outline{border:1.5px solid var(--line);background:var(--surface)}.btn-outline:hover{transform:translateY(-2px);border-color:var(--violet)}.hero-meta{display:flex;gap:34px;flex-wrap:wrap;opacity:0;animation:fadeUp .7s ease forwards;animation-delay:.9s}.hero-meta div{font-family:var(--font-jetbrains),"JetBrains Mono",monospace}.hero-meta .num{font-size:22px;font-weight:700;color:var(--ink)}.hero-meta .label{font-size:11.5px;color:var(--ink-faint);text-transform:uppercase;letter-spacing:.08em}.phone-stage{display:flex;justify-content:center;position:relative}.phone{width:280px;height:572px;background:#0c0d12;border-radius:46px;padding:14px;box-shadow:0 40px 70px -20px rgba(18,20,26,.35),0 0 0 1px rgba(0,0,0,.05);position:relative;animation:phoneFloat 5s ease-in-out infinite}@keyframes phoneFloat{0%,to{transform:rotate(2deg) translateY(0)}50%{transform:rotate(2deg) translateY(-10px)}}.phone-screen{width:100%;height:100%;border-radius:34px;overflow:hidden;position:relative;background:#0c0d12}.phone-notch{position:absolute;top:0;left:50%;transform:translateX(-50%);width:120px;height:26px;background:#0c0d12;border-radius:0 0 18px 18px;z-index:10}.phone-carousel,.phone-slide{position:absolute;inset:0}.phone-slide{opacity:0;transition:opacity .8s ease}.phone-slide.active{opacity:1}.phone-slide img{width:100%;height:100%;object-fit:cover;border-radius:34px}.phone-dots{position:absolute;bottom:14px;left:0;right:0;display:flex;justify-content:center;gap:5px;z-index:20}.phone-dot{width:5px;height:5px;border-radius:50%;background:hsla(0,0%,100%,.35);transition:all .3s ease;cursor:pointer;border:none}.phone-dot.active{background:#fff;transform:scale(1.4)}.float-chip{position:absolute;background:var(--surface);border-radius:14px;padding:10px 14px;box-shadow:0 14px 30px rgba(18,20,26,.14);display:flex;align-items:center;gap:8px;font-family:var(--font-jetbrains),"JetBrains Mono",monospace;font-size:12px;font-weight:600;animation:chipFloat 4s ease-in-out infinite}.float-chip:nth-child(2){animation-delay:1.5s}@keyframes chipFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.float-chip .pulse{width:8px;height:8px;border-radius:50%;background:var(--mint);animation:pulseDot 1.5s ease-in-out infinite}@keyframes pulseDot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(1.3)}}.chip-1{top:14%;left:-6%}.chip-2{bottom:12%;right:-8%}@media (max-width:900px){.float-chip{display:none}.phone{animation:none;transform:none}}section{padding:90px 0}.sec-head{margin-bottom:52px;max-width:640px}.sec-head h2{font-size:36px;font-weight:700;margin-bottom:14px}.sec-head p{color:var(--ink-soft);font-size:16px}.stats{background:var(--ink);border-radius:28px;padding:44px 40px;display:grid;grid-template-columns:repeat(4,1fr);grid-gap:24px;gap:24px;margin:0 auto}.stats .stat .num{font-family:var(--font-space-grotesk),"Space Grotesk",sans-serif;font-size:34px;font-weight:700;color:#fff;min-height:44px;display:flex;align-items:center}.stats .stat .lbl{font-family:var(--font-jetbrains),"JetBrains Mono",monospace;font-size:11.5px;color:hsla(0,0%,100%,.55);text-transform:uppercase;letter-spacing:.08em;margin-top:6px}@media (max-width:760px){.stats{grid-template-columns:repeat(2,1fr)}}.geo-cycle-wrap{position:relative;overflow:hidden;height:44px;display:flex;align-items:center}.geo-text{font-family:var(--font-space-grotesk),"Space Grotesk",sans-serif;font-size:34px;font-weight:700;color:#fff;position:absolute;white-space:nowrap;transition:opacity .4s ease,transform .4s ease}.geo-text.out-up{opacity:0;transform:translateY(-20px)}.geo-text.in-down{opacity:0;transform:translateY(20px)}.screenshots-outer{overflow:hidden;position:relative}.screenshots-track{display:flex;gap:16px;animation:screensScroll 22s linear infinite;width:max-content}.screenshots-track:hover{animation-play-state:paused}@keyframes screensScroll{0%{transform:translateX(0)}to{transform:translateX(-50%)}}.screen-thumb{width:160px;height:290px;border-radius:18px;overflow:hidden;flex-shrink:0;box-shadow:0 14px 28px rgba(18,20,26,.12);transition:transform .3s ease,box-shadow .3s ease}.screen-thumb:hover{transform:translateY(-8px) scale(1.03);box-shadow:0 24px 40px rgba(18,20,26,.2)}.screen-thumb img{width:100%;height:100%;object-fit:cover}.skill-groups{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:22px;gap:22px}@media (max-width:820px){.skill-groups{grid-template-columns:1fr}}.skill-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:26px;transition:transform .18s ease,box-shadow .18s ease}.skill-card:hover{transform:translateY(-3px);box-shadow:0 12px 28px rgba(18,20,26,.07)}.skill-card h4{font-size:14px;font-family:var(--font-jetbrains),"JetBrains Mono",monospace;text-transform:uppercase;letter-spacing:.06em;color:var(--violet-deep);margin-bottom:16px}.skill-card .chip-list{display:flex;flex-wrap:wrap;gap:8px}.skill-card .chip{font-size:13px;padding:7px 12px;border-radius:9px;background:var(--paper);font-weight:500;transition:background .15s ease,color .15s ease;cursor:default}.skill-card .chip:hover{background:var(--violet);color:#fff}.project-grid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:22px;gap:22px}@media (max-width:820px){.project-grid{grid-template-columns:1fr}}.card{background:var(--surface);border-radius:var(--radius);padding:28px;border:1px solid var(--line);transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;cursor:pointer;position:relative;overflow:hidden}.card:before{content:"";position:absolute;inset:0;border-radius:var(--radius);background:linear-gradient(135deg,rgba(74,58,255,.04),transparent 60%);opacity:0;transition:opacity .2s ease}.card:hover{transform:translateY(-5px);box-shadow:0 22px 44px rgba(18,20,26,.1);border-color:transparent}.card:hover:before{opacity:1}.card-top{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:18px}.icon-sq{width:52px;height:52px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-family:var(--font-space-grotesk),"Space Grotesk",sans-serif;font-weight:700;color:#fff;font-size:18px;flex-shrink:0}.card-badges{display:flex;flex-direction:column;align-items:flex-end;gap:6px}.region-tag{font-size:11px;color:var(--ink-faint);border:1px solid var(--line);padding:5px 10px}.date-tag,.region-tag{font-family:var(--font-jetbrains),"JetBrains Mono",monospace;border-radius:100px}.date-tag{font-size:10.5px;color:var(--violet-deep);background:rgba(74,58,255,.08);padding:4px 10px;font-weight:600}.card h3{font-size:19px;font-weight:700;margin-bottom:8px}.card p.desc{color:var(--ink-soft);font-size:14.5px;margin-bottom:18px}.tags{display:flex;flex-wrap:wrap;gap:7px}.tag{font-size:11px;padding:5px 10px;border-radius:8px;background:var(--paper);color:var(--ink-soft)}.card-cta,.tag{font-family:var(--font-jetbrains),"JetBrains Mono",monospace}.card-cta{font-size:12.5px;font-weight:600;color:var(--violet);display:flex;align-items:center;gap:6px;margin-top:16px;transition:gap .15s ease}.card:hover .card-cta{gap:10px}.card.reveal{transition-delay:calc(var(--i, 0) * .08s)}.timeline{position:relative;padding-left:32px}.timeline:before{content:"";position:absolute;left:5px;top:6px;bottom:6px;width:2px;background:var(--line)}.t-item{position:relative;padding-bottom:44px}.t-item:last-child{padding-bottom:0}.t-dot{position:absolute;left:-32px;top:4px;width:12px;height:12px;border-radius:50%;background:var(--violet);box-shadow:0 0 0 4px rgba(74,58,255,.15)}.t-head{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;margin-bottom:6px}.t-role{font-size:19px;font-weight:700;font-family:var(--font-space-grotesk),"Space Grotesk",sans-serif}.t-date{font-family:var(--font-jetbrains),"JetBrains Mono",monospace;font-size:12.5px;color:var(--ink-faint)}.t-company{color:var(--violet-deep);font-weight:600;font-size:14.5px;margin-bottom:12px}.t-item ul{padding-left:18px;color:var(--ink-soft);font-size:14.5px}.t-item li{margin-bottom:5px}.edu-list{display:flex;flex-direction:column;gap:18px}.edu-item{display:flex;justify-content:space-between;align-items:baseline;border-bottom:1px solid var(--line);padding-bottom:18px;flex-wrap:wrap;gap:6px}.edu-item:last-child{border:none}.edu-degree{font-weight:700;font-size:16px}.edu-school{color:var(--ink-soft);font-size:14px}.contact-panel{background:linear-gradient(150deg,var(--violet) 0,var(--violet-deep) 100%);border-radius:32px;padding:64px 48px;text-align:center;color:#fff;position:relative;overflow:hidden}.contact-panel:before{width:300px;height:300px;bottom:-100px;left:-80px;animation:orbFloat 8s ease-in-out infinite}.contact-panel:after,.contact-panel:before{content:"";position:absolute;border-radius:50%;background:hsla(0,0%,100%,.06)}.contact-panel:after{width:400px;height:400px;top:-180px;right:-140px;animation:orbFloat 10s ease-in-out infinite reverse}@keyframes orbFloat{0%,to{transform:scale(1) translateY(0)}50%{transform:scale(1.08) translateY(-12px)}}.contact-panel h2{font-size:38px;margin-bottom:16px;position:relative;z-index:1}.contact-panel p{opacity:.85;max-width:460px;margin:0 auto 32px;position:relative;z-index:1}.contact-links{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;position:relative;z-index:1}.contact-links a{background:hsla(0,0%,100%,.14);padding:13px 24px;border-radius:100px;font-weight:600;font-size:14px;border:1px solid hsla(0,0%,100%,.2);transition:.2s ease}.contact-links a:hover{background:#fff;color:var(--violet-deep);transform:translateY(-2px)}footer{text-align:center;padding:36px 0;color:var(--ink-faint);font-size:13px;font-family:var(--font-jetbrains),"JetBrains Mono",monospace}.reveal{opacity:0;transform:translateY(22px);transition:opacity .65s cubic-bezier(.19,1,.22,1),transform .65s cubic-bezier(.19,1,.22,1)}.reveal.in{opacity:1;transform:translateY(0)}.modal-overlay{position:fixed;inset:0;background:rgba(12,13,18,.55);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:200;opacity:0;pointer-events:none;transition:opacity .22s ease;padding:20px}.modal-overlay.open{opacity:1;pointer-events:auto}.modal-box{background:var(--surface);border-radius:26px;padding:38px;width:100%;max-width:380px;box-shadow:0 30px 70px rgba(0,0,0,.35);transform:translateY(14px) scale(.97);transition:transform .22s ease;position:relative}.modal-overlay.open .modal-box{transform:translateY(0) scale(1)}.modal-close{position:absolute;top:28px;right:28px;width:34px;height:34px;border-radius:50%;background:var(--paper);display:flex;align-items:center;justify-content:center;font-size:16px;cursor:pointer;color:var(--ink-soft);border:none;transition:background .15s ease}.modal-close:hover{background:var(--line)}.modal-eyebrow{font-family:var(--font-jetbrains),"JetBrains Mono",monospace;font-size:11.5px;text-transform:uppercase;letter-spacing:.1em;color:var(--violet-deep);margin-bottom:8px}.modal-box h3{font-size:23px;margin-bottom:22px}.modal-row{display:flex;align-items:center;gap:14px;padding:16px;border:1px solid var(--line);border-radius:16px;margin-bottom:12px;cursor:pointer;transition:border-color .15s ease,background .15s ease}.modal-row:hover{border-color:var(--violet);background:var(--paper)}.modal-row .ic{width:40px;height:40px;border-radius:12px;background:var(--violet);color:#fff;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:17px}.modal-row .txt{flex:1 1;min-width:0}.modal-row .lbl{font-family:var(--font-jetbrains),"JetBrains Mono",monospace;font-size:10.5px;color:var(--ink-faint);text-transform:uppercase;letter-spacing:.06em}.modal-row .val{font-weight:600;font-size:14.5px;word-break:break-all}.modal-row .copy-hint{font-family:var(--font-jetbrains),"JetBrains Mono",monospace;font-size:11px;color:var(--ink-faint);flex-shrink:0}.modal-row.copied{border-color:var(--mint);background:rgba(0,194,168,.08)}.modal-row.copied .copy-hint{color:var(--mint)}.project-modal-box{background:var(--surface);border-radius:26px;padding:40px;width:100%;max-width:520px;box-shadow:0 30px 70px rgba(0,0,0,.35);position:relative;transform:translateY(14px) scale(.97);transition:transform .22s ease;max-height:88vh;overflow-y:auto}.modal-overlay.open .project-modal-box{transform:translateY(0) scale(1)}.modal-icon-row{gap:16px;margin-bottom:22px}.modal-icon,.modal-icon-row{display:flex;align-items:center}.modal-icon{width:64px;height:64px;border-radius:18px;justify-content:center;color:#fff;font-weight:700;font-size:20px;font-family:var(--font-space-grotesk),"Space Grotesk",sans-serif;flex-shrink:0}.project-modal-box h3{font-size:24px;margin-bottom:4px}.modal-region{font-family:var(--font-jetbrains),"JetBrains Mono",monospace;font-size:12px;color:var(--ink-faint)}.modal-desc{color:var(--ink-soft);font-size:15px;margin-bottom:22px}.meta-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:14px;gap:14px;margin-bottom:22px}.meta-item{background:var(--paper);border-radius:14px;padding:14px 16px}.meta-item .lbl{font-family:var(--font-jetbrains),"JetBrains Mono",monospace;font-size:10.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-faint);margin-bottom:4px}.meta-item .val{font-weight:600;font-size:14px}.modal-section-label{font-size:12.5px;font-family:var(--font-jetbrains),"JetBrains Mono",monospace;text-transform:uppercase;letter-spacing:.06em;color:var(--violet-deep);margin-bottom:10px}.highlight-list{list-style:none;margin-bottom:22px}.highlight-list li{display:flex;gap:10px;font-size:14px;color:var(--ink-soft);margin-bottom:8px}.highlight-list li:before{content:"→";color:var(--violet);font-weight:700;flex-shrink:0}.contact-layout{display:grid;grid-template-columns:1fr 1fr;grid-gap:24px;gap:24px;padding-bottom:110px}@media (max-width:820px){.contact-layout{grid-template-columns:1fr}}.contact-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:32px;display:flex;flex-direction:column;gap:18px}.contact-card .ic{width:52px;height:52px;border-radius:14px;background:var(--violet);color:#fff;display:flex;align-items:center;justify-content:center;font-size:20px}.contact-card .lbl{font-family:var(--font-jetbrains),"JetBrains Mono",monospace;font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-faint)}.contact-card .val{font-size:19px;font-weight:700;word-break:break-word}.contact-card .action-row{display:flex;gap:10px;margin-top:auto}.contact-btn{padding:12px 20px;border-radius:100px;font-weight:600;font-size:13.5px;display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:.15s ease;flex:1 1;cursor:pointer}.contact-btn-primary{background:var(--ink);color:#fff;border:none}.contact-btn-primary:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(18,20,26,.22)}.contact-btn-outline{border:1.5px solid var(--line);background:var(--paper);font-family:inherit}.contact-btn-outline:hover{border-color:var(--violet)}.contact-btn-outline.copied{border-color:var(--mint);color:var(--mint)}.info-panel{grid-column:1/-1;background:linear-gradient(150deg,var(--violet) 0,var(--violet-deep) 100%);border-radius:var(--radius);padding:36px;color:#fff;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px}.info-panel h3{font-size:20px;margin-bottom:6px}.info-panel p{opacity:.85;font-size:14px;max-width:420px}.info-panel .badge{background:hsla(0,0%,100%,.14);border:1px solid hsla(0,0%,100%,.2);padding:10px 18px;border-radius:100px;font-family:var(--font-jetbrains),"JetBrains Mono",monospace;font-size:12.5px;font-weight:600;display:flex;align-items:center;gap:8px}.badge .pulse{width:8px;height:8px;border-radius:50%;background:var(--mint)}.page-head{padding:64px 0 40px}.page-head h1{font-size:48px;font-weight:700;margin-bottom:16px}.page-head p{color:var(--ink-soft);font-size:17px;max-width:560px}.filters{display:flex;gap:10px;flex-wrap:wrap;padding-bottom:44px}.filter-btn{font-family:var(--font-jetbrains),"JetBrains Mono",monospace;font-size:12.5px;font-weight:600;padding:10px 18px;border-radius:100px;border:1.5px solid var(--line);background:var(--surface);cursor:pointer;color:var(--ink-soft);transition:.15s ease}.filter-btn:hover{border-color:var(--violet);color:var(--ink)}.filter-btn.active{background:var(--ink);color:#fff;border-color:var(--ink)}.projects-page-grid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:22px;gap:22px;padding-bottom:100px}@media (max-width:820px){.projects-page-grid{grid-template-columns:1fr}}.projects-page-grid .card{display:flex;flex-direction:column}.projects-page-grid .card p.desc{flex:1 1}.projects-page-grid .card-cta{margin-top:auto}