@font-face{font-family:'Clarendon';src:url('../assets/fonts/ClarendonBT-Bold.otf') format('opentype');font-weight:bold;font-display:swap}
@font-face{font-family:'GothamXNarrow';src:url('../assets/fonts/GothamXNarrow.otf') format('opentype');font-weight:bold;font-display:swap}

/* ═══════════════════════════════════════
   PHASE SYSTEM — CSS variables per phase
═══════════════════════════════════════ */
:root {
  /* Base */
  --serif:'Clarendon','Rockwell',Georgia,serif;
  --ui:'GothamXNarrow','Arial Narrow',sans-serif;
  --ease:cubic-bezier(.16,1,.3,1);
  --trans: all 1.8s cubic-bezier(.4,0,.2,1);

  /* DARK (default / intro) */
  --bg:       #060606;
  --bg2:      #0d0d0d;
  --bg3:      #141414;
  --accent:   #7a7a35;
  --accent2:  rgba(122,122,53,.15);
  --txt:      #f0ece4;
  --txt-m:    rgba(240,236,228,.44);
  --txt-d:    rgba(240,236,228,.2);
  --border:   rgba(255,255,255,.07);
  --glow:     rgba(122,122,53,.2);
  --phase-label: 'DARK MODE';
}

/* AWAKE — azzurro chill */
body.phase-awake {
  --bg:       #04111e;
  --bg2:      #071929;
  --bg3:      #0a2038;
  --accent:   #5bb8f5;
  --accent2:  rgba(91,184,245,.15);
  --txt:      #e8f4fd;
  --txt-m:    rgba(232,244,253,.55);
  --txt-d:    rgba(232,244,253,.25);
  --border:   rgba(91,184,245,.15);
  --glow:     rgba(91,184,245,.25);
}

/* LIGHT SLEEP — verde memorie */
body.phase-light {
  --bg:       #051209;
  --bg2:      #081a0d;
  --bg3:      #0c2514;
  --accent:   #4ade80;
  --accent2:  rgba(74,222,128,.15);
  --txt:      #ecfdf5;
  --txt-m:    rgba(236,253,245,.5);
  --txt-d:    rgba(236,253,245,.22);
  --border:   rgba(74,222,128,.15);
  --glow:     rgba(74,222,128,.22);
}

/* DEEP SLEEP — rosso paradosso */
body.phase-deep {
  --bg:       #150303;
  --bg2:      #1f0404;
  --bg3:      #2a0606;
  --accent:   #ef4444;
  --accent2:  rgba(239,68,68,.15);
  --txt:      #fff1f2;
  --txt-m:    rgba(255,241,242,.5);
  --txt-d:    rgba(255,241,242,.22);
  --border:   rgba(239,68,68,.15);
  --glow:     rgba(239,68,68,.28);
}

/* REM — UV viola */
body.phase-rem {
  --bg:       #0a0414;
  --bg2:      #10061e;
  --bg3:      #180a2e;
  --accent:   #c084fc;
  --accent2:  rgba(192,132,252,.15);
  --txt:      #faf5ff;
  --txt-m:    rgba(250,245,255,.5);
  --txt-d:    rgba(250,245,255,.22);
  --border:   rgba(192,132,252,.15);
  --glow:     rgba(192,132,252,.3);
}

/* Apply transitions */
body, nav, .tick-w, .concept, .cvis, .ctxt,
.gallery, .drinks, .press, .bk, .bkl, .bkr,
.news, .merch, .loc, footer, .hypno-bar {
  transition: var(--trans);
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--txt);font-family:var(--ui);overflow-x:hidden;cursor:none}

/* CURSOR */
.cur{position:fixed;top:0;left:0;z-index:9999;pointer-events:none}
.cur-d{width:5px;height:5px;background:var(--accent);border-radius:50%;position:absolute;transform:translate(-50%,-50%);transition:background .8s}
.cur-r{width:32px;height:32px;border:1px solid rgba(var(--accent-rgb),.5);border-radius:50%;position:absolute;transform:translate(-50%,-50%);transition:width .3s,height .3s,border-color .8s}
body:has(a:hover) .cur-r,body:has(button:hover) .cur-r{width:52px;height:52px}
@media(hover:none){.cur{display:none}body{cursor:auto}}

/* ═══════════════════════════════════════
   HYPNOGRAM BAR — fixed below nav
═══════════════════════════════════════ */
.hypno-bar {
  position: fixed;
  top: 73px;
  left: 0; right: 0;
  z-index: 99;
  background: rgba(6,6,6,.92);
  backdrop-filter: blur(20px);
  border-bottom: 1px solid var(--border);
  padding: 0 2.5rem;
  height: 72px;
  display: flex;
  align-items: center;
  gap: 1.5rem;
  transition: var(--trans);
}
.hypno-timer {
  font-family: 'Courier New', monospace;
  font-size: 1.6rem;
  letter-spacing: .1em;
  color: var(--accent);
  min-width: 56px;
  text-align: center;
  transition: color 1.8s;
  text-shadow: 0 0 20px var(--glow);
}
.hypno-divider { width:1px; height:32px; background:var(--border); flex-shrink:0; }
.hypno-svg-wrap {
  flex: 1;
  height: 52px;
  position: relative;
  overflow: visible;
}
.hypno-svg { width:100%; height:100%; overflow:visible; }
/* Phase label pill */
.phase-pill {
  font-size: .5rem;
  letter-spacing: .35em;
  text-transform: uppercase;
  color: var(--bg);
  background: var(--accent);
  padding: .35rem .9rem;
  white-space: nowrap;
  transition: background 1.8s, color 1.8s;
}
/* Nav offset for hypno bar */
body { padding-top: 145px; }

/* NAV */
nav{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:1rem 2.5rem;background:rgba(6,6,6,.95);backdrop-filter:blur(24px);border-bottom:1px solid var(--border);height:73px;transition:var(--trans)}
.nlogo{display:flex;align-items:center;gap:1rem;text-decoration:none}
.nlogo img{height:38px;width:38px;object-fit:contain}
.nlt{display:flex;flex-direction:column;line-height:1}
.nlt span:first-child{font-family:var(--serif);font-size:1.15rem;letter-spacing:.25em;color:var(--txt);transition:color 1.8s}
.nlt span:last-child{font-size:.4rem;letter-spacing:.5em;color:var(--accent);text-transform:uppercase;margin-top:3px;transition:color 1.8s;text-align:center}
.nlinks{display:flex;align-items:center;gap:1.8rem;list-style:none}
.nlinks a{font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;color:var(--txt-m);text-decoration:none;transition:color .3s}
.nlinks a:hover{color:var(--txt)}
.nbk{background:var(--accent)!important;color:var(--bg)!important;padding:.55rem 1.3rem!important;transition:background 1.8s!important}
.nav-en{display:none;font-family:var(--ui);font-size:.52rem;letter-spacing:.18em;color:var(--txt-m);text-decoration:none;border:1px solid var(--border);padding:.35rem .7rem;transition:color .3s,border-color .3s}
.nav-en:hover{color:var(--txt);border-color:rgba(255,255,255,.3)}
.hbg{display:none;flex-direction:column;gap:5px;cursor:pointer;background:none;border:none;padding:0;-webkit-appearance:none}
.hbg span{display:block;width:24px;height:1px;background:var(--txt);transition:transform .3s,opacity .3s,background 1.8s}
.hbg.op span:nth-child(1){transform:translateY(6px) rotate(45deg)}
.hbg.op span:nth-child(2){opacity:0}
.hbg.op span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
.mob{display:none;position:fixed;inset:0;z-index:90;background:var(--bg);flex-direction:column;align-items:center;justify-content:center;gap:2.5rem;transition:background 1.8s}
.mob.op{display:flex}
.mob a{font-family:var(--serif);font-size:2.8rem;letter-spacing:.05em;color:var(--txt);text-decoration:none;transition:color .2s}
.mob a:hover{color:var(--accent)}

/* PHASE OVERLAY — full screen transition flash */
.phase-flash {
  position: fixed;
  inset: 0;
  z-index: 9997;
  pointer-events: none;
  opacity: 0;
  background: var(--accent);
  transition: opacity .15s;
}
.phase-flash.show { opacity: .08; }

/* PHASE FX LAYERS */
.fx-layer {
  position: fixed;
  inset: 0;
  z-index: 9996;
  pointer-events: none;
  opacity: 0;
  transition: opacity 1.5s;
}
.fx-layer.active { opacity: 1; }
/* Awake: floating particles */
#fx-awake canvas { width:100%;height:100%; }
/* Deep Sleep: scanlines */
#fx-deep {
  background: repeating-linear-gradient(
    0deg,
    transparent,
    transparent 2px,
    rgba(239,68,68,.03) 2px,
    rgba(239,68,68,.03) 4px
  );
}
/* REM: UV noise pulse */
#fx-rem {
  background: radial-gradient(ellipse at 50% 50%, rgba(192,132,252,.08) 0%, transparent 70%);
  animation: uvpulse 3s ease-in-out infinite;
}
@keyframes uvpulse { 0%,100%{opacity:0} 50%{opacity:1} }

/* HERO */
.hero{position:relative;min-height:calc(100svh - 145px);display:flex;align-items:flex-end;overflow:hidden}
.hero-img-wrap{position:absolute;inset:0;overflow:hidden}
#hero-phase-img{width:100%;height:100%;object-fit:cover;transition:opacity 1.5s cubic-bezier(.4,0,.2,1);display:block}
#hero-phase-img.fade-out{opacity:0}
.hov{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.9) 0%,rgba(0,0,0,.3) 40%,rgba(0,0,0,.5) 100%);transition:var(--trans)}
/* Phase tint overlay */
.hov::after{content:'';position:absolute;inset:0;background:var(--accent2);transition:var(--trans)}
.hcnt{position:relative;z-index:2;width:100%;padding:0 2.5rem 4rem;display:flex;align-items:flex-end;justify-content:space-between;gap:2rem}
.hey{font-size:.53rem;letter-spacing:.42em;color:var(--accent);text-transform:uppercase;margin-bottom:.8rem;display:flex;align-items:center;gap:.8rem;transition:color 1.8s}
.hey::before{content:'';display:block;width:24px;height:1px;background:var(--accent);transition:background 1.8s}
.htit{font-family:var(--serif);font-size:clamp(4rem,10vw,11rem);line-height:.87;letter-spacing:.01em;color:var(--txt);transition:color 1.8s;text-shadow:0 0 60px var(--glow)}
.htit .ol{color:var(--accent);transition:color 1.8s}
.hrt{flex-shrink:0;display:flex;flex-direction:column;align-items:flex-end;gap:1.5rem;padding-bottom:.5rem}
.hsub{font-size:.63rem;letter-spacing:.07em;color:var(--txt-m);line-height:1.75;max-width:220px;text-align:right;transition:color 1.8s}

/* PHASE LABEL in hero */
.hero-phase-label {
  position: absolute;
  top: 2rem; right: 2.5rem;
  font-size: .48rem; letter-spacing:.4em; text-transform:uppercase;
  color:var(--accent); opacity:.7;
  transition: color 1.8s;
}

/* BTNS */
.bol{display:inline-flex;align-items:center;gap:.7rem;background:var(--accent);color:var(--bg);padding:1rem 2rem;font-family:var(--ui);font-size:.62rem;letter-spacing:.22em;text-transform:uppercase;text-decoration:none;border:none;cursor:pointer;transition:var(--trans);white-space:nowrap}
.bol:hover{filter:brightness(1.15);transform:translateY(-2px)}
.bln{display:inline-flex;align-items:center;gap:.7rem;background:transparent;color:var(--txt);padding:1rem 2rem;font-family:var(--ui);font-size:.62rem;letter-spacing:.22em;text-transform:uppercase;text-decoration:none;border:1px solid var(--border);cursor:pointer;transition:var(--trans);white-space:nowrap}
.bln:hover{border-color:var(--accent);transform:translateY(-2px)}
.bbk{display:inline-flex;align-items:center;gap:.7rem;background:var(--bg);color:var(--txt);padding:1rem 2rem;font-family:var(--ui);font-size:.62rem;letter-spacing:.22em;text-transform:uppercase;text-decoration:none;transition:var(--trans);align-self:flex-start}
.bbk:hover{opacity:.8}

/* TICKER */
.tick-w{background:var(--accent);overflow:hidden;padding:.65rem 0;transition:background 1.8s}
.tick{display:flex;animation:tk 32s linear infinite;width:max-content}
.tick span{font-family:var(--serif);font-size:.95rem;letter-spacing:.1em;color:var(--bg);padding:0 2rem;white-space:nowrap;transition:color 1.8s}
.tick span::after{content:'·';padding-left:2rem}
@keyframes tk{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* LABEL */
.lbl{font-size:.52rem;letter-spacing:.42em;color:var(--accent);text-transform:uppercase;display:flex;align-items:center;gap:.8rem;transition:color 1.8s}
.lbl::before{content:'';display:block;width:20px;height:1px;background:var(--accent);transition:background 1.8s}

/* CONCEPT */
.concept{display:grid;grid-template-columns:1fr 1fr;min-height:88vh}
.cvis{position:relative;overflow:hidden;background:var(--bg2);min-height:500px}
.cvis img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}
.cvis-tint{position:absolute;inset:0;background:var(--accent2);transition:var(--trans);mix-blend-mode:color;pointer-events:none}
.cph{position:absolute;bottom:0;left:0;right:0;display:flex;border-top:1px solid var(--border)}
.cp{flex:1;padding:1.2rem .8rem;text-align:center;border-right:1px solid var(--border);background:rgba(6,6,6,.75);backdrop-filter:blur(8px)}
.cp:last-child{border-right:none}
.cp-n{font-family:var(--serif);font-size:.85rem;letter-spacing:.07em;color:var(--accent);transition:color 1.8s}
.cp-s{font-size:.44rem;letter-spacing:.2em;color:var(--txt-d);margin-top:.2rem;text-transform:uppercase}
.ctxt{padding:5rem 4rem;display:flex;flex-direction:column;justify-content:center;background:var(--bg)}
.ctit{font-family:var(--serif);font-size:clamp(2.8rem,4.5vw,5rem);line-height:.9;letter-spacing:.02em;margin:1rem 0 2rem}
.ctit .ol{color:var(--accent);transition:color 1.8s}
.cbod{font-size:.78rem;color:var(--txt-m);line-height:1.85;letter-spacing:.03em;max-width:400px;margin-bottom:3rem}

/* GALLERY */
.gallery{display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:80px;gap:3px;background:var(--bg)}
.mc{position:relative;overflow:hidden;background:var(--bg2)}
.mc img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .7s var(--ease)}
.mc:hover img{transform:scale(1.04)}
/* phase tint on gallery items */
.mc::after{content:'';position:absolute;inset:0;background:var(--accent2);transition:var(--trans);mix-blend-mode:color;pointer-events:none;opacity:0}
body:not(.phase-dark) .mc::after{opacity:1}
.mc1{grid-column:1/6;grid-row:1/5}.mc2{grid-column:6/9;grid-row:1/3}.mc3{grid-column:9/13;grid-row:1/4}
.mc4{grid-column:6/9;grid-row:3/6}.mc5{grid-column:9/13;grid-row:4/7}.mc6{grid-column:1/5;grid-row:5/8}
.mc7{grid-column:5/9;grid-row:6/9}.mc8{grid-column:9/13;grid-row:7/9}


/* DRINKS MASONRY — layout esplicito senza buchi */
.drk-masonry {
  column-count: 3;
  column-gap: 3px;
  background: var(--bg);
  padding: 3px 0;
}
.dm {
  break-inside: avoid;
  margin-bottom: 3px;
  overflow: hidden;
  display: block;
  background: var(--bg2);
}
.dm img {
  width: 100%;
  height: auto;
  display: block;
  transition: transform .9s cubic-bezier(.16,1,.3,1);
}
.dm:hover img { transform: scale(1.03); }
.drk-cta { text-align: center; margin-top: 3rem; }
@media(max-width:768px){ .drk-masonry { column-count: 2; } }
@media(max-width:480px){ .drk-masonry { column-count: 1; } }

/* PRESS */
.press{background:var(--bg);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.pg{display:grid;grid-template-columns:repeat(3,1fr);border-left:1px solid var(--border)}
.pi{padding:3.5rem 3rem;border-right:1px solid var(--border);transition:background .3s}
.pi:hover{background:var(--bg2)}
.pi-src{font-size:.48rem;letter-spacing:.3em;color:var(--accent);text-transform:uppercase;margin-bottom:1.5rem;transition:color 1.8s}
.pi-q{font-family:var(--serif);font-size:1.05rem;line-height:1.6;color:var(--txt);margin-bottom:1.2rem;font-weight:normal}
.pi-q::before{content:'"';color:var(--accent);font-size:2.8rem;line-height:0;vertical-align:-.5em;margin-right:.15rem;opacity:.5;transition:color 1.8s}
.pi-au{font-size:.54rem;letter-spacing:.1em;color:var(--txt-d)}

/* BOOKING */
.bk{display:grid;grid-template-columns:1fr 1fr;min-height:80vh}
.bkl{background:var(--accent);padding:5rem 4rem;display:flex;flex-direction:column;justify-content:flex-end;position:relative;overflow:hidden;transition:background 1.8s}
.bkl-lg{position:absolute;top:-5%;right:-8%;width:65%;opacity:.1}
.bkl-lg img{width:100%}
.bkbig{font-family:var(--serif);font-size:clamp(4rem,7vw,8.5rem);line-height:.85;letter-spacing:.01em;color:var(--bg);margin:1.5rem 0 2rem;transition:color 1.8s}
.bkl p{font-size:.7rem;color:rgba(0,0,0,.6);line-height:1.8;letter-spacing:.04em;max-width:320px;margin-bottom:2rem}
.bkdets{display:flex;flex-direction:column;gap:1rem;margin-bottom:2.5rem}
.bkd{display:flex;gap:.8rem;align-items:flex-start}
.bkd-i{font-size:.75rem;color:rgba(0,0,0,.5);margin-top:2px}
.bkd-t strong{display:block;font-size:.52rem;letter-spacing:.18em;text-transform:uppercase;color:var(--bg);margin-bottom:.15rem;transition:color 1.8s}
.bkd-t span,.bkd-t a{font-size:.68rem;color:rgba(0,0,0,.55);line-height:1.5;text-decoration:none}
.bkr{background:var(--bg2);padding:5rem 4rem;display:flex;flex-direction:column;justify-content:center}
.bkft{font-family:var(--serif);font-size:2.7rem;letter-spacing:.04em;margin:1rem 0 .4rem;color:var(--txt)}
.bkfs{font-size:.5rem;letter-spacing:.3em;color:var(--accent);text-transform:uppercase;margin-bottom:2.5rem;transition:color 1.8s}
.fg{margin-bottom:1.1rem}
.fg label{display:block;font-size:.48rem;letter-spacing:.22em;text-transform:uppercase;color:var(--txt-d);margin-bottom:.45rem}
.fg input,.fg select,.fg textarea{width:100%;background:var(--bg);border:1px solid var(--border);color:var(--txt);padding:.85rem 1rem;font-family:var(--ui);font-size:.75rem;outline:none;transition:border-color .3s,background 1.8s,color 1.8s;appearance:none}
.fg input:focus,.fg select:focus,.fg textarea:focus{border-color:var(--accent)}
.fg textarea{resize:vertical;min-height:80px}
.fg-r{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.fn{font-size:.55rem;color:var(--txt-d);letter-spacing:.04em;margin-top:1rem;line-height:1.6}
.sl{display:flex;align-items:center;gap:.4rem;margin-top:.8rem;font-size:.5rem;letter-spacing:.15em;color:var(--accent);text-decoration:none;transition:color 1.8s}

/* EVENTS + IL MONDO DI REM */
.news{background:var(--bg);padding:6rem 2.5rem}
.mr-section{border-top:1px solid rgba(255,255,255,.06)}
/* Mondo di REM grid — newspaper layout (4 articoli) */
.mr-grid{grid-template-columns:repeat(12,1fr) !important;grid-auto-rows:62px !important;height:auto !important}
.mr-grid .na{height:auto}
.mr-grid .na1{grid-column:1/7;grid-row:1/8}.mr-grid .na2{grid-column:7/10;grid-row:1/5}
.mr-grid .na3{grid-column:10/13;grid-row:1/5}.mr-grid .na4{grid-column:7/13;grid-row:5/8}
.mr-grid .na1 .natt{font-size:2.5rem}.mr-grid .na2 .natt,.mr-grid .na3 .natt{font-size:1.35rem}.mr-grid .na4 .natt{font-size:1.6rem}
@media(max-width:768px){
  .mr-grid{grid-template-columns:1fr !important;grid-auto-rows:auto !important}
  .mr-grid .na1,.mr-grid .na2,.mr-grid .na3,.mr-grid .na4{grid-column:auto;grid-row:auto;height:260px}
  .mr-grid .na1 .natt{font-size:1.8rem}
}
.news-inner{max-width:1300px;margin:0 auto}
.nh{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:3rem;gap:1rem;flex-wrap:wrap}
.nh-filters{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}
.nf-btn{font-family:var(--ui);font-size:.44rem;letter-spacing:.2em;text-transform:uppercase;color:var(--txt-d);background:transparent;border:1px solid rgba(255,255,255,.12);padding:.55rem 1.1rem;cursor:pointer;transition:color .25s,border-color .25s,background .25s;white-space:nowrap}
.nf-btn:hover{color:var(--txt);border-color:rgba(255,255,255,.3)}
.nf-btn.active{color:var(--accent);border-color:var(--accent);background:rgba(255,255,255,.03);transition:color 1.8s,border-color 1.8s}
.ntit{font-family:var(--serif);font-size:clamp(3rem,5vw,5.5rem);letter-spacing:.02em;line-height:.9;color:var(--txt)}
.ntit .ol{color:var(--accent);transition:color 1.8s}
/* Events grid — 2 equal cards */
.nm{display:grid;grid-template-columns:repeat(2,1fr);gap:3px}
.na{background:var(--bg2);position:relative;overflow:hidden;cursor:pointer;transition:background 1.8s;height:520px}
.na img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease)}
.na:hover img{transform:scale(1.05)}
.naov{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.96) 0%,rgba(0,0,0,.15) 60%)}
.nabod{position:absolute;bottom:0;left:0;right:0;padding:2rem 2rem 2.2rem}
.natag{font-size:.44rem;letter-spacing:.28em;color:var(--accent);text-transform:uppercase;margin-bottom:.7rem;transition:color 1.8s}
.natt{font-family:var(--serif);font-size:clamp(2rem,4vw,3.5rem);letter-spacing:.03em;line-height:.95;color:var(--txt)}
.namet{font-size:.48rem;letter-spacing:.15em;color:var(--txt-d);margin-top:.6rem}
.na-discover{display:inline-flex;align-items:center;gap:.4rem;font-family:var(--ui);font-size:.48rem;letter-spacing:.2em;color:var(--accent);margin-top:1.2rem;text-transform:uppercase;transition:gap .3s var(--ease)}
.na:hover .na-discover{gap:.7rem}
.na-empty{grid-column:1/-1;padding:4rem 0;text-align:center;font-family:var(--ui);font-size:.6rem;letter-spacing:.2em;color:var(--txt-d);text-transform:uppercase}

/* ── Event / Article overlay ── */
.article-overlay {
  position:fixed; inset:0; z-index:200;
  background:var(--bg); overflow-y:auto;
  -webkit-overflow-scrolling:touch;
  opacity:0; pointer-events:none;
  transform:translateY(1.5rem);
  transition:opacity .35s ease, transform .35s ease;
}
.article-overlay.open { opacity:1; pointer-events:auto; transform:translateY(0); }
.ao-close {
  position:fixed; top:1.5rem; right:1.5rem; z-index:201;
  width:44px; height:44px; background:rgba(0,0,0,.7);
  border:1px solid rgba(255,255,255,.15); color:#fff; border-radius:50%;
  font-size:1rem; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  transition:background .2s, border-color .2s;
}
.ao-close:hover { background:var(--accent); border-color:var(--accent); }

/* COVER */
.ao-cover {
  width:100%; height:60vh; min-height:320px;
  background-size:cover; background-position:center;
  position:relative;
}
.ao-cover-ov {
  position:absolute; inset:0;
  background:linear-gradient(to bottom, rgba(0,0,0,.1) 0%, rgba(0,0,0,.35) 100%);
}

/* HEADER editoriale — sotto la copertina */
.ao-header {
  padding-bottom:2.5rem;
  margin-bottom:2.5rem;
  border-bottom:1px solid rgba(255,255,255,.1);
}
.ao-cat-tag {
  font-family:var(--ui); font-size:.44rem; letter-spacing:.35em; text-transform:uppercase;
  color:var(--accent); display:block; margin-bottom:1.2rem; transition:color 1.8s;
}
.ao-title {
  font-family:var(--serif); font-size:clamp(2.2rem,5vw,3.8rem);
  line-height:1; letter-spacing:.01em; color:var(--txt); margin:0 0 1.2rem;
}

/* INTRO STRIP */
.ao-intro {
  padding:3.5rem 5vw 3rem;
  border-bottom:1px solid rgba(255,255,255,.06);
  max-width:900px;
}
.ao-intro-tagline {
  font-family:var(--serif); font-size:clamp(1.3rem,3vw,2.2rem);
  line-height:1.2; letter-spacing:.01em;
  color:var(--txt); font-weight:400; margin:0;
  opacity:.85;
}

/* BLOCKS — testo e immagini intercalati */
.ao-blocks { }

/* Blocco testo */
.ao-block--text { max-width:660px; margin:0 auto; padding:3.5rem 5vw; }
.ao-body {
  max-width:700px; margin:0 auto;
  padding:4.5rem 2.5rem 6rem;
}
.ao-content {
  font-family:Georgia,'Times New Roman',serif;
  font-size:1.2rem; line-height:1.9;
  color:rgba(240,236,228,.82);
  letter-spacing:.01em;
}
.ao-content p { margin:0 0 1.8rem; }
.ao-content p:first-child {
  font-size:1.35rem; line-height:1.75;
  color:var(--txt); margin-bottom:2.2rem;
}
.ao-content h2 {
  font-family:var(--serif);
  font-size:clamp(1.5rem,2.5vw,2rem);
  letter-spacing:.03em; color:var(--txt); line-height:1;
  margin:3.5rem 0 1.5rem;
  padding-bottom:.8rem;
  border-bottom:1px solid rgba(255,255,255,.1);
}
.ao-content em { color:var(--txt); font-style:italic; }
.ao-content strong { color:var(--txt); font-weight:bold; }
.ao-content blockquote {
  margin:2.5rem 0; padding:1.5rem 2rem;
  border-left:3px solid var(--accent);
  font-size:1.3rem; line-height:1.65;
  color:var(--txt); font-style:italic;
  background:rgba(255,255,255,.02);
}

/* Blocco immagine singola — full width */
.ao-block--image { width:100%; overflow:hidden; min-height:180px; }
.ao-block--image img { width:100%; aspect-ratio:16/7; object-fit:cover; display:block; transition:transform .8s var(--ease); min-height:180px; }
.ao-block--image:hover img { transform:scale(1.02); }
.ao-block-caption { font-family:var(--ui); font-size:.42rem; letter-spacing:.18em; color:var(--txt-d); padding:.6rem 5vw; }

/* Blocco 2 immagini affiancate */
.ao-block--images { display:grid; grid-template-columns:1fr 1fr; gap:3px; }
.ao-block-img-item { overflow:hidden; min-height:150px; }
.ao-block-img-item img { width:100%; aspect-ratio:4/3; object-fit:cover; display:block; transition:transform .7s var(--ease); min-height:150px; }
.ao-block-img-item:hover img { transform:scale(1.03); }

@media(max-width:640px) {
  .ao-block--images { grid-template-columns:1fr; }
  .ao-block-img-item img { aspect-ratio:3/2; }
}
.ao-tags { display:flex; flex-wrap:wrap; gap:.5rem; margin-top:3rem; padding-top:2rem; border-top:1px solid rgba(255,255,255,.07); }
.ao-tag-pill { font-family:var(--ui); font-size:.42rem; letter-spacing:.18em; color:var(--txt-d); background:var(--bg2); padding:.35rem .9rem; }

/* ── SOCIAL BAR (share + like + commenti) ── */
.ao-social-bar {
  margin-top:2.5rem; padding-top:2rem;
  border-top:1px solid rgba(255,255,255,.07);
  display:flex; align-items:center; gap:1.2rem; flex-wrap:wrap;
}
.ao-social-bar-label {
  font-family:var(--ui); font-size:.44rem; letter-spacing:.25em;
  color:var(--txt-d); text-transform:uppercase;
}
.ao-social-bar-btns { display:flex; gap:.6rem; }
.ao-share-btn {
  width:40px; height:40px; border-radius:50%;
  background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.08);
  color:var(--txt-m); display:flex; align-items:center; justify-content:center;
  cursor:pointer; transition:all .25s; text-decoration:none;
}
.ao-share-btn:hover { background:var(--accent); color:#fff; border-color:var(--accent); }
.ao-share-copy.copied { background:var(--accent); color:#fff; border-color:var(--accent); }

/* Like */
.ao-like-bar {
  margin-top:1.5rem; display:flex; align-items:center;
}
.ao-like-btn {
  display:flex; align-items:center; gap:.5rem;
  background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.08);
  border-radius:2rem; padding:.55rem 1.2rem .55rem .9rem;
  color:var(--txt-m); cursor:pointer; transition:all .25s;
  font-family:var(--ui); font-size:.52rem; letter-spacing:.1em;
}
.ao-like-btn:hover { border-color:rgba(255,255,255,.2); color:var(--txt); }
.ao-like-btn.liked { color:#e74c6f; border-color:rgba(231,76,111,.3); background:rgba(231,76,111,.08); }
.ao-like-btn.liked:hover { background:rgba(231,76,111,.15); }
.ao-like-count { min-width:1ch; }

/* Commenti */
.ao-comments {
  margin-top:3rem; padding-top:2.5rem;
  border-top:1px solid rgba(255,255,255,.07);
}
.ao-comments-hd {
  font-family:var(--ui); font-size:.48rem; letter-spacing:.25em;
  color:var(--txt-d); text-transform:uppercase;
  margin-bottom:1.5rem; display:flex; align-items:center; gap:.5rem;
}
.ao-comments-count { color:var(--txt-m); }
.ao-comments-list { display:flex; flex-direction:column; gap:1.2rem; margin-bottom:2rem; }

.ao-comment {
  background:rgba(255,255,255,.03); border:1px solid rgba(255,255,255,.06);
  border-radius:.5rem; padding:1rem 1.2rem;
}
.ao-comment-header {
  display:flex; justify-content:space-between; align-items:center;
  margin-bottom:.5rem;
}
.ao-comment-author {
  font-family:var(--ui); font-size:.46rem; letter-spacing:.15em;
  color:var(--accent); text-transform:uppercase;
}
.ao-comment-date {
  font-family:var(--ui); font-size:.4rem; letter-spacing:.12em;
  color:var(--txt-d);
}
.ao-comment-body {
  font-family:Georgia,'Times New Roman',serif;
  font-size:.95rem; line-height:1.6; color:rgba(240,236,228,.75);
  word-break:break-word;
}
.ao-comment-empty {
  font-family:Georgia,'Times New Roman',serif;
  font-size:.95rem; color:var(--txt-d); font-style:italic;
  padding:1rem 0;
}

/* Comment form */
.ao-comment-form { display:flex; flex-direction:column; gap:.8rem; }
.ao-comment-input {
  background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.08);
  border-radius:.4rem; padding:.75rem 1rem;
  font-family:Georgia,'Times New Roman',serif; font-size:.95rem;
  color:var(--txt); outline:none; transition:border-color .25s;
  resize:vertical;
}
.ao-comment-input::placeholder { color:var(--txt-d); }
.ao-comment-input:focus { border-color:var(--accent); }
.ao-comment-name { max-width:280px; }
.ao-comment-submit {
  align-self:flex-start;
  font-family:var(--ui); font-size:.46rem; letter-spacing:.2em;
  text-transform:uppercase; color:var(--txt);
  background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.12);
  border-radius:.3rem; padding:.7rem 2rem; cursor:pointer;
  transition:all .25s;
}
.ao-comment-submit:hover { background:var(--accent); border-color:var(--accent); color:#fff; }

@media(max-width:640px) {
  .ao-share-btn { width:36px; height:36px; }
  .ao-comment-name { max-width:100%; }
}

/* SECTION WRAPPER (gallery / social / video) */
.ao-section { padding:4rem 0; border-top:1px solid rgba(255,255,255,.06); }
.ao-section--pad { padding:4rem 5vw; }
.ao-section-hd {
  padding:0 5vw 1.5rem;
  font-family:var(--ui); font-size:.44rem; letter-spacing:.3em;
  color:var(--txt-d); text-transform:uppercase;
  display:flex; align-items:center; gap:1rem;
}
.ao-section-hd::after { content:''; flex:1; height:1px; background:rgba(255,255,255,.07); }

/* GALLERY */
.ao-gallery { display:grid; grid-template-columns:repeat(3,1fr); gap:3px; }
.ao-gallery-item { aspect-ratio:4/3; overflow:hidden; }
.ao-gallery-item:first-child { grid-column:1/-1; aspect-ratio:21/7; }
.ao-gallery-item img { width:100%; height:100%; object-fit:cover; transition:transform .7s var(--ease); }
.ao-gallery-item:hover img { transform:scale(1.04); }

/* SOCIAL SLIDER */
.ao-social-section { }
.ao-social-slider { display:flex; gap:.75rem; overflow-x:auto; scroll-snap-type:x mandatory; -webkit-overflow-scrolling:touch; padding-bottom:.5rem; scrollbar-width:none; }
.ao-social-slider::-webkit-scrollbar { display:none; }
.ao-social-card { flex:0 0 240px; aspect-ratio:9/16; position:relative; overflow:hidden; cursor:pointer; text-decoration:none; scroll-snap-align:start; transition:opacity .3s; }
.ao-social-card:hover { opacity:.92; }
.ao-social-card img { width:100%; height:100%; object-fit:cover; transition:transform .5s var(--ease); }
.ao-social-card:hover img { transform:scale(1.04); }
.ao-social-ov { position:absolute; inset:0; background:linear-gradient(to top,rgba(0,0,0,.8) 0%,transparent 55%); }
.ao-social-play { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:52px; height:52px; border:1.5px solid rgba(255,255,255,.7); border-radius:50%; display:flex; align-items:center; justify-content:center; color:#fff; transition:background .2s,border-color .2s,transform .2s; }
.ao-social-card:hover .ao-social-play { background:var(--accent); border-color:var(--accent); transform:translate(-50%,-50%) scale(1.1); }
.ao-social-footer { position:absolute; bottom:0; left:0; right:0; padding:.8rem 1rem; display:flex; align-items:center; gap:.5rem; }
.ao-social-platform { color:rgba(255,255,255,.6); display:flex; align-items:center; }
.ao-social-caption { font-family:var(--ui); font-size:.4rem; letter-spacing:.1em; color:rgba(255,255,255,.5); line-height:1.3; }
.ao-social-card--video { cursor:pointer; }
.ao-social-video { width:100%; height:100%; object-fit:cover; display:block; }
.ao-social-card--video.playing .ao-social-play { opacity:0; transition:opacity .25s; }
.ao-social-card--video.playing .ao-social-ov { opacity:0; transition:opacity .3s; }
.ao-social-card--video.unmuted::after { content:'♪'; position:absolute; top:.6rem; right:.7rem; font-size:.75rem; color:var(--accent); }

/* VIDEO */
.ao-video-wrap { position:relative; padding-bottom:56.25%; height:0; overflow:hidden; }
.ao-video-wrap iframe, .ao-video-wrap video { position:absolute; inset:0; width:100%; height:100%; border:none; }

/* CTA BLOCK */
.ao-cta-block {
  background:var(--bg2); padding:5rem 5vw;
  text-align:center; border-top:1px solid rgba(255,255,255,.06);
}
.ao-cta-tagline {
  font-family:var(--serif); font-size:clamp(1.3rem,3vw,2.2rem);
  color:var(--txt); margin:0 0 2.5rem; opacity:.7; line-height:1.2;
}
.ao-cta-btn { font-size:.62rem; padding:1rem 3rem; letter-spacing:.2em; }

/* Article overlay (Il Mondo di REM) */
.ao-excerpt {
  font-family:Georgia,'Times New Roman',serif;
  font-size:1.25rem; line-height:1.7;
  color:var(--txt); font-style:italic;
  margin-bottom:3rem; padding-bottom:3rem;
  border-bottom:1px solid rgba(255,255,255,.1);
  opacity:.9;
}
.ao-meta {
  font-family:var(--ui); font-size:.52rem;
  letter-spacing:.2em; color:rgba(255,255,255,.35);
  margin-top:.8rem; text-transform:uppercase;
}

@media(max-width:768px) {
  .ao-cover { height:45vw; min-height:220px; }
  .ao-title { font-size:clamp(1.8rem,8vw,2.8rem); }
  .ao-intro-tagline { font-size:1.1rem; }
  .ao-gallery { grid-template-columns:repeat(2,1fr); }
  .ao-gallery-item:first-child { grid-column:1/-1; aspect-ratio:16/7; }
  .ao-social-card { flex:0 0 170px; }
  .ao-body { padding:2.5rem 1.4rem 4rem; }
  .ao-content { font-size:1.05rem; line-height:1.8; }
  .ao-content p:first-child { font-size:1.15rem; }
  .ao-excerpt { font-size:1.1rem; }
}

/* MERCH */
.merch{background:var(--bg2)}
.merch-inner{max-width:1300px;margin:0 auto;padding:6rem 2.5rem}
.mh{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:3rem;flex-wrap:wrap;gap:1rem}
.mtit{font-family:var(--serif);font-size:clamp(3rem,5vw,5.5rem);letter-spacing:.02em;line-height:.9;color:var(--txt)}
.mtit .ol{color:var(--accent);transition:color 1.8s}
.mg{display:grid;grid-template-columns:repeat(4,1fr);gap:3px}
.mrc{background:var(--bg);transition:background 1.8s;overflow:hidden;cursor:pointer}
.mrc:hover{background:var(--bg3)}
.mrc-img{aspect-ratio:1;background:var(--bg2);position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center}
.mrc-img img{width:100%;opacity:1}
.mrc-badge{position:absolute;top:.9rem;left:.9rem;background:var(--accent);color:var(--bg);font-size:.42rem;letter-spacing:.2em;text-transform:uppercase;padding:.28rem .6rem;transition:background 1.8s,color 1.8s}
.mrc-body{padding:1.4rem}
.mrc-type{font-size:.46rem;letter-spacing:.25em;color:var(--accent);text-transform:uppercase;margin-bottom:.4rem;transition:color 1.8s}
.mrc-name{font-family:var(--serif);font-size:1.2rem;letter-spacing:.04em;margin-bottom:.9rem;color:var(--txt)}
.mrc-row{display:flex;justify-content:space-between;align-items:center}
.mrc-pr{font-family:var(--serif);font-size:1.1rem;letter-spacing:.08em;color:var(--accent);transition:color 1.8s}
.mrc-add{width:30px;height:30px;background:transparent;border:1px solid var(--border);color:var(--txt);display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:1.1rem;transition:var(--trans)}
.mrc-add:hover{background:var(--accent);border-color:var(--accent);color:var(--bg)}

/* LOCATION */
.loc{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--border)}
.locmap{position:relative;overflow:hidden;height:520px;background:var(--bg2)}
.locmap-iframe{position:absolute;inset:0;width:100%;height:100%;border:none;display:block}
.locmap-link{position:absolute;bottom:1.5rem;right:1.5rem;z-index:2;font-size:.5rem;letter-spacing:.2em;color:var(--accent);text-decoration:none;border:1px solid var(--border);padding:.6rem 1.2rem;background:rgba(6,6,6,.85);backdrop-filter:blur(10px);transition:var(--trans)}
.locmap-link:hover{background:var(--accent2)}
.locinfo{padding:5rem 4rem;display:flex;flex-direction:column;justify-content:center;background:var(--bg)}
.loctit{font-family:var(--serif);font-size:clamp(3rem,4.5vw,5rem);letter-spacing:.02em;line-height:.9;margin:1rem 0 2rem;color:var(--txt)}
.loctit .ol{color:var(--accent);transition:color 1.8s}
.locits{display:flex;flex-direction:column;gap:1.8rem}
.li{display:flex;gap:1.2rem;align-items:flex-start}
.li-ic{width:34px;height:34px;border:1px solid var(--border);display:flex;align-items:center;justify-content:center;color:var(--accent);flex-shrink:0;font-size:.85rem;transition:color 1.8s,border-color 1.8s}
.li-t strong{display:block;font-size:.5rem;letter-spacing:.2em;text-transform:uppercase;color:var(--txt);margin-bottom:.25rem}
.li-t span,.li-t a{font-size:.7rem;color:var(--txt-m);line-height:1.6;text-decoration:none}

/* FOOTER */
footer{background:var(--bg);border-top:1px solid var(--border);padding:4rem 2.5rem 2rem}
.ftin{max-width:1300px;margin:0 auto;display:grid;grid-template-columns:2.5fr 1fr 1fr 1fr;gap:3rem;margin-bottom:4rem}
.ftlogo{height:56px;width:56px;object-fit:contain;margin-bottom:1rem}
.fttag{font-size:.46rem;letter-spacing:.4em;color:var(--accent);text-transform:uppercase;margin-bottom:1.2rem;transition:color 1.8s}
.ftbrand p{font-size:.68rem;color:var(--txt-d);line-height:1.7;max-width:240px}
.ftcol h4{font-size:.46rem;letter-spacing:.32em;text-transform:uppercase;color:var(--accent);margin-bottom:1.4rem;transition:color 1.8s}
.ftcol ul{list-style:none;display:flex;flex-direction:column;gap:.75rem}
.ftcol a{font-size:.68rem;color:var(--txt-m);text-decoration:none;letter-spacing:.04em;transition:color .2s}
.ftcol a:hover{color:var(--txt)}
.ftbot{max-width:1300px;margin:0 auto;display:flex;flex-direction:column;align-items:center;text-align:center;padding-top:1.5rem;border-top:1px solid var(--border);gap:1rem}
.ftbot p{font-size:.54rem;color:var(--txt-d);letter-spacing:.04em}
.ftsoc{display:flex;gap:1rem}
.ftsoc a{width:34px;height:34px;border:1px solid var(--border);display:flex;align-items:center;justify-content:center;color:var(--txt-m);text-decoration:none;transition:var(--trans)}
.ftsoc a:hover{border-color:var(--accent);color:var(--accent)}

/* BOOK NOW floating */
.wa{position:fixed;bottom:1.8rem;right:1.8rem;z-index:80}
.wa a{display:flex;align-items:center;gap:.5rem;background:var(--bg);border:1px solid var(--accent);color:var(--accent);font-family:var(--ui);font-size:.58rem;letter-spacing:.15em;padding:.7rem 1.3rem;border-radius:2rem;text-decoration:none;box-shadow:0 4px 24px rgba(0,0,0,.5);transition:transform .3s var(--ease),background .2s,color .2s,box-shadow .3s}
.wa a:hover{transform:translateY(-2px);background:var(--accent);color:var(--bg);box-shadow:0 6px 28px var(--glow)}
.wa svg{flex-shrink:0}

/* ══ BOOKING MODAL ══ */
.bk-modal-overlay{position:fixed;inset:0;z-index:300;background:rgba(0,0,0,.8);backdrop-filter:blur(6px);opacity:0;pointer-events:none;transition:opacity .3s ease}
.bk-modal-overlay.open{opacity:1;pointer-events:auto}
.bk-modal{position:fixed;inset:0;z-index:301;display:flex;align-items:center;justify-content:center;padding:1.5rem;opacity:0;pointer-events:none;transform:translateY(1.5rem);transition:opacity .3s ease,transform .3s ease}
.bk-modal.open{opacity:1;pointer-events:auto;transform:translateY(0)}
.bk-modal-close{position:absolute;top:1.5rem;right:1.5rem;width:38px;height:38px;background:transparent;border:1px solid rgba(255,255,255,.18);color:var(--txt);font-size:.9rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s,border-color .2s;z-index:1}
.bk-modal-close:hover{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.4)}
.bk-modal-card{background:var(--bg2);border:1px solid var(--border);padding:3.5rem 3rem;max-width:480px;width:100%;display:flex;flex-direction:column;gap:1.5rem;position:relative}
.bk-modal-eyebrow{font-size:.45rem;letter-spacing:.3em;text-transform:uppercase;color:var(--txt-d)}
.bk-modal-heading{font-family:var(--serif);font-size:clamp(2.5rem,5vw,3.5rem);line-height:.9;color:var(--txt)}
.bk-modal-desc{font-size:.62rem;letter-spacing:.04em;color:var(--txt-m);line-height:1.75}
.bk-modal-cta{display:inline-flex;align-self:flex-start;margin-top:.5rem;text-decoration:none}
.bk-modal-back{background:transparent;border:none;color:var(--txt-d);font-family:var(--ui);font-size:.48rem;letter-spacing:.15em;text-transform:uppercase;cursor:pointer;padding:0;transition:color .2s;align-self:flex-start}
.bk-modal-back:hover{color:var(--txt)}

/* REVEAL */
.rev{opacity:0;transform:translateY(24px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.rev.vis{opacity:1;transform:none}
.rev:nth-child(2){transition-delay:.08s}.rev:nth-child(3){transition-delay:.16s}.rev:nth-child(4){transition-delay:.24s}

/* GRAIN */
body::after{content:'';position:fixed;inset:0;z-index:9998;pointer-events:none;opacity:.025;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-size:200px}

/* RESPONSIVE */
@media(max-width:1024px){.mg{grid-template-columns:repeat(2,1fr)}.ftin{grid-template-columns:1fr 1fr}.drk-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:768px){
  body{padding-top:114px}
  .hypno-bar{top:60px;height:52px;padding:0 1rem;gap:.5rem}
  .hypno-divider{display:none}
  .hypno-timer{font-size:.85rem;min-width:auto;flex-shrink:0}
  .phase-pill{font-size:.38rem;letter-spacing:.2em;padding:.25rem .55rem;flex-shrink:0}
  .hypno-svg-wrap{flex:1;min-width:0;height:48px;overflow:hidden}
  .hypno-svg #hypno-line{stroke:rgba(255,255,255,.7);stroke-width:2}
  .hypno-svg #hypno-line-active{stroke-width:3}
  nav{padding:.8rem 1.5rem;height:60px}
  .nlinks{display:none}.hbg{display:flex}
  .nav-en{display:inline-block}
  .hslides{grid-template-columns:1fr;grid-template-rows:repeat(3,1fr)}
  .hs:nth-child(1){grid-row:auto}
  .hcnt{flex-direction:column;align-items:flex-start;padding:0 1.5rem 3rem}
  .htit{font-size:clamp(2.5rem,10.5vw,4rem)}
  .hrt{align-items:flex-start}.hsub{text-align:left}
  .concept{grid-template-columns:1fr}.ctxt{padding:3rem 1.5rem}
  .gallery{grid-template-columns:1fr 1fr;grid-auto-rows:120px}
  .mc1{grid-column:1/3;grid-row:1/3}.mc2{grid-column:1/2;grid-row:3/5}.mc3{grid-column:2/3;grid-row:3/5}
  .mc4{grid-column:1/3;grid-row:5/7}.mc5,.mc6{grid-column:1/2;grid-row:auto}.mc7{grid-column:2/3;grid-row:auto}.mc8{grid-column:1/3;grid-row:auto}
  .drk-grid{grid-template-columns:1fr}.drk-head{grid-template-columns:1fr}
  .pg{grid-template-columns:1fr;border-left:none}
  .bk{grid-template-columns:1fr}.bkl,.bkr{padding:3.5rem 1.5rem}.fg-r{grid-template-columns:1fr}
  .nm{grid-template-columns:1fr}
  .na{height:340px}
  .nabod{padding:1.5rem}
  .mg{grid-template-columns:repeat(2,1fr)}
  .loc{grid-template-columns:1fr}.locmap{height:320px}.locinfo{padding:3rem 1.5rem}
  .ftin{grid-template-columns:1fr 1fr}.ftbrand{grid-column:1/-1}
  .drk-inner,.news,.merch-inner{padding:4rem 1.5rem}
  .ftbot{padding-bottom:5rem}
}
@media(max-width:480px){.mg{grid-template-columns:1fr}.ftin{grid-template-columns:1fr}}

/* ══ LIGHT SLEEP — retro 90s ══ */
body.phase-light .bol,
body.phase-light .bln,
body.phase-light .bbk {
  font-family: 'Courier New', monospace !important;
  letter-spacing: .06em !important;
  box-shadow: 3px 3px 0 var(--accent) !important;
  transition: box-shadow .08s, transform .08s !important;
}
body.phase-light .bol:hover,
body.phase-light .bln:hover {
  box-shadow: 1px 1px 0 var(--accent) !important;
  transform: translate(2px, 2px) !important;
}
body.phase-light .cur-d,
body.phase-light .cur-r { display: none !important; }

/* ══ DEEP SLEEP — glitch ══ */
@keyframes glitch-1 {
  0%       { clip-path: inset(0 0 92% 0);   transform: translate(-8px,0) skewX(-2deg); }
  15%      { clip-path: inset(15% 0 60% 0); transform: translate(10px,0); }
  30%      { clip-path: inset(40% 0 35% 0); transform: translate(-6px,0) skewX(3deg); }
  45%      { clip-path: inset(65% 0 15% 0); transform: translate(8px,0); }
  60%      { clip-path: inset(80% 0 5% 0);  transform: translate(-10px,0); }
  75%      { clip-path: inset(25% 0 55% 0); transform: translate(6px,0) skewX(-1deg); }
  100%     { clip-path: inset(0 0 92% 0);   transform: translate(-8px,0); }
}
  20%      { clip-path: inset(30% 0 50% 0); transform: translate(4px,0); }
  40%      { clip-path: inset(60% 0 20% 0); transform: translate(-2px,0); }
  60%      { clip-path: inset(80% 0 5% 0);  transform: translate(3px,0); }
  80%      { clip-path: inset(10% 0 80% 0); transform: translate(-3px,0); }
}
@keyframes glitch-2 {
  0%,100%  { clip-path: inset(45% 0 30% 0); transform: translate(10px,0);  color:#ef4444; }
  20%      { clip-path: inset(5% 0 75% 0);  transform: translate(-10px,0); color:#22d3ee; }
  40%      { clip-path: inset(70% 0 8% 0);  transform: translate(8px,0);   color:#ef4444; }
  60%      { clip-path: inset(20% 0 55% 0); transform: translate(-8px,0);  color:#22d3ee; }
  80%      { clip-path: inset(55% 0 20% 0); transform: translate(12px,0);  color:#ef4444; }
}
  25%      { clip-path: inset(10% 0 70% 0); transform: translate(-4px,0); color:#22d3ee; }
  50%      { clip-path: inset(70% 0 10% 0); transform: translate(2px,0); color:#ef4444; }
  75%      { clip-path: inset(20% 0 60% 0); transform: translate(-2px,0); color:#22d3ee; }
}
.glitch-active { position: relative; }
.glitch-active::before,
.glitch-active::after {
  content: attr(data-text);
  position: absolute;
  inset: 0;
  font: inherit;
  letter-spacing: inherit;
  pointer-events: none;
}
.glitch-active::before { animation: glitch-1 .35s steps(1) forwards; color:#22d3ee; }
.glitch-active::after  { animation: glitch-2 .18s steps(1) forwards; }

/* ══ REM — float + eye cursor + subliminal ══ */
@keyframes rem-float {
  0%,100% { transform: translateY(0) rotate(0deg); }
  30%     { transform: translateY(-4px) rotate(-.12deg); }
  70%     { transform: translateY(3px) rotate(.1deg); }
}
/* rem-float disabled */
/* subliminal css removed */

#eye-cursor {
  position: fixed; z-index: 9999; pointer-events: none;
  width: 52px; height: 52px;
  transform: translate(-50%,-50%);
  display: none;
}
body.phase-rem #eye-cursor { display: block; }
body.phase-rem .cur-d, body.phase-rem .cur-r { display: none; }
@keyframes eyeblink {
  0%,85%,100% { transform: scaleY(1); }
  92%         { transform: scaleY(0.04); }
}
#eye-cursor svg { animation: eyeblink 5s ease-in-out infinite; transform-origin: center; }

#cursor-90s {
  position: fixed; z-index: 9999; pointer-events: none;
  width: 22px; height: 30px;
  transform: translate(0,0);
  display: none;
}
body.phase-light #cursor-90s { display: block; }
body.phase-light .cur-d, body.phase-light .cur-r { display: none; }


/* ══ PHASE VIDEO FULLSCREEN ══ */
.vid-fase { position:relative; width:100%; height:100svh; overflow:hidden; background:#000; }
.vf-bg {
  position:absolute; inset:0; z-index:1;
  background-size:cover; background-position:center;
  transition:opacity .8s ease;
}
.vf-ov {
  position:absolute; inset:0; z-index:2;
  background:linear-gradient(to bottom, rgba(0,0,0,.2) 0%, rgba(0,0,0,0) 40%, rgba(0,0,0,.55) 100%);
  pointer-events:none;
}
.vf-player {
  position:absolute; inset:0; z-index:3;
  background:transparent; /* thumbnail visible while video loads */
}
.vf-player iframe { width:100%; height:100%; border:none; display:block; }
.vf-label {
  position:absolute; bottom:2.5rem; left:2.5rem; z-index:4;
  font-family:var(--ui); font-size:.58rem; letter-spacing:.28em;
  text-transform:uppercase; color:rgba(255,255,255,.4); pointer-events:none;
}
.vf-mute-btn {
  position:absolute; bottom:2.5rem; right:2.5rem; z-index:4;
  width:44px; height:44px; background:rgba(0,0,0,.55);
  border:1px solid rgba(255,255,255,.25); color:#fff;
  cursor:pointer; display:flex; align-items:center; justify-content:center;
  transition:background .2s, border-color .2s;
}
.vf-mute-btn:hover { background:rgba(0,0,0,.85); border-color:rgba(255,255,255,.5); }
.vf-mute-btn .icon-unmuted { display:none; }
.vf-mute-btn.unmuted .icon-muted { display:none; }
.vf-mute-btn.unmuted .icon-unmuted { display:block; }
.vf-fallback {
  position:absolute; inset:0; display:flex; flex-direction:column;
  align-items:center; justify-content:center; gap:1.5rem;
  background:#000; color:var(--txt);
}
.vf-fallback-msg { font-size:.75rem; letter-spacing:.08em; color:var(--txt-m); }
.vf-fallback-btn { text-decoration:none; }
.vf-yt-link {
  position:absolute; bottom:2.5rem; right:2.5rem; z-index:4;
  font-family:var(--ui); font-size:.58rem; letter-spacing:.2em; text-transform:uppercase;
  color:rgba(255,255,255,.5); text-decoration:none;
  transition:color .2s;
}
.vf-yt-link:hover { color:rgba(255,255,255,.9); }




/* ══ BOOKING RIGHT PANEL ══ */
.bkr {
  flex: 1;
  background: var(--bg2);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 5rem 4rem;
}
.bkr-cta {
  display: flex;
  flex-direction: column;
  gap: 1.8rem;
  max-width: 420px;
}
.bkr-sub {
  font-family: var(--ui);
  font-size: .78rem;
  line-height: 1.7;
  color: var(--txt-m);
  letter-spacing: .03em;
}
.bkr-btn {
  align-self: flex-start;
}
.bkr-note {
  font-family: var(--ui);
  font-size: .52rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--txt-m);
  opacity: .4;
}

/* ══ MERCH PHOTOS ══ */
.mrc-img {
  width: 100%;
  aspect-ratio: 3/4;
  overflow: hidden;
  background: #0a0a0a;
  position: relative;
}
.mrc-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top center;
  display: block;
  transition: transform .9s cubic-bezier(.16,1,.3,1);
}
.mrc:hover .mrc-img img { transform: scale(1.04); }

/* ═══════════════════════════════════════
   SHOP — SIZE SELECTOR
═══════════════════════════════════════ */
.mrc-sizes { display:flex; gap:.4rem; flex-wrap:wrap; margin-bottom:.9rem; }
.size-btn {
  background:transparent; border:1px solid var(--border);
  color:var(--txt-m); padding:.3rem .7rem;
  font-family:var(--ui); font-size:.44rem; letter-spacing:.15em;
  text-transform:uppercase; cursor:pointer;
  transition:border-color .2s,color .2s,background .2s;
}
.size-btn:hover { border-color:var(--txt-m); color:var(--txt); }
.size-btn.selected { background:var(--accent); border-color:var(--accent); color:var(--bg); }
@keyframes shake { 0%,100%{transform:translateX(0)} 25%{transform:translateX(-5px)} 75%{transform:translateX(5px)} }
.mrc-sizes.shake { animation:shake .35s ease; }

/* ═══════════════════════════════════════
   SHOP — CART BUTTON (nav)
═══════════════════════════════════════ */
.cart-btn {
  position:relative; background:transparent; border:1px solid var(--border);
  color:var(--txt); width:38px; height:38px;
  display:flex; align-items:center; justify-content:center;
  cursor:pointer; transition:var(--trans); flex-shrink:0;
}
.cart-btn:hover { border-color:var(--accent); color:var(--accent); }
.cart-count {
  position:absolute; top:-7px; right:-7px;
  min-width:18px; height:18px; padding:0 4px;
  background:var(--accent); color:var(--bg);
  font-size:.38rem; letter-spacing:.05em;
  display:none; align-items:center; justify-content:center;
  transition:background 1.8s,color 1.8s;
}

/* ═══════════════════════════════════════
   SHOP — CART DRAWER
═══════════════════════════════════════ */
.cart-overlay {
  position:fixed; inset:0; background:rgba(0,0,0,.55);
  z-index:200; opacity:0; pointer-events:none; transition:opacity .3s;
}
.cart-overlay.open { opacity:1; pointer-events:all; }

.cart-drawer {
  position:fixed; top:0; right:0; bottom:0;
  width:420px; max-width:100vw;
  background:var(--bg2); border-left:1px solid var(--border);
  z-index:201; display:flex; flex-direction:column;
  transform:translateX(100%);
  transition:transform .35s cubic-bezier(.16,1,.3,1),background 1.8s,border-color 1.8s;
}
.cart-drawer.open { transform:translateX(0); }

.cart-header {
  display:flex; justify-content:space-between; align-items:center;
  padding:1.5rem 2rem; border-bottom:1px solid var(--border);
}
.cart-title { font-size:.52rem; letter-spacing:.32em; text-transform:uppercase; color:var(--txt); }
.cart-close {
  background:none; border:none; color:var(--txt-m);
  cursor:pointer; font-size:1rem; padding:.3rem; transition:color .2s;
}
.cart-close:hover { color:var(--txt); }

.cart-items { flex:1; overflow-y:auto; padding:.5rem 0; }
.cart-items::-webkit-scrollbar { width:3px; }
.cart-items::-webkit-scrollbar-thumb { background:var(--border); }

.cart-empty {
  padding:3rem 2rem; font-size:.68rem;
  color:var(--txt-d); letter-spacing:.06em; text-align:center;
}
.cart-item {
  display:flex; align-items:flex-start; gap:1rem;
  padding:1.2rem 2rem; border-bottom:1px solid var(--border);
}
.ci-img { width:68px; height:68px; object-fit:cover; flex-shrink:0; background:var(--bg3); }
.ci-info { flex:1; }
.ci-name { font-family:var(--serif); font-size:.9rem; letter-spacing:.04em; color:var(--txt); margin-bottom:.2rem; }
.ci-size { font-size:.44rem; letter-spacing:.2em; color:var(--accent); text-transform:uppercase; margin-bottom:.55rem; transition:color 1.8s; }
.ci-controls { display:flex; align-items:center; gap:.55rem; }
.ci-qty-btn {
  width:24px; height:24px; background:transparent;
  border:1px solid var(--border); color:var(--txt);
  cursor:pointer; font-size:.9rem; line-height:1;
  display:flex; align-items:center; justify-content:center;
  transition:border-color .2s,background .2s;
}
.ci-qty-btn:hover { border-color:var(--accent); background:var(--accent2); }
.ci-qty { font-size:.68rem; min-width:16px; text-align:center; color:var(--txt); }
.ci-right { display:flex; flex-direction:column; align-items:flex-end; gap:.5rem; flex-shrink:0; }
.ci-price { font-family:var(--serif); font-size:1rem; color:var(--accent); letter-spacing:.06em; transition:color 1.8s; }
.ci-remove { background:none; border:none; color:var(--txt-d); cursor:pointer; font-size:.6rem; padding:.2rem; transition:color .2s; }
.ci-remove:hover { color:var(--txt); }

.cart-footer {
  display:none; flex-direction:column; gap:1.2rem;
  padding:1.8rem 2rem; border-top:1px solid var(--border);
}
.cart-total-row { display:flex; justify-content:space-between; align-items:center; }
.cart-total-row span:first-child { font-size:.48rem; letter-spacing:.3em; text-transform:uppercase; color:var(--txt-m); }
#cart-total { font-family:var(--serif); font-size:1.5rem; color:var(--txt); }
.cart-checkout-btn { width:100%; justify-content:center; }

/* ═══════════════════════════════════════
   SHOP — CHECKOUT MODAL
═══════════════════════════════════════ */
.checkout-overlay {
  position:fixed; inset:0; background:rgba(0,0,0,.72);
  z-index:300; display:flex; align-items:center; justify-content:center;
  padding:1rem; opacity:0; pointer-events:none; transition:opacity .3s;
}
.checkout-overlay.open { opacity:1; pointer-events:all; }

.checkout-modal {
  background:var(--bg2); border:1px solid var(--border);
  width:100%; max-width:560px; max-height:90vh; overflow-y:auto;
  padding:3rem; position:relative;
  transition:background 1.8s,border-color 1.8s;
}
.checkout-modal::-webkit-scrollbar { width:3px; }
.checkout-modal::-webkit-scrollbar-thumb { background:var(--border); }

.checkout-close {
  position:absolute; top:1.5rem; right:1.5rem;
  background:none; border:none; color:var(--txt-m);
  font-size:1.1rem; cursor:pointer; transition:color .2s;
}
.checkout-close:hover { color:var(--txt); }

.checkout-title {
  font-family:var(--serif); font-size:2.2rem;
  letter-spacing:.04em; color:var(--txt); margin:.5rem 0 2rem;
}
.co-item {
  display:flex; justify-content:space-between; align-items:baseline;
  padding:.7rem 0; border-bottom:1px solid var(--border);
  font-size:.68rem; letter-spacing:.04em; color:var(--txt-m);
}
.co-size { color:var(--txt-d); }
.checkout-total-row {
  display:flex; justify-content:space-between; align-items:center;
  padding:1.2rem 0 2rem; border-top:1px solid var(--border); margin-top:.5rem;
}
.checkout-total-row span:first-child { font-size:.48rem; letter-spacing:.3em; text-transform:uppercase; color:var(--txt-m); }
.checkout-total-row span:last-child { font-family:var(--serif); font-size:1.5rem; color:var(--accent); transition:color 1.8s; }
.checkout-form { display:flex; flex-direction:column; gap:.8rem; }

@media(max-width:480px) {
  .cart-drawer { width:100vw; }
  .checkout-modal { padding:2rem 1.5rem; }
}

/* ═══ AUDIO BUTTON STYLES ═══ */

.audio-btn {
  position: fixed;
  bottom: 5.2rem;
  right: 1.8rem;
  z-index: 81;
  width: 50px;
  height: 50px;
  background: var(--bg2);
  border: 1px solid var(--border);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: var(--trans);
  color: var(--txt-m);
  font-size: .95rem;
}
.audio-btn:hover { border-color: var(--accent); color: var(--accent); }
.audio-btn.playing { border-color: var(--accent); color: var(--accent); box-shadow: 0 0 16px var(--glow); }
.audio-btn .bars {
  display: flex; align-items: flex-end; gap: 2px; height: 18px;
}
.audio-btn .bars span {
  display: block; width: 3px; background: currentColor; border-radius: 1px;
  animation: none; transform-origin: bottom;
}
.audio-btn.playing .bars span:nth-child(1) { animation: eq1 .8s ease-in-out infinite alternate; }
.audio-btn.playing .bars span:nth-child(2) { animation: eq2 .6s ease-in-out infinite alternate; }
.audio-btn.playing .bars span:nth-child(3) { animation: eq3 .9s ease-in-out infinite alternate; }
.audio-btn.playing .bars span:nth-child(4) { animation: eq2 .7s ease-in-out infinite alternate; }
@keyframes eq1 { from{height:4px} to{height:16px} }
@keyframes eq2 { from{height:8px} to{height:14px} }
@keyframes eq3 { from{height:6px} to{height:18px} }
/* mute line through icon when off */
.audio-btn:not(.playing) .bars span { height: 3px; opacity: .4; }

/* First-interaction overlay prompt */
.audio-prompt {
  position: fixed;
  bottom: 9rem;
  right: 1.8rem;
  z-index: 81;
  background: var(--bg2);
  border: 1px solid var(--accent);
  padding: .7rem 1rem;
  font-size: .48rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--accent);
  white-space: nowrap;
  pointer-events: none;
  opacity: 0;
  transform: translateY(6px);
  transition: opacity .4s, transform .4s;
}
.audio-prompt.show { opacity: 1; transform: none; }