/* Irbie, Night Ascent system: one deliberate dark look shared by the home page and every event page. */
:root{
  --night:#060A12; --deep:#0B1A33; --ridge:#123C8C; --glacier:#00A7F5; --ice:#8BE8F5; --frost:#D7F3F8; --snow:#F6FAFC; --amber:#F5A623; --granite:#8E8A99; --aurora:#6FF2C2;
  --bg:var(--night); --fg:var(--snow); --muted:#9AA6B8; --line:rgba(139,232,245,.16); --glass:rgba(10,20,38,.62); --glass-line:rgba(139,232,245,.22);
  --f-display:"Big Shoulders Display","Oswald",Impact,sans-serif; --f-serif:"Instrument Serif",Georgia,serif; --f-body:"Karla",system-ui,sans-serif; --f-mono:"DM Mono",ui-monospace,Menlo,monospace;
  --gutter:clamp(16px,4vw,56px); --max:1280px; --ease:cubic-bezier(.15,.85,.25,1); --spring:cubic-bezier(.3,1.5,.6,1);
  color-scheme:dark;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--fg);font:300 17px/1.65 var(--f-body);overflow-x:hidden}
a{color:inherit}
img,video{max-width:100%}
:focus-visible{outline:2px solid var(--ice);outline-offset:4px}
.wrap{max-width:calc(var(--max) + 2*var(--gutter));margin-inline:auto;padding-inline:var(--gutter)}
h1,h2,h3{margin:0;font-family:var(--f-display);text-transform:uppercase;font-weight:800;line-height:.88;text-wrap:balance;letter-spacing:.01em}
p{margin:0}
.kicker{font:italic 400 clamp(19px,1.9vw,25px)/1.1 var(--f-serif);color:var(--ice)}
.mono{font-family:var(--f-mono)}
.label{font:500 11px/1.3 var(--f-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.label b{color:var(--fg);font-weight:500}
#snow{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:5}

/* header */
.head{position:fixed;top:env(safe-area-inset-top,0px);left:0;right:0;z-index:30;transition:background .5s,backdrop-filter .5s}
.head.solid{background:rgba(6,10,18,.74);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.head .wrap{height:68px;display:flex;align-items:center;gap:24px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none}
.brand svg{width:34px;height:34px}
.brand b{font:800 24px/1 var(--f-display);letter-spacing:.12em}
.head nav{margin-left:auto;display:flex;gap:26px;font:400 13.5px var(--f-body);letter-spacing:.14em;text-transform:uppercase}
.head nav a{text-decoration:none;opacity:.75;transition:opacity .3s}
.head nav a:hover,.head nav a[aria-current="page"]{opacity:1}
.cta{display:inline-flex;align-items:center;gap:10px;font:600 13px/1 var(--f-body);letter-spacing:.14em;text-transform:uppercase;text-decoration:none;border:1px solid var(--ice);color:var(--ice);padding:12px 18px;border-radius:999px;background:transparent;cursor:pointer;transition:background .3s,color .3s,transform .3s}
.cta:hover{background:var(--ice);color:var(--night)}
.cta.solid{background:var(--amber);border-color:var(--amber);color:var(--night)}
.cta.solid:hover{box-shadow:0 0 40px 4px rgba(245,166,35,.35);transform:translateY(-2px);background:var(--amber)}
@media (max-width:820px){.head nav{display:none}.head .cta{margin-left:auto}}

/* glass module */
.mod{background:var(--glass);border:1px solid var(--glass-line);border-radius:14px;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 20px 60px rgba(0,0,0,.35)}
.mod-h{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--line)}

/* media slot: real photo or video when supplied, animated artwork until then */
.media{position:relative;overflow:hidden;background:var(--deep);isolation:isolate;margin:0}
.media>svg,.media>img,.media>video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.media>svg{animation:kenburns 26s ease-in-out infinite alternate;transform-origin:60% 60%}
.media>img{animation:kenburns 30s ease-in-out infinite alternate}
@keyframes kenburns{from{transform:scale(1.04) translate(0,0)}to{transform:scale(1.16) translate(-2%,-1.5%)}}
.media figcaption{position:absolute;left:12px;bottom:10px;z-index:2;font:500 10.5px var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--frost);background:rgba(6,10,18,.55);padding:5px 8px;border-radius:4px}
.media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(6,10,18,.55));z-index:1;pointer-events:none}

/* spots ring */
.ring{--p:0;width:64px;height:64px;position:relative;flex:none}
.ring svg{width:100%;height:100%;transform:rotate(-90deg)}
.ring circle{fill:none;stroke-width:5}
.ring .bg{stroke:var(--line)}
.ring .fg{stroke:var(--amber);stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:calc(1 - var(--p));transition:stroke-dashoffset 1.2s var(--ease)}
.ring span{position:absolute;inset:0;display:grid;place-items:center;text-align:center;font:800 20px/1 var(--f-display)}
.ring span small{display:block;font:500 8.5px var(--f-mono);letter-spacing:.1em;color:var(--muted);margin-top:2px}

.chip{display:inline-flex;align-items:center;gap:7px;font:500 10.5px/1 var(--f-mono);letter-spacing:.12em;text-transform:uppercase;padding:6px 9px;border-radius:999px;border:1px solid var(--glass-line);color:var(--frost);white-space:nowrap}
.chip i{width:7px;height:7px;border-radius:50%;background:var(--aurora);box-shadow:0 0 10px var(--aurora)}
.chip.hot i{background:var(--amber);box-shadow:0 0 10px var(--amber)}

/* forms */
.f{position:relative;display:grid;gap:4px;min-width:0}
.f label{font:600 12px var(--f-body);letter-spacing:.22em;text-transform:uppercase;color:var(--muted)}
.f input,.f select{font:300 20px var(--f-body);color:var(--snow);background:transparent;border:0;border-bottom:1px solid var(--line);padding:10px 0;width:100%;border-radius:0}
.f select option{background:var(--deep);color:var(--snow)}
.f::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:linear-gradient(90deg,var(--glacier),var(--ice));transform:scaleX(0);transform-origin:left;transition:transform .6s var(--ease);box-shadow:0 0 14px var(--glacier)}
.f:focus-within::after{transform:scaleX(1)}
.f input:focus,.f select:focus{outline:none}

footer{position:relative;z-index:6;border-top:1px solid var(--line);padding-block:34px}
footer .wrap{display:flex;flex-wrap:wrap;gap:14px 28px;justify-content:space-between;align-items:center}
footer small{font:400 12px var(--f-body);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}

.pre{opacity:0;transform:translateY(40px)}
.rv{transition:opacity 1s var(--ease),transform 1s var(--ease);transition-delay:var(--d,0s)}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.pre{opacity:1;transform:none}}

/* WhatsApp: floating chat button and inline buttons */
.wa-fab{position:fixed;right:max(16px,env(safe-area-inset-right));bottom:max(16px,env(safe-area-inset-bottom));z-index:40;display:flex;align-items:center;gap:10px;height:56px;padding:0 16px 0 14px;border-radius:999px;background:#25D366;color:#062a14;text-decoration:none;font:700 13px var(--f-body);letter-spacing:.06em;box-shadow:0 12px 34px rgba(37,211,102,.35);transform:translateY(120px);transition:transform .8s var(--spring),box-shadow .3s}
.wa-fab.in{transform:none}
.wa-fab svg{width:28px;height:28px;flex:none}
.wa-fab::before{content:"";position:absolute;inset:0;border-radius:inherit;border:2px solid #25D366;animation:wapulse 2.6s 3s ease-out infinite;pointer-events:none}
@keyframes wapulse{from{transform:scale(1);opacity:.8}to{transform:scale(1.35);opacity:0}}
.wa-fab:hover{box-shadow:0 14px 44px rgba(37,211,102,.55)}
@media (max-width:640px){.wa-fab span{display:none}.wa-fab{width:56px;padding:0;justify-content:center}}
.cta.wa{border-color:#25D366;color:#25D366}
.cta.wa:hover{background:#25D366;color:#062a14}
.cta.wa svg{width:18px;height:18px}

/* promo ribbon across the top */
.ribbon{position:relative;z-index:31;display:flex;justify-content:center;align-items:center;gap:12px;flex-wrap:wrap;min-height:38px;padding:6px var(--gutter);background:linear-gradient(90deg,#3a2606,#6b450b 30%,#3a2606);color:#FFE3B0;font:500 12.5px/1.3 var(--f-body);letter-spacing:.06em;text-align:center;overflow:hidden}
.ribbon::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent 30%,rgba(255,230,180,.25) 50%,transparent 70%);transform:translateX(-100%);animation:sheen 5s 1.5s ease-in-out infinite;pointer-events:none}
@keyframes sheen{to{transform:translateX(100%)}}
.ribbon b{color:var(--amber);font-weight:700}
.ribbon code{font:500 12px var(--f-mono);border:1px dashed rgba(245,166,35,.7);padding:2px 7px;border-radius:4px;color:#fff}
.ribbon a{color:#fff;font-weight:600}
.ribbon{max-height:80px;transition:max-height .5s var(--ease),padding .5s var(--ease),opacity .4s}
.head.mini .ribbon{max-height:0;padding-block:0;min-height:0;opacity:0}

/* photo viewer */
.lb{position:fixed;inset:0;z-index:60;background:rgba(3,6,12,.94);display:grid;place-items:center;opacity:0;transition:opacity .4s;touch-action:pan-y}
.lb.on{opacity:1}
.lb img{max-width:min(94vw,1600px);max-height:82vh;object-fit:contain;border-radius:8px;box-shadow:0 30px 80px rgba(0,0,0,.6);transform:scale(.96);transition:transform .5s var(--ease)}
.lb.on img{transform:none}
.lb-bar{position:absolute;left:0;right:0;bottom:0;display:flex;justify-content:space-between;gap:16px;padding:16px var(--gutter) max(16px,env(safe-area-inset-bottom));font:italic 400 20px var(--f-serif);color:var(--frost)}
.lb button{position:absolute;width:52px;height:52px;border-radius:50%;border:1px solid var(--glass-line);background:var(--glass);color:var(--snow);font:400 24px var(--f-body);cursor:pointer;display:grid;place-items:center}
.lb-x{top:16px;right:16px}.lb-p{left:16px;top:50%}.lb-nx{right:16px;top:50%}
.lb button:hover{background:var(--ice);color:var(--night)}

/* ad and promo modules */
.ad{position:relative;overflow:hidden;border-radius:18px;border:1px solid var(--glass-line);isolation:isolate;transition:transform .5s var(--ease)}
.ad::before{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;background:radial-gradient(400px circle at var(--mx,50%) var(--my,50%),rgba(139,232,245,.14),transparent 60%)}
.ad-tag{display:inline-flex;align-items:center;gap:6px;font:600 10.5px var(--f-mono);letter-spacing:.18em;text-transform:uppercase;color:var(--night);background:var(--amber);padding:5px 9px;border-radius:4px}
.price{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.price b{font:800 clamp(38px,4vw,56px)/1 var(--f-display);color:var(--snow)}
.price s{font:400 16px var(--f-mono);color:var(--muted)}
.price small{font:500 11px var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.sample-note{font:400 11px var(--f-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
