:root { --accent: #38bdf8; --dark: #050505; --light: #ffffff; --text-gray: #a0a0a0; }
* { box-sizing: border-box; margin: 0; padding: 0; }
body { background-color: var(--dark); color: var(--light); font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; overflow-x: hidden; line-height: 1.6; -webkit-font-smoothing: antialiased; }

/* ANIMAZIONI */
.reveal-on-scroll { opacity: 0; transform: translateY(30px); transition: all 0.8s ease-out; }
.reveal-on-scroll.is-visible { opacity: 1; transform: translateY(0); }

/* LOGO E TASTO LOGIN */
.logo-fixed { position: absolute; top: 20px; left: 5%; height:125px; width: auto; z-index: 9999; filter: invert(1); pointer-events: none; }
.login-ghost { position: absolute; top: 25px; right: 5%; z-index: 9999; font-family: sans-serif; font-size: 10px; font-weight: 700; letter-spacing: 1px; color: #fff; text-decoration: none; text-transform: uppercase; border: 1px solid rgba(255, 255, 255, 0.3); padding: 10px 18px; border-radius: 50px; backdrop-filter: blur(10px); transition: 0.3s; }
.login-ghost:hover { background: #fff; color: #000; }

/* HERO SECTION */
.hero { position: relative; height: 100vh; display: flex; align-items: center; padding: 0 5%; overflow: hidden; background: #000; }
.hero-slider { position: absolute; top: 0; left: 0; width: 100%; height: 100%; z-index: 1; }
.slide-hero { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-size: cover; background-position: center; opacity: 0; filter: brightness(0.4); animation: fadeHero 25s infinite; }
.slide-hero:nth-child(1) { animation-delay: 0s; }
.slide-hero:nth-child(2) { animation-delay: 5s; }
.slide-hero:nth-child(3) { animation-delay: 10s; }
.slide-hero:nth-child(4) { animation-delay: 15s; }
.slide-hero:nth-child(5) { animation-delay: 20s; }
@keyframes fadeHero { 0% {opacity:0} 4% {opacity:1} 20% {opacity:1} 24% {opacity:0} 100% {opacity:0} }

.hero-content { position: relative; z-index: 10; width: 100%; }
.hero-content h1 { font-size: 5.5rem; font-weight: 800; text-transform: uppercase; line-height: 0.9; margin-bottom: 25px; letter-spacing: -2px; }
.sub-text { border-left: 3px solid var(--accent); padding: 10px 20px; background: rgba(0,0,0,0.6); font-size: 1.1rem; max-width: 550px; }

/* STORIA */
.history-section { padding: 120px 10%; background: var(--dark); display: grid; grid-template-columns: 1fr 2.5fr; gap: 60px; }
.history-date { font-size: 5rem; font-weight: 800; color: transparent; -webkit-text-stroke: 1px var(--accent); opacity: 0.4; line-height: 1; }
.history-content h2 { font-size: 2.5rem; text-transform: uppercase; margin-bottom: 25px; color: #fff; }
.history-content p { color: var(--text-gray); margin-bottom: 20px; font-size: 1.1rem; text-align: justify; }

/* COMPETENZE */
.works-section { padding: 60px 5% 50px; background: var(--dark); }
.zones-bar { border-top: 1px solid #222; border-bottom: 1px solid #222; padding: 20px 0; margin-bottom: 60px; font-size: 0.8rem; color: var(--accent); text-align: center; letter-spacing: 2px; }
.services-overview { max-width: 900px; margin: 0 auto 50px; padding: 50px; border: 1px solid #1a1a1a; background: #080808; text-align: center; }
.services-overview h3 { font-size: 1.8rem; margin-bottom: 30px; letter-spacing: 2px; text-transform: uppercase; color: #fff; }
.services-overview p { font-size: 1.15rem; color: var(--text-gray); line-height: 1.8; }

/* PORTFOLIO */
.photo-showcase { width: 100%; height: 75vh; position: relative; overflow: hidden; border: 1px solid #1a1a1a; background: #000; margin-top: 40px; }
.showcase-slide { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-size: contain; background-repeat: no-repeat; background-position: center; opacity: 0; transition: opacity 0.5s ease-in-out; }
.showcase-slide.active { opacity: 1; }
.nav-arrow { position: absolute; top: 50%; transform: translateY(-50%); background: rgba(0,0,0,0.7); color: #fff; border: 1px solid #333; width: 60px; height: 60px; cursor: pointer; z-index: 100; font-size: 24px; display: flex; align-items: center; justify-content: center; }
.prev-arrow { left: 10px; }
.next-arrow { right: 10px; }
.photo-counter { position: absolute; bottom: 20px; right: 20px; background: rgba(0,0,0,0.8); color: #fff; padding: 5px 15px; font-family: monospace; font-size: 12px; z-index: 100; border: 1px solid #333; }

/* FORM CONTATTI */
.contact-section { padding: 100px 5%; background: #080808; border-top: 1px solid #1a1a1a; }
.contact-container { max-width: 800px; margin: 0 auto; }
.contact-container h3 { font-size: 2rem; text-transform: uppercase; text-align: center; margin-bottom: 40px; letter-spacing: 2px; color: var(--accent); }
.contact-form { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.contact-form .full-width { grid-column: span 2; }
.contact-form input, .contact-form textarea { width: 100%; padding: 15px; background: #111; border: 1px solid #222; color: #fff; font-size: 1rem; outline: none; transition: 0.3s; }
.contact-form input:focus, .contact-form textarea:focus { border-color: var(--accent); background: #151515; }
.contact-form textarea { height: 150px; resize: none; }
.btn-send { grid-column: span 2; padding: 18px; background: var(--accent); color: #000; border: none; font-weight: 800; text-transform: uppercase; letter-spacing: 2px; cursor: pointer; transition: 0.3s; margin-top: 10px; }
.btn-send:hover { background: #fff; transform: translateY(-3px); }

/* FOOTER */
footer { border-top: 1px solid #1a1a1a; padding: 60px 10%; background: #000; font-family: monospace; }

/* MOBILE ADAPTATION */
@media (max-width: 768px) {
    .logo-fixed { height: 90px; }
    .hero-content h1 { font-size: 2.8rem; }
    .history-section { grid-template-columns: 1fr; padding: 80px 8%; }
    .history-date { font-size: 3.5rem; }
    .services-overview { padding: 30px 20px; }
    .photo-showcase { height: 50vh; }
    .nav-arrow { width: 45px; height: 45px; }
    .contact-form { grid-template-columns: 1fr; }
    .contact-form .full-width, .btn-send { grid-column: span 1; }
    footer { text-align: left; }
}
