:root{--bg:#070808;--bg-soft:#0a0b0c;--bg-elev:#0d0e0f;--panel:#0f1011;--panel-2:#131415;--text:#f1f1ee;--muted:#a6a7a3;--dim:#7f807c;--line:#ffffff1c;--line-soft:#ffffff0f;--white:#fff;--ink:#070808;--font:"Helvetica Neue", "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Arial, sans-serif;--mono:ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;--serif:"Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;--maxw:1280px;--pad:clamp(20px, 4vw, 48px);--radius:18px;--radius-sm:12px;--ease:cubic-bezier(.16, 1, .3, 1);--nav-h:76px}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;scroll-padding-top:96px}html.dialog-open,html.menu-open{overflow:hidden}body{font-family:var(--font);letter-spacing:-.011em;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;font-size:16px;line-height:1.6;overflow-x:hidden}body:before{content:"";z-index:-1;pointer-events:none;background:radial-gradient(1100px 700px at 76% -8%,#ffffff0d,#0000 62%),radial-gradient(900px 700px at 4% 42%,#ffffff06,#0000 60%);position:fixed;inset:0}img,svg{max-width:100%;display:block}button{font:inherit;color:inherit}a{color:inherit;text-decoration:none}h1,h2,h3,h4,p,ul,ol,dl,dd{margin:0}ul,ol{padding:0;list-style:none}::selection{background:var(--text);color:var(--ink)}:focus-visible{outline:2px solid var(--text);outline-offset:4px;border-radius:4px}.skip-link{z-index:10001;background:var(--text);color:var(--ink);font-family:var(--mono);text-transform:uppercase;letter-spacing:.12em;transition:transform .3s var(--ease);border-radius:999px;padding:10px 16px;font-size:11px;position:fixed;top:12px;left:12px;transform:translateY(-160%)}.skip-link:focus{transform:none}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.wrap{width:100%;max-width:var(--maxw);padding-inline:var(--pad);margin-inline:auto}.grain{z-index:9990;pointer-events:none;opacity:.035;mix-blend-mode:soft-light;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E");position:fixed;inset:0}.scroll-progress{z-index:10000;pointer-events:none;background:#ffffff0a;height:2px;position:fixed;top:0;left:0;right:0}.scroll-progress span{background:var(--text);transform-origin:0;will-change:transform;height:100%;display:block;transform:scaleX(0)}.cursor{z-index:9999;pointer-events:none;opacity:0;mix-blend-mode:difference;width:22px;height:22px;transition:opacity .3s, width .3s var(--ease), height .3s var(--ease), background-color .3s;will-change:transform;border:1px solid #ffffff8c;border-radius:50%;position:fixed;top:0;left:0}.cursor.is-active{opacity:1}.cursor.is-hover{background:#ffffff24;width:48px;height:48px}
.eyebrow,.section-index,.mini-title,.project-meta,.cert-issuer,.cert-foot,.gh-stat-label,.gh-handle,.badge,.heatmap-legend,.repo-meta,.repo-topics span,.footer-meta,.hero-role,.hero-socials,.cert-top,.cert-bottom,.replay,.scroll-cue,.activity-head,.dialog-issuer,.dialog-meta dt{font-family:var(--mono);text-transform:uppercase}.section{padding-block:clamp(88px,11vw,150px);scroll-margin-top:84px;position:relative}.section-index{letter-spacing:.2em;color:var(--dim);align-items:center;gap:12px;font-size:10px;display:flex}.section-index:before{content:"";opacity:.6;background:currentColor;width:26px;height:1px}.section-head{margin-bottom:clamp(40px,6vw,72px)}.section-head--split{justify-content:space-between;align-items:flex-end;gap:clamp(24px,5vw,80px);display:flex}.section-title{letter-spacing:-.045em;margin-top:20px;font-size:clamp(2.2rem,4.8vw,4.3rem);font-weight:500;line-height:.98}.section-title em,.contact-title em{font-family:var(--serif);letter-spacing:-.02em;font-style:italic;font-weight:400}.section-aside{max-width:340px;color:var(--muted);padding-bottom:6px;font-size:.93rem;line-height:1.65}.muted-note{color:var(--dim);font-size:.88rem}.link-arrow{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;border-bottom:1px solid var(--line);align-items:center;gap:10px;padding-bottom:6px;font-size:10px;transition:color .3s,border-color .3s;display:inline-flex}.link-arrow span:last-child{transition:transform .4s var(--ease)}.link-arrow:hover{color:var(--white);border-color:var(--white)}.link-arrow:hover span:last-child{transform:translate(4px,-4px)}
.btn{border:1px solid var(--line);color:var(--text);letter-spacing:-.01em;cursor:pointer;isolation:isolate;white-space:nowrap;transition:color .4s var(--ease), border-color .4s var(--ease), transform .3s var(--ease), background-color .4s var(--ease);background:0 0;border-radius:999px;justify-content:center;align-items:center;gap:.7rem;padding:.95rem 1.5rem;font-size:.86rem;font-weight:500;line-height:1;display:inline-flex;position:relative;overflow:hidden}.btn:before{content:"";z-index:-1;background:var(--text);border-radius:inherit;transition:transform .55s var(--ease);position:absolute;inset:-1px;transform:translateY(102%)}.btn:hover{color:var(--ink);border-color:var(--text)}.btn:hover:before{transform:translateY(0)}.btn:active{transform:scale(.97)}.btn .btn-ico{transition:transform .45s var(--ease);display:inline-block}.btn:hover .btn-ico{transform:translate(3px,-3px)}.btn-primary{background:var(--text);border-color:var(--text);color:var(--ink)}.btn-primary:before{background:var(--ink)}.btn-primary:hover{color:var(--text);border-color:var(--ink)}.btn-ghost{background:#ffffff05}.btn-ghost:before{background:var(--text)}.chip{border:1px solid var(--line-soft);color:var(--dim);font-family:var(--mono);letter-spacing:.13em;text-transform:uppercase;cursor:pointer;transition:color .3s, background-color .3s, border-color .3s, transform .3s var(--ease);background:0 0;border-radius:999px;padding:.55rem .85rem;font-size:9px;position:relative}.chip:hover{color:var(--text);border-color:var(--line);transform:translateY(-1px)}.chip.is-active{background:var(--text);border-color:var(--text);color:var(--ink)}.filters{flex-wrap:wrap;gap:6px;display:flex}
.site-nav{z-index:100;border-bottom:1px solid #0000;transition:background-color .45s,border-color .45s,-webkit-backdrop-filter .45s,backdrop-filter .45s;position:fixed;inset:0 0 auto}.site-nav.is-scrolled{border-bottom-color:var(--line-soft);-webkit-backdrop-filter:blur(18px)saturate(1.15);backdrop-filter:blur(18px)saturate(1.15);background:#070808b8}.nav-inner{z-index:2;width:100%;max-width:var(--maxw);min-height:var(--nav-h);padding-inline:var(--pad);justify-content:space-between;align-items:center;gap:24px;margin-inline:auto;display:flex;position:relative}.brand{z-index:3;flex-shrink:0;align-items:center;gap:11px;display:inline-flex;position:relative}.brand-mark{border:1px solid var(--line);width:34px;height:34px;font-family:var(--mono);letter-spacing:.04em;transition:background-color .35s, color .35s, transform .35s var(--ease);background:#ffffff08;border-radius:50%;place-items:center;font-size:9px;display:grid}.brand:hover .brand-mark{background:var(--text);color:var(--ink);transform:rotate(-8deg)}.brand-name{letter-spacing:-.01em;font-size:13px;font-weight:500}.nav-links{align-items:center;gap:clamp(16px,2vw,30px);display:flex}.nav-links a{color:var(--muted);padding:7px 0;font-size:12px;transition:color .3s;position:relative}.nav-links a:after{content:"";transform-origin:100%;height:1px;transition:transform .45s var(--ease);background:currentColor;position:absolute;bottom:0;left:0;right:0;transform:scaleX(0)}.nav-links a:hover,.nav-links a.is-active{color:var(--text)}.nav-links a:hover:after,.nav-links a.is-active:after{transform-origin:0;transform:scaleX(1)}.nav-actions{z-index:3;align-items:center;gap:12px;display:flex;position:relative}.nav-cta{border:1px solid var(--line);font-family:var(--mono);letter-spacing:.13em;text-transform:uppercase;border-radius:999px;align-items:center;gap:8px;padding:.65rem 1rem;font-size:9px;transition:background-color .35s,color .35s,border-color .35s;display:inline-flex}.nav-cta span{transition:transform .4s var(--ease)}.nav-cta:hover{background:var(--text);border-color:var(--text);color:var(--ink)}.nav-cta:hover span{transform:translate(2px,-2px)}.nav-toggle{border:1px solid var(--line);cursor:pointer;background:#ffffff05;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;gap:6px;width:42px;height:42px;display:none}.nav-toggle span{width:15px;height:1px;transition:transform .4s var(--ease);background:currentColor;display:block}.nav-toggle.is-open span:first-child{transform:translateY(3.5px)rotate(45deg)}.nav-toggle.is-open span:last-child{transform:translateY(-3.5px)rotate(-45deg)}
.hero{min-height:100svh;padding-top:calc(var(--nav-h) + clamp(16px, 5vh, 54px));border-bottom:1px solid var(--line-soft);isolation:isolate;flex-direction:column;padding-bottom:22px;display:flex;position:relative;overflow:hidden}#particle-canvas{z-index:1;pointer-events:none;opacity:0;width:100%;height:100%;transition:opacity 1.4s .1s;position:absolute;inset:0}#particle-canvas.is-live{opacity:1}.hero:after{content:"";z-index:1;pointer-events:none;background:radial-gradient(125% 78% at 50% 82%, #070808eb 0%, #070808b8 40%, #07080847 68%, transparent 86%), linear-gradient(to top, var(--bg) 0%, #070808b8 10%, transparent 32%);position:absolute;inset:0}.hero-orb{z-index:0;pointer-events:none;will-change:transform;border-radius:50%;position:absolute}.hero-orb--a{background:radial-gradient(circle,#ffffff0e,#0000 64%);width:58vw;max-width:900px;height:58vw;max-height:900px;animation:24s ease-in-out infinite alternate orb-drift;top:-16%;right:-8%}.hero-orb--b{background:radial-gradient(circle,#ffffff09,#0000 66%);width:48vw;max-width:760px;height:48vw;max-height:760px;animation:30s ease-in-out infinite alternate-reverse orb-drift;bottom:-30%;left:-14%}@keyframes orb-drift{0%{transform:translate(0,0)scale(1)}to{transform:translate(-3%,4%)scale(1.06)}}.hero-grid{z-index:2;width:100%;max-width:var(--maxw);padding-inline:var(--pad);text-align:center;flex-direction:column;flex:1;justify-content:flex-end;align-items:center;margin-inline:auto;padding-block:10px clamp(6px,1.6vh,22px);display:flex;position:relative}.hero-copy{flex-direction:column;align-items:center;width:100%;max-width:min(100%,1000px);display:flex}.hero-eyebrow{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);letter-spacing:.18em;color:var(--muted);text-transform:uppercase;font-size:10px;font-family:var(--mono);background:#07080894;border:1px solid #ffffff17;border-radius:999px;justify-content:center;align-items:center;gap:10px;padding:7px 14px 7px 13px;display:flex}.status-dot{background:var(--text);border-radius:50%;flex-shrink:0;width:6px;height:6px;position:relative}.status-dot:after{content:"";border:1px solid #fff6;border-radius:50%;animation:2.6s ease-out infinite status-pulse;position:absolute;inset:-4px}@keyframes status-pulse{0%{opacity:.8;transform:scale(.6)}70%,to{opacity:0;transform:scale(1.6)}}.hero-name{letter-spacing:-.055em;text-wrap:balance;margin-block:clamp(12px,1.8vh,22px) clamp(14px,2vh,24px);font-size:clamp(3.6rem,10.5vw,10rem);font-weight:500;line-height:.86}.hero-name .word{white-space:nowrap;margin-right:.2em;display:inline-block}.hero-name .word:last-child{margin-right:0}.hero-name.hero-name--mid{font-size:clamp(3rem,8.4vw,8.2rem)}.hero-name.hero-name--long{font-size:clamp(2.4rem,6.6vw,6.6rem)}@supports (-webkit-text-stroke:1px #fff){.hero-name .word:first-child,.hero-name .word:first-child .char{color:#0000;-webkit-text-stroke:1px #ffffff80}}.hero-name .char{opacity:0;filter:blur(7px);animation:char-in 1.1s var(--ease) forwards;animation-delay:var(--d,0s);display:inline-block;transform:translateY(.9em)rotate(4deg)}@keyframes char-in{to{opacity:1;filter:blur();transform:none}}.hero-role{letter-spacing:.17em;color:var(--muted);flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;font-size:10px;display:flex}.hero-role-line{background:var(--line);width:clamp(24px,4vw,58px);height:1px;display:inline-block}.hero-location{color:var(--dim)}.hero-lede{margin-top:clamp(16px,2.6vh,24px);max-width:52ch;color:var(--muted);text-wrap:pretty;margin-inline:auto;font-size:clamp(.98rem,1.15vw,1.1rem);line-height:1.65}.hero-eyebrow,.hero-role,.hero-lede,.hero-socials{text-shadow:0 1px 16px #000000e6,0 0 2px #000000a6}.hero-actions{flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;margin-top:clamp(24px,3.4vh,34px);display:flex}.hero-socials{letter-spacing:.14em;color:var(--dim);flex-wrap:wrap;justify-content:center;gap:6px 20px;margin-top:clamp(24px,3.4vh,34px);font-size:9px;display:flex}.hero-socials li{align-items:center;display:flex}.hero-socials li+li:before{content:"/";opacity:.4;margin-right:20px}.hero-socials a{transition:color .3s}.hero-socials a span{transition:transform .35s var(--ease);display:inline-block}.hero-socials a:hover{color:var(--text)}.hero-socials a:hover span{transform:translate(2px,-2px)}.portrait-zone{z-index:1;aspect-ratio:1;pointer-events:none;width:min(82vh,78vw,880px);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.tick{pointer-events:none;border:0 solid #ffffff47;width:12px;height:12px;position:absolute}.tick--tl{border-top-width:1px;border-left-width:1px;top:1%;left:1%}.tick--tr{border-top-width:1px;border-right-width:1px;top:1%;right:1%}.tick--bl{border-bottom-width:1px;border-left-width:1px;bottom:1%;left:1%}.tick--br{border-bottom-width:1px;border-right-width:1px;bottom:1%;right:1%}.hero-foot{z-index:2;width:100%;max-width:var(--maxw);padding-inline:var(--pad);justify-content:space-between;align-items:center;gap:20px;margin-inline:auto;padding-top:16px;display:flex;position:relative}.scroll-cue{letter-spacing:.18em;color:var(--dim);align-items:center;gap:12px;font-size:9px;transition:color .3s;display:inline-flex}.scroll-cue:hover{color:var(--text)}.scroll-line{background:linear-gradient(to bottom, var(--text), transparent);transform-origin:top;width:1px;height:34px;animation:2.6s ease-in-out infinite scroll-line;display:block}@keyframes scroll-line{0%,to{opacity:.4;transform:scaleY(.35)}50%{opacity:1;transform:scaleY(1)}}.replay{border:1px solid var(--line-soft);letter-spacing:.16em;color:var(--dim);cursor:pointer;opacity:0;pointer-events:none;transition:opacity .6s ease .2s, transform .6s var(--ease) .2s, color .3s, border-color .3s, background-color .3s;background:#ffffff04;border-radius:999px;align-items:center;gap:8px;padding:.55rem .9rem;font-size:8px;display:inline-flex;transform:translateY(6px)}.hero.is-formed .replay{opacity:1;pointer-events:auto;transform:none}.replay:hover{color:var(--text);border-color:var(--line);background:#ffffff0a}.replay-ico{transition:transform .5s var(--ease);font-size:12px;display:inline-block}.replay:hover .replay-ico{transform:rotate(-180deg)}
.ticker{border-bottom:1px solid var(--line-soft);background:#090a0b;padding-block:15px;position:relative;overflow:hidden}.ticker:before,.ticker:after{content:"";z-index:2;pointer-events:none;width:min(14vw,120px);position:absolute;top:0;bottom:0}.ticker:before{background:linear-gradient(90deg,#090a0b,#0000);left:0}.ticker:after{background:linear-gradient(270deg,#090a0b,#0000);right:0}.ticker-track{width:max-content;animation:42s linear infinite marquee;display:flex}.ticker:hover .ticker-track{animation-play-state:paused}.ticker-group{flex-shrink:0;align-items:center;display:flex}.ticker-group span{font-family:var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--dim);font-size:9px}.ticker-group i{background:var(--text);opacity:.5;border-radius:50%;width:3px;height:3px;margin-inline:28px;display:block}@keyframes marquee{0%{transform:translate(0,0)}to{transform:translate(-50%)}}
.about-grid{grid-template-columns:minmax(0,1.06fr) minmax(0,.94fr);align-items:start;gap:clamp(36px,7vw,96px);display:grid}.about-copy{max-width:60ch}.about-lead{letter-spacing:-.025em;color:var(--text);font-size:clamp(1.3rem,2.05vw,1.75rem);line-height:1.35}.about-lead strong{color:var(--white);font-weight:500}.about-copy p+p{color:var(--muted);margin-top:18px;font-size:.95rem;line-height:1.7}.about-copy .link-arrow{margin-top:30px}.stats{border-top:1px solid var(--line-soft);grid-template-columns:1fr 1fr;display:grid}.stat{border-bottom:1px solid var(--line-soft);padding-block:20px 18px}.stat:nth-child(odd){padding-right:18px}.stat:nth-child(2n){border-left:1px solid var(--line-soft);padding-left:22px}.stat-number{letter-spacing:-.055em;align-items:baseline;font-size:clamp(2rem,3vw,2.7rem);font-weight:500;line-height:1;display:flex}.stat-suffix{color:var(--muted);margin-left:2px;font-size:.55em}.stat-label{font-family:var(--mono);letter-spacing:.15em;text-transform:uppercase;color:var(--dim);margin-top:8px;font-size:8px;display:block}.skills{margin-top:32px}.mini-title{letter-spacing:.18em;color:var(--dim);margin-bottom:12px;font-size:9px}.skill-list{flex-wrap:wrap;gap:7px;display:flex}.skill-list li{border:1px solid var(--line-soft);color:var(--muted);transition:color .3s, border-color .3s, transform .35s var(--ease), background-color .3s;border-radius:999px;padding:.45rem .75rem;font-size:11px}.skill-list li:hover{color:var(--text);border-color:var(--line);background:#ffffff09;transform:translateY(-2px)}
.section--work{border-block:1px solid var(--line-soft);background:linear-gradient(#ffffff03,#0000 55%)}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(14px,2vw,22px);display:grid}.project{border:1px solid var(--line-soft);border-radius:var(--radius);transition:transform .55s var(--ease), border-color .45s, box-shadow .55s var(--ease);background:linear-gradient(#ffffff07,#ffffff02);position:relative;overflow:hidden}.project:after{content:"";z-index:3;pointer-events:none;opacity:0;background:radial-gradient(480px circle at var(--mx,50%) var(--my,50%), #ffffff14, transparent 45%);transition:opacity .4s;position:absolute;inset:0}.project:hover{border-color:#fff3;transform:translateY(-6px);box-shadow:0 32px 70px #00000061}.project:hover:after{opacity:1}.project.is-hidden{display:none}.project-link{flex-direction:column;height:100%;display:flex}.project-visual{border-bottom:1px solid var(--line-soft);background-color:#0b0c0d;background-image:radial-gradient(120% 100% at 30% 0,#ffffff12,#0000 60%),repeating-linear-gradient(0deg,#ffffff0b 0 1px,#0000 1px 42px),repeating-linear-gradient(90deg,#ffffff0b 0 1px,#0000 1px 42px);place-items:center;min-height:clamp(190px,22vw,280px);transition:background-color .5s;display:grid;position:relative;overflow:hidden}.project:nth-child(3n+2) .project-visual{background-image:radial-gradient(100% 120% at 70% 100%,#ffffff14,#0000 62%),repeating-linear-gradient(90deg,#ffffff0b 0 1px,#0000 1px 42px),repeating-linear-gradient(0deg,#ffffff0b 0 1px,#0000 1px 42px)}.project:nth-child(3n) .project-visual{background-image:radial-gradient(90% 90%,#ffffff13,#0000 65%),repeating-linear-gradient(45deg,#ffffff0a 0 1px,#0000 1px 26px)}.project:hover .project-visual{background-color:#0e0f10}.project-num{font-family:var(--mono);letter-spacing:.16em;color:var(--dim);font-size:9px;position:absolute;top:16px;left:18px}.project-glyph{z-index:1;letter-spacing:-.06em;color:#0000;-webkit-text-stroke:1px #ffffff61;transition:transform .7s var(--ease), -webkit-text-stroke-color .5s, color .5s;font-size:clamp(4.5rem,9vw,8.5rem);font-weight:500;line-height:1;position:relative}.project:hover .project-glyph{-webkit-text-stroke-color:#fffc;color:#ffffff09;transform:scale(1.05)rotate(-2deg)}.project-corner{border:0 solid #ffffff3d;width:14px;height:14px;position:absolute}.project-corner--tl{border-top-width:1px;border-right-width:1px;top:14px;right:16px}.project-corner--br{border-bottom-width:1px;border-left-width:1px;bottom:14px;left:16px}.project-body{flex-direction:column;flex:1;padding:clamp(18px,2.2vw,26px);display:flex}.project-head{justify-content:space-between;align-items:center;gap:14px;display:flex}.project-head h3{letter-spacing:-.03em;font-size:clamp(1.25rem,1.8vw,1.55rem);font-weight:500}.project-arrow{border:1px solid var(--line-soft);width:32px;height:32px;color:var(--muted);transition:background-color .4s, color .4s, border-color .4s, transform .5s var(--ease);border-radius:50%;flex-shrink:0;place-items:center;font-size:13px;display:grid}.project:hover .project-arrow{background:var(--text);border-color:var(--text);color:var(--ink);transform:rotate(45deg)}.project-desc{color:var(--muted);margin-top:10px;font-size:.9rem;line-height:1.65}.project-tags{flex-wrap:wrap;gap:6px;margin-top:18px;display:flex}.project-tags li{border:1px solid var(--line-soft);font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--dim);border-radius:4px;padding:.28rem .55rem;font-size:8px;transition:border-color .35s,color .35s}.project:hover .project-tags li{border-color:var(--line);color:var(--muted)}.project-meta{letter-spacing:.14em;color:var(--dim);justify-content:space-between;gap:12px;margin-top:auto;padding-top:18px;font-size:8px;display:flex}.work-foot{justify-content:space-between;align-items:center;gap:24px;margin-top:clamp(28px,4vw,44px);display:flex}
.cert-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(12px,1.6vw,20px);display:grid}.cert-card{text-align:left;border:1px solid var(--line-soft);background:var(--panel);cursor:pointer;transition:transform .5s var(--ease), border-color .4s, background-color .4s;border-radius:16px;flex-direction:column;padding:0;display:flex;position:relative;overflow:hidden}.cert-card:after{content:"";pointer-events:none;background:radial-gradient(380px circle at var(--mx,50%) var(--my,40%), #ffffff0f, transparent 55%);opacity:0;transition:opacity .4s;position:absolute;inset:0}.cert-card:hover{background:#111213;border-color:#ffffff2e;transform:translateY(-4px)}.cert-card:hover:after{opacity:1}.cert-card:active{transform:scale(.99)}.cert-visual{aspect-ratio:4/3;border-bottom:1px solid var(--line-soft);background-color:#0a0b0c;background-image:radial-gradient(100% 100% at 50% 45%,#ffffff0e,#0000 62%),repeating-linear-gradient(0deg,#ffffff09 0 1px,#0000 1px 28px);flex-direction:column;justify-content:space-between;padding:13px 14px;display:flex;position:relative;overflow:hidden}.cert-visual:before{content:"";border:1px dashed #ffffff21;border-radius:50%;width:130px;height:130px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.cert-visual:after{content:"";border:1px solid #ffffff0d;border-radius:50%;width:170px;height:170px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.cert-top,.cert-bottom{z-index:1;letter-spacing:.16em;color:var(--dim);justify-content:space-between;gap:8px;font-size:7px;display:flex;position:relative}.cert-emblem{z-index:1;width:62px;height:62px;color:var(--text);transition:transform .65s var(--ease), border-color .4s, box-shadow .4s;background:#ffffff05;border:1px solid #ffffff59;border-radius:50%;align-self:center;place-items:center;font-size:18px;display:grid;position:relative;box-shadow:inset 0 0 24px #ffffff0d}.cert-card:hover .cert-emblem{border-color:#ffffffbf;transform:rotate(-8deg)scale(1.06);box-shadow:inset 0 0 30px #ffffff17}.cert-issuer-mark{letter-spacing:-.05em;color:#0000;-webkit-text-stroke:1px #ffffff1f;pointer-events:none;font-size:2.4rem;font-weight:600;line-height:1;position:absolute;bottom:26px;right:10px}.cert-body{flex-direction:column;flex:1;gap:7px;padding:16px 16px 18px;display:flex}.cert-issuer{letter-spacing:.14em;color:var(--dim);font-size:8px}.cert-title{letter-spacing:-.02em;color:var(--text);font-size:.98rem;font-weight:500;line-height:1.35}.cert-foot{letter-spacing:.13em;color:var(--dim);justify-content:space-between;align-items:center;margin-top:auto;padding-top:12px;font-size:8px;transition:color .3s;display:flex}.cert-foot span:last-child{transition:transform .4s var(--ease);display:inline-block}.cert-card:hover .cert-foot{color:var(--text)}.cert-card:hover .cert-foot span:last-child{transform:translate(3px,-3px)}
.section--github{border-block:1px solid var(--line-soft);background:linear-gradient(#ffffff04,#0000 60%)}.gh-panel{border:1px solid var(--line-soft);border-radius:var(--radius);background:linear-gradient(#ffffff07,#ffffff02);grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);display:grid;overflow:hidden}.gh-profile{border-right:1px solid var(--line-soft);grid-template-columns:auto minmax(0,1fr);align-content:start;gap:16px;padding:26px 24px;display:grid}.gh-avatar{border:1px solid var(--line);width:62px;height:62px;font-family:var(--mono);letter-spacing:.03em;color:var(--text);background:#ffffff0b;border-radius:50%;flex-shrink:0;place-items:center;font-size:13px;display:grid;overflow:hidden}.gh-avatar img{object-fit:cover;filter:grayscale()contrast(1.05);width:100%;height:100%}.gh-identity{min-width:0}.gh-name-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.gh-name-row h3{letter-spacing:-.025em;font-size:1.15rem;font-weight:500}.badge{border:1px solid var(--line-soft);letter-spacing:.12em;color:var(--dim);border-radius:999px;padding:3px 7px;font-size:7px}.gh-bio{color:var(--muted);margin-top:6px;font-size:.82rem;line-height:1.55}.gh-handle{letter-spacing:.12em;color:var(--dim);align-items:center;gap:5px;margin-top:8px;font-size:8px;transition:color .3s;display:inline-flex}.gh-handle span{transition:transform .35s var(--ease)}.gh-handle:hover{color:var(--text)}.gh-handle:hover span{transform:translate(2px,-2px)}.gh-stats{border-top:1px solid var(--line-soft);grid-column:1/-1;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:6px;padding-top:18px;display:grid}.gh-stat-value{letter-spacing:-.03em;font-size:1.2rem;font-weight:500;line-height:1.1;display:block}.gh-stat-label{letter-spacing:.12em;color:var(--dim);margin-top:5px;font-size:7px;display:block}.gh-activity{min-width:0;padding:24px}.activity-head{letter-spacing:.15em;color:var(--dim);justify-content:space-between;align-items:center;gap:12px;font-size:8px;display:flex}.activity-total{color:var(--muted);letter-spacing:.08em}.heatmap-wrap{scrollbar-width:thin;scrollbar-color:var(--line) transparent;margin-block:16px 10px;padding-bottom:4px;overflow-x:auto}.heatmap-wrap::-webkit-scrollbar{height:4px}.heatmap-wrap::-webkit-scrollbar-thumb{background:var(--line);border-radius:999px}.heatmap{grid-template-rows:repeat(7,8px);grid-auto-columns:8px;grid-auto-flow:column;gap:3px;width:max-content;display:grid}.heatmap .cell{background:#ffffff0d;border-radius:2px;width:8px;height:8px;transition:outline-color .2s}.heatmap .cell:hover{outline-offset:1px;outline:1px solid #ffffffa6}.heatmap .lvl-1{background:#ffffff29}.heatmap .lvl-2{background:#ffffff52}.heatmap .lvl-3{background:#ffffff8f}.heatmap .lvl-4{background:#ffffffe6}.heatmap .cell--future{background:0 0}.heatmap-legend{letter-spacing:.1em;color:var(--dim);justify-content:flex-end;align-items:center;gap:4px;font-size:7px;display:flex}.heatmap-legend i{background:#ffffff0d;border-radius:2px;width:8px;height:8px;display:block}.heatmap-legend .lvl-1{background:#ffffff29}.heatmap-legend .lvl-2{background:#ffffff52}.heatmap-legend .lvl-3{background:#ffffff8f}.heatmap-legend .lvl-4{background:#ffffffe6}.heatmap-legend span:first-child{margin-right:3px}.heatmap-legend span:last-child{margin-left:3px}.repo-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:14px;display:grid}.repo{border:1px solid var(--line-soft);border-radius:var(--radius-sm);transition:transform .4s var(--ease), border-color .35s, background-color .35s;background:#ffffff04;position:relative;overflow:hidden}.repo:after{content:"";pointer-events:none;opacity:0;background:radial-gradient(300px circle at var(--mx,50%) var(--my,40%), #ffffff12, transparent 60%);transition:opacity .4s;position:absolute;inset:0}.repo:hover{background:#ffffff07;border-color:#ffffff2b;transform:translateY(-3px)}.repo:hover:after{opacity:1}.repo-link{flex-direction:column;height:100%;padding:17px;display:flex}.repo-head{align-items:center;gap:8px;display:flex}.repo-icon{fill:currentColor;opacity:.45;flex-shrink:0;width:13px;height:13px}.repo-head h3{font-family:var(--mono);letter-spacing:.01em;white-space:nowrap;text-overflow:ellipsis;font-size:11px;font-weight:500;overflow:hidden}.repo-arrow{color:var(--dim);transition:transform .4s var(--ease), color .3s;margin-left:auto;font-size:12px}.repo:hover .repo-arrow{color:var(--text);transform:translate(2px,-2px)}.repo-desc{color:var(--muted);margin-top:8px;font-size:.76rem;line-height:1.55}.repo-topics{flex-wrap:wrap;gap:4px;margin-top:12px;display:flex}.repo-topics span{border:1px solid var(--line-soft);letter-spacing:.08em;color:var(--dim);border-radius:3px;padding:2px 5px;font-size:7px}.repo-meta{letter-spacing:.06em;color:var(--dim);flex-wrap:wrap;align-items:center;gap:10px;margin-top:auto;padding-top:14px;font-size:8px;display:flex}.repo-lang,.repo-stat{align-items:center;gap:4px;display:inline-flex}.lang-dot{background:var(--text);border-radius:50%;width:6px;height:6px;display:block}.repo-stat svg{fill:currentColor;opacity:.6;width:10px;height:10px}.repo-updated{white-space:nowrap;margin-left:auto}.repo--skeleton{min-height:152px;padding:18px}.skeleton-line{background:#ffffff0d;border-radius:4px;height:9px;margin-bottom:12px;display:block;position:relative;overflow:hidden}.skeleton-line:after{content:"";background:linear-gradient(90deg,#0000,#ffffff14,#0000);animation:1.6s infinite shimmer;position:absolute;inset:0;transform:translate(-100%)}.skeleton-line--short{width:42%}.skeleton-line--mid{width:78%}.skeleton-line--tiny{width:55%;margin-top:20px}@keyframes shimmer{to{transform:translate(100%)}}
.section--contact{border-top:1px solid var(--line-soft);padding-block:clamp(100px,14vw,180px);position:relative;overflow:hidden}.section--contact:before{content:"";pointer-events:none;background:radial-gradient(circle,#ffffff0d,#0000 62%);border-radius:50%;width:min(90vw,1000px);height:min(90vw,1000px);position:absolute;top:-30%;left:50%;transform:translate(-50%)}.contact-inner{z-index:1;text-align:center;position:relative}.contact-inner .section-index{justify-content:center}.contact-title{letter-spacing:-.055em;margin-top:22px;font-size:clamp(2.8rem,7vw,6.2rem);font-weight:500;line-height:.94}.contact-lede{max-width:55ch;color:var(--muted);margin:26px auto 0;font-size:clamp(.95rem,1.2vw,1.08rem);line-height:1.65}.contact-actions{flex-wrap:wrap;justify-content:center;align-items:center;gap:16px;margin-top:38px;display:flex}.contact-email{border-bottom:1px solid var(--line);letter-spacing:-.03em;align-items:center;gap:12px;padding-bottom:7px;font-size:clamp(1.15rem,2.4vw,1.9rem);font-weight:500;transition:color .3s,border-color .3s;display:inline-flex}.email-arrow{color:var(--muted);transition:transform .45s var(--ease), color .3s;font-size:.75em}.contact-email:hover{border-color:var(--text)}.contact-email:hover .email-arrow{color:var(--text);transform:translate(5px,-5px)}.socials{flex-wrap:wrap;justify-content:center;gap:7px;margin-top:40px;display:flex}.socials a{border:1px solid var(--line-soft);font-family:var(--mono);letter-spacing:.13em;text-transform:uppercase;color:var(--muted);transition:color .3s, background-color .35s, border-color .35s, transform .35s var(--ease);border-radius:999px;align-items:center;gap:9px;padding:.6rem .85rem;font-size:8px;display:inline-flex}.socials a:hover{color:var(--ink);background:var(--text);border-color:var(--text);transform:translateY(-2px)}.social-short{opacity:.7;border:1px solid;border-radius:50%;place-items:center;width:19px;height:19px;font-size:7px;display:grid}.social-arrow{transition:transform .35s var(--ease)}.socials a:hover .social-arrow{transform:translate(2px,-2px)}
.site-footer{border-top:1px solid var(--line-soft);background:#060707;padding-block:26px}.footer-inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px 28px;display:flex}.footer-brand{color:var(--muted);align-items:center;gap:12px;font-size:11px;display:flex}.footer-brand .brand-mark{width:28px;height:28px;font-size:8px}.footer-meta{letter-spacing:.12em;color:var(--dim);font-size:8px}.footer-top{font-family:var(--mono);letter-spacing:.13em;text-transform:uppercase;color:var(--dim);align-items:center;gap:8px;font-size:8px;transition:color .3s;display:inline-flex}.footer-top span{transition:transform .4s var(--ease);display:inline-block}.footer-top:hover{color:var(--text)}.footer-top:hover span{transform:translateY(-3px)}
.cert-dialog{width:min(92vw,560px);max-height:88svh;color:var(--text);background:#0c0d0e;border:1px solid #ffffff24;border-radius:20px;padding:0;overflow:auto;box-shadow:0 50px 140px #000000a6}.cert-dialog::backdrop{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#030404bd}.cert-dialog[open]{animation:dialog-in .45s var(--ease)}@keyframes dialog-in{0%{opacity:0;transform:translateY(16px)scale(.98)}to{opacity:1;transform:none}}.dialog-inner{padding:clamp(24px,4vw,38px);position:relative}.dialog-close{border:1px solid var(--line-soft);width:36px;height:36px;color:var(--muted);cursor:pointer;transition:color .3s, background-color .3s, border-color .3s, transform .35s var(--ease);background:0 0;border-radius:50%;place-items:center;font-size:19px;line-height:1;display:grid;position:absolute;top:14px;right:14px}.dialog-close:hover{color:var(--ink);background:var(--text);border-color:var(--text);transform:rotate(90deg)}.dialog-title{letter-spacing:-.035em;margin-top:18px;padding-right:28px;font-size:clamp(1.5rem,3vw,2rem);font-weight:500;line-height:1.15}.dialog-issuer{letter-spacing:.15em;color:var(--muted);margin-top:8px;font-size:9px}.dialog-desc{color:var(--muted);margin-top:18px;font-size:.9rem;line-height:1.65}.dialog-meta{border-top:1px solid var(--line-soft);gap:11px;margin-top:24px;padding-top:20px;display:grid}.dialog-meta>div{justify-content:space-between;gap:24px;display:flex}.dialog-meta dt{letter-spacing:.13em;color:var(--dim);flex-shrink:0;padding-top:2px;font-size:8px}.dialog-meta dd{text-align:right;color:var(--text);overflow-wrap:anywhere;font-size:.82rem}.dialog-actions{margin-top:26px}.dialog-actions .btn{width:100%}
.toast{z-index:10002;background:var(--text);max-width:calc(100vw - 40px);color:var(--ink);font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;text-align:center;opacity:0;pointer-events:none;transition:opacity .35s, transform .45s var(--ease);border-radius:999px;padding:11px 18px;font-size:9px;position:fixed;bottom:26px;left:50%;transform:translate(-50%,14px)}.toast.is-visible{opacity:1;transform:translate(-50%)}.noscript{z-index:10003;border:1px solid var(--line);background:var(--panel);width:min(90vw,520px);color:var(--muted);text-align:center;border-radius:12px;padding:14px 18px;font-size:12px;position:fixed;bottom:20px;left:50%;transform:translate(-50%)}
.reveal{opacity:0;transition:opacity .9s var(--ease), transform .9s var(--ease);transition-delay:var(--delay,0s);transform:translateY(22px)}.reveal.is-visible{opacity:1;transform:none}
@media (max-width:1100px){.hero-name{font-size:clamp(3.2rem,9vw,8rem)}.cert-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:1020px){.gh-panel{grid-template-columns:1fr}.gh-profile{border-right:0;border-bottom:1px solid var(--line-soft)}.repo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:900px){:root{--nav-h:66px}.nav-toggle{display:flex}.nav-cta{display:none}.nav-links{z-index:1;-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);opacity:0;visibility:hidden;transition:opacity .4s, transform .55s var(--ease), visibility .4s;background:#070808fa;flex-direction:column;justify-content:center;gap:4px;padding:90px 24px;position:fixed;inset:0;transform:translateY(-6%)}.nav-links.is-open{opacity:1;visibility:visible;transform:none}.nav-links a{letter-spacing:-.035em;color:var(--muted);padding:12px 14px;font-size:clamp(1.6rem,7vw,2.4rem);font-weight:500}.nav-links a:after{display:none}.nav-links a:hover,.nav-links a.is-active{color:var(--text)}.hero{min-height:100svh;padding-top:calc(var(--nav-h) + 24px)}.hero-grid{padding-block:12px 6px}.hero-copy{max-width:640px}.hero-name{letter-spacing:-.05em;font-size:clamp(3.2rem,12.5vw,7rem)}.hero-lede{max-width:52ch}.portrait-zone{width:min(80vh,106vw,620px)}.hero-foot{margin-top:12px}.section-head--split{flex-direction:column;align-items:flex-start;gap:24px}.section-aside{max-width:520px}.filters{order:2}.about-grid{grid-template-columns:1fr;gap:42px}.about-side{max-width:560px}}@media (max-width:760px){.project-grid{grid-template-columns:1fr}.project-visual{min-height:220px}.repo-grid{grid-template-columns:1fr}.work-foot{flex-direction:column;align-items:flex-start;gap:18px}.footer-inner{text-align:center;justify-content:center}}@media (max-width:620px){.cert-grid{grid-template-columns:1fr}.cert-visual{aspect-ratio:16/10}.cert-visual:before{width:110px;height:110px}.cert-visual:after{width:145px;height:145px}.hero-name{font-size:clamp(2.9rem,15vw,5rem)}.hero-role{gap:9px}.hero-role-line{display:none}.hero-actions .btn{flex:auto}.hero-socials{gap:4px 12px}.hero-socials li+li:before{margin-right:12px}.portrait-zone{width:min(74vh,94vw,470px)}.scroll-cue span:last-child{display:none}.contact-actions{flex-direction:column}.contact-email{font-size:clamp(1.05rem,5vw,1.4rem)}.stat-number{font-size:2rem}.gh-profile,.gh-activity{padding:20px}.gh-avatar{width:52px;height:52px}.hero-foot{justify-content:space-between}}@media (max-width:420px){.brand-name{display:none}.gh-stats{gap:8px}.stat:nth-child(2n){padding-left:16px}.stat:nth-child(odd){padding-right:12px}.footer-brand{justify-content:center}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;transition-delay:0s!important;animation-duration:.01ms!important;animation-iteration-count:1!important;animation-delay:0s!important}.reveal{opacity:1;transform:none}.hero-name .char{opacity:1;filter:none;transform:none}.hero.is-formed .replay{opacity:1;transform:none}.cursor{display:none}.hero-orb{animation:none}}

