*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}:root{--bg:#080808;--surface:rgba(255,255,255,.04);--border:rgba(255,255,255,.1);--text:#fafafa;--muted:#a3a3a3;--accent:#dc2626;--accent-2:#991b1b;--accent-3:#f87171;--glow:rgba(220,38,38,.4);--photo-loop:10s;--nav-height:5rem;--page-gutter:clamp(.875rem,3.2vw,2.5rem);--content-max:1200px}html{scroll-behavior:smooth;scroll-padding-top:var(--nav-height)}body.nav-open{overflow:hidden}body{background:var(--bg);font-family:Outfit,system-ui,sans-serif;color:var(--text);overflow-x:hidden;min-height:100vh}.bg{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;overflow:hidden}.bg__orb{position:absolute;border-radius:50%;filter:blur(80px);opacity:.55;animation:drift 18s ease-in-out infinite}.bg__orb--1{width:520px;height:520px;background:radial-gradient(circle,#dc2626 0%,transparent 70%);top:-12%;left:-8%}.bg__orb--2{width:420px;height:420px;background:radial-gradient(circle,#7f1d1d 0%,transparent 70%);bottom:-10%;right:-5%;animation-delay:-6s}.bg__orb--3{width:300px;height:300px;background:radial-gradient(circle,#450a0a 0%,transparent 70%);top:40%;right:30%;animation-delay:-12s;opacity:.35}.bg__grid{position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(rgba(255,255,255,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.03) 1px,transparent 1px);background-size:64px 64px;-webkit-mask-image:radial-gradient(ellipse 80% 70% at 50% 40%,black 20%,transparent 75%);mask-image:radial-gradient(ellipse 80% 70% at 50% 40%,black 20%,transparent 75%)}@keyframes drift{0%,to{transform:translate(0) scale(1)}33%{transform:translate(30px,-20px) scale(1.05)}66%{transform:translate(-20px,25px) scale(.97)}}.nav{position:fixed;top:0;left:0;right:0;z-index:100;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:1rem 1.5rem;min-height:var(--nav-height);padding:max(.85rem,env(safe-area-inset-top)) var(--page-gutter) .85rem;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);background:#080808b8;border-bottom:1px solid transparent;transition:border-color .3s,background .3s}.nav--scrolled{border-bottom-color:var(--border);background:#080808e6}.nav__logo{justify-self:start;font-weight:700;font-size:clamp(1rem,2.5vw,1.1rem);letter-spacing:-.02em;text-decoration:none;background:linear-gradient(135deg,var(--text),var(--accent));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;z-index:102}.nav__links{display:flex;align-items:center;justify-content:center;gap:.25rem;justify-self:center}.nav__link{color:var(--muted);text-decoration:none;font-size:clamp(.82rem,1.8vw,.9rem);font-weight:500;padding:.5rem clamp(.65rem,1.5vw,.85rem);border-radius:8px;transition:color .2s,background .2s;white-space:nowrap}.nav__link:hover{color:var(--text);background:var(--surface)}.nav__link.is-active{color:var(--text);background:#dc262626}.nav__status{justify-self:end;display:flex;align-items:center;gap:.5rem;font-family:JetBrains Mono,monospace;font-size:clamp(.65rem,1.6vw,.75rem);color:var(--muted);padding:.45rem clamp(.65rem,1.5vw,.9rem);border:1px solid var(--border);border-radius:999px;background:var(--surface);z-index:102;max-width:min(100%,14rem)}.nav__status-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav__dot{flex-shrink:0;width:7px;height:7px;border-radius:50%;background:#ef4444;box-shadow:0 0 10px #ef4444;animation:pulse 2s ease infinite}.nav__toggle{display:none;flex-direction:column;justify-content:center;gap:5px;width:44px;height:44px;padding:.65rem;border:1px solid var(--border);border-radius:10px;background:var(--surface);cursor:pointer;z-index:102;transition:border-color .2s,background .2s}.nav__toggle:hover{border-color:#dc262673}.nav__toggle-bar{display:block;width:100%;height:2px;border-radius:2px;background:var(--text);transition:transform .25s ease,opacity .25s ease}.nav--open .nav__toggle-bar:nth-child(1){transform:translateY(7px) rotate(45deg)}.nav--open .nav__toggle-bar:nth-child(2){opacity:0}.nav--open .nav__toggle-bar:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.nav__backdrop,.nav__menu-status{display:none}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.hero{position:relative;z-index:1;min-height:100vh;display:flex;align-items:center;justify-content:center;padding:calc(var(--nav-height) + 2rem) var(--page-gutter) 6.5rem}.hero__frame{position:relative;width:100%;max-width:min(1240px,100%);min-height:min(82vh,720px);border:1px solid rgba(220,38,38,.22);border-radius:28px;background:#08080859;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:inset 0 0 80px #dc26260f,0 0 60px -20px #dc262626;overflow:visible}.home-fx-on .hero__frame{animation:frameBorderGlow var(--photo-loop) ease-in-out infinite}@keyframes frameBorderGlow{0%,28%,72%,to{border-color:#dc262638;box-shadow:inset 0 0 80px #dc26260f,0 0 60px -20px #dc262626}40%,60%{border-color:#f8717173;box-shadow:inset 0 0 120px #dc262624,inset 0 0 40px #f8717114,0 0 80px -10px #dc262659}}.hero__inner{position:relative;z-index:2;display:flex;align-items:center;justify-content:center;gap:clamp(2rem,5vw,4rem);min-height:inherit;padding:clamp(1.5rem,4vw,3rem);overflow:visible}.hero--home-fx .hero__inner>.left,.hero--home-fx .hero__inner>.right,.hero--home-fx .hero__inner>.scroll-hint{position:relative;z-index:2}.hero__fx{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:none;overflow:hidden;border-radius:inherit}.hero__ambient{position:absolute;top:-20%;right:-20%;bottom:-20%;left:-20%;background:radial-gradient(ellipse 55% 45% at 22% 50%,rgba(220,38,38,.22),transparent 65%),radial-gradient(ellipse 50% 40% at 78% 40%,rgba(127,29,29,.15),transparent 60%);opacity:0;animation:heroAmbient var(--photo-loop) ease-in-out infinite}.hero__scan{position:absolute;left:-10%;right:-10%;height:3px;background:linear-gradient(90deg,transparent,rgba(248,113,113,.9),rgba(220,38,38,.95),rgba(248,113,113,.9),transparent);box-shadow:0 0 48px #dc2626a6,0 0 120px #dc262640;opacity:0;animation:heroScan var(--photo-loop) ease-in-out infinite}.hero__grain{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;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)' opacity='0.08'/%3E%3C/svg%3E");mix-blend-mode:overlay;animation:heroGrain var(--photo-loop) ease-in-out infinite}@keyframes heroAmbient{0%,28%,72%,to{opacity:0;transform:scale(1)}38%,62%{opacity:1;transform:scale(1.04)}}@keyframes heroScan{0%,34%,66%,to{top:-8%;opacity:0}38%{top:18%;opacity:.9}42%{top:42%;opacity:1}46%{top:68%;opacity:.85}50%{top:92%;opacity:0}70%{top:8%;opacity:.85}74%{top:38%;opacity:1}78%{top:72%;opacity:.7}82%{top:100%;opacity:0}}@keyframes heroGrain{0%,28%,72%,to{opacity:0}40%,60%{opacity:.35}}.home-fx-on .hero--home-fx h1 .gradient{animation:nameRevealGlow var(--photo-loop) ease-in-out infinite}@keyframes nameRevealGlow{0%,28%,72%,to{filter:drop-shadow(0 0 0 transparent)}40%,60%{filter:drop-shadow(0 0 28px rgba(220,38,38,.55)) drop-shadow(0 0 8px rgba(248,113,113,.4))}}.home-fx-on .hero--home-fx .card{animation:cardRevealPulse var(--photo-loop) ease-in-out infinite}@keyframes cardRevealPulse{0%,28%,72%,to{border-color:var(--border);box-shadow:none}40%,60%{border-color:#dc26268c;box-shadow:0 0 32px -8px #dc262659}}.home-fx-on .hero--home-fx .eyebrow{animation:eyebrowReveal var(--photo-loop) ease-in-out infinite}@keyframes eyebrowReveal{0%,28%,72%,to{box-shadow:none}40%,60%{box-shadow:0 0 24px #dc262666}}.home-fx-on .hero--home-fx .tag{animation:tagReveal var(--photo-loop) ease-in-out infinite}@keyframes tagReveal{0%,28%,72%,to{border-color:var(--border);color:var(--muted)}42%,58%{border-color:#dc262673;color:#fca5a5}}.home-fx-on .nav{animation:navReveal var(--photo-loop) ease-in-out infinite}@keyframes navReveal{0%,28%,72%,to{border-bottom-color:transparent}40%,60%{border-bottom-color:#dc262659}}.bg__pulse{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;background:radial-gradient(ellipse 90% 70% at 50% 45%,rgba(220,38,38,.12),transparent 70%);pointer-events:none}.home-fx-on .bg--home-sync .bg__orb{animation:drift 18s ease-in-out infinite,orbReveal var(--photo-loop) ease-in-out infinite}.home-fx-on .bg--home-sync .bg__grid{animation:gridReveal var(--photo-loop) ease-in-out infinite}.home-fx-on .bg--home-sync .bg__pulse{animation:bgPulseReveal var(--photo-loop) ease-in-out infinite}.home-fx-on .photo-wrap:before{animation:photoBorderReveal var(--photo-loop) ease-in-out infinite}@keyframes photoBorderReveal{0%,28%,72%,to{opacity:.7;filter:none}40%,60%{opacity:1;filter:drop-shadow(0 0 24px rgba(220,38,38,.8))}}@keyframes orbReveal{0%,28%,72%,to{opacity:.55;filter:blur(80px)}40%,60%{opacity:.9;filter:blur(64px)}}@keyframes gridReveal{0%,28%,72%,to{opacity:1}40%,60%{opacity:.85;filter:brightness(1.15)}}@keyframes bgPulseReveal{0%,28%,72%,to{opacity:0}38%,62%{opacity:1}}@media(prefers-reduced-motion:reduce){.hero__fx,.photo-clouds{display:none}.home-fx-on .hero--home-fx h1 .gradient,.home-fx-on .hero--home-fx .card,.home-fx-on .hero--home-fx .eyebrow,.home-fx-on .hero--home-fx .tag,.home-fx-on .nav,.home-fx-on .bg--home-sync .bg__orb,.home-fx-on .bg--home-sync .bg__grid,.home-fx-on .bg--home-sync .bg__pulse,.home-fx-on .photo-wrap:before,.home-fx-on .hero__frame{animation:none}}.left{flex:0 1 420px;animation:fadeUp .9s ease both;overflow:visible}.photo-outer{position:relative;width:100%;overflow:visible}.photo-clouds{position:absolute;top:-18%;right:-28%;bottom:-18%;left:-28%;z-index:0;pointer-events:none;overflow:visible}.photo-cloud{position:absolute;border-radius:50%;filter:blur(40px);opacity:.5;animation:cloudFloat 14s ease-in-out infinite}.photo-cloud--1{width:140px;height:110px;top:5%;left:-12%;background:radial-gradient(ellipse,rgba(220,38,38,.45) 0%,rgba(127,29,29,.15) 50%,transparent 72%);animation-duration:16s}.photo-cloud--2{width:130px;height:100px;top:8%;right:-14%;background:radial-gradient(ellipse,rgba(248,113,113,.4) 0%,rgba(220,38,38,.12) 55%,transparent 70%);animation-duration:18s;animation-delay:-3s}.photo-cloud--3{width:120px;height:95px;bottom:12%;left:-16%;background:radial-gradient(ellipse,rgba(153,27,27,.4) 0%,transparent 68%);animation-duration:17s;animation-delay:-7s}.photo-cloud--4{width:125px;height:100px;bottom:8%;right:-15%;background:radial-gradient(ellipse,rgba(220,38,38,.42) 0%,rgba(69,10,10,.1) 50%,transparent 72%);animation-duration:19s;animation-delay:-5s}.photo-cloud--5{width:160px;height:90px;top:42%;left:50%;transform:translate(-50%);background:radial-gradient(ellipse,rgba(127,29,29,.35) 0%,transparent 65%);animation-name:cloudFloatCenter;animation-duration:15s;animation-delay:-10s}@keyframes cloudFloat{0%,to{transform:translate(0) scale(1)}25%{transform:translate(20px,-14px) scale(1.1)}50%{transform:translate(-14px,18px) scale(.92)}75%{transform:translate(12px,10px) scale(1.06)}}@keyframes cloudFloatCenter{0%,to{transform:translate(-50%) translate(0) scale(1)}25%{transform:translate(-50%) translate(16px,-12px) scale(1.08)}50%{transform:translate(-50%) translate(-12px,16px) scale(.94)}75%{transform:translate(-50%) translate(10px,8px) scale(1.05)}}.home-fx-on .photo-cloud{animation:cloudFloat 14s ease-in-out infinite,cloudReveal var(--photo-loop) ease-in-out infinite}.home-fx-on .photo-cloud--5{animation:cloudFloatCenter 14s ease-in-out infinite,cloudReveal var(--photo-loop) ease-in-out infinite}@keyframes cloudReveal{0%,28%,72%,to{opacity:.45;filter:blur(40px)}40%,60%{opacity:.85;filter:blur(48px)}}.photo-wrap{position:relative;z-index:1}.photo-stack{position:relative;z-index:1;width:100%;aspect-ratio:4/5;border-radius:24px;overflow:hidden}.photo-layer{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;border-radius:24px;display:block;filter:brightness(.9) contrast(1.08) saturate(1.1)}.photo-layer--base{z-index:1;opacity:1;transform:scale(1);filter:brightness(.9) contrast(1.08) saturate(1.1)}.photo-layer--reveal{z-index:2;opacity:0;transform:scale(1.06)}.photo-stack--loop .photo-layer--base{animation:photoBaseLoop var(--photo-loop) ease-in-out infinite}.photo-stack--loop .photo-layer--reveal{animation:photoRevealLoop var(--photo-loop) ease-in-out infinite}@keyframes photoBaseLoop{0%,30%,70%,to{opacity:1;transform:scale(1);filter:brightness(.9) contrast(1.08) saturate(1.1)}40%,60%{opacity:0;transform:scale(1.03);filter:brightness(.7) contrast(1.2) saturate(.8)}}@keyframes photoRevealLoop{0%,30%,70%,to{opacity:0;transform:scale(1.06)}40%,60%{opacity:1;transform:scale(1)}}@media(prefers-reduced-motion:reduce){.photo-stack--loop .photo-layer--base{animation:none;opacity:0}.photo-stack--loop .photo-layer--reveal{animation:none;opacity:1;transform:none}.photo-clouds{display:none}}.photo-wrap:before{content:"";position:absolute;top:-3px;right:-3px;bottom:-3px;left:-3px;border-radius:28px;background:linear-gradient(135deg,var(--accent),var(--accent-2),var(--accent-3));opacity:.7;z-index:0}.photo-wrap:after{content:"";position:absolute;top:20px;right:20px;bottom:20px;left:20px;border-radius:20px;background:var(--glow);filter:blur(40px);z-index:0;opacity:.6}.right{flex:1;max-width:640px;animation:fadeUp .9s .15s ease both}@keyframes fadeUp{0%{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}.eyebrow{display:inline-flex;align-items:center;gap:.65rem;font-family:JetBrains Mono,monospace;font-size:.8rem;font-weight:500;color:var(--accent-3);text-transform:uppercase;letter-spacing:.12em;margin-bottom:1rem;padding:.5rem 1rem;border-radius:999px;border:1px solid rgba(220,38,38,.35);background:#dc26261a}.eyebrow:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--accent)}h1{font-size:clamp(2.8rem,7vw,4.75rem);font-weight:800;line-height:1.02;letter-spacing:-.03em;margin-bottom:.5rem}h1 .line{display:block}h1 .gradient{background:linear-gradient(135deg,#fff 0%,var(--accent) 45%,var(--accent-2) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.role{display:flex;align-items:center;gap:1rem;margin:1.25rem 0 1.5rem;flex-wrap:wrap}.role__text{font-family:JetBrains Mono,monospace;font-size:clamp(.75rem,2vw,.9rem);font-weight:500;letter-spacing:.2em;color:var(--muted)}.role__line{flex:1;min-width:60px;height:1px;background:linear-gradient(90deg,var(--border),transparent)}.desc{font-size:1.05rem;font-weight:400;line-height:1.75;color:var(--muted);margin-bottom:1.75rem;max-width:52ch}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem;margin-bottom:1.75rem}.card{position:relative;padding:1rem .9rem;border-radius:14px;border:1px solid var(--border);background:var(--surface);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);font-size:.92rem;font-weight:500;color:var(--text);overflow:hidden;transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease;cursor:default}.card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,rgba(220,38,38,.15),transparent);opacity:0;transition:opacity .25s}.card:hover{transform:translateY(-3px);border-color:#dc262673;box-shadow:0 12px 40px -12px var(--glow)}.card:hover:before{opacity:1}.card__icon{display:block;font-size:1.25rem;margin-bottom:.35rem;opacity:.9;flex-shrink:0}.card__label{line-height:1.35}.actions{display:flex;flex-wrap:wrap;gap:.85rem;animation:fadeUp 1s .4s ease both}.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.85rem 1.6rem;border-radius:12px;font-family:inherit;font-size:.95rem;font-weight:600;text-decoration:none;transition:transform .2s,box-shadow .2s,background .2s;cursor:pointer;border:none}.btn--primary{background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff;box-shadow:0 4px 24px -4px var(--glow)}.btn--primary:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 8px 32px -4px var(--glow)}.btn--ghost{background:var(--surface);color:var(--text);border:1px solid var(--border)}.btn--ghost:hover{border-color:#fff3;transform:translateY(-2px)}.btn--full{width:100%;justify-content:center}.btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.tags{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:1.25rem;margin-bottom:.5rem;max-width:100%}.tag{font-family:JetBrains Mono,monospace;font-size:.7rem;padding:.35rem .7rem;border-radius:6px;color:var(--muted);background:#ffffff08;border:1px solid var(--border)}.scroll-hint{position:absolute;bottom:2rem;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:.4rem;color:var(--muted);font-size:.7rem;letter-spacing:.15em;text-transform:uppercase;animation:fadeUp 1.2s .6s ease both;cursor:pointer;text-decoration:none}.scroll-hint:hover{color:var(--accent-3)}.scroll-hint__line{width:1px;height:40px;background:linear-gradient(180deg,var(--accent),transparent);animation:scrollLine 2s ease infinite}@keyframes scrollLine{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}to{transform:scaleY(0);transform-origin:bottom}}.section{position:relative;z-index:1;width:100%;max-width:var(--content-max);margin:0 auto;padding:5rem var(--page-gutter) 4rem;scroll-margin-top:var(--nav-height)}.section-header{margin-bottom:2.5rem;max-width:640px}.section-header--center{margin-left:auto;margin-right:auto;text-align:center}.section-header h2{font-size:clamp(2rem,4vw,2.75rem);font-weight:800;letter-spacing:-.03em;line-height:1.1;margin-bottom:.75rem}.section-header h2 span{background:linear-gradient(135deg,#fff,var(--accent),var(--accent-2));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.section-header p{color:var(--muted);font-size:1.05rem;line-height:1.7;max-width:52ch}.section-header--center p{margin-left:auto;margin-right:auto}.filters{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:2rem;justify-content:center}.filter{font-family:inherit;font-size:.85rem;font-weight:500;padding:.55rem 1.1rem;border-radius:999px;border:1px solid var(--border);background:var(--surface);color:var(--muted);cursor:pointer;transition:all .2s}.filter:hover,.filter.is-active{color:var(--text);border-color:#dc262680;background:#dc262626}.projects{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem}.project{border:1px solid var(--border);border-radius:20px;background:var(--surface);overflow:hidden;transition:transform .25s,border-color .25s,box-shadow .25s}.project:hover{transform:translateY(-4px);border-color:#dc262666;box-shadow:0 20px 50px -20px var(--glow)}.project__thumb{aspect-ratio:16/10;display:flex;align-items:flex-end;padding:1.25rem;overflow:hidden;position:relative}.project__thumb--image{display:block;padding:0;background:#0a0a0a}.project__preview-trigger{width:100%;height:100%;border:none;padding:0;margin:0;background:transparent;cursor:zoom-in;position:absolute;top:0;right:0;bottom:0;left:0}.project__img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;object-position:left 28%;transform:scale(1);transition:transform .45s ease;transform-origin:center center}.project:hover .project__img{transform:scale(1.1)}.project-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:80;display:grid;place-items:center;padding:1.25rem}.project-modal__backdrop{position:absolute;top:0;right:0;bottom:0;left:0;border:none;background:#000000c7;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.project-modal__panel{position:relative;z-index:1;width:min(1100px,95vw);max-height:90vh;border-radius:14px;overflow:hidden;border:1px solid rgba(220,38,38,.35);background:#090909;box-shadow:0 30px 80px -30px #000c}.project-modal__img{width:100%;max-height:90vh;display:block;object-fit:contain;background:#060606}.project-modal__close{position:absolute;top:.7rem;right:.7rem;width:2.1rem;height:2.1rem;border-radius:999px;border:1px solid rgba(255,255,255,.28);background:#080808bf;color:#fff;font-size:1.3rem;line-height:1;cursor:pointer;z-index:2}.project-modal__close:hover{border-color:#dc2626a6;color:#fecaca}.project__thumb--image .project__type{position:absolute;z-index:2;top:1rem;right:1rem;margin:0}.project__thumb--image:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;background:linear-gradient(180deg,rgba(8,8,8,.35) 0%,transparent 35%,rgba(8,8,8,.5) 100%);pointer-events:none}.project__thumb--web{background:linear-gradient(135deg,#0a0a0a,#991b1b 50%,#dc2626)}.project__thumb--mobile{background:linear-gradient(135deg,#171717,#7f1d1d 55%,#ef4444)}.project__thumb--full{background:linear-gradient(135deg,#0a0a0a,#450a0a 50%,#b91c1c)}.project__type{font-family:JetBrains Mono,monospace;font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;padding:.35rem .65rem;border-radius:6px;background:#05081099;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--border)}.project__body{padding:1.35rem 1.5rem 1.5rem}.project__body h3{font-size:1.2rem;font-weight:700;margin-bottom:.5rem}.project__status{display:inline-block;font-family:JetBrains Mono,monospace;font-size:.65rem;text-transform:uppercase;letter-spacing:.08em;color:var(--accent-3);margin-bottom:.65rem}.project__body p{font-size:.92rem;color:var(--muted);line-height:1.6;margin-bottom:1rem}.project__tags{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:1rem}.project__tags span{font-family:JetBrains Mono,monospace;font-size:.65rem;padding:.3rem .55rem;border-radius:5px;color:var(--muted);background:#ffffff0a;border:1px solid var(--border)}.project__links{display:flex;gap:.75rem}.project__links a{font-size:.88rem;font-weight:600;color:var(--accent);text-decoration:none}.project__links a.secondary{color:var(--muted)}.cta-box{margin-top:3rem;padding:2.5rem;border-radius:20px;border:1px solid var(--border);background:linear-gradient(135deg,#dc26261f,#7f1d1d14);text-align:center}.cta-box h3{font-size:1.4rem;font-weight:700;margin-bottom:.5rem}.cta-box p{color:var(--muted);margin-bottom:1.25rem}.contact-grid{display:grid;grid-template-columns:1fr 1.05fr;gap:2rem;align-items:start}.contact-aside{display:flex;flex-direction:column;gap:1rem}.contact-channels{display:flex;flex-direction:column;gap:.75rem}.contact-channel{display:flex;align-items:center;gap:1rem;padding:1.15rem 1.25rem;border-radius:16px;border:1px solid var(--border);background:var(--surface);text-decoration:none;color:inherit;transition:border-color .2s,transform .2s,box-shadow .2s}.contact-channel:hover{border-color:#dc262666;transform:translateY(-2px);box-shadow:0 12px 40px -16px var(--glow)}.contact-channel__icon{flex-shrink:0;width:44px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:12px;background:#dc26261a;border:1px solid rgba(220,38,38,.2);font-size:1.1rem;font-weight:700;color:var(--accent-3)}.contact-channel__icon img{width:22px;height:22px;object-fit:contain;display:block}.contact-channel--email .contact-channel__icon{background:#fff;border-color:#ffffff1f}.contact-channel--email .contact-channel__detail{word-break:break-word}.contact-channel__body{flex:1;display:flex;flex-direction:column;gap:.2rem;min-width:0}.contact-channel__title{font-weight:600;font-size:1rem}.contact-channel__detail{font-size:.88rem;color:var(--muted);overflow:hidden;text-overflow:ellipsis}.contact-channel__action{flex-shrink:0;font-size:.8rem;font-weight:600;color:var(--accent)}.contact-meta{display:flex;flex-direction:column;gap:.65rem}.contact-hint{font-size:.9rem;color:var(--muted);line-height:1.6;margin-bottom:1.25rem;padding:.85rem 1rem;border-radius:12px;border:1px solid rgba(220,38,38,.2);background:#dc26260f}.info{display:flex;flex-direction:column;gap:1rem}.info-card{padding:1.25rem 1.35rem;border-radius:16px;border:1px solid var(--border);background:var(--surface);transition:border-color .2s,transform .2s}.info-card:hover{border-color:#dc262659;transform:translate(4px)}.info-card__label{font-family:JetBrains Mono,monospace;font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin-bottom:.35rem}.info-card a,.info-card p{font-size:1rem;font-weight:500;color:var(--text);text-decoration:none}.info-card a:hover{color:var(--accent)}.social{display:flex;gap:.65rem;margin-top:.25rem}.social a{display:flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:12px;border:1px solid var(--border);background:var(--surface);color:var(--muted);text-decoration:none;transition:all .2s}.social a:hover{color:var(--text);border-color:#dc262673;background:#dc26261f}.form-wrap{padding:2rem;border-radius:20px;border:1px solid var(--border);background:var(--surface);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.form-wrap h3{font-size:1.1rem;font-weight:700;margin-bottom:1.25rem}.field{margin-bottom:1rem}.field label{display:block;font-size:.85rem;font-weight:500;color:var(--muted);margin-bottom:.35rem}.field input,.field select,.field textarea{width:100%;padding:.85rem 1rem;border-radius:12px;border:1px solid var(--border);background:#080808cc;color:var(--text);font-family:inherit;font-size:.95rem;transition:border-color .2s,box-shadow .2s}.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:#dc26268c;box-shadow:0 0 0 3px #dc262633}.field textarea{min-height:130px;resize:vertical}.field select{cursor:pointer}.field select option{background:#111}.site-footer{position:relative;z-index:1;text-align:center;padding:2rem;color:var(--muted);font-size:.85rem;border-top:1px solid var(--border)}@media(max-width:1100px){:root{--nav-height:4.5rem}.hero__frame{max-width:100%}.hero__inner{flex-wrap:wrap;justify-content:center;gap:clamp(1.5rem,4vw,3rem)}.left{flex:1 1 300px;max-width:min(380px,100%)}.right{flex:1 1 360px;max-width:100%}.projects{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.contact-grid{grid-template-columns:1fr;gap:1.5rem}}@media(max-width:900px){:root{--nav-height:3.75rem}.hero{padding:calc(var(--nav-height) + 1.25rem) var(--page-gutter) 4rem;min-height:auto}.hero__frame{min-height:auto;border-radius:20px}.hero__inner{flex-direction:column;text-align:center;gap:1.75rem;padding:1.5rem 1rem 2.5rem;min-width:0}.left{flex:1;width:100%;max-width:min(320px,88vw);margin:0 auto;min-width:0}.right{min-width:0}.photo-clouds{top:-12%;right:-18%;bottom:-12%;left:-18%}.photo-cloud{filter:blur(32px);opacity:.4}.right{max-width:100%}.eyebrow,.role,.actions{justify-content:center;margin-left:auto;margin-right:auto}.desc{margin-left:auto;margin-right:auto;font-size:1rem;max-width:100%}.cards--skills{display:grid;grid-template-columns:1fr;gap:.65rem;width:100%;max-width:100%;margin:0 0 1.5rem;padding:0;overflow:visible}.cards--skills .card{display:flex;align-items:center;gap:.85rem;width:100%;padding:1rem 1.1rem;text-align:left}.cards--skills .card__icon{margin-bottom:0;font-size:1.35rem}.cards--skills .card__label{flex:1;font-size:.95rem;line-height:1.35}.role__line{display:none}.tags{justify-content:center}.nav{grid-template-columns:1fr auto auto;grid-template-rows:auto;align-items:center;gap:.65rem 1rem;padding:max(.65rem,env(safe-area-inset-top)) var(--page-gutter) .65rem}.nav__logo{grid-column:1;grid-row:1}.nav__status{grid-column:2;grid-row:1;justify-self:end;max-width:none}.nav__toggle{display:flex;grid-column:3;grid-row:1;justify-self:end}.nav__links{position:fixed;top:var(--nav-height);left:0;right:0;z-index:101;flex-direction:column;align-items:stretch;gap:.35rem;padding:1rem var(--page-gutter) 1.25rem;background:#080808f7;border-bottom:1px solid var(--border);box-shadow:0 24px 48px -24px #000c;transform:translateY(-110%);opacity:0;visibility:hidden;pointer-events:none;transition:transform .28s ease,opacity .28s ease,visibility .28s}.nav--open .nav__links{transform:translateY(0);opacity:1;visibility:visible;pointer-events:auto}.nav__link{width:100%;text-align:left;padding:.9rem 1rem;font-size:1rem;min-height:48px;display:flex;align-items:center;border-radius:10px;border:1px solid transparent}.nav__link.is-active{border-color:#dc262659;background:#dc26261f}.nav__backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;top:var(--nav-height);z-index:99;border:none;padding:0;margin:0;background:#0000008c;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);opacity:0;visibility:hidden;pointer-events:none;cursor:pointer;transition:opacity .28s ease,visibility .28s}.nav--open .nav__backdrop{opacity:1;visibility:visible;pointer-events:auto}.nav__menu-status{display:flex;align-items:center;gap:.5rem;margin-top:.5rem;padding:.75rem 1rem;border-radius:10px;border:1px solid var(--border);background:#dc262614;font-family:JetBrains Mono,monospace;font-size:.72rem;color:var(--muted)}.scroll-hint{display:none}.section{padding:3.5rem var(--page-gutter) 3rem;scroll-margin-top:var(--nav-height)}.section-header{margin-bottom:2rem}.section-header--center{text-align:left}.section-header--center p{margin-left:0;margin-right:0}.section-header h2{font-size:clamp(1.75rem,6vw,2.25rem)}.section-header p{font-size:.98rem}.filters{flex-wrap:nowrap;overflow-x:auto;justify-content:flex-start;-webkit-overflow-scrolling:touch;padding-bottom:.35rem;margin-bottom:1.5rem;scrollbar-width:none}.filters::-webkit-scrollbar{display:none}.filter{flex-shrink:0;min-height:44px}.projects{grid-template-columns:1fr;gap:1.25rem}.project__body{padding:1.15rem 1.2rem 1.25rem}.project__body h3{font-size:1.1rem}.project__links{flex-wrap:wrap}.cta-box{margin-top:2rem;padding:1.75rem 1.25rem;border-radius:16px}.cta-box h3{font-size:1.2rem}.contact-grid{grid-template-columns:1fr;gap:1.5rem}.contact-channel--email{display:grid;grid-template-columns:auto 1fr;grid-template-areas:"icon body" "action action";align-items:center;gap:.65rem .85rem;padding:1.1rem 1rem}.contact-channel--email .contact-channel__icon{grid-area:icon}.contact-channel--email .contact-channel__body{grid-area:body}.contact-channel--email .contact-channel__action{grid-area:action;justify-self:stretch;text-align:center;width:100%;padding:.7rem .5rem 0;margin-top:.15rem;border-top:1px solid var(--border);font-size:.82rem}.contact-channel--email .contact-channel__detail{white-space:normal;overflow:visible;text-overflow:unset}.form-wrap{padding:1.35rem 1.15rem;border-radius:16px}.site-footer{padding:1.5rem var(--page-gutter) max(1.5rem,env(safe-area-inset-bottom));font-size:clamp(.78rem,3vw,.85rem);line-height:1.5}.bg__orb--1{width:min(520px,90vw)}.bg__orb--2{width:min(420px,75vw)}.bg__orb--3{width:min(300px,55vw)}}@media(max-width:640px){:root{--nav-height:3.5rem}h1{font-size:clamp(2rem,8.5vw,2.65rem)}.role__text{letter-spacing:.1em;font-size:.7rem}.eyebrow{font-size:.72rem;padding:.4rem .85rem}.hero{padding:calc(var(--nav-height) + .85rem) var(--page-gutter) 3.5rem}.hero__frame{border-radius:16px}.photo-stack{border-radius:18px}.left{max-width:min(280px,82vw)}.btn{padding:.9rem 1.25rem;min-height:48px}.project-modal{padding:.75rem;padding-top:max(.75rem,env(safe-area-inset-top))}.project-modal__panel{width:100%;max-height:calc(100dvh - 1.5rem);border-radius:12px}.project-modal__img{max-height:calc(100dvh - 1.5rem)}.project-modal__close{top:max(.55rem,env(safe-area-inset-top));right:.55rem;width:2.5rem;height:2.5rem}}@media(max-width:480px){.nav__status-label{display:none}.nav__status{padding:.4rem .5rem}.nav__dot{width:8px;height:8px}.hero{padding:calc(var(--nav-height) + 1rem) var(--page-gutter) 3.25rem}.hero__inner{padding:1.25rem .75rem 2rem}.desc{font-size:.95rem;line-height:1.65}.cards--skills .card{padding:.95rem 1rem}.cards--skills .card__label{font-size:.92rem}.tag{font-size:.62rem;padding:.3rem .55rem}.section{padding:3rem var(--page-gutter) 2.5rem}.filters{gap:.4rem}.filter{font-size:.8rem;padding:.5rem .95rem}.project__thumb--image .project__type{top:.65rem;right:.65rem;font-size:.62rem}.project__tags span{font-size:.6rem}.project__links{flex-direction:column;align-items:flex-start;gap:.5rem}.contact-channel--email .contact-channel__icon{width:42px;height:42px}.info-card{padding:1rem 1.1rem}.field input,.field select,.field textarea{font-size:16px;padding:.9rem 1rem}.actions{flex-direction:column;width:100%}.btn{justify-content:center;width:100%}.cta-box{padding:1.5rem 1rem}}@media(max-width:430px){:root{--nav-height:3.15rem;--page-gutter:.8rem}.nav{grid-template-columns:1fr auto;gap:.4rem;padding:max(.5rem,env(safe-area-inset-top)) var(--page-gutter) .5rem}.nav__status{display:none}.nav__logo{font-size:.95rem}.nav__toggle{width:40px;height:40px;padding:.5rem;border-radius:9px}.nav__links{padding:.85rem var(--page-gutter) max(1rem,env(safe-area-inset-bottom));max-height:calc(100dvh - var(--nav-height));overflow-y:auto;-webkit-overflow-scrolling:touch}.nav__link{padding:.8rem .9rem;font-size:.95rem;min-height:46px}.hero{padding:calc(var(--nav-height) + .65rem) var(--page-gutter) 2.75rem}.hero__frame{border-radius:14px;box-shadow:inset 0 0 50px #dc26260d,0 0 40px -24px #dc26261f}.hero__inner{gap:1.2rem;padding:1rem .5rem 1.65rem}.left{max-width:min(252px,74vw)}.photo-clouds{display:none}.photo-stack,.photo-layer{border-radius:16px}h1{font-size:clamp(1.8rem,8vw,2.2rem);line-height:1.05}.desc{font-size:.9rem;line-height:1.6;margin-bottom:1.35rem}.role{margin:1rem 0 1.15rem}.cards--skills{width:100%;margin-left:0;margin-right:0;padding:0;gap:.55rem}.cards--skills .card{padding:.85rem .95rem;gap:.75rem}.cards--skills .card__icon{font-size:1.2rem}.cards--skills .card__label{font-size:.88rem}.contact-channel--email{padding:1rem .9rem;gap:.55rem .75rem}.contact-channel--email .contact-channel__icon{width:40px;height:40px}.contact-channel--email .contact-channel__icon img{width:20px;height:20px}.contact-channel--email .contact-channel__title{font-size:.92rem}.contact-channel--email .contact-channel__detail{font-size:.8rem}.contact-channel--email .contact-channel__action{font-size:.76rem;padding-top:.65rem}.tags{gap:.35rem;margin-top:1rem}.tag{font-size:.58rem;padding:.28rem .5rem}.btn{font-size:.9rem;padding:.85rem 1rem;border-radius:10px}.section{padding:2.5rem var(--page-gutter) 2rem}.section-header{margin-bottom:1.5rem}.section-header h2{font-size:clamp(1.5rem,7vw,1.85rem)}.section-header p{font-size:.88rem;line-height:1.65}.filters{width:calc(100% + var(--page-gutter) * 2);margin-left:calc(-1 * var(--page-gutter));padding-left:var(--page-gutter);padding-right:var(--page-gutter);gap:.35rem}.filter{font-size:.76rem;padding:.48rem .8rem}.project{border-radius:16px}.project__thumb{aspect-ratio:16/9}.project__body{padding:1rem .95rem 1.1rem}.project__body h3{font-size:1rem}.project__body p{font-size:.86rem;line-height:1.55}.project__status{font-size:.58rem;margin-bottom:.5rem}.project__tags{gap:.3rem;margin-bottom:.85rem}.project__tags span{font-size:.58rem;padding:.25rem .45rem}.project__links a{font-size:.82rem}.cta-box{margin-top:1.5rem;padding:1.2rem .9rem;border-radius:14px}.cta-box h3{font-size:1.05rem}.cta-box p{font-size:.86rem;margin-bottom:1rem}.info-card{padding:.9rem 1rem;border-radius:14px}.info-card a,.info-card p{font-size:.92rem}.form-wrap{padding:1.1rem .9rem;border-radius:14px}.form-wrap h3{font-size:1rem;margin-bottom:1rem}.field{margin-bottom:.85rem}.field label{font-size:.8rem}.field textarea{min-height:110px}.site-footer{font-size:.72rem;padding:1.25rem var(--page-gutter) max(1.25rem,env(safe-area-inset-bottom))}.project-modal{padding:.5rem;padding-top:max(.5rem,env(safe-area-inset-top))}.project-modal__panel{max-height:calc(100dvh - 1rem);border-radius:10px}.project-modal__img{max-height:calc(100dvh - 1rem)}.project-modal__close{top:max(.45rem,env(safe-area-inset-top));right:.45rem}.bg__orb{opacity:.35;filter:blur(64px)}.bg__grid{background-size:48px 48px}}@media(max-width:360px){h1{font-size:1.65rem}.left{max-width:min(228px,72vw)}.cards--skills .card__label{font-size:.85rem}.nav__link{font-size:.9rem}}@media(hover:none)and (pointer:coarse){.card:hover,.project:hover,.contact-channel:hover,.info-card:hover{transform:none}.project:hover .project__img{transform:scale(1)}.btn--primary:hover:not(:disabled),.btn--ghost:hover{transform:none}}
