:root{--color-canvas:#000;--color-surface-soft:#0d0d0d;--color-surface-card:#1a1a1a;--color-surface-elevated:#262626;--color-carbon-gray:#2b2b2b;--color-primary:#fff;--color-on-dark:#fff;--color-on-primary:#000;--color-body:#bbb;--color-body-strong:#e6e6e6;--color-muted:#7e7e7e;--color-hairline:#3c3c3c;--color-hairline-strong:#262626;--color-m-blue-light:#0066b1;--color-m-blue-dark:#1c69d4;--color-m-red:#e22718;--color-electric-blue:#0653b6;--color-warning:#f4b400;--color-success:#0fa336;--font-family:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--spacing-xxs:4px;--spacing-xs:8px;--spacing-sm:12px;--spacing-md:16px;--spacing-lg:24px;--spacing-xl:40px;--spacing-xxl:64px;--spacing-section:96px;--hero-overlay-bg:linear-gradient(to right, #000000d9 30%, #0003 100%);--graphic-overlay-bg:linear-gradient(to top, #000000d9 40%, #0003 100%);--theme-transition:background-color .3s ease, color .3s ease, border-color .3s ease;--radius-xs:6px;--radius-sm:10px;--radius-md:14px;--radius-lg:18px;--radius-pill:999px;--shadow-sm:0 1px 2px #0006;--shadow-md:0 6px 18px #00000073;--shadow-lg:0 18px 44px #0000008c;--shadow-glow:0 0 0 1px #1c69d459, 0 18px 44px #0000008c;--card-surface:linear-gradient(158deg, #17171a 0%, #0f0f11 58%, #0c0c0e 100%);--card-highlight:inset 0 1px 0 #ffffff0f;--card-border:#ffffff17;--card-border-hover:#ffffff38;--ease-out-expo:cubic-bezier(.16, 1, .3, 1)}:root[data-theme=light]{--color-canvas:#fff;--color-surface-soft:#f9fafb;--color-surface-card:#f3f4f6;--color-surface-elevated:#e5e7eb;--color-carbon-gray:#f3f4f6;--color-primary:#000;--color-on-dark:#111827;--color-on-primary:#fff;--color-body:#4b5563;--color-body-strong:#111827;--color-muted:#9ca3af;--color-hairline:#e5e7eb;--color-hairline-strong:#d1d5db;--hero-overlay-bg:linear-gradient(to right, #fffc 25%, #fff3 100%);--graphic-overlay-bg:linear-gradient(to top, #fffffff2 40%, #ffffff4d 100%);--shadow-sm:0 1px 2px #1018280f;--shadow-md:0 6px 18px #10182817;--shadow-lg:0 18px 44px #10182824;--shadow-glow:0 0 0 1px #1c69d447, 0 18px 44px #10182824;--card-surface:linear-gradient(158deg, #fff 0%, #fbfbfd 60%, #f6f7f9 100%);--card-highlight:inset 0 1px 0 #ffffffe6;--card-border:#1018281a;--card-border-hover:#10182847}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--color-canvas);color:var(--color-body);font-family:var(--font-family);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:var(--theme-transition);font-weight:300;line-height:1.5;overflow-x:hidden}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--color-canvas)}::-webkit-scrollbar-thumb{background:var(--color-surface-elevated);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--color-hairline)}#root{flex-direction:column;width:100%;min-height:100vh;display:flex}.main-content{flex-direction:column;flex-grow:1;width:100%;display:flex}.display-xl{font-family:var(--font-family);letter-spacing:-.5px;text-transform:uppercase;color:var(--color-on-dark);font-size:80px;font-weight:700;line-height:1}.display-lg{font-family:var(--font-family);letter-spacing:-.5px;text-transform:uppercase;color:var(--color-on-dark);font-size:56px;font-weight:700;line-height:1.05}.display-md{font-family:var(--font-family);letter-spacing:-.5px;text-transform:uppercase;color:var(--color-on-dark);font-size:40px;font-weight:700;line-height:1.1}.display-sm{font-family:var(--font-family);letter-spacing:-.5px;text-transform:uppercase;color:var(--color-on-dark);font-size:32px;font-weight:700;line-height:1.15}.title-lg{font-family:var(--font-family);letter-spacing:0;color:var(--color-on-dark);font-size:24px;font-weight:700;line-height:1.3}.title-md{font-family:var(--font-family);letter-spacing:0;color:var(--color-on-dark);font-size:20px;font-weight:400;line-height:1.4}.title-sm{font-family:var(--font-family);letter-spacing:0;color:var(--color-on-dark);font-size:18px;font-weight:400;line-height:1.4}.label-uppercase{font-family:var(--font-family);letter-spacing:1.5px;text-transform:uppercase;color:var(--color-on-dark);font-size:14px;font-weight:700;line-height:1.3}.body-md{font-family:var(--font-family);letter-spacing:0;color:var(--color-body);font-size:16px;font-weight:300;line-height:1.5}.body-sm{font-family:var(--font-family);letter-spacing:0;color:var(--color-body);font-size:14px;font-weight:300;line-height:1.5}.caption{font-family:var(--font-family);letter-spacing:.5px;color:var(--color-muted);font-size:12px;font-weight:400;line-height:1.4}.button-primary{background-color:var(--color-canvas);color:var(--color-on-dark);border:1px solid var(--color-on-dark);font-family:var(--font-family);text-transform:uppercase;letter-spacing:1.5px;cursor:pointer;border-radius:var(--radius-sm);justify-content:center;align-items:center;height:48px;padding:0 32px;font-size:14px;font-weight:700;text-decoration:none;transition:background-color .2s,color .2s;display:inline-flex}.button-primary:hover{background-color:var(--color-on-dark);color:var(--color-on-primary)}.button-primary-outline{color:var(--color-on-dark);border:1px solid var(--color-on-dark);font-family:var(--font-family);text-transform:uppercase;letter-spacing:1.5px;cursor:pointer;border-radius:var(--radius-sm);background-color:#0000;justify-content:center;align-items:center;height:48px;padding:0 32px;font-size:14px;font-weight:700;text-decoration:none;transition:background-color .2s,color .2s;display:inline-flex}.button-primary-outline:hover{background-color:var(--color-on-dark);color:var(--color-on-primary)}.button-icon{background-color:var(--color-surface-card);width:48px;height:48px;color:var(--color-on-dark);cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;transition:background-color .2s;display:inline-flex}.button-icon:hover{background-color:var(--color-surface-elevated)}.text-link{color:var(--color-on-dark);text-transform:uppercase;letter-spacing:1.5px;cursor:pointer;align-items:center;font-size:14px;font-weight:700;text-decoration:none;transition:opacity .2s;display:inline-flex}.text-link:hover{opacity:.8}.text-link svg{margin-left:4px;transition:transform .2s}.text-link:hover svg{transform:translate(4px)}.container{width:100%;max-width:1440px;padding-left:var(--spacing-lg);padding-right:var(--spacing-lg);margin:0 auto}.section-spacing{padding-top:var(--spacing-section);padding-bottom:var(--spacing-section)}.m-stripe-divider{width:100%;height:4px;display:flex}.m-stripe-blue-light{background-color:var(--color-m-blue-light);width:33.33%}.m-stripe-blue-dark{background-color:var(--color-m-blue-dark);width:33.33%}.m-stripe-red{background-color:var(--color-m-red);width:33.33%}.feature-photo-card,.spec-cell,.skill-card,.timeline-card,.social-card,.admin-dashboard-card,.project-skeleton,.state-panel{background:var(--card-surface);border:1px solid var(--card-border);border-radius:var(--radius-md);box-shadow:var(--card-highlight), var(--shadow-sm);transition:transform .45s var(--ease-out-expo), box-shadow .45s var(--ease-out-expo), border-color .35s ease;position:relative;overflow:hidden}.feature-photo-card:after,.spec-cell:after,.skill-card:after,.timeline-card:after,.social-card:after{content:"";background:linear-gradient(to right, var(--color-m-blue-light), var(--color-m-blue-dark) 50%, var(--color-m-red));transform-origin:0;height:2px;transition:transform .55s var(--ease-out-expo);z-index:4;position:absolute;top:0;left:0;right:0;transform:scaleX(0)}.feature-photo-card:hover:after,.spec-cell:hover:after,.skill-card:hover:after,.timeline-card:hover:after,.social-card:hover:after{transform:scaleX(1)}.feature-photo-card:hover,.spec-cell:hover,.skill-card:hover,.timeline-card:hover,.social-card:hover{border-color:var(--card-border-hover);box-shadow:var(--card-highlight), var(--shadow-lg);transform:translateY(-6px)}.model-card{background:var(--card-surface);border-radius:var(--radius-md);flex-direction:column;display:flex;overflow:hidden}.spec-cell{padding:var(--spacing-lg);gap:var(--spacing-xxs);flex-direction:column;display:flex}.text-input{background-color:var(--color-surface-card);color:var(--color-on-dark);font-family:var(--font-family);border:1px solid var(--color-hairline);border-radius:var(--radius-sm);width:100%;height:48px;padding:12px 16px;font-size:16px;font-weight:300;transition:border-color .2s}.text-input:focus{border-color:var(--color-on-dark);outline:none}@media (width<=1024px){.display-xl{font-size:56px}.display-lg{font-size:40px}.display-md{font-size:32px}.display-sm{font-size:24px}}@media (width<=768px){.display-xl{font-size:44px}.display-lg{font-size:32px}.display-md{font-size:24px}.display-sm{font-size:20px}.section-spacing{padding-top:var(--spacing-xl);padding-bottom:var(--spacing-xl)}}.theme-anim,.theme-anim *,.theme-anim :before,.theme-anim :after{transition:background-color .4s cubic-bezier(.4,0,.2,1),color .4s cubic-bezier(.4,0,.2,1),border-color .4s cubic-bezier(.4,0,.2,1),fill .4s cubic-bezier(.4,0,.2,1)!important}body{transition:background-color .4s cubic-bezier(.4,0,.2,1),color .4s cubic-bezier(.4,0,.2,1)}@keyframes icon-charge-mount{0%{opacity:0;transform:rotate(-180deg)scale(.4)}60%{transform:rotate(15deg)scale(1.2)}to{opacity:1;transform:rotate(0)scale(1)}}.theme-toggle-btn svg,.theme-toggle-btn-mobile svg{animation:.5s cubic-bezier(.34,1.56,.64,1) both icon-charge-mount}@keyframes theme-charge-pulse{0%{transform:scale(1);box-shadow:0 0 #1c69d466,0 0 #e2271866}50%{transform:scale(.9);box-shadow:0 0 0 8px #1c69d400,0 0 0 12px #e2271800}to{transform:scale(1);box-shadow:0 0 #1c69d400,0 0 #e2271800}}.theme-toggle-btn:active{animation:.4s cubic-bezier(.16,1,.3,1) theme-charge-pulse}.theme-toggle-btn:hover{background-color:var(--color-surface-soft)!important}.theme-toggle-btn-mobile:hover{background-color:var(--color-surface-card)!important}.nav-desktop-links{align-items:center;gap:32px;height:100%;display:none}@media (width>=768px){.nav-desktop-links{display:flex}}.nav-menu-button{cursor:pointer;z-index:1001;background:0 0;border:none;padding:8px;display:block}@media (width>=768px){.nav-menu-button{display:none}}.home-hero-grid{z-index:2;grid-template-columns:1.25fr .75fr;align-items:center;gap:64px;width:100%;display:grid;position:relative}.hero-dot-grid{background-image:radial-gradient(var(--color-hairline-strong) 1.5px, transparent 1.5px);opacity:.45;z-index:1;background-size:24px 24px;position:absolute;inset:0}.home-hero-photo-wrapper{z-index:2;justify-content:center;justify-self:center;align-items:center;width:100%;max-width:420px;animation:6s ease-in-out infinite floatImage;display:flex;position:relative}@keyframes floatImage{0%{transform:translateY(0)}50%{transform:translateY(-12px)}to{transform:translateY(0)}}.home-hero-photo-frame{aspect-ratio:4/5;background-color:var(--color-surface-soft);border:1px solid var(--color-hairline);width:100%;box-shadow:12px 12px 0px var(--color-hairline-strong);z-index:2;transition:box-shadow .3s,border-color .3s;position:relative;overflow:hidden}.home-hero-photo-frame:hover{box-shadow:8px 8px 0px var(--color-m-blue-dark);border-color:var(--color-on-dark)}.home-hero-photo{object-fit:cover;filter:grayscale(.2)contrast(1.05);width:100%;height:100%;transition:filter .3s}.home-hero-photo-frame:hover .home-hero-photo{filter:grayscale(0)contrast()}.frame-corner-tl{border-top:2px solid var(--color-m-red);border-left:2px solid var(--color-m-red);z-index:3;width:16px;height:16px;position:absolute;top:12px;left:12px}.frame-corner-br{border-bottom:2px solid var(--color-m-blue-light);border-right:2px solid var(--color-m-blue-light);z-index:3;width:16px;height:16px;position:absolute;bottom:12px;right:12px}.photo-accent-block{border-top:2px dashed var(--color-hairline-strong);border-left:2px dashed var(--color-hairline-strong);opacity:.7;z-index:1;width:80px;height:80px;position:absolute;top:-16px;left:-16px}@media (width<=1024px){.home-hero-grid{grid-template-columns:1fr;gap:48px}.home-hero-photo-wrapper{max-width:320px;margin-top:24px}}.home-strip-grid{text-align:center;grid-template-columns:repeat(4,1fr);gap:24px;display:grid}.home-strip-cell{border-right:1px solid var(--color-hairline-strong);flex-direction:column;gap:4px;display:flex}.home-strip-cell:last-child{border-right:none}@media (width<=768px){.home-strip-grid{grid-template-columns:1fr;gap:16px}.home-strip-cell{border-right:none;border-bottom:1px solid var(--color-hairline-strong);padding-bottom:16px}.home-strip-cell:last-child{border-bottom:none;padding-bottom:0}}.about-grid{grid-template-columns:1.2fr 1fr;gap:64px;display:grid}@media (width<=1024px){.about-grid{grid-template-columns:1fr;gap:40px}}.about-spec-grid{grid-template-columns:repeat(2,1fr);gap:16px;display:grid}@media (width<=480px){.about-spec-grid{grid-template-columns:1fr}}.skills-grid{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:24px;display:grid}@media (width<=360px){.skills-grid{grid-template-columns:1fr}}.skill-icon-chip{border-radius:var(--radius-sm);border:1px solid var(--card-border);width:42px;height:42px;transition:transform .4s var(--ease-out-expo), background-color .3s ease;background:#ffffff0d;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}:root[data-theme=light] .skill-icon-chip{background:#1018280a}.skill-card:hover .skill-icon-chip{transform:translateY(-2px)scale(1.05)}.level-chip{border-radius:var(--radius-pill);font-family:var(--font-family);letter-spacing:1px;text-transform:uppercase;white-space:nowrap;border:1px solid #0000;align-items:center;gap:6px;padding:4px 10px;font-size:10px;font-weight:700;display:inline-flex}.level-chip__dot{background-color:currentColor;border-radius:50%;width:5px;height:5px}.level-chip.is-advanced{color:#5b9bff;background:#1c69d424;border-color:#1c69d452}.level-chip.is-intermediate{color:var(--color-body);border-color:var(--card-border);background:#ffffff0d}.level-chip.is-basic{color:var(--color-muted);border-color:var(--card-border);background:#ffffff08}:root[data-theme=light] .level-chip.is-advanced{color:#1c5fbf}:root[data-theme=light] .level-chip.is-intermediate,:root[data-theme=light] .level-chip.is-basic{background:#1018280a}.skill-row{border-radius:var(--radius-xs);border-bottom:1px solid var(--card-border);justify-content:space-between;align-items:center;gap:12px;margin:0 -10px;padding:10px;transition:background-color .25s;display:flex}.skill-row:last-child{border-bottom:none}.skill-row:hover{background-color:#ffffff09}:root[data-theme=light] .skill-row:hover{background-color:#10182808}.timeline-axis{background-color:var(--color-hairline-strong);z-index:1;width:2px;position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%)}.timeline-item{align-items:center;width:100%;display:flex}.content-col{flex:1;justify-content:flex-end;display:flex}.spacer-col{flex:1}.marker-col{z-index:3;justify-content:center;width:64px;display:flex}.timeline-card ul li:before{content:"";background-color:var(--color-m-blue-dark);vertical-align:.35em;border-radius:50%;width:5px;height:5px;margin-left:-1em;margin-right:calc(1em - 5px);display:inline-block}.timeline-date{border-radius:var(--radius-pill);color:#ff6b5e;font-family:var(--font-family);letter-spacing:1.2px;text-transform:uppercase;background:#e227181f;border:1px solid #e2271847;align-self:flex-start;align-items:center;gap:6px;margin-bottom:12px;padding:4px 11px;font-size:10px;font-weight:700;display:inline-flex}:root[data-theme=light] .timeline-date{color:#c31f12}.marker-border{background:var(--color-canvas);box-shadow:0 0 0 5px var(--color-canvas), var(--shadow-md);transition:box-shadow .35s ease, transform .4s var(--ease-out-expo);border-radius:50%!important}.timeline-item:hover .marker-border{transform:scale(1.12)}.marker-dot{border-radius:50%!important}.timeline-item:hover .marker-border{border-color:var(--color-m-red)!important}.timeline-item:hover .marker-dot{background-color:var(--color-m-blue-dark)!important}@media (width<=768px){.timeline-axis{left:20px!important;transform:none!important}.timeline-item{flex-direction:row!important;align-items:flex-start!important}.content-col{justify-content:flex-start!important;padding-left:24px!important}.timeline-card{width:100%!important;max-width:100%!important}.marker-col{justify-content:center!important;width:40px!important;position:absolute!important;left:-18px!important}.spacer-col{display:none!important}}.projects-grid{grid-template-columns:repeat(auto-fit,minmax(360px,1fr));gap:32px;display:grid}@media (width<=480px){.projects-grid{grid-template-columns:1fr}}.projects-tabs-container::-webkit-scrollbar{display:none}.projects-tabs-container{scrollbar-width:none;-ms-overflow-style:none}.travel-counters-grid{gap:24px;display:flex}@media (width<=600px){.travel-counters-grid{flex-direction:column;gap:12px}}.travel-map-wrapper{border:1px solid var(--color-hairline);width:100%;max-width:1000px;height:680px;margin:0 auto;overflow:hidden}@media (width<=600px){.travel-map-wrapper{height:460px}}.photography-masonry-grid{column-count:3;column-gap:24px;width:100%}@media (width<=900px){.photography-masonry-grid{column-count:2}}@media (width<=600px){.photography-masonry-grid{column-count:1}}.masonry-item:hover img{transform:scale(1.05)}.masonry-item:hover .hover-overlay{opacity:1!important}.masonry-item:hover .hover-overlay div{transform:translateY(0)!important}.contact-grid{grid-template-columns:1.1fr 1fr;gap:64px;display:grid}@media (width<=1024px){.contact-grid{grid-template-columns:1fr;gap:48px}}.social-card:hover{transform:translateY(-4px);border-color:var(--color-on-dark)!important}.clock-font{letter-spacing:1px;font-family:monospace}.custom-lightbox-overlay{-webkit-backdrop-filter:blur(10px);z-index:9999;background-color:#000000f0;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.custom-lightbox-content{background-color:var(--color-surface-soft);border:1px solid var(--color-hairline);flex-direction:column;gap:16px;width:100%;max-width:960px;padding:24px;animation:.3s cubic-bezier(.16,1,.3,1) fadeInUp;display:flex;position:relative}.custom-lightbox-main-view{justify-content:space-between;align-items:center;gap:16px;height:55vh;display:flex;position:relative}.custom-lightbox-img-wrapper{border:1px solid var(--color-hairline-strong);background-color:#000;flex:1;justify-content:center;align-items:center;height:100%;display:flex;position:relative;overflow:hidden}.custom-lightbox-img{object-fit:contain;max-width:100%;max-height:100%;animation:.25s fadeIn}.custom-lightbox-close-btn{color:#fff;cursor:pointer;z-index:10000;background:0 0;border:none;font-size:36px;line-height:1;transition:color .2s;position:absolute;top:24px;right:24px}.custom-lightbox-close-btn:hover{color:var(--color-m-red)}.custom-lightbox-nav-btn{border:1px solid var(--color-hairline-strong);color:#fff;cursor:pointer;-webkit-user-select:none;user-select:none;z-index:10;background:#0006;justify-content:center;align-items:center;width:44px;height:44px;font-size:28px;transition:all .2s;display:flex}.custom-lightbox-nav-btn:hover{background-color:var(--color-m-blue-dark);border-color:var(--color-on-dark)}@media (width<=768px){.custom-lightbox-overlay{padding:12px}.custom-lightbox-content{gap:12px;padding:16px}.custom-lightbox-main-view{height:40vh}.custom-lightbox-close-btn{font-size:28px;top:12px;right:12px}.custom-lightbox-nav-btn{border-radius:50%;width:36px;height:36px;font-size:20px;position:absolute}.custom-lightbox-nav-btn-left{left:12px}.custom-lightbox-nav-btn-right{right:12px}}footer a:hover{color:var(--color-on-dark)!important}footer button:hover,footer div a:hover{background-color:var(--color-surface-elevated)!important;border-color:var(--color-on-dark)!important}@keyframes pulse{0%{opacity:.5;transform:scale(.8)}70%{opacity:0;transform:scale(2.2)}to{opacity:0;transform:scale(.8)}}.leaflet-popup-content-wrapper,.leaflet-popup-tip{background-color:var(--color-surface-soft)!important;color:var(--color-body)!important;border:1px solid var(--color-hairline)!important;border-radius:var(--radius-sm)!important;padding:0!important;box-shadow:0 10px 30px #000c!important}.leaflet-popup-content{margin:0!important}.leaflet-container a.leaflet-popup-close-button{z-index:10;color:var(--color-on-dark)!important;padding:6px!important;font-size:16px!important}.custom-tooltip{background-color:var(--color-surface-soft)!important;color:var(--color-body)!important;border:1px solid var(--color-hairline-strong)!important;border-radius:var(--radius-xs)!important;font-family:var(--font-family)!important;padding:6px 12px!important;box-shadow:0 4px 16px #00000073!important}.custom-tooltip:before{border-top-color:var(--color-hairline-strong)!important}.popup-img-container{cursor:pointer;position:relative;overflow:hidden}.popup-img-overlay{opacity:0;background-color:#0009;justify-content:center;align-items:center;transition:opacity .2s cubic-bezier(.16,1,.3,1);display:flex;position:absolute;inset:0}.popup-img-container:hover .popup-img-overlay{opacity:1}.popup-img-overlay-text{color:#fff;letter-spacing:1.5px;border-radius:var(--radius-pill);border:1px solid #fff;padding:4px 8px;font-size:10px;font-weight:700}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.shimmer-bg{position:relative;overflow:hidden}.shimmer-bg:after{content:"";background:linear-gradient(90deg,#0000,#ffffff0d,#0000);width:100%;height:100%;animation:1.6s infinite shimmer;position:absolute;top:0;left:0}:root[data-theme=light] .shimmer-bg:after{background:linear-gradient(90deg,#0000,#00000008,#0000)}.admin-input:focus{border-color:var(--color-on-dark)!important;background-color:var(--color-surface-soft)!important}.admin-submit-btn:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000040;background-color:var(--color-on-dark)!important;color:var(--color-canvas)!important}.admin-tab-btn{font-family:var(--font-family);letter-spacing:1.5px;text-transform:uppercase;cursor:pointer;color:var(--color-muted);background:0 0;border:none;border-bottom:2px solid #0000;padding:12px 16px;font-size:13px;font-weight:700;transition:all .2s}.admin-tab-btn.active{color:var(--color-on-dark);border-bottom:2px solid var(--color-m-red)}.admin-tab-btn:hover{color:var(--color-on-dark)}.admin-dashboard-card{background-color:var(--color-surface-soft);border:1px solid var(--color-hairline);padding:24px;transition:border-color .2s}.admin-btn-delete{border:1px solid var(--color-m-red);color:var(--color-m-red);font-family:var(--font-family);letter-spacing:.5px;cursor:pointer;background-color:#0000;padding:6px 12px;font-size:11px;font-weight:700;transition:all .2s}.admin-btn-delete:hover{background-color:var(--color-m-red);color:#fff}.admin-btn-secondary{border:1px solid var(--color-muted);color:var(--color-muted);font-family:var(--font-family);letter-spacing:.5px;cursor:pointer;background-color:#0000;padding:6px 12px;font-size:11px;font-weight:700;transition:all .2s}.admin-btn-secondary:hover{border-color:var(--color-on-dark);color:var(--color-on-dark)}@keyframes fadeInUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.animate-fade-in-up{animation:.45s cubic-bezier(.16,1,.3,1) forwards fadeInUp}.telemetry-spinner{border:2px solid #7e7e7e33;border-top-color:currentColor;border-radius:50%;width:14px;height:14px;animation:.75s linear infinite spin;display:inline-block}.telemetry-spinner-large{border:3px solid var(--color-hairline);border-top-color:var(--color-m-red);border-radius:50%;width:28px;height:28px;margin-bottom:16px;animation:.8s cubic-bezier(.4,0,.2,1) infinite spin}.logout-overlay-animate{animation:.25s ease-out forwards fadeIn}.stagger-1{opacity:0;animation-delay:50ms}.stagger-2{opacity:0;animation-delay:.1s}.stagger-3{opacity:0;animation-delay:.15s}@media (prefers-reduced-motion:reduce){.animate-fade-in-up,.logout-overlay-animate,.telemetry-spinner,.telemetry-spinner-large{opacity:1!important;animation:none!important;transform:none!important}}.admin-form-group{flex-direction:column;gap:8px;margin-bottom:20px;display:flex}.admin-form-label{font-family:var(--font-family);color:var(--color-muted);letter-spacing:1.5px;text-transform:uppercase;align-items:center;gap:6px;font-size:11px;font-weight:700;display:flex}.admin-form-label:before{content:"";background-color:var(--color-m-red);width:4px;height:4px;display:inline-block}.admin-form-input,.admin-form-select,.admin-form-textarea{background-color:var(--color-surface-card);border:1px solid var(--color-hairline-strong);width:100%;color:var(--color-on-dark);font-family:var(--font-family);border-radius:var(--radius-sm);outline:none;padding:12px 14px;font-size:14px;font-weight:400;transition:all .25s cubic-bezier(.16,1,.3,1)}.admin-form-input:hover,.admin-form-select:hover,.admin-form-textarea:hover{border-color:var(--color-hairline);background-color:#ffffff03}.admin-form-input:focus,.admin-form-select:focus,.admin-form-textarea:focus{border-color:var(--color-m-blue-dark);background-color:var(--color-surface-soft);box-shadow:0 0 0 2px #1c69d426}.admin-form-submit-btn{background-color:var(--color-on-dark);border:1px solid var(--color-on-dark);width:100%;color:var(--color-canvas);font-family:var(--font-family);letter-spacing:1.5px;text-transform:uppercase;cursor:pointer;border-radius:var(--radius-sm);justify-content:center;align-items:center;padding:14px;font-size:13px;font-weight:700;transition:all .3s cubic-bezier(.16,1,.3,1);display:flex}.admin-form-submit-btn:hover{color:var(--color-on-dark);border-color:var(--color-on-dark);background-color:#0000;transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.admin-form-card{background-color:var(--color-surface-soft);border:1px solid var(--color-hairline);padding:32px;position:relative;overflow:hidden;box-shadow:0 8px 32px #00000026}.admin-form-card:after{content:"";background:linear-gradient(to right, var(--color-m-blue-light) 0%, var(--color-m-blue-dark) 50%, var(--color-m-red) 100%);height:3px;position:absolute;top:0;left:0;right:0}.field-help-text{font-family:var(--font-family);color:var(--color-muted);margin-top:4px;font-size:11px;line-height:1.4}.photo-grid-card:hover{border-color:var(--color-hairline)!important}.photo-grid-card:hover .photo-card-overlay{opacity:1!important}.photo-grid-card:hover img{transform:scale(1.04)}.photo-overlay-edit-btn:hover{background-color:#e6e6e6!important}.photo-overlay-delete-btn:hover{background-color:#b51d10!important}.photo-form-inner{padding:0 20px 20px}.page-loader{z-index:12000;background-color:var(--color-canvas);justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.page-loader__inner{flex-direction:column;gap:20px;width:100%;max-width:320px;display:flex}.page-loader__mark{flex-direction:column;gap:10px;display:flex}.page-loader__word{font-family:var(--font-family);letter-spacing:4px;color:var(--color-on-dark);font-size:28px;font-weight:700;display:block}.page-loader__stripe{transform-origin:0;width:100%;height:4px;display:flex}.page-loader__stripe span{flex:1}.page-loader__track{background-color:var(--color-hairline-strong);width:100%;height:2px;overflow:hidden}.page-loader__bar{background:linear-gradient(to right, var(--color-m-blue-light), var(--color-m-blue-dark) 55%, var(--color-m-red));height:100%}.page-loader__meta{font-family:var(--font-family);letter-spacing:2px;color:var(--color-muted);justify-content:space-between;font-size:10px;font-weight:700;display:flex}.route-progress{z-index:11000;transform-origin:0;background:linear-gradient(to right, var(--color-m-blue-light), var(--color-m-blue-dark) 55%, var(--color-m-red));height:2px;position:fixed;top:0;left:0;right:0}.scroll-progress{z-index:10999;transform-origin:0;background:linear-gradient(to right, var(--color-m-blue-light), var(--color-m-blue-dark) 55%, var(--color-m-red));height:3px;position:fixed;top:0;left:0;right:0}.smart-image{background-color:var(--color-surface-card);width:100%;line-height:0;display:block;position:relative;overflow:hidden}.smart-image__skeleton{background-color:var(--color-surface-card);z-index:1;position:absolute;inset:0}.smart-image__blur{object-fit:cover;opacity:.55;width:100%;height:100%;transform:scale(1.08)}.smart-image__img{opacity:0;width:100%;height:100%;transition:opacity .6s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1),filter .4s;display:block;transform:scale(1.015)}.smart-image.is-loaded .smart-image__img{opacity:1;transform:scale(1)}.smart-image__error{background-color:var(--color-surface-soft);border:1px dashed var(--color-hairline);min-height:140px;color:var(--color-muted);flex-direction:column;justify-content:center;align-items:center;gap:8px;line-height:1.4;display:flex;position:absolute;inset:0}.smart-image__error span{font-family:var(--font-family);letter-spacing:1px;text-transform:uppercase;font-size:11px;font-weight:700}@media (prefers-reduced-motion:reduce){.smart-image__img{transition:opacity .2s linear;transform:none}.smart-image.is-loaded .smart-image__img{transform:none}}.hero-band{width:100%;min-height:85vh;padding-top:var(--spacing-xxl);padding-bottom:var(--spacing-xxl);background-color:var(--color-canvas);align-items:center;display:flex;position:relative;overflow:hidden}.hero-band__placeholder,.hero-band__image{object-fit:cover;object-position:center top;width:100%;height:100%;position:absolute;inset:0}.hero-band__placeholder{z-index:0;background-position:top;background-size:cover;transform:scale(1.06)}.hero-band__image{z-index:1}.hero-band__overlay{background:var(--hero-overlay-bg);z-index:2;position:absolute;inset:0}.hero-band__grain{z-index:2;opacity:.5;pointer-events:none;background-image:radial-gradient(#ffffff09 1px,#0000 1px);background-size:3px 3px;position:absolute;inset:0}:root[data-theme=light] .hero-band__grain{background-image:radial-gradient(#00000008 1px,#0000 1px)}.hero-badge{font-family:var(--font-family);letter-spacing:2px;color:var(--color-m-red);background-color:#e227181a;border:1px solid #e227184d;padding:4px 10px;font-size:12px;font-weight:700;display:inline-block}.hero-scroll-hint{z-index:4;font-family:var(--font-family);letter-spacing:2px;color:var(--color-muted);flex-direction:column;align-items:center;gap:10px;font-size:9px;font-weight:700;display:flex;position:absolute;bottom:28px;right:24px}.hero-scroll-hint__line{background:linear-gradient(to bottom, var(--color-muted), transparent);width:1px;height:44px;position:relative;overflow:hidden}.hero-scroll-hint__line:after{content:"";background-color:var(--color-m-red);width:100%;height:40%;animation:2s cubic-bezier(.4,0,.2,1) infinite scroll-hint;position:absolute;top:0;left:0}@keyframes scroll-hint{0%{transform:translateY(-100%)}to{transform:translateY(250%)}}@media (width<=768px){.hero-scroll-hint{display:none}}.section-header{padding-top:var(--spacing-xl);padding-bottom:var(--spacing-lg);border-bottom:1px solid var(--color-hairline-strong)}.section-header__eyebrow{font-family:var(--font-family);letter-spacing:1.5px;color:var(--color-m-blue-dark);text-transform:uppercase;font-size:14px;font-weight:700;display:block}.section-header__title{margin-top:8px;margin-bottom:16px}.section-header__subtitle{font-family:var(--font-family);color:var(--color-body);max-width:600px;font-size:16px;font-weight:300}.filter-tabs{white-space:nowrap;scrollbar-width:none;-ms-overflow-style:none;gap:32px;padding-top:12px;padding-bottom:10px;display:flex;overflow-x:auto}.filter-tabs::-webkit-scrollbar{display:none}.filter-tab{font-family:var(--font-family);letter-spacing:1.5px;text-transform:uppercase;cursor:pointer;color:var(--color-body);background:0 0;border:none;padding:8px 0;font-size:13px;font-weight:700;transition:color .25s;position:relative}.filter-tab:hover,.filter-tab.is-active{color:var(--color-on-dark)}.filter-tab__underline{background-color:var(--color-on-dark);height:2px;position:absolute;bottom:0;left:0;right:0}.filter-tabs__skeleton{gap:32px;padding:8px 0;display:flex}.filter-tabs__skeleton span{background-color:var(--color-surface-card);height:13px;display:block}.filter-tabs__count{font-family:var(--font-family);letter-spacing:2px;color:var(--color-muted);padding-bottom:10px;font-size:10px;font-weight:700}.masonry-item{break-inside:avoid;border:1px solid var(--card-border);border-radius:var(--radius-md);cursor:pointer;background:var(--color-surface-card);width:100%;transition:border-color .35s ease, box-shadow .45s var(--ease-out-expo), transform .45s var(--ease-out-expo);margin-bottom:24px;padding:0;display:block;position:relative;overflow:hidden}.masonry-item:hover{border-color:var(--card-border-hover);box-shadow:var(--shadow-lg);transform:translateY(-4px)}.masonry-item__img{filter:grayscale(.15)contrast(1.05)}.masonry-item:hover .masonry-item__img{filter:grayscale(0)contrast();transform:scale(1.06)}.masonry-item .hover-overlay{opacity:0;z-index:3;background:linear-gradient(#0000 0%,#0000004d 45%,#000000e6 100%);align-items:flex-end;padding:22px;transition:opacity .35s;display:flex;position:absolute;inset:0}.masonry-item__zoom{border-radius:var(--radius-pill);color:#000;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);opacity:0;width:34px;height:34px;transition:opacity .35s ease, transform .45s var(--ease-out-expo);z-index:4;background:#ffffffeb;justify-content:center;align-items:center;display:flex;position:absolute;top:14px;right:14px;transform:translateY(-6px)scale(.9)}.masonry-item:hover .masonry-item__zoom,.masonry-item:focus-visible .masonry-item__zoom{opacity:1;transform:translateY(0)scale(1)}.masonry-item__category{border-radius:var(--radius-pill);color:#fff;font-family:var(--font-family);letter-spacing:1.2px;background:#e22718e6;align-self:flex-start;margin-bottom:4px;padding:3px 9px;font-size:9px;font-weight:700;display:inline-block}.masonry-item:hover .hover-overlay,.masonry-item:focus-visible .hover-overlay{opacity:1}.hover-overlay__inner{text-align:left;flex-direction:column;gap:4px;transition:transform .35s cubic-bezier(.16,1,.3,1);display:flex;transform:translateY(16px)}.masonry-item:hover .hover-overlay__inner,.masonry-item:focus-visible .hover-overlay__inner{transform:translateY(0)}.project-card{will-change:transform}.project-card__header{border-bottom:1px solid var(--card-border);background:#ffffff06;justify-content:space-between;align-items:center;padding:15px 22px;display:flex}:root[data-theme=light] .project-card__header{background:#10182805}.tag-badge{font-family:var(--font-family);letter-spacing:.8px;border-radius:var(--radius-pill);color:#5b9bff;background:#1c69d41f;border:1px solid #1c69d442;align-items:center;padding:4px 10px;font-size:10px;font-weight:700;display:inline-flex}:root[data-theme=light] .tag-badge{color:#1c5fbf}.status-chip{border-radius:var(--radius-pill);font-family:var(--font-family);letter-spacing:1.2px;color:#3ddc6b;background:#0fa3361f;border:1px solid #0fa3364d;align-items:center;gap:6px;padding:4px 10px;font-size:9px;font-weight:700;display:inline-flex}:root[data-theme=light] .status-chip{color:#0a7d29}.status-chip .pulse-dot{background-color:currentColor}.social-card{align-items:center;gap:12px;text-decoration:none;padding:14px 16px!important;display:flex!important}.social-card__icon{border-radius:var(--radius-sm);border:1px solid var(--card-border);width:38px;height:38px;color:var(--color-on-dark);transition:transform .4s var(--ease-out-expo);background:#ffffff0d;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}:root[data-theme=light] .social-card__icon{background:#1018280a}.social-card:hover .social-card__icon{transform:translateY(-2px)scale(1.05)}.project-skeleton{border:1px solid var(--color-hairline-strong);background-color:var(--color-canvas);flex-direction:column;display:flex}.project-skeleton__header{background-color:var(--color-surface-soft);border-bottom:1px solid var(--color-hairline-strong);height:51px}.project-skeleton__body{flex-direction:column;gap:12px;padding:24px;display:flex}.project-skeleton__tags{gap:8px;margin-bottom:4px;display:flex}.project-skeleton__tags span{background-color:var(--color-surface-card);height:18px;display:block}.project-skeleton__line{background-color:var(--color-surface-card);height:12px}.project-skeleton__actions{gap:12px;margin-top:12px;display:flex}.project-skeleton__actions span{background-color:var(--color-surface-card);flex:1;height:40px}.pulse-dot{background-color:var(--color-m-red);border-radius:50%;width:6px;height:6px;animation:1.8s ease-in-out infinite dot-pulse}@keyframes dot-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.8)}}.state-panel{text-align:center;border:1px dashed var(--color-hairline);background-color:var(--color-surface-soft);flex-direction:column;justify-content:center;align-items:center;gap:14px;padding:72px 24px;display:flex}.state-panel__title{font-family:var(--font-family);letter-spacing:1.5px;color:var(--color-on-dark);margin:0;font-size:16px;font-weight:700}.state-panel__text{font-family:var(--font-family);color:var(--color-body);max-width:420px;margin:0 0 8px;font-size:14px;font-weight:300}.btn-sweep{isolation:isolate;position:relative;overflow:hidden}.btn-sweep:before{content:"";background-color:var(--color-on-dark);transform-origin:0;z-index:-1;transition:transform .42s cubic-bezier(.16,1,.3,1);position:absolute;inset:0;transform:scaleX(0)}.btn-sweep:hover:before{transform:scaleX(1)}.stat-cell{transition:border-color .3s,transform .3s cubic-bezier(.16,1,.3,1)}.stat-cell:hover{border-color:var(--color-on-dark);transform:translateY(-3px)}.about-image{filter:grayscale(.4)contrast(1.1)}.about-image:hover{filter:grayscale(0)contrast()}.back-to-top{z-index:900;background-color:var(--color-surface-card);width:46px;height:46px;color:var(--color-on-dark);border:1px solid var(--color-hairline);border-radius:var(--radius-sm);cursor:pointer;justify-content:center;align-items:center;display:flex;position:fixed;bottom:28px;right:24px}.back-to-top:hover{background-color:var(--color-on-dark);color:var(--color-canvas);border-color:var(--color-on-dark)}.route-fallback{width:100%}.route-fallback__header{flex-direction:column;gap:14px;display:flex}.route-fallback__bar{background-color:var(--color-surface-card)}.route-fallback__stripe{background-color:var(--color-surface-card);width:120px;height:4px;margin-top:10px}.route-fallback__grid{padding-top:var(--spacing-xl);padding-bottom:var(--spacing-section);grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:24px;display:grid}.route-fallback__tile{background-color:var(--color-surface-card);border:1px solid var(--color-hairline-strong);height:220px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}:focus-visible{outline:2px solid var(--color-m-blue-dark);outline-offset:3px}.masonry-item:focus-visible{outline-offset:-2px}@media (prefers-reduced-motion:reduce){.hero-scroll-hint__line:after,.pulse-dot,.shimmer-bg:after,.home-hero-photo-wrapper{animation:none!important}.btn-sweep:before{transition:none}html{scroll-behavior:auto!important}}
