/* User-supplied storybook artwork, reused without changing access or saved progress. */
.adventure-door{display:block;position:relative;width:100%;max-width:130px;aspect-ratio:300/440;flex-shrink:0;isolation:auto;mix-blend-mode:normal}
.door-art{display:block;width:100%;height:100%;overflow:hidden;mask-image:linear-gradient(to right,transparent,#000 3%,#000 97%,transparent),linear-gradient(to bottom,transparent,#000 2%,#000 98%,transparent);mask-composite:intersect}
.door-key{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.adventure-rail{max-width:1120px;padding:0 26px;margin:24px auto 30px;font-family:var(--serif)}.rail-heading{font-size:14px;margin-bottom:16px}.rail-heading>span{font-style:italic;color:#76613f}.rail-heading strong{font-size:12px;font-weight:400}.chapter-tiles{gap:12px;position:relative;isolation:isolate}.chapter-tiles:before{content:'';position:absolute;left:5%;right:5%;top:155px;border-top:1px dashed #ac945d60;z-index:-1}
.chapter-tile,.chapter-tile.completed{border:1px solid transparent;border-radius:70px 70px 9px 9px;background:transparent;color:#2F4A6D;padding:10px 5px 12px;gap:3px;min-width:0;transition:background .2s ease,border-color .2s ease}.chapter-tile .adventure-door{width:100%;max-width:125px;transition:transform .25s ease}.chapter-tile .chapter-day{font:11px/1.4 var(--serif);letter-spacing:.06em;color:#76613f;margin-bottom:0}.chapter-tile .chapter-name{font:14px/1.5 var(--serif);min-height:42px;display:flex;align-items:center;justify-content:center;word-break:keep-all}.chapter-tile .chapter-state{font:11px/1.5 var(--serif);display:flex;align-items:center;justify-content:center;gap:4px;color:#76613f;min-height:32px}.chapter-tile .chapter-state .paw{width:13px;height:14px;flex-shrink:0;color:#8b6b31}.chapter-tile.locked{border-color:#ad8b4833;background:#fff9ed6e}.chapter-tile.available{border-color:#ad8b484d;background:#fff9ed6e}.chapter-tile.completed{border-color:#ad8b4833}.chapter-tile[aria-current]{outline:none;border-color:#8d713d;background:#fff8eb;box-shadow:0 3px 12px #7256200c}.chapter-tile[aria-current] .chapter-day{font-weight:700;color:#2F4A6D}.chapter-tile:hover,.chapter-tile:focus-visible{background:#fff9ef;border-color:#b49b68}.chapter-tile.available:hover .adventure-door,.chapter-tile.available:focus-visible .adventure-door{transform:translateY(-3px)}.chapter-tile:focus-visible{outline:3px solid #946526;outline-offset:3px}.door-state-compact{display:none}
.destination-scene:has(.adventure-door){background:none;border-radius:0;height:191px}.destination-scene .adventure-door{width:130px}.destination-scene .destination-number{display:none}.is-earned .destination-scene .destination-number{display:grid;right:2px;bottom:1px;z-index:2}.destination a:focus-visible{outline:3px solid #946526;outline-offset:4px;border-radius:8px}
@media(max-width:600px){.adventure-rail{padding:0 12px;margin:14px auto 22px}.rail-heading{font-size:12px;margin-bottom:8px}.rail-heading strong{font-size:11px}.chapter-tiles{gap:4px}.chapter-tiles:before{top:75px;left:3%;right:3%}.chapter-tile,.chapter-tile.completed{padding:7px 0 6px;gap:2px;border-radius:24px 24px 5px 5px;min-height:118px}.chapter-tile .adventure-door{width:100%;max-width:57px}.chapter-tile .chapter-day{font-size:10px;letter-spacing:0;white-space:nowrap}.chapter-tile .chapter-name{display:none}.chapter-tile .chapter-state{font:9px/1.3 var(--serif);min-height:26px;padding:0 1px;gap:0;max-width:100%;word-break:keep-all}.chapter-tile .chapter-state .door-key,.chapter-tile .chapter-state .paw{display:none}.door-state-full{display:none}.door-state-compact{display:inline}.chapter-tile[aria-current]{outline-offset:1px}.destination-scene:has(.adventure-door){height:147px}.destination-scene .adventure-door{width:100px}}
@media(prefers-reduced-motion:reduce){.adventure-door,.adventure-door *,.chapter-tile{animation:none!important;transition:none!important}.chapter-tile:hover .adventure-door,.chapter-tile:focus-visible .adventure-door{transform:none}}

/* A brief reveal only after a newly verified key; ordinary visits are still. */
.adventure-door .door-reveal-cover{position:absolute;inset:0;z-index:1;pointer-events:none}
.door-unlock-pending>.door-art:not(.door-reveal-cover){opacity:0}
.door-unlocking>.door-art:not(.door-reveal-cover){animation:door-reveal-open 1s ease both}
.door-unlocking>.door-reveal-cover{animation:door-reveal-closed 1s ease both}
@keyframes door-reveal-open{0%,18%{opacity:0}100%{opacity:1}}
@keyframes door-reveal-closed{0%,18%{opacity:1}100%{opacity:0}}
@media(prefers-reduced-motion:reduce){.adventure-door .door-reveal-cover{display:none}.door-unlocking>.door-art,.door-unlock-pending>.door-art{animation:none!important;opacity:1}}

/* A decorative peek only: hover never changes a key, status, or destination. */
.adventure-door>.door-hover-preview{position:absolute;inset:0;opacity:0;pointer-events:none}
.door-waiting>.door-rest-art,.door-waiting>.door-hover-preview{transition:opacity .28s ease}
@media(hover:hover) and (pointer:fine){
 .chapter-tile:hover .door-waiting>.door-rest-art,.destination a:hover .door-waiting>.door-rest-art{opacity:0}
 .chapter-tile:hover .door-waiting>.door-hover-preview,.destination a:hover .door-waiting>.door-hover-preview{opacity:1}
}
.chapter-tile:focus-visible .door-waiting>.door-rest-art,.destination a:focus-visible .door-waiting>.door-rest-art{opacity:0}
.chapter-tile:focus-visible .door-waiting>.door-hover-preview,.destination a:focus-visible .door-waiting>.door-hover-preview{opacity:1}
@media(prefers-reduced-motion:reduce){.door-waiting>.door-rest-art,.door-waiting>.door-hover-preview{transition:none!important}}
