@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:100;src:url(/assets/montserrat-v31-latin-100-DmCriHno.woff2) format("woff2")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:100;src:url(/assets/montserrat-v31-latin-100italic-ByEOKfMj.woff2) format("woff2")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:200;src:url(/assets/montserrat-v31-latin-200-C98N1POV.woff2) format("woff2")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:200;src:url(/assets/montserrat-v31-latin-200italic-BxafqC0p.woff2) format("woff2")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:300;src:url(/assets/montserrat-v31-latin-300-BgP24wlQ.woff2) format("woff2")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:300;src:url(/assets/montserrat-v31-latin-300italic-DSsDFQ71.woff2) format("woff2")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:400;src:url(/assets/montserrat-v31-latin-regular-BLhwKU8k.woff2) format("woff2")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:400;src:url(/assets/montserrat-v31-latin-italic-CnlIvBC9.woff2) format("woff2")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:500;src:url(/assets/montserrat-v31-latin-500-DRFEGfly.woff2) format("woff2")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:500;src:url(/assets/montserrat-v31-latin-500italic-DXA4yvBS.woff2) format("woff2")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:600;src:url(/assets/montserrat-v31-latin-600-UVxSCcoG.woff2) format("woff2")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:600;src:url(/assets/montserrat-v31-latin-600italic-Dgc2MWzZ.woff2) format("woff2")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:700;src:url(/assets/montserrat-v31-latin-700-BdjcYUrC.woff2) format("woff2")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:700;src:url(/assets/montserrat-v31-latin-700italic-CBaAd72i.woff2) format("woff2")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:800;src:url(/assets/montserrat-v31-latin-800-axpkC1rd.woff2) format("woff2")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:800;src:url(/assets/montserrat-v31-latin-800italic-DyMN9dWi.woff2) format("woff2")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:900;src:url(/assets/montserrat-v31-latin-900-B0TD3Qnu.woff2) format("woff2")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:900;src:url(/assets/montserrat-v31-latin-900italic-Drco3BKl.woff2) format("woff2")}.logo{height:6em;padding:1.5em;will-change:filter;transition:filter .3s}.logo:hover{filter:drop-shadow(0 0 2em #646cffaa)}:root{--color-bg: #0b0b0b;--color-surface: #111111;--color-surface-alt: #151515;--color-text: #f5f5f5;--color-text-soft: #cfcfcf;--color-accent: #100C08;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--shadow-sm: 0 1px 3px rgba(0,0,0,.5), 0 0 0 1px rgba(255,255,255,.04);--shadow-md: 0 8px 24px rgba(0,0,0,.35);--transition-base: .16s cubic-bezier(.4,0,.2,1);--content-max: 1240px;--nav-height: 56px;--nav-border: 1px;--hero-top-ui: 56px;--footer-height: 40px;--font-stack: "Montserrat", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", Arial, sans-serif}html,body,#root{margin:0;padding:0;font-family:var(--font-stack);background:var(--color-bg);color:var(--color-text);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}body{line-height:1.48}h1,h2,h3,h4,h5,h6{font-family:"Montserrat",var(--font-stack);font-weight:700;line-height:1.15;margin:0 0 .75em;color:var(--color-text)}h1{font-size:clamp(2.4rem,4vw,3.2rem)}h2{font-size:clamp(1.9rem,3.2vw,2.25rem)}h3{font-size:clamp(1.25rem,2vw,1.35rem)}p{margin:0 0 1.25em;font-size:1.05rem;color:var(--color-text-soft)}a{color:var(--color-text);text-decoration:none;transition:color var(--transition-base)}a:hover{color:#fff}img{max-width:100%;display:block}.container{width:100%;max-width:var(--content-max);margin:0 auto;padding:0 1.25rem;box-sizing:border-box}@media (min-width: 768px){.container{padding:0 2rem}}.section{padding:3.5rem 0}.section-tight{padding:2.25rem 0}.section-alt{background:var(--color-surface-alt)}.card-surface{background:var(--color-surface);border:1px solid #262626;border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:2rem}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5em;font-weight:600;font-size:1rem;border-radius:var(--radius-sm);padding:.8em 1.6em;cursor:pointer;border:2px solid transparent;transition:background var(--transition-base),color var(--transition-base),border-color var(--transition-base),box-shadow var(--transition-base)}.btn-primary{background:var(--color-text);color:#000}.btn-primary:hover{filter:brightness(.95)}.btn-outline{background:transparent;color:var(--color-text);border-color:var(--color-text)}.btn-outline:hover{background:var(--color-text);color:#000}.tag{background:var(--color-text);color:#000;border-radius:var(--radius-sm);padding:.25em .7em;font-size:.8rem;font-weight:500}.projects-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:.9rem}.project-card{perspective:1000px;position:relative;height:360px}.project-card__inner{position:relative;width:100%;height:100%;transform-style:preserve-3d;transition:transform .5s ease;transform-origin:center center;will-change:transform}.project-card:hover .project-card__inner,.project-card:focus-within .project-card__inner{transform:rotateY(180deg)}.project-card__face{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;background:var(--color-surface);border:1px solid #262626;border-radius:12px;box-shadow:var(--shadow-md);padding:.8rem;display:grid;grid-template-rows:auto auto 1fr auto;gap:.5rem;overflow:hidden}.project-card__front{gap:.9rem}.project-card__front .project-media{margin-bottom:.6rem}.project-card__front .project-title{margin-top:.65rem}.project-card__back{transform:rotateY(180deg);background:linear-gradient(180deg,#141414,#0f0f0f);border-color:#2a2a2a}.project-card__back .project-title{color:var(--color-text)}.project-card__back .project-desc{color:var(--color-text-soft);-webkit-line-clamp:unset;line-clamp:unset;overflow:visible}.project-card__back .project-actions{justify-content:flex-start}.project-media{width:100%;aspect-ratio:4/3;background:var(--color-surface-alt);border:1px solid #262626;border-radius:8px;display:flex;align-items:center;justify-content:center;color:var(--color-text);font-size:1.2rem;overflow:hidden}.project-media img{width:100%;height:100%;object-fit:cover;display:block}.project-title{font-size:.95rem;font-weight:700;margin:.15rem 0 .05rem}.project-desc{color:var(--color-text-soft);font-size:.9rem;line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.project-tags{display:flex;gap:.35rem;flex-wrap:wrap;margin-top:.15rem}.project-actions{display:flex;gap:.8rem;align-items:center;margin-top:auto;font-size:.9rem}.tag{display:inline-flex;align-items:center;justify-content:center;padding:.2em .55em;line-height:1;border-radius:9999px;font-size:.75rem}.tag--icon{background:transparent!important;color:var(--color-text);border:none;box-shadow:none;padding:0;border-radius:0}.tag--icon svg{filter:drop-shadow(0 1px 1px rgba(0,0,0,.25))}@media (max-width: 680px){.project-title{font-size:.98rem}.project-desc{font-size:.9rem}}.inline-list{display:flex;gap:2rem;align-items:center;justify-content:center;flex-wrap:wrap;color:var(--color-text-soft)}html{scroll-behavior:smooth}.text-center{text-align:center}.mt-0{margin-top:0}.mb-0{margin-bottom:0}.mb-1{margin-bottom:.5rem}.mb-2{margin-bottom:1rem}.mb-3{margin-bottom:1.5rem}.mb-4{margin-bottom:2rem}.accent{color:var(--color-text)}[class^=section-heading],.section-heading{margin-top:0;margin-bottom:2rem}[id]{scroll-margin-top:calc(var(--nav-height) + var(--nav-border))}.site-nav{position:fixed;top:0;left:0;width:100%;height:var(--nav-height);background:#0f0f0f8c;-webkit-backdrop-filter:saturate(160%) blur(10px);backdrop-filter:saturate(160%) blur(10px);border-bottom:1px solid rgba(255,255,255,.06);z-index:1000;display:flex;align-items:center;padding:0 12px;box-sizing:border-box}.nav-inner{width:100%;max-width:var(--content-max);margin:0 auto;display:flex;align-items:center;justify-content:space-between;height:100%}.brand{display:inline-flex;align-items:center;gap:.65rem;font-weight:600;font-size:1rem;letter-spacing:.3px;color:var(--color-text);text-decoration:none}.brand-logo{width:36px;height:36px;object-fit:contain;display:block}.brand-text{display:none;font-weight:600}@media (min-width:680px){.brand-text{display:inline-block}}.nav-links{list-style:none;margin:0;padding:0;display:flex;align-items:center;gap:1.2rem}.nav-link{position:relative;font-size:.82rem;font-weight:600;text-transform:uppercase;letter-spacing:.6px;padding:.5rem .2rem;display:inline-flex;align-items:center;color:var(--color-text)}.nav-link:after{content:"";position:absolute;left:0;right:0;bottom:.2rem;height:2px;background:var(--color-text);transform:scaleX(0);transform-origin:left;transition:transform .25s ease;border-radius:2px}.nav-link:hover:after,.nav-link:focus-visible:after{transform:scaleX(1)}.nav-links-wrapper{display:flex}@media (max-width:640px){.nav-links{gap:.75rem}.nav-link{font-size:.75rem}.brand-mark{width:36px;height:36px;font-size:.8rem}}.nav-burger{display:none;position:relative;width:40px;height:40px;border:1px solid #2a2a2a;border-radius:8px;background:#121212;color:var(--color-text);align-items:center;justify-content:center;gap:4px}.nav-burger span{display:block;width:18px;height:2px;background:var(--color-text);border-radius:2px}@media (max-width: 820px){.nav-links-wrapper{display:none}.nav-burger{display:inline-flex}}.mobile-nav{display:none;position:absolute;top:calc(var(--nav-height) + var(--nav-border));left:0;right:0;background:#0f0f0fe6;-webkit-backdrop-filter:saturate(160%) blur(10px);backdrop-filter:saturate(160%) blur(10px);border-bottom:1px solid rgba(255,255,255,.06)}.mobile-nav ul{list-style:none;margin:0;padding:.5rem .75rem 1rem;display:flex;flex-direction:column;gap:.25rem}.mobile-nav .nav-link{padding:.75rem .5rem;display:block}.mobile-nav.open{display:block}.social-link{display:inline-flex;align-items:center;justify-content:center;color:var(--color-text);text-decoration:none;transition:color .25s ease,transform .25s ease}.social-link:hover{color:#fff;transform:translateY(-2px)}#hero{height:calc(100svh - var(--nav-height) - var(--nav-border));display:flex;flex-direction:column;justify-content:flex-start;padding-top:.25rem;padding-bottom:0;overflow:hidden}@media (max-width: 640px){:root{--hero-top-ui: 72px}}.hero-section{position:relative;overflow:hidden}.spline-bg{position:absolute;inset:0;z-index:0}.spline-bg:after{content:"";position:absolute;inset:0;background:linear-gradient(to bottom,#00000073,#0009);pointer-events:none}.hero-content{position:relative;z-index:1;margin-block:auto}.hero-header{position:relative;z-index:1;background:transparent}.section-full{min-height:calc(100svh - var(--nav-height));display:flex;flex-direction:column;justify-content:center;gap:1.1rem;padding-top:0;padding-bottom:1.25rem;background:var(--color-bg)}#contact.section-full{min-height:calc(100svh - var(--nav-height) - var(--footer-height))}.about-animation{display:flex;justify-content:center;margin-top:1rem}.about-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:2rem;align-items:center}@media (max-width: 920px){.about-grid{grid-template-columns:1fr}}.terminal{background:#0e0e0e;border:1px solid #262626;border-radius:10px;overflow:hidden;box-shadow:var(--shadow-md);font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.terminal-bar{display:flex;align-items:center;gap:.5rem;height:36px;padding:0 .75rem;background:#121212;border-bottom:1px solid #1f1f1f;position:relative}.terminal-bar .dot{width:12px;height:12px;border-radius:50%;display:inline-block}.terminal-bar .dot.red{background:#ff5f57}.terminal-bar .dot.yellow{background:#febc2e}.terminal-bar .dot.green{background:#28c840}.terminal-bar .title{position:absolute;left:50%;transform:translate(-50%);font-size:.85rem;color:#c9c9c9;letter-spacing:.3px}.terminal-body{padding:1rem 1.25rem;font-size:.95rem;color:#d6ffd6;line-height:1.6}.terminal-body .prompt{color:#8ab4f8;margin-bottom:.5rem}.term-line{color:#a6e3a1;white-space:pre-wrap}.skills-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1rem;align-items:stretch}.skill-card{background:#111;border:1px solid #1f1f1f;border-radius:10px;padding:.5rem .45rem;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.35rem;box-shadow:0 6px 12px #0003;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;min-height:96px}.skill-card:hover{transform:translateY(-1px);box-shadow:0 10px 16px #0000003d;border-color:#2a2a2a}.skill-icon{width:32px;height:32px;display:flex;align-items:center;justify-content:center;filter:drop-shadow(0 1px 4px rgba(0,0,0,.18))}.skill-name{color:#e9e9e9;font-weight:700;letter-spacing:.4px;font-size:.7rem;line-height:1.1;text-align:center}#skills>h2{margin-bottom:1rem!important}@media (max-width: 1200px){.skills-grid{grid-template-columns:repeat(5,1fr)}}@media (max-width: 920px){.skills-grid{grid-template-columns:repeat(4,1fr)}}@media (max-width: 680px){.skills-grid{grid-template-columns:repeat(3,1fr);gap:.6rem}.skill-card{min-height:88px;padding:.45rem .4rem}.skill-icon{width:28px;height:28px}.skill-name{font-size:.65rem}}.skills-loop{margin-top:1.5rem}.logo-loop{position:relative;width:100%}.logo-viewport{position:relative;overflow:hidden;width:100%}.loop-track{display:flex;width:max-content;will-change:transform}.loop-group{display:inline-flex;align-items:center;gap:var(--gap, 32px);padding-inline:calc(var(--gap, 32px) / 2)}.logo-link{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;color:inherit}.logo-item{display:inline-flex;align-items:center;justify-content:center;height:var(--logo-height, 36px);width:auto;opacity:.95;transition:transform .2s ease,opacity .2s ease}.logo-loop--scale .logo-link:hover .logo-item{transform:scale(1.08);opacity:1}.logo-loop--left .loop-track{animation:loop-left var(--loop-duration, 20s) linear infinite}.logo-loop--right .loop-track{animation:loop-right var(--loop-duration, 20s) linear infinite}.logo-loop--pause:hover .loop-track{animation-play-state:paused}@keyframes loop-left{0%{transform:translate(0)}to{transform:translate(-50%)}}@keyframes loop-right{0%{transform:translate(-50%)}to{transform:translate(0)}}.logo-loop--fade .loop-fade{position:absolute;top:0;bottom:0;width:80px;pointer-events:none;z-index:1}.logo-loop--fade .loop-fade--left{left:0;background:linear-gradient(to right,var(--fade-color, var(--color-bg)) 0%,rgba(0,0,0,0) 100%)}.logo-loop--fade .loop-fade--right{right:0;background:linear-gradient(to left,var(--fade-color, var(--color-bg)) 0%,rgba(0,0,0,0) 100%)}.blur-text{display:inline-block;overflow:hidden}.blur-segment{display:inline-block;filter:blur(8px);opacity:0;transform:translateY(12px);animation:blur-in .7s ease forwards}.blur-top .blur-segment{transform:translateY(12px)}.blur-bottom .blur-segment{transform:translateY(-12px)}.blur-left .blur-segment{transform:translate(12px)}.blur-right .blur-segment{transform:translate(-12px)}@keyframes blur-in{0%{filter:blur(10px);opacity:0}60%{filter:blur(4px);opacity:.7}to{filter:blur(0);opacity:1;transform:none}}.certs-section{padding:3.5rem 0}.certs-lead{color:var(--color-text-soft);max-width:880px;margin:.5rem auto 2rem;text-align:center}.certs-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.25rem}.cert-card{perspective:1000px;background:transparent;border-radius:14px;position:relative;height:360px;isolation:isolate}.cert-card:focus{outline:none}.cert-card:hover,.cert-card:focus-visible{z-index:2}.cert-card__inner{position:relative;width:100%;height:100%;transform-style:preserve-3d;transition:transform .5s ease;transform-origin:center center;will-change:transform}.cert-card:hover .cert-card__inner,.cert-card:focus-visible .cert-card__inner{transform:rotateY(180deg)}.cert-card__face{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;background:var(--color-surface);border:1px solid #262626;border-radius:14px;box-shadow:var(--shadow-md);padding:1rem;display:flex;flex-direction:column;gap:.75rem;overflow:hidden}.cert-card__back{transform:rotateY(180deg)}.cert-card__back{background:linear-gradient(180deg,#141414,#0f0f0f);color:var(--color-text);border-color:#2a2a2a}.cert-card__back .cert-title{color:var(--color-text)}.cert-card__back .cert-issuer{color:#76a7ff}.cert-card__back .cert-year,.cert-card__back .cert-details,.cert-card__back .cert-details li{color:var(--color-text-soft)}.cert-card__back .cert-back__content{text-align:center;align-items:center}.cert-card__back .cert-details{text-align:left;align-self:stretch}.cert-media{width:100%;aspect-ratio:16/9;background:var(--color-surface-alt);border:1px solid #262626;border-radius:10px;display:flex;align-items:center;justify-content:center;overflow:hidden}.cert-media img{width:100%;height:100%;object-fit:cover;display:block}.cert-media__ph{color:var(--color-text);opacity:.8;font-size:1.2rem}.cert-meta{display:flex;flex-direction:column;gap:.25rem;margin-top:.25rem}.cert-title{font-weight:800;letter-spacing:.2px}.cert-issuer{color:#76a7ff;font-weight:600}.cert-year{color:var(--color-text-soft);font-size:.9rem}.cert-back__content{display:flex;flex-direction:column;gap:.5rem;height:100%}.cert-details{margin:.25rem 0 .5rem;padding-left:1.1rem}.cert-details li{margin:.15rem 0;color:var(--color-text-soft)}.ihb--dark{background:radial-gradient(120px circle at var(--x) var(--y),rgba(0,0,0,.08),transparent 45%),#0b0b0b;color:#fff;border-color:#0b0b0b}.ihb--dark:hover{filter:brightness(1.02);color:#fff}.ihb{--x: 50%;--y: 50%;position:relative;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1.1rem;border-radius:50px;font-weight:600;font-size:.95rem;line-height:1;border:1px solid #2a2a2a;cursor:pointer;overflow:hidden;text-decoration:none;color:var(--color-text);will-change:transform;transition:transform .18s ease,border-color .2s ease,background-color .2s ease,filter .2s ease;background:radial-gradient(120px circle at var(--x) var(--y),rgba(255,255,255,.12),transparent 45%),var(--color-surface)}.ihb .ihb-label{position:relative;z-index:2;letter-spacing:.15px}.ihb:before{content:"";position:absolute;inset:0;background:radial-gradient(180px circle at var(--x) var(--y),rgba(80,160,255,.25),transparent 60%);opacity:0;transition:opacity .2s ease;z-index:1}.ihb:hover{transform:translateY(-1px);border-color:#3a3a3a}.ihb:hover:before{opacity:1}.ihb--primary{background:radial-gradient(120px circle at var(--x) var(--y),rgba(0,0,0,.07),transparent 45%),var(--color-text);color:#0b0b0b;border-color:transparent}.ihb--primary:hover{filter:brightness(.98);color:#0a0a0a}.ihb--outline{background:radial-gradient(120px circle at var(--x) var(--y),rgba(255,255,255,.12),transparent 45%),var(--color-surface)}@media (prefers-reduced-motion: reduce){.ihb,.ihb:before{transition:none}}.tw-caret{display:inline-block;margin-left:.2ch;color:var(--color-text);opacity:1;animation:tw-blink 1s steps(2,start) infinite}.tw-caret--done{animation:tw-blink 1.6s steps(2,start) infinite}@keyframes tw-blink{0%,49%{opacity:1}50%,to{opacity:0}}.animate__animated{--animate-duration: .85s;--animate-delay: 0s;animation-duration:var(--animate-duration);animation-fill-mode:both;animation-delay:var(--animate-delay)}@keyframes animate__fadeInUp{0%{opacity:0;transform:translate3d(0,16px,0)}to{opacity:1;transform:translateZ(0)}}.animate__fadeInUp{animation-name:animate__fadeInUp}@media (prefers-reduced-motion: reduce){.animate__animated{animation:none!important;transition:none!important}}.pre-animate{opacity:0;transform:translate3d(0,12px,0)}@media (prefers-reduced-motion: reduce){.pre-animate{opacity:1!important;transform:none!important}}.experience-section{padding:2.25rem 0}.experience-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;align-items:center}@media (max-width: 920px){.experience-grid{grid-template-columns:1fr}}.experience-panel{background:var(--color-surface);border:1px solid #262626;border-radius:14px;box-shadow:var(--shadow-md);padding:1rem;display:flex;align-items:center;justify-content:center}.experience-lottie{width:100%;max-width:480px;margin-inline:auto;display:flex;align-items:center;justify-content:center}.al-root{position:relative;width:100%;max-width:520px}.al-list{max-height:min(320px,42vh);overflow-y:auto;padding:.75rem}.al-scrollbar::-webkit-scrollbar{width:8px}.al-scrollbar::-webkit-scrollbar-track{background:#0c0c0c}.al-scrollbar::-webkit-scrollbar-thumb{background:#222;border-radius:4px}.al-item{margin-bottom:.8rem;cursor:pointer}.al-card{background:#111;border-radius:10px;padding:.85rem;border:1px solid #1f1f1f}.al-card--active{background:#1b1b1b;border-color:#2a2a2a}.al-card-text{color:#fff;margin:0}.al-grad{position:absolute;left:0;right:0;pointer-events:none;transition:opacity .3s ease}.al-grad--top{top:0;height:50px;background:linear-gradient(to bottom,#0b0b0b,#0000)}.al-grad--bottom{bottom:0;height:100px;background:linear-gradient(to top,#0b0b0b,#0000)}.modal-overlay{position:fixed;inset:0;background:#00000073;display:flex;align-items:center;justify-content:center;z-index:2000;opacity:0;pointer-events:none;transition:opacity .22s ease}.modal-overlay.open{opacity:1;pointer-events:auto}.modal-panel{will-change:transform,opacity}.modal-overlay.open .modal-panel{pointer-events:auto}.modal-inner{max-width:760px;width:calc(100% - 2rem)}@media (max-width: 640px){.modal-inner{width:calc(100% - 1.25rem)}}.contact-section{display:flex;align-items:center;padding-bottom:1rem}.contact-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:2rem;align-items:center}@media (max-width: 980px){.contact-grid{grid-template-columns:1fr}}.contact-left{display:flex;flex-direction:column;align-items:flex-start;gap:1rem}.lottie-box{width:100%;display:flex;align-items:center;justify-content:center}.lottie-box>div{max-width:520px;width:100%}.contact-panel{display:flex;flex-direction:column;gap:1rem}.contact-details{display:flex;flex-direction:column;gap:.75rem;margin-left:min(1rem,2vw)}.contact-detail-item{display:inline-flex;align-items:center;gap:.8rem;color:var(--color-text);text-decoration:none}.contact-detail-item:hover .contact-bullet{border-color:#333;background:#141414}.contact-bullet{width:42px;height:42px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:#0f0f0f;border:1px solid #2a2a2a;box-shadow:var(--shadow-sm);transition:background .2s ease,border-color .2s ease}.contact-text{font-size:1.05rem;color:var(--color-text)}.contact-card{padding:1rem}.contact-form textarea{min-height:120px}.contact-form{display:flex;flex-direction:column;gap:.8rem}.contact-form input,.contact-form textarea{width:100%;background:#0e0e0e;color:var(--color-text);border:1px solid #1f1f1f;border-radius:12px;padding:.9rem 1rem;font:inherit;box-sizing:border-box}.contact-form textarea{resize:vertical}.contact-submit{align-self:center;min-width:160px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.contact-status{text-align:center;font-size:.95rem;margin-top:.25rem}.contact-status--success{color:#7bd88f}.contact-status--error{color:#ff7b7b}.site-footer{background:var(--color-surface);border-top:1px solid #1f1f1f;padding:0;height:var(--footer-height);display:flex;align-items:center;box-sizing:border-box}.footer-inner{display:flex;align-items:center;justify-content:space-between;gap:1rem}.footer-inner{height:100%}.footer-right{display:flex;align-items:center;gap:.6rem}.footer-left{font-size:.9rem;color:var(--color-text-soft)}.footer-center{flex:1;text-align:center;font-size:.9rem;color:var(--color-text-soft)}@media (max-height: 820px){#contact.section-full{min-height:calc(100svh - var(--nav-height) - var(--footer-height))}.contact-section{padding-bottom:.5rem}.lottie-box>div{max-width:460px}.contact-card{padding:.85rem}.contact-form input,.contact-form textarea{padding:.75rem .9rem}}
