/* Peppe Barber LAB — V5 CUT REVEAL */
:root{
  --bg:#0a0d10;
  --bg-soft:#0e1418;
  --panel:#10161a;
  --ink:#f4f7f8;
  --muted:#a6b0b4;
  --dim:#6f7a80;
  --line:#2f363b;
  --blue:#84bfd8;
  --blue-strong:#9dd7ef;
  --blue-dark:#29536a;
  --shadow:#00000055;
  --ease:cubic-bezier(.19,1,.22,1);
  --scissor-start-x:-75vw;
  --scissor-start-y:0px;
  --scissor-pass-x:16vw;
  --scissor-pass-y:0px;
  --scissor-angle:0deg;
}
*,*::before,*::after{box-sizing:border-box}
html{background:var(--bg);-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  min-height:100vh;min-height:100svh;margin:0;overflow-x:hidden;color:var(--ink);
  background:
    radial-gradient(ellipse 460px 250px at 50% 12%,#17303c47,transparent 70%),
    radial-gradient(ellipse 300px 220px at 88% 18%,#1020285f,transparent 72%),
    linear-gradient(180deg,#071015 0%,#0a0d10 30%,#090c0f 100%);
  font:400 14px/1.6 -apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Arial,sans-serif;
  -webkit-font-smoothing:antialiased;
}
button,a{-webkit-tap-highlight-color:transparent}
a:focus-visible{outline:2px solid var(--blue);outline-offset:6px}
.defs,.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;border:0!important;white-space:nowrap!important;clip-path:inset(50%)!important;overflow:hidden!important}
.ambient-stage{position:fixed;inset:0;pointer-events:none;z-index:0;overflow:hidden}
.site{position:relative;z-index:2;width:min(calc(100% - 34px),500px);margin:0 auto;padding:48px 0 34px;display:flex;min-height:100vh;min-height:100svh;flex-direction:column}
.location-kicker{display:flex;align-items:center;justify-content:center;gap:12px;color:#b4c0c6;font-size:9px;font-weight:700;letter-spacing:.28em;text-transform:uppercase;white-space:nowrap;margin-top:8px}
.kicker-rule{display:block;height:1px;width:50px;background:linear-gradient(90deg,transparent,#6b7d85b0,transparent)}
.masthead{position:relative;margin-top:34px;text-align:center}
.logo-stage{position:relative}
.brand-light{position:absolute;left:50%;top:34%;width:100%;height:160px;transform:translateX(-50%);background:radial-gradient(circle,#86c7e220 0%,#86c7e20f 24%,transparent 72%);filter:blur(8px);pointer-events:none}
.wing-aura{position:absolute;top:38%;width:42%;height:34%;pointer-events:none;filter:blur(14px);opacity:.26;mix-blend-mode:screen;background:radial-gradient(closest-side,#8ac6dd44 0%,#8ac6dd18 45%,transparent 75%)}
.wing-aura-left{left:4%;transform-origin:right center;animation:wing-float-left 4.2s ease-in-out infinite}
.wing-aura-right{right:4%;transform-origin:left center;animation:wing-float-right 4.2s ease-in-out infinite}
.brand-logo{position:relative;display:block;width:min(100%,720px);height:auto;margin:0 auto;filter:drop-shadow(0 6px 24px #00000085);animation:logo-breathe 6s ease-in-out infinite}
.brand-baseline{display:flex;justify-content:center;align-items:center;gap:10px;margin:14px auto 0;width:108px}
.brand-baseline span{height:1px;flex:1;background:linear-gradient(90deg,transparent,#6d7f87,transparent)}
.brand-baseline i{display:block;width:4px;height:4px;transform:rotate(45deg);background:var(--blue);box-shadow:0 0 10px #76c9e994}
.brand-kicker{font-size:10px;font-weight:780;letter-spacing:.3em;color:#d3dee2;margin:17px 0 7px}
.brand-kicker span{padding:0 6px;color:var(--blue)}
.tagline{font-size:12.5px;line-height:1.55;color:#a9b2b6;margin:0}
.primary-actions{margin-top:36px}
.book-link{
  position:relative;display:flex;align-items:center;gap:15px;padding:18px 18px 18px 18px;min-height:84px;
  color:#f7fbfd;text-decoration:none;border-radius:16px;border:1px solid #6e98ab52;
  background:linear-gradient(135deg,#10232c 0%,#163240 52%,#123142 100%);
  box-shadow:0 18px 50px #0007, inset 0 1px 0 #ffffff12, 0 0 0 1px #7bb8cf12;
  overflow:hidden;transition:transform .35s var(--ease),box-shadow .35s var(--ease),border-color .35s ease;
}
.book-link::before{content:"";position:absolute;inset:-30% auto 0 -110px;width:90px;background:linear-gradient(90deg,transparent,#ffffff25,#ffffff80,#ffffff25,transparent);transform:skewX(-18deg);opacity:.58;animation:book-glow-pass 4.5s ease-in-out infinite}
.book-link::after{content:"";position:absolute;inset:auto 0 0 0;height:2px;background:linear-gradient(90deg,transparent,#9ad8f0,#ffffff, #9ad8f0,transparent);opacity:.7}
.book-link:hover{transform:translateY(-3px);box-shadow:0 20px 56px #0009,0 0 0 1px #9ed8ee44,inset 0 1px 0 #ffffff18;border-color:#8ed0ea82}
.book-pulse{position:absolute;right:-42px;top:-42px;width:150px;height:150px;border-radius:50%;background:radial-gradient(circle,#bde7f31f 0%,#bde7f309 48%,transparent 70%);animation:pulse-soft 3.2s ease-in-out infinite}
.book-symbol{position:relative;z-index:1;height:45px;width:45px;flex:none;display:grid;place-items:center;border:1px solid #95b8c542;border-radius:14px;color:#d7f1fb;background:#ffffff0a;box-shadow:inset 0 1px 0 #ffffff10}
.book-symbol svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.book-copy{position:relative;z-index:1;display:flex;flex:1;flex-direction:column;min-width:0;gap:2px}
.book-copy strong{font-weight:850;font-size:12.4px;letter-spacing:.09em;line-height:1.35;color:#ffffff;text-shadow:0 1px 0 #0005}
.book-copy>span{font-size:12px;color:#d7e8ef;line-height:1.4}
.book-arrow{position:relative;z-index:1;width:32px;height:32px;display:grid;place-items:center;color:#dcf5ff;transition:transform .38s var(--ease)}
.book-arrow svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.book-link:hover .book-arrow{transform:translateX(5px)}
.schedule{margin-top:38px}
.section-heading{display:flex;align-items:center;gap:9px;margin-bottom:10px}
.section-heading-icon{color:var(--blue);display:grid;place-items:center}
.section-heading-icon svg{height:15px;width:15px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}
.section-heading h2{font-size:10px;letter-spacing:.22em;font-weight:780;margin:0;white-space:nowrap}
.section-line{height:1px;flex:1;margin-left:8px;background:linear-gradient(90deg,#4e616a7f,transparent)}
.hours-row{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:start;padding:18px 1px 16px;border-bottom:1px solid #2933387b}
.hours-row .day{font-size:10px;letter-spacing:.12em;font-weight:680;color:#cbd4d8;margin-top:4px;white-space:nowrap}
.hours-row .time{display:flex;align-items:flex-end;flex-direction:column;gap:1px;font-size:13px;letter-spacing:.018em;font-weight:530;color:#f1f5f6;font-variant-numeric:tabular-nums;white-space:nowrap}
.hours-row.hours-last{border-bottom:0;padding-bottom:9px}
.hours-last .day,.hours-last .time{color:#7c898d}.hours-last .time{font-size:10px;letter-spacing:.15em;margin-top:3px}
.hours-note{margin:9px 0 0;font-size:10.5px;color:#7e878b}
.secondary{text-align:center;margin-top:40px}
.contact-caption{font-size:9px;font-weight:760;letter-spacing:.23em;color:#8c999e;margin:0 0 15px}
.contact-links{display:flex;align-items:center;justify-content:center;gap:30px}
.contact{display:flex;flex-direction:column;align-items:center;gap:8px;color:#aeb9bd;text-decoration:none;min-width:52px;transition:color .3s}
.contact-icon{width:48px;height:48px;display:grid;place-items:center;background:#14191b;border:1px solid #39464d;border-radius:50%;transition:transform .35s var(--ease),border-color .35s,background .35s, box-shadow .35s;box-shadow:0 2px 8px #0002}
.contact-icon svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.55;stroke-linecap:round;stroke-linejoin:round}
.contact-label{font-size:8.5px;font-weight:700;letter-spacing:.13em;color:#90999e}
.contact:hover,.contact:focus-visible{color:var(--blue)}
.contact:hover .contact-icon,.contact:focus-visible .contact-icon{transform:translateY(-3px);border-color:#81bfd2;background:#17242b;box-shadow:0 8px 18px #0007}
.address{display:block;width:fit-content;margin:26px auto 0;font-size:11px;color:#889498;text-decoration:none;transition:color .25s}.address:hover{color:#d8e6eb}
.site-footer{text-align:center;color:#768286;margin-top:auto;padding-top:28px}.footer-rule{height:1px;margin:0 0 17px;background:linear-gradient(90deg,transparent,#3942466b,transparent)}.site-footer p{font-size:9px;font-weight:680;letter-spacing:.12em;margin:3px 0}.site-footer p.credit{letter-spacing:.025em;font-size:10px;font-weight:400;color:#707b80}
/* Intro V5: taglio integrato con il passaggio delle forbici.
   Spacco orizzontale quando le forbici arrivano da destra/sinistra;
   spacco verticale quando arrivano da alto/basso. Nessuna linea fittizia. */
.intro-overlay{
  position:fixed;inset:0;z-index:100;display:none;overflow:hidden;
  isolation:isolate;pointer-events:none;
}
.intro-running .intro-overlay{display:block;pointer-events:all}
.intro-panel{position:absolute;background:#091015;will-change:transform}
/* Asse di percorrenza orizzontale */
html[data-intro-axis="horizontal"] .intro-first{left:0;right:0;top:0;height:50.08%}
html[data-intro-axis="horizontal"] .intro-second{left:0;right:0;bottom:0;height:50.08%}
html.intro-running[data-intro-axis="horizontal"] .intro-first{animation:curtain-top 1.05s cubic-bezier(.3,.0,.16,1) both}
html.intro-running[data-intro-axis="horizontal"] .intro-second{animation:curtain-bottom 1.05s cubic-bezier(.3,.0,.16,1) both}
/* Asse di percorrenza verticale */
html[data-intro-axis="vertical"] .intro-first{left:0;top:0;bottom:0;width:50.08%}
html[data-intro-axis="vertical"] .intro-second{right:0;top:0;bottom:0;width:50.08%}
html.intro-running[data-intro-axis="vertical"] .intro-first{animation:curtain-left 1.05s cubic-bezier(.3,.0,.16,1) both}
html.intro-running[data-intro-axis="vertical"] .intro-second{animation:curtain-right 1.05s cubic-bezier(.3,.0,.16,1) both}
.intro-scissor-wrap{
  position:absolute;top:50%;left:50%;width:120px;height:120px;
  opacity:0;will-change:transform,opacity;
}
.intro-running .intro-scissor-wrap{animation:scissor-center-cut 1.05s cubic-bezier(.25,.13,.4,1) both}
.intro-scissors{display:block;width:100%;height:100%;filter:drop-shadow(0 0 8px #9bd7ee2b)}
.scissor-upper,.scissor-lower{transform-box:view-box;transform-origin:102px 100px}
.intro-running .scissor-upper{animation:blade-upper 1.05s ease-in-out both}
.intro-running .scissor-lower{animation:blade-lower 1.05s ease-in-out both}
/* La pagina è già renderizzata sotto le tende: compare durante il taglio,
   non dopo un secondo blur / fade. */
.intro-running .site,.intro-complete .site{opacity:1;transform:none}
.intro-complete .brand-logo{animation:logo-breathe 6s ease-in-out infinite}
@keyframes curtain-top{0%,51%{transform:translate3d(0,0,0)}100%{transform:translate3d(0,-104%,0)}}
@keyframes curtain-bottom{0%,51%{transform:translate3d(0,0,0)}100%{transform:translate3d(0,104%,0)}}
@keyframes curtain-left{0%,51%{transform:translate3d(0,0,0)}100%{transform:translate3d(-104%,0,0)}}
@keyframes curtain-right{0%,51%{transform:translate3d(0,0,0)}100%{transform:translate3d(104%,0,0)}}
@keyframes scissor-center-cut{
  0%{opacity:1;transform:translate3d(calc(-50% + var(--scissor-start-x)),calc(-50% + var(--scissor-start-y)),0) rotate(var(--scissor-angle)) scale(.75)}
  47%{opacity:1;transform:translate3d(-50%,-50%,0) rotate(var(--scissor-angle)) scale(1.02)}
  63%{opacity:1;transform:translate3d(-50%,-50%,0) rotate(var(--scissor-angle)) scale(1.32)}
  84%{opacity:.78;transform:translate3d(calc(-50% + var(--scissor-pass-x)),calc(-50% + var(--scissor-pass-y)),0) rotate(var(--scissor-angle)) scale(1.55)}
  100%{opacity:0;transform:translate3d(calc(-50% + var(--scissor-pass-x)),calc(-50% + var(--scissor-pass-y)),0) rotate(var(--scissor-angle)) scale(1.70)}
}
@keyframes blade-upper{0%,32%{transform:rotate(-14deg)}61%{transform:rotate(23deg)}100%{transform:rotate(-4deg)}}
@keyframes blade-lower{0%,32%{transform:rotate(14deg)}61%{transform:rotate(-23deg)}100%{transform:rotate(4deg)}}
/* Ambient passing scissors */
.ambient-scissor{position:fixed;left:0;top:0;width:58px;height:58px;pointer-events:none;opacity:0;z-index:1;transform:translate3d(var(--sx),var(--sy),0) rotate(var(--rot));animation:ambient-pass var(--dur) linear forwards}
.ambient-scissor svg{width:100%;height:100%;filter:drop-shadow(0 0 8px #84bfd822)}
.ambient-scissor path,.ambient-scissor circle{vector-effect:non-scaling-stroke}
.ambient-scissor .metal-1{fill:#eef2f4}.ambient-scissor .metal-2{fill:#d9e2e7}.ambient-scissor .stroke{stroke:#c4d3d9;stroke-width:10;stroke-linecap:round}.ambient-scissor .ring{stroke:#f3f6f7;stroke-width:9;fill:none}.ambient-scissor .pin{fill:#9bcde2;stroke:#26343b;stroke-width:3}
/* Animazioni leggere del sito, indipendenti dall'intro */
@keyframes logo-breathe{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-2px) scale(1.01)}}
@keyframes wing-float-left{0%,100%{transform:translateX(0) scale(.98,.96);opacity:.16}50%{transform:translateX(-7px) scale(1.08,1.02);opacity:.32}}
@keyframes wing-float-right{0%,100%{transform:translateX(0) scale(.98,.96);opacity:.16}50%{transform:translateX(7px) scale(1.08,1.02);opacity:.32}}
@keyframes pulse-soft{0%,100%{transform:scale(.9);opacity:.16}50%{transform:scale(1.05);opacity:.3}}
@keyframes enter-up{from{opacity:.82;transform:translate3d(0,7px,0)}to{opacity:1;transform:translate3d(0,0,0)}}
@keyframes book-glow-pass{0%,14%{transform:translateX(0) skewX(-18deg);opacity:0}22%{opacity:.65}44%{transform:translateX(520px) skewX(-18deg);opacity:0}100%{transform:translateX(520px) skewX(-18deg);opacity:0}}
@keyframes ambient-pass{0%{opacity:0;transform:translate3d(var(--sx),var(--sy),0) rotate(var(--rot)) scale(var(--scale))}8%{opacity:var(--opacity)}92%{opacity:var(--opacity)}100%{opacity:0;transform:translate3d(var(--ex),var(--ey),0) rotate(var(--rot-end)) scale(var(--scale))}}
@media(min-width:740px){.site{padding-top:70px;padding-bottom:34px}.masthead{margin-top:40px}.primary-actions{margin-top:42px}.secondary{margin-top:44px}}
@media(max-width:390px){.site{width:min(calc(100% - 32px),460px);padding-top:40px}.masthead{margin-top:28px}.primary-actions{margin-top:32px}.schedule{margin-top:33px}.secondary{margin-top:33px}.book-link{min-height:78px;padding:14px 15px;gap:12px}.book-copy strong{font-size:11px}.book-copy>span{font-size:11px}.hours-row{padding:14px 1px}.hours-row .day{font-size:9px}.hours-row .time{font-size:12px}.contact-links{gap:25px}}
@media(max-width:340px){.site{width:calc(100% - 26px)}.book-copy strong{font-size:10px;letter-spacing:.05em}.book-symbol{width:39px;height:39px}.location-kicker{font-size:8px;letter-spacing:.17em}.hours-row .day{font-size:8.5px}.hours-row .time{font-size:11px}.brand-kicker{font-size:9px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.intro-overlay,.ambient-stage{display:none!important}.site{opacity:1!important;transform:none!important}.enter-item,.brand-logo,.wing-aura,.book-pulse{animation:none!important;opacity:1!important;transform:none!important}.book-link,.book-arrow,.contact-icon{transition:none!important}.book-link::before{animation:none!important;opacity:0}}
