
@font-face{font-family:"Gorian";src:url(../fonts/GorianE-site3.ttf) format("truetype");font-display:block}
:root{
  --ink:#0B0906; --ink2:#14100A; --plate:#100D09; --cream:#F6F1E4; --cream2:#E6DECB; --mute:#B8AF9B;
  --gold:#E2A72E; --gold2:#C98C14; --goldhi:#F2C04E;
  --leaf:#2FA33A; --leafdeep:#0F7A36; --moss:#0B3B22; --moss2:#082C19;
  --r1:#C23B6C; --r2:#C8341F; --r3:#0E6B4F; --r4:#4E8F2A;
  --slant:9vw; --pad:clamp(20px,4vw,64px);
  --disp:"Gorian", "Oswald", Impact, sans-serif;
  --body:"Manrope", system-ui, -apple-system, "Segoe UI", sans-serif;
  --grain:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0  0 0 0 0 0  0 0 0 0 0  0 0 0 .22 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{background:var(--ink);color:var(--cream);font-family:var(--body);font-size:18px;line-height:1.55;overflow-x:hidden;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%}
a{color:inherit}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
.disp{font-family:var(--disp);font-weight:400;letter-spacing:.005em;line-height:.86}
.confirm{display:inline-block;vertical-align:middle;font-family:var(--body);font-size:11px;font-weight:800;letter-spacing:.08em;line-height:1;padding:4px 6px 3px;border-radius:3px;background:var(--gold);color:var(--ink);text-transform:uppercase;transform:translateY(-1px)}
.kick + h1,.kick + h2{margin-top:30px!important}
.kick{font-weight:800;font-size:14px;letter-spacing:.28em;text-transform:uppercase;color:var(--gold)}
/* gold plate: the flyer device (grainy gold block, ink type) */
.plate{display:inline-block;width:fit-content;white-space:nowrap;background:var(--gold);background-image:var(--grain),linear-gradient(160deg,var(--goldhi),var(--gold) 45%,var(--gold2));color:var(--ink);padding:.08em .14em .02em;border-radius:4px;box-shadow:0 18px 40px rgba(0,0,0,.35)}
/* ticket: black plate with a gold hairline, from the posts */
.ticket{position:relative;background:var(--plate);border-radius:14px;box-shadow:0 30px 70px rgba(0,0,0,.45)}
.ticket::before{content:"";position:absolute;inset:8px;border:1.5px solid rgba(226,167,46,.75);border-radius:9px;pointer-events:none}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:56px;padding:0 26px;border-radius:6px;font-weight:800;font-size:16px;letter-spacing:.02em;text-decoration:none;white-space:nowrap;transition:transform .15s ease, background .15s ease}
.btn:active{transform:scale(.97)}
a:focus-visible,button:focus-visible,.btn:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--goldhi);outline-offset:3px}
.btn-gold:active{background:var(--gold2)}
.btn-dark{background:#2A2318;color:var(--cream);box-shadow:inset 0 0 0 2px #4A3F2C}
.btn-dark:hover{background:#3A3122}
.btn-dark:active{background:#1E1912}
.btn-green:active{background:#0B5E2A}
.btn-gold{background:var(--gold);color:var(--ink)}
.btn-gold:hover{background:#F0B83E}
.btn-green{background:var(--leafdeep);color:var(--cream)}
.btn-green:hover{background:#13903F}
.btn-ink{background:var(--ink);color:var(--cream)}
.btn-cream{background:var(--cream);color:var(--ink)}
.btn-text{min-height:48px;padding:0 6px;color:var(--cream);font-weight:800;text-decoration:underline;text-underline-offset:7px;text-decoration-thickness:2px;text-decoration-color:var(--gold)}
.arrow{width:14px;height:14px;flex:none}
.big{min-height:64px;padding:0 32px;font-size:17px}

/* ============ HERO ============ */
.hero{position:relative;min-height:100vh;min-height:100svh;max-height:1080px;display:grid;grid-template-columns:44% 56%;background:var(--ink);overflow:hidden}
.hero-ph{position:relative;grid-column:2;grid-row:1;margin-left:-12vw;clip-path:polygon(22% 0,100% 0,100% 100%,0 100%)}
.hero-ph img{position:absolute;left:0;top:0;width:100%;height:auto;max-height:none;-webkit-mask-image:linear-gradient(180deg,#000 72%,transparent 99%);mask-image:linear-gradient(180deg,#000 72%,transparent 99%)}
.hero-ph::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(11,9,6,.75),rgba(11,9,6,0) 13%),linear-gradient(90deg,rgba(11,9,6,.55),rgba(11,9,6,0) 40%),linear-gradient(0deg,rgba(11,9,6,.55),rgba(11,9,6,0) 35%)}
.wedge{position:absolute;right:0;bottom:0;width:34%;height:46%;background:var(--gold);background-image:var(--grain),linear-gradient(150deg,var(--goldhi),var(--gold) 50%,var(--gold2));clip-path:polygon(100% 0,100% 100%,0 100%);z-index:2;opacity:.96}
.top{position:absolute;inset:0 0 auto 0;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:24px var(--pad) 0}
.top .logo{width:150px;height:auto}
.top nav{display:flex;align-items:center;gap:4px;background:rgba(11,9,6,.88);padding:6px 6px 6px 14px;border-radius:10px}
.top nav .nl{font-weight:700;font-size:16px;text-decoration:none;padding:0 14px;min-height:48px;display:inline-flex;align-items:center;color:var(--cream)}
.top nav .nl:hover{color:var(--gold)}
.top nav .btn{margin-left:8px;min-height:48px}
.hero-tx{grid-column:1;grid-row:1;position:relative;z-index:5;display:flex;flex-direction:column;justify-content:center;padding:150px 0 120px var(--pad)}
.hero h1{font-size:clamp(104px,9vw,150px);color:var(--cream);margin:22px 0 0;white-space:nowrap;position:relative}
.hero h1 .pw{position:relative;display:block;width:fit-content;font-size:2em;margin-top:.04em;isolation:isolate}
.hero h1 .rib{position:absolute;left:-1em;top:-2.5em;width:8em;height:auto;max-width:none;z-index:-1;pointer-events:none}
.hero h1 .rib.m{display:none}
.hero h1 span{display:block}
.hero h1 .plate{display:block;transform:rotate(-1.2deg);transform-origin:0 50%;box-shadow:0 24px 60px rgba(0,0,0,.55)}
.hero .lede{font-size:19px;line-height:1.55;color:var(--cream2);max-width:470px;margin:34px 0 32px}
.hero .lede b{color:var(--cream);font-weight:800}
.hero .row{display:flex;gap:12px;flex-wrap:wrap}
.hours-t{position:absolute;right:var(--pad);bottom:40px;z-index:6;display:flex;align-items:stretch;padding:20px 22px 20px 24px;gap:22px}
.hours-t .c{display:flex;flex-direction:column;gap:2px;justify-content:center}
.hours-t .c small{font-size:12px;font-weight:800;letter-spacing:.2em;text-transform:uppercase;color:var(--gold)}
.hours-t .c b{font-family:var(--disp);font-weight:400;font-size:34px;line-height:1;color:var(--cream)}
.hours-t .c b .confirm{font-size:10px;vertical-align:top}
.hours-t .sep{width:1.5px;background:rgba(226,167,46,.45)}
.hours-t a{align-self:center}

/* ============ SHOP ============ */
.shop{position:relative;display:grid;grid-template-columns:1.2fr 1fr;min-height:780px;background:var(--ink)}
.shop .ph{position:relative;clip-path:polygon(0 0,100% 0,84% 100%,0 100%);overflow:hidden}
.shop .ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 0%}
.shop .tx{position:relative;padding:110px var(--pad) 96px 2vw;display:flex;flex-direction:column;justify-content:center;z-index:2}
.shop h2{font-size:clamp(110px,9.6vw,172px);color:var(--cream)}
.shop h2 span{display:block}
.shop h2 .plate{margin-top:.06em;transform:rotate(-1.2deg);transform-origin:0 50%}
.shop .lede{font-size:19px;line-height:1.55;max-width:470px;margin:36px 0 32px;color:var(--cream2)}
.shop .lede b{color:var(--cream)}
.shop .row{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.shop .tag{position:absolute;left:var(--pad);bottom:40px;z-index:3;font-weight:800;font-size:13px;letter-spacing:.2em;text-transform:uppercase;background:var(--ink);color:var(--cream);padding:12px 16px;border-radius:6px}

/* ============ ROOMS (the doors) ============ */
.rooms{position:relative;background:var(--ink);padding-top:120px}
.rooms .head{position:relative;z-index:4;display:grid;grid-template-columns:auto 1fr;gap:40px;align-items:start;padding:0 var(--pad) 0}
.rooms .doors{margin-top:calc(clamp(150px,19vw,280px) * -.62)}
.doors::before{content:"";position:absolute;inset:0 0 auto 0;height:42%;background:linear-gradient(to bottom,rgba(11,9,6,.85),rgba(11,9,6,0));z-index:2;pointer-events:none}
.rooms h2{font-size:clamp(150px,19vw,280px);color:var(--cream);text-shadow:0 8px 40px rgba(0,0,0,.6);white-space:nowrap}
.rooms h2 .g{color:var(--gold)}
.rooms .side{max-width:340px;padding-top:40px}
.rooms .side p{font-size:19px;color:var(--cream2);margin:14px 0 26px}
.rooms .side p b{color:var(--cream)}
.doors{position:relative;height:640px;display:flex;overflow:hidden}
.door{position:relative;flex:1 1 0;margin-left:calc(var(--slant) * -1 + 10px);clip-path:polygon(var(--slant) 0,100% 0,calc(100% - var(--slant)) 100%,0 100%);overflow:hidden;transition:flex-grow .55s cubic-bezier(.2,.7,.2,1);text-decoration:none;display:block;cursor:pointer;background:var(--c)}
.door:first-child{margin-left:0;clip-path:polygon(0 0,100% 0,calc(100% - var(--slant)) 100%,0 100%)}
.door:last-child{clip-path:polygon(var(--slant) 0,100% 0,100% 100%,0 100%)}
.door img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:opacity .5s ease, transform 1.2s ease}
.door .real{opacity:0}
.door:hover,.door:focus-visible{flex-grow:1.5}
.door:hover .real,.door:focus-visible .real{opacity:1}
.door:hover img{transform:scale(1.04)}
.door:focus-visible{outline:none}
.door::after{content:"";position:absolute;inset:auto 0 0 0;height:46%;background:linear-gradient(to top,rgba(11,9,6,.97) 0,rgba(11,9,6,.92) 30%,rgba(11,9,6,0) 100%);z-index:1;pointer-events:none}
.door .pk{position:absolute;left:28px;bottom:26px;z-index:2;display:flex;align-items:flex-end;gap:16px}
.door:not(:first-child) .pk{left:calc(var(--slant) * .35 + 20px)}
.door .pk .n{font-family:var(--disp);font-size:96px;line-height:.8;color:var(--c2,var(--c))}
.door .pk .t{display:flex;flex-direction:column;gap:6px;padding-bottom:4px}
.door .pk .t b{font-size:15px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--cream);display:flex;gap:8px;align-items:center}
.door .pk .t > span{font-size:14px;font-weight:700;color:var(--gold)}

/* ============ ROOM PANEL ============ */
.room{position:fixed;inset:0;z-index:60;background:var(--ink);display:grid;grid-template-columns:58% 42%;visibility:hidden;clip-path:inset(0 50% 0 50%);transition:clip-path .6s cubic-bezier(.7,0,.2,1),visibility 0s .6s}
.room.on{visibility:visible;clip-path:inset(0 0 0 0);transition:clip-path .6s cubic-bezier(.7,0,.2,1)}
.room .ph{position:relative;overflow:hidden;clip-path:polygon(0 0,100% 0,90% 100%,0 100%)}
.room .ph img{width:100%;height:100%;object-fit:cover;object-position:50% 15%}
.room .bar{position:absolute;top:0;bottom:0;right:0;width:14px;background:var(--c)}
.room .tx{position:relative;padding:clamp(28px,6vh,72px) var(--pad) 40px clamp(20px,2vw,40px);display:flex;flex-direction:column;justify-content:center;color:var(--cream)}
.room .tx .kick{color:var(--c2,var(--gold))}
.room .tx .nm{font-size:clamp(120px,12vw,210px);margin-top:30px}
.room .tx .nm em{font-style:normal;color:var(--c2,var(--gold))}
.room .tx .nmc{align-self:flex-start;margin-top:16px}
.room .tx .rr{margin:26px 0 30px;font-size:19px;line-height:1.55;max-width:460px;color:var(--cream2)}
.room .tx .rr b{font-weight:800;color:var(--cream)}
.room .tx .row{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.room .x{position:absolute;top:18px;right:18px;width:52px;height:52px;border-radius:50%;background:rgba(11,9,6,.78);display:grid;place-items:center;z-index:2}
.room .x svg{width:20px;height:20px}
.room .pager{display:flex;gap:8px;margin-top:34px}
.room .pager button{min-width:52px;min-height:52px;border-radius:6px;font-family:var(--disp);font-size:30px;background:#211B12;color:var(--cream)}
.room .pager button[aria-current="true"]{background:var(--c);color:var(--cream)}

/* ============ REQUEST (green) ============ */
.req{position:relative;background:var(--moss);overflow:hidden}
.req .ph{position:absolute;top:0;right:0;height:100%;width:42%;clip-path:polygon(22% 0,100% 0,100% 100%,0 100%)}
.req .ph::after{content:"";position:absolute;inset:auto 0 0 0;height:25%;background:linear-gradient(to top,rgba(11,9,6,.55),rgba(11,9,6,0))}
.req .ph img{width:100%;height:100%;object-fit:cover;object-position:55% 40%}
.req .in{position:relative;z-index:2;padding:120px var(--pad) 110px;max-width:900px}
.req h2{font-size:clamp(120px,12vw,206px);color:var(--cream)}
.req h2 .g{color:var(--gold)}
.req .sub{font-size:19px;color:#DCEBDD;max-width:560px;margin:24px 0 40px}
.form{background:var(--moss2);border-radius:12px;padding:30px;display:grid;grid-template-columns:repeat(6,1fr);gap:16px;max-width:780px;box-shadow:0 30px 80px rgba(0,0,0,.35)}
.f{display:flex;flex-direction:column;gap:8px;grid-column:span 3;min-width:0}
.f.s2{grid-column:span 2}.f.s6{grid-column:span 6}
.f label,.f .lg{font-size:13px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#CFE6D3}
.f input,.f select{appearance:none;-webkit-appearance:none;min-width:0;max-width:100%;min-height:56px;border-radius:6px;border:2px solid #1E6A41;background:#0F4A2B;color:var(--cream);font:600 17px var(--body);padding:0 14px;width:100%}
.f input::placeholder{color:#A9CDB2}
.f input:focus,.f select:focus{outline:none;border-color:var(--gold)}
.f select{background-image:linear-gradient(45deg,transparent 50%,var(--cream) 50%),linear-gradient(135deg,var(--cream) 50%,transparent 50%);background-position:calc(100% - 20px) 25px,calc(100% - 14px) 25px;background-size:6px 6px;background-repeat:no-repeat}
.pick{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}
.pick input{position:absolute;opacity:0;pointer-events:none;width:1px;height:1px;margin:0}
.pick label{min-height:58px;border-radius:6px;display:grid;place-items:center;font-family:var(--disp);font-size:32px;letter-spacing:0;text-transform:none;color:var(--cream);background:#0F4A2B;cursor:pointer;border:2px solid #1E6A41;transition:background .15s}
.pick label small{font-family:var(--body);font-size:13px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}
.pick input:checked + label{background:var(--rc,var(--leaf));border-color:var(--cream)}
.pick input:focus-visible + label{border-color:var(--gold)}
.form .go{grid-column:span 6;display:flex;gap:18px;align-items:center;flex-wrap:wrap;margin-top:6px}
.form .go p{font-size:15px;color:#CFE6D3;flex:1 1 220px}
.rulebox{margin-top:36px;max-width:780px;padding:26px 30px 28px;background:var(--moss2)}
.rulebox p{font-size:18px;color:#DCEBDD;margin-top:10px;line-height:1.55}.rulebox p b{color:var(--cream)}
.sent{display:none;grid-column:span 6;font-size:19px;font-weight:700;color:var(--cream)}
.form.done .f,.form.done .go{display:none}.form.done .sent{display:block}

/* ============ EVENTS (gold flyer) ============ */
.ev{position:relative;background:var(--gold);background-image:var(--grain),linear-gradient(170deg,var(--goldhi),var(--gold) 40%,var(--gold2));color:var(--ink);overflow:hidden}
.ev .ph{position:absolute;right:0;top:0;bottom:0;width:27%;clip-path:polygon(34% 0,100% 0,100% 100%,0 100%)}
.ev .ph img{width:100%;height:100%;object-fit:cover}
.ev .in{position:relative;z-index:2;padding:110px calc(24% + 24px) 100px var(--pad);display:grid;grid-template-columns:auto minmax(340px,1fr);gap:56px;align-items:end}
.ev .kick{color:var(--ink)}
.ev h2{font-size:clamp(150px,15vw,262px);margin-top:18px}
.ev h2 span{display:block}
.ev .when{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:52px;font-weight:800;font-size:21px}
.ev .when .confirm,.ev .ticket .confirm{background:var(--ink);color:var(--gold)}
.ev .ticket{padding:30px 32px 32px;color:var(--cream)}
.ev .ticket .confirm{background:var(--gold);color:var(--ink)}
.ev .ticket .kick{color:var(--gold);font-size:12px}
.ev .ticket .disp{font-size:84px;margin:10px 0 8px}
.ev .ticket p{font-weight:700;font-size:18px;display:flex;gap:10px;align-items:center;flex-wrap:wrap;color:var(--cream2);margin-bottom:24px}
.ev .ticket .btn{width:100%}

/* ============ VISIT ============ */
.visit{position:relative;background:var(--ink);padding:120px var(--pad) 100px;overflow:hidden}
.visit .grid{display:grid;grid-template-columns:1.1fr 1fr;gap:56px;align-items:start}
.visit h2{font-size:clamp(150px,14.5vw,250px);color:var(--cream);margin-top:18px}
.visit h2 span{display:block}
.visit h2 .plate{margin-top:.06em;transform:rotate(-1.2deg);transform-origin:0 50%}
.visit .near{font-size:19px;color:var(--cream2);max-width:520px;margin:34px 0 30px}
.visit .row{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.hours{margin-top:48px;display:grid;grid-template-columns:auto 1fr;gap:8px 28px;align-items:baseline;max-width:520px}
.hours dt{font-family:var(--disp);font-size:54px;color:var(--gold);line-height:1}
.hours dd{font-family:var(--disp);font-size:54px;line-height:1;color:var(--cream)}
.hours dd.cl{color:var(--mute)}
.hours .note{grid-column:span 2;font-size:15px;color:var(--mute);margin-top:10px;display:flex;gap:8px;align-items:center}
.visit .pics{display:grid;gap:14px}
.visit .front{position:relative;aspect-ratio:4/4.2;overflow:hidden;clip-path:polygon(14% 0,100% 0,100% 100%,0 100%);background:#222}
.visit .front img{width:100%;height:100%;object-fit:cover}
.walk{display:flex;flex-direction:column;gap:10px;padding:26px 30px 24px;text-decoration:none;color:var(--cream)}
.walk .wl{font-size:21px;font-weight:700;line-height:1.45;color:var(--cream)}
.walk .open{display:inline-flex;align-items:center;gap:8px;min-height:48px;font-weight:800;font-size:16px;color:var(--gold)}
.walk:hover .open{color:var(--goldhi)}

/* ============ FOOTER ============ */
footer{background:#060504;padding:84px var(--pad) 56px;color:var(--mute);font-size:16px}
footer .fl{display:grid;grid-template-columns:1.3fr 1fr 1fr 1.2fr;gap:48px;align-items:start}
footer .logo{width:190px;height:auto}
footer .col{display:flex;flex-direction:column;gap:2px}
footer .col b .confirm{margin-left:8px;letter-spacing:.08em}
footer .col b{color:var(--gold);font-size:13px;letter-spacing:.2em;text-transform:uppercase;margin-bottom:10px}
footer .col a,footer .col > span{text-decoration:none;min-height:48px;display:inline-flex;align-items:center;color:var(--cream2)}
footer .col a:hover{color:var(--gold)}
footer .col .hrs{font-family:var(--disp);font-size:40px;line-height:1.05;color:var(--cream);min-height:0;display:block}
footer .legal{margin-top:64px;padding-top:24px;border-top:1px solid #2A2618;display:flex;flex-wrap:wrap;gap:8px 28px;line-height:1.6;font-size:15px}

.thumb{display:none}

/* ============ 1c POP (ticket) ============ */
.pop{position:fixed;right:24px;bottom:24px;z-index:50;width:430px;padding:30px 30px 26px;transform:translateY(30px);opacity:0;pointer-events:none;transition:.4s ease;overflow:hidden}
.pop.on{transform:none;opacity:1;pointer-events:auto}
.pop .x{position:absolute;top:12px;right:12px;width:48px;height:48px;display:grid;place-items:center;z-index:3;color:var(--cream)}
.pop .hd{display:flex;align-items:flex-end;gap:14px;padding-top:10px}
.pop .c1{font-family:var(--disp);font-size:150px;line-height:.92;color:var(--gold)}
.pop .c2{font-family:var(--disp);font-size:66px;line-height:.85;color:var(--cream);padding-bottom:6px}
.pop .jt{width:380px;height:auto;margin:-6px 0 -14px 0;display:block}
.pop p{font-size:17px;margin:6px 0 16px;font-weight:600;line-height:1.45;color:var(--cream2)}
.pop form{display:flex;gap:8px}
.pop input{flex:1;min-width:0;min-height:56px;border-radius:6px;border:2px solid #3A3222;background:#1B1610;color:var(--cream);padding:0 14px;font:600 17px var(--body)}
.pop input::placeholder{color:#9E9580}
.pop input:focus{outline:none;border-color:var(--gold)}
.pop small{display:block;font-size:13px;color:var(--mute);margin-top:12px;line-height:1.5}

/* ============ AGE GATE ============ */
.gate{position:fixed;inset:0;z-index:100;background:var(--ink);display:grid;grid-template-columns:1fr 1fr;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.gate.off{display:none}
.gate .ph{position:relative;clip-path:polygon(0 0,100% 0,78% 100%,0 100%)}
.gate .ph img{width:100%;height:100%;object-fit:cover;object-position:46% 40%}
.gate .tx{padding:56px var(--pad) 56px 0;display:flex;flex-direction:column;justify-content:center;margin-left:3vw;position:relative;z-index:2}
.gate .logo{width:190px;height:auto;margin-bottom:34px}
.gate h2{font-size:clamp(100px,9vw,154px);color:var(--cream);margin-top:16px}
.gate h2 .plate{margin-top:.06em;transform:rotate(-1.2deg);transform-origin:0 50%}
.gate p{font-size:19px;color:var(--cream2);max-width:440px;margin:28px 0 30px}
.gate .row{display:flex;gap:12px;flex-wrap:wrap;align-items:stretch}
.gate .row .btn{min-height:64px;font-size:17px;padding:0 28px}
.gate small{display:block;margin-top:26px;font-size:14px;color:var(--mute);max-width:460px}
.gate .ys{display:none}
.gate-box:focus{outline:none}
.gate .no{display:none;margin-top:16px;font-weight:700;color:var(--gold)}

/* ======================================================
   PHONE: its own layout
   ====================================================== */
@media (max-width: 760px){
  :root{--slant:22px;--pad:18px}
  body{font-size:17px}
  .top{padding:14px 16px 0}
  .top .logo{width:96px}
  .top nav{background:none;padding:0}
  .top nav .nl{display:none}
  .top nav .btn{display:none}

  .hero{display:block;min-height:0;max-height:none}
  .hero-ph{margin:0;height:330px;clip-path:polygon(0 0,100% 0,100% 84%,0 100%)}
  .hero-ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 0%;-webkit-mask-image:none;mask-image:none}
  .hero-ph::after{background:linear-gradient(180deg,rgba(11,9,6,.85),rgba(11,9,6,.2) 38%,rgba(11,9,6,0) 60%)}
  .wedge{top:300px;bottom:auto;width:46%;height:100px;clip-path:polygon(100% 0,100% 100%,0 100%);display:none}
  .hero-tx{padding:22px 16px 30px;margin-top:0}
  .kick{font-size:12px;letter-spacing:.22em}
  .hero h1{font-size:76px;white-space:normal}
  .hero h1 .pw{font-size:1.36em}
  .hero h1 .rib{display:none}.hero h1 .rib.m{display:block}
  .kick + h1,.kick + h2{margin-top:20px!important}
  .shop h2 .plate,.visit h2 .plate{font-size:.8em}
  .hero .lede{font-size:17px;margin:20px 0 20px}
  .hero .row{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .hero .row .btn{padding:0 10px;font-size:15px;min-height:56px}
  .hours-t{position:relative;right:auto;bottom:auto;margin:0 16px 8px;padding:20px 20px;gap:16px;flex-wrap:wrap}
  .hours-t .c b{font-size:32px}
  .hours-t .sep{display:none}
  .hours-t a{display:none}

  .shop{display:block;min-height:0}
  .shop .ph{height:300px;clip-path:polygon(0 0,100% 0,100% 84%,0 100%)}
  .shop .tx{padding:14px 16px 0}
  .shop h2{font-size:108px}
  .shop .lede{font-size:17px;margin:24px 0 22px}
  .shop .tag{top:190px;bottom:auto;left:16px;font-size:11px}
  .shop .ph img{object-position:50% 2%}
  .shop .row .btn{flex:1 1 100%}
  .row .btn-text{flex:0 0 auto!important;width:auto!important;justify-content:flex-start;padding:0 2px}

  .rooms{padding-top:48px;display:flex;flex-direction:column}
  .rooms .head{display:contents}
  .rooms h2{order:1;font-size:150px;padding:0 16px;position:relative;z-index:4;white-space:normal}
  .rooms .doors{order:2;margin-top:-118px}
  .rooms .note{order:3}
  .rooms .side{order:4;padding:26px 16px 36px;max-width:none}
  .rooms .side p{font-size:17px;margin:20px 0 22px}
  .rooms .side .btn{width:100%}
  .doors{height:440px}
  .door{margin-left:calc(var(--slant) * -1 + 5px)}
  .door:hover,.door:focus-visible{flex-grow:1}
  .door:hover .real{opacity:0}
  .door .pk{left:10px;bottom:14px;gap:0;flex-direction:column;align-items:flex-start}
  .door:not(:first-child) .pk{left:calc(var(--slant) * .3 + 8px)}
  .door::after{height:40%}
  .door .pk .n{font-size:56px}
  .door .pk .t{padding:6px 0 0}
  .door .pk .t b{font-size:11px;letter-spacing:.08em}
  .door .pk .t b .confirm{display:none}
  .door .pk .t > span{display:none}
  .rooms .note{display:block;padding:14px 16px 0;font-size:14px;color:var(--mute)}

  .room{grid-template-columns:1fr;grid-template-rows:300px auto;align-content:start;overflow-y:auto;overscroll-behavior:contain}
  .room .ph{clip-path:polygon(0 0,100% 0,100% 88%,0 100%)}
  .room .bar{top:auto;left:0;width:auto;height:10px;bottom:0;display:none}
  .room .tx{justify-content:flex-start;padding:4px 20px 110px}
  .room .tx .nm{font-size:110px}
  .room .tx .rr{font-size:17px;margin:16px 0 20px}
  .room .tx .row .btn{flex:1 1 100%}
  .room .x{position:fixed;top:14px;right:14px;background:rgba(11,9,6,.85)}
  .room .pager{margin-top:20px}

  .req .ph::after{display:none}
  .req .ph{position:relative;width:100%;height:240px;clip-path:polygon(0 0,100% 0,100% 100%,0 78%)}
  .req .ph img{object-position:50% 30%}
  .req .in{padding:24px 16px 64px}
  .req h2{font-size:106px}
  .req .sub{font-size:17px;margin:18px 0 24px}
  .form{grid-template-columns:repeat(2,1fr);padding:18px;gap:14px}
  .f input[type=date]{padding:0 10px;font-size:16px}
  .f,.f.s6,.form .go,.sent{grid-column:span 2}.f.s2{grid-column:span 1}.f.gst{grid-column:span 2}
  .pick{gap:6px}
  .pick label{min-height:58px;font-size:28px}
  .form .go .btn{flex:1 1 100%}
  .rulebox{padding:22px 22px 24px;margin-top:26px}.rulebox p{font-size:17px}
  
  .ev .ph{position:relative;width:100%;height:220px;clip-path:polygon(0 0,100% 0,100% 100%,0 80%)}
  .ev .in{display:block;padding:8px 16px 56px}
  .ev h2{font-size:122px}
  .ev .when{font-size:18px;margin-top:30px}
  .ev .ticket{margin-top:36px;padding:26px 24px 26px}
  .ev .ticket .disp{font-size:66px}
  .ev .ticket p{font-size:17px}

  .visit{padding:64px 16px 56px}
  .visit .grid{display:block}
  .visit h2{font-size:110px}
  .visit .near{font-size:17px;margin:24px 0 22px}
  .visit .row .btn{flex:1 1 100%}
  .hours{margin-top:36px;gap:6px 18px}
  .hours dt,.hours dd{font-size:42px}
  .visit .pics{margin-top:40px}
  .visit .front{aspect-ratio:1/1;clip-path:polygon(0 0,100% 0,100% 100%,0 90%)}
  .walk{padding:22px 22px 18px}.walk .wl{font-size:18px}

  footer{padding:56px 16px 130px}
  footer .fl{grid-template-columns:1fr 1fr;gap:36px 24px}
  footer .fl > :first-child{grid-column:span 2}
  footer .logo{width:140px}
  footer .col .hrs{font-size:32px}
  footer .legal{margin-top:40px;flex-direction:column;gap:6px}

  .thumb{display:grid;grid-template-columns:1.25fr 1fr 1fr;gap:6px;position:fixed;left:0;right:0;bottom:0;z-index:40;padding:8px 8px calc(8px + env(safe-area-inset-bottom));background:rgba(11,9,6,.94);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
  .thumb a{min-height:56px;border-radius:6px;display:flex;align-items:center;justify-content:center;gap:8px;font-weight:800;font-size:16px;text-decoration:none;background:#211B12;color:var(--cream)}
  .thumb a.m{background:var(--gold);color:var(--ink)}
  .thumb a.r{background:var(--leafdeep);color:var(--cream)}
  .thumb svg{width:16px;height:16px}

  .pop{left:10px;right:10px;bottom:84px;width:auto;padding:26px 24px 22px}
  .pop .c1{font-size:124px}.pop .c2{font-size:56px}
  .pop .jt{width:112%;max-width:none;margin:-34px 0 -22px -6%}

  .gate{grid-template-columns:1fr;grid-template-rows:240px auto;align-content:start}
  .gate .ph{clip-path:polygon(0 0,100% 0,100% 84%,0 100%)}
  .gate .tx{margin:0;padding:0 18px 32px;justify-content:flex-start}
  .gate .logo{width:100px;margin:14px 0 8px}
  .gate h2{font-size:76px;margin-top:8px}
  .gate p{font-size:17px;margin:16px 0 18px}
  .gate .row{flex-direction:column;gap:10px}
  .gate .row .btn{width:100%;min-height:60px;white-space:nowrap;text-align:center;padding:0 14px}
  .gate .yl{display:none}.gate .ys{display:inline}
  .gate small{margin-top:16px;font-size:13px}
}
@media (min-width:761px){.rooms .note{display:none}}
@media (max-width:380px){
  .hero h1{font-size:70px}.shop h2{font-size:98px}.rooms h2{font-size:138px}.req h2{font-size:96px}.ev h2{font-size:108px}.visit h2{font-size:100px}
}
@media (prefers-reduced-motion: reduce){*{transition:none!important;scroll-behavior:auto!important}}

/* ================= FINAL: shared multi-page additions ================= */
/* nav: current page */
.top nav .nl[aria-current="page"]{color:var(--gold);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:8px}
/* phone pages button + sheet */
.nav-toggle{display:none}
.sheet{position:fixed;inset:0;z-index:70;background:var(--ink);display:flex;flex-direction:column;padding:16px 16px 24px;visibility:hidden;opacity:0;transition:opacity .25s ease,visibility 0s .25s;overflow-y:auto;overscroll-behavior:contain}
.sheet.on{visibility:visible;opacity:1;transition:opacity .25s ease}
.sheet .sh-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px}
.sheet .sh-top img{width:96px;height:auto}
.sheet .sh-x{width:52px;height:52px;border-radius:50%;background:#211B12;display:grid;place-items:center;color:var(--cream)}
.sheet .sh-x svg{width:20px;height:20px}
.sheet a.pg{font-family:var(--disp);font-size:72px;line-height:1;color:var(--cream);text-decoration:none;min-height:56px;padding:6px 0;display:block}
.sheet a.pg[aria-current="page"]{color:var(--gold)}
.sheet .btn{margin-top:28px;width:100%}
/* gated: hide page until the gate is answered */
html.gated body > *:not(.gate){visibility:hidden}
/* page hero (inner pages): same diagonal + plate system, shorter */
.hero.page{min-height:0;height:min(820px,92vh);height:min(820px,92svh)}
.hero.page .hero-tx{padding:150px 0 90px var(--pad)}
.hero.page h1{font-size:clamp(96px,8vw,138px)}
.hero.page h1 .pw{font-size:1.6em}
/* section head (inner pages) */
.sec{position:relative;padding:110px var(--pad)}
.sec-head{max-width:900px;margin-bottom:44px}
.sec-head h2{font-size:clamp(110px,10.5vw,190px);color:var(--cream);margin-top:30px}
.sec-head h2 .g{color:var(--gold)}
.sec-head p{font-size:19px;color:var(--cream2);max-width:600px;margin-top:24px}
.sec-head p b{color:var(--cream)}
/* card: black ticket with gold hairline (alias of .ticket) */
.card{position:relative;background:var(--plate);border-radius:14px;box-shadow:0 30px 70px rgba(0,0,0,.45);padding:28px 30px}
.card::before{content:"";position:absolute;inset:8px;border:1.5px solid rgba(226,167,46,.75);border-radius:9px;pointer-events:none}
.card .kick{font-size:12px}
.card h3{font-family:var(--disp);font-weight:400;font-size:64px;line-height:.9;color:var(--cream);margin:12px 0 10px}
.card p{font-size:17px;color:var(--cream2)}
/* house rules flyer (lounge) */
.rulesflyer{background:var(--gold);background-image:var(--grain),linear-gradient(170deg,var(--goldhi),var(--gold) 40%,var(--gold2));color:var(--ink);padding:110px var(--pad) 100px;position:relative;overflow:hidden}
.rulesflyer .kick{color:var(--ink)}
.rulesflyer h2{font-size:clamp(110px,10vw,180px);margin-top:30px}
.rulesflyer ul{list-style:none;margin-top:46px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:30px 56px;max-width:1180px}
.rulesflyer li{font-family:var(--disp);font-size:clamp(46px,4.4vw,72px);line-height:.95;display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px}
.rulesflyer li small{display:block;width:100%;font-family:var(--body);font-size:17px;font-weight:700;line-height:1.45;color:#2B2112;margin-top:4px}
.rulesflyer .confirm{background:var(--ink);color:var(--gold)}
.rulesflyer .sideph{position:absolute;right:0;top:0;bottom:0;width:22%;clip-path:polygon(40% 0,100% 0,100% 100%,0 100%)}
.rulesflyer .sideph img{width:100%;height:100%;object-fit:cover}
.rulesflyer .in{position:relative;z-index:2;max-width:calc(78% - 20px)}
/* textarea in forms */
.f textarea{appearance:none;-webkit-appearance:none;min-height:120px;border-radius:6px;border:2px solid #1E6A41;background:#0F4A2B;color:var(--cream);font:600 17px var(--body);padding:14px;width:100%;resize:vertical}
.f textarea::placeholder{color:#A9CDB2}
.f textarea:focus{outline:none;border-color:var(--gold)}
.f .hint{font-size:14px;color:#CFE6D3;font-weight:600;letter-spacing:0;text-transform:none}
@media (max-width:760px){
  .nav-toggle{display:inline-flex;align-items:center;gap:10px;min-height:48px;padding:0 16px;border-radius:6px;background:rgba(11,9,6,.9);color:var(--cream);font-weight:800;font-size:15px;box-shadow:inset 0 0 0 2px #4A3F2C}
  .nav-toggle svg{width:18px;height:18px}
  .hero.page{height:auto}
  .hero.page .hero-tx{padding:22px 16px 30px}
  .hero.page h1{font-size:76px}
  .hero.page h1 .pw{font-size:1.08em}
  .sec{padding:64px 16px}
  .sec-head{margin-bottom:28px}
  .sec-head h2{font-size:104px;margin-top:20px}
  .sec-head p{font-size:17px}
  .card{padding:24px 22px}
  .card h3{font-size:52px}
  .rulesflyer{padding:64px 16px 60px}
  .rulesflyer h2{font-size:100px;margin-top:20px}
  .rulesflyer ul{grid-template-columns:1fr;gap:26px;margin-top:30px}
  .rulesflyer li{font-size:46px}
  .rulesflyer li small{font-size:16px}
  .rulesflyer .sideph{display:none}
  .rulesflyer .in{max-width:none}
}
.form.tried [required]:invalid{border-color:#F0563D}
/* lounge page hero photo position */
.hero-lounge .hero-ph img{inset:0;height:100%;object-fit:cover;object-position:28% 60%;-webkit-mask-image:none;mask-image:none}
.req .sub b{color:var(--cream)}
@media (max-width:760px){.hero-lounge .hero-ph img{object-position:30% 55%}.hero.page .hero-ph{height:300px}}

/* ======================================================
   POLISH ROUND (2026-10-08): one rhythm, cleaner edges
   ====================================================== */
:root{--secpad:112px}
@media (max-width:760px){:root{--secpad:72px}}
/* 8: one section bottom padding everywhere (112 desktop / 72 phone) */
.sec{padding-top:var(--secpad);padding-bottom:var(--secpad)}
.shop .tx{padding-top:var(--secpad);padding-bottom:var(--secpad)}
.req .in{padding-top:var(--secpad);padding-bottom:var(--secpad)}
.ev .in{padding-top:var(--secpad);padding-bottom:var(--secpad)}
.visit{padding-top:var(--secpad);padding-bottom:var(--secpad)}
.rulesflyer{padding-top:var(--secpad);padding-bottom:var(--secpad)}
.rooms{padding-top:var(--secpad)}
@media (max-width:760px){
  .shop .tx{padding-top:14px;padding-bottom:0}
  .shop{padding-bottom:var(--secpad)}
  .rooms{padding-top:var(--secpad)}
  .req .in{padding-top:24px}
  .ev .in{padding-top:8px}
}
/* 4: inner-page hero photo fills the hero and fades to ink at the bottom, like Home */
@media (min-width:761px){
  .hero.page .hero-ph img{inset:0;height:100%;object-fit:cover;-webkit-mask-image:none;mask-image:none}
  .hero.page .hero-ph{-webkit-mask-image:linear-gradient(180deg,#000 calc(100% - 210px),transparent 100%);mask-image:linear-gradient(180deg,#000 calc(100% - 210px),transparent 100%)}
}
/* 14: no widows on short lines */
p,.city,.wl,.lede,.sub{text-wrap:pretty}
.evr h3,.vs-path b{text-wrap:balance}
/* 15/16: home Find us without the big hours block; right column ends level with the left */
.visit .grid{align-items:stretch}
.visit .grid > div:first-child{display:flex;flex-direction:column}
.visit .pics{display:flex;flex-direction:column;gap:14px;padding-top:calc(14px + 18px)}
.visit .pics .front{flex:1 1 auto;aspect-ratio:auto;min-height:340px}
@media (max-width:760px){.visit .pics{padding-top:0}.visit .pics .front{flex:none;aspect-ratio:1/1;min-height:0}}
/* 3: lounge phone ribbon: top end tucks behind the photo edge (as on Home and Events) */
@media (max-width:760px){.hero-ph{z-index:6}.hero-lounge h1 .rib.m{transform-origin:3.5em 3.2em;transform:scale(1.3)}}
/* 11: Request-a-room photo: crop up so the lamp + chesterfield arm fill it, soft front cushion out of view */
@media (min-width:761px){.req .ph{overflow:hidden}.req .ph img{object-position:42% 50%}}
/* 6: plain f everywhere in GorianE (no fi/fl ligature swash, plain capital F in the site font) */
.disp,[class*="disp"],h1,h2,h3{font-variant-ligatures:none;font-feature-settings:"liga" 0,"dlig" 0}
.rulesflyer li{align-content:flex-start}
/* Polish round 2: house rules rhythm (line hugs its heading, clear gap to the next rule) */
.rulesflyer ul{row-gap:32px}
.rulesflyer li{align-items:flex-start;row-gap:0;text-wrap:balance}
.rulesflyer li small{margin-top:8px}
@media (max-width:760px){.rulesflyer ul{gap:28px}}
.rulesflyer li .confirm{align-self:center}
@media (min-width:761px){.req .ph img{object-position:66% 50%}}
/* Polish round 3: lounge request panel capped at the form height, bottom-aligned with the form card */
/* round 4: full-height panel like Home */
@media (min-width:761px){#request .ph img{object-position:40% 50%}}
@media (max-width:760px){#request .ph img{object-position:50% 78%}}
/* home phone: Pick your room follows the shop section's 72px tail directly (no doubled gap) */
@media (max-width:760px){#shop + .rooms{padding-top:8px}}

/* hours 9:30 (10/23): break the footer hours between the two times, never inside one */
footer .col .hrs .t{white-space:nowrap}

/* room names 10/23: pager shows Haze/Kush/Chronic/Ganja, not 1-4 */
.room .pager{flex-wrap:wrap}
.room .pager button{padding:0 16px;font-size:24px}
.pick label small{letter-spacing:.04em;padding:0 2px}
@media (max-width:600px){.pick label small{font-size:12px;letter-spacing:.02em}}
@media (max-width:400px){.pick label small{font-size:11px;letter-spacing:0}}

/* 11/5 room pop-up: whole photo, nothing cut off (stopgap until new client photos) */
.room .ph{clip-path:none;display:flex;align-items:center;justify-content:center;padding:clamp(16px,3vh,40px) clamp(16px,2vw,32px);min-height:0;background:var(--ink)}
.room .ph img{width:auto;height:auto;max-width:100%;max-height:100%;object-fit:contain;object-position:50% 50%;box-sizing:border-box;border:10px solid var(--c);border-radius:14px}
.room .bar{display:none}
@media (max-width:760px){
  .room{grid-template-rows:max-content auto}
  .room .ph{display:block;padding:0;min-height:auto}
  .room .ph img{display:block;width:100%;max-height:none;border:0;border-bottom:10px solid var(--c);border-radius:0}
  .room .tx{padding-top:22px}
}
