/* Art & See — iPhone app prototype. Visual route A, "Pop de cor e adesivo" (rotas/LEIA.md, chosen 11/10/2026).
   One flat colour per screen, the customer's photo as a sticker, huge numbers, one black pill.
   Benchmarks: CapWords (stickers), Crumbl (flat colour + giant title), Cash App (the number is the hero),
   Etsy Gift Teaser (blurred card + Reveal), Finch (sunburst, "back in"), BARK (hand-written arrow). */

:root {
  --ink: #0E0E0E;
  --ink-2: rgba(14, 14, 14, .78);
  --ink-3: rgba(14, 14, 14, .70);
  --card: #FFFFFF;
  --card-2: #4D4A45;
  --card-3: #6A665F;
  --line: rgba(14, 14, 14, .10);
  --fill: rgba(14, 14, 14, .06);
  --yellow: #FFD84D; --pink: #FFA3C7; --orange: #FF8B3D; --lilac: #D8C8FF; --cobalt: #2F44FF; --sky: #CFE5FF;
  --red: #C8261B;
  --blue: #2F44FF;
  --lift: 0 4px 0 rgba(14, 14, 14, .12);
  --drop: 0 14px 28px rgba(14, 14, 14, .22);
  --font: 'Bricolage Grotesque', -apple-system, BlinkMacSystemFont, 'PingFang SC', 'Noto Sans SC', system-ui, sans-serif;
  --serif: 'Instrument Serif', Georgia, serif;
  --hand: 'Caveat', 'Bradley Hand', cursive;
  --snap: ease-out; --smooth: ease-out; --bouncy: ease-out;
  --snap-ms: 250ms; --smooth-ms: 420ms; --bouncy-ms: 700ms;
  color-scheme: light;
}

* { box-sizing: border-box; -webkit-tap-highlight-color: transparent; }
html, body { margin: 0; height: 100%; }
body { font-family: var(--font); color: var(--ink); background: #EFEFEF; -webkit-font-smoothing: antialiased; font-size: 17px; line-height: 1.35; }
button { font: inherit; color: inherit; border: 0; background: none; padding: 0; cursor: pointer; }
img { display: block; max-width: 100%; }
a { color: inherit; }
.ic { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; flex: none; }
:focus-visible { outline: 3px solid var(--ink); outline-offset: 2px; border-radius: 10px; }

/* ---------- Stage: device + demo panel (desktop) ---------- */
.stage { min-height: 100dvh; display: flex; align-items: center; justify-content: center; gap: 56px; padding: 32px 24px; }
.device { position: relative; width: 393px; height: 852px; flex: none; border-radius: 62px; background: #0E0E0E; padding: 12px; box-shadow: 0 0 0 2px #2A2A2A, 0 40px 80px -20px rgba(0, 0, 0, .35), 0 12px 30px rgba(0, 0, 0, .16); }
.device::before { content: ''; position: absolute; left: -3px; top: 180px; width: 3px; height: 64px; border-radius: 2px; background: #1E1E1E; box-shadow: 0 84px 0 #1E1E1E; }
.device::after { content: ''; position: absolute; right: -3px; top: 220px; width: 3px; height: 100px; border-radius: 2px; background: #1E1E1E; }
.app { position: relative; width: 100%; height: 100%; border-radius: 50px; overflow: hidden; background: var(--yellow); isolation: isolate; }
.island { position: absolute; top: 11px; left: 50%; transform: translateX(-50%); width: 124px; height: 36px; border-radius: 20px; background: #000; z-index: 60; transition: width var(--smooth-ms) var(--smooth); display: flex; align-items: center; gap: 8px; padding: 0 12px; color: #fff; font-size: 12px; font-weight: 700; overflow: hidden; }
.island .live-dot { width: 22px; height: 22px; border-radius: 50%; background-size: cover; background-position: center; flex: none; opacity: 0; }
.island .live-text { opacity: 0; white-space: nowrap; }
.island.live { width: 200px; }
.island.live .live-dot, .island.live .live-text { opacity: 1; transition: opacity .3s .15s; }
.statusbar { position: absolute; top: 0; left: 0; right: 0; height: 54px; display: flex; align-items: center; justify-content: space-between; padding: 6px 34px 0 42px; font: 700 16px -apple-system, system-ui, sans-serif; z-index: 55; pointer-events: none; }
.statusbar.light { color: #fff; }
.statusbar .sb-icons { display: flex; gap: 6px; align-items: center; }
.statusbar .sb-icons i { display: block; height: 11px; border-radius: 3px; background: currentColor; }
.home-indicator { position: absolute; bottom: 8px; left: 50%; transform: translateX(-50%); width: 136px; height: 5px; border-radius: 3px; background: rgba(0, 0, 0, .85); z-index: 70; pointer-events: none; }
.home-indicator.light { background: rgba(255, 255, 255, .9); }

.demo { width: 300px; color: #3A3A3A; font-size: 14px; }
.demo-logo { width: 120px; margin-bottom: 18px; }
.demo h1 { font-size: 26px; line-height: 1.05; color: var(--ink); margin: 0 0 8px; font-weight: 800; letter-spacing: -.02em; }
.demo p { margin: 0 0 16px; }
.demo-seg { display: grid; gap: 6px; margin: 18px 0; }
.demo-seg button { text-align: left; padding: 11px 14px; border-radius: 14px; background: #fff; font-weight: 700; color: var(--ink); display: flex; justify-content: space-between; align-items: center; box-shadow: var(--lift); }
.demo-seg button[aria-pressed='true'] { background: var(--ink); color: #fff; }
.demo-seg small { font-weight: 500; opacity: .7; }
.demo-clock { background: #fff; border-radius: 18px; padding: 14px; margin-top: 8px; box-shadow: var(--lift); }
.demo-clock b { color: var(--ink); display: block; font-size: 15px; margin-bottom: 4px; }
.demo-clock .demo-next { margin-top: 10px; width: 100%; padding: 12px; border-radius: 999px; background: var(--ink); color: #fff; font-weight: 800; }
.demo-clock .demo-next.alt { background: var(--cobalt); }
.demo-clock .demo-next:disabled { background: var(--fill); color: #777; cursor: default; }
.demo-foot { margin-top: 18px; font-size: 12.5px; color: #5A5A5A; line-height: 1.45; }
.demo-foot button { text-decoration: underline; color: #3A3A3A; font-size: 12.5px; }

@media (max-width: 760px) {
  body { background: var(--yellow); }
  .stage { padding: 0; display: block; }
  .device { width: 100%; height: 100dvh; border-radius: 0; padding: 0; box-shadow: none; background: transparent; }
  .device::before, .device::after, .island, .statusbar, .home-indicator { display: none; }
  .app { border-radius: 0; --top: max(env(safe-area-inset-top), 12px); }
  .demo { position: fixed; z-index: 200; left: 12px; right: 12px; top: calc(env(safe-area-inset-top) + 52px); width: auto; display: none; background: #fff; border-radius: 20px; padding: 14px; box-shadow: 0 12px 40px rgba(0, 0, 0, .2); }
  .demo.open { display: block; }
  .demo-fab { display: flex !important; }
}
.demo-fab { display: none; position: fixed; z-index: 201; left: 50%; transform: translateX(-50%); top: calc(env(safe-area-inset-top) + 10px); align-items: center; gap: 6px; padding: 9px 14px; border-radius: 999px; background: var(--ink); color: #fff; font-size: 13px; font-weight: 800; }

/* ---------- Screens: one flat colour each, with a light dot grain (CapWords) ---------- */
.app { --top: 54px; --bottom: 34px; }
.stack { position: absolute; inset: 0; }
.screen { --tint: var(--yellow); position: absolute; inset: 0; overflow-y: auto; overflow-x: hidden; padding: calc(var(--top) + 6px) 20px calc(var(--bottom) + 110px); scrollbar-width: none; transition: transform var(--smooth-ms) var(--smooth), opacity .3s;
  background: radial-gradient(rgba(0, 0, 0, .065) 1.2px, transparent 1.6px) 0 0 / 14px 14px, var(--tint); background-attachment: local, local; }
.screen::-webkit-scrollbar { display: none; }
.screen.no-tabs { padding-bottom: calc(var(--bottom) + 40px); }
.screen.enter { transform: translateX(100%); }
.screen.under { transform: translateX(-28%); }
.screen.leave { transform: translateX(100%); }
.screen.fade-enter { opacity: 0; transform: none; }
.screen[data-tint='yellow'] { --tint: var(--yellow); } .screen[data-tint='pink'] { --tint: var(--pink); }
.screen[data-tint='orange'] { --tint: var(--orange); } .screen[data-tint='lilac'] { --tint: var(--lilac); }
.screen[data-tint='sky'] { --tint: var(--sky); }
.screen[data-tint='cobalt'] { --tint: var(--cobalt); color: #fff; --ink-2: rgba(255, 255, 255, .88); --ink-3: rgba(255, 255, 255, .82); }

/* ---------- Type ---------- */
.display { font-size: 52px; line-height: .94; font-weight: 800; letter-spacing: -.04em; margin: 8px 0 14px; }
.large-title, .title { font-size: 40px; line-height: .98; font-weight: 800; letter-spacing: -.035em; margin: 6px 0 10px; }
.title-2 { font-size: 28px; line-height: 1.02; font-weight: 800; letter-spacing: -.025em; margin: 0 0 6px; }
.headline { font-size: 17px; font-weight: 700; }
.body { font-size: 17px; color: var(--ink-2); margin: 0 0 18px; font-weight: 500; }
.sub { font-size: 15.5px; color: var(--ink-2); font-weight: 500; }
.foot { font-size: 13px; color: var(--ink-3); line-height: 1.4; font-weight: 500; }
.eyebrow { font-size: 16px; font-weight: 700; margin: 4px 0 0; }
.hand { font-family: var(--hand); font-weight: 700; font-size: 26px; line-height: 1; }
.quote { font-family: var(--serif); font-style: italic; font-size: 30px; line-height: 1.08; }
.big-num { font-size: 96px; font-weight: 800; letter-spacing: -.055em; line-height: .9; }
.section-label { font-size: 15px; font-weight: 800; margin: 26px 2px 10px; }
.center { text-align: center; }
.mt-8 { margin-top: 8px; } .mt-12 { margin-top: 12px; } .mt-16 { margin-top: 16px; } .mt-20 { margin-top: 20px; }
.stack-8 { display: grid; gap: 8px; }
.green { color: inherit; }
.danger { color: var(--red) !important; }

/* ---------- Buttons: one black pill per screen ---------- */
.btn { display: flex; align-items: center; justify-content: center; gap: 10px; width: 100%; min-height: 60px; padding: 0 24px; border-radius: 999px; font-size: 19px; font-weight: 800; letter-spacing: -.01em; transition: transform var(--snap-ms) var(--snap); user-select: none; }
.btn:active { transform: scale(.97); }
.btn-primary, .btn-dark { background: var(--ink); color: #fff; }
.btn-secondary { background: #fff; color: var(--ink); box-shadow: var(--lift); }
.btn-white { background: #fff; color: var(--ink); }
.btn-plain { min-height: 48px; font-size: 17px; text-decoration: underline; text-underline-offset: 3px; }
.btn-small { min-height: 42px; width: auto; padding: 0 18px; font-size: 15px; }
.btn[disabled] { opacity: .4; pointer-events: none; }
.screen[data-tint='cobalt'] .btn-primary { background: #fff; color: var(--ink); }
.screen[data-tint='cobalt'] .btn-plain { color: #fff; }
.applepay { background: #000; color: #fff; font-weight: 500; font-size: 22px; letter-spacing: -.01em; border-radius: 14px; min-height: 58px; gap: 2px; font-family: -apple-system, 'Inter', system-ui, sans-serif; }
.applepay .buy-with { font-weight: 500; margin-right: 4px; }
.apple-mark { display: inline-flex; }
.apple-mark svg { width: 21px; height: 21px; fill: currentColor; margin-top: -3px; }
.btn.applepay:disabled { opacity: .4; }
.link-btn { display: block; min-height: 44px; margin: 4px auto 0; padding: 0 6px; font-weight: 700; font-size: 15px; text-decoration: underline; text-underline-offset: 3px; }
.link-btn.center { text-align: center; }
.inline-link { display: inline; padding: 0; font-weight: 700; font-size: inherit; text-decoration: underline; text-underline-offset: 2px; color: inherit; }
.btn-hold { position: relative; overflow: hidden; }
.btn-hold .hold-fill { position: absolute; inset: 0; background: #333; transform-origin: left; transform: scaleX(0); }
.btn-hold.holding .hold-fill { transform: scaleX(1); transition: transform var(--hold-ms) linear; }
.btn-hold .hold-label { position: relative; }

/* ---------- Cards, chips, lists: white with a pressed-paper edge ---------- */
.card { background: var(--card); color: var(--ink); border-radius: 22px; padding: 18px; box-shadow: var(--lift); }
.card + .card { margin-top: 12px; }
.list { background: var(--card); color: var(--ink); border-radius: 22px; overflow: hidden; box-shadow: var(--lift); }
.row { display: flex; align-items: center; gap: 14px; width: 100%; padding: 14px 16px; text-align: left; min-height: 58px; position: relative; color: var(--ink); }
.row + .row::before { content: ''; position: absolute; top: 0; left: 16px; right: 0; height: 1px; background: var(--line); }
.row:active { background: var(--fill); }
.row.off { opacity: .45; cursor: default; }
.row .row-ic { width: 34px; height: 34px; border-radius: 11px; display: grid; place-items: center; background: var(--yellow); color: var(--ink); flex: none; }
.row .row-ic .ic { width: 19px; height: 19px; }
.row-ic.red { background: #FFE1DE; color: var(--red); }
.row .row-main { flex: 1; min-width: 0; }
.row .row-main b { display: block; font-weight: 700; font-size: 16.5px; }
.row .row-main span { display: block; font-size: 14px; color: var(--card-2); }
.row .row-end { color: var(--card-3); font-size: 15px; display: flex; align-items: center; gap: 4px; font-weight: 700; }
.row .row-end .ic { width: 16px; height: 16px; }
.row-thumb { width: 46px; height: 46px; border-radius: 12px; object-fit: cover; flex: none; }
.chip { display: inline-flex; align-items: center; gap: 6px; padding: 10px 15px; border-radius: 999px; background: #fff; color: var(--ink); font-size: 15px; font-weight: 700; box-shadow: 0 3px 0 rgba(0, 0, 0, .12); }
.chip .ic { width: 16px; height: 16px; }
.chip[aria-pressed='true'] { background: var(--ink); color: #fff; }
.chip.tiny { padding: 3px 9px; font-size: 12px; box-shadow: none; background: var(--yellow); }
.chips-row { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.chips-row.center { justify-content: center; }
.note { display: flex; gap: 12px; align-items: flex-start; padding: 14px 16px; border-radius: 18px; background: #fff; color: var(--ink); font-size: 15px; line-height: 1.4; box-shadow: var(--lift); }
.note .ic { margin-top: 1px; }
/* Stickers: the photo with a white border, a little tilted, with a soft shadow (CapWords) */
.sticker { position: relative; margin: 0; border: 8px solid #fff; border-radius: 22px; overflow: hidden; background: #fff; box-shadow: var(--drop); }
.sticker img { width: 100%; height: 100%; object-fit: cover; display: block; }
.tilt-l { transform: rotate(-6deg); } .tilt-r { transform: rotate(5deg); } .tilt-s { transform: rotate(-2.5deg); }
.tag { position: absolute; z-index: 3; display: inline-block; background: var(--ink); color: #fff; font-weight: 800; font-size: 12.5px; letter-spacing: .06em; text-transform: uppercase; padding: 7px 11px; border-radius: 8px; white-space: nowrap; }
.tag.white { background: #fff; color: var(--ink); } .tag.yellow { background: var(--yellow); color: var(--ink); }
.bubble { position: relative; background: #fff; color: var(--ink); border-radius: 22px; padding: 15px 18px; font-size: 16.5px; line-height: 1.38; font-weight: 500; box-shadow: var(--lift); }
.bubble::after { content: ''; position: absolute; left: 26px; top: -10px; border: 10px solid transparent; border-bottom-color: #fff; border-top: 0; }

/* segmented choice as pills */
.seg { display: flex; gap: 6px; }
.seg button { flex: 1; padding: 11px 6px; border-radius: 999px; background: rgba(255, 255, 255, .72); font-weight: 800; font-size: 15px; color: var(--ink); transition: background .2s, color .2s; }
.seg button[aria-pressed='true'] { background: var(--ink); color: #fff; }

/* ---------- Tab bar (studio) ---------- */
.tabbar { position: absolute; left: 0; right: 0; bottom: 0; height: calc(var(--bottom) + 62px); padding-bottom: var(--bottom); display: grid; grid-template-columns: repeat(3, 1fr); background: #fff; border-top: 2px solid var(--ink); z-index: 40; transition: transform var(--smooth-ms) var(--smooth); }
.tabbar.hidden { transform: translateY(110%); }
.tab { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; font-size: 11px; font-weight: 800; color: #6A665F; position: relative; }
.tab .ic { width: 42px; height: 28px; padding: 3px 9px; border-radius: 999px; stroke-width: 2.2; }
.tab[aria-current='page'] { color: var(--ink); }
.tab[aria-current='page'] .ic { background: var(--yellow); }
.tab .badge { position: absolute; top: 4px; left: calc(50% + 10px); min-width: 19px; height: 19px; padding: 0 5px; border-radius: 10px; background: var(--red); color: #fff; font-size: 11px; font-weight: 800; display: grid; place-items: center; }

/* ---------- Sheets ---------- */
.sheet-backdrop { position: absolute; inset: 0; background: rgba(0, 0, 0, .38); opacity: 0; transition: opacity .3s; z-index: 80; }
.sheet-backdrop.in { opacity: 1; }
.sheet { position: absolute; left: 0; right: 0; bottom: 0; max-height: 90%; overflow-y: auto; background: #fff; color: var(--ink); border-radius: 32px 32px 0 0; padding: 8px 20px calc(var(--bottom) + 16px); z-index: 81; transform: translateY(105%); transition: transform var(--smooth-ms) var(--smooth); scrollbar-width: none; --ink-2: #4D4A45; --ink-3: #6A665F; }
.sheet.in { transform: translateY(0); }
.sheet-tall { height: 90%; }
.sheet-dark { background: #111; color: #fff; --ink-2: rgba(255, 255, 255, .8); --ink-3: rgba(255, 255, 255, .7); }
.sheet-grabber { width: 40px; height: 5px; border-radius: 3px; background: rgba(0, 0, 0, .2); margin: 0 auto 14px; cursor: grab; touch-action: none; padding: 0; }
.sheet-grabber::after { content: ''; display: block; height: 24px; margin-top: -10px; }
.sheet-dark .sheet-grabber { background: rgba(255, 255, 255, .3); }
.sheet .sheet-title { font-size: 28px; line-height: 1.02; font-weight: 800; letter-spacing: -.025em; margin: 2px 0 8px; }
.sheet .list, .sheet .card, .sheet .note { background: #F4F3F1; box-shadow: none; }
.sheet .chip { background: #F1EFEC; box-shadow: none; }
.sheet .chip[aria-pressed='true'] { background: var(--ink); color: #fff; }
.sheet .seg button { background: #F1EFEC; }
.sheet .seg button[aria-pressed='true'] { background: var(--ink); color: #fff; }
.mini-title { margin: 0 0 8px; font-size: 16px; font-weight: 800; }

/* ---------- Banner, toast, burst ---------- */
.banner { position: absolute; left: 10px; right: 10px; top: calc(var(--top) + 2px); z-index: 90; display: flex; align-items: center; gap: 12px; padding: 12px 14px; border-radius: 22px; text-align: left; background: rgba(250, 250, 250, .9); backdrop-filter: blur(24px) saturate(1.6); -webkit-backdrop-filter: blur(24px) saturate(1.6); box-shadow: 0 10px 30px rgba(0, 0, 0, .18); transform: translateY(-140%); transition: transform var(--bouncy-ms) var(--bouncy); font-family: -apple-system, system-ui, sans-serif; color: var(--ink); }
.banner.in { transform: translateY(0); }
.banner-icon { width: 38px; height: 38px; border-radius: 10px; }
.banner-text { flex: 1; min-width: 0; font-size: 14.5px; line-height: 1.3; }
.banner-text b { display: block; font-size: 15px; }
.banner-time { align-self: flex-start; font-size: 13px; color: #6A665F; }
.banner.live { background: rgba(20, 20, 20, .94); color: #fff; }
.banner.live .banner-time { color: var(--yellow); font-weight: 700; }
.live-track { position: relative; display: block; height: 6px; margin-top: 8px; border-radius: 3px; background: rgba(255, 255, 255, .2); }
.live-track i { position: absolute; left: 0; top: 0; bottom: 0; width: 82%; border-radius: 3px; background: var(--yellow); }
.live-truck { position: absolute; left: 78%; top: -10px; font-size: 14px; }
.toast { position: absolute; left: 50%; bottom: calc(var(--bottom) + 96px); transform: translate(-50%, 20px); opacity: 0; z-index: 95; background: var(--ink); color: #fff; padding: 12px 20px; border-radius: 999px; font-size: 15px; font-weight: 700; white-space: nowrap; transition: transform var(--snap-ms) var(--snap), opacity .2s; }
.toast.in { transform: translate(-50%, 0); opacity: 1; }
.burst { position: absolute; left: 50%; top: 42%; z-index: 0; pointer-events: none; }
.burst i { position: absolute; width: 12px; height: 18px; border-radius: 3px; transform: translate(0, 0) scale(0); animation: dot 1.2s var(--bouncy) forwards; }
@keyframes dot { 20% { transform: translate(calc(var(--x) * .8), calc(var(--y) * .8)) scale(var(--s)) rotate(40deg); opacity: 1; } 100% { transform: translate(var(--x), calc(var(--y) + 60px)) scale(var(--s)) rotate(160deg); opacity: 0; } }

/* iOS system alert (kept system-looking: it is the OS, not us) */
.alert-backdrop { position: absolute; inset: 0; background: rgba(0, 0, 0, .3); z-index: 100; }
.ios-alert { position: absolute; z-index: 101; left: 50%; top: 50%; transform: translate(-50%, -50%); width: 270px; border-radius: 14px; background: rgba(242, 242, 242, .97); backdrop-filter: blur(20px); text-align: center; overflow: hidden; animation: alertIn .25s var(--smooth); font-family: -apple-system, system-ui, sans-serif; color: #000; }
@keyframes alertIn { from { transform: translate(-50%, -50%) scale(1.15); opacity: 0; } }
.ios-alert > b { display: block; font-size: 17px; padding: 18px 16px 4px; line-height: 1.25; }
.ios-alert p { font-size: 13px; margin: 0 16px 16px; }
.ios-alert-btns { display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid rgba(0, 0, 0, .15); }
.ios-alert-btns.one { grid-template-columns: 1fr; }
.ios-alert-btns button { padding: 12px; color: #007AFF; font-size: 17px; }
.ios-alert-btns button + button { border-left: 1px solid rgba(0, 0, 0, .15); }
.ios-alert .alert-icon { width: 48px; height: 48px; margin: 16px auto 0; display: block; border-radius: 11px; }
.store-stars { display: flex; justify-content: center; gap: 4px; padding: 0 0 12px; }
.store-stars button { font-size: 26px; color: #C9C4BC; } .store-stars button.on { color: #007AFF; }

/* fields and switches */
.field { width: 100%; border: 0; border-radius: 16px; background: #F1EFEC; padding: 15px 16px; font: inherit; font-size: 16px; font-weight: 500; color: var(--ink); resize: none; margin-top: 10px; }
.field:focus { outline: none; box-shadow: inset 0 0 0 2px var(--ink); }
.field-wrap { display: grid; gap: 4px; margin-top: 10px; text-align: left; }
.field-label { font-size: 13.5px; font-weight: 700; color: var(--ink-2); }
.field-wrap .field { margin-top: 0; }
.screen .field { background: #fff; box-shadow: var(--lift); }
input[role='switch'] { appearance: none; width: 51px; height: 31px; border-radius: 16px; background: #E3E1DD; position: relative; flex: none; cursor: pointer; transition: background .25s; margin: 0; }
input[role='switch']::after { content: ''; position: absolute; top: 2px; left: 2px; width: 27px; height: 27px; border-radius: 50%; background: #fff; box-shadow: 0 2px 4px rgba(0, 0, 0, .2); transition: transform var(--snap-ms) var(--snap); }
input[role='switch']:checked { background: var(--ink); }
input[role='switch']:checked::after { transform: translateX(20px); }

/* nav bar */
.nav { display: flex; align-items: center; justify-content: space-between; height: 48px; margin: 0 -4px 6px; }
.nav-btn { width: 44px; height: 44px; display: grid; place-items: center; border-radius: 50%; background: #fff; color: var(--ink); box-shadow: var(--lift); }
span.nav-btn { background: none; box-shadow: none; }
.nav-title { font-weight: 800; font-size: 17px; }
.nav-count { font-size: 13px; font-weight: 700; width: 96px; text-align: right; padding-right: 4px; color: var(--ink-2); }

/* entrance */
.rise { animation: rise var(--smooth-ms) var(--smooth) both; }
.rise-2 { animation-delay: 60ms; } .rise-3 { animation-delay: 120ms; } .rise-4 { animation-delay: 180ms; }
@keyframes rise { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
.pop { animation: pop var(--bouncy-ms) var(--bouncy) both; }
@keyframes pop { from { transform: scale(.3); opacity: 0; } to { transform: scale(1); opacity: 1; } }
@keyframes spin { to { transform: rotate(360deg); } }

/* =================== Customer =================== */
.topbar { display: flex; align-items: center; justify-content: space-between; height: 44px; margin-bottom: 8px; }
.topbar-logo { height: 28px; width: auto; }
.topbar-end { display: flex; align-items: center; gap: 8px; }
.avatar { width: 38px; height: 38px; border-radius: 50%; background: var(--ink); color: #fff; font-weight: 800; font-size: 15px; display: grid; place-items: center; flex: none; }
.avatar.big { width: 54px; height: 54px; font-size: 21px; }
.help-pill { display: inline-flex; align-items: center; gap: 5px; height: 38px; padding: 0 14px 0 10px; border-radius: 999px; background: #fff; box-shadow: var(--lift); font-size: 14.5px; font-weight: 800; color: var(--ink); }
.help-pill .ic { width: 18px; height: 18px; }

/* Home: giant title, photo → painting stickers with a hand-written arrow, one black pill (CapWords + Crumbl + BARK) */
.home-art { position: relative; height: 290px; margin: 0 -6px 4px; }
.home-art .s-photo { position: absolute; left: 4px; top: 50px; width: 158px; height: 196px; transform: rotate(-8deg); }
.home-art .s-paint { position: absolute; right: 0; top: 18px; width: 194px; height: 242px; transform: rotate(5deg); }
.home-art .becomes { position: absolute; left: 14px; top: 0; transform: rotate(-8deg); }
.home-art .arrow { position: absolute; left: 106px; top: -14px; width: 92px; }
.home-art .b-oil { right: 26px; bottom: 6px; transform: rotate(-4deg); }
.home-art .your-photo { position: absolute; left: 40px; bottom: -6px; transform: rotate(-6deg); }
.home-art.kept { height: 300px; }
.home-art.kept .s-wall { position: absolute; left: 50%; top: 6px; width: 250px; height: 280px; margin-left: -125px; transform: rotate(-3deg); }
.home-art.kept .b-wall { left: 40px; bottom: 6px; transform: rotate(-5deg); }
.home-art.kept .another { position: absolute; right: 12px; top: 0; }
.xmas { display: flex; margin: 12px 0 0; } .xmas .chip { border-radius: 18px; line-height: 1.3; }
.where-to { display: flex; align-items: center; justify-content: center; gap: 10px; width: 100%; min-height: 64px; margin: 14px 0 6px; border-radius: 999px; background: var(--ink); color: #fff; font-size: 21px; font-weight: 800; letter-spacing: -.01em; transition: transform var(--snap-ms) var(--snap); }
.where-to:active { transform: scale(.98); }
.where-to small { font-size: 16px; font-weight: 700; opacity: .62; }
.famous-link { display: block; width: 100%; min-height: 44px; font-weight: 800; font-size: 17px; text-decoration: underline; text-underline-offset: 3px; }
.past { margin-top: 18px; }
.real-strip { display: flex; align-items: center; gap: 12px; width: 100%; margin-top: 18px; padding: 12px 14px; border-radius: 22px; background: #fff; box-shadow: var(--lift); text-align: left; color: var(--ink); }
.real-thumbs { display: flex; } .real-thumbs img { width: 48px; height: 48px; border-radius: 12px; object-fit: cover; border: 3px solid #fff; box-shadow: 0 2px 6px rgba(0, 0, 0, .18); }
.real-thumbs img:first-child { transform: rotate(-6deg); } .real-thumbs img + img { margin-left: -14px; transform: rotate(5deg); }
.real-text { display: grid; } .real-text small { color: var(--card-2); font-size: 13.5px; }
.real-pair { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 8px; margin: 14px 0 0; }
.real-pair img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 14px; border: 5px solid #fff; box-shadow: 0 6px 14px rgba(0, 0, 0, .18); }
.real-pair figcaption { grid-column: 1 / -1; font-size: 13px; color: var(--ink-2); }
.real-arrow { font-family: var(--hand); font-size: 30px; }
.proof-badges { display: flex; gap: 10px; justify-content: center; margin: 22px 0 6px; }
.proof-badges .tag { position: static; }
.proof-badges .tag:nth-child(1) { transform: rotate(-3deg); } .proof-badges .tag:nth-child(2) { transform: rotate(2deg); }
.promise-line { margin: 10px 8px 0; text-align: center; font-size: 14.5px; font-weight: 600; color: var(--ink-2); }

/* photo picker (iOS PHPicker look) */
.picker-head { display: flex; justify-content: space-between; align-items: center; margin: -4px 0 12px; }
.picker-head b { font-size: 17px; }
.picker-cancel { color: #007AFF; font-size: 17px; min-width: 60px; text-align: left; font-family: -apple-system, system-ui, sans-serif; }
.picker-head span { min-width: 60px; }
.picker-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 3px; margin: 0 -20px 14px; }
.picker-cell { aspect-ratio: 1; overflow: hidden; display: block; }
.picker-cell img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--snap-ms) var(--snap); }
.picker-cell:active img { transform: scale(.94); }
.picker-blank { opacity: .55; }
.small-photo img { filter: blur(3px) saturate(.7); transform: scale(.55); }
.picker-tip { margin: 0 4px 10px; font-size: 14px; color: var(--ink-2); }
.picker-warn { margin: 10px 4px 0; color: var(--red); font-weight: 700; font-size: 14px; }
.picker-warn:empty { display: none; }
.consent { text-align: center; }
.consent-ic { display: grid; place-items: center; width: 56px; height: 56px; margin: 6px auto 6px; border-radius: 50%; background: var(--yellow); }

/* famous list: stickers on lilac */
.grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 20px 14px; }
.art-tile { text-align: left; display: grid; gap: 2px; }
.art-tile img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 16px; border: 6px solid #fff; box-shadow: 0 10px 20px rgba(0, 0, 0, .18); margin-bottom: 8px; transition: transform var(--snap-ms) var(--snap); }
.art-tile:nth-child(odd) img { transform: rotate(-2deg); } .art-tile:nth-child(even) img { transform: rotate(2deg); }
.art-tile:active img { transform: scale(.97); }
.art-tile b { font-size: 16px; line-height: 1.15; }
.art-artist { font-size: 13.5px; color: var(--ink-2); font-weight: 500; }
.art-price { font-size: 15px; font-weight: 800; }

/* Price: the painting as an object with a real shadow (Mixtiles), the price as the hero on one colour (Cash App),
   "Is this a gift?" next to it (Crumbl), a hand-written note that the preview is AI (BARK). */
.preview-screen { padding: 0 0 0 !important; }
.preview-top { position: absolute; top: calc(var(--top) + 4px); left: 16px; z-index: 5; }
.preview-stage { position: relative; height: 318px; padding-top: calc(var(--top) + 8px); }
.preview-stage.with-note .preview-wall { padding-right: 96px; }
.preview-wall { display: grid; place-items: center; width: 100%; height: 100%; cursor: zoom-in; }
.preview-canvas { position: relative; overflow: hidden; background: #2E2219; padding: 8px; border-radius: 4px; box-shadow: 6px 6px 0 rgba(0, 0, 0, .14), 0 30px 40px -16px rgba(60, 20, 40, .5); transition: width var(--bouncy-ms) var(--bouncy), height var(--bouncy-ms) var(--bouncy); }
.preview-canvas img { width: 100%; height: 100%; object-fit: cover; }
.preview-canvas.size-s { width: 156px; height: 206px; } .preview-canvas.size-m { width: 184px; height: 230px; }
.preview-canvas.size-l { width: 192px; height: 256px; } .preview-canvas.size-xl { width: 180px; height: 270px; }
.preview-canvas.frame-none { background: transparent; padding: 0; box-shadow: 6px 6px 0 rgba(0, 0, 0, .16), 0 30px 40px -16px rgba(60, 20, 40, .5); }
.preview-canvas.frame-black, .preview-canvas.frame-natural, .preview-canvas.frame-gold { padding: 12px; }
.preview-canvas.frame-black { background: #1C1C1E; }
.preview-canvas.frame-natural { background: linear-gradient(135deg, #DDBB8C, #B08756); }
.preview-canvas.frame-gold { background: linear-gradient(135deg, #E2C26D, #9C7A2E); }
.preview-canvas[class*="frame-"]:not(.frame-none) img { box-shadow: 0 0 0 3px rgba(0, 0, 0, .55); }
.ai-note { position: absolute; right: 12px; top: calc(var(--top) + 54px); width: 112px; transform: rotate(7deg); font-size: 22px; z-index: 3; pointer-events: none; }
.ai-note svg { display: block; margin: 4px 0 0 -18px; }
.preview-under { padding: 4px 20px 0; text-align: center; }
.preview-under .seg { width: 230px; margin: 0 auto; }
.preview-cap { margin: 8px 8px 0; font-size: 13.5px; color: var(--ink-2); line-height: 1.35; font-weight: 500; }
.price-sheet { padding: 14px 20px 0; }
.spec-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 12px; }
.spec-chip { display: inline-flex; align-items: center; gap: 6px; padding: 11px 16px; border-radius: 999px; background: var(--ink); color: #fff; font-weight: 800; font-size: 16px; }
.spec-chip + .spec-chip { background: #fff; color: var(--ink); box-shadow: 0 3px 0 rgba(0, 0, 0, .12); }
.spec-chip:active { transform: scale(.97); }
.caret { font-size: 11px; opacity: .7; }
.counted { display: flex; gap: 6px; align-items: center; margin: -2px 2px 10px; font-size: 13.5px; font-weight: 600; }
.counted .ic { width: 15px; height: 15px; }
.frame-block { margin: 0 0 6px; }
.frame-strip { display: flex; gap: 10px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-inline: 20px; margin: 0 -20px; padding: 2px 20px 8px; scrollbar-width: none; }
.frame-strip::-webkit-scrollbar { display: none; }
.frame-tile { flex: 0 0 90px; scroll-snap-align: start; display: grid; justify-items: center; gap: 2px; padding: 10px 6px 9px; border-radius: 18px; background: #fff; box-shadow: 0 3px 0 rgba(0, 0, 0, .12); text-align: center; color: var(--ink); }
.frame-tile.on { box-shadow: inset 0 0 0 3px var(--ink), 0 3px 0 rgba(0, 0, 0, .12); }
.frame-tile:disabled { opacity: .45; cursor: default; }
.frame-tile b { font-size: 13px; font-weight: 800; line-height: 1.2; }
.frame-tile small { font-size: 12.5px; color: var(--card-2); font-variant-numeric: tabular-nums; font-weight: 600; }
.frame-tile .tile-date { color: var(--card-3); font-size: 11.5px; font-weight: 500; }
.frame-corner { --fc: transparent; width: 54px; height: 38px; margin-bottom: 4px; background: #F7F4EE; border-top: 9px solid var(--fc); border-left: 9px solid var(--fc); box-shadow: 0 6px 10px -6px rgba(0, 0, 0, .45), inset 3px 3px 0 rgba(0, 0, 0, .55); }
.frame-corner.fc-none { border: 0; box-shadow: 0 6px 10px -6px rgba(0, 0, 0, .35), inset 0 0 0 1px rgba(0, 0, 0, .1); }
.frame-corner.fc-black { --fc: #1C1C1E; }
.frame-corner.fc-natural { --fc: #C9A273; border-image: linear-gradient(135deg, #DDBB8C, #B08756) 1; }
.frame-corner.fc-gold { --fc: #C29A45; border-image: linear-gradient(135deg, #E2C26D, #9C7A2E) 1; }
.frame-note { margin: 0 2px 10px; font-size: 13.5px; color: var(--ink-2); font-weight: 500; }
.price-hero { display: grid; margin: 2px 0 14px; }
.price-hero .big-num { font-size: 92px; }
.price-hero .sub { color: var(--ink); font-size: 16.5px; }
.price-hero .sub b { font-weight: 800; }
.price-hero .what { font-size: 14px; color: var(--ink-2); margin-top: 2px; font-weight: 500; }
.ask-rows { display: grid; gap: 8px; margin-top: 12px; }
.shipto, .gift-ask { display: flex; align-items: center; gap: 8px; width: 100%; min-height: 52px; padding: 0 16px; border-radius: 18px; background: #fff; box-shadow: 0 3px 0 rgba(0, 0, 0, .12); font-size: 16px; font-weight: 700; text-align: left; color: var(--ink); }
.shipto .ic, .gift-ask .ic { width: 18px; height: 18px; flex: none; }
.shipto u { text-decoration: underline; text-underline-offset: 3px; }
.gift-ask .switch-look { margin-left: auto; width: 46px; height: 28px; border-radius: 14px; background: #E5E5EA; position: relative; flex: none; }
.gift-ask .switch-look::after { content: ''; position: absolute; left: 2px; top: 2px; width: 24px; height: 24px; border-radius: 12px; background: #fff; box-shadow: 0 1px 3px rgba(0, 0, 0, .25); }
.gift-ask.on .switch-look { background: var(--ink); } .gift-ask.on .switch-look::after { left: 20px; }
.flag { font-size: 16px; }
.flag.big { font-size: 24px; width: 32px; text-align: center; flex: none; }
.import-line { display: flex; gap: 8px; margin: 8px 4px 0; font-size: 13.5px; color: var(--ink-2); line-height: 1.35; font-weight: 500; }
.import-line .ic { width: 16px; height: 16px; flex: none; margin-top: 1px; }
.yeses, .refunds { margin-top: 14px; padding: 16px; border-radius: 22px; background: #fff; box-shadow: var(--lift); color: var(--ink); }
.yeses ol { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.yeses li { display: grid; grid-template-columns: 56px 1fr; gap: 10px; font-size: 14px; color: var(--card-2); line-height: 1.35; }
.yeses time { font-weight: 800; color: var(--ink); font-variant-numeric: tabular-nums; }
.yeses b { color: var(--ink); }
.refunds { font-size: 14px; color: var(--card-2); }
.refunds ul { margin: 0; padding-left: 18px; display: grid; gap: 5px; line-height: 1.38; }
.refunds b { color: var(--ink); }
.paybar { position: sticky; bottom: 0; z-index: 6; margin: 16px -20px 0; padding: 12px 20px calc(var(--bottom) + 10px); background: color-mix(in srgb, var(--tint) 92%, transparent); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); border-top: 2px solid var(--ink); }
.paybar-line { margin: 0 2px 4px; font-size: 14.5px; color: var(--ink-2); font-weight: 600; }
.paybar-line b { color: var(--ink); font-size: 17px; font-weight: 800; }
.agree-line { margin: 2px 2px 10px; font-size: 12.5px; color: var(--ink-2); line-height: 1.35; font-weight: 500; }
.bigview img { width: 100%; border-radius: 12px; }
.size-swatch { display: inline-block; border: 3px solid #3A2A1E; border-radius: 2px; background: linear-gradient(135deg, #E9D7BA, #C79F72); flex: none; margin: 0 8px 0 4px; }
.row-main b .chip { display: inline-flex; width: auto; margin-left: 6px; vertical-align: 2px; }

/* Apple Pay sheet, copied from Apple's own sheet (system look) */
.ap { font-family: -apple-system, 'Inter', system-ui, sans-serif; }
.ap-head { display: grid; grid-template-columns: 30px 1fr 30px; align-items: center; margin-bottom: 6px; }
.ap-head .ap-logo { justify-self: center; display: inline-flex; align-items: center; font-size: 22px; font-weight: 600; }
.ap-x { width: 30px; height: 30px; border-radius: 50%; background: rgba(0, 0, 0, .06); display: grid; place-items: center; }
.ap-x .ic { width: 16px; height: 16px; }
.ap-x.ghost { visibility: hidden; }
.ap-merchant { text-align: center; color: #555; margin: 8px 0 0; font-size: 15px; }
.ap-amount { text-align: center; font-size: 34px; font-weight: 700; letter-spacing: -.02em; margin: 0 0 12px; }
.ap-card { width: 170px; height: 106px; margin: 0 auto 14px; border-radius: 12px; background: linear-gradient(135deg, #F7F3EE, #EBD7F2 40%, #F7D5B5 75%, #F9E7A8); box-shadow: 0 8px 20px -10px rgba(0, 0, 0, .35); display: flex; align-items: flex-end; padding: 10px; font-size: 11px; font-weight: 700; color: rgba(0, 0, 0, .55); }
.ap-rows { background: #F2F2F7; border-radius: 14px; }
.ap-row { display: flex; gap: 12px; padding: 12px 14px; font-size: 14px; align-items: center; }
.ap-row + .ap-row { border-top: 1px solid rgba(0, 0, 0, .08); }
.ap-row > span:not(.ap-card-ic) { flex: 1; display: grid; }
.ap-row small { color: #555; font-size: 13px; }
.ap-row .ic { width: 16px; height: 16px; color: #888; }
.ap-card-ic { width: 34px; height: 24px; border-radius: 5px; background: linear-gradient(135deg, #EBD7F2, #F7D5B5); flex: none; }
.ap-lines { padding: 12px 4px; display: grid; gap: 6px; font-size: 15px; color: #555; }
.ap-lines div { display: flex; justify-content: space-between; }
.ap-lines .ap-note { color: #777; font-size: 12.5px; }
.ap-total { color: #000; font-weight: 700; font-size: 17px; padding-top: 6px; border-top: 1px solid rgba(0, 0, 0, .1); margin-top: 4px; }
.ap-confirm { width: 100%; display: flex; justify-content: center; padding: 8px 0 4px; }
.ap-confirm-line { display: flex; align-items: center; justify-content: center; gap: 18px; padding: 14px; font-size: 15px; font-weight: 600; color: #000; }
.ap-confirm-line.ok { color: #34C759; }
.side-btn { width: 8px; height: 26px; border-radius: 3px; border: 2px solid #007AFF; position: relative; }
.side-btn::after { content: ''; position: absolute; right: -10px; top: 6px; width: 6px; height: 10px; border-radius: 2px; background: #007AFF; animation: tap 1.2s ease-in-out infinite; }
@keyframes tap { 50% { transform: translateX(-3px); } }

/* Paid and the painter: orange, the painter's sticker, the date big (Cash App moment + Finch speech bubble) */
.paid-check { width: 92px; height: 92px; border-radius: 50%; background: var(--ink); color: #fff; display: grid; place-items: center; margin: 18px 0 14px; transform: rotate(-6deg); box-shadow: var(--drop); }
.paid-check .ic { width: 46px; height: 46px; stroke-width: 2.8; }
.search-steps { list-style: none; padding: 16px; margin: 6px 0 0; display: grid; gap: 14px; background: #fff; border-radius: 22px; box-shadow: var(--lift); color: var(--ink); }
.search-steps li { display: flex; gap: 12px; align-items: center; font-size: 15.5px; color: var(--card-3); font-weight: 500; }
.search-steps li.done, .search-steps li.live { color: var(--ink); font-weight: 600; }
.spin { width: 20px; height: 20px; border-radius: 50%; border: 3px solid rgba(0, 0, 0, .12); border-top-color: var(--ink); animation: spin .8s linear infinite; flex: none; }
.dot { width: 20px; height: 20px; display: grid; place-items: center; flex: none; }
.dot::after { content: ''; width: 8px; height: 8px; border-radius: 50%; background: currentColor; opacity: .5; }
.order-sum { display: flex; gap: 12px; align-items: center; width: 100%; margin-top: 12px; padding: 12px; border-radius: 22px; background: #fff; box-shadow: var(--lift); text-align: left; color: var(--ink); }
.order-sum img { width: 54px; height: 54px; border-radius: 12px; object-fit: cover; flex: none; }
.order-sum span { display: grid; } .order-sum small { color: var(--card-2); font-size: 13px; }
.notify-card { margin-top: 12px; padding: 18px; border-radius: 22px; background: #fff; box-shadow: var(--lift); color: var(--ink); --ink-2: #4D4A45; }
.painter-hero { position: relative; height: 270px; margin: 0 -4px 6px; }
.painter-hero .sticker { position: absolute; left: 6px; top: 6px; width: 186px; height: 232px; transform: rotate(-6deg); }
.painter-hero .tag { left: 118px; top: 214px; transform: rotate(3deg); }
.painter-hero .when { position: absolute; right: 4px; top: 40px; text-align: right; }
.painter-hero .when small { display: block; font-size: 16px; font-weight: 700; }
.painter-hero .when b { display: block; font-size: 46px; line-height: .98; letter-spacing: -.035em; font-weight: 800; }
.tell-card { display: grid; gap: 2px; margin-top: 16px; }
.tell-card > b { font-size: 17px; font-weight: 800; }
.tell-card > span { font-size: 14px; color: var(--ink-2); font-weight: 500; }
.gift-line { display: flex; gap: 8px; align-items: center; margin: 14px 2px 0; font-size: 14.5px; color: var(--ink-2); font-weight: 600; }
.driver-avatar { position: relative; width: 52px; height: 52px; flex: none; }
.driver-avatar img { width: 100%; height: 100%; border-radius: 50%; object-fit: cover; border: 3px solid #fff; box-shadow: 0 2px 6px rgba(0, 0, 0, .18); }
.driver-avatar i { position: absolute; left: 50%; bottom: -6px; transform: translateX(-50%); font-style: normal; font-size: 11px; font-weight: 800; padding: 1px 6px; border-radius: 999px; background: var(--ink); color: #fff; white-space: nowrap; }
.driver-avatar.small { width: 46px; height: 46px; }
.driver-main { flex: 1; min-width: 0; display: grid; }
.driver-main b { font-size: 16.5px; font-weight: 800; }
.driver-main span { font-size: 14px; color: var(--card-2); }
.ic-av { display: grid; place-items: center; background: var(--yellow); border-radius: 50%; }
.ic-av .ic { width: 22px; height: 22px; }
.msg-bar { display: block; width: 100%; text-align: left; padding: 13px 16px; border-radius: 999px; background: #fff; box-shadow: var(--lift); font-weight: 700; font-size: 15px; color: var(--ink); }
.msg-bar.small { width: auto; padding: 9px 14px; font-size: 14px; white-space: nowrap; background: var(--ink); color: #fff; box-shadow: none; }

/* Tracking: the moment's colour, its photo as a sticker, the date or the countdown huge (Finch "back in"),
   a chunky segment bar (Uber Eats), the dated cards in white. */
.track-head { margin: 4px 0 6px; }
.track-status { margin: 0; font-size: 16px; font-weight: 700; }
.track-time { margin: 2px 0 0; font-size: 40px; line-height: .98; font-weight: 800; letter-spacing: -.035em; }
.track-hero { position: relative; display: block; width: 250px; height: 300px; margin: 18px auto 18px; border: 8px solid #fff; border-radius: 22px; overflow: hidden; background: #fff; box-shadow: var(--drop); transform: rotate(-3deg); }
.track-hero img { width: 100%; height: 100%; object-fit: cover; }
.track-hero .tag { left: 8px; top: 8px; white-space: normal; max-width: calc(100% - 16px); line-height: 1.2; }
.track-hero.covered { padding: 0; cursor: pointer; transform: rotate(0); width: 100%; height: 300px; border: 0; border-radius: 26px; background: var(--yellow); box-shadow: var(--lift); }
.track-hero.covered img { position: absolute; inset: -30px; width: calc(100% + 60px); height: calc(100% + 60px); filter: blur(24px) saturate(1.2); opacity: .9; }
.track-hero .cover { position: absolute; inset: 0; display: grid; place-content: center; gap: 12px; text-align: center; color: #fff; }
.track-hero .cover b { font-size: 24px; letter-spacing: -.02em; font-weight: 800; text-shadow: 0 2px 14px rgba(0, 0, 0, .35); }
.cover-btn { justify-self: center; padding: 15px 26px; border-radius: 999px; background: var(--ink); color: #fff; font-weight: 800; font-size: 18px; }
.countdown { display: flex; align-items: center; gap: 12px; margin: 2px 0 4px; }
.countdown .big-num { font-size: 92px; }
.countdown span { font-size: 26px; font-weight: 800; line-height: 1.04; letter-spacing: -.02em; }
.seg-bar { display: grid; grid-template-columns: repeat(var(--n, 6), 1fr); gap: 6px; margin-top: 14px; }
.seg-bar i { height: 14px; border-radius: 7px; background: rgba(0, 0, 0, .12); }
.seg-bar i.done { background: var(--ink); }
.seg-bar i.now { background: repeating-linear-gradient(-45deg, var(--ink) 0 6px, rgba(0, 0, 0, .35) 6px 12px); background-size: 34px 34px; animation: stripes 1.4s linear infinite; }
@keyframes stripes { to { background-position: 34px 0; } }
.step-label { margin: 8px 0 0; font-size: 14px; font-weight: 700; }
.track-person { margin: 10px 0 0; font-size: 16px; color: var(--ink-2); font-weight: 500; }
.courier-row { display: flex; align-items: center; gap: 12px; margin-top: 14px; padding: 12px 14px; border-radius: 22px; background: #fff; box-shadow: var(--lift); text-align: left; color: var(--ink); }
.note-row { align-items: flex-start; }
.note-row .driver-main span { font-size: 15px; line-height: 1.4; color: var(--ink); margin-top: 2px; }
.latest { display: flex; align-items: center; gap: 10px; width: 100%; margin-top: 12px; padding: 13px 16px; border-radius: 22px; background: #fff; box-shadow: var(--lift); text-align: left; color: var(--ink); }
.latest > span { flex: 1; display: grid; } .latest small { font-size: 12.5px; color: var(--card-2); } .latest b { font-size: 15.5px; }
.journey { list-style: none; margin: 8px 0 0; padding: 0 0 0 16px; border-left: 3px solid var(--ink); display: grid; gap: 14px; }
.journey li { position: relative; display: grid; gap: 2px; }
.journey li::before { content: ''; position: absolute; left: -24px; top: 3px; width: 13px; height: 13px; border-radius: 50%; background: var(--yellow); border: 3px solid var(--ink); }
.journey small { font-size: 12.5px; color: var(--ink-2); } .journey b { font-size: 15px; }
.delay-card { display: grid; gap: 4px; margin-top: 14px; padding: 16px; border-radius: 22px; background: #fff; box-shadow: var(--lift); text-align: left; color: var(--ink); --ink-2: #4D4A45; }
.delay-card b { font-size: 17px; } .delay-card span { color: var(--card-2); font-size: 14.5px; }
.day-cards { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.day-cards li { display: flex; gap: 12px; align-items: center; }
.day-date { width: 42px; display: grid; justify-items: center; flex: none; }
.day-date small { font-size: 12px; font-weight: 800; text-transform: uppercase; }
.day-date b { width: 36px; height: 36px; border-radius: 50%; display: grid; place-items: center; background: #fff; font-size: 15px; box-shadow: 0 2px 0 rgba(0, 0, 0, .12); }
.day-cards li.done .day-date b { background: var(--ink); color: #fff; }
.day-card { flex: 1; display: flex; align-items: center; gap: 12px; padding: 10px; border-radius: 18px; background: #fff; box-shadow: 0 3px 0 rgba(0, 0, 0, .1); min-width: 0; color: var(--ink); }
.day-card img { width: 46px; height: 46px; border-radius: 12px; object-fit: cover; flex: none; }
.day-card > span { display: grid; }
.day-card b { font-size: 15px; }
.day-card small { font-size: 13px; color: var(--card-2); }
.day-ic { display: grid; place-items: center; width: 46px; height: 46px; border-radius: 12px; background: var(--yellow); flex: none; }
.done-fold button { display: flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 14px; border-radius: 999px; background: #fff; box-shadow: 0 3px 0 rgba(0, 0, 0, .1); font-weight: 800; font-size: 14px; color: var(--ink); }
.done-fold button .ic:last-child { width: 16px; height: 16px; }

/* Sketch (yellow) and the finished painting (cobalt peak): the picture framed as a sticker, one black/white pill */
.viewer { position: relative; overflow: hidden; background: #fff; aspect-ratio: 4 / 4.4; max-height: 46vh; margin: 4px auto 0; border: 8px solid #fff; border-radius: 22px; box-shadow: var(--drop); cursor: crosshair; }
.viewer img { width: 100%; height: 100%; object-fit: cover; border-radius: 12px; transition: transform var(--smooth-ms) var(--smooth); transform-origin: var(--zx, 50%) var(--zy, 50%); }
.viewer.final { cursor: zoom-in; }
.viewer.zoomed img { transform: scale(3); }
.viewer.crop { cursor: default; }
.viewer.crop::after { content: ''; position: absolute; inset: 6%; border: 2px dashed rgba(255, 255, 255, .9); border-radius: 4px; box-shadow: 0 0 0 999px rgba(0, 0, 0, .22); }
.viewer .tag { left: 8px; top: 8px; }
.pin-layer { position: absolute; inset: 0; pointer-events: none; }
.pin { position: absolute; width: 30px; height: 30px; margin: -30px 0 0 -15px; border-radius: 50% 50% 50% 4px; transform: rotate(-45deg); background: var(--ink); color: #fff; font-weight: 800; font-size: 13px; display: grid; place-items: center; border: 2px solid #fff; box-shadow: 0 4px 10px rgba(0, 0, 0, .3); animation: pop .4s var(--bouncy) both; }
.viewer-seg { width: 230px; margin: 14px auto 0; }
.approve-panel { margin: 16px 0 0; padding: 18px; background: #fff; color: var(--ink); border-radius: 26px; display: grid; gap: 10px; box-shadow: var(--lift); --ink-2: #4D4A45; --ink-3: #6A665F; }
.approve-panel .title-2 { margin: 0; }
.approve-panel .sub { margin: 0 0 4px; font-size: 15px; }
.approve-panel .btn-secondary { box-shadow: inset 0 0 0 2.5px var(--ink); }
.screen[data-screen='sketch'], .screen[data-screen='final'] { padding-bottom: calc(var(--bottom) + 20px); }
.peak .rays { position: absolute; left: 50%; top: 260px; width: 960px; height: 960px; margin: -480px 0 0 -480px; border-radius: 50%; background: repeating-conic-gradient(rgba(255, 255, 255, .14) 0 9deg, transparent 9deg 18deg); pointer-events: none; animation: spin 60s linear infinite; z-index: 0; }
.peak > *:not(.rays):not(.cf) { position: relative; z-index: 1; }
.cf { position: absolute; width: 12px; height: 22px; border-radius: 3px; z-index: 0; pointer-events: none; }
.cf.round { width: 11px; height: 11px; border-radius: 50%; }
.screen[data-tint='cobalt'] .nav-btn { background: rgba(255, 255, 255, .18); color: #fff; box-shadow: none; }
.screen[data-tint='cobalt'] .nav-count { color: rgba(255, 255, 255, .85); }
.screen[data-tint='cobalt'] .approve-panel { background: transparent; color: #fff; box-shadow: none; padding: 16px 0 0; --ink-2: rgba(255, 255, 255, .88); --ink-3: rgba(255, 255, 255, .8); }
.screen[data-tint='cobalt'] .approve-panel .btn-secondary { background: transparent; color: #fff; box-shadow: inset 0 0 0 2.5px #fff; }
.zoom-chip { margin: 14px auto 0; display: flex; width: max-content; }
.reveal-cover { min-height: 640px; display: grid; place-content: center; gap: 18px; text-align: center; }
.reveal-blur { width: 250px; height: 300px; margin: 0 auto; border: 8px solid #fff; border-radius: 22px; overflow: hidden; box-shadow: var(--drop); transform: rotate(-3deg); }
.reveal-blur img { width: 100%; height: 100%; object-fit: cover; filter: blur(24px); transform: scale(1.25); }
.redrawn { margin-top: 12px; }
.money-big { display: grid; justify-items: start; margin: 8px 0 12px; }
.money-big b { font-size: 64px; font-weight: 800; letter-spacing: -.045em; line-height: .95; }
.money-big span { color: var(--ink-2); font-size: 15px; margin-top: 4px; }
.comment-head { display: flex; align-items: center; gap: 10px; margin-bottom: 4px; }
.comment-head .avatar { width: 32px; height: 32px; font-size: 13px; }

/* It's yours (orange), home (yellow) */
.center-col { display: flex; flex-direction: column; align-items: center; text-align: center; padding-top: 24px; }
.check-big { width: 120px; height: 120px; border-radius: 50%; background: var(--ink); color: #fff; display: grid; place-items: center; margin: 30px auto 18px; transform: rotate(-8deg); box-shadow: var(--drop); }
.check-big .ic { width: 58px; height: 58px; stroke-width: 2.8; }
.check-big.small { width: 60px; height: 60px; margin: 4px 0 10px; transform: none; box-shadow: none; }
.check-big.small .ic { width: 30px; height: 30px; }
.big-date { display: grid; gap: 2px; margin-top: 18px; padding: 14px 22px; border-radius: 22px; background: #fff; box-shadow: var(--lift); color: var(--ink); }
.big-date small { color: var(--card-2); font-size: 14px; font-weight: 600; } .big-date b { font-size: 30px; letter-spacing: -.02em; }
.approved .body { max-width: 320px; }
.wall-ask { display: flex; gap: 12px; align-items: center; width: 100%; margin-top: 12px; padding: 14px 16px; border-radius: 22px; background: var(--ink); color: #fff; text-align: left; }
.wall-ask > span { display: grid; } .wall-ask small { opacity: .75; font-size: 13.5px; }
.gift-steps { list-style: none; margin: 12px 0 0; padding: 14px 16px; background: #fff; box-shadow: var(--lift); border-radius: 22px; display: grid; gap: 10px; text-align: left; color: var(--ink); }
.gift-steps li { display: flex; gap: 10px; align-items: center; font-size: 15px; color: var(--card-3); }
.gift-steps li.done { color: var(--ink); font-weight: 600; }
.gift-steps li .ic { width: 18px; height: 18px; }
.rate { display: flex; justify-content: center; gap: 8px; margin-top: 10px; }
.rate button { font-size: 42px; color: #D9D2C8; line-height: 1; padding: 2px; transition: transform var(--snap-ms) var(--snap), color .15s; }
.rate button.on { color: var(--ink); transform: scale(1.08) rotate(-6deg); }
.rate-face { width: 76px; height: 76px; border-radius: 50%; object-fit: cover; margin-bottom: 10px; border: 4px solid var(--yellow); }
.wall-toggle { display: flex; gap: 12px; align-items: center; margin-top: 14px; padding: 12px; border-radius: 16px; background: #F4F3F1; text-align: left; cursor: pointer; }
.wall-toggle > span { display: grid; } .wall-toggle small { color: var(--ink-2); font-size: 12.5px; }
.making { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; margin-top: 10px; }
.making figure { margin: 0; }
.making img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 12px; border: 3px solid #fff; box-shadow: 0 3px 8px rgba(0, 0, 0, .15); }
.making figure:nth-child(odd) img { transform: rotate(-3deg); } .making figure:nth-child(even) img { transform: rotate(3deg); }
.making figcaption { font-size: 11.5px; color: var(--ink-2); margin-top: 6px; text-align: center; font-weight: 600; }
.film { position: relative; aspect-ratio: 4 / 5; max-height: 46vh; margin: 8px auto 10px; border: 8px solid #fff; border-radius: 22px; overflow: hidden; background: #000; box-shadow: var(--drop); }
.film img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; animation: film 4.8s infinite; }
@keyframes film { 0% { opacity: 0; transform: scale(1.04); } 6% { opacity: 1; } 25% { opacity: 1; } 31% { opacity: 0; transform: none; } 100% { opacity: 0; } }

/* Gift (sky): Etsy Gift Teaser — the painting blurred on a yellow card, one black "Open" pill, the note in serif */
.gift-nav { margin-bottom: 4px; }
.gift-teaser { position: relative; height: 300px; margin: 18px 0 0; border-radius: 26px; background: var(--yellow); overflow: hidden; box-shadow: var(--lift); }
.gift-teaser img { position: absolute; inset: -40px; width: calc(100% + 80px); height: calc(100% + 80px); object-fit: cover; filter: blur(26px) saturate(1.2); opacity: .85; }
.gift-teaser .btn { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); width: auto; padding: 0 28px; white-space: nowrap; }
.gift-box { position: absolute; right: -10px; top: 108px; width: 96px; transform: rotate(12deg); z-index: 3; pointer-events: none; }
.gift-wrap { position: relative; }
.gift-note { margin: 22px 0 0; }
.proof-frame { width: 270px; height: 330px; margin: 18px auto 10px; border: 10px solid #fff; border-radius: 22px; overflow: hidden; box-shadow: var(--drop); transform: rotate(-3deg); }
.proof-frame img { width: 100%; height: 100%; object-fit: cover; }
.invite { display: grid; gap: 4px; padding: 16px; border-radius: 22px; background: #fff; box-shadow: var(--lift); color: var(--ink); text-align: left; }
.invite span { color: var(--card-2); font-size: 14px; }
.reveal-closed { min-height: 560px; justify-content: center; }

/* Help, account, receipt */
.aircover { display: flex; align-items: center; gap: 12px; margin: 0 0 12px; }
.aircover .ic { width: 38px; height: 38px; padding: 7px; border-radius: 12px; background: var(--yellow); }
.aircover span { display: grid; }
.aircover b { font-size: 22px; letter-spacing: -.02em; font-weight: 800; }
.aircover small { color: var(--ink-2); font-size: 13.5px; }
.promise-mini { list-style: none; margin: 10px 0 0; padding: 12px 14px; display: grid; gap: 7px; background: #F4F3F1; border-radius: 18px; }
.promise-mini li { display: flex; gap: 10px; font-size: 13.5px; color: var(--ink-2); line-height: 1.35; }
.promise-mini .ic { width: 18px; height: 18px; color: var(--ink); margin-top: 1px; }
.case-steps { list-style: none; padding: 0; margin: 12px 0 0; display: grid; gap: 14px; counter-reset: c; }
.case-steps li { display: grid; gap: 2px; padding-left: 40px; position: relative; counter-increment: c; }
.case-steps li::before { content: counter(c); position: absolute; left: 0; top: 0; width: 28px; height: 28px; border-radius: 50%; background: var(--ink); color: #fff; font-weight: 800; font-size: 14px; display: grid; place-items: center; }
.case-steps span { font-size: 14px; color: var(--ink-2); }
.acct-head { display: flex; gap: 14px; align-items: center; }
.acct-head div { display: grid; }
.acct-head b { font-size: 21px; font-weight: 800; }
.receipt-box { display: grid; gap: 7px; padding: 14px 16px; border-radius: 18px; background: #F4F3F1; font-size: 13.5px; color: var(--ink-2); }
.receipt-box p { margin: 0; line-height: 1.4; } .receipt-box b { color: var(--ink); }
.terms-frame iframe { width: 100%; height: 62vh; border: 0; border-radius: 14px; background: #fff; box-shadow: inset 0 0 0 1px var(--line); }
.detail-hero { width: 230px; height: 270px; margin: 10px auto 18px; transform: rotate(-3deg); }

/* ---------- juice: short, purposeful; the two peaks are the finished painting and the gift; all off with Reduce Motion ---------- */
.preview-canvas.fly-in { animation: flyIn .3s cubic-bezier(.2, .8, .2, 1.1) both; }
@keyframes flyIn { from { transform: translateY(40px) scale(.86) rotate(-4deg); opacity: 0; } to { transform: none; opacity: 1; } }
.brush-sweep { position: absolute; inset: 8px; background-size: cover; background-position: center; pointer-events: none; animation: sweep 1s .25s cubic-bezier(.6, 0, .3, 1) both; -webkit-mask-image: linear-gradient(100deg, #000 45%, transparent 55%); mask-image: linear-gradient(100deg, #000 45%, transparent 55%); -webkit-mask-size: 260% 100%; mask-size: 260% 100%; -webkit-mask-position: 0 0; mask-position: 0 0; }
.preview-canvas.frame-none .brush-sweep { inset: 0; }
@keyframes sweep { to { -webkit-mask-position: 100% 0; mask-position: 100% 0; } }
.roll { display: inline-block; animation: roll .22s ease-out; }
@keyframes roll { from { transform: translateY(-60%); opacity: 0; } to { transform: none; opacity: 1; } }
.sticker.spring, .painter-hero .sticker.spring { animation: stickerIn .55s cubic-bezier(.3, 1.6, .5, 1) both; }
@keyframes stickerIn { from { transform: scale(.4) rotate(-20deg); opacity: 0; } to { transform: rotate(-6deg); opacity: 1; } }
.viewer.unblur img { animation: unblur 1s .1s ease-out both; }
@keyframes unblur { from { filter: blur(18px); transform: scale(1.06); } to { filter: none; transform: none; } }
.viewer.revealed img { animation: unblur 1.2s ease-out both; }
.viewer.revealed::after { content: ''; position: absolute; inset: 0; background: linear-gradient(110deg, transparent 30%, rgba(255, 244, 214, .6) 50%, transparent 70%); background-size: 250% 100%; animation: light 1.4s .5s ease-out both; pointer-events: none; }
@keyframes light { from { background-position: 120% 0; } to { background-position: -60% 0; opacity: 0; } }
.check-big.draw .ic { stroke-dasharray: 30; stroke-dashoffset: 30; animation: draw .35s .15s ease-out forwards; }
@keyframes draw { to { stroke-dashoffset: 0; } }
.track-hero.hang { animation: hang .5s cubic-bezier(.3, 1.4, .5, 1) both; transform-origin: 50% 0; }
@keyframes hang { from { transform: translateY(-40px) rotate(-8deg); } to { transform: rotate(-3deg); } }
.note.heart .ic { animation: heart .5s .2s ease-out both; }
@keyframes heart { 0% { transform: scale(.6); } 60% { transform: scale(1.25); } 100% { transform: none; } }
.proof-frame.unwrap { animation: unwrap .6s cubic-bezier(.2, .9, .3, 1.2) both; }
@keyframes unwrap { from { transform: scale(.7) rotate(-12deg); opacity: 0; } to { transform: rotate(-3deg); opacity: 1; } }
.cf.fall { animation: fall 2.6s ease-in both; }
@keyframes fall { from { transform: translateY(-120px) rotate(0); opacity: 0; } 15% { opacity: 1; } to { transform: translateY(40px) rotate(220deg); opacity: 1; } }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 1ms !important; animation-iteration-count: 1 !important; transition-duration: 1ms !important; }
  .brush-sweep { display: none; } .check-big.draw .ic { stroke-dashoffset: 0; }
  .peak .rays { animation: none !important; }
}

/* =================== Studio app: the same route A — flat colour per tab, stickers, huge numbers, black pills.
   Chinese first, English small underneath, no Art & See brand. =================== */
.screen.studio { font-size: 15px; font-family: var(--font); }
.bi { display: inline-grid; line-height: 1.4; }
.bi .en { font-size: .8em; color: var(--ink-2); font-weight: 500; }
.card .bi .en, .sheet .bi .en, .st-card .bi .en { color: var(--card-3); }
.st-head { margin: 0 0 14px; }
.st-bar { display: flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 700; height: 40px; }
.st-rules { margin-left: auto; min-height: 38px; padding: 0 14px; border-radius: 999px; background: #fff; box-shadow: var(--lift); font-weight: 800; font-size: 13.5px; color: var(--ink); }
.st-title { font-size: 44px; line-height: 1; margin: 10px 0 0; font-weight: 900; letter-spacing: -.02em; }
.st-sub { margin: 2px 0 0; color: var(--ink-2); font-size: 15px; font-weight: 600; }
.st-card { background: #fff; color: var(--ink); border-radius: 24px; padding: 16px; margin-bottom: 12px; box-shadow: var(--lift); --ink-2: #4D4A45; --ink-3: #6A665F; }
.st-h { display: block; margin-bottom: 8px; font-size: 16px; font-weight: 800; }
.st-row { display: flex; align-items: center; gap: 10px; padding: 9px 0; font-size: 15px; }
.st-row + .st-row { border-top: 1px solid var(--line); }
.st-row > :last-child { margin-left: auto; }
.st-tag { display: inline-block; padding: 4px 10px; border-radius: 8px; background: var(--fill); font-weight: 800; font-size: 12.5px; }
.st-tag.gold, .st-tag.busy { background: var(--yellow); }
.st-tag.quiet { background: var(--sky); }
.st-tag.amber, .st-tag.red { background: var(--orange); color: var(--ink); }
.st-tag.money { background: var(--ink); color: #fff; }
.st-boost { font-weight: 900; font-size: 13px; }
.st-empty { display: grid; justify-items: start; gap: 8px; padding: 6px 2px 18px; }
.st-empty-ic { font-size: 54px; line-height: 1; }
.st-empty .bi .zh { font-size: 30px; font-weight: 900; line-height: 1.1; }
.st-empty .bi .en { font-size: 15px; }
.st-howto { display: grid; gap: 10px; }
/* the offer: the money is the hero (Cash App), the reference photo a sticker */
.st-offer { padding: 18px; }
.st-pay { display: grid; margin: 0 0 10px; }
.st-pay-label { font-size: 15px; font-weight: 800; }
.st-pay-num, .st-pay-num.money { font-size: 76px; font-weight: 900; letter-spacing: -.045em; line-height: .95; color: var(--ink); }
.st-net { margin-top: 4px; font-size: 13px; color: var(--card-2); }
.st-offer-top { display: flex; gap: 14px; width: 100%; padding: 6px 0 0; border: 0; background: none; text-align: left; cursor: pointer; color: var(--ink); }
.st-offer-top img { width: 104px; height: 128px; border-radius: 14px; object-fit: cover; flex: none; border: 5px solid #fff; box-shadow: 0 6px 14px rgba(0, 0, 0, .2); transform: rotate(-4deg); }
.st-offer-top > div { display: grid; align-content: start; gap: 5px; }
.st-spec { font-size: 13.5px; }
.st-margin { color: var(--card-2); }
.st-link { font-size: 13px; font-weight: 800; text-decoration: underline; text-underline-offset: 3px; }
.st-dates { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 14px 0; }
.st-dates div { background: var(--yellow); border-radius: 16px; padding: 10px 12px; display: grid; }
.st-dates small { font-size: 12px; font-weight: 700; } .st-dates small.en { font-weight: 500; color: var(--card-2); }
.st-dates b { font-size: 18px; font-weight: 900; }
.st-break { background: #F4F3F1; border-radius: 16px; padding: 2px 12px; }
details.st-break summary { cursor: pointer; padding: 10px 0; list-style: none; font-weight: 700; }
details.st-break summary::-webkit-details-marker { display: none; }
.st-line { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 9px 0; font-size: 14px; }
.st-line + .st-line { border-top: 1px dashed var(--line); }
.st-line b { font-weight: 800; }
.st-guarantee { display: flex; gap: 10px; width: 100%; align-items: center; text-align: left; margin-top: 10px; min-height: 50px; padding: 10px 12px; border-radius: 16px; background: #F4F3F1; font-size: 14px; color: var(--ink); }
.st-guarantee .ic { width: 22px; height: 22px; }
.st-foot { font-size: 13px; color: var(--ink-3); margin: 12px 0 0; }
.st-acceptbar { position: sticky; bottom: calc((var(--bottom) + 62px) - (var(--bottom) + 110px)); z-index: 6; margin: 0 -20px; padding: 12px 20px 12px; background: color-mix(in srgb, var(--tint) 94%, transparent); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); border-top: 2px solid var(--ink); }
.st-timer { display: flex; gap: 10px; align-items: center; margin: 0 0 10px; font-size: 13.5px; }
.st-timer .zh { font-weight: 800; }
.st-ring { --c: var(--ink); --p: 100; flex: none; display: grid; place-items: center; width: 42px; height: 42px; border-radius: 50%; font-size: 12px; font-weight: 900; background: radial-gradient(closest-side, #fff 76%, transparent 78% 100%), conic-gradient(var(--c) calc(var(--p) * 1%), rgba(0, 0, 0, .12) 0); }
.st-acceptbar.urgent .st-ring { --c: var(--red); }
.st-actions { display: grid; grid-template-columns: 2fr 1fr; gap: 8px; margin-top: 14px; }
.st-acceptbar .st-actions { margin-top: 0; }
.st-btn { min-height: 56px; border-radius: 999px; background: #fff; box-shadow: var(--lift); font-weight: 800; font-size: 16px; display: flex; align-items: center; justify-content: center; gap: 8px; color: var(--ink); }
.st-btn.primary { background: var(--ink); color: #fff; box-shadow: none; font-size: 18px; }
.st-card .st-btn:not(.primary), .sheet .st-btn:not(.primary):not(.text) { background: #F1EFEC; box-shadow: none; }
.st-btn.text { background: none; box-shadow: none; text-decoration: underline; text-underline-offset: 3px; }
.st-btn.wide { width: 100%; margin-top: 12px; }
.st-btn:active { transform: scale(.98); }
.st-btn:disabled { opacity: .35; }
.st-btn.primary:disabled { opacity: .3; }
.st-sheet { --ink-2: #4D4A45; --ink-3: #6A665F; }
.st-sheet .bi { display: grid; }
.st-sheet.center { text-align: center; }
.st-result { padding-top: 8px; }
.st-seal { display: inline-grid; place-items: center; margin: 14px auto 10px; padding: 12px 18px; border-radius: 12px; background: var(--ink); color: #fff; font-weight: 900; font-size: 26px; letter-spacing: .08em; transform: rotate(-8deg); animation: seal .45s cubic-bezier(.3, 1.6, .5, 1) both; box-shadow: var(--drop); }
@keyframes seal { from { transform: rotate(-8deg) scale(1.8); opacity: 0; } to { transform: rotate(-8deg); opacity: 1; } }
.st-big-due { font-size: 19px; font-weight: 800; margin: 8px 0; }
.st-how { list-style: none; margin: 8px 0 0; padding: 0; display: grid; gap: 12px; }
.st-how li { display: flex; gap: 12px; align-items: center; }
.st-how-ic { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 14px; background: var(--yellow); font-size: 22px; flex: none; }
.st-list { margin: 0; padding-left: 18px; display: grid; gap: 8px; font-size: 14px; }
.st-ref-big { width: 100%; border-radius: 16px; }
/* work */
.st-steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; margin: 12px 0; }
.st-step { display: grid; gap: 6px; font-size: 13px; }
.st-step i { height: 12px; border-radius: 6px; background: rgba(0, 0, 0, .1); }
.st-step.done i { background: var(--ink); }
.st-step.now i { background: repeating-linear-gradient(-45deg, var(--ink) 0 6px, var(--lilac) 6px 12px); }
.st-step.wait i { background: var(--orange); }
.st-good { display: flex; gap: 8px; align-items: center; margin: 10px 0 4px; padding: 12px 14px; border-radius: 16px; background: var(--yellow); font-size: 14.5px; font-weight: 700; }
.st-due { margin: 8px 0 0; font-weight: 800; font-size: 16px; }
.st-due.small { font-size: 13px; margin-top: 6px; font-weight: 700; }
.st-due.amber { color: var(--ink); }
.st-notes { background: #F4F3F1; border-radius: 16px; padding: 12px 14px; margin-top: 10px; }
.st-notes p { margin: 6px 0; font-size: 15px; display: grid; }
.st-pinimg { position: relative; width: 62%; margin: 8px 0; border: 5px solid #fff; border-radius: 14px; overflow: hidden; box-shadow: 0 6px 14px rgba(0, 0, 0, .18); transform: rotate(-2deg); }
.st-pinimg img { width: 100%; display: block; }
.st-change { margin: 6px 0 2px; font-size: 17px; font-weight: 800; }
.st-orig { margin: 2px 0; font-size: 13px; color: var(--card-2); }
.st-wait { font-weight: 700; margin: 12px 0 0; padding: 12px 14px; border-radius: 16px; background: #F4F3F1; }
.st-wait.good { background: var(--yellow); }
.st-activity { list-style: none; margin: 14px 0 0; padding: 12px 0 0; border-top: 1px dashed var(--line); display: grid; gap: 6px; font-size: 13px; }
.st-activity li { display: flex; gap: 10px; }
.st-activity time { color: var(--card-3); min-width: 54px; font-weight: 700; }
.st-ship { display: grid; gap: 0; }
.st-checks { display: grid; gap: 6px; margin-top: 12px; }
.st-check { display: flex; gap: 10px; align-items: center; min-height: 48px; padding: 6px 12px; border-radius: 14px; background: #F4F3F1; cursor: pointer; }
.st-check input { width: 24px; height: 24px; accent-color: #0E0E0E; }
.st-shots { display: grid; gap: 10px; margin-top: 12px; }
.st-shot { display: flex; gap: 12px; align-items: center; min-height: 68px; padding: 8px; border-radius: 18px; background: #F4F3F1; text-align: left; color: var(--ink); }
.st-shot-img { display: grid; place-items: center; width: 58px; height: 58px; border-radius: 12px; background: var(--yellow) center / cover no-repeat; flex: none; }
.st-shot.done .st-shot-img .ic { display: none; }
.st-shot.done { box-shadow: inset 0 0 0 3px var(--ink); }
.st-qr { width: 190px; height: 190px; margin: 12px auto; border-radius: 12px; background: conic-gradient(from 90deg at 2px 2px, #111 25%, #fff 0) 0 0 / 18px 18px, repeating-linear-gradient(45deg, #111 0 6px, #fff 6px 12px); box-shadow: inset 0 0 0 10px #fff, 0 0 0 2px var(--ink); }
.st-label { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 13px; margin: 8px 0 0; }
.st-case { box-shadow: inset 0 0 0 3px var(--ink), var(--lift); }
.st-compare { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 10px 0; }
.st-compare figure { margin: 0; }
.st-compare img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 12px; border: 4px solid #fff; box-shadow: 0 4px 10px rgba(0, 0, 0, .18); }
.st-compare figcaption { font-size: 12px; text-align: center; margin-top: 6px; }
/* pay: the celebration is a cobalt card with rays and the number huge (Cash App "complete", Finch sunburst) */
.st-paid { position: relative; overflow: hidden; display: grid; gap: 2px; margin-bottom: 12px; padding: 22px 20px; border-radius: 26px; background: var(--cobalt); color: #fff; box-shadow: var(--drop); animation: seal .5s cubic-bezier(.3, 1.4, .5, 1) both; }
.st-paid::before { content: ''; position: absolute; left: 50%; top: 50%; width: 700px; height: 700px; margin: -350px 0 0 -350px; background: repeating-conic-gradient(rgba(255, 255, 255, .13) 0 9deg, transparent 9deg 18deg); border-radius: 50%; }
.st-paid > * { position: relative; }
.st-paid .num { font-size: 72px; font-weight: 900; letter-spacing: -.045em; line-height: 1; }
.st-paid .bi .en, .st-paid small { color: rgba(255, 255, 255, .85); }
.st-paid .zh { font-weight: 800; font-size: 17px; }
.st-next { display: grid; gap: 2px; }
.st-next b { font-size: 56px; font-weight: 900; letter-spacing: -.04em; line-height: 1; }
.st-flow { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 12px; }
.st-tile { background: #fff; border-radius: 22px; padding: 14px; display: grid; gap: 4px; box-shadow: var(--lift); color: var(--ink); --ink-2: #4D4A45; }
.st-tile b { font-size: 28px; font-weight: 900; letter-spacing: -.02em; }
.st-tile small { font-size: 12px; color: var(--card-3); }
.st-week { margin: 6px 0; }
.st-mini { display: flex; gap: 8px; margin-top: 8px; } .st-mini img { width: 62px; height: 76px; object-fit: cover; border-radius: 10px; border: 4px solid #fff; box-shadow: 0 4px 10px rgba(0, 0, 0, .18); }
.st-mini img:nth-child(odd) { transform: rotate(-3deg); } .st-mini img:nth-child(even) { transform: rotate(3deg); }
/* level */
.st-score-big { display: flex; align-items: baseline; gap: 6px; margin-bottom: 8px; }
.st-score-big b { font-size: 76px; font-weight: 900; letter-spacing: -.045em; line-height: .95; }
.st-score-big .st-tag { margin-left: auto; }
.st-meter { position: relative; height: 16px; border-radius: 8px; background: rgba(0, 0, 0, .1); margin: 8px 0 22px; }
.st-meter i { position: absolute; left: 0; top: 0; bottom: 0; border-radius: 8px; background: var(--ink); }
.st-meter span { position: absolute; top: 18px; transform: translateX(-50%); font-size: 11px; font-weight: 700; }
.st-meter.soft i { background: repeating-linear-gradient(-45deg, var(--ink) 0 6px, var(--sky) 6px 12px); }
.st-rate { display: block; margin-top: 6px; font-size: 13px; font-weight: 700; }
.st-switch { display: flex; align-items: center; justify-content: space-between; gap: 10px; min-height: 52px; }
.st-count { margin: -4px 0 10px; }
.st-kit { display: flex; gap: 10px; align-items: flex-start; background: #F4F3F1; border-radius: 14px; padding: 10px 12px; margin-top: 10px; font-size: 14px; }
.money { color: inherit; }
@media (prefers-reduced-motion: reduce) { .st-seal, .st-paid { animation: none; } }

/* =================== Behind the scenes (desktop) =================== */
.backstage { width: min(1080px, 100%); align-self: flex-start; }
.bs-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 20px; margin-bottom: 18px; }
.bs-head h1 { font-size: 40px; margin: 0; letter-spacing: -.03em; font-weight: 800; }
.bs-head p { margin: 4px 0 0; color: #4D4A45; }
.bs-zero { display: flex; align-items: center; gap: 10px; background: var(--yellow); padding: 10px 16px; border-radius: 18px; box-shadow: var(--lift); }
.bs-zero b { font-size: 36px; }
.bs-zero span { font-size: 13px; color: #3A3A3A; max-width: 110px; line-height: 1.25; }
.bs-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.bs-card { background: #fff; border-radius: 22px; padding: 20px; box-shadow: var(--lift); min-width: 0; }
.bs-card.wide { grid-column: 1 / -1; }
.bs-card h2 { font-size: 19px; margin: 0 0 12px; font-weight: 800; }
.bs-muted { color: #4D4A45; font-size: 14px; margin: 10px 0 0; line-height: 1.45; }
.bs-bar { display: flex; height: 34px; border-radius: 10px; overflow: hidden; gap: 2px; }
.bs-bar i { display: block; min-width: 4px; }
.bs-bar .fee, .sw.fee { background: #B9B2A8; } .bs-bar .fund, .sw.fund { background: var(--yellow); } .bs-bar .studio, .sw.studio { background: var(--cobalt); } .bs-bar .studio2, .sw.studio2 { background: #93A0FF; } .bs-bar .margin, .sw.margin { background: var(--ink); } .bs-bar .line, .sw.line { background: var(--sky); } .bs-bar .ref, .sw.ref { background: var(--orange); }
.bs-legend { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 10px 16px; margin-top: 12px; }
.bs-legend div { display: grid; grid-template-columns: 12px 1fr auto; gap: 2px 8px; align-items: center; font-size: 14px; }
.bs-legend em { grid-column: 2 / -1; font-style: normal; color: #6A665F; font-size: 12.5px; }
.bs-legend div.unknown span:not(.sw) { color: #6A665F; font-style: italic; font-weight: 400; }
.sw { width: 12px; height: 12px; border-radius: 3px; }
.bs-evidence { margin-top: 14px; font-size: 13.5px; }
.bs-evidence ul { margin: 6px 0 0; padding: 0; list-style: none; display: grid; gap: 4px; color: #4D4A45; }
.bs-evidence time, .bs-feed time { display: inline-block; min-width: 92px; color: #6A665F; font-variant-numeric: tabular-nums; }
.bs-feed { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; font-size: 13.5px; max-height: 360px; overflow: auto; }
.bs-feed li { display: flex; gap: 8px; padding-left: 10px; border-left: 3px solid var(--sky); }
.bs-feed li.money { border-left-color: var(--yellow); }
.bs-table { width: 100%; border-collapse: collapse; font-size: 14px; }
.bs-table th, .bs-table td { text-align: left; padding: 9px 8px; border-bottom: 1px solid var(--line); vertical-align: top; }
.bs-table thead th { font-size: 12px; text-transform: uppercase; letter-spacing: .05em; color: #6A665F; }
.bs-table tbody th { font-weight: 800; }
.bs-table.compact td, .bs-table.compact th { padding: 7px 6px; }
.bs-table td.neg { color: var(--red); font-weight: 800; }
.bs-table td.thin { color: #8A5A00; font-weight: 800; }
.bs-table td.unknown { color: #6A665F; }
.bs-big { font-size: 44px; font-weight: 800; letter-spacing: -.03em; }
.bs-list { margin: 0; padding-left: 18px; display: grid; gap: 8px; font-size: 14px; color: #4D4A45; }
.note-card { background: var(--yellow); }
.st-margin { font-weight: 600; }
@media (max-width: 760px) {
  .backstage { padding: 20px 16px 140px; }
  .bs-grid { grid-template-columns: 1fr; }
  .bs-head { flex-direction: column; align-items: flex-start; }
  .bs-table { font-size: 13px; }
  .bs-card { overflow-x: auto; }
}
