@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:300;font-display:swap;src:url(/_next/static/media/6fe53d21e6e7ebd8-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:300;font-display:swap;src:url(/_next/static/media/8ebc6e9dde468c4a-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:300;font-display:swap;src:url(/_next/static/media/9e7b0a821b9dfcb4-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:300;font-display:swap;src:url(/_next/static/media/636a5ac981f94f8b-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/6fe53d21e6e7ebd8-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/8ebc6e9dde468c4a-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/9e7b0a821b9dfcb4-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/636a5ac981f94f8b-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/6fe53d21e6e7ebd8-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/8ebc6e9dde468c4a-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/9e7b0a821b9dfcb4-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/636a5ac981f94f8b-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/6fe53d21e6e7ebd8-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/8ebc6e9dde468c4a-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/9e7b0a821b9dfcb4-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/636a5ac981f94f8b-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/6fe53d21e6e7ebd8-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/8ebc6e9dde468c4a-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/9e7b0a821b9dfcb4-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Plus Jakarta Sans;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/636a5ac981f94f8b-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Plus Jakarta Sans Fallback;src:local("Arial");ascent-override:98.88%;descent-override:21.15%;line-gap-override:0.00%;size-adjust:104.98%}.__className_2392b8{font-family:Plus Jakarta Sans,Plus Jakarta Sans Fallback;font-style:normal}.__variable_2392b8{--font-body:"Plus Jakarta Sans","Plus Jakarta Sans Fallback"}@font-face{font-family:"DM Serif Display";font-style:italic;font-weight:400;font-display:swap;src:url(/_next/static/media/20fd6a0e301296d5-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:"DM Serif Display";font-style:italic;font-weight:400;font-display:swap;src:url(/_next/static/media/49eec060ce8bd0da-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:"DM Serif Display";font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/ccc01da6a2b3d788-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:"DM Serif Display";font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/fa3e259cafa8f47e-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:"DM Serif Display Fallback";src:local("Times New Roman");ascent-override:94.37%;descent-override:30.51%;line-gap-override:0.00%;size-adjust:109.78%}.__className_d501d1{font-family:"DM Serif Display","DM Serif Display Fallback";font-weight:400}.__variable_d501d1{--font-heading:"DM Serif Display","DM Serif Display Fallback"}:root{--bg-primary:#0f0f0f;--bg-secondary:#1a1a1a;--bg-tertiary:#252525;--bg-card:rgba(255,255,255,0.03);--bg-card-hover:rgba(255,255,255,0.06);--text-primary:#ffffff;--text-secondary:rgba(255,255,255,0.7);--text-muted:rgba(255,255,255,0.5);--accent-primary:#ffffff;--accent-gradient:linear-gradient(135deg,#667eea,#764ba2);--accent-blue:#3b82f6;--accent-purple:#8b5cf6;--border-color:rgba(255,255,255,0.1);--border-hover:rgba(255,255,255,0.2);--spacing-xs:0.5rem;--spacing-sm:1rem;--spacing-md:1.5rem;--spacing-lg:2rem;--spacing-xl:3rem;--spacing-2xl:5rem;--radius-sm:4px;--radius-md:8px;--radius-lg:16px;--radius-xl:24px;--radius-full:9999px;--transition-fast:150ms ease;--transition-base:250ms ease;--transition-slow:400ms ease;--shadow-sm:0 2px 8px rgba(0,0,0,0.3);--shadow-md:0 4px 16px rgba(0,0,0,0.4);--shadow-lg:0 8px 32px rgba(0,0,0,0.5)}*,:after,:before{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:80px}body{font-family:var(--font-body),system-ui,sans-serif;font-size:16px;line-height:1.6;color:var(--text-primary);background:var(--bg-primary);overflow-x:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}img{max-width:100%;height:auto;display:block}a{color:inherit;text-decoration:none;transition:var(--transition-base)}ul{list-style:none}button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}.container{width:100%;max-width:1200px;margin:0 auto;padding:0 var(--spacing-md)}.section-title{font-family:var(--font-heading),serif;font-size:clamp(2rem,5vw,3rem);margin-bottom:var(--spacing-sm);text-align:center}.section-subtitle{color:var(--text-secondary);text-align:center;margin-bottom:var(--spacing-xl);font-size:1.1rem}.navbar{position:fixed;top:0;left:0;right:0;z-index:1000;padding:var(--spacing-md) 0;background:transparent;transition:var(--transition-base)}.navbar.scrolled{background:rgba(15,15,15,.95);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-bottom:1px solid var(--border-color)}.nav-container{display:flex;justify-content:space-between;align-items:center;max-width:1200px;margin:0 auto;padding:0 var(--spacing-md)}.nav-logo img{height:40px;width:auto}.nav-menu{display:flex;align-items:center;gap:var(--spacing-lg)}.nav-link{font-size:.95rem;font-weight:500;color:var(--text-secondary);position:relative;padding:var(--spacing-xs) 0}.nav-link:after{content:"";position:absolute;bottom:0;left:0;width:0;height:2px;background:var(--accent-primary);transition:var(--transition-base)}.nav-link.active,.nav-link:hover{color:var(--text-primary)}.nav-link.active:after,.nav-link:hover:after{width:100%}.nav-dropdown-trigger,.nav-dropdown-wrapper{position:relative;display:flex;align-items:center}.nav-dropdown-trigger{gap:5px;font-size:.95rem;font-weight:500;line-height:inherit;color:var(--text-secondary);padding:var(--spacing-xs) 0;background:none;border:none;cursor:pointer;font-family:inherit}.nav-dropdown-trigger:after{content:"";position:absolute;bottom:0;left:0;width:0;height:2px;background:var(--accent-primary);transition:var(--transition-base)}.nav-dropdown-trigger.active,.nav-dropdown-trigger:hover{color:var(--text-primary)}.nav-dropdown-trigger.active:after,.nav-dropdown-trigger:hover:after{width:100%}.nav-dropdown-chevron{transition:transform var(--transition-base);flex-shrink:0}.nav-dropdown-trigger.open .nav-dropdown-chevron{transform:rotate(180deg)}.nav-dropdown{display:none;position:absolute;top:calc(100% + 12px);left:50%;transform:translateX(-50%);min-width:160px;background:rgba(15,15,15,.97);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:6px 0;box-shadow:var(--shadow-lg);z-index:100;white-space:nowrap}.nav-dropdown.open{display:block;animation:fadeInDown .15s ease}@keyframes fadeInDown{0%{opacity:0;transform:translateX(-50%) translateY(-6px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}.nav-dropdown-item{display:block;padding:9px 18px;font-size:.9rem;color:var(--text-secondary);transition:var(--transition-fast)}.nav-dropdown-item.active,.nav-dropdown-item:hover{color:var(--text-primary);background:var(--bg-card-hover)}.nav-toggle{display:none;flex-direction:column;gap:5px;padding:5px}.nav-toggle span{width:24px;height:2px;background:var(--text-primary);transition:var(--transition-base);display:block}.hero{min-height:100vh;display:flex;align-items:center;padding:120px 0 var(--spacing-2xl);position:relative;overflow:hidden;background:var(--bg-primary)}.hero-container{display:grid;grid-template-columns:1fr 1fr;grid-gap:var(--spacing-xl);gap:var(--spacing-xl);align-items:center;max-width:1200px;margin:0 auto;padding:0 var(--spacing-md)}.hero-content{position:relative;z-index:2}.hero-title{font-family:var(--font-heading),serif;font-size:clamp(2.5rem,6vw,4.5rem);font-weight:400;line-height:1.1;margin-bottom:var(--spacing-lg)}.hero-title .title-line{display:block}.hero-intro{display:flex;align-items:baseline;gap:var(--spacing-md);margin-bottom:var(--spacing-md)}.hero-name{font-size:1.25rem;font-weight:600}.hero-role{font-size:.9rem;color:var(--text-secondary)}.hero-description{color:var(--text-secondary);font-size:1rem;line-height:1.7;margin-bottom:var(--spacing-lg);max-width:500px}.hero-links{display:flex;gap:var(--spacing-lg);margin-bottom:var(--spacing-md)}.hero-link{font-size:.95rem;text-decoration:underline;text-underline-offset:4px;color:var(--text-primary)}.hero-link:hover{color:var(--text-secondary)}.hero-tags{display:flex;flex-wrap:wrap;gap:var(--spacing-sm)}.hero-tag{font-size:.85rem;padding:var(--spacing-xs) var(--spacing-sm);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-secondary)}.hero-tag:hover{border-color:var(--border-hover);color:var(--text-primary)}.hero-image-wrapper{position:relative;display:flex;justify-content:flex-end;align-items:center}.hero-image-container{position:relative;width:100%;max-width:450px}.hero-image{position:relative;z-index:2;width:100%;height:auto;object-fit:contain}.hero-stripes{position:absolute;top:0;right:-20px;bottom:0;width:150px;background:repeating-linear-gradient(-55deg,transparent,transparent 8px,rgba(255,255,255,.08) 0,rgba(255,255,255,.08) 16px);z-index:1}.about{padding:var(--spacing-2xl) 0;background:var(--bg-secondary)}.about-content{display:grid;grid-template-columns:350px 1fr;grid-gap:var(--spacing-xl);gap:var(--spacing-xl);align-items:start;margin-top:var(--spacing-xl)}.about-image-container{position:relative}.about-image{width:100%;height:450px;object-fit:cover;border-radius:var(--radius-lg)}.about-image-decoration{position:absolute;top:20px;left:20px;right:-20px;bottom:-20px;border:2px solid var(--border-color);border-radius:var(--radius-lg);z-index:-1}.about-description{color:var(--text-secondary);font-size:1.05rem;line-height:1.8;margin-bottom:var(--spacing-md)}.about-details{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:var(--spacing-md);gap:var(--spacing-md);margin-top:var(--spacing-lg)}.detail-card{padding:var(--spacing-md);background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);transition:var(--transition-base)}.detail-card:hover{background:var(--bg-card-hover);border-color:var(--border-hover)}.detail-label{display:block;font-size:.85rem;color:var(--text-muted);margin-bottom:var(--spacing-xs);font-weight:500;text-transform:uppercase;letter-spacing:.5px}.detail-value{font-size:1rem;line-height:1.5}.detail-value small{color:var(--text-muted);font-size:.75rem;margin-left:4px}.projects{padding:var(--spacing-2xl) 0;background:var(--bg-primary)}.projects-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(350px,1fr));grid-gap:var(--spacing-lg);gap:var(--spacing-lg);margin-top:var(--spacing-lg)}.project-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--spacing-lg);transition:var(--transition-base);position:relative;overflow:hidden}.project-card:hover{background:var(--bg-card-hover);border-color:var(--border-hover);transform:translateY(-4px)}.project-card.featured{grid-column:span 2;background:linear-gradient(135deg,rgba(59,130,246,.1),rgba(139,92,246,.1));border-color:rgba(139,92,246,.3)}.project-card.featured:hover{border-color:rgba(139,92,246,.5)}.project-badge{position:absolute;top:var(--spacing-md);right:var(--spacing-md);padding:var(--spacing-xs) var(--spacing-sm);background:linear-gradient(135deg,#fbbf24,#f59e0b);color:#000;font-size:.8rem;font-weight:600;border-radius:var(--radius-full)}.project-content{position:relative;z-index:1}.project-title{font-family:var(--font-heading),serif;font-size:1.5rem;margin-bottom:var(--spacing-sm)}.project-description{color:var(--text-secondary);margin-bottom:var(--spacing-md);line-height:1.7}.project-tech{display:flex;flex-wrap:wrap;gap:var(--spacing-xs);margin-bottom:var(--spacing-md)}.tech-tag{padding:4px 12px;background:rgba(255,255,255,.1);border-radius:var(--radius-full);font-size:.8rem;color:var(--text-secondary)}.project-links{display:flex;flex-wrap:wrap;gap:var(--spacing-sm)}.project-link{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;border:1px solid var(--border-color);border-radius:var(--radius-md);font-size:.9rem;color:var(--text-secondary)}.project-link:hover{border-color:var(--text-primary);color:var(--text-primary)}.project-link.primary{background:var(--text-primary);color:var(--bg-primary);border-color:transparent}.project-link.primary:hover{background:var(--text-secondary)}.skills{padding:var(--spacing-2xl) 0;background:var(--bg-secondary)}.skills-grid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:var(--spacing-xl);gap:var(--spacing-xl);margin-top:var(--spacing-xl)}.skill-category-title{font-family:var(--font-heading),serif;font-size:1.3rem;margin-bottom:var(--spacing-md)}.skill-items{gap:var(--spacing-md)}.skill-item,.skill-items{display:flex;flex-direction:column}.skill-item{gap:var(--spacing-xs)}.skill-name{font-size:.95rem;font-weight:500}.skill-bar{height:8px;background:var(--bg-tertiary);overflow:hidden}.skill-bar,.skill-progress{border-radius:var(--radius-full)}.skill-progress{height:100%;width:var(--progress,0);background:#ffffff;transition:width 1s ease-out}.skill-tags{display:flex;flex-wrap:wrap;gap:var(--spacing-sm)}.skill-badge{padding:10px 20px;background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);font-size:.9rem;transition:var(--transition-base)}.skill-badge:hover{background:var(--bg-card-hover);border-color:var(--border-hover)}.certifications{padding:var(--spacing-2xl) 0;background:var(--bg-primary)}.certifications-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));grid-gap:var(--spacing-lg);gap:var(--spacing-lg);margin-top:var(--spacing-xl)}.certification-card{padding:var(--spacing-lg);background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);text-align:center;transition:var(--transition-base)}.certification-card:hover{background:var(--bg-card-hover);border-color:var(--border-hover);transform:translateY(-4px)}.certification-icon{font-size:2.5rem;margin-bottom:var(--spacing-sm)}.certification-title{font-family:var(--font-heading),serif;font-size:1.3rem;margin-bottom:var(--spacing-xs)}.certification-issuer{color:#ffffff;font-weight:700;font-size:.9rem;margin-bottom:var(--spacing-xs)}.certification-description{color:var(--text-secondary);font-size:.9rem}.contact{padding:var(--spacing-2xl) 0;background:var(--bg-secondary)}.contact-links{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));grid-gap:var(--spacing-md);gap:var(--spacing-md);margin-top:var(--spacing-xl)}.contact-card{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-lg);background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);text-align:center;transition:var(--transition-base)}.contact-card:hover{background:var(--bg-card-hover);border-color:var(--border-hover);transform:translateY(-4px)}.contact-icon{width:50px;height:50px;display:flex;align-items:center;justify-content:center;background:var(--bg-tertiary);border-radius:var(--radius-full)}.contact-label{font-size:.85rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:1px}.contact-value{font-size:.95rem;color:var(--text-primary)}.photography-section{padding:calc(var(--spacing-2xl) + 80px) 0 var(--spacing-2xl);background:var(--bg-primary);min-height:100vh}.photography-header{text-align:center;max-width:640px;margin:0 auto var(--spacing-xl)}.photography-eyebrow{font-size:.85rem;text-transform:uppercase;letter-spacing:3px;color:var(--text-muted);margin-bottom:var(--spacing-sm)}.photography-title{font-family:var(--font-heading),serif;font-size:clamp(2.5rem,6vw,4rem);font-weight:400;line-height:1.1;margin-bottom:var(--spacing-md)}.photography-subtitle{color:var(--text-secondary);font-size:1.05rem;line-height:1.7}.photography-grid{column-count:3;column-gap:var(--spacing-md);margin-top:var(--spacing-xl)}.photography-item{page-break-inside:avoid;break-inside:avoid;margin-bottom:var(--spacing-md);background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);overflow:hidden;transition:var(--transition-base)}.photography-item:hover{border-color:var(--border-hover);transform:translateY(-2px);box-shadow:var(--shadow-md)}.photography-frame{position:relative;width:100%;background:var(--bg-tertiary);overflow:hidden}.photography-image{display:block;width:100%;height:auto;transition:transform var(--transition-slow)}.photography-item:hover .photography-image{transform:scale(1.02)}.photography-caption{padding:var(--spacing-md)}.photography-caption-title{font-family:var(--font-heading),serif;font-size:1.15rem;font-weight:400;margin-bottom:var(--spacing-xs)}.photography-caption-text{color:var(--text-secondary);font-size:.9rem;line-height:1.6;margin-bottom:var(--spacing-sm)}.photography-caption-meta{display:flex;flex-wrap:wrap;gap:var(--spacing-sm);font-size:.8rem;color:var(--text-muted);border-top:1px solid var(--border-color);padding-top:var(--spacing-sm)}.photography-caption-meta span{display:inline-flex;align-items:center}.photography-caption-meta span+span:before{content:"·";margin-right:var(--spacing-sm);color:var(--border-hover)}.photography-frame-btn{position:relative;display:block;width:100%;padding:0;background:none;border:none;cursor:zoom-in;text-align:left}.photography-zoom-hint{position:absolute;top:var(--spacing-sm);right:var(--spacing-sm);width:34px;height:34px;display:flex;align-items:center;justify-content:center;background:rgba(15,15,15,.65);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.12);border-radius:var(--radius-full);color:rgba(255,255,255,.8);opacity:0;transform:scale(.85);transition:opacity var(--transition-base),transform var(--transition-base);pointer-events:none}.photography-frame-btn:focus-visible .photography-zoom-hint,.photography-frame-btn:hover .photography-zoom-hint{opacity:1;transform:scale(1)}.lightbox-backdrop{position:fixed;inset:0;z-index:2000;background:rgba(8,8,8,.96);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);display:flex;align-items:center;justify-content:center;animation:lightbox-fade-in .16s ease;cursor:zoom-out}@keyframes lightbox-fade-in{0%{opacity:0}to{opacity:1}}.lightbox-inner{flex-direction:column;max-width:min(92vw,1280px);max-height:100dvh;outline:none;cursor:default;padding:60px 0 0}.lightbox-image-wrap,.lightbox-inner{position:relative;display:flex;align-items:center;width:100%}.lightbox-image-wrap{justify-content:center;flex:1 1 auto;min-height:0;padding:0 56px}.lightbox-image{display:block;max-width:100%;max-height:calc(100dvh - 180px);width:auto!important;height:auto!important;object-fit:contain;border-radius:var(--radius-sm);animation:lightbox-scale-in .18s ease}@keyframes lightbox-scale-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.lightbox-close{position:absolute;top:14px;right:14px;width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);border-radius:var(--radius-full);color:rgba(255,255,255,.75);transition:var(--transition-fast);z-index:1}.lightbox-close:hover{background:rgba(255,255,255,.15);color:#fff}.lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);border-radius:var(--radius-full);color:rgba(255,255,255,.75);transition:var(--transition-fast);z-index:1}.lightbox-nav:hover{background:rgba(255,255,255,.15);color:#fff}.lightbox-nav-prev{left:6px}.lightbox-nav-next{right:6px}.lightbox-footer{width:100%;padding:var(--spacing-sm) var(--spacing-lg);margin-top:var(--spacing-sm);display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:var(--spacing-sm)}.lightbox-footer-text{display:flex;flex-direction:column;gap:4px;min-width:0}.lightbox-title{font-family:var(--font-heading),serif;font-size:1.1rem;font-weight:400;color:var(--text-primary)}.lightbox-caption{font-size:.9rem;color:var(--text-secondary);line-height:1.5}.lightbox-meta{display:flex;flex-direction:column;align-items:flex-end;gap:2px;text-align:right;white-space:nowrap}.lightbox-counter,.lightbox-meta{font-size:.78rem;color:var(--text-muted);font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.lightbox-counter{position:absolute;top:18px;left:50%;transform:translateX(-50%);pointer-events:none}@media (max-width:640px){.lightbox-inner{padding-top:48px}.lightbox-image-wrap{padding:0 44px}.lightbox-footer{flex-direction:column;padding:var(--spacing-xs) var(--spacing-sm)}.lightbox-meta{align-items:flex-start;text-align:left}.lightbox-nav{width:36px;height:36px}}.photography-empty{text-align:center;max-width:480px;margin:var(--spacing-2xl) auto;padding:var(--spacing-xl);background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg)}.photography-empty-icon{color:var(--text-muted);margin-bottom:var(--spacing-md);display:flex;justify-content:center}.photography-empty-title{font-family:var(--font-heading),serif;font-size:1.5rem;font-weight:400;margin-bottom:var(--spacing-sm)}.photography-empty-text{color:var(--text-secondary);font-size:.95rem;line-height:1.7}@media (max-width:1024px){.photography-grid{column-count:2}}@media (max-width:640px){.photography-grid{column-count:1}.photography-section{padding-top:calc(var(--spacing-xl) + 80px)}}.collection-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));grid-gap:var(--spacing-lg);gap:var(--spacing-lg);margin-top:var(--spacing-xl)}.collection-card{display:flex;flex-direction:column;background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);overflow:hidden;transition:var(--transition-base);color:inherit}.collection-card:hover{border-color:var(--border-hover);transform:translateY(-4px);box-shadow:var(--shadow-lg)}.collection-cover{position:relative;aspect-ratio:4/3;background:var(--bg-tertiary);overflow:hidden}.collection-cover-image{width:100%;height:100%;object-fit:cover;transition:transform var(--transition-slow)}.collection-card:hover .collection-cover-image{transform:scale(1.04)}.collection-cover-placeholder{display:flex;align-items:center;justify-content:center;width:100%;height:100%;color:var(--text-muted)}.collection-cover-overlay{position:absolute;inset:0;background:linear-gradient(0deg,rgba(15,15,15,.7) 0,transparent 50%);pointer-events:none}.collection-count{position:absolute;bottom:var(--spacing-sm);right:var(--spacing-sm);padding:4px 12px;background:rgba(15,15,15,.75);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--border-color);border-radius:var(--radius-full);font-size:.78rem;color:var(--text-primary)}.collection-body{padding:var(--spacing-md);display:flex;flex-direction:column;gap:var(--spacing-xs);flex:1 1}.collection-meta{display:flex;flex-wrap:wrap;gap:var(--spacing-sm);font-size:.78rem;text-transform:uppercase;letter-spacing:1.5px;color:var(--text-muted)}.collection-meta span+span:before{content:"·";margin-right:var(--spacing-sm)}.collection-title{font-family:var(--font-heading),serif;font-size:1.5rem;font-weight:400;line-height:1.2}.collection-desc{color:var(--text-secondary);font-size:.95rem;line-height:1.6}.collection-cta{margin-top:auto;padding-top:var(--spacing-sm);font-size:.85rem;color:var(--text-secondary);transition:var(--transition-fast)}.collection-card:hover .collection-cta{color:var(--text-primary)}.collection-breadcrumb{margin-bottom:var(--spacing-lg);font-size:.9rem}.collection-breadcrumb a{color:var(--text-muted);transition:var(--transition-fast)}.collection-breadcrumb a:hover{color:var(--text-primary)}.collection-detail-header{max-width:720px;margin:0 auto var(--spacing-xl);text-align:center}.collection-detail-meta{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--spacing-md);font-size:.8rem;text-transform:uppercase;letter-spacing:2px;color:var(--text-muted);margin-bottom:var(--spacing-md)}.collection-detail-meta span+span:before{content:"·";margin-right:var(--spacing-md)}.collection-detail-title{font-family:var(--font-heading),serif;font-size:clamp(2rem,5vw,3.25rem);font-weight:400;line-height:1.15;margin-bottom:var(--spacing-md)}.collection-detail-description{color:var(--text-secondary);font-size:1.05rem;line-height:1.75}.auth-shell{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--spacing-lg);background:radial-gradient(circle at 20% 20%,rgba(139,92,246,.08),transparent 50%),radial-gradient(circle at 80% 80%,rgba(59,130,246,.08),transparent 50%),var(--bg-primary)}.auth-card{width:100%;max-width:420px;padding:var(--spacing-xl);background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);position:relative}.auth-back{display:inline-flex;align-items:center;font-size:.85rem;color:var(--text-muted);margin-bottom:var(--spacing-md);transition:var(--transition-fast)}.auth-back:hover{color:var(--text-primary)}.auth-header{margin-bottom:var(--spacing-lg)}.auth-eyebrow{font-size:.75rem;text-transform:uppercase;letter-spacing:3px;color:var(--text-muted)}.auth-eyebrow,.auth-title{margin-bottom:var(--spacing-xs)}.auth-title{font-family:var(--font-heading),serif;font-size:2rem;font-weight:400}.auth-subtitle{color:var(--text-secondary);font-size:.95rem}.auth-error{padding:var(--spacing-sm) var(--spacing-md);margin-bottom:var(--spacing-md);background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.3);border-radius:var(--radius-md);color:#fca5a5;font-size:.9rem}.auth-form{gap:var(--spacing-md)}.auth-field,.auth-form{display:flex;flex-direction:column}.auth-field{gap:6px}.auth-field span{font-size:.85rem;color:var(--text-secondary);font-weight:500}.auth-field input{padding:12px 14px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);font:inherit;font-size:.95rem;transition:var(--transition-fast)}.auth-field input:focus{outline:none;border-color:var(--accent-blue);background:var(--bg-secondary)}.auth-field input::placeholder{color:var(--text-muted)}.auth-submit{margin-top:var(--spacing-xs);padding:12px 18px;background:var(--text-primary);color:var(--bg-primary);border-radius:var(--radius-md);font-weight:600;font-size:.95rem;transition:var(--transition-fast)}.auth-submit:hover{background:var(--text-secondary)}.auth-footnote{margin-top:var(--spacing-lg);font-size:.8rem;color:var(--text-muted);text-align:center}.admin-layout{min-height:100vh;background:var(--bg-primary)}.admin-sidebar{position:fixed;top:0;left:0;width:240px;height:100vh;background:var(--bg-secondary);border-right:1px solid var(--border-color);z-index:100;overflow-y:auto}.admin-sidebar-inner{display:flex;flex-direction:column;height:100%;padding:var(--spacing-md)}.admin-sidebar-logo{display:inline-flex;align-items:center;gap:10px;font-size:.95rem;font-weight:600;letter-spacing:.3px;padding:var(--spacing-xs) 0;margin-bottom:var(--spacing-lg);color:var(--text-primary)}.admin-sidebar-logo-dot{width:8px;height:8px;border-radius:var(--radius-full);background:var(--text-primary);flex-shrink:0}.admin-nav{flex:1 1;display:flex;flex-direction:column;gap:2px}.admin-nav-label{font-size:.7rem;text-transform:uppercase;letter-spacing:2px;color:var(--text-muted);padding:0 var(--spacing-xs);margin-bottom:var(--spacing-xs);margin-top:var(--spacing-xs)}.admin-nav-link{display:flex;align-items:center;gap:10px;padding:10px var(--spacing-xs);border-radius:var(--radius-md);font-size:.9rem;color:var(--text-secondary);transition:var(--transition-fast);text-decoration:none}.admin-nav-link:hover{background:rgba(255,255,255,.05);color:var(--text-primary)}.admin-nav-link-active{background:rgba(255,255,255,.07);color:var(--text-primary)}.admin-sidebar-footer{display:flex;align-items:center;gap:var(--spacing-xs);padding-top:var(--spacing-md);margin-top:var(--spacing-md);border-top:1px solid var(--border-color)}.admin-sidebar-user{display:flex;align-items:center;gap:10px;flex:1 1;min-width:0}.admin-sidebar-avatar{width:32px;height:32px;border-radius:var(--radius-full);background:rgba(255,255,255,.1);border:1px solid var(--border-color);display:flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:600;flex-shrink:0}.admin-sidebar-user-info{min-width:0;overflow:hidden}.admin-sidebar-user-email{font-size:.78rem;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.admin-sidebar-user-role{font-size:.7rem;color:var(--text-muted);margin-top:1px}.admin-sidebar-logout{width:32px;height:32px;display:flex;align-items:center;justify-content:center;color:var(--text-muted);border-radius:var(--radius-md);transition:var(--transition-fast);flex-shrink:0}.admin-sidebar-logout:hover{color:var(--text-primary);background:rgba(255,255,255,.06)}.admin-main{margin-left:240px;padding:var(--spacing-xl) var(--spacing-xl) var(--spacing-2xl);max-width:1400px}.admin-page-header{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--spacing-md);margin-bottom:var(--spacing-xl);padding-bottom:var(--spacing-lg);border-bottom:1px solid var(--border-color)}.admin-eyebrow{font-size:.75rem;text-transform:uppercase;letter-spacing:2px;color:var(--text-muted);margin-bottom:var(--spacing-xs)}.admin-title{font-family:var(--font-heading),serif;font-size:clamp(1.8rem,4vw,2.5rem);font-weight:400;line-height:1.1}.admin-view-site{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;font-size:.85rem;color:var(--text-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);transition:var(--transition-fast);white-space:nowrap}.admin-view-site:hover{color:var(--text-primary);border-color:var(--border-hover)}.admin-stats{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:var(--spacing-md);gap:var(--spacing-md);margin-bottom:var(--spacing-xl)}.admin-stat{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md) var(--spacing-md);background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);transition:var(--transition-fast)}.admin-stat:hover{border-color:var(--border-hover);background:var(--bg-card-hover)}.admin-stat-icon{width:44px;height:44px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;flex-shrink:0}.admin-stat-icon-blue{background:rgba(59,130,246,.12);color:#60a5fa;border:1px solid rgba(59,130,246,.2)}.admin-stat-icon-purple{background:rgba(139,92,246,.12);color:#a78bfa;border:1px solid rgba(139,92,246,.2)}.admin-stat-icon-green{background:rgba(134,239,172,.08);color:#86efac;border:1px solid rgba(134,239,172,.2)}.admin-stat-label{display:block;font-size:.75rem;text-transform:uppercase;letter-spacing:1px;color:var(--text-muted);margin-top:2px}.admin-stat-value{display:block;font-family:var(--font-heading),serif;font-size:1.8rem;font-weight:400;line-height:1}.admin-section{margin-bottom:var(--spacing-xl);scroll-margin-top:var(--spacing-md)}.admin-section-header{display:flex;align-items:flex-start;gap:var(--spacing-sm);margin-bottom:var(--spacing-md);padding-bottom:var(--spacing-md);border-bottom:1px solid var(--border-color)}.admin-section-header-icon{width:32px;height:32px;border-radius:var(--radius-md);background:rgba(255,255,255,.06);border:1px solid var(--border-color);display:flex;align-items:center;justify-content:center;color:var(--text-secondary);flex-shrink:0;margin-top:2px}.admin-section-header h2{font-family:var(--font-heading),serif;font-size:1.25rem;font-weight:400;line-height:1.2}.admin-section-subtitle{margin-top:4px;color:var(--text-muted);font-size:.85rem;line-height:1.5}.admin-empty{padding:var(--spacing-xl) var(--spacing-lg);background:var(--bg-card);border:1px dashed var(--border-color);border-radius:var(--radius-lg);color:var(--text-secondary);text-align:center;font-size:.9rem}.admin-list{display:flex;flex-direction:column;gap:var(--spacing-xs)}.admin-list-item{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--spacing-md);padding:var(--spacing-md);background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);transition:var(--transition-fast)}.admin-list-item:hover{border-color:var(--border-hover);background:var(--bg-card-hover)}.admin-list-item-content{min-width:0}.admin-list-title{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-heading),serif;font-size:1.05rem;color:var(--text-primary);transition:var(--transition-fast)}.admin-list-title-icon{opacity:0;transition:opacity var(--transition-fast);flex-shrink:0}.admin-list-title:hover{color:var(--text-secondary)}.admin-list-title:hover .admin-list-title-icon{opacity:1}.admin-list-meta{display:flex;align-items:center;gap:6px;font-size:.78rem;color:var(--text-muted);margin-top:3px}.admin-list-meta-slug{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.admin-list-meta-sep{opacity:.4}.admin-list-desc{margin-top:6px;font-size:.875rem;color:var(--text-secondary);line-height:1.5}.admin-pill{padding:5px 12px;font-size:.72rem;text-transform:uppercase;letter-spacing:1px;border:1px solid var(--border-color);border-radius:var(--radius-full);color:var(--text-muted);white-space:nowrap;flex-shrink:0}.admin-pill-published{color:#86efac;border-color:rgba(134,239,172,.3);background:rgba(134,239,172,.08)}.admin-pill-button{cursor:pointer;transition:var(--transition-fast)}.admin-pill-button:hover:not(:disabled){border-color:var(--border-hover);color:var(--text-primary)}.admin-pill-button:disabled{opacity:.6;cursor:progress}.admin-code{margin-top:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);background:var(--bg-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85rem;color:var(--text-primary);overflow-x:auto;white-space:pre}.admin-howto{padding-left:var(--spacing-md);color:var(--text-secondary);line-height:1.7}.admin-howto li{margin-bottom:var(--spacing-sm);padding-left:var(--spacing-xs)}.admin-howto code{padding:2px 6px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:4px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85em;color:var(--text-primary)}@media (max-width:900px){.admin-sidebar{position:static;width:100%;height:auto;border-right:none;border-bottom:1px solid var(--border-color)}.admin-sidebar-inner{flex-direction:row;align-items:center;flex-wrap:wrap;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md)}.admin-sidebar-logo{margin-bottom:0}.admin-nav{flex-direction:row;flex:0 0 auto;gap:4px}.admin-nav-label{display:none}.admin-sidebar-footer{margin-left:auto;padding-top:0;margin-top:0;border-top:none;border-left:1px solid var(--border-color);padding-left:var(--spacing-sm)}.admin-main{margin-left:0;padding:var(--spacing-lg) var(--spacing-md) var(--spacing-2xl);max-width:100%}.admin-stats{grid-template-columns:repeat(3,1fr)}}@media (max-width:600px){.admin-stats{grid-template-columns:1fr}.admin-list-item{flex-direction:column;align-items:stretch;gap:var(--spacing-sm)}}.admin-thumbnail-manager{gap:var(--spacing-sm)}.admin-thumbnail-preview{width:80px;height:56px}.admin-thumbnail-badge{bottom:2px;right:2px}.admin-thumbnail-controls{display:flex;flex-direction:column;gap:4px;width:150px}.admin-thumbnail-select{width:100%;padding:4px 8px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:.75rem;outline:none;cursor:pointer;transition:var(--transition-fast)}.admin-thumbnail-select:focus{border-color:var(--border-hover);color:var(--text-primary)}.admin-thumbnail-upload-btn{display:inline-block;text-align:center;padding:4px 8px;background:rgba(255,255,255,.05);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:.75rem;cursor:pointer;transition:var(--transition-fast)}.admin-thumbnail-upload-btn:hover{background:rgba(255,255,255,.08);border-color:var(--border-hover);color:var(--text-primary)}.admin-thumbnail-upload-btn[disabled]{opacity:.6;cursor:not-allowed}.admin-thumbnail-manager,.admin-thumbnail-preview{display:flex;align-items:center;flex-shrink:0}.admin-thumbnail-preview{position:relative;width:150px;height:100px;border-radius:var(--radius-md);background:var(--bg-tertiary);border:1px solid var(--border-color);overflow:hidden;justify-content:center;cursor:pointer;padding:0}.admin-thumbnail-img{width:100%;height:100%;object-fit:cover}.admin-thumbnail-badge,.admin-thumbnail-placeholder{color:var(--text-muted)}.admin-thumbnail-badge{position:absolute;bottom:4px;right:4px;background:rgba(0,0,0,.75);font-size:.6rem;padding:1px 4px;border-radius:3px;text-transform:uppercase;letter-spacing:.5px;z-index:10}.admin-thumbnail-preview:after{content:"Change Cover";position:absolute;inset:0;background:rgba(0,0,0,.6);color:#ffffff;font-size:.72rem;font-weight:600;letter-spacing:.3px;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity var(--transition-fast);z-index:20}.admin-thumbnail-preview:hover:after{opacity:1}.admin-modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.75);display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--spacing-md);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.admin-modal-content{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-lg);width:100%;max-width:540px;max-height:80vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 20px 25px -5px rgba(0,0,0,.5);animation:admin-modal-fadeIn .2s cubic-bezier(.16,1,.3,1)}@keyframes admin-modal-fadeIn{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.admin-modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--border-color)}.admin-modal-header h3{font-family:var(--font-heading),serif;font-size:1.15rem;font-weight:400;color:var(--text-primary)}.admin-modal-close{background:transparent;border:none;color:var(--text-muted);font-size:1.6rem;cursor:pointer;line-height:1;padding:0;transition:var(--transition-fast)}.admin-modal-close:hover{color:var(--text-primary)}.admin-modal-body{padding:var(--spacing-lg);overflow-y:auto;display:flex;flex-direction:column;gap:var(--spacing-md)}.admin-modal-body::-webkit-scrollbar{width:6px}.admin-modal-body::-webkit-scrollbar-track{background:transparent}.admin-modal-body::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:var(--radius-full)}.admin-modal-body::-webkit-scrollbar-thumb:hover{background:var(--border-hover)}.admin-modal-fallback-btn{width:100%;padding:10px var(--spacing-md);background:rgba(255,255,255,.02);border:1px dashed var(--border-color);border-radius:var(--radius-md);color:var(--text-secondary);font-size:.8rem;font-weight:500;cursor:pointer;transition:var(--transition-fast);text-align:center}.admin-modal-fallback-btn:hover{background:rgba(255,255,255,.05);border-color:var(--border-hover);color:var(--text-primary)}.admin-modal-fallback-btn.active{border-color:#3b82f6;background:rgba(59,130,246,.08);color:#93c5fd}.admin-modal-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));grid-gap:var(--spacing-sm);gap:var(--spacing-sm)}.admin-modal-photo-card{aspect-ratio:1;border:2px solid transparent;border-radius:var(--radius-md);overflow:hidden;background:var(--bg-primary);cursor:pointer;position:relative;padding:0;transition:var(--transition-fast)}.admin-modal-photo-card:hover{transform:scale(1.02)}.admin-modal-photo-card.active{border-color:#3b82f6;box-shadow:0 0 8px rgba(59,130,246,.3)}.admin-modal-photo-card img{width:100%;height:100%;object-fit:cover}.admin-modal-star{position:absolute;top:4px;right:4px;background:#3b82f6;color:#ffffff;width:20px;height:20px;border-radius:var(--radius-full);box-shadow:0 2px 4px rgba(0,0,0,.3)}.admin-modal-star,.admin-modal-upload-card{display:flex;align-items:center;justify-content:center}.admin-modal-upload-card{flex-direction:column;border:2px dashed var(--border-color);border-radius:var(--radius-md);aspect-ratio:1;color:var(--text-muted);cursor:pointer;font-size:.72rem;font-weight:500;transition:var(--transition-fast);text-align:center;padding:var(--spacing-xs);-webkit-user-select:none;-moz-user-select:none;user-select:none}.admin-modal-upload-card:hover{border-color:var(--border-hover);color:var(--text-primary);background:rgba(255,255,255,.03)}.admin-modal-upload-spinner{font-size:.72rem;color:var(--text-muted)}.admin-thumbnail-error{color:#ef4444;font-size:.7rem;margin-top:2px;line-height:1.2}.admin-photos-manager{margin-top:var(--spacing-md);border-top:1px solid var(--border-color);padding-top:var(--spacing-sm)}.admin-photos-toggle{display:inline-flex;align-items:center;background:transparent;border:none;color:var(--text-secondary);font-size:.82rem;font-weight:500;cursor:pointer;padding:4px 0;transition:var(--transition-fast)}.admin-photos-toggle:hover{color:var(--text-primary)}.admin-photos-panel{margin-top:var(--spacing-sm);padding:var(--spacing-md);background:rgba(0,0,0,.15);border:1px solid var(--border-color);border-radius:var(--radius-md)}.admin-photos-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));grid-gap:var(--spacing-md);gap:var(--spacing-md);max-height:480px;overflow-y:auto;padding:var(--spacing-xs)}.admin-photos-grid::-webkit-scrollbar{width:6px}.admin-photos-grid::-webkit-scrollbar-track{background:transparent}.admin-photos-grid::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:var(--radius-full)}.admin-photos-grid::-webkit-scrollbar-thumb:hover{background:var(--border-hover)}.admin-photos-empty{font-size:.82rem;color:var(--text-muted);text-align:center;grid-column:1/-1;padding:var(--spacing-md) 0}.admin-photo-card{display:flex;flex-direction:column;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);overflow:hidden;transition:var(--transition-fast);position:relative}.admin-photo-card:hover{border-color:var(--border-hover);box-shadow:0 4px 12px rgba(0,0,0,.2)}.admin-photo-card-cover{border-color:#3b82f6;box-shadow:0 0 0 1px #3b82f6}.admin-photo-card-deleting{opacity:.3;pointer-events:none}.admin-photo-thumb{width:100%;aspect-ratio:3/2;background:var(--bg-primary);overflow:hidden;border-bottom:1px solid var(--border-color);position:relative;flex-shrink:0}.admin-photo-thumb img{width:100%;height:100%;object-fit:cover}.admin-photo-cover-badge{position:absolute;top:6px;left:6px;background:#3b82f6;color:#ffffff;font-size:.6rem;font-weight:700;padding:2px 6px;border-radius:4px;text-transform:uppercase;letter-spacing:.5px}.admin-photo-info{padding:8px;flex:1 1;min-width:0;display:flex;align-items:center;justify-content:center}.admin-photo-name{font-size:.75rem;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:center}.admin-photo-actions-row{display:flex;border-top:1px solid var(--border-color);background:rgba(255,255,255,.02)}.admin-photo-action-btn{flex:1 1;height:32px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;color:var(--text-muted);cursor:pointer;transition:var(--transition-fast)}.admin-photo-action-btn:not(:last-child){border-right:1px solid var(--border-color)}.admin-photo-action-btn:hover:not(:disabled){background:rgba(255,255,255,.05);color:var(--text-primary)}.admin-photo-action-btn:disabled{opacity:.35;cursor:not-allowed}.admin-photo-btn-cover.active{color:#f59e0b}.admin-photo-btn-cover.active:hover{color:#d97706}.admin-photo-action-btn.admin-photo-btn-danger:hover:not(:disabled){background:rgba(239,68,68,.1);color:#ef4444}.admin-photo-upload-card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--spacing-xs);background:rgba(255,255,255,.01);border:2px dashed var(--border-color);border-radius:var(--radius-md);aspect-ratio:3/2;color:var(--text-muted);cursor:pointer;transition:var(--transition-fast);padding:var(--spacing-sm);-webkit-user-select:none;-moz-user-select:none;user-select:none;text-align:center}.admin-photo-upload-card:hover{border-color:var(--border-hover);color:var(--text-primary);background:rgba(255,255,255,.03)}.admin-photo-upload-card span{font-size:.72rem}.admin-photo-upload-spinner{font-size:.72rem;color:var(--text-muted)}.uploader{display:flex;flex-direction:column;gap:var(--spacing-md)}.uploader-empty{border:1px dashed var(--border-color);border-radius:var(--radius-md);color:var(--text-secondary);text-align:center;font-size:.95rem}.uploader-empty,.uploader-options{padding:var(--spacing-md);background:var(--bg-card)}.uploader-options{display:flex;flex-wrap:wrap;gap:var(--spacing-md);align-items:flex-end;border:1px solid var(--border-color);border-radius:var(--radius-md)}.uploader-field{display:flex;flex-direction:column;gap:6px;min-width:220px;flex:1 1}.uploader-field-narrow{min-width:120px;flex:0 0 120px}.uploader-field span{font-size:.78rem;text-transform:uppercase;letter-spacing:1.5px;color:var(--text-muted);font-weight:500}.uploader-field input,.uploader-field select{padding:10px 12px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);font:inherit;font-size:.95rem;transition:var(--transition-fast)}.uploader-field input:focus,.uploader-field select:focus{outline:none;border-color:var(--accent-blue)}.uploader-checkbox{display:inline-flex;align-items:center;gap:8px;font-size:.9rem;color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;padding-bottom:10px}.uploader-checkbox input[type=checkbox]{width:16px;height:16px;accent-color:var(--accent-blue);cursor:pointer}.uploader-dropzone{display:block;padding:var(--spacing-xl);border:2px dashed var(--border-color);border-radius:var(--radius-lg);background:var(--bg-card);text-align:center;cursor:pointer;transition:var(--transition-base)}.uploader-dropzone:hover{background:var(--bg-card-hover);border-color:var(--border-hover)}.uploader-dropzone-active{background:rgba(59,130,246,.08);border-color:var(--accent-blue);border-style:solid}.uploader-dropzone-content{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-xs);color:var(--text-secondary);pointer-events:none}.uploader-dropzone-text{font-size:1rem}.uploader-dropzone-text strong{color:var(--text-primary);font-weight:600}.uploader-dropzone-hint{font-size:.85rem;color:var(--text-muted)}.uploader-error{background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.3);border-radius:var(--radius-md);color:#fca5a5}.uploader-error,.uploader-success{padding:var(--spacing-sm) var(--spacing-md);font-size:.9rem}.uploader-success{background:rgba(134,239,172,.08);border:1px solid rgba(134,239,172,.3);border-radius:var(--radius-md);color:#86efac}.uploader-queue{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);overflow:hidden}.uploader-queue-header{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-md);background:var(--bg-tertiary);border-bottom:1px solid var(--border-color);font-size:.85rem;color:var(--text-secondary)}.uploader-queue-actions{display:flex;gap:var(--spacing-xs)}.uploader-btn-primary{padding:8px 16px;background:var(--text-primary);color:var(--bg-primary);border-radius:var(--radius-md);font-size:.85rem;font-weight:600;transition:var(--transition-fast)}.uploader-btn-primary:hover:not(:disabled){background:var(--text-secondary)}.uploader-btn-primary:disabled{opacity:.5;cursor:not-allowed}.uploader-btn-secondary{padding:8px 14px;background:transparent;color:var(--text-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);font-size:.85rem;transition:var(--transition-fast)}.uploader-btn-secondary:hover{color:var(--text-primary);border-color:var(--border-hover)}.uploader-list{list-style:none;display:flex;flex-direction:column}.uploader-list-item{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-md);border-bottom:1px solid var(--border-color);transition:var(--transition-fast)}.uploader-list-item:last-child{border-bottom:none}.uploader-list-item-done{background:rgba(134,239,172,.04)}.uploader-list-item-error{background:rgba(239,68,68,.04)}.uploader-list-info{min-width:0;flex:1 1}.uploader-list-name{font-size:.92rem;color:var(--text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.uploader-list-meta{margin-top:2px;font-size:.78rem;color:var(--text-muted);font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.uploader-list-error{margin-top:4px;font-size:.8rem;color:#fca5a5}.uploader-list-status{display:flex;align-items:center;gap:var(--spacing-xs);flex-shrink:0}.uploader-status{padding:3px 10px;font-size:.7rem;text-transform:uppercase;letter-spacing:1px;border:1px solid var(--border-color);border-radius:var(--radius-full);color:var(--text-muted);white-space:nowrap}.uploader-status-compressing,.uploader-status-saving,.uploader-status-uploading{color:var(--accent-blue);border-color:rgba(59,130,246,.3);background:rgba(59,130,246,.08);animation:uploader-pulse 1.4s ease-in-out infinite}.uploader-status-done{color:#86efac;border-color:rgba(134,239,172,.3);background:rgba(134,239,172,.08)}.uploader-status-error{color:#fca5a5;border-color:rgba(239,68,68,.3);background:rgba(239,68,68,.08)}@keyframes uploader-pulse{0%,to{opacity:1}50%{opacity:.55}}.uploader-list-remove{width:24px;height:24px;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-full);color:var(--text-muted);font-size:1.1rem;line-height:1;transition:var(--transition-fast)}.uploader-list-remove:hover{color:var(--text-primary);background:var(--bg-card-hover)}.collection-form{padding:var(--spacing-md);background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);display:flex;flex-direction:column;gap:var(--spacing-md)}.collection-form-grid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:var(--spacing-md);gap:var(--spacing-md)}.collection-form-full{grid-column:1/-1}.collection-form .auth-field textarea{padding:10px 12px;background:var(--bg-tertiary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);font:inherit;font-size:.95rem;resize:vertical;min-height:80px;transition:var(--transition-fast)}.collection-form .auth-field textarea:focus{outline:none;border-color:var(--accent-blue)}.collection-form-footer{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md);flex-wrap:wrap}.collection-form-submit{padding:10px 20px;margin-top:0;font-size:.9rem}@media (max-width:640px){.collection-form-grid{grid-template-columns:1fr}.uploader-options{flex-direction:column;align-items:stretch}.uploader-field,.uploader-field-narrow{flex:1 1 100%;min-width:0}}.footer{padding:var(--spacing-lg) 0;background:var(--bg-primary);border-top:1px solid var(--border-color)}.footer-content{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-xs);text-align:center}.footer-text{color:var(--text-muted);font-size:.9rem}.footer-tagline{font-family:var(--font-heading),serif;font-size:1.1rem;font-style:italic;color:var(--text-secondary)}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.animate-on-scroll{opacity:0;transform:translateY(30px);transition:opacity .6s ease-out,transform .6s ease-out}.animate-on-scroll.visible{opacity:1;transform:translateY(0)}@media (max-width:1024px){.hero-container{grid-template-columns:1fr;text-align:center}.hero-content{order:2}.hero-image-wrapper{order:1;justify-content:center;margin-bottom:var(--spacing-lg)}.hero-image-container{max-width:350px}.hero-intro{justify-content:center}.hero-description{margin-left:auto;margin-right:auto}.hero-links,.hero-tags{justify-content:center}.about-content{grid-template-columns:1fr}.about-image-container{max-width:400px;margin:0 auto}.about-image{height:400px}.project-card.featured{grid-column:span 1}.skills-grid{grid-template-columns:1fr}}@media (max-width:768px){:root{--spacing-2xl:3rem}.nav-menu{position:fixed;top:0;right:-100%;width:280px;height:100vh;background:var(--bg-secondary);flex-direction:column;padding:100px var(--spacing-lg) var(--spacing-lg);transition:var(--transition-base);border-left:1px solid var(--border-color)}.nav-menu.active{right:0}.nav-toggle{display:flex;z-index:1001}.nav-toggle.active span:first-child{transform:rotate(45deg) translate(5px,5px)}.nav-toggle.active span:nth-child(2){opacity:0}.nav-toggle.active span:nth-child(3){transform:rotate(-45deg) translate(5px,-5px)}.nav-dropdown-wrapper{width:100%}.nav-dropdown-trigger{width:100%;justify-content:space-between;padding:var(--spacing-xs) 0}.nav-dropdown{position:static;transform:none;background:var(--bg-tertiary);border:none;border-radius:var(--radius-sm);box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;margin-top:6px;padding:4px 0;width:100%}.nav-dropdown.open{animation:none}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.nav-dropdown-item{padding:8px 12px}.hero-title{font-size:clamp(2rem,8vw,3rem)}.hero-links{flex-direction:column;gap:var(--spacing-sm)}.about-details,.projects-grid{grid-template-columns:1fr}.about-image{height:350px}.contact-links{grid-template-columns:1fr}}@media (max-width:480px){.hero-tags{align-items:center}.hero-tags,.project-links{flex-direction:column}.project-link{justify-content:center}}