/* Approved level-map proposal: terrain, road, scenery and controls remain layers. */
.journey-topbar{padding-bottom:8px;background:#e3f0e4;gap:8px}
.journey-topbar h1{font-size:29px;font-weight:900;letter-spacing:1px;white-space:nowrap;text-shadow:0 2px #fff7}
.journey-meta{display:flex;align-items:center;justify-content:space-between;padding:2px 15px 12px;gap:10px;background:#e3f0e4;flex-shrink:0;z-index:5;box-shadow:0 4px 8px #c4d6b329}
.chapter-picker{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:9px 14px 8px;background:linear-gradient(#fffef3,#fff3d9);border:1px solid #fffdf7;border-radius:17px;box-shadow:inset 0 2px #fff,0 3px #cbb9936b;text-align:left}
.chapter-picker b{font-size:16px;font-weight:900;white-space:nowrap}.chapter-picker small{display:block;text-align:center;font-size:11px;color:#987455;margin-top:4px}.chapter-chevron{font-size:24px;line-height:1}.journey-progress{font-size:11px;white-space:nowrap;background:#edf4e2bb;padding:8px 6px;border-radius:10px}.journey-progress b{font-size:13px}
.map-screen{position:relative;overflow:hidden;display:flex;flex-direction:column;background:#edf3df}
.journey-scroll{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;scrollbar-width:none;overflow-anchor:none;touch-action:pan-y}
.journey-scroll::-webkit-scrollbar{display:none}.journey-scroll:focus-visible{outline:2px solid #edc981;outline-offset:-2px}
.journey-world{position:relative;padding-bottom:88px;background:#f7ebc8}
.journey-stage{width:100%;aspect-ratio:390/960;position:relative;isolation:isolate;overflow:hidden;scroll-margin-block:24px}
.journey-terrain{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;pointer-events:none;z-index:-2}
.journey-stage:before,.journey-stage:after{content:'';position:absolute;left:0;right:0;height:42px;background:linear-gradient(#e4eed5,transparent);z-index:-1;pointer-events:none}.journey-stage:before{top:0}.journey-stage:after{bottom:0;rotate:180deg}
.biome-1 .journey-terrain{filter:sepia(.12) saturate(1.05)}.biome-2 .journey-terrain{filter:hue-rotate(6deg) saturate(.87)}.biome-3 .journey-terrain{filter:hue-rotate(12deg)}.biome-4 .journey-terrain{filter:saturate(.82)}
.chapter-landmark{position:absolute;top:2.5%;left:50%;transform:translateX(-50%);white-space:nowrap;text-align:center;background:#fff8e8e8;border:1px solid #fffdf3;border-radius:14px;padding:6px 19px;box-shadow:0 2px #bfa37d55;z-index:2}.chapter-landmark small{font-size:7px;color:#9b8063;letter-spacing:2px}.chapter-landmark h2{font-size:17px;letter-spacing:2px;margin-top:2px}
.journey-road{position:absolute;inset:0;width:100%;height:100%;z-index:0;overflow:visible;pointer-events:none}.journey-road path{fill:none;stroke-linecap:round;stroke-linejoin:round}.road-shadow{stroke:#ae8d5760;stroke-width:44;transform:translateY(8px);filter:blur(2px)}.road-base{stroke:#d8ba8b;stroke-width:42;transform:translateY(4px)}.road-edge{stroke:#fffdf0;stroke-width:42}.road-top{stroke:#f3e3c4;stroke-width:36}.road-light{stroke:#fff3db;stroke-width:25;transform:translateY(-2px)}
.journey-scenery{position:absolute;inset:0;z-index:1;pointer-events:none}.journey-prop{position:absolute;height:auto;transform:translate(-50%,-50%);object-fit:contain;pointer-events:none;user-select:none;filter:drop-shadow(1px 3px 2px #8f7a3e22)}.scene-jar{rotate:-5deg}
.journey-node{position:absolute;transform:translate(-50%,-50%);width:80px;height:72px;padding:0;z-index:2;overflow:visible;isolation:isolate;touch-action:manipulation;transition:filter .12s}
.node-pedestal{position:absolute;inset:8px 0 0;border-radius:50%;background:linear-gradient(110deg,#fffcdf,#f0d8ab 80%);border:2px solid #fff8df;box-shadow:inset 0 2px #fffef3,inset 0 -5px #dfc494,0 4px #c7ab82,0 8px 7px #ad895545}
.node-face{display:grid;place-items:center;position:absolute;left:7px;right:7px;top:-9px;height:54px;border-radius:50%;font-size:30px;font-weight:900;border:2px solid #fffae9;background:linear-gradient(140deg,#fffdf2 15%,#f2e5ca 75%,#e8d5ae);color:#826047;box-shadow:inset 1px 3px 1px #fff,0 4px #d5bd94,0 5px 2px #b7a07544;text-shadow:0 2px #fff;line-height:1}
.journey-node.is-complete .node-face{background:linear-gradient(140deg,#63ead9,#1ac3b3 60%,#05a397);border-color:#bbf8dc;color:#fffdf3;text-shadow:0 2px #087c71;box-shadow:inset 1px 3px 1px #d2fff0,0 4px #138d80,0 5px 3px #947b4f44}
.journey-node.is-current{width:88px;height:78px;z-index:3}.journey-node.is-current .node-face{top:-10px;height:60px;font-size:35px;background:linear-gradient(140deg,#ff9b87,#ff6557 65%,#ee4946);border-color:#ffd7ba;color:#fffdf3;text-shadow:0 2px #bc4538;box-shadow:inset 1px 3px 1px #ffd8bd,0 5px #ce4e3b,0 6px 3px #ad734b55}
.node-badge{position:absolute;right:-1px;bottom:6px;display:grid;place-items:center;width:27px;height:27px;border-radius:50%;border:2px solid #fff9dd;box-shadow:0 2px #b69b7455;z-index:4}.node-badge.checked{color:#249d48;background:linear-gradient(#fffde8,#ffe6ae)}.node-badge.checked .icon{stroke-width:4}.node-badge.locked{background:linear-gradient(#b7b1a0,#8f887a);color:#fffae9;border-color:#c9c2b0;width:23px;height:23px}
.next-label{position:absolute;bottom:calc(100% + 1px);left:50%;transform:translateX(-50%);white-space:nowrap;padding:5px 12px;border:2px solid #fff9e4;border-radius:13px;background:linear-gradient(#fff8e4,#ffe2ad);box-shadow:0 2px #c9a16a77;font-size:13px;font-weight:900;color:#714b31;line-height:1.2}.next-label:after{content:'';position:absolute;left:calc(50% - 5px);bottom:-7px;width:10px;height:10px;background:#ffe5b5;border-right:2px solid #fff9e4;border-bottom:2px solid #fff9e4;transform:rotate(45deg)}
.journey-node:active:not(:disabled){transform:translate(-50%,calc(-50% + 3px));filter:brightness(.98)}.journey-node:focus-visible{outline-offset:7px;border-radius:50%}
.journey-action{position:absolute;bottom:0;left:0;right:0;z-index:4;padding:22px 44px 12px;background:linear-gradient(transparent,#e4edd4d9 70%);pointer-events:none}.journey-action button{pointer-events:auto;min-height:57px;border:3px solid #fff1cf;box-shadow:inset 0 2px #ffd1b3,0 4px #d0b38b,0 7px 6px #a07f4a3b;font-size:20px}
.chapter-list{display:flex;flex-direction:column;gap:10px;margin-top:20px}.chapter-option{display:flex;gap:12px;align-items:center;border:1px solid #ecdcbb;background:linear-gradient(#fffdf1,#faeecf);border-radius:16px;padding:12px;text-align:left;box-shadow:0 2px #c0aa8055}.chapter-option.selected{border-color:#45bfaa;background:linear-gradient(#f4fff1,#def1d9)}.chapter-number{font-size:25px;color:#bc9870}.chapter-option b{font-size:15px}.chapter-option small{display:block;color:#997858;font-size:11px;margin-top:3px}.chapter-count{margin-left:auto;display:flex;align-items:center;gap:6px;font-size:12px;color:#8d7657}
.modal:has(.level-entry){padding:25px 20px 23px;border:3px solid #fffae6;border-radius:30px;box-shadow:inset 0 0 0 3px #eddabd,0 6px #b3997455,0 14px 35px #425b4a66}
.level-entry{text-align:center}.level-chapter{font-size:15px;font-weight:800;margin:2px 35px 9px}.level-entry h2{font-size:37px;letter-spacing:2px;margin:0 0 6px}.level-entry>p{font-size:13px;margin-bottom:15px;line-height:1.5}.entry-time{display:flex;align-items:center;justify-content:center;gap:13px;border:1px solid #fffef5;border-radius:17px;padding:8px 12px;background:linear-gradient(#fffdf4,#faf0dd);box-shadow:0 2px #d3bd9755;margin-bottom:15px;font-size:16px;font-weight:800}.entry-time b{font-size:27px;color:#f66556}.entry-time .toy-icon{width:44px;height:44px}.level-entry h3{font-size:16px;margin-bottom:9px}.entry-targets{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.entry-target{min-width:0;background:linear-gradient(#fffaf0,#fff2d8);border:1px solid #fffef3;border-radius:15px;padding:5px 3px 8px;box-shadow:0 2px #c3aa7733}.entry-bucket{height:91px;max-width:90px;margin:auto}.entry-bucket .bucket{height:100%;width:100%}.entry-bucket .bucket-count,.entry-bucket .bucket-mark,.entry-bucket .bucket-cap{display:none}.entry-target strong{font-size:14px;white-space:nowrap}.entry-targets:has(.entry-target:nth-child(4)){grid-template-columns:repeat(4,minmax(0,1fr))}.many-targets .entry-bucket{height:65px}.many-targets .entry-target strong{font-size:12px}.entry-reward{display:flex;align-items:center;justify-content:center;gap:8px;font-size:15px;font-weight:800;margin:17px 0 16px}.entry-reward .toy-icon{width:30px;height:30px}.level-cleared{font-size:11px;color:#258f73;display:flex;gap:4px;align-items:center;justify-content:center;margin-bottom:10px}.level-entry>.primary-button{font-size:22px;min-height:58px}
@media(max-width:350px){.journey-topbar h1{font-size:23px}.journey-meta{padding-left:11px;padding-right:11px;gap:6px}.chapter-picker{padding:7px 9px;gap:5px}.chapter-picker b{font-size:14px}.chapter-picker small{font-size:10px}.journey-progress{font-size:10px;padding:7px 3px}.journey-progress b{font-size:11px}.journey-node{width:70px;height:63px}.node-face{height:47px;font-size:27px;left:6px;right:6px}.journey-node.is-current{width:76px;height:68px}.journey-node.is-current .node-face{height:52px;font-size:31px}.journey-action{padding-left:30px;padding-right:30px}.journey-action button{font-size:18px}}
@media(max-height:710px){.journey-topbar h1{font-size:25px}.journey-meta{padding-bottom:9px}.chapter-picker{padding-top:6px;padding-bottom:6px}.chapter-picker small{margin-top:2px}.journey-action button{min-height:49px}.journey-action{padding-top:17px;padding-bottom:9px}.modal:has(.level-entry){padding:19px 17px}.level-entry h2{font-size:29px}.level-chapter{margin-bottom:5px;font-size:13px}.level-entry>p{margin-bottom:10px;font-size:12px}.entry-time{padding:5px 9px;margin-bottom:10px;font-size:14px}.entry-time b{font-size:23px}.entry-time .toy-icon{width:35px;height:35px}.entry-bucket{height:72px}.entry-reward{margin:12px 0;font-size:13px}.level-entry>.primary-button{min-height:50px;font-size:19px}.many-targets .entry-bucket{height:46px}}
