/* Lounge Bar Bjanka: velvet, gilt and candlelight */
:root{
  --noir:#0D0A09; --noir-2:#15100E; --noir-3:#1C1513;
  --velvet:#4C0C14; --velvet-2:#6B1420; --velvet-hi:#8E2230;
  --gilt:#C9A55E; --gilt-hi:#E8CD8E; --gilt-lo:#8A6A35;
  --ivory:#EFE6D4; --muted:#AC9F8D;
  --line:rgba(201,165,94,.3); --line-soft:rgba(239,230,212,.11);
  --f-display:"Poiret One","Avenir Next","Century Gothic",sans-serif;
  --f-cap:"Albert Sans","Helvetica Neue",Arial,sans-serif;
  --f-script:"Pinyon Script","Snell Roundhand","Brush Script MT",cursive;
  --f-body:"Albert Sans","Helvetica Neue",Arial,sans-serif;
  --gut:clamp(18px,4.4vw,64px); --max:1280px; --head:84px;
  --sec:clamp(88px,11vw,160px);
  --ease:cubic-bezier(.16,1,.3,1); --ease-io:cubic-bezier(.76,0,.24,1);
  --folds:
    linear-gradient(180deg,rgba(0,0,0,.62) 0%,rgba(0,0,0,0) 26%,rgba(0,0,0,0) 72%,rgba(0,0,0,.55) 100%),
    linear-gradient(90deg,#33070d 0%,#7a1622 7%,#470b13 13%,#8c1f2c 20%,#3c0910 27%,#6f1521 34%,#2c060c 41%,#801826 49%,#420a12 56%,#902230 63%,#390810 70%,#731622 78%,#33070e 85%,#86192a 92%,#33070d 100%);
  color-scheme:dark;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%; scrollbar-color:var(--gilt-lo) var(--noir)}
body{margin:0; background:var(--noir); color:var(--ivory); font-family:var(--f-body); font-size:1.0625rem; line-height:1.65; overflow-x:hidden; caret-color:var(--gilt)}
::-webkit-scrollbar{width:10px} ::-webkit-scrollbar-track{background:var(--noir)} ::-webkit-scrollbar-thumb{background:var(--gilt-lo); border:3px solid var(--noir); border-radius:6px}
img,canvas,svg{display:block; max-width:100%}
img{height:auto}
a{color:inherit; text-underline-offset:.22em; text-decoration-thickness:1px}
button{font:inherit; color:inherit}
p{margin:0}
h1,h2,h3{font-family:var(--f-display); font-weight:400; line-height:1.06; margin:0; letter-spacing:.01em; text-wrap:balance}
h1{font-size:clamp(2.6rem,1.4rem + 4.6vw,5.4rem)}
.h2{font-size:clamp(2.1rem,1.3rem + 2.9vw,3.9rem)}
h1 em,h2 em{font-style:normal; color:var(--gilt-hi)}
::selection{background:var(--gilt); color:var(--noir)}
:focus-visible{outline:1px solid var(--gilt-hi); outline-offset:4px}
.wrap{max-width:var(--max); margin-inline:auto; padding-inline:var(--gut)}
.sr-only{position:absolute!important; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap}
.skip:focus{position:fixed!important; z-index:200; top:12px; left:12px; width:auto; height:auto; clip:auto; padding:10px 16px; background:var(--gilt); color:var(--noir)}
.lede{color:var(--muted); max-width:52ch}
.cap{font-family:var(--f-cap); text-transform:uppercase; letter-spacing:.18em; font-size:.74rem; color:var(--gilt)}
.ico{width:20px; height:20px; flex:none}
.sec{padding-block:var(--sec)}

.nav a,.btn,.link,.cap,.lbl,.cats button,.dl dt,.foot h3,.lang,.wm small,.lb-c{font-weight:600}
.stage .hero-acts{display:flex; gap:12px; flex-wrap:wrap; justify-content:center; margin-top:4px}

/* ---------- buttons: engraved double frame ---------- */
.btn{position:relative; display:inline-flex; align-items:center; justify-content:center; gap:.7em; min-height:52px; padding:0 1.75em; border:1px solid var(--gilt); background:transparent; color:var(--gilt-hi); text-decoration:none; font-family:var(--f-cap); font-size:.8rem; letter-spacing:.17em; text-transform:uppercase; cursor:pointer; white-space:nowrap; transition:background-color .4s var(--ease), color .4s var(--ease), border-color .4s}
.btn::after{content:""; position:absolute; inset:4px; border:1px solid rgba(201,165,94,.38); pointer-events:none; transition:inset .4s var(--ease), border-color .4s}
.btn:hover,.btn:focus-visible{background:var(--gilt); color:var(--noir)}
.btn:hover::after,.btn:focus-visible::after{inset:3px; border-color:rgba(13,10,9,.45)}
.btn:active{transform:translateY(1px)}
.btn--fill{background:var(--gilt); color:var(--noir)}
.btn--fill::after{border-color:rgba(13,10,9,.4)}
.btn--fill:hover,.btn--fill:focus-visible{background:var(--gilt-hi)}
.btn .arr{width:16px; height:16px; transition:transform .45s var(--ease)}
.btn:hover .arr{transform:translateX(4px)}
.link{display:inline-flex; align-items:center; gap:.6em; text-decoration:none; font-family:var(--f-cap); text-transform:uppercase; letter-spacing:.16em; font-size:.78rem; color:var(--gilt-hi); padding-bottom:6px; background:linear-gradient(var(--gilt),var(--gilt)) 0 100%/100% 1px no-repeat; transition:background-size .5s var(--ease)}
.link:hover{background-size:40% 1px}
.link .arr{width:15px; height:15px}

/* ---------- header ---------- */
.head{position:fixed; inset:0 0 auto; z-index:50; height:var(--head); display:flex; align-items:center; transition:background-color .4s, box-shadow .4s, height .4s}
.head.solid{--head:70px; background:rgba(13,10,9,.94); box-shadow:0 1px 0 var(--line)}
.head .wrap{display:flex; align-items:center; gap:clamp(16px,2.6vw,40px); width:100%}
.wm{display:grid; justify-items:start; text-decoration:none; margin-right:auto; line-height:1}
.wm small{font-family:var(--f-cap); font-size:.7rem; letter-spacing:.34em; text-transform:uppercase; color:var(--muted); margin:0 0 2px 4px}
.wm b{font-family:var(--f-script); font-weight:400; font-size:2.2rem; color:var(--gilt-hi); line-height:.95}
.nav{display:flex; gap:clamp(18px,2.4vw,38px)}
.nav a{position:relative; text-decoration:none; font-family:var(--f-cap); text-transform:uppercase; letter-spacing:.16em; font-size:.76rem; padding:.6em 0; color:var(--ivory); transition:color .3s}
.nav a::after{content:""; position:absolute; left:50%; bottom:-2px; width:5px; height:5px; background:var(--gilt); transform:translateX(-50%) rotate(45deg) scale(0); transition:transform .4s var(--ease)}
.nav a:hover{color:var(--gilt-hi)}
.nav a[aria-current="page"]{color:var(--gilt-hi)}
.nav a[aria-current="page"]::after{transform:translateX(-50%) rotate(45deg) scale(1)}
.lang{display:flex; align-items:center; font-family:var(--f-cap); font-size:.74rem; letter-spacing:.14em}
.lang button{border:0; background:none; cursor:pointer; padding:.5em .45em; min-height:40px; color:var(--muted); transition:color .3s}
.lang button+button::before{content:"/"; margin-right:.6em; color:var(--line)}
.lang button[aria-pressed="true"]{color:var(--gilt-hi)}
.head .btn{min-height:44px; padding:0 1.3em; font-size:.72rem}
.burger{display:none; width:46px; height:46px; border:1px solid var(--line); background:none; cursor:pointer; position:relative}
.burger span{position:absolute; left:12px; right:12px; height:1px; background:var(--gilt-hi); transition:transform .4s var(--ease)}
.burger span:first-child{top:18px} .burger span:last-child{top:26px}
.menu-open .burger span:first-child{transform:translateY(4px) rotate(45deg)}
.menu-open .burger span:last-child{transform:translateY(-4px) rotate(-45deg)}
.drawer{position:fixed; inset:0; z-index:45; background:var(--folds); background-size:100% 100%,min(34vw,180px) 100%; display:flex; flex-direction:column; justify-content:center; padding:var(--head) var(--gut) 40px; visibility:hidden; clip-path:inset(0 0 100% 0); transition:clip-path .6s var(--ease-io), visibility 0s .6s}
.drawer.open{visibility:visible; clip-path:inset(0); transition:clip-path .6s var(--ease-io)}
.drawer nav{display:grid; gap:4px}
.drawer nav a{font-family:var(--f-display); font-size:clamp(2rem,9vw,3rem); text-decoration:none; line-height:1.25; color:var(--ivory); text-shadow:0 2px 18px rgba(0,0,0,.6)}
.drawer nav a[aria-current="page"]{color:var(--gilt-hi)}
.drawer .d-foot{margin-top:40px; display:grid; gap:14px; justify-items:start}
.drawer .d-addr{color:var(--ivory); opacity:.8}

/* ---------- pages ---------- */
.page{display:none}
.page.active{display:block}
.page.active .in{animation:in 1.1s var(--ease) both}
.page.active .d1{animation-delay:.12s}.page.active .d2{animation-delay:.24s}.page.active .d3{animation-delay:.36s}
@keyframes in{from{opacity:0; transform:translateY(18px); filter:blur(6px)}to{opacity:1; transform:none; filter:none}}
@supports (animation-timeline: view()){
  .rv{animation:rv linear both; animation-timeline:view(); animation-range:entry 0% entry 40%}
  @keyframes rv{from{opacity:.15; transform:translateY(40px)}to{opacity:1; transform:none}}
}
.p-head{padding-top:calc(var(--head) + clamp(56px,8vw,110px)); padding-bottom:clamp(48px,6vw,80px)}
.p-head .lede{margin-top:22px}
.p-head .note{margin-top:14px}

/* ---------- photos ---------- */
.ph{display:block; position:relative; overflow:hidden; margin:0; background:var(--noir-2); aspect-ratio:4/5}
.ph canvas,.ph img{position:absolute; inset:0; width:100%; height:100%}
.ph img{object-fit:cover; opacity:0; transition:opacity .9s var(--ease), transform 1.2s var(--ease)}
.ph img.on{opacity:1}
.ph.sq{aspect-ratio:1}
.ph.wide{aspect-ratio:16/9}
.zoom:hover .ph img.on,.ph.zoom:hover img.on{transform:scale(1.04)}
/* picture frame: gilt hairline, mat gap, second hairline */
.frame{box-shadow:0 0 0 1px var(--gilt-lo), 0 0 0 9px var(--noir), 0 0 0 10px rgba(201,165,94,.32), 0 40px 70px -30px rgba(0,0,0,.9)}
/* in grids a single hairline, so neighbouring frames never crowd each other */
.gal .frame,.strip .frame{box-shadow:0 0 0 1px rgba(201,165,94,.45), 0 24px 40px -24px rgba(0,0,0,.9)}

/* ---------- home: the stage ---------- */
.stage{position:relative; min-height:100svh; display:grid; place-items:center; padding:calc(var(--head) + 24px) var(--gut) 56px; text-align:center; isolation:isolate; overflow:hidden;
  background:
    radial-gradient(ellipse 46% 52% at 50% 36%,rgba(232,190,120,.17),rgba(232,190,120,0) 72%),
    radial-gradient(ellipse 90% 40% at 50% 112%,rgba(122,22,34,.45),rgba(122,22,34,0) 70%),
    var(--noir)}
.stage::before,.stage::after{content:""; position:absolute; top:0; bottom:0; width:clamp(34px,10vw,170px); z-index:-1; background:var(--folds); background-size:100% 100%,clamp(90px,20vw,340px) 100%}
.stage::before{left:0; -webkit-mask-image:linear-gradient(90deg,#000 55%,transparent); mask-image:linear-gradient(90deg,#000 55%,transparent)}
.stage::after{right:0; -webkit-mask-image:linear-gradient(270deg,#000 55%,transparent); mask-image:linear-gradient(270deg,#000 55%,transparent)}
.stage-in{display:grid; justify-items:center; gap:clamp(18px,2.4vw,28px); width:100%; max-width:860px}
.stage .logo-big{width:min(560px,82vw); height:auto; aspect-ratio:870/695;}
.page.active .logo-big{animation:logoIn 2.2s var(--ease) .9s both}
@keyframes logoIn{from{opacity:0; transform:scale(.94); filter:blur(10px)}to{opacity:1; transform:none; filter:none}}
.stage .lead{font-size:clamp(1.05rem,.95rem + .4vw,1.25rem); color:var(--ivory); max-width:40ch}

.stage .meta{display:flex; flex-wrap:wrap; justify-content:center; gap:8px 22px; color:var(--muted); font-size:.92rem}
.status{display:inline-flex; align-items:center; gap:.6em}
.status i{width:8px; height:8px; border-radius:50%; background:var(--gilt-hi)}
.status.closed i{background:transparent; border:1px solid var(--muted)}

/* acts of the day */
.acts-head{display:grid; grid-template-columns:1fr auto; align-items:end; gap:24px; margin-bottom:clamp(40px,5vw,72px)}
.acts{display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(24px,3.4vw,52px); align-items:start}
.act:nth-child(2){margin-top:clamp(40px,7vw,110px)}
.act:nth-child(3){margin-top:clamp(20px,3.5vw,55px)}
.act .ph{margin-bottom:28px}
.act .num{font-family:var(--f-display); color:var(--gilt); font-size:1.3rem; letter-spacing:.2em; display:block; margin-bottom:10px}
.act h3{font-size:clamp(1.4rem,1.1rem + .9vw,1.9rem); margin-bottom:10px}
.act p{color:var(--muted); max-width:34ch}

/* carte with photo peek */
.carte-wrap{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,.82fr); gap:clamp(36px,6vw,100px); align-items:center}
.carte-wrap .h2{margin-bottom:clamp(28px,3.4vw,44px)}
.carte{list-style:none; margin:0; padding:0; border-top:1px solid var(--line)}
.carte li{border-bottom:1px solid var(--line)}
.pick{display:grid; grid-template-columns:auto 1fr auto; align-items:baseline; gap:4px 14px; padding:22px 4px; text-decoration:none; transition:padding .5s var(--ease), background-color .5s}
.pick .nm{font-family:var(--f-display); font-size:clamp(1.2rem,1rem + .6vw,1.55rem)}
.pick .dots{border-bottom:1px dotted rgba(201,165,94,.45); transform:translateY(-6px)}
.pick .pr{font-weight:500; color:var(--gilt-hi); font-size:1.1rem; font-variant-numeric:tabular-nums}
.pick .pr small,.item .pr small{font-size:.62em; margin-left:.35em; letter-spacing:.1em; color:var(--muted)}
.pick .ds{grid-column:1/-1; color:var(--muted); font-size:.95rem}
.pick:hover,.pick:focus-visible,.pick.on{padding-left:18px; background:linear-gradient(90deg,rgba(107,20,32,.35),rgba(107,20,32,0) 70%)}
.pick.on .nm{color:var(--gilt-hi)}
.peek{position:relative}
.peek .ph img{transition:opacity .8s var(--ease), transform 1.4s var(--ease); transform:scale(1.05)}
.peek .ph img.on{transform:none}
.carte-wrap .link{margin-top:32px}

/* strip */
.strip{display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(14px,2vw,26px)}
.strip-head{display:flex; justify-content:space-between; align-items:end; gap:24px; flex-wrap:wrap; margin-bottom:clamp(32px,4vw,56px)}

/* velvet band */
.velvet{position:relative; background:var(--folds); background-size:100% 100%,clamp(140px,22vw,360px) 100%; isolation:isolate}
.velvet::before{content:""; position:absolute; inset:0; z-index:-1; background:radial-gradient(ellipse 60% 70% at 50% 50%,rgba(13,10,9,.62),rgba(13,10,9,.2) 75%)}
.visit{text-align:center; display:grid; justify-items:center; gap:22px; padding-block:clamp(100px,13vw,180px)}
.visit p{max-width:44ch; color:var(--ivory)}
.visit .acts-row{display:flex; gap:14px; flex-wrap:wrap; justify-content:center; margin-top:10px}
.visit .facts{display:flex; flex-wrap:wrap; gap:8px 28px; justify-content:center; color:var(--ivory); opacity:.92; font-size:.95rem}

/* ---------- menu ---------- */
.menu-bar{position:sticky; top:70px; z-index:5; display:flex; gap:24px; align-items:center; justify-content:space-between; padding:14px 0; margin-bottom:clamp(36px,4vw,56px); background:var(--noir); box-shadow:0 1px 0 var(--line)}
.cats{display:flex; gap:clamp(16px,2vw,30px); overflow-x:auto; scrollbar-width:none; -webkit-mask-image:linear-gradient(90deg,#000 92%,transparent); mask-image:linear-gradient(90deg,#000 92%,transparent); padding-right:30px}
.cats::-webkit-scrollbar{display:none}
.cats button{flex:none; border:0; background:none; cursor:pointer; font-family:var(--f-cap); text-transform:uppercase; letter-spacing:.15em; font-size:.76rem; color:var(--muted); padding:10px 0; position:relative; transition:color .3s}
.cats button:hover{color:var(--ivory)}
.cats button[aria-selected="true"]{color:var(--gilt-hi)}
.cats button[aria-selected="true"]::after{content:""; position:absolute; left:50%; bottom:0; width:5px; height:5px; background:var(--gilt); transform:translateX(-50%) rotate(45deg)}
.search{position:relative; flex:none}
.search svg{position:absolute; left:0; top:50%; width:16px; height:16px; transform:translateY(-50%); color:var(--gilt)}
.search input{width:min(220px,40vw); border:0; border-bottom:1px solid var(--line); background:none; color:var(--ivory); font:inherit; font-size:.95rem; padding:8px 0 8px 26px}
.search input::placeholder{color:var(--muted)}
.search input:focus{outline:none; border-color:var(--gilt)}
.menu-grid{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,.62fr); gap:clamp(40px,7vw,120px); align-items:start}
#cat-h{color:var(--gilt-hi); font-size:clamp(2.4rem,1.6rem + 2.6vw,3.8rem); line-height:1.05; margin-bottom:18px}
.items{list-style:none; margin:0; padding:0}
.item{display:grid; grid-template-columns:auto 1fr auto; gap:2px 14px; align-items:baseline; padding:18px 0; border-bottom:1px solid var(--line-soft)}
.item h3{font-family:var(--f-body); font-weight:500; font-size:1.12rem; letter-spacing:0}
.item .dots{border-bottom:1px dotted rgba(201,165,94,.4); transform:translateY(-5px)}
.item .pr{font-weight:500; color:var(--gilt-hi); font-size:1.05rem; font-variant-numeric:tabular-nums}
.item p{grid-column:1/-1; color:var(--muted); font-size:.93rem}
.items .empty{padding:24px 0; color:var(--muted)}
.menu-side{position:sticky; top:170px; display:grid; gap:24px}
.menu-side p{color:var(--muted); font-size:.9rem}

/* ---------- gallery ---------- */
.gal{display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(12px,1.8vw,24px)}
.gal button{border:0; padding:0; background:none; cursor:zoom-in; display:block}
.gal button:focus-visible{outline-offset:6px}
.band{margin-block:var(--sec)}
.band .wrap{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(36px,6vw,96px); align-items:center; padding-block:clamp(70px,9vw,130px)}
.band p{margin-top:20px; max-width:40ch}
.ig-head{display:flex; justify-content:space-between; align-items:end; gap:24px; flex-wrap:wrap; margin-bottom:clamp(28px,3.6vw,48px)}
.ig-head .h2 a{text-decoration:none; font-family:var(--f-cap)}
.ig-row{display:grid; grid-template-columns:repeat(6,1fr); gap:clamp(8px,1.2vw,16px)}
.ig-row a{display:block}

/* ---------- contact ---------- */
.channels{display:grid; grid-template-columns:repeat(4,1fr); border-block:1px solid var(--line)}
.ch{display:flex; gap:16px; align-items:center; padding:26px 22px; text-decoration:none; transition:background-color .35s}
.ch+.ch{border-left:1px solid var(--line-soft)}
.ch .ico{width:24px; height:24px; color:var(--gilt)}
.ch b{display:block; font-weight:600; letter-spacing:.02em}
.ch span{display:block; color:var(--muted); font-size:.88rem; word-break:break-word}
.ch:hover,.ch:focus-visible{background:rgba(107,20,32,.4)}
.contact{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(40px,6vw,96px); align-items:start}
.dl{margin:0; display:grid; gap:26px}
.dl dt{font-family:var(--f-cap); text-transform:uppercase; letter-spacing:.16em; font-size:.7rem; color:var(--gilt); margin-bottom:8px}
.dl dd{margin:0}
.hours{list-style:none; margin:0; padding:0; max-width:400px}
.hours li{display:flex; justify-content:space-between; gap:18px; padding:8px 0; border-bottom:1px solid var(--line-soft); font-variant-numeric:tabular-nums}
.hours li.today{color:var(--gilt-hi)}
.hours li.today span:first-child::after{content:" ◆"; font-size:.6em; vertical-align:.25em}
.map{display:grid; gap:22px; justify-items:start}
.gmap{display:block; width:100%; height:auto; aspect-ratio:4/3; border:0; background:var(--noir-2); box-shadow:0 0 0 1px var(--gilt-lo), 0 0 0 9px var(--noir), 0 0 0 10px rgba(201,165,94,.32); filter:invert(.92) hue-rotate(180deg) saturate(.5) brightness(.92) contrast(.95)}

/* ---------- footer ---------- */
.foot{border-top:1px solid var(--line); padding-top:clamp(64px,8vw,110px); background:radial-gradient(ellipse 50% 60% at 50% 0,rgba(107,20,32,.28),transparent 70%),var(--noir)}
.foot-grid{display:grid; grid-template-columns:1.3fr 1fr 1fr 1fr; gap:40px}
.foot img{width:170px; margin-bottom:18px}
.foot p{color:var(--muted); max-width:30ch; font-size:.95rem}
.foot h3{font-family:var(--f-cap); text-transform:uppercase; letter-spacing:.16em; font-size:.72rem; color:var(--gilt); margin-bottom:16px}
.foot ul{list-style:none; margin:0; padding:0; display:grid; gap:8px; font-size:.95rem}
.foot ul a{text-decoration:none} .foot ul a:hover{color:var(--gilt-hi); text-decoration:underline}
.foot-bar{margin-top:clamp(56px,7vw,90px); border-top:1px solid var(--line-soft); padding:22px 0; font-size:.84rem; color:var(--muted)}
.foot-bar .wrap{display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap}
.foot-bar a{text-decoration:none} .foot-bar a:hover{color:var(--gilt-hi)}

/* ---------- lightbox ---------- */
.lb{position:fixed; inset:0; z-index:80; background:rgba(8,6,5,.96); display:grid; place-items:center; padding:clamp(56px,7vw,90px) clamp(12px,8vw,120px); opacity:0; visibility:hidden; transition:opacity .4s, visibility 0s .4s}
.lb.open{opacity:1; visibility:visible; transition:opacity .4s}
.lb .ph{aspect-ratio:auto; width:100%; height:100%; background:none}
.lb .ph img{object-fit:contain}
.sq-btn{position:absolute; width:50px; height:50px; display:grid; place-items:center; border:1px solid var(--line); background:rgba(13,10,9,.7); cursor:pointer; color:var(--gilt-hi); transition:background-color .3s, border-color .3s}
.sq-btn svg{width:18px; height:18px}
.sq-btn:hover{background:var(--velvet); border-color:var(--gilt)}
.lb-x{top:18px; right:18px} .lb-p{left:18px; top:50%; transform:translateY(-50%)} .lb-n{right:18px; top:50%; transform:translateY(-50%)}
.lb-c{position:absolute; bottom:20px; left:50%; transform:translateX(-50%); font-family:var(--f-cap); letter-spacing:.2em; font-size:.8rem; color:var(--muted)}

/* ---------- curtain: two velvet drapes meet at the seam ---------- */
.curtain{position:fixed; inset:0; z-index:100; pointer-events:none; overflow:hidden}
.c-half{position:absolute; top:0; bottom:0; width:50.6%; background:var(--folds); background-size:100% 100%,clamp(120px,15vw,240px) 100%; transition:transform .55s var(--ease-io); will-change:transform}
.c-l{left:0; transform:translate3d(-101%,0,0); box-shadow:inset -40px 0 50px -30px rgba(0,0,0,.85)}
.c-r{right:0; transform:translate3d(101%,0,0); box-shadow:inset 40px 0 50px -30px rgba(0,0,0,.85)}
.c-half::after{content:""; position:absolute; left:0; right:0; bottom:0; height:3px; background:linear-gradient(90deg,var(--gilt-lo),var(--gilt-hi),var(--gilt-lo)); opacity:.75}
.curtain.hold,.curtain.cover{pointer-events:auto}
.curtain.hold .c-half,.curtain.cover .c-half{transform:none}
.curtain.hold .c-half{transition:none}
/* failsafe: if a script ever fails, the curtain still lifts by itself */
.curtain.hold{animation:lift 0s 4.5s forwards}
@keyframes lift{to{visibility:hidden; pointer-events:none}}
.curtain.reveal .c-half{transition-duration:.8s}
.c-logo{position:absolute; left:50%; top:50%; width:min(300px,62vw); transform:translate(-50%,-50%) scale(.96); opacity:0; transition:opacity .3s, transform .6s var(--ease); filter:drop-shadow(0 4px 24px rgba(0,0,0,.7))}
.curtain.hold .c-logo,.curtain.cover .c-logo{opacity:1; transform:translate(-50%,-50%); transition:opacity .45s .18s, transform .9s var(--ease) .1s}

/* ---------- toast ---------- */
.toast{position:fixed; left:50%; bottom:24px; z-index:90; transform:translate(-50%,20px); max-width:min(92vw,460px); padding:14px 20px; background:var(--velvet); color:var(--ivory); box-shadow:0 0 0 1px var(--gilt-lo), 0 20px 50px -20px rgba(0,0,0,.9); font-size:.92rem; opacity:0; visibility:hidden; transition:opacity .35s, transform .45s var(--ease), visibility 0s .35s}
.toast.on{opacity:1; visibility:visible; transform:translate(-50%,0); transition:opacity .35s, transform .45s var(--ease)}

/* ---------- responsive ---------- */
@media (max-width:1080px){
  .nav,.head .btn{display:none}
  .burger{display:block}
  .gal{grid-template-columns:repeat(3,1fr)}
  .ig-row{grid-template-columns:repeat(3,1fr)}
  .channels{grid-template-columns:1fr 1fr}
  .ch:nth-child(3){border-left:0}
  .ch:nth-child(n+3){border-top:1px solid var(--line-soft)}
  .foot-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:820px){
  :root{--head:72px}
  .acts{grid-template-columns:1fr; gap:56px}
  .act:nth-child(n){margin-top:0}
  .act .ph{aspect-ratio:4/3; max-width:520px}
  .acts-head{grid-template-columns:1fr}
  .carte-wrap,.menu-grid,.contact,.band .wrap{grid-template-columns:1fr}
  .peek{max-width:420px}
  .peek .ph{aspect-ratio:4/3}
  .strip{grid-template-columns:1fr 1fr}
  .menu-side{position:static; max-width:420px}
  .menu-side .ph{aspect-ratio:16/10}
}
@media (max-width:560px){
  body{font-size:1rem}
  .gal{grid-template-columns:1fr 1fr}
  .channels{grid-template-columns:1fr}
  .ch+.ch{border-left:0; border-top:1px solid var(--line-soft)}
  .foot-grid{grid-template-columns:1fr}
  .menu-bar{flex-direction:column; align-items:stretch; gap:6px; top:var(--head)}
  .search input{width:100%}
  .lb-p,.lb-n{top:auto; bottom:12px; transform:none}
  .wm b{font-size:2rem}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important; animation-iteration-count:1!important; transition-duration:.01ms!important}
  .rv{animation:none!important}
}
