/* Shared picture icons and friendly game navigation. One atlas, twelve toys. */
.toy-icon{display:inline-block;flex:none;width:44px;height:44px;background-image:url('/assets/adventure/icons.webp');background-size:452.5% 339.375%;background-repeat:no-repeat;mix-blend-mode:multiply;vertical-align:middle;pointer-events:none}
.toy-home{background-position:6.65% 6.4%}.toy-build{background-position:35.73% 6.4%}.toy-stories{background-position:64.63% 6.4%}.toy-map{background-position:93.62% 6.4%}
.toy-collection{background-position:6.65% 48.43%}.toy-rewards{background-position:35.73% 48.43%}.toy-parents{background-position:64.63% 48.43%}.toy-settings{background-position:93.62% 48.43%}
.toy-river{background-position:6.65% 89.16%}.toy-castle{background-position:35.73% 89.16%}.toy-storybook{background-position:64.63% 89.16%}.toy-speaker{background-position:93.62% 89.16%}
.ui-symbol{width:22px;height:22px;flex:none;vertical-align:middle;pointer-events:none}
body:not(.library-body){--ck-bg:#f8faf3;--ck-rail:128px;--ck-border:#dfE6dc}
.kingdom-topbar{background:#fffef9;border-bottom-color:#e4e9df;box-shadow:0 2px 12px #294b3210}
.kingdom-wordmark>span{font:800 19px/1.05 var(--kid-heading);letter-spacing:0}.kingdom-wordmark b{font:800 19px/1.2 var(--kid-heading);letter-spacing:0;margin:0}
.kingdom-rail{background:#fffef9;padding:12px 10px;gap:3px;border-color:#e4e9df;scrollbar-color:#dae3d6 transparent}
.kingdom-rail a{min-height:77px;border:0;border-radius:18px;gap:0;color:#536476;background:none;box-shadow:none}
.kingdom-rail a>span:not(.toy-icon){font:800 13px/1.2 var(--kid-font);letter-spacing:0}
.kingdom-rail a .toy-icon{width:48px;height:48px;transition:transform .18s ease}
.kingdom-rail a:is(.active,:hover){background:#e7f3fc;color:#246eac;border:0}
.kingdom-rail a:hover .toy-icon{transform:translateY(-2px)}
.kingdom-rail a[data-view=achievements]{display:none}
.kingdom-rail a:is([data-view=parents],[data-view=settings]){min-height:58px}
.kingdom-rail a:is([data-view=parents],[data-view=settings]) .toy-icon{width:34px;height:34px}
.kingdom-rail a:is([data-view=parents],[data-view=settings])>span:not(.toy-icon){font-size:12px}
.hub-heading h1,.hub-screen h2,.hub-screen h3{font-family:var(--kid-heading);font-weight:800;letter-spacing:-.6px}
.kid-bottom-nav{grid-template-columns:repeat(5,minmax(0,1fr));background:#fffef9;border-color:#e4e9df;padding-inline:8px;gap:3px}
.kid-bottom-nav a{gap:0;font-size:13px;color:#536476}
.kid-bottom-nav a .toy-icon{width:42px;height:42px}
.kid-bottom-nav a[aria-current]{background:#e7f3fc;color:#246eac}
.grownup-link .toy-icon{width:38px;height:38px}
/* The road is native SVG and every stop is a real, labelled button. */
.hub-screen.map-view{background:#f8faf3;padding:26px 34px 28px}
.map-view .hub-heading{max-width:1240px;margin:0 auto 20px;display:flex;align-items:center;flex-wrap:nowrap;gap:20px}
.map-view .hub-heading h1{font:800 clamp(28px,3.3vw,44px)/1.12 var(--kid-heading);letter-spacing:-1px;margin:0 0 8px}
.map-view .hub-heading p{font:17px/1.5 var(--kid-font);margin:0;color:#61706f}
.adventure-total{display:flex;align-items:center;gap:6px;white-space:nowrap;padding:7px 17px 7px 8px;background:#fffdf4;border:1px solid #eadfc0;border-radius:22px;font:800 19px var(--kid-font)}
.adventure-total .toy-icon{width:46px;height:46px}.adventure-total small{font-size:15px;color:#7d8178}
.adventure-map{max-width:1240px;margin:auto}
.adventure-worlds{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0 0 18px}
.adventure-worlds button{min-height:72px;display:flex;align-items:center;justify-content:center;gap:8px;padding:6px 12px;color:#536476;background:#fffefa;border:2px solid #e4e9df;border-bottom-width:4px;border-radius:21px;font:800 19px var(--kid-heading);box-shadow:0 2px 0 #e2e8dc50;transition:background .15s,transform .15s}
.adventure-worlds .toy-icon{width:51px;height:51px}
.adventure-worlds button[aria-selected=true]{color:#256da8;background:#e6f3fc;border-color:#82b9dc;box-shadow:0 3px 0 #b2d4e849}
.adventure-worlds button:hover{transform:translateY(-1px);border-color:#93bdd1}
.adventure-panel{border-radius:28px;overflow:clip;border:3px solid #e4ecda;box-shadow:0 5px 0 #d7e0cf,0 12px 25px #2843290b}
.adventure-terrain{position:relative;height:clamp(320px,calc(100dvh - 490px),620px);isolation:isolate;background:#9dbd59}
.adventure-landscape{position:absolute;width:100%;height:100%;inset:0;object-fit:cover;object-position:center 15%;z-index:-2;pointer-events:none;user-select:none}
.adventure-map-hint{position:absolute;inset:18px auto auto 50%;transform:translateX(-50%);width:max-content;max-width:80%;padding:8px 16px;margin:0!important;background:#ffffefd9;color:#44632d!important;border-radius:20px;font:700 14px var(--kid-font);text-align:center;box-shadow:0 2px 4px #31532215}
.adventure-road{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}
.adventure-road path{fill:none;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.road-shadow{stroke:#5a783e55;stroke-width:31px;transform:translateY(4px)}.road-edge{stroke:#d1b76d;stroke-width:29px}.road-surface{stroke:#f6e5ac;stroke-width:24px}.road-dashes{stroke:#dcc182;stroke-width:2px;stroke-dasharray:1 12}
.road-tall{display:none}
.adventure-stops{position:absolute;inset:0}
.adventure-stop{position:absolute;left:var(--x);top:var(--y);transform:translate(-50%,-50%);display:grid;place-items:center;width:62px;height:62px;padding:0;border:3px solid #fff6d5;border-bottom:5px solid #d7b964;border-radius:50%;background:linear-gradient(#fffdf0,#fff0bc);color:#826236;box-shadow:0 4px 0 #826b384d,0 7px 10px #52673330;font:800 25px/1 var(--kid-heading);touch-action:manipulation;transition:background .15s,box-shadow .15s}
.adventure-stop:hover{box-shadow:0 0 0 5px #ffffe966,0 5px 9px #52673340}
.adventure-stop:not(:disabled):active{transform:translate(-50%,calc(-50% + 2px))}
.adventure-stop:focus-visible{outline:4px solid #174e87;outline-offset:6px;z-index:3}
.stop-symbol{display:grid;place-items:center;width:100%;height:100%}.stop-symbol svg{width:27px;height:27px}
.adventure-stop.is-complete{background:linear-gradient(#e4f5b9,#bedb80);border-color:#f5ffd5;border-bottom-color:#769c4c;color:#3c7138}
.adventure-stop.is-selected{background:linear-gradient(#5baadd,#2882bc);border-color:#e0f6ff;border-bottom-color:#246391;color:#fff;box-shadow:0 0 0 5px #ffffff7a,0 7px 0 #4a633236;z-index:2}
.stop-caption{display:none;position:absolute;top:calc(100% + 12px);left:50%;transform:translateX(-50%);width:max-content;max-width:170px;padding:8px 12px;border-radius:13px;background:#fffef2;color:#314c48;font:800 13px/1.25 var(--kid-font);box-shadow:0 3px 6px #46642f25;pointer-events:none}
.adventure-stop:is(.is-selected,:focus-visible) .stop-caption{display:block}
.stop-number{display:none;position:absolute;right:-9px;top:-8px;background:#fffdf1;color:#537093;border:2px solid #deedf0;border-radius:50%;width:25px;height:25px;place-items:center;font-size:12px}
.is-selected .stop-number,.is-complete .stop-number{display:grid}
.adventure-world-progress{position:absolute;left:18px;bottom:14px;border-radius:20px;background:#ffffeddc;color:#44632d;padding:8px 13px;font:800 13px var(--kid-font);pointer-events:none}
.adventure-preview{position:relative;display:flex;align-items:center;gap:16px;min-height:108px;margin:19px 0 0;padding:13px 20px;background:#fffef9;border:1px solid #e4e9df;border-radius:24px;box-shadow:0 4px 0 #e8eddf}
.adventure-guide{height:78px;width:78px;flex:none;object-fit:contain;object-position:top}
.adventure-preview-copy{flex:1;min-width:0}.adventure-preview-copy h2{font:800 23px/1.2 var(--kid-heading);margin:2px 0 6px;letter-spacing:-.5px}.adventure-preview-copy p{margin:0;font:14px/1.35 var(--kid-font)}
.adventure-preview-copy .adventure-eyebrow{font:800 11px var(--kid-font);color:#5e8b79;letter-spacing:.5px}
.adventure-play{display:flex;align-items:center;justify-content:center;gap:11px;flex:none;min-height:58px;min-width:205px;padding:14px 24px;border:2px solid #428dbe;border-bottom:5px solid #226394;border-radius:20px;background:linear-gradient(#2879af,#226da0);color:white;font:800 19px var(--kid-heading);box-shadow:0 3px 0 #d2e5ee}
.adventure-play svg{width:24px;height:24px}.adventure-play:hover{filter:brightness(1.06)}.adventure-play:active{border-bottom-width:2px;transform:translateY(2px)}
.adventure-note{text-align:center;font:13px var(--kid-font);margin:17px 0 0!important;color:#6c7a6d!important}
/* Story shelves use the same tactile controls and pictorial navigation. */
.library-body{--paper:#f8faf3;--paper-white:#fffef9;--kid-line:#dfe6dc;--kid-blue:#3387bf;background:var(--paper)}
.library-body .library-brand strong{font:800 22px/1.03 var(--kid-heading)!important}
.library-body .kid-button{border-radius:17px;border-width:2px;border-bottom-width:4px;box-shadow:0 2px 0 #334b2910;gap:9px;transition:filter .15s,transform .15s}
.library-body .kid-button:hover{filter:brightness(1.04);transform:translateY(-1px)}
.library-body .kid-button.gold{background:linear-gradient(#fbd478,#f4c258);color:#5d491f;border-color:#ebc15f;border-bottom-color:#cf9f3e}
.library-body #libraryContinue{background:linear-gradient(#2879af,#226da0);color:white;border-color:#428dbe;border-bottom-color:#226394;min-width:160px}
.library-body .library-welcome{background:#edf4e5;border:1px solid #e1ead7;border-radius:28px;padding-left:30px;overflow:hidden;margin-top:8px;margin-bottom:28px}
.library-body .library-welcome h1{color:#294655}.library-welcome>img{mix-blend-mode:multiply}
.library-body .library-story-card{border-radius:23px;box-shadow:0 4px 0 #e4ebdb;border-color:#e0e6d7}
.library-body .story-card-cover{margin:9px 9px 0;border-radius:16px}
.library-body .story-card-copy h3{font-size:25px;line-height:1.17}
.library-body .story-card-copy .kid-button{min-height:52px}
.library-body .story-card-copy .toy-icon{width:31px;height:31px}
.book-reading-state.is-finished{color:#46703e;background:#edf5dc;border-radius:12px;padding:5px 8px;align-self:flex-start}
.bookmark-button{display:grid;place-items:center;color:#bb725f;background:#fffdf7;border-radius:16px;border-width:2px;border-bottom-width:3px}
.bookmark-button .ui-symbol{width:25px;height:25px}.bookmark-button[aria-pressed=true] .ui-symbol{fill:#eaa088;stroke:#ac5e4b}
.story-reader-controls .button-label{display:inline!important}.story-reader-controls .ui-symbol{width:18px;height:18px}
.reader-topbar .ui-symbol{width:22px;height:22px}.listen-button .ui-symbol{width:24px;height:24px}
@media(max-width:1024px){
  body:not(.library-body){--ck-rail:0px}
  .kingdom-rail{grid-template-columns:repeat(5,minmax(0,1fr));padding:5px 8px calc(5px + env(safe-area-inset-bottom));gap:3px;border-radius:22px 22px 0 0;background:#fffef9}
  .kingdom-rail a[data-view=map]{display:flex}.kingdom-rail a{min-height:66px;border-radius:16px}
  .kingdom-rail a .toy-icon{width:43px;height:43px}.kingdom-rail a>span:not(.toy-icon){font-size:13px}
  .hub-screen.map-view{padding:24px 24px 28px}.map-view .hub-heading{margin-bottom:17px}
  .adventure-terrain{height:clamp(320px,calc(100dvh - 560px),560px)}
  .adventure-stop{width:56px;height:56px;font-size:23px}
}
@media(min-width:601px) and (max-height:800px){
  .hub-screen.map-view{padding:17px 24px 16px}.map-view .hub-heading{margin-bottom:12px}.map-view .hub-heading h1{font-size:32px;margin-bottom:4px}.map-view .hub-heading p{font-size:15px}
  .adventure-worlds{margin-bottom:12px;gap:10px}.adventure-worlds button{min-height:60px;font-size:17px}.adventure-worlds .toy-icon{width:43px;height:43px}
  .adventure-preview{min-height:88px;margin-top:14px;padding:10px 16px;gap:12px}.adventure-guide{width:60px;height:60px}.adventure-preview-copy h2{font-size:21px}.adventure-preview-copy p{font-size:13px}.adventure-play{min-height:54px;font-size:17px;min-width:185px}.adventure-note{margin-top:13px!important;font-size:12px}
}
@media(max-width:600px){
  .kingdom-wordmark>span,.kingdom-wordmark b{font-size:17px}
  .kingdom-rail a .toy-icon,.kid-bottom-nav a .toy-icon{width:40px;height:40px}
  .kingdom-rail a>span:not(.toy-icon),.kid-bottom-nav a{font-size:11px;white-space:nowrap}
  .hub-screen.map-view{padding:21px 14px 22px}.map-view .hub-heading{gap:7px;margin-bottom:16px;align-items:flex-start}
  .map-view .hub-heading h1{font-size:28px;letter-spacing:-.7px}.map-view .hub-heading p{font-size:14px;max-width:25ch}
  .adventure-total{padding:4px 8px 4px 2px;gap:1px;font-size:16px;margin-top:1px;border-radius:17px}.adventure-total .toy-icon{width:32px;height:32px}.adventure-total small{font-size:12px}
  .adventure-worlds{gap:6px;margin-bottom:14px}.adventure-worlds button{flex-direction:column;gap:0;min-height:78px;padding:3px 3px 7px;font-size:14px;border-radius:18px}.adventure-worlds .toy-icon{width:44px;height:44px}
  .adventure-panel{border-width:2px;border-radius:25px}.adventure-terrain{height:auto;aspect-ratio:2/3;min-height:500px;max-height:760px}
  .adventure-landscape{object-fit:cover;object-position:center}.adventure-map-hint{top:12px;font-size:12px;padding:7px 11px;max-width:92%}
  .road-wide{display:none}.road-tall{display:block}.road-shadow{stroke-width:25px}.road-edge{stroke-width:24px}.road-surface{stroke-width:19px}
  .adventure-stop{left:var(--mx);top:var(--my);width:56px;height:56px;font-size:23px}.stop-symbol svg{width:24px;height:24px}
  .adventure-stop:is(.is-selected,:focus-visible) .stop-caption{display:none}.adventure-world-progress{left:12px;bottom:12px;font-size:12px}
  .adventure-preview{position:sticky;bottom:0;z-index:4;display:grid;grid-template-columns:48px minmax(0,1fr);gap:8px 10px;min-height:0;padding:12px 13px;margin-top:14px;border-radius:21px;box-shadow:0 -2px 16px #47604812,0 4px 0 #e4ebdc}
  .adventure-guide{width:48px;height:54px}.adventure-preview-copy h2{font-size:19px;margin:3px 0 4px}.adventure-preview-copy p{font-size:12px}.adventure-preview-copy .adventure-eyebrow{font-size:10px}
  .adventure-play{grid-column:1/-1;min-height:54px;width:100%;font-size:19px;border-radius:17px;padding:10px 16px}.adventure-play svg{width:22px;height:22px}.adventure-note{font-size:12px;margin-top:16px!important}
  .library-body .library-welcome{padding-left:18px;border-radius:24px;margin-top:3px;margin-bottom:24px}.library-body .library-welcome h1{font-size:36px}.library-body .library-welcome>div{position:relative;z-index:1}.library-body .library-welcome p{font-size:16px}.library-body #libraryContinue{min-width:0;font-size:15px;padding:10px 13px;gap:6px}
  .library-body .story-card-copy h3{font-size:21px}.library-body .story-card-copy .toy-icon{width:25px;height:25px}.library-body .story-card-copy .kid-button{min-height:48px;gap:6px;padding:8px 9px}.library-body .story-card-copy .kid-button .ui-symbol{width:17px;height:17px}
  .library-body .library-brand strong{font-size:19px!important}.grownup-link .toy-icon{width:31px;height:31px}
}
@media(max-width:360px){.map-view .hub-heading h1{font-size:25px}.adventure-total small{display:none}.adventure-worlds button{font-size:12px}.adventure-worlds .toy-icon{width:40px;height:40px}.library-body .story-card-copy h3{font-size:19px}.library-body .library-welcome{padding-left:14px}.library-body .library-welcome h1{font-size:32px}.library-body .story-card-copy .kid-button .ui-symbol{display:none}}
@media(max-height:500px) and (orientation:landscape){.kingdom-rail a{min-height:54px}.kingdom-rail a .toy-icon{width:32px;height:32px}.adventure-terrain{height:390px}.adventure-preview{position:static}}
@media(prefers-reduced-motion:reduce){.adventure-map *,.kingdom-rail a .toy-icon,.library-body .kid-button{transition:none!important;scroll-behavior:auto!important}}
