:root{--bg:#07080d;--bg-2:#0b0d16;--surface:#ffffff07;--surface-2:#ffffff0d;--border:#ffffff14;--border-2:#ffffff24;--text:#e8eaf3;--muted:#9aa0b6;--dim:#666d86;--violet:#8b5cf6;--violet-2:#a78bfa;--blue:#3b82f6;--cyan:#22d3ee;--green:#34d399;--grad:linear-gradient(110deg, #c4b5fd 0%, #818cf8 30%, #60a5fa 60%, #22d3ee 100%);--grad-strong:linear-gradient(110deg, #8b5cf6, #3b82f6 55%, #06b6d4);--font-display:"Space Grotesk", "Inter", system-ui, sans-serif;--font-body:"Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:"JetBrains Mono", ui-monospace, "Cascadia Code", Consolas, monospace;--radius:18px;--radius-sm:12px;--gutter:clamp(16px, 4vw, 40px);--ease:cubic-bezier(.22, 1, .36, 1);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-padding-top:84px}body{background:var(--bg);color:var(--text);font-family:var(--font-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;font-size:16px;line-height:1.65;overflow-x:clip}body.no-scroll{overflow:hidden}::selection{color:#fff;background:#8b5cf673}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}h1,h2,h3,h4,p{margin:0}kbd{font-family:var(--font-mono);border:1px solid var(--border-2);background:var(--surface-2);color:var(--muted);border-radius:6px;padding:2px 6px;font-size:.72rem}:focus-visible{outline:2px solid var(--cyan);outline-offset:3px;border-radius:6px}.container{width:100%;max-width:1180px;padding:0 var(--gutter);margin:0 auto}.muted{color:var(--muted)}main{z-index:1;position:relative}.bg{z-index:0;pointer-events:none;position:fixed;inset:0;overflow:hidden}.bg-aurora .blob{filter:blur(90px);opacity:.38;will-change:transform;border-radius:50%;position:absolute}.b1{background:radial-gradient(circle,#6d28d9 0%,#0000 65%);width:46vmax;height:46vmax;animation:26s ease-in-out infinite alternate drift1;top:-14vmax;left:-12vmax}.b2{background:radial-gradient(circle,#1d4ed8 0%,#0000 65%);width:40vmax;height:40vmax;animation:32s ease-in-out infinite alternate drift2;top:10vh;right:-14vmax}.b3{opacity:.25;background:radial-gradient(circle,#0891b2 0%,#0000 65%);width:34vmax;height:34vmax;animation:38s ease-in-out infinite alternate drift3;bottom:-18vmax;left:30vw}@keyframes drift1{to{transform:translate(12vw,10vh)scale(1.1)}}@keyframes drift2{to{transform:translate(-14vw,16vh)scale(.9)}}@keyframes drift3{to{transform:translate(-10vw,-12vh)scale(1.15)}}.bg-grid{background-image:linear-gradient(#ffffff09 1px,#0000 1px),linear-gradient(90deg,#ffffff09 1px,#0000 1px);background-size:64px 64px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(80% 60% at 50% 0,#000 30%,#0000 75%);mask-image:radial-gradient(80% 60% at 50% 0,#000 30%,#0000 75%)}.bg-canvas{opacity:.75;position:absolute;inset:0}.bg-cursor{background:radial-gradient(500px circle at var(--cx,-999px) var(--cy,-999px), #6366f117, transparent 60%);position:absolute;inset:0}.bg-noise{opacity:.05;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:absolute;inset:-50%}.progress{z-index:60;background:var(--grad-strong);transform-origin:0;height:2px;transform:scaleX(var(--p,0));position:fixed;top:0;left:0;right:0;box-shadow:0 0 12px #3b82f6b3}.nav{z-index:50;transition:background .35s var(--ease), border-color .35s var(--ease), backdrop-filter .35s var(--ease);border-bottom:1px solid #0000;position:fixed;inset:0 0 auto}.nav.scrolled,.nav.open{-webkit-backdrop-filter:blur(16px)saturate(140%);border-bottom-color:var(--border);background:#07080db8}.nav-inner{align-items:center;gap:24px;height:68px;display:flex}.logo{font-family:var(--font-mono);align-items:center;gap:10px;font-size:.9rem;display:flex}.logo-mark{width:34px;height:34px;font-family:var(--font-display);color:#fff;background:var(--grad-strong);transition:transform .4s var(--ease);border-radius:10px;place-items:center;font-size:.85rem;font-weight:700;display:grid;box-shadow:0 6px 24px -6px #6366f1b3}.logo:hover .logo-mark{transform:rotate(-8deg)scale(1.06)}.logo-dot{color:var(--cyan)}.nav-links{gap:4px;margin-left:auto;display:flex}.nav-links a{color:var(--muted);border-radius:999px;padding:8px 14px;font-size:.9rem;transition:color .2s;position:relative}.nav-links a:hover{color:var(--text)}.nav-links a.active{color:var(--text);background:var(--surface-2)}.nav-links a.active:after{content:"";background:var(--cyan);width:4px;height:4px;box-shadow:0 0 8px var(--cyan);border-radius:50%;position:absolute;bottom:2px;left:50%;transform:translate(-50%)}.nav-actions{align-items:center;gap:10px;display:flex}.kbd-btn{border:1px solid var(--border);background:var(--surface);height:36px;color:var(--muted);border-radius:10px;align-items:center;gap:8px;padding:0 8px 0 12px;transition:border-color .2s,color .2s;display:flex}.kbd-btn:hover{border-color:var(--border-2);color:var(--text)}.lang-toggle{border:1px solid var(--border);background:var(--surface);border-radius:10px;padding:3px;display:flex}.lang-toggle button{font-family:var(--font-mono);color:var(--dim);border-radius:7px;padding:5px 9px;font-size:.75rem;transition:background .2s,color .2s}.lang-toggle button.on{color:#fff;background:#8b5cf64d}.burger{border:1px solid var(--border);border-radius:10px;place-items:center;width:40px;height:40px;display:none}.mobile-menu{padding:12px var(--gutter) 28px;flex-direction:column;height:calc(100dvh - 68px);display:flex}.mobile-menu[hidden]{display:none}.mobile-menu a{font-family:var(--font-display);border-bottom:1px solid var(--border);opacity:0;animation:rise .5s var(--ease) forwards;padding:14px 0;font-size:2rem;font-weight:600}.mobile-menu a .muted{font-family:var(--font-mono);vertical-align:middle;margin-right:12px;font-size:.8rem}.btn{white-space:nowrap;height:48px;transition:transform .25s var(--ease), box-shadow .25s var(--ease), border-color .25s, background .25s;border-radius:12px;align-items:center;gap:9px;padding:0 22px;font-size:.95rem;font-weight:500;display:inline-flex;position:relative}.btn:active{transform:translateY(1px)scale(.98)}.btn-primary{color:#fff;background:var(--grad-strong);background-size:160% 100%;box-shadow:0 10px 30px -10px #6366f1cc,inset 0 1px #ffffff40}.btn-primary:hover{background-position:100% 0;transform:translateY(-2px);box-shadow:0 16px 40px -12px #3b82f6e6,inset 0 1px #ffffff40}.btn-ghost{border:1px solid var(--border-2);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffff08}.btn-ghost:hover{background:#8b5cf61a;border-color:#a78bfa99;transform:translateY(-2px)}.btn-icon{border:1px solid var(--border-2);background:#ffffff08;justify-content:center;width:48px;padding:0}.btn-icon:hover{color:#fff;background:#0a66c2;border-color:#0a66c2;transform:translateY(-2px)}.chips{flex-wrap:wrap;gap:7px;display:flex}.chip{font-family:var(--font-mono);color:#c3c8da;background:var(--surface-2);border:1px solid var(--border);transition:border-color .2s, color .2s, transform .2s var(--ease);border-radius:8px;padding:7px 10px;font-size:.74rem;line-height:1}.chip:hover{color:#fff;border-color:#22d3ee73;transform:translateY(-1px)}.chip-accent{color:#c4b5fd;background:#8b5cf61a;border-color:#8b5cf640}.card{border-radius:var(--radius);border:1px solid var(--border);isolation:isolate;transition:transform .4s var(--ease), border-color .3s;background:linear-gradient(#ffffff0b,#ffffff04);position:relative}.card:before{content:"";border-radius:inherit;background:radial-gradient(380px circle at var(--mx,-999px) var(--my,-999px), #a78bfabf, #22d3ee59 35%, transparent 60%);-webkit-mask-composite:xor;opacity:0;z-index:-1;padding:1px;transition:opacity .3s;position:absolute;inset:-1px;-webkit-mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);-webkit-mask-position:0 0,0 0;-webkit-mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;-webkit-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:after{content:"";border-radius:inherit;background:radial-gradient(500px circle at var(--mx,-999px) var(--my,-999px), #8b5cf614, transparent 45%);opacity:0;z-index:-1;pointer-events:none;transition:opacity .3s;position:absolute;inset:0}.card:hover:before,.card:hover:after{opacity:1}.card:hover{transform:translateY(-3px)}.reveal{opacity:0;filter:blur(6px);transition:opacity .9s var(--ease) var(--d,0s), transform .9s var(--ease) var(--d,0s), filter .9s var(--ease) var(--d,0s);transform:translateY(28px)}.reveal.in{opacity:1;filter:none;transform:none}@keyframes rise{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}.hero{align-items:center;min-height:100svh;padding:110px 0 90px;display:flex;position:relative}.hero-grid{grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);align-items:center;gap:clamp(32px,5vw,72px);display:grid}.badge{color:#c8f7e4;animation:rise .8s var(--ease) both;background:#34d39914;border:1px solid #34d39940;border-radius:999px;align-items:center;gap:10px;padding:7px 14px 7px 12px;font-size:.82rem;display:inline-flex}.pulse{background:var(--green);border-radius:50%;width:8px;height:8px;position:relative}.pulse:after{content:"";background:var(--green);border-radius:50%;animation:1.8s cubic-bezier(0,0,.2,1) infinite ping;position:absolute;inset:0}@keyframes ping{75%,to{opacity:0;transform:scale(2.6)}}.hero-greeting{font-family:var(--font-mono);color:var(--muted);animation:rise .8s var(--ease) .1s both;margin-top:28px;font-size:.95rem}.hero-name{font-family:var(--font-display);letter-spacing:-.035em;flex-wrap:wrap;column-gap:.28em;margin:10px 0 22px;font-size:clamp(3rem,8.4vw,6.4rem);font-weight:700;line-height:.95;display:flex}.split{white-space:nowrap;display:inline-flex}.split .ch{background:var(--grad);color:#0000;opacity:0;animation:chIn .9s var(--ease) calc(.25s + var(--i) * 45ms) forwards, shimmer 8s linear calc(1.4s + var(--i) * 45ms) infinite;background-size:300% 100%;-webkit-background-clip:text;background-clip:text;display:inline-block;transform:translateY(.6em)rotate(6deg)}.split:first-child .ch{animation:chIn .9s var(--ease) calc(.25s + var(--i) * 45ms) forwards;background:linear-gradient(#fff,#c9cde0);-webkit-background-clip:text;background-clip:text}@keyframes chIn{to{opacity:1;transform:none}}@keyframes shimmer{0%{background-position:0 0}50%{background-position:100% 0}to{background-position:0 0}}.hero-role{font-family:var(--font-mono);color:var(--text);min-height:1.8em;animation:rise .8s var(--ease) .7s both;font-size:clamp(1rem,2vw,1.25rem)}.prompt{color:var(--cyan)}.role-rotator{vertical-align:bottom;display:inline-block;overflow:hidden}.role-word{animation:roleIn .6s var(--ease) both;display:inline-block}.role-word:after{content:"_";color:var(--violet-2);margin-left:2px;animation:1s step-end infinite blink}@keyframes roleIn{0%{opacity:0;filter:blur(4px);transform:translateY(100%)}to{opacity:1;filter:none;transform:none}}@keyframes blink{50%{opacity:0}}.hero-lead{max-width:34rem;color:var(--muted);animation:rise .8s var(--ease) .85s both;margin-top:22px;font-size:1.06rem}.hero-cta{animation:rise .8s var(--ease) 1s both;flex-wrap:wrap;gap:12px;margin-top:34px;display:flex}.hero-loc{color:var(--dim);animation:rise .8s var(--ease) 1.1s both;align-items:center;gap:8px;margin-top:26px;font-size:.88rem;display:flex}.code-wrap{perspective:1200px;min-width:0;animation:cardIn 1.2s var(--ease) .5s both}@keyframes cardIn{0%{opacity:0;transform:translateY(40px)scale(.96)}to{opacity:1;transform:none}}.code-card{border:1px solid var(--border-2);transform:rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transform-style:preserve-3d;transition:transform .35s var(--ease);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:linear-gradient(#141624eb,#0c0d16eb);border-radius:20px;position:relative;overflow:hidden;box-shadow:0 40px 100px -30px #4c1d9599,inset 0 0 0 1px #ffffff05}.code-card:before{content:"";background:radial-gradient(420px circle at var(--mx,50%) var(--my,0%), #8b5cf624, transparent 55%);pointer-events:none;position:absolute;inset:0}.code-card:after{content:"";border-radius:inherit;background:conic-gradient(from var(--angle,0deg), transparent 0 70%, #a78bfae6 80%, #22d3eee6 88%, transparent 96%);-webkit-mask-composite:xor;pointer-events:none;padding:1px;animation:6s linear infinite spin;position:absolute;inset:-1px;-webkit-mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);-webkit-mask-position:0 0,0 0;-webkit-mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;-webkit-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}@property --angle{syntax:"<angle>";inherits:false;initial-value:0deg}@keyframes spin{to{--angle:360deg}}.code-bar{border-bottom:1px solid var(--border);background:#ffffff05;align-items:center;gap:7px;padding:14px 16px;display:flex}.dot{border-radius:50%;width:11px;height:11px}.dot.red{background:#ff5f57}.dot.yellow{background:#febc2e}.dot.green{background:#28c840}.code-tab{font-family:var(--font-mono);color:var(--muted);background:#8b5cf61f;border:1px solid #8b5cf640;border-radius:6px;margin-left:14px;padding:4px 10px;font-size:.75rem}.code-body{font-family:var(--font-mono);scrollbar-width:none;min-height:19.5em;margin:0;padding:18px 18px 8px 8px;font-size:clamp(.7rem,1.05vw,.85rem);line-height:1.75;overflow-x:auto}.code-line{white-space:pre;display:flex}.ln{text-align:right;color:#3d4257;-webkit-user-select:none;user-select:none;flex-shrink:0;width:2.6em;padding-right:1em;display:inline-block}.tk-kw{color:#c084fc}.tk-ty{color:#5eead4}.tk-pr{color:#93c5fd}.tk-st{color:#fdba74}.tk-nu{color:#f9a8d4}.tk-fn{color:#fde68a}.tk-id{color:#e2e8f0}.tk-p{color:#8b93ab}.caret{vertical-align:text-bottom;background:var(--cyan);width:.55em;height:1.15em;margin-left:1px;animation:1s step-end infinite blink;display:inline-block}.term{font-family:var(--font-mono);border-top:1px solid var(--border);color:var(--muted);opacity:.35;background:#00000040;min-height:6.2em;padding:12px 18px 16px;font-size:clamp(.7rem,1.05vw,.82rem);transition:opacity .4s}.term.show{opacity:1}.term>div{animation:rise .4s var(--ease) both}.term-ok{color:var(--green)}.term-hello{color:var(--text);font-weight:500}.scroll-hint{font-family:var(--font-mono);letter-spacing:.15em;text-transform:uppercase;color:var(--dim);animation:rise 1s var(--ease) 1.6s both;flex-direction:column;align-items:center;gap:8px;font-size:.7rem;display:flex;position:absolute;bottom:26px;left:50%;transform:translate(-50%)}.mouse{border:1.5px solid var(--dim);border-radius:12px;justify-content:center;width:22px;height:34px;padding-top:6px;display:flex}.wheel{background:var(--cyan);width:3px;height:7px;animation:wheel 1.8s var(--ease) infinite;border-radius:3px}@keyframes wheel{0%{opacity:1;transform:translateY(0)}80%{opacity:0;transform:translateY(10px)}to{opacity:0}}.marquee{z-index:1;border-block:1px solid var(--border);background:#ffffff04;padding:22px 0;position:relative;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#0000,#000 12% 88%,#0000);mask-image:linear-gradient(90deg,#0000,#000 12% 88%,#0000)}.marquee-track{gap:44px;width:max-content;animation:40s linear infinite marquee;display:flex}.marquee:hover .marquee-track{animation-play-state:paused}.marquee-item{font-family:var(--font-display);color:#7c829b;white-space:nowrap;align-items:center;gap:14px;font-size:1.15rem;font-weight:500;display:flex}.marquee-dot{background:var(--grad-strong);border-radius:2px;width:6px;height:6px;transform:rotate(45deg)}@keyframes marquee{to{transform:translate(calc(-50% - 22px))}}.stats-section{z-index:1;padding:80px 0 20px;position:relative}.stats{border:1px solid var(--border);border-radius:var(--radius);background:#ffffff05;grid-template-columns:repeat(4,1fr);display:grid;overflow:hidden}.stat{border-right:1px solid var(--border);opacity:0;transition:opacity .8s var(--ease) var(--d), transform .8s var(--ease) var(--d);padding:30px 26px;transform:translateY(20px)}.stat:last-child{border-right:0}.stats.in .stat{opacity:1;transform:none}.stat-value{font-family:var(--font-display);letter-spacing:-.03em;background:var(--grad);color:#0000;font-variant-numeric:tabular-nums;-webkit-background-clip:text;background-clip:text;font-size:clamp(2.4rem,4.6vw,3.4rem);font-weight:700;line-height:1}.stat-label{color:var(--muted);margin-top:12px;font-size:.9rem;line-height:1.45}.section{padding:clamp(80px,12vw,140px) 0 0;position:relative}.section-head{margin-bottom:clamp(36px,5vw,56px)}.kicker{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--cyan);align-items:center;gap:12px;font-size:.8rem;display:flex}.kicker-center{justify-content:center}.kicker-num{color:var(--dim)}.kicker-line{background:linear-gradient(90deg, var(--cyan), transparent);width:36px;height:1px}.section-title{font-family:var(--font-display);letter-spacing:-.03em;margin-top:16px;font-size:clamp(2.2rem,5.4vw,3.8rem);font-weight:700;line-height:1.05}.section-sub{color:var(--muted);margin-top:14px;font-size:1.05rem}.bullets{gap:9px;margin:0 0 20px;padding:0;list-style:none;display:grid}.bullets li{color:#b9bed0;padding-left:22px;font-size:.94rem;line-height:1.55;position:relative}.bullets li:before{content:"";background:var(--grad-strong);border-radius:2px;width:8px;height:2px;position:absolute;top:.62em;left:2px}.about-grid{grid-template-columns:1fr 1.1fr;align-items:start;gap:clamp(28px,5vw,64px);display:grid}.about-text{color:#c6cadb;gap:20px;font-size:1.12rem;line-height:1.75;display:grid;position:sticky;top:110px}.traits{grid-template-columns:1fr 1fr;gap:14px;display:grid}.trait{height:100%;padding:24px}.trait-num{font-family:var(--font-mono);color:var(--violet-2);font-size:.75rem}.trait h3{font-family:var(--font-display);margin:12px 0 8px;font-size:1.12rem;font-weight:600}.trait p{color:var(--muted);font-size:.92rem;line-height:1.6}.timeline{gap:28px;padding-left:44px;display:grid;position:relative}.timeline-rail{background:var(--border);border-radius:2px;width:2px;position:absolute;top:8px;bottom:8px;left:11px;overflow:hidden}.timeline-fill{background:linear-gradient(180deg, var(--violet), var(--blue), var(--cyan));transform-origin:top;transform:scaleY(var(--progress,0));box-shadow:0 0 14px var(--blue);position:absolute;inset:0}.job{position:relative}.job-node{background:var(--bg);border:2px solid var(--violet-2);border-radius:50%;width:16px;height:16px;position:absolute;top:30px;left:-40px;box-shadow:0 0 0 5px #8b5cf626,0 0 18px #8b5cf699}.job-card{padding:clamp(22px,3vw,34px)}.job-head{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px;display:flex}.job-company{font-family:var(--font-display);letter-spacing:-.02em;font-size:clamp(1.6rem,3vw,2.1rem);font-weight:700}.job-roles{flex-wrap:wrap;gap:4px 18px;margin-top:6px;font-size:.94rem;display:flex}.job-role strong{color:var(--violet-2);font-weight:600}.job-note{color:var(--dim);margin-top:4px;font-size:.85rem}.job-period{font-family:var(--font-mono);color:var(--muted);white-space:nowrap;border:1px solid var(--border);background:var(--surface);border-radius:8px;padding:6px 10px;font-size:.8rem}.job-summary{color:#c6cadb;margin-bottom:18px}.job-sub{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--cyan);margin-bottom:12px;font-size:.78rem;font-weight:500}.bento{grid-template-columns:repeat(6,1fr);gap:16px;display:grid}.bento-cell{grid-column:span 2}.bento-cell.lg{grid-column:span 3}.bento-cell.award{grid-column:span 2}@media (width>=1025px){.bento-cell:nth-last-child(-n+2){grid-column:span 3}}.project{flex-direction:column;height:100%;padding:26px;display:flex}.project .bullets{flex:1;align-content:start}.project-top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.project-client{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--cyan);font-size:.75rem}.project-meta{color:var(--muted);border:1px solid var(--border);border-radius:999px;padding:4px 10px;font-size:.78rem}.project-name{font-family:var(--font-display);letter-spacing:-.01em;margin:12px 0 16px;font-size:1.35rem;font-weight:600;line-height:1.2}.bento-cell.lg .project-name{font-size:1.7rem}.bento-cell.lg .project{background:radial-gradient(120% 80% at 100% 0,#8b5cf624,#0000 55%),linear-gradient(#ffffff0d,#ffffff04)}.bento-cell.award .project{background:radial-gradient(120% 90% at 0 0,#fbbf2421,#0000 55%),linear-gradient(#ffffff0d,#ffffff04)}.award-badge{color:#fde68a;background:#fbbf241f;border:1px solid #fbbf2459;border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:.78rem;font-weight:600;display:inline-flex}.skills-grid{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.skill-group{height:100%;padding:24px}.skill-group h3{font-family:var(--font-display);margin-bottom:16px;font-size:1.1rem;font-weight:600}.skill-hash{font-family:var(--font-mono);color:var(--violet-2);margin-right:6px}.edu-grid{grid-template-columns:1.4fr 1fr 1fr;gap:16px;margin-top:16px;display:grid}.edu{height:100%;padding:24px}.edu-title{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--cyan);margin-bottom:8px;font-size:.78rem;font-weight:500}.edu-row{border-bottom:1px dashed var(--border);justify-content:space-between;gap:14px;padding:12px 0;font-size:.94rem;display:flex}.edu-row:last-child{border-bottom:0;padding-bottom:0}.edu-row strong{font-weight:500}.edu-row p{margin-top:2px;font-size:.86rem}.edu-period{font-family:var(--font-mono);color:var(--dim);white-space:nowrap;font-size:.78rem}.beyond-grid{grid-template-columns:repeat(4,1fr);grid-auto-rows:250px;grid-auto-flow:dense;gap:16px;display:grid}.beyond-cell>.card{height:100%}.beyond-car{grid-column:span 2}.beyond-gauge{grid-row:span 2}.beyond-moto{grid-column:span 2}.beyond-photo{align-items:flex-end;margin:0;display:flex;overflow:hidden;padding:0!important}.beyond-photo img{object-fit:cover;z-index:-2;filter:saturate(.9)brightness(.85);width:100%;height:100%;transition:transform 1.2s var(--ease), filter .6s var(--ease);position:absolute;inset:0;transform:scale(1.02)}.beyond-photo:after{opacity:1!important;background:linear-gradient(#0000 35%,#07080d8c 62%,#07080deb 100%)!important}.beyond-photo:hover img{filter:saturate(1.05)brightness(.95);transform:scale(1.08)}.beyond-photo figcaption{padding:22px 24px;position:relative}.beyond-photo h3{margin-top:12px!important}.beyond-photo p{color:#c9cddc!important}.beyond-icon.small{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0f111c8c;border-radius:10px;width:36px;height:36px}.beyond{height:100%;padding:26px}.beyond-icon{color:#e9d5ff;width:52px;height:52px;transition:transform .5s var(--ease);background:linear-gradient(135deg,#8b5cf640,#22d3ee1f);border:1px solid #a78bfa4d;border-radius:14px;place-items:center;display:grid}.beyond:hover .beyond-icon{transform:rotate(-8deg)scale(1.08)}.beyond h3{font-family:var(--font-display);margin:18px 0 6px;font-size:1.12rem;font-weight:600}.beyond p{color:var(--muted);font-size:.92rem}.contact{padding-bottom:clamp(80px,10vw,120px)}.contact-card{text-align:center;border:1px solid var(--border-2);background:radial-gradient(600px circle at var(--mx,50%) var(--my,0%), #8b5cf633, transparent 50%), radial-gradient(80% 120% at 50% 120%, #22d3ee24, transparent 60%), linear-gradient(180deg, #ffffff0d, #ffffff03);border-radius:28px;padding:clamp(44px,8vw,96px) clamp(20px,5vw,64px);position:relative;overflow:hidden}.contact-card:before{content:"";pointer-events:none;background-image:linear-gradient(#ffffff0a 1px,#0000 1px),linear-gradient(90deg,#ffffff0a 1px,#0000 1px);background-size:40px 40px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(#000 10%,#0000 70%);mask-image:radial-gradient(#000 10%,#0000 70%)}.contact-card>*{position:relative}.contact-card>.contact-bg{object-fit:cover;opacity:.16;filter:saturate(.7);pointer-events:none;width:100%;height:100%;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#0000,#000 45%);mask-image:linear-gradient(#0000,#000 45%)}.contact-title{max-width:14em;font-family:var(--font-display);letter-spacing:-.035em;color:#0000;background:linear-gradient(#fff 30%,#a5acc6);-webkit-background-clip:text;background-clip:text;margin:18px auto 0;font-size:clamp(2.2rem,6vw,4.4rem);font-weight:700;line-height:1.02}.contact-text{max-width:36rem;color:var(--muted);margin:20px auto 0;font-size:1.06rem}.contact-email{font-family:var(--font-mono);background:var(--grad);color:#0000;word-break:break-all;-webkit-background-clip:text;background-clip:text;border-bottom:1px dashed #a78bfa66;margin-top:28px;padding-bottom:4px;font-size:clamp(1rem,2.6vw,1.5rem);display:inline-block}.contact-actions{flex-wrap:wrap;justify-content:center;gap:12px;margin-top:34px;display:flex}.footer{z-index:1;border-top:1px solid var(--border);color:var(--dim);padding:28px 0;font-size:.86rem;position:relative}.footer-inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.footer-kbd{color:var(--dim);align-items:center;gap:6px;transition:color .2s;display:inline-flex}.footer-kbd:hover{color:var(--text)}.palette-overlay{z-index:100;-webkit-backdrop-filter:blur(6px);background:#03040899;justify-content:center;align-items:flex-start;padding:14vh 16px 16px;animation:.2s both fade;display:flex;position:fixed;inset:0}@keyframes fade{0%{opacity:0}}.palette{border:1px solid var(--border-2);width:100%;max-width:580px;animation:pop .28s var(--ease) both;background:#0f111cf5;border-radius:18px;overflow:hidden;box-shadow:0 40px 120px -20px #000c,0 0 0 1px #8b5cf626}@keyframes pop{0%{opacity:0;transform:translateY(-10px)scale(.97)}}.palette-input{border-bottom:1px solid var(--border);color:var(--muted);align-items:center;gap:12px;padding:0 16px;display:flex}.palette-input input{height:56px;color:var(--text);font:inherit;background:0 0;border:0;outline:0;flex:1;font-size:1rem}.palette-list{max-height:min(380px,50vh);padding:8px;overflow-y:auto}.palette-group{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--dim);padding:10px 10px 6px;font-size:.7rem}.cmd{text-align:left;color:#c3c8da;border-radius:10px;align-items:center;gap:12px;width:100%;padding:11px 12px;font-size:.94rem;display:flex}.cmd.sel{color:#fff;background:linear-gradient(90deg,#8b5cf638,#3b82f614)}.cmd-enter{font-family:var(--font-mono);color:var(--muted);margin-left:auto}.palette-empty{text-align:center;color:var(--dim);padding:28px}.palette-foot{border-top:1px solid var(--border);color:var(--dim);align-items:center;gap:6px;padding:10px 16px;font-size:.78rem;display:flex}.toast{z-index:120;color:#d1fae5;opacity:0;transition:transform .45s var(--ease), opacity .3s;pointer-events:none;background:#06281eeb;border:1px solid #34d39959;border-radius:12px;align-items:center;gap:8px;padding:12px 18px;font-size:.9rem;display:flex;position:fixed;bottom:28px;left:50%;transform:translate(-50%,140%);box-shadow:0 20px 50px -10px #0009}.toast.show{opacity:1;transform:translate(-50%)}@media (width<=1024px){.hero-grid{grid-template-columns:minmax(0,1fr)}.code-wrap{max-width:640px}.about-grid{grid-template-columns:1fr}.about-text{position:static}.bento-cell,.bento-cell.lg,.bento-cell.award{grid-column:span 3}.skills-grid{grid-template-columns:repeat(2,1fr)}.edu-grid{grid-template-columns:1fr 1fr}.edu-grid>:first-child{grid-column:1/-1}.beyond-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=860px){.nav-links,.kbd-btn{display:none}.nav-actions{margin-left:auto}.burger{display:grid}.stats{grid-template-columns:1fr 1fr}.stat:nth-child(2){border-right:0}.stat:nth-child(-n+2){border-bottom:1px solid var(--border)}}@media (width<=640px){.nav-inner{gap:12px}.logo-text{font-size:.8rem}.hero{padding-top:100px}.scroll-hint{display:none}.hero-cta .btn:not(.btn-icon){flex:1;justify-content:center}.traits,.skills-grid,.edu-grid,.beyond-grid{grid-template-columns:1fr}.beyond-grid{grid-auto-rows:280px}.beyond-car,.beyond-moto{grid-column:auto}.bento{grid-template-columns:1fr}.bento-cell,.bento-cell.lg,.bento-cell.award{grid-column:auto}.bento-cell.lg .project-name{font-size:1.45rem}.stat{padding:22px 18px}.timeline{padding-left:30px}.timeline-rail{left:6px}.job-node{width:14px;height:14px;left:-31px}.job-head{flex-direction:column}.contact-actions .btn{justify-content:center;width:100%}.footer-inner{text-align:center;justify-content:center}.footer-kbd{display:none}}@media (width<=380px){.logo-text{display:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important;animation-delay:0s!important}.reveal{opacity:1;filter:none;transform:none}.marquee-track{animation:none}}
