/* iMessage dark mode - sizes measured from an iPhone screenshot (1pt = 1px) */
:root{
  --bg:#000; --bubble:#222125; --me:#2A8DFF;
  --text:#fff; --muted:#8E8E93; --chip:#191919; --chip-line:#333;
}
*{box-sizing:border-box;margin:0;padding:0}
[hidden]{display:none!important}
html,body{height:100%;background:var(--bg);color:var(--text);
  font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Helvetica Neue",Helvetica,Arial,sans-serif;
  -webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}
.app{position:relative;max-width:480px;margin:0 auto;height:100vh;height:100dvh;display:flex;flex-direction:column;overflow:hidden}
body:has(.app:not([hidden])){overflow:hidden} /* layout only: the field is always on screen; #chat and #qr scroll inside */

/* Header (iOS 26, measured from Annika's 10/13 screen recording): floats over the thread, messages scroll under it.
   44pt glass circles (back / FaceTime) top-aligned with the 60pt contact circle; name in a 32pt pill overlapping it. */
.top{position:absolute;top:0;left:0;right:0;z-index:2;text-align:center;padding:calc(12px + env(safe-area-inset-top)) 0 14px;pointer-events:none;
  background:linear-gradient(#000 0%,rgba(0,0,0,.92) 35%,rgba(0,0,0,.6) 70%,rgba(0,0,0,0) 100%)} /* clean dark fade, no blur - like Messages */
.hb{position:absolute;top:calc(12px + env(safe-area-inset-top));width:44px;height:44px;border-radius:50%;background:rgba(24,24,24,.86);
  border:1px solid #252525;display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}
.hb-back{left:16px}.hb-back svg{width:12px;height:20px;margin-left:-2px}
.hb-video{right:16px}.hb-video svg{width:26px;height:17px}
.av{width:60px;height:60px;border-radius:50%;margin:0 auto;
  background:linear-gradient(180deg,#989EAA 0%,#7B7D8A 100%);
  display:flex;align-items:center;justify-content:center;font-size:26px;font-weight:600;color:#fff;letter-spacing:.3px}
.who{position:relative;margin-top:-5px;display:inline-flex;align-items:center;gap:5px;height:32px;padding:0 11px 0 14px;
  background:rgba(24,24,24,.9);border:1px solid #272727;border-radius:16px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);
  font-size:17px;font-weight:600;letter-spacing:-.4px;color:var(--text)}
.pv-tag{display:table;margin:6px auto 0;padding:3px 10px;border-radius:999px;background:#3A2E00;color:#FFD60A;font-size:12px;font-weight:600}
.who::after{content:"";width:6px;height:11px;background:#565656;
  -webkit-mask:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 6 11"><path d="M1 1l4 4.5L1 10" fill="none" stroke="black" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/></svg>') center/contain no-repeat;
  mask:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 6 11"><path d="M1 1l4 4.5L1 10" fill="none" stroke="black" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/></svg>') center/contain no-repeat}

#chat::-webkit-scrollbar{display:none}

/* "iMessage / Encrypted" label at the top of the thread */
.enc{font-size:12px;line-height:15px;color:var(--muted);text-align:center;margin:4px 0 0}
.enc svg{width:9px;height:11px;vertical-align:-1px}

#chat{flex:1;min-height:0;overflow-y:auto;scrollbar-width:none;padding:calc(var(--top-h,124px) + 8px) 17px calc(var(--dock-h,64px) + 10px) 16px;overflow-anchor:none}

/* Timestamp: "Today 10:21 PM" */
.stamp{font-size:12px;line-height:15px;color:var(--muted);text-align:center;margin:20px 0 9px}
.stamp b{font-weight:600}

/* Bubbles: 17pt text, 22pt lines, 9pt/15pt insets -> 40pt tall single line, fully rounded */
.l,.r{position:relative;max-width:75%;width:fit-content;padding:9px 15px;font-size:17px;line-height:22px;
  letter-spacing:-.43px;margin-top:10px;border-radius:20px;word-wrap:break-word;animation:pop .18s ease-out}
.l{background:var(--bubble);color:var(--text)}
.r{background:var(--me);color:#fff;margin-left:auto}
.l + .l,.r + .r{margin-top:2px}
.l.gap{margin-top:16px}
.l.multi{white-space:pre-line}

/* Tail: small hook under the bottom corner of the last bubble in a group */
.l:not(:has(+ .l))::after,.r:not(:has(+ .r))::after{content:"";position:absolute;bottom:-8px;width:14px;height:9px;
  -webkit-mask:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 9"><path d="M0 0H11C11 3.4 11.8 6.1 14 8.5C9 9 3.7 6 0 0Z"/></svg>') center/100% 100% no-repeat;
  mask:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 14 9"><path d="M0 0H11C11 3.4 11.8 6.1 14 8.5C9 9 3.7 6 0 0Z"/></svg>') center/100% 100% no-repeat}
.r:not(:has(+ .r))::after{right:6px;background:var(--me)}
.l:not(:has(+ .l))::after{left:6px;background:var(--bubble);transform:scaleX(-1)}
.r:not(:has(+ .r)),.l:not(:has(+ .l)){margin-bottom:2px}

.delivered{font-size:11px;line-height:13px;color:var(--muted);text-align:right;margin:6px 21px 0 0}

/* Typing indicator */
.typing{display:flex;gap:5px;padding:12px 14px}
.typing i{width:8px;height:8px;border-radius:50%;background:#8E8E93;animation:blink 1.3s infinite}
.typing i:nth-child(2){animation-delay:.2s}.typing i:nth-child(3){animation-delay:.4s}

/* Photos */
.photo{display:block;width:72%;max-width:280px;aspect-ratio:4/5;background:#fff;border-radius:18px;margin:8px 0 2px;
  overflow:hidden;cursor:pointer;animation:pop .2s ease-out;border:0;padding:0}
.photo + .photo{margin-top:2px}
.cap{font-size:13px;line-height:17px;color:var(--muted);margin:5px 0 2px 4px}
.photo img{width:100%;height:100%;object-fit:contain;display:block}

/* Look grids in the quiz: uniform white tiles, tap to pick */
.looks{display:grid;grid-template-columns:repeat(var(--cols,3),1fr);gap:4px;width:92%;margin:8px 0 2px;animation:pop .2s ease-out}
.tile{position:relative;aspect-ratio:4/5;background:#E9E6E1;border:0;padding:0;border-radius:12px;overflow:hidden;cursor:pointer;transition:transform .12s}
.tile img{width:100%;height:100%;object-fit:cover;display:block}
.tile:active{transform:scale(.97)}
.tile.on{box-shadow:inset 0 0 0 3px var(--me)}
.tile.on::after{content:"✓";position:absolute;top:6px;right:6px;width:22px;height:22px;border-radius:50%;background:var(--me);color:#fff;
  font-size:13px;font-weight:700;line-height:22px;text-align:center}
.looks.locked .tile{cursor:default}
.looks.locked .tile:not(.on){opacity:.35}

/* Quick replies */
/* Left inset like iMessage's gap before his own bubbles (Annika 10/18: a row of answers spanning the full width looked off) */
#qr{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end;padding:8px 16px 4px max(16px,18%);max-height:42dvh;overflow-y:auto}
#qr:empty{display:none}
#qr button{background:transparent;border:1px solid var(--me);color:var(--me);border-radius:999px;
  padding:7px 14px;font-size:15px;cursor:pointer;font-family:inherit}
#qr button:active{background:rgba(42,141,255,.15)}
#qr button.on{background:var(--me);color:#fff}
#qr button.done{background:var(--me);border-color:var(--me);color:#fff;font-weight:600}
#qr .group{flex-basis:100%;text-align:right;font-size:12px;color:var(--muted);margin:4px 2px 0}
#qr .group:first-child{margin-top:0}
#qr .hint{margin-right:auto;align-self:center;font-size:12px;color:var(--muted)}
#qr .hint a{color:inherit}
/* the Terms + Privacy footer (quiz.js legalFooter): a quiet centered line under the composer, from the invite on */
.legal-foot{padding:0 16px calc(8px + env(safe-area-inset-bottom));font-size:11px;line-height:1.35;color:var(--muted);text-align:center;text-wrap:balance}
.legal-foot a{color:inherit}
.dock:has(.legal-foot) .bar{padding-bottom:6px}

/* Composer (iOS 26): floats over the thread. 40pt glass "+" circle, then a 40pt pill with the mic inside;
   the mic turns into the blue send arrow once there's text. Messages scroll behind it. */
.dock{position:absolute;left:0;right:0;bottom:0;z-index:2;
  background:linear-gradient(rgba(0,0,0,0) 0%,rgba(0,0,0,.55) 40%,rgba(0,0,0,.85) 100%)}
.bar{display:flex;align-items:center;gap:12px;padding:6px 16px calc(10px + env(safe-area-inset-bottom))}
.plus{width:40px;height:40px;flex-shrink:0;border-radius:50%;background:rgba(24,24,24,.86);border:1px solid #252525;
  display:flex;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}
.plus svg{width:16px;height:16px}
.field{flex:1;min-width:0;display:flex;align-items:center;height:40px;background:rgba(24,24,24,.9);border:1px solid #262626;border-radius:20px;padding:0 5px 0 16px;
  -webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}
.field input{flex:1;min-width:0;background:transparent;border:0;padding:0 8px 0 0;height:100%;
  font-size:17px;letter-spacing:-.43px;color:var(--text);font-family:inherit;outline:none;caret-color:var(--me)}
/* GROWING FIELD (10/19): his thread's field is a textarea - one line tall until he types more, up to 5 lines; the pill
   grows upward and the send arrow stays at the bottom right, like iMessage. */
.field:has(textarea){height:auto;min-height:40px;align-items:flex-end;padding-top:5px;padding-bottom:4px;border-radius:20px}
.field textarea{flex:1;min-width:0;background:transparent;border:0;padding:4px 8px 3px 0;margin:0;resize:none;overflow-y:hidden;
  height:29px;font-size:17px;line-height:22px;letter-spacing:-.43px;color:var(--text);font-family:inherit;outline:none;caret-color:var(--me);display:block}
.field textarea::placeholder{color:#5E5E60}
.field textarea:disabled{opacity:1}
.field input::placeholder{color:#5E5E60}
.field input:disabled{opacity:1}
.send{width:30px;height:30px;border-radius:50%;background:var(--me);border:0;color:#fff;cursor:pointer;flex-shrink:0;
  display:flex;align-items:center;justify-content:center}
.send svg{width:14px;height:14px}
.send:disabled{display:none}
.mic{width:30px;height:30px;flex-shrink:0;cursor:text;display:flex;align-items:center;justify-content:center;color:#5E5E60}
.mic svg{width:13px;height:19px}
.field:has(.send:not(:disabled)) .mic{display:none}
/* A typed answer is the main path (Annika 10/18): the field lights up and its placeholder reads brighter, so typing is
   the obvious next move; a way out is small grey text (#qr .pass), never a pill that competes with typing. */
.field.ask{border-color:var(--me);box-shadow:0 0 0 3px rgba(42,141,255,.18)}
.field.ask input::placeholder,.field.ask textarea::placeholder{color:#9A9AA0}
#qr:has(.pass){padding-left:20px}
#qr button.pass{border:0;background:none;color:var(--muted);font-size:14px;padding:6px 4px;margin-right:auto;text-decoration:underline;text-decoration-color:#3A3A3C;text-underline-offset:3px}

@keyframes pop{from{opacity:0;transform:translateY(6px) scale(.98)}to{opacity:1;transform:none}}
@keyframes up{from{transform:translateY(40px);opacity:.5}to{transform:none;opacity:1}}
@keyframes blink{0%,80%,100%{opacity:.35}40%{opacity:1}}

/* Rich link preview (how Messages shows a shared link): image on top, title + domain strip below */
.linkcard{display:block;width:72%;max-width:270px;margin:10px 0 2px;padding:0;border:0;border-radius:18px;overflow:hidden;background:#222125;
  text-align:left;cursor:pointer;animation:pop .2s ease-out;font-family:inherit;color:#fff}
.lc-imgs{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:1px;background:#fff;aspect-ratio:1;overflow:hidden} /* four equal square tiles */
.lc-imgs img{width:100%;height:100%;min-height:0;min-width:0;object-fit:cover;background:#fff;display:block}
.lc-imgs .lc-tile{width:100%;height:100%;display:block} /* garment-trimmed tile (chat.js evenTile): same scale every piece, own background, thin 1px gutter (Annika 10/14) */
.lc-meta{padding:9px 13px 10px;background:#3A3A3C}
.lc-t{font-size:15px;font-weight:600;line-height:19px;letter-spacing:-.24px}
.lc-s{font-size:13px;line-height:17px;color:#AEAEB2}

/* ===== Everything below is NOT the chat. The chat above is native iMessage dark mode - locked, do not restyle. =====
   The drop card (product sheet) uses the Pressed system: off-white, near-black, Inter, one accent.
   Shared cues with the chat: the one accent color and pill buttons only. */
:root{--p-bg:#F6F5F2;--p-ink:#141414;--p-muted:#8A8883;--p-line:#E3E1DC;--p-accent:#1F3A5F;--p-font:"Inter",-apple-system,BlinkMacSystemFont,"Helvetica Neue",Arial,sans-serif;--ease:cubic-bezier(.2,.7,.2,1)}

/* Drop card (tap a photo in the thread) */
.sheet-bg{position:fixed;inset:0;background:rgba(0,0,0,.55);display:flex;align-items:flex-end;justify-content:center;z-index:10;animation:fade .25s var(--ease) both}
.sheet{font-family:var(--p-font);background:var(--p-bg);color:var(--p-ink);width:100%;max-width:480px;border-radius:16px 16px 0 0;
  padding:24px 22px calc(22px + env(safe-area-inset-bottom));animation:up .35s var(--ease) both;letter-spacing:-.01em}
.sheet .b{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--p-muted)}
.sheet .n{font-size:20px;font-weight:600;letter-spacing:-.02em;margin:6px 0 2px}
.sheet .p{font-size:15px;color:var(--p-ink);margin-bottom:14px}
.sheet .w{font-size:15px;line-height:1.5;color:#3C3B39;margin-bottom:18px}
.sheet .tip{font-size:14px;color:var(--p-ink);background:#fff;border:1px solid var(--p-line);border-radius:10px;padding:10px 12px;margin:-6px 0 18px}
.sheet a{display:block;text-align:center;background:var(--p-ink);color:var(--p-bg);text-decoration:none;padding:15px;border-radius:999px;font-size:16px;font-weight:500}
.sheet .x{display:block;text-align:center;margin-top:8px;color:var(--p-muted);font-size:15px;background:none;border:0;width:100%;font-family:inherit;cursor:pointer;padding:10px}

/* Drop card - the branded gallery, opened from the chat */
.dc{position:fixed;inset:0;z-index:15;background:var(--p-bg);color:var(--p-ink);font-family:var(--p-font);display:flex;flex-direction:column;
  animation:up .4s var(--ease) both;letter-spacing:-.01em}
.dc.closing{animation:down .28s var(--ease) both}
.dc-top{position:absolute;top:calc(12px + env(safe-area-inset-top));right:14px;z-index:2}
.dc-x{width:36px;height:36px;border-radius:50%;border:1px solid var(--p-line);background:rgba(246,245,242,.92);font:inherit;font-size:15px;line-height:1;color:var(--p-ink);cursor:pointer;display:flex;align-items:center;justify-content:center}
.dc-body{flex:1;overflow-y:auto;max-width:560px;width:100%;margin:0 auto;padding:calc(28px + env(safe-area-inset-top)) 20px 120px}
.dc-eyebrow{font-size:11px;font-weight:600;letter-spacing:.28em;text-transform:uppercase;color:var(--p-muted);margin-bottom:8px}
.dc-title{font-size:32px;line-height:1.05;font-weight:600;letter-spacing:-.03em}
.dc-lede{font-size:15px;line-height:1.5;color:#5A5955;margin-top:10px}
.dc-flat{position:relative;aspect-ratio:4/5;background:#fff;border:1px solid var(--p-line);margin-top:20px;overflow:hidden}
.dc-flat button{position:absolute;background:none;border:0;padding:0;cursor:pointer}
.dc-flat img{width:100%;height:100%;object-fit:contain;display:block;mix-blend-mode:multiply}
.dc-hero{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:20px}
.dc-hero button{position:relative;aspect-ratio:1/1;background:#fff;border:1px solid var(--p-line);border-radius:10px;box-shadow:0 1px 6px rgba(20,20,20,.07);padding:8px;cursor:pointer;display:block;width:100%;transition:transform .15s var(--ease),box-shadow .15s var(--ease);-webkit-tap-highlight-color:transparent}
.dc-hero button:hover{box-shadow:0 2px 10px rgba(20,20,20,.08)}
.dc-hero button:active,.dc-flat button:active{transform:scale(.95)}
.dc-flat button{transition:transform .15s var(--ease);-webkit-tap-highlight-color:transparent}
.dc-item.flash .dc-img{animation:flash 1.1s var(--ease)}
@keyframes flash{0%{box-shadow:0 0 0 2px var(--p-accent)}100%{box-shadow:0 0 0 2px transparent}}
.dc-hero img{width:100%;height:100%;object-fit:contain;display:block}
.dc-item{margin-top:28px;animation:rise .6s var(--ease) both}
.dc-media{position:relative}
.dc-img{position:relative;display:block;aspect-ratio:1/1;background:#fff;border:1px solid var(--p-line);overflow:hidden}
.dc-img img{width:100%;height:100%;object-fit:contain;display:block}
.dc-thumbs{position:absolute;right:10px;bottom:10px;display:flex;gap:8px}
.dc-th{width:42px;height:42px;border-radius:50%;border:1px solid var(--p-line);background:#fff;font-size:19px;cursor:pointer;
  display:flex;align-items:center;justify-content:center;box-shadow:0 1px 4px rgba(20,20,20,.08);transition:transform .15s var(--ease),box-shadow .15s var(--ease)}
.dc-th:active{transform:scale(.9)}
.dc-th.on{border-color:var(--p-accent);box-shadow:0 0 0 2px var(--p-accent);transform:scale(1.06)}
.dc-go{position:absolute;top:10px;right:10px;width:30px;height:30px;border-radius:50%;background:rgba(255,255,255,.92);border:1px solid var(--p-line);display:flex;align-items:center;justify-content:center;font-size:14px;color:var(--p-ink);pointer-events:none}
.dc-meta{padding-top:10px}
.dc-brand{font-size:11px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--p-muted)}
.dc-name{font-size:15px;font-weight:500;letter-spacing:-.01em;margin-top:2px}
.dc-price{font-size:15px;font-weight:600;margin-top:2px}
.dc-why{font-size:13px;line-height:1.45;color:#6B6964;margin-top:6px;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;cursor:pointer}
.dc-why.open{-webkit-line-clamp:unset;display:block}
.dc-why .dc-tip{display:none}
.dc-why.open .dc-tip{display:inline;color:var(--p-muted)}
.dc-name{color:inherit;text-decoration:none;display:block}
.dc-shop{display:block;text-align:center;height:44px;line-height:44px;border-radius:999px;background:var(--p-ink);color:var(--p-bg);font-size:15px;font-weight:500;text-decoration:none;margin-top:10px}
.dc-foot{margin-top:40px;padding-top:20px;border-top:1px solid var(--p-line)}
.dc-two{font-size:15px;line-height:1.5;color:#3C3B39}
.dc-total{font-size:14px;color:var(--p-muted);margin-top:10px}
.dc-bar{position:fixed;left:0;right:0;bottom:0;padding:14px 20px calc(16px + env(safe-area-inset-bottom));background:var(--p-bg);border-top:1px solid var(--p-line)}
.dc-send{display:block;width:100%;max-width:520px;margin:0 auto;height:54px;border:0;border-radius:999px;background:var(--p-ink);color:var(--p-bg);font:inherit;font-size:16px;font-weight:500;cursor:pointer}

body{transition:background .45s var(--ease)}

@keyframes rise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes fade{from{opacity:0}to{opacity:1}}
@keyframes down{to{transform:translateY(40px);opacity:0}}
@media (prefers-reduced-motion:reduce){.dc,.dc *,.sheet{animation-duration:.01ms!important;animation-delay:0ms!important;transition-duration:.01ms!important}}

/* QUICK REACTIONS (Annika 10/19, docs/specs/quick-reactions.md) - iMessage tapbacks on Paige's bubbles. His reaction is
   his color: the badge is his blue bubble with a black ring, sitting on her bubble's top-right corner like iMessage. */
#chat.tb-on > .l{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;touch-action:manipulation}
.l.has-tb{margin-top:16px}
.l .tb{position:absolute;top:-15px;right:-11px;width:30px;height:30px;border-radius:50%;background:var(--me);border:2px solid var(--bg);
  display:flex;align-items:center;justify-content:center;font-size:15px;line-height:1;animation:tb-pop .28s cubic-bezier(.3,1.5,.6,1)}
.l.tb-lift{z-index:31;transform:scale(1.03);transition:transform .15s ease-out}
/* the lifted bubble/tile only shows through the scrim - a tap on it closes the pill like any tap outside (never opens a second) */
.tb-lift{pointer-events:none}
.tb-scrim{position:fixed;inset:0;z-index:30;background:rgba(0,0,0,.55);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);animation:tb-fade .15s ease-out}
.tb-pick{position:fixed;z-index:32;display:flex;gap:2px;padding:5px 6px;border-radius:26px;background:#2C2C2E;
  box-shadow:0 8px 28px rgba(0,0,0,.5);transform-origin:20% 100%;animation:tb-in .22s cubic-bezier(.3,1.4,.6,1)}
.tb-pick button{width:44px;height:44px;border:0;border-radius:50%;background:transparent;font-size:24px;line-height:1;cursor:pointer;
  display:flex;align-items:center;justify-content:center;transition:transform .12s}
.tb-pick button:active{transform:scale(1.25)}
.tb-pick button.on{background:var(--me)}
.tb-pick button:focus-visible{outline:2px solid #fff;outline-offset:-2px}
@keyframes tb-in{from{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}
@keyframes tb-pop{from{transform:scale(.3)}to{transform:scale(1)}}
@keyframes tb-fade{from{opacity:0}to{opacity:1}}
/* REACTIONS PART TWO (Annika 10/19, docs/specs/reactions-two.md): Paige's ❤️ back sits on HIS bubble's top-left in grey
   (the other person's reaction, as iMessage draws it); his reactions on the feedback grid badge the tile's corner in his
   blue, inside the tile, and a 👎 tile fades as 'not landing' always has (the ✕ gives way to the 👎). */
.r.has-tb{margin-top:16px}
.r .tb.them{position:absolute;top:-15px;left:-11px;width:30px;height:30px;border-radius:50%;background:#3A3A3C;border:2px solid var(--bg);
  display:flex;align-items:center;justify-content:center;font-size:15px;line-height:1;animation:tb-pop .28s cubic-bezier(.3,1.5,.6,1)}
.tile .tb{position:absolute;top:6px;right:6px;width:28px;height:28px;border-radius:50%;background:var(--me);
  display:flex;align-items:center;justify-content:center;font-size:15px;line-height:1;box-shadow:0 1px 4px rgba(0,0,0,.25);animation:tb-pop .28s cubic-bezier(.3,1.5,.6,1)}
.tile.tb-lift{z-index:31;transform:scale(1.04);transition:transform .15s ease-out}
.looks.lk-drop.react .tile.on::after{content:none} /* beats lookbook.css's ✕ */
@media (prefers-reduced-motion:reduce){.tb-pick,.l .tb,.r .tb,.tile .tb,.tb-scrim{animation:none}.l.tb-lift,.tile.tb-lift{transform:none}}
