/* Hive Workshops — "Christmas wreath" event theme (page_theme 'wreath'). Standalone (public.css not loaded).
   Animation: transform/opacity only. One fixed background layer (.wbg) with 26 falling items; scroll-linked motion via animation-timeline where supported, loops elsewhere. */
:root{--bg:#2A0F18;--bg2:#17301F;--cream:#FFF6E6;--ink:#FFF6E6;--mute:#E9D5C0;--red:#C8283C;--red-d:#9B1B30;--gold:#F0C25B;--pine:#2F6B47;--card:rgba(255,246,230,.07);--line:rgba(255,246,230,.22);
  --disp:'Fraunces',Georgia,serif;--xmas:'Mountains of Christmas','Fraunces',Georgia,cursive;--ui:'Mulish',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;--gut:clamp(20px,5vw,64px);--sab:env(safe-area-inset-bottom,0px)}
html{scroll-behavior:smooth;color-scheme:dark;background:var(--bg)}
body.pg-wreath{margin:0;background:linear-gradient(180deg,#2A0F18 0%,#3A1520 30%,#17301F 70%,#10241A 100%);background-attachment:scroll;color:var(--ink);font:400 18px/1.6 var(--ui);overflow-x:clip;-webkit-font-smoothing:antialiased}
.pg-wreath *,.pg-wreath *::before,.pg-wreath *::after{box-sizing:border-box}
.pg-wreath a{color:var(--gold)}.pg-wreath a:hover{color:#fff}
.pg-wreath :focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:4px}
.pg-wreath .skip{background:var(--gold);color:#2A0F18;z-index:1000}
.pg-wreath h1,.pg-wreath h2,.pg-wreath h3{font-family:var(--disp);margin:0;color:var(--cream);font-weight:700;letter-spacing:-.01em}
.pg-wreath em{font-style:italic;color:var(--gold);font-weight:500}
.pg-wreath p{margin:0 0 1em}
.wreath{position:relative;z-index:2;overflow-x:clip}
.wwrap{width:min(1120px,100% - 2*var(--gut));margin-inline:auto}

/* ---------- animated background (fixed, pointer-less) ---------- */
.wbg{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden;contain:strict}
.wbg-glow{position:absolute;left:-15%;top:-5%;width:60vmax;height:60vmax;opacity:.85}
.wbg-glow::after{content:"";position:absolute;inset:0;border-radius:50%;background:radial-gradient(closest-side,rgba(200,40,60,.34),transparent 70%);animation:wdrift 26s ease-in-out infinite alternate}
.wbg-glow.b{left:auto;right:-20%;top:auto;bottom:-15%}.wbg-glow.b::after{background:radial-gradient(closest-side,rgba(47,107,71,.42),transparent 70%);animation-duration:32s;animation-delay:-9s}
@keyframes wdrift{from{transform:translate3d(0,0,0) scale(1)}to{transform:translate3d(8vw,6vh,0) scale(1.15)}}
.wfall{position:absolute;inset:0}
.wf{position:absolute;top:-8vh;left:var(--x);width:var(--s);height:var(--s);animation:wfall var(--d) linear var(--l) infinite;}
.wf u{display:block;width:100%;height:100%;animation:wsway 5s ease-in-out infinite alternate;animation-delay:var(--l)}
.wf.snow u{border-radius:50%;background:#fff;opacity:.8;box-shadow:0 0 6px rgba(255,255,255,.6)}
.wf.berry u{border-radius:50%;background:radial-gradient(circle at 35% 30%,#ff7b86,#C8283C 60%,#7d1020);opacity:.9}
.wf.needle{width:calc(var(--s)*.35);height:calc(var(--s)*2.4)}.wf.needle u{border-radius:99px;background:linear-gradient(#5fae7c,#2F6B47);opacity:.85;transform-origin:50% 0}
.wf.spark u{background:var(--gold);clip-path:polygon(50% 0,62% 38%,100% 50%,62% 62%,50% 100%,38% 62%,0 50%,38% 38%);opacity:.9;animation:wsway 3s ease-in-out infinite alternate,wtwinkle 1.6s ease-in-out infinite}
@keyframes wfall{to{transform:translate3d(var(--w),112vh,0)}}
@keyframes wsway{from{transform:translateX(-18px) rotate(-20deg)}to{transform:translateX(18px) rotate(20deg)}}
@keyframes wtwinkle{50%{opacity:.25}}
@supports (animation-timeline:scroll()){
  .wbg-glow{animation:wscrollglow linear both;animation-timeline:scroll(root)}
  .wbg-glow.b{animation-name:wscrollglow2}
  @keyframes wscrollglow{from{transform:translate3d(0,0,0)}to{transform:translate3d(30vw,60vh,0)}}
  @keyframes wscrollglow2{from{transform:translate3d(0,0,0)}to{transform:translate3d(-30vw,-60vh,0)}}
  .wprog{animation:wprog linear both;animation-timeline:scroll(root)}
  @keyframes wprog{from{transform:scaleX(0)}to{transform:scaleX(1)}}
  .wring{animation:wspin linear both;animation-timeline:scroll(root);animation-range:0 120vh}
  @keyframes wspin{from{transform:rotate(0)}to{transform:rotate(360deg)}}
  .wrib-shift{animation:wribs linear both;animation-timeline:scroll(root)}
  @keyframes wribs{from{transform:translateX(0)}to{transform:translateX(-600px)}}
}

/* ---------- header / progress ---------- */
.whead{position:fixed;top:0;left:0;right:0;z-index:60;display:flex;justify-content:space-between;align-items:center;padding:12px var(--gut);background:linear-gradient(rgba(42,15,24,.85),rgba(42,15,24,0))}
.wbrand{display:flex;gap:10px;align-items:center;color:var(--cream)!important;text-decoration:none;font:700 15px/1 var(--ui)}
.wseal{display:grid;place-items:center;width:26px;height:26px;border-radius:6px;background:var(--red);font:700 14px/1 var(--disp)}
.whead nav a{margin-left:18px;font:600 13px/1 var(--ui);color:var(--mute);text-decoration:none}
.wprog{position:fixed;top:0;left:0;right:0;height:4px;z-index:70;background:linear-gradient(90deg,var(--red),var(--gold),var(--pine));transform:scaleX(0);transform-origin:0 50%}

/* ---------- hero ---------- */
.whero{position:relative;min-height:100svh;display:grid;align-items:center;padding:96px 0 70px}
.wlights{position:absolute;top:50px;left:0;right:0;display:flex;justify-content:space-around;pointer-events:none}
.wlights i{width:10px;height:14px;border-radius:50% 50% 50% 50%/60% 60% 40% 40%;background:var(--gold);box-shadow:0 0 14px 3px rgba(240,194,91,.7);animation:wblink 2.4s ease-in-out infinite}
.wlights i:nth-child(3n){background:#ff5468;box-shadow:0 0 14px 3px rgba(255,84,104,.7);animation-delay:-.8s}.wlights i:nth-child(3n+1){background:#6fe0a0;box-shadow:0 0 14px 3px rgba(111,224,160,.6);animation-delay:-1.5s}
@keyframes wblink{50%{opacity:.35;transform:scale(.85)}}
.whero-grid{display:grid;gap:36px;align-items:center}
@media(min-width:900px){.whero-grid{grid-template-columns:1.1fr .9fr;gap:56px}}
.wkick{font:800 12px/1 var(--ui);letter-spacing:.22em;text-transform:uppercase;color:var(--gold);margin-bottom:18px}
.whero h1{font-size:clamp(46px,9vw,112px);line-height:.92;margin-bottom:22px}
.whero h1 span{display:block}.whero h1 em{display:block;font-family:var(--xmas);font-style:normal;font-size:1.05em;color:var(--gold);transform:rotate(-2deg);transform-origin:0 50%}
.wlead{font:italic 500 clamp(20px,2.6vw,28px)/1.3 var(--disp);color:var(--mute);max-width:26em}
.wchips{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin:0 0 26px}
.wchips li{padding:9px 16px;border:1px solid var(--line);border-radius:99px;background:var(--card);font:700 14px/1 var(--ui)}
.wcta{display:flex;flex-wrap:wrap;gap:12px}
.wbtn{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 28px;border-radius:99px;border:2px solid var(--red);background:var(--red);color:#fff!important;font:800 14px/1 var(--ui);letter-spacing:.06em;text-decoration:none!important;cursor:pointer;transition:transform .3s,background .3s;animation:wpulse 3s ease-in-out infinite}
.wbtn:hover{transform:translateY(-2px);background:var(--red-d)}
.wbtn.ghost{background:transparent;border-color:var(--line);color:var(--cream)!important;animation:none}
.wbtn.ghost:hover{border-color:var(--gold);background:rgba(240,194,91,.1)}
.wfull{width:100%}.wbtn[disabled]{opacity:.5;animation:none;cursor:not-allowed}
@keyframes wpulse{50%{scale:1.035}}
.whero-art{position:relative;display:grid;place-items:center;min-height:340px}
.wring{position:absolute;inset:-6%}
.wring-in{position:absolute;inset:0;animation:wspinloop 60s linear infinite}
@keyframes wspinloop{to{transform:rotate(360deg)}}
.wring i{position:absolute;left:50%;top:50%;width:22px;height:22px;margin:-11px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#ff7b86,#C8283C 60%,#7d1020);transform:rotate(calc(var(--n,0)*20deg)) translateY(-46vmin)}
.wring i:nth-child(odd){width:14px;height:34px;border-radius:99px;background:linear-gradient(#5fae7c,#2F6B47);margin:-17px -7px}
.wring i:nth-child(1){--n:0}.wring i:nth-child(2){--n:1}.wring i:nth-child(3){--n:2}.wring i:nth-child(4){--n:3}.wring i:nth-child(5){--n:4}.wring i:nth-child(6){--n:5}.wring i:nth-child(7){--n:6}.wring i:nth-child(8){--n:7}.wring i:nth-child(9){--n:8}.wring i:nth-child(10){--n:9}.wring i:nth-child(11){--n:10}.wring i:nth-child(12){--n:11}.wring i:nth-child(13){--n:12}.wring i:nth-child(14){--n:13}.wring i:nth-child(15){--n:14}.wring i:nth-child(16){--n:15}.wring i:nth-child(17){--n:16}.wring i:nth-child(18){--n:17}
@media(min-width:900px){.wring i{transform:rotate(calc(var(--n,0)*20deg)) translateY(-300px)}}
@media(max-width:899px){.wring i{transform:rotate(calc(var(--n,0)*20deg)) translateY(-150px)}}
.wposter{position:relative;margin:0;width:min(74%,380px);transform:rotate(3deg);animation:wfloat 7s ease-in-out infinite;border-radius:10px;overflow:hidden;box-shadow:0 30px 70px -20px rgba(0,0,0,.7),0 0 0 6px rgba(255,246,230,.9)}
.wposter img{display:block;width:100%;height:auto}
@keyframes wfloat{50%{transform:rotate(1deg) translateY(-14px)}}
.wstamp{position:absolute;left:-2%;bottom:4%;width:96px;height:96px;border-radius:50%;background:var(--gold);color:#2A0F18;display:grid;place-content:center;text-align:center;font:800 11px/1.1 var(--ui);text-transform:uppercase;letter-spacing:.1em;animation:wspinloop 24s linear infinite reverse;box-shadow:0 8px 24px -6px rgba(0,0,0,.6)}
.wstamp b{font:700 38px/1 var(--disp);letter-spacing:0}
.wdown{position:absolute;left:50%;bottom:22px;width:26px;height:44px;margin-left:-13px;border:2px solid var(--line);border-radius:99px}
.wdown i{position:absolute;left:50%;top:8px;width:4px;height:8px;margin-left:-2px;border-radius:2px;background:var(--gold);animation:wscrollcue 1.8s ease-in-out infinite}
@keyframes wscrollcue{0%{transform:translateY(0);opacity:1}100%{transform:translateY(16px);opacity:0}}

/* ---------- ribbon (continuous) ---------- */
.wribbon{overflow:hidden;background:var(--red);transform:rotate(-1.2deg);margin:20px -2vw;padding:14px 0;border-block:2px solid var(--gold)}
.wtrack{display:flex;gap:36px;width:max-content;animation:wmarq 28s linear infinite;font:700 20px/1 var(--disp);white-space:nowrap}
.wtrack span:nth-child(even){color:var(--gold)}
@keyframes wmarq{to{transform:translateX(-25%)}}

/* ---------- sections ---------- */
.wsec{position:relative;padding:clamp(64px,10vw,130px) 0}
.wsec h2{font-size:clamp(34px,5.6vw,68px);line-height:1.04;margin-bottom:.5em;max-width:16em}
.wsec h2,.whero h1,.wkick,.wlead{text-wrap:balance}
.wbig{font:500 clamp(19px,2.2vw,26px)/1.5 var(--disp);color:var(--mute);max-width:32em}
.wnote,.wsmall{font:400 13.5px/1.5 var(--ui);color:var(--mute)}
.wlove{text-align:center}.wlove h2{margin-inline:auto}.wlove .wbig{margin-inline:auto}
.wdgrid{display:grid;gap:22px;margin:30px 0}
@media(min-width:760px){.wdgrid{grid-template-columns:1fr 1.3fr .8fr;align-items:center}}
.wd{margin:0;padding:10px 10px 14px;background:var(--cream);border-radius:6px;box-shadow:0 20px 50px -18px rgba(0,0,0,.7);color:#2A0F18;animation:wsw 6s ease-in-out infinite alternate;transform-origin:50% 0}
.wd img{display:block;width:100%;height:auto;border-radius:3px}.wd3 img{border-radius:50%}
.wd figcaption{margin-top:10px;font:italic 600 17px/1.2 var(--disp);text-align:center}
.wd1 img{rotate:-2deg}.wd2{animation-delay:-2s}.wd3{animation-delay:-4s}
@keyframes wsw{from{rotate:-2.4deg}to{rotate:2.4deg}}
.wdl{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));margin-top:26px}
.wc{padding:26px 22px;border:1px solid var(--line);border-radius:18px;background:var(--card);display:grid;gap:6px}
.wc b{font:800 11px/1 var(--ui);letter-spacing:.2em;text-transform:uppercase;color:var(--gold)}.wc span{font:700 24px/1.2 var(--disp)}.wc small{color:var(--mute);font-size:13.5px;line-height:1.4}
.wic{font-style:normal;font-size:30px;animation:wbob 3.2s ease-in-out infinite}.wc:nth-child(2) .wic{animation-delay:-.8s}.wc:nth-child(3) .wic{animation-delay:-1.6s}.wc:nth-child(4) .wic{animation-delay:-2.4s}
@keyframes wbob{50%{transform:translateY(-6px) rotate(6deg)}}
.wcount{margin-top:26px;font:italic 500 clamp(20px,2.6vw,30px)/1.3 var(--disp);color:var(--gold)}
.wpg{display:grid;gap:18px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));margin-top:26px}
.wrate{padding:34px 28px;border-radius:22px;border:1px solid var(--line);background:var(--card);text-align:center}
.wrate.hot{background:linear-gradient(160deg,var(--red),var(--red-d));border-color:var(--gold);animation:wfloat2 5s ease-in-out infinite}
@keyframes wfloat2{50%{transform:translateY(-8px)}}
.wtag{display:inline-block;padding:6px 14px;border-radius:99px;background:var(--gold);color:#2A0F18;font:800 11px/1 var(--ui);letter-spacing:.16em;text-transform:uppercase}
.wrate b{display:block;font:700 clamp(52px,8vw,84px)/1.1 var(--disp);margin:14px 0 4px}.wrate small{color:var(--mute);font-size:14px}.wrate.hot small{color:var(--cream)}
/* tickets / forms */
.wtk{display:grid;gap:28px;margin-top:26px}@media(min-width:980px){.wtk{grid-template-columns:1fr .9fr;align-items:start}.wbuy{position:sticky;top:84px}}
.wtiers{display:grid;gap:16px}
.tier-card{padding:24px;border:1px solid var(--line);border-radius:20px;background:var(--card)}.tier-card.off{opacity:.6}
.tier-card h3{font-size:28px}.tier-price{font:700 clamp(44px,6vw,64px)/1.1 var(--disp);margin:6px 0}.tier-price small{display:block;font:700 11px/1 var(--ui);letter-spacing:.18em;text-transform:uppercase;color:var(--mute)}
.tier-desc{color:var(--mute);margin:6px 0 10px}.perks{list-style:none;padding:0;margin:0 0 12px}.perks li{padding:5px 0 5px 24px;position:relative;font-size:15px}.perks li::before{content:"✦";position:absolute;left:0;color:var(--gold)}
.tier-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:14px;border-top:1px solid var(--line)}
.tag-left{font:700 13px/1 var(--ui);color:var(--gold)}.wchip{padding:7px 14px;border-radius:99px;border:1px solid var(--line);font:700 12px/1 var(--ui)}
.qty{display:flex;align-items:center;gap:6px;margin-left:auto}.qty button{width:46px;height:46px;border-radius:50%;border:1px solid var(--gold);background:transparent;color:var(--gold);font:400 24px/1 var(--disp);cursor:pointer}.qty button:hover{background:var(--gold);color:#2A0F18}
.qty output{min-width:40px;text-align:center;font:700 28px/1 var(--disp)}
.wbuy,.wnotify,.pm{padding:26px;border:1px solid var(--line);border-radius:20px;background:rgba(23,48,31,.82)}
.wnotify{max-width:640px}.wbuy h3{font-size:28px;margin-bottom:10px}
.sum-empty{color:var(--mute);font-style:italic}.sum-line{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid var(--line)}
.sum-total{display:flex;justify-content:space-between;align-items:baseline;padding:14px 0 18px;font:800 12px/1 var(--ui);letter-spacing:.2em;text-transform:uppercase}.sum-total span:last-child{font:700 34px/1 var(--disp);letter-spacing:0}
.fld{display:grid;gap:6px;margin-bottom:14px}.fld label{font:800 11px/1.2 var(--ui);letter-spacing:.14em;text-transform:uppercase;color:var(--mute)}
.pg-wreath input:not([type=checkbox]):not([type=hidden]),.pg-wreath select,.pg-wreath textarea{width:100%;min-height:50px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:rgba(255,246,230,.1);color:var(--cream);font:400 16px/1.3 var(--ui)}
.pg-wreath input:focus,.pg-wreath select:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(240,194,91,.25)}
.pg-wreath select option{color:#222}
.wl-hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.chk{display:flex;gap:12px;align-items:flex-start;padding:6px 0;font:400 14.5px/1.45 var(--ui);color:var(--mute);cursor:pointer}.chk input{flex:none;width:22px;height:22px;margin:0;min-height:0!important;padding:0!important;accent-color:var(--red)}
.wl-msg{min-height:20px;margin:12px 0 0;font:600 14px/1.4 var(--ui)}.wl-msg.err{color:#ff9aa6}.wl-msg.ok{color:#8fe3b0}
/* host, faq, close */
.worg .wcta,.wclose .wcta{margin:24px 0}.wclose{text-align:center;padding-bottom:160px}.wclose h2{margin-inline:auto}.wclose .wcta,.wshare{justify-content:center}
.wfl{display:grid;gap:10px;max-width:780px}details{border:1px solid var(--line);border-radius:14px;background:var(--card)}
summary{list-style:none;display:flex;justify-content:space-between;gap:14px;padding:18px 20px;cursor:pointer;font:700 17px/1.3 var(--ui)}summary::-webkit-details-marker{display:none}
summary i{flex:none;width:14px;height:14px;position:relative;margin-top:5px}summary i::before,summary i::after{content:"";position:absolute;left:0;top:6px;width:14px;height:2px;background:var(--gold);transition:transform .3s}summary i::after{transform:rotate(90deg)}details[open] summary i::after{transform:none}
details>div{padding:0 20px 18px;color:var(--mute)}
.wshare{display:flex;flex-wrap:wrap;gap:8px}.wshare a,.wshare button{display:inline-flex;align-items:center;min-height:42px;padding:0 16px;border:1px solid var(--line);border-radius:99px;background:transparent;color:var(--cream)!important;font:700 13px/1 var(--ui);text-decoration:none!important;cursor:pointer}.wshare [hidden]{display:none}
/* reveals: visible without JS; armed by html.w-js */
.w-js .rv{opacity:0;transform:translateY(26px);transition:opacity .8s cubic-bezier(.22,1,.36,1),transform .8s cubic-bezier(.22,1,.36,1)}
.w-js .rv.in{opacity:1;transform:none}
.w-js .tier-card.rv.in.off{opacity:.6}
/* footer, bar, modal */
.pg-wreath .pub-footer{position:relative;z-index:2;padding:30px var(--gut) calc(30px + var(--sab));border-top:1px solid var(--line);text-align:center;color:var(--mute);font:400 13.5px/1.6 var(--ui);background:rgba(16,36,26,.95)}
.pg-wreath .pub-footer a{color:var(--cream);margin:0 10px}
.has-cta-bar .pub-footer{padding-bottom:calc(96px + var(--sab))}@media(min-width:1024px){.has-cta-bar .pub-footer{padding-bottom:calc(30px + var(--sab))}}
.cta-bar{position:fixed;left:0;right:0;bottom:0;z-index:85;display:none;gap:12px;align-items:center;padding:10px 14px calc(10px + var(--sab));background:rgba(42,15,24,.96);border-top:1px solid var(--line);transform:translateY(110%);transition:transform .6s cubic-bezier(.22,1,.36,1)}
.cta-bar.show{transform:none}.cta-bar .wbtn{flex:1;min-height:50px;padding:0 12px;font-size:13px;animation:none}.cta-bar .cb-info{font:400 12px/1.3 var(--ui);color:var(--mute);max-width:40%}.cta-bar .cb-info b{display:block;font:800 11px/1.3 var(--ui);letter-spacing:.08em;text-transform:uppercase;color:var(--cream)}
@media(max-width:1023px){.cta-bar{display:flex}}
.pm-back{position:fixed;inset:0;z-index:350;background:rgba(16,8,12,.8);display:flex;align-items:flex-end;justify-content:center}@media(min-width:640px){.pm-back{align-items:center;padding:24px}}
.pm{position:relative;width:100%;max-width:560px;max-height:92dvh;overflow:auto;background:#1b3524}.pm h3{font-size:30px;margin:0 40px 8px 0}.pm>p.lead{color:var(--mute)}
.pm-x{position:absolute;right:12px;top:12px;width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:transparent;color:var(--cream);font-size:24px;cursor:pointer}
.toast-host{position:fixed;left:50%;bottom:calc(20px + var(--sab));transform:translateX(-50%);z-index:500;display:grid;gap:8px;width:min(92vw,420px)}.has-cta-bar .toast-host{bottom:calc(84px + var(--sab))}
.toast{padding:13px 16px;background:#fff;color:#2A0F18;border-radius:10px;font:600 14.5px/1.4 var(--ui)}.toast.err,.toast.error{background:#ffd9dd}.toast.ok,.toast.success{background:#d8f5e3}
@media(max-width:700px){.wf:nth-child(n+17){display:none}}
.wbg.paused .wf,.wbg.paused .wf u,.wbg.paused .wbg-glow::after{animation-play-state:paused}
/* reduced motion + print */
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.wring-in,.wbg-glow::after,.wrib-shift{animation:none!important}.wf,.wbg-glow,.wlights i,.wring,.wposter,.wstamp,.wd,.wic,.wtrack,.wbtn,.wrate.hot,.wdown i{animation:none!important}.w-js .rv{opacity:1;transform:none;transition:none}.wprog{display:none}.wf{display:none}}
@media print{.wbg,.whead,.wprog,.cta-bar,.wlights{display:none!important}body.pg-wreath{background:#fff;color:#000}}
