.wish-board { padding: clamp(38px, 6vw, 84px) 0 0; }
.wish-board-hero {
  display: flex; justify-content: space-between; align-items: end; gap: 22px 40px;
  padding-bottom: clamp(24px, 3.6vw, 44px); border-bottom: 1px solid var(--studio-line);
}
.wish-board-hero h1 {
  margin: 0; font-size: clamp(2.7rem, 5.7vw, 4.7rem); font-weight: 660;
  line-height: 1.04; letter-spacing: -.055em;
}
.wish-board-hero p {
  max-width: 52ch; margin: 13px 0 0; color: var(--studio-muted);
  font-size: clamp(1rem, 1.35vw, 1.15rem); line-height: 1.62;
}
html:lang(zh) .wish-board-hero h1 {
  font-size: clamp(2.25rem, 4.65vw, 3.8rem); font-weight: 600; line-height: 1.14; letter-spacing: .01em;
}
html:lang(zh) .wish-board-hero p { max-width: 29em; line-height: 1.7; }
.wish-primary { flex: none; }
.wish-board-columns {
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(15rem, 18.5rem);
  gap: clamp(24px, 4.2vw, 58px); align-items: start; margin-top: clamp(24px, 3.5vw, 43px);
}
.wish-feed, .wish-board-side { min-width: 0; }
.wish-feed-bar { display: flex; align-items: center; justify-content: space-between; gap: 9px 16px; flex-wrap: wrap; min-height: 42px; margin-bottom: 12px; }
.wish-feed-bar h2 { margin: 0; font-size: clamp(1.38rem, 2.3vw, 1.9rem); line-height: 1.22; font-weight: 640; letter-spacing: -.03em; }
html:lang(zh) .wish-feed-bar h2 { letter-spacing: .01em; font-weight: 600; }
.wish-filter { display: flex; align-items: center; gap: 8px; color: var(--studio-muted); font-size: .88rem; }
.wish-filter[hidden], .wish-composer [hidden] { display: none; }
.wish-filter .stage-filter { width: auto; min-width: 9rem; min-height: 44px; margin: 0; }
.wish-feed-list { display: grid; gap: 12px; padding: 0; margin: 0; list-style: none; }
.wish-feed-list > li {
  min-width: 0; background: #fff; border: 1px solid var(--studio-line); border-radius: 14px;
}
.wish-feed-list h3 { margin: 0; font-size: clamp(1.08rem, 1.9vw, 1.45rem); font-weight: 650; line-height: 1.32; overflow-wrap: anywhere; }
.wish-feed-list p { margin: 7px 0 0; color: var(--studio-muted); white-space: pre-wrap; overflow-wrap: anywhere; }
.wish-list-state { padding: clamp(23px, 4vw, 43px); }
.wish-list-state p:first-child { margin-top: 0; }
.wish-list-state .wish-example {
  width: fit-content; margin: 17px 0 0; padding: 10px 13px; border-left: 2px solid #aebfda;
  border-radius: 0 7px 7px 0; background: var(--studio-tint); font-size: .9rem;
}
.wish-state-action {
  min-height: 44px; margin-top: 13px; padding: 0 10px; border-radius: 8px;
  border: 1px solid var(--studio-control-line); background: #fff; color: var(--studio-accent); font-weight: 650;
}
.wish-state-action:hover { background: var(--studio-tint); }
.wish-card { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; gap: 16px; padding: clamp(16px, 2.8vw, 27px); }
.wish-card-content { min-width: 0; }
.wish-card-meta { display: flex; flex-wrap: wrap; align-items: baseline; gap: 7px; color: var(--studio-muted); font-size: .78rem; margin: 0 0 8px; }
.wish-card-meta .stage-badge { margin: 0; }
.wish-card .wish-context, .wish-card .stage-note, .wish-card .vote-error { font-size: .87rem; }
.wish-card small { color: var(--studio-muted); }
.wish-card .stage-note { border-left: 2px solid #b4c7e5; padding: 8px 11px; background: var(--studio-tint); }
.wish-card .vote-error { color: #8a3f1f; }
.wish-card-vote { display: grid; justify-items: end; gap: 5px; }
.wish-vote-count { color: var(--studio-muted); font-size: .82rem; font-variant-numeric: tabular-nums; white-space: nowrap; }
.wish-vote-button {
  min-height: 44px; padding: 6px 13px; border: 1px solid var(--studio-control-line); border-radius: 8px;
  background: var(--studio-tint); color: var(--studio-accent); font-size: .88rem; font-weight: 650;
}
.wish-vote-button:not(:disabled, [aria-disabled="true"]):hover { background: #e0eaf8; }
.wish-vote-button:is(:disabled, [aria-disabled="true"]) { cursor: default; background: #f2f4f8; color: var(--studio-muted); }
.wish-board-side { padding: 17px 0 0; }
.wish-board-side h2 { margin: 0; color: var(--studio-ink); font-size: 1.04rem; line-height: 1.35; font-weight: 650; }
.wish-board-how { padding: 19px 20px; border-radius: 12px; background: var(--studio-tint); border: 1px solid var(--studio-line); }
.wish-board-how ol { margin: 12px 0 0; padding: 0; list-style: none; counter-reset: wish-how; }
.wish-board-how li { position: relative; padding: 9px 0 0 27px; margin: 8px 0 0; border-top: 1px solid #d7e1ef; counter-increment: wish-how; }
.wish-board-how li::before { content: counter(wish-how, decimal-leading-zero); position: absolute; top: 11px; left: 0; font-size: .71rem; font-weight: 650; color: var(--studio-accent); }
.wish-board-how strong { font-size: .88rem; }
.wish-board-side p { margin: 4px 0 0; color: var(--studio-muted); font-size: .88rem; line-height: 1.55; }
.wish-board-private { margin: 21px 1px 0; }
.wish-board-private .text-link { margin: 3px 0 0; padding: 0; }
.wish-visually-hidden {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden;
  clip-path: inset(50%); white-space: nowrap;
}

.wish-composer {
  position: fixed; inset: 0; margin: auto; width: min(610px, calc(100% - 26px)); max-width: none;
  max-height: calc(100dvh - 26px); padding: 0; overflow: auto; overscroll-behavior: contain;
  border: 1px solid var(--studio-line); border-radius: 15px; color: var(--studio-ink); background: #fff;
  box-shadow: 0 20px 74px #14223843;
}
.wish-composer:not([open]) { display: none; }
.wish-composer::backdrop { background: #172339ab; }
body:has(.wish-composer[open]) { overflow: hidden; }
.wish-compose-head {
  display: flex; align-items: center; justify-content: space-between; gap: 9px;
  position: sticky; z-index: 1; top: 0; padding: 11px clamp(15px, 3.3vw, 28px);
  background: #fff; border-bottom: 1px solid var(--studio-line);
}
.wish-compose-head h2 { margin: 0; font-size: clamp(1.25rem, 2.7vw, 1.75rem); line-height: 1.22; font-weight: 640; }
.wish-compose-close {
  display: grid; place-items: center; flex: 0 0 44px; height: 44px; padding: 0;
  border: 0; border-radius: 8px; background: transparent; color: var(--studio-muted);
}
.wish-compose-close:hover { background: var(--studio-tint); color: var(--studio-ink); }
.wish-compose-close svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.65; stroke-linecap: round; }
.studio-shell-v3 .wish-compose-form { padding: 13px clamp(15px, 3.3vw, 28px) 24px; border: 0; box-shadow: none; border-radius: 0; }
.wish-compose-form .wish-compose-fields > label:first-child { margin-top: 5px; }
.wish-compose-form textarea { min-height: 91px; }
.wish-compose-more { margin-top: 9px; }
.wish-compose-more summary { min-height: 44px; line-height: 44px; color: var(--studio-accent); font-size: .9rem; font-weight: 650; cursor: pointer; }
.wish-compose-more[open] { border-bottom: 1px solid var(--studio-line); padding-bottom: 10px; }
.wish-compose-privacy { margin: 13px 0 8px; }
.wish-compose-form .clickwrap { margin: 0 0 14px; }
.wish-compose-form #wish-status:empty { display: none; }
.wish-compose-form #wish-status[data-state="success"] { margin: 10px 0 15px; padding: 17px 18px; }
.wish-compose-form #wish-status strong { display: block; font-size: 1.12rem; }
.wish-compose-form .wish-receipt-body { display: block; margin: 4px 0 0; }
.wish-compose-form .wish-receipt-id { display: block; margin-top: 8px; overflow-wrap: anywhere; }
@media (max-width: 760px) {
  .wish-board-columns { grid-template-columns: minmax(0, 1fr); gap: 25px; }
  .wish-board-side { padding-top: 0; }
  .wish-board-hero { align-items: start; flex-direction: column; gap: 18px; }
}
@media (max-width: 460px) {
  .wish-board { padding-top: 30px; }
  .wish-card { grid-template-columns: minmax(0, 1fr); gap: 10px; }
  .wish-card-vote { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; }
  .wish-card-vote .vote-error { flex-basis: 100%; }
  .wish-filter .stage-filter { min-width: 7.6rem; }
}
@media (prefers-reduced-motion: no-preference) {
  .wish-board-hero { animation: studio-page-in 390ms var(--studio-ease) both; }
  .wish-feed { animation: studio-page-in 390ms 60ms var(--studio-ease) both; }
  .wish-composer[open] { animation: wish-compose-in 240ms var(--studio-ease) both; }
  @keyframes wish-compose-in { from { opacity: .62; transform: translateY(12px); } to { opacity: 1; transform: none; } }
}
