:root{--red:#B11E23;--red2:#7d1015;--ink:#0b0708;--ink2:#160d0f;--cream:#f4ead6;--gold:#c9a45c}
*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}
body{font:400 17px/1.65 Inter,system-ui,sans-serif;color:var(--cream);background:var(--ink)}body.locked{overflow:hidden}
a{color:inherit}img{max-width:100%;display:block}
h1,h2,h3,.logo{font-family:'Abril Fatface',serif;font-weight:400;letter-spacing:.5px}
h2{font-size:clamp(2.1rem,5vw,3.4rem);line-height:1.1;margin-bottom:1.2rem}h3{font-family:'Playfair Display',serif;font-weight:700;font-size:1.4rem;margin:.4rem 0}
.eyebrow{text-transform:uppercase;letter-spacing:.3em;font-size:.75rem;color:var(--gold);margin-bottom:.8rem}.eyebrow.red{color:var(--red)}
.orn{color:var(--gold);letter-spacing:.5em;margin:1rem 0}.small{font-size:.8rem;opacity:.7;margin-top:1rem}
.wrap{max-width:1150px;margin:auto;padding:0 1.5rem}.narrow{max-width:800px}.center{text-align:center}
section{padding:100px 0;position:relative}
.cream{background:var(--cream);color:var(--ink);background-image:radial-gradient(circle at 50% 0,#fff8 0,transparent 60%)}
.cream h2{color:var(--red2)}.dark{background:linear-gradient(180deg,var(--ink),var(--ink2))}
.red-sec{background:radial-gradient(circle at 50% 30%,var(--red),var(--red2) 70%,#3a0709)}
.btn{display:inline-block;background:var(--red);color:#fff;text-decoration:none;padding:.9rem 1.8rem;border:1px solid var(--gold);border-radius:2px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;font-size:.8rem;cursor:pointer;box-shadow:0 0 25px #b11e2366;transition:.25s}
.btn:hover{box-shadow:0 0 40px #b11e23cc;transform:translateY(-2px)}.btn.ghost{background:transparent;color:var(--cream)}.btn.sm{padding:.5rem 1rem}
.cream-btn{background:var(--cream);color:var(--red2)}
.cta{display:flex;gap:1rem;flex-wrap:wrap;margin-top:1.8rem}.center .cta{justify-content:center}
.nav{position:fixed;inset:0 0 auto;z-index:50;display:flex;justify-content:space-between;align-items:center;padding:1rem 2rem;background:#0b0708cc;backdrop-filter:blur(10px);border-bottom:1px solid #c9a45c33}
.logo{font-size:1.5rem;color:var(--cream);text-decoration:none}.logo span{color:var(--red);text-shadow:0 0 18px #b11e23}
.nav nav{display:flex;gap:1.6rem;align-items:center}.nav nav a:not(.btn){text-decoration:none;font-size:.85rem;letter-spacing:.1em;text-transform:uppercase;opacity:.85}.nav nav a:hover{color:var(--gold)}
.burger{display:none;background:none;border:0;color:var(--cream);font-size:1.8rem;cursor:pointer}
.hero{min-height:100vh;display:grid;place-items:center;text-align:center;overflow:hidden;padding:120px 0 80px}
.hero-bg{position:absolute;inset:0;background:linear-gradient(180deg,#0b0708aa,#0b0708ee 85%),url(images/photo3.jpg) center/cover;filter:saturate(1.1)}
.hero-bg::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 45%,#b11e2355,transparent 60%)}
.hero-in{position:relative;max-width:820px;padding:0 1.5rem}
.hero h1{font-size:clamp(4rem,13vw,9rem);line-height:.9;color:var(--cream);text-shadow:0 0 40px #b11e23aa}.hero h1 em{font-style:normal;color:var(--red);text-shadow:0 0 30px #b11e23,0 0 80px #b11e23aa}
.lead{font-size:1.2rem;font-family:'Playfair Display',serif;font-style:italic}.hero .cta{justify-content:center}
.intro{max-width:760px;font-size:1.1rem;margin-bottom:3rem}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1.4rem}
.cards article{background:#fffaf0;border:1px solid #c9a45c88;padding:2rem 1.6rem;position:relative;box-shadow:0 10px 30px #0001}
.cards article::before{content:"";position:absolute;inset:6px;border:1px solid #b11e2333;pointer-events:none}.ic{color:var(--red);font-size:1.6rem}
.grid{columns:3 280px;column-gap:1rem}.g{display:block;margin-bottom:1rem;break-inside:avoid;overflow:hidden;border:1px solid #c9a45c44}
.g img{transition:.5s}.g:hover img{transform:scale(1.05);filter:brightness(1.15)}
.events{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem}
.ev{background:var(--ink);color:var(--cream);padding:1.5rem;text-align:center;border-top:3px solid var(--red)}.ev b{display:block;font-family:'Playfair Display';font-size:1.3rem;color:var(--gold)}
.note{margin-top:2rem}.note a{color:var(--red);font-weight:600}
.two{display:grid;grid-template-columns:1fr 1fr;gap:3rem;align-items:start}
.hours{width:100%;border-collapse:collapse;margin-bottom:1.5rem}.hours td{padding:.55rem 0;border-bottom:1px solid #c9a45c33}.hours td:last-child{text-align:right;color:var(--gold)}
address{font-style:normal;margin-bottom:1rem}address a{color:var(--gold)}.facts{list-style:none;font-size:.95rem}.facts b{color:var(--gold)}
.map{border:1px solid var(--gold);box-shadow:0 0 50px #b11e2344;min-height:450px}.map iframe{width:100%;height:100%;min-height:450px;border:0;filter:grayscale(.3) contrast(1.1)}
.red-sec .cards{max-width:760px;margin:2rem auto}.red-sec .cards article{background:#0b070866;border-color:var(--gold);color:var(--cream)}.red-sec h2{text-shadow:0 0 30px #0008}
details{border-bottom:1px solid #b11e2333;padding:1.1rem 0}summary{cursor:pointer;font-family:'Playfair Display';font-weight:700;font-size:1.15rem;list-style:none;display:flex;justify-content:space-between}
summary::after{content:"+";color:var(--red)}details[open] summary::after{content:"–"}details p{margin-top:.6rem}details a{color:var(--red)}
#contact a{color:var(--gold)}
footer{text-align:center;padding:60px 1rem;background:#060404;border-top:1px solid #c9a45c33}footer .logo{font-size:2rem}footer a{color:var(--gold)}
#agegate{position:fixed;inset:0;z-index:100;display:grid;place-items:center;background:radial-gradient(circle,#2a0a0cee,#000f);padding:1rem}
.ag-box{max-width:480px;text-align:center;background:var(--ink);border:1px solid var(--gold);padding:2.5rem 2rem;box-shadow:0 0 80px #b11e2366;outline:1px solid #b11e23;outline-offset:6px}
.ag-btns{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap;margin-top:1.5rem}body:not(.locked) #agegate{display:none}
#lb{position:fixed;inset:0;z-index:90;background:#000e;display:none;place-items:center}#lb.on{display:grid}#lb img{max-width:90vw;max-height:88vh;border:1px solid var(--gold)}
#lb button{position:absolute;background:none;border:0;color:var(--cream);font-size:3rem;cursor:pointer;padding:1rem}.x{top:0;right:1rem}.pv{left:0;top:45%}.nx{right:0;top:45%}
@media(max-width:860px){.burger{display:block}.nav{padding:.8rem 1.2rem}.nav nav{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;background:var(--ink);padding:1.5rem;gap:1.1rem}.nav.open nav{display:flex}
.two{grid-template-columns:1fr}section{padding:70px 0}.map,.map iframe{min-height:320px}}
