@font-face{font-family:Bebas Neue;src:url(/fonts/BebasNeue-Regular.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Inter;src:url(/fonts/Inter-Variable.ttf) format("truetype");font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:Inter;src:url(/fonts/Inter-Variable-Italic.ttf) format("truetype");font-weight:100 900;font-style:italic;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/fonts/JetBrainsMono-Variable.ttf) format("truetype");font-weight:100 800;font-style:normal;font-display:swap}:root{--font-display: "Bebas Neue", "Arial Narrow", sans-serif;--font-body: "Inter", system-ui, -apple-system, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, monospace;--text-display-md: clamp(40px, 6vw, 72px);--text-display-sm: clamp(34px, 5vw, 54px);--text-body-lg: 18px;--text-body-md: 15px;--text-body-sm: 13.5px;--text-mono-sm: 10px;--text-mono-md: 11px;--text-mono-lg: 13px;--tracking-wide: .04em;--tracking-wider: .12em;--leading-tight: .95;--leading-normal: 1.5;--leading-relaxed: 1.7;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--space-16: 64px;--space-20: 80px;--space-24: 96px;--radius-xs: 4px;--radius-sm: 8px;--radius-md: 10px;--radius-lg: 14px;--radius-xl: 18px;--radius-pill: 9999px;--radius-card: var(--radius-lg);--radius-btn: var(--radius-pill);--radius-btn-sm: var(--radius-sm);--radius-chip: var(--radius-pill);--radius-input: var(--radius-md);--radius-sheet: var(--radius-xl);--color-acid: #FF2D8A;--color-acid-glow: rgba(255,45,138,.25);--color-acid-dim: rgba(255,45,138,.5);--color-acid-subtle: rgba(255,45,138,.1);--color-cyan: #00F5FF;--color-cyan-glow: rgba(0,245,255,.22);--color-magenta: #B026FF;--color-magenta-glow:rgba(176,38,255,.2);--color-orange: #FF6B00;--color-crimson: #FF3B47;--glass-ambient-blur: 48px;--glass-content-blur: 50px;--glass-floating-blur: 44px;--ease-out: cubic-bezier(.22, 1, .36, 1);--ease-in-out: cubic-bezier(.65, 0, .35, 1);--duration-fast: .18s;--duration-medium: .32s;--transition-default: .25s cubic-bezier(.22, 1, .36, 1);--transition-spring: .42s cubic-bezier(.34, 1.56, .64, 1)}:root[data-theme=dark]{--color-bg: #0A0A0C;--color-bg-alt: #111115;--color-bg-raised: #18181C;--color-fg: #F4F4F0;--color-fg-2: rgba(244,244,240,.7);--color-fg-3: rgba(244,244,240,.4);--color-fg-4: rgba(244,244,240,.2);--color-border: rgba(244,244,240,.1);--color-border-bright: rgba(244,244,240,.22);--glass-ambient-bg: rgba(255,255,255,.05);--glass-ambient-border: rgba(255,255,255,.1);--glass-ambient-spec: inset 0 .5px 0 rgba(255,255,255,.14);--glass-content-bg: rgba(255,255,255,.08);--glass-content-border: rgba(255,255,255,.14);--glass-content-spec: inset 0 .5px 0 rgba(255,255,255,.22);--glass-floating-bg: rgba(255,255,255,.12);--glass-floating-border:rgba(255,255,255,.2);--glass-floating-spec: inset 0 .5px 0 rgba(255,255,255,.3);--noise-opacity: .045;--grid-line: rgba(244,244,240,.06);--hairline: rgba(244,244,240,.12)}:root[data-theme=light]{--color-bg: #F4F4F0;--color-bg-alt: #EAEAE5;--color-bg-raised: #FFFFFF;--color-fg: #0A0A0C;--color-fg-2: rgba(10,10,12,.65);--color-fg-3: rgba(10,10,12,.4);--color-fg-4: rgba(10,10,12,.16);--color-border: rgba(10,10,12,.1);--color-border-bright: rgba(10,10,12,.2);--glass-ambient-bg: rgba(255,255,255,.45);--glass-ambient-border: rgba(10,10,12,.08);--glass-ambient-spec: inset 0 1px 0 rgba(255,255,255,.7);--glass-content-bg: rgba(255,255,255,.6);--glass-content-border: rgba(10,10,12,.1);--glass-content-spec: inset 0 1px 0 rgba(255,255,255,.85), inset 0 0 0 1px rgba(255,255,255,.4);--glass-floating-bg: rgba(255,255,255,.78);--glass-floating-border:rgba(10,10,12,.12);--glass-floating-spec: inset 0 1px 0 rgba(255,255,255,.95);--noise-opacity: .03;--grid-line: rgba(10,10,12,.05);--hairline: rgba(10,10,12,.12)}:root[data-glass=low]{--glass-ambient-blur: 12px;--glass-content-blur: 14px;--glass-floating-blur: 16px}:root[data-glass=med]{--glass-ambient-blur: 28px;--glass-content-blur: 28px;--glass-floating-blur: 26px}:root[data-glass=high]{--glass-ambient-blur: 48px;--glass-content-blur: 50px;--glass-floating-blur: 44px}:root[data-shape=soft]{--radius-xs: 4px;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 10px;--radius-xl: 12px;--radius-pill: 10px}:root[data-shape=square]{--radius-xs: 0px;--radius-sm: 0px;--radius-md: 0px;--radius-lg: 0px;--radius-xl: 0px;--radius-pill: 0px}:root[data-shape=square] .brand .mark,:root[data-shape=square] .method .ic,:root[data-shape=square] .sheet-close,:root[data-shape=square] .nav-burger,:root[data-shape=square] .btn-cv,:root[data-shape=square] .proj-tags .t,:root[data-shape=square] .ticks:before,:root[data-shape=square] .ticks:after{border-radius:0!important}:root[data-shape=soft] .brand .mark,:root[data-shape=soft] .method .ic,:root[data-shape=soft] .sheet-close,:root[data-shape=soft] .nav-burger{border-radius:6px!important}:root[data-panel=off] .hero-panel{display:none}:root[data-panel=off] .hero-grid{grid-template-columns:1fr;max-width:940px}:root[data-density=compact] section{padding:var(--space-12) 0}:root[data-density=compact] .section-head{margin-bottom:var(--space-6)}:root[data-density=cozy] section{padding:var(--space-16) 0}:root[data-density=cozy] .section-head{margin-bottom:var(--space-8)}:root[data-density=spacious] section{padding:var(--space-24) 0}:root[data-density=spacious] .section-head{margin-bottom:var(--space-12)}:root[data-grid=off] .bg-grid{display:none}:root[data-glow=off] .blob{display:none}:root[data-scan=off] .scan{display:none}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--color-bg);color:var(--color-fg);font-family:var(--font-body);-webkit-font-smoothing:antialiased;overflow-x:hidden;position:relative}::-moz-selection{background:var(--color-acid);color:#0a0a0c}::selection{background:var(--color-acid);color:#0a0a0c}a{color:inherit;text-decoration:none}button{font-family:inherit}img{display:block;max-width:100%}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-fg-4);border-radius:9999px}::-webkit-scrollbar-thumb:hover{background:var(--color-fg-3)}.bg-layer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;overflow:hidden}.bg-noise{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");opacity:var(--noise-opacity);mix-blend-mode:overlay}.bg-grid{position:absolute;top:-2px;right:-2px;bottom:-2px;left:-2px;background-image:linear-gradient(var(--grid-line) 1px,transparent 1px),linear-gradient(90deg,var(--grid-line) 1px,transparent 1px);background-size:64px 64px;mask-image:radial-gradient(ellipse 90% 70% at 50% 30%,#000 30%,transparent 90%);-webkit-mask-image:radial-gradient(ellipse 90% 70% at 50% 30%,#000 30%,transparent 90%)}.blob{position:absolute;border-radius:50%;filter:blur(90px);opacity:.55;transition:background .6s var(--ease-out)}.blob.b1{width:620px;height:620px;top:-180px;left:-120px;background:radial-gradient(circle,var(--color-acid-glow) 0%,transparent 70%)}.blob.b2{width:520px;height:520px;top:38%;right:-160px;background:radial-gradient(circle,var(--color-cyan-glow) 0%,transparent 70%)}.blob.b3{width:480px;height:480px;bottom:-120px;left:30%;background:radial-gradient(circle,var(--color-magenta-glow) 0%,transparent 70%)}:root[data-theme=light] .blob{opacity:.4;filter:blur(110px)}.shell{position:relative;z-index:2}.wrap{width:min(1200px,92vw);margin:0 auto}section{position:relative;padding:var(--space-24) 0}.section-head{margin-bottom:var(--space-12)}.kicker{font-family:var(--font-mono);font-size:var(--text-mono-md);letter-spacing:var(--tracking-wider);color:var(--color-acid);text-transform:uppercase;display:inline-flex;align-items:center;gap:8px}.kicker:before{content:"";width:22px;height:1px;background:var(--color-acid);display:inline-block}.section-title{font-family:var(--font-display);font-size:var(--text-display-md);letter-spacing:var(--tracking-wide);text-transform:uppercase;line-height:var(--leading-tight);margin-top:var(--space-3);color:var(--color-fg)}.section-sub{font-family:var(--font-body);font-size:var(--text-body-lg);color:var(--color-fg-2);margin-top:var(--space-4);max-width:56ch;line-height:var(--leading-relaxed)}.card{background:var(--glass-content-bg);backdrop-filter:blur(var(--glass-content-blur)) saturate(1.8);-webkit-backdrop-filter:blur(var(--glass-content-blur)) saturate(1.8);border:1px solid var(--glass-content-border);box-shadow:var(--glass-content-spec);border-radius:var(--radius-card);position:relative}.card-pad{padding:var(--space-8)}.ticks:before,.ticks:after,.ticks>.tick-tr,.ticks>.tick-bl{content:"";position:absolute;width:10px;height:10px;pointer-events:none;opacity:.5}.ticks:before{top:10px;left:10px;border-top:1px solid var(--color-acid);border-left:1px solid var(--color-acid)}.ticks:after{bottom:10px;right:10px;border-bottom:1px solid var(--color-acid);border-right:1px solid var(--color-acid)}.btn{font-family:var(--font-display);letter-spacing:var(--tracking-wider);font-size:18px;text-transform:uppercase;cursor:pointer;border:none;display:inline-flex;align-items:center;gap:10px;height:48px;padding:0 26px;border-radius:var(--radius-pill);transition:var(--transition-spring);position:relative;white-space:nowrap}.btn:active{transform:scale(.97)}.btn-primary{background:var(--color-acid);color:#0a0a0c;box-shadow:0 0 0 0 var(--color-acid-glow)}.btn-primary:hover{box-shadow:0 0 28px var(--color-acid-glow);transform:translateY(-2px)}.btn-ghost{background:var(--glass-content-bg);color:var(--color-fg);backdrop-filter:blur(var(--glass-content-blur)) saturate(1.8);-webkit-backdrop-filter:blur(var(--glass-content-blur)) saturate(1.8);border:1px solid var(--color-border-bright);box-shadow:var(--glass-content-spec)}.btn-ghost:hover{border-color:var(--color-acid);color:var(--color-acid);transform:translateY(-2px)}.btn .arrow{font-family:var(--font-mono);font-size:14px}.chip{font-family:var(--font-mono);font-size:var(--text-mono-md);letter-spacing:var(--tracking-wide);text-transform:uppercase;padding:6px 12px;border-radius:var(--radius-pill);border:1px solid var(--color-border-bright);color:var(--color-fg-2);background:var(--glass-ambient-bg);display:inline-flex;align-items:center;gap:6px;transition:var(--transition-default);white-space:nowrap}.chip:hover{border-color:var(--color-acid);color:var(--color-acid)}.chip .dot{width:6px;height:6px;border-radius:50%;background:var(--color-acid);box-shadow:0 0 8px var(--color-acid)}.readout{font-family:var(--font-mono);font-size:var(--text-mono-md);color:var(--color-fg-3);text-transform:uppercase;letter-spacing:var(--tracking-wide);display:flex;align-items:center;gap:8px}.readout .live{width:7px;height:7px;border-radius:50%;background:var(--color-acid);box-shadow:0 0 8px var(--color-acid)}.pulse{animation:pulse 2.2s var(--ease-in-out) infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.35}}.hairline{height:1px;background:var(--hairline);border:none}.nav{position:fixed;top:16px;left:0;right:0;z-index:50;display:flex;justify-content:center;pointer-events:none}.nav-inner{pointer-events:auto;width:min(1200px,92vw);display:flex;align-items:center;justify-content:space-between;gap:var(--space-6);padding:10px 12px 10px 20px;border-radius:var(--radius-pill);background:var(--glass-ambient-bg);backdrop-filter:blur(var(--glass-ambient-blur)) saturate(1.6);-webkit-backdrop-filter:blur(var(--glass-ambient-blur)) saturate(1.6);border:1px solid var(--glass-ambient-border);box-shadow:var(--glass-ambient-spec);transition:var(--transition-default)}.brand{display:flex;align-items:center;gap:12px}.brand .mark{width:34px;height:34px;border-radius:10px;flex-shrink:0;border:1px solid var(--color-acid);color:var(--color-acid);display:grid;place-items:center;font-family:var(--font-display);font-size:20px;box-shadow:inset 0 0 12px var(--color-acid-subtle)}.brand .wordmark{font-family:var(--font-display);font-size:22px;letter-spacing:var(--tracking-wide);text-transform:uppercase;line-height:1}.brand .wordmark small{display:block;font-family:var(--font-mono);font-size:8px;letter-spacing:.2em;color:var(--color-fg-3);margin-top:2px}.nav-links{display:flex;align-items:center;gap:4px}.nav-links a{font-family:var(--font-mono);font-size:var(--text-mono-md);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--color-fg-3);padding:8px 12px;border-radius:var(--radius-pill);transition:var(--transition-default);position:relative}.nav-links a .idx{color:var(--color-fg-4);margin-right:4px}.nav-links a:hover{color:var(--color-fg)}.nav-links a.active{color:var(--color-acid);background:var(--color-acid-subtle)}.nav-cta{display:flex;align-items:center;gap:10px}.btn-cv{font-family:var(--font-mono);font-size:var(--text-mono-md);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--color-fg);padding:10px 16px;border-radius:var(--radius-pill);border:1px solid var(--color-border-bright);transition:var(--transition-default);cursor:pointer;background:transparent}.btn-cv:hover{border-color:var(--color-acid);color:var(--color-acid)}.nav-burger{display:none;width:42px;height:42px;border-radius:12px;border:1px solid var(--color-border-bright);background:transparent;color:var(--color-fg);cursor:pointer;place-items:center}.nav-burger span{display:block;width:18px;height:1.5px;background:currentColor;position:relative}.nav-burger span:before,.nav-burger span:after{content:"";position:absolute;left:0;width:18px;height:1.5px;background:currentColor;transition:.25s}.nav-burger span:before{top:-6px}.nav-burger span:after{top:6px}.drawer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:49;background:var(--color-bg);display:none;flex-direction:column;padding:100px 8vw 40px;gap:8px}.drawer.open{display:flex}.drawer a{font-family:var(--font-display);font-size:40px;letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--color-fg-2);padding:10px 0;border-bottom:1px solid var(--color-border)}.drawer a .idx{font-family:var(--font-mono);font-size:13px;color:var(--color-acid);margin-right:14px}.hero{min-height:100vh;display:flex;align-items:center;padding-top:120px;padding-bottom:80px}.hero-grid{display:grid;grid-template-columns:1.55fr 1fr;gap:var(--space-10);align-items:stretch}.hero-main{display:flex;flex-direction:column;justify-content:center}.hero-title{font-family:var(--font-display);text-transform:uppercase;line-height:.88;font-size:clamp(56px,9vw,132px);letter-spacing:.01em;margin:var(--space-5) 0;color:var(--color-fg)}.hero-title .ln{display:block}.hero-title .accent{color:var(--color-acid)}.hero-lead{font-family:var(--font-body);font-size:var(--text-body-lg);color:var(--color-fg-2);max-width:48ch;line-height:var(--leading-relaxed)}.hero-lead b{color:var(--color-fg);font-weight:600}.hero-cta{display:flex;flex-wrap:wrap;gap:14px;margin-top:var(--space-8)}.hero-status{display:flex;flex-wrap:wrap;gap:var(--space-6);margin-top:var(--space-10);padding-top:var(--space-6);border-top:1px solid var(--color-border)}.hero-status .stat .n{font-family:var(--font-display);font-size:40px;color:var(--color-fg);line-height:1}.hero-status .stat .n .u{color:var(--color-acid);font-size:24px}.hero-status .stat .l{font-family:var(--font-mono);font-size:var(--text-mono-sm);color:var(--color-fg-3);text-transform:uppercase;letter-spacing:var(--tracking-wide);margin-top:6px}.hero-panel{padding:var(--space-6);display:flex;flex-direction:column;gap:var(--space-4);overflow:hidden}.hero-panel .ph-head{display:flex;align-items:center;justify-content:space-between}.hero-panel .ph-title{font-family:var(--font-mono);font-size:var(--text-mono-md);letter-spacing:var(--tracking-wide);color:var(--color-fg-2);text-transform:uppercase}.term{font-family:var(--font-mono);font-size:12px;line-height:1.9;color:var(--color-fg-2);flex:1}.term .ln{display:block;white-space:pre-wrap}.term .c-acid{color:var(--color-acid)}.term .c-cyan{color:var(--color-cyan)}.term .c-dim{color:var(--color-fg-3)}.term .cursor{display:inline-block;width:8px;height:14px;background:var(--color-acid);vertical-align:middle;animation:blink 1.1s steps(1) infinite}@keyframes blink{50%{opacity:0}}.coordstrip{display:flex;justify-content:space-between;font-family:var(--font-mono);font-size:9px;letter-spacing:.12em;color:var(--color-fg-4);text-transform:uppercase}.scan{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:inherit;overflow:hidden;pointer-events:none;opacity:.5}.scan:after{content:"";position:absolute;left:0;right:0;height:30%;top:-30%;background:linear-gradient(180deg,transparent,var(--color-acid-subtle),transparent);animation:scanmove 5s linear infinite}@keyframes scanmove{to{top:130%}}.glitch{position:relative;display:inline-block}:root[data-glitch=on] .glitch[data-text]:before,:root[data-glitch=on] .glitch[data-text]:after{content:attr(data-text);position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:.85}:root[data-glitch=on] .glitch[data-text]:before{color:var(--color-cyan);animation:glitchA 3.4s steps(2) infinite;clip-path:inset(0 0 60% 0)}:root[data-glitch=on] .glitch[data-text]:after{color:var(--color-magenta);animation:glitchB 2.7s steps(2) infinite;clip-path:inset(58% 0 0 0)}@keyframes glitchA{0%,92%,to{transform:translate(0)}93%{transform:translate(-3px,-2px)}96%{transform:translate(2px,1px)}}@keyframes glitchB{0%,90%,to{transform:translate(0)}91%{transform:translate(3px,2px)}95%{transform:translate(-2px,-1px)}}.about-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:var(--space-10);align-items:start}.photo-frame{position:relative}.photo-frame image-slot{width:100%;aspect-ratio:4/5;display:block}.photo-meta{display:flex;gap:var(--space-6);margin-top:var(--space-5);flex-wrap:wrap}.about-body p{font-family:var(--font-body);font-size:var(--text-body-lg);color:var(--color-fg-2);line-height:var(--leading-relaxed);margin-bottom:var(--space-5)}.about-body p .hl{color:var(--color-acid)}.cred-list{list-style:none;display:flex;flex-direction:column;gap:2px;margin-top:var(--space-6)}.cred-list li{display:flex;align-items:center;gap:14px;padding:14px 0;border-top:1px solid var(--color-border);font-family:var(--font-mono);font-size:13px}.cred-list li .yr{color:var(--color-acid);width:56px;flex-shrink:0}.cred-list li .t{color:var(--color-fg)}.cred-list li .o{color:var(--color-fg-3);margin-left:auto}.infogrid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--color-border);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden;margin-top:var(--space-6)}.infogrid .cell{background:var(--color-bg);padding:var(--space-4)}.infogrid .cell .k{font-family:var(--font-mono);font-size:9px;letter-spacing:.14em;color:var(--color-fg-3);text-transform:uppercase}.infogrid .cell .v{font-family:var(--font-display);font-size:22px;letter-spacing:.04em;color:var(--color-fg);text-transform:uppercase;margin-top:4px}.skill-cats{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-5)}.skill-cat h3{font-family:var(--font-mono);font-size:var(--text-mono-lg);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--color-fg);margin-bottom:var(--space-6);display:flex;align-items:center;gap:8px}.skill-cat h3 .dot{width:7px;height:7px;background:var(--color-acid);border-radius:50%;box-shadow:0 0 8px var(--color-acid)}.skill{margin-bottom:var(--space-5)}.skill .row{display:flex;justify-content:space-between;margin-bottom:8px;font-family:var(--font-mono);font-size:12px}.skill .row .nm{color:var(--color-fg-2)}.skill .row .pc{color:var(--color-acid)}.skill .track{height:4px;background:var(--color-border);border-radius:9999px;overflow:hidden}.skill .fill{height:100%;width:0;background:var(--color-acid);border-radius:9999px;box-shadow:0 0 10px var(--color-acid-glow);transition:width 1.1s var(--ease-out)}.tools-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:var(--space-6)}.tool{font-family:var(--font-mono);font-size:13px;text-transform:uppercase;letter-spacing:.06em;text-align:center;padding:16px 8px;border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-fg-2);background:var(--glass-ambient-bg);transition:var(--transition-default);cursor:default}.tool:hover{border-color:var(--color-acid);color:var(--color-acid);transform:translateY(-3px);box-shadow:0 0 20px var(--color-acid-glow)}.proj-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-6)}.proj-card{--pa: var(--color-acid);cursor:pointer;overflow:hidden;transition:var(--transition-spring);display:flex;flex-direction:column}.proj-card:hover{transform:translateY(-6px);border-color:var(--pa);box-shadow:0 0 40px color-mix(in srgb,var(--pa) 32%,transparent)}.proj-thumb{aspect-ratio:16/10;position:relative;overflow:hidden;border-bottom:1px solid var(--color-border);background:linear-gradient(160deg,color-mix(in srgb,var(--pa) 16%,transparent),color-mix(in srgb,var(--pa) 4%,transparent))}.proj-thumb .gridfill{position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(color-mix(in srgb,var(--pa) 22%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--pa) 22%,transparent) 1px,transparent 1px);background-size:26px 26px;mask-image:radial-gradient(120% 100% at 80% 0%,#000 35%,transparent 95%);-webkit-mask-image:radial-gradient(120% 100% at 80% 0%,#000 35%,transparent 95%)}.proj-thumb .ref{position:absolute;top:13px;left:15px;font-family:var(--font-mono);font-size:10px;letter-spacing:.16em;color:color-mix(in srgb,var(--pa) 75%,var(--color-fg));text-transform:uppercase}.proj-thumb .flag{position:absolute;top:11px;right:12px;font-family:var(--font-mono);font-size:9px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:#0a0a0c;background:var(--pa);padding:5px 9px;border-radius:var(--radius-chip);box-shadow:0 0 16px color-mix(in srgb,var(--pa) 50%,transparent)}.proj-thumb .mono{position:absolute;left:18px;bottom:8px;font-family:var(--font-display);font-size:clamp(60px,7.5vw,96px);line-height:.74;letter-spacing:.01em;color:var(--pa);text-shadow:0 0 34px color-mix(in srgb,var(--pa) 45%,transparent);transition:transform var(--duration-medium) var(--ease-out)}.proj-card:hover .mono{transform:translateY(-3px)}.proj-thumb .mono .dash{font-style:normal;color:color-mix(in srgb,var(--pa) 60%,transparent);margin-left:.04em}.proj-body{padding:var(--space-5);display:flex;flex-direction:column;gap:12px;flex:1}.proj-body h3{font-family:var(--font-display);font-size:27px;letter-spacing:.03em;text-transform:uppercase;line-height:1;color:var(--color-fg)}.proj-body p{font-family:var(--font-body);font-size:var(--text-body-sm);color:var(--color-fg-3);line-height:var(--leading-normal)}.proj-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px}.proj-tags .t{font-family:var(--font-mono);font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:var(--color-fg-3);padding:4px 8px;border:1px solid var(--color-border);border-radius:6px}.proj-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:auto;padding-top:var(--space-3)}.proj-btn{font-family:var(--font-display);letter-spacing:var(--tracking-wide);font-size:15px;text-transform:uppercase;display:inline-flex;align-items:center;gap:7px;padding:9px 16px;cursor:pointer;border:1px solid var(--color-border-bright);border-radius:var(--radius-btn-sm);background:transparent;color:var(--color-fg);transition:var(--transition-default)}.proj-btn:hover{border-color:var(--pa);color:var(--pa)}.proj-btn.live{color:var(--pa);border-color:color-mix(in srgb,var(--pa) 45%,transparent)}.proj-btn.live:hover{background:color-mix(in srgb,var(--pa) 12%,transparent)}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;display:none;align-items:center;justify-content:center;padding:5vh 4vw}.overlay.open{display:flex}.overlay-bg{position:absolute;top:0;right:0;bottom:0;left:0;background:#050507b8;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}:root[data-theme=light] .overlay-bg{background:#b4b4af8c}.sheet{position:relative;width:min(840px,100%);max-height:90vh;overflow:auto;background:var(--glass-floating-bg);backdrop-filter:blur(var(--glass-floating-blur)) saturate(2);-webkit-backdrop-filter:blur(var(--glass-floating-blur)) saturate(2);border:1px solid var(--glass-floating-border);box-shadow:var(--glass-floating-spec),0 40px 100px #00000080;border-radius:var(--radius-sheet);padding:var(--space-10);transform:scale(.96) translateY(10px);opacity:0;transition:var(--transition-spring)}.overlay.open .sheet{transform:none;opacity:1}.sheet-close{position:absolute;top:20px;right:20px;width:40px;height:40px;border-radius:12px;border:1px solid var(--color-border-bright);background:transparent;color:var(--color-fg);cursor:pointer;display:grid;place-items:center;font-family:var(--font-mono);font-size:16px;transition:var(--transition-default)}.sheet-close:hover{border-color:var(--color-crimson);color:var(--color-crimson)}.sheet .ref{font-family:var(--font-mono);font-size:var(--text-mono-md);letter-spacing:.12em;color:var(--color-acid);text-transform:uppercase}.sheet h2{font-family:var(--font-display);font-size:var(--text-display-sm);letter-spacing:var(--tracking-wide);text-transform:uppercase;line-height:1;margin:8px 0 4px;color:var(--color-fg)}.sheet .corp{font-family:var(--font-mono);font-size:var(--text-mono-md);color:var(--color-fg-3);text-transform:uppercase;letter-spacing:.1em}.sheet .lead{font-family:var(--font-body);font-size:var(--text-body-lg);color:var(--color-fg-2);line-height:var(--leading-relaxed);margin:var(--space-6) 0}.sheet .label{font-family:var(--font-mono);font-size:var(--text-mono-md);letter-spacing:var(--tracking-wide);text-transform:uppercase;color:var(--color-fg-3);margin:var(--space-6) 0 var(--space-4);display:flex;align-items:center;gap:8px}.sheet .label:after{content:"";flex:1;height:1px;background:var(--color-border)}.feat-list{list-style:none;display:flex;flex-direction:column;gap:10px}.feat-list li{display:flex;gap:12px;font-family:var(--font-body);font-size:var(--text-body-md);color:var(--color-fg-2);line-height:var(--leading-normal)}.feat-list li:before{content:"▸";color:var(--color-acid);flex-shrink:0}.tech-row{display:flex;flex-wrap:wrap;gap:8px}.sheet-actions{display:flex;gap:12px;margin-top:var(--space-8)}.contact-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:var(--space-10)}.contact-methods{display:flex;flex-direction:column;gap:var(--space-3);margin-top:var(--space-6)}.method{display:flex;align-items:center;gap:16px;padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:var(--transition-default)}.method:hover{border-color:var(--color-acid);transform:translate(4px)}.method .ic{width:44px;height:44px;border-radius:12px;flex-shrink:0;display:grid;place-items:center;border:1px solid var(--color-border-bright);color:var(--color-acid);font-family:var(--font-mono);font-size:16px}.method .k{font-family:var(--font-mono);font-size:9px;letter-spacing:.14em;color:var(--color-fg-3);text-transform:uppercase}.method .v{font-family:var(--font-body);font-size:var(--text-body-md);color:var(--color-fg);margin-top:2px}.field{margin-bottom:var(--space-5)}.field label{display:block;font-family:var(--font-mono);font-size:var(--text-mono-md);letter-spacing:var(--tracking-wide);color:var(--color-fg-3);text-transform:uppercase;margin-bottom:8px}.field input,.field textarea{width:100%;font-family:var(--font-mono);font-size:14px;color:var(--color-fg);background:var(--glass-ambient-bg);border:1px solid var(--color-border-bright);border-radius:var(--radius-input);padding:14px 16px;transition:var(--transition-default);resize:vertical}.field input::-moz-placeholder,.field textarea::-moz-placeholder{color:var(--color-fg-4)}.field input::placeholder,.field textarea::placeholder{color:var(--color-fg-4)}.field input:focus,.field textarea:focus{outline:none;border-color:var(--color-acid);box-shadow:0 0 0 3px var(--color-acid-subtle)}.field.err input,.field.err textarea{border-color:var(--color-crimson)}.field .msg{font-family:var(--font-mono);font-size:10px;color:var(--color-crimson);margin-top:6px;text-transform:uppercase;letter-spacing:.08em;display:none}.field.err .msg{display:block}.form-status{font-family:var(--font-mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase;margin-top:var(--space-4);color:var(--color-acid);min-height:18px}.footer{padding:var(--space-16) 0 var(--space-10);border-top:1px solid var(--color-border);margin-top:var(--space-12)}.footer-top{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-8);flex-wrap:wrap}.footer .big{font-family:var(--font-display);font-size:clamp(40px,7vw,96px);line-height:.9;text-transform:uppercase;letter-spacing:.02em;color:var(--color-fg)}.footer .big .accent{color:var(--color-acid)}.footer-meta{display:flex;flex-direction:column;gap:10px;font-family:var(--font-mono);font-size:11px;color:var(--color-fg-3);text-transform:uppercase;letter-spacing:.1em}.footer-bot{display:flex;align-items:center;justify-content:space-between;margin-top:var(--space-12);padding-top:var(--space-6);border-top:1px solid var(--color-border);flex-wrap:wrap;gap:16px}.footer-bot .copy{font-family:var(--font-mono);font-size:10px;color:var(--color-fg-4);letter-spacing:.1em;text-transform:uppercase}.to-top{font-family:var(--font-mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--color-fg-2);cursor:pointer;display:flex;align-items:center;gap:8px;background:none;border:none}.to-top:hover{color:var(--color-acid)}.status-badge{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:9999px;border:1px solid var(--color-acid);color:var(--color-acid);font-family:var(--font-mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase}.status-badge .dot{width:6px;height:6px;border-radius:50%;background:var(--color-acid);box-shadow:0 0 8px var(--color-acid)}.reveal{opacity:0;transform:translateY(28px);transition:opacity .7s var(--ease-out),transform .7s var(--ease-out)}.reveal.in{opacity:1;transform:none}.reveal.d1{transition-delay:.08s}.reveal.d2{transition-delay:.16s}.reveal.d3{transition-delay:.24s}.reveal.d4{transition-delay:.32s}.reveal.d5{transition-delay:.4s}@media (prefers-reduced-motion: reduce){.reveal{opacity:1;transform:none;transition:none}.scan,.blob{display:none}}@media (max-width: 1024px){.hero-grid{grid-template-columns:1fr}.hero-panel{display:none}.about-grid,.contact-grid{grid-template-columns:1fr}.skill-cats{grid-template-columns:1fr;gap:var(--space-8)}.proj-grid{grid-template-columns:repeat(2,1fr)}.tools-grid{grid-template-columns:repeat(3,1fr)}}@media (max-width: 720px){.nav-links,.nav-cta .btn-cv{display:none}.nav-burger{display:grid}section{padding:var(--space-16) 0}.proj-grid{grid-template-columns:1fr}.tools-grid{grid-template-columns:repeat(2,1fr)}.infogrid{grid-template-columns:1fr}.sheet{padding:var(--space-6)}.footer-top{flex-direction:column}}.vf-portrait{width:100%;aspect-ratio:4/5;position:relative;overflow:hidden;border-radius:var(--radius-md);background:linear-gradient(160deg,var(--color-acid-subtle),transparent),var(--color-bg-alt);display:grid;place-items:center}.vf-portrait:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(var(--color-acid-subtle) 1px,transparent 1px),linear-gradient(90deg,var(--color-acid-subtle) 1px,transparent 1px);background-size:30px 30px;-webkit-mask-image:radial-gradient(120% 100% at 70% 0%,#000 30%,transparent 92%);mask-image:radial-gradient(120% 100% at 70% 0%,#000 30%,transparent 92%)}.vf-portrait-initials{position:relative;font-family:var(--font-display);font-size:clamp(80px,16vw,150px);line-height:1;color:var(--color-acid);text-shadow:0 0 40px var(--color-acid-glow);letter-spacing:.04em}.vf-tweaks{position:fixed;right:18px;bottom:18px;z-index:90;display:flex;flex-direction:column;align-items:flex-end;gap:12px}.vf-tweaks-fab{width:46px;height:46px;border-radius:var(--radius-pill);cursor:pointer;background:var(--glass-floating-bg);backdrop-filter:blur(var(--glass-floating-blur)) saturate(1.8);-webkit-backdrop-filter:blur(var(--glass-floating-blur)) saturate(1.8);border:1px solid var(--color-acid);color:var(--color-acid);font-size:18px;display:grid;place-items:center;box-shadow:var(--glass-floating-spec),0 0 24px var(--color-acid-subtle);transition:var(--transition-default)}.vf-tweaks-fab:hover{transform:translateY(-2px);box-shadow:var(--glass-floating-spec),0 0 32px var(--color-acid-glow)}.vf-tweaks-panel{width:244px;padding:16px;border-radius:var(--radius-lg);background:var(--glass-floating-bg);backdrop-filter:blur(var(--glass-floating-blur)) saturate(1.8);-webkit-backdrop-filter:blur(var(--glass-floating-blur)) saturate(1.8);border:1px solid var(--glass-floating-border);box-shadow:var(--glass-floating-spec),0 24px 60px #0000004d;display:flex;flex-direction:column;gap:14px}.vf-tweaks-title{font-family:var(--font-mono);font-size:10px;letter-spacing:.12em;color:var(--color-fg-3);text-transform:uppercase}.vf-tw-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.vf-tw-k{font-family:var(--font-mono);font-size:10px;letter-spacing:.1em;color:var(--color-fg-2);text-transform:uppercase}.vf-tw-seg{display:inline-flex;border:1px solid var(--color-border-bright);border-radius:var(--radius-sm);overflow:hidden}.vf-tw-seg button{font-family:var(--font-mono);font-size:9.5px;letter-spacing:.06em;text-transform:uppercase;padding:6px 9px;background:transparent;border:none;color:var(--color-fg-3);cursor:pointer;transition:var(--transition-default)}.vf-tw-seg button:hover{color:var(--color-fg)}.vf-tw-seg button.on{background:var(--color-acid);color:#0a0a0c}.vf-tw-swatches{display:inline-flex;gap:6px}.vf-sw{width:22px;height:22px;border-radius:var(--radius-sm);border:2px solid transparent;cursor:pointer;transition:var(--transition-default)}.vf-sw:hover{transform:scale(1.1)}.vf-sw.on{border-color:var(--color-fg);box-shadow:0 0 0 2px var(--color-bg),0 0 12px currentColor}@media (max-width: 720px){.vf-tweaks-panel{width:210px}}.ap-filter{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.ap-filter-k{font-family:var(--font-mono);font-size:var(--text-mono-md);letter-spacing:.12em;text-transform:uppercase;color:var(--color-fg-3);margin-right:4px}.ap-chip{font-family:var(--font-mono);font-size:var(--text-mono-md);letter-spacing:.06em;text-transform:uppercase;padding:7px 14px;border-radius:var(--radius-pill);cursor:pointer;border:1px solid var(--color-border-bright);color:var(--color-fg-2);background:var(--glass-ambient-bg);transition:var(--transition-default)}.ap-chip:hover{border-color:var(--color-acid);color:var(--color-acid)}.ap-chip.on{background:var(--color-acid);color:#0a0a0c;border-color:var(--color-acid)}
