@import url("https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@300;400;500;600;700&family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;1,9..40,300&display=swap");:root{--clr-primary:#ffa153;--clr-primary-rgb:255,161,83;--clr-primary-dim:#e8883a;--clr-accent:#3abfff;--clr-accent-dim:#1fa8e8;--clr-bg:#fff;--clr-bg-alt:#f5f5f3;--clr-surface:#fff;--clr-surface-alt:#f0f0ee;--clr-border:rgba(30,30,28,.1);--clr-text:#1e1e1c;--clr-text-muted:#6b6b67;--clr-text-inv:#fff;--clr-overlay:rgba(0,0,0,.55);--shadow-sm:0 2px 8px rgba(0,0,0,.06);--shadow-md:0 6px 24px rgba(0,0,0,.09);--shadow-lg:0 16px 48px rgba(0,0,0,.13);--shadow-card:0 4px 20px rgba(0,0,0,.07);--glow-primary:0 0 24px rgba(58,191,255,.25);--glow-accent:0 0 24px rgba(255,161,83,.25);--font-display:"Space Grotesk",sans-serif;--font-body:"DM Sans",sans-serif;--space-xs:0.5rem;--space-sm:1rem;--space-md:1.5rem;--space-lg:2.5rem;--space-xl:4rem;--space-2xl:7rem;--max-width:1200px;--col-gap:1.5rem;--radius-sm:8px;--radius-md:16px;--radius-lg:24px;--radius-pill:999px;--ease-out:cubic-bezier(0.22,1,0.36,1);--ease-spring:cubic-bezier(0.34,1.56,0.64,1);--dur-fast:150ms;--dur-base:250ms;--dur-slow:450ms;--nav-height:68px;--nav-z:900;--panel-width:320px}[data-theme=dark]{--clr-primary:#3abfff;--clr-primary-rgb:58,191,255;--clr-primary-dim:#1fa8e8;--clr-bg:#101012;--clr-bg-alt:#16161a;--clr-surface:#1c1c22;--clr-surface-alt:#222228;--clr-border:hsla(0,0%,100%,.09);--clr-text:#f0f0ee;--clr-text-muted:#888884;--clr-text-inv:#101012;--clr-overlay:rgba(0,0,0,.75);--shadow-card:0 4px 20px rgba(0,0,0,.35);--shadow-md:0 6px 24px rgba(0,0,0,.4);--shadow-lg:0 16px 48px rgba(0,0,0,.5)}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;font-size:16px;-webkit-text-size-adjust:100%}body{font-family:var(--font-body);font-size:1rem;line-height:1.65;color:var(--clr-text);background-color:var(--clr-bg);transition:background-color var(--dur-slow) var(--ease-out),color var(--dur-slow) var(--ease-out);overflow-x:hidden}img{display:block;max-width:100%;height:auto}a{color:inherit;text-decoration:none}ul{list-style:none}button{cursor:pointer;border:none;background:none;font:inherit}::selection{background:var(--clr-primary);color:#fff}:focus-visible{outline:2px solid var(--clr-primary);outline-offset:3px;border-radius:4px}h1,h2,h3,h4{font-family:var(--font-display);font-weight:700;line-height:1.15;letter-spacing:-.02em}.display-1{font-size:clamp(3rem,8vw,7rem);font-weight:700;letter-spacing:-.035em;line-height:1.02}.section-label{font-family:var(--font-display);font-size:.75rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--clr-primary)}.section-title{font-size:clamp(2rem,4vw,3rem);margin-top:var(--space-xs);margin-bottom:var(--space-md)}.section-lead{font-size:clamp(1rem,1.5vw,1.2rem);color:var(--clr-text-muted);max-width:52ch;line-height:1.75}.container{width:100%;max-width:var(--max-width);margin-inline:auto;padding-inline:var(--space-md)}section{padding-block:var(--space-2xl)}.alt-bg{background-color:var(--clr-bg-alt);transition:background-color var(--dur-slow) var(--ease-out)}#nav{position:fixed;top:0;left:0;right:0;height:var(--nav-height);z-index:var(--nav-z);display:flex;align-items:center;justify-content:space-between;padding-inline:var(--space-md);transition:background var(--dur-slow) var(--ease-out),box-shadow var(--dur-base) var(--ease-out),-webkit-backdrop-filter var(--dur-slow) var(--ease-out);transition:background var(--dur-slow) var(--ease-out),box-shadow var(--dur-base) var(--ease-out),backdrop-filter var(--dur-slow) var(--ease-out);transition:background var(--dur-slow) var(--ease-out),box-shadow var(--dur-base) var(--ease-out),backdrop-filter var(--dur-slow) var(--ease-out),-webkit-backdrop-filter var(--dur-slow) var(--ease-out)}#nav.scrolled{background:rgba(var(--clr-bg-rgb,255,255,255),.8);backdrop-filter:blur(14px) saturate(180%);-webkit-backdrop-filter:blur(14px) saturate(180%);box-shadow:0 1px 0 var(--clr-border)}[data-theme=dark] #nav.scrolled{background:rgba(16,16,18,.8)}.nav-logo{display:flex;align-items:center;transition:opacity var(--dur-fast);height:100%}.nav-logo:hover{opacity:.8}.nav-logo-img{width:128px;height:128px;object-fit:contain}[data-theme=dark] .nav-logo-img{filter:brightness(0) invert(1)}.nav-controls{gap:var(--space-sm)}.nav-controls,.theme-toggle{display:flex;align-items:center}.theme-toggle{width:38px;height:38px;border-radius:50%;justify-content:center;color:var(--clr-text);border:1.5px solid var(--clr-border);background:var(--clr-surface);transition:background var(--dur-base),border-color var(--dur-base),transform var(--dur-base) var(--ease-spring),box-shadow var(--dur-base)}.theme-toggle:hover{background:var(--clr-surface-alt);transform:scale(1.08)}.theme-toggle svg{width:16px;height:16px}.icon-sun{display:none}.icon-moon,[data-theme=dark] .icon-sun{display:block}[data-theme=dark] .icon-moon{display:none}.hamburger{width:38px;height:38px;border-radius:var(--radius-sm);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;border:1.5px solid var(--clr-border);background:var(--clr-surface);transition:background var(--dur-base),border-color var(--dur-base),transform var(--dur-base) var(--ease-spring);z-index:calc(var(--nav-z) + 10)}.hamburger:hover{background:var(--clr-surface-alt);transform:scale(1.05)}.hamburger-line{display:block;width:18px;height:2px;background:var(--clr-text);border-radius:2px;transition:transform var(--dur-base) var(--ease-out),opacity var(--dur-base),width var(--dur-base) var(--ease-out)}.hamburger.active .hamburger-line:first-child{transform:translateY(7px) rotate(45deg)}.hamburger.active .hamburger-line:nth-child(2){opacity:0;width:0}.hamburger.active .hamburger-line:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.nav-overlay{position:fixed;inset:0;z-index:calc(var(--nav-z) - 1);background:var(--clr-overlay);opacity:0;pointer-events:none;transition:opacity var(--dur-slow) var(--ease-out);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.nav-overlay.active{opacity:1;pointer-events:all}.nav-panel{position:fixed;top:0;right:0;width:var(--panel-width);height:100%;z-index:var(--nav-z);background:var(--clr-surface);padding:var(--space-xl) var(--space-lg) var(--space-2xl);display:flex;flex-direction:column;transform:translateX(100%);transition:transform var(--dur-slow) var(--ease-out);box-shadow:-18px 0 56px rgba(0,0,0,.18);overflow-y:auto}.nav-panel.active{transform:translateX(0)}.nav-panel-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-xl)}.nav-panel-brand{font-family:var(--font-display);font-size:1rem;font-weight:600;color:var(--clr-text)}.nav-panel-close{width:32px;height:32px;border-radius:50%;border:1.5px solid var(--clr-border);display:flex;align-items:center;justify-content:center;color:var(--clr-text-muted);transition:background var(--dur-fast),color var(--dur-fast),transform var(--dur-base) var(--ease-spring)}.nav-panel-close:hover{background:var(--clr-surface-alt);color:var(--clr-text);transform:scale(1.1) rotate(90deg)}.nav-links{display:flex;flex-direction:column;gap:4px;flex:1 1}.nav-link{font-family:var(--font-display);font-size:2rem;font-weight:700;letter-spacing:-.02em;padding:.3rem 0;color:var(--clr-text-muted);position:relative;transition:color var(--dur-base) var(--ease-out);width:-moz-fit-content;width:fit-content}.nav-link:after{content:"";position:absolute;bottom:0;left:0;width:0;height:3px;background:var(--clr-primary);border-radius:2px;transition:width var(--dur-slow) var(--ease-out)}.nav-link:hover{color:var(--clr-text)}.nav-link:hover:after{width:100%}.nav-panel-footer{margin-top:var(--space-xl);padding-top:var(--space-lg);border-top:1px solid var(--clr-border);font-size:.8rem;color:var(--clr-text-muted)}.nav-socials{display:flex;gap:var(--space-sm);margin-top:var(--space-sm)}.nav-social-icon{width:34px;height:34px;border-radius:50%;border:1.5px solid var(--clr-border);display:flex;align-items:center;justify-content:center;color:var(--clr-text-muted);transition:color var(--dur-base),border-color var(--dur-base),transform var(--dur-base) var(--ease-spring),background var(--dur-base)}.nav-social-icon:hover{color:var(--clr-primary);border-color:var(--clr-primary);transform:translateY(-2px);background:rgba(58,191,255,.1)}.nav-social-icon svg{width:15px;height:15px}#hero{min-height:100svh;display:flex;align-items:center;padding-top:var(--nav-height);padding-block:calc(var(--nav-height) + var(--space-xl)) var(--space-xl);position:relative;overflow:hidden}.hero-noise{position:absolute;inset:0;opacity:.025;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23n)' opacity='1'/%3E%3C/svg%3E");pointer-events:none;z-index:0}.hero-inner{position:relative;z-index:1;width:100%}.hero-grid{display:grid;grid-template-columns:1.2fr .8fr;align-items:center;grid-gap:var(--space-xl);gap:var(--space-xl)}.hero-content{display:flex;flex-direction:column}.hero-visual{position:relative;display:flex;justify-content:center;align-items:center}.hero-img-container{position:relative;width:100%;max-width:500px;aspect-ratio:1/1;border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-lg);border:1px solid var(--clr-border);background:var(--clr-bg-alt)}.hero-img{width:100%;height:100%;object-fit:cover;opacity:.75;filter:contrast(1.1) brightness(.9) grayscale(10%);transition:transform var(--dur-slow) var(--ease-out),opacity var(--dur-base) var(--ease-out),filter var(--dur-base) var(--ease-out)}.hero-visual:hover .hero-img{transform:scale(1.03);opacity:1;filter:contrast(1.05) brightness(1) grayscale(0)}.hero-img-backdrop{position:absolute;inset:0;background:linear-gradient(135deg,rgba(var(--clr-primary-rgb),.1),transparent 60%),linear-gradient(to top,rgba(0,0,0,.4),transparent);pointer-events:none}.hero-tag{display:inline-flex;align-items:center;gap:.5rem;padding:6px 14px;border:1.5px solid var(--clr-border);border-radius:var(--radius-pill);font-size:.78rem;font-weight:500;color:var(--clr-text-muted);letter-spacing:.04em;margin-bottom:var(--space-md);background:var(--clr-surface);transition:border-color var(--dur-base),background var(--dur-base)}.hero-tag-dot{width:6px;height:6px;background:var(--clr-primary);border-radius:50%;animation:pulse-dot 2.4s ease-in-out infinite;box-shadow:var(--glow-primary)}@keyframes pulse-dot{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.5);opacity:.6}}.hero-headline{margin-bottom:var(--space-lg)}.hero-headline em{font-style:normal;color:var(--clr-primary);position:relative}.hero-headline em:after{content:"";position:absolute;bottom:.06em;left:-.02em;right:-.02em;height:.1em;background:linear-gradient(90deg,var(--clr-primary),transparent);border-radius:2px;transform:scaleX(0);transform-origin:left;animation:underline-in 1.2s var(--ease-out) .8s forwards}@keyframes underline-in{to{transform:scaleX(1)}}.hero-sub{font-size:clamp(1.05rem,1.8vw,1.25rem);color:var(--clr-text-muted);max-width:50ch;line-height:1.8;margin-bottom:var(--space-lg)}.hero-actions{flex-wrap:wrap;gap:var(--space-sm)}.hero-actions,.hero-scroll{display:flex;align-items:center}.hero-scroll{margin-top:var(--space-2xl);gap:.6rem;font-size:.78rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--clr-text-muted)}.scroll-line{width:36px;height:1.5px;background:linear-gradient(90deg,var(--clr-text-muted),transparent);border-radius:1px;animation:scroll-line-pulse 2s ease-in-out infinite}@keyframes scroll-line-pulse{0%,to{opacity:.5}50%{opacity:1}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.7rem 1.6rem;border-radius:var(--radius-pill);font-family:var(--font-display);font-size:.9rem;font-weight:600;letter-spacing:-.01em;cursor:pointer;transition:background var(--dur-base) var(--ease-out),color var(--dur-base),box-shadow var(--dur-base),transform var(--dur-base) var(--ease-spring),border-color var(--dur-base);white-space:nowrap;border:1.5px solid transparent;text-decoration:none;position:relative;overflow:hidden}.btn-primary{background:var(--clr-primary);color:#fff;border-color:var(--clr-primary);box-shadow:var(--glow-primary)}.btn-primary:hover{background:var(--clr-primary-dim);border-color:var(--clr-primary-dim);transform:translateY(-2px);box-shadow:0 8px 28px rgba(58,191,255,.35)}.btn-outline{background:transparent;color:var(--clr-text);border-color:var(--clr-border)}.btn-outline:hover{background:var(--clr-surface-alt);border-color:var(--clr-text-muted);transform:translateY(-2px)}.btn-accent{background:var(--clr-accent);color:#fff;border-color:var(--clr-accent);box-shadow:var(--glow-accent)}.btn-accent:hover{background:var(--clr-accent-dim);border-color:var(--clr-accent-dim);transform:translateY(-2px);box-shadow:0 8px 28px rgba(255,161,83,.35)}.btn svg{width:16px;height:16px}#portfolio{padding-block:var(--space-2xl)}.portfolio-header{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-md);margin-bottom:var(--space-xl);flex-wrap:wrap}.portfolio-filter{display:flex;gap:.5rem;flex-wrap:wrap}.filter-btn{padding:.4rem 1rem;border-radius:var(--radius-pill);font-family:var(--font-display);font-size:.82rem;font-weight:500;border:1.5px solid var(--clr-border);color:var(--clr-text-muted);background:transparent;cursor:pointer;transition:all var(--dur-base) var(--ease-out)}.filter-btn.active,.filter-btn:hover{background:var(--clr-primary);border-color:var(--clr-primary);color:#fff}.portfolio-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));grid-gap:var(--col-gap);gap:var(--col-gap)}.card{background:var(--clr-surface);border:1.5px solid var(--clr-border);border-radius:var(--radius-md);overflow:hidden;display:flex;flex-direction:column;transition:transform var(--dur-slow) var(--ease-out),box-shadow var(--dur-slow) var(--ease-out),border-color var(--dur-base);cursor:pointer;box-shadow:var(--shadow-card)}.card:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg);border-color:var(--clr-primary)}.card-img-wrap{position:relative;overflow:hidden;aspect-ratio:16/10;background:var(--clr-bg-alt)}.card-img-wrap img{width:100%;height:100%;object-fit:cover;transition:transform var(--dur-slow) var(--ease-out)}.card:hover .card-img-wrap img{transform:scale(1.06)}.card-overlay{position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,0,0,.7) 0,transparent 55%);display:flex;align-items:flex-end;padding:var(--space-md);opacity:0;transition:opacity var(--dur-base) var(--ease-out)}.card:hover .card-overlay{opacity:1}.card-overlay-actions{display:flex;gap:.5rem}.card-icon-btn{width:34px;height:34px;border-radius:50%;border:1.5px solid hsla(0,0%,100%,.3);background:hsla(0,0%,100%,.1);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:#fff;display:flex;align-items:center;justify-content:center;transition:background var(--dur-fast),transform var(--dur-base) var(--ease-spring)}.card-icon-btn:hover{background:hsla(0,0%,100%,.25);transform:scale(1.1)}.card-icon-btn svg{width:14px;height:14px}.card-tag{position:absolute;top:var(--space-sm);right:var(--space-sm);padding:3px 10px;border-radius:var(--radius-pill);font-family:var(--font-display);font-size:.68rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;background:rgba(0,0,0,.5);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:#fff;border:1px solid hsla(0,0%,100%,.2)}.card-tag.web{background:rgba(58,191,255,.85)}.card-tag.mobile{background:rgba(255,161,83,.85)}.card-tag.design{background:rgba(100,220,120,.85)}.card-body{padding:var(--space-md);display:flex;flex-direction:column;gap:.4rem;flex:1 1}.card-title{font-family:var(--font-display);font-size:1.05rem;font-weight:700;color:var(--clr-text);letter-spacing:-.01em}.card-desc{font-size:.88rem;color:var(--clr-text-muted);line-height:1.6;flex:1 1}.card-meta{display:flex;align-items:center;justify-content:space-between;margin-top:var(--space-sm);padding-top:var(--space-sm);border-top:1px solid var(--clr-border)}.card-tech{display:flex;gap:.35rem;flex-wrap:wrap}.tech-chip{padding:2px 8px;border-radius:var(--radius-pill);font-size:.68rem;font-weight:500;background:var(--clr-bg-alt);color:var(--clr-text-muted);border:1px solid var(--clr-border)}.card-link{font-family:var(--font-display);font-size:.78rem;font-weight:600;color:var(--clr-primary);display:flex;align-items:center;gap:.25rem;transition:gap var(--dur-base) var(--ease-spring),opacity var(--dur-fast)}.card-link:hover{gap:.5rem}.card-link svg{width:12px;height:12px}#about{padding-block:var(--space-2xl)}.about-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:var(--space-xl);gap:var(--space-xl);align-items:center}.about-stats{display:grid;grid-template-columns:1fr 1fr;grid-gap:var(--space-sm);gap:var(--space-sm);margin-top:var(--space-lg)}.stat-card{background:var(--clr-surface);border:1.5px solid var(--clr-border);border-radius:var(--radius-md);padding:var(--space-md);transition:border-color var(--dur-base),transform var(--dur-slow) var(--ease-out),box-shadow var(--dur-slow)}.stat-card:hover{border-color:var(--clr-primary);transform:translateY(-3px);box-shadow:var(--shadow-md)}.stat-number{font-family:var(--font-display);font-size:2.2rem;font-weight:700;letter-spacing:-.03em;color:var(--clr-primary);line-height:1;margin-bottom:.25rem}.stat-label{font-size:.82rem;color:var(--clr-text-muted);font-weight:500}.about-visual{position:relative}.about-img-main{border-radius:var(--radius-lg);overflow:hidden;aspect-ratio:4/5;box-shadow:var(--shadow-lg);border:1.5px solid var(--clr-border)}.about-img-main img{width:100%;height:100%;object-fit:cover;transition:transform var(--dur-slow) var(--ease-out)}.about-img-main:hover img{transform:scale(1.04)}.about-badge{position:absolute;bottom:var(--space-md);left:calc(-1 * var(--space-md));background:var(--clr-surface);border:1.5px solid var(--clr-border);border-radius:var(--radius-md);padding:var(--space-sm) var(--space-md);gap:var(--space-sm);box-shadow:var(--shadow-md);transition:background var(--dur-slow),border-color var(--dur-base)}.about-badge,.badge-icon{display:flex;align-items:center}.badge-icon{width:38px;height:38px;border-radius:var(--radius-sm);background:linear-gradient(135deg,var(--clr-primary),var(--clr-accent));justify-content:center;flex-shrink:0}.badge-icon svg{width:18px;height:18px;color:#fff}.badge-text-top{font-family:var(--font-display);font-size:.95rem;font-weight:700;color:var(--clr-text);line-height:1.2}.badge-text-sub{font-size:.75rem;color:var(--clr-text-muted)}.about-skills{margin-top:var(--space-lg)}.skill-tags{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:var(--space-sm)}.skill-tag{padding:.35rem .9rem;border-radius:var(--radius-pill);font-size:.82rem;font-weight:500;background:var(--clr-surface);border:1.5px solid var(--clr-border);color:var(--clr-text-muted);transition:all var(--dur-base) var(--ease-out)}.skill-tag:hover{background:rgba(58,191,255,.1);border-color:var(--clr-primary);color:var(--clr-primary)}#contact{padding-block:var(--space-2xl)}.contact-grid{display:grid;grid-template-columns:1fr 1.5fr;grid-gap:var(--space-xl);gap:var(--space-xl);align-items:start}.contact-info .section-lead{margin-bottom:var(--space-lg)}.contact-items{flex-direction:column}.contact-item,.contact-items{display:flex;gap:var(--space-sm)}.contact-item{align-items:center;font-size:.92rem;color:var(--clr-text-muted);padding:.6rem 0}.contact-item-icon{width:36px;height:36px;border-radius:var(--radius-sm);background:var(--clr-surface);border:1.5px solid var(--clr-border);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background var(--dur-base),border-color var(--dur-base)}.contact-item:hover .contact-item-icon{background:rgba(58,191,255,.1);border-color:var(--clr-primary)}.contact-item-icon svg{width:15px;height:15px;color:var(--clr-primary)}.contact-form{background:var(--clr-surface);border:1.5px solid var(--clr-border);border-radius:var(--radius-lg);padding:var(--space-lg);box-shadow:var(--shadow-md);transition:background var(--dur-slow),border-color var(--dur-base)}.form-row{display:grid;grid-template-columns:1fr 1fr;grid-gap:var(--space-sm);gap:var(--space-sm)}.form-group{display:flex;flex-direction:column;gap:.4rem;margin-bottom:var(--space-sm)}.form-group.full{grid-column:1/-1}.form-label{font-family:var(--font-display);font-size:.8rem;font-weight:600;color:var(--clr-text-muted);letter-spacing:.04em}.form-control{width:100%;padding:.75rem 1rem;background:var(--clr-bg-alt);border:1.5px solid var(--clr-border);border-radius:var(--radius-sm);font-family:var(--font-body);font-size:.92rem;color:var(--clr-text);transition:border-color var(--dur-base),box-shadow var(--dur-base),background var(--dur-slow);outline:none}.form-control::placeholder{color:var(--clr-text-muted);opacity:.7}.form-control:focus{border-color:var(--clr-primary);box-shadow:0 0 0 3px rgba(58,191,255,.12);background:var(--clr-bg)}textarea.form-control{resize:vertical;min-height:120px;line-height:1.6}.form-submit{width:100%;padding:.85rem;margin-top:var(--space-xs)}.form-success{display:none;align-items:center;gap:.6rem;padding:.75rem 1rem;border-radius:var(--radius-sm);background:rgba(58,191,255,.1);border:1.5px solid rgba(58,191,255,.3);color:var(--clr-primary);font-size:.88rem;font-weight:500;margin-top:var(--space-sm)}.form-success.show{display:flex}.form-success svg{width:16px;height:16px;flex-shrink:0}#footer{background:var(--clr-bg-alt);border-top:1px solid var(--clr-border);padding-block:var(--space-md);transition:background var(--dur-slow),border-color var(--dur-base)}.footer-inner{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--space-sm)}.footer-copy{font-size:.8rem;color:var(--clr-text-muted)}.footer-copy a{color:var(--clr-primary);font-weight:500;transition:opacity var(--dur-fast)}.footer-copy a:hover{opacity:.75}.footer-socials{display:flex;gap:.75rem}.footer-social{width:32px;height:32px;border-radius:50%;border:1.5px solid var(--clr-border);background:transparent;display:flex;align-items:center;justify-content:center;color:var(--clr-text-muted);transition:color var(--dur-base),border-color var(--dur-base),transform var(--dur-base) var(--ease-spring),background var(--dur-base)}.footer-social:hover{color:var(--clr-primary);border-color:var(--clr-primary);transform:translateY(-2px);background:rgba(58,191,255,.1)}.footer-social svg{width:14px;height:14px}#lightbox{position:fixed;inset:0;z-index:9999;background:rgba(0,0,0,.92);display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity var(--dur-base) var(--ease-out);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:var(--space-md)}#lightbox.active{opacity:1;pointer-events:all}.lightbox-inner{position:relative;max-width:900px;width:100%;transform:scale(.95);transition:transform var(--dur-slow) var(--ease-spring)}#lightbox.active .lightbox-inner{transform:scale(1)}.lightbox-img{width:100%;max-height:75vh;object-fit:contain;border-radius:var(--radius-md);display:block}.lightbox-caption{margin-top:var(--space-sm);text-align:center;color:hsla(0,0%,100%,.7);font-size:.9rem}.lightbox-close{position:absolute;top:-44px;right:0;width:36px;height:36px;border-radius:50%;border:1.5px solid hsla(0,0%,100%,.2);color:#fff;display:flex;align-items:center;justify-content:center;transition:background var(--dur-fast),transform var(--dur-base) var(--ease-spring)}.lightbox-close:hover{background:hsla(0,0%,100%,.15);transform:rotate(90deg) scale(1.1)}.lightbox-close svg{width:15px;height:15px}.lightbox-next,.lightbox-prev{position:absolute;top:50%;transform:translateY(-50%);width:42px;height:42px;border-radius:50%;border:1.5px solid hsla(0,0%,100%,.2);background:hsla(0,0%,100%,.08);color:#fff;display:flex;align-items:center;justify-content:center;transition:background var(--dur-fast),transform var(--dur-base) var(--ease-spring)}.lightbox-prev{left:-56px}.lightbox-next{right:-56px}.lightbox-next:hover,.lightbox-prev:hover{background:hsla(0,0%,100%,.2);transform:translateY(-50%) scale(1.1)}.lightbox-next svg,.lightbox-prev svg{width:16px;height:16px}#back-to-top{position:fixed;bottom:var(--space-md);right:var(--space-md);z-index:800;width:42px;height:42px;border-radius:50%;background:var(--clr-primary);color:#fff;border:none;display:flex;align-items:center;justify-content:center;box-shadow:var(--glow-primary),var(--shadow-md);opacity:0;pointer-events:none;transform:translateY(12px);transition:opacity var(--dur-base) var(--ease-out),transform var(--dur-base) var(--ease-spring),background var(--dur-fast)}#back-to-top.visible{opacity:1;pointer-events:all;transform:translateY(0)}#back-to-top:hover{background:var(--clr-primary-dim);transform:translateY(-3px) scale(1.08);box-shadow:0 12px 32px rgba(58,191,255,.4)}#back-to-top svg{width:16px;height:16px}.fade-in{opacity:0;transform:translateY(30px);transition:opacity .7s var(--ease-out),transform .7s var(--ease-out)}.fade-in.visible{opacity:1;transform:translateY(0)}.fade-in-left{opacity:0;transform:translateX(-30px);transition:opacity .7s var(--ease-out),transform .7s var(--ease-out)}.fade-in-left.visible{opacity:1;transform:translateX(0)}.fade-in-right{opacity:0;transform:translateX(30px);transition:opacity .7s var(--ease-out),transform .7s var(--ease-out)}.fade-in-right.visible{opacity:1;transform:translateX(0)}.fade-in-stagger>*{opacity:0;transform:translateY(24px);transition:opacity .6s var(--ease-out),transform .6s var(--ease-out)}.fade-in-stagger.visible>:first-child{opacity:1;transform:none;transition-delay:0ms}.fade-in-stagger.visible>:nth-child(2){opacity:1;transform:none;transition-delay:80ms}.fade-in-stagger.visible>:nth-child(3){opacity:1;transform:none;transition-delay:.16s}.fade-in-stagger.visible>:nth-child(4){opacity:1;transform:none;transition-delay:.24s}.fade-in-stagger.visible>:nth-child(5){opacity:1;transform:none;transition-delay:.32s}.fade-in-stagger.visible>:nth-child(6){opacity:1;transform:none;transition-delay:.4s}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.text-accent{color:var(--clr-accent)}.text-primary{color:var(--clr-primary)}.text-muted{color:var(--clr-text-muted)}@media (max-width:1024px){.hero-grid{gap:var(--space-lg)}.about-grid{grid-template-columns:1fr}.about-visual{display:none}.about-stats{grid-template-columns:repeat(4,1fr)}.contact-grid{grid-template-columns:1fr}.lightbox-prev{left:-14px}.lightbox-next{right:-14px}}@media (max-width:768px){:root{--space-2xl:4.5rem;--panel-width:100%}.hero-grid{grid-template-columns:1fr;text-align:center;gap:var(--space-lg)}.hero-visual{order:-1;margin-bottom:var(--space-md)}.hero-actions{justify-content:center}.portfolio-grid{grid-template-columns:1fr}.about-stats{grid-template-columns:1fr 1fr}.form-row{grid-template-columns:1fr}.portfolio-header{align-items:flex-start}.footer-inner{flex-direction:column;align-items:center;text-align:center;gap:var(--space-sm)}}@media (max-width:480px){.display-1{font-size:2.8rem}.hero-actions{flex-direction:column;align-items:flex-start}.btn{width:100%;justify-content:center}.about-stats{grid-template-columns:1fr 1fr}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;transition-duration:.01ms!important}.fade-in,.fade-in-left,.fade-in-right,.fade-in-stagger>*{opacity:1!important;transform:none!important}}@font-face{font-family:__Space_Grotesk_c22fe1;font-style:normal;font-weight:300;font-display:swap;src:url(/_next/static/media/e1aab0933260df4d-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:__Space_Grotesk_c22fe1;font-style:normal;font-weight:300;font-display:swap;src:url(/_next/static/media/b7387a63dd068245-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:__Space_Grotesk_c22fe1;font-style:normal;font-weight:300;font-display:swap;src:url(/_next/static/media/36966cca54120369-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:__Space_Grotesk_c22fe1;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/e1aab0933260df4d-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:__Space_Grotesk_c22fe1;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/b7387a63dd068245-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:__Space_Grotesk_c22fe1;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/36966cca54120369-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:__Space_Grotesk_c22fe1;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/e1aab0933260df4d-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:__Space_Grotesk_c22fe1;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/b7387a63dd068245-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:__Space_Grotesk_c22fe1;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/36966cca54120369-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:__Space_Grotesk_c22fe1;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/e1aab0933260df4d-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:__Space_Grotesk_c22fe1;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/b7387a63dd068245-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:__Space_Grotesk_c22fe1;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/36966cca54120369-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:__Space_Grotesk_c22fe1;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/e1aab0933260df4d-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:__Space_Grotesk_c22fe1;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/b7387a63dd068245-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:__Space_Grotesk_c22fe1;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/36966cca54120369-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:__Space_Grotesk_Fallback_c22fe1;src:local("Arial");ascent-override:89.71%;descent-override:26.62%;line-gap-override:0.00%;size-adjust:109.69%}.__className_c22fe1{font-family:__Space_Grotesk_c22fe1,__Space_Grotesk_Fallback_c22fe1;font-style:normal}.__variable_c22fe1{--font-space-grotesk:"__Space_Grotesk_c22fe1","__Space_Grotesk_Fallback_c22fe1"}@font-face{font-family:__DM_Sans_c95b6f;font-style:normal;font-weight:300;font-display:swap;src:url(/_next/static/media/7ab938503e4547a1-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:__DM_Sans_c95b6f;font-style:normal;font-weight:300;font-display:swap;src:url(/_next/static/media/13971731025ec697-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:__DM_Sans_c95b6f;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/7ab938503e4547a1-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:__DM_Sans_c95b6f;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/13971731025ec697-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:__DM_Sans_c95b6f;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/7ab938503e4547a1-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:__DM_Sans_c95b6f;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/13971731025ec697-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:__DM_Sans_Fallback_c95b6f;src:local("Arial");ascent-override:94.90%;descent-override:29.66%;line-gap-override:0.00%;size-adjust:104.53%}.__className_c95b6f{font-family:__DM_Sans_c95b6f,__DM_Sans_Fallback_c95b6f;font-style:normal}.__variable_c95b6f{--font-dm-sans:"__DM_Sans_c95b6f","__DM_Sans_Fallback_c95b6f"}