/* Elchips: colors taken from the letters of the logo. Layout in the spirit of olw.se:
   big rounded tiles, bold type, playful dividers. */
:root{
  --amber:#E9A63A;--amber-d:#C98A1E;--wine:#9B3347;--wine-d:#6B2133;--wine-dd:#3F1220;
  --rose:#D9707F;--mauve:#B5617A;--terra:#C65D4A;
  --cream:#FFF6EC;--blush:#FBE3DF;--sand:#FBEBD0;--lilac:#F3DCE3;
  --ink:#3A1822;--muted:#7C5C64;--line:#EED8D2;--surface:#fff;--ok:#1E7B46;--err:#B3261E;
  --r:26px;--font:"Arial Rounded MT Bold","Avenir Next Rounded","Nunito","SF Pro Rounded",ui-rounded,"Trebuchet MS",system-ui,-apple-system,"Segoe UI",sans-serif}
*{box-sizing:border-box}
html,body{margin:0}
body{font:500 1.0625rem/1.6 var(--font);background:var(--cream);color:var(--ink);-webkit-text-size-adjust:100%}
body.lock{overflow:hidden}
a{color:inherit}
img{max-width:100%}
h1,h2,h3{line-height:1.08;letter-spacing:-.02em;margin:0 0 .6rem;font-weight:900}
h1{font-size:clamp(2.1rem,5.4vw,3.6rem)}h2{font-size:clamp(1.55rem,3.6vw,2.3rem)}h3{font-size:1.2rem}
p{margin:0 0 1rem}
.wrap{max-width:1180px;margin:0 auto;padding:0 1.25rem}
.page{padding-top:2.2rem;padding-bottom:4.5rem}
.meta{color:var(--muted);font-size:.92rem}
.msg{min-height:1.4em;font-weight:700}.msg.ok{color:var(--ok)}.msg.err{color:var(--err)}
.carrier-box{background:#fff;border:2px dashed var(--amber);border-radius:18px;padding:.85rem 1.1rem;font-size:.95rem}
.linkbtn{background:none;border:0;padding:.4rem 0;font:inherit;font-weight:800;text-decoration:underline;cursor:pointer;color:inherit}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------- header (logo left, big nav, language switch, cart) ---------- */
.topbar{background:var(--wine-d);color:#F8DEDA;text-align:center;font-size:.86rem;padding:.5rem 1rem}
.topbar a{color:var(--amber)}
header.site{background:#fff;position:sticky;top:0;z-index:30;box-shadow:0 2px 0 var(--line)}
.bar{display:flex;align-items:center;gap:1.2rem;min-height:92px}
.mark{display:block;flex:none;line-height:0}
.mark img{height:72px;width:auto;display:block}
nav#nav{margin-left:auto}
nav ul{display:flex;gap:.3rem;list-style:none;margin:0;padding:0;align-items:center}
nav a,nav .navbtn{display:block;text-decoration:none;font:900 1.02rem var(--font);padding:.65rem 1rem;border-radius:99px;color:var(--ink);background:none;border:0;cursor:pointer}
nav a:hover,nav .navbtn:hover,nav li:focus-within>.navbtn{background:var(--blush);color:var(--wine)}
nav a.here{color:var(--wine);box-shadow:inset 0 -3px 0 var(--amber)}
.has-mega{position:relative}
.mega{display:none;position:absolute;top:100%;left:50%;translate:-50% 0;padding-top:.7rem;z-index:40}
.has-mega:hover .mega,.has-mega:focus-within .mega{display:block}
.mega-in{display:grid;grid-template-columns:repeat(2,170px);gap:.8rem;background:#fff;border-radius:var(--r);padding:1rem;box-shadow:0 18px 40px -12px rgba(63,18,32,.35)}
.mega a{padding:0;border-radius:20px;overflow:hidden;text-align:center;color:#fff}
.mega a:hover{color:#fff;background:none;transform:translateY(-3px)}
.mega .m-img{display:grid;place-items:center;height:104px}
.mega .m-img svg{height:92px;width:auto}
.mega b{display:block;padding:.45rem .3rem .6rem;font-size:.98rem}
.m1{background:var(--wine)}.m2{background:var(--terra)}.m3{background:var(--amber);color:var(--wine-dd)!important}
.lang{display:flex;background:var(--blush);border-radius:99px;padding:3px;gap:2px;flex:none}
.lang a{padding:.3rem .75rem;font-size:.85rem;border-radius:99px;color:var(--wine)}
.lang a[aria-current=true]{background:var(--wine);color:#fff;pointer-events:none}
.cartlink{background:var(--amber)!important;color:var(--wine-dd)!important;display:flex!important;align-items:center;gap:.45rem}
.cartlink:hover{background:var(--amber-d)!important}
.cartlink svg{width:20px;height:20px}
.count{background:var(--wine);color:#fff;border-radius:99px;min-width:1.5rem;text-align:center;padding:.05rem .45rem;font-size:.8rem}
.menu-btn{display:none;font:900 1rem var(--font);background:var(--wine);color:#fff;border:0;border-radius:99px;padding:.55rem 1.1rem;min-height:44px;margin-left:auto}
@media(max-width:900px){
  .menu-btn{display:block}.bar{gap:.7rem;min-height:72px}.mark img{height:50px}
  nav#nav{display:none;position:absolute;left:0;right:0;top:100%;margin:0;background:#fff;border-bottom:2px solid var(--line);padding:.8rem 1.25rem 1.2rem}
  nav#nav.open{display:block}nav ul{flex-direction:column;align-items:stretch;gap:.2rem}
  .has-mega .mega{display:block!important;position:static;translate:none;padding:0}
  .mega-in{display:flex;flex-direction:column;gap:0;box-shadow:none;border-radius:0;padding:0 0 0 1rem;background:none}
  .mega a,.mega a:hover{background:none;color:var(--ink)!important;text-align:left;border-radius:99px;padding:.5rem 1rem;transform:none}
  .mega .m-img{display:none}.mega b{padding:0;font-size:1rem}
  .lang{order:3}}

/* ---------- footer ---------- */
footer.site{background:var(--wine-dd);color:#F0D5D5;padding:0 0 1.6rem;margin-top:0;position:relative}
footer.site .edge{display:block;width:100%;height:46px;margin-top:-45px}
footer.site .inner{padding-top:2.2rem}
.foot{display:grid;grid-template-columns:1.4fr repeat(3,1fr);gap:2rem}
@media(max-width:900px){.foot{grid-template-columns:1fr 1fr}}@media(max-width:560px){.foot{grid-template-columns:1fr}}
footer.site h3{color:#fff;font-size:1rem;text-transform:uppercase;letter-spacing:.08em}
footer.site ul{list-style:none;margin:0;padding:0;display:grid;gap:.45rem}
footer.site a{text-decoration:none}footer.site a:hover{text-decoration:underline;color:var(--amber)}
footer.site .mark img{height:84px}
footer.site .carrier-note{font-size:.92rem;margin-top:1rem}
.legal{font-size:.8rem;opacity:.75;margin-top:1.2rem}

/* ---------- buttons + forms ---------- */
.btn{display:inline-block;font:900 1.05rem var(--font);background:var(--wine);color:#fff;border:0;border-radius:99px;padding:.85rem 1.8rem;min-height:50px;cursor:pointer;text-decoration:none;
  box-shadow:0 5px 0 var(--wine-dd);text-align:center;transition:transform .12s,box-shadow .12s}
.btn:hover{transform:translateY(2px);box-shadow:0 3px 0 var(--wine-dd);background:#8A2B3E}
.btn:disabled{opacity:.55;cursor:default;transform:none}
.btn.amber{background:var(--amber);color:var(--wine-dd);box-shadow:0 5px 0 var(--amber-d)}.btn.amber:hover{background:#F0B24E;box-shadow:0 3px 0 var(--amber-d)}
.btn.ghost{background:transparent;color:var(--wine);box-shadow:none;border:2px solid var(--wine)}
.btn.ghost:hover{background:var(--wine);color:#fff;transform:none}
.btn.small{padding:.45rem 1.1rem;min-height:40px;font-size:.95rem;box-shadow:0 3px 0 var(--wine-dd)}
.btn:focus-visible,.field:focus-visible,.chipbtn:focus-visible,a:focus-visible,.linkbtn:focus-visible,.navbtn:focus-visible{outline:3px solid var(--amber-d);outline-offset:3px}
.gbtn{background:#fff;color:var(--ink);border:2px solid var(--line);box-shadow:none;display:inline-flex;gap:.6rem;align-items:center}
.gbtn:hover{background:#fff;box-shadow:none}
.or{color:var(--muted);margin:1rem 0 .6rem}
label{display:block;font-weight:800;margin-bottom:.9rem}
.field{display:block;width:100%;margin-top:.3rem;font:500 1rem var(--font);padding:.7rem .95rem;min-height:48px;border:2px solid var(--line);border-radius:14px;background:#fff;color:var(--ink)}
.field:focus{border-color:var(--wine)}
textarea.field{min-height:100px}
select.field{appearance:auto}
.check{display:flex;gap:.6rem;align-items:flex-start;font-weight:600}.check input{margin-top:.35rem;width:20px;height:20px;flex:none;accent-color:var(--wine)}
.card{background:#fff;border-radius:var(--r);padding:1.5rem;margin-bottom:1.5rem;max-width:640px;box-shadow:0 8px 24px -14px rgba(107,33,51,.35)}
.two-f{display:grid;grid-template-columns:1fr 2fr;gap:1rem}
.banner{background:var(--sand);border-radius:16px;padding:.8rem 1rem;margin-bottom:1rem;font-weight:700}
.pill{display:inline-block;background:var(--amber);color:var(--wine-dd);font-weight:900;font-size:.85rem;padding:.35rem 1rem;border-radius:99px;margin-bottom:1rem;letter-spacing:.02em}

/* ---------- home ---------- */
.notice{background:var(--amber);color:var(--wine-dd);text-align:center;font-weight:900;padding:.7rem 1rem;font-size:1rem}
.notice a{text-decoration:underline}
.hero{padding:1.6rem 0 0}
.hero-box{position:relative;overflow:hidden;background:var(--wine);color:#fff;border-radius:40px;padding:3.2rem 3rem;display:grid;grid-template-columns:1.1fr .9fr;gap:1rem;align-items:center;min-height:430px}
.hero-box:before{content:"";position:absolute;right:-120px;top:-140px;width:520px;height:520px;border-radius:50%;background:var(--mauve);opacity:.55}
.hero-box:after{content:"";position:absolute;left:-90px;bottom:-170px;width:380px;height:380px;border-radius:50%;background:var(--wine-d);opacity:.7}
.hero-box>*{position:relative;z-index:1}
.hero h1{max-width:13ch;font-size:clamp(2.3rem,6vw,4.2rem)}
.hero h1 em{font-style:normal;color:var(--amber)}
.lead{font-size:1.2rem;max-width:46ch}
.hero .btns{display:flex;gap:.9rem;flex-wrap:wrap;margin-top:1.4rem}
.hero .btn.ghost{color:#fff;border-color:#fff}.hero .btn.ghost:hover{background:#fff;color:var(--wine)}
.hero .btn.amber{box-shadow:0 5px 0 var(--amber-d)}
.hero-bags{display:flex;align-items:flex-end;justify-content:center;height:360px}
.hero-bags svg,.hero-bags img{width:clamp(110px,16vw,170px);height:auto;max-height:340px;object-fit:contain;filter:drop-shadow(0 14px 18px rgba(0,0,0,.35));margin:0 -14px}
.hero-bags :nth-child(1){rotate:-10deg;translate:0 10px}.hero-bags :nth-child(2){scale:1.14;z-index:2;rotate:2deg}.hero-bags :nth-child(3){rotate:11deg;translate:0 14px}
@media(max-width:860px){.hero-box{grid-template-columns:1fr;padding:2.2rem 1.6rem;border-radius:30px}.hero-bags{height:250px}}

.block{padding:3.4rem 0}.block.alt{background:#fff}.block.tint{background:var(--blush)}
.block h2.c,.heart-div{text-align:center}
.heart-div{padding:2.2rem 1rem 0;font:900 clamp(1.3rem,3.2vw,1.9rem) var(--font);color:var(--wine)}
.heart-div svg{display:block;margin:0 auto .6rem;width:46px;height:42px}
.heart-div p{margin:0 auto;max-width:34ch}

.cats{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.4rem}
.cat{position:relative;display:flex;flex-direction:column;justify-content:flex-end;min-height:330px;border-radius:32px;padding:1.6rem;text-decoration:none;color:#fff;overflow:hidden;transition:transform .2s}
.cat:hover{transform:translateY(-6px) rotate(-.6deg)}
.cat img{max-height:210px}
.cat svg,.cat img{position:absolute;object-fit:contain;right:14px;top:16px;width:34%;max-width:130px;height:auto;rotate:9deg;filter:drop-shadow(0 12px 14px rgba(0,0,0,.28))}
.cat h3{font-size:1.9rem;margin-bottom:.3rem;position:relative}.cat p{position:relative;max-width:24ch;margin-bottom:.8rem;font-weight:700}
.cat span{position:relative;font-weight:900;display:inline-block;background:#fff;color:var(--wine);border-radius:99px;padding:.4rem 1rem;align-self:flex-start}
.cat.c1{background:var(--wine)}.cat.c2{background:var(--terra)}.cat.c3{background:var(--amber);color:var(--wine-dd)}.cat.c3 span{background:var(--wine);color:#fff}
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1.4rem;margin-bottom:1.6rem}
.step{background:#fff;border-radius:var(--r);padding:1.5rem;box-shadow:0 8px 24px -16px rgba(107,33,51,.5)}
.block.alt .step{background:var(--cream)}
.step b{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:var(--wine);color:#fff;font-size:1.25rem;margin-bottom:.7rem}
.step:nth-child(2) b{background:var(--terra)}.step:nth-child(3) b{background:var(--amber);color:var(--wine-dd)}

/* ---------- products ---------- */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:1.5rem;margin-bottom:1.6rem}
.pcard{background:#fff;border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column;box-shadow:0 8px 24px -16px rgba(107,33,51,.5);transition:transform .2s}
.pcard:hover{transform:translateY(-4px)}
.pic{display:block;background:var(--blush);padding:1.2rem;text-align:center}
.pcard:nth-child(4n+2) .pic{background:var(--sand)}.pcard:nth-child(4n+3) .pic{background:var(--lilac)}.pcard:nth-child(4n+4) .pic{background:#F8DCCF}
.pic svg,.pic img{width:58%;max-height:210px;object-fit:contain;height:auto}
.pic img{width:100%;height:210px;border-radius:14px}
.pinfo{padding:1.1rem 1.2rem 1.3rem;display:flex;flex-direction:column;gap:.3rem;flex:1}
.pinfo h3 a{text-decoration:none}.pinfo .btn{margin-top:auto}
.brand{font-size:.78rem;font-weight:900;text-transform:uppercase;letter-spacing:.09em;color:var(--terra)}
.price{font:900 1.35rem var(--font);margin:0;color:var(--wine)}.price small{font:500 .8rem var(--font);color:var(--muted)}.price.big{font-size:2.1rem}
.filters{display:flex;gap:.6rem;flex-wrap:wrap;margin-bottom:1.6rem}
.chipbtn{font:900 .95rem var(--font);text-decoration:none;border:2px solid var(--wine);border-radius:99px;padding:.45rem 1.15rem;background:transparent;color:var(--wine);cursor:pointer}
.chipbtn:hover{background:var(--blush)}.chipbtn.on{background:var(--wine);color:#fff}
.filters.sub{margin-top:-.6rem;align-items:center}.chipbtn.small{font-size:.85rem;padding:.25rem .8rem}
.crumbs{color:var(--muted)}.crumbs a{text-decoration:none}
.detail{display:grid;grid-template-columns:minmax(220px,440px) 1fr;gap:2.6rem;align-items:start}
@media(max-width:720px){.detail{grid-template-columns:1fr}}
.bigpic{position:relative;background:var(--blush);border-radius:36px;padding:2.2rem;text-align:center}
.wbadge{position:absolute;top:1.1rem;right:1.1rem;width:98px;height:98px;border-radius:50%;background:var(--amber);color:var(--wine-dd);display:grid;place-content:center;gap:0;text-align:center;rotate:8deg;box-shadow:0 8px 18px -6px rgba(63,18,32,.5);border:3px solid #fff}
.wbadge b{font:900 1.55rem/1 var(--font)}.wbadge small{font:800 .72rem/1.1 var(--font);text-transform:uppercase;letter-spacing:.04em}.bigpic svg{width:55%;height:auto}.bigpic img{width:100%;border-radius:20px}
.buy{display:flex;gap:1rem;align-items:flex-end;flex-wrap:wrap;margin-bottom:1.2rem}.buy .field{width:90px}
.stock{font-weight:800}.stock.ok{color:var(--ok)}
.desc{margin:1rem 0}

/* ---------- cart + checkout ---------- */
.cline{display:grid;grid-template-columns:1fr auto auto auto;gap:1rem;align-items:center;padding:1rem 0;border-bottom:2px solid var(--line)}
@media(max-width:600px){.cline{grid-template-columns:1fr auto}}
.cname{text-decoration:none;font-weight:800}
.qtyc{display:flex;align-items:center;gap:.6rem}.qb{width:38px;height:38px;border-radius:50%;border:2px solid var(--wine);background:#fff;color:var(--wine);font:900 1.1rem var(--font);cursor:pointer}
.qb:hover{background:var(--wine);color:#fff}
.lprice{font-weight:900}
.totals{max-width:480px;margin-top:1.5rem}.totals>div{display:flex;justify-content:space-between;gap:1rem;padding:.35rem 0}
.grand{border-top:3px solid var(--wine);margin-top:.4rem;padding-top:.6rem!important;font-size:1.2rem}
.shipc{margin:.6rem 0}
.checkout{display:grid;grid-template-columns:1.2fr 1fr;gap:1.5rem;align-items:start}
@media(max-width:860px){.checkout{grid-template-columns:1fr}}
.checkout .card{max-width:none}
.sl{display:flex;justify-content:space-between;gap:1rem;padding:.3rem 0}
.paynote{font-size:.9rem;color:var(--muted)}
#paypalButtons{margin:1rem 0 .5rem;min-height:50px}

/* ---------- account + orders ---------- */
.plan{color:var(--muted)}
.order .ohead{display:flex;flex-wrap:wrap;gap:.8rem;align-items:center;margin-bottom:.5rem}
.order ul{list-style:none;padding:0;margin:0 0 .8rem}.order li{display:flex;justify-content:space-between;gap:1rem;padding:.15rem 0}
.badge{border-radius:99px;padding:.15rem .8rem;font-size:.85rem;font-weight:900;background:var(--lilac);color:var(--wine-d)}
.badge.paid{background:var(--sand)}.badge.shipped{background:#CFE3F8}.badge.delivered{background:#CDEFD8}.badge.cancelled,.badge.refunded{background:#F6D3D0}
.timeline{display:flex;gap:.5rem;list-style:none;padding:0;margin:1.2rem 0;flex-wrap:wrap}
.timeline li{padding:.5rem 1.2rem;border-radius:99px;background:var(--lilac);font-weight:800;color:var(--muted)}
.timeline li.done{background:var(--wine);color:#fff}

/* ---------- legal + tables + admin ---------- */
.prose{max-width:780px}.prose h2{margin-top:2rem}
.prose ul{padding-left:1.2rem}
.tablewrap{overflow-x:auto;margin-bottom:1.5rem}
table.rates{border-collapse:collapse;width:100%;background:#fff;border-radius:16px;overflow:hidden}
table.rates th,table.rates td{padding:.6rem .8rem;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}
table.rates th{background:var(--blush)}
table.rates .field{min-height:38px;padding:.3rem .5rem;margin:0}
.tabs{display:flex;gap:.6rem;flex-wrap:wrap;align-items:center;margin-bottom:1rem}
.rowform{display:flex;gap:1rem;flex-wrap:wrap;align-items:flex-end}.rowform label{margin:0;flex:1 1 180px}
.admin .card{max-width:860px}

section.cgroup{max-width:900px}.clabel{display:block;font-weight:800;margin-bottom:.25rem}
.ctxt,.cimg{margin-bottom:1.1rem}.two-c{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}@media(max-width:700px){.two-c{grid-template-columns:1fr}}
.two-c label{margin:0;font-weight:500}.lg{display:inline-block;background:var(--blush);color:var(--wine);border-radius:99px;font-size:.75rem;font-weight:900;padding:0 .55rem;margin-right:.3rem}
.cprev{margin:.3rem 0;min-height:44px;display:flex;align-items:center}.cprev img{border-radius:8px;background:repeating-conic-gradient(#eee 0 25%,#fff 0 50%) 0 0/14px 14px}
details.pp{margin-top:1rem;border-top:2px solid var(--line);padding-top:.8rem}
details.pp summary{cursor:pointer;font-weight:900;color:var(--wine)}
pre.pp-out{white-space:pre-wrap;background:var(--cream);border-radius:12px;padding:.7rem .9rem;font:.9rem/1.5 ui-monospace,Menlo,Consolas,monospace;margin:.8rem 0}
pre.pp-out:empty{display:none}
ul.olog{list-style:none;padding:0;margin:.5rem 0 0;font-size:.9rem}ul.olog li{display:block;padding:.15rem 0}

/* ---------- mini cart (bottom right) ---------- */
.minicart{position:fixed;right:1rem;bottom:1rem;z-index:40;width:min(290px,calc(100vw - 2rem));background:#fff;border:2px solid var(--wine);border-radius:22px;padding:.9rem 1.1rem 1rem;box-shadow:0 16px 40px -12px rgba(63,18,32,.5)}
.minicart[hidden]{display:none}
.minicart.pop{animation:mcpop .35s ease}
@keyframes mcpop{40%{transform:scale(1.05)}}
.mc-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:.4rem}.mc-head span{margin-left:auto}.mc-head b{font-size:1.05rem;color:var(--wine)}.mc-head span{font-size:.85rem;color:var(--muted)}
.mc-row{display:flex;justify-content:space-between;gap:.8rem;padding:.12rem 0;font-size:.95rem}
.mc-total{border-top:2px solid var(--line);margin-top:.35rem;padding-top:.45rem;font-size:1.15rem}.mc-total b{color:var(--wine)}
.mc-hint{font-size:.8rem;color:var(--muted);margin:.35rem 0 0}
.mc-toggle{margin-left:.6rem;width:34px;height:34px;border-radius:50%;border:2px solid var(--wine);background:#fff;color:var(--wine);font-size:.8rem;cursor:pointer;flex:none;line-height:1}
.mc-toggle:hover{background:var(--wine);color:#fff}
.mc-mini{display:none}
.minicart.min{width:auto;padding:.4rem .45rem .4rem 1rem;border-radius:99px;cursor:pointer;display:flex;align-items:center;gap:.7rem}
.minicart.min .mc-body{display:none}
.minicart.min .mc-head{display:contents}.minicart.min .mc-head span{display:none}
.minicart.min .mc-mini{display:inline;font-weight:900;color:var(--wine);order:2;white-space:nowrap}
.minicart.min .mc-toggle{order:3;margin-left:0}.minicart.min .mc-head b{white-space:nowrap}
.minicart .btn{margin-top:.7rem}.mc-link{font-size:.85rem;font-weight:800;margin-left:.4rem}
@media(max-width:560px){.minicart{right:.5rem;left:.5rem;bottom:.5rem;width:auto}}
@media (prefers-reduced-motion:reduce){.minicart.pop{animation:none}}

/* ---------- splash ---------- */
.splash{position:fixed;inset:0;z-index:100;overflow:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.7rem;
  background:radial-gradient(ellipse at 50% 30%,#B5495D 0%,var(--wine) 38%,var(--wine-dd) 100%);color:#fff;text-align:center;padding:1.5rem}
.splash[hidden]{display:none}
.splash.leave{transform:translateY(-100%);transition:transform .9s cubic-bezier(.7,0,.2,1)}
.flag i{position:absolute;background:var(--amber);opacity:.12}
.flag i:first-child{left:0;right:0;top:56%;height:9vmin}.flag i:last-child{top:0;bottom:0;left:30%;width:9vmin}
.splash .logo{display:block;width:min(74vw,470px);height:auto;margin:0;animation:title .9s 2s cubic-bezier(.2,1.4,.4,1) both}
.splash .sub{font-weight:800;font-size:clamp(1rem,3.4vw,1.5rem);margin:0;color:#F8DEDA;animation:title .8s 2.25s both}
.stage{--w:clamp(62px,14.5vw,128px);position:relative;width:100%;max-width:900px;height:calc(var(--w)*1.75);margin-top:.5rem}
.bag{position:absolute;bottom:0;left:calc(50% + var(--dx)*var(--w)*.82);margin-left:calc(var(--w)/-2);width:var(--w);rotate:var(--rot);
  z-index:var(--z);animation:drop 1.5s both;animation-delay:calc(.3s + var(--i)*.17s)}
.bag svg,.bag img{display:block;width:100%;height:auto;filter:drop-shadow(0 10px 14px rgba(0,0,0,.35));animation:bob 3s ease-in-out infinite alternate;animation-delay:calc(var(--i)*-.45s)}
.go{font:900 1.1rem var(--font);background:var(--amber);color:var(--wine-dd);border:0;border-radius:99px;padding:.95rem 2.3rem;min-height:52px;cursor:pointer;box-shadow:0 6px 0 var(--amber-d);animation:title .7s 2.6s both}
.go:focus-visible{outline:4px solid #fff;outline-offset:4px}
.chip{position:absolute;width:22px;height:16px;border-radius:60% 40% 55% 45%/50% 55% 45% 50%;background:radial-gradient(ellipse at 30% 30%,#FFE2A8,#E9A63A 70%);box-shadow:inset -2px -2px 0 rgba(0,0,0,.14)}
.chip.b{left:50%;bottom:30%;animation:burst var(--d) cubic-bezier(.2,.7,.4,1) var(--delay) both}
.rain{position:absolute;inset:0;pointer-events:none}
.chip.r{top:0;left:var(--x);scale:var(--s);opacity:.55;animation:fall var(--d) linear var(--delay) infinite}
@keyframes drop{
  0%{translate:0 -115vh;rotate:calc(var(--rot) - 60deg);animation-timing-function:cubic-bezier(.55,0,1,.45)}
  52%{translate:0 0;rotate:var(--rot);animation-timing-function:cubic-bezier(.2,.7,.4,1)}
  68%{translate:0 -11%;animation-timing-function:cubic-bezier(.55,0,1,.45)}
  82%{translate:0 0;animation-timing-function:cubic-bezier(.2,.7,.4,1)}
  91%{translate:0 -3.5%;animation-timing-function:cubic-bezier(.55,0,1,.45)}
  100%{translate:0 0;rotate:var(--rot)}}
@keyframes bob{to{transform:translateY(-7px) rotate(1.5deg)}}
@keyframes title{from{opacity:0;transform:scale(.6) translateY(20px)}to{opacity:1;transform:none}}
@keyframes burst{0%{translate:0 0;scale:.3;opacity:1;rotate:0deg}45%{translate:calc(var(--dx)*.7) var(--dy);scale:1;opacity:1}100%{translate:var(--dx) 45vh;scale:.9;opacity:0;rotate:var(--rot)}}
@keyframes fall{from{translate:0 -10vh;rotate:0deg}to{translate:var(--drift) 112vh;rotate:540deg}}
@media (prefers-reduced-motion:reduce){
  .bag,.bag svg,.splash .logo,.splash .sub,.go,.chip{animation:none!important}
  .rain,.chip.b{display:none}.splash.leave{transition:none}
  .btn:hover,.cat:hover,.pcard:hover{transform:none}
}
