/*! tailwindcss v4.3.2 | 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-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--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;--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}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-slate-50:oklch(98.4% .003 247.858);--color-slate-100:oklch(96.8% .007 247.896);--color-slate-200:oklch(92.9% .013 255.508);--color-slate-300:oklch(86.9% .022 252.894);--color-slate-400:oklch(70.4% .04 256.788);--color-slate-500:oklch(55.4% .046 257.417);--color-slate-600:oklch(44.6% .043 257.281);--color-slate-700:oklch(37.2% .044 257.287);--color-slate-800:oklch(27.9% .041 260.031);--color-slate-900:oklch(20.8% .042 265.755);--color-slate-950:oklch(12.9% .042 264.695);--color-white:#fff;--spacing:.25rem;--container-2xl:42rem;--container-4xl:56rem;--container-5xl:64rem;--container-7xl:80rem;--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-base:1rem;--text-base--line-height:calc(1.5 / 1);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-5xl:3rem;--text-5xl--line-height:1;--text-6xl:3.75rem;--text-6xl--line-height:1;--text-8xl:6rem;--text-8xl--line-height:1;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-extrabold:800;--font-weight-black:900;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--radius-3xl:1.5rem;--shadow-xs:0 1px 2px 0 #0000000d;--shadow-sm:0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a;--blur-3xl:64px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-font-feature-settings:var(--font-sans--font-feature-settings);--default-font-variation-settings:var(--font-sans--font-variation-settings);--default-mono-font-family:var(--font-mono);--default-mono-font-feature-settings:var(--font-mono--font-feature-settings);--default-mono-font-variation-settings:var(--font-mono--font-variation-settings)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}body{line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1;color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentColor 50%, transparent)}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.visible{visibility:visible}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.top-\[15\%\]{top:15%}.right-\[5\%\]{right:5%}.bottom-8{bottom:calc(var(--spacing) * 8)}.bottom-\[10\%\]{bottom:10%}.left-1\/2{left:50%}.left-\[5\%\]{left:5%}.z-0{z-index:0}.z-10{z-index:10}.mx-auto{margin-inline:auto}.mt-1{margin-top:var(--spacing)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-5{margin-top:calc(var(--spacing) * 5)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-7{margin-top:calc(var(--spacing) * 7)}.mt-8{margin-top:calc(var(--spacing) * 8)}.mt-9{margin-top:calc(var(--spacing) * 9)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-5{margin-bottom:calc(var(--spacing) * 5)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-flex{display:inline-flex}.h-11{height:calc(var(--spacing) * 11)}.h-12{height:calc(var(--spacing) * 12)}.h-16{height:calc(var(--spacing) * 16)}.h-72{height:calc(var(--spacing) * 72)}.h-80{height:calc(var(--spacing) * 80)}.min-h-12{min-height:calc(var(--spacing) * 12)}.min-h-screen{min-height:100vh}.w-11{width:calc(var(--spacing) * 11)}.w-12{width:calc(var(--spacing) * 12)}.w-16{width:calc(var(--spacing) * 16)}.w-72{width:calc(var(--spacing) * 72)}.w-80{width:calc(var(--spacing) * 80)}.w-full{width:100%}.max-w-2xl{max-width:var(--container-2xl)}.max-w-4xl{max-width:var(--container-4xl)}.max-w-5xl{max-width:var(--container-5xl)}.max-w-7xl{max-width:var(--container-7xl)}.flex-1{flex:1}.shrink-0{flex-shrink:0}.-translate-x-1\/2{--tw-translate-x:calc(calc(1 / 2 * 100%) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.resize{resize:both}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.items-center{align-items:center}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-4{gap:calc(var(--spacing) * 4)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-6{gap:calc(var(--spacing) * 6)}.gap-14{gap:calc(var(--spacing) * 14)}.self-start{align-self:flex-start}.overflow-hidden{overflow:hidden}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-3xl{border-radius:var(--radius-3xl)}.rounded-\[2rem\]{border-radius:2rem}.rounded-full{border-radius:3.40282e38px}.rounded-xl{border-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-slate-200{border-color:var(--color-slate-200)}.border-slate-300{border-color:var(--color-slate-300)}.bg-slate-50{background-color:var(--color-slate-50)}.bg-slate-100{background-color:var(--color-slate-100)}.bg-transparent{background-color:#0000}.bg-white\/70{background-color:#ffffffb3}@supports (color:color-mix(in lab, red, red)){.bg-white\/70{background-color:color-mix(in oklab, var(--color-white) 70%, transparent)}}.p-7{padding:calc(var(--spacing) * 7)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-3\.5{padding-block:calc(var(--spacing) * 3.5)}.py-20{padding-block:calc(var(--spacing) * 20)}.pt-16{padding-top:calc(var(--spacing) * 16)}.pb-6{padding-bottom:calc(var(--spacing) * 6)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.leading-7{--tw-leading:calc(var(--spacing) * 7);line-height:calc(var(--spacing) * 7)}.leading-8{--tw-leading:calc(var(--spacing) * 8);line-height:calc(var(--spacing) * 8)}.leading-\[\.95\]{--tw-leading:.95;line-height:.95}.font-black{--tw-font-weight:var(--font-weight-black);font-weight:var(--font-weight-black)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-extrabold{--tw-font-weight:var(--font-weight-extrabold);font-weight:var(--font-weight-extrabold)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-\[-\.055em\]{--tw-tracking:-.055em;letter-spacing:-.055em}.text-slate-500{color:var(--color-slate-500)}.text-slate-600{color:var(--color-slate-600)}.text-slate-700{color:var(--color-slate-700)}.text-slate-800{color:var(--color-slate-800)}.text-slate-900{color:var(--color-slate-900)}.text-slate-950{color:var(--color-slate-950)}.text-white{color:var(--color-white)}.shadow-lg{--tw-shadow:0 10px 15px -3px var(--tw-shadow-color,#0000001a), 0 4px 6px -4px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.blur{--tw-blur:blur(8px);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,)}.blur-3xl{--tw-blur:blur(var(--blur-3xl));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,)}.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{--tw-backdrop-blur:blur(8px);-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,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}@media (hover:hover){.hover\:-translate-y-1:hover{--tw-translate-y:calc(var(--spacing) * -1);translate:var(--tw-translate-x) var(--tw-translate-y)}.hover\:border-\[var\(--accent\)\]:hover{border-color:var(--accent)}.hover\:text-\[var\(--accent-strong\)\]:hover{color:var(--accent-strong)}}@media (width>=40rem){.sm\:text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.sm\:text-6xl{font-size:var(--text-6xl);line-height:var(--tw-leading,var(--text-6xl--line-height))}.sm\:text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}}@media (width>=48rem){.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:items-start{align-items:flex-start}.md\:justify-between{justify-content:space-between}.md\:p-9{padding:calc(var(--spacing) * 9)}.md\:p-10{padding:calc(var(--spacing) * 10)}}@media (width>=64rem){.lg\:grid-cols-\[1\.25fr_\.75fr\]{grid-template-columns:1.25fr .75fr}.lg\:text-8xl{font-size:var(--text-8xl);line-height:var(--tw-leading,var(--text-8xl--line-height))}}.dark\:border-slate-700:where(.dark,.dark *){border-color:var(--color-slate-700)}.dark\:border-slate-800:where(.dark,.dark *){border-color:var(--color-slate-800)}.dark\:bg-slate-900:where(.dark,.dark *){background-color:var(--color-slate-900)}.dark\:bg-slate-900\/60:where(.dark,.dark *){background-color:#0f172b99}@supports (color:color-mix(in lab, red, red)){.dark\:bg-slate-900\/60:where(.dark,.dark *){background-color:color-mix(in oklab, var(--color-slate-900) 60%, transparent)}}.dark\:bg-slate-950:where(.dark,.dark *){background-color:var(--color-slate-950)}.dark\:text-slate-300:where(.dark,.dark *){color:var(--color-slate-300)}.dark\:text-slate-400:where(.dark,.dark *){color:var(--color-slate-400)}.dark\:text-white:where(.dark,.dark *){color:var(--color-white)}}:root{--bg:#f7f8fc;--bg-elevated:#eef0f7;--surface:#ffffffd1;--surface-strong:#fffffff5;--surface-solid:#fff;--surface-alt:#eef1f8;--text:#111827;--text-soft:#344054;--muted:#667085;--muted-strong:#475467;--line:#11182717;--line-strong:#11182726;--accent:#2563eb;--accent-strong:#1d4ed8;--accent-deep:#1e40af;--accent-bright:#60a5fa;--accent-soft:#2563eb1a;--accent-glow:#2563eb3d;--success:#2563eb;--focus-ring:#2563eb57;--shadow-xs:0 4px 16px #0f172a0d;--shadow-sm:0 12px 32px #0f172a14;--shadow:0 24px 70px #0f172a1a;--shadow-hover:0 30px 90px #0f172a26;--radius-sm:.75rem;--radius-md:1rem;--radius-lg:1.35rem;--radius-xl:1.7rem;--ease:cubic-bezier(.22, 1, .36, 1);--spring:cubic-bezier(.16, 1, .3, 1)}.dark{--bg:#080b16;--bg-elevated:#0d1120;--surface:#0f1424c7;--surface-strong:#11172af0;--surface-solid:#0d1120;--surface-alt:#0b1020;--text:#f8fafc;--text-soft:#d0d5dd;--muted:#98a2b3;--muted-strong:#c0c7d2;--line:#94a3b81f;--line-strong:#94a3b830;--accent:#60a5fa;--accent-strong:#3b82f6;--accent-deep:#1d4ed8;--accent-bright:#93c5fd;--accent-soft:#60a5fa1f;--accent-glow:#2563eb47;--success:#60a5fa;--focus-ring:#60a5fa61;--shadow-xs:0 4px 16px #0003;--shadow-sm:0 12px 34px #00000042;--shadow:0 24px 75px #00000052;--shadow-hover:0 30px 95px #00000070}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:84px}body{min-width:320px;min-height:100vh;color:var(--text);background:radial-gradient(circle at 8% 0%, #2563eb1a, transparent 27rem), radial-gradient(circle at 92% 12%, #2563eb0b, transparent 25rem), var(--bg);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;background-attachment:fixed;margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;transition:color .35s,background-color .35s;overflow-x:hidden}.dark body{background:radial-gradient(circle at 10% 2%, #2563eb24, transparent 27rem), radial-gradient(circle at 90% 14%, #1d4ed81a, transparent 29rem), var(--bg)}::selection{color:var(--text);background:#2563eb38}:where(a,button,input,textarea,select):focus-visible{outline:3px solid var(--focus-ring);outline-offset:3px}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit}.app-shell{min-height:100vh;color:var(--text);background:0 0;overflow-x:clip}.section-shell{isolation:isolate;background:var(--bg);padding:7rem 0;position:relative;overflow:hidden}.section-shell:before{content:"";z-index:-1;pointer-events:none;background:linear-gradient(115deg,#0000 20%,#2563eb06,#0000 72%);position:absolute;inset:0}.section-alt{background:linear-gradient(180deg, #2563eb09, transparent 18rem), var(--surface-alt)}.section-container{width:min(1180px,100% - 3rem);margin-inline:auto}.section-heading{text-align:center;max-width:780px;margin:0 auto 3.5rem}.eyebrow{color:var(--accent-strong);letter-spacing:.16em;text-transform:uppercase;align-items:center;gap:.55rem;margin-bottom:.85rem;font-size:.76rem;font-weight:850;display:inline-flex}.dark .eyebrow{color:var(--accent-bright)}.eyebrow:before,.eyebrow:after{content:"";opacity:.55;background:currentColor;width:1.6rem;height:1px}.section-title,.project-card__title,.contact-cta h3,.footer-brand h2{display:block}.loading-logo img{object-fit:contain;width:100%;height:100%;display:block}.loading-content h1{text-wrap:balance}.section-title{color:var(--text);letter-spacing:-.045em;margin:0;font-size:clamp(2.1rem,5vw,3.4rem);font-weight:900;line-height:1.06}.section-lead{max-width:680px;color:var(--muted);text-wrap:pretty;margin:1.15rem auto 0;font-size:1.03rem;line-height:1.85}.glass-card{border:1px solid var(--line);border-radius:var(--radius-lg);background:linear-gradient(145deg, #ffffff17, transparent 42%), var(--surface);box-shadow:var(--shadow);-webkit-backdrop-filter:blur(18px)saturate(130%);transition:transform .4s var(--spring), border-color .3s ease, box-shadow .4s var(--ease);position:relative;overflow:hidden}.glass-card:before{content:"";pointer-events:none;opacity:0;background:radial-gradient(circle at 15% 0,#2563eb1a,#0000 32%);transition:opacity .4s;position:absolute;inset:0}.glass-card:hover{box-shadow:var(--shadow-hover);border-color:#2563eb47;transform:translateY(-7px)}.glass-card:hover:before{opacity:1}.icon-tile{border:1px solid var(--line);background:var(--accent-soft);width:3rem;height:3rem;color:var(--accent-strong);transition:transform .35s var(--spring), box-shadow .35s ease, border-color .3s ease;border-radius:1rem;place-items:center;display:grid;box-shadow:inset 0 1px #ffffff1f}.icon-tile:hover{border-color:var(--accent);box-shadow:0 12px 28px var(--accent-glow);transform:translateY(-3px)rotate(-3deg)}.accent-text{color:var(--accent-strong)}.dark .accent-text{color:var(--accent-bright)}.accent-icon{color:var(--accent-strong)}.dark .accent-icon{color:var(--accent-bright)}.accent-pill{border:1px solid var(--accent);align-items:center;gap:.5rem;display:inline-flex}@supports (color:color-mix(in lab, red, red)){.accent-pill{border:1px solid color-mix(in srgb, var(--accent) 20%, transparent)}}.accent-pill{background:var(--accent-soft);color:var(--accent-strong);border-radius:999px;padding:.5rem 1rem;font-size:.85rem;font-weight:800}.dark .accent-pill{color:var(--accent-bright)}.projects-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1.35rem;display:grid}.project-filters{flex-wrap:wrap;justify-content:center;gap:.6rem;margin:0 auto 2.4rem;display:flex}.project-filter{cursor:pointer;border:1px solid var(--line);background:var(--surface);color:var(--muted-strong);box-shadow:var(--shadow-xs);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);transition:transform .22s var(--spring), border-color .22s ease, color .22s ease, box-shadow .22s ease, background .22s ease;border-radius:999px;padding:.65rem 1rem;font-size:.86rem;font-weight:800;position:relative;overflow:hidden}.project-filter:after{content:"";background:linear-gradient(90deg,#0000,#ffffff40,#0000);transition:transform .6s;position:absolute;inset:0;transform:translate(-120%)}.project-filter:hover:after{transform:translate(120%)}.project-filter:hover{color:var(--accent-strong);box-shadow:var(--shadow-sm);border-color:#2563eb52;transform:translateY(-2px)}.project-filter.is-active{background:linear-gradient(135deg, var(--accent-deep), var(--accent));color:#fff;box-shadow:0 14px 32px var(--accent-glow);background-size:160% 160%;border-color:#0000;animation:6s infinite accentShift}.project-card{isolation:isolate;border:1px solid var(--line);border-radius:var(--radius-lg);background:linear-gradient(145deg, #ffffff12, transparent 40%), var(--surface);min-height:100%;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(18px)saturate(130%);transition:transform .45s var(--spring), border-color .3s ease, box-shadow .45s var(--ease);flex-direction:column;padding:1.55rem;display:flex;position:relative;overflow:hidden;transform:translateZ(0)}.project-card:before{content:"";background:linear-gradient(90deg, transparent, var(--accent-bright), transparent);height:2px;box-shadow:0 0 18px var(--accent-glow);opacity:.75;border-radius:999px;position:absolute;top:0;left:12%;right:12%}.project-card:after{content:"";z-index:-1;border-radius:inherit;opacity:.8;pointer-events:none;background:radial-gradient(circle at 85% 10%,#2563eb14,#0000 26%),linear-gradient(135deg,#ffffff0f,#0000 42%);position:absolute;inset:1px}.project-card__shine{pointer-events:none;opacity:0;background:linear-gradient(90deg,#0000,#fff3,#0000);width:42%;height:170%;position:absolute;top:-30%;left:-70%;transform:rotate(24deg)}.project-card:hover{box-shadow:var(--shadow-hover);border-color:#2563eb4d;transform:translateY(-9px)}.project-card:hover .project-card__shine{opacity:1;animation:cardShine 1s var(--ease)}.project-card__top,.project-card__actions,.project-card__footer,.project-card__meta{align-items:center;display:flex}.project-card__top,.project-card__footer{justify-content:space-between}.project-card__actions{gap:.45rem}.project-icon{background:var(--accent-soft);width:3.15rem;height:3.15rem;color:var(--accent-strong);transition:transform .35s var(--spring), box-shadow .35s ease;border:1px solid #2563eb38;border-radius:1rem;place-items:center;display:grid;box-shadow:inset 0 1px #ffffff1f}.dark .project-icon{color:var(--accent-bright)}.project-card:hover .project-icon{box-shadow:0 14px 30px var(--accent-glow);transform:translateY(-3px)rotate(-4deg)scale(1.05)}.icon-button{border:1px solid var(--line);background:var(--surface-strong);width:2.55rem;height:2.55rem;color:var(--muted);cursor:pointer;transition:transform .22s var(--spring), border-color .22s ease, color .22s ease, background .22s ease, box-shadow .22s ease;border-radius:.85rem;place-items:center;display:grid}.icon-button:hover{background:var(--accent-soft);color:var(--accent-strong);box-shadow:0 9px 24px var(--accent-glow);border-color:#2563eb61;transform:translateY(-3px)scale(1.03)}.project-card__meta{color:var(--accent-strong);letter-spacing:.09em;text-transform:uppercase;gap:.55rem;margin-top:1.45rem;font-size:.72rem;font-weight:850}.dark .project-card__meta{color:var(--accent-bright)}.project-featured,.project-rank{background:var(--accent-soft);color:var(--accent-strong);border:1px solid #2563eb33;align-items:center;gap:.3rem;display:inline-flex}.dark .project-featured,.dark .project-rank{color:var(--accent-bright)}.project-featured{letter-spacing:.04em;border-radius:999px;padding:.25rem .55rem}.project-rank{border-radius:999px;padding:.45rem .65rem;font-size:.68rem;font-weight:850}.project-card__title{color:var(--text);letter-spacing:-.025em;margin:.65rem 0 0;font-size:1.35rem;font-weight:850;transition:color .25s}.project-card:hover .project-card__title{color:var(--accent-strong)}.dark .project-card:hover .project-card__title{color:var(--accent-bright)}.project-card__description{min-height:7rem;color:var(--muted);text-wrap:pretty;margin:.8rem 0 0;font-size:.93rem;line-height:1.75}.tech-list{flex-wrap:wrap;gap:.45rem;margin:1.15rem 0 1.35rem;display:flex}.tech-chip{border:1px solid var(--line);background:var(--surface-alt);color:var(--muted-strong);transition:transform .22s var(--spring), border-color .22s ease, color .22s ease, background .22s ease;border-radius:.65rem;padding:.4rem .62rem;font-size:.72rem;font-weight:750}.project-card:hover .tech-chip{border-color:#2563eb2e;transform:translateY(-2px)}.project-card__footer{border-top:1px solid var(--line);gap:1rem;margin-top:auto;padding-top:1rem}.project-link{color:var(--accent-strong);transition:gap .22s var(--spring), color .22s ease;align-items:center;gap:.35rem;font-size:.84rem;font-weight:850;text-decoration:none;display:inline-flex}.dark .project-link{color:var(--accent-bright)}.project-link:hover{gap:.6rem}.project-link--muted{color:var(--muted)}.hero-photo-wrap{aspect-ratio:1;perspective:1000px;width:min(100%,430px);animation:heroEnter .9s var(--spring) both;margin-inline:auto;position:relative}.hero-photo-card{-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);transform-style:preserve-3d;will-change:transform;background:linear-gradient(145deg,#ffffff9e,#ffffff1a);border:1px solid #ffffff6b;border-radius:2.4rem;padding:.65rem;animation:7s ease-in-out 1s infinite heroFloat;position:absolute;inset:8%;overflow:hidden;box-shadow:0 35px 90px #0f172a33,inset 0 1px #ffffff80}.dark .hero-photo-card{background:linear-gradient(145deg,#162a4ec7,#070e1c61);border-color:#93c5fd26;box-shadow:0 35px 100px #00000073,inset 0 1px #ffffff0f}.hero-photo{z-index:2;object-fit:cover;object-position:center;filter:saturate(.96)contrast(1.04);border-radius:1.95rem;width:100%;height:100%;display:block;position:relative}.hero-photo-glow{z-index:1;filter:blur(36px);background:#2563eb3b;border-radius:2rem;animation:5s ease-in-out infinite glowPulse;position:absolute;inset:13%}.hero-photo-shine{z-index:3;pointer-events:none;background:linear-gradient(90deg,#0000,#ffffff5c,#0000);width:45%;height:150%;animation:5.5s ease-in-out infinite shineSweep;position:absolute;top:-20%;left:-70%;transform:rotate(24deg)}.hero-photo-orbit{pointer-events:none;border:1px solid #2563eb42;border-radius:32%;position:absolute;inset:2%}.hero-photo-orbit--one{animation:18s linear infinite orbitSpin;transform:rotate(10deg)}.hero-photo-orbit--two{border-style:dashed;border-color:#60a5fa38;border-radius:42%;animation:24s linear infinite orbitSpinReverse;inset:10%}.hero-photo-dot{z-index:5;background:var(--accent-bright);border-radius:999px;width:.75rem;height:.75rem;position:absolute;box-shadow:0 0 0 7px #2563eb14,0 0 25px #2563eb75}.hero-photo-dot--one{animation:2.2s ease-in-out infinite dotPulse;top:11%;right:9%}.hero-photo-dot--two{background:var(--accent);width:.55rem;height:.55rem;animation:2.2s ease-in-out 1.1s infinite dotPulse;bottom:18%;left:4%}.hero-stack-badge{z-index:4;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#fffffff0;border:1px solid #2563eb33;border-radius:1rem;padding:.85rem 1.05rem;animation:4s ease-in-out 1.4s infinite badgeFloat;position:absolute;bottom:1.3rem;left:-2.4rem;box-shadow:0 18px 45px #0f172a29}.dark .hero-stack-badge{background:#0a0e1cf0}.hero-stack-badge p{color:var(--accent-strong);letter-spacing:.14em;text-transform:uppercase;margin:0;font-size:.65rem;font-weight:850}.hero-stack-badge span{color:var(--text);margin-top:.22rem;font-size:.78rem;font-weight:800;display:block}.contact-grid{grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:1.25rem;display:grid}.contact-list{gap:.7rem;display:grid}.contact-item{border:1px solid var(--line);background:var(--surface);width:100%;color:var(--text);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);transition:transform .3s var(--spring), border-color .3s ease, box-shadow .3s ease, background .3s ease;border-radius:1.05rem;align-items:center;gap:1rem;padding:1rem 1.05rem;text-decoration:none;display:flex}.contact-item:hover{background:var(--surface-strong);box-shadow:var(--shadow-hover);border-color:#2563eb4d;transform:translate(6px)}.contact-icon{background:var(--accent-soft);width:2.85rem;height:2.85rem;color:var(--accent-strong);border-radius:.85rem;flex:none;place-items:center;display:grid}.dark .contact-icon{color:var(--accent-bright)}.contact-item strong{font-size:.9rem;display:block}.contact-item small{color:var(--muted);word-break:break-word;margin-top:.2rem;font-size:.75rem;line-height:1.35;display:block}.contact-cta{border-radius:var(--radius-xl);padding:clamp(1.5rem,4vw,2.7rem);position:relative;overflow:hidden}.contact-cta:after{content:"";filter:blur(40px);pointer-events:none;background:#2563eb1c;border-radius:50%;width:19rem;height:19rem;animation:6s ease-in-out infinite glowPulse;position:absolute;top:-10rem;right:-8rem}.contact-cta h3{color:var(--text);letter-spacing:-.04em;margin:1rem 0 .65rem;font-size:clamp(1.8rem,4vw,2.6rem);line-height:1.1;position:relative}.contact-cta p{max-width:38rem;color:var(--muted);margin:0;line-height:1.8;position:relative}.cta-badge{background:var(--accent-soft);color:var(--accent-strong);border:1px solid #2563eb2e;border-radius:999px;align-items:center;gap:.45rem;padding:.45rem .7rem;font-size:.68rem;font-weight:850;display:inline-flex}.dark .cta-badge{color:var(--accent-bright)}.cta-badge span{background:var(--success);border-radius:50%;width:.45rem;height:.45rem;animation:2s ease-in-out infinite pulseDot;box-shadow:0 0 0 5px #2563eb1a}.contact-actions{flex-wrap:wrap;gap:.7rem;margin-top:1.45rem;display:flex;position:relative}.primary-button,.secondary-button{transition:transform .24s var(--spring), box-shadow .24s ease, border-color .24s ease, background .24s ease, color .24s ease;border-radius:.85rem;justify-content:center;align-items:center;gap:.45rem;padding:.82rem 1rem;font-size:.82rem;font-weight:850;text-decoration:none;display:inline-flex}.primary-button{background:linear-gradient(135deg, var(--accent-deep), var(--accent));color:#fff;box-shadow:0 12px 30px var(--accent-glow);background-size:160% 160%;border:1px solid #0000;animation:6s infinite accentShift}.secondary-button{border:1px solid var(--line);background:var(--surface);color:var(--text)}.primary-button:hover,.secondary-button:hover{box-shadow:var(--shadow-hover);transform:translateY(-3px)}.secondary-button:hover{background:var(--accent-soft);color:var(--accent-strong);border-color:#2563eb59}.site-header{z-index:1000;border-bottom:1px solid var(--line);background:var(--bg);position:fixed;top:0;left:0;right:0}@supports (color:color-mix(in lab, red, red)){.site-header{background:color-mix(in srgb, var(--bg) 82%, transparent)}}.site-header{-webkit-backdrop-filter:blur(20px)saturate(140%)}.site-header:after{content:"";background:linear-gradient(90deg, transparent, var(--accent), transparent);height:1px;box-shadow:0 0 20px var(--accent-glow);opacity:.38;position:absolute;bottom:-1px;left:0;right:0}.nav-container{justify-content:space-between;align-items:center;gap:1rem;width:min(1240px,100% - 2rem);min-height:72px;margin:0 auto;display:flex}.brand{color:var(--text);align-items:center;gap:.7rem;text-decoration:none;display:inline-flex}.brand-mark{background:linear-gradient(135deg, var(--accent-deep), var(--accent));color:#fff;width:42px;height:42px;box-shadow:0 12px 34px var(--accent-glow);border:1px solid #93c5fd38;border-radius:13px;place-items:center;animation:4.5s ease-in-out infinite brandFloat;display:grid}.brand-mark img{width:100%;height:100%;display:block}.brand-copy{line-height:1.05;display:grid}.brand-copy strong{letter-spacing:-.02em;font-size:.96rem}.brand-copy small{color:var(--muted);letter-spacing:.07em;text-transform:uppercase;margin-top:.18rem;font-size:.63rem;font-weight:800}.desktop-nav{align-items:center;gap:.15rem;margin-inline:auto;display:flex}.nav-link{color:var(--muted);transition:color .22s ease, transform .22s var(--spring);padding:.75rem .72rem;font-size:.79rem;font-weight:750;text-decoration:none;position:relative}.nav-link:hover{color:var(--text);transform:translateY(-1px)}.nav-link.is-active{color:var(--accent-strong)}.dark .nav-link.is-active{color:var(--accent-bright)}.nav-link-inner{padding-bottom:.35rem;display:inline-flex;position:relative}.nav-active-bar{background:var(--accent);height:2px;box-shadow:0 0 18px var(--accent-glow);border-radius:999px;position:absolute;bottom:0;left:0;right:0}.nav-actions{align-items:center;gap:.55rem;display:flex}.theme-toggle,.mobile-menu-button{border:1px solid var(--line);background:var(--surface);width:42px;height:42px;color:var(--muted);cursor:pointer;transition:color .22s ease, border-color .22s ease, transform .22s var(--spring), background .22s ease, box-shadow .22s ease;border-radius:12px;place-items:center;display:grid}.theme-toggle:hover,.mobile-menu-button:hover{background:var(--accent-soft);color:var(--accent-strong);box-shadow:0 8px 22px var(--accent-glow);border-color:#2563eb59;transform:translateY(-2px)}.nav-cv-button,.mobile-cv-button{background:linear-gradient(135deg, var(--accent-deep), var(--accent));color:#fff;box-shadow:0 10px 26px var(--accent-glow);transition:transform .24s var(--spring), box-shadow .24s ease, filter .24s ease;background-size:160% 160%;border:1px solid #93c5fd33;border-radius:12px;justify-content:center;align-items:center;gap:.45rem;font-size:.78rem;font-weight:850;text-decoration:none;display:inline-flex}.nav-cv-button{padding:.72rem 1rem}.nav-cv-button:hover,.mobile-cv-button:hover{box-shadow:0 14px 34px var(--accent-glow);filter:brightness(1.04);transform:translateY(-3px)}.mobile-menu-button{display:none}.mobile-nav{border-top:1px solid var(--line);background:var(--bg);overflow:hidden}@supports (color:color-mix(in lab, red, red)){.mobile-nav{background:color-mix(in srgb, var(--bg) 95%, transparent)}}.mobile-nav-inner{gap:.2rem;width:min(1240px,100% - 2rem);margin:0 auto;padding:.65rem 0 1rem;display:grid}.mobile-nav .nav-link{border-radius:10px;padding:.75rem .85rem}.mobile-nav .nav-link.is-active{background:var(--accent-soft)}.mobile-cv-button{margin-top:.45rem;padding:.85rem 1rem}.loading-screen{z-index:2000;color:#fff;background:#070a12;place-items:center;display:grid;position:fixed;inset:0;overflow:hidden}.loading-screen:before{content:"";background:radial-gradient(circle at 50% 45%,#2563eb2b,#0000 24rem),radial-gradient(circle at 65% 35%,#1d4ed81f,#0000 28rem);animation:6s ease-in-out infinite loadingAura;position:absolute;inset:-20%}.loading-content{z-index:2;text-align:center;position:relative}.loading-logo{background:linear-gradient(135deg, var(--accent-deep), var(--accent));width:72px;height:72px;box-shadow:0 20px 70px var(--accent-glow);border:1px solid #93c5fd42;border-radius:22px;place-items:center;margin:0 auto;animation:1.8s ease-in-out infinite loadingLogo;display:grid;overflow:hidden}.loading-logo img{width:100%;height:100%;display:block}.loading-content h1{letter-spacing:-.04em;margin:1rem 0 0;font-size:1.65rem}.loading-content p{color:#98a2b3;letter-spacing:.08em;text-transform:uppercase;margin:.4rem 0 0;font-size:.8rem;font-weight:700}.loading-line{background:#93c5fd1f;border-radius:999px;width:220px;height:3px;margin:1.5rem auto 0;overflow:hidden}.loading-line span{transform-origin:0;background:linear-gradient(90deg, var(--accent-deep), var(--accent-bright));width:100%;height:100%;animation:loadingBar 1.65s var(--spring) infinite;display:block}.loading-orb{border:1px solid #60a5fa21;border-radius:50%;width:10rem;height:10rem;animation:2.8s ease-in-out infinite orbPulse;position:absolute;box-shadow:0 0 100px #2563eb14,inset 0 0 80px #1d4ed814}.scroll-top-button{z-index:950;background:var(--surface-solid);border:1px solid #2563eb47;border-radius:15px;place-items:center;width:48px;height:48px;display:grid;position:fixed;bottom:1.15rem;right:1.15rem}@supports (color:color-mix(in lab, red, red)){.scroll-top-button{background:color-mix(in srgb, var(--surface-solid) 84%, transparent)}}.scroll-top-button{color:var(--accent-strong);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);cursor:pointer;transition:transform .22s var(--spring), border-color .22s ease, box-shadow .22s ease, background .22s ease;animation:scrollTopIn .5s var(--spring) both;box-shadow:0 16px 38px #0000001f,inset 0 1px #ffffff14}.scroll-top-button:hover{background:var(--accent-soft);box-shadow:0 18px 45px var(--accent-glow);border-color:#2563eb85;transform:translateY(-4px)}.site-footer{border-top:1px solid var(--line);background:radial-gradient(circle at 15% 15%, #2563eb14, transparent 25rem), radial-gradient(circle at 85% 0%, #2563eb0d, transparent 22rem), var(--bg);position:relative;overflow:hidden}.footer-glow{filter:blur(80px);pointer-events:none;opacity:.32;border-radius:999px;width:18rem;height:18rem;position:absolute}.footer-glow--one{background:#2563eb1f;top:8rem;left:-8rem}.footer-glow--two{background:var(--accent-glow);bottom:3rem;right:-8rem}.footer-main{z-index:1;grid-template-columns:1.6fr .8fr 1.15fr;gap:4rem;padding-top:5rem;padding-bottom:4rem;display:grid;position:relative}.footer-brand h2{color:var(--text);letter-spacing:-.045em;margin:.8rem 0 .7rem;font-size:2rem;font-weight:900}.footer-brand h2 span{color:var(--accent-strong)}.dark .footer-brand h2 span{color:var(--accent-bright)}.footer-brand p,.footer-connect>p:not(.footer-label){max-width:33rem;color:var(--muted);margin:0;line-height:1.8}.footer-kicker{color:var(--accent-strong);letter-spacing:.11em;text-transform:uppercase;align-items:center;gap:.4rem;font-size:.72rem;font-weight:850;display:inline-flex}.dark .footer-kicker{color:var(--accent-bright)}.footer-location{color:var(--muted);align-items:center;gap:.4rem;margin-top:1rem;font-size:.82rem;font-weight:700;display:flex}.footer-label{color:var(--text);letter-spacing:.14em;text-transform:uppercase;margin:0 0 1rem;font-size:.74rem;font-weight:850}.footer-nav{flex-direction:column;align-items:flex-start;display:flex}.footer-nav a{color:var(--muted);transition:color .2s ease, transform .2s var(--spring);padding:.28rem 0;font-size:.88rem;font-weight:650;text-decoration:none;position:relative}.footer-nav a:hover{color:var(--accent-strong);transform:translate(5px)}.dark .footer-nav a:hover{color:var(--accent-bright)}.footer-email{color:var(--accent-strong);margin-top:1rem;font-size:.86rem;font-weight:800;text-decoration:none;display:inline-flex}.dark .footer-email{color:var(--accent-bright)}.footer-socials{gap:.55rem;margin-top:1.15rem;display:flex}.footer-socials a{border:1px solid var(--line);background:var(--surface);width:2.55rem;height:2.55rem;color:var(--muted);transition:transform .25s var(--spring), border-color .25s ease, color .25s ease, background .25s ease, box-shadow .25s ease;border-radius:.85rem;place-items:center;display:grid}.footer-socials a:hover{background:var(--accent-soft);color:var(--accent-strong);box-shadow:0 10px 24px var(--accent-glow);border-color:#2563eb59;transform:translateY(-4px)}.footer-bottom{border-top:1px solid var(--line);background:#0a352206}.dark .footer-bottom{background:#00000024}.footer-bottom__inner{justify-content:space-between;align-items:center;gap:1rem;padding-top:1.25rem;padding-bottom:1.25rem;display:flex}.footer-bottom p{color:var(--muted);align-items:center;gap:.35rem;margin:0;font-size:.72rem;display:flex}.footer-bottom svg{color:var(--accent-strong)}.footer-top{color:var(--accent-strong);cursor:pointer;transition:transform .2s var(--spring), color .2s ease;background:0 0;border:0;align-items:center;gap:.35rem;font-size:.74rem;font-weight:800;display:inline-flex}.footer-top:hover{transform:translateY(-2px)}.dark .footer-top{color:var(--accent-bright)}.scroll-progress{z-index:9999;transform-origin:0;background:linear-gradient(90deg, var(--accent-deep), var(--accent), var(--accent-bright));height:3px;box-shadow:0 0 18px var(--accent-glow);position:fixed;top:0;left:0;right:0}@keyframes accentShift{0%,to{background-position:0%}50%{background-position:100%}}@keyframes cardShine{0%{transform:translate(0)rotate(24deg)}to{transform:translate(340%)rotate(24deg)}}@keyframes brandFloat{0%,to{transform:translateY(0)rotate(0)}50%{transform:translateY(-4px)rotate(1deg)}}@keyframes heroEnter{0%{opacity:0;transform:translateY(30px)scale(.95)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes heroFloat{0%,to{transform:translateY(0)rotate(0)}50%{transform:translateY(-9px)rotate(.25deg)}}@keyframes badgeFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-7px)}}@keyframes glowPulse{0%,to{opacity:.55;transform:scale(.98)}50%{opacity:1;transform:scale(1.05)}}@keyframes shineSweep{0%,55%,to{opacity:0;transform:translate(-130%)rotate(24deg)}65%{opacity:.9}80%{opacity:0;transform:translate(130%)rotate(24deg)}}@keyframes orbitSpin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes orbitSpinReverse{0%{transform:rotate(360deg)}to{transform:rotate(0)}}@keyframes dotPulse{0%,to{opacity:.7;transform:scale(1)}50%{opacity:1;transform:scale(1.35)}}@keyframes pulseDot{0%,to{opacity:.75;transform:scale(.9)}50%{opacity:1;transform:scale(1.25)}}@keyframes scrollTopIn{0%{opacity:0;transform:translateY(14px)scale(.9)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes loadingLogo{0%,to{opacity:.82;transform:scale(1)}50%{opacity:1;transform:scale(1.07)}}@keyframes loadingBar{0%{opacity:.55;transform:scaleX(.06)}50%{opacity:1;transform:scaleX(.72)}to{opacity:.7;transform:scaleX(1)}}@keyframes orbPulse{0%,to{opacity:.55;transform:scale(.92)}50%{opacity:1;transform:scale(1.08)}}@keyframes loadingAura{0%,to{opacity:.8;transform:scale(1)}50%{opacity:1;transform:scale(1.08)}}.hero-photo-card:after{content:"";z-index:4;pointer-events:none;border-radius:inherit;mix-blend-mode:screen;opacity:.55;background:linear-gradient(135deg,#2563eb1a,#0000 36% 70%,#60a5fa12);position:absolute;inset:0}.hero-photo{filter:saturate(.92)contrast(1.06)brightness(.99);transition:transform .8s var(--spring), filter .6s ease}.hero-photo-card:hover .hero-photo{filter:saturate(1.02)contrast(1.06)brightness(1.02);transform:scale(1.035)}.hero-photo-wrap:before{content:"";background:var(--accent-glow);filter:blur(70px);opacity:.42;border-radius:50%;animation:5.5s ease-in-out infinite ambientBreath;position:absolute;inset:18%}.brand-mark{position:relative;overflow:hidden}.brand-mark:after{content:"";background:#ffffff4d;width:32%;height:340%;animation:5s ease-in-out infinite logoSweep;position:absolute;top:-120%;left:-40%;transform:rotate(24deg)}@keyframes ambientBreath{0%,to{opacity:.28;transform:scale(.9)}50%{opacity:.58;transform:scale(1.14)}}@keyframes logoSweep{0%,55%{opacity:0;transform:translate(-180%)rotate(24deg)}65%{opacity:1}82%,to{opacity:0;transform:translate(480%)rotate(24deg)}}@media (width<=1120px){.desktop-nav{gap:0}.nav-link{padding-inline:.5rem}.nav-cv-button span{display:none}.nav-cv-button{width:42px;height:42px;padding:0}}.primary-button,.nav-cv-button,.mobile-cv-button,.project-filter.is-active,.brand-mark{background-image:linear-gradient(120deg, var(--accent-deep), var(--accent), var(--accent-bright), var(--accent));background-size:240% 240%;animation:8s infinite premiumGradient}.primary-button:hover,.nav-cv-button:hover,.mobile-cv-button:hover{filter:brightness(1.08)saturate(1.08)}.project-card:after,.glass-card:before{transition:opacity .5s ease, transform .7s var(--ease)}.project-card:hover:after{transform:scale(1.06)}@keyframes premiumGradient{0%,to{background-position:0%}50%{background-position:100%}}@media (width<=720px){.section-container{width:min(100% - 1.5rem,1180px)}.section-shell{padding:5rem 0}.hero-photo-wrap{width:min(86vw,360px);margin-top:1rem}.hero-photo-card{border-radius:1.8rem}.hero-stack-badge{bottom:.75rem;left:-.35rem}.footer-main{grid-template-columns:1fr;gap:2.25rem;padding-top:3.5rem}.footer-bottom__inner{flex-direction:column;align-items:flex-start}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media (width<=1024px){.projects-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=900px){.desktop-nav{display:none}.mobile-menu-button{display:grid}.contact-grid{grid-template-columns:1fr}.footer-main{grid-template-columns:1fr 1fr;gap:2.5rem}.footer-brand{grid-column:1/-1}}@media (width<=700px){.section-shell{padding:5rem 0}.section-container{width:min(100% - 1.5rem,1180px)}.projects-grid{grid-template-columns:1fr}.project-card__description{min-height:0}.project-filters{scrollbar-width:none;flex-wrap:nowrap;justify-content:flex-start;padding-bottom:.3rem;overflow-x:auto}.project-filters::-webkit-scrollbar{display:none}.project-filter{flex:none}}@media (width<=640px){.nav-container{min-height:64px}.brand-copy small{display:none}.brand-mark{width:39px;height:39px}.nav-cv-button{display:none}.hero-photo-wrap{width:min(92vw,360px)}.hero-stack-badge{bottom:.5rem;left:-.2rem}.contact-actions{flex-direction:column}.primary-button,.secondary-button{width:100%}.footer-main{grid-template-columns:1fr;padding-top:4rem}.footer-bottom__inner{flex-direction:column;align-items:flex-start}.scroll-top-button{width:44px;height:44px;bottom:.8rem;right:.8rem}}@media (width<=720px){.section-container{width:min(100% - 1.5rem,1180px)}.section-shell{padding:5rem 0}.hero-photo-wrap{width:min(86vw,360px);margin-top:1rem}.hero-photo-card{border-radius:1.8rem}.hero-stack-badge{bottom:.75rem;left:-.35rem}.footer-main{grid-template-columns:1fr;gap:2.25rem;padding-top:3.5rem}.footer-bottom__inner{flex-direction:column;align-items:flex-start}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.ambient-motion{z-index:1;pointer-events:none;isolation:isolate;position:fixed;inset:0;overflow:hidden}.cursor-spotlight{filter:blur(3px);opacity:.85;background:radial-gradient(circle,#2563eb1b,#2563eb09 34%,#0000 68%);border-radius:50%;width:360px;height:360px;position:absolute;transform:translateZ(0)}.ambient-ring{filter:blur(.2px);border:1px solid #60a5fa0e;border-radius:50%;width:min(42vw,620px);height:min(42vw,620px);position:absolute}.ambient-ring:before,.ambient-ring:after{content:"";background:var(--accent-bright);width:9px;height:9px;box-shadow:0 0 24px var(--accent-glow);border-radius:50%;position:absolute}.ambient-ring:before{top:12%;left:18%}.ambient-ring:after{opacity:.7;width:6px;height:6px;bottom:18%;right:11%}.ambient-ring--one{top:6%;right:-15%}.ambient-ring--two{opacity:.75;border-style:dashed;width:min(48vw,700px);height:min(48vw,700px);bottom:-28%;left:-18%}.ambient-beam{background:linear-gradient(90deg,#0000,#60a5fab3,#0000);width:28%;height:1px;position:absolute;top:20%;left:-25%;transform:rotate(-12deg);box-shadow:0 0 28px #2563eb59}.section-shell:after{content:"";z-index:-1;pointer-events:none;opacity:.35;background-image:linear-gradient(#2563eb06 1px,#0000 1px),linear-gradient(90deg,#2563eb06 1px,#0000 1px);background-size:42px 42px;animation:24s linear infinite gridDrift;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#0000,#000 18% 82%,#0000);mask-image:linear-gradient(#0000,#000 18% 82%,#0000)}.section-heading{position:relative}.section-heading:after{content:"";background:linear-gradient(90deg, transparent, var(--accent), transparent);width:72px;height:2px;box-shadow:0 0 18px var(--accent-glow);border-radius:999px;animation:3.8s ease-in-out infinite headingLine;position:absolute;bottom:-1.7rem;left:50%;transform:translate(-50%)}.section-title{background:linear-gradient(110deg, var(--text) 0%, var(--text) 42%, var(--accent-bright) 54%, var(--text) 68%, var(--text) 100%);color:#0000;background-size:240% 100%;-webkit-background-clip:text;background-clip:text;animation:9s ease-in-out infinite titleShimmer}.project-card,.glass-card,.contact-item,.skill-card,.timeline-card,.education-card{transform-origin:bottom}.project-card:hover,.glass-card:hover,.contact-item:hover{animation:2.8s ease-in-out infinite cardBreathe}.project-card:hover:before{animation:2.4s linear infinite edgeFlow}.tech-chip:hover,.accent-pill:hover,.project-featured:hover,.project-rank:hover{animation:chipBounce .55s var(--spring)}.primary-button,.nav-cv-button,.mobile-cv-button{position:relative;overflow:hidden}.primary-button:before,.nav-cv-button:before,.mobile-cv-button:before{content:"";background:linear-gradient(90deg,#0000,#ffffff6b,#0000);animation:4.8s ease-in-out infinite buttonSweep;position:absolute;inset:-120% 35%;transform:rotate(22deg)translate(-180%)}.primary-button>*,.nav-cv-button>*,.mobile-cv-button>*{z-index:1;position:relative}.nav-link-inner:after{content:"";background:var(--accent-bright);height:1px;box-shadow:0 0 12px var(--accent-glow);transition:left .35s var(--spring), right .35s var(--spring), opacity .25s ease;opacity:0;border-radius:999px;position:absolute;bottom:-2px;left:50%;right:50%}.nav-link:hover .nav-link-inner:after{opacity:.75;left:0;right:0}.social-link,.hero-social-link{position:relative}.social-link:before,.hero-social-link:before{content:"";border:1px solid var(--accent);border-radius:inherit;opacity:0;position:absolute;inset:-5px;transform:scale(.75)}.social-link:hover:before,.hero-social-link:hover:before{animation:.75s ease-out socialRipple}.scroll-progress{position:relative}.scroll-progress:after{content:"";background:var(--accent);opacity:.35;filter:blur(5px);position:absolute;inset:-3px 0}@keyframes gridDrift{0%{background-position:0 0,0 0}to{background-position:42px 42px,42px 42px}}@keyframes headingLine{0%,to{opacity:.45;width:56px}50%{opacity:1;width:110px}}@keyframes titleShimmer{0%,55%,to{background-position:220% 0}72%{background-position:-40% 0}}@keyframes cardBreathe{0%,to{box-shadow:var(--shadow-hover)}50%{box-shadow:0 32px 96px #2563eb21, var(--shadow-hover)}}@keyframes edgeFlow{0%{transform:translate(-12%)}to{transform:translate(12%)}}@keyframes chipBounce{0%{transform:translateY(0)scale(1)}55%{transform:translateY(-3px)scale(1.03)}to{transform:translateY(0)scale(1)}}@keyframes buttonSweep{0%,55%{transform:rotate(22deg)translate(-180%)}75%,to{transform:rotate(22deg)translate(280%)}}@keyframes socialRipple{0%{opacity:.65;transform:scale(.75)}to{opacity:0;transform:scale(1.28)}}@media (prefers-reduced-motion:reduce){.ambient-motion,.section-shell:after,.section-title,.section-heading:after,.project-card:hover,.glass-card:hover,.contact-item:hover,.primary-button:before,.nav-cv-button:before,.mobile-cv-button:before{animation:none!important}.cursor-spotlight,.ambient-ring,.ambient-beam{display:none}}@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-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@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}@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}
