:root{--cream:#f4ecde;--paper:#efe5d3;--ink:#110e0c;--ink2:#1b1714;--gold:#c9a86a;--gold2:#e2c88f;--mute:#6f655a;--serif:"Bodoni Moda","Bodoni 72",Didot,"Times New Roman",serif;--sans:"Jost","Futura","Helvetica Neue",Arial,sans-serif}
@font-face{font-family:"Bodoni Moda";font-style:italic;font-weight:400 900;font-display:swap;src:url(/assets/BodoniModa-italic-latin.woff2) format("woff2")}
@font-face{font-family:"Bodoni Moda";font-style:normal;font-weight:400 900;font-display:swap;src:url(/assets/BodoniModa-normal-latin.woff2) format("woff2")}
@font-face{font-family:"Jost";font-style:normal;font-weight:300 600;font-display:swap;src:url(/assets/Jost-normal-latin.woff2) format("woff2")}
*,*::before,*::after{box-sizing:border-box}
html{overflow-x:hidden;scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--ink);color:var(--cream);font:400 17px/1.6 var(--sans);overflow-x:hidden;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit}
h1,h2,h3{font-family:var(--serif);font-style:italic;font-weight:500;line-height:1.05;margin:0}
h2{font-size:clamp(2.3rem,7vw,4.4rem);letter-spacing:-.01em;margin:.2em 0 .6em}
i{font-style:normal;color:var(--gold)}
.sp{width:1em;height:1em;fill:currentColor;flex:none}
.sr,.hp{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.eyebrow,.kicker{font:500 .74rem/1 var(--sans);letter-spacing:.32em;text-transform:uppercase;margin:0}
/* top bar */
.topbar{position:fixed;inset:0 0 auto 0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:calc(.8rem + env(safe-area-inset-top)) 1.1rem .8rem;color:var(--ink);transition:background .35s,color .35s,box-shadow .35s}
.topbar.is-dark{background:rgba(17,14,12,.92);color:var(--cream);box-shadow:0 1px 0 rgba(201,168,106,.25);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.brand{display:block;flex:none;text-decoration:none}.brand img{display:block;width:86px;height:auto}.topbar.is-dark .brand img{filter:invert(1)}
.nav{display:flex;align-items:center;gap:1.3rem;font:500 .72rem/1 var(--sans);letter-spacing:.2em;text-transform:uppercase}
.nav a{text-decoration:none;opacity:.85}.nav a:hover{opacity:1}
.nav-cta{border-bottom:1px solid currentColor;padding-bottom:.25rem;opacity:1!important}
@media (max-width:720px){.brand img{width:67px}.nav{gap:.95rem;font-size:.64rem;letter-spacing:.14em}}
@media (max-width:370px){.nav a[href="#about"]{display:none}}
/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:3.1rem;padding:.9rem 1.6rem;border-radius:999px;font:500 .78rem/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;text-decoration:none;border:1px solid transparent;cursor:pointer;transition:transform .2s,background .2s,color .2s}
.btn:hover{transform:translateY(-1px)}
.btn-ink{background:var(--ink);color:var(--cream)}
.btn-line{border-color:var(--ink);color:var(--ink);background:transparent}
.btn-gold{background:var(--gold);color:var(--ink)}
.btn-gold:hover{background:var(--gold2)}
.btn:disabled{opacity:.6;cursor:wait}
/* hero */
.hero{background:var(--cream);color:var(--ink);min-height:100svh;display:grid;padding:4.6rem .9rem 1rem}
.frame{border:1px solid var(--ink);outline:1px solid var(--ink);outline-offset:-7px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:3.5rem 1.2rem 3rem;gap:1.4rem}
.kicker{color:var(--ink)}
.logo{width:min(82vw,640px);margin:.4rem 0}
.logo img{width:100%;height:auto}
.lede{font:italic 400 clamp(1.25rem,4.4vw,1.7rem)/1.3 var(--serif);margin:0;max-width:22ch}
.ctas{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:center;margin-top:.6rem}
/* ticker */
.ticker{background:var(--gold);color:var(--ink);overflow:hidden;display:flex;white-space:nowrap;border-block:1px solid var(--ink)}
.track{display:flex;flex:none;align-items:center;gap:1.4rem;padding:.85rem .7rem;font:italic 500 1.15rem/1 var(--serif);animation:tick 38s linear infinite}
.track .star{font-style:normal;font-size:.8rem}
@keyframes tick{to{transform:translateX(-100%)}}
@media (prefers-reduced-motion:reduce){.track{animation:none}}
/* band */
.band{position:relative;background:#000}
.band img{width:100%;height:min(78vh,620px);object-fit:cover;opacity:.82}
.band-line{position:absolute;inset:auto 0 0 0;margin:0;padding:3rem 1.4rem 2.2rem;font:italic 500 clamp(1.7rem,6vw,3.4rem)/1.08 var(--serif);text-align:center;background:linear-gradient(transparent,rgba(17,14,12,.85))}
/* sections */
section.events,section.gallery,section.list{padding:5.5rem 1.3rem;text-align:center}
.events .eyebrow,.gallery .eyebrow,.list .eyebrow{color:var(--gold)}
.ticket{display:flex;max-width:620px;margin:0 auto;background:var(--cream);color:var(--ink);border-radius:6px;text-align:left;position:relative}
.ticket-main{flex:1;padding:2rem 1.6rem;display:flex;flex-direction:column;gap:.7rem;align-items:flex-start}
.t-no{margin:0;font:500 .74rem/1 var(--sans);letter-spacing:.3em;text-transform:uppercase;color:var(--mute)}
.t-title{margin:0;font:italic 500 clamp(1.7rem,6vw,2.4rem)/1.05 var(--serif)}
.t-meta{margin:0 0 .6rem;font:500 .74rem/1.4 var(--sans);letter-spacing:.24em;text-transform:uppercase}
.ticket-stub{width:4.4rem;border-left:2px dashed rgba(17,14,12,.35);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.9rem;padding:1rem 0}
.ticket-stub span{writing-mode:vertical-rl;transform:rotate(180deg);font:500 .7rem/1 var(--sans);letter-spacing:.32em;text-transform:uppercase}
.ticket-stub .sp{color:var(--gold);width:1.1rem;height:1.1rem}
.note{color:rgba(244,236,222,.72);margin:1.6rem auto 0;max-width:30ch}
/* about / postcard */
.concept{overflow:hidden;background:var(--cream);color:var(--ink);padding:5.5rem 1.3rem;text-align:center}
.concept h2{max-width:16ch;margin-inline:auto}
.postcard{max-width:720px;margin:0 auto 3.5rem;background:var(--paper);border:1px solid rgba(17,14,12,.18);box-shadow:0 18px 40px rgba(17,14,12,.16);display:grid;grid-template-columns:1fr;text-align:left;transform:rotate(-1.2deg)}
.pc-note{padding:1.8rem 1.6rem;font:italic 400 1.18rem/1.55 var(--serif)}
.pc-note p{margin:0 0 .8rem}
.sig{margin-top:1.2rem!important}
.pc-back{border-top:1px solid rgba(17,14,12,.2);padding:1.4rem 1.6rem;display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}
.stamp{width:4.6rem;height:5.4rem;background:var(--ink);color:var(--gold);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.4rem;outline:2px dotted var(--ink);outline-offset:3px;order:2;flex:none}
.stamp .sp{width:1.4rem;height:1.4rem}.stamp span{font:600 .72rem/1 var(--sans);letter-spacing:.24em;color:var(--cream)}
.addr{margin:0;display:flex;flex-direction:column;gap:.55rem;flex:1;font:italic 400 1.05rem/1.2 var(--serif)}
.addr span{border-bottom:1px solid rgba(17,14,12,.3);padding-bottom:.35rem}
@media (min-width:760px){.postcard{grid-template-columns:1.25fr 1fr}.pc-back{border-top:0;border-left:1px solid rgba(17,14,12,.2);flex-direction:column;align-items:stretch}.stamp{order:0;align-self:flex-end}}
.ethos{list-style:none;margin:0 auto;padding:0;max-width:880px;display:grid;gap:1.6rem;text-align:left}
.ethos li{display:flex;gap:1rem;border-top:1px solid rgba(17,14,12,.22);padding-top:1.2rem}
.ethos b{font:italic 500 1.4rem/1 var(--serif);color:var(--gold);min-width:2.4rem}
.ethos h3{font-size:1.5rem;margin-bottom:.35rem}
.ethos p{margin:0;color:#3d352d}
@media (min-width:760px){.ethos{grid-template-columns:1fr 1fr;gap:2rem 3rem}}
/* gallery */
.shots{display:flex;gap:.8rem;overflow-x:auto;scroll-snap-type:x mandatory;padding:0 1.3rem 1rem;margin:0 -1.3rem;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.shots::-webkit-scrollbar{display:none}
.shot{flex:0 0 76%;margin:0;scroll-snap-align:center;text-align:left}
.shot img{width:100%;aspect-ratio:4/5;height:auto;object-fit:cover;border-radius:4px}
.shot figcaption{margin-top:.6rem;font:italic 400 1.05rem/1 var(--serif);color:var(--cream)}
.shot figcaption span{font:500 .68rem/1 var(--sans);letter-spacing:.2em;color:var(--gold);margin-right:.35rem}
@media (min-width:900px){.shots{overflow:visible;display:grid;grid-template-columns:repeat(5,1fr);max-width:1280px;margin:0 auto;padding:0}.shot{flex:none}}
/* list */
.list{background:var(--ink2);border-top:1px solid rgba(201,168,106,.25)}
.list-lede{max-width:34ch;margin:0 auto 2rem;color:rgba(244,236,222,.82)}
.signup{display:flex;flex-direction:column;gap:.7rem;max-width:460px;margin:0 auto}
.signup input[type=tel]{min-height:3.3rem;padding:.9rem 1.2rem;border-radius:999px;border:1px solid rgba(244,236,222,.4);background:transparent;color:var(--cream);font:400 1rem/1 var(--sans);text-align:center}
.signup input[type=tel]::placeholder{color:rgba(244,236,222,.5)}
.signup input[type=tel]:focus{outline:none;border-color:var(--gold)}
@media (min-width:560px){.signup{flex-direction:row}.signup input[type=tel]{flex:1;text-align:left}}
.signup-msg{min-height:1.6em;margin:1rem auto 0;font:italic 400 1.15rem/1.4 var(--serif);color:var(--gold2)}
.signup-msg.is-error{color:#e79b8a}
.fine{margin:.4rem 0 0;font-size:.82rem;color:rgba(244,236,222,.55);letter-spacing:.06em}
/* insta */
.insta{background:var(--cream);color:var(--ink);padding:5rem 1.3rem;text-align:center}
/* footer */
.footer{padding:4rem 1.3rem calc(2.4rem + env(safe-area-inset-bottom));text-align:center;color:rgba(244,236,222,.75);font-size:.9rem}
.f-logo{width:min(70vw,320px);height:auto;margin:0 auto 1.2rem}
.f-links{display:flex;flex-wrap:wrap;justify-content:center;gap:.6rem 1.4rem;margin:1.4rem 0;font:500 .72rem/1 var(--sans);letter-spacing:.2em;text-transform:uppercase}
.f-links a{text-decoration:none}.f-links a:hover{color:var(--gold)}
.copy{font-size:.78rem;opacity:.6}
/* reveal */
.js .reveal{opacity:0;transform:translateY(18px);transition:opacity .8s ease,transform .8s ease}
.js .reveal.is-in{opacity:1;transform:none}
.js .postcard.reveal.is-in{transform:rotate(-1.2deg)}
@media (prefers-reduced-motion:reduce){.js .reveal{opacity:1;transform:none;transition:none}}
/* 404 */
.nf .hero{padding-top:1rem}
