:root {
  --bg: #FFFFFF;
  --bg-2: #F5F5F7;
  --fg: #1D1D1F;
  --fg-2: #6E6E73;
  --fg-3: #86868B;
  --hair: #D2D2D7;
  --blue: #0071E3;
  --blue-link: #0066CC;
  --orange: #FF9F0A;
  --red: #E30000;
  --green: #34C759;
  --font: "Inter Variable", -apple-system, BlinkMacSystemFont, "SF Pro Text", "PingFang SC", "Helvetica Neue", "Microsoft YaHei", sans-serif;
  --ease: cubic-bezier(.28, .11, .32, 1);
}
* { box-sizing: border-box; }
html { -webkit-font-smoothing: antialiased; scroll-behavior: smooth; }
body {
  margin: 0; background: var(--bg); color: var(--fg);
  font: 17px/1.47 var(--font); letter-spacing: -.022em;
}
a { color: var(--blue-link); text-decoration: none; }
a:hover { text-decoration: underline; }
button { font: inherit; letter-spacing: inherit; }
:focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; border-radius: 6px; }

/* 顶栏：48px 半透明毛玻璃 */
.gnav {
  position: sticky; top: 0; z-index: 20; height: 48px;
  background: rgba(251,251,253,.82);
  backdrop-filter: saturate(180%) blur(20px);
  -webkit-backdrop-filter: saturate(180%) blur(20px);
  border-bottom: 1px solid rgba(0,0,0,.08);
}
.gnav-in {
  display: flex; align-items: center; gap: 28px;
  max-width: 1024px; height: 100%; margin: 0 auto; padding: 0 22px;
  font-size: 12px; letter-spacing: -.01em; color: #333336;
}
.gnav .mark {
  font-size: 15px; font-weight: 600; letter-spacing: -.02em; color: var(--fg);
  display: inline-flex; align-items: center; gap: 6px;
}
.gnav .mark:hover { text-decoration: none; }
.gnav nav { display: flex; gap: 24px; }
.gnav nav a { color: inherit; }
.gnav nav a:hover, .gnav nav a[aria-current="page"] { color: var(--fg); text-decoration: none; font-weight: 600; }
.gnav .right { margin-left: auto; display: flex; align-items: center; gap: 12px; }
.gnav .join {
  padding: 5px 12px; border-radius: 980px; border: 0;
  background: var(--blue); color: #fff; font-size: 12px; font-weight: 500; cursor: pointer;
}
.gnav .join.active { background: #1D1D1F; }
.gnav .join:hover { text-decoration: none; opacity: .92; }

/* 首屏倒计时 */
.hero { padding: 72px 22px 44px; text-align: center; }
.hero .eyebrow { margin: 0 0 6px; font-size: 19px; font-weight: 600; color: var(--fg-2); letter-spacing: .004em; }
.hero h1 { margin: 0; font-size: 56px; line-height: 1.07; font-weight: 700; letter-spacing: -.03em; }
.hero .links { margin-top: 22px; display: flex; justify-content: center; gap: 28px; font-size: 16px; }
.hero .links a { white-space: nowrap; }
.hero .links a::after { content: " ›"; }

/* ---------- 英雄区卡券：热度最高的两条羊毛 ---------- */
.tickets {
  display: flex; justify-content: center; gap: 28px; flex-wrap: wrap;
  margin: 40px auto 0; padding: 0 12px; perspective: 1400px;
}
.ticket {
  --accent: #2F7BF6; --glow: rgba(120,170,255,.55); --notch: var(--bg);
  position: relative; width: 400px; max-width: 100%;
  border: 0; padding: 0; background: none; font: inherit; color: var(--fg); text-align: left; cursor: pointer;
  transform: rotate(var(--tilt, -2deg)) translateY(var(--lift, 0));
  transition: transform .45s var(--ease);
  filter: drop-shadow(0 18px 28px rgba(15, 30, 70, .14)) drop-shadow(0 2px 4px rgba(15, 30, 70, .08));
}
.ticket:nth-child(2) { --tilt: 2deg; --lift: 10px; }
.ticket:hover, .ticket:focus-visible { transform: rotate(0deg) translateY(-6px); }
.ticket.soon { --accent: #E8590C; --glow: rgba(255,170,110,.55); }

/* 卡券本体：用 mask 挖出两侧半圆缺口，阴影跟着缺口走 */
.ticket-body {
  position: relative; overflow: hidden; border-radius: 18px;
  background: #fff;
  -webkit-mask: radial-gradient(circle 13px at 0 var(--cut), #0000 98%, #000) left / 51% 100% no-repeat,
                radial-gradient(circle 13px at 100% var(--cut), #0000 98%, #000) right / 51% 100% no-repeat;
          mask: radial-gradient(circle 13px at 0 var(--cut), #0000 98%, #000) left / 51% 100% no-repeat,
                radial-gradient(circle 13px at 100% var(--cut), #0000 98%, #000) right / 51% 100% no-repeat;
  --cut: 152px;
}
/* 右上角的光晕，和参考图一样从右侧透进来 */
.ticket-body::before {
  content: ""; position: absolute; inset: -40% -30% auto auto; width: 75%; height: 140%;
  background: radial-gradient(closest-side, var(--glow), transparent 75%);
  pointer-events: none;
}
.ticket-main { position: relative; height: 152px; padding: 20px 26px 0; }
.ticket-top { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.brand { display: flex; align-items: center; gap: 9px; min-width: 0; }
.product-logo {
  --logo-size: 40px;
  width: var(--logo-size); height: var(--logo-size); flex: none;
  display: inline-grid; place-items: center; vertical-align: middle;
  border-radius: 11px; background: #fff; border: 1px solid rgba(0,0,0,.07);
  overflow: hidden; isolation: isolate;
}
.product-logo > * { grid-area: 1 / 1; }
.logo-fallback { font-size: 16px; font-weight: 600; color: var(--fg-3); }
.product-logo img { width: 100%; height: 100%; object-fit: contain; padding: 5px; background: #fff; position: relative; }
.logo-ticket { --logo-size: 28px; border-radius: 8px; }
.logo-ticket img { padding: 3px; }
.logo-detail { --logo-size: 52px; border-radius: 14px; }
.logo-detail img { padding: 7px; }
.logo-locked { background: var(--bg-2); border-color: transparent; }
.offer-identity { min-width: 0; display: flex; align-items: center; gap: 14px; }
.offer-identity .what { min-width: 0; flex: 1; }
.detail-heading { display: flex; align-items: flex-start; gap: 15px; }
.detail-heading > div { min-width: 0; flex: 1; }
.detail-heading h1 { min-width: 0; flex: 1; }
.detail-heading .logo-detail { margin-top: 5px; }
.brand-name { font-size: 14px; font-weight: 800; letter-spacing: .02em; text-transform: uppercase; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ticket-tag { flex: none; font-size: 11.5px; font-weight: 700; letter-spacing: .06em; color: var(--accent); white-space: nowrap; }
.ticket-amt { display: flex; align-items: baseline; gap: 8px; margin-top: 16px; white-space: nowrap; }
.ticket-amt b { font-size: 40px; line-height: 1; font-weight: 800; letter-spacing: -.035em; font-variant-numeric: tabular-nums; }
.ticket-amt span { font-size: 15px; font-weight: 500; color: var(--fg-2); }
.ticket-sub { display: flex; align-items: center; gap: 7px; margin-top: 10px; font-size: 14.5px; color: var(--fg-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ticket-sub svg { flex: none; width: 15px; height: 15px; stroke: var(--accent); fill: none; stroke-width: 1.8; }

/* 齿孔虚线 + 存根 */
.ticket-perf { position: relative; height: 0; margin: 0 20px; border-top: 1.5px dashed #D9DCE3; }
.ticket-stub { position: relative; display: block; height: 50px; line-height: 50px; padding: 0 26px; text-align: center; font-size: 13.5px; color: var(--fg-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ticket-stub strong { color: var(--fg); font-weight: 600; font-variant-numeric: tabular-nums; }
.ticket-stub .left { color: var(--accent); font-weight: 600; }
.ticket-hot { position: absolute; top: -11px; right: 22px; padding: 3px 9px; border-radius: 980px; background: var(--fg); color: #fff; font-size: 11.5px; font-weight: 600; letter-spacing: .02em; z-index: 2; }

/* 首屏入场：两张卡券依次落下，只在加载时做一次 */
.tickets .ticket { animation: ticket-in .8s var(--ease) backwards; }
.tickets .ticket:nth-child(1) { animation-delay: .18s; }
.tickets .ticket:nth-child(2) { animation-delay: .3s; }
@keyframes ticket-in { from { opacity: 0; transform: rotate(0deg) translateY(28px) scale(.97); } }

/* 会员速递印章：只出现在会员视角下提前可见的内容上 */
.stamp {
  --ink: #C4122F;
  display: inline-flex; align-items: center; flex: none;
  margin-left: 8px; padding: 2px 8px 1px;
  border: 2px solid var(--ink); border-radius: 5px;
  outline: 1px solid var(--ink); outline-offset: 2px;
  color: var(--ink); background: transparent;
  font-size: 11.5px; font-weight: 800; line-height: 1.35; letter-spacing: .16em; text-indent: .16em;
  white-space: nowrap; vertical-align: middle; user-select: none;
  transform: rotate(-7deg); opacity: .9; mix-blend-mode: multiply;
  /* 斑驳的印泥质感 */
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='60'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' seed='7'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -2.2 1.75'/%3E%3C/filter%3E%3Crect width='120' height='60' filter='url(%23n)'/%3E%3C/svg%3E");
          mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='60'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' seed='7'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -2.2 1.75'/%3E%3C/filter%3E%3Crect width='120' height='60' filter='url(%23n)'/%3E%3C/svg%3E");
  -webkit-mask-size: 120px 60px; mask-size: 120px 60px;
}
.stamp-lg { margin-left: 14px; padding: 3px 11px 2px; font-size: 14px; border-width: 2.5px; transform: rotate(-6deg) translateY(-3px); }
.stamp-ticket {
  position: absolute; z-index: 3; right: 26px; top: 56px; margin: 0;
  padding: 4px 11px 3px; font-size: 15px; border-width: 2.5px; outline-offset: 3px;
  transform: rotate(-12deg);
}
.stamp-box { float: right; margin: -2px 0 0 12px; }
.stamp-between {
  margin: 0 auto 0 0; transform: rotate(-7deg); pointer-events: none;
}
.row.member-early .what .n { overflow: visible; }

/* 粘性筛选栏 */
.bar {
  position: sticky; top: 48px; z-index: 10;
  background: rgba(255,255,255,.88);
  backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px);
  border-bottom: 1px solid transparent; transition: border-color .3s;
}
.bar.stuck { border-color: rgba(0,0,0,.08); }
.bar-in {
  display: flex; align-items: center; gap: 12px; flex-wrap: wrap;
  max-width: 980px; margin: 0 auto; padding: 12px 22px;
}
.seg {
  display: inline-flex; padding: 2px; border-radius: 9px;
  background: rgba(118,118,128,.12); overflow-x: auto; scrollbar-width: none;
}
.seg button {
  height: 28px; padding: 0 12px; border: 0; border-radius: 7px;
  background: none; color: var(--fg); font-size: 13px; font-weight: 500;
  white-space: nowrap; cursor: pointer;
  transition: background .2s var(--ease), box-shadow .2s var(--ease);
}
.seg button[aria-pressed="true"] {
  background: #fff;
  box-shadow: 0 3px 8px rgba(0,0,0,.12), 0 3px 1px rgba(0,0,0,.04);
}
.type-select {
  height: 32px; padding: 0 10px; border: 0; border-radius: 9px;
  background: rgba(118,118,128,.12); color: var(--fg); font: 500 13px var(--font); cursor: pointer;
}
.bar-tags { padding-top: 0; gap: 8px; }
.bar-tags .seg button small { margin-left: 4px; color: var(--fg-3); font-size: 11px; font-weight: 500; }
.bar-tags .seg button[aria-pressed="true"] small { color: var(--fg-2); }
.tag-count button, .empty-state button {
  height: 28px; padding: 0 12px; border: 0; border-radius: 7px; cursor: pointer;
  background: none; color: var(--blue); font: 500 13px var(--font);
}
.empty-state { text-align: center; padding: 72px 0; color: var(--fg-2); }
.empty-state button { margin-top: 8px; background: rgba(118,118,128,.12); color: var(--fg); }
.search { margin-left: auto; position: relative; }
.search input {
  width: 200px; height: 32px; padding: 0 12px 0 30px; border: 0; border-radius: 9px;
  background: rgba(118,118,128,.12); font: 13.5px var(--font); color: var(--fg);
}
.search input::placeholder { color: var(--fg-3); }
.search svg { position: absolute; left: 9px; top: 9px; width: 14px; height: 14px; fill: var(--fg-3); }
.toggle {
  display: flex; align-items: center; gap: 7px; font-size: 13px; color: var(--fg-2);
  cursor: pointer; white-space: nowrap;
}
.toggle input {
  appearance: none; width: 34px; height: 20px; border-radius: 10px;
  background: #E9E9EA; position: relative; cursor: pointer; transition: background .2s; margin: 0;
}
.toggle input::after {
  content: ""; position: absolute; top: 2px; left: 2px; width: 16px; height: 16px;
  border-radius: 50%; background: #fff; box-shadow: 0 2px 4px rgba(0,0,0,.2);
  transition: transform .2s var(--ease);
}
.toggle input:checked { background: var(--green); }
.toggle input:checked::after { transform: translateX(14px); }

/* 时刻表主体 */
.board { max-width: 980px; margin: 0 auto; padding: 8px 22px 110px; }
.group { margin-top: 44px; }
.group-head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.group h2 { margin: 0 0 4px; font-size: 28px; line-height: 1.14; font-weight: 700; letter-spacing: -.016em; }
.group .gsub { margin: 0 0 16px; font-size: 15px; color: var(--fg-3); }
.rows { border-top: 1px solid var(--hair); }
.row {
  display: grid; grid-template-columns: 112px minmax(0, 1fr) 148px 124px;
  align-items: center; gap: 22px; padding: 17px 6px;
  border-bottom: 1px solid var(--hair); cursor: pointer;
  transition: background .2s var(--ease);
}
.row:hover { background: var(--bg-2); }
a.row { color: inherit; }
a.row:hover { text-decoration: none; }
.row-link { color: inherit; }
.row-link:hover { text-decoration: none; }
.row.member-layout { grid-template-columns: 112px minmax(0, 1fr) 110px 214px; column-gap: 18px; }
.when { font-variant-numeric: tabular-nums; }
.when .d { font-size: 23px; font-weight: 300; letter-spacing: -.02em; line-height: 1.1; }
.when .t { font-size: 12.5px; color: var(--fg-3); margin-top: 2px; }
.what .n { font-size: 17px; font-weight: 600; line-height: 1.35; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.what .s { margin-top: 3px; font-size: 14px; color: var(--fg-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.badge {
  display: inline-block; padding: 1px 7px; border-radius: 980px;
  font-size: 11.5px; font-weight: 500; background: var(--bg-2); color: var(--fg-2);
}
.badge.verified { background: #E8F5E9; color: #1B5E20; }
.badge.paid-badge { margin-right: 6px; background: #FFF1E0; color: #B25000; font-weight: 600; vertical-align: 2px; }
.price-callout {
  display: flex; align-items: center; gap: 8px; margin: 18px 0 0; padding: 10px 14px;
  border-radius: 12px; background: #FFF8EE; color: #7A3E00; font-size: 14.5px; line-height: 1.45;
}
.price-callout .paid-badge { flex: none; margin: 0; }
.ticket-tag.paid-tag { color: #B25000; }
.amt { font-size: 16px; font-weight: 600; letter-spacing: -.01em; text-align: right; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.st { position: relative; display: flex; align-items: center; justify-content: flex-end; gap: 7px; font-size: 14px; color: var(--fg-2); white-space: nowrap; }
.dot { width: 8px; height: 8px; border-radius: 50%; background: var(--green); flex: none; }
.row.soon .dot { background: var(--orange); box-shadow: 0 0 0 0 rgba(255,159,10,.5); animation: pulse 2.2s var(--ease) infinite; }
.row.soon .st { color: #C93400; font-weight: 500; }
.row.ended .dot { background: var(--hair); }
.row.ended .when, .row.ended .what, .row.ended .amt { opacity: .42; }
/* 新线索预告：额度和截止清楚，平台和标题模糊（模糊的是同长度乱码，源码里没有真内容） */
.group.fresh .group-head { align-items: center; }
.fresh-cta { font-size: 15px; white-space: nowrap; }
.row.locked { cursor: default; grid-template-columns: 112px minmax(0, 1fr) 124px; position: relative; }
.row.locked:hover { background: none; }
.row.locked .st { display: none; }
.row.locked .what { filter: blur(5px); opacity: .75; user-select: none; pointer-events: none; }
.row.locked .what .badge { display: none; }
.row.locked .amt { font-weight: 600; color: var(--fg); }
.lockmsg {
  position: absolute; left: 188px; right: 160px; bottom: 12px;
  display: flex; align-items: center; gap: 10px;
  font-size: 13.5px; font-weight: 500; color: var(--fg);
}
.lock-ico { width: 11px; height: 13px; flex: none; border-radius: 2px; background: var(--fg); position: relative; margin-top: 3px; }
.lock-ico::before { content: ""; position: absolute; left: 2px; top: -5px; width: 7px; height: 7px; border: 1.6px solid var(--fg); border-bottom: 0; border-radius: 4px 4px 0 0; box-sizing: border-box; }
.lockmsg button {
  padding: 3px 12px; border: 0; border-radius: 980px;
  background: var(--blue); color: #fff; font-size: 12.5px; font-weight: 500; cursor: pointer;
}
.lockmsg button:hover { background: #0077ED; }
@keyframes pulse { 0% { box-shadow: 0 0 0 0 rgba(255,159,10,.55); } 70%, 100% { box-shadow: 0 0 0 7px rgba(255,159,10,0); } }

.more { display: block; margin: 20px auto 0; padding: 0; border: 0; background: none; color: var(--blue-link); font-size: 16px; cursor: pointer; }
.more::after { content: " ›"; }

/* 详情底部浮层 */
.sheet-bg {
  position: fixed; inset: 0; z-index: 30;
  background: rgba(0,0,0,.32); opacity: 0; pointer-events: none; transition: opacity .3s var(--ease);
}
.sheet {
  position: fixed; z-index: 31; left: 50%; bottom: 0;
  width: min(780px, 100%); max-height: 88vh; overflow-y: auto;
  background: #fff; border-radius: 20px 20px 0 0;
  padding: 40px 52px 52px;
  transform: translate(-50%, 100%); transition: transform .42s var(--ease);
}
.open .sheet-bg { opacity: 1; pointer-events: auto; }
.open .sheet { transform: translate(-50%, 0); }
.sheet .x {
  position: absolute; top: 18px; right: 18px; width: 36px; height: 36px;
  border: 0; border-radius: 50%; background: var(--bg-2); color: var(--fg-2);
  font-size: 20px; line-height: 36px; cursor: pointer;
}
.sheet .x:hover { background: #E8E8ED; }
.sheet .k { font-size: 14px; font-weight: 600; color: var(--fg-2); }
.sheet h3 { margin: 6px 40px 6px 0; font-size: 30px; line-height: 1.15; font-weight: 700; letter-spacing: -.02em; }
.sheet .meta { font-size: 14.5px; color: var(--fg-3); }
.sheet .d-benefit { margin: 20px 0 22px; font-size: 18px; line-height: 1.45; }
.member-box {
  margin: 18px 0 22px; padding: 16px 18px; border-radius: 12px;
  background: var(--bg-2); border-left: 3px solid var(--blue); font-size: 14.5px;
}
.member-box b { display: block; margin-bottom: 4px; font-size: 13px; color: var(--blue); }
.d-facts { display: grid; grid-template-columns: 112px 1fr; margin: 0; border-top: 1px solid var(--hair); font-size: 15px; }
.d-facts dt, .d-facts dd { padding: 11px 0; border-bottom: 1px solid var(--hair); margin: 0; }
.d-facts dt { color: var(--fg-3); }
.sheet h4 { margin: 26px 0 8px; font-size: 18px; font-weight: 600; }
.sheet ul, .sheet ol { margin: 0; padding-left: 20px; font-size: 15px; color: #333336; }
.sheet li { margin: 4px 0; }
.d-sources { list-style: none; padding: 0 !important; display: flex; flex-wrap: wrap; gap: 6px 18px; }
.d-sources span { color: var(--fg-3); margin-left: 4px; }
.sheet-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; margin-top: 28px; padding-top: 18px; border-top: 1px solid var(--hair); }
.d-cta {
  display: inline-block; padding: 10px 20px; border-radius: 980px;
  background: var(--blue); color: #fff; font-size: 15px; font-weight: 500;
}
.d-cta:hover { background: #0077ED; text-decoration: none; }
.d-page-link { font-size: 14px; color: var(--blue-link); }
.vote-bar { margin-left: auto; display: flex; gap: 8px; }
.vote-btn {
  padding: 6px 12px; border: 1px solid var(--hair); border-radius: 980px;
  background: #fff; color: var(--fg-2); font-size: 13px; cursor: pointer;
}
.vote-btn:hover { border-color: var(--fg-2); color: var(--fg); }

/* 统一活动正文与保留来源备注的原帖图集 */
.offer-article-body { margin: 24px 0; font-size: 16px; line-height: 1.8; overflow-wrap: anywhere; }
.offer-article-body p { margin: 14px 0; white-space: pre-line; }
.offer-method { margin-top: 26px; overflow-wrap: anywhere; }
.offer-method h2 { margin: 0 0 10px; font-size: 22px; line-height: 1.4; }
.offer-method ol { margin: 0; padding-left: 22px; font-size: 15px; line-height: 1.8; }
.offer-method li { margin: 4px 0; white-space: pre-line; }
.post-images { margin: 18px 0 24px; min-width: 0; overflow-wrap: anywhere; }
.post-report-image figcaption a { color: var(--fg-2); }
.post-report-image { margin: 16px 0 0; min-width: 0; }
.post-report-image:first-child { margin-top: 0; }
.post-report-image > a { display: block; width: fit-content; max-width: 100%; }
.post-report-image img { display: block; max-width: 100%; width: auto; height: auto; object-fit: contain; border: 1px solid var(--hair); border-radius: 10px; background: var(--bg-2); }
.post-report-image figcaption { margin-top: 7px; font-size: 12px; line-height: 1.6; color: var(--fg-3); }

/* 独立详情页布局 */
.article { max-width: 760px; margin: 0 auto; padding: 48px 22px 100px; }
.crumb { font-size: 13px; color: var(--fg-3); margin-bottom: 16px; }
.article h1 { margin: 6px 0 10px; font-size: 38px; line-height: 1.13; letter-spacing: -.024em; }
.related { margin-top: 48px; padding-top: 28px; border-top: 1px solid var(--hair); }

footer {
  max-width: 980px; margin: 0 auto; padding: 28px 22px 56px;
  border-top: 1px solid var(--hair); font-size: 12.5px; color: var(--fg-3);
  display: flex; justify-content: space-between; flex-wrap: wrap; gap: 10px;
}

@media (max-width: 734px) {
  .gnav nav { display: none; }
  .hero { padding: 48px 18px 32px; }
  .hero h1 { font-size: 34px; }
  .tickets { gap: 22px; margin-top: 28px; }
  .hero .links { flex-wrap: wrap; gap: 8px 22px; font-size: 15px; }
  .ticket { width: 100%; --tilt: -1deg; }
  .ticket:nth-child(2) { --tilt: 1deg; --lift: 0px; }
  .ticket-body { --cut: 136px; }
  .ticket-main { height: 136px; padding: 18px 20px 0; }
  .ticket-amt b { font-size: 33px; }
  .ticket-stub { padding: 0 20px; font-size: 13px; }
  .stamp-ticket { top: 50px; right: 18px; font-size: 13.5px; }
      .bar-in { padding: 10px 16px; gap: 8px; }
  .bar { position: static; }
  .bar-tags { padding-top: 0; padding-bottom: 12px; gap: 8px; }
  .bar-tags .seg { max-width: 100%; }
  .search { order: -1; width: 100%; margin: 0; }
  .search input { width: 100%; }
  .board { padding: 0 16px 80px; }
  .group h2 { font-size: 23px; }
  .row { grid-template-columns: 76px minmax(0, 1fr); gap: 4px 14px; padding: 14px 0; }
  .row.member-layout { grid-template-columns: 76px minmax(0, 1fr); column-gap: 14px; }
  .logo-row { --logo-size: 32px; border-radius: 9px; }
  .logo-row img { padding: 4px; }
  .offer-identity { gap: 10px; }
  .row .amt, .row .st, .row .lockmsg { padding-left: 42px; }
  .logo-detail { --logo-size: 44px; border-radius: 12px; }
  .detail-heading { gap: 12px; }
  .article h1 { font-size: 30px; }
  .when { grid-row: span 2; }
  .when .d { font-size: 19px; }
  .amt { grid-column: 2; text-align: left; font-size: 15px; color: var(--fg-2); }
  .st { grid-column: 2; justify-content: flex-start; font-size: 13px; }
  .stamp-between { margin: 0 8px 0 0; }
  .row.member-layout .st { margin-top: 4px; }
  .row.locked { grid-template-columns: 76px minmax(0, 1fr); }
  .row.locked .when { grid-row: span 3; }
  .row.locked .amt { grid-column: 2; font-size: 19px; }
  .lockmsg { position: static; grid-column: 2; flex-wrap: wrap; gap: 6px 10px; margin-top: 2px; }
  .fresh-cta { display: none; }
  .sheet { padding: 34px 20px 40px; }
  .sheet h3 { font-size: 24px; }
  .d-facts { grid-template-columns: 90px 1fr; }
  .vote-bar { margin-left: 0; width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; }
}
