.adventures-root { width: 100%; max-width: 620px; margin: 0 auto; padding: 8px 0 24px; color: var(--text-color); }
.adventure-intro { font: 19px/1.4 Georgia, serif; margin: 4px 0 8px; }
.adventure-note, .adventure-fineprint, .adventure-save-note { color: var(--text-muted); font-size: 13px; line-height: 1.6; }
.adventure-note { margin: 0 0 22px; }
.adventure-fineprint { margin: 16px 2px; font-size: 12px; }
.adventure-card { padding: 0; width: 100%; display: block; text-align: left; color: var(--text-color); background: var(--card-bg); border: 1px solid var(--card-border); border-radius: 14px; overflow: hidden; cursor: pointer; }
.adventure-card-image { display: block; width: 100%; height: auto; aspect-ratio: 2 / 1; object-fit: cover; object-position: center; }
.adventure-card-body { display: flex; flex-direction: column; gap: 12px; padding: 22px; }
.adventure-eyebrow { color: var(--gold-ink); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; }
.adventure-card-title { font: bold 25px/1.2 Georgia, serif; }
.adventure-card-desc { color: var(--text-muted); font-size: 14px; line-height: 1.65; }
.adventure-card-meta { display: flex; flex-wrap: wrap; gap: 10px 20px; font-size: 12px; padding: 4px 0; }
.adventure-card-meta > span { display: inline-flex; align-items: center; gap: 5px; }
.adventures-root .ic { width: 17px; height: 17px; vertical-align: middle; flex-shrink: 0; }
.adventure-card-action { border-top: 1px solid var(--card-border); padding-top: 14px; color: var(--gold-ink); display: flex; justify-content: space-between; align-items: center; font-size: 13px; }
.adventure-card-action > span { font-size: 21px; }
.adventure-reader { padding: 0; }
.adventure-chapter { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; color: var(--text-muted); font-size: 11px; line-height: 1.5; }
.adventure-chapter > span:last-child { white-space: nowrap; color: var(--gold-ink); }
.adventure-dots { display: flex; gap: 5px; margin: 12px 0 16px; }
.adventure-dot { height: 2px; background: var(--card-border); flex: 1; }
.adventure-dot.is-read { background: var(--gold); }
.adventure-scene-art { position: relative; margin: 0; border: 1px solid var(--card-border); border-radius: 12px 12px 0 0; overflow: hidden; }
.adventure-scene-art img { display: block; width: 100%; height: auto; aspect-ratio: 2 / 1; object-fit: cover; object-position: center; }
.adventure-scene-art::after { content: ''; position: absolute; inset: 0; background: linear-gradient(transparent 35%, rgba(20, 15, 11, .85)); pointer-events: none; }
.adventure-scene-art figcaption { position: absolute; left: 18px; bottom: 14px; right: 18px; color: #e3d4b8; font-size: 11px; letter-spacing: .04em; z-index: 1; }
.adventure-story { padding: 20px 18px 4px; border: 1px solid var(--card-border); border-top: 0; border-radius: 0 0 12px 12px; background: var(--card-bg); }
.adventure-scene-title { margin: 0 0 13px; font: bold 23px/1.3 Georgia, serif; scroll-margin-top: 20px; }
.adventure-narration { margin: 0; font-size: 14px; line-height: 1.8; }
.adventure-narration + .adventure-narration { margin-top: 12px; }
.adventure-dialogue { margin: 18px 0; padding: 14px 16px; border-left: 2px solid var(--gold); background: var(--surface-1); }
.adventure-dialogue cite { display: block; color: var(--gold-ink); font-size: 11px; font-style: normal; margin-bottom: 7px; }
.adventure-dialogue p { margin: 0; font: 15px/1.7 Georgia, serif; }
.adventure-prompt { margin: 22px 0 10px; font-size: 11px; color: var(--text-muted); letter-spacing: .07em; text-transform: uppercase; }
.adventure-choices { display: flex; flex-direction: column; gap: 9px; }
.adventure-choice { display: flex; align-items: center; gap: 11px; width: 100%; min-height: 64px; padding: 13px 12px; text-align: left; border: 1px solid var(--card-border); border-radius: 8px; background: var(--card-bg-2); color: var(--text-color); cursor: pointer; font: inherit; font-size: 13px; line-height: 1.55; }
.adventure-choice-number { font: 13px Georgia, serif; color: var(--text-muted); flex: 0 0 15px; }
.adventure-choice-body { flex: 1; }
.adventure-choice-arrow { color: var(--gold-ink); font-size: 22px; }
.adventure-choice.has-trait { border-color: #839b64; background: linear-gradient(90deg, rgba(116, 147, 76, .15), transparent), var(--card-bg-2); }
.adventure-choice[data-trait="anxious"] { border-color: #b39b71; background: linear-gradient(90deg, rgba(179, 155, 113, .16), transparent), var(--card-bg-2); }
.adventure-choice[data-trait="meek"], .adventure-choice[data-trait="sensitive"] { border-color: #c18b73; background: linear-gradient(90deg, rgba(193, 139, 115, .15), transparent), var(--card-bg-2); }
.adventure-trait { display: block; color: var(--gold-ink); font-size: 10px; line-height: 1.5; margin-bottom: 5px; }
.adventure-save-note { text-align: center; margin: 16px 0 6px; font-size: 11px; }
.adventure-leave { display: block; margin: 0 auto 12px; background: none; color: var(--text-muted); border: 0; min-height: 44px; text-decoration: underline; text-underline-offset: 4px; cursor: pointer; font-size: 12px; }
.adventure-result > .adventure-resolution { margin: 14px 0; font: 15px/1.7 Georgia, serif; color: var(--text-color); }
.adventure-reward { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 22px 0; padding: 18px; border: 1px solid var(--gold); border-radius: 8px; color: var(--gold-ink); }
.adventure-reward span { flex-basis: 100%; font-size: 11px; color: var(--text-muted); }
.adventure-history { margin: 20px 0; color: var(--text-muted); font-size: 12px; line-height: 1.7; }
.adventure-history summary { min-height: 32px; cursor: pointer; color: var(--text-color); }
.adventure-history ol { padding-left: 22px; }
.adventure-history li { margin-bottom: 9px; }
.adventure-ending-actions { display: flex; flex-direction: column; gap: 10px; }
.adventure-primary, .adventure-secondary { min-height: 48px; padding: 12px 16px; border: 1px solid var(--card-border); border-radius: 8px; color: var(--text-color); background: var(--card-bg-2); cursor: pointer; font-size: 13px; }
.adventure-primary { border-color: var(--gold); color: var(--gold-ink); }
.adventure-error { color: var(--text-color); padding: 14px; border: 1px solid #b8765c; border-radius: 8px; background: var(--card-bg); font-size: 13px; line-height: 1.6; }
.adventures-root button:disabled { opacity: .55; cursor: wait; }
.adventures-root button:focus-visible, .adventure-history summary:focus-visible { outline: 2px solid var(--gold-ink); outline-offset: 3px; }
@media (hover: hover) { .adventure-choice:not(:disabled):hover, .adventure-card:not(:disabled):hover { border-color: var(--gold); } }
@media (max-width: 380px) { .adventure-story { padding: 17px 12px 4px; } .adventure-card-body { padding: 18px; } .adventure-narration { font-size: 13px; } }

.adventure-npc-name { color: var(--npc-color); font-weight: 600; }
.adventure-dialogue { border-left-color: var(--npc-color, var(--gold)); }
.adventure-dialogue-person { display: flex; align-items: center; gap: 14px; margin-bottom: 14px; }
.adventure-portrait { display: block; flex: 0 0 88px; width: 88px; height: 88px; object-fit: contain; border-radius: 10px; border: 1px solid var(--card-border); }
.adventure-dialogue-person cite { margin: 0; font-size: 16px; line-height: 1.4; }
.adventure-npc-role { display: block; margin-top: 5px; font-size: 11px; line-height: 1.5; color: var(--text-muted); }
:root[data-theme="light"] .adventure-npc-name { color: var(--npc-color-light); }
:root[data-theme="light"] .adventure-dialogue { border-left-color: var(--npc-color-light, var(--gold)); }
.adventure-result { margin: 20px 0; padding: 18px 14px; border: 1px solid var(--gold); border-radius: 10px; background: var(--surface-1); }
.adventure-result > p { margin: 10px 0; font-size: 13px; line-height: 1.65; }
.adventure-result > .adventure-eyebrow { margin-top: 0; font-size: 10px; }
.adventure-result-heading { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px; }
.adventure-result-heading h4 { margin: 0; font: bold 24px/1.3 Georgia, serif; }
.adventure-result-stars { display: flex; gap: 5px; font-size: 23px; color: var(--text-muted); }
.adventure-result-stars > span:not(.is-earned) { opacity: .3; }
.adventure-result-stars .is-earned { color: var(--gold-ink); }
.adventure-result-focus { color: var(--text-muted); }
.adventure-aspects { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; margin: 16px 0; }
.adventure-aspects > div { min-width: 0; padding: 10px 3px; text-align: center; border: 1px solid var(--card-border); border-radius: 6px; }
.adventure-aspects > .is-focus { border-color: var(--gold); background: var(--card-bg); }
.adventure-aspects dt { font-size: 10px; line-height: 1.5; color: var(--text-muted); overflow-wrap: anywhere; }
.adventure-aspects dd { margin: 4px 0 0; font: bold 21px/1.2 Georgia, serif; color: var(--gold-ink); }
.adventure-rating-help { font-size: 11px; line-height: 1.7; color: var(--text-muted); }
.adventure-rating-help summary { cursor: pointer; min-height: 32px; }
.adventure-rating-help summary:focus-visible { outline: 2px solid var(--gold-ink); outline-offset: 3px; }
@media (max-width: 380px) { .adventure-portrait { flex-basis: 72px; width: 72px; height: 72px; } .adventure-dialogue-person { gap: 10px; } }
.adventure-choice-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 18px; }
.adventure-choice-heading .adventure-prompt { margin: 0; }
.adventure-hint-button { min-height: 44px; padding: 8px 0 8px 12px; border: 0; background: none; color: var(--gold-ink); font: inherit; font-size: 12px; cursor: pointer; }
.adventure-hint-dialog { position: fixed; inset: 0; margin: auto; width: min(360px, calc(100vw - 40px)); max-height: calc(100dvh - 48px); overflow-y: auto; box-sizing: border-box; padding: 24px; border: 1px solid var(--gold); border-radius: 12px; background: var(--card-bg); color: var(--text-color); }
.adventure-hint-dialog::backdrop { background: rgba(0, 0, 0, .65); }
.adventure-hint-dialog h3 { margin: 0 0 14px; font: bold 23px/1.3 Georgia, serif; }
.adventure-hint-dialog p { margin: 0 0 20px; font-size: 15px; line-height: 1.7; }
.adventure-hint-dialog button { width: 100%; }

/* Закрытая история: видно, что она есть и чего ей не хватает. */
.adventure-card.is-locked { cursor: default; }
.adventure-card.is-locked .adventure-card-image { filter: grayscale(.75) brightness(.6); }
.adventure-card.is-locked .adventure-card-action { color: var(--text-muted); font-size: 12px; line-height: 1.5; }
.adventure-result > .adventure-resolution + .adventure-resolution { margin-top: -4px; }
/* Герб Дома игрока поверх картинки. Знак на металле и дереве лежит под затемнением кадра, как часть рисунка. */
.adventure-crest-mark { position: absolute; transform: translate(-50%, -50%); aspect-ratio: 1; pointer-events: none; }
.adventure-crest-mark.is-emblem { color: #5a3c17; opacity: .9; mix-blend-mode: multiply; }
.adventure-crest-mark.is-emblem svg { display: block; width: 100%; height: 100%; }
.adventure-crest-mark.is-worn { opacity: .62; filter: blur(.4px) sepia(.35); }
.adventure-crest-badge { position: absolute; top: 10px; right: 10px; z-index: 1; display: inline-flex; align-items: center; gap: 6px; max-width: calc(100% - 20px); padding: 4px 10px 4px 5px; border-radius: 999px; background: rgba(20, 15, 11, .72); color: #e3d4b8; font-size: 11px; line-height: 1.3; }
.adventure-crest-badge .crest { flex: 0 0 24px; width: 24px; }
