/* gush. — Play: games, rewards, dates, lists & events. Prefix pl-. Tokens from app.css only.
   Objects you hold (cards, dice, medals, envelopes) use the theme-constant photo tokens
   (--on-img ivory, --img-btn raspberry, --img-btn-ink oxblood) so they read as the same object in both themes. */

/* ───────────── shared bits ───────────── */
.pl-count{font:italic 300 17px/1 var(--serif);font-variation-settings:"opsz" 72,"SOFT" 100;color:var(--ink-2);white-space:nowrap}
.pl-hint{display:flex;align-items:flex-start;gap:7px;margin-top:10px;font-size:12.5px;line-height:1.45;color:var(--ink-3)}
.pl-hint svg.ic{width:14px;height:14px;flex:none;margin-top:1px}
.pl-center{justify-content:center;text-align:center}
.pl-quiet{color:var(--ink-2);font-size:14px}
.pl-quiet-tile{display:flex;align-items:center;gap:12px;padding:16px;color:var(--ink-2);font-size:14px}
.pl-quiet-tile svg.ic{width:18px;height:18px;color:var(--accent)}
.pl-stack-sm{display:flex;flex-direction:column;gap:12px}
.pl-meta-img{display:flex;align-items:center;flex-wrap:wrap;row-gap:6px;font:600 10px/1.3 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--on-img-2)}
.pl-meta-img svg.ic{width:14px;height:14px;margin-right:7px}
.pl-meta-img i{width:3px;height:3px;border-radius:50%;background:var(--on-img-3);margin:0 10px}
.pl-sw{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--c,var(--accent));margin-right:8px;flex:none;box-shadow:0 0 0 1px var(--line)}
.pl-cal{width:52px;height:58px;border-radius:14px;border:1px solid var(--line-2);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;flex:none;background:var(--chip)}
.pl-cal b{font:500 22px/1 var(--serif);font-variation-settings:"opsz" 72,"SOFT" 100}
.pl-cal span{font:600 9px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--accent)}
.pl-arrive,.pl-swap{animation:pl-up .7s var(--ease) both}
@keyframes pl-up{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.seg button[disabled]{opacity:.32;cursor:not-allowed}

/* medallion */
.pl-medal{--m:64px;position:relative;width:var(--m);height:var(--m);border-radius:50%;display:grid;place-items:center;flex:none;color:var(--ink-3);border:1px dashed var(--line-2);background:var(--chip)}
.pl-medal>svg.ic{width:calc(var(--m) * .38);height:calc(var(--m) * .38)}
.pl-medal.is-on{border:0;color:var(--img-btn-ink);background:radial-gradient(circle at 32% 24%,var(--on-img) 0%,color-mix(in srgb,var(--img-btn) 78%,var(--on-img)) 34%,var(--img-btn) 58%,color-mix(in srgb,var(--img-btn) 55%,var(--img-btn-ink)) 100%);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--on-img) 45%,transparent),0 12px 26px -12px var(--btn-glow)}
.pl-medal.is-on::before{content:"";position:absolute;inset:calc(var(--m) * .09);border-radius:50%;border:1px solid color-mix(in srgb,var(--img-btn-ink) 30%,transparent)}
.pl-medal.is-on::after{content:"";position:absolute;inset:0;border-radius:50%;background:linear-gradient(120deg,transparent 30%,color-mix(in srgb,var(--on-img) 45%,transparent) 48%,transparent 62%);background-size:260% 100%;animation:pl-sheen 7s var(--ease) infinite;pointer-events:none}
@keyframes pl-sheen{0%,55%{background-position:130% 0}100%{background-position:-60% 0}}
.pl-medal>i{position:absolute;right:-2px;bottom:-2px;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:var(--surface);border:1px solid var(--line-2);color:var(--ink-2)}
.pl-medal>i svg.ic{width:11px;height:11px}
.pl-medal.sm{--m:36px}.pl-medal.sm>i{display:none}
.pl-medal.xl{--m:116px}.pl-medal.xl>i{width:34px;height:34px}.pl-medal.xl>i svg.ic{width:15px;height:15px}

/* sticky bottom CTA on detail screens */
.pl-cta{position:sticky;bottom:0;z-index:20;margin-top:34px;padding:26px var(--gut) 22px;background:linear-gradient(180deg,rgba(var(--scrim),0) 0%,var(--bg) 38%)}
.pl-cta p{margin-top:10px;text-align:center;font-size:12.5px;color:var(--ink-3)}
.pl-cta .btn svg.ic:last-child{width:16px;height:16px}
.screen:has(.pl-cta){padding-bottom:0}

/* full-bleed hero */
.pl-hero{border-radius:0 0 30px 30px;min-height:470px;display:flex;flex-direction:column;justify-content:flex-end}
.pl-hero .ph img{object-position:50% 30%}
.pl-hero-in{padding:0 var(--gut) 28px}
.pl-hero-tags{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}
.pl-hero h1{font-size:44px;line-height:1;max-width:330px}
.pl-hero .pl-meta-img{margin-top:16px}
.pl-hero-p{margin-top:14px;color:var(--on-img-2);font-size:15px;line-height:1.5;max-width:330px}
.pl-hero-d,.pl-hero-e{min-height:500px}

/* ───────────── #/play hub ───────────── */
.pl-pts{display:inline-flex;align-items:center;gap:7px;height:40px;padding:0 14px 0 11px;border-radius:999px;border:1px solid var(--line);color:var(--ink);transition:border-color .5s var(--ease)}
.pl-pts:hover{border-color:var(--line-2)}
.pl-pts svg.ic{width:18px;height:18px;color:var(--accent)}
.pl-pts b{font:500 16px/1 var(--serif);font-variation-settings:"opsz" 30,"SOFT" 100}

.pl-feat{margin:22px var(--gut) 0;min-height:520px;display:flex;flex-direction:column;justify-content:space-between;box-shadow:inset 0 0 0 1px rgba(246,238,225,.08)}
.pl-feat .ph img{object-position:50% 26%}
.pl-feat .scrim{background:linear-gradient(180deg,rgba(20,10,16,.42) 0%,rgba(20,10,16,0) 22%,rgba(42,15,35,.08) 38%,rgba(42,15,35,.8) 62%,rgba(30,14,24,.97) 86%)}
.pl-feat-t{padding:20px 20px 0;display:flex;justify-content:space-between;align-items:center;gap:8px}
.pl-feat-b{padding:0 20px 20px}
.pl-feat-b h2{font-size:40px;line-height:1;margin:14px 0 0}
.pl-feat-p{margin:12px 0 16px;color:var(--on-img-2);font-size:14.5px;line-height:1.5}
.pl-lvls{display:flex;gap:16px;margin-bottom:20px;font-size:12.5px;color:var(--on-img-3)}
.pl-lvls span{display:inline-flex;align-items:center;gap:7px}
.pl-lvls span::before{content:"";width:6px;height:6px;border-radius:50%;border:1px solid currentColor}
.pl-lvls span.on{color:var(--on-img)}
.pl-lvls span.on::before{background:var(--img-btn);border-color:var(--img-btn)}

.pl-kts{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.pl-kt{display:flex;flex-direction:column;align-items:center;gap:3px;padding:14px 4px 12px;border-radius:18px;border:1px solid var(--line);background:var(--surface);color:var(--ink);text-align:center;transition:border-color .5s var(--ease),background-color .5s var(--ease),transform .5s var(--ease)}
.pl-kt:hover{border-color:var(--line-2)}
.pl-kt:active{transform:scale(.97)}
.pl-kt-ic{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--line-2);color:var(--accent);margin-bottom:6px;transition:background-color .5s var(--ease),color .5s var(--ease)}
.pl-kt-ic svg.ic{width:21px;height:21px}
.pl-kt b{font:500 15px/1.2 var(--serif);font-variation-settings:"opsz" 48,"SOFT" 100}
.pl-kt>span:last-child{font-size:11px;color:var(--ink-3)}
.pl-kt[aria-pressed="true"]{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 9%,var(--surface))}
.pl-kt[aria-pressed="true"] .pl-kt-ic{background:var(--accent);border-color:var(--accent);color:var(--btn-ink)}
:root[data-theme="light"] .pl-kt[aria-pressed="true"] .pl-kt-ic{color:var(--on-img)}
.chips.scroll.pl-chips{margin-top:14px}
.pl-lib{margin-top:18px}
.pl-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.pl-gsk{aspect-ratio:4/5;border-radius:var(--r)}
.pl-gcard{aspect-ratio:4/5;padding:12px;display:flex;flex-direction:column;justify-content:space-between}
.pl-gc-t{display:flex;justify-content:space-between}
.pl-gcard .meta{display:block;color:var(--on-img-2);font:600 9.5px/1.3 var(--sans);letter-spacing:.2em;text-transform:uppercase;margin-bottom:7px}
.pl-gcard .card-t{font-size:18px}
.pl-kchip{display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 10px 0 8px;border-radius:999px;background:var(--glass);border:1px solid var(--glass-line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:var(--on-img);font:600 9.5px/1 var(--sans);letter-spacing:.16em;text-transform:uppercase}
.pl-kchip svg.ic{width:13px;height:13px}
.pl-sub-h{font:500 21px/1.2 var(--serif);font-variation-settings:"opsz" 72,"SOFT" 100;margin:4px 0 12px;text-transform:lowercase}
.pl-sub-h em{font-style:italic;font-weight:300;color:var(--em)}
.pl-sub-h~.pl-sub-h{margin-top:30px}
.pl-sub-p{margin:-6px 0 14px;font-size:13.5px;color:var(--ink-2)}

.pl-rstrip{display:flex;align-items:center;gap:14px;padding:14px 16px}
.pl-ring{position:relative;width:52px;height:52px;flex:none;display:grid;place-items:center}
.pl-ring svg{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg)}
.pl-ring circle{fill:none;stroke-width:2.5;stroke:var(--line-2)}
.pl-ring circle+circle{stroke:var(--accent);stroke-dasharray:100;stroke-linecap:round;transition:stroke-dashoffset 1.2s var(--ease)}
.pl-ring b{font:500 18px/1 var(--serif);font-variation-settings:"opsz" 30,"SOFT" 100}
.pl-rs-tx{flex:1;min-width:0}
.pl-rs-tx .eyebrow{display:block;margin-bottom:5px}
.pl-rs-tx b{display:block;font:500 19px/1.2 var(--serif);font-variation-settings:"opsz" 48,"SOFT" 100}
.pl-rs-tx>span:last-child{display:block;font-size:12.5px;color:var(--ink-2);margin-top:2px}
.pl-rs-b{display:flex;flex-direction:column;align-items:center;gap:5px;width:66px;text-align:center;font-size:10.5px;line-height:1.2;color:var(--ink-2)}
.pl-rstrip>svg.ic:last-child{width:16px;height:16px;color:var(--ink-3)}

.pl-gen{display:flex;align-items:stretch;min-height:226px;padding:22px 20px;background:radial-gradient(80% 110% at 100% 0%,color-mix(in srgb,var(--img-btn) 34%,transparent),transparent 62%),radial-gradient(70% 90% at 0% 100%,color-mix(in srgb,var(--img-btn) 12%,transparent),transparent 70%),var(--img-btn-ink);box-shadow:inset 0 0 0 1px rgba(246,238,225,.08)}
.pl-gen-tx{position:relative;z-index:3;display:flex;flex-direction:column;justify-content:space-between;align-items:flex-start;max-width:58%}
.pl-gen-tx .eyebrow{color:var(--on-img-3)}
.pl-gen h3{font-size:26px;line-height:1.06;margin:10px 0 18px}
.pl-gen .btn-sm{background:var(--img-btn);color:var(--img-btn-ink)}
.pl-fan{position:absolute;right:16px;top:50%;width:150px;height:150px;transform:translateY(-50%)}
.pl-fan span{position:absolute;top:10px;left:34px;width:84px;height:116px;border-radius:12px;overflow:hidden;box-shadow:0 0 0 1.5px rgba(246,238,225,.22),0 16px 30px -12px rgba(0,0,0,.7);transform-origin:50% 120%;transition:transform 1s var(--ease)}
.pl-fan span:nth-child(1){transform:rotate(-14deg) translateX(-18px)}
.pl-fan span:nth-child(2){transform:rotate(-2deg)}
.pl-fan span:nth-child(3){transform:rotate(11deg) translateX(18px)}
.pl-fan img{width:100%;height:100%;object-fit:cover}
.pl-gen:hover .pl-fan span:nth-child(1){transform:rotate(-20deg) translateX(-26px)}
.pl-gen:hover .pl-fan span:nth-child(3){transform:rotate(17deg) translateX(26px)}

.pl-occ{display:flex;align-items:center;gap:14px;padding:14px 16px}
.pl-occ-tx{flex:1;min-width:0}
.pl-occ-tx b{display:block;font:500 18px/1.2 var(--serif);font-variation-settings:"opsz" 48,"SOFT" 100;margin-top:5px}
.pl-occ-tx>span:last-child{display:block;font-size:12.5px;color:var(--ink-2);margin-top:2px}
.pl-occ>svg.ic{width:16px;height:16px;color:var(--ink-3)}
.pl-evt-t{min-height:196px;padding:20px;display:flex;flex-direction:column;justify-content:flex-end}
.pl-evt-t .ph img{object-position:50% 40%}
.pl-evt-t h3{font-size:26px;line-height:1.06;margin:8px 0 8px;max-width:250px}
.pl-evt-t p{font-size:13px;color:var(--on-img-2)}
.pl-row-cta{display:flex;align-items:center;gap:14px;padding:14px 16px}
.pl-row-cta>svg.ic:first-child{color:var(--accent)}
.pl-row-cta>span{flex:1}
.pl-row-cta b{display:block;font:500 17px/1.2 var(--serif);font-variation-settings:"opsz" 48,"SOFT" 100}
.pl-row-cta span span{display:block;font-size:12.5px;color:var(--ink-2);margin-top:2px}
.pl-row-cta>svg.ic:last-child{width:16px;height:16px;color:var(--ink-3)}
.pl-sig{margin:56px 0 0;text-align:center;color:var(--ink-3);display:flex;flex-direction:column;align-items:center}
.pl-sig .monogram{width:34px;height:34px;font-size:18px;color:var(--ink-2)}
.pl-sig p{margin-top:12px;font:italic 300 18px/1.3 var(--serif);font-variation-settings:"opsz" 72,"SOFT" 100}

/* ───────────── #/game/<id> set-up ───────────── */
.pl-how{list-style:none;margin:0;padding:0;counter-reset:pl}
.pl-how li{counter-increment:pl;display:grid;grid-template-columns:34px 1fr;gap:12px;padding:14px 0;border-bottom:1px solid var(--line);font-size:15px;line-height:1.55}
.pl-how li:last-child{border-bottom:0}
.pl-how li::before{content:counter(pl,upper-roman);font:italic 300 20px/1.2 var(--serif);font-variation-settings:"opsz" 72,"SOFT" 100;color:var(--em)}
.pl-sets{display:flex;flex-direction:column;gap:28px}
.pl-sets.is-locked{opacity:.5;pointer-events:none}
.pl-set-h{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:12px}
.pl-set-v{font:italic 300 20px/1 var(--serif);color:var(--em)}
.pl-sets .opt-card{padding:14px 16px}
.pl-sets .opt-card .oc-tx b{font-size:18px}
.pl-seg-who .av{width:22px;height:22px;font-size:11px;box-shadow:none}
.pl-seg-who button{gap:7px}
.pl-seg-who svg.ic{width:15px;height:15px}
.pl-sets .list{padding:0 16px}
.pl-switch-row{cursor:pointer}
.pl-earn{display:flex;align-items:center;gap:16px;padding:16px 18px}
.pl-earn>span:not(.pl-medal){flex:1;min-width:0}
.pl-earn b{display:block;font:500 18px/1.25 var(--serif);font-variation-settings:"opsz" 48,"SOFT" 100;margin:6px 0 3px}
.pl-earn b em{font-style:italic;font-weight:300;color:var(--em)}
.pl-earn>span:not(.pl-medal)>span:last-child{font-size:12.5px;color:var(--ink-2)}

/* ───────────── #/game/<id>/play ───────────── */
.screen-game:has(.pl-play){display:flex;flex-direction:column;padding-bottom:0}
.pl-play{flex:1;position:relative;display:flex;flex-direction:column;padding:0 var(--gut) 26px;background:radial-gradient(110% 55% at 50% 42%,color-mix(in srgb,var(--accent) 11%,transparent),transparent 72%)}
.pl-top{display:flex;align-items:center;gap:12px;padding-top:58px}
.pl-top-c{flex:1;min-width:0;text-align:center}
.pl-top-c .eyebrow{display:block;font-size:9.5px}
.pl-top-c b{display:block;margin-top:5px;font:500 17px/1.2 var(--serif);font-variation-settings:"opsz" 30,"SOFT" 100;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pl-safe{display:inline-flex;align-items:center;gap:6px;height:40px;padding:0 14px 0 11px;border-radius:999px;border:1px solid var(--line-2);font:600 13px/1 var(--sans);color:var(--ink);flex:none;transition:border-color .5s var(--ease),background-color .5s var(--ease)}
.pl-safe:hover{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,transparent)}
.pl-safe svg.ic{width:16px;height:16px;color:var(--accent)}
.pl-prog{display:flex;align-items:center;gap:14px;margin-top:22px}
.pl-prog>span{font-size:12.5px;color:var(--ink-2);white-space:nowrap}
.pl-prog>span b{font:500 15px/1 var(--serif);color:var(--ink)}
.pl-prog>span span{color:var(--ink-3)}
.pl-turn{display:flex;align-items:center;gap:12px;margin-top:16px;padding:10px 12px 10px 10px;border-radius:20px;border:1px solid var(--line);background:var(--chip)}
.pl-turn-in{flex:1;min-width:0;display:flex;align-items:center;gap:12px}
.pl-turn .avs .av{width:34px;height:34px;font-size:16px;transition:opacity .6s var(--ease),transform .6s var(--ease),box-shadow .6s var(--ease)}
.pl-turn .avs .av:not(.is-on){opacity:.32;transform:scale(.86)}
.pl-turn .avs .av.is-on{box-shadow:0 0 0 2px var(--bg),0 0 0 3.5px var(--accent)}
.pl-turn .avs .av+.av{margin-left:-6px}
.pl-who-sam .av--s{z-index:2}
.pl-turn p{min-width:0}
.pl-turn p .eyebrow{display:block;font-size:9.5px;color:var(--accent)}
.pl-turn p b{display:block;margin-top:4px;font:500 17px/1.2 var(--serif);font-variation-settings:"opsz" 48,"SOFT" 100;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pl-timer{position:relative;width:42px;height:42px;flex:none;display:grid;place-items:center}
.pl-timer[hidden]{display:none}
.pl-timer svg{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg)}
.pl-timer circle{fill:none;stroke-width:2.4}
.pl-timer .tr{stroke:var(--line-2)}
.pl-timer .tf{stroke:var(--accent);stroke-dasharray:100;stroke-linecap:round;transition:stroke-dashoffset 1s linear}
.pl-timer b{font:600 11.5px/1 var(--sans);color:var(--ink);font-variant-numeric:tabular-nums}
.pl-timer.is-idle .tf{stroke:var(--line-2)}
.pl-timer.is-done{animation:pl-breathe 2.4s var(--ease) infinite}
@keyframes pl-breathe{0%,100%{opacity:1}50%{opacity:.45}}
.pl-stage{flex:1;display:flex;flex-direction:column;justify-content:center;padding:26px 0 22px;min-height:0}
.pl-k-challenge .pl-stage{justify-content:flex-start}
.pl-ctrl .btn-row .btn{padding:0 16px}
.pl-ctrl .pl-pass{flex:0 0 auto;min-width:112px}
.pl-ctrl .pl-pass svg.ic{width:17px;height:17px}
.pl-kind-note{margin-top:11px;text-align:center;font-size:12px;color:var(--ink-3)}
.pl-ch-note{display:flex;justify-content:center;align-items:center;gap:7px;margin-top:16px}
.pl-ch-note svg.ic{width:14px;height:14px}

/* the deck */
.pl-deck{position:relative;width:100%;max-width:312px;aspect-ratio:3/4.15;margin:0 auto;perspective:1700px}
.pl-edge{position:absolute;inset:0;border-radius:26px;background:var(--img-btn-ink);box-shadow:inset 0 0 0 1px rgba(246,238,225,.1);transform-origin:50% 100%}
.pl-edge.e1{transform:translateY(12px) scale(.95);opacity:.7}
.pl-edge.e2{transform:translateY(23px) scale(.9);opacity:.4}
.pl-card{position:absolute;inset:0;display:block;width:100%;cursor:pointer;transition:transform .62s var(--ease),opacity .62s var(--ease);-webkit-tap-highlight-color:transparent;border-radius:26px}
.pl-card:focus-visible{outline-offset:6px;border-radius:26px}
.pl-card-in{position:relative;display:block;width:100%;height:100%;transform-style:preserve-3d;transition:transform .95s var(--ease)}
.pl-card.is-flipped .pl-card-in{transform:rotateY(180deg)}
.pl-card:not(.is-flipped):hover .pl-card-in{transform:rotateY(-4deg) translateY(-3px)}
.pl-card.is-leaving{transform:translate3d(-122%,-12px,0) rotate(-13deg);opacity:0;pointer-events:none}
.pl-card.is-entering{transform:translateY(14px) scale(.95);opacity:0}
.pl-face{position:absolute;inset:0;border-radius:26px;overflow:hidden;-webkit-backface-visibility:hidden;backface-visibility:hidden;display:flex;flex-direction:column}
.pl-back{align-items:center;justify-content:center;color:var(--on-img);text-align:center;
  background:repeating-radial-gradient(circle at 50% 50%,transparent 0 9px,color-mix(in srgb,var(--on-img) 3.5%,transparent) 9px 10px),radial-gradient(90% 70% at 50% 0%,color-mix(in srgb,var(--img-btn) 32%,transparent),transparent 70%),var(--img-btn-ink);
  box-shadow:0 34px 60px -26px rgba(0,0,0,.7),inset 0 0 0 1px rgba(246,238,225,.12)}
.pl-back::after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 35%,rgba(246,238,225,.08) 48%,transparent 60%);background-size:260% 100%;animation:pl-sheen 8s var(--ease) infinite}
.pl-back-frame{position:absolute;inset:14px;border-radius:18px;border:1px solid rgba(246,238,225,.2)}
.pl-back-frame::after{content:"";position:absolute;inset:5px;border-radius:14px;border:1px solid rgba(246,238,225,.08)}
.pl-back-mono{position:relative;font:700 92px/1 var(--serif);font-variation-settings:"opsz" 144,"SOFT" 100,"WONK" 0;letter-spacing:-.04em}
.pl-back-mono i,.pl-mono-s i,.pl-hub i,.pl-wax i{font-style:normal;color:var(--img-btn)}
.pl-back-t{position:absolute;top:34px;left:0;right:0;font:600 9.5px/1 var(--sans);letter-spacing:.24em;text-transform:uppercase;color:var(--on-img-3)}
.pl-back-n{position:absolute;bottom:32px;left:0;right:0;font:italic 300 16px/1 var(--serif);color:var(--on-img-2)}
.pl-front{transform:rotateY(180deg);justify-content:space-between;padding:26px 24px 22px;color:var(--img-btn-ink);
  background:radial-gradient(120% 80% at 0% 0%,color-mix(in srgb,var(--img-btn) 7%,transparent),transparent 60%),var(--on-img);
  box-shadow:0 34px 60px -26px rgba(20,10,16,.6),inset 0 0 0 1px rgba(42,15,35,.08)}
.pl-front::before{content:"";position:absolute;inset:12px;border-radius:18px;border:1px solid rgba(42,15,35,.1);pointer-events:none}
.pl-front-h{display:flex;justify-content:space-between;align-items:center;gap:10px;font:600 9.5px/1.2 var(--sans);letter-spacing:.22em;text-transform:uppercase;color:color-mix(in srgb,var(--img-btn-ink) 62%,transparent);position:relative}
.pl-lv{padding:5px 9px;border-radius:999px;border:1px solid color-mix(in srgb,var(--img-btn-ink) 22%,transparent);letter-spacing:.16em}
.pl-q{position:relative;font:500 27px/1.16 var(--serif);font-variation-settings:"opsz" 72,"SOFT" 100,"WONK" 0;letter-spacing:-.012em;text-align:left;text-wrap:pretty}
.pl-q em{font-style:italic;font-weight:300;color:color-mix(in srgb,var(--img-btn) 78%,var(--img-btn-ink))}
.pl-front-f{position:relative;display:flex;justify-content:space-between;align-items:center;font:italic 300 14px/1 var(--serif);color:color-mix(in srgb,var(--img-btn-ink) 60%,transparent)}
.pl-mono-s{font:700 20px/1 var(--serif);font-style:normal;font-variation-settings:"opsz" 144,"SOFT" 100;color:var(--img-btn-ink);letter-spacing:-.04em}

/* dice */
.pl-dice{display:flex;justify-content:center;gap:36px;padding:22px 0 8px;perspective:900px}
.pl-die{position:relative;width:108px;height:108px}
.pl-cube{position:relative;width:100%;height:100%;transform-style:preserve-3d;transition:transform 1.5s cubic-bezier(.18,.72,.22,1)}
.pl-f{position:absolute;inset:0;border-radius:22px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;-webkit-backface-visibility:hidden;backface-visibility:hidden;
  background:radial-gradient(90% 90% at 30% 20%,var(--on-img),color-mix(in srgb,var(--on-img) 88%,var(--img-btn)) 100%);color:var(--img-btn-ink);
  box-shadow:inset 0 0 0 1px rgba(42,15,35,.1),inset 0 -10px 18px -10px rgba(42,15,35,.25);
  font:italic 300 21px/1 var(--serif);font-variation-settings:"opsz" 72,"SOFT" 100}
.pl-f small{font:600 8.5px/1 var(--sans);font-style:normal;letter-spacing:.24em;text-transform:uppercase;color:color-mix(in srgb,var(--img-btn-ink) 55%,transparent)}
.pl-f0{transform:translateZ(54px)}
.pl-f1{transform:rotateY(90deg) translateZ(54px)}
.pl-f2{transform:rotateY(180deg) translateZ(54px)}
.pl-f3{transform:rotateY(-90deg) translateZ(54px)}
.pl-f4{transform:rotateX(90deg) translateZ(54px)}
.pl-f5{transform:rotateX(-90deg) translateZ(54px)}
.pl-die-sh{position:absolute;left:12%;right:12%;bottom:-26px;height:14px;border-radius:50%;background:radial-gradient(closest-side,rgba(0,0,0,.45),transparent);transition:transform 1.5s var(--ease),opacity 1.5s var(--ease)}
:root[data-theme="light"] .pl-die-sh{background:radial-gradient(closest-side,rgba(42,15,35,.3),transparent)}
.pl-dice.is-rolling .pl-die{animation:pl-lift 1.5s var(--ease)}
.pl-dice.is-rolling .pl-die:nth-child(2){animation-delay:.08s}
.pl-dice.is-rolling .pl-die-sh{transform:scale(.6);opacity:.5}
@keyframes pl-lift{0%{transform:none}30%{transform:translateY(-26px)}100%{transform:none}}
.pl-dres{margin-top:40px;min-height:150px;text-align:center}
.pl-dres-h{font-size:36px}
.pl-scene{margin:18px auto 0;max-width:330px;padding:16px 18px;border-radius:18px;border:1px solid var(--line);background:var(--surface);text-align:left}
.pl-scene .eyebrow{color:var(--accent)}
.pl-scene p{margin-top:8px;font:400 18px/1.35 var(--serif);font-variation-settings:"opsz" 48,"SOFT" 100}
.pl-idle{max-width:300px;margin:0 auto;text-align:center;color:var(--ink-2);font-size:14.5px;line-height:1.5}

/* wheel */
.pl-wheel{position:relative;width:100%;max-width:296px;aspect-ratio:1;margin:0 auto}
.pl-wheel-rot{width:100%;height:100%;transition:transform 4.4s cubic-bezier(.12,.72,.14,1);will-change:transform}
.pl-wheel svg{width:100%;height:100%;display:block;filter:drop-shadow(0 26px 40px rgba(0,0,0,.35))}
.pl-wheel .rim{fill:var(--surface);stroke:var(--line-2)}
.pl-wheel .ticks line{stroke:var(--line-2);stroke-width:1}
.pl-wheel path{stroke:var(--bg);stroke-width:1.5;transition:fill .8s var(--ease)}
.pl-wheel path.s0{fill:var(--raised)}
.pl-wheel path.s1{fill:var(--raised-2)}
.pl-wheel path.is-hit{fill:color-mix(in srgb,var(--accent) 42%,var(--raised))}
.pl-wheel text{fill:var(--ink);font:italic 300 19px var(--serif);text-anchor:middle;dominant-baseline:middle}
.pl-wheel .edge{fill:none;stroke:var(--line)}
.pl-pointer{position:absolute;z-index:3;top:-8px;left:50%;width:24px;height:32px;margin-left:-12px;background:var(--accent);clip-path:polygon(50% 100%,6% 30%,50% 0,94% 30%);filter:drop-shadow(0 4px 8px rgba(0,0,0,.4))}
.pl-hub{position:absolute;z-index:2;left:50%;top:50%;width:66px;height:66px;margin:-33px 0 0 -33px;border-radius:50%;display:grid;place-items:center;background:var(--bg);border:1px solid var(--line-2);box-shadow:0 10px 24px -8px rgba(0,0,0,.5);font:700 27px/1 var(--serif);font-variation-settings:"opsz" 144,"SOFT" 100;letter-spacing:-.04em}
.pl-hub i{color:var(--accent)}
.pl-wout{margin-top:26px;min-height:112px}
.pl-wres{display:flex;gap:14px;padding:16px 18px;border-radius:20px;border:1px solid var(--line);background:var(--surface)}
.pl-wnum{width:40px;flex:none;font:italic 300 30px/1 var(--serif);color:var(--em)}
.pl-wres .eyebrow{color:var(--accent)}
.pl-wres p{margin-top:6px;font:400 18.5px/1.32 var(--serif);font-variation-settings:"opsz" 48,"SOFT" 100}
.pl-wres p em{font-style:italic;font-weight:300;color:var(--em)}

/* challenge days */
.pl-days{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.pl-day{display:flex;gap:14px;align-items:flex-start;padding:14px 16px;border-radius:18px;border:1px solid var(--line);transition:background-color .6s var(--ease),border-color .6s var(--ease),padding .6s var(--ease)}
.pl-day-n{width:32px;height:32px;border-radius:50%;flex:none;display:grid;place-items:center;border:1px solid var(--line-2);font:italic 300 13px/1 var(--serif);color:var(--ink-2);transition:background-color .5s var(--ease),border-color .5s var(--ease),color .5s var(--ease)}
.pl-day-n svg.ic{width:15px;height:15px}
.pl-day-b{flex:1;min-width:0;padding-top:2px}
.pl-day-b p{margin-top:6px;font-size:14px;line-height:1.45;color:var(--ink-2)}
.pl-day.is-done{opacity:.62}
.pl-day.is-done .pl-day-n{background:var(--accent);border-color:var(--accent);color:var(--btn-ink)}
:root[data-theme="light"] .pl-day.is-done .pl-day-n{color:var(--on-img)}
.pl-day.is-done .pl-day-b p{display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}
.pl-day.is-now{padding:22px 18px 24px;border:0;color:var(--on-img);background:radial-gradient(90% 90% at 100% 0%,color-mix(in srgb,var(--img-btn) 30%,transparent),transparent 65%),var(--img-btn-ink);box-shadow:0 26px 50px -26px rgba(0,0,0,.7),inset 0 0 0 1px rgba(246,238,225,.1)}
.pl-day.is-now .eyebrow{color:color-mix(in srgb,var(--img-btn) 60%,var(--on-img))}
.pl-day.is-now .pl-day-n{border-color:var(--img-btn);color:var(--on-img);box-shadow:0 0 18px -4px var(--btn-glow)}
.pl-day.is-now .pl-day-b p{margin-top:10px;font:500 23px/1.2 var(--serif);font-variation-settings:"opsz" 72,"SOFT" 100;color:var(--on-img);letter-spacing:-.01em}
.pl-day.is-now .pl-day-b p em{font-style:italic;font-weight:300;color:color-mix(in srgb,var(--img-btn) 45%,var(--on-img))}
.pl-day.is-now.is-ticking .pl-day-n{background:var(--img-btn);color:var(--img-btn-ink)}
.pl-day.is-sealed{border-style:dashed}
.pl-day.is-sealed .pl-day-n{color:var(--ink-3)}
.pl-redact{display:block;margin-top:9px}
.pl-redact i{display:block;height:7px;border-radius:4px;background:var(--line-2);filter:blur(1px)}
.pl-redact i+i{margin-top:7px}
.pl-lock-l{display:block;margin-top:9px;font-size:12px;color:var(--ink-3)}

/* paused veil */
.pl-paused{position:absolute;z-index:30;inset:0;display:grid;place-items:center;background:color-mix(in srgb,var(--bg) 80%,transparent);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);animation:in-fade .5s var(--ease) both}
.pl-paused[hidden]{display:none}
.pl-paused-in{display:flex;flex-direction:column;align-items:center;gap:12px;padding:30px;text-align:center}
.pl-paused-ic{width:68px;height:68px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--line-2);color:var(--accent);margin-bottom:6px;animation:pl-breathe 3.2s var(--ease) infinite}
.pl-paused h2{font-size:42px}
.pl-paused p{color:var(--ink-2);max-width:260px;margin-bottom:12px}
.pl-paused .btn-primary{min-width:200px}
.pl-checkins{border-top:1px solid var(--line)}
.pl-ci{display:flex;gap:14px;padding:13px 0;border-bottom:1px solid var(--line)}
.pl-ci span{width:28px;flex:none;font:italic 300 18px/1.3 var(--serif);color:var(--em)}
.pl-ci p{font:400 17px/1.35 var(--serif);font-variation-settings:"opsz" 48,"SOFT" 100}

/* ───────────── completion ───────────── */
.pl-done{position:relative;overflow:hidden;padding-bottom:30px}
.pl-done-hero{position:relative;text-align:center;padding:0 28px;display:flex;flex-direction:column;align-items:center}
.pl-done-hero h1{font-size:46px;margin-top:12px}
.pl-done-hero>p{margin-top:14px;color:var(--ink-2);max-width:300px;font-size:15px}
.pl-seal{position:relative;width:150px;height:150px;display:grid;place-items:center;margin:0 auto 22px}
.pl-seal::before,.pl-seal::after{content:"";position:absolute;inset:0;border-radius:50%;border:1px solid color-mix(in srgb,var(--accent) 55%,transparent);animation:pl-ripple 4.2s var(--ease) infinite}
.pl-seal::after{animation-delay:2.1s}
@keyframes pl-ripple{0%{transform:scale(.72);opacity:0}30%{opacity:1}100%{transform:scale(1.3);opacity:0}}
.pl-seal .pl-medal{animation:pl-seal-in 1.2s var(--ease) both}
@keyframes pl-seal-in{from{transform:scale(.6) rotate(-30deg);opacity:0}to{transform:none;opacity:1}}
.pl-petals{position:absolute;left:0;right:0;top:-80px;height:440px;pointer-events:none;overflow:hidden}
.pl-petals i{position:absolute;top:-12px;left:var(--x);width:var(--sz);height:calc(var(--sz) * 1.4);border-radius:50% 0 50% 0;background:var(--accent);opacity:0;animation:pl-fall 9s linear var(--dl) infinite}
.pl-petals i:nth-child(3n){background:var(--accent-soft)}
@keyframes pl-fall{0%{transform:translate3d(0,0,0) rotate(0);opacity:0}12%{opacity:.7}80%{opacity:.35}100%{transform:translate3d(30px,460px,0) rotate(220deg);opacity:0}}
.pl-done-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:32px}
.pl-stat{padding:16px}
.pl-stat b{display:block;margin:10px 0 4px;font:500 36px/1 var(--serif);font-variation-settings:"opsz" 144,"SOFT" 100;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.pl-stat b.pl-stat-t{font-size:21px;line-height:1.12;letter-spacing:-.01em}
.pl-stat>span:last-child{font-size:12.5px;color:var(--ink-2)}
.pl-fb{padding:20px}
.pl-fb h2{font-size:27px;margin:10px 0 16px}
.pl-fb .chip.serif-chip{height:44px;padding:0 18px;font-size:18px}

/* ───────────── #/rewards ───────────── */
.pl-lvl{display:grid;grid-template-columns:132px 1fr;align-items:center;gap:20px;padding:22px 20px 20px;border-radius:var(--r);border:1px solid var(--line);background:radial-gradient(80% 90% at 0% 0%,color-mix(in srgb,var(--accent) 10%,transparent),transparent 65%),var(--surface)}
.pl-lvl-ring{position:relative;width:132px;height:132px}
.pl-lvl-ring svg{width:100%;height:100%;transform:rotate(-90deg)}
.pl-lvl-ring circle{fill:none;stroke:var(--line-2);stroke-width:5}
.pl-lvl-ring circle.f{stroke:var(--accent);stroke-linecap:round;transition:stroke-dashoffset 1.6s var(--ease);filter:drop-shadow(0 0 6px var(--btn-glow))}
.pl-lvl-c{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px}
.pl-lvl-c .eyebrow{font-size:9px}
.pl-lvl-c b{font-size:23px}
.pl-lvl-tx b{display:block;font-size:44px}
.pl-lvl-tx .eyebrow{display:block;margin-top:6px}
.pl-lvl-tx p{margin-top:12px;font-size:14px;color:var(--ink-2);line-height:1.4}
.pl-lvl-tx p em{font:italic 300 16px/1 var(--serif);color:var(--em)}
.pl-ladder{grid-column:1/-1;list-style:none;margin:4px 0 0;padding:18px 0 0;border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(5,1fr);position:relative}
.pl-ladder::before{content:"";position:absolute;top:22px;left:10%;right:10%;height:1px;background:var(--line-2)}
.pl-ladder li{position:relative;display:flex;flex-direction:column;align-items:center;gap:9px;font-size:10.5px;color:var(--ink-3);text-align:center}
.pl-ladder i{width:9px;height:9px;border-radius:50%;background:var(--surface);border:1px solid var(--line-2)}
.pl-ladder li.done i{background:var(--ink-2);border-color:var(--ink-2)}
.pl-ladder li.now{color:var(--ink);font-weight:600}
.pl-ladder li.now i{background:var(--accent);border-color:var(--accent);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 22%,transparent)}
.pl-badges{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.pl-badge{display:flex;flex-direction:column;align-items:center;gap:7px;padding:18px 6px 14px;border-radius:18px;border:1px solid var(--line);background:var(--surface);text-align:center;transition:border-color .5s var(--ease),transform .5s var(--ease)}
.pl-badge:hover{border-color:var(--line-2)}
.pl-badge .pl-medal{--m:58px;margin-bottom:4px}
.pl-badge b{font:500 14.5px/1.2 var(--serif);font-variation-settings:"opsz" 48,"SOFT" 100;color:var(--ink-2)}
.pl-badge.is-on b{color:var(--ink)}
.pl-badge>span:last-child{font-size:10.5px;color:var(--ink-3);letter-spacing:.02em}
.pl-pts-v{font:italic 300 17px/1 var(--serif);color:var(--em);white-space:nowrap}
.pl-bsheet{display:flex;flex-direction:column;align-items:center;text-align:center;gap:12px;padding-top:6px}
.pl-bsheet .pl-medal{margin-bottom:8px}
.pl-bsheet h2.display{padding:0!important;margin:0!important}
.pl-bsheet p{max-width:300px;margin-bottom:8px}
.pl-bsheet .btn{align-self:stretch}

/* ───────────── #/dates ───────────── */
.pl-dfilters{margin-top:24px;display:flex;flex-direction:column;gap:12px}
.pl-fpill svg.ic:first-child{width:15px;height:15px;color:var(--accent)}
.pl-fpill[aria-pressed="true"] svg.ic:first-child{color:inherit}
.pl-fpill svg.ic:last-child{width:13px;height:13px;opacity:.6;margin-left:-2px}
.pl-clear{border-style:dashed}
.pl-shufwrap{margin-top:26px}
.pl-shuf{position:relative;max-width:350px;height:410px;margin:0 auto}
.pl-shuf .pl-edge{border-radius:24px}
.pl-scard{position:absolute;inset:0;border-radius:24px;display:flex;flex-direction:column;justify-content:space-between;transform:rotate(var(--rr,0deg));transition:transform .5s var(--ease),opacity .5s var(--ease),box-shadow .9s var(--ease);box-shadow:0 26px 50px -26px rgba(0,0,0,.6)}
.pl-scard.is-in{transform:translate3d(72%,-3%,0) rotate(15deg);opacity:0}
.pl-scard.is-under{transform:translateY(10px) scale(.95) rotate(var(--rr,0deg));opacity:.5}
.pl-scard.is-final,.pl-scard.is-landed{--rr:0deg;box-shadow:0 34px 70px -28px var(--btn-glow),0 0 0 1px rgba(232,105,123,.35)}
.pl-scard.is-final{transition:transform .75s var(--ease),opacity .6s var(--ease),box-shadow 1.2s var(--ease)}
.pl-sc-t{padding:16px 16px 0;display:flex;justify-content:space-between;gap:8px}
.pl-sc-b{padding:0 20px 22px}
.pl-sc-b h3{font-size:31px;line-height:1.04;margin-bottom:12px}
.pl-scard .ph img{object-position:50% 34%}
.pl-scard-cover{background:repeating-radial-gradient(circle at 50% 50%,transparent 0 9px,rgba(246,238,225,.03) 9px 10px),radial-gradient(90% 70% at 50% 0%,color-mix(in srgb,var(--img-btn) 30%,transparent),transparent 70%),var(--img-btn-ink)}
.pl-cover{position:relative;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:18px;padding:30px}
.pl-cover .pl-back-mono{font-size:60px}
.pl-cover p{font-size:29px;line-height:1.06;max-width:240px}

.pl-cover .eyebrow{color:var(--on-img-3)}
.pl-shuf-btns{margin-top:40px}
.pl-shuf-btns .btn-primary{flex:1.3}
.pl-dlist{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:0 16px}
.pl-dlist .row-item>svg.ic:last-child{color:var(--ink-3)}

/* ───────────── #/date/<id> ───────────── */
.pl-facts{display:grid;grid-template-columns:repeat(4,auto);justify-content:space-between;margin-top:24px}
.pl-facts>div{display:flex;flex-direction:column;gap:7px;padding:0 10px;border-left:1px solid var(--line)}
.pl-facts>div:first-child{border-left:0;padding-left:0}
.pl-facts>div:last-child{padding-right:0}
.pl-facts .lbl{font-size:9.5px}
.pl-facts b{display:flex;align-items:center;font:500 17px/1.15 var(--serif);font-variation-settings:"opsz" 48,"SOFT" 100;white-space:nowrap}
.pl-facts b small{font:500 11px/1 var(--sans);color:var(--ink-3);margin-left:5px;letter-spacing:.04em}
.pl-occline{display:flex;align-items:center;gap:8px;margin-top:18px;font-size:13.5px;color:var(--ink-2)}
.pl-occline svg.ic{width:15px;height:15px;color:var(--accent)}
.pl-planbox{display:flex;flex-direction:column;gap:12px}
.pl-planned{display:flex;align-items:center;gap:14px;padding:14px 12px 14px 14px}
.pl-planned>span:nth-child(2){flex:1;min-width:0}
.pl-planned b{display:block;margin:5px 0 2px;font:500 17px/1.25 var(--serif);font-variation-settings:"opsz" 48,"SOFT" 100}
.pl-planned>span:nth-child(2)>span:last-child{font-size:12.5px;color:var(--ink-2)}
.pl-planned .btn-text{color:var(--accent);font-weight:600;padding:6px}
.pl-surprise .row-item{padding:12px 0}
.pl-sealed .eyebrow{display:block;margin:6px 0 10px}
.pl-env{position:relative;overflow:hidden;padding:44px 24px 26px;border-radius:var(--r);text-align:center;color:var(--on-img);
  background:radial-gradient(90% 80% at 50% 0%,color-mix(in srgb,var(--img-btn) 26%,transparent),transparent 70%),var(--img-btn-ink);box-shadow:0 24px 50px -28px rgba(0,0,0,.7),inset 0 0 0 1px rgba(246,238,225,.1)}
.pl-env::before{content:"";position:absolute;left:0;right:0;top:0;height:92px;background:linear-gradient(to bottom left,transparent calc(50% - .6px),rgba(246,238,225,.18) 50%,transparent calc(50% + .6px)) right/50% 100% no-repeat,linear-gradient(to bottom right,transparent calc(50% - .6px),rgba(246,238,225,.18) 50%,transparent calc(50% + .6px)) left/50% 100% no-repeat}
.pl-wax{position:relative;z-index:1;width:56px;height:56px;margin:22px auto 0;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 34% 28%,color-mix(in srgb,var(--img-btn) 60%,var(--on-img)),var(--img-btn) 55%,color-mix(in srgb,var(--img-btn) 60%,var(--img-btn-ink)));color:var(--img-btn-ink);font:700 22px/1 var(--serif);font-variation-settings:"opsz" 144,"SOFT" 100;letter-spacing:-.04em;box-shadow:0 8px 18px -6px rgba(0,0,0,.6),inset 0 0 0 3px color-mix(in srgb,var(--img-btn-ink) 18%,transparent)}
.pl-wax i{color:var(--img-btn-ink)}
.pl-env p.display{margin-top:18px;font-size:27px}
.pl-env p.display em{color:color-mix(in srgb,var(--img-btn) 45%,var(--on-img))}
.pl-env>span:last-child{display:block;margin-top:10px;font-size:13.5px;color:var(--on-img-2)}
.pl-steps{list-style:none;margin:0;padding:0}
.pl-step{display:flex;gap:14px;width:100%;padding:14px 0;border-bottom:1px solid var(--line);text-align:left;font-size:15px;line-height:1.5;color:var(--ink);transition:color .5s var(--ease)}
.pl-steps li:last-child .pl-step{border-bottom:0}
.pl-tick{width:30px;height:30px;border-radius:50%;flex:none;display:grid;place-items:center;border:1px solid var(--line-2);font:italic 300 14px/1 var(--serif);color:var(--ink-2);transition:background-color .5s var(--ease),border-color .5s var(--ease),color .5s var(--ease)}
.pl-tick svg.ic{width:15px;height:15px}
.pl-step.is-on{color:var(--ink-3)}
.pl-step.is-on>span:last-child{text-decoration:line-through;text-decoration-color:var(--line-2)}
.pl-step.is-on .pl-tick{background:var(--accent);border-color:var(--accent);color:var(--btn-ink)}
:root[data-theme="light"] .pl-step.is-on .pl-tick{color:var(--on-img)}
.pl-shop .check{padding:14px 0;color:var(--ink);font-size:14.5px}
.pl-shop .check input:checked+span{color:var(--ink-3);text-decoration:line-through;text-decoration-color:var(--line-2)}
.pl-dactions{display:flex;gap:10px}
.pl-dactions .btn{flex:1;padding:0 14px}
.pl-donebox{display:flex;gap:14px;align-items:center;margin-top:12px;padding:16px}
.pl-donebox>svg.ic{width:36px;height:36px;padding:8px;border-radius:50%;background:var(--accent);color:var(--btn-ink);flex:none}
:root[data-theme="light"] .pl-donebox>svg.ic{color:var(--on-img)}
.pl-donebox b{display:block;font:500 18px/1.2 var(--serif)}
.pl-donebox span span{display:block;font-size:12.5px;color:var(--ink-2);margin-top:2px}

/* ───────────── #/wishlist ───────────── */
.pl-wbody{margin-top:22px}
.pl-bsum{display:flex;align-items:center;gap:20px;padding:16px 20px}
.pl-bsum>div:first-child{display:flex;align-items:baseline;gap:8px;flex:none}
.pl-bsum b{font-size:36px}
.pl-bsum span{font-size:13px;color:var(--ink-2)}
.pl-tickbtn{width:32px;height:32px;border-radius:50%;flex:none;display:grid;place-items:center;border:1px solid var(--line-2);color:transparent;transition:background-color .5s var(--ease),border-color .5s var(--ease),color .5s var(--ease)}
.pl-tickbtn:hover{border-color:var(--accent);color:var(--ink-3)}
.pl-tickbtn svg.ic{width:16px;height:16px}
.pl-tickbtn.is-on{background:var(--accent);border-color:var(--accent);color:var(--btn-ink)}
:root[data-theme="light"] .pl-tickbtn.is-on{color:var(--on-img)}
.pl-bi .ri-tx b.serif{font-size:17px}
.pl-bi.is-done .ri-tx b{color:var(--ink-2)}
.pl-bi .av{width:26px;height:26px;font-size:12px;box-shadow:none}
.pl-lh{margin:30px 0 10px}
.pl-wsum{margin-bottom:12px;font-size:13px}
.pl-wlist{display:flex;flex-direction:column;gap:12px}
.pl-wi{padding:16px 18px}
.pl-wi-h{display:flex;gap:12px;align-items:flex-start}
.pl-wi-h .av{width:28px;height:28px;font-size:13px;box-shadow:none;margin-top:2px}
.pl-wi-t{flex:1;min-width:0}
.pl-wi-t b{display:block;font-size:18px;line-height:1.25}
.pl-wi-t span{display:block;font-size:12.5px;color:var(--ink-2);margin-top:3px}
.pl-price{font:500 19px/1.2 var(--serif);font-variation-settings:"opsz" 48,"SOFT" 100;white-space:nowrap}
.pl-wnote{margin-top:12px;padding-left:40px;font:italic 300 16px/1.45 var(--serif);font-variation-settings:"opsz" 48,"SOFT" 100;color:var(--ink-2)}
.pl-wi .tag{margin:12px 0 0 40px}
.pl-wi .btn-sm{margin:14px 0 0 40px}
.pl-bought{display:flex;align-items:center;gap:8px;margin:12px 0 0 40px;font-size:13px;color:var(--ink-3)}
.pl-bought svg.ic{width:15px;height:15px}
.pl-wi.is-bought{border-style:dashed}
.pl-occs{display:flex;flex-direction:column;gap:12px}
.pl-oc{display:grid;grid-template-columns:52px 1fr;column-gap:14px;row-gap:14px;padding:16px}
.pl-oc.is-next{border-color:color-mix(in srgb,var(--accent) 45%,transparent);background:color-mix(in srgb,var(--accent) 5%,var(--surface))}
.pl-oc-tx b{display:block;font-size:18px;line-height:1.25;margin:5px 0 2px}
.pl-oc-tx>span:last-child{font-size:12.5px;color:var(--ink-2)}
.pl-oc .btn{grid-column:2;justify-self:start}
.row-item .pl-cal{width:46px;height:52px}

/* ───────────── #/events ───────────── */
.chips.scroll.pl-evchips{margin:22px 0 0}
.pl-evs{margin-top:18px}
.pl-evs:not(.is-loading) .hide-loading{display:flex;flex-direction:column;gap:16px}
.pl-ev{min-height:340px;display:flex;flex-direction:column;justify-content:space-between}
.pl-ev-t{padding:16px;display:flex;justify-content:space-between;align-items:flex-start;gap:8px}
.pl-evdate{width:54px;height:60px;border-radius:16px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;background:var(--glass);border:1px solid var(--glass-line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
.pl-evdate b{font:500 24px/1 var(--serif);font-variation-settings:"opsz" 72,"SOFT" 100}
.pl-evdate span{font:600 9px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--on-img-2)}
.pl-ev-b{padding:0 20px 20px}
.pl-ev-b h3{font-size:28px;line-height:1.05;margin:8px 0 12px}
.pl-ev .tag{background:var(--glass);color:var(--on-img);border:1px solid var(--glass-line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.pl-ev .tag.accent{background:color-mix(in srgb,var(--img-btn) 30%,rgba(20,10,16,.4));border-color:color-mix(in srgb,var(--img-btn) 60%,transparent);color:var(--on-img)}

/* ───────────── #/event/<id> ───────────── */
.pl-going{display:flex;align-items:center;gap:14px;padding:16px}
.pl-going-ic{width:42px;height:42px;border-radius:50%;flex:none;display:grid;place-items:center;background:var(--accent);color:var(--btn-ink)}
:root[data-theme="light"] .pl-going-ic{color:var(--on-img)}
.pl-going b{display:block;font-size:17px;margin:5px 0 2px}
.pl-going>span:last-child>span:last-child{font-size:12.5px;color:var(--ink-2)}
.pl-lede{font:400 20px/1.5 var(--serif);font-variation-settings:"opsz" 48,"SOFT" 100;color:var(--ink)}
.pl-hosts{display:flex;gap:16px;margin-top:22px;flex-wrap:wrap}
.pl-host{display:flex;flex-direction:column;align-items:center;gap:7px;width:68px;text-align:center}
.pl-host>span{width:56px;height:56px;border-radius:50%;overflow:hidden;box-shadow:0 0 0 1px var(--line-2)}
.pl-host img{width:100%;height:100%;object-fit:cover}
.pl-host b{font-size:11px;font-weight:500;line-height:1.25;color:var(--ink-2)}
.pl-benefit{padding:20px;background:radial-gradient(90% 90% at 100% 0%,color-mix(in srgb,var(--accent) 10%,transparent),transparent 60%),var(--surface)}
.pl-price-row{display:flex;justify-content:space-between;align-items:flex-end;gap:12px}
.pl-price-row b.display{display:inline-block;font-size:42px;margin-top:8px}
.pl-price-row small{margin-left:6px;font-size:13px;color:var(--ink-2)}
.pl-std{text-align:right}
.pl-std s{display:block;margin-top:8px;font:400 20px/1 var(--serif);color:var(--ink-3);text-decoration-color:var(--accent)}
.pl-perks{list-style:none;margin:18px 0 0;padding:6px 0 0;border-top:1px solid var(--line)}
.pl-perks li{display:flex;gap:10px;padding:9px 0;font-size:13.5px;color:var(--ink-2);line-height:1.4}
.pl-perks svg.ic{width:16px;height:16px;color:var(--accent);flex:none;margin-top:1px}
.pl-memb{display:flex;align-items:center;gap:8px;margin-top:12px;font-size:12.5px;color:var(--ink-3)}
.pl-memb svg.ic{width:15px;height:15px}
.pl-benefit .btn{margin-top:16px}
.pl-evfacts{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.pl-evfacts>div{padding:14px 16px;border-radius:16px;border:1px solid var(--line)}
.pl-evfacts b{display:block;margin:7px 0 3px;font:500 18px/1.2 var(--serif);font-variation-settings:"opsz" 48,"SOFT" 100}
.pl-evfacts span:last-child{font-size:12px;color:var(--ink-3)}
.pl-sum{margin-top:18px;border-top:1px solid var(--line)}
.pl-sum>div{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:12px 0;border-bottom:1px solid var(--line);font-size:14px;color:var(--ink-2)}
.pl-sum>div b{color:var(--ink);font-weight:600}
.pl-sum .pl-save{color:var(--accent)}
.pl-sum .pl-save span{display:inline-flex;align-items:center;gap:6px}
.pl-sum .pl-save svg.ic{width:14px;height:14px}
.pl-sum .pl-save b{color:var(--accent)}
.pl-sum .pl-total{border-bottom:0;padding-top:16px;color:var(--ink)}
.pl-sum .pl-total b{font-size:32px;font-weight:500}
.pl-mic{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:var(--chip-2);flex:none}
.pl-mic svg.ic{width:19px;height:19px}
.pl-booked{display:flex;flex-direction:column;align-items:center;text-align:center;gap:12px;padding:12px 0 6px}
.pl-booked-ic{width:76px;height:76px;border-radius:50%;display:grid;place-items:center;background:var(--accent);color:var(--btn-ink);margin-bottom:8px;box-shadow:0 0 0 10px color-mix(in srgb,var(--accent) 14%,transparent),0 20px 50px -12px var(--btn-glow);animation:pl-seal-in .9s var(--ease) both}
:root[data-theme="light"] .pl-booked-ic{color:var(--on-img)}
.pl-booked-ic svg.ic{width:32px;height:32px}
.pl-booked h2.display{padding:0!important;margin:0!important}

/* ───────────── mobile ───────────── */
@media (max-width:599px){
  .pl-top{padding-top:calc(env(safe-area-inset-top,0px) + 14px)}
  .pl-play{padding-bottom:calc(20px + env(safe-area-inset-bottom,0px))}
  .pl-cta{padding-bottom:calc(18px + env(safe-area-inset-bottom,0px))}
}
@media (max-width:370px){
  .pl-kts{grid-template-columns:repeat(2,1fr)}
  .pl-badges{grid-template-columns:repeat(2,1fr)}
  .pl-facts{grid-template-columns:1fr 1fr;row-gap:16px}
  .pl-facts>div:nth-child(3){border-left:0;padding-left:0}
}
@media (prefers-reduced-motion: reduce){
  .pl-petals{display:none}
}
.pl-hero .pl-lvls{margin:14px 0 0}
.pl-ctrl{position:sticky;bottom:0;z-index:5;margin:0 calc(var(--gut) * -1);padding:18px var(--gut) 26px;background:linear-gradient(180deg,rgba(var(--scrim),0) 0%,var(--bg) 34%)}
.pl-play{padding-bottom:0}
@media (max-width:599px){.pl-ctrl{padding-bottom:calc(18px + env(safe-area-inset-bottom,0px))}}
/* light theme: the dice become oxblood objects on ivory; paper cards get a deeper shadow */
:root[data-theme="light"] .pl-f{background:radial-gradient(90% 90% at 30% 20%,color-mix(in srgb,var(--img-btn-ink) 80%,var(--img-btn)),var(--img-btn-ink) 100%);color:var(--on-img);box-shadow:inset 0 0 0 1px rgba(246,238,225,.12),inset 0 -10px 18px -10px rgba(0,0,0,.5)}
:root[data-theme="light"] .pl-f small{color:var(--on-img-3)}
:root[data-theme="light"] .pl-front{box-shadow:0 34px 60px -24px rgba(42,15,35,.42),inset 0 0 0 1px rgba(42,15,35,.14)}
