/* Reading planes stay flat. Only stepping stones and controls have clay depth.
   The original garden artwork owns the scenery; no generated progress is drawn. */
.adventure { --adventure-cream:#F8F5EC; --adventure-sage:#C6D6B8; --adventure-butter:#F2D976; --adventure-ink:#254C42; --adventure-muted:#526052; --adventure-mint:#356C56; margin:0 auto; width:100%; max-width:1160px; color:var(--adventure-ink); padding:22px 0 34px; }
.adventure *, .adventure *::before, .adventure *::after { box-sizing:border-box; }
.adventure h1, .adventure h2, .adventure p { margin:0; }
.adventure button { font:inherit; cursor:pointer; touch-action:manipulation; }
.adventure :focus-visible { outline:3px solid var(--adventure-ink); outline-offset:4px; }
.adventure h1:focus-visible { outline:none; }
.adventure-intro { position:relative; padding:4px 0 24px; }
.adventure-eyebrow { font-size:13px; font-weight:700; letter-spacing:.025em; color:var(--adventure-mint); }
.adventure h1 { font-size:clamp(26px,3vw,34px); line-height:1.35; letter-spacing:-.045em; margin:6px 0 8px; }
.adventure-range { font-size:14px; color:var(--adventure-muted); line-height:1.7; }
.adventure-learner { position:absolute; right:0; bottom:26px; max-width:40%; overflow-wrap:anywhere; padding:8px 14px; background:#E8EDD9; border:1px solid #CCD8BD; border-radius:99px; font-size:14px; font-weight:700; }
.adventure-layout { display:grid; grid-template-columns:minmax(540px,1.8fr) minmax(300px,1fr); grid-template-areas:'map missions' 'map stickers' 'stats cheer'; gap:18px; align-items:stretch; }
.adventure-card { min-width:0; background:var(--adventure-cream); border:1px solid #DDDCCE; border-radius:26px; padding:24px; box-shadow:0 4px 12px #254C4208; }
.adventure h2 { font-size:18px; line-height:1.5; letter-spacing:-.035em; }
.adventure-card-heading { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:8px; }
.adventure-counter { background:#E4EBCF; color:var(--adventure-ink); border:1px solid #CDD8BC; border-radius:99px; padding:5px 10px; font-size:13px; font-weight:700; white-space:nowrap; }
.adventure-description { color:var(--adventure-muted); font-size:14px; line-height:1.7; padding-top:8px; }
.adventure-map { grid-area:map; }
.adventure-trail { position:relative; isolation:isolate; aspect-ratio:1; max-width:680px; margin:8px auto 14px; }
.adventure-trail-art { position:absolute; inset:0; z-index:-1; border-radius:28px; background:url('assets/clay-garden-desktop.webp') center/cover no-repeat; pointer-events:none; }
.adventure-day { position:absolute; transform:translate(-50%,-50%); display:flex; flex-direction:column; align-items:center; width:78px; min-height:106px; padding:0; border:0; border-radius:12px; background:transparent; color:var(--adventure-ink); text-align:center; line-height:1.4; appearance:none; }
.adventure-day-stone { position:relative; display:grid; place-items:center; width:72px; height:66px; flex-shrink:0; border:1px solid #D2D6C5; border-radius:48% 52% 44% 56% / 50% 45% 55% 50%; background:radial-gradient(ellipse at 24% 15%,#FFFFFFB3,transparent 64%),#EDEEE1; box-shadow:inset 1px 2px 2px #FFFFFF8C,0 4px 0 #D8DDCD,3px 7px 10px #254C4216; }
.adventure-day-shape-2 .adventure-day-stone { border-radius:54% 46% 52% 48% / 46% 49% 51% 54%; }
.adventure-day-shape-3 .adventure-day-stone { border-radius:45% 55% 48% 52% / 53% 45% 55% 47%; }
.adventure-day strong { display:block; font-size:25px; font-weight:800; line-height:1; }
.adventure-day-date { display:block; max-width:100%; margin-top:8px; padding:1px 7px; border-radius:8px; background:transparent; font-size:14px; font-weight:700; white-space:nowrap; }
.adventure-day-status { display:block; max-width:100%; padding:0 5px; border-radius:6px; background:transparent; color:var(--adventure-muted); font-size:12px; line-height:1.45; white-space:nowrap; }
.adventure-day.is-future .adventure-day-stone { border-color:#D4D8CA; background:radial-gradient(ellipse at 24% 15%,#FFFFFF9C,transparent 64%),#E9EBE0; box-shadow:inset 1px 2px 2px #FFFFFF8C,0 3px 0 #D8DDCF,2px 5px 8px #254C4210; }
.adventure-day.is-studied .adventure-day-stone { border-color:#AEBE9D; background:radial-gradient(ellipse at 24% 15%,#EFF5E8C7,transparent 64%),var(--adventure-sage); box-shadow:inset 1px 2px 2px #FFFFFF8C,0 4px 0 #A6BB98,3px 7px 10px #254C421C; }
.adventure-day.is-studied .adventure-day-status { color:var(--adventure-ink); font-weight:700; }
.adventure-day-mark { position:absolute; top:-2px; right:-2px; display:grid; place-items:center; width:22px; height:22px; border:2px solid var(--adventure-cream); border-radius:50%; background:var(--adventure-ink); color:#FFFDF6; font-size:13px; font-weight:800; line-height:1; }
.adventure-day.is-today { z-index:1; width:92px; min-height:116px; }
.adventure-day.is-today .adventure-day-stone { width:84px; height:76px; border:1px solid #DBC35F; background:radial-gradient(ellipse at 23% 14%,#FFF4BFC7,transparent 64%),var(--adventure-butter); box-shadow:inset 1px 2px 2px #FFFBE5B3,0 5px 0 #D5B85A,4px 9px 13px #5A4D2726; }
.adventure-day.is-today strong { font-size:29px; }
.adventure-day.is-today .adventure-day-status { color:var(--adventure-ink); font-weight:700; }
.adventure-day.is-today:hover .adventure-day-stone { box-shadow:inset 1px 2px 2px #FFFBE5B3,0 5px 0 #D5B85A,4px 10px 15px #5A4D2733; }
.adventure-day.is-today:active .adventure-day-stone { transform:translateY(2px); box-shadow:inset 1px 2px 2px #FFFBE5B3,0 3px 0 #D5B85A,2px 5px 8px #5A4D2726; }
.adventure-day.is-today:focus-visible { outline:none; }
.adventure-day.is-today:focus-visible .adventure-day-stone { outline:3px solid var(--adventure-ink); outline-offset:4px; }
.adventure-day-ddori { display:block; position:absolute; left:calc(100% - 2px); top:4px; width:44px; height:62px; background-size:contain; background-position:center bottom; background-repeat:no-repeat; pointer-events:none; animation:none!important; transform:none!important; }
.adventure-day.is-today-right .adventure-day-ddori { left:auto; right:calc(100% - 2px); }
.adventure-day.is-today-start .adventure-day-ddori { top:52px; }
.adventure-map-note { border-top:1px solid #DCDCCD; padding-top:14px; font-size:14px; line-height:1.7; color:var(--adventure-muted); }
.adventure-missions { grid-area:missions; }
.adventure-progress { height:9px; border:1px solid #CCD3BE; border-radius:99px; background:#E3E6D7; box-shadow:inset 1px 2px 2px #52605214; margin:14px 0 20px; overflow:hidden; }
.adventure-progress span { display:block; height:100%; border-radius:inherit; background:#77966A; }
.adventure-mission-list { display:grid; gap:13px; }
.adventure-mission { width:100%; min-height:44px; text-align:left; display:flex; gap:11px; padding:15px 14px; border:1px solid #DDDCCC; border-radius:20px; background:#FFFCF4; color:var(--adventure-ink); line-height:1.5; box-shadow:inset 1px 2px 1px #FFFFFFB3,0 3px 0 #E2E1D2,2px 5px 7px #254C4208; }
.adventure-mission:hover { border-color:#B6C6A6; background:#FFFDF7; }
.adventure-mission:active { box-shadow:inset 1px 2px 1px #FFFFFFB3,0 1px 0 #E2E1D2; transform:translateY(2px); }
.adventure-mission.is-complete { border-color:#B7CAA6; background:#EAF0DC; box-shadow:inset 1px 2px 1px #F9FCECB3,0 3px 0 #CCD9BB,2px 5px 7px #254C420A; }
.adventure-mission-number { display:grid; place-items:center; align-self:flex-start; min-width:25px; height:25px; border:1px solid #D1DCC0; border-radius:50%; background:#E8EDDC; color:var(--adventure-mint); font-size:12px; font-weight:700; }
.adventure-mission-copy { display:flex; flex:1; min-width:0; flex-direction:column; gap:5px; }
.adventure-mission strong { font-size:16px; font-weight:700; word-break:keep-all; }
.adventure-mission small { font-size:14px; font-weight:400; color:var(--adventure-muted); word-break:keep-all; }
.adventure-mission-status { font-size:12px; font-weight:700; color:var(--adventure-mint); }
.adventure-stickers { grid-area:stickers; }
.adventure-sticker-row { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:5px; margin-top:18px; }
.adventure-sticker { display:flex; align-items:center; flex-direction:column; gap:9px; font-size:12px; color:var(--adventure-muted); }
.adventure-sticker-slot { width:100%; max-width:44px; aspect-ratio:1; border:1px solid #C7CFB8; border-radius:48% 52% 49% 51%; background:#ECECDD; box-shadow:inset 1px 2px 3px #BFC8AE55,inset -1px -2px 2px #FFFFFFB3; display:grid; place-items:center; }
.adventure-sticker-slot::before { content:''; grid-area:1/1; width:74%; height:74%; border:1px solid #C2CCB0; border-radius:50%; box-shadow:0 1px 0 #FFFDF0; }
.adventure-face { display:block; grid-area:1/1; width:100%; height:100%; background-size:contain; background-position:center; background-repeat:no-repeat; }
.adventure-sticker.is-earned { color:var(--adventure-ink); font-weight:700; }
.adventure-sticker.is-earned .adventure-sticker-slot { border:2px solid #D5BF6B; background:#F7E7A5; box-shadow:inset 1px 2px 1px #FFF5CFB3,0 3px 0 #D5CA9C,2px 5px 7px #254C4214; }
.adventure-sticker.is-earned .adventure-sticker-slot::before { display:none; }
.adventure-stats { grid-area:stats; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.adventure-stats > div > span { font-size:13px; color:var(--adventure-muted); line-height:1.6; }
.adventure-stats p { margin-top:6px; }
.adventure-stats strong { font-size:30px; font-weight:800; }
.adventure-stats small { font-size:13px; margin-left:4px; }
.adventure-stats .adventure-stats-note { grid-column:1/-1; margin:0; font-size:12px; line-height:1.7; color:var(--adventure-muted); }
.adventure-cheer { grid-area:cheer; display:flex; gap:12px; align-items:center; position:relative; }
.adventure-mascot { display:block; width:112px; height:112px; flex-shrink:0; background-size:contain; background-position:center; background-repeat:no-repeat; }
.adventure-reward { display:block; position:absolute; right:14px; bottom:12px; width:40px; flex-shrink:0; }
.adventure-flower { display:block; width:40px; height:60px; object-fit:contain; transform-origin:50% 90%; }
.adventure-cheer:has(.adventure-reward) { padding-bottom:72px; }
.adventure-cheer:has(.adventure-reward) > div { flex:1; min-width:0; }
.adventure-cheer p { font-size:16px; font-weight:700; line-height:1.6; word-break:keep-all; margin-top:6px; }
.adventure-actions { display:flex; justify-content:center; flex-wrap:wrap; gap:12px; margin-top:24px; }
.adventure-actions button, .adventure-guest button { min-height:46px; padding:10px 20px; border:1px solid #CCD1BB; border-radius:99px; background:var(--adventure-cream); color:var(--adventure-ink); font-size:14px; font-weight:700; box-shadow:inset 1px 2px 1px #FFFFFFB3,0 3px 0 #DBDFCD,2px 5px 7px #254C420A; }
.adventure-actions button:first-child, .adventure-guest button { background:var(--adventure-ink); color:#FFFCF2; border-color:var(--adventure-ink); box-shadow:inset 1px 2px 1px #FFFFFF1F,0 3px 0 #1B3932,2px 5px 7px #254C4217; }
.adventure-actions button:hover, .adventure-guest button:hover { filter:brightness(1.04); }
.adventure-actions button:active, .adventure-guest button:active { transform:translateY(2px); box-shadow:none; }
.adventure-guest { display:flex; align-items:center; justify-content:space-between; gap:14px; margin-bottom:18px; padding:16px 20px; border:1px solid #CCD7BB; border-radius:22px; background:#EBEFDF; }
.adventure-guest p { font-size:14px; line-height:1.7; }
.adventure-guest button { flex-shrink:0; }
@media(max-width:1100px) {
 .adventure-layout { grid-template-columns:1fr; grid-template-areas:'map' 'missions' 'stickers' 'stats' 'cheer'; }
 .adventure-card { padding:20px; }
}
@media(max-width:900px) {
 .adventure-trail { height:650px; aspect-ratio:auto; max-width:440px; margin-inline:auto; }
 .adventure-trail-art { background-image:url('assets/clay-garden-mobile.webp'); }
}
@media(max-width:619px) {
 .adventure { padding-top:16px; }
 .adventure-intro { padding-bottom:20px; }
 .adventure-learner { position:static; display:inline-block; max-width:100%; margin-top:10px; font-size:13px; }
 .adventure-card { padding:18px; border-radius:24px; }
 .adventure-layout { gap:14px; }
 .adventure h2 { font-size:17px; }
 .adventure-trail { margin-inline:-4px; }
 .adventure-trail-art { border-radius:20px; }
 .adventure-day { width:74px; }
 .adventure-day-stone { width:68px; height:64px; }
 .adventure-day.is-today { width:88px; }
 .adventure-day.is-today .adventure-day-stone { width:80px; height:74px; }
 .adventure-day-ddori { width:44px; height:60px; }
 .adventure-mission { padding:15px 12px; }
 .adventure-mission strong { font-size:15px; }
 .adventure-stats { gap:9px; }
 .adventure-stats strong { font-size:27px; }
 .adventure-mascot { width:96px; height:96px; }
 .adventure-cheer:has(.adventure-reward) { flex-wrap:wrap; }
 .adventure-cheer:has(.adventure-reward) > div { flex:1; min-width:120px; }
 .adventure-reward { right:12px; bottom:12px; }
 .adventure-guest { align-items:flex-start; flex-direction:column; padding:15px; }
}
@media(prefers-reduced-motion:reduce) {
 .adventure-day.is-today:active .adventure-day-stone, .adventure-mission:active,
 .adventure-actions button:active, .adventure-guest button:active { transform:none; }
}
@media(forced-colors:active) {
 .adventure-trail-art, .adventure-day-ddori { display:none; }
 .adventure-card, .adventure-day-stone, .adventure-mission, .adventure-sticker-slot,
 .adventure-counter, .adventure-actions button, .adventure-guest button { border:1px solid CanvasText; box-shadow:none; }
 .adventure-day-stone, .adventure-mission, .adventure-sticker-slot { background:Canvas!important; color:CanvasText; }
 .adventure-day.is-today .adventure-day-stone { border:3px solid Highlight; }
 .adventure-day-mark { border-color:Canvas; background:Highlight; color:HighlightText; }
 .adventure-sticker.is-earned .adventure-sticker-slot { border:3px solid Highlight; }
}
