:root{--bg: #f5f3ef;--bg-card: #eceae5;--bg-dark: #111110;--text: #111110;--text-muted:#6b6560;--accent: #3a3835;--white: #f5f3ef;--panel-bg: #111110;--panel-text:#f2f0eb;--tag-bg: #e4e1da;--tag-text: #3a3835;--tag-border:rgba(0,0,0,.12);--nav-glass: rgba(245,243,239,.88);--nav-border:rgba(0,0,0,.08);--mobile-nav-bg: rgba(245,243,239,.98);--orbit-border: rgba(0,0,0,.12);--orbit-dot: #111110;--deco-num: rgba(0,0,0,.04);--hero-after: linear-gradient(135deg,#dedad3,#eceae5);--focus-ring: 0 0 0 3px rgba(17,17,16,.3);--stat-sep: rgba(0,0,0,.15);--cursor-dot: #111110;--cursor-ring: rgba(17,17,16,.4);--cursor-dot-hover: #3a3835;--cursor-ring-hover: #3a3835;--exp-card-bg: #f5f3ef;--exp-left-1: #1c1a18;--exp-left-2: #2a2825;--project-card-bg: #f5f3ef;--project-card-alt: #eceae5;--project-visual-bg: linear-gradient(135deg,#dedad3,#eceae5);--project-frame-bg: rgba(255,255,255,.3);--project-frame-border: rgba(0,0,0,.1);--progress-bar: #111110;--snowflake-stroke: #888;--serif: "Playfair Display", Georgia, serif;--serif2: "EB Garamond", Georgia, serif;--sans: "Jost", sans-serif;--nav-h: 65px}@media (prefers-color-scheme: dark){:root{--bg: #141412;--bg-card: #1c1a18;--bg-dark: #0d0d0c;--text: #f2f0eb;--text-muted:#9b9690;--accent: #d4cfc8;--white: #f2f0eb;--panel-bg: #1c1a18;--panel-text:#f2f0eb;--tag-bg: #252320;--tag-text: #c8c3bc;--tag-border:rgba(255,255,255,.08);--nav-glass: rgba(20,20,18,.88);--nav-border:rgba(255,255,255,.07);--mobile-nav-bg: rgba(20,20,18,.98);--orbit-border: rgba(255,255,255,.1);--orbit-dot: #f2f0eb;--deco-num: rgba(255,255,255,.03);--hero-after: linear-gradient(135deg,#1c1a18,#252320);--focus-ring: 0 0 0 3px rgba(242,240,235,.25);--stat-sep: rgba(255,255,255,.12);--cursor-dot: #f2f0eb;--cursor-ring: rgba(242,240,235,.35);--cursor-dot-hover: #d4cfc8;--cursor-ring-hover: #d4cfc8;--exp-card-bg: #1c1a18;--exp-left-1: #252320;--exp-left-2: #1c1a18;--project-card-bg: #1a1815;--project-card-alt: #1f1d1a;--project-visual-bg: linear-gradient(135deg,#1c1a18,#252320);--project-frame-bg: rgba(255,255,255,.04);--project-frame-border: rgba(255,255,255,.08);--progress-bar: #f2f0eb;--snowflake-stroke: #555}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--text);font-family:var(--sans);font-weight:300;overflow-x:hidden;transition:background .3s ease,color .3s ease}img{display:block;max-width:100%}a{color:inherit}.skip-link{position:fixed;top:-100%;left:50%;transform:translate(-50%);background:var(--text);color:var(--bg);padding:10px 24px;font-size:.82rem;letter-spacing:.08em;text-transform:uppercase;text-decoration:none;z-index:10000;border-radius:0 0 6px 6px;transition:top .2s}.skip-link:focus{top:0;outline:none}:focus-visible{outline:none;box-shadow:var(--focus-ring);border-radius:2px}.nav-links a:focus-visible,.mobile-nav a:focus-visible,.btn:focus-visible,.project-btn:focus-visible,.contact-submit:focus-visible,.tag:focus-visible,.chip:focus-visible,.social-pill:focus-visible,.hamburger:focus-visible{outline:none;box-shadow:var(--focus-ring);border-radius:2px}.site-nav{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:20px 56px;height:var(--nav-h);background:var(--nav-glass);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom:1px solid var(--nav-border)}.site-nav.nav-visible{opacity:1;transform:translateY(0);pointer-events:auto}.nav-logo{font-family:var(--serif);font-size:1.1rem;letter-spacing:.02em;text-decoration:none}.nav-links{display:flex;gap:36px;list-style:none}.nav-links a{font-size:.78rem;text-transform:uppercase;letter-spacing:.12em;color:var(--text-muted);text-decoration:none;transition:color .2s;position:relative;padding:2px 0}.nav-links a:after{content:"";position:absolute;left:0;bottom:-3px;height:1px;width:0;background:var(--text);transition:width .3s ease}.nav-links a:hover,.nav-links a:focus-visible{color:var(--text)}.nav-links a:hover:after,.nav-links a:focus-visible:after{width:100%}.hamburger{display:none;background:none;border:none;cursor:pointer;padding:8px;flex-direction:column;gap:5px}.hamburger span{display:block;width:22px;height:1.5px;background:var(--text);transition:transform .3s,opacity .3s}.hamburger[aria-expanded=true] span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}.hamburger[aria-expanded=true] span:nth-child(2){opacity:0}.hamburger[aria-expanded=true] span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}.mobile-nav{display:none;position:fixed;top:var(--nav-h);left:0;right:0;background:var(--mobile-nav-bg);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);padding:24px 24px 32px;z-index:99;border-bottom:1px solid var(--nav-border);flex-direction:column;gap:20px}.mobile-nav.open{display:flex}.mobile-nav a{font-size:1rem;text-transform:uppercase;letter-spacing:.12em;color:var(--text-muted);text-decoration:none;padding:4px 0;transition:color .2s}.mobile-nav a:hover,.mobile-nav a:focus-visible{color:var(--text)}.hero{min-height:100vh;display:grid;grid-template-columns:1fr 1fr;align-items:center;padding:calc(var(--nav-h) + 8px) 56px 80px;position:relative;overflow:hidden}.hero-text{position:relative;z-index:2}.hero-eyebrow,.section-eyebrow{font-size:.78rem;text-transform:uppercase;letter-spacing:.16em;color:var(--text-muted);margin-bottom:18px}.hero-name{font-family:var(--serif);font-size:clamp(3rem,6vw,5.5rem);line-height:1.05;margin-bottom:28px}.hero-name em{font-style:italic;display:block}.hero-divider,.section-rule{height:1px;background:var(--text);margin-bottom:28px;width:80px;transform-origin:left center}.hero-subtitle{font-size:.92rem;color:var(--text-muted);line-height:1.8;max-width:430px;margin-bottom:28px}.hero-links{display:flex;gap:16px;flex-wrap:wrap}.hero-badge{display:inline-flex;align-items:center;gap:8px;background:var(--text);color:var(--bg);padding:8px 16px;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;margin-bottom:28px;transform:translate(0)}.hero-badge-dot{width:6px;height:6px;border-radius:50%;background:#3dbf82;animation:pulse 2s ease-in-out infinite}.hero-stats{display:flex;gap:20px;margin-bottom:28px;align-items:stretch}.hero-stat-group{display:flex;gap:20px;align-items:stretch}.hero-stat{display:flex;flex-direction:column;gap:2px}.hero-stat-num{font-family:var(--serif);font-size:1.45rem;font-weight:700;line-height:1}.hero-stat-label{font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted)}.hero-stat-sep{width:1px;background:var(--stat-sep);align-self:stretch}.site-url{font-family:var(--serif2);font-style:italic;color:var(--text-muted);font-size:.88rem;margin-bottom:32px}.site-url a{text-decoration:none}.btn{display:inline-block;padding:12px 28px;font-size:.76rem;text-transform:uppercase;letter-spacing:.12em;text-decoration:none;border:1px solid var(--text);color:var(--text);transition:background .25s,color .25s;font-family:var(--sans)}.btn:hover{background:var(--text);color:var(--bg)}.hero-visual{position:relative;display:flex;align-items:center;justify-content:center;min-height:540px}.hero-photo-ring{width:340px;height:340px;border-radius:50%;background:var(--bg-card);overflow:hidden;position:relative;z-index:2;box-shadow:0 20px 60px #00000038;animation:float 5s ease-in-out infinite}.hero-photo-ring img{width:100%;height:100%;object-fit:cover}.hero-orbit{position:absolute;border-radius:50%;border:1px dashed var(--orbit-border);pointer-events:none;z-index:1}.hero-orbit-1{width:420px;height:420px;animation:spinOrbit 18s linear infinite}.hero-orbit-2{width:510px;height:510px;animation:spinOrbit 30s linear infinite reverse}.hero-orbit-dot{position:absolute;width:8px;height:8px;border-radius:50%;background:var(--orbit-dot);top:-4px;left:50%;transform:translate(-50%)}.snowflake-svg{position:absolute;right:-20px;top:-40px;width:180px;opacity:.22;animation:spinSlow 30s linear infinite;pointer-events:none}.snowflake-svg line{stroke:var(--snowflake-stroke)}.hero-deco-num{position:absolute;right:52%;top:50%;transform:translateY(-50%);font-family:var(--serif);font-size:14rem;font-weight:700;line-height:1;color:var(--deco-num);-webkit-user-select:none;user-select:none;pointer-events:none;z-index:0}.hero-scroll-hint{position:absolute;bottom:32px;left:56px;display:flex;align-items:center;gap:10px;font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--text-muted)}.hero-scroll-line{width:40px;height:1px;background:var(--text-muted)}.hero-particles{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;overflow:hidden}.h-particle{position:absolute;border-radius:50%;background:var(--text-muted);opacity:.28;animation:particleDrift var(--d,8s) ease-in-out var(--dl,0s) infinite alternate;will-change:transform}.hero:after{content:"";position:absolute;right:-160px;bottom:-160px;width:500px;height:500px;border-radius:50%;background:var(--hero-after);z-index:0;opacity:.35;pointer-events:none}.section-block{padding:100px 56px}.section-header{margin-bottom:60px}.section-title{font-family:var(--serif);font-size:clamp(2rem,4vw,3.2rem);line-height:1.1}.section-title em{font-style:italic}.section-rule{width:60px;margin-top:18px;margin-bottom:0}.skills-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:start}.skills-card{background:var(--panel-bg);color:var(--panel-text);padding:36px;border-radius:2px}.skill-row{display:grid;grid-template-columns:1fr auto;gap:22px;padding:18px 0;border-bottom:1px solid rgba(255,255,255,.09)}.skill-row:last-child{border-bottom:none}.skill-name{font-size:.9rem;letter-spacing:.06em;margin-bottom:7px}.skill-desc-small{color:#f2f0eb94;line-height:1.7;font-size:.88rem}.skill-level{align-self:start;color:#f2f0eba6;border:1px solid rgba(255,255,255,.14);padding:6px 12px;font-size:.68rem;text-transform:uppercase;letter-spacing:.1em;white-space:nowrap}.skills-desc{font-family:var(--serif2);font-size:1.08rem;line-height:1.85;color:var(--text-muted)}.skills-tags{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}.tag,.chip{padding:7px 16px;background:var(--tag-bg);font-size:.74rem;text-transform:uppercase;letter-spacing:.1em;color:var(--tag-text);border:1px solid var(--tag-border);transition:background .2s,color .2s,transform .2s;cursor:default}.tag:hover,.chip:hover{background:var(--panel-bg);color:var(--panel-text);transform:translateY(-2px)}.experience-section{background:var(--bg-card)}.experience-grid{display:grid;gap:24px}.experience-card{display:grid;grid-template-columns:380px 1fr;min-height:360px;background:var(--exp-card-bg);border:1px solid rgba(128,128,128,.12);box-shadow:0 16px 50px #0000001f}.experience-left{background:var(--exp-left-1);color:var(--panel-text);padding:42px;display:flex;flex-direction:column;justify-content:flex-end;position:relative;overflow:hidden}.experience-card:nth-child(2n) .experience-left{background:var(--exp-left-2)}.experience-ghost{position:absolute;top:20px;right:28px;font-family:var(--serif);font-size:7rem;font-weight:700;color:#ffffff0d;line-height:1}.experience-icon{width:52px;height:52px;border-radius:50%;background:#ffffff1a;display:flex;align-items:center;justify-content:center;margin-bottom:22px}.experience-type{font-size:.68rem;text-transform:uppercase;letter-spacing:.18em;color:#fff6;margin-bottom:10px}.experience-title{font-family:var(--serif);font-size:clamp(1.3rem,2vw,1.8rem);line-height:1.2;margin-bottom:16px}.experience-period{display:inline-block;padding:6px 16px;background:#ffffff14;border:1px solid rgba(255,255,255,.14);font-size:.72rem;letter-spacing:.1em;color:#ffffff9e;width:fit-content}.experience-right{padding:52px;display:flex;flex-direction:column;justify-content:center}.experience-role{font-size:.74rem;text-transform:uppercase;letter-spacing:.14em;color:var(--text-muted);margin-bottom:20px}.experience-desc{font-family:var(--serif2);font-size:1.06rem;line-height:1.85;color:var(--text-muted);margin-bottom:28px}.chip-list{display:flex;flex-wrap:wrap;gap:8px;list-style:none}.chip{background:var(--tag-bg)}.projects-section{padding:100px 0 0}.projects-header{padding:0 56px;margin-bottom:80px}.project-card{position:sticky;top:80px;display:grid;grid-template-columns:1fr 1.4fr;min-height:88vh;background:var(--project-card-bg);border-top:1px solid rgba(128,128,128,.1);border-radius:16px 16px 0 0;overflow:hidden;box-shadow:0 -8px 48px #0000002e}.project-card:nth-child(2n){background:var(--project-card-alt)}.project-left{position:relative;overflow:hidden;min-height:100%;background:var(--bg-card)}.project-num{position:absolute;top:28px;left:32px;font-family:var(--serif);font-size:clamp(1.4rem,2.5vw,2rem);font-weight:700;z-index:3;opacity:.4}.project-visual{width:100%;height:100%;min-height:420px;position:relative;display:flex;align-items:center;justify-content:center;background:var(--project-visual-bg)}.project-visual-bg{width:min(72%,420px);aspect-ratio:1.2;border:1px solid rgba(128,128,128,.15);background:var(--project-frame-bg);display:flex;align-items:center;justify-content:center;box-shadow:0 20px 60px #00000026;transition:transform .6s cubic-bezier(.23,1,.32,1)}.project-visual-bg span{font-family:var(--serif);font-size:clamp(1.6rem,4vw,3rem);color:var(--text-muted)}.project-preview-frame{width:min(84%,620px);margin:0;position:relative;border:1px solid var(--project-frame-border);background:var(--project-frame-bg);padding:14px;box-shadow:0 24px 70px #00000038;transform:rotate(-1.4deg);transition:transform .6s cubic-bezier(.23,1,.32,1),box-shadow .35s ease}.project-card.reverse .project-preview-frame{transform:rotate(1.4deg)}.project-preview-frame img{display:block;width:100%;aspect-ratio:1200 / 630;object-fit:cover;background:#80808014;filter:saturate(.92) contrast(.98)}.project-preview-frame figcaption{margin-top:12px;font-size:.68rem;text-transform:uppercase;letter-spacing:.14em;color:var(--text-muted);text-align:center}.project-card:hover .project-visual-bg,.project-card:hover .project-preview-frame{transform:scale(1.04) rotate(0);box-shadow:0 28px 82px #00000042}.project-right{padding:52px;display:flex;flex-direction:column;justify-content:center}.project-card.reverse .project-left{order:2}.project-card.reverse .project-right{order:1}.project-tag{display:inline-block;background:var(--panel-bg);color:var(--panel-text);padding:7px 18px;font-size:.74rem;letter-spacing:.08em;margin-bottom:20px;width:fit-content}.project-title{font-family:var(--serif);font-size:clamp(1.5rem,2.7vw,2.15rem);font-weight:700;margin-bottom:16px;line-height:1.15}.project-desc{font-family:var(--serif2);font-size:1.03rem;line-height:1.8;color:var(--text-muted);margin-bottom:16px}.project-stack-text{font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);margin-bottom:28px;line-height:1.8}.project-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:4px}.project-btn{display:inline-flex;align-items:center;gap:7px;padding:9px 20px;font-size:.74rem;text-transform:uppercase;letter-spacing:.1em;text-decoration:none;border:1px solid;transition:all .22s;font-family:var(--sans)}.project-btn-gh{border-color:var(--text);color:var(--text);background:transparent}.project-btn-gh:hover{background:var(--text);color:var(--bg)}.project-btn-live{border-color:var(--panel-bg);color:var(--panel-text);background:var(--panel-bg)}.project-btn-live:hover{opacity:.82}.contact-section{background:var(--panel-bg);color:var(--panel-text);display:grid;grid-template-columns:.9fr 1fr;gap:60px;align-items:center;padding:100px 56px}.contact-section .section-title{color:var(--panel-text)}.contact-section .section-rule{background:var(--panel-text)}.contact-section .section-eyebrow{color:#f2f0eb73}.contact-intro{font-family:var(--serif2);font-size:1.1rem;line-height:1.8;color:#f2f0ebb8;margin-top:28px;max-width:460px}.contact-info{margin-top:30px;display:grid;gap:12px;color:#f2f0ebbf}.contact-info p{display:flex;gap:10px;align-items:center}.social-profiles{display:flex;gap:10px;flex-wrap:wrap;margin-top:24px}.social-pill{display:inline-flex;align-items:center;gap:7px;padding:7px 16px;font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;color:#f2f0eb99;text-decoration:none;border:1px solid rgba(242,240,235,.18);transition:all .2s}.social-pill:hover{color:var(--panel-text);border-color:#f2f0eb8c;background:#f2f0eb12}.contact-submit{display:inline-flex;justify-content:center;align-items:center;gap:8px;border:none;background:var(--panel-text);color:var(--panel-bg);padding:13px 24px;font-size:.76rem;text-transform:uppercase;letter-spacing:.12em;font-family:var(--sans);cursor:pointer;transition:opacity .2s}.contact-submit:hover{opacity:.88}.contact-submit:disabled{opacity:.5;cursor:not-allowed}.site-footer{padding:32px 56px;background:var(--bg-dark);color:#f2f0eb4d;font-size:.74rem;text-transform:uppercase;letter-spacing:.1em;display:flex;justify-content:space-between}#loader{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10000;background:#141412;display:flex;flex-direction:column;align-items:center;justify-content:center;transition:opacity .7s ease,visibility .7s ease}#loader.hide{opacity:0;visibility:hidden;pointer-events:none}.loader-time-label{font-family:var(--sans);font-size:.68rem;letter-spacing:.22em;text-transform:uppercase;color:#ffffff4d;margin-bottom:28px;opacity:0;animation:lFadeUp .6s ease .3s forwards}.loader-greeting-wrap{position:relative;height:110px;min-width:480px;width:90vw;max-width:560px;overflow:visible;display:flex;align-items:center;justify-content:center}.loader-word{position:absolute;left:50%;transform:translate(-50%) translateY(60px);font-family:var(--serif);font-style:italic;font-size:clamp(2.8rem,7vw,5rem);color:#f2f0eb;white-space:nowrap;opacity:0;transition:transform .55s cubic-bezier(.23,1,.32,1),opacity .45s ease;will-change:transform,opacity;line-height:1}.loader-word.active{opacity:1;transform:translate(-50%) translateY(0)}.loader-word.exit{opacity:0;transform:translate(-50%) translateY(-60px)}.loader-lang-label{font-family:var(--sans);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:#ffffff40;margin-top:18px;min-height:20px;opacity:0;animation:lFadeUp .5s ease .8s forwards}.loader-bar-wrap{margin-top:48px;width:180px;height:1px;background:#ffffff1a;position:relative;overflow:hidden;opacity:0;animation:lFadeUp .5s ease .6s forwards}.loader-bar-fill{position:absolute;left:0;top:0;height:100%;background:#ffffff8c;width:0%;transition:width .12s linear}.loader-dot-row{display:flex;gap:6px;margin-top:22px;opacity:0;animation:lFadeUp .5s ease .9s forwards}.loader-dot{width:5px;height:5px;border-radius:50%;background:#ffffff2e;transition:background .3s ease,transform .3s ease}.loader-dot.active{background:#ffffffb8;transform:scale(1.4)}#site-wrap{opacity:0;transition:opacity .6s ease}#site-wrap.show{opacity:1}#progress-bar{position:fixed;top:0;left:0;height:2px;width:0%;background:var(--progress-bar);z-index:200;pointer-events:none;transition:width .1s linear}.hero-eyebrow,.hero-name,.hero-subtitle,.hero-badge,.hero-stats,.site-url,.hero-links,.hero-visual,.hero-scroll-hint,.hero-deco-num{opacity:0}#site-wrap.show .hero-eyebrow{animation:slideUp .7s ease .2s forwards}#site-wrap.show .hero-name{animation:slideUp .8s ease .45s forwards}#site-wrap.show .hero-subtitle{animation:slideUp .65s ease .85s forwards}#site-wrap.show .hero-badge{animation:badgeIn .6s ease 1.05s forwards}#site-wrap.show .hero-stats{animation:slideUp .6s ease 1.2s forwards}#site-wrap.show .site-url{animation:fadeIn .6s ease 1.32s forwards}#site-wrap.show .hero-links{animation:slideUp .6s ease 1.45s forwards}#site-wrap.show .hero-visual{animation:slideLeft .9s ease .6s forwards}#site-wrap.show .hero-scroll-hint{animation:fadeIn .8s ease 2.1s forwards}#site-wrap.show .hero-deco-num{animation:fadeIn 1.2s ease 1s forwards}.hero-divider{transform:scaleX(0);opacity:0}#site-wrap.show .hero-divider{animation:growLineScale .6s ease .9s forwards}.hero-scroll-line{transform-origin:left;animation:growX .8s ease 2.35s both}.reveal,.reveal-left,.reveal-right{opacity:0;transition:opacity .75s ease,transform .75s ease}.reveal{transform:translateY(48px)}.reveal-left{transform:translate(-60px)}.reveal-right{transform:translate(60px)}.reveal.in,.reveal-left.in,.reveal-right.in{opacity:1;transform:none}.stagger>*{opacity:0;transform:translateY(32px);transition:opacity .6s ease,transform .6s ease}.stagger.in>*:nth-child(1){opacity:1;transform:none;transition-delay:0s}.stagger.in>*:nth-child(2){opacity:1;transform:none;transition-delay:.1s}.stagger.in>*:nth-child(3){opacity:1;transform:none;transition-delay:.2s}.stagger.in>*:nth-child(4){opacity:1;transform:none;transition-delay:.3s}.stagger.in>*:nth-child(n+5){opacity:1;transform:none;transition-delay:.4s}.section-rule{transform:scaleX(0);opacity:0;transition:transform .8s ease .3s,opacity .4s ease .3s}.section-rule.in{transform:scaleX(1);opacity:1}.btn,.project-btn,.contact-submit{position:relative;overflow:hidden}.ripple{position:absolute;border-radius:50%;background:#ffffff38;transform:scale(0);animation:rippleAnim .5s linear;pointer-events:none}#cursor-dot,#cursor-ring{position:fixed;left:0;top:0;pointer-events:none;will-change:transform;opacity:0;transition:opacity .3s ease,width .3s,height .3s,background .3s,border-color .3s}#cursor-dot{width:8px;height:8px;border-radius:50%;background:var(--cursor-dot);z-index:9999}#cursor-ring{width:36px;height:36px;border-radius:50%;border:1px solid var(--cursor-ring);z-index:9998}body.cursor-active #cursor-dot,body.cursor-active #cursor-ring{opacity:1}body.cursor-active:has(a:hover) #cursor-dot,body.cursor-active:has(button:hover) #cursor-dot,body.cursor-active:has(.btn:hover) #cursor-dot,body.cursor-active:has(.chip:hover) #cursor-dot,body.cursor-active:has(.tag:hover) #cursor-dot{width:14px;height:14px;background:var(--cursor-dot-hover)}body.cursor-active:has(a:hover) #cursor-ring,body.cursor-active:has(button:hover) #cursor-ring,body.cursor-active:has(.btn:hover) #cursor-ring,body.cursor-active:has(.chip:hover) #cursor-ring,body.cursor-active:has(.tag:hover) #cursor-ring{width:54px;height:54px;border-color:var(--cursor-ring-hover)}@media (hover: none),(pointer: coarse){#cursor-dot,#cursor-ring{display:none!important}}@media (hover: hover) and (pointer: fine){*{cursor:none!important}}@keyframes growLine{0%{opacity:0;transform:scaleX(0)}to{opacity:1;transform:scaleX(1)}}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(1.4)}}@keyframes spinOrbit{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes spinSlow{to{transform:rotate(360deg)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-14px)}}@keyframes lFadeUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}@keyframes slideLeft{0%{opacity:0;transform:translate(50px)}to{opacity:1;transform:translate(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes badgeIn{to{opacity:1;transform:translate(0)}}@keyframes growLineScale{0%{opacity:0;transform:scaleX(0)}to{opacity:1;transform:scaleX(1)}}@keyframes growX{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes particleDrift{0%{transform:translate(0) scale(1)}to{transform:translate(var(--tx,20px),var(--ty,-30px)) scale(var(--ts,.6))}}@keyframes rippleAnim{to{transform:scale(4);opacity:0}}@media (max-width: 900px){:root{--nav-h: 57px}.site-nav{padding:16px 24px}.nav-links{display:none}.hamburger{display:flex}.section-block{padding:72px 24px}.hero{grid-template-columns:1fr;padding:calc(var(--nav-h) + 4px) 24px 60px}.hero:after{display:none}.hero-visual{min-height:360px}.hero-scroll-hint{left:24px}.hero-deco-num{display:none}.skills-grid,.experience-card{grid-template-columns:1fr}.experience-left{min-height:230px}.projects-header{padding:0 24px}.project-card{grid-template-columns:1fr;position:relative;top:auto;min-height:auto}.project-card.reverse .project-left,.project-card.reverse .project-right{order:initial}.project-visual{min-height:320px}.project-preview-frame{width:min(88%,520px);padding:10px}.contact-section{grid-template-columns:1fr;padding:72px 24px}.site-footer{padding:24px;flex-direction:column;gap:8px}.hero-photo-ring{width:260px;height:260px}.hero-orbit-1{width:330px;height:330px}.hero-orbit-2{width:400px;height:400px}}@media (max-width: 560px){.hero-photo-ring{width:210px;height:210px}.hero-orbit-1{width:270px;height:270px}.hero-orbit-2{width:330px;height:330px}.hero-stats{gap:12px}.skill-row{grid-template-columns:1fr}.skill-level{width:fit-content}.experience-right,.project-right{padding:28px 24px}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}html{scroll-behavior:auto}#loader{display:none}#site-wrap,.hero-eyebrow,.hero-name,.hero-subtitle,.hero-badge,.hero-stats,.site-url,.hero-links,.hero-visual,.hero-scroll-hint,.hero-deco-num{opacity:1}}
