.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.album-views { gap: 16px; align-items: center; }
.album-filter-bar { margin-left: auto; }
.album-filter-bar select { min-height: 32px; width: 86px; max-width: 100%; padding: 3px 6px; border: 1px solid #abb69c; border-radius: 3px; background: #f7f5ec; color: #314d3b; font: inherit; font-size: 12px; }
.home-collection-goal { display: grid; min-width: 0; gap: 2px; padding: 0; border: 0; background: transparent; text-align: left; color: inherit; cursor: pointer; }
.home-collection-goal b { overflow-wrap: anywhere; font-size: 12px; }
.home-collection-goal small { color: #55715a; }
.home-collection-goal em { font-style: normal; }
.home-collection-goal:focus-visible { outline: 2px solid #9d593a; outline-offset: 2px; }
#approachQuickBtn { min-height: 26px; padding: 0 2px; border: 0; background: transparent; color: #4d6549; cursor: pointer; }
.commission-entry.is-goal-related { border-left: 3px solid #528052; }
.experience-dialog { width: min(500px, calc(100% - 24px)); max-height: calc(100dvh - 24px); overflow-y: auto; padding: 18px; border: 1px solid #8da082; border-radius: 6px; color: #253d2d; background: #f5f5eb; box-shadow: 0 24px 70px #15291e66; }
.experience-dialog::backdrop { background: #12251ec4; backdrop-filter: blur(3px); }
.experience-dialog header { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.experience-dialog h2 { margin: 0; font-size: 21px; }
.experience-dialog h3 { font-size: 15px; }
.dialog-close { width: 38px; height: 38px; flex-shrink: 0; border: 1px solid #a0af93; border-radius: 50%; background: transparent; color: #456139; font-size: 24px; }
.experience-field, .experience-toggle { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 46px; font-size: 14px; border-bottom: 1px solid #d3daca; }
.experience-field select { min-width: 0; max-width: 70%; height: 36px; font: inherit; color: inherit; border: 1px solid #a3b19b; background: #fffdf6; border-radius: 3px; }
.experience-toggle input { width: 21px; height: 21px; accent-color: #356046; }
.approach-options { border: 0; margin: 18px 0 0; padding: 0; }
.approach-options legend { font-weight: 700; }
#approachOptions label { display: flex; gap: 10px; align-items: start; padding: 12px 0; border-bottom: 1px solid #d3daca; cursor: pointer; }
#approachOptions input { margin-top: 3px; accent-color: #356046; }
#approachOptions span { display: grid; gap: 4px; }
#approachOptions small { font-size: 12px; line-height: 1.5; color: #68735d; }
#approachOptions label:has(input:disabled) { opacity: 0.55; }
#collectionGoalDetail p { margin: 8px 0; line-height: 1.6; overflow-wrap: anywhere; font-size: 14px; }
#collectionGoalDialog[open] {
  display: flex; flex-direction: column;
  height: min(720px, calc(100dvh - 24px - env(safe-area-inset-top) - env(safe-area-inset-bottom)));
  overflow: hidden;
}
#collectionGoalDialog > header, #collectionGoalDialog > .growth-goal-tabs { flex-shrink: 0; }
#collectionGoalDialog > [role="tabpanel"] {
  flex: 1 1 auto; min-height: 0; min-width: 0; overflow-y: auto;
  overscroll-behavior: contain; -webkit-overflow-scrolling: touch;
}
#collectionGoalDialog > #growthSetPane:not([hidden]) { display: flex; flex-direction: column; overflow: hidden; }
#growthSetPane > .experience-field, #growthSetPane > .goal-links { flex-shrink: 0; }
#growthSetPane > .experience-field { margin: 0; }
#collectionGoalDetail {
  flex: 1 1 auto; min-height: 0; min-width: 0; overflow-y: auto;
  overscroll-behavior: contain; -webkit-overflow-scrolling: touch; padding-inline: 2px;
}
#collectionGoalDetail:focus-visible { outline: 2px solid #557650; outline-offset: -2px; }
#growthSetPane > .goal-links { padding-top: 10px; border-top: 1px solid #d3daca; }
.goal-missing-coins {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 12px; list-style: none; padding: 0; margin: 0 0 12px;
}
.goal-missing-coins li { min-width: 0; padding: 8px 0; border-bottom: 1px solid #d3daca; font-size: 13px; line-height: 1.6; overflow-wrap: anywhere; }
.goal-links { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.goal-links button, #reliefBtn { min-height: 42px; padding: 6px 12px; border: 1px solid #557650; border-radius: 4px; background: #345c42; color: #fffef3; font: inherit; font-size: 13px; cursor: pointer; }
.goal-links button:disabled, #reliefBtn:disabled { opacity: 0.5; cursor: default; }
.relief-section { border-top: 1px solid #c8d1be; }
.restart-setting { min-height: 36px; margin-top: 16px; padding: 4px 10px; border: 1px solid #a46354; border-radius: 4px; background: transparent; color: #963c2c; }
.restart-confirm { max-width: 420px; }
.restart-confirm p { font-size: 14px; line-height: 1.7; overflow-wrap: anywhere; }
.restart-confirm strong { color: #963c2c; }
.restart-confirm .restart-account-note { color: #657267; font-size: 12px; }
.restart-confirm-actions { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: 12px; margin-top: 20px; }
.restart-confirm-actions button { min-width: 0; min-height: 48px; padding: 10px; border: 1px solid #9da99c; border-radius: 4px; background: #fff; color: #314d3b; font: inherit; font-size: 14px; cursor: pointer; }
#restartConfirmBtn { background: #963c2c; border-color: #963c2c; color: #fff; font-weight: 700; }
.restart-confirm-actions button:focus-visible { outline: 2px solid #314d3b; outline-offset: 3px; }
#restartConfirmBtn:disabled { opacity: 0.55; cursor: default; }
#reloadGameBtn { min-height: 42px; border: 1px solid #426a4c; padding: 8px 12px; background: #345c42; color: white; border-radius: 4px; }
.relief-section p, #approachNotice { font-size: 12px; line-height: 1.6; color: #68735d; }
.collection-toast { position: fixed; z-index: 90; bottom: max(18px, env(safe-area-inset-bottom)); left: 50%; transform: translateX(-50%); max-width: calc(100% - 32px); width: max-content; padding: 10px 18px; border: 1px solid #739267; border-radius: 4px; background: #244631; color: #fffcea; box-shadow: 0 5px 18px #14291940; font-size: 13px; pointer-events: none; }
.collection-toast.is-milestone { border-color: #bf9a4e; color: #f4dda0; }
.coin-sources { font-size: 12px; line-height: 1.6; color: #5a6a50; }
.coin-sources p { margin: 8px 0; }
.coin-lettering { position: absolute; inset: 0; color: #4a5330; font-size: 9px; line-height: 1; font-family: "Songti SC", "STSong", serif; }
.coin-lettering b { position: absolute; font-weight: 700; }
.letters-4 b:nth-child(1) { top: 7%; left: 50%; transform: translateX(-50%); }
.letters-4 b:nth-child(2) { bottom: 7%; left: 50%; transform: translateX(-50%); }
.letters-4 b:nth-child(3) { right: 6%; top: 50%; transform: translateY(-50%); }
.letters-4 b:nth-child(4) { left: 6%; top: 50%; transform: translateY(-50%); }
.letters-2 b:nth-child(1) { right: 6%; top: 50%; transform: translateY(-50%); }
.letters-2 b:nth-child(2) { left: 6%; top: 50%; transform: translateY(-50%); }
.album-coin-relief::before, .album-coin-relief::after { display: none; }
.is-missing .coin-lettering { opacity: 0.5; }
.is-collected .album-coin-relief[data-material="patina"] { background: #88a17e; border-color: #526c4b; box-shadow: inset 0 0 0 4px #97ad83, inset 0 0 0 5px #465f43; }
.is-collected .album-coin-relief[data-material="iron"] { background: #969993; border-color: #575d54; box-shadow: inset 0 0 0 4px #b0b1a4, inset 0 0 0 5px #52574d; }
.album-coin-relief[data-shape="thin"] { border-width: 1px; }
.album-coin-relief[data-shape="large"] { border-width: 4px; }
#albumCoinContent .coin-lettering { font-size: 19px; }
.reduce-motion *, .reduce-motion *::before, .reduce-motion *::after { animation-duration: 0.001ms !important; animation-iteration-count: 1 !important; transition-duration: 0.001ms !important; scroll-behavior: auto !important; }
.story-card.has-result #resultText { overflow-wrap: anywhere; }
.journey-actions { grid-column: 1 / -1; width: 100%; min-width: 0; padding: 8px 0; border-top: 1px solid #c8d1be; }
.home-approach { display: grid; grid-template-columns: 64px minmax(0, 1fr); align-items: center; gap: 8px; }
.home-approach > strong, .home-relief h3 { margin: 0; font-size: 13px; color: #34564e; }
.journey-actions #approachOptions { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); background: #edf0ea; border: 1px solid #b6c5bc; border-radius: 4px; }
.journey-actions #approachOptions label { position: relative; display: flex; align-items: center; justify-content: center; min-height: 44px; padding: 0 4px; border: 0; border-right: 1px solid #b6c5bc; color: #426158; }
.journey-actions #approachOptions label:last-child { border-right: 0; }
.journey-actions #approachOptions label:has(input:checked) { background: #345e51; color: #fff; }
.journey-actions #approachOptions label:has(input:focus-visible) { outline: 2px solid #a14534; outline-offset: 2px; }
.journey-actions #approachOptions label:has(input:disabled) { opacity: .55; cursor: not-allowed; }
.journey-actions #approachOptions input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.journey-actions #approachOptions strong { font-size: 13px; }
.journey-actions #approachOptions small { display: none; }
.journey-actions #approachNotice { margin: 5px 0 7px; font-size: 11px; line-height: 1.5; }
.home-relief { padding-top: 6px; }
.home-relief-heading { display: grid; grid-template-columns: 52px minmax(0, 1fr) 116px; align-items: center; gap: 8px; }
.home-relief h3 { color: #984934; }
.home-relief #reliefCount { color: #6b6154; font-size: 12px; white-space: nowrap; }
.home-relief #reliefBtn { margin: 0; min-height: 44px; padding: 6px 8px; border: 1px solid #a65740; border-radius: 4px; background: #a04b37; color: #fff; font-size: 13px; line-height: 1.4; }
.home-relief #reliefBtn:disabled { opacity: 1; background: #e9eae3; color: #72786e; border-color: #c6cabe; }
.home-relief #reliefDescription { margin: 4px 0 0; font-size: 11px; line-height: 1.5; }
.home-relief #reliefNotice { margin: 5px 0 0; color: #345e51; font-weight: 700; }
.home-relief #reliefNotice:empty { display: none; }
@media (min-width: 821px) and (min-height: 501px) {
  .journey-actions { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: 24px; }
  .home-approach { grid-column: 1; grid-row: 1; }
  .journey-actions #approachNotice { grid-column: 1; grid-row: 2; }
  .home-relief { grid-column: 2; grid-row: 1 / 3; padding: 0 0 0 24px; border-top: 0; border-left: 1px solid #c8d1be; }
}
@media (max-width: 600px) {
  .album-views { gap: 10px; }
  .album-views button { font-size: 12px; }
  .album-filter-bar select { width: 75px; font-size: 11px; }
  .home-collection-goal b { font-size: 10px; }
  .home-collection-goal em { display: none; }
  .coin-lettering { font-size: 7px; }
}
@media (max-width: 600px) and (max-height: 640px) {
  #albumList .coin-lettering { display: none; }
  .home-overview { gap: 2px; padding-bottom: 2px; }
  .home-statuses { padding: 1px 5px; }
  .home-statuses li { padding-block: 0; }
  .progression-summary { padding-top: 3px; }
  .journey-strip { margin-top: 2px; }
  .journey-strip button { min-height: 24px; }
  .choices { gap: 4px; }
  .choices button { min-height: 44px; padding: 5px 6px; }
  .choice-title { font-size: 12px; line-height: 1.2; }
  .choice-hint { font-size: 10px; line-height: 1.2; }
  .choice-area { padding-top: 2px; }
  .choice-caption { padding-block: 0; margin-bottom: 2px; }
  #approachQuickBtn { min-height: 20px; }
  .story-card, .story-card.has-result { grid-template-rows: 48px minmax(0, 1fr); }
}
