:root{--color-bg-deep:#0a0a0a;--color-bg-mid:#0f0a0a;--color-bg-surface:#150a0a;--color-accent-primary:#ff1744;--color-accent-secondary:#ff4060;--color-accent-dim:#b71c1c;--color-glow:#ff1744;--color-glow-soft:#ff17442e;--color-text-primary:#f0f0f0;--color-text-muted:#6b6060;--color-text-ghost:#3a2828;--color-border:#ff174433;--color-border-bright:#ff406073;--ff-primary:"JetBrains Mono", "SF Mono", "Fira Code", "Roboto Mono", ui-monospace, monospace;--ff-secondary:"Inter", "Helvetica Neue", Arial, sans-serif;--fog-hero:#0a0a0a;--fog-about:#0c0808;--fog-work:#100a0a;--fog-contact:#120808;--gradient-hero:radial-gradient(ellipse 80% 60% at 50% 50%, #ff17441a 0%, transparent 70%);--gradient-about:radial-gradient(ellipse 60% 80% at 20% 50%, #ff174424 0%, transparent 65%);--gradient-work:radial-gradient(ellipse 70% 70% at 75% 40%, #ff406029 0%, transparent 60%);--gradient-contact:radial-gradient(ellipse 90% 50% at 50% 100%, #ff174438 0%, transparent 55%);--fs-display:clamp(3.5rem, 2.2rem + 5.5vw, 7.5rem);--fs-h1:clamp(2.25rem, 1.6rem + 2.8vw, 4.5rem);--fs-h2:clamp(1.5rem, 1.2rem + 1.3vw, 2.5rem);--fs-h3:clamp(1.125rem,1rem + .5vw, 1.5rem);--fs-body:clamp(.95rem, .875rem + .3vw, 1.125rem);--fs-caption:clamp(.75rem, .7rem + .2vw, .875rem);--lh-display:1.05;--lh-heading:1.2;--lh-body:1.65;--lh-caption:1.4}.text-display{font-family:var(--ff-primary);font-size:var(--fs-display);font-weight:700;line-height:var(--lh-display);letter-spacing:-.025em;color:var(--color-text-primary)}.text-h1{font-family:var(--ff-primary);font-size:var(--fs-h1);font-weight:700;line-height:var(--lh-heading);letter-spacing:-.02em;color:var(--color-text-primary)}.text-h2{font-family:var(--ff-primary);font-size:var(--fs-h2);font-weight:400;line-height:var(--lh-heading);color:var(--color-accent-secondary)}.text-h3{font-family:var(--ff-secondary);font-size:var(--fs-h3);font-weight:500;line-height:var(--lh-heading);color:var(--color-text-primary)}.text-body{font-family:var(--ff-secondary);font-size:var(--fs-body);font-weight:400;line-height:var(--lh-body);color:var(--color-text-muted)}.text-caption{font-family:var(--ff-secondary);font-size:var(--fs-caption);letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted);font-weight:500}@media (width<=767px){main{height:auto!important}section{scroll-snap-align:start;height:100svh}main{scroll-snap-type:y mandatory;overflow-y:scroll}.mobile-bg{position:absolute;inset:0;overflow:hidden}.mobile-glow-orb{background:radial-gradient(circle, var(--color-glow) 0%, transparent 70%);pointer-events:none;border-radius:50%;width:280px;height:280px;animation:3s ease-in-out infinite glow-pulse;position:absolute}@keyframes glow-pulse{0%,to{opacity:.5;filter:blur(60px);transform:scale(1)}50%{opacity:.9;filter:blur(80px);transform:scale(1.15)}}#hero{background:var(--color-bg-deep)}#about,#work{background:var(--color-bg-mid)}#contact{background:var(--color-bg-deep)}}@keyframes scroll-hint{0%,to{opacity:.5;transform:translate(-50%)translateY(0)}50%{opacity:1;transform:translate(-50%)translateY(6px)}}@media (prefers-reduced-motion:reduce){.mobile-glow-orb{opacity:.6;animation:none}*{transition-duration:.01ms!important;animation-duration:.01ms!important}}.rw{vertical-align:bottom;line-height:1.15;display:inline-block;overflow:hidden}.rw-i{will-change:transform;display:inline-block;transform:translateY(110%)}.sec-idx{letter-spacing:.25em;color:#ff64788c;text-transform:uppercase;opacity:0;align-items:center;gap:12px;margin-bottom:20px;font-family:SF Mono,Fira Code,Roboto Mono,ui-monospace,monospace;font-size:.68rem;display:flex;transform:translateY(8px)}.sec-idx:after{content:"";background:#ff647859;width:40px;height:1px;display:inline-block}.accent-line{background:linear-gradient(90deg, var(--color-accent-primary) 0%, var(--color-accent-secondary) 100%);transform-origin:0;will-change:transform;width:100%;height:2px;margin-bottom:28px;transform:scaleX(0)}.fade-up{opacity:0;will-change:opacity, transform;transform:translateY(16px)}.scroll-prog{background:linear-gradient(90deg, var(--color-accent-primary), var(--color-accent-secondary));z-index:200;transform-origin:0;pointer-events:none;will-change:transform;height:2px;position:fixed;top:0;left:0}.work-card-enter{opacity:0;will-change:opacity, transform;transform:translateY(20px)}.skill-fade{opacity:0;will-change:opacity, transform;transform:translateY(12px)scale(.95)}@media (prefers-reduced-motion:reduce){.rw-i{transform:none!important}.fade-up,.sec-idx,.work-card-enter{opacity:1!important;transform:none!important}.accent-line{transform:scaleX(1)!important}.skill-fade{opacity:1!important;transform:none!important}}a:focus-visible,button:focus-visible{outline:2px solid var(--color-accent-secondary);outline-offset:4px;border-radius:3px}.skip-link{z-index:1000;background:var(--color-accent-primary);color:#fff;border-radius:4px;padding:8px 16px;font-size:.875rem;text-decoration:none;transition:top .2s;position:absolute;top:-60px;left:16px}.skip-link:focus{top:16px}.logo-f{transform-origin:50%;letter-spacing:-.05em;font-style:italic;display:inline-block;position:relative;transform:skew(-15deg)}.logo-f:before,.logo-f:after{content:attr(data-char);font-family:inherit;font-size:inherit;font-weight:inherit;pointer-events:none;position:absolute;top:0;left:0}.logo-f:before{color:#ff003c;clip-path:polygon(0 15%,100% 15%,100% 40%,0 40%);animation:6s step-end infinite glitch-red-idle}.logo-f:after{color:#00f0ff;clip-path:polygon(0 55%,100% 55%,100% 80%,0 80%);animation:6s step-end infinite glitch-blue-idle}@keyframes glitch-red-idle{0%,88%,91%,95%,to{opacity:0;transform:none}89%,90%{opacity:1;transform:translate(3px,-1px)}92%,93%{opacity:.7;transform:translate(-2px,1px)}}@keyframes glitch-blue-idle{0%,88%,91%,96%,to{opacity:0;transform:none}89%,90%{opacity:1;transform:translate(-3px,1px)}93%,94%{opacity:.7;transform:translate(2px,-1px)}}.logo-f.glitch-burst:before{animation:.4s step-end forwards glitch-red-burst}.logo-f.glitch-burst:after{animation:.4s step-end forwards glitch-blue-burst}@keyframes glitch-red-burst{0%,to{opacity:0;transform:none}20%,60%{opacity:1;transform:translate(4px,-1px)}40%,80%{opacity:.8;transform:translate(-2px,1px)}}@keyframes glitch-blue-burst{0%,to{opacity:0;transform:none}25%,65%{opacity:1;transform:translate(-4px,1px)}45%,85%{opacity:.8;transform:translate(2px,-1px)}}.preloader-scanlines{pointer-events:none;z-index:1;background:repeating-linear-gradient(#0000 0 3px,#ffffff06 3px 4px);position:absolute;inset:0}@media (hover:hover) and (pointer:fine){body{cursor:none!important}.cursor-arrow{pointer-events:none;z-index:9999;will-change:transform;filter:drop-shadow(0 0 3px #ff17448c);transition:filter .15s;position:fixed;top:0;left:0}.cursor-arrow[data-state=link]{filter:drop-shadow(0 0 6px #ff1744e6)}.cursor-arrow[data-state=card]{filter:drop-shadow(0 0 8px #ff1744)}.cursor-arrow[data-state=canvas]{filter:drop-shadow(0 0 4px #ff1744b3)}}@media (prefers-reduced-motion:reduce){.logo-f:before,.logo-f:after{opacity:0!important;animation:none!important}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:auto}body{background:var(--color-bg-deep);color:var(--color-text-primary);font-family:var(--ff-secondary);background-image:linear-gradient(#ff17440a 1px,#0000 1px),linear-gradient(90deg,#ff17440a 1px,#0000 1px);background-size:72px 72px;overflow-x:hidden}canvas{display:block}
