/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */@layer properties{@supports ((-webkit-hyphens:none) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-leading:initial;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000}}}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:100;src:url(../assets/fonts/montserrat-v31-latin-100.woff2)format("woff2")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:100;src:url(../assets/fonts/montserrat-v31-latin-100italic.woff2)format("woff2")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:200;src:url(../assets/fonts/montserrat-v31-latin-200.woff2)format("woff2")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:200;src:url(../assets/fonts/montserrat-v31-latin-200italic.woff2)format("woff2")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:300;src:url(../assets/fonts/montserrat-v31-latin-300.woff2)format("woff2")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:300;src:url(../assets/fonts/montserrat-v31-latin-300italic.woff2)format("woff2")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:400;src:url(../assets/fonts/montserrat-v31-latin-regular.woff2)format("woff2")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:400;src:url(../assets/fonts/montserrat-v31-latin-italic.woff2)format("woff2")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:500;src:url(../assets/fonts/montserrat-v31-latin-500.woff2)format("woff2")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:500;src:url(../assets/fonts/montserrat-v31-latin-500italic.woff2)format("woff2")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:600;src:url(../assets/fonts/montserrat-v31-latin-600.woff2)format("woff2")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:600;src:url(../assets/fonts/montserrat-v31-latin-600italic.woff2)format("woff2")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:700;src:url(../assets/fonts/montserrat-v31-latin-700.woff2)format("woff2")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:700;src:url(../assets/fonts/montserrat-v31-latin-700italic.woff2)format("woff2")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:800;src:url(../assets/fonts/montserrat-v31-latin-800.woff2)format("woff2")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:800;src:url(../assets/fonts/montserrat-v31-latin-800italic.woff2)format("woff2")}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:900;src:url(../assets/fonts/montserrat-v31-latin-900.woff2)format("woff2")}@font-face{font-display:swap;font-family:Montserrat;font-style:italic;font-weight:900;src:url(../assets/fonts/montserrat-v31-latin-900italic.woff2)format("woff2")}.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.relative{position:relative}.bottom-\[-1px\]{bottom:-1px}.left-1\/2{left:50%}.z-0{z-index:0}.z-\[1\]{z-index:1}.z-\[2\]{z-index:2}.z-\[5\]{z-index:5}.container{width:100%}.mx-auto{margin-inline:auto}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-block{display:inline-block}.inline-flex{display:inline-flex}.h-full{height:100%}.max-h-full{max-height:100%}.w-full{width:100%}.w-min{width:-moz-min-content;width:min-content}.flex-shrink-0,.shrink-0{flex-shrink:0}.grow{flex-grow:1}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.cursor-pointer{cursor:pointer}.touch-none{touch-action:none}.resize{resize:both}.flex-col{flex-direction:column}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.overflow-hidden{overflow:hidden}.overflow-visible{overflow:visible}.rounded-\[min\(var\(--radius-md\)\,10px\)\]{border-radius:min(var(--radius-md),10px)}.rounded-\[min\(var\(--radius-md\)\,12px\)\]{border-radius:min(var(--radius-md),12px)}.rounded-full{border-radius:3.40282e38px}.border{border-style:var(--tw-border-style);border-width:1px}.border-transparent{border-color:#0000}.bg-clip-padding{background-clip:padding-box}.object-cover{-o-object-fit:cover;object-fit:cover}.text-\[0\.8rem\]{font-size:.8rem}.leading-none{--tw-leading:1;line-height:1}.whitespace-nowrap{white-space:nowrap}.underline-offset-4{text-underline-offset:4px}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-blur-\[10px\]{--tw-backdrop-blur:blur(10px);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-\[30px\]{--tw-backdrop-blur:blur(30px);-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,ease);transition-duration:var(--tw-duration,0s)}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,ease);transition-duration:var(--tw-duration,0s)}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,ease);transition-duration:var(--tw-duration,0s)}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,ease);transition-duration:var(--tw-duration,0s)}.duration-200{--tw-duration:.2s;transition-duration:.2s}.duration-\[120ms\]{--tw-duration:.12s;transition-duration:.12s}.will-change-transform{will-change:transform}.outline-none{--tw-outline-style:none;outline-style:none}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.backface-hidden{backface-visibility:hidden}@media (hover:hover){.hover\:-translate-y-px:hover{--tw-translate-y:-1px;translate:var(--tw-translate-x) var(--tw-translate-y)}.hover\:underline:hover{text-decoration-line:underline}}.focus-visible\:ring-3:focus-visible{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.active\:translate-y-px:active{--tw-translate-y:1px;translate:var(--tw-translate-x) var(--tw-translate-y)}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:opacity-50:disabled{opacity:.5}.aria-invalid\:ring-3[aria-invalid=true]{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}.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%;-o-object-fit:cover;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;-o-object-fit:contain;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:-moz-max-content;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(250px,1fr));gap:1rem;align-items:stretch}.cert-card{--pointer-x: 50%;--pointer-y: 50%;--tilt-x: 0deg;--tilt-y: 0deg;--cert-accent: rgba(132, 186, 255, .85);position:relative;isolation:isolate;display:flex;flex-direction:column;gap:.7rem;min-height:340px;max-height:340px;height:100%;border-radius:16px;padding:.72rem;text-decoration:none;color:var(--color-text);border:1px solid rgba(133,160,197,.34);background:radial-gradient(circle at var(--pointer-x) var(--pointer-y),rgba(113,196,255,.18),transparent 48%),linear-gradient(160deg,#101318,#0f1116 58%,#0d1015);box-shadow:0 18px 45px #00000080,inset 0 1px #ffffff14;transition:border-color .24s ease,box-shadow .24s ease,transform .22s ease;transform-style:preserve-3d;transform:perspective(900px) rotateX(var(--tilt-x)) rotateY(var(--tilt-y));will-change:transform;overflow:hidden}.cert-card:before{content:"";position:absolute;inset:0;border-radius:inherit;background:radial-gradient(circle at var(--pointer-x) var(--pointer-y),rgba(182,220,255,.22),transparent 36%);opacity:.8;pointer-events:none;z-index:0}.cert-card:focus{outline:none}.cert-card:focus-visible,.cert-card:hover{border-color:#91c9ffc7;box-shadow:0 24px 55px #0000008c,0 0 0 1px #afdcff33}.cert-holo{position:absolute;inset:0;border-radius:inherit;z-index:0;pointer-events:none;mix-blend-mode:screen;opacity:.48;background:repeating-linear-gradient(120deg,#ffffff0d 0,#ffffff05 10px,#66a3ff1a,#ffffff05 30px)}.cert-card>*{position:relative;z-index:1}.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--modern{border-radius:11px;border-color:#81abdb66;background:#0b0f14;flex:0 0 170px;height:170px;min-height:170px}.cert-media img{width:100%;height:100%;-o-object-fit:contain;object-fit:contain;-o-object-position:center;object-position:center;display:block;background:#0b0f14}.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-meta--modern{gap:.45rem;display:flex;flex-direction:column;flex:1;min-height:0}.cert-title{font-weight:800;letter-spacing:.2px}.cert-title--modern{font-size:.95rem;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:2.6em}.cert-issuer{color:#76a7ff;font-weight:600}.cert-year{color:var(--color-text-soft);font-size:.9rem}.cert-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;min-width:0;margin-top:auto}.cert-issuer--modern{color:#9fcbff;font-size:.85rem;max-width:78%;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.cert-year--modern{font-size:.75rem;color:#d6e6ff;padding:.24rem .55rem;border-radius:999px;border:1px solid rgba(173,206,245,.28);background:#9dc5f514}@media (max-width: 640px){.cert-card{min-height:312px;max-height:312px}.cert-media--modern{flex-basis:150px;height:150px;min-height:150px}}.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}}
