:root{--bg:#08050e;--bg2:#100b1c;--card:rgba(255,255,255,.04);--line:rgba(255,255,255,.1);--tx:#f4f1fb;--mu:#a59cbb;--ac:#a66bff;--ac2:#4fd1ff;box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
:root[data-theme="light"]{--bg:#f6f3ff;--bg2:#ece5fc;--card:rgba(255,255,255,.78);--line:rgba(88,48,160,.15);--tx:#1a1030;--mu:#5a4d78;--ac:#7c3aed;--ac2:#0e7490}
html{scroll-padding-top:80px}@media(pointer:coarse){html{scroll-behavior:smooth}}
*{box-sizing:border-box;margin:0}
body{background:var(--bg);color:var(--tx);font-family:Inter,system-ui,sans-serif;line-height:1.6;overflow-x:hidden}
a{color:inherit;text-decoration:none}
.wrap{max-width:none;margin:0;padding:0 var(--gx)}
section{padding:96px 0;position:relative}
.eyebrow{color:var(--ac2);font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;font-weight:600}
h2{font-size:clamp(1.9rem,4vw,2.9rem);line-height:1.15;margin:10px 0 14px;font-weight:700;letter-spacing:-.02em}
.sub{color:var(--mu);max-width:620px}
.grad{background:linear-gradient(90deg,var(--ac),var(--ac2));-webkit-background-clip:text;background-clip:text;color:transparent}
nav{position:fixed;top:0;left:0;right:0;z-index:50;backdrop-filter:blur(14px);background:color-mix(in srgb,var(--bg) 70%,transparent);border-bottom:1px solid var(--line);padding-top:env(safe-area-inset-top,0px)}
nav .wrap{display:flex;align-items:center;justify-content:space-between;height:64px;max-width:none;padding:0 var(--gx)}
.logo{font-weight:800;letter-spacing:-.02em}.logo b{color:var(--ac)}
.links{display:flex;gap:26px;font-size:.92rem;color:var(--mu)}
.links a:hover{color:var(--tx)}
.btn{display:inline-flex;align-items:center;gap:8px;padding:12px 22px;border-radius:999px;font-weight:600;font-size:.92rem;border:1px solid var(--line);transition:.25s;cursor:pointer;background:transparent;color:var(--tx)}
.btn.p{background:linear-gradient(90deg,var(--ac),#7b4dff);border-color:transparent;color:#fff;box-shadow:0 0 24px rgba(166,107,255,.5)}
.btn.p:hover{box-shadow:0 0 42px rgba(166,107,255,.85);transform:translateY(-2px)}
.btn:hover{border-color:var(--ac)}
#hero{min-height:100vh;display:flex;align-items:center;padding-top:110px;overflow:hidden}
#bg{position:absolute;inset:0;width:100%;height:100%;opacity:.7}
.glow{position:absolute;width:560px;height:560px;border-radius:50%;background:radial-gradient(circle,rgba(166,107,255,.35),transparent 65%);top:-120px;right:-120px;filter:blur(30px)}
#hero .wrap{position:relative;z-index:2;max-width:none;width:100%;margin:0;padding:0 var(--gx);text-align:left}
.pill{display:inline-block;padding:6px 14px;border:1px solid var(--line);border-radius:999px;font-size:.8rem;color:var(--mu);background:var(--card);margin-bottom:22px}
h1{font-size:clamp(2.4rem,5.4vw,5rem);line-height:1.05;letter-spacing:-.03em;font-weight:800}
.role{font-size:clamp(1.05rem,2vw,1.4rem);color:var(--ac2);margin:14px 0;font-weight:600}
.lead{color:var(--mu);max-width:600px;font-size:1.1rem}
.cta{display:flex;gap:14px;flex-wrap:wrap;margin:32px 0}
.chips{display:flex;gap:10px;flex-wrap:wrap}
.chip{padding:8px 14px;border-radius:12px;border:1px solid var(--line);background:var(--card);font-size:.82rem;color:var(--mu);animation:fl 5s ease-in-out infinite}
.chip:nth-child(2){animation-delay:-1.5s}.chip:nth-child(3){animation-delay:-3s}.chip:nth-child(4){animation-delay:-4s}
.chip i{display:inline-block;width:7px;height:7px;border-radius:50%;background:#4ade80;margin-right:8px;box-shadow:0 0 8px #4ade80}
@keyframes fl{50%{transform:translateY(-6px)}}
.mq{border-block:1px solid var(--line);overflow:hidden;padding:18px 0;background:var(--bg2)}
.mq div{display:flex;gap:48px;width:max-content;animation:mq 28s linear infinite;color:var(--mu);font-weight:600;white-space:nowrap}
@keyframes mq{to{transform:translateX(-50%)}}
.about{display:grid;grid-template-columns:1fr 1.3fr;gap:64px;align-items:center}
.photo{aspect-ratio:4/5;max-width:380px;border-radius:24px;border:1px solid var(--ac);box-shadow:0 0 50px rgba(166,107,255,.45),inset 0 0 40px rgba(166,107,255,.15);background:linear-gradient(160deg,var(--bg2),#2a1650);display:grid;place-items:center;font-size:5rem;font-weight:800;position:relative;overflow:hidden}
.photo small{position:absolute;bottom:14px;font-size:.7rem;font-weight:500;color:var(--mu)}
.about p{color:var(--mu);font-size:1.12rem;margin-bottom:18px}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:44px}
.tilt{background:var(--card);border:1px solid var(--line);border-radius:22px;padding:30px;transition:transform .15s,border-color .3s,box-shadow .3s;transform-style:preserve-3d}
.tilt:hover{border-color:var(--ac);box-shadow:0 20px 50px rgba(166,107,255,.2)}
.ico{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(135deg,var(--ac),var(--ac2));margin-bottom:18px;font-size:1.3rem}
.tilt h3{font-size:1.25rem;margin-bottom:14px}
.tilt li{list-style:none;padding:8px 0;border-top:1px solid var(--line);color:var(--mu);font-size:.95rem}
.proj{display:grid;grid-template-columns:1fr 1.3fr;align-items:center;gap:40px;background:linear-gradient(var(--card),var(--card)),var(--bg);border:1px solid var(--line);border-radius:28px;padding:40px;margin-top:30px;margin-bottom:14vh;position:sticky;top:calc(90px + var(--i,0)*26px);transform-origin:top center;box-shadow:0 -12px 40px rgba(0,0,0,.3);transition:border-color .3s;will-change:transform}.proj:last-of-type{margin-bottom:0}
.proj:hover{border-color:var(--ac)}
.num{color:var(--mu);font-size:.8rem;letter-spacing:.1em}
.proj h3{font-size:1.7rem;margin:10px 0 18px;line-height:1.2}
.tags{display:flex;gap:8px;flex-wrap:wrap}
.tags a{padding:6px 14px;border-radius:999px;border:1px solid var(--line);font-size:.8rem;color:var(--mu);transition:.2s}
.tags a:hover{background:var(--ac);color:#fff;border-color:var(--ac)}
.pis{display:grid;gap:14px}
.pis div{padding:16px 18px;border-radius:16px;background:var(--bg2);border-left:3px solid var(--ac)}
.pis div:nth-child(2){border-color:var(--ac2)}.pis div:nth-child(3){border-color:#4ade80}
.pis b{display:block;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--tx);margin-bottom:4px}
.pis span{color:var(--mu);font-size:.93rem}
.tl{position:relative;margin:44px 0 0 12px;padding-left:36px;border-left:2px solid var(--line)}
.tl .it{position:relative}
.tl .it:before{content:"";position:absolute;left:-46px;top:6px;width:18px;height:18px;border-radius:50%;background:var(--bg);border:3px solid var(--ac);box-shadow:0 0 18px var(--ac)}
.badge{display:inline-block;padding:4px 12px;border-radius:999px;font-size:.75rem;background:rgba(74,222,128,.12);color:#4ade80;border:1px solid rgba(74,222,128,.3)}
.tl h3{font-size:1.4rem;margin:10px 0 6px}.tl p{color:var(--mu)}
.certs{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin-top:44px}
.cert{display:flex;gap:18px;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:20px;padding:24px;transition:.3s}
.cert:hover{transform:translateY(-4px);border-color:var(--ac)}
.cert .ico{margin:0;flex:none}
.cert small{color:var(--ac2);font-size:.78rem;font-weight:600}
.cert h4{font-size:1.08rem}
footer{border-top:1px solid var(--line);padding:26px 0;color:var(--mu);font-size:.85rem;text-align:center}
#contact{background:radial-gradient(ellipse at 80% 100%,rgba(166,107,255,.22),transparent 60%)}
.ct{display:grid;grid-template-columns:1fr 1.05fr;gap:56px;align-items:center;border:1px solid var(--line);border-radius:32px;padding:56px;background:linear-gradient(135deg,rgba(166,107,255,.1),transparent 55%),var(--bg2)}
.ctl .eyebrow{letter-spacing:.3em;font-size:.95rem}
.clist{display:grid;gap:16px;margin-top:30px}
.crow{display:flex;align-items:center;gap:16px;transition:.25s}.crow:hover{transform:translateX(6px)}
.crow small{display:block;font-size:.65rem;letter-spacing:.14em;text-transform:uppercase;color:var(--mu)}
.crow b{font-size:.92rem;font-weight:600;word-break:break-word}
.ci{width:46px;height:46px;flex:none;border-radius:12px;display:grid;place-items:center;border:1px solid var(--line);background:var(--card);color:var(--ac2);transition:.25s}
.ci svg{width:20px;height:20px}
.crow:hover .ci{border-color:var(--ac);box-shadow:0 0 22px rgba(166,107,255,.5);color:var(--ac)}
.cf{border:1px solid var(--ac);border-radius:24px;padding:28px;background:var(--card);box-shadow:0 0 50px rgba(166,107,255,.28),inset 0 0 40px rgba(166,107,255,.06);display:grid;gap:18px}
.cfh{display:flex;justify-content:space-between;align-items:flex-start}
.cfh small{display:block;font-size:.62rem;letter-spacing:.1em;color:var(--mu);margin-top:2px}
.dots{display:flex;gap:6px;margin-top:4px}.dots i{width:7px;height:7px;border-radius:50%;background:var(--ac)}.dots i:nth-child(2){background:var(--ac2)}.dots i:nth-child(3){background:#4ade80}
.cf label{display:grid;gap:7px;font-size:.62rem;letter-spacing:.14em;color:var(--mu)}
.two{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.cf input,.cf textarea{font:inherit;font-size:.9rem;letter-spacing:0;color:var(--tx);background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:13px 14px;outline:none;transition:.2s;width:100%;resize:vertical}
.cf input:focus,.cf textarea:focus{border-color:var(--ac);box-shadow:0 0 0 3px rgba(166,107,255,.2)}
.big{font-size:1rem;padding:15px 30px}
#pg{position:absolute;left:0;bottom:-1px;height:2px;width:0;background:linear-gradient(90deg,var(--ac),var(--ac2));box-shadow:0 0 12px var(--ac)}
.links a.act{color:var(--tx)}
.nav-r{display:flex;gap:10px;align-items:center}
.ib{width:40px;height:40px;border-radius:50%;border:1px solid var(--line);background:var(--card);color:var(--tx);cursor:pointer;display:grid;place-items:center;font-size:1rem;transition:.25s}.ib:hover{border-color:var(--ac);box-shadow:0 0 18px rgba(166,107,255,.5)}
.burger{display:none}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;padding:56px var(--gx);max-width:none;margin:0;text-align:left}
.stat b{display:block;font-size:clamp(2.2rem,5vw,3.4rem);font-weight:800;letter-spacing:-.03em;background:linear-gradient(90deg,var(--ac),var(--ac2));-webkit-background-clip:text;background-clip:text;color:transparent}
.stat span{color:var(--mu);font-size:.85rem;letter-spacing:.08em;text-transform:uppercase}
.tilt,.cert{position:relative;overflow:hidden}
.tilt:before,.cert:before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(260px circle at var(--mx,50%) var(--my,0%),rgba(166,107,255,.18),transparent 70%);opacity:0;transition:opacity .3s}
.tilt:hover:before,.cert:hover:before{opacity:1}
#top{position:fixed;right:20px;bottom:calc(20px + env(safe-area-inset-bottom,0px));width:46px;height:46px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,var(--ac),#7b4dff);color:#fff;font-weight:700;box-shadow:0 0 24px rgba(166,107,255,.6);opacity:0;pointer-events:none;transform:translateY(12px);transition:.3s;z-index:60}
#top.show{opacity:1;pointer-events:auto;transform:none}
:root{--gx:max(clamp(24px,6vw,96px),calc((100vw - 1320px)/2));--hw:clamp(290px,30vw,400px)}
h1,h2,.stat b,.logo{font-family:'Space Grotesk',Inter,sans-serif}
#hero:before{content:"";position:absolute;inset:0;background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:64px 64px;-webkit-mask-image:radial-gradient(ellipse at 30% 40%,#000,transparent 70%);mask-image:radial-gradient(ellipse at 30% 40%,#000,transparent 70%);opacity:.55}
h1 .grad{background:none;-webkit-text-fill-color:currentColor;color:var(--ac);animation:none;text-shadow:0 0 42px rgba(166,107,255,.45)}@keyframes sh{to{background-position:200% center}}
.eyebrow:before{content:"";display:inline-block;width:28px;height:1px;background:var(--ac2);vertical-align:middle;margin-right:12px}
.mq{-webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent)}
.btn.p{position:relative;overflow:hidden}.btn.p:after{content:"";position:absolute;top:0;left:-120%;width:60%;height:100%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.4),transparent);transform:skewX(-20deg);transition:.7s}.btn.p:hover:after{left:140%}
.ct{position:relative}.proj:after,.ct:after{content:"";position:absolute;left:12%;right:12%;top:-1px;height:1px;background:linear-gradient(90deg,transparent,var(--ac),var(--ac2),transparent);pointer-events:none}
.hv{position:absolute;right:var(--gx);top:52%;transform:translateY(-50%);width:var(--hw);z-index:2;display:none;transition:transform .25s ease-out}
@media(min-width:900px){.hv{display:block}#hero .wrap{padding-right:calc(var(--gx) + var(--hw) + 48px)}}
.ring{position:absolute;inset:-50px;border-radius:50%;background:conic-gradient(from 0deg,transparent,var(--ac),transparent 40%,var(--ac2),transparent 80%);filter:blur(40px);opacity:.45;animation:spin 14s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
.tc{position:relative;border:1px solid var(--line);border-radius:20px;background:color-mix(in srgb,var(--bg2) 82%,transparent);backdrop-filter:blur(16px);box-shadow:0 30px 80px rgba(0,0,0,.35),0 0 0 1px rgba(166,107,255,.15)}
.tb{display:flex;gap:7px;align-items:center;padding:14px 18px;border-bottom:1px solid var(--line)}.tb i{width:10px;height:10px;border-radius:50%;background:#ff5f57}.tb i:nth-child(2){background:#febc2e}.tb i:nth-child(3){background:#28c840}.tb span{margin-left:10px;font-size:.75rem;color:var(--mu)}
.tc pre{padding:20px 22px;font:500 clamp(.68rem,1.1vw,.85rem)/1.8 ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--tx);white-space:pre;overflow:hidden}
.kw{color:var(--ac)}.fnm{color:var(--ac2)}.st{color:#4ade80}
.cur{display:inline-block;width:8px;height:1em;background:var(--ac2);vertical-align:-2px;margin-left:3px;animation:bl 1s steps(2) infinite}@keyframes bl{50%{opacity:0}}
.fb{position:absolute;padding:9px 16px;border-radius:999px;font-size:.78rem;font-weight:600;border:1px solid var(--line);background:var(--bg2);box-shadow:0 10px 30px rgba(0,0,0,.3);animation:fl 5s ease-in-out infinite}
.f1{left:-36px;bottom:-22px;color:#4ade80}.f2{right:-18px;top:-20px;color:var(--ac2);animation-delay:-2s}
#cg{position:fixed;width:420px;height:420px;border-radius:50%;pointer-events:none;z-index:1;background:radial-gradient(circle,rgba(166,107,255,.14),transparent 65%);left:0;top:0;transform:translate(-999px,-999px);will-change:transform}
.eyebrow,.tag{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
.tag{color:var(--ac2);font-size:.9rem;margin-bottom:14px;letter-spacing:.04em}
.sys{margin-top:26px;border:1px solid var(--line);border-radius:16px;background:var(--bg2);overflow:hidden;box-shadow:0 0 30px rgba(166,107,255,.12)}
.sh{display:flex;justify-content:space-between;padding:12px 18px;border-bottom:1px solid var(--line);font:600 .72rem ui-monospace,monospace;color:var(--mu)}.sh b{color:#4ade80}
.sys pre{padding:16px 18px;font:500 .85rem/1.9 ui-monospace,SFMono-Regular,Menlo,monospace;overflow-x:auto;color:var(--tx)}.ln{color:var(--mu);margin-right:16px}
footer .wrap{display:flex;justify-content:center;text-align:center;gap:12px;flex-wrap:wrap;font-family:ui-monospace,monospace;font-size:.78rem}footer b{color:#4ade80;font-weight:600}
.pact{display:flex;gap:12px;flex-wrap:wrap;align-items:center;margin-top:24px}
.pv{display:flex;gap:12px;align-items:center;padding:8px 18px 8px 8px;border-radius:16px;border:1px solid var(--line);background:var(--bg2);color:var(--tx);cursor:pointer;font:inherit;text-align:left;transition:.25s}
.pv:hover{border-color:var(--ac);box-shadow:0 0 22px rgba(166,107,255,.35);transform:translateY(-2px)}
.pvi{width:64px;height:48px;border-radius:10px;display:grid;place-items:center;background:linear-gradient(135deg,var(--ac),var(--ac2));color:#fff}.pvi svg{width:24px;height:24px}
.pv b{display:block;font-size:.88rem}.pv small{color:var(--mu);font-size:.72rem}
.pbtn{display:flex;gap:10px;flex-wrap:wrap}.pbtn .btn{padding:10px 18px;font-size:.85rem}.pbtn svg{width:16px;height:16px}
.dk{position:fixed;inset:0;z-index:200;background:color-mix(in srgb,var(--bg) 93%,transparent);backdrop-filter:blur(18px);display:flex;flex-direction:column;opacity:0;pointer-events:none;transition:opacity .35s;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
.dk.open{opacity:1;pointer-events:auto}
.dkh{display:flex;justify-content:space-between;align-items:center;padding:18px clamp(20px,5vw,64px)}.dkh h3{font-size:1.1rem}.dkh small{color:var(--mu)}
.trk{flex:1;display:flex;gap:24px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;padding:10px calc(50% - min(450px,42vw));scrollbar-width:none;align-items:center}.trk::-webkit-scrollbar{display:none}
.sl{flex:0 0 min(900px,84vw);scroll-snap-align:center;border-radius:24px;border:1px solid var(--line);overflow:hidden;background:var(--bg2);box-shadow:0 30px 80px rgba(0,0,0,.4);transform:scale(.92);opacity:.5;transition:transform .5s,opacity .5s,border-color .5s;cursor:pointer}
.sl.on{transform:none;opacity:1;border-color:var(--ac);cursor:default}
.sli{aspect-ratio:16/9;display:grid;place-items:center;background:linear-gradient(135deg,rgba(166,107,255,.35),rgba(79,209,255,.2)),var(--bg2);color:var(--tx)}.sli img{width:100%;height:100%;object-fit:cover}.sli svg{width:72px;height:72px;opacity:.7}
.sc{padding:16px 22px;display:flex;justify-content:space-between;color:var(--mu);font-size:.9rem}
.dkf{display:flex;justify-content:center;align-items:center;gap:18px;padding:18px}
.dots2{display:flex;gap:8px;align-items:center}.dots2 i{height:8px;width:8px;border-radius:6px;background:var(--line);transition:.35s;cursor:pointer}.dots2 i.on{background:var(--ac);width:26px}
.rcol{display:grid;gap:14px;align-content:start}.pic{display:grid;gap:10px}
.shot{aspect-ratio:16/10;border-radius:16px;border:1px solid var(--line);background:linear-gradient(135deg,rgba(166,107,255,.35),rgba(79,209,255,.2)),var(--bg2);color:var(--tx);display:grid;place-items:center;cursor:pointer;overflow:hidden;position:relative;transition:.3s;padding:0}
.shot svg{width:72px;height:72px;opacity:.75}.shot img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}
.shot span{position:absolute;left:14px;bottom:10px;font-size:.72rem;color:var(--mu)}
.shot:hover{border-color:var(--ac);box-shadow:0 0 28px rgba(166,107,255,.35)}
.pic .pv{width:100%;justify-content:center;padding:12px 18px;gap:10px}.pic .pv svg{width:18px;height:18px}.pic .pv small{margin-left:4px}
.dm{position:absolute;inset:0;border-radius:inherit;background:#000;opacity:0;pointer-events:none}
:root[data-theme="light"] #hero{background:radial-gradient(55% 55% at 88% 8%,rgba(124,58,237,.18),transparent 70%),radial-gradient(45% 45% at 5% 95%,rgba(14,116,144,.13),transparent 70%)}
:root[data-theme="light"] nav{background:rgba(255,255,255,.74)}
:root[data-theme="light"] .pill,:root[data-theme="light"] .chip,:root[data-theme="light"] .fb,:root[data-theme="light"] .btn:not(.p),:root[data-theme="light"] .ib,:root[data-theme="light"] .pv,:root[data-theme="light"] .mq{background:#fff}
:root[data-theme="light"] .tilt,:root[data-theme="light"] .cert,:root[data-theme="light"] .pv,:root[data-theme="light"] .chip{box-shadow:0 10px 30px rgba(88,48,160,.09)}
:root[data-theme="light"] .tilt:hover,:root[data-theme="light"] .cert:hover{box-shadow:0 22px 50px rgba(124,58,237,.2)}
:root[data-theme="light"] .proj{background:#fff;box-shadow:0 22px 60px rgba(88,48,160,.16),0 0 0 1px rgba(124,58,237,.06)}
:root[data-theme="light"] .dm{background:var(--bg2)}
:root[data-theme="light"] .shot,:root[data-theme="light"] .sli{background:linear-gradient(135deg,rgba(124,58,237,.18),rgba(14,116,144,.14)),#fff}
:root[data-theme="light"] h1 .grad{text-shadow:none}
:root[data-theme="light"] .btn.p{box-shadow:0 10px 28px rgba(124,58,237,.38)}
:root[data-theme="light"] .tc,:root[data-theme="light"] .sys{background:#1b1233;border-color:rgba(124,58,237,.35);box-shadow:0 30px 70px rgba(88,48,160,.3);backdrop-filter:none}
:root[data-theme="light"] .tc pre,:root[data-theme="light"] .sys pre{color:#f4f1fb}
:root[data-theme="light"] .tb span,:root[data-theme="light"] .sh,:root[data-theme="light"] .ln{color:#a59cbb}
:root[data-theme="light"] .tb,:root[data-theme="light"] .sh{border-color:rgba(255,255,255,.1)}
:root[data-theme="light"] .kw{color:#c4a1ff}:root[data-theme="light"] .fnm,:root[data-theme="light"] .cur{color:#67e8f9}:root[data-theme="light"] .cur{background:#67e8f9}
:root[data-theme="light"] .st,:root[data-theme="light"] .sh b{color:#4ade80}
:root[data-theme="light"] .f1,:root[data-theme="light"] .badge,:root[data-theme="light"] footer b{color:#15803d}
:root[data-theme="light"] .f2{color:#0e7490}
:root[data-theme="light"] .badge{background:rgba(22,163,74,.12);border-color:rgba(22,163,74,.3)}
:root[data-theme="light"] .chip i{background:#16a34a;box-shadow:0 0 8px #16a34a}
:root[data-theme="light"] .ct{background:linear-gradient(135deg,rgba(124,58,237,.1),rgba(14,116,144,.06)),#fff;box-shadow:0 24px 70px rgba(88,48,160,.12)}
:root[data-theme="light"] .cf{background:#fff;box-shadow:0 18px 50px rgba(124,58,237,.16)}
:root[data-theme="light"] .cf input,:root[data-theme="light"] .cf textarea{background:#f6f3ff}
:root[data-theme="light"] .photo{background:linear-gradient(160deg,#fff,#e4d8ff);color:var(--ac)}
:root[data-theme="light"] #cg{background:radial-gradient(circle,rgba(124,58,237,.1),transparent 65%)}
:root[data-theme="light"] .ring{opacity:.3}
:root[data-theme="light"] .sl{box-shadow:0 24px 60px rgba(88,48,160,.2)}
:root[data-theme="light"] .dk{background:rgba(246,243,255,.95)}
:root[data-theme="light"] ::selection{background:rgba(124,58,237,.25)}
.ico svg{width:24px;height:24px;color:#fff}.btn>svg{width:16px;height:16px}.fb svg{width:14px;height:14px;vertical-align:-2px;margin-right:6px}
.sw{position:relative;flex:none;width:54px;height:30px;border-radius:999px;border:1px solid var(--line);background:rgba(255,255,255,.1);cursor:pointer;padding:0;transition:background .35s,border-color .35s,box-shadow .35s}
.sw:hover{border-color:var(--ac);box-shadow:0 0 16px rgba(166,107,255,.45)}
.sw:focus-visible{outline:2px solid var(--ac2);outline-offset:3px}
.kn{position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(180deg,#e5e7eb,#9ca3af);color:#374151;box-shadow:0 2px 6px rgba(0,0,0,.4);transition:transform .35s cubic-bezier(.5,1.6,.5,1),background .35s}
.kn svg{width:13px;height:13px}.kn .sun{display:none}
:root[data-theme="light"] .sw{background:linear-gradient(90deg,var(--ac),#9b6bff);border-color:transparent}
:root[data-theme="light"] .kn{transform:translateX(24px);background:#fff;color:#f59e0b;box-shadow:0 2px 6px rgba(88,48,160,.35)}
:root[data-theme="light"] .kn .moon{display:none}:root[data-theme="light"] .kn .sun{display:block}
.rv{opacity:0;transform:translateY(26px);transition:.8s}.rv.on{opacity:1;transform:none}
@media(max-width:860px){.links{display:none}.links.open{display:flex;flex-direction:column;position:absolute;top:calc(64px + env(safe-area-inset-top,0px));left:0;right:0;background:var(--bg);padding:20px 24px;border-bottom:1px solid var(--line)}.burger{display:grid}.nav-cta{display:none}.stats{grid-template-columns:repeat(2,1fr)}.about,.proj,.grid3,.certs{grid-template-columns:1fr}.proj{grid-template-columns:1fr;padding:26px;position:sticky;top:calc(76px + var(--i,0)*18px);margin-bottom:14vh;z-index:calc(10 + var(--i,0))}.proj .rcol{min-width:0}.proj h3{font-size:1.4rem}.ct{grid-template-columns:1fr;padding:28px 20px;gap:36px}.two{grid-template-columns:1fr}.photo{margin:auto}section{padding:70px 0}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
.fst{min-height:1.3em;font-size:.85rem;text-align:center;color:var(--mu)}.fst.ok{color:#16a34a}.fst.err{color:#ef4444}
.toast{position:fixed;left:50%;bottom:calc(28px + env(safe-area-inset-bottom,0px));transform:translate(-50%,20px);background:var(--bg2);color:var(--tx);border:1px solid var(--ac);padding:12px 22px;border-radius:999px;font-size:.88rem;box-shadow:0 12px 40px rgba(0,0,0,.35);opacity:0;pointer-events:none;transition:.35s;z-index:300}
.toast.show{opacity:1;transform:translate(-50%,0)}

.role{min-height:1.7em}.caret{display:inline-block;width:2px;height:1.1em;background:var(--ac2);margin-left:5px;vertical-align:-3px;animation:bl 1s steps(2) infinite}

.rm{position:fixed;inset:0;z-index:200;background:color-mix(in srgb,var(--bg) 94%,transparent);backdrop-filter:blur(18px);display:flex;flex-direction:column;opacity:0;pointer-events:none;transition:opacity .35s;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
.rm.open{opacity:1;pointer-events:auto}
.rmh{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding:14px clamp(16px,4vw,48px)}
.rmh b{font-size:1.05rem}.rma{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.rma .btn{padding:10px 18px;font-size:.85rem}.rma .btn svg{width:16px;height:16px}
.rm iframe{flex:1;width:calc(100% - 2*clamp(16px,4vw,48px));margin:0 auto 18px;border:1px solid var(--line);border-radius:16px;background:#fff}
:root[data-theme="light"] .rm{background:rgba(246,243,255,.96)}
.dkd{color:var(--mu);font-size:.85rem;max-width:720px;margin-top:4px}
.pcat{display:inline-block;margin-left:10px;padding:2px 10px;border-radius:999px;border:1px solid var(--line);font-size:.7rem;color:var(--ac2)}
.badge.d{background:var(--card);color:var(--mu);border-color:var(--line)}
.tl .it+.it{margin-top:34px}.tl p+p{margin-top:6px}
.cert .cx{margin-left:auto;flex:none;width:18px;height:18px;color:var(--mu)}.cert .cd{font-size:.8rem;color:var(--mu);margin-top:2px}
a.cert{color:inherit}
.photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.shot:disabled{cursor:default}.shot:disabled:hover{border-color:var(--line);box-shadow:none}

/* Experience timeline extras */
.xp-list{margin:10px 0 0 18px;padding:0;list-style:disc;color:var(--mu)}.xp-list li{margin:4px 0}
.tl .it .tags{margin-top:12px}
/* Admin link: invisible until the cursor reaches the bottom-left corner of the page */
footer{position:relative}
footer .adm{position:absolute;left:0;bottom:0;width:120px;height:64px;display:flex;align-items:flex-end;justify-content:flex-start;padding:0 0 14px 16px;font:600 .75rem ui-monospace,monospace;color:var(--mu);opacity:0;transition:opacity .25s}
footer .adm:hover,footer .adm:focus-visible{opacity:1;color:var(--ac2)}

/* Skill level bars */
.tilt li.sk{padding:12px 0 14px}
.sk .skh{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:8px;color:var(--tx)}
.sk .skh b{font-weight:600;font-size:.82rem;color:var(--mu)}
.sk .bar{height:6px;border-radius:999px;background:var(--line);overflow:hidden}
.sk .bar i{display:block;height:100%;width:0;border-radius:999px;background:linear-gradient(90deg,var(--ac2),var(--ac));box-shadow:0 0 12px rgba(79,209,255,.45);transition:width 1.2s cubic-bezier(.2,.8,.2,1) .15s}
.rv.on .sk .bar i,.sk.on .bar i{width:var(--w)}
@media(prefers-reduced-motion:reduce){.sk .bar i{transition:none}}
.tilt ul{padding:0;margin:0}

/* Light theme: hero code card is light too (was a dark block) */
:root[data-theme="light"] .tc{background:rgba(255,255,255,.88);backdrop-filter:blur(14px);border-color:rgba(124,58,237,.28);box-shadow:0 24px 60px rgba(88,48,160,.18),0 0 0 1px rgba(124,58,237,.08)}
:root[data-theme="light"] .tc pre{color:#2a1f4a}
:root[data-theme="light"] .tc .tb{border-color:rgba(88,48,160,.14)}
:root[data-theme="light"] .tc .tb span{color:#6b5f87}
:root[data-theme="light"] .tc .kw{color:#7c3aed}
:root[data-theme="light"] .tc .fnm{color:#0e7490}
:root[data-theme="light"] .tc .st{color:#15803d}
:root[data-theme="light"] .tc .cur{background:#7c3aed;color:#7c3aed}
