/* ═══════════════════════════════════════════════════════════════
   اپِ درون — «ریشه» (اشتراک): برگه‌ی «ریشه»، صفحه‌ی مقایسه، صحنه‌ی زیرِ خاک.
   رابط: a/ketab/mod-root.js · سرور: src/lib/root.php · طرح: اشتراک.md

   روح: زیرِ خاک. همه یک گیاه دارند؛ فرقِ سطح‌ها عمقِ ریشه است:
     ریشک          (رایگان)      ریشه‌ی کوتاه و آرام
     ریشه          (اشتراک)      ریشه‌ای که تا ته می‌رود و سرِ هر رشته نوری کوچک دارد
     ریشه‌ی جاودان (از پنل)      همان ریشه، طلایی، که از قابِ خاک هم بیرون می‌رود
   ═══════════════════════════════════════════════════════════════ */

.dapp{
  --rsh-soil1:#3b2b1f; --rsh-soil2:#1b140f; --rsh-soil-line:rgba(255,226,190,.07); --rsh-pebble:rgba(255,230,200,.08);
  --rsh-root:#d2ab80; --rsh-root-dim:rgba(210,171,128,.32); --rsh-leaf:#8fc48a; --rsh-leaf2:#6fae76; --rsh-stem:#7aa35a; --rsh-grass:#6a9f60;
  --rsh-glow:#f3c978; --rsh-sky:rgba(227,176,98,.16);
  --rsh-gold1:#fbe3a2; --rsh-gold2:#e3b062; --rsh-gold3:#b98a45;
  --rsh-deep:#9fd3a0; --rsh-deep-soft:rgba(143,196,138,.12); --rsh-deep-line:rgba(143,196,138,.34);
}
:root[data-theme="paper"] .dapp{
  --rsh-soil1:#dcc6a7; --rsh-soil2:#b4936d; --rsh-soil-line:rgba(70,40,15,.10); --rsh-pebble:rgba(70,40,15,.12);
  --rsh-root:#6e4a2c; --rsh-root-dim:rgba(110,74,44,.30); --rsh-leaf:#4f9a5c; --rsh-leaf2:#3f8a4f; --rsh-stem:#5c8a3e; --rsh-grass:#5d9452;
  --rsh-glow:#f7d58c; --rsh-sky:rgba(176,125,44,.10);
  --rsh-gold1:#f6d27a; --rsh-gold2:#c99236; --rsh-gold3:#8a5f1c;
  --rsh-deep:#2f7a45; --rsh-deep-soft:rgba(63,138,90,.09); --rsh-deep-line:rgba(63,138,90,.32);
}

/* ═══════════════════ صحنه‌ی زیرِ خاک ═══════════════════ */
.dapp .rsh-scene{display:block;width:100%;height:auto;overflow:visible}
.dapp .rsh-scene .rsh-root{fill:none;stroke:var(--rsh-root);stroke-linecap:round;stroke-linejoin:round}
.dapp .rsh-scene .rsh-ghost{fill:none;stroke:var(--rsh-root-dim);stroke-linecap:round;stroke-dasharray:2 5}
.dapp .rsh-scene .rsh-gold{stroke:url(#rtGold)}
.dapp .rsh-scene .rsh-node{fill:var(--rsh-glow)}
.dapp .rsh-scene .rsh-halo{fill:var(--rsh-glow);opacity:.18}
.dapp .rsh-scene .rsh-strata{fill:none;stroke:var(--rsh-soil-line);stroke-width:1}
.dapp .rsh-scene .rsh-pebble{fill:var(--rsh-pebble)}
.dapp .rsh-scene .rsh-grass{fill:none;stroke:var(--rsh-grass);stroke-width:1.4;stroke-linecap:round}
.dapp .rsh-scene .rsh-leaf{fill:var(--rsh-leaf)}
.dapp .rsh-scene .rsh-leaf2{fill:var(--rsh-leaf2)}
.dapp .rsh-scene .rsh-stem{fill:none;stroke:var(--rsh-stem);stroke-width:2.6;stroke-linecap:round}
.dapp .rsh-scene .rsh-limit{stroke:var(--rsh-root-dim);stroke-width:1;stroke-dasharray:3 4}

/* رشد: هر رشته از بالا کشیده می‌شود؛ نورها بعدش روشن می‌شوند */
.dapp .rsh-scene.rsh-anim .rsh-root{stroke-dasharray:var(--l,300);stroke-dashoffset:var(--l,300);animation:rsh-draw 1.5s var(--d-ease) forwards;animation-delay:var(--d,0s)}
.dapp .rsh-scene.rsh-anim .rsh-node,.dapp .rsh-scene.rsh-anim .rsh-halo{opacity:0;animation:rsh-node .6s ease forwards;animation-delay:var(--d,1.2s)}
.dapp .rsh-scene.rsh-anim .rsh-halo{animation-name:rsh-halo}
.dapp .rsh-scene .rsh-pulse{animation:rsh-pulse 3.2s ease-in-out infinite;transform-box:fill-box;transform-origin:center}
@keyframes rsh-draw{to{stroke-dashoffset:0}}
@keyframes rsh-node{to{opacity:1}}
@keyframes rsh-halo{to{opacity:.18}}
@keyframes rsh-pulse{0%,100%{opacity:.18;transform:scale(1)}50%{opacity:.34;transform:scale(1.35)}}
@media (prefers-reduced-motion:reduce){
  .dapp .rsh-scene.rsh-anim .rsh-root{animation:none;stroke-dashoffset:0;stroke-dasharray:none}
  .dapp .rsh-scene.rsh-anim .rsh-node,.dapp .rsh-scene.rsh-anim .rsh-halo{animation:none;opacity:1}
  .dapp .rsh-scene.rsh-anim .rsh-halo{opacity:.18}
  .dapp .rsh-scene .rsh-pulse{animation:none}
}

/* نشانِ سطح: «ریشک»، «ریشه»، «ریشه‌ی جاودان» */
.dapp .rsh-tag{display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 11px;border-radius:999px;font-size:12.5px;font-weight:600;line-height:1;
  background:var(--d-surf2);color:var(--d-ink2);border:1px solid var(--d-line)}
.dapp .rsh-tag i{width:7px;height:7px;border-radius:50%;background:var(--rsh-root);flex:none}
.dapp .rsh-tag.deep{background:var(--rsh-deep-soft);color:var(--rsh-deep);border-color:var(--rsh-deep-line)}
.dapp .rsh-tag.deep i{background:var(--rsh-deep);box-shadow:0 0 0 3px var(--rsh-deep-soft)}
.dapp .rsh-tag.forever{background:linear-gradient(120deg,rgba(251,227,162,.16),rgba(227,176,98,.08));color:var(--rsh-gold2);border-color:rgba(227,176,98,.36)}
.dapp .rsh-tag.forever i{background:var(--rsh-gold2);box-shadow:0 0 10px var(--rsh-gold2)}

/* ═══════════════════ برگه‌ی «ریشه» (وقتی به سقف می‌خوری) ═══════════════════ */
.dapp .rsh-lay{position:fixed;inset:0;z-index:260;display:flex;align-items:flex-end;justify-content:center;
  background:rgba(6,5,4,0);transition:background .28s ease;-webkit-tap-highlight-color:transparent}
.dapp .rsh-lay.in{background:rgba(6,5,4,.55)}
.dapp .rsh-card{position:relative;width:100%;max-width:420px;margin:0 10px calc(10px + var(--d-safe-b));border-radius:30px;overflow:hidden;
  background:var(--d-surf);border:1px solid var(--d-line2);box-shadow:0 30px 80px -30px rgba(0,0,0,.8);
  transform:translateY(112%);transition:transform .42s var(--d-ease)}
.dapp .rsh-lay.in .rsh-card{transform:none}
.dapp .rsh-lay.out{background:rgba(6,5,4,0)}
.dapp .rsh-lay.out .rsh-card{transform:translateY(112%);transition-duration:.26s}
@media (min-width:700px){
  .dapp .rsh-lay{align-items:center}
  .dapp .rsh-card{margin:0;transform:translateY(18px) scale(.97);opacity:0;transition:transform .34s var(--d-ease),opacity .24s}
  .dapp .rsh-lay.in .rsh-card{transform:none;opacity:1}
  .dapp .rsh-lay.out .rsh-card{transform:translateY(10px) scale(.98);opacity:0}
}
.dapp .rsh-card-art{position:relative;background:radial-gradient(90% 60% at 50% 18%,var(--rsh-sky),transparent 70%)}
.dapp .rsh-card-x{position:absolute;top:12px;inset-inline-end:12px;width:34px;height:34px;border-radius:50%;border:0;display:grid;place-items:center;cursor:pointer;
  background:rgba(0,0,0,.28);color:#fff;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
:root[data-theme="paper"] .dapp .rsh-card-x{background:rgba(255,255,255,.7);color:#3a2a1a}
.dapp .rsh-card-x .ic{width:16px;height:16px}
.dapp .rsh-card-grip{position:absolute;top:8px;left:50%;width:38px;height:4px;margin-left:-19px;border-radius:4px;background:rgba(255,255,255,.22)}
:root[data-theme="paper"] .dapp .rsh-card-grip{background:rgba(60,40,20,.18)}
@media (min-width:700px){ .dapp .rsh-card-grip{display:none} }
.dapp .rsh-card-b{padding:6px 22px 20px;text-align:center}
.dapp .rsh-card-b .rsh-tag{margin-top:-14px;position:relative}
.dapp .rsh-card-h{margin:12px 0 6px;font-size:19px;font-weight:600;line-height:1.6;color:var(--d-ink)}
.dapp .rsh-card-p{margin:0 auto;max-width:320px;font-size:14.5px;line-height:1.95;color:var(--d-sub)}
.dapp .rsh-card-over{margin:8px 0 0;font-size:13px;color:var(--d-faint)}

/* دو ستونِ کوچک: ریشک ← ریشه */
.dapp .rsh-duo{display:grid;grid-template-columns:1fr auto 1fr;align-items:stretch;gap:8px;margin:18px 0 18px}
.dapp .rsh-duo > div:not(.rsh-arrow){border-radius:18px;padding:12px 10px;background:var(--d-surf2);border:1px solid var(--d-line);display:flex;flex-direction:column;align-items:center;gap:4px}
.dapp .rsh-duo b{font-size:17px;font-weight:600;color:var(--d-ink);line-height:1.4}
.dapp .rsh-duo small{font-size:12px;color:var(--d-sub)}
.dapp .rsh-duo > div.is-deep{background:var(--rsh-deep-soft);border-color:var(--rsh-deep-line)}
.dapp .rsh-duo .is-deep b{color:var(--rsh-deep)}
.dapp .rsh-duo .rsh-arrow{display:grid;place-items:center;color:var(--d-faint)}
.dapp .rsh-duo .rsh-arrow .ic{width:18px;height:18px}
.dapp .rsh-card-go{display:flex;flex-direction:column;gap:8px}
.dapp .rsh-card-go .dbtn{width:100%}
.dapp .rsh-keep{display:flex;align-items:center;justify-content:center;gap:6px;margin:14px 0 0;font-size:12.5px;color:var(--d-faint)}
.dapp .rsh-keep .ic{width:15px;height:15px;color:var(--rsh-leaf)}

/* ═══════════════════ صفحه‌ی «ریشه» در تنظیمات ═══════════════════ */
.dapp .rsh-page{display:flex;flex-direction:column;gap:18px}
.dapp .rsh-hero{position:relative;border-radius:28px;overflow:hidden;background:var(--d-surf);border:1px solid var(--d-line);box-shadow:var(--d-shadow)}
.dapp .rsh-hero-art{background:radial-gradient(120% 70% at 50% 0%,var(--rsh-sky),transparent 60%)}
.dapp .rsh-hero.forever{border-color:rgba(227,176,98,.32)}
.dapp .rsh-hero.forever .rsh-hero-art{background:radial-gradient(120% 80% at 50% 0%,rgba(251,227,162,.16),transparent 62%)}
.dapp .rsh-hero-b{position:relative;padding:4px 20px 20px;display:flex;flex-direction:column;align-items:flex-start;gap:8px}
.dapp .rsh-hero-h{margin:0;font-size:24px;font-weight:600;line-height:1.4;color:var(--d-ink)}
.dapp .rsh-hero.forever .rsh-hero-h{background:linear-gradient(90deg,var(--rsh-gold1),var(--rsh-gold2) 55%,var(--rsh-gold3));-webkit-background-clip:text;background-clip:text;color:transparent}
.dapp .rsh-hero-p{margin:0;font-size:14px;line-height:1.9;color:var(--d-sub)}
.dapp .rsh-meter{width:100%;height:6px;border-radius:6px;background:var(--d-surf3);overflow:hidden;margin-top:4px}
.dapp .rsh-meter i{display:block;height:100%;border-radius:6px;background:linear-gradient(90deg,var(--rsh-leaf2),var(--rsh-deep))}

.dapp .rsh-h2{margin:6px 4px -6px;font-size:13px;font-weight:600;color:var(--d-sub)}

/* مقایسه: سه ستون، ستونِ ریشه روشن‌تر (مثلِ یک نوارِ عمودیِ نور) */
.dapp .rsh-cmp{position:relative;border-radius:26px;background:var(--d-surf);border:1px solid var(--d-line);overflow:hidden}
.dapp .rsh-cmp-row{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr) minmax(0,1fr);align-items:center;min-height:50px;position:relative}
.dapp .rsh-cmp-row + .rsh-cmp-row{border-top:1px solid var(--d-line)}
.dapp .rsh-cmp-row > span{padding:10px 12px;font-size:14px;line-height:1.6;text-align:center;color:var(--d-ink2)}
.dapp .rsh-cmp-row > span:first-child{text-align:start;color:var(--d-ink);padding-inline-start:16px}
.dapp .rsh-cmp-row > span:nth-child(3){background:var(--rsh-deep-soft);color:var(--rsh-deep);font-weight:600;align-self:stretch;display:flex;align-items:center;justify-content:center}
.dapp .rsh-cmp-row .ic{width:19px;height:19px}
.dapp .rsh-cmp-row .rsh-no{color:var(--d-faint);font-weight:400}
.dapp .rsh-cmp-head{min-height:0;align-items:end}
.dapp .rsh-cmp-head > span{padding:14px 6px 10px;display:flex;flex-direction:column;align-items:center;gap:2px}
.dapp .rsh-cmp-head > span:first-child{align-items:flex-start;justify-content:flex-end;padding-inline-start:16px;font-size:12.5px;color:var(--d-faint);font-weight:400}
.dapp .rsh-cmp-head b{font-size:14px;font-weight:600;color:var(--d-ink)}
.dapp .rsh-cmp-head > span:nth-child(3) b{color:var(--rsh-deep)}
.dapp .rsh-cmp-head small{font-size:11.5px;color:var(--d-sub);font-weight:400}
.dapp .rsh-cmp-head .rsh-scene{width:68px;margin-bottom:4px;border-radius:12px;overflow:hidden}
.dapp .rsh-cmp-row.is-me > span:nth-child(2){box-shadow:inset 0 0 0 0 transparent}
.dapp .rsh-cmp-foot{padding:12px 16px 14px;font-size:12.5px;line-height:1.9;color:var(--d-sub);border-top:1px solid var(--d-line);background:var(--d-surf2)}

/* مدت‌ها */
.dapp .rsh-plans{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.dapp .rsh-plan{position:relative;border-radius:22px;padding:16px 10px 14px;background:var(--d-surf);border:1px solid var(--d-line);text-align:center;display:flex;flex-direction:column;align-items:center;gap:4px}
.dapp .rsh-plan b{font-size:15.5px;font-weight:600;color:var(--d-ink)}
.dapp .rsh-plan small{font-size:12px;color:var(--d-sub)}
.dapp .rsh-plan .rsh-price{margin-top:6px;font-size:22px;font-weight:600;color:var(--d-ink);line-height:1.2}
.dapp .rsh-plan .rsh-price-u{font-size:11px;color:var(--d-faint)}
.dapp .rsh-plan .rsh-seasons{display:flex;gap:4px;margin:6px 0 2px}
.dapp .rsh-plan .rsh-seasons i{width:9px;height:9px;border-radius:50%;background:var(--d-surf3)}
.dapp .rsh-plan .rsh-seasons i.on{background:var(--rsh-deep)}
.dapp .rsh-plan.best{border-color:var(--rsh-deep-line);background:linear-gradient(180deg,var(--rsh-deep-soft),var(--d-surf) 70%)}
.dapp .rsh-plan .rsh-best{position:absolute;top:-10px;left:50%;transform:translateX(-50%);height:20px;padding:0 9px;border-radius:999px;font-size:11px;font-weight:600;line-height:20px;white-space:nowrap;
  background:var(--rsh-deep);color:var(--d-bg)}
.dapp .rsh-buy{display:flex;align-items:center;justify-content:center;gap:12px;padding:14px 16px;border-radius:20px;border:1px dashed var(--d-line2);color:var(--d-sub)}
.dapp .rsh-buy .ic{width:22px;height:22px;color:var(--rsh-deep);flex:none}
.dapp .rsh-buy span{display:flex;flex-direction:column;gap:2px}
.dapp .rsh-buy b{font-size:14.5px;font-weight:600;color:var(--d-ink)}
.dapp .rsh-buy small{font-size:12.5px;color:var(--d-faint)}
.dapp .rsh-promise{display:flex;gap:12px;align-items:flex-start;padding:16px 18px;border-radius:22px;background:var(--d-surf2);border:1px solid var(--d-line);font-size:13.5px;line-height:1.95;color:var(--d-sub)}
.dapp .rsh-promise .ic{flex:none;width:22px;height:22px;color:var(--rsh-leaf);margin-top:2px}
.dapp .rsh-forever-note{text-align:center;font-size:14px;line-height:1.9;color:var(--d-sub);padding:4px 10px}
.dapp .rsh-card-go .dbtn.ghost{background:transparent;box-shadow:none;border-color:transparent;color:var(--d-sub);min-height:40px}
.dapp .rsh-card-go .dbtn.ghost:active{transform:none}
/* خاک آرام در رنگِ کارت محو شود */
.dapp .rsh-card-art::after,.dapp .rsh-hero-art{position:relative}
.dapp .rsh-card-art::after,.dapp .rsh-hero-art::after{content:'';position:absolute;left:0;right:0;bottom:0;height:44px;background:linear-gradient(rgba(0,0,0,0),var(--d-surf));pointer-events:none}

/* خرید (mod-root.js، src/lib/pay.php): مدت‌ها دکمه‌اند؛ یکی برداشته می‌شود و دکمه‌ی پرداخت زیرشان */
.dapp .rsh-plans.is-pick .rsh-plan{cursor:pointer;font:inherit;color:inherit;transition:border-color .18s ease,box-shadow .18s ease,transform .12s ease}
.dapp .rsh-plans.is-pick .rsh-plan:active{transform:scale(.98)}
.dapp .rsh-plans.is-pick .rsh-plan.best:not(.on){border-color:var(--d-line);background:var(--d-surf)}
.dapp .rsh-plans.is-pick .rsh-plan.on{border-color:var(--rsh-deep);box-shadow:0 0 0 1.5px var(--rsh-deep) inset;background:linear-gradient(180deg,var(--rsh-deep-soft),var(--d-surf) 70%)}
.dapp .rsh-paybox{display:flex;flex-direction:column;align-items:stretch;gap:8px;text-align:center}
.dapp .rsh-paybox small{font-size:12.5px;line-height:1.8;color:var(--d-faint)}
.dapp .rsh-paybox .rsh-sand{color:var(--rsh-deep)}
.dapp .rsh-pay.busy{opacity:.6;pointer-events:none}
.dapp .rsh-gift{display:flex;flex-direction:column;gap:14px;padding:4px 2px 8px}
.dapp .rsh-gift p{margin:0;font-size:14px;line-height:1.9}
.dapp .rsh-in{width:100%;height:48px;padding:0 14px;border-radius:14px;border:1px solid var(--d-line2);background:var(--d-surf2);color:var(--d-ink);font:inherit;font-size:16px;text-align:left}
.dapp .rsh-in:focus{outline:none;border-color:var(--rsh-deep)}

/* ═══════════════════ کارتِ خانه (زیرِ «سلام») و برگه‌ی «چرا ریشه؟» — نسخه‌ی ۱.۰.۰ ═══════════════════
   یک تکه خاک با دو گیاه: راست ریشک (ریشه‌ی کوتاه)، چپ ریشه (تا ته، با نور). کلِ کارت برگه را باز می‌کند. */
.dapp .rsh-home{position:relative;margin:0 0 var(--g,12px);border-radius:24px;overflow:hidden;cursor:pointer;
  background:radial-gradient(140% 90% at 85% 0%,var(--rsh-sky),transparent 60%),var(--d-surf);border:1px solid var(--d-line);box-shadow:var(--d-shadow);
  transition:opacity .25s ease,transform .25s ease;-webkit-tap-highlight-color:transparent}
.dapp .rsh-home:active{transform:scale(.99)}
.dapp .rsh-home.out{opacity:0;transform:translateY(-6px)}
.dapp .rsh-home:focus-visible{outline:2px solid var(--d-acc);outline-offset:2px}
.dapp .rsh-home-top{display:flex;align-items:flex-start;gap:8px;padding:18px 18px 4px}
.dapp .rsh-home-tt{flex:1;min-width:0}
.dapp .rsh-home-h{display:block;font-size:18px;font-weight:800;line-height:1.5;color:var(--d-ink);letter-spacing:-.2px}
.dapp .rsh-home-p{margin:4px 0 0;font-size:14px;line-height:1.9;color:var(--d-ink2)}
.dapp .rsh-home-pill{display:inline-flex;align-items:center;gap:6px;height:24px;margin-bottom:8px;padding:0 10px;border-radius:999px;font-size:12px;font-weight:600;
  background:var(--rsh-deep-soft);color:var(--rsh-deep);border:1px solid var(--rsh-deep-line)}
.dapp .rsh-home-pill i{width:6px;height:6px;border-radius:50%;background:var(--rsh-deep);box-shadow:0 0 0 3px var(--rsh-deep-soft)}
.dapp .rsh-home-go{flex:none;width:36px;height:36px;margin:-4px -6px 0 0;margin-inline-start:0;border-radius:50%;display:grid;place-items:center;
  background:var(--d-surf2,rgba(127,127,127,.1));border:1px solid var(--d-line);color:var(--d-ink2)}
.dapp .rsh-home-go .ic{width:17px;height:17px}

/* دو گیاه */
.dapp .rsh-duo2{display:flex;direction:rtl;height:132px;margin-top:2px}
.dapp .rsh-duo2.big{height:170px;border-radius:22px;overflow:hidden;margin:0 0 6px}
.dapp .rsh-duo2-h{position:relative;flex:1;min-width:0;overflow:hidden}
.dapp .rsh-duo2-art,.dapp .rsh-duo2-art .rsh-scene{position:absolute;inset:0;width:100%;height:100%}
.dapp .rsh-duo2-h.is-free::after{content:'';position:absolute;inset-block:34% 0;inset-inline-end:0;width:1px;background:linear-gradient(var(--rsh-soil-line),transparent)}
.dapp .rsh-duo2-l{position:absolute;bottom:12px;inset-inline-start:16px;display:flex;flex-direction:column;line-height:1.4}
.dapp .rsh-duo2-h.is-deep .rsh-duo2-l{inset-inline-start:auto;inset-inline-end:16px;align-items:flex-end}
.dapp .rsh-duo2-l b{font-size:13px;font-weight:700;color:#f3e6d4}
.dapp .rsh-duo2-l small{font-size:11.5px;color:rgba(243,230,212,.7)}
:root[data-theme="paper"] .dapp .rsh-duo2-l b{color:#fff8ee}

/* نامه بالای صفحه‌ی «ریشه»: جمله‌ها یکی‌یکی با فاصله‌ی زیاد، ریشه‌ی باریکِ کنارش پایین می‌رود و سرِ هر جمله نوری روشن می‌شود */
.dapp .rsh-letter{position:relative;margin:34px 0 46px;padding:8px 46px 6px 10px}
.dapp .rsh-letter-root{position:absolute;top:14px;bottom:40px;inset-inline-start:21px;width:2px;border-radius:2px;
  background:linear-gradient(to bottom,var(--rsh-root),var(--rsh-root-dim) 70%,transparent);transform:scaleY(0);transform-origin:top;
  transition:transform 2.6s cubic-bezier(.2,.7,.2,1)}
.dapp .rsh-letter.in .rsh-letter-root{transform:scaleY(1)}
.dapp .rsh-beat{position:relative;margin:0 0 52px;opacity:0;transform:translateY(16px);transition:opacity .9s ease,transform 1s cubic-bezier(.2,.7,.2,1)}
.dapp .rsh-beat:last-child{margin-bottom:0}
.dapp .rsh-beat.in{opacity:1;transform:none}
.dapp .rsh-beat::before{content:'';position:absolute;top:.72em;inset-inline-start:-30px;width:8px;height:8px;border-radius:50%;background:var(--rsh-root-dim);
  transition:background .8s ease .3s,box-shadow .8s ease .3s}
.dapp .rsh-beat.in::before{background:var(--rsh-glow);box-shadow:0 0 0 5px rgba(243,201,120,.12),0 0 16px var(--rsh-glow)}
.dapp .rsh-beat p{margin:0;font-size:17px;line-height:2;color:var(--d-ink2)}
.dapp .rsh-beat.b1 p{font-size:24px;font-weight:800;line-height:1.75;color:var(--d-ink);letter-spacing:-.3px}
.dapp .rsh-beat.b2 p{font-size:20px;font-weight:600;line-height:1.85;color:var(--d-ink)}
.dapp .rsh-beat.b3{margin-bottom:40px}
.dapp .rsh-lps{display:flex;gap:10px;margin:0 0 14px}
.dapp .rsh-lp{flex:1;display:flex;flex-direction:column;align-items:flex-start;padding:14px 16px;border-radius:20px;background:var(--d-surf);border:1px solid var(--d-line)}
.dapp .rsh-lp b{font-size:30px;font-weight:800;line-height:1.2;color:var(--d-ink)}
.dapp .rsh-lp small{font-size:12px;color:var(--d-muted);margin-top:2px}
.dapp .rsh-lp span{margin-top:8px;font-size:13.5px;font-weight:600;color:var(--rsh-deep)}
.dapp .rsh-beat.b4 p{font-size:15.5px;color:var(--d-muted)}
.dapp .rsh-beat.sig{display:flex;flex-direction:column;align-items:flex-start;gap:12px;padding-top:6px}
.dapp .rsh-beat.sig::before{display:none}
.dapp .rsh-sig-mk{position:absolute;top:2px;inset-inline-start:-44px;display:grid;place-items:center;width:40px;height:40px;border-radius:50%;
  background:var(--d-surf);border:1px solid var(--d-line);color:var(--rsh-glow);box-shadow:0 0 22px rgba(243,201,120,.18)}
.dapp .rsh-sig-mk .dnw-nun{width:58%;height:58%}
.dapp .rsh-beat.sig p{font-size:21px;font-weight:800;line-height:1.7;color:var(--d-ink);padding-top:2px}
@media (prefers-reduced-motion:reduce){
  .dapp .rsh-beat,.dapp .rsh-letter-root{transition:none;opacity:1;transform:none}
}

.dapp .rsh-bonus{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:18px;background:var(--rsh-deep-soft);border:1px solid var(--rsh-deep-line)}
.dapp .rsh-hero .rsh-bonus{margin-top:12px}
.dapp .rsh-bonus-ic{flex:none;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--d-surf);color:var(--rsh-deep)}
.dapp .rsh-bonus-ic .ic{width:16px;height:16px}
.dapp .rsh-bonus-t{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.dapp .rsh-bonus-t b{font-size:13.5px;font-weight:600;line-height:1.7;color:var(--d-ink)}
.dapp .rsh-bonus-t small{font-size:12px;color:var(--d-muted);line-height:1.7}
.dapp .rsh-bonus .dbtn{flex:none}
