/* 仙剑98新补丁吴强突袭赛: red / black / gold. wq- is the event home, wqr- its subpages;
   the submit form reuses the shared sgu- markup, re-skinned at the bottom of this file. */
.wuqiang-page {
  --wq-ink: #f6e3c4; --wq-dim: #c8a97e; --wq-gold: #f0c065; --wq-gold-soft: rgba(240,192,101,.45);
  --wq-red: #d8412a; --wq-red-deep: #7c1b12; --wq-panel: rgba(18,8,6,.86); --wq-panel-soft: rgba(32,13,10,.72);
}
.wq {
  width: min(1280px, calc(100% - 32px)); margin: 0 auto; padding: 0 0 48px; color: var(--wq-ink);
  font-family: system-ui, -apple-system, "Segoe UI", "Microsoft YaHei", sans-serif;
}
/* Full-bleed art: the site normally keeps <main> in a 1180px column, which left the page's own
   background showing down both sides. Here main spans the window and the content column sits inside it.
   The first layer is exactly as tall as the artwork (1672x941, so 56.3% of the width) and ends in the
   page colour, so the photo fades into the dark instead of stopping at a hard edge. */
.wuqiang-page main {
  width: 100%; max-width: none; padding: 0 0 40px; background-color: #0b0505;
  background-image: linear-gradient(180deg, rgba(9,4,3,.1) 0, rgba(9,4,3,.28) 42%, rgba(9,4,3,.72) 80%, #0b0505 100%), url("wuqiang/hero.webp");
  background-repeat: no-repeat, no-repeat; background-position: center top, center top; background-size: 100% 56.3vw, 100% auto;
}
.wuqiang-page main > * { margin-top: 0; }
.wuqiang-page main > .wq { padding-top: 8px; }

.wq-stage { position: relative; margin: 0 0 clamp(16px,2.4vw,28px); padding: clamp(10px,2vw,26px) 8px clamp(18px,3vw,34px); }
.wq-hero { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: center; text-align: center; }
.wq-sample {
  margin: 0 0 12px; padding: 3px 12px; border: 1px dashed var(--wq-gold-soft); border-radius: 999px;
  color: var(--wq-gold); background: rgba(12,5,4,.7); font-size: .74rem; font-weight: 700;
}
.wq-title { margin: 0; }
.wq-title img { width: min(560px, 78vw); height: auto; filter: drop-shadow(0 8px 26px rgba(216,65,42,.45)); }
.wq-tagline { margin: 4px 0 0; line-height: 0; }
.wq-tagline img { width: min(460px, 72vw); height: auto; filter: drop-shadow(0 4px 16px rgba(216,65,42,.4)); }

.wq-countdown { margin: 16px 0 0; padding: 8px 20px 10px; border: 1px solid var(--wq-gold-soft); border-radius: 12px; background: rgba(12,5,4,.55); backdrop-filter: blur(2px); }
.wq-countdown p { margin: 0; color: var(--wq-dim); font-size: .78rem; letter-spacing: .16em; }
.wq-clock { display: flex; align-items: baseline; justify-content: center; gap: 10px; margin-top: 4px; }
.wq-clock span { display: flex; align-items: baseline; gap: 3px; }
.wq-clock b { min-width: 2ch; color: var(--wq-gold); font: 700 clamp(1.5rem,3.4vw,2.2rem)/1 "Noto Serif SC", serif; font-variant-numeric: tabular-nums; text-shadow: 0 2px 10px rgba(240,192,101,.35); }
.wq-clock i { color: var(--wq-dim); font-size: .76rem; font-style: normal; }
/* Once the window closes the zeros stay, dimmed, under a "已截止" label. */
.wq-countdown.is-closed { border-color: rgba(240,192,101,.25); }
.wq-countdown.is-closed b { opacity: .4; text-shadow: none; }

.wq-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 14px; margin: 20px 0 0; }
.wq-submit, .wq-ghost {
  display: inline-flex; align-items: center; gap: 6px; min-height: 48px; padding: 0 30px; border-radius: 10px;
  font: 700 1.02rem/1 system-ui, -apple-system, "Segoe UI", "Microsoft YaHei", sans-serif; text-decoration: none; cursor: pointer;
}
.wq-submit { border: 1px solid #f3a06a; color: #fff3df; background: linear-gradient(180deg,#e0512f,#9d2312); box-shadow: 0 10px 26px rgba(190,50,28,.45), inset 0 1px 0 rgba(255,222,190,.4); }
.wq-submit:hover { background: linear-gradient(180deg,#ef6039,#ac2a17); }
.wq-ghost { border: 1px solid var(--wq-gold-soft); color: var(--wq-gold); background: rgba(14,6,5,.72); }
.wq-ghost:hover { border-color: var(--wq-gold); background: rgba(38,15,11,.8); }

.wq-card { margin: 0 0 clamp(16px,2.4vw,26px); padding: 0; border: 0; background: none; }
.wq-card > header { display: flex; flex-wrap: wrap; align-items: baseline; gap: 10px 14px; margin-bottom: 10px; padding-bottom: 8px; border-bottom: 1px solid rgba(240,192,101,.22); }
.wq-card h2 { margin: 0; color: var(--wq-gold); font: 700 1.42rem/1.25 "Noto Serif SC", "Source Han Serif SC", "Songti SC", serif; letter-spacing: .06em; }
.wq-card > header p { margin: 0; color: var(--wq-dim); font-size: .8rem; }
.wq-card > header a { margin-left: auto; color: var(--wq-gold); font-size: .84rem; font-weight: 700; text-decoration: none; }
.wq-card > header a:hover { text-decoration: underline; }
.wq-hint { margin-left: auto; color: var(--wq-dim); font-size: .74rem; }

.wq-board-body { display: grid; gap: 12px; }
.wq-board-page { min-width: 0; }
.wq-scroll { min-width: 0; overflow-x: auto; }
.wuqiang-page table { width: 100%; border-collapse: collapse; font-size: .88rem; }
.wuqiang-page th { padding: 8px 10px; border-bottom: 1px solid var(--wq-gold-soft); color: var(--wq-dim); font-size: .76rem; font-weight: 700; letter-spacing: .08em; text-align: left; white-space: nowrap; }
.wuqiang-page td { padding: 9px 10px; border-bottom: 1px solid rgba(240,192,101,.14); vertical-align: middle; }
.wuqiang-page tbody tr:hover { background: rgba(240,192,101,.07); }
.wq-num { font-variant-numeric: tabular-nums; white-space: nowrap; }
.wq-player { min-width: 7em; font-weight: 700; }
.wq-muted { color: var(--wq-dim); }
.wq-empty { padding: 18px 10px; color: var(--wq-dim); font-size: .85rem; text-align: center; }

.wq-rank { display: inline-grid; place-items: center; width: 26px; height: 26px; border: 1px solid rgba(240,192,101,.3); border-radius: 50%; color: var(--wq-dim); font-size: .82rem; font-weight: 700; font-variant-numeric: tabular-nums; }
.wq-rank.is-gold { border-color: #f3c96b; color: #2a1405; background: linear-gradient(180deg,#f7d789,#d59a2e); }
.wq-rank.is-silver { border-color: #d7d7d7; color: #23201c; background: linear-gradient(180deg,#eee,#b9b9b9); }
.wq-rank.is-bronze { border-color: #d59b6a; color: #2a1405; background: linear-gradient(180deg,#e2ae7d,#b3773f); }

.wq-video { display: flex; align-items: center; gap: 8px; white-space: nowrap; }
.wq-play { display: inline-flex; align-items: center; gap: 5px; padding: 3px 10px; border: 1px solid rgba(240,192,101,.4); border-radius: 999px; color: var(--wq-gold); background: rgba(12,5,4,.6); font-size: .76rem; font-weight: 700; text-decoration: none; }
.wq-play:hover { border-color: var(--wq-gold); background: rgba(48,18,12,.8); }
.wq-report { padding: 2px 6px; border: 0; border-radius: 6px; color: var(--wq-dim); background: transparent; font-size: .72rem; cursor: pointer; }
.wq-report:hover { color: var(--wq-gold); background: rgba(240,192,101,.12); }
.wq-status { display: inline-block; padding: 2px 10px; border: 1px solid rgba(240,192,101,.35); border-radius: 999px; color: var(--wq-gold); font-size: .74rem; font-weight: 700; }
.wq-status.is-rejected { border-color: rgba(216,65,42,.5); color: #f3a08c; }
.wq-note { margin: 10px 0 0; color: var(--wq-dim); font-size: .78rem; }

.wq-pager { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; margin-top: 4px; }
.wq-pager button { min-width: 32px; padding: 5px 10px; border: 1px solid rgba(240,192,101,.3); border-radius: 8px; color: var(--wq-dim); background: rgba(12,5,4,.6); font-size: .8rem; font-weight: 700; cursor: pointer; }
.wq-pager button[aria-current] { border-color: var(--wq-gold); color: #2a1405; background: linear-gradient(180deg,#f7d789,#d59a2e); }

.wq-lower { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: clamp(16px,2.4vw,30px); align-items: start; }
.wq-lower > .wq-card { margin: 0 0 clamp(16px,2.4vw,26px); }
.wq-steps ol { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 10px; margin: 0; padding: 0; list-style: none; }
.wq-steps li { position: relative; display: flex; flex-direction: column; align-items: center; padding: 0 4px; text-align: center; }
.wq-steps li:not(:last-child)::after { position: absolute; top: 12px; right: -7px; content: "→"; color: rgba(240,192,101,.5); font-size: .9rem; }
.wq-step-icon { display: grid; place-items: center; width: 38px; height: 38px; margin-bottom: 7px; border: 1px solid rgba(240,192,101,.35); border-radius: 50%; background: radial-gradient(circle at 35% 30%,#b73a22,#6d1a10); }
.wq-step-icon svg { width: 19px; height: 19px; fill: none; stroke: #ffe6c9; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.wq-steps strong { font-size: .82rem; }
.wq-steps small { color: var(--wq-dim); font-size: .7rem; line-height: 1.5; }

.wq-promos ul { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin: 0; padding: 0; list-style: none; }
.wq-promo {
  position: relative; display: block; overflow: hidden; height: 100%; min-height: 128px; border: 1px solid rgba(240,192,101,.3);
  border-radius: 12px; color: var(--wq-ink); background: #160a08; text-decoration: none;
}
.wq-promo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .55; transition: transform .5s, opacity .3s; }
.wq-promo > div { position: relative; display: flex; flex-direction: column; align-items: flex-start; height: 100%; padding: 14px 16px; background: linear-gradient(90deg, rgba(14,5,4,.92), rgba(14,5,4,.5) 66%, rgba(14,5,4,.2)); }
a.wq-promo:hover { border-color: var(--wq-gold); }
a.wq-promo:hover img { transform: scale(1.05); opacity: .7; }
.wq-promo h3 { margin: 0; color: var(--wq-gold); font: 700 1.05rem/1.3 "Noto Serif SC", "Source Han Serif SC", "Songti SC", serif; letter-spacing: .04em; text-shadow: 0 2px 8px rgba(0,0,0,.7); }
.wq-promo p { margin: 5px 0 0; color: var(--wq-dim); font-size: .76rem; line-height: 1.5; }
.wq-promo-mark { position: relative; align-self: flex-start; margin-top: auto; padding: 4px 10px; border: 1px solid rgba(240,192,101,.45); border-radius: 999px; color: var(--wq-gold); background: rgba(8,3,2,.55); font-size: .72rem; font-weight: 700; white-space: nowrap; }
.wq-promo.is-pending .wq-promo-mark { border-style: dashed; opacity: .85; }

/* subpages: rules, submit, queue. The same artwork, dimmed right down, because these pages are
   read rather than admired; every block of text also sits on its own translucent panel. */
.wuqiang-sub main {
  background-image: linear-gradient(180deg, rgba(9,4,3,.86) 0, rgba(9,4,3,.94) 42%, #0b0505 78%), url("wuqiang/hero.webp");
}
.wqr .wq-card { padding: clamp(14px,2vw,22px) clamp(14px,2vw,24px); border: 1px solid rgba(240,192,101,.2); border-radius: 12px; background: rgba(10,4,3,.66); }
.wqr .wq-card > header { border-bottom-color: rgba(240,192,101,.2); }
.wqr-head h1, .wqr-head .wqr-meta { text-shadow: 0 2px 10px rgba(0,0,0,.75); }

/* subpages: rules, submit, queue */
.wqr-stage { padding: clamp(16px,3vw,32px) 0 clamp(20px,3vw,40px); }
.wqr .crumb { color: var(--wq-dim); font-size: .8rem; }
.wqr .crumb a { color: var(--wq-gold); text-decoration: none; }
.wqr .crumb span { margin: 0 6px; }
.wqr-head { display: flex; flex-direction: column; align-items: center; margin: 10px 0 18px; text-align: center; }
.wqr-mark { width: min(320px, 62vw); height: auto; }
.wqr-head h1 { margin: 6px 0 0; color: var(--wq-gold); font: 700 clamp(1.5rem,3vw,2rem)/1.3 "Noto Serif SC", "Source Han Serif SC", "Songti SC", serif; letter-spacing: .1em; }
.wqr-meta { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 16px; margin: 8px 0 0; color: var(--wq-dim); font-size: .8rem; }
.wqr-nowrap { white-space: nowrap; }
.wqr-home { color: var(--wq-gold); font-weight: 700; text-decoration: none; }
.wqr-layout { display: grid; grid-template-columns: minmax(180px, 240px) minmax(0, 1fr); gap: 18px; align-items: start; }
.wqr-toc { position: sticky; top: 86px; padding: 14px 16px; border: 1px solid var(--wq-gold-soft); border-radius: 12px; background: var(--wq-panel-soft); }
.wqr-toc h2 { margin: 0 0 6px; color: var(--wq-gold); font-size: .9rem; }
.wqr-toc ol { margin: 0; padding-left: 1.2em; color: var(--wq-dim); font-size: .8rem; line-height: 1.9; }
.wqr-toc a { color: var(--wq-dim); text-decoration: none; }
.wqr-toc a:hover { color: var(--wq-gold); }
.wqr-body { padding: clamp(16px,3vw,32px) clamp(16px,3vw,36px); border: 1px solid rgba(240,192,101,.22); border-radius: 12px; background: rgba(12,5,4,.55); line-height: 1.85; }
.wqr-body h2 { margin: 26px 0 8px; color: var(--wq-gold); font: 700 1.2rem/1.4 "Noto Serif SC", "Source Han Serif SC", "Songti SC", serif; }
.wqr-body h2:first-child { margin-top: 0; }
.wqr-body ol, .wqr-body ul { margin: 4px 0; padding-left: 1.8em; }
.wqr-body ol { list-style-type: decimal; }
.wqr-body ol ol { list-style-type: lower-alpha; }
.wqr-body ol ol ol { list-style-type: lower-roman; }
.wqr-body li { margin: 3px 0; }
.wqr-body a { color: var(--wq-gold); }
.wqr-body strong { color: #ffe9c6; }
.wqr-body code { padding: 1px 5px; border-radius: 4px; background: rgba(240,192,101,.12); font-size: .9em; }
.wqr-body h2.wqr-quick-title + ol { margin: 10px 0 0; padding: 14px 18px 14px 2.6em; border: 1px solid var(--wq-gold-soft); border-radius: 10px; background: rgba(60,20,13,.5); }
.wqr-shots { display: grid; gap: 16px; margin: 12px 0 4px; }
.wqr-shots figure { min-width: 0; margin: 0; }
.wqr-shots img { display: block; width: 100%; height: auto; border: 1px solid rgba(240,192,101,.28); border-radius: 8px; }
.wqr-shots figcaption { margin-top: 6px; color: var(--wq-dim); font-size: .8rem; font-weight: 700; }
.wqr-pending { display: inline-block; padding: 0 8px; border: 1px dashed rgba(240,192,101,.5); border-radius: 6px; color: var(--wq-gold); font-size: .8rem; font-weight: 700; }
.wqr-formula { display: table; margin: 4px 0 2px; padding: 4px 14px; border: 1px solid var(--wq-gold-soft); border-radius: 8px; color: #ffe9c6; background: rgba(60,20,13,.5); }
.wqr-alert { padding: 0 4px; border-radius: 3px; color: #ffd9c9; background: rgba(216,65,42,.35); }
/* The three things a stream must show at all times: bright yellow, impossible to skim past. */
.wqr-body .wqr-key { color: #ffdc4a; font-weight: 700; text-shadow: 0 1px 8px rgba(255,190,60,.25); }
.wqr-body strong.wqr-key { color: #ffdc4a; }
.wqr-body del { color: #d3a294; background: rgba(216,65,42,.25); }
.wqr-body ins { color: #8fd2e8; text-decoration: none; }
.wqr-actions { display: flex; justify-content: center; padding: 26px 0 0; }
.wqr-plain { display: grid; gap: 16px; }
.wq-queue-page { display: grid; gap: 16px; }

/* the shared submit form, re-skinned for this event */
.wqr-plain.sgu { grid-template-columns: minmax(0, 1fr) minmax(240px, 320px); align-items: start; }
.wuqiang-page .sgu-card, .wuqiang-page .sgu-aside { border: 1px solid var(--wq-gold-soft); border-radius: 12px; background: var(--wq-panel-soft); }
.wuqiang-page .sgu-card { padding: clamp(16px,2.5vw,28px); }
.wuqiang-page .sgu-aside { position: sticky; top: 86px; padding: 18px; }
.wuqiang-page .sgu-aside h2, .wuqiang-page .sgu-step h2 { color: var(--wq-gold); font-family: "Noto Serif SC", "Source Han Serif SC", "Songti SC", serif; }
.wuqiang-page .sgu-step h2 { display: flex; align-items: center; gap: 8px; margin: 0 0 10px; font-size: 1.12rem; }
.wuqiang-page .sgu-step h2 span { display: grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; color: #2a1405; background: linear-gradient(180deg,#f7d789,#d59a2e); font-size: .82rem; }
.wuqiang-page .sgu-step + .sgu-step { margin-top: 22px; padding-top: 18px; border-top: 1px solid rgba(240,192,101,.18); }
.wuqiang-page .sgu-aside ul { margin: 0; padding-left: 1.2em; color: var(--wq-dim); font-size: .82rem; line-height: 1.8; }
.wuqiang-page .sgu-aside strong { color: #ffb9a3; }
.wuqiang-page .sgu-aside a { display: inline-block; margin-top: 10px; color: var(--wq-gold); font-weight: 700; text-decoration: none; }
.wuqiang-page .sgu-lookup { display: flex; flex-wrap: wrap; gap: 10px; }
.wuqiang-page .sgu-lookup input { flex: 1 1 260px; }
.wuqiang-page input[type=text], .wuqiang-page input[type=url] { width: 100%; min-height: 46px; padding: 0 14px; border: 1px solid rgba(240,192,101,.35); border-radius: 10px; color: var(--wq-ink); background: rgba(10,4,3,.7); font: inherit; font-size: .95rem; }
.wuqiang-page input::placeholder { color: rgba(200,169,126,.6); }
.wuqiang-page input:focus { border-color: var(--wq-gold); outline: none; box-shadow: 0 0 0 3px rgba(240,192,101,.18); }
/* Several of these are links, so they need the flex centring a <button> would have given for free. */
.wuqiang-page .sgu-button, .wuqiang-page .sgu-button-ghost, .wuqiang-page .sgs-submit, .wuqiang-page .wq-submit-small, .wuqiang-page .wq-ghost-small {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-height: 46px; padding: 0 20px;
  border-radius: 10px; font: 700 .92rem/1 system-ui, -apple-system, "Segoe UI", "Microsoft YaHei", sans-serif; text-align: center; text-decoration: none; cursor: pointer;
}
.wuqiang-page .sgu-button, .wuqiang-page .sgs-submit, .wuqiang-page .wq-submit-small { border: 1px solid #f3a06a; color: #fff3df; background: linear-gradient(180deg,#e0512f,#9d2312); }
.wuqiang-page .sgs-submit { display: inline-flex; align-items: center; gap: 6px; margin-top: 18px; padding: 0 30px; min-height: 48px; font-size: 1rem; }
.wuqiang-page .sgu-button-ghost, .wuqiang-page .wq-ghost-small { border: 1px solid var(--wq-gold-soft); color: var(--wq-gold); background: transparent; }
.wuqiang-page .sgu-field { margin: 18px 0 0; }
.wuqiang-page .sgu-field > label { display: block; margin: 0 0 8px; color: #ffe9c6; font-size: .9rem; font-weight: 800; }
.wuqiang-page input#sgu-time { max-width: 220px; font-variant-numeric: tabular-nums; letter-spacing: .08em; }
.wuqiang-page .sgu-hint { margin: 8px 0 0; color: var(--wq-dim); font-size: .8rem; line-height: 1.6; }
.wuqiang-page .sgu-time-preview { margin: 8px 0 0; color: var(--wq-gold); font-size: .88rem; font-weight: 800; font-variant-numeric: tabular-nums; }
.wuqiang-page .sgu-time-preview.is-error, .wuqiang-page .sgu-error { color: #ffb9a3; }
.wuqiang-page .sgu-error { margin: 12px 0 0; padding: 9px 12px; border-left: 3px solid var(--wq-red); border-radius: 0 8px 8px 0; background: rgba(216,65,42,.18); font-size: .86rem; }
.wuqiang-page .sgu-warn { margin: 12px 0 0; padding: 9px 12px; border-radius: 8px; color: #f4d9a6; background: rgba(240,192,101,.14); font-size: .84rem; line-height: 1.6; }
.wuqiang-page .sgu-video { padding: 16px 18px; border: 1px solid rgba(240,192,101,.25); border-radius: 10px; background: rgba(10,4,3,.55); }
.wuqiang-page .sgu-video-label { margin: 0; color: var(--wq-dim); font-size: .74rem; font-weight: 800; letter-spacing: .12em; }
.wuqiang-page .sgu-video > a { display: block; margin: 4px 0 12px; color: #ffe9c6; font: 700 1.08rem/1.5 "Noto Serif SC", serif; text-decoration: none; }
.wuqiang-page .sgu-video dl { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; margin: 0; }
.wuqiang-page .sgu-video dt { color: var(--wq-dim); font-size: .74rem; }
.wuqiang-page .sgu-video dd { margin: 2px 0 0; color: var(--wq-ink); font-size: .9rem; font-variant-numeric: tabular-nums; }
.wuqiang-page .sgu-manual-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 12px; }
.wuqiang-page .sgu-manual-grid label, .wuqiang-page .sgu-confirm { display: block; margin-top: 12px; color: var(--wq-ink); font-size: .86rem; }
.wuqiang-page .sgu-confirm { display: flex; align-items: flex-start; gap: 8px; margin-top: 16px; }
.wuqiang-page .sgu-test { display: inline-block; margin-bottom: 12px; padding: 3px 12px; border: 1px dashed var(--wq-gold-soft); border-radius: 999px; color: var(--wq-gold); font-size: .74rem; font-weight: 700; }

/* Dialogs render in the top layer: they need the page palette (set on .wuqiang-page) and their own
   centring, because a tall page otherwise leaves them pinned near the top. */
.wq-dialog, .wuqiang-page .sgu-dialog {
  width: min(460px, calc(100% - 32px)); inset: auto; top: 50%; left: 50%; transform: translate(-50%, -50%);
  margin: 0; max-height: calc(100vh - 48px); overflow-y: auto; padding: 26px; border: 1px solid var(--wq-gold-soft);
  border-radius: 14px; color: var(--wq-ink); background: linear-gradient(180deg,#1d0c09,#120706);
  box-shadow: 0 24px 60px rgba(0,0,0,.6);
}
.wq-dialog::backdrop, .wuqiang-page .sgu-dialog::backdrop { background: rgba(6,2,2,.72); }
.wq-dialog h2, .wuqiang-page .sgu-dialog h2 { margin: 0 0 8px; color: var(--wq-gold); font: 700 1.2rem/1.4 "Noto Serif SC", serif; }
.wq-dialog label { display: block; margin: 14px 0 0; color: var(--wq-ink); font-size: .86rem; font-weight: 700; }
.wq-dialog textarea::placeholder, .wq-dialog input::placeholder { color: rgba(200,169,126,.65); }
.wq-dialog textarea { min-height: 120px; resize: vertical; }
.wq-dialog input:focus, .wq-dialog textarea:focus { border-color: var(--wq-gold); outline: none; box-shadow: 0 0 0 3px rgba(240,192,101,.18); }
/* The dialog's own buttons match the page: filled red for the action, gold outline for the way out. */
.wq-submit-small, .wq-ghost-small {
  display: inline-flex; align-items: center; justify-content: center; min-height: 42px; padding: 0 20px;
  border-radius: 10px; font: 700 .9rem/1 system-ui, -apple-system, "Segoe UI", "Microsoft YaHei", sans-serif; cursor: pointer;
}
.wq-submit-small { border: 1px solid #f3a06a; color: #fff3df; background: linear-gradient(180deg,#e0512f,#9d2312); }
.wq-submit-small:hover { background: linear-gradient(180deg,#ef6039,#ac2a17); }
.wq-ghost-small { border: 1px solid var(--wq-gold-soft); color: var(--wq-gold); background: transparent; }
.wq-ghost-small:hover { border-color: var(--wq-gold); background: rgba(38,15,11,.8); }
.wq-dialog input, .wq-dialog textarea { width: 100%; margin-top: 6px; padding: 8px 12px; border: 1px solid rgba(240,192,101,.35); border-radius: 8px; color: var(--wq-ink); background: rgba(10,4,3,.7); font: inherit; }
.wq-dialog-actions, .wuqiang-page .sgu-dialog-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 18px; }
.wq-report-target { margin: 0 0 4px; padding: 8px 12px; border-radius: 8px; color: var(--wq-ink); background: rgba(240,192,101,.1); font-size: .84rem; }
.wq-error { margin: 10px 0 0; color: #ffb9a3; font-size: .84rem; }
.wuqiang-page .sgu-dialog-mark { display: grid; place-items: center; width: 44px; height: 44px; margin: 0 auto 8px; border-radius: 50%; color: #2a1405; background: linear-gradient(180deg,#f7d789,#d59a2e); font-size: 1.4rem; }
.wuqiang-page .sgu-summary { display: grid; gap: 8px; margin: 14px 0 0; }
.wuqiang-page .sgu-summary > div { display: flex; justify-content: space-between; gap: 12px; border-bottom: 1px solid rgba(240,192,101,.14); padding-bottom: 6px; }
.wuqiang-page .sgu-summary dt { color: var(--wq-dim); font-size: .8rem; }
.wuqiang-page .sgu-summary dd { margin: 0; font-weight: 700; }

@media (max-width: 1080px) {
  .wq-lower { grid-template-columns: 1fr; }
  .wqr-layout { grid-template-columns: 1fr; }
  .wqr-toc { position: static; }
  .wqr-plain.sgu { grid-template-columns: 1fr; }
  .wq .sgu-aside { position: static; }
  .wq-promos ul { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 820px) {
  .wq-steps ol { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
  .wq-steps li:not(:last-child)::after { display: none; }
}
@media (max-width: 760px) {
  /* On a phone the wide artwork would be a thin strip, so let it fill the hero and crop at the sides. */
  .wuqiang-page main { background-size: 100% 150vw, auto 150vw; }
}
@media (max-width: 560px) {
  .wq { width: calc(100% - 20px); }
  .wq-steps ol { grid-template-columns: 1fr; }
  .wq-steps li { display: grid; grid-template-columns: 38px 1fr; column-gap: 12px; align-items: center; text-align: left; }
  .wq-step-icon { grid-row: 1 / span 2; margin: 0; }
  .wq-steps li > strong, .wq-steps li > small { grid-column: 2; }
  .wq-promos ul { grid-template-columns: 1fr; }
  .wq-hint { margin-left: 0; }
}

/* 硬核模式附加赛: the logo entrance beside the hero buttons, the mark next to hardcore results, and its page. */
.wq-entrances { position: absolute; left: calc(50% + 232px); bottom: -26px; display: flex; align-items: flex-end; gap: 18px; }
.wq-hardcore, .wq-timer-entrance { display: flex; flex-direction: column; align-items: center; gap: 2px; width: 150px; color: var(--wq-gold); text-decoration: none; animation: wq-hc-float 3.2s ease-in-out infinite; }
/* Same float, half a beat apart, so the two badges don't bob in lockstep. */
.wq-timer-entrance { animation-delay: -1.6s; }
.wq-hardcore img, .wq-timer-entrance img { width: 100%; height: auto; filter: drop-shadow(0 6px 16px rgba(0,0,0,.55)) drop-shadow(0 0 14px rgba(255,110,40,.3)); transition: transform .2s, filter .2s; }
.wq-hardcore span, .wq-timer-entrance span { padding: 2px 10px; border: 1px solid var(--wq-gold-soft); border-radius: 999px; background: rgba(12,5,4,.7); font-size: .78rem; font-weight: 700; white-space: nowrap; }
.wq-hardcore:hover img, .wq-hardcore:focus-visible img, .wq-timer-entrance:hover img, .wq-timer-entrance:focus-visible img { transform: scale(1.06); filter: drop-shadow(0 8px 26px rgba(255,150,60,.75)); }
.wq-hardcore:hover span, .wq-timer-entrance:hover span { color: #2a1405; background: linear-gradient(180deg,#f7d789,#d59a2e); }
@keyframes wq-hc-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-6px); } }
@media (prefers-reduced-motion: reduce) { .wq-hardcore, .wq-timer-entrance { animation: none; } }
.wq-hc-mark { display: inline-block; width: 22px; height: 22px; margin-left: 6px; vertical-align: -5px; background: url("hardcore-badge.webp") center / contain no-repeat; }
.wq-hc-option { margin-top: 4px; }
.wq-hc-option .sgu-confirm .wq-hc-mark { margin: 0 4px 0 0; }
.wq-hc-option .sgu-confirm b { color: #ffb489; }
.wq-hc-option .sgu-hint a { margin-left: 6px; color: var(--wq-gold); font-weight: 700; white-space: nowrap; }
.wqh-head { margin-bottom: 20px; }
.wqh-logo { width: min(210px, 50vw); height: auto; filter: drop-shadow(0 8px 28px rgba(255,110,40,.4)); }
.wqh-head h1 { margin-top: 0; }
.wqh-lead { margin: 6px 0 0; color: #ffd9a0; font: 700 clamp(.95rem,1.8vw,1.1rem)/1.5 "Noto Serif SC", "Source Han Serif SC", "Songti SC", serif; letter-spacing: .08em; text-shadow: 0 2px 10px rgba(0,0,0,.75); }
.wqh-layout { max-width: 980px; margin: 0 auto; }
.wqh .wqr-body h3 { margin: 20px 0 6px; color: #ffd9a0; font: 700 1.04rem/1.4 "Noto Serif SC", "Source Han Serif SC", "Songti SC", serif; }
.wqh .wqr-body h4 { margin: 16px 0 4px; color: #f3c98a; font: 700 .96rem/1.4 "Noto Serif SC", "Source Han Serif SC", "Songti SC", serif; }
.wqh .wqr-body ul { list-style-type: disc; }
.wqh-shot { max-width: 720px; }
.wqh-credit { margin: 22px 0 0; padding-top: 14px; border-top: 1px dashed rgba(240,192,101,.3); color: var(--wq-dim); font-size: .86rem; }
@media (max-width: 1180px) {
  /* No room beside the buttons: the badges sit under them instead. */
  .wq-entrances { position: static; justify-content: center; margin-top: 14px; }
  .wq-hardcore, .wq-timer-entrance { width: 124px; }
}
