:root{--section-py: clamp(96px, 12vw, 150px);--page-px: clamp(20px, 6vw, 88px);--about-cols: minmax(0,1fr) 380px;--contact-cols: minmax(0,1fr) minmax(0,1fr);--exp-max: 100%;--bg: #050912;--bg-2: #070d1a;--fg: oklch(.96 .01 240);--fg-dim: oklch(.8 .025 240);--fg-faint: oklch(.6 .03 240);--accent: oklch(.82 .13 220);--accent-soft: oklch(.82 .13 220 / .12);--accent-border: oklch(.82 .13 220 / .4);--accent-glow: oklch(.82 .13 220 / .45);--accent-mid: oklch(.82 .13 220 / .24);--on-accent: #04101c;--glass-bg: oklch(.2 .04 250 / .45);--glass-bg-hover: oklch(.24 .05 245 / .6);--glass-bg-strong: oklch(.16 .035 250 / .88);--glass-border: oklch(.82 .13 220 / .2);--chip-bg: oklch(.82 .13 220 / .06);--chip-border: oklch(.82 .13 220 / .22);--modal-backdrop: oklch(.1 .03 250 / .72);--font-sans: "Inter", system-ui, sans-serif;--font-display: "Chakra Petch", "Inter", system-ui, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, monospace}@media (min-width: 1100px){:root{--page-px: max(120px, 7vw);--exp-max: 64%}}@media (min-width: 900px){.about-photo{display:none!important}}@media (max-width: 899px){.about-frame{display:none!important}}@media (max-width: 899px){:root{--about-cols: minmax(0,1fr);--contact-cols: minmax(0,1fr)}}*{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-cursor=on]:not([data-touch=true]){cursor:none}body[data-cursor=on]:not([data-touch=true]) a,body[data-cursor=on]:not([data-touch=true]) button,body[data-cursor=on]:not([data-touch=true]) input,body[data-cursor=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}.holo{position:relative;overflow:hidden;background:linear-gradient(160deg,var(--glass-bg-hover),var(--glass-bg) 60%);border:1px solid var(--glass-border);border-radius:3px;backdrop-filter:blur(10px) saturate(130%);-webkit-backdrop-filter:blur(10px) saturate(130%);transform:perspective(1100px) rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg));transition:transform .6s cubic-bezier(.22,1,.36,1),border-color .3s,box-shadow .3s}.holo:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:2;--c: var(--accent);--l: 14px;background:linear-gradient(var(--c),var(--c)) top left / var(--l) 2px no-repeat,linear-gradient(var(--c),var(--c)) top left / 2px var(--l) no-repeat,linear-gradient(var(--c),var(--c)) top right / var(--l) 2px no-repeat,linear-gradient(var(--c),var(--c)) top right / 2px var(--l) no-repeat,linear-gradient(var(--c),var(--c)) bottom left / var(--l) 2px no-repeat,linear-gradient(var(--c),var(--c)) bottom left / 2px var(--l) no-repeat,linear-gradient(var(--c),var(--c)) bottom right / var(--l) 2px no-repeat,linear-gradient(var(--c),var(--c)) bottom right / 2px var(--l) no-repeat;opacity:.45;transition:opacity .3s}.holo:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:1;background:radial-gradient(420px circle at var(--mx, 50%) var(--my, 50%),var(--accent-soft),transparent 45%);opacity:0;transition:opacity .35s}.holo-sweep{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:1;background:linear-gradient(105deg,transparent 35%,var(--accent-soft) 50%,transparent 65%);transform:translate(-120%)}.holo--hover{cursor:default}.holo--hover:hover{border-color:var(--accent-border);box-shadow:0 0 0 1px var(--accent-soft),0 24px 60px -24px var(--accent-glow)}.holo--hover:hover:before{opacity:1}.holo--hover:hover:after{opacity:1}.holo--hover:hover .holo-sweep{transform:translate(120%);transition:transform 1s cubic-bezier(.22,1,.36,1)}body[data-animations=off] .holo{transform:none}.btn{clip-path:polygon(10px 0,100% 0,100% calc(100% - 10px),calc(100% - 10px) 100%,0 100%,0 10px)}.btn--primary{background:var(--accent);color:var(--on-accent)}.btn--primary:hover{box-shadow:0 0 32px var(--accent-glow);filter:brightness(1.08)}.btn--ghost{background:var(--accent-soft);color:var(--fg);box-shadow:inset 0 0 0 1px var(--accent-border)}.btn--ghost:hover{background:var(--accent-mid)}.holo-heading{position:relative;display:block}.holo-heading>.hh-text{display:block;clip-path:inset(0 100% 0 0)}.holo-heading.is-in>.hh-text{animation:hhWipe .9s cubic-bezier(.65,0,.35,1) var(--hh-delay, 0ms) forwards}.holo-heading>.hh-bar{position:absolute;top:-4%;bottom:-4%;width:3px;left:0;opacity:0;background:var(--accent);box-shadow:0 0 18px 2px var(--accent-glow)}.holo-heading.is-in>.hh-bar{animation:hhBar .9s cubic-bezier(.65,0,.35,1) var(--hh-delay, 0ms) forwards}@keyframes hhWipe{to{clip-path:inset(0 0 0 0)}}@keyframes hhBar{0%{left:0;opacity:1}90%{opacity:1}to{left:100%;opacity:0}}body[data-animations=off] .holo-heading>.hh-text{clip-path:none;animation:none}body[data-animations=off] .holo-heading>.hh-bar{display:none}.hud-scanlines{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:60;background:repeating-linear-gradient(to bottom,rgba(255,255,255,.025) 0 1px,transparent 1px 3px);mix-blend-mode:overlay}.hud-sweep{position:fixed;left:0;right:0;height:120px;top:-120px;pointer-events:none;z-index:60;background:linear-gradient(to bottom,transparent,var(--accent-soft) 85%,var(--accent-mid) 100%);opacity:.35;animation:hudSweep 9s linear infinite}@keyframes hudSweep{0%{transform:translateY(0)}70%,to{transform:translateY(calc(100vh + 120px))}}.hud-rail a{color:var(--fg-faint);text-decoration:none;transition:color .25s}.hud-rail a:hover{color:var(--fg)}.hud-rail a .hud-rail-line{display:inline-block;height:1px;width:12px;background:currentColor;transition:width .4s cubic-bezier(.22,1,.36,1)}.hud-rail a.is-active{color:var(--accent)}.hud-rail a.is-active .hud-rail-line{width:32px;box-shadow:0 0 8px var(--accent)}.hud-rail a .hud-rail-label{opacity:0;transform:translate(-6px);transition:opacity .3s,transform .3s}.hud-rail a:hover .hud-rail-label{opacity:1;transform:translate(0)}@media (max-width: 1099px){.hud-desktop{display:none!important}}@media (max-width: 760px){.nav-links{display:none!important}}@keyframes blink{0%,49%{opacity:1}50%,to{opacity:0}}@keyframes marquee{0%{transform:translate(0)}to{transform:translate(-50%)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes spinRev{to{transform:rotate(-360deg)}}@keyframes ping{0%{transform:scale(1);opacity:.8}to{transform:scale(2.8);opacity:0}}@keyframes scanY{0%{top:-10%}to{top:110%}}@keyframes eq{0%,to{transform:scaleY(.3)}50%{transform:scaleY(1)}}@keyframes flicker{0%,to{opacity:1}92%{opacity:1}93%{opacity:.4}94%{opacity:1}96%{opacity:.6}}@keyframes floatY{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes dash{to{stroke-dashoffset:-40}}@keyframes fadeUp{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@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}}.flicker{animation:flicker 6s infinite}body[data-animations=off] *,body[data-animations=off] *:before,body[data-animations=off] *:after{animation:none!important}body[data-animations=off] .hud-sweep{display:none}@media (prefers-reduced-motion: reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.hud-sweep{display:none}}html{scroll-behavior:smooth}
