html.lenis,html.lenis body{height:auto}.lenis:not(.lenis-autoToggle).lenis-stopped{overflow:clip}.lenis [data-lenis-prevent],.lenis [data-lenis-prevent-wheel],.lenis [data-lenis-prevent-touch],.lenis [data-lenis-prevent-vertical],.lenis [data-lenis-prevent-horizontal]{overscroll-behavior:contain}.lenis.lenis-smooth iframe{pointer-events:none}.lenis.lenis-autoToggle{transition-behavior:allow-discrete;transition-property:overflow;transition-duration:1ms}.rotating-text{white-space:nowrap;display:inline-flex;overflow:hidden}.rotating-text__char{display:inline-block}.section-header__subtitle{text-align:left;color:var(--color-slate-500);font-size:18px;font-weight:var(--font-weight-normal);letter-spacing:-.01em;max-width:600px;margin:0;line-height:1.6}.section-header .section-title{margin-bottom:16px}.services-lamp{flex-shrink:0;margin-bottom:clamp(16px,2vh,32px)}.skills-lamp{margin-bottom:40px}.scroll-float,.scroll-float-text{display:inline}.scroll-float-char{will-change:transform, opacity;display:inline-block}.card-spotlight{background:var(--surface-1);border:1px solid var(--hairline);color:#ffffffe6;border-radius:20px;position:relative;overflow:hidden;box-shadow:0 16px 40px #0003}.card-spotlight:before{content:"";border-radius:inherit;background:radial-gradient(circle at var(--mouse-x,50%) var(--mouse-y,50%), var(--spotlight-color,rgba(var(--accent-rgb), .25)), transparent 80%);opacity:0;pointer-events:none;z-index:0;transition:opacity .4s;position:absolute;inset:0}.card-spotlight:hover:before{opacity:.6}.card-spotlight>*{z-index:1;position:relative}@media (prefers-reduced-motion:reduce){.card-spotlight:before{transition:none}}.iridescence-container{width:100%;height:100%}.parallax{position:relative;overflow:hidden}.scroller{white-space:nowrap;text-align:center;letter-spacing:-.02em;filter:drop-shadow(0 1px 1px #0000001a);font-family:sans-serif;font-size:2.25rem;font-weight:700;display:flex}.scroller span{flex-shrink:0}@media (width>=768px){.scroller{font-size:5rem;line-height:5rem}}.logoloop{--logoloop-gap:32px;--logoloop-logoHeight:28px;--logoloop-fadeColorAuto:#fff;position:relative}.logoloop--vertical{height:100%;display:inline-block}.logoloop--scale-hover{padding-top:calc(var(--logoloop-logoHeight) * .1);padding-bottom:calc(var(--logoloop-logoHeight) * .1)}@media (prefers-color-scheme:dark){.logoloop{--logoloop-fadeColorAuto:#0b0b0b}}.logoloop__track{will-change:transform;-webkit-user-select:none;user-select:none;z-index:0;width:max-content;display:flex;position:relative}.logoloop--vertical .logoloop__track{flex-direction:column;width:100%;height:max-content}.logoloop__list{align-items:center;display:flex}.logoloop--vertical .logoloop__list{flex-direction:column}.logoloop__item{margin-right:var(--logoloop-gap);font-size:var(--logoloop-logoHeight);flex:none;line-height:1}.logoloop--vertical .logoloop__item{margin-right:0;margin-bottom:var(--logoloop-gap)}.logoloop__item:last-child{margin-right:var(--logoloop-gap)}.logoloop--vertical .logoloop__item:last-child{margin-right:0;margin-bottom:var(--logoloop-gap)}.logoloop__node{align-items:center;display:inline-flex}.logoloop__item img{height:var(--logoloop-logoHeight);object-fit:contain;width:auto;image-rendering:-webkit-optimize-contrast;-webkit-user-drag:none;pointer-events:none;transition:transform .3s cubic-bezier(.4,0,.2,1);display:block}.logoloop--scale-hover .logoloop__item{overflow:visible}.logoloop--scale-hover .logoloop__item:hover img,.logoloop--scale-hover .logoloop__item:hover .logoloop__node{transform-origin:50%;transform:scale(1.2)}.logoloop--scale-hover .logoloop__node{transition:transform .3s cubic-bezier(.4,0,.2,1)}.logoloop__link{border-radius:4px;align-items:center;text-decoration:none;transition:opacity .2s;display:inline-flex}.logoloop__link:hover{opacity:.8}.logoloop__link:focus-visible{outline-offset:2px;outline:2px solid}.logoloop--fade:before,.logoloop--fade:after{content:"";pointer-events:none;z-index:10;width:clamp(24px,8%,120px);position:absolute;top:0;bottom:0}.logoloop--fade:before{background:linear-gradient(to right, var(--logoloop-fadeColor,var(--logoloop-fadeColorAuto)) 0%, #0000 100%);left:0}.logoloop--fade:after{background:linear-gradient(to left, var(--logoloop-fadeColor,var(--logoloop-fadeColorAuto)) 0%, #0000 100%);right:0}.logoloop--vertical.logoloop--fade:before,.logoloop--vertical.logoloop--fade:after{width:100%;height:clamp(24px,8%,120px);left:0;right:0}.logoloop--vertical.logoloop--fade:before{background:linear-gradient(to bottom, var(--logoloop-fadeColor,var(--logoloop-fadeColorAuto)) 0%, #0000 100%);top:0;bottom:auto}.logoloop--vertical.logoloop--fade:after{background:linear-gradient(to top, var(--logoloop-fadeColor,var(--logoloop-fadeColorAuto)) 0%, #0000 100%);top:auto;bottom:0}@media (prefers-reduced-motion:reduce){.logoloop__track{transform:translate(0,0)!important}.logoloop__item img,.logoloop__node{transition:none!important}}:root{--color-white:#fff;--color-black:#000;--color-cream-50:#fcfcf9;--color-cream-100:#fffffd;--color-gray-200:#f5f5f5;--color-gray-300:#a7a9a9;--color-gray-400:#777c7c;--color-slate-500:#c8d2d7a6;--color-brown-600:#5e5240;--color-charcoal-700:#1f2121;--color-charcoal-800:#262828;--color-slate-900:#13343b;--color-accent-300:rgba(var(--accent-rgb), 1);--color-accent-400:rgba(var(--accent-strong-rgb), 1);--color-accent-500:rgba(var(--accent-strong-rgb), 1);--color-accent-600:#9f1239;--color-accent-700:#881337;--color-accent-800:#9f1239;--color-accent-light:#fda4af;--color-accent-decorative:#fda4af;--color-red-400:#ff5459;--color-red-500:#c0152f;--color-orange-400:#e68161;--color-orange-500:#a84b2f;--color-brown-600-rgb:94, 82, 64;--color-accent-500-rgb:var(--accent-strong-rgb);--color-slate-900-rgb:19, 52, 59;--color-slate-500-rgb:98, 108, 113;--color-red-500-rgb:192, 21, 47;--color-red-400-rgb:255, 84, 89;--color-orange-500-rgb:168, 75, 47;--color-orange-400-rgb:230, 129, 97;--color-bg-1:#3b82f614;--color-bg-2:#f59e0b14;--color-bg-3:#22c55e14;--color-bg-4:#ef444414;--color-bg-5:#9333ea14;--color-bg-6:#f9731614;--color-bg-7:#ec489914;--color-bg-8:rgba(var(--accent-rgb), .08);--color-background:var(--color-cream-50);--color-surface:var(--color-cream-100);--color-text:var(--color-slate-900);--color-text-secondary:var(--color-slate-500);--color-primary:var(--color-accent-500);--color-primary-hover:var(--color-accent-600);--color-primary-active:var(--color-accent-700);--color-secondary:rgba(var(--color-brown-600-rgb), .12);--color-secondary-hover:rgba(var(--color-brown-600-rgb), .2);--color-secondary-active:rgba(var(--color-brown-600-rgb), .25);--color-border:rgba(var(--color-brown-600-rgb), .2);--color-btn-primary-text:var(--color-cream-50);--color-card-border:rgba(var(--color-brown-600-rgb), .12);--color-card-border-inner:rgba(var(--color-brown-600-rgb), .12);--color-error:var(--color-red-500);--color-success:var(--color-accent-500);--color-warning:var(--color-orange-500);--color-info:var(--color-slate-500);--color-focus-ring:rgba(var(--color-accent-500-rgb), .4);--color-select-caret:rgba(var(--color-slate-900-rgb), .8);--focus-ring:0 0 0 3px var(--color-focus-ring);--focus-outline:2px solid var(--color-primary);--status-bg-opacity:.15;--status-border-opacity:.25;--select-caret-light:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23134252' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");--select-caret-dark:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23f5f5f5' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");--color-success-rgb:33, 128, 141;--color-error-rgb:192, 21, 47;--color-warning-rgb:168, 75, 47;--color-info-rgb:98, 108, 113;--font-family-base:"Satoshi", "Geist", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-family-display:"Clash Display", "Satoshi", -apple-system, sans-serif;--font-family-mono:"Berkeley Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;--font-size-xs:11px;--font-size-sm:12px;--font-size-base:15px;--font-size-md:14px;--font-size-lg:16px;--font-size-xl:18px;--font-size-2xl:20px;--font-size-3xl:22px;--font-size-4xl:28px;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:550;--font-weight-bold:600;--line-height-tight:1.2;--line-height-normal:1.5;--letter-spacing-tight:-.01em;--space-0:0;--space-1:1px;--space-2:2px;--space-4:4px;--space-6:6px;--space-8:8px;--space-10:10px;--space-12:12px;--space-16:16px;--space-20:20px;--space-24:24px;--space-32:32px;--radius-sm:6px;--radius-base:8px;--radius-md:10px;--radius-lg:12px;--radius-full:9999px;--shadow-xs:0 1px 2px #00000005;--shadow-sm:0 1px 3px #0000000a, 0 1px 2px #00000005;--shadow-md:0 4px 6px -1px #0000000a, 0 2px 4px -1px #00000005;--shadow-lg:0 10px 15px -3px #0000000a, 0 4px 6px -2px #00000005;--shadow-inset-sm:inset 0 1px 0 #ffffff26, inset 0 -1px 0 #00000008;--duration-fast:.15s;--duration-normal:.25s;--ease-standard:cubic-bezier(.16, 1, .3, 1);--container-sm:640px;--container-md:768px;--container-lg:1024px;--container-xl:1280px;--nav-h:84px;--hero-gap:clamp(56px, 6vw, 180px);--accent:#e0475f;--accent-strong:#b81d3e;--accent-rgb:224, 71, 95;--accent-strong-rgb:184, 29, 62;--ink:#f4f1ee;--ink-dim:#f4f1eea3;--ink-faint:#f4f1ee66;--hairline:#f4f1ee1a;--surface-1:#151216;--surface-2:#1b171c}@media (prefers-color-scheme:dark){:root{--color-gray-400-rgb:119, 124, 124;--color-accent-300-rgb:var(--accent-rgb);--color-gray-300-rgb:167, 169, 169;--color-gray-200-rgb:245, 245, 245;--color-bg-1:#1d4ed826;--color-bg-2:#b4530926;--color-bg-3:#15803d26;--color-bg-4:#b91c1c26;--color-bg-5:#6b21a826;--color-bg-6:#c2410c26;--color-bg-7:#be185d26;--color-bg-8:rgba(var(--accent-strong-rgb), .15);--color-background:var(--color-charcoal-700);--color-surface:var(--color-charcoal-800);--color-text:var(--color-gray-200);--color-text-secondary:rgba(var(--color-gray-300-rgb), .7);--color-primary:var(--color-accent-300);--color-primary-hover:var(--color-accent-400);--color-primary-active:var(--color-accent-800);--color-secondary:rgba(var(--color-gray-400-rgb), .15);--color-secondary-hover:rgba(var(--color-gray-400-rgb), .25);--color-secondary-active:rgba(var(--color-gray-400-rgb), .3);--color-border:rgba(var(--color-gray-400-rgb), .3);--color-error:var(--color-red-400);--color-success:var(--color-accent-300);--color-warning:var(--color-orange-400);--color-info:var(--color-gray-300);--color-focus-ring:rgba(var(--color-accent-300-rgb), .4);--color-btn-primary-text:var(--color-slate-900);--color-card-border:rgba(var(--color-gray-400-rgb), .2);--color-card-border-inner:rgba(var(--color-gray-400-rgb), .15);--shadow-inset-sm:inset 0 1px 0 #ffffff1a, inset 0 -1px 0 #00000026;--button-border-secondary:rgba(var(--color-gray-400-rgb), .2);--color-border-secondary:rgba(var(--color-gray-400-rgb), .2);--color-select-caret:rgba(var(--color-gray-200-rgb), .8);--focus-ring:0 0 0 3px var(--color-focus-ring);--focus-outline:2px solid var(--color-primary);--status-bg-opacity:.15;--status-border-opacity:.25;--select-caret-light:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23134252' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");--select-caret-dark:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23f5f5f5' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");--color-success-rgb:var(--color-accent-300-rgb);--color-error-rgb:var(--color-red-400-rgb);--color-warning-rgb:var(--color-orange-400-rgb);--color-info-rgb:var(--color-gray-300-rgb)}}[data-color-scheme=dark]{--color-gray-400-rgb:119, 124, 124;--color-accent-300-rgb:var(--accent-rgb);--color-gray-300-rgb:167, 169, 169;--color-gray-200-rgb:245, 245, 245;--color-bg-1:#1d4ed826;--color-bg-2:#b4530926;--color-bg-3:#15803d26;--color-bg-4:#b91c1c26;--color-bg-5:#6b21a826;--color-bg-6:#c2410c26;--color-bg-7:#be185d26;--color-bg-8:rgba(var(--accent-strong-rgb), .15);--color-background:var(--color-charcoal-700);--color-surface:var(--color-charcoal-800);--color-text:var(--color-gray-200);--color-text-secondary:rgba(var(--color-gray-300-rgb), .7);--color-primary:var(--color-accent-300);--color-primary-hover:var(--color-accent-400);--color-primary-active:var(--color-accent-800);--color-secondary:rgba(var(--color-gray-400-rgb), .15);--color-secondary-hover:rgba(var(--color-gray-400-rgb), .25);--color-secondary-active:rgba(var(--color-gray-400-rgb), .3);--color-border:rgba(var(--color-gray-400-rgb), .3);--color-error:var(--color-red-400);--color-success:var(--color-accent-300);--color-warning:var(--color-orange-400);--color-info:var(--color-gray-300);--color-focus-ring:rgba(var(--color-accent-300-rgb), .4);--color-btn-primary-text:var(--color-slate-900);--color-card-border:rgba(var(--color-gray-400-rgb), .15);--color-card-border-inner:rgba(var(--color-gray-400-rgb), .15);--shadow-inset-sm:inset 0 1px 0 #ffffff1a, inset 0 -1px 0 #00000026;--color-border-secondary:rgba(var(--color-gray-400-rgb), .2);--color-select-caret:rgba(var(--color-gray-200-rgb), .8);--focus-ring:0 0 0 3px var(--color-focus-ring);--focus-outline:2px solid var(--color-primary);--status-bg-opacity:.15;--status-border-opacity:.25;--select-caret-light:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23134252' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");--select-caret-dark:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23f5f5f5' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");--color-success-rgb:var(--color-accent-300-rgb);--color-error-rgb:var(--color-red-400-rgb);--color-warning-rgb:var(--color-orange-400-rgb);--color-info-rgb:var(--color-gray-300-rgb)}[data-color-scheme=light]{--color-brown-600-rgb:94, 82, 64;--color-accent-500-rgb:var(--accent-strong-rgb);--color-slate-900-rgb:19, 52, 59;--color-background:var(--color-cream-50);--color-surface:var(--color-cream-100);--color-text:var(--color-slate-900);--color-text-secondary:var(--color-slate-500);--color-primary:var(--color-accent-500);--color-primary-hover:var(--color-accent-600);--color-primary-active:var(--color-accent-700);--color-secondary:rgba(var(--color-brown-600-rgb), .12);--color-secondary-hover:rgba(var(--color-brown-600-rgb), .2);--color-secondary-active:rgba(var(--color-brown-600-rgb), .25);--color-border:rgba(var(--color-brown-600-rgb), .2);--color-btn-primary-text:var(--color-cream-50);--color-card-border:rgba(var(--color-brown-600-rgb), .12);--color-card-border-inner:rgba(var(--color-brown-600-rgb), .12);--color-error:var(--color-red-500);--color-success:var(--color-accent-500);--color-warning:var(--color-orange-500);--color-info:var(--color-slate-500);--color-focus-ring:rgba(var(--color-accent-500-rgb), .4);--color-success-rgb:var(--color-accent-500-rgb);--color-error-rgb:var(--color-red-500-rgb);--color-warning-rgb:var(--color-orange-500-rgb);--color-info-rgb:var(--color-slate-500-rgb)}html{font-size:var(--font-size-base);font-family:var(--font-family-base);line-height:var(--line-height-normal);color:var(--color-text);background-color:var(--color-background);-webkit-font-smoothing:antialiased;box-sizing:border-box}body{margin:0;padding:0}*,:before,:after{box-sizing:inherit}h1,h2,h3,h4,h5,h6{font-family:var(--font-family-display);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);color:var(--color-text);letter-spacing:var(--letter-spacing-tight);word-spacing:.08em;margin:0}h1{font-size:var(--font-size-4xl)}h2{font-size:var(--font-size-3xl)}h3{font-size:var(--font-size-2xl)}h4{font-size:var(--font-size-xl)}h5{font-size:var(--font-size-lg)}h6{font-size:var(--font-size-md)}p{margin:0 0 var(--space-16) 0}a{color:var(--color-primary);transition:color var(--duration-fast) var(--ease-standard);text-decoration:none}a:hover{color:var(--color-primary-hover)}code,pre{font-family:var(--font-family-mono);font-size:calc(var(--font-size-base) * .95);background-color:var(--color-secondary);border-radius:var(--radius-sm)}code{padding:var(--space-1) var(--space-4)}pre{padding:var(--space-16);margin:var(--space-16) 0;border:1px solid var(--color-border);overflow:auto}pre code{background:0 0;padding:0}.btn{justify-content:center;align-items:center;gap:var(--space-8);padding:var(--space-12) var(--space-28);min-height:52px;font-size:var(--font-size-md);cursor:pointer;transition:all var(--duration-normal) var(--ease-standard);letter-spacing:.01em;color:var(--color-text);isolation:isolate;background:0 0;border:none;border-radius:999px;font-weight:600;line-height:1.4;text-decoration:none;display:inline-flex;position:relative;overflow:hidden;box-shadow:0 16px 32px #112d3614}.btn:after{content:"";border-radius:inherit;opacity:0;transition:opacity var(--duration-fast) var(--ease-standard);pointer-events:none;background:radial-gradient(120% 120% at 10% 10%,#ffffff59,#ffffff0d 55%,#0000 70%);position:absolute;inset:0}.btn:hover:after{opacity:1}.btn i,.btn span{z-index:1;position:relative}.btn i{background:#ffffff24;border-radius:999px;justify-content:center;align-items:center;width:2.4rem;height:2.4rem;font-size:1.05rem;display:inline-flex;box-shadow:inset 0 0 0 1px #ffffff1f,0 6px 18px #0c34402e}.btn:focus-visible{box-shadow:var(--focus-ring);outline:none}.btn-primary{color:var(--color-btn-primary-text);background:var(--accent);box-shadow:0 22px 45px rgba(var(--accent-strong-rgb), .38)}.btn-primary:hover{background:var(--accent-strong);box-shadow:0 26px 54px rgba(var(--accent-strong-rgb), .45)}.btn-primary:active{box-shadow:0 10px 26px rgba(var(--accent-strong-rgb), .34);transform:translateY(1px)}.btn-primary .btn-depth{background:linear-gradient(135deg,#07273059,#88133733)}.btn-primary i{color:var(--color-btn-primary-text);background:#ffffff2e}.btn-secondary{color:#fffc;-webkit-backdrop-filter:blur(18px)saturate(140%);backdrop-filter:blur(18px)saturate(140%);background:#ffffff0f;border:1px solid #ffffff26;box-shadow:0 8px 24px #0003}.btn-secondary:hover{color:var(--accent);background:#ffffff1f;border-color:#ffffff40;box-shadow:0 12px 32px #0000004d}.btn-secondary:active{transform:translateY(1px);box-shadow:0 12px 26px #1a465233}.btn-secondary .btn-depth{background:linear-gradient(135deg,#0f495729,#ffffff0d)}.btn-secondary i{background:rgba(var(--accent-strong-rgb), .16);color:var(--accent)}.btn--outline{border:1px solid var(--color-border);color:var(--color-text);background:0 0}.btn--outline:hover{background:var(--color-secondary)}.btn--sm{padding:var(--space-4) var(--space-12);font-size:var(--font-size-sm);border-radius:var(--radius-sm)}.btn--lg{padding:var(--space-10) var(--space-20);font-size:var(--font-size-lg);border-radius:var(--radius-md)}.btn--full-width{width:100%}.btn:disabled{opacity:.5;cursor:not-allowed}.form-control{width:100%;padding:var(--space-8) var(--space-12);font-size:var(--font-size-md);color:var(--color-text);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-base);transition:border-color var(--duration-fast) var(--ease-standard), box-shadow var(--duration-fast) var(--ease-standard);line-height:1.5;display:block}textarea.form-control{font-family:var(--font-family-base);font-size:var(--font-size-base)}select.form-control{padding:var(--space-8) var(--space-12);appearance:none;background-image:var(--select-caret-light);background-repeat:no-repeat;background-position:right var(--space-12) center;padding-right:var(--space-32);background-size:16px}@media (prefers-color-scheme:dark){select.form-control{background-image:var(--select-caret-dark)}}[data-color-scheme=dark] select.form-control{background-image:var(--select-caret-dark)}[data-color-scheme=light] select.form-control{background-image:var(--select-caret-light)}.form-control:focus{border-color:var(--color-primary);outline:var(--focus-outline)}.form-label{margin-bottom:var(--space-8);font-weight:var(--font-weight-medium);font-size:var(--font-size-sm);display:block}.card{background-color:var(--color-surface);border-radius:var(--radius-lg);border:1px solid var(--color-card-border);box-shadow:var(--shadow-sm);transition:box-shadow var(--duration-normal) var(--ease-standard);overflow:hidden}.card:hover{box-shadow:var(--shadow-md)}.card__body{padding:var(--space-16)}.card__header,.card__footer{padding:var(--space-16);border-bottom:1px solid var(--color-card-border-inner)}.status{padding:var(--space-6) var(--space-12);border-radius:var(--radius-full);font-weight:var(--font-weight-medium);font-size:var(--font-size-sm);align-items:center;display:inline-flex}.status--success{background-color:rgba(var(--color-success-rgb,33, 128, 141), var(--status-bg-opacity));color:var(--color-success);border:1px solid rgba(var(--color-success-rgb,33, 128, 141), var(--status-border-opacity))}.status--error{background-color:rgba(var(--color-error-rgb,192, 21, 47), var(--status-bg-opacity));color:var(--color-error);border:1px solid rgba(var(--color-error-rgb,192, 21, 47), var(--status-border-opacity))}.status--warning{background-color:rgba(var(--color-warning-rgb,168, 75, 47), var(--status-bg-opacity));color:var(--color-warning);border:1px solid rgba(var(--color-warning-rgb,168, 75, 47), var(--status-border-opacity))}.status--info{background-color:rgba(var(--color-info-rgb,98, 108, 113), var(--status-bg-opacity));color:var(--color-info);border:1px solid rgba(var(--color-info-rgb,98, 108, 113), var(--status-border-opacity))}.container{width:100%;padding-right:var(--space-16);padding-left:var(--space-16);margin-left:auto;margin-right:auto}@media (width>=640px){.container{max-width:var(--container-sm)}}@media (width>=768px){.container{max-width:var(--container-md)}}@media (width>=1024px){.container{max-width:var(--container-lg)}}@media (width>=1280px){.container{max-width:var(--container-xl)}}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-4{gap:var(--space-4)}.gap-8{gap:var(--space-8)}.gap-16{gap:var(--space-16)}.m-0{margin:0}.mt-8{margin-top:var(--space-8)}.mb-8{margin-bottom:var(--space-8)}.mx-8{margin-left:var(--space-8);margin-right:var(--space-8)}.my-8{margin-top:var(--space-8);margin-bottom:var(--space-8)}.p-0{padding:0}.py-8{padding-top:var(--space-8);padding-bottom:var(--space-8)}.px-8{padding-left:var(--space-8);padding-right:var(--space-8)}.py-16{padding-top:var(--space-16);padding-bottom:var(--space-16)}.px-16{padding-left:var(--space-16);padding-right:var(--space-16)}.block{display:block}.hidden{display:none}:focus-visible{outline:var(--focus-outline);outline-offset:2px}[data-color-scheme=dark] .btn--outline{border:1px solid var(--color-border-secondary)}@font-face{font-family:Clash Display;src:url(/fonts/ClashDisplay-Regular.woff2)format("woff2");font-weight:400;font-display:swap;font-style:normal}@font-face{font-family:Clash Display;src:url(/fonts/ClashDisplay-Medium.woff2)format("woff2");font-weight:500;font-display:swap;font-style:normal}@font-face{font-family:Clash Display;src:url(/fonts/ClashDisplay-Semibold.woff2)format("woff2");font-weight:600;font-display:swap;font-style:normal}@font-face{font-family:Clash Display;src:url(/fonts/ClashDisplay-Bold.woff2)format("woff2");font-weight:700;font-display:swap;font-style:normal}@font-face{font-family:Satoshi;src:url(/fonts/Satoshi-Regular.woff2)format("woff2");font-weight:400;font-display:swap;font-style:normal}@font-face{font-family:Satoshi;src:url(/fonts/Satoshi-Medium.woff2)format("woff2");font-weight:500;font-display:swap;font-style:normal}@font-face{font-family:Satoshi;src:url(/fonts/Satoshi-Bold.woff2)format("woff2");font-weight:700;font-display:swap;font-style:normal}@font-face{font-family:Satoshi;src:url(/fonts/Satoshi-Italic.woff2)format("woff2");font-weight:400;font-display:swap;font-style:italic}*{box-sizing:border-box;margin:0;padding:0}html{font-size:var(--font-size-base);font-family:var(--font-family-base);line-height:var(--line-height-normal);color:#ffffffe6;-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;background:#0a0a0a;overflow-x:clip}body{background:#0a0a0a;overflow-x:clip}#root{z-index:1;position:relative}.perspective-container{transform-style:preserve-3d;perspective:1200px}.section-3d{transform-style:preserve-3d;padding:100px 0;position:relative}.section-3d:before{display:none}.about.section-3d{background:linear-gradient(#0c090b00 0%,#0c090b8c 160px calc(100% - 160px),#0c090b00 100%)}.services.section-3d,.projects.section-3d,.skills.section-3d,.contact.section-3d{background:linear-gradient(#0c090b00 0%,#0c090bd9 180px calc(100% - 180px),#0c090b00 100%)}.glass-card-3d{-webkit-backdrop-filter:blur(14px)saturate(160%);backdrop-filter:blur(14px)saturate(160%);color:#ffffffe6;background:#ffffff0f;border:1px solid #ffffff1a;border-radius:20px;box-shadow:0 16px 40px #0003}.glass-card-3d:hover{border-color:#ffffff2e;transform:translateY(-8px)translateZ(18px)rotateX(1deg);box-shadow:0 24px 56px #0000004d}.glass-card-3d:before{content:"";pointer-events:none;z-index:1;background:linear-gradient(90deg,#0000,#ffffff14,#0000);width:100%;height:100%;transition:left .8s;position:absolute;top:0;left:-100%}.glass-card-3d:hover:before{left:100%}.glass-button-3d{-webkit-backdrop-filter:blur(20px)saturate(160%);backdrop-filter:blur(20px)saturate(160%);color:#ffffffd9;letter-spacing:.02em;cursor:pointer;box-shadow:inset 0 0 12px #ffffff40, 0 8px 25px rgba(var(--accent-strong-rgb),.18);background:linear-gradient(135deg,#ffffff40,#ffffff0d);border:1px solid #ffffff40;border-radius:999px;align-items:center;gap:10px;padding:14px 28px;font-size:15px;font-weight:600;transition:all .35s cubic-bezier(.23,1,.32,1);display:inline-flex;position:relative;overflow:hidden}.glass-button-3d span{z-index:2;position:relative}.glass-button-3d i{background:rgba(var(--accent-strong-rgb),.18);color:var(--accent);border-radius:50%;padding:8px;font-size:1rem;box-shadow:inset 0 0 6px #ffffff4d}.glass-button-3d:before{content:"";z-index:1;background:linear-gradient(120deg,#0000,#ffffff80,#0000);width:200%;height:200%;transition:transform .6s;position:absolute;top:-50%;left:-50%;transform:rotate(25deg)translate(-100%)}.glass-button-3d.btn-primary{border:1px solid rgba(var(--accent-strong-rgb),.5);background:var(--accent);color:#fff;text-shadow:0 1px 3px #0000004d}.glass-button-3d.btn-primary:hover{background:var(--accent-strong)}.glass-button-3d.btn-secondary{color:#fffc;background:#ffffff0f;border:1px solid #ffffff26}.glass-button-3d.btn-secondary:hover{color:var(--accent);background:#ffffff1f}.glass-surface{justify-content:center;align-items:center;transition:opacity .26s ease-out;display:flex;position:relative;overflow:hidden}.glass-surface__filter{pointer-events:none;opacity:0;z-index:-1;width:100%;height:100%;position:absolute;inset:0}.glass-surface__content{border-radius:inherit;z-index:1;justify-content:center;align-items:center;width:100%;height:100%;padding:.5rem;display:flex;position:relative}.glass-surface--svg{background:hsl(0 0% 0%/var(--glass-frost,0));-webkit-backdrop-filter:var(--filter-id,url(#glass-filter)) saturate(var(--glass-saturation,1));backdrop-filter:var(--filter-id,url(#glass-filter)) saturate(var(--glass-saturation,1));box-shadow:inset 0 0 2px 1px oklch(100% 5.96046e-8 none/.35),inset 0 0 10px 4px oklch(100% 5.96046e-8 none/.15),0 4px 16px #11111a0d,0 8px 24px #11111a0d,0 16px 56px #11111a0d,inset 0 4px 16px #11111a0d,inset 0 8px 24px #11111a0d,inset 0 16px 56px #11111a0d}.glass-surface--fallback{-webkit-backdrop-filter:blur(16px)saturate(1.8)brightness(1.1);background:#0a0a0ea6;border:1px solid #ffffff1f;box-shadow:inset 0 1px #ffffff26,inset 0 -1px #ffffff14}.glass-surface:focus-visible{outline-offset:2px;outline:2px solid #0a84ff}.nav{z-index:9999;width:calc(100% - 32px);max-width:720px;margin:0 auto;position:fixed;top:16px;left:0;right:0}.nav-glass{width:100%!important;height:auto!important}.nav-inner{border:1px solid var(--hairline);background:#110b0eeb;border-radius:16px;width:100%;box-shadow:0 10px 30px #00000059}.nav-container{justify-content:space-between;align-items:center;width:100%;height:48px;padding:0 8px 0 16px;display:flex}.nav-logo .brand{align-items:center;gap:12px;display:flex}.brand-logo{object-fit:contain;filter:brightness(0)invert();width:auto;height:64px;transition:opacity .25s;display:block}.brand-logo:hover{opacity:.8}.nav-menu{gap:4px;margin:0;padding:0;list-style:none;display:flex}.nav-link{color:#ffffffb3;letter-spacing:-.01em;border-radius:10px;padding:8px 16px;font-size:14px;font-weight:500;text-decoration:none;transition:all .25s}.nav-link:hover{color:#fff;background:#ffffff1a}.nav-link.active{color:#fff;background:#ffffff1f}.floating-element{transform-style:preserve-3d;animation:8s ease-in-out infinite float3D}.floating-icon{animation:6s ease-in-out infinite floatIcon}.floating-text{animation:9s ease-in-out infinite floatText}@keyframes float3D{0%,to{transform:translateY(0)translateZ(0)rotateY(0)}25%{transform:translateY(-10px)translateZ(8px)rotateY(1deg)}50%{transform:translateY(0)translateZ(15px)rotateY(0)}75%{transform:translateY(10px)translateZ(8px)rotateY(-1deg)}}@keyframes floatIcon{0%,to{transform:translateY(0)rotate(0)scale(1)}50%{transform:translateY(-12px)rotate(8deg)scale(1.05)}}@keyframes floatText{0%,to{transform:translate(0)translateY(0)}25%{transform:translate(3px)translateY(-6px)}75%{transform:translate(-3px)translateY(6px)}}.tilt-element{transform-style:preserve-3d;transition:all .4s cubic-bezier(.23,1,.32,1)}.tilt-card{transform-style:preserve-3d;transition:all .5s cubic-bezier(.23,1,.32,1)}.hover-lift{transform-style:preserve-3d;transition:all .4s cubic-bezier(.23,1,.32,1)}.hover-lift:hover{transform:translateY(-8px)translateZ(25px)rotateX(3deg)}.hover-rotate{transform-style:preserve-3d;transition:all .5s cubic-bezier(.23,1,.32,1)}.hover-rotate:hover{transform:translateY(-6px)translateZ(20px)rotateY(4deg)rotateX(2deg)}.hover-rotate-y{transform-style:preserve-3d;transition:all .5s cubic-bezier(.23,1,.32,1)}.hover-rotate-y:hover{transform:translateY(-8px)translateZ(30px)rotateY(6deg)}.hero-3d{min-height:100dvh;transform-style:preserve-3d;perspective:1500px;padding-top:calc(var(--nav-h) + 24px);justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.hero-overlay{display:none}.hero-content{text-align:center;z-index:2;max-width:860px;margin:0 auto;padding:60px 24px;position:relative}.hero-badge{letter-spacing:.16em;text-transform:uppercase;color:var(--color-accent-light);margin-bottom:28px;font-size:13px;font-weight:500;display:inline-block}.avatar-placeholder-3d{background:linear-gradient(135deg, var(--accent) 0%, var(--accent) 100%);color:#fff;width:clamp(120px,20vw,160px);height:clamp(120px,20vw,160px);box-shadow:0 20px 60px rgba(var(--accent-strong-rgb), .3), 0 8px 30px rgba(var(--accent-rgb), .2), inset 0 1px 0 #ffffff4d;transform-style:preserve-3d;border-radius:50%;justify-content:center;align-items:center;margin:0 auto 40px;font-size:clamp(40px,8vw,60px);transition:all .5s cubic-bezier(.23,1,.32,1);animation:5s ease-in-out infinite alternate avatarGlow;display:flex;position:relative;overflow:hidden}.nav.scrolled{z-index:9999;background:#0a0a0ebf;border:1px solid #ffffff14;border-radius:0;width:100%;max-width:100%;padding:8px 0;top:0;box-shadow:0 10px 40px #0003,inset 0 1px #ffffff0d}@keyframes avatarGlow{0%{box-shadow:0 20px 60px rgba(var(--accent-strong-rgb), .3), 0 8px 30px rgba(var(--accent-rgb), .2), inset 0 1px 0 #ffffff4d}to{box-shadow:0 25px 80px rgba(var(--accent-strong-rgb), .4), 0 12px 40px rgba(var(--accent-rgb), .3), inset 0 1px 0 #fff6}}.avatar-placeholder-3d:before{content:"";background:linear-gradient(45deg,#0000,#ffffff4d,#0000);width:200%;height:200%;animation:4s infinite shimmer3D;position:absolute;top:-50%;left:-50%}@keyframes shimmer3D{0%{transform:translate(-100%)translateY(-100%)rotate(45deg)}to{transform:translate(100%)translateY(100%)rotate(45deg)}}.hero-title{font-family:var(--font-family-display);letter-spacing:-.015em;word-spacing:.04em;color:var(--ink);margin-bottom:24px;font-size:clamp(40px,6vw,72px);font-weight:700;line-height:1.08}.hero-title-line{text-wrap:balance;display:block}.hero-title-accent{font-family:var(--font-family-base);color:var(--accent);font-style:italic;font-weight:400}.em{font-family:var(--font-family-base);color:inherit;font-style:italic;font-weight:400}.hero-subtitle{color:#f4f1eeeb;justify-content:center;max-width:540px;margin-bottom:48px;margin-left:auto;margin-right:auto;font-size:clamp(16px,2.2vw,20px);font-weight:400;line-height:1.6}.typewriter-text{color:#ffffff80;font-size:20px;font-weight:var(--font-weight-normal);letter-spacing:.02em;margin-bottom:40px}.hero-cta{flex-wrap:wrap;justify-content:center;gap:20px;display:flex}.hero-btn{letter-spacing:.01em;cursor:pointer;border-radius:999px;justify-content:center;align-items:center;padding:14px 32px;font-size:15px;font-weight:600;text-decoration:none;transition:all .3s cubic-bezier(.23,1,.32,1);display:inline-flex}.hero-btn-primary{color:#0a0a0a;background:#fff;border:none;box-shadow:0 4px 24px #ffffff26}.hero-btn-primary:hover{transform:translateY(-2px);box-shadow:0 8px 32px #ffffff40}.hero-btn-secondary{color:#ffffffd9;background:0 0;border:1px solid #ffffff40}.hero-btn-secondary:hover{background:#ffffff1a;border-color:#fff6;transform:translateY(-2px)}.scroll-indicator-3d{bottom:max(40px, calc(env(safe-area-inset-bottom) + 16px));cursor:pointer;z-index:3;color:inherit;background:0 0;border:none;padding:0;position:absolute;left:50%;transform:translate(-50%)}@media (width<=768px){.scroll-indicator-3d{display:none}}.scroll-arrow-3d{border:1px solid var(--hairline);color:#ffffffb3;background:#ffffff0f;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;font-size:16px;transition:all .3s;animation:3s infinite bounce3D;display:flex}.scroll-arrow-3d:hover{color:#fff;background:#fff3;transform:scale(1.1)}@keyframes bounce3D{0%,20%,50%,80%,to{transform:translateY(0)translateZ(0)}40%{transform:translateY(-15px)translateZ(8px)}60%{transform:translateY(-8px)translateZ(4px)}}.section-title{font-family:var(--font-family-display);transform-style:preserve-3d;letter-spacing:-.008em;word-spacing:.04em;color:var(--ink);justify-content:flex-start;align-items:center;gap:16px;margin-bottom:20px;font-size:clamp(36px,4vw,48px);font-weight:600;display:flex;position:relative}.section-title i{color:var(--accent);font-size:.8em}.title-3d:after{content:"";background:linear-gradient(90deg, var(--accent), var(--accent));width:100px;height:4px;box-shadow:0 2px 8px rgba(var(--accent-strong-rgb), .3);border-radius:4px;position:absolute;bottom:-16px;left:50%;transform:translate(-50%)translateZ(5px)}.section-subtitle{text-align:left;color:var(--ink-dim);font-size:18px;font-weight:var(--font-weight-normal);letter-spacing:-.01em;max-width:600px;margin:0;line-height:1.6}.section-header{text-align:left;margin-bottom:64px;padding:40px 0}section[id]{scroll-margin-top:calc(var(--nav-h) + 40px)}.about-content{max-width:860px;transform-style:preserve-3d}.about-lead{font-family:var(--font-family-display);font-size:clamp(22px,2.8vw,32px);font-weight:var(--font-weight-medium);letter-spacing:-.015em;color:var(--ink);margin:0 0 28px;line-height:1.4}.about-rotating-wrapper{min-height:36px;font-size:clamp(16px,3vw,22px);font-weight:var(--font-weight-semibold);color:var(--accent);justify-content:flex-start;display:flex}.about-rotating-text{font-size:inherit;font-weight:inherit;color:inherit}.about-header{box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border:none}.about-bio{color:#ffffffe0;font-size:17px;line-height:1.75;font-family:var(--font-family-display);font-weight:var(--font-weight-normal);letter-spacing:-.01em;margin-top:0;margin-bottom:16px}.about-bio:last-child{margin-bottom:0}.services-list{border-top:1px solid var(--hairline);max-width:1100px}.services-row{border-bottom:1px solid var(--hairline);grid-template-columns:64px 1fr minmax(200px,260px);align-items:start;gap:clamp(20px,4vw,56px);padding:clamp(36px,5vw,56px) 0;display:grid}.services-row-index{font-family:var(--font-family-display);font-size:15px;font-weight:var(--font-weight-medium);color:var(--accent);font-variant-numeric:tabular-nums;padding-top:10px}.services-row-title{font-family:var(--font-family-display);font-size:clamp(26px,3.2vw,38px);font-weight:var(--font-weight-semibold);letter-spacing:-.01em;color:var(--ink);transition:color .3s var(--ease-standard);margin:0 0 14px}.services-row:hover .services-row-title{color:var(--accent)}.services-row-desc{color:var(--ink-dim);max-width:54ch;margin:0;font-size:16px;line-height:1.7}.services-row-features{flex-direction:column;gap:12px;margin:0;padding:10px 0 0;list-style:none;display:flex}.services-row-features li{color:var(--ink-dim);align-items:center;gap:12px;font-size:14px;display:flex}.services-row-features li:before{content:"";background:var(--accent);border-radius:50%;flex-shrink:0;width:4px;height:4px}@media (width<=768px){.services-row{grid-template-columns:1fr;gap:14px;padding:32px 0}.services-row-index{padding-top:0}.services-row-features{padding-top:4px}}.skills-list{border-top:1px solid var(--hairline);max-width:1100px}.skills-row{border-bottom:1px solid var(--hairline);grid-template-columns:minmax(220px,320px) 1fr;align-items:start;gap:clamp(24px,5vw,72px);padding:clamp(28px,4vw,44px) 0;display:grid}.skills-row-title{font-family:var(--font-family-display);font-size:clamp(20px,2.2vw,24px);font-weight:var(--font-weight-semibold);letter-spacing:-.01em;color:var(--ink);transition:color .3s var(--ease-standard);margin:0 0 8px}.skills-row:hover .skills-row-title{color:var(--accent)}.skills-row-desc{color:var(--ink-dim);margin:0;font-size:14px;line-height:1.65}@media (width<=768px){.skills-row{grid-template-columns:1fr;gap:16px;padding:28px 0}}.skills-tech-list{flex-wrap:wrap;align-items:baseline;gap:10px 14px;margin:0;padding:0;list-style:none;display:flex}.skills-tech-list li{font-family:var(--font-family-display);font-size:clamp(19px,2.2vw,26px);font-weight:var(--font-weight-medium);letter-spacing:-.01em;color:#f4f1eede;cursor:default;transition:color .3s}.skills-tech-list li:hover{color:#fff}.skills-tech-list li:not(:last-child):after{content:"·";color:var(--accent);margin-left:14px}.section-marquee{z-index:2;-webkit-user-select:none;user-select:none;width:100%;padding:40px 0;position:relative}.section-marquee-text{pointer-events:none}.marquee-parallax{contain:layout style paint;position:relative;overflow:hidden}.marquee-parallax+.marquee-parallax{margin-top:18px}.marquee-scroller{white-space:nowrap;will-change:transform;backface-visibility:hidden;display:flex}.marquee-velocity-text{font-family:var(--font-family-display);text-transform:uppercase;letter-spacing:.02em;color:#f4f1ee6b;flex-shrink:0;font-size:clamp(2.4rem,5vw,4.8rem);font-weight:700;line-height:1.1}.section-marquee-logos{color:#f4f1ee80;padding:8px 0}.section-marquee-logos .logoloop__list,.section-marquee-logos .logoloop__item{margin-block:0;padding-inline:0;list-style:none}.section-marquee-logos .logoloop__node{transition:color .3s}.section-marquee-logos .logoloop__item:hover .logoloop__node{color:var(--accent)}@media (width<=768px){.section-marquee{padding:24px 0}.marquee-velocity-text{font-size:2rem}}.icon-spin{animation:1s linear infinite iconSpin}@keyframes iconSpin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.projects-header{box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;background:0 0;border:none}.projects-showcase{max-width:1100px;margin:0 auto 48px}.projects-card-spotlight{width:100%}.projects-card{grid-template-columns:1fr 1fr;gap:0;min-height:420px;display:grid}.projects-card-info{flex-direction:column;justify-content:center;padding:48px;display:flex}.projects-card-badge{background:rgba(var(--accent-strong-rgb), .15);border:1px solid rgba(var(--accent-strong-rgb), .25);color:var(--accent);font-size:13px;font-weight:var(--font-weight-medium);border-radius:20px;align-items:center;gap:8px;width:fit-content;margin-bottom:20px;padding:6px 14px;display:inline-flex}.projects-card-badge i{font-size:12px}.projects-card-title{font-size:clamp(26px,3vw,34px);font-weight:var(--font-weight-bold);color:#fffffff2;letter-spacing:-.02em;margin-bottom:16px;line-height:1.2}.projects-card-desc{color:var(--color-slate-500);margin-bottom:24px;font-size:15px;line-height:1.7}.projects-tech-chips{flex-wrap:wrap;gap:10px;margin-bottom:28px;display:flex}.projects-tech-chips .skill-chip{padding:8px 16px;font-size:13px}.projects-github-link{color:#ffffffd9;font-size:15px;font-weight:var(--font-weight-medium);background:#ffffff0f;border:1px solid #ffffff1f;border-radius:12px;align-items:center;gap:10px;width:fit-content;padding:12px 24px;text-decoration:none;transition:all .3s cubic-bezier(.23,1,.32,1);display:inline-flex}.projects-github-link:hover{background:rgba(var(--accent-strong-rgb), .15);border-color:rgba(var(--accent-strong-rgb), .35);color:var(--accent);transform:translate(4px)}.projects-github-link svg:first-child{flex-shrink:0}.projects-github-arrow{font-size:12px;transition:transform .3s}.projects-github-link:hover .projects-github-arrow{transform:translate(4px)}.projects-card-image{background:#ffffff05;border-radius:0 16px 16px 0;justify-content:center;align-items:center;padding:32px;display:flex;position:relative;overflow:hidden}.projects-card-image img{border:1px solid #ffffff14;border-radius:12px;width:100%;height:auto;box-shadow:0 20px 60px #0006}.projects-gradcam-row{grid-template-columns:minmax(280px,1fr) 1.5fr;align-items:center;gap:clamp(32px,5vw,64px);max-width:1100px;margin:48px auto 0;display:grid}.projects-feature-list{border-top:1px solid var(--hairline)}.projects-feature{border-bottom:1px solid var(--hairline);padding:22px 0}.projects-feature h4{font-family:var(--font-family-display);font-size:19px;font-weight:var(--font-weight-semibold);color:var(--ink);margin-bottom:6px}.projects-feature p{color:var(--ink-dim);margin:0;font-size:14px;line-height:1.6}.projects-gradcam{border:1px solid var(--hairline);background:var(--surface-1);border-radius:16px;margin:0;padding:14px}.projects-gradcam img{border-radius:8px;width:100%;height:auto;display:block}.projects-gradcam-caption{color:var(--ink-dim);align-items:center;gap:10px;padding:14px 6px 2px;font-size:13px;display:flex}.projects-gradcam-caption svg{color:var(--accent);flex-shrink:0}.projects-more{max-width:1100px;margin:72px auto 0}.projects-more-kicker{font-size:12px;font-weight:var(--font-weight-medium);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);margin:0 0 12px}.projects-more-row{border-top:1px solid var(--hairline);grid-template-columns:130px 1fr minmax(180px,220px);align-items:start;gap:clamp(20px,4vw,56px);padding:clamp(28px,4vw,40px) 0;display:grid}.projects-more-row:last-child{border-bottom:1px solid var(--hairline)}.projects-more-badge{color:var(--accent);font-size:13px;font-weight:var(--font-weight-medium);align-items:center;gap:8px;padding-top:6px;display:inline-flex}.projects-more-badge svg{flex-shrink:0}.projects-more-title{font-family:var(--font-family-display);font-size:clamp(22px,2.4vw,28px);font-weight:var(--font-weight-semibold);color:var(--ink);letter-spacing:-.01em;margin:0 0 10px}.projects-more-desc{color:var(--ink-dim);max-width:58ch;margin:0;font-size:14px;line-height:1.7}.projects-more-side{flex-direction:column;gap:18px;padding-top:6px;display:flex}.projects-more-tech{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.projects-more-tech li{color:var(--ink-dim);align-items:center;gap:12px;font-size:14px;display:flex}.projects-more-tech li:before{content:"";background:var(--accent);border-radius:50%;flex-shrink:0;width:4px;height:4px}.projects-private-note{color:var(--ink-faint);align-items:center;gap:8px;margin-top:auto;font-size:13px;display:inline-flex}.projects-private-note svg{flex-shrink:0}@media (width<=768px){.projects-card{grid-template-columns:1fr;min-height:auto}.projects-card-info{padding:28px}.projects-card-image{border-radius:0 0 16px 16px;padding:20px}.projects-gradcam-row{grid-template-columns:1fr;gap:32px}.projects-gradcam-caption{font-size:12px}.projects-more{margin-top:48px}.projects-more-row{grid-template-columns:1fr;gap:14px;padding:28px 0}.projects-more-badge,.projects-more-side{padding-top:0}}.contact-grid{grid-template-columns:1fr 1.15fr;align-items:start;gap:60px;margin-top:60px;display:grid}.contact-info-col{padding-top:20px}.contact-info-title{color:#ffffffe6;font-size:28px;font-weight:var(--font-weight-semibold);letter-spacing:-.01em;margin-bottom:16px}.contact-description{color:#f4f1eec7;margin-bottom:40px;font-size:16px;line-height:1.7}.contact-details{border-top:1px solid var(--hairline);flex-direction:column;display:flex}.contact-line{border-bottom:1px solid var(--hairline);flex-direction:column;gap:4px;padding:20px 0;display:flex}.contact-line-label{font-size:12px;font-weight:var(--font-weight-medium);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-dim)}.contact-line-value{font-family:var(--font-family-display);font-size:clamp(19px,2.2vw,26px);font-weight:var(--font-weight-medium);letter-spacing:-.01em;color:var(--ink);width:fit-content;transition:color .25s var(--ease-standard);text-decoration:none}a.contact-line-value:hover{color:var(--accent)}.contact-form-spotlight{background:var(--surface-1)}.contact-form{padding:40px}.form-row{grid-template-columns:1fr 1fr;gap:20px;margin-bottom:20px;display:grid}.form-group{margin-bottom:20px}.form-group label{font-weight:var(--font-weight-medium);color:#ffffffe6;margin-bottom:8px;font-size:14px;display:block}.form-input-3d{width:100%;color:var(--ink);transform-style:preserve-3d;background:#0000003d;border:1px solid #f4f1ee2e;border-radius:12px;padding:14px 18px;font-family:inherit;font-size:16px;transition:all .4s cubic-bezier(.23,1,.32,1)}.form-input-3d:focus{border-color:var(--accent);box-shadow:0 10px 30px rgba(var(--accent-strong-rgb), .15);background:#ffffff1a;outline:none;transform:translateY(-2px)translateZ(8px)}.form-input-3d::placeholder{color:#ffffff4d}textarea.form-input-3d{resize:vertical;min-height:120px}.form-submit{width:100%;margin-top:12px}.contact-submit{background:var(--accent);-webkit-backdrop-filter:blur(12px);color:#fff;letter-spacing:.01em;cursor:pointer;border:1px solid #ffffff26;border-radius:14px;justify-content:center;align-items:center;gap:12px;width:100%;margin-top:8px;padding:16px 32px;font-family:inherit;font-size:16px;font-weight:600;transition:all .35s cubic-bezier(.23,1,.32,1);display:flex;position:relative;overflow:hidden}.contact-submit:hover{background:var(--accent-strong);box-shadow:0 12px 32px rgba(var(--accent-rgb), .25), 0 4px 16px rgba(var(--accent-rgb), .2);border-color:#ffffff40;transform:translateY(-2px)}.contact-submit:active{box-shadow:0 4px 12px rgba(var(--accent-strong-rgb), .25);transform:translateY(0)}.contact-submit:disabled{opacity:.6;cursor:not-allowed;box-shadow:none;transform:none}.contact-submit i{font-size:14px;transition:transform .3s cubic-bezier(.23,1,.32,1)}.contact-submit:hover i{transform:translate(4px)}.form-privacy-note{color:var(--ink-faint);text-align:center;margin-top:14px;font-size:13px;line-height:1.5}.form-privacy-note a{color:var(--ink-dim);text-underline-offset:3px;text-decoration:underline;transition:color .3s}.form-privacy-note a:hover{color:var(--accent)}@media (width<=1024px){.contact-grid{gap:32px}}@media (width<=968px){.contact-grid{grid-template-columns:1fr;gap:40px;margin-top:24px}.contact-info-col{padding-top:0}}@media (width<=768px){.contact-form{padding:28px}}@media (width<=480px){.contact-form{padding:20px}.contact-info-title{font-size:24px}.contact-description{font-size:15px}}.footer-reveal{background:linear-gradient(#0000 0%,#0a0a0e 50%);justify-content:center;align-items:center;padding:80px 40px;display:flex;position:relative;overflow:clip}.footer-reveal-inner{flex-direction:column;gap:0;width:100%;max-width:1400px;display:flex}.footer-top-row{border-bottom:1px solid rgba(var(--accent-rgb), .15);justify-content:space-between;align-items:center;padding-bottom:24px;display:flex}.footer-social-links{gap:20px;display:flex}.footer-social-link{color:#fff6;align-items:center;font-size:18px;text-decoration:none;transition:color .3s;display:flex}.footer-social-link:hover{color:var(--accent)}.footer-legal{align-items:center;gap:20px;display:flex}.footer-privacy-link{color:#fff6;font-size:14px;text-decoration:none;transition:color .3s}.footer-privacy-link:hover{color:var(--accent)}.footer-copyright{color:#ffffff4d;font-size:14px}.footer-brand-text{font-family:var(--font-family-display);color:var(--ink);letter-spacing:-.01em;word-spacing:.03em;white-space:nowrap;text-align:center;cursor:pointer;box-sizing:border-box;width:100vw;margin-left:calc(50% - 50vw);padding:40px 0;font-size:clamp(32px,9.5vw,180px);font-weight:700;line-height:.85;transition:all .4s cubic-bezier(.16,1,.3,1)}.footer-brand-text:hover{-webkit-text-stroke:2px var(--accent);color:#0000}.footer-bottom-row{border-top:1px solid rgba(var(--accent-rgb), .15);justify-content:space-between;align-items:center;padding-top:24px;display:flex}.footer-bottom-email{color:#fff6;font-size:14px;text-decoration:none;transition:color .3s}.footer-bottom-email:hover{color:var(--accent)}.footer-bottom-role{color:#ffffff4d;font-size:14px}@media (width<=768px){.footer-reveal{padding:48px 20px}.footer-brand-text{font-size:clamp(48px,22vw,160px)}.footer-top-row,.footer-bottom-row{text-align:center;flex-direction:column;gap:12px}}.hamburger{cursor:pointer;background:#ffffff1a;border:1px solid #ffffff26;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:5px;min-width:44px;min-height:44px;padding:10px;transition:all .3s;display:none}.hamburger:hover{background:#ffffff2e}.hamburger span{background:#fffc;border-radius:2px;width:22px;height:2px;transition:all .3s cubic-bezier(.23,1,.32,1)}.hamburger.active span:first-child{transform:translateY(7px)rotate(45deg)}.hamburger.active span:nth-child(2){opacity:0}.hamburger.active span:nth-child(3){transform:translateY(-7px)rotate(-45deg)}@keyframes navLinkIn{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@media (width<=768px){.hamburger{display:flex}.nav-menu{z-index:-1;padding:calc(var(--nav-h) + 48px) 28px 48px;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .35s var(--ease-standard), visibility 0s linear .35s;background:#0c090b;flex-direction:column;justify-content:center;align-items:flex-start;gap:4px;display:flex;position:fixed;inset:0}.nav-menu.active{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .35s var(--ease-standard), visibility 0s}.nav-menu .nav-item{border-bottom:1px solid var(--hairline);width:100%;list-style:none}.nav-menu .nav-link{width:100%;font-family:var(--font-family-display);letter-spacing:-.01em;color:var(--ink-dim);background:0 0;border-radius:0;padding:18px 4px;font-size:clamp(26px,7.5vw,34px);font-weight:600;display:block}.nav-menu .nav-link:hover,.nav-menu .nav-link.active{color:var(--ink);background:0 0}.nav-menu.active .nav-link{animation:navLinkIn .45s var(--ease-standard) both}.nav-menu.active .nav-item:first-child .nav-link{animation-delay:50ms}.nav-menu.active .nav-item:nth-child(2) .nav-link{animation-delay:.1s}.nav-menu.active .nav-item:nth-child(3) .nav-link{animation-delay:.15s}.nav-menu.active .nav-item:nth-child(4) .nav-link{animation-delay:.2s}.nav-menu.active .nav-item:nth-child(5) .nav-link{animation-delay:.25s}.nav-menu.active .nav-item:nth-child(6) .nav-link{animation-delay:.3s}.hero-content{padding:40px 20px}.hero-cta{flex-direction:column;align-items:center;gap:16px}.section-3d{transform-style:flat;padding:72px 0}.perspective-container{transform-style:flat;perspective:none}.section-header{margin-bottom:60px;padding:30px 20px}.form-row{grid-template-columns:1fr}.footer-content{text-align:center;flex-direction:column;gap:30px}.glass-card-3d:hover{transform:translateY(-6px)translateZ(15px)}.hover-lift:hover{transform:translateY(-6px)translateZ(16px)rotateX(2deg)}.hover-rotate:hover,.hover-rotate-y:hover{transform:translateY(-6px)translateZ(20px)rotateY(4deg)}}@media (width<=480px){.hero-content,.section-header,.glass-card-3d{padding:20px}.hero-title{font-size:36px}.section-title{font-size:28px}.nav-container{padding:4px 16px}.footer-brand-text{white-space:normal;word-break:break-word;font-size:clamp(28px,16vw,80px)}.floating-element,.floating-icon,.floating-text{animation:none}}.glass-card-3d,.glass-button-3d,.hover-lift,.hover-rotate,.hover-rotate-y,.tilt-card{will-change:transform;backface-visibility:hidden;transform:translateZ(0)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.floating-element,.floating-icon,.floating-text{animation:none}.skill-chip{transition:none}}@media (hover:none) and (pointer:coarse){.glass-card-3d:hover,.hover-lift:hover,.hover-rotate:hover,.hover-rotate-y:hover{transform:none}.contact-submit:hover{box-shadow:none;transform:none}.footer-brand-text:hover{-webkit-text-stroke:unset;color:#f5f5f0}}section[id]{opacity:0;visibility:hidden;transition:opacity .42s var(--ease-standard), transform .42s var(--ease-standard), visibility 0s linear .42s;transform:translateY(40px)}section[id].is-visible{opacity:1;visibility:visible;transition:opacity .42s var(--ease-standard), transform .42s var(--ease-standard), visibility 0s;transform:translateY(0)}@media (prefers-reduced-motion:reduce){section[id]{opacity:1!important;visibility:visible!important;transition:none!important;transform:none!important}}@keyframes slideInUp3D{0%{opacity:0;transform:translateY(60px)translateZ(-30px)rotateX(15deg)}to{opacity:1;transform:translateY(0)translateZ(0)rotateX(0)}}@keyframes heroEntrance{0%{opacity:0;transform:translateY(40px)translateZ(-40px)rotateX(20deg)scale(.95)}to{opacity:1;transform:translateY(0)translateZ(0)rotateX(0)scale(1)}}@keyframes successPulse{0%{transform:scale(1)}50%{background-color:var(--accent);transform:scale(1.05)translateZ(20px)}to{transform:scale(1)translateZ(0)}}@keyframes fadeInComplete{0%{opacity:.8}to{opacity:1}}.animate-in{opacity:1;transform:translateY(0)translateZ(0)}body:not(.loaded) .glass-card-3d{opacity:0;transform:translateY(40px)translateZ(-30px)}body.loaded .glass-card-3d{opacity:1;transition:all 1s cubic-bezier(.23,1,.32,1);transform:translateY(0)translateZ(0)}.form-input-3d.error{background:#c0152f1a;border-color:#c0152f;box-shadow:0 0 0 3px #c0152f1a}.field-error{color:#c0152f;margin-top:6px;font-size:12px;animation:.3s ease-out slideInUp3D;display:block}.form-status{text-align:center;opacity:0;border-radius:12px;margin-top:24px;padding:16px 20px;font-weight:500;transition:all .4s cubic-bezier(.23,1,.32,1);transform:translateY(-15px)}.form-status.success{background:rgba(var(--accent-strong-rgb), .1);color:var(--accent);border:1px solid rgba(var(--accent-strong-rgb), .3)}.form-status.error{color:#c0152f;background:#c0152f1a;border:1px solid #c0152f4d}.floating-icon i{transition:all .3s}
