/* Single-page Achievement Companion, progressive enhancement over stable All Ears v1 */
#hubNav{position:sticky;top:0;z-index:12;display:flex;gap:6px;flex-wrap:wrap;padding:10px;background:#14171df5;border:1px solid var(--line);border-radius:14px;margin:16px 0 13px;backdrop-filter:blur(12px)}
#hubNav button{flex:1 1 auto;white-space:nowrap;padding:10px 12px;font-size:13px;border:1px solid transparent;background:transparent;color:var(--muted);font-weight:600}
#hubNav button[aria-selected=true]{background:var(--gold);color:#252016;border-color:var(--gold)}
#hubNav button:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
.hubPanel{border:1px solid var(--line);border-radius:15px;background:var(--surface);padding:20px;margin:13px 0}
.hubPanel h2{font-size:clamp(18px,3vw,25px);margin:0 0 7px;font-weight:650}
.hubPanel h3{font-size:17px;margin:0 0 6px}
.hubPanel p{margin:6px 0}
.hubSubtle{font-size:12px;color:var(--muted);line-height:1.6}
.hubStats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.hubStat{display:block;background:var(--surface2);padding:14px;border:1px solid var(--line);border-radius:11px;text-align:left;color:var(--text);min-width:0}
.hubStat b{display:block;font-size:26px;font-weight:750;letter-spacing:-.03em}
.hubStat span{font-size:12px;color:var(--muted)}
.hubControls{display:flex;flex-wrap:wrap;gap:9px;margin:13px 0}
.hubControls>*{flex:1 1 170px;min-width:140px;max-width:100%}
.hubControls label{font-size:12px;color:var(--muted)}
.hubControls select,.hubControls input[type=search],.hubControls input[type=number]{width:100%;max-width:100%}
.hubSection{margin:18px 0 5px;border-top:1px solid var(--line);padding-top:15px}
.hubGroup{font-size:13px;color:var(--gold);margin:14px 0 6px;font-weight:700}
.hubList{display:grid;gap:7px}
.hubItem{display:flex;align-items:flex-start;gap:11px;padding:11px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface2);cursor:pointer}
.hubItem:hover{border-color:#736346}
.hubItem.done{background:#1c2c25;border-color:#426451}
.hubItem input[type=checkbox]{width:21px;height:21px;flex:0 0 21px;min-height:21px;margin:3px 0 0;accent-color:#87c6a6}
.hubItem .hubText{flex:1;min-width:0}
.hubItem .hubName{font-weight:650;overflow-wrap:anywhere}
.hubItem .hubMeta{font-size:12px;color:var(--muted);overflow-wrap:anywhere}
.hubItem .hubRisk{font-size:12px;color:#ffce9f;margin-top:5px;overflow-wrap:anywhere}
.hubTag{color:var(--gold);font-size:11px;border:1px solid #67593d;border-radius:12px;padding:2px 7px;display:inline-block;margin-right:6px}
.hubNotice{border-left:4px solid #e7a67d;background:#34281f;padding:11px 13px;margin:12px 0;color:#ffdec2;border-radius:6px}
.hubGood{border-left:4px solid #8dbf9f;background:#20332b;padding:11px 13px;margin:12px 0;color:#d6eedf;border-radius:6px}
.hubCheckGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(185px,1fr));gap:9px;margin:11px 0}
.hubCheckGrid label{display:flex;gap:9px;align-items:flex-start;padding:10px;background:var(--surface2);border-radius:9px}
.hubCheckGrid input{accent-color:#8bcba9;flex:none;width:18px;height:18px;margin-top:3px}
.hubBox{display:grid;grid-template-columns:repeat(auto-fit,minmax(235px,1fr));gap:12px}
.hubBox>div{border:1px solid var(--line);padding:12px;border-radius:9px}
.hubEmpty{color:var(--muted);text-align:center;padding:25px}
.hubInlineRow{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.hubInlineRow button{flex:0 1 auto}
.hubUnverified{display:inline-block;font-size:11px;color:#ecc99f;border:1px solid #74573b;border-radius:20px;padding:2px 8px}
.hubShowMore{margin:10px 0}
body[data-hub-tab="route"] > * {} /* state handled via body scoped attributes */
body:not([data-hub-tab="ears"]) .toolbar,body:not([data-hub-tab="ears"]) #results,body:not([data-hub-tab="ears"]) #rewardSection{display:none!important}
body:not([data-hub-tab="ears"]) .wrap>section[aria-label="เวอร์ชันเกม / แพตช์"],body:not([data-hub-tab="ears"]) .wrap>section[aria-label="ความคืบหน้า"]{display:none!important}
body:not([data-hub-tab="ears"]) .wrap>header .headlinks{display:none}
body:not([data-hub-tab="ears"]) .wrap>footer{margin-top:20px}
#hubNav button:disabled{opacity:.4}
@media(max-width:720px){#hubNav{position:relative;top:auto;gap:5px;padding:7px}#hubNav button{font-size:12px;flex:1 1 28%;padding:9px 7px;white-space:normal;line-height:1.3}.hubPanel{padding:14px}.hubStats{grid-template-columns:repeat(2,minmax(0,1fr))}.hubControls>*{flex:1 1 140px}.hubStat b{font-size:24px}}
@media(prefers-reduced-motion:reduce){#hubNav{scroll-behavior:auto}}
@media(min-width:721px){body[data-hub-tab="ears"] .toolbar{top:67px}}


/* V2: fewer decisions, Wraeclast vocabulary, disclosure-first gameplay flow. */
.wrap>header h1{font-family:Georgia,"Times New Roman",serif;font-size:clamp(32px,5vw,48px);line-height:1.15}
.wrap>header p{font-size:14px;line-height:1.65;max-width:800px}
#hubNav{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding:7px;margin:15px 0 12px}
#hubNav button{min-width:0;flex:none;white-space:normal;text-align:center;font-size:14px;min-height:46px;border-radius:9px}
#hubNav button[aria-selected=true]{box-shadow:inset 0 -2px 0 #8b6a33}
body:not([data-hub-tab="ears"]) .wrap>section[aria-label="เวอร์ชันเกม / แพตช์"]{display:block!important}
.wrap>section[aria-label="เวอร์ชันเกม / แพตช์"]{box-shadow:none;padding:13px 16px}
.wrap>section[aria-label="ตัวละคร"]{box-shadow:none;padding:14px 16px}
.wrap>section[aria-label="ตัวละคร"] .ctrls select{max-width:100%;flex:1 1 225px}
.wrap>section[aria-label="ตัวละคร"] .ctrls #addChar{flex:0 0 auto}
.hubManage{margin-top:10px;border-top:1px solid var(--line);padding-top:8px}
.hubManage summary{cursor:pointer;color:var(--gold);font-size:13px;font-weight:600;padding:7px 0}
.hubManage summary:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.hubManage .ctrls{margin-top:10px}
#hubOverview{box-shadow:none;margin-top:12px;padding:16px}
#hubOverview>h2{font-size:19px}
#hubOverview>.hubSubtle{margin-bottom:12px}
.hubStats{gap:8px}
.hubStat{padding:12px 13px;border-color:#494334;background:linear-gradient(150deg,#292b30,#24272e);text-align:left;transition:border-color .12s}
.hubStat:hover{border-color:#c2a367}
.hubStat:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
.hubStat b{font-size:25px;line-height:1.25;color:#eee4d3;margin:3px 0}
.hubStat span:first-child{font-weight:650;color:#e7cf9c}
.hubStat span:last-child{font-size:11px}
.hubCategoryPicker{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:10px 0 5px}
.hubCategoryPicker button{border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:10px;padding:11px 13px;min-height:45px;cursor:pointer;font-weight:600;font-size:13px}
.hubCategoryPicker button[aria-pressed=true]{border-color:#b89a62;background:#3d3528;color:#f9e5b7}
.hubCategoryPicker button:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
#hubToolbar{margin:12px 0}
#hubToolbar .hubControls{margin:6px 0 11px}
.hubChapter{background:#20242b;border:1px solid #454752;border-radius:12px;margin:10px 0;overflow:hidden}
.hubChapter>summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:15px;min-height:64px;padding:13px 16px;cursor:pointer;background:linear-gradient(90deg,#26292e,#23272e)}
.hubChapter>summary::-webkit-details-marker{display:none}
.hubChapter>summary:after{content:"+";font-weight:400;font-size:25px;line-height:1;color:#d9ba79;padding:0 2px}
.hubChapter[open]>summary{border-bottom:1px solid #474c56;background:#343027}
.hubChapter[open]>summary:after{content:"−"}
.hubChapter>summary:focus-visible{outline:3px solid var(--gold);outline-offset:-4px}
.hubChapterTitle{display:flex;flex-direction:column;gap:2px;flex:1}
.hubChapterTitle strong{font-size:16px;font-weight:700;color:#f2e6d2}
.hubChapterTitle small{font-size:11px;font-weight:400;color:#c5bda9}
.hubChapterCount{background:#383c43;color:#eddeb8;border:1px solid #655b49;border-radius:18px;font-size:12px;padding:5px 9px;white-space:nowrap}
.hubChapterBody{padding:10px 12px 15px}
.hubChapterBody .hubGroup{margin:14px 0 7px}
.hubChapter .hubPanel{border:0;border-radius:0;margin:0;padding:14px 17px;background:transparent}
.hubSafety>summary{background:#382b22}
.hubVaal{margin:14px 0}
.hubItem{border-color:#444852;background:#272b33;padding:10px 12px}
.hubItem .hubName{font-weight:650;font-size:14px}
.hubItem.done .hubName{color:#b3d6be}
.hubItem input[type=checkbox]{accent-color:#82bd9e}
.hubTag{font-size:10px;color:#dcc698;border-color:#625841}
.hubMeta{line-height:1.5}
.hubNotice{line-height:1.6;font-size:13px}
.hubDataNotice{margin-bottom:12px}
.hubGood{font-size:13px}
.hubPanel>h2{font-weight:650}
body[data-hub-tab="ears"] .toolbar{top:70px}
@media(max-width:720px){
  #hubNav{position:sticky;top:0;z-index:15;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));padding:6px;gap:4px}
  #hubNav button{font-size:12px;min-height:46px;padding:8px 5px;line-height:1.3}
  #hubOverview{padding:13px}
  .hubStat{padding:11px}
  .hubStat b{font-size:22px}
  .hubCategoryPicker{display:flex;flex-wrap:nowrap;overflow-x:auto;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;padding:9px 2px 12px}
  .hubCategoryPicker button{flex:0 0 auto;scroll-snap-align:start}
  .hubChapter>summary{min-height:62px;padding:11px 12px}
  .hubChapterBody{padding:8px}
  .hubItem{padding:11px 9px}
  .wrap>section[aria-label="เวอร์ชันเกม / แพตช์"]{padding:13px}
  body[data-hub-tab="ears"] .toolbar{top:57px}
}

/* Act picker: one-tap navigation through campaign chapters. */
.hubActStrip{display:flex;gap:6px;align-items:center;overflow-x:auto;scroll-snap-type:x proximity;overscroll-behavior-x:contain;padding:7px 2px 11px;margin:5px 0 0;scrollbar-width:thin}
.hubActStrip button{flex:0 0 auto;scroll-snap-align:center;min-width:70px;min-height:45px;padding:9px 13px;border-radius:10px;background:#252932;border:1px solid #49474a;color:#e4ded2;font-weight:650;white-space:nowrap}
.hubActStrip button[aria-pressed=true]{background:#4b3822;border-color:#deb96f;color:#ffebc2;box-shadow:inset 0 -2px 0 #c39a56}
.hubActStrip button:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
@media(max-width:720px){.hubActStrip{margin:0 -3px 0;padding-bottom:9px}.hubActStrip button{min-width:64px;min-height:46px}}

/* Keep all four Achievement category choices visible without horizontal scrolling on phones. */
@media(max-width:720px){.hubCategoryPicker{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;overflow:visible;scroll-snap-type:none}.hubCategoryPicker button{width:100%;white-space:normal;min-height:47px;line-height:1.4}}

/* Contextual per-item instructions: compact action on card, details on demand. */
.hubItem{align-items:flex-start}
.hubItem .hubText{min-width:0;flex:1}
.hubHow{font-size:13px;line-height:1.55;color:#e7e3d9;margin:5px 0 6px;overflow-wrap:anywhere}
.hubItem .hubRisk{margin:7px 0 7px;border-left:3px solid #d7a06d;padding:7px 10px;background:#382c24;border-radius:0 6px 6px 0;font-size:12px;color:#ffe1be}
.hubItemHelp{margin-top:6px;border-top:1px solid #424851}
.hubItemHelp>summary{display:inline-flex;gap:6px;align-items:center;cursor:pointer;color:#dac18b;padding:7px 0 2px;font-size:12px;font-weight:650;line-height:1.5}
.hubItemHelp>summary:hover{color:#ffe1a3}
.hubItemHelp>summary:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
.hubItemHelp[open]>summary{margin-bottom:7px}
.hubItemHelpBody{background:#20242b;border:1px solid #414650;border-radius:9px;padding:12px 14px;margin:3px 0 7px}
.hubFact{display:grid;grid-template-columns:minmax(118px,145px) minmax(0,1fr);gap:9px;margin-bottom:10px;font-size:12px;line-height:1.6}
.hubFact strong{color:#e0c592;font-weight:650}
.hubFact span{white-space:pre-wrap;overflow-wrap:anywhere}
.hubItemHelpBody a{display:inline-flex;color:#ead095;font-size:12px;margin-top:2px;min-height:26px;align-items:center}
.hubUnverifiedText{font-size:12px;color:#eebc8c;background:#332b24;padding:8px 10px;border-radius:7px;line-height:1.5}
@media(max-width:720px){.hubFact{grid-template-columns:1fr;gap:1px;margin-bottom:11px}.hubItemHelpBody{padding:10px}.hubHow{font-size:13px}}

/* Quest reward reference: separate from achievements, no completion checkbox. */
.hubRewards>summary{background:linear-gradient(90deg,#243029,#23272e)}
.hubRewardList{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr));gap:9px;margin:13px 0 14px}
.hubRewardRow{background:#262b30;border:1px solid #454d51;border-radius:10px;padding:12px 14px;min-width:0}
.hubRewardName{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:5px 9px}
.hubRewardName strong{font-size:13px;color:#f0e6d7;overflow-wrap:anywhere}
.hubRewardKind{display:inline-block;border:1px solid #635c40;color:#dcc790;border-radius:999px;font-size:10px;padding:2px 7px}
.hubRewardText{margin:6px 0 0!important;font-size:12px;line-height:1.6;color:#ddd8c9;overflow-wrap:anywhere}
.hubRewards .hubChapterBody>a{display:inline-block;font-size:12px;color:#edcc83;margin:5px 0 2px}

/* Usability pass: one-line checklist first; detailed instructions on demand. */
.hubActProgress{display:flex;align-items:center;justify-content:space-between;gap:8px 15px;flex-wrap:wrap;padding:11px 14px;background:#262a30;border:1px solid #514d42;border-radius:10px;margin:12px 0}
.hubActProgress strong{font-size:15px;color:#f4e0af}
.hubActProgress .hubSubtle{margin:0}
.hubList{gap:7px}
.hubItem{position:relative;gap:11px;padding:11px;align-items:flex-start;min-width:0}
.hubItem .hubText{min-width:0}
.hubItem .hubName{font-size:14px;line-height:1.4;max-width:100%;margin:0 0 5px}
.hubItem .hubHow,.hubItem>.hubTag{display:none}
.hubCompactMeta{display:flex;gap:6px 10px;flex-wrap:wrap;align-items:center}
.hubPriority{display:inline-block;font-size:11px;color:#c5bdac;border:1px solid #5a564e;border-radius:7px;padding:3px 7px;background:#302f2c;line-height:1.4}
.hubPriority.hubUrgent{color:#ffd8aa;background:#4a3327;border-color:#a97753;font-weight:650}
.hubRewardPreview{color:#b9d3ad;font-size:12px;line-height:1.5}
.hubItemState{white-space:nowrap;flex:0 0 auto;font-size:11px;color:#d4c6ac;background:#3a3c40;border:1px solid #5f5d53;border-radius:100px;padding:3px 8px}
.hubItem.done{border-color:#43644f;background:#213329}
.hubItem.done .hubItemState{color:#c6e7cf;border-color:#487a5c;background:#274835}
.hubItem input[type=checkbox]{flex:0 0 21px}
.hubItemHelp{margin-top:5px}
.hubItemHelp>summary{padding:5px 0 0;color:#d5b980;font-size:12px}
.hubItem .hubRisk{margin:7px 0;padding:6px 9px}
.hubRewardKind{max-width:100%;line-height:1.45}
.hubRewardRow .hubSubtle{margin-top:5px;font-size:11px}
@media(max-width:720px){.hubItem{gap:8px;padding:10px 8px}.hubItemState{font-size:10px;padding:2px 6px}.hubActProgress{padding:10px}.hubItem .hubName{font-size:13px}.hubPriority{font-size:10px}}

/* Act 1–2 source-linked critical quest checkpoints: always before the long checklist. */
.hubCritical{margin:14px 0 21px;border:1px solid #66503a;border-radius:12px;padding:12px;background:#26231f}
.hubCriticalTitle{padding:0 4px 8px}
.hubCriticalTitle h3{margin:0 0 6px;font-size:17px;color:#f2d8a5}
.hubCriticalTitle p{margin:0;line-height:1.6}
.hubCriticalCount{font-size:12px;color:#edcea0;margin:0 4px 13px}
.hubCheckpoint{background:#262a30;border:1px solid #555056;border-radius:9px;margin:7px 0;overflow:hidden}
.hubCheckpoint>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;padding:12px 14px;min-height:58px;list-style:none}
.hubCheckpoint>summary::-webkit-details-marker{display:none}
.hubCheckpoint>summary:focus-visible{outline:2px solid var(--gold);outline-offset:-3px}
.hubCheckpoint[open]>summary{background:#393229;border-bottom:1px solid #635342}
.hubCheckpointTitle{display:flex;flex-direction:column;gap:4px;min-width:0}
.hubCheckpointTitle strong{font-size:13px;color:#f0e5d0;line-height:1.45}
.hubCheckpointTitle small{font-size:11px;font-weight:400;color:#c9bcaa;line-height:1.45}
.hubCheckpointState{font-size:11px;color:#e6c6a0;background:#463427;padding:4px 9px;border:1px solid #75563e;border-radius:20px;white-space:nowrap;flex:0 0 auto}
.hubCheckpointState.complete{color:#c5e5cc;background:#294c36;border-color:#487e55}
.hubCheckpointBody{padding:10px 14px 14px}
.hubCheckpointAction{font-size:13px;line-height:1.65;color:#f0e6d8;margin:5px 0 10px}
.hubCheckpointRisk{border-left:3px solid #d7a36f;background:#3c2e25;color:#ffdbac;border-radius:0 7px 7px 0;padding:9px;font-size:12px;line-height:1.65;margin:9px 0 11px}
.hubCriticalWarning{font-weight:600;color:#ffd39a;font-size:12px;margin:2px 0 9px}
.hubCheckpointRows{display:flex;flex-direction:column;gap:5px;margin:8px 0 10px}
.hubCheckpointRow{display:flex;align-items:flex-start;gap:9px;padding:9px 10px;background:#222830;border:1px solid #46474c;border-radius:7px;font-size:12px;line-height:1.5;cursor:pointer;min-width:0}
.hubCheckpointRow input{margin-top:2px;flex:0 0 17px;accent-color:#88b9a3}
.hubCheckpointRow>span:nth-child(2){flex:1;min-width:0;overflow-wrap:anywhere}
.hubCheckpointRowState{font-size:11px;color:#d8c39c;white-space:nowrap}
.hubCheckpointRow:has(input:checked){background:#263e30;border-color:#4a6c52}
.hubCheckpointRow:has(input:checked) .hubCheckpointRowState{color:#a7ddbd}
.hubCheckpointReward{background:#26342a;border:1px solid #455947;padding:9px 11px;border-radius:8px;color:#cce5bd;font-size:12px;line-height:1.55;margin:11px 0}
.hubCheckpointBody>a{font-size:12px;color:#edd295}
.hubCheckpointSafety{margin:10px 0;border:1px solid #6a573b;border-radius:8px;background:#2e2d2a}
.hubCheckpointSafety>summary{cursor:pointer;padding:11px 12px;font-size:12px;color:#e9d2a7}
.hubCheckpointSafety>.hubPanel{padding:9px 12px;background:transparent;border:0;box-shadow:none}
.hubCheckpointSafety .hubCheckGrid{margin-bottom:9px}
@media(max-width:720px){.hubCritical{padding:9px}.hubCheckpoint>summary{padding:10px;gap:6px;flex-wrap:wrap}.hubCheckpointBody{padding:10px}.hubCheckpointState{font-size:10px}.hubCheckpointRow{padding:9px 7px}}

/* Sourced timing is displayed per dialogue; each row may belong to a different quest state. */
.hubCheckpointItemInfo{display:flex;flex:1;flex-direction:column;gap:3px;min-width:0;overflow-wrap:anywhere}
.hubCheckpointItemName{font-weight:600;line-height:1.45}
.hubCheckpointRowTrigger,.hubCheckpointRowWarning,.hubCheckpointRowUnknown{font-weight:400;font-size:11px;line-height:1.52;white-space:normal}
.hubCheckpointRowTrigger{color:#d9c59f}
.hubCheckpointRowWarning{color:#edba95}
.hubCheckpointRowUnknown{color:#b4aaa0;font-style:italic}
.hubCheckpointRow>.hubCheckpointRowState{flex:0 0 auto;margin-top:1px}

.hubPostQuests{background:#222b2d;border-color:#456064}
.hubPostQuests .hubCriticalTitle h3{color:#c6e5e8}
.hubPostQuests .hubCheckpoint>summary{background:#263237}
.hubPostQuests .hubCheckpoint[open]>summary{background:#2d4547;border-bottom-color:#456164}
.hubPostQuests .hubItem{margin:8px 0 12px}

/* Focused quest walkthrough: one checkpoint visible at a time, optional detail groups remain closed. */
.hubStepNavigator{display:grid;grid-template-columns:auto minmax(180px,1fr) auto auto;gap:8px;align-items:center;margin:10px 0 12px;padding:10px;background:#191f24;border:1px solid #5a5346;border-radius:10px}
.hubStepPosition{font-size:12px;font-weight:700;color:#edd4a4;white-space:nowrap}
.hubStepNavigator select{width:100%;min-width:0;max-width:none;padding:9px 10px;border-radius:8px;background:#292f36;color:#eee6d6;border:1px solid #686252}
.hubStepNavigator button{font-weight:650;border-radius:8px;padding:8px 13px;min-width:72px}
.hubStepNavigator button:disabled{opacity:.35;cursor:not-allowed}
.hubSpecialRoute{max-width:100%}
.hubSpecialRoute .hubActProgress{margin-bottom:14px}
.hubSpecialSteps{display:grid;gap:7px;padding:0;margin:10px 0 15px;list-style:none;counter-reset:none}
.hubSpecialSteps li{display:grid;grid-template-columns:66px 1fr;gap:9px;align-items:start;border:1px solid #484f53;background:#252b30;border-radius:9px;padding:10px 12px;font-size:12px;line-height:1.6;color:#ede4d5}
.hubSpecialStepNo{font-weight:700;color:#e9c786;white-space:nowrap}
.hubSpecialGroup{margin-top:9px}
.hubSpecialGroup>summary{min-height:54px}
.hubSpecialGroup .hubChapterBody{padding-top:8px}
.hubSpecialGroup .hubList{gap:6px}
.hubSpecialRoute>.hubSubtle a{color:#dfc58e}
.hubVaalGuide{margin:15px 0 10px}
.hubVaalGuide>summary{font-weight:700}
.hubVaalGuide>.hubPanel{margin:0;background:transparent;border:0;box-shadow:none}
.hubExcelWarnings{margin:12px 0 16px;border-color:#655344}
.hubExcelWarnings>summary{background:#312923}
.hubExcelWarnings .hubChapterBody{padding:12px}
.hubWorkbookRisk{font-size:11px;line-height:1.5}
.hubLoreNavigation{display:flex;flex-wrap:wrap;align-items:center;gap:9px;background:#232b2b;border:1px solid #4e6862;border-radius:10px;padding:11px 12px;margin:10px 0}
.hubLoreNavigation p{flex:1 0 100%;margin:0}
.hubLoreNavigation button{font-size:12px;min-height:39px;border:1px solid #72907f;border-radius:8px;padding:8px 11px}
.hubActStrip button[data-act="Labyrinth"],.hubActStrip button[data-act="Vaal"]{min-width:125px;white-space:nowrap}
@media(max-width:720px){
 .hubStepNavigator{grid-template-columns:1fr 1fr;gap:7px}
 .hubStepPosition{grid-column:1;align-self:center}
 .hubStepNavigator select{grid-column:1 / -1;grid-row:2}
 .hubStepNavigator button{grid-row:3;min-width:0}
 .hubStepNavigator button:nth-last-child(2){grid-column:1}
 .hubStepNavigator button:last-child{grid-column:2}
 .hubSpecialSteps li{grid-template-columns:54px 1fr;padding:9px;gap:6px}
 .hubLoreNavigation button{width:100%}
}

/* Goal-directed "four Achievements to 100%" experience: one obvious next action. */
.hubMissionTotal{grid-column:1/-1;border:1px solid #776446;border-radius:13px;background:#242a2a;padding:16px;display:grid;gap:11px;min-width:0}
.hubMissionHeading{display:flex;flex-direction:column;gap:4px}
.hubMissionHeading strong{color:#f1d9a5;font-size:17px;line-height:1.4}
.hubMissionHeading span{font-size:12px;line-height:1.6}
.hubMissionScore{display:flex;align-items:baseline;flex-wrap:wrap;gap:8px}
.hubMissionScore b{font-size:27px;color:#f0e6d3;letter-spacing:-.03em}
.hubMissionScore span{font-size:12px;color:#a9d4ba}
.hubMissionTotal progress{height:11px;width:100%;border-radius:999px;accent-color:#93c6aa}
.hubMissionNext{display:flex;gap:12px;align-items:center;justify-content:space-between;background:#293338;padding:11px 13px;border-radius:9px}
.hubMissionNext>span{display:flex;flex-direction:column;min-width:0;gap:3px}
.hubMissionNext strong{font-size:13px;color:#f2e3c4}
.hubMissionNext small{font-size:11px;color:#bdc4c1;line-height:1.6}
.hubMissionNext button{flex:0 0 auto;font-weight:700;min-height:41px;background:#59442a;color:#f3e3bf;border:1px solid #987d50;border-radius:8px;padding:8px 12px}
.hubMissionRoadmap{border-top:1px solid #4c5753;padding-top:10px}
.hubMissionRoadmap>summary{cursor:pointer;font-size:12px;color:#e5d0a5;padding:5px 1px}
.hubMissionStages{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin:8px 0 3px}
.hubMissionStage{text-align:left;display:flex;justify-content:space-between;gap:6px;align-items:center;background:#2d3334;border:1px solid #4c5855;padding:10px 12px;border-radius:9px;color:#e9e4d9;min-width:0}
.hubMissionStage strong{font-size:12px;overflow-wrap:anywhere}
.hubMissionStage span{font-size:11px;white-space:nowrap;color:#c5c7b9}
.hubActMission{border:1px solid #687b68;border-radius:12px;padding:13px 14px;background:#242e2b;margin:13px 0}
.hubActMissionHead h3{font-size:16px;color:#e6dfc3;line-height:1.45;margin:0 0 4px}
.hubActMissionHead p{margin:0 0 9px;font-size:12px;line-height:1.6}
.hubActMissionList{display:grid;gap:6px;margin:10px 0}
.hubActMissionItem{display:flex;gap:9px;align-items:center;justify-content:space-between;border:1px solid #42574c;border-radius:8px;background:#29372f;padding:10px;min-width:0}
.hubActMissionItemText{display:flex;flex-direction:column;gap:3px;min-width:0;overflow-wrap:anywhere}
.hubActMissionItemText strong{font-size:12px;color:#ece4d4}
.hubActMissionItemText small{font-size:11px;color:#b9d7be}
.hubActMissionExample{font-size:11px;color:#bbc8b9;line-height:1.4}
.hubActMissionItem button{font-size:11px;min-height:37px;flex:0 0 auto;border:1px solid #698c76;border-radius:8px;padding:8px 9px;color:#d8e8d8}
.hubActMissionWarning{background:#3e2c23;border:1px solid #95674b;border-radius:8px;color:#ffe0bd;display:flex;justify-content:space-between;gap:10px;align-items:center;padding:10px 12px}
.hubActMissionWarning>div{display:flex;flex-direction:column;gap:4px}
.hubActMissionWarning strong{font-size:12px;line-height:1.5}
.hubActMissionWarning span{font-size:11px;line-height:1.5}
.hubActMissionWarning button{min-height:39px;white-space:nowrap;flex:0 0 auto;border:1px solid #af7959;border-radius:8px;color:#ffe4c4;padding:8px 11px}
.hubActMission>.hubSubtle{margin:8px 0 0;font-size:11px}
.hubActMissionItem:focus-within,.hubMissionStage:focus-visible{outline:2px solid #eac38a;outline-offset:1px}
[data-group]{scroll-margin-top:18px}
[data-critical-act]{scroll-margin-top:18px}
@media(max-width:720px){
 .hubMissionTotal{padding:12px;gap:9px}
 .hubMissionHeading strong{font-size:15px}
 .hubMissionScore b{font-size:24px}
 .hubMissionNext,.hubActMissionWarning{align-items:stretch;flex-direction:column}
 .hubMissionNext button,.hubActMissionWarning button{width:100%}
 .hubMissionStages{grid-template-columns:1fr}
 .hubActMission{padding:10px}
 .hubActMissionItem{align-items:stretch;flex-direction:column}
 .hubActMissionItem button{width:100%}
 .hubActMissionExample{max-width:100%}
}

/* Less scrolling: 100% goal first, optional four-category Act checklist second. */
#hubStats .hubStat{padding:9px 10px;min-height:70px}
#hubStats .hubStat b{font-size:18px;line-height:1.5}
#hubStats .hubStat>span:first-child{font-size:11px;line-height:1.3}
#hubStats .hubStat>span:last-child{display:none}
.hubActMissionGate{margin-top:11px;border:1px solid #4e725f;border-radius:9px;overflow:hidden;background:#26392f}
.hubActMissionGate>summary{display:flex;align-items:center;justify-content:space-between;gap:8px;cursor:pointer;padding:12px 14px;list-style:none;font-size:12px;color:#ede9d6}
.hubActMissionGate>summary::-webkit-details-marker{display:none}
.hubActMissionGate>summary>span{font-size:11px;color:#b4d9be;white-space:nowrap}
.hubActMissionGate>summary::after{content:"+";font-size:18px;color:#d4c493}
.hubActMissionGate[open]>summary{border-bottom:1px solid #52705a}
.hubActMissionGate[open]>summary::after{content:"−"}
.hubActMissionGate .hubActMissionList{margin:8px}
@media(max-width:720px){
 #hubStats .hubStat{min-height:65px;padding:8px}
 #hubStats .hubStat b{font-size:17px}
 .hubActMissionGate>summary{flex-wrap:wrap;padding:11px}
}

/* Research-led contrast system: neutral navigation, gold = current view, red = do not progress,
   amber = source uncertainty, green = item explicitly checked by the player. */
#hubNav{border-radius:12px;background:#111820;border:1px solid #4a5663;padding:5px;gap:5px}
#hubNav button{background:#27313c;color:#f1ede4;border:1px solid #5b6975;min-height:49px;border-radius:9px;font-weight:700}
#hubNav button[aria-selected=true]{background:#72502c;color:#fff5d6;border:2px solid #f6c77b;box-shadow:inset 0 -2px 0 #e6b46a}
#hubNav button:focus-visible,.hubActStrip button:focus-visible,.hubStepNavigator button:focus-visible,
.hubStopGate button:focus-visible,.hubWalkNavigator button:focus-visible{outline:3px solid #ffdb86;outline-offset:3px}
.hubActStrip button{background:#27303b;color:#e9e7e1;border-color:#586572}
.hubActStrip button[aria-pressed=true]{background:#74552f;color:#fff6dc;border:2px solid #f2cc82;box-shadow:inset 0 -2px 0 #f2cc82}
.hubStepNavigator{background:#1b2530;border-color:#5d6d79}
.hubStepNavigator select{background:#263441;color:#f5f0e4;border-color:#8495a2;font-weight:650}
.hubStepPosition{color:#ffe0a0}
.hubChapter:not([open])>summary{border-left:3px solid #566a75}
.hubChapter[open]>summary{background:#3d3023;border-left:3px solid #edba6e}
.hubCheckpoint>summary{background:#2a323b}
.hubCheckpoint[open]>summary{background:#3c3227}
.hubCriticalTitle h3,.hubWalkHeader h3{color:#ffe1a7}
.hubStopGate{padding:12px 14px;border-radius:9px;border:2px solid #b76852;background:#38231e;margin:10px 0;color:#fff2e9}
.hubStopGate.blocked{background:#48241f;border-color:#fb987d}
.hubStopGate.reviewed{border-color:#bf985c;background:#342e23}
.hubStopGate strong{display:block;color:#ffe0d1;font-size:15px;line-height:1.45}
.hubStopGate.reviewed strong{color:#f7db9c}
.hubStopGate p{font-size:12px;line-height:1.65;margin:6px 0}
.hubStopPending{font-size:11px;font-weight:650;color:#ffdbba;line-height:1.5}
.hubResearchConflict{border:2px solid #d49e51;background:#342c20;border-radius:9px;margin:10px 0;padding:12px 14px;color:#ffdfaf;line-height:1.65;font-size:12px}
.hubResearchConflict strong{color:#ffe6b0;font-size:13px}
.hubResearchConflict p{margin:7px 0 2px}
.hubConflictLinks{display:flex;gap:14px;flex-wrap:wrap;margin-top:7px}
.hubConflictLinks a{color:#ffe7a8;font-weight:700;text-decoration:underline}
.hubCheckpointWhy{margin:10px 0;border-top:1px solid #5b4e3e;padding-top:8px;font-size:12px;color:#cfc8bc}
.hubCheckpointWhy>summary{cursor:pointer;color:#f2d9a4;font-weight:650}
.hubCheckpointWhy .hubCheckpointRisk{margin-top:8px}
/* Walk-by-area Act 1 player mode; only a single phase visible. */
.hubWalkthrough{background:#17212b;border:1px solid #7f6746;border-radius:14px;padding:14px;margin:17px 0;scroll-margin-top:14px}
.hubWalkEyebrow{display:inline-block;font-size:11px;color:#ffdb9b;font-weight:800;letter-spacing:.07em}
.hubWalkHeader h3{margin:7px 0 5px;font-size:18px;line-height:1.4}
.hubWalkHeader .hubSubtle{font-size:12px;line-height:1.6}
.hubWalkNavigator{margin:11px 0}
.hubWalkFocus{padding:11px 13px;border:1px solid #536678;border-radius:9px;background:#253240}
.hubWalkFocus h4{font-size:15px;color:#fff0cb;margin:0 0 4px;line-height:1.5}
.hubWalkFocus p{font-size:12px;color:#cdd6dd;margin:0 0 7px;line-height:1.5}
.hubWalkCount{font-size:11px;display:inline-block;background:#3b4f54;border:1px solid #768d8b;padding:3px 9px;border-radius:20px;color:#e1f7e8}
.hubWalkActions{counter-reset:poe-actions;list-style:none;display:grid;gap:6px;margin:11px 0;padding:0}
.hubWalkActions li{padding:9px 11px 9px 40px;border:1px solid #45596a;border-radius:8px;background:#263440;color:#f0efe9;font-size:12px;line-height:1.65;position:relative}
.hubWalkActions li::before{counter-increment:poe-actions;content:counter(poe-actions);position:absolute;top:9px;left:10px;background:#a57d43;color:#12171d;font-weight:850;border-radius:20px;min-width:21px;line-height:21px;text-align:center}
.hubWalkCategory{margin-top:13px}
.hubWalkCategory h4{font-size:14px;color:#f1dbaf;margin:0 0 6px}
.hubWalkCategory .hubSubtle{margin:0 0 9px;font-size:11px}
.hubWalkCategory .hubList{gap:5px}
.hubWalkCategory .hubItem{padding:8px 9px;background:#25313a}
.hubWalkCategory .hubItemState{color:#f5dcc1}
.hubWalkMore{background:#222c34;border:1px solid #53606b;border-radius:8px;margin-top:7px;padding:8px 10px}
.hubWalkMore>summary,.hubWalkLore>summary{cursor:pointer;color:#ffda99;font-size:12px;font-weight:750;padding:5px}
.hubWalkMore .hubList{margin-top:8px}
.hubWalkLore{margin-top:12px;border:1px solid #465f53;background:#25352c;border-radius:8px;padding:9px 11px}
.hubWalkLore .hubList{padding:8px 0 0}
.hubWalkFooter{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;border-top:1px solid #4d5964;padding-top:11px;margin-top:14px;font-size:11px;line-height:1.5;color:#c9c7bf}
.hubWalkFooter a{color:#f9d89b;font-weight:700;text-decoration:underline}
.hubQuestVisual{margin:10px 0;border:1px solid #625742;background:#1c2228;border-radius:8px;padding:10px}
.hubQuestVisual>summary{cursor:pointer;font-size:12px;font-weight:750;color:#ffdfa6}
.hubQuestVisual img{display:block;width:100%;height:auto;max-width:960px;margin:12px auto;border:1px solid #ad8353;border-radius:8px}
.hubQuestVisual p{font-size:11px;line-height:1.6}
.hubQuestVisual a{color:#f9d99a;text-decoration:underline;font-size:12px}
@media(max-width:720px){
 #hubNav button{min-height:49px;font-size:12px;padding:8px}
 .hubWalkthrough{padding:10px;margin:12px 0}
 .hubWalkHeader h3{font-size:16px}
 .hubWalkActions li{font-size:12px}
 .hubResearchConflict{padding:10px}
 .hubStopGate{padding:10px}
}

/* Risk and game-mode preflight stays collapsed to prevent first-screen overload. */
.hubRunPreflight{border:1px solid #94724e;background:#302a24;border-radius:8px;padding:9px 12px;color:#f4dbc5}
.hubRunPreflight>summary{font-size:12px;font-weight:750;cursor:pointer;line-height:1.55;color:#f9d4a0}
.hubRunPreflight ul{padding:0 0 0 21px;margin:8px 0;font-size:12px;line-height:1.65}
.hubRunPreflight li{margin:6px 0}
.hubRunPreflight a{color:#ffdfa7;text-decoration:underline;font-size:12px}

/* Secondary, source-specific risk panels are reachable without duplicating the primary Act 2 route. */
.hubHistoricalRisks{border:1px solid #5b6470;background:#212831;border-radius:10px;padding:11px 12px;margin:12px 0}
.hubHistoricalRisks>summary{cursor:pointer;font-size:12px;font-weight:750;color:#f3dcaa;line-height:1.65}
.hubHistoricalRisks .hubCritical{margin-top:12px}
.hubHistoricalRisks .hubCheckpoint{margin-top:8px}

/* Evidence-aware in-game-style quest mock: one optional visual at the active action. */
.hubQuestVisual{margin:12px 0;border:1px solid #ab8756;background:#202933;border-radius:10px;overflow:hidden}
.hubQuestVisual>summary{display:flex;align-items:center;min-height:47px;padding:10px 13px;cursor:pointer;font-size:12px;font-weight:800;line-height:1.55;color:#fbe3b5;list-style:none}
.hubQuestVisual>summary::-webkit-details-marker{display:none}
.hubQuestVisual>summary::before{content:"▣";font-size:18px;line-height:1;margin-right:10px;color:#ffd28f}
.hubQuestVisual[open]>summary{border-bottom:1px solid #896d49;background:#36302a}
.hubQuestVisual>summary:focus-visible{outline:3px solid #f5d68b;outline-offset:-3px}
.hubQuestVisualBody{padding:12px;display:grid;gap:10px}
.hubVisualSourceWarning{display:flex;flex-direction:column;gap:3px;background:#392b20;border-left:4px solid #e8b66c;border-radius:0 7px 7px 0;padding:8px 12px}
.hubVisualSourceWarning strong{font-size:12px;color:#ffe4af;line-height:1.5}
.hubVisualSourceWarning span{font-size:11px;color:#d9c9b2;line-height:1.5}
.hubQuestFigure{margin:0;max-width:100%;padding:0}
.hubQuestFigure img{display:block;max-width:100%;width:100%;height:auto;margin:0;border:1px solid #98764c;border-radius:8px;background:#131923}
.hubQuestFigure figcaption{font-size:11px;color:#b9c8cd;line-height:1.5;padding:8px 1px 0}
.hubVisualCheck{background:#27382f;border:1px solid #587c66;border-radius:8px;padding:11px 12px}
.hubVisualCheck strong{color:#d5f0dc;font-size:12px;line-height:1.55}
.hubVisualCheck p{font-size:12px;line-height:1.6;color:#e1e9dd;margin:5px 0 0}
.hubVisualLinks{display:flex;flex-wrap:wrap;gap:8px 16px;font-size:12px;font-weight:700}
.hubVisualLinks a{color:#f6d99b;text-decoration:underline;line-height:1.5;overflow-wrap:anywhere}
@media(max-width:720px){
 .hubQuestVisualBody{padding:8px;gap:8px}
 .hubQuestVisual>summary{font-size:12px;padding:10px}
 .hubQuestFigure img{border-radius:5px}
 .hubVisualLinks{flex-direction:column}
}

/* 2026-11 UX remediation: independently controlled languages, clear stage orientation and mobile navigation. */
.hubLanguagePanel{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,1.1fr);gap:10px 18px;align-items:center;margin:10px 0 12px;padding:13px 15px;border:1px solid #69604b;border-radius:12px;background:#202632}
.hubLanguageHeading{display:flex;flex-direction:column;gap:3px}
.hubLanguageHeading strong{font-size:14px;color:#f4e1b4}
.hubLanguageHeading small{font-size:11px;color:#c4c9d1}
.hubLanguageChoices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.hubLanguageChoice{display:flex;flex-direction:column;gap:5px;min-width:0}
.hubLanguageChoice span{color:#e2e5e7;font-size:12px;font-weight:650;line-height:1.4}
.hubLanguageChoice select{min-width:0;width:100%;font-size:13px;min-height:44px;border-color:#777164;background:#161e2a;color:#fff1dc}
.hubLanguageChoice select:focus-visible{outline:3px solid #efcd8c;outline-offset:2px}
.hubLanguageNote{grid-column:1/-1;margin:0;color:#c3ccd4;font-size:11px;line-height:1.6}
.hubCanonicalName{display:block;color:#becdd8;font-size:11px;line-height:1.5;font-weight:400}
.hubQuestItems{display:flex;gap:7px;align-items:center;flex-wrap:wrap;margin:8px 0;padding:8px 10px;background:#1c2937;border:1px solid #4e5b6e;border-radius:9px}
.hubQuestItems strong{font-size:12px;color:#ebdfc5}
.hubQuestItem{padding:5px 9px;border-radius:7px;background:#334456;color:#f5ead6;border:1px solid #6c7885;font-size:12px;overflow-wrap:anywhere}
.hubQuestItems small{flex-basis:100%;font-size:10px;color:#c1cad2;line-height:1.5}
.hubWalkStageProgress{display:flex;align-items:center;gap:8px 12px;flex-wrap:wrap;border:1px solid #567168;border-radius:9px;padding:8px 11px;background:#20312e;margin-top:10px}
.hubWalkStageProgress strong{font-size:12px;color:#e4f4e8}
.hubWalkStageProgress span{font-size:11px;color:#cbd9d0}
.hubWalkStageProgress progress{flex:1 1 140px;min-width:70px;max-width:100%;height:9px;accent-color:#95cbb2}
.hubOriginalThai{border:1px solid #736d58;border-radius:8px;padding:7px 10px;margin-top:9px;background:#302c25;color:#f7e7cb}
.hubOriginalThai>summary{cursor:pointer;font-weight:650;font-size:12px;min-height:26px}
.hubOriginalThai p,.hubOriginalThai li{font-size:12px;line-height:1.6}
.hubStopGate.blocked{border-left:5px solid #f39c8a;background:#43282c;color:#ffebdd}
.hubStopGate.reviewed{border-left:5px solid #8bbf9c;background:#20352e}
.hubStopGate button{margin-top:9px;background:#4a3531;border-color:#ddae9a;color:#ffe8d8;min-height:44px;font-weight:750}
.hubWalkNavigator button{min-height:44px}
.hubWalkFocus h4{line-height:1.5}
@media(max-width:900px){.hubLanguagePanel{grid-template-columns:1fr}}
@media(max-width:720px){
 .hubLanguagePanel{padding:11px;gap:9px}
 .hubLanguageChoices{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
 .hubLanguageChoice select{font-size:12px;padding:8px 6px}
 .hubLanguageNote{font-size:10.5px}
 #hubNav{position:sticky;top:0;z-index:30;box-shadow:0 5px 18px #0008}
 .hubActStrip{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px;overflow:visible;scroll-snap-type:none;margin:5px 0;padding:3px 0 8px}
 .hubActStrip button{min-width:0!important;min-height:43px;padding:7px 2px;font-size:11px;white-space:normal;border-radius:7px}
 .hubActStrip button[data-act="Labyrinth"],.hubActStrip button[data-act="Vaal"],.hubActStrip button[data-act="Epilogue"]{grid-column:span 1;min-width:0!important;font-size:10px}
 .hubWalkNavigator{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
 .hubWalkNavigator select{grid-column:1/-1;min-width:0;width:100%}
 .hubWalkNavigator .hubStepPosition{grid-column:1/-1}
 .hubWalkNavigator button{width:100%}
 .hubQuestItems{padding:8px;gap:5px}
}

/* Act 6 UX: current quest step precedes secondary overview; achievement groups stay easy to reach. */
.hubActSummaryMore{border:1px solid #536172;border-radius:11px;margin:12px 0;background:#202832;overflow:hidden}
.hubActSummaryMore>summary{cursor:pointer;list-style:inside;min-height:48px;display:flex;align-items:center;padding:11px 15px;font-size:13px;line-height:1.45;font-weight:750;color:#f4deb2;background:#26323d}
.hubActSummaryMore>summary::-webkit-details-marker{display:none}
.hubActSummaryMore>summary::before{content:"▸";display:inline-block;min-width:20px;font-size:17px;color:#e7c78b}
.hubActSummaryMore[open]>summary::before{content:"▾"}
.hubActSummaryMore[open]>summary{border-bottom:1px solid #566576}
.hubActSummaryMore .hubActMission{margin:11px;border-color:#536172}
.hubActSummaryMore>summary:focus-visible{outline:3px solid #eac480;outline-offset:-3px}
.hubWalkTaskNav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:3px 0 17px}
.hubTaskNavLead{font-weight:700;color:#e7d5b3;font-size:12px;margin:12px 0 6px}
.hubWalkTaskJump{min-width:0;min-height:54px;padding:7px 11px;border:1px solid #647484;border-radius:9px;background:#2b3948;display:flex;flex-direction:column;gap:2px;justify-content:center;align-items:flex-start;text-align:left}
.hubWalkTaskJump:hover{background:#344a5c;border-color:#dbba85}
.hubWalkTaskJump span{color:#dfebf0;font-size:12px;line-height:1.3}
.hubWalkTaskJump strong{color:#f8dda1;font-size:15px;line-height:1.4;font-variant-numeric:tabular-nums}
.hubWalkTaskJump.isDone{background:#21392f;border-color:#649e7c}
.hubWalkTaskJump.isDone strong{color:#b9e4c9}
.hubWalkTaskJump:focus-visible{outline:3px solid #f9d593;outline-offset:2px}
.hubWalkCategory,.hubWalkLore{scroll-margin-top:105px}
.hubWalkthrough{scroll-margin-top:85px}
@media(max-width:720px){
 .hubActSummaryMore>summary{font-size:12px;padding:11px 12px}
 .hubActSummaryMore .hubActMission{margin:8px}
 .hubWalkTaskNav{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
 .hubWalkTaskJump{min-height:52px;padding:8px 10px}
 .hubWalkTaskJump span{font-size:11px}
 .hubWalkCategory,.hubWalkLore{scroll-margin-top:95px}
}

/* Act 7 UX: reliable first-incomplete routing and distinct evidence discrepancies. */
.hubWalkNavigator{grid-template-columns:auto minmax(170px,1fr) auto auto}
.hubWalkNavigator .hubStepPosition{grid-column:1;grid-row:1;white-space:nowrap}
.hubWalkNavigator select{grid-column:2;grid-row:1}
.hubWalkNavigator .hubJumpMissing{grid-column:1 / -1;grid-row:2;justify-self:start;width:auto;min-height:44px;border:1px solid #7c927e;background:#273c33;color:#e8f3e9;font-weight:700;font-size:12px;padding:9px 13px}
.hubWalkNavigator .hubJumpMissing:disabled{opacity:.55}
.hubWalkNavigator button:nth-last-child(2){grid-column:3;grid-row:1}
.hubWalkNavigator button:last-child{grid-column:4;grid-row:1}
.hubWalkNavigator .hubJumpMissing:focus-visible{outline:3px solid #e7d5a6;outline-offset:2px}
.hubSourceDiscrepancy{border:1px solid #a98862;background:#302923;border-radius:9px;margin:11px 0;padding:10px 13px;color:#f4e1c6}
.hubSourceDiscrepancy>summary{cursor:pointer;min-height:44px;display:flex;align-items:center;font-size:12px;font-weight:750;line-height:1.55;color:#ffdeb3}
.hubSourceDiscrepancy>summary:focus-visible{outline:3px solid #ffe0a0;outline-offset:2px}
.hubSourceDiscrepancy p{font-size:12px;line-height:1.7;margin:8px 0}
.hubSourceDiscrepancy .hubConflictLinks{display:flex;gap:10px 18px;flex-wrap:wrap}
.hubSourceDiscrepancy .hubConflictLinks a{color:#fce1ae;text-decoration:underline;font-size:12px;line-height:1.55}
@media(max-width:720px){
 .hubWalkNavigator{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
 .hubWalkNavigator .hubStepPosition{grid-column:1/-1;grid-row:1}
 .hubWalkNavigator select{grid-column:1/-1;grid-row:2;width:100%}
 .hubWalkNavigator .hubJumpMissing{grid-column:1/-1;grid-row:3;justify-self:stretch;width:100%}
 .hubWalkNavigator button:nth-last-child(2){grid-column:1;grid-row:4}
 .hubWalkNavigator button:last-child{grid-column:2;grid-row:4}
}

/* Act 9 ruler choice: non-destructive branch annotation, distinct from achievement marks. */
.hubBranchChoice{background:#27313c;border:2px solid #b59a69;border-radius:11px;padding:14px 15px;margin:14px 0;color:#f4e2c4;display:flex;flex-direction:column;gap:9px}
.hubBranchChoice>strong{font-size:16px;font-weight:800;line-height:1.45;color:#ffdfaa}
.hubBranchChoice label{display:flex;align-items:center;flex-wrap:wrap;gap:9px;font-size:13px;font-weight:700}
.hubBranchChoice select{background:#1b2835;color:#f4eee5;border:1px solid #bc9d68;border-radius:8px;padding:11px 12px;min-height:44px;max-width:100%;font-size:14px;font-weight:650}
.hubBranchChoice p,.hubBranchWarning p{font-size:13px;line-height:1.7;margin:0}
.hubBranchChoice a{color:#f7d69a;text-decoration:underline;font-size:12px}
.hubBranchChoice[data-ruler-branch="Tasuni"]{background:#3d2930;border-color:#e2a8a0}
.hubBranchWarning{background:#442d33;border:2px solid #e2a8a0;border-radius:9px;margin:12px 0;padding:11px 13px;color:#ffe8dc}
.hubBranchWarning strong{font-size:13px;color:#ffe1cc}
.hubBranchChoice select:focus-visible,.hubBranchChoice a:focus-visible{outline:3px solid #ffdfab;outline-offset:3px}
@media(max-width:720px){.hubBranchChoice{padding:12px 11px}.hubBranchChoice label{display:flex;flex-direction:column;align-items:stretch}.hubBranchChoice select{width:100%}}

/* Bilingual contextual checklist guide · linked action to the exact source-led quest phase. */
.hubItemHelpBody .hubOpenLinkedStage{display:inline-flex;align-items:center;justify-content:center;text-align:center;min-height:44px;max-width:100%;padding:9px 15px;border:1px solid #b49b69;border-radius:9px;color:#ffdfad;background:#2e382f;font-size:13px;font-weight:750;line-height:1.5;margin:0 0 10px}
.hubItemHelpBody .hubOpenLinkedStage:hover{background:#3b4939;border-color:#efcc83}
.hubItemHelpBody .hubOpenLinkedStage:focus-visible{outline:3px solid #ffdfa9;outline-offset:3px}
@media(max-width:720px){.hubItemHelpBody .hubOpenLinkedStage{display:flex;width:100%}}


/* Source confidence is visible at the decision point, without burying the active quest step. */
.hubEvidencePanel{margin:14px 0;border:1px solid #b58556;border-left:4px solid #e6b16d;border-radius:12px;background:#29241f;overflow:hidden}
.hubEvidencePanel>summary{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:6px 16px;padding:14px 16px;cursor:pointer;color:#ffe0aa;list-style-position:inside}
.hubEvidencePanel>summary strong{font-size:14px;line-height:1.5}
.hubEvidencePanel>summary small{color:#ebc9a2;font-size:12px}
.hubEvidencePanel>summary:hover{background:#363027}
.hubEvidencePanel>summary:focus-visible{outline:3px solid #ffdb94;outline-offset:-3px}
.hubEvidenceBody{display:grid;gap:12px;padding:0 16px 16px;max-width:100%;overflow-wrap:anywhere}
.hubEvidenceBody p{margin:4px 0 8px;font-size:13px;line-height:1.65;color:#e9dfd2}
.hubEvidenceBody a{font-size:13px;text-decoration:underline;text-underline-offset:3px}
.hubEvidenceIssue+.hubEvidenceIssue{padding-top:12px;border-top:1px solid #61513e}
.hubEvidenceIssue strong{color:#ffe0aa}
.hubGlobalEvidence{margin-top:12px}
@media(max-width:600px){.hubEvidencePanel>summary{display:block}.hubEvidencePanel>summary small{display:block;margin-top:4px}.hubEvidenceBody{padding:0 12px 14px}}


/* Navigation and keyboard ergonomics across the full achievement flow. */
#hubNav button,#hubToolbar button,.hubStepNavigator button,.hubOpenLinkedStage,.hubActMissionItem button{min-height:44px}
#hubNav button[aria-selected=true]{box-shadow:inset 0 -3px 0 #423319}
#hubView [data-steam-act],#hubView [data-critical-act],#hubView [data-group],#hubView .hubEvidencePanel{scroll-margin-top:92px}
#hubView summary,#hubStats summary{scroll-margin-top:90px}
#hubView a:focus-visible,#hubStats a:focus-visible,#hubView summary:focus-visible,#hubStats summary:focus-visible{outline:3px solid #ffdb94;outline-offset:3px}
@media(max-width:720px){#hubNav{gap:3px;padding:6px}#hubNav button{white-space:normal;line-height:1.35;padding:10px 7px}#hubView [data-steam-act],#hubView [data-critical-act]{scroll-margin-top:100px}}


/* High-priority player-facing evidence, shown ahead of long checklist lists. */
.hubCurrentPatchRisk{margin:12px 0 15px;padding:15px 17px;border:2px solid #d7a572;border-left-width:5px;border-radius:12px;background:#33271f;color:#f5e8d8}
.hubCurrentPatchRisk>strong{display:block;font-size:15px;color:#ffe0ac;line-height:1.55}
.hubCurrentPatchRisk p{margin:7px 0 12px;font-size:13px;line-height:1.65}
.hubCurrentRiskActions{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;margin-bottom:9px}
.hubCurrentRiskActions button{min-height:44px;background:#f1d19a;color:#272018;font-weight:700;border-color:#f1d19a}
.hubCurrentRiskActions button:hover{background:#ffe5b5}
.hubCurrentRiskActions a{color:#ffe3b2;font-size:13px;text-underline-offset:3px}
.hubCurrentPatchRisk small{display:block;color:#e3c8b0;line-height:1.5}
.hubCurrentPatchRisk :focus-visible{outline:3px solid #ffe3a1;outline-offset:3px}
@media(max-width:600px){.hubCurrentPatchRisk{padding:12px}.hubCurrentRiskActions button{width:100%}}


/* An accessible persistent review cue for non-linear preview navigation in Acts 1–6. */
.hubSkippedRisk{margin:13px 0 15px;padding:13px 15px;background:#33261e;border:2px solid #d4a267;border-left-width:5px;border-radius:12px;color:#f4dfc5}
.hubSkippedRisk strong{display:block;color:#ffdb9e;font-size:14px;line-height:1.5}
.hubSkippedRisk p{margin:6px 0 10px;font-size:13px;line-height:1.65;overflow-wrap:anywhere}
.hubSkippedRisk button{min-height:44px;font-weight:700;background:#edc994;color:#2d2018;border-color:#edc994}
.hubSkippedRisk button:hover{background:#ffdc9f}
.hubSkippedRisk small{display:block;margin-top:9px;color:#e4c8ad;font-size:12px}
.hubSkippedRisk button:focus-visible{outline:3px solid #ffe7b5;outline-offset:3px}
@media(max-width:600px){.hubSkippedRisk{padding:12px}.hubSkippedRisk button{width:100%}}


/* Task-first route: risk, next manual verification, then phase navigation. */
.hubNextAction{display:grid;gap:8px;margin:10px 0;padding:13px 15px;border:1px solid #68807b;border-left:4px solid #9cc2ae;border-radius:10px;background:#20332f;color:#f0f5ee;min-width:0}
.hubNextAction>strong{font-size:14px;line-height:1.4;color:#cfebd8}
.hubNextActionItem{font-size:14px;line-height:1.55;font-weight:650;margin:0;overflow-wrap:anywhere}
.hubNextAction button{justify-self:start;min-height:44px;padding:9px 13px;background:#d0e5d5;color:#152e22;border:1px solid #c3ddcc;border-radius:8px;font-weight:750}
.hubNextAction button:hover{background:#e5f6e8}
.hubNextAction button:focus-visible{outline:3px solid #f9edac;outline-offset:3px}
.hubWalkthrough>.hubWalkFocus{margin-top:12px}
.hubWalkthrough>.hubStopGate{margin:9px 0}
.hubWalkthrough>.hubStepNavigator{margin-top:12px}
@media(max-width:600px){.hubNextAction{padding:12px}.hubNextAction button{width:100%;justify-self:stretch;white-space:normal}.hubWalkFocus{padding:11px}.hubWalkNavigator select{min-width:0;max-width:100%}}


/* Current-act primary action and compact cross-route recovery. */
.hubMissionNext{border:1px solid #6e857c;border-left:4px solid #abd2b7;background:#223630;min-width:0}
.hubMissionNext>span{flex:1 1 auto;gap:6px}
.hubMissionNext strong{font-size:14px;color:#e6f4e6}
.hubMissionNext .hubMissionPhase{font-size:13px;color:#e2eadd;font-weight:650;overflow-wrap:anywhere}
.hubMissionNext .hubMissionRisk{font-size:12px;color:#ffe0b3;background:#403024;border:1px solid #936e48;padding:7px 9px;border-radius:7px;overflow-wrap:anywhere}
.hubMissionNext button{background:#cee6d1;color:#193025;border-color:#b3d4bb;min-height:44px;font-weight:750}
.hubMissionNext button:hover{background:#e2f4e4}
.hubFirstMissing{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;font-size:12px;color:#d2d5cf;padding:9px 12px;border:1px solid #4c5557;border-radius:9px}
.hubFirstMissing button{min-height:44px;padding:8px 12px;background:#303b44;border:1px solid #6c7a84;border-radius:8px;color:#f2e6d5;font-weight:650}
.hubFirstMissing button:hover{background:#40515c}
.hubFirstMissing button:focus-visible,.hubMissionNext button:focus-visible{outline:3px solid #ffe1a6;outline-offset:3px}
@media(max-width:600px){.hubMissionNext{flex-direction:column;align-items:stretch}.hubMissionNext button{width:100%}.hubFirstMissing{align-items:stretch;flex-direction:column}.hubFirstMissing button{width:100%}}


/* Compact source disclosure: never hide the reported Act 1 risk label, but keep secondary evidence off the main task path. */
.hubCurrentPatchRisk{margin:6px 0;min-width:0;padding:0;overflow:hidden}
.hubCurrentPatchRisk>summary{cursor:pointer;display:flex;align-items:flex-start;justify-content:space-between;gap:9px;padding:12px 14px;list-style-position:inside}
.hubCurrentPatchRisk>summary strong{display:block;font-size:13px;line-height:1.5;color:#ffe0ac;overflow-wrap:anywhere}
.hubCurrentPatchRisk>summary small{display:block;font-size:11px;color:#dfcbb2;margin-top:3px;line-height:1.5}
.hubCurrentPatchRisk[open]>summary{border-bottom:1px solid #76563c}
.hubCurrentPatchRisk>p,.hubCurrentPatchRisk>.hubCurrentRiskActions,.hubCurrentPatchRisk>.hubSubtle{margin-left:14px;margin-right:14px}
.hubCurrentPatchRisk>summary:focus-visible{outline:3px solid #ffe3a1;outline-offset:-4px}
@media(max-width:600px){.hubCurrentPatchRisk>summary{padding:10px 12px;gap:5px}.hubCurrentPatchRisk>p,.hubCurrentPatchRisk>.hubCurrentRiskActions,.hubCurrentPatchRisk>.hubSubtle{margin-left:12px;margin-right:12px}}

/* Act reference shelf: keep the active quest flow visible; progressively disclose secondary material. */
.hubReferenceShelf{margin:18px 0 7px;border:1px solid #63737b;border-radius:12px;background:#1e2930;min-width:0;overflow-wrap:anywhere}
.hubReferenceShelf>summary{display:flex;flex-direction:column;gap:4px;cursor:pointer;padding:14px 16px;background:#27343c;color:#f5e7ca;line-height:1.5}
.hubReferenceShelf>summary strong{font-size:14px;font-weight:750}
.hubReferenceShelf>summary small{color:#b7c8c7;font-size:12px;line-height:1.5}
.hubReferenceShelf[open]>summary{border-bottom:1px solid #63737b;background:#324149}
.hubReferenceShelf>summary:focus-visible{outline:3px solid #ffdf9c;outline-offset:-3px}
.hubReferenceShelf>.hubActSummaryMore,.hubReferenceShelf>.hubHistoricalRisks,.hubReferenceShelf>.hubChapter,.hubReferenceShelf>.hubExcelWarnings,.hubReferenceShelf>.hubRewards,.hubReferenceShelf>.hubPostQuests,.hubReferenceShelf>.hubNotice{margin:10px 13px}
.hubReferenceShelf .hubCritical{min-width:0}
@media(max-width:600px){.hubReferenceShelf>summary{padding:12px}.hubReferenceShelf>.hubActSummaryMore,.hubReferenceShelf>.hubHistoricalRisks,.hubReferenceShelf>.hubChapter,.hubReferenceShelf>.hubExcelWarnings,.hubReferenceShelf>.hubRewards,.hubReferenceShelf>.hubPostQuests,.hubReferenceShelf>.hubNotice{margin:8px;max-width:calc(100% - 16px)}}


/* First-time player path: one decision, one next step, advanced evidence on demand. */
#hubQuickStart{display:grid;gap:13px;border:1px solid #9f8754;border-radius:16px;padding:21px;background:linear-gradient(135deg,#273329,#1b252d 65%);box-shadow:0 8px 24px #0003;margin:16px 0 12px;min-width:0}
.hubBeginnerEyebrow{color:#f1d59c;font-size:11px;letter-spacing:.06em;text-transform:uppercase;font-weight:800}
#hubQuickStart h2{font-size:clamp(21px,3.5vw,28px);line-height:1.25;color:#f8ead1;margin:0;max-width:32ch}
.hubBeginnerIntro{color:#e1e8de;font-size:14px;line-height:1.65;margin:0;max-width:68ch}
.hubBeginnerSteps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
.hubBeginnerStep{background:#293b37;border:1px solid #536f62;border-radius:10px;padding:11px;display:flex;align-items:flex-start;gap:8px;min-width:0;line-height:1.45;color:#e9eee7;font-size:12px}
.hubBeginnerStep b{flex:0 0 25px;display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:#d8ebd7;color:#173527;font-size:13px}
.hubBeginnerPicker{display:grid;gap:6px;min-width:0;color:#f3e4c6;font-weight:700;font-size:14px}
.hubBeginnerPicker select{width:100%;min-width:0;max-width:410px;min-height:48px;background:#141d26;color:#fff2d6;border:1px solid #849a88}
.hubBeginnerCurrent{border:1px solid #648477;border-left:4px solid #a7d9af;border-radius:10px;background:#20372e;padding:13px 15px;min-width:0}
.hubBeginnerCurrent strong{display:block;color:#cbe8d2;margin-bottom:6px}
.hubBeginnerQuest{font-weight:700;font-size:17px;color:#fbf5e8;margin:0 0 5px;line-height:1.5;overflow-wrap:anywhere}
.hubBeginnerCurrent small{display:block;color:#c7d8cf}
.hubBeginnerStop{background:#422d23;border:1px solid #ab7952;color:#fff0d1;border-radius:8px;padding:10px 12px;margin:10px 0 0;font-size:13px;line-height:1.55;overflow-wrap:anywhere}
.hubBeginnerCTA{background:#d8ebd7!important;color:#163122!important;border:1px solid #d4eed8!important;font-weight:850;font-size:16px;min-height:52px;width:100%;padding:12px 18px}
.hubBeginnerCTA:hover{background:#e9f9e7!important}
.hubBeginnerFineprint{font-size:11px;line-height:1.55;color:#bfcfc4;margin:0;max-width:85ch}
#hubAdvancedDashboard{margin:10px 0 13px;border:1px solid #4e5a59;border-radius:12px;background:#1c2428}
#hubAdvancedDashboard>summary{cursor:pointer;list-style-position:inside;font-size:13px;font-weight:700;color:#dde8e0;padding:13px 16px}
#hubAdvancedDashboard[open]>summary{border-bottom:1px solid #4e5a59}
#hubAdvancedDashboard .hubPanel{margin:11px}
#hubAdvancedDashboard>summary:focus-visible{outline:3px solid #f3dc9d;outline-offset:-3px}
@media(max-width:720px){#hubQuickStart{padding:15px;gap:12px}.hubBeginnerSteps{grid-template-columns:1fr}.hubBeginnerStep{padding:8px 10px;align-items:center}.hubBeginnerStep b{width:23px;height:23px;flex-basis:23px}.hubBeginnerQuest{font-size:16px}#hubAdvancedDashboard .hubPanel{margin:7px;padding:10px}}

/* One reading path for new players: a single task surface instead of cards inside cards. */
#hubQuickStart{border:1px solid #5f736b;background:#202b29;box-shadow:none;gap:14px}
.hubBeginnerSteps{gap:0;border-top:1px solid #4b5e55;border-bottom:1px solid #4b5e55}
.hubBeginnerStep{border:0;border-radius:0;background:transparent;padding:12px 9px}
.hubBeginnerStep+.hubBeginnerStep{border-left:1px solid #4b5e55}
.hubBeginnerCurrent{background:transparent;border:0;border-radius:0;border-bottom:1px solid #4b5e55;padding:3px 0 14px}
.hubBeginnerWhere{font-size:14px;color:#d4e8d9;line-height:1.6;margin:7px 0}
.hubBeginnerInstructions{padding:0 0 0 24px;margin:7px 0 9px;display:grid;gap:8px}
.hubBeginnerInstructions li{font-size:14px;line-height:1.7;color:#f3f1e8;padding-left:3px}
.hubBeginnerCurrent>strong{font-size:14px;color:#d2eacb;margin:8px 0}
.hubWalkthrough{background:transparent;border:0;padding:0;margin:14px 0;box-shadow:none}
.hubWalkHeader{padding:10px 2px 12px;border-bottom:1px solid #485861}
.hubWalkthrough>.hubWalkFocus{border:0;background:transparent;padding:12px 2px 8px;margin:0}
.hubWalkthrough>.hubNextAction{background:transparent;border:0;border-radius:0;border-bottom:1px solid #53675d;margin:0;padding:16px 2px 18px;gap:11px;color:#f1f5eb}
.hubWalkthrough>.hubNextAction>strong{font-size:18px;color:#d8edda}
.hubWalkthrough .hubNextActionItem{font-size:15px;line-height:1.6}
.hubActionInstructionsLabel{font-size:15px!important;color:#f7e1b2!important}
.hubWalkthrough .hubWalkActions{margin:2px 0 8px;gap:0}
.hubWalkthrough .hubWalkActions li{background:transparent;border:0;border-radius:0;border-bottom:1px solid #40504d;padding:12px 7px 12px 41px;font-size:14px;line-height:1.7}
.hubWalkthrough .hubWalkActions li::before{top:13px;left:5px;background:#c5dcca;color:#1b3026}
.hubWalkthrough>.hubStepNavigator{background:transparent;border:0;border-top:1px solid #465963;border-radius:0;padding:12px 0 4px;margin-top:13px}
.hubWalkthrough>.hubStopGate{margin:11px 0;border-left-width:4px}
@media(max-width:720px){.hubBeginnerStep+.hubBeginnerStep{border-left:0;border-top:1px solid #4b5e55}#hubQuickStart{padding:15px 16px}.hubBeginnerCurrent{padding-bottom:12px}.hubWalkthrough .hubWalkActions li{font-size:14px}.hubWalkthrough>.hubNextAction>strong{font-size:17px}}
