.challenge-page { --cq-bg:#111315; --cq-ink:#f5eee2; --cq-gold:#dfbb7b; --cq-muted:#bfb9af; --cq-line:#ffffff20; --cq-ease:cubic-bezier(.22,1,.36,1); color-scheme:dark; background:var(--cq-bg); color:var(--cq-ink); }
.challenge-page::before,.challenge-page::after { display:none; }
.challenge-page * { box-sizing:border-box; }
.challenge-page [hidden] { display:none !important; }
.challenge-page ::selection { background:var(--cq-gold); color:#17120c; }
.challenge-page :focus-visible { outline:3px solid var(--cq-gold); outline-offset:4px; }
.challenge-page button,.challenge-page input,.challenge-page select,.challenge-page textarea { font:inherit; }
.challenge-page button { min-height:44px; border:1px solid #ffffff26; border-radius:8px; padding:11px 16px; background:#ffffff07; color:var(--cq-ink); font-size:12px; font-weight:700; cursor:pointer; transition:background 180ms var(--cq-ease),transform 180ms var(--cq-ease),border-color 180ms var(--cq-ease); }
.challenge-page button:hover:not(:disabled) { background:#ffffff10; border-color:#dfbb7b70; transform:none; }
.challenge-page button:active:not(:disabled) { transform:scale(.98); }
.challenge-page button:disabled { opacity:.45; cursor:not-allowed; }
.challenge-page button.is-primary { display:inline-flex; align-items:center; justify-content:center; gap:12px; background:var(--cq-gold); border-color:transparent; color:#211a10; box-shadow:0 5px 16px #0003; }
.challenge-page button.is-primary:hover:not(:disabled) { background:#ffe099; }
.challenge-page button.is-quiet { background:transparent; border-color:transparent; color:#c9c1cb; box-shadow:none; }
.challenge-page button.is-quiet:hover:not(:disabled) { background:#25232d; color:#fff2d2; }
.challenge-page input,.challenge-page select,.challenge-page textarea { width:100%; min-height:44px; background:#17151e; color:var(--cq-ink); border:1px solid #5b525f; border-radius:7px; padding:10px 12px; caret-color:var(--cq-gold); }
.challenge-page input::placeholder,.challenge-page textarea::placeholder { color:#bcb1c3; }
.challenge-page label { display:grid; gap:6px; color:#d1c8d4; font-size:12px; font-weight:600; }
.challenge-page h1,.challenge-page h2,.challenge-page p { margin:0; }
.challenge-page h2 { font-size:22px; letter-spacing:-.025em; }
.challenge-page p { line-height:1.6; }
.challenge-page a { text-underline-offset:4px; }
.challenge-page summary { cursor:pointer; font-size:12px; font-weight:700; }
.challenge-skip { position:absolute; left:20px; top:-80px; z-index:100; padding:12px; background:var(--cq-gold); color:#111; }
.challenge-skip:focus { top:10px; }
.challenge-header { position:relative; z-index:20; display:flex; align-items:center; gap:28px; padding:12px max(24px,calc((100vw - 1320px)/2)); background:#0c0b11; border-bottom:1px solid #322936; }
.challenge-brand { display:flex; align-items:center; gap:10px; text-decoration:none; font-size:14px; font-weight:800; }
.challenge-brand img { width:38px; height:auto; }
.challenge-header nav { margin-left:auto; display:flex; gap:22px; font-size:11px; }
.challenge-tools-menu { position:relative; }
.challenge-tools-menu > summary { padding:12px 15px; border:1px solid #5a505d; border-radius:7px; }
.challenge-tools-content { position:absolute; right:0; top:calc(100% + 10px); width:300px; max-width:calc(100vw - 32px); padding:20px; background:#191c1f; border:1px solid var(--cq-line); border-radius:12px; box-shadow:0 16px 40px #0005; }
.challenge-tools { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin:14px 0; }
.challenge-tools-content p { font-size:11px; color:var(--cq-muted); }
.challenge-shell { width:min(1368px,100%); margin:auto; padding:0 clamp(20px,4vw,56px) 48px; }
.challenge-intro { position:relative; isolation:isolate; display:flex; align-items:center; justify-content:space-between; min-height:228px; padding:30px 34px 24px; overflow:hidden; background:radial-gradient(ellipse at 83% 75%,#6a233f 0%,transparent 52%),linear-gradient(115deg,#21131f,#321728 60%,#171320); border-radius:0 0 20px 20px; }
.challenge-intro::after { content:''; position:absolute; z-index:-1; width:32%; height:150%; right:15%; top:-20%; background:#923d4929; transform:rotate(24deg); }
.challenge-title { position:relative; z-index:2; }
.challenge-intro h1 { display:flex; gap:20px; align-items:center; font-style:italic; font-weight:900; letter-spacing:-.035em; line-height:.95; }
.challenge-year { color:var(--cq-gold); font-size:clamp(64px,7.5vw,104px); letter-spacing:-.04em; }
.challenge-title-rest { font-size:clamp(22px,2.5vw,34px); line-height:1.08; }
.challenge-intro .challenge-title { max-width:78%; }
.challenge-intro .challenge-year { white-space:nowrap; }
.challenge-title > p { font-size:14px; margin-top:18px; color:#d7c4d5; line-height:1.5; }
.challenge-title > p strong { color:#fff1d7; font-weight:700; }
.challenge-card-fan { width:370px; height:220px; position:absolute; right:25px; bottom:0; }
.challenge-card-fan img { position:absolute; width:220px; height:220px; object-fit:contain; filter:drop-shadow(0 12px 12px #100616b3); }
.challenge-card-fan img:nth-child(1) { left:-15px; top:23px; transform:rotate(-16deg); }
.challenge-card-fan img:nth-child(2) { left:80px; top:-8px; z-index:2; transform:rotate(2deg); }
.challenge-card-fan img:nth-child(3) { left:185px; top:30px; transform:rotate(17deg); }
.challenge-rules { margin-top:22px; padding-top:16px; border-top:1px solid #635342; }
.challenge-rules > summary { display:flex; align-items:center; justify-content:space-between; gap:16px; min-height:52px; padding:12px 0; background:transparent; border:0; border-radius:0; font-size:13px; list-style:none; }
.challenge-rules > summary::-webkit-details-marker { display:none; }
.challenge-rules > summary::marker { content:''; }
.challenge-rules > summary:hover { background:#3c3040; border-color:var(--cq-gold); }
.challenge-rules > summary svg { width:26px; height:26px; flex-shrink:0; color:var(--cq-gold); }
.challenge-rules[open] > summary svg { transform:rotate(180deg); }
.challenge-rules > div { padding:20px 2px 0; font-size:13px; }
.challenge-rules ol { margin:0 0 12px; padding-left:18px; }
.challenge-rules li { margin-bottom:9px; line-height:1.5; }
.challenge-rules p + p { margin-top:10px; }
.challenge-status { font-size:12px; color:#e9d19d; margin:10px 0 !important; }
.challenge-status:empty { display:none; }
.challenge-warning { padding:16px; background:#3c2521; border:1px solid #b69863; border-radius:8px; color:#ffdfae; margin-bottom:16px; font-size:13px; }
.challenge-warning button { margin:12px 8px 0 0; }
.challenge-score { display:flex; flex-wrap:wrap; align-items:center; gap:24px; margin:24px 0 0; padding:26px 0; background:transparent; border:0; border-radius:0; }
.challenge-score > div:not(.challenge-score-actions):not(.challenge-life-track) { display:grid; gap:4px; flex-shrink:0; }
.challenge-score strong { font-size:40px; line-height:1; font-weight:900; font-variant-numeric:tabular-nums; }
.challenge-wins strong { color:var(--cq-gold); }
.challenge-score strong > span { font-size:16px; color:#c0b1c4; }
.challenge-score > div > span { color:#cbbdce; font-size:12px; }
.challenge-score p { max-width:40ch; font-size:13px; margin-right:auto; }
.challenge-score-actions { display:flex; gap:8px; flex-wrap:wrap; }
.challenge-score-actions .is-primary span { opacity:.65; }
.challenge-life-track { position:absolute; display:flex; gap:4px; bottom:9px; left:24px; right:24px; }
.challenge-life-track i { flex:1; height:4px; background:#514553; border-radius:2px; }
.challenge-life-track i.spent { background:#d47d83; }
.challenge-life-track i.reset { background:var(--cq-gold); height:7px; margin-top:-3px; }
.challenge-score.is-win .challenge-wins strong { animation:win-pop .55s cubic-bezier(.16,1,.3,1); }
.challenge-score.is-loss .challenge-losses strong { animation:win-pop .45s cubic-bezier(.16,1,.3,1); }
.challenge-route { margin-bottom:24px; }
.challenge-route > summary { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px 5px; color:#f5deb1; }
.challenge-route > summary::after { content:'+'; font-size:22px; font-weight:500; }
.challenge-route[open] > summary::after { content:'−'; }
.challenge-route > summary > span:first-child { margin-right:auto; }
.challenge-route small { margin-left:15px; color:var(--cq-muted); font-size:11px; font-weight:500; }
#planProgress { color:#c0b3c6; font-size:11px; font-weight:500; }
#timeline { display:grid; grid-template-columns:repeat(14,minmax(0,1fr)); gap:7px; padding-top:8px; }
#timeline button { min-height:44px; padding:8px 2px; background:#211d28; border-color:#54485b; font-variant-numeric:tabular-nums; }
#timeline button[data-ready="true"] { border-color:#7eaa91; }
#timeline button[data-played="true"] { background:#273b33; }
#timeline button[data-milestone="true"] { color:#f1ce78; border-color:#b29250; }
#timeline button[aria-current="step"] { background:var(--cq-gold); border-color:var(--cq-gold); color:#21170a; }
.challenge-legend { margin-top:12px !important; color:#c4b8cd; font-size:11px; }
.challenge-legend span { color:#eed28b; margin:0 12px; }
.challenge-workspace { display:grid; grid-template-columns:minmax(0,1.06fr) minmax(0,1fr); gap:clamp(28px,5vw,64px); align-items:start; }
.challenge-editor,.challenge-library { min-width:0; }
.challenge-editor { position:relative; top:auto; }
.challenge-section-heading { display:flex; justify-content:space-between; align-items:center; gap:10px; margin-bottom:8px; }
.challenge-stage-heading { display:flex; align-items:center; gap:4px; }
.challenge-stage-heading button { padding:7px; min-width:36px; }
.challenge-section-heading > span { font-size:12px; color:#d0bfda; }
#stageBadge { padding:6px 10px; background:#302936; color:#ebd1a1; border-radius:6px; white-space:nowrap; font-weight:800; font-variant-numeric:tabular-nums; }
#stageHint,#catalogHint { color:#c5b9ce; font-size:12px; }
.challenge-deck { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px 10px; margin:22px 0; }
.challenge-deck .challenge-slot { position:relative; aspect-ratio:.76; min-width:0; min-height:0; padding:2px; display:flex; flex-direction:column; align-items:center; justify-content:center; border:0; border-radius:10px; background:transparent; }
.challenge-deck button.challenge-slot:hover:not(:disabled) { background:#ffffff08; transform:translateY(-4px); }
.challenge-deck .challenge-slot:not(.is-empty) { aspect-ratio:auto; justify-content:flex-start; }
.challenge-slot img { width:116%; height:auto; max-width:none; aspect-ratio:1; flex-shrink:0; object-fit:contain; pointer-events:none; filter:drop-shadow(0 8px 8px #0004); }
.challenge-slot span { padding:4px 2px; font-size:11px; font-weight:600; line-height:1.3; text-align:center; overflow-wrap:anywhere; }
.challenge-deck .challenge-slot.is-empty { background:#ffffff03; border:1px dashed #ffffff26; box-shadow:none; }
.challenge-slot.is-empty .card-back { position:absolute; width:48%; height:auto; opacity:.13; }
.challenge-slot.is-empty svg { width:23px; height:23px; color:#d4b5cb; }
.challenge-slot.is-empty small { position:absolute; bottom:8px; color:#b5a0ba; font-size:10px; font-weight:500; }
.challenge-slot.is-new { animation:card-deal .4s cubic-bezier(.16,1,.3,1); }
.challenge-slot.is-out { box-shadow:inset 0 0 0 2px #df8a8e; background:#36232e; }
.challenge-editor-actions { display:flex; flex-wrap:wrap; gap:8px; margin:8px 0 16px; }
.challenge-editor-actions .is-primary { min-width:160px; }
.challenge-swap { display:grid; grid-template-columns:1fr 1fr; gap:20px; align-items:start; padding:16px; margin-top:16px; background:#261d2b; border-radius:10px; }
.challenge-swap > div { display:grid; gap:10px; padding-top:2px; font-size:12px; }
.challenge-swap strong { font-size:14px; color:#f0d38a; }
.challenge-error { color:#ffc9b9; background:#39252a; padding:14px; border-radius:8px; font-size:12px; margin-top:14px; }
.challenge-error button { margin-top:10px; }
#deckImport,.challenge-bench { border-top:1px solid var(--cq-line); padding:12px 0; font-size:12px; }
#deckImport summary,.challenge-bench summary { padding:5px 0; color:#cfbecd; }
#deckImport label { margin:12px 0 8px; }
#deckImport textarea { margin-bottom:8px; }
.challenge-bench p { color:#bfb2c8; font-size:12px; margin-top:10px; }
#benchCards { display:flex; flex-wrap:wrap; gap:6px; margin-top:12px; }
#benchCards span { padding:6px 9px; background:#30222e; border-radius:4px; font-size:11px; color:#e8c7d5; }
.challenge-library { padding:0; background:transparent; border-radius:0; container-type:inline-size; }
.challenge-builder-controls { margin-top:20px; padding:0; background:transparent; border:0; }
.challenge-builder-controls input[type=search] { height:48px; border:1px solid #ffffff30; background:#ffffff05; color:var(--cq-ink); font-size:14px; border-radius:8px!important; clip-path:none!important; }
.challenge-builder-controls .challenge-filter-groups { grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; z-index:auto; }
.challenge-builder-controls .snap-filter-pill { min-width:40px; min-height:40px; height:40px; padding:0 6px; font-family:inherit; font-size:12px; font-weight:700; background:#ffffff08; border-color:#ffffff20; border-radius:50%!important; clip-path:none!important; box-shadow:none; text-shadow:none; color:var(--cq-ink); }
.challenge-builder-controls .snap-filter-pill:hover:not(:disabled) { background:#ffffff15; border-color:#dfbb7b80; transform:none; }
.challenge-builder-controls .snap-filter-pill.is-active { background:var(--cq-gold); color:#211a10; border-color:var(--cq-gold); box-shadow:none; }
.challenge-builder-controls .snap-filter-pill.is-active:hover { background:#f1dda9; }
.challenge-builder-controls .snap-filter-pill:focus-visible { outline-offset:2px; }
.challenge-builder-controls .snap-filter-groups select { min-height:44px; font-size:13px; font-weight:500; padding:7px 28px 7px 12px; background:#191b1e; border-color:#ffffff26; border-radius:8px!important; clip-path:none!important; }
.challenge-builder-controls .snap-filter-reset { min-height:44px; padding:0 18px; background:transparent; border-color:#ffffff26; border-radius:8px!important; clip-path:none!important; }
.challenge-builder-controls .challenge-checkbox { margin-top:12px; font-size:11px; }
.challenge-builder-controls .preview-help { font-size:11px; color:var(--cq-muted); line-height:1.5; }
@container(max-width:620px) {
 .challenge-builder-controls { padding:0; }
 .challenge-builder-controls .challenge-filter-groups { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .challenge-builder-controls fieldset { grid-column:1/-1; }
}
@container(max-width:340px) {
 .challenge-builder-controls .challenge-filter-groups { grid-template-columns:minmax(0,1fr); }
}
@media(pointer:coarse) {
 .challenge-builder-controls .snap-filter-pill { min-width:44px; min-height:44px; height:44px; }
}
.challenge-page .challenge-checkbox { display:flex; align-items:center; gap:6px; min-height:44px; font-size:10px; }
.challenge-checkbox input { width:16px; height:16px; min-height:16px; accent-color:var(--cq-gold); }
.challenge-catalog { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px 8px; margin-top:14px; max-height:580px; overflow-y:auto; padding:8px 4px; scrollbar-width:thin; scrollbar-color:#75617b #211a29; }
.challenge-page .challenge-card { position:relative; min-width:0; padding:0 3px 8px; border:0; border-radius:8px; background:transparent; display:grid; align-content:start; gap:3px; }
.challenge-page .challenge-card:hover:not(:disabled) { background:#ffffff06; transform:none; }
.challenge-card img { width:100%; aspect-ratio:1; object-fit:contain; pointer-events:none; filter:drop-shadow(0 4px 4px #0005); transition:transform .2s; }
.challenge-card:hover:not(:disabled) img { transform:rotate(-3deg) scale(1.07); }
.challenge-card strong { font-size:11px; font-weight:600; line-height:1.35; overflow-wrap:anywhere; }
.challenge-card small { font-size:10px; font-weight:500; color:var(--cq-muted); }
.challenge-page .challenge-card[aria-pressed="true"] { background:#3b3025; box-shadow:inset 0 0 0 1px #bb9958; }
.challenge-card[aria-pressed="true"] small { color:#f1d492; }
.challenge-card-info { padding:10px 12px; margin-top:12px; background:#302238; border-radius:8px; font-size:11px; }
.challenge-card-info strong { color:#f1d492; }
.challenge-card-info p { color:#d7c6df; margin-top:4px; }
#moreCards { width:100%; margin-top:14px; }
#emptyCards { padding:24px 0; color:#d1bed7; font-size:13px; }
.challenge-next-move { padding:12px; }
.challenge-next-move h2 { font-style:italic; font-size:28px; color:#efce84; }
.challenge-next-move > p { color:#cbb8d2; margin:12px 0 20px; font-size:13px; }
#nextMoveCards { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-bottom:20px; }
#nextMoveCards > div { text-align:center; }
#nextMoveCards img { display:block; width:100%; max-width:180px; margin:auto; }
#nextMoveCards span { color:#cfbdcd; font-size:11px; }
#nextMoveCards strong { display:block; font-size:14px; margin-top:6px; }
#nextMoveCards.reset-preview { grid-template-columns:repeat(4,minmax(0,1fr)); }
#nextMoveCards .finish-score { grid-column:1/-1; padding:25px 0; }
#nextMoveCards .finish-score strong { font-size:86px; color:var(--cq-gold); font-style:italic; line-height:1; }
#nextMoveCards .finish-score span { display:block; margin-top:10px; font-size:15px; }
.challenge-history,.challenge-transfer { margin-top:24px; padding-top:18px; border-top:1px solid var(--cq-line); }
.challenge-history ol { max-height:240px; overflow:auto; display:flex; flex-wrap:wrap; gap:8px; padding:10px 0; list-style:none; font-size:12px; }
.challenge-history li { background:#26202e; padding:8px 12px; border-radius:5px; }
.challenge-transfer textarea { margin:14px 0; }
.challenge-footer { margin-top:30px; padding-top:18px; border-top:1px solid var(--cq-line); color:#baadbf; font-size:11px; }
.challenge-footer p { margin-bottom:5px; }
.challenge-page.is-playing .challenge-intro { min-height:118px; padding:22px 28px; }
.challenge-page.is-playing .challenge-year { font-size:56px; }
.challenge-page.is-playing .challenge-title-rest { font-size:20px; }
.challenge-page.is-playing .challenge-title > p,.challenge-page.is-playing .challenge-card-fan { display:none; }
.challenge-page.is-reset .challenge-editor h2 { color:var(--cq-gold); }
@keyframes card-deal { from { opacity:.35; transform:translateY(-12px) rotate(-5deg) scale(.9); } to { opacity:1; transform:none; } }
@keyframes win-pop { 0% { transform:scale(.8); } 45% { transform:scale(1.2); } 100% { transform:scale(1); } }
@media(max-width:1050px) {
 .challenge-intro { min-height:210px; padding-left:24px; }
 .challenge-card-fan { right:-50px; opacity:.8; }
 .challenge-title { max-width:65%; }
 .challenge-intro h1 { gap:14px; }
 .challenge-year { font-size:74px; }
 .challenge-title-rest { font-size:25px; }
 .challenge-workspace { gap:22px; }
 .challenge-deck { grid-template-columns:repeat(4,minmax(0,1fr)); }
 .challenge-catalog { grid-template-columns:repeat(3,minmax(0,1fr)); }
 .challenge-score { flex-wrap:wrap; }
 .challenge-score-actions { width:100%; }
}
@media(max-width:720px) {
 .challenge-header { padding:12px 16px; gap:12px; }
 .challenge-brand { font-size:12px; }
 .challenge-brand img { width:30px; }
 .challenge-header nav { display:none; }
 .challenge-tools-menu { margin-left:auto; position:static; }
 .challenge-tools-content { right:16px; top:100%; max-width:calc(100% - 32px); }
 .challenge-tools-menu > summary { padding:10px; font-size:11px; }
 .challenge-shell { padding:0 16px 20px; }
 .challenge-intro { min-height:198px; margin:0 -16px; border-radius:0; padding:24px 18px; }
 .challenge-title { max-width:72%; }
 .challenge-intro h1 { display:block; }
 .challenge-year { display:block; font-size:64px; line-height:.85; }
 .challenge-title-rest { display:block; font-size:18px; margin-top:10px; }
  .challenge-title-rest br { display:block; }
 .challenge-title > p { font-size:12px; margin-top:12px; }
 .challenge-card-fan { width:190px; height:170px; right:-35px; bottom:16px; opacity:.85; }
 .challenge-card-fan img { width:145px; height:145px; }
 .challenge-card-fan img:nth-child(1) { left:-18px; top:24px; }
 .challenge-card-fan img:nth-child(2) { left:25px; top:0; }
 .challenge-card-fan img:nth-child(3) { left:75px; top:40px; }
 .challenge-route { margin-bottom:16px; }
 .challenge-route small { display:none; }
 .challenge-route > summary { padding:12px 0; font-size:12px; }
 #timeline { grid-template-columns:repeat(7,minmax(0,1fr)); gap:6px; }
 .challenge-legend { line-height:1.8 !important; }
 .challenge-legend span { margin:0 7px; }
 .challenge-workspace { grid-template-columns:1fr; gap:22px; }
 .challenge-editor { position:static; }
 .challenge-page h2 { font-size:21px; }
 .challenge-deck { grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; margin:18px 0; }
 .challenge-deck .challenge-slot { aspect-ratio:.74; }
 .challenge-slot span { font-size:10px; }
 .challenge-editor-actions { gap:6px; }
 .challenge-editor-actions .is-primary { flex:1; }
 .challenge-library { padding:16px 12px; }
 .challenge-catalog { max-height:520px; }
 .challenge-score { margin-top:14px; padding:18px 16px 28px; gap:20px; }
 .challenge-score p { width:100%; max-width:none; order:1; }
 .challenge-score-actions { order:2; }
 .challenge-score strong { font-size:36px; }
 .challenge-life-track { gap:3px; left:16px; right:16px; }
 .challenge-page.is-playing .challenge-intro { min-height:84px; padding:16px 18px; }
 .challenge-page.is-playing .challenge-intro h1 { display:flex; }
 .challenge-page.is-playing .challenge-year { font-size:48px; }
 .challenge-page.is-playing .challenge-title-rest { font-size:14px; margin:0; }
 .challenge-page.is-playing .challenge-title-rest br { display:block; }
 .challenge-page.is-playing .challenge-title { max-width:100%; }
}
@media(prefers-reduced-motion:reduce) { .challenge-page,.challenge-page * { scroll-behavior:auto !important; animation:none !important; transition:none !important; } }
.challenge-quick-rules { margin:24px 0; padding:24px 0; border:0; background:transparent; border-radius:0; box-shadow:none; }
.challenge-quick-rules h2 { margin:0 0 8px; color:#f6d987; font-size:18px; }
.challenge-quick-rules p { margin: 0; max-width: 100ch; font-size: .9rem; line-height: 1.75; color: #d8d3df; }
.challenge-quick-rules strong { color: #fff1ce; }
.challenge-card-status { color: #f6d987; font-size: .65rem; }
#cardCatalogStatus { color: #bdb8c8; font-size: .75rem; line-height: 1.6; }

/* One clear path: build, plan, then play. The complete plan uses page scrolling. */
.challenge-rule-steps { list-style:none; padding:0; margin:16px 0 0; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:24px; }
.challenge-rule-steps li { display:flex; align-items:flex-start; gap:10px; }
.challenge-rule-steps li > span { color:var(--cq-gold); font-size:12px; font-weight:800; padding-top:2px; }
.challenge-rule-steps strong { display:block; font-size:12px; line-height:1.5; }
.challenge-rule-steps p { font-size:11px; line-height:1.6; margin-top:5px; }
.challenge-steps { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; margin:28px 0; border-bottom:1px solid var(--cq-line); }
.challenge-steps button { position:relative; display:flex; align-items:center; gap:12px; text-align:left; padding:18px 0; background:transparent; border:0; border-bottom:2px solid transparent; border-radius:0; }
.challenge-steps button[aria-current="step"] { border-bottom-color:var(--cq-gold); background:transparent; box-shadow:none; }
.flow-number { display:grid; place-items:center; flex:0 0 32px; width:32px; height:32px; border:1px solid #827258; border-radius:50%; color:var(--cq-gold); font-size:16px; }
.challenge-steps strong { display:block; font-size:14px; }
.challenge-steps small { display:block; color:#c4b9ca; font-size:10px; font-weight:500; margin-top:5px; line-height:1.5; }
.challenge-route { margin:26px 0; border:0; }
.route-heading { display:flex; justify-content:space-between; align-items:flex-start; gap:20px; }
.route-heading h2 { margin:6px 0 10px; font-size:30px; }
.route-heading p:not(.community-eyebrow) { color:var(--cq-muted); max-width:65ch; font-size:13px; }
#planProgress { flex-shrink:0; padding:9px 12px; color:var(--cq-gold); border:1px solid #695942; border-radius:6px; font-size:11px; font-weight:700; }
.route-actions { display:flex; flex-wrap:wrap; gap:9px; margin:20px 0 14px; }
.route-context { font-size:13px; color:var(--cq-muted); padding:12px 0; border:0; background:transparent; }
.route-jump { margin:16px 0; }
.route-jump summary { width:fit-content; padding:12px 0; color:var(--cq-gold); }
.full-swap-plan { list-style:none; padding:0; margin:28px 0 0; display:grid; gap:0; }
.route-row { position:relative; display:grid; grid-template-columns:130px minmax(0,1fr) 140px; gap:24px; align-items:center; padding:28px 0; border:0; border-bottom:1px solid var(--cq-line); border-radius:0; background:transparent; scroll-margin-top:24px; }
.route-loss { display:grid; gap:7px; align-content:start; }
.route-loss > strong { font-size:20px; font-weight:900; font-style:italic; }
.route-loss > span { font-size:10px; font-weight:600; color:#c3b6cd; line-height:1.5; }
.route-loss > small { display:block; margin:0; color:var(--cq-gold); font-size:9px; font-weight:800; letter-spacing:.06em; }
.route-row-actions { display:grid; gap:6px; align-self:center; }
.route-cards { min-width:0; }
.route-cards p { color:#bdb0c9; font-size:12px; }
.route-swap { display:grid; grid-template-columns:minmax(0,1fr) 22px minmax(0,1fr); align-items:center; gap:18px; }
.route-direction { display:block; font-size:9px; font-weight:800; letter-spacing:.1em; color:#c6a8c6; margin-bottom:6px; }
.route-swap > div:last-child .route-direction { color:#b7d9c0; }
.route-card { display:flex; align-items:center; gap:12px; min-width:0; min-height:88px; }
.route-card img { flex:0 0 88px; width:88px; height:88px; object-fit:contain; filter:drop-shadow(0 4px 8px #0005); }
.route-card strong { font-size:12px; line-height:1.45; overflow-wrap:anywhere; }
.route-card.is-unplanned { color:#b5a7bd; font-size:12px; border:1px dashed #584963; border-radius:6px; padding:10px; }
.route-arrow { color:var(--cq-gold); font-size:22px; }
.route-deck { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:16px 10px; }
.route-deck .route-card { flex-direction:column; align-items:center; gap:5px; text-align:center; }
.route-deck .route-card img { flex-basis:auto; width:100%; max-width:100px; height:auto; aspect-ratio:1; }
.route-deck .route-card strong { font-size:11px; font-weight:600; }
.route-reset { border-color:#dfbb7b66; background:#dfbb7b08; }
.route-reset .route-loss > strong,.route-finish .route-loss > strong { color:var(--cq-gold); }
.route-reset-decks { display:grid; gap:20px; }
.route-reset-decks > div + div { padding-top:18px; border-top:1px solid #745944; }
.route-reset-decks > div:last-child .route-direction { color:var(--cq-gold); }
.route-start { background:transparent; }
.route-row.route-start,.route-row.route-reset { grid-template-columns:minmax(0,1fr) 140px; align-items:start; }
.route-start .route-cards,.route-reset .route-cards { grid-column:1/-1; grid-row:2; }
.route-start .route-row-actions,.route-reset .route-row-actions { grid-column:2; grid-row:1; align-self:start; }
.route-row.is-played { background:transparent; border-color:var(--cq-line); }
.route-row.is-played .route-loss > span { color:#b9d1be; }
.route-row.is-next { border-color:#dfbb7b80; box-shadow:none; background:#dfbb7b08; }
.route-row.is-next .route-loss > span { color:var(--cq-gold); }
.route-cards .route-warning { margin-top:10px; color:#ffce9e; }
.route-cards .route-dependency { margin-top:10px; font-size:10px; }
.route-finish h3 { margin:0 0 7px; font-size:16px; }
.editor-navigation { display:flex; align-items:center; gap:18px; margin:18px 0 22px; }
.editor-navigation p { color:var(--cq-muted); font-size:12px; }
.challenge-swap .swap-step-label { color:var(--cq-gold); font-size:12px; font-weight:800; }
.challenge-swap small { color:var(--cq-muted); line-height:1.5; }
.challenge-swap #chooseIncoming { margin-top:8px; width:100%; }
.challenge-play-ready { max-width:1000px; margin:40px auto; padding:16px 0; background:transparent; border:0; border-radius:0; }
.challenge-play-ready h2 { margin:8px 0 12px; font-size:30px; }
.challenge-play-ready > p:not(.community-eyebrow) { color:var(--cq-muted); font-size:13px; }
.challenge-play-ready .route-deck { margin:24px 0; }
.challenge-play-ready .route-card img { width:100%; max-width:140px; height:auto; flex-basis:auto; }
@media(max-width:1050px) {
 .challenge-rule-steps { grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
 .route-row { grid-template-columns:100px minmax(0,1fr) 110px; gap:16px; padding:18px; }
 .route-row-actions button { padding:10px; }
}
@media(max-width:720px) {
 .challenge-quick-rules { padding:16px; }
 .challenge-rule-steps { gap:16px 12px; }
 .challenge-rule-steps li { gap:7px; }
 .challenge-rule-steps li > span { font-size:10px; }
 .challenge-rule-steps strong { font-size:11px; }
 .challenge-rule-steps p { font-size:10px; }
 .challenge-steps { gap:6px; margin:18px 0; }
 .challenge-steps button { display:block; padding:12px 8px; }
 .flow-number { width:26px; height:26px; font-size:13px; margin-bottom:9px; }
 .challenge-steps strong { font-size:11px; line-height:1.4; }
 .challenge-steps small { font-size:9px; }
 .route-heading { flex-direction:column; gap:12px; }
 .route-heading h2 { font-size:25px; }
 .route-row { grid-template-columns:minmax(0,1fr) auto; gap:16px 12px; padding:16px; }
 .route-loss { gap:4px; }
 .route-loss > strong { font-size:19px; }
 .route-row-actions { grid-column:2; grid-row:1; }
 .route-row-actions button { font-size:11px; }
 .route-cards { grid-column:1/-1; grid-row:2; }
 .route-swap { gap:10px; grid-template-columns:minmax(0,1fr) 15px minmax(0,1fr); }
 .route-card { gap:5px; }
 .route-card img { flex-basis:64px; width:64px; height:64px; }
 .route-card strong { font-size:11px; }
 .route-card.is-unplanned { font-size:11px; }
 .route-deck { grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
 .route-deck .route-card { flex-direction:column; align-items:center; gap:5px; }
 .route-deck .route-card strong { font-size:10px; }
 .route-deck .route-card img { width:100%; max-width:100px; height:auto; flex-basis:auto; }
 .route-finish .route-cards { grid-row:auto; }
 .editor-navigation { flex-direction:column; align-items:flex-start; gap:10px; }
 .challenge-play-ready { padding:20px; }
 .challenge-play-ready h2 { font-size:24px; }
}
