:root{--c-base: #0a0000;--c-base-2: #120202;--c-surface-1: #1a0505;--c-surface-2: #4a0000;--c-surface-3: #7a0000;--c-accent: #e11d2e;--c-accent-strong: #d3182a;--c-accent-glow: #ff3b3b;--c-warm: #c98a6b;--c-text: #f5edeb;--c-text-muted: #c0b0ac;--c-text-faint: #9b8a86;--glass-bg: linear-gradient(160deg, rgba(40, 8, 8, .62), rgba(18, 2, 2, .72));--glass-border: rgba(225, 29, 46, .22);--line: rgba(245, 237, 235, .08);--line-accent: rgba(255, 59, 59, .4);--font-display: "Space Grotesk", "Inter", system-ui, sans-serif;--font-body: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono: "Fira Code", ui-monospace, SFMono-Regular, monospace;--fs-xs: .75rem;--fs-sm: .875rem;--fs-base: 1rem;--fs-md: clamp(1.05rem, .98rem + .3vw, 1.2rem);--fs-lg: clamp(1.25rem, 1.1rem + .6vw, 1.55rem);--fs-xl: clamp(1.75rem, 1.3rem + 1.8vw, 2.6rem);--fs-2xl: clamp(2.25rem, 1.6rem + 3vw, 4rem);--fs-hero: clamp(3rem, 1.8rem + 6.2vw, 6.75rem);--sp-1: .25rem;--sp-2: .5rem;--sp-3: .75rem;--sp-4: 1rem;--sp-5: 1.5rem;--sp-6: 2rem;--sp-7: 3rem;--sp-8: 4.5rem;--sp-9: 7rem;--gutter: clamp(1.25rem, 4vw, 3rem);--section-y: clamp(5rem, 10vw, 8.5rem);--container: 1200px;--r-sm: 8px;--r-md: 14px;--r-lg: 22px;--r-pill: 999px;--shadow-card: 0 18px 50px -20px rgba(0, 0, 0, .8);--glow-sm: 0 0 18px -2px rgba(225, 29, 46, .45);--glow-md: 0 0 38px -4px rgba(225, 29, 46, .5);--glow-lg: 0 0 90px -10px rgba(255, 59, 59, .5);--ease: cubic-bezier(.22, 1, .36, 1);--dur: .5s;--body-glow: rgba(122, 0, 0, .35);--glow-hero-1: rgba(122, 0, 0, .6);--glow-hero-2: rgba(74, 0, 0, .5);--glow-contact: rgba(122, 0, 0, .55);--blob-a: rgba(225, 29, 46, .6);--blob-b: rgba(122, 0, 0, .7);--blob-opacity: .55;--role-shadow: 0 0 28px rgba(255, 59, 59, .45);--name-glow: rgba(255, 59, 59, .16);--stripe: rgba(255, 59, 59, .13);--grid-line: rgba(255, 59, 59, .3);--beam: rgba(225, 29, 46, .22);--chip-bg: rgba(40, 8, 8, .55);--chip-bg-hover: rgba(74, 0, 0, .5);--pill-bg: rgba(40, 8, 8, .45);--input-bg: rgba(26, 5, 5, .7);--nav-bg: rgba(14, 2, 2, .72);--menu-bg: rgba(14, 2, 2, .94);--fab-bg: rgba(20, 3, 3, .85);--nav-shadow: 0 10px 40px -14px rgba(0, 0, 0, .9);--logo-bg: rgba(245, 237, 235, .94);--preview-bg: #0e0303;--preview-fade: rgba(10, 0, 0, .85);--badge-bg: rgba(10, 0, 0, .75);--vignette: rgba(0, 0, 0, .55);--grain-opacity: .07;color-scheme:dark}:root[data-theme=light]{--c-base: #fbf5f3;--c-base-2: #f5eae6;--c-surface-1: #ffffff;--c-surface-2: #f3dcd6;--c-surface-3: #e8b9b0;--c-accent: #d0192b;--c-accent-strong: #c8102e;--c-accent-glow: #c8102e;--c-warm: #a8603f;--c-text: #1a0505;--c-text-muted: #5a433f;--c-text-faint: #77605b;--glass-bg: linear-gradient(160deg, rgba(255, 255, 255, .88), rgba(255, 238, 234, .72));--glass-border: rgba(200, 16, 46, .2);--line: rgba(26, 5, 5, .1);--line-accent: rgba(200, 16, 46, .42);--shadow-card: 0 18px 44px -22px rgba(120, 20, 30, .32);--glow-sm: 0 0 18px -4px rgba(200, 16, 46, .35);--glow-md: 0 0 34px -6px rgba(200, 16, 46, .4);--glow-lg: 0 0 70px -12px rgba(200, 16, 46, .4);--body-glow: rgba(225, 29, 46, .1);--glow-hero-1: rgba(225, 29, 46, .16);--glow-hero-2: rgba(232, 185, 176, .5);--glow-contact: rgba(225, 29, 46, .14);--blob-a: rgba(225, 29, 46, .35);--blob-b: rgba(232, 150, 140, .55);--blob-opacity: .45;--role-shadow: none;--name-glow: rgba(225, 29, 46, .1);--stripe: rgba(200, 16, 46, .1);--grid-line: rgba(200, 16, 46, .26);--beam: rgba(225, 29, 46, .16);--chip-bg: rgba(255, 255, 255, .72);--chip-bg-hover: rgba(225, 29, 46, .08);--pill-bg: rgba(255, 255, 255, .65);--input-bg: rgba(255, 255, 255, .9);--nav-bg: rgba(255, 250, 248, .78);--menu-bg: rgba(255, 250, 248, .97);--fab-bg: rgba(255, 250, 248, .94);--nav-shadow: 0 10px 34px -16px rgba(120, 20, 30, .35);--logo-bg: #ffffff;--preview-bg: #f1e4e0;--preview-fade: rgba(60, 10, 10, .22);--badge-bg: rgba(255, 250, 248, .92);--vignette: rgba(150, 40, 40, .1);--grain-opacity: .06;color-scheme:light}:root[data-theme=light] .fx-grain{filter:invert(1)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;scroll-padding-top:5.5rem;background:var(--c-base);-webkit-text-size-adjust:100%;overflow-x:clip}body{font-family:var(--font-body);font-size:var(--fs-base);line-height:1.65;color:var(--c-text);background:radial-gradient(ellipse 80% 50% at 50% -10%,var(--body-glow),transparent 70%),var(--c-base);overflow-x:clip;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}ul,ol{list-style:none}h1,h2,h3{font-family:var(--font-display);line-height:1.05;letter-spacing:-.02em;font-weight:700}::selection{background:var(--c-accent-strong);color:#fff}:focus-visible{outline:2px solid var(--c-accent-glow);outline-offset:3px;border-radius:4px}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:var(--c-base)}::-webkit-scrollbar-thumb{background:var(--c-surface-2);border-radius:8px}::-webkit-scrollbar-thumb:hover{background:var(--c-accent)}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.skip-link{position:fixed;top:.75rem;left:.75rem;z-index:200;padding:.6rem 1rem;background:var(--c-accent-strong);color:#fff;border-radius:var(--r-sm);font-weight:600;transform:translateY(-200%)}.skip-link:focus{transform:none}.fx-grain,.fx-vignette{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:90}.fx-grain{opacity:var(--grain-opacity);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .9 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}.fx-vignette{background:radial-gradient(ellipse at center,transparent 55%,var(--vignette) 100%)}.fx-stripes{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;background:repeating-linear-gradient(-62deg,transparent 0 54px,var(--stripe) 54px 55px);-webkit-mask-image:radial-gradient(ellipse 70% 65% at 50% 50%,transparent 28%,#000 100%);mask-image:radial-gradient(ellipse 70% 65% at 50% 50%,transparent 28%,#000 100%)}.fx-cursor{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:1;opacity:0;transition:opacity .4s;background:radial-gradient(420px circle at var(--cx, 50%) var(--cy, 50%),rgba(225,29,46,.14),transparent 70%)}.fx-cursor.on{opacity:1}.container{width:100%;max-width:calc(var(--container) + var(--gutter) * 2);padding-inline:var(--gutter);margin-inline:auto;position:relative;z-index:2}.section{position:relative;padding-block:var(--section-y)}.section+.section:before{content:"";position:absolute;top:0;left:50%;width:min(640px,80%);height:1px;transform:translate(-50%);background:linear-gradient(90deg,transparent,var(--line-accent),transparent)}.eyebrow{display:inline-flex;align-items:center;gap:.75rem;font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.18em;text-transform:uppercase;color:var(--c-accent-glow)}.eyebrow:before{content:"";width:2.25rem;height:1px;background:currentColor}.section-head{margin-bottom:clamp(2.5rem,5vw,4rem);display:grid;gap:var(--sp-4)}.section-head h2{font-size:var(--fs-2xl)}.section-head h2 em{font-style:normal;color:var(--c-accent-glow)}.glass{position:relative;border-radius:var(--r-lg);background:var(--glass-bg);border:1px solid var(--glass-border);box-shadow:var(--shadow-card);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);overflow:hidden;isolation:isolate;transition:border-color .4s var(--ease),box-shadow .4s var(--ease),transform .4s var(--ease)}.glass:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;opacity:0;transition:opacity .4s;background:radial-gradient(380px circle at var(--mx, 50%) var(--my, 0%),rgba(255,59,59,.16),transparent 65%)}.glass:hover{border-color:var(--line-accent);box-shadow:var(--shadow-card),var(--glow-sm)}.glass:hover:before{opacity:1}.btn{--pad-y: .95rem;display:inline-flex;align-items:center;gap:.6rem;padding:var(--pad-y) 1.6rem;border-radius:var(--r-pill);font-family:var(--font-display);font-weight:600;font-size:var(--fs-base);letter-spacing:.01em;border:1px solid transparent;cursor:pointer;transition:box-shadow .35s var(--ease),background .35s var(--ease),border-color .35s var(--ease);will-change:transform}.btn svg{font-size:1.05em;flex:none}.btn-primary{background:linear-gradient(135deg,var(--c-accent-strong),#a80f1f);color:#fff;box-shadow:inset 0 1px #ffffff38,var(--glow-md)}.btn-primary:hover{box-shadow:inset 0 1px #ffffff4d,0 0 52px -2px #ff3b3bb3}.btn-ghost{background:color-mix(in srgb,var(--c-text) 4%,transparent);border-color:color-mix(in srgb,var(--c-text) 22%,transparent);color:var(--c-text);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.btn-ghost:hover{border-color:var(--c-accent-glow);background:#e11d2e1a;box-shadow:var(--glow-sm)}.nav{position:fixed;top:.9rem;left:0;right:0;z-index:100;display:flex;justify-content:center;padding-inline:var(--gutter);pointer-events:none}.nav-inner{background:var(--nav-bg);border-color:var(--glass-border);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:var(--nav-shadow);pointer-events:auto;width:100%;max-width:980px;display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4);padding:.55rem .7rem .55rem 1.3rem;border-radius:var(--r-pill);border:1px solid var(--glass-border);transition:background .4s var(--ease),border-color .4s var(--ease),box-shadow .4s var(--ease)}.nav.scrolled .nav-inner,.nav.open .nav-inner{background:var(--nav-bg);border-color:var(--glass-border);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:var(--nav-shadow)}.logo{font-family:var(--font-display);font-weight:700;font-size:1.15rem;letter-spacing:-.01em}.logo span{color:var(--c-accent-glow)}.nav-links{display:flex;gap:.15rem}.nav-links a{position:relative;display:block;padding:.5rem .95rem;border-radius:var(--r-pill);font-size:var(--fs-sm);font-weight:500;color:var(--c-text-muted);transition:color .25s,background .25s}.nav-links a:hover,.nav-links a.active{color:var(--c-text);background:#e11d2e24}.nav-actions{display:flex;align-items:center;gap:.5rem}.icon-btn{width:2.6rem;height:2.6rem;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:1.05rem;border:1px solid var(--glass-border);color:var(--c-text);transition:background .25s,box-shadow .25s,border-color .25s,color .25s}.icon-btn:hover{background:#e11d2e1f;border-color:var(--c-accent-glow);box-shadow:var(--glow-sm)}.theme-toggle svg{transition:transform .5s var(--ease)}.theme-toggle:hover svg{transform:rotate(25deg) scale(1.1)}.nav-toggle{display:none}@media (max-width: 800px){.nav-toggle{display:inline-flex}.nav-actions{margin-left:auto}.nav-links{position:absolute;top:calc(100% + .5rem);left:var(--gutter);right:var(--gutter);flex-direction:column;gap:.25rem;padding:.75rem;border-radius:var(--r-lg);background:var(--menu-bg);border:1px solid var(--glass-border);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);pointer-events:auto;opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity .3s var(--ease),transform .3s var(--ease),visibility .3s}.nav.open .nav-links{opacity:1;visibility:visible;transform:none}.nav-links a{padding:.85rem 1rem;font-size:var(--fs-base)}.nav{flex-direction:column;align-items:center}}.scroll-up{position:fixed;right:1.25rem;bottom:1.25rem;z-index:95;width:3rem;height:3rem;border-radius:50%;display:grid;place-items:center;background:var(--fab-bg);border:1px solid var(--glass-border);color:var(--c-accent-glow);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;pointer-events:none;transform:translateY(10px);transition:opacity .3s,transform .3s var(--ease),box-shadow .3s}.scroll-up.show{opacity:1;pointer-events:auto;transform:none}.scroll-up:hover{box-shadow:var(--glow-md)}.footer{position:relative;z-index:2;padding:2.25rem var(--gutter) 2.75rem;text-align:center;font-size:var(--fs-sm);color:var(--c-text-faint);border-top:1px solid var(--line)}.footer p{display:flex;flex-wrap:wrap;gap:.4rem .6rem;justify-content:center;align-items:center}.footer strong{color:var(--c-text);font-weight:600}.footer a{color:var(--c-text-muted);border-bottom:1px solid var(--line-accent)}.footer a:hover,.footer .heart{color:var(--c-accent-glow)}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}.flat{backdrop-filter:none;-webkit-backdrop-filter:none}.hero{position:relative;min-height:100svh;display:flex;align-items:center;padding-block:7rem 4.5rem;overflow:hidden}.hero-bg{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;background:radial-gradient(ellipse 60% 55% at 50% 45%,var(--glow-hero-1),transparent 70%),radial-gradient(ellipse 50% 40% at 10% 100%,var(--glow-hero-2),transparent 70%)}.hero-beam{position:absolute;top:-20%;width:22vw;height:150%;background:linear-gradient(180deg,transparent,var(--beam) 45%,transparent);filter:blur(26px);transform:rotate(24deg);opacity:.8;will-change:transform}.hero-beam-a{left:8%;animation:beam-a 14s ease-in-out infinite alternate}.hero-beam-b{right:6%;width:14vw;opacity:.6;animation:beam-b 18s ease-in-out infinite alternate}@keyframes beam-a{to{transform:rotate(24deg) translate(7vw)}}@keyframes beam-b{to{transform:rotate(24deg) translate(-6vw)}}.hero-floor{position:absolute;left:0;right:0;bottom:0;height:58%;overflow:hidden;perspective:480px;perspective-origin:50% 0;-webkit-mask-image:linear-gradient(to top,#000 0%,rgba(0,0,0,.55) 40%,transparent 92%);mask-image:linear-gradient(to top,#000 0%,rgba(0,0,0,.55) 40%,transparent 92%)}.hero-floor:before{content:"";position:absolute;left:-60%;right:-60%;top:0;height:260%;background-image:linear-gradient(var(--grid-line) 1px,transparent 1px),linear-gradient(90deg,var(--grid-line) 1px,transparent 1px);background-size:72px 72px;transform-origin:50% 0;transform:rotateX(68deg) translateY(0);animation:floor-run 3.2s linear infinite;will-change:transform}@keyframes floor-run{to{transform:rotateX(68deg) translateY(72px)}}@media (max-width: 900px){.hero-floor{height:46%}.hero-floor:before{background-size:48px 48px}@keyframes floor-run{to{transform:rotateX(68deg) translateY(48px)}}.hero-beam{width:34vw}}.blob{position:absolute;border-radius:50%;filter:blur(90px);opacity:var(--blob-opacity);will-change:transform}.blob-a{width:46vmax;height:46vmax;right:-12vmax;top:-10vmax;background:radial-gradient(circle,var(--blob-a),transparent 65%);animation:drift-a 16s ease-in-out infinite alternate}.blob-b{width:34vmax;height:34vmax;left:-14vmax;bottom:-14vmax;background:radial-gradient(circle,var(--blob-b),transparent 65%);animation:drift-b 20s ease-in-out infinite alternate}@keyframes drift-a{to{transform:translate3d(-8vmax,6vmax,0) scale(1.15)}}@keyframes drift-b{to{transform:translate3d(8vmax,-5vmax,0) scale(1.1)}}.hero-grid{display:grid;grid-template-columns:minmax(0,1fr);justify-items:center;gap:var(--sp-5)}.hero-copy{display:grid;gap:var(--sp-4);justify-items:center;text-align:center;width:100%}.hero-name{position:relative;width:100%;max-width:1100px}.hero-name:before{content:"";position:absolute;top:-10%;right:-4%;bottom:-10%;left:-4%;background:radial-gradient(ellipse 60% 55% at 50% 50%,var(--name-glow),transparent 70%);pointer-events:none}.hero-name canvas{position:relative}.hero-role{font-size:var(--fs-lg);color:var(--c-text-muted)}.hero-role-text{color:var(--c-accent-glow);font-weight:600;text-shadow:var(--role-shadow)}.hero-cta{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--sp-4)}.scroll-cue{position:absolute;left:50%;bottom:1.5rem;width:1.6rem;height:2.6rem;transform:translate(-50%);border:1.5px solid color-mix(in srgb,var(--c-text) 35%,transparent);border-radius:1rem;z-index:3}.scroll-cue span{position:absolute;left:50%;top:.45rem;width:3px;height:.5rem;margin-left:-1.5px;border-radius:2px;background:var(--c-accent-glow);animation:cue 1.8s var(--ease) infinite}@keyframes cue{0%{opacity:0;transform:translateY(0)}30%{opacity:1}to{opacity:0;transform:translateY(.9rem)}}@media (max-width: 900px){.hero-cta{gap:var(--sp-3)}.hero-cta .btn{--pad-y: .75rem;padding-inline:1.25rem;font-size:var(--fs-sm)}.scroll-cue{display:none}}.about-grid{display:grid;grid-template-columns:.95fr 1.05fr;gap:clamp(2rem,6vw,5rem);align-items:center}.about-media{justify-self:center}.about-frame{position:relative;width:min(440px,80vw);aspect-ratio:1;border-radius:var(--r-lg)}.about-frame{transform-style:preserve-3d;cursor:default}.about-frame:before{transition:transform .5s var(--ease),box-shadow .5s var(--ease),border-color .5s;content:"";position:absolute;top:0;right:0;bottom:0;left:0;border:1px solid var(--line-accent);border-radius:inherit;transform:translate(16px,16px);box-shadow:var(--glow-sm)}.about-frame picture{position:relative;display:block;width:100%;height:100%}.about-frame img{display:block;width:100%;height:100%;object-fit:cover;object-position:center top;border-radius:var(--r-lg);box-shadow:var(--shadow-card)}.about-copy{display:grid;gap:var(--sp-5);justify-items:start}.about-title{font-size:var(--fs-xl);text-wrap:balance}.about-title em{font-style:normal;color:var(--c-accent-glow)}.about-text{color:var(--c-text-muted);font-size:var(--fs-md);max-width:60ch}@media (max-width: 800px){.about-grid{grid-template-columns:1fr}.about-copy{justify-items:center;text-align:center}}.chips{display:grid;grid-template-columns:repeat(auto-fill,minmax(185px,1fr));gap:var(--sp-3)}.chip{display:inline-flex;align-items:center;gap:.65rem;padding:.65rem 1rem .65rem .75rem;border-radius:var(--r-md);min-width:0;background:var(--chip-bg);border:1px solid var(--line);font-weight:500;font-size:var(--fs-sm);transition:border-color .3s var(--ease),box-shadow .3s var(--ease),transform .3s var(--ease),background .3s}.chip img,.chip-icon{width:30px;height:30px;flex:none;object-fit:contain}.chip-icon{display:inline-flex}.chip-icon>*,.chip-icon svg{width:100%;height:100%}.chip:hover{border-color:var(--line-accent);background:var(--chip-bg-hover);box-shadow:var(--glow-sm);transform:translateY(-3px)}.timeline{position:relative;display:grid;gap:var(--sp-5);padding-left:clamp(1.75rem,4vw,3rem)}.timeline:before{content:"";position:absolute;left:.5rem;top:.5rem;bottom:.5rem;width:2px;background:linear-gradient(180deg,var(--c-accent-glow),rgba(225,29,46,.1));box-shadow:0 0 14px #e11d2e80}.tl-item{position:relative}.tl-dot{position:absolute;left:calc(-1*clamp(1.75rem,4vw,3rem) + .5rem - 6px);top:2.1rem;width:14px;height:14px;border-radius:50%;background:var(--c-base);border:2px solid var(--c-accent-glow);box-shadow:0 0 12px #ff3b3bb3}.tl-dot.live{background:var(--c-accent-glow);animation:ping 2s ease-out infinite}@keyframes ping{0%{box-shadow:0 0 #ff3b3bb3}to{box-shadow:0 0 0 14px #ff3b3b00}}.tl-card{display:flex;align-items:center;gap:var(--sp-5);padding:clamp(1.1rem,3vw,1.75rem)}.tl-logo{flex:none;width:4.5rem;height:4.5rem;display:grid;place-items:center;padding:.6rem;border-radius:var(--r-md);background:var(--logo-bg);border:1px solid var(--line);transition:box-shadow .3s}.tl-logo:hover{box-shadow:var(--glow-md)}.tl-logo img{max-width:100%;max-height:100%;object-fit:contain}.tl-body h3{font-size:var(--fs-lg)}.tl-role{color:var(--c-accent-glow);font-weight:600;margin-top:.2rem}.tl-meta{display:flex;flex-wrap:wrap;gap:.25rem 1.25rem;margin-top:.7rem;font-size:var(--fs-sm);color:var(--c-text-muted)}.tl-meta span{color:var(--c-text-faint)}@media (max-width: 560px){.tl-card{flex-direction:column;align-items:flex-start}}.project-preview-container,.projects{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,330px),1fr));gap:var(--sp-5)}.project-preview-container>*{display:flex}.project-preview-container>*>.project__item{width:100%}.view-all{display:flex;justify-content:center;margin-top:var(--sp-7)}.project__item{display:flex;flex-direction:column;height:100%}.project__item:hover{transform:translateY(-6px)}.project__preview{position:relative;aspect-ratio:2.1 / 1;overflow:hidden;background:var(--preview-bg)}.project__preview:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,transparent 50%,var(--preview-fade));pointer-events:none}.project__preview img{width:100%;height:100%;object-fit:fill;transition:transform .9s var(--ease)}.project__item:hover .project__preview img{transform:scale(1.03)}.project__featured,.badge-new{position:absolute;top:.8rem;z-index:2;padding:.25rem .7rem;border-radius:var(--r-pill);font-family:var(--font-mono);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase}.project__featured{left:.8rem;background:var(--badge-bg);border:1px solid var(--line-accent);color:var(--c-accent-glow);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.badge-new{right:.8rem;background:var(--c-accent-strong);color:#fff}.project__details{display:flex;flex-direction:column;justify-content:space-between;gap:var(--sp-4);flex:1;padding:1.25rem 1.4rem 1.4rem}.project__title{font-size:var(--fs-lg)}.project__tech__stacks{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.8rem}.project__tech__stack{padding:.2rem .65rem;border-radius:var(--r-pill);border:1px solid var(--line);font-size:var(--fs-xs);color:var(--c-text-muted);background:color-mix(in srgb,var(--c-text) 4%,transparent)}.project__notes{margin-top:.8rem;font-size:var(--fs-sm);color:var(--c-text-muted)}.project__btns{display:flex;gap:.6rem}.project__btn{display:grid;place-items:center;width:2.5rem;height:2.5rem;border-radius:50%;border:1px solid var(--glass-border);color:var(--c-text-muted);transition:color .25s,border-color .25s,box-shadow .25s,background .25s}.project__btn:hover{color:#fff;background:var(--c-accent-strong);border-color:var(--c-accent-strong);box-shadow:var(--glow-sm)}.main{position:relative;padding:8rem 0 var(--sp-9);min-height:100svh}.project-page-header{display:grid;gap:var(--sp-4);margin-bottom:var(--sp-6)}.project-page-header h1{font-size:var(--fs-2xl)}.filter-items{display:flex;flex-wrap:wrap;gap:.5rem}.filter-item{display:inline-flex;align-items:center;gap:.5rem;padding:.45rem .95rem;border-radius:var(--r-pill);border:1px solid var(--line);background:var(--pill-bg);font-size:var(--fs-sm);color:var(--c-text-muted);text-transform:lowercase;transition:border-color .25s,color .25s,background .25s,box-shadow .25s}.filter-item:hover{border-color:var(--line-accent);color:var(--c-text)}.filter-item.active{background:var(--c-accent-strong);border-color:var(--c-accent-strong);color:#fff;box-shadow:var(--glow-sm)}.badge{display:inline-grid;place-items:center;min-width:1.35rem;height:1.35rem;padding:0 .35rem;border-radius:var(--r-pill);background:color-mix(in srgb,var(--c-text) 12%,transparent);font-size:.7rem}.search__project__item{margin-block:var(--sp-5) var(--sp-4);max-width:520px}.search{position:relative}.search input{width:100%;padding:.9rem 1.1rem;border-radius:var(--r-pill);border:1px solid var(--glass-border);background:var(--input-bg);color:var(--c-text);font:inherit;transition:border-color .25s,box-shadow .25s}.search input::placeholder{color:var(--c-text-faint)}.search input:hover,.search input:focus{outline:none;border-color:var(--c-accent-glow);box-shadow:var(--glow-sm)}.project__count__div{margin-bottom:var(--sp-5);font-size:var(--fs-sm)}.projects.no-projects{display:block}.pagination-container{display:flex;align-items:center;justify-content:center;gap:var(--sp-5);margin-top:var(--sp-7)}.pagination-button{display:grid;place-items:center;width:3rem;height:3rem;border-radius:50%;border:1px solid var(--glass-border);transition:box-shadow .25s,border-color .25s}.pagination-button:hover:not(.disabled){border-color:var(--c-accent-glow);box-shadow:var(--glow-sm)}.pagination-button.disabled{opacity:.35;cursor:not-allowed}.pagination-text{color:var(--c-text-muted);font-size:var(--fs-sm)}.contact-panel{display:grid;gap:var(--sp-6);padding:clamp(1.75rem,5vw,4rem);background:radial-gradient(ellipse 60% 90% at 100% 0%,var(--glow-contact),transparent 70%),var(--glass-bg)}.contact-glow{position:absolute;right:-10%;top:-40%;width:60%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(255,59,59,.28),transparent 65%);filter:blur(40px);z-index:-1;animation:halo 7s ease-in-out infinite alternate}.contact-lead{font-size:var(--fs-xl);max-width:22ch;text-wrap:balance}.contact-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-5)}.socials{display:flex;gap:.6rem}.socials a{display:grid;place-items:center;width:3rem;height:3rem;border-radius:50%;border:1px solid var(--glass-border);background:color-mix(in srgb,var(--c-text) 4%,transparent);transition:transform .3s var(--ease),box-shadow .3s,border-color .3s}.socials a:hover{transform:translateY(-3px);border-color:var(--c-accent-glow);box-shadow:var(--glow-md)}.socials svg{width:1.25rem;height:1.25rem;color:var(--c-text-muted);transition:color .3s}.socials a:hover svg{color:var(--c-accent-glow)}.error-page{min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-5);text-align:center;position:relative;z-index:2}.error-page h1{font-size:clamp(6rem,20vw,12rem);background:linear-gradient(180deg,var(--c-accent-glow),var(--c-surface-3));-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 0 40px rgba(225,29,46,.5))}.error-page p{color:var(--c-text-muted)}@keyframes halo{0%{opacity:.65;transform:scale(.96)}to{opacity:1;transform:scale(1.04)}}.about-frame:hover:before{transform:translate(7px,7px);border-color:var(--c-accent-glow);box-shadow:var(--glow-lg)}.about-frame picture{overflow:hidden;border-radius:var(--r-lg)}.about-frame img{transition:transform .9s var(--ease),filter .5s}.about-frame:hover img{filter:saturate(1.15) contrast(1.05)}.tilt-glare{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:var(--r-lg);pointer-events:none;opacity:0;mix-blend-mode:soft-light;transition:opacity .4s}.about-frame:hover .tilt-glare{opacity:1}@media (max-width: 640px){.chips{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem}.chip{gap:.6rem;padding:.55rem .7rem;border-radius:var(--r-md);min-width:0}}.chip{position:relative;overflow:hidden;isolation:isolate}.chip:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;opacity:0;transition:opacity .35s;background:radial-gradient(180px circle at var(--mx, 50%) var(--my, 50%),rgba(255,59,59,.3),transparent 70%)}.chip:hover:before{opacity:1}.chip:hover{transform:translateY(-5px) scale(1.03);border-color:var(--c-accent-glow);box-shadow:var(--glow-md)}.chip img,.chip-icon{transition:transform .4s var(--ease)}.chip:hover img,.chip:hover .chip-icon{transform:scale(1.18) rotate(-6deg)}.skill-groups{display:grid;gap:var(--sp-6)}.skill-group{display:grid;grid-template-columns:170px 1fr;gap:var(--sp-5);align-items:start;padding-top:var(--sp-5);border-top:1px solid var(--line)}.skill-group-title{font-family:var(--font-mono);font-size:var(--fs-xs);font-weight:400;letter-spacing:.16em;text-transform:uppercase;color:var(--c-accent-glow);padding-top:.9rem}.skill-group .chips{grid-template-columns:repeat(auto-fill,minmax(170px,1fr))}@media (max-width: 800px){.skill-group{grid-template-columns:1fr;gap:var(--sp-3)}.skill-group-title{padding-top:0}}@media (max-width: 640px){.skill-group .chips{grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem}}.chip{cursor:pointer}.chip-link{color:inherit;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .3s}.chip-link:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0}.chip:hover .chip-link{color:var(--c-text)}.chip:focus-within{outline:2px solid var(--c-accent-glow);outline-offset:2px}.chip-link:focus-visible{outline:none}.about-frame{--hero: url(/images/hero-720.webp)}.fx-ring{position:absolute;top:-3px;right:-3px;bottom:-3px;left:-3px;border-radius:calc(var(--r-lg) + 3px);padding:3px;background:conic-gradient(from var(--a, 0deg),transparent 0 55%,#ff3b3b 75%,#fff 80%,#ff3b3b 85%,transparent 100%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0);filter:drop-shadow(0 0 10px rgba(255,59,59,.9));animation:fx-spin 3.5s linear infinite;pointer-events:none;transform:translateZ(2px)}@property --a{syntax: "<angle>"; inherits: false; initial-value: 0deg;}@keyframes fx-spin{to{--a: 360deg}}.fx-clip{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:var(--r-lg);overflow:hidden;pointer-events:none}.fx-grid{position:absolute;top:0;right:0;bottom:0;left:0;background:repeating-linear-gradient(to bottom,rgba(0,0,0,.18) 0 1px,transparent 1px 3px),linear-gradient(rgba(255,59,59,.08) 1px,transparent 1px) 0 0 / 100% 44px,linear-gradient(90deg,rgba(255,59,59,.08) 1px,transparent 1px) 0 0 / 44px 100%;mix-blend-mode:overlay;opacity:.7;animation:fx-flicker 3s steps(2) infinite}@keyframes fx-flicker{0%,to{opacity:.7}50%{opacity:.45}}.fx-float{position:absolute;left:var(--x);top:var(--y);padding:.35rem .7rem;font-family:var(--font-mono, ui-monospace, monospace);font-size:.8rem;color:#ffd6d6;background:#1e0608a6;border:1px solid rgba(255,59,59,.55);border-radius:999px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:0 0 18px #ff3b3b73;transform:translate3d(-50%,-50%,var(--z));animation:fx-bob 5s ease-in-out infinite;animation-delay:var(--d);pointer-events:none;white-space:nowrap}@keyframes fx-bob{0%,to{translate:0 0;rotate:-3deg}50%{translate:0 -14px;rotate:3deg}}.about-frame:after{content:"";position:absolute;top:-12%;right:-12%;bottom:-12%;left:-12%;z-index:-1;background:radial-gradient(closest-side,rgba(255,59,59,.45),transparent 70%);filter:blur(30px);animation:fx-pulse 3s ease-in-out infinite;pointer-events:none}@keyframes fx-pulse{0%,to{opacity:.5;transform:scale(.95)}50%{opacity:1;transform:scale(1.08)}}.about-frame:hover img{transform:scale(1.06)}@media (max-width: 800px){.fx-float{padding:.22rem .5rem;font-size:.66rem}}@media (prefers-reduced-motion: reduce){.fx-ring,.fx-grid,.fx-float,.about-frame:after{animation:none}}
