/* Burro Review theme. THE restyle surface: tokens first, then component skin.
   deck.js has no colours and app.js only sets classes, so a new visual direction is a change to this file only.
   Current skin = Burrohost r3final tokens (paper/ink/sage/amber, Schibsted Grotesk). Visual direction is pending
   Gary's reference ratings (design/DESIGN.md §5). */
@font-face{font-family:"Schibsted";src:url(assets/schibsted.woff2) format("woff2");font-weight:400 900;font-display:swap}

:root{
  --font:"Schibsted",system-ui,-apple-system,"Segoe UI",sans-serif;
  --paper:#FAF6EF; --surface:#FFFFFF; --panel:#F2EBE0; --sand:#E9DBC2; --dawn:#F6E4CC;
  --ink:#221F1C; --muted:#5E5850; --faint:#8C847A; --line:#E8DED0; --line-2:#DCCFBE;
  --love:#2C6A4D; --love-soft:#E3EEE7;
  --change:#C2741F; --change-soft:#FBEBD3;
  --no:#9A4A35; --no-soft:#F6E3DC;
  --accent:#E0902F;
  --r-card:24px; --r-media:16px; --r-md:14px; --r-sm:10px;
  --shadow-card:0 1px 0 rgba(27,29,35,.04),0 2px 6px rgba(43,33,25,.06),0 18px 40px -16px rgba(43,33,25,.22);
  --shadow-btn:0 1px 0 rgba(27,29,35,.04),0 6px 16px -6px rgba(43,33,25,.25);
  --shadow-float:0 2px 4px rgba(27,29,35,.06),0 24px 60px -18px rgba(43,33,25,.35);
  --ease:cubic-bezier(.2,.7,.2,1);
  --gutter:16px; --bar-h:56px; --votes-h:96px;
}

*,*::before,*::after{box-sizing:border-box}
html,body{height:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:450 16px/1.5 var(--font);-webkit-font-smoothing:antialiased;
  display:flex;flex-direction:column;overflow:hidden;overscroll-behavior:none}
button{font:inherit;color:inherit}
h1,h2,h3{margin:0;font-weight:700;letter-spacing:-.02em;line-height:1.12;text-wrap:balance}
p{margin:0}
[hidden]{display:none !important}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:12px;top:-60px;background:var(--ink);color:#fff;padding:10px 14px;border-radius:10px;z-index:100}
.skip:focus{top:12px}
:focus-visible{outline:2.5px solid var(--love);outline-offset:3px;border-radius:8px}
kbd{font:600 12px/1 var(--font);background:var(--surface);border:1px solid var(--line-2);border-bottom-width:2px;border-radius:6px;padding:3px 6px;min-width:22px;display:inline-block;text-align:center}
.eyebrow{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--faint)}

/* ---------- header ---------- */
.bar{flex:none;height:var(--bar-h);display:flex;align-items:center;gap:10px;padding:0 var(--gutter);padding-top:env(safe-area-inset-top)}
.bar-mark{width:34px;height:34px;border-radius:9px}
.bar-title{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.15}
.bar-title b{font-size:15px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bar-title span{font-size:13px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pill{font:650 13px/1 var(--font);background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:7px 11px;font-variant-numeric:tabular-nums;white-space:nowrap}
.icon-btn{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 12px;border-radius:999px;border:1px solid var(--line-2);background:var(--surface);cursor:pointer;font-size:14px;font-weight:600}
.icon-btn svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2}
.icon-btn:hover{border-color:var(--ink)}
.progress{flex:none;height:3px;margin:0 var(--gutter);background:var(--line);border-radius:3px;overflow:hidden}
.progress i{display:block;height:100%;width:0;background:var(--ink);border-radius:3px;transition:width .4s var(--ease)}
.offline{flex:none;margin:8px var(--gutter) 0;padding:9px 12px;border-radius:var(--r-sm);background:var(--change-soft);color:#6E3F0E;font-size:14px}

/* ---------- layout ---------- */
main{flex:1;min-height:0;position:relative;display:flex;flex-direction:column}
.stage-wrap{flex:1;min-height:0;display:flex;flex-direction:column;position:relative}
.stage{flex:1;min-height:0;position:relative;container-type:size;outline:none}
.rail,.side{display:none}
.foot{flex:none;text-align:center;font-size:12px;color:var(--faint);padding:0 16px calc(6px + env(safe-area-inset-bottom))}

/* ---------- card ---------- */
.card{--body:108px;--ar:.8;--cw:min(100cqw - 2*var(--gutter), 460px, (100cqh - 48px - var(--body) - 16px) * var(--ar));--ch:calc(var(--cw) / var(--ar) + var(--body));
  position:absolute;left:50%;top:calc((100cqh - var(--ch) - 24px) / 2);width:var(--cw);height:var(--ch);margin-left:calc(var(--cw) / -2);
  background:var(--surface);border-radius:var(--r-card);box-shadow:var(--shadow-card);
  display:flex;flex-direction:column;padding:8px;touch-action:pan-y;user-select:none;-webkit-user-select:none;
  will-change:transform;transform-origin:50% 115%;cursor:grab;contain:layout}
.card:active{cursor:grabbing}
.card-media{flex:1;min-height:0;border-radius:var(--r-media);overflow:hidden;background:var(--panel);position:relative}
.card-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none;-webkit-user-drag:none}
.card-body{flex:none;height:calc(var(--body) - 8px);padding:10px 8px 2px;display:flex;flex-direction:column;gap:4px;min-width:0}
.meta{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted);white-space:nowrap;overflow:hidden}
.meta b{color:var(--ink);font-weight:650}
.chan{font-size:12px;font-weight:600;border:1px solid var(--line);border-radius:999px;padding:1px 8px;color:var(--muted)}
.cap{font-size:14.5px;line-height:1.4;color:var(--ink);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.more{align-self:flex-start;background:none;border:0;padding:2px 0;font-size:13px;font-weight:650;color:var(--love);cursor:pointer}
.drawer{position:absolute;inset:8px;border-radius:var(--r-media);background:rgba(255,255,255,.97);padding:18px 18px 56px;overflow-y:auto;touch-action:pan-y;user-select:text;-webkit-user-select:text}
.drawer pre{white-space:pre-wrap;font:15px/1.5 var(--font);margin:8px 0 0}
.drawer .close{position:absolute;right:12px;bottom:12px}
.answer{position:absolute;top:16px;right:16px;font-size:12px;font-weight:700;padding:5px 10px;border-radius:999px;background:var(--surface);box-shadow:var(--shadow-btn)}
.answer.love{color:var(--love)}.answer.change{color:var(--change)}.answer.no{color:var(--no)}

/* stamps: opacity driven by deck.js */
.stamp{position:absolute;top:28px;z-index:3;pointer-events:none;opacity:0;font:800 26px/1 var(--font);letter-spacing:.02em;text-transform:uppercase;
  padding:8px 14px;border:3.5px solid currentColor;border-radius:12px;background:rgba(255,255,255,.88)}
.stamp-r{left:24px;color:var(--love);transform:rotate(-12deg)}
.stamp-l{right:24px;color:var(--no);transform:rotate(12deg)}
.stamp-d{left:50%;top:auto;bottom:130px;color:var(--no);transform:translateX(-50%)}

/* intro + pair cards */
.card-intro{justify-content:center;padding:28px 26px;gap:14px;cursor:default}
.card-intro h2{font-size:28px}
.card-intro p{color:var(--muted);font-size:16px}
.how{display:grid;gap:10px;margin:6px 0 8px;padding:0;list-style:none}
.how li{display:flex;gap:12px;align-items:center;font-size:15px}
.how i{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;font-style:normal;flex:none;box-shadow:var(--shadow-btn);background:var(--surface)}
.how svg{width:18px;height:18px;fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.card-pair{padding:16px 12px 12px;gap:12px}
.pair-h{text-align:center;padding:4px 8px 0}
.pair-h h3{font-size:19px}.pair-h p{font-size:13px;color:var(--muted)}
.pair{flex:1;min-height:0;display:grid;grid-template-columns:1fr 1fr;gap:10px}
.opt{border:1.5px solid var(--line);border-radius:var(--r-md);background:var(--paper);padding:10px;display:flex;flex-direction:column;gap:8px;cursor:pointer;min-height:0;text-align:left;transition:border-color .15s,transform .16s var(--ease)}
.opt:hover{border-color:var(--ink)}
.opt.picked{border-color:var(--love);transform:scale(1.04)}
.opt .viz{flex:1;min-height:64px;border-radius:10px;overflow:hidden;display:grid;place-items:center;text-align:center;padding:8px}
.opt .lab{font-size:14px;font-weight:650}
.sw{display:flex;width:100%;height:100%}.sw i{flex:1}
.pair-skip{align-self:center;background:none;border:0;color:var(--muted);font-weight:600;font-size:14px;padding:6px 14px;cursor:pointer}

/* ---------- vote bar ---------- */
.votes{flex:none;height:var(--votes-h);display:flex;justify-content:center;align-items:flex-end;padding-bottom:6px !important;gap:18px;padding:0 var(--gutter)}
.vote{display:flex;flex-direction:column;align-items:center;gap:6px;background:none;border:0;padding:0;cursor:pointer;-webkit-tap-highlight-color:transparent}
.v-ic{width:60px;height:60px;border-radius:50%;background:var(--surface);box-shadow:var(--shadow-btn);display:grid;place-items:center;border:1px solid var(--line);
  transition:transform .12s var(--ease),box-shadow .12s,background-color .15s}
.v-ic svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.v-l{font-size:12.5px;font-weight:650;color:var(--muted)}
.v-undo .v-ic{width:46px;height:46px}.v-undo svg{width:20px;height:20px}
.v-love .v-ic,.v-nope .v-ic{width:68px;height:68px}.v-spacer{width:46px}
.v-love{color:var(--love)}.v-nope{color:var(--no)}.v-undo{color:var(--muted)}
.v-love svg{fill:currentColor;stroke:none}.v-love .v-ic svg,.v-nope .v-ic svg{width:30px;height:30px}
@media (hover:hover){.vote:not(:disabled):hover .v-ic{transform:translateY(-2px);box-shadow:var(--shadow-float)}}
.vote:not(:disabled):active .v-ic{transform:scale(.94)}
.vote:disabled{opacity:.38;cursor:default}
.vote.lit .v-ic{background:currentColor}.vote.lit svg{stroke:#fff}.v-love.lit svg{fill:#fff}


/* ---------- chips ---------- */
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{height:38px;padding:0 14px;border-radius:999px;border:1px solid var(--line-2);background:var(--surface);font-size:14px;font-weight:600;cursor:pointer;
  transition:background-color .12s,border-color .12s,color .12s;display:inline-flex;align-items:center;gap:6px}
.chip:hover{border-color:var(--ink)}
.chip[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:#fff}
.chip[aria-pressed="true"]::before{content:"";width:12px;height:12px;background:currentColor;
  -webkit-mask:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"><path d="M20 6 9 17l-5-5"/></svg>') center/contain no-repeat;
          mask:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="3.5" stroke-linecap="round" stroke-linejoin="round"><path d="M20 6 9 17l-5-5"/></svg>') center/contain no-repeat}

/* ---------- sheet ---------- */
dialog{border:0;padding:0;color:var(--ink);background:var(--surface)}
dialog::backdrop{background:rgba(34,31,28,.28);backdrop-filter:blur(2px)}
.sheet{width:100%;max-width:560px;margin:auto auto 0;border-radius:24px 24px 0 0;padding:10px 20px calc(18px + env(safe-area-inset-bottom));max-height:78vh;overflow-y:auto}
.sheet[open]{animation:sheet .32s cubic-bezier(.2,.9,.25,1)}
@keyframes sheet{from{transform:translateY(100%)}}
.sheet-handle{width:36px;height:4px;border-radius:4px;background:var(--line-2);margin:0 auto 14px}
.sheet h2{font-size:21px}
.sheet .sub{color:var(--muted);font-size:14.5px;margin:4px 0 14px}
.field{display:block;position:relative;margin-top:14px}
textarea,input[type=email],input[type=password],input[type=text]{width:100%;font:16px/1.45 var(--font);color:var(--ink);background:var(--paper);border:1px solid var(--line-2);border-radius:var(--r-md);padding:12px 14px;resize:none;transition:border-color .15s,background-color .15s}
textarea:focus,input:focus{outline:none;border-color:var(--ink);background:var(--surface)}
.count{position:absolute;right:12px;bottom:8px;font-size:12px;color:var(--faint)}
.sheet-actions{display:flex;justify-content:space-between;align-items:flex-start;margin-top:16px;gap:12px}
.send-wrap{display:flex;flex-direction:column;align-items:flex-end;gap:6px}
.hint{font-size:12.5px;color:var(--faint)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:48px;padding:0 22px;border-radius:999px;font-weight:650;font-size:16px;border:1px solid transparent;cursor:pointer;transition:background-color .15s,border-color .15s,transform .12s,opacity .15s}
.btn:active{transform:translateY(1px)}
.btn-ink{background:var(--ink);color:#fff}.btn-ink:hover{background:#3a352f}
.btn-ink:disabled{opacity:.3;cursor:default;transform:none}
.btn-ghost{background:transparent;border-color:var(--line-2)}.btn-ghost:hover{border-color:var(--ink)}
.btn-text{background:none;border:0;color:var(--muted);font-weight:650;height:44px;padding:0 10px}
.btn-block{width:100%}
.pop{border-radius:20px;padding:22px 24px;width:min(92vw,380px);box-shadow:var(--shadow-float)}
.pop h2{font-size:20px;margin-bottom:12px}
.pop dl,.keys dl{display:grid;grid-template-columns:auto 1fr;gap:9px 14px;margin:0 0 18px;font-size:14.5px;align-items:center}
.pop dd,.keys dd{margin:0}
.pop .btn{width:100%}

/* ---------- toast ---------- */
.toast{position:fixed;left:50%;top:calc(var(--bar-h) + 14px + env(safe-area-inset-top));transform:translate(-50%,-8px);opacity:0;pointer-events:none;
  background:var(--ink);color:#fff;font-size:14px;font-weight:600;padding:9px 16px;border-radius:999px;transition:opacity .2s,transform .2s var(--ease);z-index:50;white-space:nowrap}
.toast.on{opacity:1;transform:translate(-50%,0)}
.toast.err{background:var(--no)}

/* ---------- full screens: login, survey, done, empty, list ---------- */
.screen{position:absolute;inset:0;overflow-y:auto;padding:12px var(--gutter) 24px;z-index:10;background:var(--paper)}
.panel{max-width:520px;margin:4vh auto 0;background:var(--surface);border-radius:var(--r-card);box-shadow:var(--shadow-card);padding:28px 24px}
.panel h1{font-size:28px;margin:6px 0 8px}
.panel .lead{color:var(--muted);font-size:16px;margin-bottom:20px}
.panel label{display:block;font-size:14px;font-weight:650;margin:14px 0 6px}
.panel .btn-block{margin-top:20px}
.panel .err{color:var(--no);font-size:14px;margin-top:12px}
.art{width:96px;height:96px;border-radius:24px;background:var(--dawn);display:grid;place-items:center;margin-bottom:10px}
.art img{width:64px;height:64px}
.skips{display:flex;gap:6px;margin:14px 0 4px}
.skips i{width:28px;height:6px;border-radius:6px;background:var(--line)}
.skips i.used{background:var(--change)}
.steps{display:flex;gap:4px;margin-bottom:18px}.steps i{flex:1;height:4px;border-radius:4px;background:var(--line)}.steps i.on{background:var(--ink)}
.q-actions{display:flex;justify-content:space-between;align-items:center;margin-top:20px}
.swatches{display:flex;gap:8px;margin:12px 0}.swatches i{width:36px;height:36px;border-radius:10px;border:1px solid var(--line)}
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:18px 0}
.stat{border-radius:var(--r-md);padding:12px;background:var(--paper);text-align:center}
.stat b{display:block;font-size:26px;letter-spacing:-.02em}
.stat span{font-size:13px;color:var(--muted)}
.stat.love b{color:var(--love)}.stat.change b{color:var(--change)}.stat.no b{color:var(--no)}
.list-head{max-width:880px;margin:8px auto 14px;display:flex;flex-wrap:wrap;align-items:end;justify-content:space-between;gap:12px}
.list-head h1{font-size:26px}.list-head p{color:var(--muted);font-size:14.5px}
.filters{display:flex;gap:6px;flex-wrap:wrap}
.grid{max-width:880px;margin:0 auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
.tile{position:relative;border:0;padding:0;background:var(--surface);border-radius:var(--r-md);overflow:hidden;box-shadow:var(--shadow-btn);cursor:pointer;text-align:left}
.tile img{display:block;width:100%;aspect-ratio:4/5;object-fit:cover;background:var(--panel)}
.tile .tl{display:flex;justify-content:space-between;align-items:center;padding:8px 10px;font-size:13px;gap:6px}
.tile .tl span{color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tag{font-style:normal;font-size:11.5px;font-weight:700;padding:3px 8px;border-radius:999px;white-space:nowrap;background:var(--panel);color:var(--muted)}
.tag.love{background:var(--love-soft);color:var(--love)}.tag.change{background:var(--change-soft);color:var(--change)}.tag.no{background:var(--no-soft);color:var(--no)}
.tile .note{padding:0 10px 9px;font-size:12.5px;color:var(--muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.back-btn{margin:0 auto 10px;display:flex;max-width:880px}

/* ---------- desktop ---------- */
@media (min-width:1024px){
  :root{--bar-h:68px;--gutter:28px}
  main{display:grid;grid-template-columns:260px minmax(0,1fr) 340px;max-width:1240px;width:100%;margin:0 auto;gap:8px}
  .rail:not([hidden]),.side:not([hidden]){display:flex;flex-direction:column}
  .rail{padding:28px 8px 24px 28px;gap:16px}
  .rail h1{font-size:22px}
  .ring{position:relative;width:132px;height:132px;display:grid;place-items:center;align-content:center;margin:4px 0}
  .ring svg{position:absolute;inset:0;transform:rotate(-90deg)}
  .ring circle{fill:none;stroke:var(--line);stroke-width:9}
  .ring #r-arc{stroke:var(--ink);stroke-linecap:round;stroke-dasharray:326.7;stroke-dashoffset:326.7;transition:stroke-dashoffset .5s var(--ease)}
  .ring b{font-size:34px;letter-spacing:-.03em;line-height:1}.ring span{font-size:13px;color:var(--muted);max-width:80px;text-align:center;line-height:1.2;margin-top:2px}
  .tally{list-style:none;margin:0;padding:0;display:grid;gap:6px;font-size:14.5px}
  .tally li{display:flex;justify-content:space-between;padding:8px 12px;border-radius:10px;background:var(--surface);border:1px solid var(--line)}
  .tally b{font-variant-numeric:tabular-nums}
  .keys{margin-top:auto;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);padding:14px 16px}
  .keys dl{margin:10px 0 0;font-size:14px}
  .side{padding:28px 28px 24px 8px;gap:14px;overflow-y:auto}
  .side .meta{flex-wrap:wrap;white-space:normal}
  .side h2{font-size:20px}
  .side pre{white-space:pre-wrap;font:15.5px/1.55 var(--font);margin:0;color:var(--ink)}
  .side .box{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);padding:16px 18px}
  .side .q{background:var(--change-soft);border-color:#F0D9AE}
  .card{--body:52px}
  .card .card-body{padding-top:8px}
  .card .cap,.card .more{display:none}
  .screen{grid-column:1 / -1}
  .sheet{margin:auto;border-radius:24px;padding:24px 28px}
  .sheet-handle{display:none}
  .foot{padding-bottom:10px}
}

@media (prefers-reduced-motion:reduce){
  *{animation-duration:.01ms !important;transition-duration:.12s !important}
}

/* ---------- additions: variants, pair visuals, survey stage, preview pill ---------- */
.alts{position:absolute;top:10px;left:50%;transform:translateX(-50%);display:flex;gap:4px;background:rgba(255,255,255,.92);padding:4px;border-radius:999px;box-shadow:var(--shadow-btn);z-index:2}
.alt{border:0;background:none;font-size:12.5px;font-weight:650;padding:6px 11px;border-radius:999px;cursor:pointer;color:var(--muted);white-space:nowrap}
.alt.on{background:var(--ink);color:#fff}
.viz-fill{width:100%;height:100%;display:grid;place-items:center;font-weight:750;font-size:15px;letter-spacing:.02em;border-radius:8px;padding:8px}
.viz-font{font-size:26px;line-height:1.1;color:var(--ink)}
.viz-tone{font-size:15px;line-height:1.4;color:var(--ink);font-style:italic}
.opt .viz{background:var(--surface);padding:0}
.opt .viz:has(.viz-font),.opt .viz:has(.viz-tone){padding:12px}
.preview-pill{background:var(--dawn);border-color:#EED6B5;color:#6E3F0E;font-size:12px}
.stage.mini{flex:none;height:min(60vh,520px);margin:0 -12px}
.stage.mini .card{--cw:min(100cqw - 8px,440px);--ch:calc(100cqh - 24px);top:0}
.panel.survey-pairs{padding:8px 4px 12px;background:none;box-shadow:none}
.panel textarea{font-size:16px}
.done h1{font-size:26px}
h1,h2,.card-intro h2{font-family:var(--font-display,var(--font))}
@media (max-width:520px){.icon-btn span{display:none}.icon-btn{width:40px;padding:0;justify-content:center}.preview-pill .long{display:none}}
.q-line{color:var(--ink);background:var(--change-soft);border-radius:8px;padding:3px 8px;font-size:13.5px;line-height:1.35}.q-line b{color:var(--change);font-weight:700}
.drawer .dq{font-size:16px;margin:6px 0 6px}.drawer .hint{margin-bottom:16px;display:block}

/* stack look: the top card draws two paper sheets under itself (same shape as the post, whatever its aspect) */
.card{--stack-shadow:0 10px 0 -5px var(--surface),0 10px 0 -4px var(--line-2),0 20px 0 -10px var(--surface),0 20px 0 -9px var(--line);
  transition:box-shadow .2s var(--ease)}
.card[aria-hidden="false"]{box-shadow:var(--stack-shadow),var(--shadow-card)}
.card.dragging,.card[inert]{box-shadow:var(--shadow-card)}
.stage.mini .card[aria-hidden="false"]{box-shadow:var(--shadow-card)}

/* ---------- left-swipe sheet: reasons + Fix it / Bin it ---------- */
.sheet-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.icon-x{flex:none;width:40px;height:40px;border-radius:50%;border:1px solid var(--line-2);background:var(--surface);display:grid;place-items:center;cursor:pointer;margin:-4px -6px 0 0}
.icon-x svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round}
.icon-x:hover{border-color:var(--ink)}
.sheet-choice{display:grid;grid-template-columns:1fr 1.25fr;gap:10px;margin-top:16px}
.sheet-choice .btn{height:auto;min-height:60px;border-radius:18px;padding:10px 16px;justify-content:center;text-align:center}
.sheet-choice .btn span{display:flex;flex-direction:column;gap:2px;line-height:1.15}
.sheet-choice .btn small{font-size:12.5px;font-weight:500;opacity:.75}
.choice-bin{color:var(--no)}.choice-bin:hover{border-color:var(--no);background:var(--no-soft)}
.sheet .hint{display:block;text-align:right;margin-top:8px}

/* ---------- answer box for a post's questions ---------- */
.card.has-q{--body:calc(64px + var(--qn,1) * 100px);--cw:min(100cqw - 2*var(--gutter), 460px);--ch:calc(100cqh - 48px)}   /* full width; the image letterboxes above the answers, never crops */
.card.has-q .card-body{overflow-y:auto;overscroll-behavior:contain}
.qa{display:flex;flex-direction:column;gap:10px;cursor:auto}
.qa-item{background:var(--change-soft);border-radius:12px;padding:8px 10px}
.qa-q{font-size:13.5px;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.qa-q b{color:var(--change);font-weight:700;margin-right:2px}
.qa-row{display:flex;gap:8px;margin-top:7px;align-items:center}
.qa-yn{display:flex;gap:6px;flex:none}
.yn{height:34px;min-width:52px;padding:0 12px;border-radius:999px;border:1px solid var(--line-2);background:var(--surface);font-size:14px;font-weight:650;cursor:pointer}
.yn[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:#fff}
.qa-text{flex:1;min-width:0;height:34px;padding:0 12px !important;font-size:14px !important;border-radius:999px !important;background:var(--surface) !important}
#side-q .qa-item{background:none;padding:0}
#side-q .qa-q{-webkit-line-clamp:unset;font-size:15px}
#side-q .qa-item+.qa-item{border-top:1px solid #F0D9AE;padding-top:10px}

/* ---------- full-screen viewer ---------- */
.viewer{position:fixed;inset:0;z-index:200;background:rgba(20,17,14,calc(.985 * var(--fade,1)));display:grid;place-items:center;overflow:hidden;
  touch-action:none;opacity:0;transition:opacity .18s var(--ease);cursor:zoom-in}
.viewer.on{opacity:1}.viewer.off{opacity:0}
.viewer img{max-width:100vw;max-height:100svh;object-fit:contain;user-select:none;-webkit-user-drag:none;transform-origin:50% 50%;will-change:transform}
.viewer img.anim{transition:transform .28s cubic-bezier(.2,.8,.2,1)}
.viewer-x{position:absolute;top:calc(12px + env(safe-area-inset-top));right:12px;width:44px;height:44px;border-radius:50%;border:0;background:rgba(255,255,255,.92);display:grid;place-items:center;cursor:pointer;box-shadow:var(--shadow-btn)}
.viewer-x svg{width:20px;height:20px;fill:none;stroke:var(--ink);stroke-width:2.2;stroke-linecap:round}
.viewer-hint{position:absolute;bottom:calc(16px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);color:rgba(255,255,255,.75);font-size:13px;white-space:nowrap;pointer-events:none}
.card .card-media{cursor:zoom-in}

@media (min-width:1024px){
  .card.has-q{--body:52px;--cw:min(100cqw - 2*var(--gutter), 480px, (100cqh - 48px - var(--body) - 16px) * var(--ar));--ch:calc(var(--cw) / var(--ar) + var(--body))}
  .card.has-q .qa{display:none}
  .sheet-choice .btn{min-height:64px}
}
@media (prefers-reduced-motion:reduce){.viewer img.anim{transition:none}}
.card-body>*{flex:none}
.viewer-hint{animation:hintout .4s ease 2.6s forwards}@keyframes hintout{to{opacity:0}}

/* ---------- "Your ideas": the one open prompt (Gary #237) ---------- */
.card-ideas{justify-content:center;padding:26px 22px;gap:12px;cursor:default}
.card-ideas h2{font-size:24px}
.card-ideas p{color:var(--muted);font-size:15px}
.card-ideas textarea{min-height:120px;font-size:16px}
.ideas-row{display:grid;grid-template-columns:1fr 1.4fr;gap:10px}
