:root{--bg:#070707;--panel:#101010;--text:#f4f4f4;--muted:#a4a4a4;--red:#f0141e;--line:#343434;--max:1240px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:Arial,Helvetica,sans-serif;line-height:1.55}a{color:inherit;text-decoration:none}.site-header{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;padding:22px 5vw;background:rgba(7,7,7,.94);border-bottom:1px solid #222;backdrop-filter:blur(12px)}.brand{display:flex;align-items:center;gap:12px}.brand strong,.brand em{display:block;font-style:normal;letter-spacing:.04em}.brand strong{font-size:15px}.brand em{color:var(--red);font-size:15px}.brand-mark{position:relative;width:38px;height:38px;display:block;border:3px solid #fff;clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%)}.brand-mark:after{content:"";position:absolute;inset:3px;background:var(--red);clip-path:polygon(50% 0,100% 25%,50% 50%,0 25%)}.nav{display:flex;gap:28px;font-size:13px;text-transform:uppercase;letter-spacing:.08em}.nav a:hover{color:var(--red)}.menu-toggle{display:none;background:none;color:#fff;border:0;font-size:25px}.section-grid,.section{max-width:var(--max);margin:auto;padding:100px 5vw}.hero{display:grid;grid-template-columns:1.1fr .9fr;gap:60px;align-items:center;min-height:680px}.eyebrow{color:var(--red);font-size:11px;letter-spacing:.18em;font-weight:bold;margin:0 0 18px}.hero h1{font-size:clamp(42px,6vw,82px);line-height:1.04;letter-spacing:-.05em;margin:0 0 28px}.hero h1 span{color:var(--red)}.lead{font-size:18px;color:#c6c6c6;max-width:540px}.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin:32px 0}.button{display:inline-block;padding:13px 19px;font-size:12px;text-transform:uppercase;letter-spacing:.08em;font-weight:bold;border:1px solid var(--red)}.button-red{background:var(--red);color:#fff}.button-line{border-color:#777}.button:hover{transform:translateY(-2px)}.hero-meta{display:flex;gap:22px;color:#8c8c8c;font-size:11px;flex-wrap:wrap}.hero-visual{min-height:430px;display:grid;place-items:center}.technical-frame{position:relative;width:min(100%,480px);aspect-ratio:1;border:1px solid #555;background:linear-gradient(135deg,#0b0b0b,#151515);display:grid;place-items:center}.technical-frame:before,.technical-frame:after{content:"";position:absolute;background:#555}.technical-frame:before{width:80%;height:1px;top:12%;left:10%}.technical-frame:after{height:80%;width:1px;left:12%;top:10%}.dimension{position:absolute;border:1px dashed #777}.dimension.top{width:70%;height:80%;top:10%;left:15%}.dimension.side{width:80%;height:70%;top:15%;left:10%;opacity:.35}.house-mark{width:58%;height:48%;position:relative;transform:skewY(-10deg)}.roof{position:absolute;top:0;left:18%;width:64%;height:35%;background:var(--red);border:5px solid white;transform:skewX(-25deg)}.wall{position:absolute;bottom:0;width:42%;height:65%;border:5px solid white;background:#050505}.wall.left{left:0}.wall.right{right:0}.frame-label{position:absolute;bottom:18px;left:22px;font-size:9px;letter-spacing:.16em;color:#999}.split{display:grid;grid-template-columns:1fr 1fr;gap:90px;border-top:1px solid var(--line)}h2{font-size:clamp(30px,4vw,52px);line-height:1.1;letter-spacing:-.04em;margin:0 0 22px}p{color:#bdbdbd}.profile{display:flex;align-items:center;gap:15px;margin-top:30px}.profile img{width:72px;height:72px;object-fit:cover;filter:grayscale(1);border:1px solid #444}.profile strong,.profile span{display:block}.profile span{font-size:12px;color:#999}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}.service-grid article{background:var(--panel);padding:28px;min-height:220px}.service-grid span,.project-overlay span{color:var(--red);font-size:11px;letter-spacing:.14em}.service-grid h3{font-size:20px;line-height:1.2;margin:22px 0 10px}.service-grid p{font-size:14px}.section-heading{display:flex;justify-content:space-between;gap:30px;align-items:end;margin-bottom:30px}.section-heading>p{max-width:300px;font-size:13px}.project-grid{display:grid;grid-template-columns:1.35fr 1fr;gap:18px}.project-card{position:relative;min-height:400px;overflow:hidden;background:#111}.project-card img{width:100%;height:100%;object-fit:cover;display:block;filter:brightness(.75)}.project-overlay{position:absolute;bottom:0;left:0;right:0;padding:30px;background:linear-gradient(transparent,rgba(0,0,0,.95))}.project-overlay h3{font-size:24px;line-height:1.15;margin:10px 0}.project-overlay p{font-size:13px;margin:0}.gallery{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;margin-top:18px}.gallery img{width:100%;height:125px;object-fit:cover;filter:saturate(.8);cursor:zoom-in}.skills{display:grid;grid-template-columns:1fr 1fr;gap:80px;border-top:1px solid var(--line)}.skill-list{border-top:1px solid var(--line)}.skill-list div{display:flex;justify-content:space-between;gap:20px;padding:15px 0;border-bottom:1px solid var(--line);font-size:13px}.skill-list span{color:#888;text-align:right}.contact{display:grid;grid-template-columns:1fr 1fr;gap:80px;border-top:1px solid var(--line)}.contact-box{background:var(--panel);border:1px solid #292929;padding:30px}.contact-box p{border-bottom:1px solid #292929;padding-bottom:15px}.contact-box span{display:block;color:var(--red);font-size:10px;letter-spacing:.15em;margin-bottom:4px}.contact-box a:not(.button){text-decoration:underline;text-underline-offset:4px}.footer{display:flex;justify-content:space-between;gap:30px;padding:30px 5vw;border-top:1px solid #222;color:#777;font-size:11px}.footer strong,.footer span{display:block}.footer strong{color:#fff}.footer span{color:var(--red)}@media(max-width:800px){.nav{display:none;position:absolute;top:83px;left:0;right:0;padding:25px 5vw;background:#080808;flex-direction:column}.nav.open{display:flex}.menu-toggle{display:block}.hero,.split,.skills,.contact{grid-template-columns:1fr;gap:35px}.hero{padding-top:65px}.hero-visual{min-height:330px}.service-grid{grid-template-columns:1fr 1fr}.project-grid{grid-template-columns:1fr}.gallery{grid-template-columns:repeat(3,1fr)}.section-heading{display:block}.footer{display:block}.footer>div+div{margin-top:18px}}@media(max-width:480px){.service-grid{grid-template-columns:1fr}.gallery{grid-template-columns:repeat(2,1fr)}.hero h1{font-size:45px}.section-grid,.section{padding-top:70px;padding-bottom:70px}}

/* Logo originale del biglietto da visita: immagine usata senza ritocchi. */
.brand-logo-image {
  width: 54px;
  height: 42px;
  object-fit: cover;
  object-position: center;
  display: block;
  border: 0;
}
.hero-logo-original {
  width: 100%;
  max-width: 430px;
  aspect-ratio: 3 / 2;
  object-fit: contain;
  display: block;
  background: #000;
}

/* Portfolio: una sola immagine in locandina; le foto aggiuntive si aprono in una finestra dedicata. */
.project-card{appearance:none;border:0;padding:0;text-align:left;color:inherit;cursor:pointer;font:inherit;min-height:400px}
.project-card:focus-visible{outline:2px solid var(--red);outline-offset:5px}
.project-overlay{display:block}
.project-overlay strong{display:block;color:#fff;font-size:24px;line-height:1.15;margin:10px 0;font-weight:700}
.project-overlay small{display:block;color:#ddd;font-size:11px;letter-spacing:.08em;text-transform:uppercase;margin-top:12px}
.gallery-modal{position:fixed;inset:0;z-index:100;display:none;align-items:center;justify-content:center;padding:28px;background:rgba(0,0,0,.86);backdrop-filter:blur(8px)}
.gallery-modal.open{display:flex}
.gallery-dialog{position:relative;width:min(1100px,100%);max-height:90vh;overflow:auto;background:#0d0d0d;border:1px solid #444;padding:34px}
.gallery-close{position:absolute;top:12px;right:14px;border:1px solid #555;background:transparent;color:#fff;width:38px;height:38px;font-size:28px;line-height:1;cursor:pointer}
.gallery-close:hover{background:var(--red);border-color:var(--red)}
.modal-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:24px}
.modal-gallery figure{margin:0;background:#151515;border:1px solid #2b2b2b}
.modal-gallery img{display:block;width:100%;height:230px;object-fit:cover}
.modal-gallery figcaption{padding:10px 12px;color:#aaa;font-size:11px;letter-spacing:.04em}
body.modal-open{overflow:hidden}
@media(max-width:800px){.modal-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.gallery-dialog{padding:28px 18px}.modal-gallery img{height:180px}}
@media(max-width:480px){.modal-gallery{grid-template-columns:1fr}.modal-gallery img{height:auto;max-height:300px}}

/* Ingrandimento delle foto nella galleria */
.modal-gallery figure { cursor: zoom-in; }
.modal-gallery figure:focus-within { outline: 2px solid var(--red); outline-offset: 3px; }
.image-zoom-modal {
  position: fixed;
  inset: 0;
  z-index: 120;
  display: none;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 14px;
  padding: 70px 28px 28px;
  background: rgba(0,0,0,.94);
}
.image-zoom-modal.open { display: flex; }
.image-zoom-modal img {
  display: block;
  max-width: min(94vw, 1500px);
  max-height: calc(100vh - 145px);
  width: auto;
  height: auto;
  object-fit: contain;
  box-shadow: 0 0 0 1px #444;
}
.image-zoom-modal p { margin: 0; color: #ccc; font-size: 12px; text-align: center; }
.image-zoom-close {
  position: absolute;
  top: 18px;
  right: 24px;
  width: 42px;
  height: 42px;
  border: 1px solid #666;
  background: transparent;
  color: #fff;
  font-size: 30px;
  line-height: 1;
  cursor: pointer;
}
.image-zoom-close:hover { background: var(--red); border-color: var(--red); }

.image-zoom-prev, .image-zoom-next { position:absolute; top:50%; transform:translateY(-50%); z-index:2; width:48px; height:72px; border:1px solid #666; background:rgba(0,0,0,.45); color:#fff; font-size:52px; line-height:1; cursor:pointer; }
.image-zoom-prev { left:22px; }
.image-zoom-next { right:22px; }
.image-zoom-prev:hover, .image-zoom-next:hover { background:var(--red); border-color:var(--red); }
@media(max-width:600px){.image-zoom-prev,.image-zoom-next{width:38px;height:58px;font-size:40px}.image-zoom-prev{left:8px}.image-zoom-next{right:8px}}


/* Language switcher */
.header-actions{display:flex;align-items:center;gap:20px}
.language-switcher{display:flex;align-items:center;gap:7px;font-size:11px;letter-spacing:.12em}
.language-button{appearance:none;border:0;background:transparent;color:#777;padding:4px 2px;font:inherit;font-weight:700;letter-spacing:inherit;cursor:pointer}
.language-button:hover,.language-button.active{color:var(--red)}
.language-button:focus-visible{outline:1px solid var(--red);outline-offset:3px}
@media(max-width:800px){
  .site-header{padding:18px 5vw}
  .header-actions{gap:14px}
}
