/* Dish Stories (v2) */
#dish-stories{--pink:#ED148C;--pink-soft:rgba(237,20,140,.16);--card:#171b21;--card2:#1e232a;--line:#2a3039;--muted:#a3abb4;--text:#f6f7f9}
main:has(#dish-stories){background:linear-gradient(180deg,#000 0,#0d1014 420px,#0d1014 100%)}
.ds-wrap{max-width:720px;margin:0 auto;padding:40px 16px 64px;color:var(--text)}
.ds-hero{position:relative;text-align:center;padding:28px 0 12px}
.ds-hero:before{content:"";position:absolute;inset:-40px 10% auto;height:220px;background:radial-gradient(closest-side,rgba(237,20,140,.28),transparent);filter:blur(10px);z-index:-1}
.ds-eyebrow{display:inline-block;font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;color:var(--pink);font-weight:700;margin:0}
.ds-hero h1{font-size:clamp(2.2rem,6vw,3.4rem);font-weight:900;letter-spacing:-.02em;line-height:1.02;margin:.25em 0 .3em}
.ds-hero h1 span{color:var(--pink)}
.ds-hero p{color:#c3c9d0;max-width:520px;margin:0 auto;font-size:1.05rem}
.ds-cta{display:inline-flex;align-items:center;gap:8px;background:var(--pink);color:#fff;border:0;border-radius:999px;padding:12px 22px;font-weight:700;font-size:1rem;cursor:pointer;text-decoration:none;font-family:inherit;transition:transform .15s ease,box-shadow .15s ease}
.ds-cta:hover{transform:translateY(-1px);box-shadow:0 8px 24px rgba(237,20,140,.35)}
.ds-cta.alt{background:#1a1f26;box-shadow:none}
.ds-hero .ds-cta{margin-top:20px;padding:14px 28px;font-size:1.05rem}
#dish-stories :focus-visible{outline:2px solid #fff;outline-offset:2px}
/* leaderboard */
.ds-board{margin:28px 0 8px}
.ds-board h2{font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:0 0 10px;font-weight:700}
.ds-board ol{list-style:none;margin:0;padding:0;display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}
.ds-board ol::-webkit-scrollbar{display:none}
.ds-board li button{display:flex;align-items:center;gap:8px;white-space:nowrap;background:var(--card);border:1px solid var(--line);color:var(--text);border-radius:12px;padding:8px 12px;cursor:pointer;font:inherit;font-size:.92rem}
.ds-board li button:hover{border-color:#3a434d}
.ds-board .rk{font-size:1.05rem}
.ds-board .c{color:var(--muted);font-size:.82rem}
.ds-board .note{font-size:.82rem;color:var(--muted);margin:10px 0 0}
/* toolbar */
.ds-toolbar{position:sticky;top:0;z-index:5;background:rgba(13,16,20,.9);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);margin:20px -16px 12px;padding:10px 16px;border-bottom:1px solid var(--line)}
.ds-bar{display:flex;gap:8px;align-items:center;justify-content:space-between}
.ds-tabs{display:inline-flex;background:var(--card);border:1px solid var(--line);border-radius:999px;padding:3px}
.ds-tabs .ds-chip{border:0;background:none}
.ds-tabs .ds-chip[aria-pressed="true"]{background:#fff;color:#000}
.ds-kinds{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;margin-top:8px}
.ds-kinds::-webkit-scrollbar{display:none}
.ds-chip{background:var(--card);color:#d9dde2;border:1px solid var(--line);border-radius:999px;padding:6px 13px;font-size:.88rem;cursor:pointer;white-space:nowrap;font-family:inherit;font-weight:600}
.ds-kinds .ds-chip[aria-pressed="true"]{background:var(--pink-soft);border-color:var(--pink);color:#fff}
.ds-city{background:var(--card);color:#fff;border:1px solid var(--line);border-radius:999px;padding:8px 14px;font-size:.9rem;width:200px;font-family:inherit}
/* feed */
.ds-feed{display:flex;flex-direction:column;gap:12px}
.ds-card{position:relative;background:var(--card);border:1px solid var(--line);border-radius:18px;padding:18px 18px 12px;transition:border-color .15s ease}
.ds-card:hover{border-color:#2d353e}
.ds-meta{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;font-size:.82rem;color:var(--muted);margin-bottom:10px}
.ds-tag{border-radius:999px;padding:3px 10px;font-weight:700;font-size:.78rem;background:#1c2128;color:#e8eaed}
.ds-tag.k-red-flag{background:rgba(255,59,48,.16);color:#ff5a50}
.ds-tag.k-green-flag{background:rgba(52,199,123,.14);color:#6fe0a4}
.ds-tag.k-funny{background:rgba(255,196,0,.14);color:#ffd35c}
.ds-tag.k-advice{background:rgba(110,160,255,.14);color:#9cbcff}
.ds-tag.k-the-text{background:rgba(160,120,255,.15);color:#c6aeff}
.ds-tag.k-first-date{background:var(--pink-soft);color:#ff79be}
.ds-city-link{color:var(--muted);background:none;border:0;padding:0;font:inherit;cursor:pointer}
.ds-city-link:hover{color:#fff}
.ds-text{white-space:pre-wrap;font-size:1.15rem;line-height:1.5;margin:0 0 12px;color:var(--text);overflow-wrap:anywhere}
.ds-foot{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding-top:8px}
.ds-vote{display:inline-flex;align-items:center;background:var(--card2);border-radius:999px;padding:2px}
.ds-vote button{background:none;border:0;color:var(--muted);cursor:pointer;width:40px;height:36px;border-radius:999px;display:grid;place-items:center}
.ds-vote button:hover{background:#2a3039;color:#fff}
.ds-vote button svg{width:16px;height:16px}
.ds-vote button[aria-pressed="true"].up{color:var(--pink)}
.ds-vote button[aria-pressed="true"].down{color:#7aa7ff}
.ds-vote .n{min-width:26px;text-align:center;font-weight:800;font-variant-numeric:tabular-nums;font-size:.95rem}
.ds-actions{display:flex;gap:2px}
.ds-icon{display:inline-flex;align-items:center;gap:6px;background:none;border:0;color:var(--muted);cursor:pointer;padding:9px 12px;min-height:36px;border-radius:999px;font:inherit;font-size:.85rem;font-weight:600;text-decoration:none}
.ds-icon:hover{background:var(--card2);color:#fff}
.ds-icon svg{width:16px;height:16px}
.ds-icon.share{color:#fff}
.ds-empty,.ds-loading{text-align:center;color:var(--muted);padding:40px 0}
.ds-skel{height:132px;border-radius:18px;background:linear-gradient(90deg,#0f1216 0%,#161a20 50%,#0f1216 100%);background-size:200% 100%;animation:ds-sh 1.2s infinite}
@keyframes ds-sh{to{background-position:-200% 0}}
.ds-app{display:flex;gap:16px;align-items:center;justify-content:space-between;flex-wrap:wrap;background:linear-gradient(135deg,#2a0b1c 0%,#0f1216 70%);border:1px solid #3d1229;border-radius:18px;padding:18px}
.ds-app strong{display:block;font-size:1.05rem}
.ds-app p{margin:.2em 0 0;color:#c3c9d0;font-size:.92rem}
.ds-app .store-row{margin:0;gap:8px}
.ds-app .store-badge{height:36px;width:auto}
.ds-note{text-align:center;color:var(--muted);font-size:.8rem;margin-top:28px}
/* dialogs */
.ds-dialog{border:1px solid var(--line,#1f252c);border-radius:20px;padding:0;max-width:540px;width:calc(100% - 24px);background:#0f1216;color:#f4f5f7;box-shadow:0 30px 80px rgba(0,0,0,.6)}
.ds-dialog::backdrop{background:rgba(0,0,0,.72);backdrop-filter:blur(4px)}
.ds-form{padding:22px;display:flex;flex-direction:column;gap:12px}
.ds-head{display:flex;align-items:center;justify-content:space-between}
.ds-form h2{margin:0;font-size:1.35rem;font-weight:800}
.ds-x{background:#1a1f26;border:0;color:#fff;width:32px;height:32px;border-radius:999px;cursor:pointer;font-size:1.1rem}
.ds-form label{font-weight:700;font-size:.85rem;color:#c3c9d0}
.ds-form textarea,.ds-form input[type=text],.ds-form select{width:100%;box-sizing:border-box;background:#090b0e;color:#fff;border:1px solid #262d35;border-radius:12px;padding:12px;font:inherit;font-size:1rem}
.ds-form textarea:focus,.ds-form input:focus,.ds-form select:focus{outline:none;border-color:#ED148C}
.ds-form textarea{min-height:130px;resize:vertical}
.ds-form .row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.ds-form .hint{font-size:.8rem;color:#8d96a0;margin:-6px 0 0;text-align:right}
.ds-form .check{display:flex;gap:8px;align-items:flex-start;font-weight:500;font-size:.88rem}
.ds-form .btns{display:flex;gap:10px;justify-content:flex-end}
.ds-msg{min-height:1.2em;font-size:.92rem;margin:0}
.ds-msg.err{color:#ff8a8a}
.ds-rules{font-size:.82rem;color:#aeb5bd;background:#090b0e;border:1px solid #1f252c;border-radius:12px;padding:10px 12px;margin:0}
/* share sheet */
.ds-preview{display:block;width:100%;max-width:300px;margin:0 auto;border-radius:14px;border:1px solid #1f252c;aspect-ratio:4/5;background:#000}
.ds-sharegrid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.ds-sharebtn{display:flex;flex-direction:column;align-items:center;gap:6px;background:#161a20;border:1px solid #1f252c;color:#fff;border-radius:14px;padding:12px 4px;cursor:pointer;font:inherit;font-size:.78rem;font-weight:600;text-decoration:none}
.ds-sharebtn:hover{border-color:#ED148C}
.ds-sharebtn svg{width:22px;height:22px}
.ds-size{display:flex;justify-content:center;gap:6px}
.ds-toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:#fff;color:#000;font-weight:700;padding:10px 16px;border-radius:999px;z-index:1000;box-shadow:0 10px 30px rgba(0,0,0,.4)}
.hp{position:absolute;left:-9999px}
@media (max-width:560px){
 .ds-form .row{grid-template-columns:1fr}
 .ds-bar{flex-wrap:wrap}.ds-city{width:100%}
 .ds-text{font-size:1.06rem}
 .ds-icon .lbl{display:none}
 .ds-sharegrid{grid-template-columns:repeat(4,1fr)}
}
@media (prefers-reduced-motion:reduce){.ds-cta,.ds-skel{transition:none;animation:none}}
.ds-size .ds-chip[aria-pressed="true"]{background:#fff;color:#000;border-color:#fff}

/* how it works */
.ds-how{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:28px 0 0;padding:0;list-style:none}
.ds-how li{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:14px;display:flex;gap:12px;align-items:flex-start}
.ds-how .ic{flex:none;width:36px;height:36px;border-radius:12px;background:var(--pink-soft);color:#ff79be;display:grid;place-items:center}
.ds-how .ic svg{width:18px;height:18px}
.ds-how b{display:block;font-size:.95rem}
.ds-how span{color:var(--muted);font-size:.84rem;line-height:1.35}
/* newsletter */
.ds-news{margin:28px 0 0;background:var(--card);border:1px solid var(--line);border-radius:18px;padding:20px;text-align:center}
.ds-news h2{margin:0 0 4px;font-size:1.2rem}
.ds-news p{margin:0 0 12px;color:var(--muted);font-size:.92rem}
.ds-news .signup{margin:0 auto;max-width:460px;background:none;border:0;padding:0}
.ds-news .signup-row{display:flex;gap:8px}
.ds-news input[type=email]{flex:1;background:#0b0e12;border:1px solid var(--line);border-radius:999px;color:#fff;padding:12px 16px;font:inherit}
.ds-news .signup-msg{font-size:.88rem;color:var(--muted);margin:8px 0 0;min-height:1em}
@media (max-width:640px){.ds-how{grid-template-columns:1fr}.ds-news .signup-row{flex-direction:column}}

/* top / trending */
.ds-badge{border-radius:999px;padding:3px 10px;font-weight:800;font-size:.78rem}
.ds-badge.top{background:linear-gradient(90deg,#ED148C,#ff7a59);color:#fff}
.ds-badge.trending{background:rgba(255,122,89,.16);color:#ffa58f}
.ds-card.is-top{border-color:rgba(237,20,140,.7);box-shadow:0 0 0 1px rgba(237,20,140,.35),0 10px 40px rgba(237,20,140,.18)}
.ds-card.is-trending{border-color:rgba(255,122,89,.45)}
.ds-form .opt{font-weight:500;color:#8d96a0}
.ds-legal{color:var(--muted);font-size:.78rem;line-height:1.5;margin:10px 0 0;text-align:center}
.ds-legal a{color:#c3c9d0}

#ds-rules-page{color:#e6e9ec;line-height:1.6}#ds-rules-page h2{font-size:1.3rem;margin:28px 0 8px}#ds-rules-page li{margin:0 0 8px}#ds-rules-page a:not(.ds-cta){color:#ff79be}

.ds-cta.ds-dish,.ds-hero .ds-cta.ds-dish{min-width:190px;justify-content:center;gap:10px;font-size:1.6rem;font-weight:900;letter-spacing:.02em;padding:14px 44px;line-height:1;background:linear-gradient(135deg,#ff2e9f 0%,#ED148C 55%,#c90f76 100%);box-shadow:0 10px 30px rgba(237,20,140,.35),inset 0 1px 0 rgba(255,255,255,.25)}
.ds-cta.ds-dish svg{width:22px;height:22px}
.ds-cta.ds-dish:hover{transform:translateY(-2px);box-shadow:0 14px 40px rgba(237,20,140,.5),inset 0 1px 0 rgba(255,255,255,.25)}
.ds-cta.ds-dish:active{transform:translateY(0)}

/* light pink accents */
.ds-board li:first-child button{border-color:rgba(237,20,140,.55);box-shadow:0 0 18px rgba(237,20,140,.22)}
.ds-card:hover{border-color:rgba(237,20,140,.35)}
.ds-city:focus,.ds-news input[type=email]:focus{outline:none;border-color:#ED148C;box-shadow:0 0 0 3px rgba(237,20,140,.18)}
.ds-vote:has(.up[aria-pressed="true"]) .n{color:#ff79be}
.ds-news{border-color:rgba(237,20,140,.25);box-shadow:0 0 40px rgba(237,20,140,.08)}
.ds-news .ds-cta,#ds-submit button[type=submit],.ds-share .ds-cta{background:linear-gradient(135deg,#ff2e9f 0%,#ED148C 55%,#c90f76 100%);box-shadow:0 6px 20px rgba(237,20,140,.3),inset 0 1px 0 rgba(255,255,255,.2)}

.ds-title{margin:0 0 6px;font-size:1.25rem;font-weight:500;line-height:1.25;color:#fff;overflow-wrap:anywhere}

/* reactions */
.ds-reacts{display:flex;gap:6px;flex-wrap:wrap}
.ds-react{display:inline-flex;align-items:center;gap:5px;background:var(--card2,#1e232a);border:1px solid transparent;color:#d9dde2;border-radius:999px;padding:6px 11px;min-height:36px;cursor:pointer;font:inherit;font-size:.9rem;font-weight:700;transition:background .15s,border-color .15s,transform .15s}
.ds-react .e{font-size:1.05rem;line-height:1;filter:grayscale(.35);transition:filter .15s,transform .15s}
.ds-react .c{font-variant-numeric:tabular-nums;min-width:0}
.ds-react:hover{background:#2a3039}
.ds-react:hover .e{filter:none;transform:scale(1.12)}
.ds-react.on{background:rgba(237,20,140,.16);border-color:rgba(237,20,140,.6);color:#fff}
.ds-react.on .e{filter:none}
.ds-react.pop .e{animation:ds-pop .35s ease}
@keyframes ds-pop{0%{transform:scale(1)}40%{transform:scale(1.45)}100%{transform:scale(1)}}
@media (max-width:560px){.ds-foot{flex-wrap:wrap;gap:8px}.ds-react{padding:6px 9px}}
@media (prefers-reduced-motion:reduce){.ds-react.pop .e{animation:none}}

/* minimal reactions (v3) */
.ds-react{background:transparent;border:1px solid var(--line,#2a3039);padding:5px 10px;min-height:34px;color:var(--muted,#a3abb4);font-weight:600}
.ds-react:hover{background:var(--card2,#1e232a);color:#fff}
.ds-react .e{filter:none}
.ds-react.on{background:rgba(237,20,140,.14);border-color:rgba(237,20,140,.65);color:#fff}
.ds-more{display:block;margin:6px auto 0;background:transparent;border:1px solid var(--line,#2a3039);color:#fff;border-radius:999px;padding:12px 22px;font:inherit;font-weight:700;cursor:pointer}
.ds-more:hover{border-color:#ED148C}
.ds-related{margin:36px 0 0}
.ds-related h2{font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted,#a3abb4);margin:0 0 12px}
.ds-related .ds-cta{margin-top:14px}
h1.ds-title{font-size:1.5rem}

.ds-verdict{margin:0 0 8px;font-size:.85rem;color:var(--muted,#a3abb4)}
.ds-verdict b{font-weight:800}
.ds-verdict.red b{color:#ff8080}
.ds-verdict.green b{color:#6fe0a4}

/* clickable how-it-works tiles (v2) */
.ds-how li{padding:0;display:block;background:none;border:0}
.ds-how li button{width:100%;height:100%;display:flex;gap:12px;align-items:center;text-align:left;background:var(--card,#171b21);border:1px solid var(--line,#2a3039);border-radius:16px;padding:14px;color:inherit;font:inherit;cursor:pointer;transition:border-color .15s,transform .15s}
.ds-how li button:hover{border-color:rgba(237,20,140,.55);transform:translateY(-1px)}
.ds-how .tx b{display:block;font-size:.98rem}
.ds-how .tx span{display:block;color:var(--muted,#a3abb4);font-size:.84rem;line-height:1.35}
.ds-how .ic span{font-size:1rem}
/* studio */
.st-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px}
.st-slide{margin:0;display:flex;flex-direction:column;gap:8px}
.st-slide img{width:100%;border-radius:12px;border:1px solid #2a3039}
.st-slide .ds-cta{justify-content:center;font-size:.85rem;padding:8px 12px}

/* select with breathing room for the chevron */
.ds-form select{appearance:none;-webkit-appearance:none;padding-right:44px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a3abb4' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 16px center;background-size:16px;cursor:pointer}
.ds-form select::-ms-expand{display:none}

.ds-chip{min-height:36px}
.ds-tabs .ds-chip{min-height:32px}

.ds-app strong .pink{color:#ff4fb0}
.ds-app strong{font-size:1.15rem}

.ds-tag.k-date-spot{background:rgba(95,212,255,.14);color:#8fe2ff}
.ds-venue{margin:0 0 8px;font-size:.92rem;color:var(--muted,#a3abb4)}
.ds-venue b{color:#fff}
.ds-venue a{color:#8fe2ff;text-decoration:none;font-weight:600}
.ds-venue a:hover{text-decoration:underline}
.ds-spots{background:var(--card,#171b21);border:1px solid var(--line,#2a3039);border-radius:18px;padding:16px 18px}
.ds-spots h2{font-size:.8rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted,#a3abb4);margin:0 0 8px}
.ds-spots ol{margin:0;padding-left:1.3em}
.ds-spots li{padding:4px 0}
.ds-spots a{color:#fff;text-decoration:none}.ds-spots a:hover b{color:#8fe2ff}
.ds-spots span{color:var(--muted,#a3abb4);font-size:.85rem}

.ds-team{font-size:.72rem;font-weight:600;letter-spacing:.02em;color:#ff79be;border:1px solid rgba(255,121,190,.45);border-radius:999px;padding:2px 9px}
.ds-cta.is-busy{opacity:.85;cursor:progress;position:relative;padding-left:2.4em}
.ds-cta.is-busy::before{content:"";position:absolute;left:1em;top:50%;width:1em;height:1em;margin-top:-.5em;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;animation:ds-spin .8s linear infinite}
@keyframes ds-spin{to{transform:rotate(360deg)}}
.ds-wait{margin:2px 0 0;font-size:.82rem;color:#8e8e93}
