/* ===== Side buttons + spit-out items (all versions). Decoy Light. ===== */
:root{--side-ink:#1d1d1d;--side-glass:rgba(255,255,255,.16);--side-rim:rgba(255,255,255,.5);--side-shadow:0 6px 24px rgba(0,0,0,.12);
  --tile-bg:rgba(238,238,238,.9);--tile-ink:#5a5a5a;--paper:#f3f1ec}
html[data-theme="dark"]{--side-ink:#dcdcde;--side-glass:rgba(255,255,255,.06);--side-rim:rgba(255,255,255,.22);--side-shadow:0 6px 24px rgba(0,0,0,.4);
  --tile-bg:rgba(66,66,70,.9);--tile-ink:#c4c4c8;--paper:#e9e7e2}
.sides{position:fixed;inset:0;pointer-events:none;z-index:60}
.side-btn{position:absolute;pointer-events:auto;top:46%;display:flex;align-items:center;gap:.7em;touch-action:manipulation;-webkit-tap-highlight-color:transparent;
  font-family:"decoy","Fraunces",Georgia,serif;font-weight:300;font-style:normal;font-size:15px;letter-spacing:.06em;line-height:1;color:var(--side-ink);
  padding:18px 11px;border-radius:999px;border:1px solid var(--side-rim);background:var(--side-glass);
  -webkit-backdrop-filter:blur(10px) saturate(1.2);backdrop-filter:blur(10px) saturate(1.2);box-shadow:var(--side-shadow),inset 0 1px 0 rgba(255,255,255,.35);
  cursor:pointer;writing-mode:vertical-rl;white-space:nowrap;user-select:none;-webkit-user-select:none;transition:transform .35s cubic-bezier(.2,.8,.2,1),background .3s,box-shadow .3s,color .3s}
.side-btn .arr{display:none}
/* --- A: glass tabs (the live default) --- */
.side-btn.left{left:14px;transform:translateY(-50%) rotate(180deg)}
.side-btn.right{right:14px;transform:translateY(-50%)}
.sides[data-style="a"] .side-btn.left:hover{transform:translateY(-50%) rotate(180deg) translateY(-4px)}
.sides[data-style="a"] .side-btn.right:hover{transform:translateY(-50%) translateX(-4px)}
.sides[data-style="a"] .side-btn:hover{background:rgba(255,255,255,.3)}
html[data-theme="dark"] .sides[data-style="a"] .side-btn:hover{background:rgba(255,255,255,.12)}
.side-btn:focus-visible{outline:2px solid var(--side-ink);outline-offset:3px}
.side-btn .dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:currentColor;opacity:.65;transition:transform .4s cubic-bezier(.2,.8,.2,1),opacity .3s}
.side-btn:active .dot{transform:scale(1.7);opacity:1}

/* --- B: edge tabs, flush to the screen edge, rotated text, solid ink --- */
.sides[data-style="b"] .side-btn{padding:22px 12px 22px 10px;border:0;background:#1b1b1c;color:#ecebe8;box-shadow:0 8px 26px rgba(0,0,0,.22);
  -webkit-backdrop-filter:none;backdrop-filter:none;font-size:14px;letter-spacing:.12em;gap:.9em}
.sides[data-style="b"] .side-btn.left{left:0;border-radius:14px 0 0 14px}   /* rotated 180°, so this rounds the inner side */
.sides[data-style="b"] .side-btn.right{right:0;border-radius:14px 0 0 14px}
.sides[data-style="b"] .side-btn.left:hover{transform:translateY(-50%) rotate(180deg) translateX(-6px)}
.sides[data-style="b"] .side-btn.right:hover{transform:translateY(-50%) translateX(-6px)}
.sides[data-style="b"] .side-btn .dot{width:5px;height:5px;background:#ecebe8}
html[data-theme="dark"] .sides[data-style="b"] .side-btn{background:#e8e7e3;color:#121213}
html[data-theme="dark"] .sides[data-style="b"] .side-btn .dot{background:#121213}

/* --- C: minimal Decoy text links, arrow + underline that draws in on hover --- */
.sides[data-style="c"] .side-btn{writing-mode:horizontal-tb;padding:6px 2px;border:0;border-radius:0;background:none;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;
  font-size:19px;letter-spacing:.02em;gap:.4em;top:50%}
.sides[data-style="c"] .side-btn .dot{display:none}
.sides[data-style="c"] .side-btn .arr{display:inline-block;font-size:.8em;transition:transform .35s cubic-bezier(.2,.8,.2,1)}
.sides[data-style="c"] .side-btn .txt{background:linear-gradient(currentColor,currentColor) 0 100%/0% 1px no-repeat;padding-bottom:3px;transition:background-size .45s cubic-bezier(.2,.8,.2,1)}
.sides[data-style="c"] .side-btn:hover .txt,.sides[data-style="c"] .side-btn:focus-visible .txt{background-size:100% 1px}
.sides[data-style="c"] .side-btn:hover .arr{transform:translate(3px,-3px)}
.sides[data-style="c"] .side-btn.left{left:28px;transform:translateY(-50%)}
.sides[data-style="c"] .side-btn.right{right:28px;transform:translateY(-50%)}

/* --- D: round floating glass bubbles that gently wobble --- */
.sides[data-style="d"] .side-btn{writing-mode:horizontal-tb;width:118px;height:118px;padding:14px;justify-content:center;text-align:center;white-space:normal;
  flex-direction:column;gap:.45em;font-size:13.5px;line-height:1.15;letter-spacing:.03em;border-radius:50%;
  background:radial-gradient(circle at 32% 28%,rgba(255,255,255,.55),rgba(255,255,255,.12) 45%,rgba(255,255,255,.06) 70%);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.55),inset -6px -10px 18px rgba(0,0,0,.08),0 14px 30px rgba(0,0,0,.14);border:0;animation:blob 7s ease-in-out infinite}
.sides[data-style="d"] .side-btn.right{animation-delay:-3.5s}
.sides[data-style="d"] .side-btn.left{left:26px;transform:translateY(-50%)}
.sides[data-style="d"] .side-btn.right{right:26px;transform:translateY(-50%)}
.sides[data-style="d"] .side-btn:hover{transform:translateY(-50%) scale(1.07)}
.sides[data-style="d"] .side-btn .dot{width:6px;height:6px;order:-1}
@keyframes blob{0%,100%{border-radius:50% 50% 50% 50%/50% 50% 50% 50%;translate:0 0}33%{border-radius:56% 44% 52% 48%/47% 55% 45% 53%;translate:0 -6px}66%{border-radius:45% 55% 47% 53%/55% 46% 54% 45%;translate:0 4px}}
html[data-theme="dark"] .sides[data-style="d"] .side-btn{background:radial-gradient(circle at 32% 28%,rgba(255,255,255,.22),rgba(255,255,255,.05) 50%,rgba(255,255,255,.02) 75%);box-shadow:inset 0 0 0 1px rgba(255,255,255,.25),0 14px 30px rgba(0,0,0,.4)}

/* --- E: paper stickers (Zurech's pick, the default since Oct 25). Refined 8:22 PM: no dot, ~82% size.
   S1–S6 are sticker variations (/buttons/, ?buttons=s1…s6); S1 is E. --- */
.sides:is([data-style="e"],[data-style^="s"]) .side-btn{writing-mode:horizontal-tb;padding:10px 15px 11px;border:0;border-radius:5px;background:var(--stk-bg,var(--paper));color:var(--stk-ink,#1d1d1d);
  -webkit-backdrop-filter:none;backdrop-filter:none;font-size:13.75px;letter-spacing:.03em;gap:0;
  box-shadow:0 1px 0 rgba(255,255,255,.8) inset,0 2px 3px rgba(0,0,0,.18),0 9px 18px rgba(0,0,0,.15)}
.sides:is([data-style="e"],[data-style^="s"]) .side-btn .dot{display:none}
.sides:is([data-style="e"],[data-style="s1"],[data-style="s4"]) .side-btn::after{content:"";position:absolute;right:0;top:0;width:12px;height:12px;border-radius:0 5px 0 0;
  background:linear-gradient(225deg,rgba(0,0,0,0) 50%,rgba(0,0,0,.08) 50%,var(--stk-fold,#dcd9d2) 60%)}
.sides:is([data-style="e"],[data-style^="s"]) .side-btn.left{left:30px;transform:translateY(-50%) rotate(var(--rl,-6deg))}
.sides:is([data-style="e"],[data-style^="s"]) .side-btn.right{right:30px;transform:translateY(-50%) rotate(var(--rr,5deg))}
/* full page: the stickers sit low, just above the "zurech" wordmark (Zurech 8:39 PM) */
.sides:not(.in-panel):is([data-style="e"],[data-style^="s"]) .side-btn{top:auto;bottom:calc(var(--sides-bottom,22%) + 8px)}
.sides:not(.in-panel):is([data-style="e"],[data-style^="s"]) .side-btn.left{transform:rotate(var(--rl,-6deg))}
.sides:not(.in-panel):is([data-style="e"],[data-style^="s"]) .side-btn.right{transform:rotate(var(--rr,5deg))}
.sides:not(.in-panel):is([data-style="e"],[data-style^="s"]) .side-btn:hover{transform:rotate(0) translateY(-3px)}
.sides:is([data-style="e"],[data-style^="s"]) .side-btn:hover{transform:translateY(-50%) rotate(0) translateY(-3px);box-shadow:0 1px 0 rgba(255,255,255,.8) inset,0 2px 3px rgba(0,0,0,.14),0 14px 26px rgba(0,0,0,.2)}
/* S2: tape strip holding it on */
.sides[data-style="s2"]{--stk-bg:#fbfaf7;--rl:-3deg;--rr:3.5deg}
.sides[data-style="s2"] .side-btn{border-radius:2px;padding-top:11px}
.sides[data-style="s2"] .side-btn::before{content:"";position:absolute;left:50%;top:-8px;width:44px;height:15px;margin-left:-22px;transform:rotate(-4deg);
  background:linear-gradient(90deg,rgba(255,255,255,.18),rgba(255,255,255,.05) 40%,rgba(255,255,255,.2)),rgba(236,229,205,.62);
  box-shadow:0 1px 2px rgba(0,0,0,.08);-webkit-mask:linear-gradient(90deg,transparent 0 2px,#000 2px calc(100% - 2px),transparent 0);mask:linear-gradient(90deg,transparent 0 2px,#000 2px calc(100% - 2px),transparent 0)}
.sides[data-style="s2"] .side-btn.right::before{transform:rotate(5deg)}
/* S3: torn paper edge */
.sides[data-style="s3"]{--rl:-4deg;--rr:4deg}
.sides[data-style="s3"] .side-btn{background:transparent;box-shadow:none;border-radius:0;padding:11px 15px 12px;filter:drop-shadow(0 2px 2px rgba(0,0,0,.18)) drop-shadow(0 8px 12px rgba(0,0,0,.12))}
.sides[data-style="s3"] .side-btn:hover{box-shadow:none}
.sides[data-style="s3"] .side-btn::before{content:"";position:absolute;inset:0;z-index:-1;background:#f6f4ef;clip-path:polygon(0.0% 1.0px,3.8% 0.5px,7.7% 2.0px,11.5% 0.2px,15.4% 1.6px,19.2% 1.1px,23.1% 0.2px,26.9% 1.5px,30.8% 0.1px,34.6% 1.3px,38.5% 0.2px,42.3% 0.3px,46.2% 1.3px,50.0% 2.5px,53.8% 0.4px,57.7% 0.7px,61.5% 1.9px,65.4% 2.8px,69.2% 1.7px,73.1% 1.2px,76.9% 2.9px,80.8% 0.1px,84.6% 2.6px,88.5% 0.9px,92.3% 0.4px,96.2% 0.4px,100.0% 0.9px,100.0% calc(100% - 2.4px),96.2% calc(100% - 0.5px),92.3% calc(100% - 1.7px),88.5% calc(100% - 1.9px),84.6% calc(100% - 1.1px),80.8% calc(100% - 1.6px),76.9% calc(100% - 0.2px),73.1% calc(100% - 0.2px),69.2% calc(100% - 0.6px),65.4% calc(100% - 2.0px),61.5% calc(100% - 1.3px),57.7% calc(100% - 0.9px),53.8% calc(100% - 1.8px),50.0% calc(100% - 1.4px),46.2% calc(100% - 0.9px),42.3% calc(100% - 2.4px),38.5% calc(100% - 2.1px),34.6% calc(100% - 0.7px),30.8% calc(100% - 1.7px),26.9% calc(100% - 1.6px),23.1% calc(100% - 2.6px),19.2% calc(100% - 2.2px),15.4% calc(100% - 0.9px),11.5% calc(100% - 2.9px),7.7% calc(100% - 0.4px),3.8% calc(100% - 1.3px),0.0% calc(100% - 2.3px))}
/* S4: kraft paper */
.sides[data-style="s4"]{--stk-bg:#c8a679;--stk-ink:#2b2016;--stk-fold:#a8875c;--rl:-8deg;--rr:7deg}
.sides[data-style="s4"] .side-btn{background:radial-gradient(circle at 20% 30%,rgba(255,255,255,.08) 0 1px,transparent 2px) 0 0/9px 7px,radial-gradient(circle at 70% 60%,rgba(60,35,10,.10) 0 1px,transparent 2px) 0 0/11px 9px,linear-gradient(170deg,#cfae83,#c09d6f)}
/* S5: die-cut vinyl label, rounded, white edge, soft shadow */
.sides[data-style="s5"]{--rl:-4deg;--rr:3deg}
.sides[data-style="s5"] .side-btn{border-radius:999px;padding:9px 16px 10px;background:linear-gradient(180deg,#fff,#f1efea);
  box-shadow:0 0 0 3px #fff,0 0 0 4px rgba(0,0,0,.07),0 3px 6px rgba(0,0,0,.14),0 12px 24px rgba(0,0,0,.14)}
.sides[data-style="s5"] .side-btn:hover{box-shadow:0 0 0 3px #fff,0 0 0 4px rgba(0,0,0,.07),0 4px 8px rgba(0,0,0,.14),0 16px 30px rgba(0,0,0,.18)}
/* S6: peel-off corner that curls up on hover */
.sides[data-style="s6"]{--rl:-5deg;--rr:6deg}
.sides[data-style="s6"] .side-btn{border-radius:4px 4px 0 4px}

/* S7 (combined, Zurech's pick 8:43 PM; the default): S1's rounded cream paper + S2's tape strip on top + S6's corner that lifts on hover */
.sides[data-style="s7"]{--rl:-5deg;--rr:5deg}
.sides[data-style="s7"] .side-btn{border-radius:5px 5px 0 5px;padding-top:11px}
.sides[data-style="s7"] .side-btn::before{content:"";position:absolute;left:50%;top:-8px;width:44px;height:15px;margin-left:-22px;transform:rotate(-4deg);
  background:linear-gradient(90deg,rgba(255,255,255,.18),rgba(255,255,255,.05) 40%,rgba(255,255,255,.2)),rgba(236,229,205,.62);
  box-shadow:0 1px 2px rgba(0,0,0,.08);-webkit-mask:linear-gradient(90deg,transparent 0 2px,#000 2px calc(100% - 2px),transparent 0);mask:linear-gradient(90deg,transparent 0 2px,#000 2px calc(100% - 2px),transparent 0)}
.sides[data-style="s7"] .side-btn.right::before{transform:rotate(5deg)}

/* S6/S7 peel corner (8:49 PM): the corner is really cut away — behind the lifted flap is just the page */
@property --peel{syntax:'<length>';inherits:true;initial-value:13px}
.sides:is([data-style="s6"],[data-style="s7"]) .side-btn{--peel:12px;padding-right:18px;background:linear-gradient(315deg,transparent calc(var(--peel) * .7071),var(--stk-bg,var(--paper)) 0);
  box-shadow:none;filter:drop-shadow(0 2px 2px rgba(0,0,0,.16)) drop-shadow(0 8px 12px rgba(0,0,0,.13));transition:transform .35s cubic-bezier(.2,.8,.2,1),--peel .3s cubic-bezier(.2,.8,.2,1),filter .3s}
.sides:is([data-style="s6"],[data-style="s7"]) .side-btn:hover{--peel:19px;box-shadow:none}
.sides:is([data-style="s6"],[data-style="s7"]) .side-btn::after{content:"";position:absolute;right:0;bottom:0;width:var(--peel);height:var(--peel);
  background:linear-gradient(315deg,transparent 0 50%,#d6d3cc 50%,#ebe8e2 62%,#fdfcf9 100%);filter:drop-shadow(-1px -1px 1.5px rgba(0,0,0,.12))}

/* phones (full page): a small pair sitting just above the wordmark, bottom corners */
@media (max-width:700px),(max-height:520px){
  .sides:not(.in-panel) .side-btn{writing-mode:horizontal-tb;top:auto;bottom:var(--sides-bottom,22%);font-size:11.5px;letter-spacing:.04em;padding:8px 11px;gap:.5em}
  .sides:not(.in-panel) .side-btn.left{left:10px;transform:none}.sides:not(.in-panel) .side-btn.right{right:10px;transform:none}
  .sides:not(.in-panel) .side-btn.left:hover,.sides:not(.in-panel) .side-btn.right:hover{transform:translateY(-2px)}
  .sides:not(.in-panel) .side-btn .dot{width:5px;height:5px}
  .sides:not(.in-panel)[data-style="b"] .side-btn.left{left:0;border-radius:0 10px 10px 0}
  .sides:not(.in-panel)[data-style="b"] .side-btn.right{right:0;border-radius:10px 0 0 10px}
  .sides:not(.in-panel)[data-style="c"] .side-btn{font-size:14px;padding:6px 2px}
  .sides:not(.in-panel)[data-style="d"] .side-btn{width:78px;height:78px;padding:8px;font-size:10px;letter-spacing:.02em}
  .sides:not(.in-panel):is([data-style="e"],[data-style^="s"]) .side-btn{font-size:10.5px;padding:8px 11px 9px}
  .sides:not(.in-panel)[data-style="s5"] .side-btn{padding:8px 13px 9px}
  .sides:not(.in-panel):is([data-style="e"],[data-style^="s"]) .side-btn.left{transform:rotate(calc(var(--rl,-6deg) * .8))}
  .sides:not(.in-panel):is([data-style="e"],[data-style^="s"]) .side-btn.right{transform:rotate(calc(var(--rr,5deg) * .8))}
  .sides:not(.in-panel):is([data-style="e"],[data-style^="s"]) .side-btn:hover{transform:translateY(-2px)}
}

/* ===== spit-out items ===== */
.spit-layer{position:fixed;inset:0;pointer-events:none;z-index:70;overflow:hidden}
.spit{position:absolute;display:flex;align-items:center;justify-content:center;pointer-events:none;will-change:transform,opacity;
  border-radius:16px;background:var(--tile-bg);color:var(--tile-ink);overflow:hidden;
  box-shadow:0 12px 30px rgba(0,0,0,.18),inset 0 1px 0 rgba(255,255,255,.55);
  font-family:"decoy","Fraunces",Georgia,serif;font-weight:300;font-size:clamp(13px,1.05vw,17px);letter-spacing:.05em}
.spit-brands{width:clamp(104px,10.5vw,158px);aspect-ratio:3/2}
.spit-creations{width:clamp(92px,9vw,138px);aspect-ratio:4/5}
.spit img{width:100%;height:100%;object-fit:contain;padding:14%}
.spit-creations img{object-fit:cover;padding:0}
@media (max-width:700px){.spit-brands{width:112px}.spit-creations{width:96px}.spit{font-size:13px;border-radius:13px}}

/* "call or WhatsApp": no button — a small label that follows the cursor over the number words (desktop only) */
.call-hint{position:fixed;left:0;top:0;z-index:96;pointer-events:none;white-space:nowrap;
  font-family:"decoy","Fraunces",Georgia,serif;font-weight:300;font-style:normal;font-size:12px;letter-spacing:.08em;line-height:1;
  color:var(--side-ink);opacity:0;transition:opacity .18s ease;transform:translate3d(-999px,-999px,0);will-change:transform}
html[data-theme="dark"] .call-hint{color:rgba(255,255,255,.82)}
.call-hint.on{opacity:.82}
.number .cluster,.number .cluster text{cursor:default}
.number{-webkit-tap-highlight-color:transparent}
.number .cluster text{transition:translate .26s cubic-bezier(.3,.7,.3,1),fill .3s ease}
@media (prefers-reduced-motion:reduce){.number .cluster text{transition:fill .3s ease}}
html.call-hot,html.call-hot .stage,html.call-hot .stage *{cursor:pointer}
html.lens-on.call-hot,html.lens-on.call-hot *{cursor:none!important}
/* the Call / WhatsApp choice (desktop and phones) */
.call-choice{position:fixed;left:-999px;top:-999px;z-index:97;display:flex;align-items:stretch;padding:4px;border-radius:12px;
  background:rgba(246,244,239,.92);-webkit-backdrop-filter:blur(10px) saturate(1.2);backdrop-filter:blur(10px) saturate(1.2);
  box-shadow:0 1px 0 rgba(255,255,255,.8) inset,0 2px 4px rgba(0,0,0,.14),0 14px 30px rgba(0,0,0,.18);
  opacity:0;visibility:hidden;transform:scale(.92) translateY(-3px);transition:opacity .16s ease,transform .2s cubic-bezier(.2,.8,.2,1),visibility 0s .2s}
.call-choice.on{opacity:1;visibility:visible;transform:none;transition:opacity .16s ease,transform .22s cubic-bezier(.2,.8,.2,1),visibility 0s}
.cc-opt{display:inline-flex;align-items:center;gap:7px;padding:9px 13px;border-radius:9px;text-decoration:none;color:#1d1d1d;white-space:nowrap;
  font-family:"decoy","Fraunces",Georgia,serif;font-weight:300;font-style:normal;font-size:13.5px;letter-spacing:.04em;line-height:1;-webkit-tap-highlight-color:transparent;cursor:pointer;transition:background .15s}
.cc-opt:hover,.cc-opt:focus-visible{background:rgba(0,0,0,.06);outline:none}
.cc-opt:active{background:rgba(0,0,0,.1)}
/* icon centred on the word's capitals (Zurech, 9:04 PM "Align icon and text"): the word's box is trimmed to cap height..baseline,
   so align-items:center puts the icon on the middle of the capitals in every browser, whatever line metrics Decoy reports
   (Safari placed the words ~2px low against the line box). Browsers without text-box get the same result from sides.js (--cc-dy). */
.cc-opt span{display:block;text-box:trim-both cap alphabetic;text-box-trim:trim-both;text-box-edge:cap alphabetic}
.cc-opt svg{transform:translateY(var(--cc-dy,0px))}
.cc-opt svg{width:14px;height:14px;flex:none;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linejoin:round;opacity:.85}
.cc-opt svg .f{fill:currentColor;stroke:none}
.cc-sep{width:1px;margin:7px 1px;background:rgba(0,0,0,.12)}
@media (hover:none),(pointer:coarse){.cc-opt{padding:11px 14px;font-size:14px}}
@media (prefers-reduced-motion:reduce){.side-btn,.call-hint,.call-choice{transition:none;animation:none!important}}

/* Paper icons on the S7 sticker (Oct 25 10:53 PM, style P3): folder on "creations", seal on "brands"; set by assets/sticker-icons.js */
.side-btn .ico,.side-btn .ico-bl{display:none}
.sides[data-style="s7"] .side-btn{gap:0}
.sides[data-style="s7"] .side-btn .ico{display:block;flex:none;margin-right:.55em;line-height:0;pointer-events:none}
.sides[data-style="s7"] .side-btn .ico-bl{display:inline-block;width:0;height:0;vertical-align:baseline}
.side-btn .ico-svg{display:block;overflow:visible;fill:#d9d6cf;stroke:#9a9a9a;stroke-width:1;vector-effect:non-scaling-stroke;stroke-linejoin:round;stroke-linecap:round}
.side-btn .ico-svg path{vector-effect:non-scaling-stroke}
.side-btn .ico-svg .lt{fill:#e3e0d9}
.side-btn .ico-svg .ln{fill:none}
.side-btn .ico-creations .ico-svg{height:.8em;width:calc(.8em * 23 / 17.3)}
.side-btn .ico-brands .ico-svg{height:1.06em;width:calc(1.06em * 18.8 / 25.4)}
