#game-panel[hidden] { display: none; }
#game-panel { min-width: 0; }
.game-panel-heading { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 8px; margin-bottom: 12px; }
.game-panel-heading h1 { font-size: clamp(28px,4vw,47px); }
.game-panel-heading [data-panel-actions] { display: flex; flex-wrap: wrap; gap: 5px; }
#game-panel .character-message:empty { display: none; }
#game-panel .guide-tabs { gap: 5px; margin-bottom: 10px; }
#game-panel .guide-page { padding: clamp(8px,2vw,16px); border: 1px solid #644932; background: #211811; border-radius: 5px; }
#game-panel .guide-page > :is(h3,p) { margin-bottom: 8px; }
#game-panel .character-backpack { padding: 10px; border: 1px solid #745739; border-radius: 5px; background: #211810; }
.character-backpack .cargo-breakdown { margin: 1px 0 8px; }
.pet-progress,.pet-progress-list { color: #e4bd88; }
.pet-progress-list { display: grid; gap: 4px; padding: 0; list-style: none; }
.pet-progress-list li { display: flex; align-items: center; flex-wrap: wrap; gap: 6px 13px; }

#main.has-player-rail { grid-template-columns: minmax(198px,232px) minmax(0,1fr); }
.player-rail-card { gap: 7px; border-radius: 5px; }
.player-rail-card .player-rail-head { display: flex; align-items: baseline; justify-content: space-between; gap: 5px; width: 100%; padding: 0; text-align: start; color: #f0d6b4; }
.player-rail-head strong { font: 700 1.14rem/1.2 var(--serif); overflow-wrap: anywhere; }
.player-rail-head small { flex: none; color: #d8ad7a; }
.player-rail-card .rail-vitals div { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 3px 4px; border: 0; padding: 0; }
.rail-vitals progress { display: block; grid-column: 1/-1; height: 5px; min-width: 0; width: 100%; accent-color: #c56b58; }
.rail-vitals .rail-energy { accent-color: #a6b476; }
.rail-dress { display: grid; grid-template-columns: minmax(36px,1fr) minmax(62px,2.2fr) minmax(36px,1fr); gap: 4px; }
.rail-gear-column { display: grid; grid-template-rows: repeat(4,minmax(34px,1fr)); gap: 3px; }
.rail-slot { min-height: 33px; display: grid; place-items: center; padding: 1px; }
.rail-slot :is(.item-art,.gear-placeholder) { height: 28px; }
.rail-slot .gear-name { display: none; }
.rail-slot .gear-placeholder { font-size: 11px; }
.rail-figure { display: grid; place-items: stretch; min-width: 0; background: radial-gradient(ellipse,#51402b,#241b12 74%); }
.rail-figure canvas { display: block; width: 100%; height: 100%; max-height: 154px; object-fit: contain; touch-action: pan-y; }
.rail-ornaments { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: 3px; }
.rail-ornaments .gear-cell { padding: 2px; min-height: 26px; place-items: center; }
.rail-ornaments :is(.item-art,.ornament-shape) { width: 100%; height: 22px; }
.rail-ornaments .ornament-shape { max-width: 11px; height: 11px; }
.rail-record { display: grid; gap: 3px; margin: 0; font-size: .74rem; }
.rail-record > div { display: flex; justify-content: space-between; gap: 4px; }
.rail-record dt { color: var(--muted); }
.rail-record dd { margin: 0; text-align: right; color: #e7c8a2; font-variant-numeric: tabular-nums; }
@media (max-width: 760px) {
  #main.has-player-rail { grid-template-columns: minmax(0,1fr); }
  .player-rail-card { grid-template-columns: minmax(102px,.85fr) minmax(0,1.15fr); gap: 5px 10px; }
  .player-rail-card > .player-rail-head,.player-rail-card > .rail-vitals { grid-column: 1 / -1; }
  .rail-dress { grid-row: span 2; grid-template-columns: minmax(18px,1fr) minmax(34px,2fr) minmax(18px,1fr); }
  .rail-gear-column { grid-template-rows: repeat(4,minmax(18px,1fr)); }
  .rail-slot { min-height: 18px; }
  .rail-slot :is(.item-art,.gear-placeholder) { height: 16px; }
  .rail-figure canvas { max-height: 86px; }
  .player-rail-card > .compact-stat-list { grid-column: 2; grid-row: 3; }
  .rail-ornaments { grid-column: 1; }
  .rail-record { grid-column: 2; grid-row: 4 / span 2; }
  .player-rail-card > [data-condition=status] { display: none; }
}

body:has(.city-chat:not([hidden])) { padding-bottom: var(--chat-height,53px); }
.city-chat { max-width: none; width: 100%; }
.city-dock { justify-content: start; padding-inline: clamp(7px,2vw,23px); }
.city-dock-tools { display: flex; justify-content: end; flex-wrap: wrap; gap: 3px; margin-inline-start: auto; }
.city-dock-channel { margin-inline-start: 3px; }
.city-dock [data-chat-toggle-label] { color: inherit; }
.city-dock button { min-height: 37px; }
.city-dock-tools button { background-color: #2e2117; border-color: #6b4d34; }
.chat-drawer { padding-inline: clamp(7px,2vw,23px); }
.chat-body { grid-template-columns: minmax(0,1fr) minmax(144px,19%); height: clamp(68px,13dvh,116px); }
.chat-drawer [data-chat-stream] { min-height: 0; max-height: none; }
.chat-nearby { display: flex; flex-direction: column; min-height: 0; }
.chat-nearby ul { max-height: none; min-height: 0; }
.chat-nearby > strong { color: #f5d1a0; font-size: .83rem; overflow-wrap: anywhere; }
.chat-nearby li { border-bottom: 1px solid #3a2a20; }
.chat-nearby [data-nearby-count] { color: #d0af88; }
@media (max-width: 510px) {
  body:has(.city-chat:not([hidden])) { padding-bottom: var(--chat-height,85px); }
  .city-dock-tools { gap: 2px; }
  .city-dock-tools button { min-height: 36px; }
  .chat-body { grid-template-columns: minmax(0,1fr) minmax(91px,30%); }
  .chat-nearby > strong { font-size: .73rem; }
}

.header .game-primary-nav[hidden] { display: none; }
.rail-record .rail-score { display: flex; flex-wrap: wrap; justify-content: end; gap: 3px; }
.rail-score span { display: inline-flex; align-items: center; gap: 4px; border: 1px solid #654834; padding: 0 4px; border-radius: 3px; background: #1e160f; }
.rail-score i { font-style: normal; font-size: .78rem; color: #ccac82; }
.rail-score .wins i { color: #a7c48a; }
.rail-score .losses i { color: #e39684; }
.rail-record dd > span[title] { color: var(--muted); }
.chat-nearby .is-self { background: #33261a; }
.chat-nearby .is-self button { color: #f4dfaa; font-weight: 700; }
.chat-nearby button small { color: #cfb28e; white-space: nowrap; }
.arena-directory-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 7px; margin-bottom: 8px; }
.arena-directory-actions p { margin-right: auto; }

.equipped-choices { display: grid; gap: 6px; margin-top: 10px; }
.equipped-choices h3 { margin: 0; font-size: 1rem; }
.equipped-choice { display: grid; align-items: center; grid-template-columns: 40px minmax(0,1fr) auto; gap: 8px; padding: 4px 7px; background: #291e15; border: 1px solid #684b35; border-radius: 4px; }
.equipped-choice .item-art { width: 38px; height: 38px; }
.equipped-choice small { display: block; color: var(--muted); }
.shop-comparison { margin-top: 12px; }

.quest-journal { display: grid; gap: 10px; }
.quest-group { overflow: clip; border: 1px solid #61462e; border-radius: 5px; background: #1d1610; }
.quest-group > :is(h2,summary) { margin: 0; padding: 7px 10px; background: #342519; color: #f3d8b5; font-family: var(--sans); font-size: .9rem; font-weight: 700; }
.quest-group summary { cursor: pointer; }
.quest-group > :is(h2,summary) span { margin-left: 5px; font-size: .76rem; color: #deb787; }
.quest-row { display: grid; align-items: center; grid-template-columns: minmax(0,1fr) minmax(0,1.25fr) minmax(84px,.72fr) minmax(100px,132px); gap: 8px; padding: 8px 10px; border-top: 1px solid #473423; }
.quest-row :is(h3,p) { margin: 0; overflow-wrap: anywhere; }
.quest-row h3 { font-size: 1.05rem; }
.quest-row p { font-size: .83rem; }
.quest-row small { display: block; color: var(--muted); font-size: .73rem; }
.quest-row-reward p { color: #f2cf98; }
.quest-row-action { display: grid; justify-items: stretch; gap: 5px; }
.quest-row-action .button { padding: 5px 8px; min-height: 33px; font-size: .8rem; }
.quest-row-action select { width: 100%; }
.quest-journal-status { margin-bottom: 6px; color: #ebce9f; }
.quest-journal-status:empty { display: none; }
.quest-journal.is-dialogue .quest-row { grid-template-columns: minmax(0,1fr) auto; align-items: start; }
.quest-journal.is-dialogue .quest-objective { grid-column: 1; }
.quest-journal.is-dialogue .quest-row-reward { grid-column: 1; }
.quest-journal.is-dialogue .quest-row-action { grid-column: 2; grid-row: 1 / span 3; align-self: end; }
@media (max-width: 850px) {
  .quest-row { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 4px 10px; }
  .quest-row header { grid-column: 1 / -1; }
  .quest-row .quest-objective { grid-column: 1 / -1; }
  .quest-row-action { justify-items: end; align-self: end; }
  .quest-journal.is-dialogue .quest-row-action:has(select) { grid-row: auto; grid-column: 1 / -1; }
}
@media (max-width: 470px) {
  .quest-journal.is-dialogue .quest-row { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .quest-journal.is-dialogue .quest-objective { grid-column: 1 / -1; }
  .quest-journal.is-dialogue .quest-row-action { grid-row: auto; }
}

.rail-nick { display: inline-block; min-width: 0; padding: 0; border: 0; background: transparent; color: inherit; text-align: left; }
.player-rail-head .rail-level { display: inline; white-space: nowrap; color: #dfb887; font: 700 .78rem var(--sans); }
.player-rail-head .nick-badges { display: inline-flex; gap: 3px; vertical-align: middle; }
.rail-info { flex: none; width: 23px; height: 23px; padding: 0; border: 1px solid #95714a; border-radius: 4px; background: #3c2a19; color: #ffe0a4; font: 700 .85rem var(--serif); }
.rail-info:hover { background: #573925; }

.character-name { overflow-wrap: anywhere; }
.character-name-level { white-space: nowrap; color: #ddba92; font-size: .9em; font-variant-numeric: tabular-nums; }
.player-rail-head .character-name,.player-rail-head .character-name-level { display: inline; }
.character-name-level { font-family: var(--sans); }
.chat-drawer .chat-battle-link { display: inline; padding: 0; min-height: 0; border: 0; background: none; color: #ffd49b; font: inherit; font-weight: 800; text-decoration: underline; text-underline-offset: 2px; }
.critical-marker { display: inline-block; margin-inline-start: 6px; color: #ffd584; font-size: .79rem; font-weight: 800; }
#battle-recap { width: min(850px,96vw); }
.battle-recap-body { padding: 12px; }
.battle-recap-summary { display: flex; flex-wrap: wrap; gap: 7px 15px; align-items: center; padding: 8px 10px; border: 1px solid #806044; background: #342519; border-radius: 5px; }
.battle-recap-summary strong { margin-inline-end: auto; }

.locator-filters { display: grid; grid-template-columns: minmax(0,1fr); gap: 10px; padding: 10px; border: 1px solid #735339; border-radius: 6px; background: #251a12; }
.locator-filters fieldset { min-width: 0; margin: 0; border: 1px solid #5d452f; border-radius: 5px; }
.locator-filters legend { padding-inline: 5px; color: #daba94; font-size: .76rem; }
.locator-search { display: grid; grid-template-columns: minmax(0,1fr) auto auto; align-items: end; gap: 7px; }
.locator-options { display: grid; grid-template-columns: minmax(132px,1.25fr) repeat(3,minmax(0,1fr)); gap: 7px; padding: 6px 8px 8px; align-items: end; }
.locator-range { display: grid; grid-template-columns: 1fr 1fr; gap: 5px; padding: 3px 5px 5px; }
.locator-filters :is(input,select) { width: 100%; min-width: 0; min-height: 38px; padding: 5px 7px; background: #17110c; color: #f2dfc6; }
.locator-filters :is(input,select):focus-visible { outline: 2px solid #bf905a; outline-offset: 1px; }
.locator-result-heading { display: flex; justify-content: space-between; align-items: center; padding: 8px 0 0; }
.locator-result-heading h4 { margin: 0; font-size: 1.05rem; }
.locator-result-heading span { color: #d6b28b; font-size: .8rem; }
.locator-person { display: flex; gap: 9px; align-items: center; }
.locator-person > img { object-fit: cover; object-position: center 21%; border: 1px solid #765336; border-radius: 4px; }
.locator-person small:empty,.locator-pagination:empty { display: none; }
.locator-empty { margin: 0; padding: 12px; border: 1px solid #59432f; color: #dfc2a3; }
.locator-pagination { justify-content: end; margin-top: 8px; }

.xp-chapters { display: grid; gap: 5px; }
.xp-chapters details { border: 1px solid #6c4c34; border-radius: 5px; overflow: clip; }
.xp-chapters summary { display: flex; align-items: center; flex-wrap: wrap; gap: 5px 12px; padding: 8px 10px; background: #302318; cursor: pointer; }
.xp-chapters summary::before { content: '▸'; color: #dfac76; }
.xp-chapters details[open] > summary::before { content: '▾'; }
.xp-chapters summary span { margin-inline-start: auto; color: #dcb894; font-size: .81rem; }
.xp-chapters details > p { margin: 8px 10px; }
.xp-chapters .xp-guide-rank { overflow-x: auto; margin: 0; }
.xp-chapters table { width: 100%; border-collapse: collapse; table-layout: fixed; font-variant-numeric: tabular-nums; }
.xp-chapters :is(th,td) { padding: 6px 8px; border-top: 1px solid #583e2c; text-align: right; overflow-wrap: anywhere; }
.xp-chapters th:first-child { width: 31%; text-align: left; }
.xp-chapters th[scope=col] { background: #251b13; color: #dcc19f; font-size: .75rem; }
.xp-chapters td small { white-space: nowrap; color: #c8ad90; }
.xp-chapters .xp-next > * { background: #503a21; color: #ffe0a5; }
.xp-chapters .xp-passed > * { color: #c0d6a2; }
.guide-xp-summary div { display: grid; gap: 3px; }
.guide-xp-summary small { color: #d4ae83; }

.elements-guide > header { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 6px; margin-bottom: 9px; }
.elements-guide > header h3 { margin: 0; }
.element-guide-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; margin-bottom: 9px; }
.element-guide-grid article { padding: 10px; border: 1px solid color-mix(in srgb,var(--element) 46%,#322116); border-radius: 6px; background: color-mix(in srgb,var(--element) 8%,#211911); }
.element-guide-grid article header { display: flex; align-items: center; gap: 9px; }
.element-guide-grid h4 { margin: 0; font-size: 1.23rem; color: var(--element); }
.element-guide-grid header div > span { color: #d4ba9a; font-size: .78rem; }
.element-guide-grid dl { display: grid; gap: 7px; margin: 9px 0 0; }
.element-guide-grid dl > div { border-top: 1px solid #624931; padding-top: 5px; }
.element-guide-grid dt { color: var(--element); font-weight: 700; font-size: .81rem; }
.element-guide-grid dd { margin: 2px 0 0; font-size: .84rem; }
@media(max-width: 690px) {
  .locator-options { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .xp-chapters :is(th,td) { padding-inline: 4px; font-size: .75rem; }
  .xp-chapters th[scope=col] { font-size: .69rem; }
}
@media(max-width: 470px) {
  .element-guide-grid { grid-template-columns: 1fr; }
  .locator-search { grid-template-columns: 1fr auto; }
  .locator-search label { grid-column: 1 / -1; }
}

.gear-silhouette { display: grid; place-items: center; width: 100%; opacity: .30; filter: grayscale(1) brightness(.92); pointer-events: none; }
.rail-model-column,.fighter-model-column { display: grid; grid-template-rows: auto minmax(0,1fr) auto; gap: 3px; min-width: 0; }
.fighter-model-column { grid-template-rows: auto; align-content: center; }
.fighter-model-column:has(.battle-rune-strip) { grid-template-rows: auto minmax(0,1fr) auto; }
.battle-rune-strip { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 3px; }
.battle-rune-slot { display: grid; place-items: center; min-width: 0; min-height: 21px; padding: 0; background: #241a12; border: 1px solid #694c31; border-radius: 3px; color: #7d6247; font-size: .84rem; line-height: 1; }
.battle-rune-slot.has-rune { border-color: var(--rune-colour); color: var(--rune-colour); }
.battle-rune-slot:focus-visible,.battle-rune-slot:hover { border-color: #ddb17a; }

.room-npc-portrait { position:relative; display:block; }
.room-npc.is-quest-target { border-color:#c29653; background:#302318; }
.npc-quest-sign { position:absolute; top:2px; right:2px; width:18px; height:18px; display:grid; place-items:center; border-radius:50%; color:#211409; background:#f2c476; font:bold 13px/1 var(--sans); box-shadow:0 0 0 1px #442e1b; }
.room-objective { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:8px; padding:8px; border:1px solid #745434; }
.room-objective p { margin:3px 0 0; }
.quest-journal .quest-row.is-conversation-step { border-color:#c29653; }
.quest-journal .quest-objective .quest-step-done { color:#c6d4a6; }
/* A single scrollable toolbar keeps the controls on one line at narrow widths. */
.chat-drawer { --chat-text-size:12px; --chat-font:var(--sans); }
.chat-drawer[data-family="calibri"], [data-chat-family] option[value="calibri"] { --chat-font:Calibri,Carlito,"Segoe UI",system-ui,sans-serif; }
.chat-drawer[data-family="arial"], [data-chat-family] option[value="arial"] { --chat-font:Arial,"Liberation Sans",sans-serif; }
.chat-drawer[data-family="georgia"], [data-chat-family] option[value="georgia"] { --chat-font:Georgia,"DejaVu Serif",serif; }
.chat-drawer[data-family="times"], [data-chat-family] option[value="times"] { --chat-font:"Times New Roman","Liberation Serif",serif; }
.chat-drawer[data-family="courier"], [data-chat-family] option[value="courier"] { --chat-font:"Courier New","Liberation Mono",monospace; }
.chat-drawer .chat-line { padding:3px 5px; font:normal var(--chat-text-size)/1.35 var(--chat-font); }
.chat-drawer .chat-line .chat-message-line { line-height:inherit; }
.chat-drawer .chat-line blockquote { font-family:var(--chat-font); font-size:.88em; }
.chat-drawer [data-chat-compose] input { font-family:var(--chat-font); }
.chat-drawer .chat-toolbar { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:5px; }
.chat-toolbar-scroll { display:flex; align-items:center; flex-wrap:nowrap; overflow-x:auto; overscroll-behavior-inline:contain; scrollbar-width:thin; gap:6px; padding:3px 3px 4px; margin:-3px; }
.chat-toolbar-scroll > div { flex:none; display:flex; flex-wrap:nowrap; align-items:center; white-space:nowrap; gap:3px; overflow:visible; }
.chat-toolbar-scroll .chat-font-tools { gap:1px; padding-inline:5px; border-inline:1px solid #503926; }
.chat-drawer .chat-toolbar :is(button,select,input), .city-dock .city-dock-tools > button { min-height:30px; padding:3px 7px; font-size:.75rem; line-height:1.1; }
.chat-drawer .chat-toolbar [data-chat-family], .chat-drawer .chat-toolbar [data-chat-size] { background:#241910; color:#ead3b5; border:1px solid #795c40; border-radius:3px; }
.chat-drawer .chat-toolbar [data-chat-family] { width:clamp(7.8rem,14vw,10rem); font-family:var(--chat-font); }
[data-chat-family] option { font-family:var(--chat-font,var(--sans)); }
.chat-drawer .chat-toolbar [data-chat-size] { width:3.6rem; padding-inline:5px; }
.chat-toolbar [data-chat-size]::-webkit-inner-spin-button { appearance:none; }
.chat-drawer .chat-toolbar [data-chat-collapse] { width:30px; flex:none; }
.chat-drawer [data-chat-intent] { padding-block:2px; }
.chat-drawer [data-chat-intent] button { min-height:28px; padding:2px 5px; }
@media (pointer:coarse) {
  .chat-drawer .chat-toolbar :is(button,select,input),
  .city-dock .city-dock-tools > button { min-height:34px; }
  .chat-drawer .chat-toolbar [data-chat-size] { font-size:16px; }
}

.animal-grid { grid-template-columns:repeat(auto-fit,minmax(min(100%,205px),1fr)); grid-auto-rows:1fr; align-items:stretch; }
.animal-card { display:grid; grid-template-rows:auto auto 1fr auto auto; gap:5px; min-width:0; padding:clamp(9px,1.35vw,15px); }
.animal-card img { height:clamp(92px,12vw,138px); margin:0; }
.animal-card h3 { margin:0; font-size:clamp(1.15rem,2.1vw,1.54rem); }
.animal-perk { margin:0; font-size:.9rem; line-height:1.4; }
.animal-status { display:flex; align-items:center; min-height:2.4em; font-size:.79rem; }
.animal-status p { margin:0; }
.animal-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:5px; }
.animal-card .animal-actions .button { min-height:44px; height:100%; padding:5px 7px; margin:0; font-size:.79rem; line-height:1.25; }
.animal-actions > :only-child { grid-column:1/-1; }
.gear-service ul { max-height:16rem; overflow:auto; }
@media (max-width:600px) {
  .animal-grid { grid-template-columns:repeat(auto-fit,minmax(min(100%,145px),1fr)); }
  .animal-perk { font-size:.82rem; }
}

.trophy-gallery { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr)); gap:7px; }
.trophy-gallery details { border:1px solid #685036; background:#211912; border-radius:5px; padding:6px; }
.trophy-gallery summary { display:grid; grid-template-columns:56px 1fr; align-items:center; gap:9px; cursor:pointer; list-style:none; }
.trophy-gallery summary::-webkit-details-marker { display:none; }
.trophy-gallery details[open] { border-color:#b78a51; }
.trophy-gallery img { display:block; width:100%; height:auto; border-radius:3px; }
.trophy-gallery strong { display:block; color:#f0d9a9; overflow-wrap:anywhere; }
.trophy-gallery small,.profile-chronicle time { display:block; font-size:.75rem; color:#ccac83; }
.trophy-gallery p { margin:6px 1px 2px; font-size:.85rem; }
.profile-chronicle,.gear-service ul { list-style:none; margin:0; padding:0; }
.profile-chronicle li { border-left:1px solid #8b633e; display:grid; grid-template-columns:42px 1fr; align-items:start; gap:8px; padding:7px 9px; background:#241b14; }
.profile-chronicle li+li { border-top:1px solid #4d3726; }
.profile-chronicle strong { display:block; color:#f0d0a6; }
.profile-chronicle p { margin:2px 0 0; font-size:.88rem; }
.mentor-wallet { display:grid; gap:6px; padding:10px; border:1px solid #765234; background:#221910; margin:8px 0; }
.mentor-wallet > div:first-child { display:flex; align-items:center; justify-content:space-between; }
.mentor-wallet h3,.mentor-wallet p,.mentor-wallet ul { margin:0; }
.mentor-wallet summary,.gear-service summary { cursor:pointer; color:#ecd0a7; font-weight:700; }
.mentor-wallet > div:first-child b { color:#e6ba73; font-size:1.15rem; }
.mentor-name.button { min-height:28px; padding:2px 7px; }
.gear-service { margin-block:8px; }
.gear-service p { margin:6px 0; }
.gear-service li { display:grid; grid-template-columns:40px minmax(0,1fr) auto; align-items:center; gap:8px; border-top:1px solid #58422f; padding:5px 0; }
.gear-service li .item-art { width:38px; height:38px; object-fit:contain; }
.gear-service li small { display:block; color:#d1ab80; }
.quest-row-reward:has(img) { display:grid; grid-template-columns:34px minmax(0,1fr); align-items:center; gap:6px; }
.quest-prize { display:flex; align-items:center; gap:7px; font-weight:700; color:#efc685; }
.beast-entry { display:grid; grid-template-columns:clamp(110px,22%,240px) minmax(0,1fr); align-items:center; gap:clamp(10px,2vw,23px); margin:8px 0 13px; padding:8px; }
.beast-entry > img { display:block; width:100%; aspect-ratio:1; object-fit:cover; border:1px solid #8f6844; border-radius:4px; }
.beast-entry h2 { margin:0 0 5px; }
.beast-entry p { margin:4px 0 7px; }
.expedition-entry .actions { flex-wrap:wrap; }
.fight-model.creature-fight-art { object-fit:cover; border-radius:4px; }
[data-nearby-threats] { max-height:min(17dvh,176px); overflow:auto; }
.nearby-beast { display:grid; grid-template-columns:28px minmax(0,1fr); gap:5px; align-items:start; padding:5px 0; border-top:1px solid #513a29; font-size:.72rem; }
.nearby-beast small { display:block; color:#d7aa75; }
.nearby-beast button { min-height:25px; width:auto; color:#ffd1a0; text-decoration:underline; padding:2px 3px; }
.arena-board-aside .room-npcs:has(.room-npc:only-child) { grid-template-columns:1fr; }
@media (max-width:520px) {
  .beast-entry { grid-template-columns: minmax(0,1fr); }
  .beast-entry > img { max-height:165px; aspect-ratio:2; }
  .nearby-beast { grid-template-columns:1fr; }
  .nearby-beast > img { display:none; }
}

.quest-path { display:grid; grid-template-columns:56px minmax(0,1fr); gap:10px; align-items:start; padding:11px 13px; margin-block:8px 12px; }
.quest-path > img { max-width:100%; height:auto; border-radius:4px; }
.quest-path h2 { margin:0 0 5px; font-size:clamp(1.2rem,2vw,1.55rem); }
.quest-path p { margin:3px 0; }
.quest-path .actions { flex-wrap:wrap; margin-top:6px; }
.bag-workshop { margin-block:6px; }
#repair-workshop { scroll-margin-top:12px; }

.quest-objective blockquote {
  margin: .38rem 0;
  padding: .35rem .55rem;
  border-left: 2px solid #956244;
  background: #39251d66;
  color: #efdbbf;
  font-size: .87rem;
}
.quest-puzzle {
  display: grid;
  grid-template-columns: repeat(4,2.25rem);
  grid-auto-rows: 2.25rem;
  width: max-content;
  border: 2px solid #a27855;
  margin-bottom: .45rem;
}
.quest-puzzle > * {
  min-width: 0;
  padding: .1rem;
  display: grid;
  place-items: center;
  border: 1px solid #614532;
  background: #19130f;
  color: #f6ddbc;
  text-align: center;
  font: 700 .9rem var(--sans);
}
.quest-puzzle > span { background: #4c3326; }
.quest-puzzle > :nth-child(4n + 2) { border-right: 2px solid #a27855; }
.quest-puzzle > :nth-child(n + 5):nth-child(-n + 8) { border-bottom: 2px solid #a27855; }
.hunt-zone { display: grid; gap: .5rem; margin-block: 1rem; }
.hunt-zone h2,.hunt-zone .beast-entry { scroll-margin-top: 4rem; }
