@import "https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600&family=Playfair+Display:ital,wght@0,400;0,500;1,400&display=swap";:root{--bg-primary:#0a0a0c;--bg-secondary:#121216;--bg-tertiary:#1a1a1f;--fg-primary:#f4f4f5;--fg-secondary:#a1a1aa;--fg-muted:#52525b;--accent:#93c5fd;--bg-line-color:#93c5fd;--accent-light:#bfdbfe;--accent-rgb:147, 197, 253;--border:#27272a;--border-hover:#3f3f46;--shadow-sm:0 2px 8px #00000080;--shadow-md:0 10px 20px -5px #000000b3;--shadow-lg:0 20px 40px -15px #000000e6;--font-sans:"Outfit", system-ui, -apple-system, sans-serif;--font-serif:"Playfair Display", Georgia, serif;--transition-fast:.2s cubic-bezier(.25, .8, .25, 1);--transition-normal:.3s cubic-bezier(.25, .8, .25, 1);--transition-slow:.5s cubic-bezier(.25, .8, .25, 1)}*{box-sizing:border-box;margin:0;padding:0}html{background-color:var(--bg-primary);color:var(--fg-primary);font-family:var(--font-sans);scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:300}body{background-color:var(--bg-primary);background-image:radial-gradient(circle at 10% 20%,#14141926 0%,#0000 80%),radial-gradient(circle at 90% 80%,#93c5fd08 0%,#0000 60%);background-attachment:fixed;min-height:100vh;overflow-x:hidden}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{transition:var(--transition-fast);background:#93c5fd40;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#93c5fd99}.app-container{flex-direction:column;max-width:1440px;min-height:100vh;margin:0 auto;padding:2rem clamp(1rem,5vw,4rem);display:flex}.app-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;margin-bottom:3rem;padding-bottom:2rem;animation:.8s ease-out fadeInDown;display:flex}.logo-group{color:var(--fg-primary);cursor:pointer;text-decoration:none}.logo-title{letter-spacing:.15em;text-transform:uppercase;background:linear-gradient(135deg, var(--fg-primary) 30%, var(--accent) 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:1.5rem;font-weight:500}.logo-subtitle{letter-spacing:.3em;color:var(--fg-secondary);text-transform:uppercase;margin-top:.25rem;font-size:.75rem;font-weight:400}.nav-links{align-items:center;gap:2rem;display:flex}.nav-button{cursor:pointer;color:var(--fg-secondary);letter-spacing:.1em;text-transform:uppercase;transition:var(--transition-fast);font-size:.85rem;font-weight:400;font-family:var(--font-sans);background:0 0;border:none;padding:.5rem 0;position:relative}.nav-button:after{content:"";background-color:var(--accent);width:0;height:1px;transition:var(--transition-fast);position:absolute;bottom:0;left:0}.nav-button:hover{color:var(--fg-primary)}.nav-button:hover:after{width:100%}.nav-button.active{color:var(--accent);font-weight:500}.nav-button.active:after{background-color:var(--accent);width:100%}.hero-section{text-align:center;margin-bottom:3.5rem;animation:1s ease-out fadeIn}.hero-subtitle{font-family:var(--font-sans);color:var(--accent);letter-spacing:.35em;text-transform:uppercase;margin-bottom:1rem;font-size:.8rem;font-weight:500}.hero-title{font-family:var(--font-serif);color:var(--fg-primary);margin-bottom:1.5rem;font-size:clamp(2rem,5vw,3.5rem);font-style:italic;font-weight:400;line-height:1.2}.hero-desc{max-width:600px;color:var(--fg-secondary);margin:0 auto;font-size:.95rem;font-weight:300;line-height:1.8}.filter-container{flex-wrap:wrap;justify-content:center;gap:.75rem;margin-bottom:3rem;animation:1.2s ease-out fadeIn;display:flex}.filter-btn{border:1px solid var(--border);color:var(--fg-secondary);font-family:var(--font-sans);letter-spacing:.05em;cursor:pointer;transition:var(--transition-normal);background:0 0;border-radius:2rem;padding:.6rem 1.5rem;font-size:.85rem;font-weight:400}.filter-btn:hover{border-color:var(--fg-secondary);color:var(--fg-primary);transform:translateY(-1px)}.filter-btn.active{background:var(--fg-primary);border-color:var(--fg-primary);color:var(--bg-primary);box-shadow:0 4px 12px #ffffff1a}.gallery-wrapper{flex-grow:1;animation:1s ease-out fadeInUp}.gallery-grid{column-count:3;column-gap:2rem;width:100%}@media (width<=1100px){.gallery-grid{column-count:2;column-gap:1.5rem}}@media (width<=640px){.gallery-grid{column-count:1;column-gap:0}}.gallery-item{break-inside:avoid;background-color:var(--bg-secondary);border:1px solid var(--border);cursor:pointer;transition:var(--transition-normal);border-radius:12px;margin-bottom:2rem;display:block;position:relative;overflow:hidden}.gallery-item:hover{border-color:var(--border-hover);box-shadow:var(--shadow-lg);transform:translateY(-6px)}.image-container{background-color:#17171c;width:100%;position:relative;overflow:hidden}.gallery-image{width:100%;height:auto;transition:transform .6s cubic-bezier(.25,.8,.25,1);display:block}.gallery-item:hover .gallery-image{transform:scale(1.04)}.item-overlay{opacity:0;background:linear-gradient(#0a0a0c00 0%,#0a0a0cb3 40%,#0a0a0cf2 100%);flex-direction:column;justify-content:flex-end;padding:2.5rem 1.5rem 1.5rem;transition:opacity .3s,transform .3s;display:flex;position:absolute;bottom:0;left:0;right:0;transform:translateY(10px)}.gallery-item:hover .item-overlay{opacity:1;transform:translateY(0)}.item-title{font-family:var(--font-serif);color:var(--fg-primary);margin-bottom:.4rem;font-size:1.25rem;font-style:italic;font-weight:400}.item-meta{color:var(--fg-secondary);letter-spacing:.05em;justify-content:space-between;align-items:center;font-size:.75rem;display:flex}.item-category{color:var(--accent);font-weight:400}.lightbox-overlay{-webkit-backdrop-filter:blur(12px);z-index:1000;background-color:#060606eb;justify-content:center;align-items:center;padding:2rem;animation:.3s ease-out forwards fadeIn;display:flex;position:fixed;inset:0}.lightbox-container{background-color:var(--bg-secondary);border:1px solid var(--border);width:90%;max-width:1100px;height:80vh;box-shadow:var(--shadow-lg);border-radius:16px;flex-direction:row;animation:.4s cubic-bezier(.25,.8,.25,1) forwards scaleIn;display:flex;position:relative;overflow:hidden}@media (width<=900px){.lightbox-container{flex-direction:column;max-width:600px;height:90vh}}.lightbox-media{background-color:#030304;flex:3;justify-content:center;align-items:center;padding:1.5rem;display:flex;position:relative;overflow:hidden}.lightbox-image{object-fit:contain;max-width:100%;max-height:100%;box-shadow:var(--shadow-md);border-radius:4px;transition:transform .3s}.lightbox-details{border-left:1px solid var(--border);background-color:var(--bg-secondary);flex-direction:column;flex:2;justify-content:space-between;padding:3rem 2.5rem;display:flex;overflow-y:auto}@media (width<=900px){.lightbox-details{border-left:none;border-top:1px solid var(--border);flex:none;height:auto;padding:1.5rem}.lightbox-media{flex:1;min-height:40vh}}.details-content{flex-direction:column;display:flex}.lightbox-category{text-transform:uppercase;color:var(--accent);letter-spacing:.2em;margin-bottom:.75rem;font-size:.8rem;font-weight:500}.lightbox-title{font-family:var(--font-serif);color:var(--fg-primary);margin-bottom:1.5rem;font-size:2rem;font-style:italic;font-weight:400;line-height:1.2}.details-grid{border-top:1px solid var(--border);border-bottom:1px solid var(--border);grid-template-columns:auto 1fr;gap:.75rem 1.5rem;margin-bottom:2rem;padding:1.25rem 0;font-size:.85rem;display:grid}.details-label{color:var(--fg-muted);font-weight:500}.details-value{color:var(--fg-secondary)}.lightbox-desc{color:var(--fg-secondary);margin-bottom:1.5rem;font-size:.9rem;font-weight:300;line-height:1.8}.close-btn{border:1px solid var(--border);color:var(--fg-primary);cursor:pointer;width:2.5rem;height:2.5rem;transition:var(--transition-fast);z-index:1010;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0a0a0c99;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;top:1.5rem;right:1.5rem}.close-btn:hover{background:var(--fg-primary);color:var(--bg-primary);transform:rotate(90deg)}.nav-arrow{border:1px solid var(--border);color:var(--fg-primary);cursor:pointer;width:3rem;height:3rem;transition:var(--transition-normal);z-index:1005;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0a0a0c66;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.nav-arrow:hover{background:var(--fg-primary);color:var(--bg-primary);border-color:var(--fg-primary)}.nav-arrow.prev{left:1rem}.nav-arrow.next{right:1rem}.nav-arrow:hover.prev{transform:translate(-3px,-50%)}.nav-arrow:hover.next{transform:translate(3px,-50%)}.home-layout{flex-direction:column;gap:5rem;animation:.8s ease-out fadeInUp;display:flex}.home-hero{grid-template-columns:1.2fr 1fr;align-items:center;gap:4rem;min-height:45vh;display:grid}@media (width<=900px){.home-hero{text-align:center;grid-template-columns:1fr;gap:2.5rem}}.home-hero-text{flex-direction:column;gap:1.5rem;display:flex}.home-hero-title{font-family:var(--font-serif);color:var(--fg-primary);font-size:clamp(2.5rem,6vw,4.5rem);font-style:italic;font-weight:400;line-height:1.1}.home-hero-subtitle{color:var(--accent);letter-spacing:.3em;text-transform:uppercase;font-size:.9rem;font-weight:500}.home-hero-desc{color:var(--fg-secondary);font-size:1.05rem;font-weight:300;line-height:1.8}.home-hero-image-wrapper{border:1px solid var(--border);aspect-ratio:4/3;box-shadow:var(--shadow-lg);transition:var(--transition-normal);border-radius:16px;position:relative;overflow:hidden}.home-hero-image-wrapper:hover{border-color:var(--border-hover);transform:translateY(-4px)}.home-hero-image{object-fit:cover;width:100%;height:100%;transition:transform .6s cubic-bezier(.25,.8,.25,1);display:block}.home-hero-image-wrapper:hover .home-hero-image{transform:scale(1.03)}.home-section{border-top:1px solid var(--border);grid-template-columns:200px 1fr;gap:3rem;padding-top:3rem;display:grid}@media (width<=768px){.home-section{grid-template-columns:1fr;gap:1.5rem;padding-top:2rem}}.section-title{font-family:var(--font-serif);color:var(--fg-primary);font-size:1.5rem;font-style:italic;font-weight:400}.section-content{flex-direction:column;gap:2rem;display:flex}.about-text{color:var(--fg-secondary);font-size:1rem;font-weight:300;line-height:1.8}.skills-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem;display:grid}.skill-card{background-color:var(--bg-secondary);border:1px solid var(--border);transition:var(--transition-normal);border-radius:12px;padding:1.5rem}.skill-card:hover{border-color:var(--border-hover);background-color:var(--bg-tertiary);transform:translateY(-2px)}.skill-header{justify-content:space-between;align-items:center;margin-bottom:.75rem;display:flex}.skill-name{color:var(--fg-primary);letter-spacing:.05em;font-size:.95rem;font-weight:500}.skill-value{color:var(--accent);font-size:.85rem;font-weight:600}.skill-details{color:var(--fg-secondary);margin-bottom:1rem;font-size:.8rem}.skill-progress-bg{background-color:var(--border);border-radius:2px;width:100%;height:4px;overflow:hidden}.skill-progress-bar{background:linear-gradient(90deg, var(--accent) 0%, var(--accent-light) 100%);border-radius:2px;height:100%}.timeline{flex-direction:column;gap:2.5rem;padding-left:1.5rem;display:flex;position:relative}.timeline:before{content:"";background-color:var(--border);width:1px;position:absolute;top:.5rem;bottom:.5rem;left:0}.timeline-item{position:relative}.timeline-dot{background-color:var(--accent);border:2px solid var(--bg-primary);border-radius:50%;width:10px;height:10px;position:absolute;top:.5rem;left:calc(-1.5rem - 4.5px);box-shadow:0 0 0 2px #93c5fd33}.timeline-header{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.5rem;margin-bottom:.5rem;display:flex}.timeline-year{color:var(--accent);letter-spacing:.1em;font-size:.85rem;font-weight:600}.timeline-title{color:var(--fg-primary);font-size:1.05rem;font-weight:500}.timeline-subtitle{color:var(--fg-secondary);font-size:.85rem;font-weight:400}.timeline-desc{color:var(--fg-secondary);font-size:.9rem;font-weight:300;line-height:1.6}.contact-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.5rem;display:grid}.contact-card{border:1px solid var(--border);transition:var(--transition-normal);background-color:var(--bg-secondary);border-radius:12px;flex-direction:column;gap:.5rem;padding:1.5rem;display:flex}.contact-card:hover{border-color:var(--border-hover);transform:translateY(-2px)}.contact-label{color:var(--fg-muted);text-transform:uppercase;letter-spacing:.1em;font-size:.75rem}.contact-value{color:var(--fg-primary);word-break:break-all;font-size:.95rem;font-weight:400}.app-footer{border-top:1px solid var(--border);color:var(--fg-muted);justify-content:space-between;align-items:center;margin-top:5rem;padding-top:2rem;font-size:.8rem;animation:1.5s ease-out fadeIn;display:flex}.footer-left{letter-spacing:.05em}.footer-right{gap:1.5rem;display:flex}.footer-link{color:var(--fg-muted);transition:var(--transition-fast);cursor:pointer;text-decoration:none}.footer-link:hover{color:var(--accent)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.bg-architecture{pointer-events:none;z-index:-1;background:url(/bg-architecture.svg) 50%/cover no-repeat;position:fixed;inset:0}.bg-architecture path{stroke:#fff;stroke-dasharray:800;stroke-dashoffset:800px;animation:10s linear infinite drawLine}@keyframes drawLine{to{stroke-dashoffset:0}}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}
