:root{--section-py: 140px;--page-px: clamp(24px, 6vw, 88px);--about-cols: minmax(0,1fr) 380px;--contact-cols: minmax(0,1fr) minmax(0,1fr);--bg: oklch(.16 .02 250);--bg-2: oklch(.13 .02 250);--fg: oklch(.98 .005 250);--fg-dim: oklch(.72 .01 250);--fg-faint: oklch(.5 .01 250);--accent: oklch(.62 .18 250);--accent-soft: oklch(.62 .18 250 / .14);--accent-border: oklch(.62 .18 250 / .32);--accent-glow: oklch(.62 .18 250 / .45);--on-accent: #fff;--glass-bg: oklch(.22 .02 250 / .4);--glass-bg-hover: oklch(.26 .02 250 / .55);--glass-bg-strong: oklch(.18 .02 250 / .75);--glass-border: oklch(1 0 0 / .1);--glass-highlight: oklch(1 0 0 / .08);--chip-bg: oklch(1 0 0 / .04);--chip-border: oklch(1 0 0 / .08);--modal-backdrop: oklch(.1 .02 250 / .7);--font-sans: "Geist", system-ui, sans-serif;--font-mono: "Geist Mono", ui-monospace, monospace}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg);color:var(--fg);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}body[data-animations=on]:not([data-touch=true]){cursor:none}body[data-animations=on]:not([data-touch=true]) a,body[data-animations=on]:not([data-touch=true]) button,body[data-animations=on]:not([data-touch=true]) input,body[data-animations=on]:not([data-touch=true]) textarea{cursor:none}::selection{background:var(--accent);color:var(--on-accent)}.hide-scrollbar::-webkit-scrollbar{display:none}.hide-scrollbar{-ms-overflow-style:none;scrollbar-width:none}.orb{position:absolute;border-radius:50%;filter:blur(80px);opacity:.55;will-change:transform}.orb-1{width:60vw;height:60vw;top:-15vw;left:-15vw;background:radial-gradient(circle,var(--accent),transparent 60%);animation:float1 22s ease-in-out infinite}.orb-2{width:50vw;height:50vw;top:30vh;right:-10vw;background:radial-gradient(circle,oklch(.55 .16 290 / .6),transparent 60%);animation:float2 28s ease-in-out infinite}.orb-3{width:70vw;height:70vw;bottom:-25vw;left:20vw;background:radial-gradient(circle,oklch(.5 .14 200 / .5),transparent 60%);animation:float3 35s ease-in-out infinite}body[data-theme=light] .orb{opacity:.32}body[data-animations=off] .orb{animation:none!important}.grid-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(var(--glass-border) 1px,transparent 1px),linear-gradient(90deg,var(--glass-border) 1px,transparent 1px);background-size:80px 80px;opacity:.25;-webkit-mask-image:radial-gradient(ellipse at center,black 30%,transparent 70%);mask-image:radial-gradient(ellipse at center,black 30%,transparent 70%)}@keyframes float1{0%,to{transform:translate(0) scale(1)}33%{transform:translate(8vw,12vh) scale(1.1)}66%{transform:translate(-5vw,6vh) scale(.95)}}@keyframes float2{0%,to{transform:translate(0) scale(1)}50%{transform:translate(-12vw,-8vh) scale(1.15)}}@keyframes float3{0%,to{transform:translate(0) scale(1)}40%{transform:translate(10vw,-10vh) scale(.9)}80%{transform:translate(-8vw,4vh) scale(1.08)}}@keyframes blink{0%,49%{opacity:1}50%,to{opacity:0}}@keyframes marquee{0%{transform:translate(0)}to{transform:translate(-50%)}}@keyframes scrollLine{0%,to{transform:scaleX(1);transform-origin:left}50%{transform:scaleX(.3);transform-origin:right}}@keyframes slideInRight{0%{transform:translate(calc(-50% + 40px),-50%) scale(.96);opacity:0}to{transform:translate(-50%,-50%) scale(1);opacity:1}}@keyframes slideInLeft{0%{transform:translate(calc(-50% - 40px),-50%) scale(.96);opacity:0}to{transform:translate(-50%,-50%) scale(1);opacity:1}}@media (prefers-reduced-motion: reduce){.orb{animation:none!important}*{animation-duration:.01ms!important;transition-duration:.01ms!important}}html{scroll-behavior:smooth}
