*{margin:0;padding:0;box-sizing:border-box}
:root{--black:#0a0a0a;--white:#f5f3ef;--accent:#c8ff00;--gray:#2a2a2a;--mid:#555;--light:#888}
html{scroll-behavior:smooth}
body{background:var(--black);color:var(--white);font-family:'DM Sans',sans-serif;min-height:100vh;overflow-x:hidden}

nav{position:fixed;top:0;left:0;right:0;z-index:100;padding:1.25rem 1.5rem;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem}
@media(min-width:900px){nav{padding:1.5rem 3rem}}
nav::after{content:'';position:absolute;inset:0;background:linear-gradient(to bottom,rgba(10,10,10,.9) 0%,transparent 100%);z-index:-1}
.nav-logo{font-family:'Bebas Neue','Impact',sans-serif;font-size:1.5rem;letter-spacing:.05em;color:var(--white);text-decoration:none}
.nav-logo span{color:var(--accent)}
.nav-links{display:flex;gap:1.25rem;list-style:none;flex-wrap:wrap}
.nav-links a{color:var(--light);text-decoration:none;font-size:.78rem;letter-spacing:.15em;text-transform:uppercase;transition:color .2s}
.nav-links a:hover{color:var(--white)}

#hero{min-height:100vh;display:flex;flex-direction:column;justify-content:flex-end;padding:4rem 1.5rem;position:relative;overflow:hidden}
@media(min-width:900px){#hero{padding:4rem 3rem}}
.hero-bg-fallback{position:absolute;inset:0;background:linear-gradient(135deg,#0a0a0a 0%,#1a1a1a 50%,#0a0a0a 100%);z-index:0}
.hero-slides{position:absolute;inset:0;z-index:0}
.hero-slide{position:absolute;inset:0;opacity:0;transition:opacity 1.4s cubic-bezier(.4,0,.2,1);will-change:opacity;overflow:hidden}
.hero-slide.active{opacity:1}
/* Fundo: mesma imagem em cover + blur — preenche o ecrã sem “buracos” */
.hero-slide-fill{position:absolute;inset:-8%;width:116%;height:116%;object-fit:cover;object-position:center;filter:blur(32px) brightness(.4) saturate(1.15);transform:scale(1.06);pointer-events:none;z-index:0}
/* Frente: foto completa visível (sem cortar) */
.hero-slide-main{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;object-position:center;z-index:1}
.hero-slide-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(10,10,10,.88) 0%,rgba(10,10,10,.25) 45%,rgba(10,10,10,.12) 100%);pointer-events:none;z-index:2}
.hero-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(200,255,0,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(200,255,0,.03) 1px,transparent 1px);background-size:80px 80px;z-index:1;pointer-events:none}
.hero-number{position:absolute;top:45%;right:1rem;transform:translateY(-50%);font-family:'Bebas Neue','Impact',sans-serif;font-size:min(25vw,12rem);color:rgba(255,255,255,.02);line-height:1;z-index:0;pointer-events:none}
@media(min-width:600px){.hero-number{right:3rem;font-size:25vw}}
.hero-content{position:relative;z-index:2}
.hero-tag{font-size:.68rem;letter-spacing:.28em;text-transform:uppercase;color:var(--accent);margin-bottom:1.25rem}
.hero-title{font-family:'Bebas Neue','Impact',sans-serif;font-size:clamp(2.8rem,12vw,9rem);line-height:.9;letter-spacing:.02em;margin-bottom:1.5rem}
.hero-title em{font-style:normal;color:transparent;-webkit-text-stroke:1px var(--white)}
.hero-sub{font-size:.88rem;color:rgba(255,255,255,.55);max-width:320px;line-height:1.7;font-weight:300}
.hero-dots{position:absolute;bottom:5.5rem;left:50%;transform:translateX(-50%);display:flex;gap:.45rem;z-index:2;flex-wrap:wrap;justify-content:center;max-width:90vw}
@media(min-width:768px){.hero-dots{bottom:3rem}}
.hero-dot{width:22px;height:2px;background:rgba(255,255,255,.22);cursor:pointer;transition:all .3s;border:none;padding:0;border-radius:1px}
.hero-dot.active{background:var(--accent);width:36px}
.hero-counter{position:absolute;bottom:5.8rem;right:1rem;font-size:.62rem;letter-spacing:.18em;color:rgba(255,255,255,.28);z-index:2;font-family:'Bebas Neue','Impact',sans-serif}
@media(min-width:768px){.hero-counter{bottom:3.2rem;right:6rem}}
.hero-scroll{position:absolute;bottom:2rem;right:1.5rem;font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.25);writing-mode:vertical-rl;z-index:2;display:none}
@media(min-width:768px){.hero-scroll{display:block;bottom:3rem;right:3rem}}

section{padding:4rem 1.5rem}
@media(min-width:900px){section{padding:6rem 3rem}}
.section-label{font-size:.62rem;letter-spacing:.28em;text-transform:uppercase;color:var(--accent);margin-bottom:2rem;display:flex;align-items:center;gap:1rem}
.section-label::after{content:'';flex:1;height:1px;background:var(--gray)}

#portfolio{padding-top:3rem}
@media(min-width:900px){#portfolio{padding-top:4rem}}
.categories-bar{display:flex;gap:.5rem;margin-bottom:2rem;flex-wrap:wrap;padding:0 1.5rem}
@media(min-width:900px){.categories-bar{padding:0 3rem}}
.cat-btn{font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;padding:.42rem 1rem;border:1px solid var(--gray);color:var(--mid);background:none;cursor:pointer;transition:all .2s;font-family:'DM Sans',sans-serif}
.cat-btn:hover,.cat-btn.active{border-color:var(--accent);color:var(--accent);background:rgba(200,255,0,.05)}

.portfolio-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:4px;padding:0}
@media(min-width:768px){.portfolio-grid{grid-template-columns:repeat(12,1fr)}}
.work-item{position:relative;overflow:hidden;cursor:pointer;background:var(--gray);grid-column:span 6}
@media(min-width:768px){
  .work-item.large{grid-column:span 8;aspect-ratio:16/10}
  .work-item.medium{grid-column:span 4;aspect-ratio:4/5}
  .work-item.small{grid-column:span 4;aspect-ratio:1}
  .work-item.wide{grid-column:span 6;aspect-ratio:16/9}
}
@media(max-width:767px){
  .work-item{grid-column:span 6;aspect-ratio:4/5}
}
.work-placeholder{width:100%;height:100%;min-height:180px;display:flex;align-items:center;justify-content:center}
.work-item img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .55s cubic-bezier(.25,.46,.45,.94)}
.work-item:hover img{transform:scale(1.03)}
.work-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(10,10,10,.88) 0%,transparent 55%);opacity:0;transition:opacity .3s;display:flex;flex-direction:column;justify-content:flex-end;padding:1.25rem}
.work-item:hover .work-overlay{opacity:1}
.work-title{font-family:'Bebas Neue','Impact',sans-serif;font-size:1.2rem;letter-spacing:.05em}
@media(min-width:600px){.work-title{font-size:1.4rem}}
.work-cat{font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);margin-top:.2rem}

#about .about-wrap{display:grid;grid-template-columns:1fr;gap:2.5rem;align-items:center}
@media(min-width:900px){#about .about-wrap{grid-template-columns:1fr 1.15fr;gap:4rem}}
.about-frame{aspect-ratio:3/4;background:#1a1a1a;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;max-width:400px;margin:0 auto}
.about-frame-border{position:absolute;top:1.25rem;left:1.25rem;right:-1.25rem;bottom:-1.25rem;border:1px solid var(--accent);z-index:-1}
.about-text h2{font-family:'Bebas Neue','Impact',sans-serif;font-size:clamp(2.2rem,6vw,3.5rem);line-height:1;margin-bottom:1.5rem;letter-spacing:.02em}
.about-text p{color:var(--light);line-height:1.8;font-size:.88rem;font-weight:300;margin-bottom:1.25rem}
.about-stats{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin-top:2.5rem;padding-top:2.5rem;border-top:1px solid var(--gray)}
.stat-num{font-family:'Bebas Neue','Impact',sans-serif;font-size:2.5rem;color:var(--accent);line-height:1}
@media(min-width:600px){.stat-num{font-size:3rem}}
.stat-label{font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;color:var(--mid);margin-top:.25rem}

#contact{text-align:center;padding:5rem 1.5rem}
@media(min-width:900px){#contact{padding:8rem 3rem}}
#contact h2{font-family:'Bebas Neue','Impact',sans-serif;font-size:clamp(2.5rem,8vw,7rem);line-height:.9;margin-bottom:1.5rem}
#contact h2 em{font-style:normal;color:transparent;-webkit-text-stroke:1px var(--white)}
.contact-links{display:flex;gap:1.5rem;justify-content:center;margin-top:2rem;flex-wrap:wrap}
.contact-link{font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--light);text-decoration:none;border-bottom:1px solid var(--gray);padding-bottom:.25rem;transition:all .2s}
.contact-link:hover{color:var(--accent);border-color:var(--accent)}

footer{padding:1.5rem;flex-direction:column;gap:.5rem;border-top:1px solid var(--gray);display:flex;justify-content:space-between;align-items:center}
@media(min-width:600px){footer{padding:2rem 3rem;flex-direction:row}}
footer p{font-size:.65rem;color:var(--mid);letter-spacing:.08em}

#lightbox{position:fixed;inset:0;background:rgba(10,10,10,.97);z-index:200;display:none;align-items:center;justify-content:center;flex-direction:column;padding:1rem}
#lightbox.open{display:flex}
.lb-close{position:absolute;top:1rem;right:1rem;font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--light);cursor:pointer;border:none;background:none;font-family:'DM Sans',sans-serif}
.lb-close:hover{color:var(--white)}
.lb-img{max-width:90vw;max-height:68vh;object-fit:contain}
.lb-info{margin-top:1rem;text-align:center}
.lb-title{font-family:'Bebas Neue','Impact',sans-serif;font-size:1.5rem;letter-spacing:.05em}
.lb-cat-tag{font-size:.62rem;letter-spacing:.25em;text-transform:uppercase;color:var(--accent);margin-top:.25rem}
.lb-nav{display:flex;gap:1.5rem;margin-top:1.25rem;align-items:center;flex-wrap:wrap;justify-content:center}
.lb-nav button{font-size:.65rem;letter-spacing:.18em;text-transform:uppercase;color:var(--light);cursor:pointer;border:1px solid var(--gray);padding:.5rem 1.1rem;background:none;font-family:'DM Sans',sans-serif;transition:all .2s}
.lb-nav button:hover{color:var(--accent);border-color:var(--accent)}
.lb-counter{font-size:.65rem;color:var(--mid)}
.lb-thumbnails{display:flex;gap:.4rem;margin-top:1rem;max-width:90vw;overflow-x:auto;padding-bottom:.4rem}
.lb-thumb{width:52px;height:52px;object-fit:cover;cursor:pointer;opacity:.5;transition:opacity .2s;border:1px solid transparent;flex-shrink:0}
.lb-thumb.active{opacity:1;border-color:var(--accent)}

.empty-state{text-align:center;padding:4rem 1.5rem;color:var(--mid)}
.empty-state p{font-size:.82rem;letter-spacing:.06em}
