:root {
    --paper: #f8f6ef;
    --panel: #fffdf7;
    --forest: #214e3e;
    --sand: #efe6d2;
    --sage: #e9efe2;
    --gold: #956628;
}
.planned-route { text-align: left; margin-top: 28px; padding: 20px 24px; background: var(--sand); border-radius: 12px; }
.planned-route small { color: var(--gold); }
.planned-route h3 { font: 24px Georgia, serif; margin: 5px 0; }
.planned-route p { margin: 0; }
.theme-switch {
    margin-left: auto;
    flex: none;
    background: var(--sand);
    border: 1px solid var(--gold);
    color: #263c31;
    border-radius: 9px;
    width: 38px;
    height: 38px;
    font-size: 22px;
    line-height: 1;
}
.travel-inner .site-shell { background: var(--paper); }
.travel-inner h1, .travel-inner h2, .travel-inner h3, .brand {
    font-family: Georgia, 'Times New Roman', serif;
    letter-spacing: -.025em;
}
.travel-inner .brand, .journal, .journal h1, .journal h2 { color: var(--forest); }
.journal { width: calc(100% - var(--page-gutter) * 2); margin-inline: auto; padding: 48px 0 72px; min-width: 0; }
.journal h1 { font-size: clamp(34px, 5vw, 56px); font-weight: 500; margin: 16px 0; }
.journal h2, .journal legend { font: 500 clamp(24px, 3vw, 32px)/1.13 Georgia, serif; margin: 18px 0 12px; }
.journal p, .journal ul { margin: 14px 0 20px; }
.journal li + li { margin-top: 9px; }
.journal a:not(.journal-action) { text-decoration: underline; text-underline-offset: 3px; }
.kicker, .journal small { display: block; font-size: 12px; }
.journal .kicker { margin: 24px 0 8px; text-transform: uppercase; font-weight: 750; letter-spacing: .06em; color: var(--gold); }
.journal-link { display: inline-block; border: 0; padding: 6px 0; color: var(--forest); background: transparent; text-decoration: underline; }
.journal-nav, .stop-progress, .saved-walk { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.stop-progress { font-size: 12px; font-weight: 700; }
.stop-progress span { text-align: right; font-weight: 400; }
.journal progress { width: 100%; height: 5px; accent-color: var(--forest); }
.journal-band, .journal-task, .journal-card, .walk-map, .journal-seal {
    border-radius: 16px; padding: clamp(18px, 3vw, 30px); margin: 22px 0;
}
.journal-band, .walk-map { background: var(--sand); }
.chapter-title { display: flex; gap: 24px; align-items: center; }
.chapter-title > span { font: 60px Georgia, serif; color: var(--gold); }
.journal-band h2, .journal-card h2 { margin: 0; }
.journal-card { border: 1px solid var(--line); background: var(--panel); }
.journal-card audio { display: block; width: 100%; }
.journal-task { background: var(--sage); }
.journal-task .kicker { margin-top: 0; }
.journal-task fieldset { min-width: 0; margin: 0; border: 0; padding: 0; }
.journal-task details { margin: 22px 0; }
.journal-task summary { cursor: pointer; font-weight: 700; }
.observation-choice, .journal textarea {
    display: block; padding: 13px; background: var(--panel); border: 1px solid var(--line);
    border-radius: 9px; margin: 6px 0; width: 100%; color: inherit;
}
.observation-choice { cursor: pointer; }
.journal input { accent-color: var(--forest); }
.journal-action {
    display: block; width: 100%; margin: 16px 0; padding: 15px 18px; text-align: left;
    border: 1px solid var(--forest); border-radius: 10px; background: var(--forest); color: var(--panel); font-weight: 700;
}
.journal-action.secondary { color: var(--forest); background: var(--panel); }
.journal-seal, .awards .earned { background: #24513f; color: white; }
.journal-seal { text-align: center; padding: 40px 20px; font: 32px Georgia,serif; }
.chapters { list-style: decimal-leading-zero; padding-left: 32px; }
.chapters li { border-bottom: 1px solid var(--line); padding: 10px 6px; }
.chapters li::marker { color: var(--gold); }
.chapters strong { font: 22px Georgia,serif; }
.walk-map { background-image: linear-gradient(#99896326 1px,transparent 1px),linear-gradient(90deg,#99896326 1px,transparent 1px); background-size: 38px 38px; }
.walk-map svg { width: 100%; height: 150px; }
.awards { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(185px,100%),1fr)); gap: 12px; margin: 24px 0 42px; }
.awards article, .saved-walk { border: 1px solid var(--line); border-radius: 12px; padding: 16px; margin-bottom: 8px; }
.awards small { display: block; }
[data-theme="dark"] {
    color-scheme: dark; --paper:#202923; --panel:#27352d; --forest:#d7e6d6; --sage:#2d4033;
    --sand:#39372d; --gold:#e7bb7b; --bg:#202923; --ink:#f5efe2; --text:#e4e3d9; --muted:#bac3b7; --white:#27352d; --line:#536054;
}
[data-theme="dark"] .theme-switch { color: var(--gold); }
[data-theme="dark"] :is(.travel-about,.travel-routes,.travel-sources,.auth-card,.filter-bar,.run-card,.play-card,.empty-state,.quest-card,.stats-grid > div) { background: var(--panel); color: var(--text); }
[data-theme="dark"] :is(.card-description,.card-body .eyebrow,.travel-about em,.nav a.active) { color: var(--gold); }
[data-theme="dark"] :is(.button-dark,.button-lime,.route-filters a[aria-current],.travel-pill:not(.ghost),.travel-pill:hover,.about-copy summary) { background: #eac299; color: #252c26; }
[data-theme="dark"] :is(input:not([type="radio"]):not([type="checkbox"]),select,textarea) { background: var(--panel); color: var(--text); }
[data-theme="dark"] .walk-map { color: #92c1a2; }
[data-theme="dark"] .site-footer { color: #e4e3d9; }
.auth-section { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(40px, 7vw, 120px); max-width: none; min-height: 640px; padding-block: 56px; }
.auth-aside { display: flex; background: var(--sand); border-radius: 20px; padding: clamp(32px, 4vw, 72px); }
.auth-decoration { display: none; }
.auth-card { width: 100%; max-width: 640px; justify-self: center; }
.auth-card { background: var(--panel); color: var(--text); }
.auth-card h2 { margin-top: 15px; color: var(--forest); }
.auth-card .button { background: #24513f; color: white; }
.auth-card input:not([type=checkbox]) { background: var(--paper); color: var(--text); }

.journal > p:not(.stop-progress) { max-width: 82ch; }
.observation-choice { display: flex; align-items: center; gap: 12px; }
.observation-choice input[type=radio] { flex: none; width: 18px; height: 18px; padding: 0; margin: 0; }
.journal h1, .journal h2, .journal p { overflow-wrap: anywhere; }
.journal-grid, .journal-play-grid { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(300px, .8fr); gap: clamp(32px, 5vw, 88px); align-items: start; margin-top: 32px; }
.journal-main, .journal-place, .journal-sidebar, .journal-interaction { min-width: 0; }
.journal-intro { padding-block: 16px 8px; border-bottom: 1px solid var(--line); }
.journal-intro h1 { max-width: 24ch; }
.journal-sidebar { position: sticky; top: 28px; padding: 28px; border: 1px solid var(--line); border-radius: 16px; background: var(--panel); }
.journal-sidebar > h2 { margin-top: 0; }
.journal-play-grid .chapter-title { margin-top: 0; }
.journal-interaction { position: sticky; top: 28px; }
.journal-interaction .journal-task { margin-top: 0; }
.journal-nav { flex-wrap: wrap; }
.journal-action { line-height: 1.5; }
.journal > .journal-action { width: fit-content; min-width: min(100%, 300px); }
.journal > .chapters { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 48px; }
.journal > .chapters li + li { margin-top: 0; }
.chapter-title > span { flex: none; }
.journal legend { max-width: 100%; line-height: 1.3; }
.walk-map svg { height: 220px; }
.journal-seal { margin-top: 32px; }
.auth-card input:not([type=checkbox]) { -webkit-text-fill-color: var(--text); }
.auth-card input:not([type=checkbox])::placeholder { -webkit-text-fill-color: var(--muted); color: var(--muted); }
@media (max-width: 1000px) {
    .journal-grid, .journal-play-grid { grid-template-columns: minmax(0, 1fr) minmax(280px, .85fr); gap: 32px; }
    .journal-sidebar { padding: 22px; }
    .auth-section { gap: 32px; }
}
@media (max-width: 800px) {
    .journal { padding-block: 32px 48px; }
    .journal-grid, .journal-play-grid { grid-template-columns: 1fr; gap: 24px; }
    .journal-sidebar, .journal-interaction { position: static; }
    .journal > .chapters { grid-template-columns: 1fr; gap: 12px; }
    .auth-section { grid-template-columns: 1fr; min-height: 0; padding-block: 36px 56px; }
    .auth-aside { display: none; }
    .auth-card { max-width: 600px; padding: 28px; }
    .walk-map svg { height: 160px; }
}
@media (max-width: 420px) {
    .journal-nav { align-items: flex-start; gap: 16px; }
    .journal h1 { font-size: 36px; overflow-wrap: anywhere; }
    .chapter-title { gap: 16px; }
    .chapter-title > span { font-size: 44px; }
    .journal h2, .journal legend { font-size: 26px; }
    .stop-progress { align-items: flex-start; }
    .auth-card { padding: 22px; }
}

.journal-route-cover { display: block; width: 100%; height: clamp(190px, 28vw, 390px); object-fit: cover; border-radius: 18px; margin-bottom: 24px; }

.cover-picker { display: grid; gap: 12px; }
.cover-picker .small-note { margin: 0; }
.cover-preview { display: block; width: 320px; max-width: 100%; height: 180px; object-fit: cover; border-radius: 12px; }
