:root{--ivory:#faf7e7;--paper:#f7f1dc;--green:#214b35;--ink:#172c1e;--muted:#69735f;--gold:#b59b4f;--border:#cbcbb3;--serif:Georgia,'Noto Serif',serif;--sans:system-ui,sans-serif;--shadow:0 8px 28px #233c2524;color-scheme:light}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--ivory);color:var(--ink);font-family:var(--serif);-webkit-tap-highlight-color:transparent}body{overscroll-behavior:none}button,input,select{font:inherit}button{cursor:pointer;color:inherit;touch-action:manipulation}button:disabled{cursor:default}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #b59138;outline-offset:3px}button{border:0}button svg{pointer-events:none;flex-shrink:0}svg.icon{width:24px;height:24px;vertical-align:middle;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}h1,h2,h3,p{margin:0}h1,h2{font-weight:700;letter-spacing:-.7px}#app{width:100%;max-width:620px;min-height:100vh;min-height:100dvh;margin:auto;position:relative;isolation:isolate}#app>.screen{min-height:100vh;min-height:100dvh}.screen{position:relative;background:var(--ivory)}.bar{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:14px 16px;z-index:4;position:relative}.bar h1{font-size:26px;text-align:center;flex:1;line-height:1.12}.icon-button{width:44px;height:44px;border-radius:12px;background:#f8f3dfed;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.bar-title{background:#fffbeaef;border-radius:13px;padding:11px 12px;box-shadow:0 2px 10px #253c2220}.primary{min-height:56px;background:linear-gradient(120deg,#2b5840,#1e452f);color:#fffdf0;border-radius:32px;padding:13px 22px;font-size:24px;font-weight:700;display:flex;align-items:center;justify-content:center;gap:12px;width:100%;box-shadow:0 3px 0 #112f2319;line-height:1.2}.primary:active{transform:scale(.985)}.secondary{background:#ecebd9;border:1px solid var(--border);border-radius:14px;min-height:46px;padding:10px 15px;font-size:17px}.text-button{background:none;min-height:44px;padding:10px;font-size:16px;display:inline-flex;gap:9px;align-items:center;justify-content:center}.eyebrow{font-family:var(--sans);font-size:11px;letter-spacing:1.8px;text-transform:uppercase;color:var(--muted)}.muted{color:var(--muted);line-height:1.5}.small{font-family:var(--sans);font-size:12px}.row{display:flex;align-items:center;justify-content:space-between;gap:12px}.stack{display:flex;flex-direction:column;gap:12px}.leaf{color:#a0a751}.divider{height:1px;background:var(--border);margin:16px 0}.spacer{height:16px}
.journey{height:100vh;height:100dvh;min-height:640px!important;overflow:hidden;background:#547b45}.journey-art{position:absolute;inset:0;background:url('art/journey.png') center/100% 100% no-repeat}.journey:after{content:'';position:absolute;inset:auto 0 0;height:190px;background:linear-gradient(transparent,#143e2790);z-index:1;pointer-events:none}.journey .bar{padding-top:18px}.journey .bar h1{font-size:27px}.journey-top{position:absolute;top:91px;left:20px;right:20px;z-index:3;display:flex;justify-content:space-between;gap:8px}.journey-pill{background:#fffbe9ed;border:1px solid #ffffffb3;border-radius:20px;padding:7px 12px;font:12px var(--sans);box-shadow:var(--shadow)}.map-marker{position:absolute;z-index:3;display:flex;align-items:center;justify-content:center;width:47px;height:37px;border-radius:50%;background:#6f8557;color:#fffde7;border:3px solid #fffce9;font-size:24px;font-weight:700;box-shadow:0 3px 1px #3547237a;transform:translate(-50%,-50%)}.map-marker.current{width:64px;height:48px;background:#638347;font-size:28px;box-shadow:0 0 0 6px #fff8d560,0 3px 1px #3547237a}.map-marker.locked{background:#829073;color:#f4f1e5}.map-marker .icon{width:15px;height:15px}.map-traveler{position:absolute;z-index:3;width:116px;height:174px;pointer-events:none;transform:translate(-50%,-100%);transition:left 1.3s ease,top 1.3s ease}.map-traveler:before{content:'';position:absolute;bottom:0;left:24%;width:60%;height:13px;background:#f9edc3bf;border:3px solid #ffffdd;border-radius:50%;box-shadow:0 3px 10px #112b37}.signpost{position:absolute;top:34%;left:4%;transform:rotate(-5deg);z-index:2;display:grid;gap:5px}.signpost span{display:block;width:102px;background:linear-gradient(5deg,#967740,#d0b477 50%,#b99b61);padding:7px 10px;clip-path:polygon(0 0,90% 0,100% 50%,90% 100%,0 100%);color:#322914;box-shadow:0 2px 3px #3337;font:12px var(--sans);letter-spacing:1px}.journey-bottom{position:absolute;bottom:20px;left:20px;right:20px;z-index:5}.journey-bottom .primary{border:2px solid #ffffe5;min-height:61px;font-size:28px}.journey-progress{display:flex;justify-content:center;gap:8px;color:#fffcea;text-shadow:0 1px 4px #102817;margin-bottom:12px;font:12px var(--sans)}.reward-chip{position:absolute;right:12px;bottom:22%;z-index:2;width:100px;text-align:center;padding:15px 6px;background:#fbf6dfa8;border:1px solid #fff5;border-radius:50% 50% 12px 12px;transform:rotate(5deg);font:12px/1.5 var(--sans);color:#344530}.reward-chip strong{font:20px var(--serif);display:block}
.challenge .bar{position:absolute;top:0;left:0;right:0}.challenge .bar-inner{background:#fffbe9ee;border-radius:12px;display:flex;align-items:center;width:100%;padding:2px 3px}.challenge .bar h1{font-size:25px}.challenge .bar .icon-button{background:none}.question-image{width:100%;height:45vh;min-height:275px;max-height:450px;object-fit:cover;object-position:center 42%;display:block}.question-card{position:relative;background:linear-gradient(100deg,#fffbee,var(--ivory));border-radius:25px 25px 0 0;margin-top:-20px;padding:18px 19px 12px;z-index:2;min-height:55vh}.question-meta{font:10px var(--sans);letter-spacing:1.4px;text-transform:uppercase;color:#78826b;text-align:center;margin-bottom:7px}.question-title{font-size:25px;line-height:1.15;text-align:center;margin:0 0 17px;letter-spacing:-.6px;font-weight:700}.answers{display:grid;gap:9px}.answer{background:linear-gradient(120deg,#fbf6e5,#f4eedb);border:1px solid #c8c7ad;border-radius:14px;min-height:55px;padding:12px 14px;font-size:22px;font-weight:700;line-height:1.15;position:relative;text-align:center;box-shadow:inset 0 0 0 2px #fff6}.answer:active{background:#e9eddb}.answer.wrong{background:#f6e5dc;border-color:#b47c61;color:#784533}.answer.correct{background:#e1ebd5;border-color:#779660;color:#275631}.answer .answer-state{position:absolute;right:10px;top:50%;transform:translateY(-50%)}.question-tools{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;padding-top:12px}.question-tools .text-button{font-size:16px}.feedback{border-radius:16px;padding:16px;margin-top:14px;background:#e8efdc;line-height:1.4}.feedback.error{background:#f2e7d9}.feedback .result-heading{font-size:21px;font-weight:700;margin-bottom:6px}.feedback p{font-size:16px}.feedback .primary{margin-top:13px;font-size:21px;min-height:49px}.step-award{font-family:var(--sans);color:#3a6541;font-size:12px;background:#d2e1bf;padding:5px 10px;border-radius:14px;white-space:nowrap}.word-bank{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.word{border:1px solid #c5c9af;background:#f4eedb;border-radius:12px;padding:10px 12px;min-height:43px;font-size:16px}.word.selected{background:#e2ebd5;border-color:#496b40;box-shadow:0 0 0 1px #496b40}.word-number{display:inline-flex;border-radius:100%;align-items:center;justify-content:center;width:22px;height:22px;background:var(--green);color:white;font:12px var(--sans);margin-right:6px}.answer-instructions{text-align:center;font:12px/1.5 var(--sans);color:var(--muted);margin-bottom:12px}.selection-order{background:#fffdf3;padding:10px 14px;border-radius:14px;margin-bottom:12px;font:13px/1.7 var(--sans);border:1px dashed #b7bd9e}.submit-list{margin-top:14px;font-size:20px;min-height:48px}.answer-list{font-size:15px;margin:8px 0;padding-left:20px}.reading-note{font:12px/1.5 var(--sans);color:var(--muted);margin-top:10px}
.traveler-screen{overflow:hidden}.traveler-screen .bar{padding-bottom:8px}.traveler-screen .bar h1{font-size:27px}.sex-tabs{margin:0 30px;display:flex;background:#eae7d4;border-radius:28px;padding:3px;position:relative;z-index:3}.sex-tabs button{flex:1;padding:7px;border-radius:24px;font-size:20px;background:none;min-height:40px}.sex-tabs button.selected{background:var(--green);color:var(--ivory);box-shadow:0 0 0 2px #ffffe4,0 1px 6px #203e2538}.traveler-scene{height:47vh;min-height:300px;max-height:465px;position:relative;margin-top:0;background:url('art/journey.png') center 49%/cover no-repeat;isolation:isolate}.traveler-scene:after{content:'';position:absolute;inset:0;background:linear-gradient(var(--ivory) 0%,transparent 12%,transparent 88%,var(--ivory) 100%);z-index:1;pointer-events:none}.traveler-display{position:absolute;height:100%;width:100%;display:flex;justify-content:center;z-index:2}.person{height:100%;aspect-ratio:2/3;position:relative;display:block;isolation:isolate}.person img{position:absolute;inset:0;width:100%;height:100%;object-fit:fill}.person .shirt{clip-path:polygon(29% 20%,39% 19%,46% 27%,54% 27%,59% 19%,65% 20%,72% 27%,74% 40%,65% 42%,62% 39%,40% 39%,35% 42%,27% 40%,29% 29%)}.person.male .shirt{clip-path:polygon(29% 17%,43% 16%,50% 23%,57% 16%,67% 17%,75% 27%,75% 40%,68% 42%,64% 40%,35% 40%,31% 42%,24% 40%,25% 29%)}.person .arms{clip-path:polygon(27% 40%,37% 41%,33% 49%,32% 58%,24% 58%,24% 49%,27% 40%,74% 40%,77% 58%,67% 59%,65% 50%,63% 42%)}.person .hair-color{clip-path:polygon(27% 5%,64% 1%,67% 22%,63% 28%,55% 24%,57% 17%,57% 8%,44% 8%,42% 18%,46% 22%,40% 31%,29% 28%)}.person.male .hair-color{clip-path:polygon(37% 1%,65% 1%,67% 9%,60% 15%,60% 7%,46% 5%,41% 13%,34% 9%)}.glasses-overlay{position:absolute;top:10.6%;left:45%;width:11%;height:2%;border:1.5px solid #353229;border-radius:35%;z-index:6;box-shadow:-15px 0 0 -1px #d9e9ed33}.glasses-overlay:before{content:'';position:absolute;left:-108%;top:-1.5px;width:100%;height:100%;border:1.5px solid #353229;border-radius:35%}.glasses-overlay:after{content:'';position:absolute;left:-11%;top:30%;width:12%;height:1px;background:#353229}.person.male .glasses-overlay{top:8.5%}.traveler-options{padding:0 20px 18px;position:relative;z-index:3;background:var(--ivory)}.option-columns{display:grid;grid-template-columns:1fr 1.1fr;gap:15px}.option-columns>div+div{border-left:1px solid var(--border);padding-left:13px}.option-label{display:block;font-size:15px;margin:7px 0 8px}.swatches{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.swatch{width:29px;height:29px;min-width:29px;border-radius:50%;background:var(--swatch);border:2px solid #fff9;box-shadow:0 0 0 1px #878b7536}.swatch.selected{box-shadow:0 0 0 2px var(--ivory),0 0 0 3.5px var(--green)}.swatch.locked{opacity:.5}.clothes-swatches .swatch{width:35px;height:35px;margin-bottom:5px}.hair-choices{display:flex;gap:6px}.hair-choice{width:45px;height:47px;border-radius:9px;border:1px solid #dbd7bf;background:#ece5ce;overflow:hidden;position:relative}.hair-choice.selected{border:2px solid var(--green);background:#f8f4e5}.hair-choice img{position:absolute;width:115px;height:auto;top:-3px;left:-35px}.traveler-options .primary{margin-top:16px}.custom-extra{margin-top:13px}.custom-extra summary{font:12px var(--sans);color:var(--muted);padding:8px 0;cursor:pointer}.name-input{border:1px solid var(--border);border-radius:12px;background:#fffcef;padding:10px 12px;width:100%;font:16px var(--sans);color:var(--ink)}.accessories{display:flex;gap:12px;font:13px var(--sans);margin-top:15px}.accessories label{display:flex;align-items:center;gap:7px}
.page-content{padding:10px 20px 30px}.paper-card{background:#fffcef;border:1px solid #dddbc3;border-radius:18px;padding:17px;box-shadow:0 3px 12px #243b2210}.paper-card h2{font-size:23px;margin-bottom:8px}.page-intro{margin:3px 0 20px;color:var(--muted);font:14px/1.55 var(--sans)}.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;text-align:center;margin-bottom:18px}.stats-grid div{background:#eeeeda;border-radius:15px;padding:13px 5px;font:11px var(--sans);color:var(--muted)}.stats-grid strong{display:block;font:26px var(--serif);color:var(--green);margin-bottom:3px}.progress-track{height:8px;background:#e0e3cf;border-radius:9px;overflow:hidden;margin-top:14px}.progress-track span{display:block;height:100%;background:#6f8955}.chapter-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.chapter-tile{text-align:left;background:#eeeeda;border:1px solid #d5d9be;border-radius:15px;padding:14px;min-height:100px}.chapter-tile.current{background:#e1ebd4;border-color:#71945b}.chapter-tile strong{display:block;margin:7px 0;font-size:19px}.chapter-tile small{font:11px var(--sans);color:var(--muted)}.select{padding:11px;border:1px solid var(--border);background:#fffcef;border-radius:12px;width:100%;font:14px var(--sans);color:var(--ink)}.question-row{background:#fffcef;border:1px solid #d8d9c1;border-radius:14px;padding:14px;text-align:left;width:100%}.question-row .small{display:block;margin-bottom:5px;color:var(--muted)}.question-row>strong{display:block;font-size:17px;line-height:1.3}.question-row .row{margin-top:10px}.status-pill{font:10px var(--sans);background:#e5ead8;border-radius:10px;padding:4px 8px;white-space:nowrap}.status-pill.pending{background:#ede9da;color:#787362}.book-count{font:12px var(--sans);color:var(--muted);margin:6px 0 14px}.collection-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.collect-card{overflow:hidden;border:1px solid var(--border);border-radius:15px;background:#fffdf1;text-align:left}.collect-card img{width:100%;height:120px;object-fit:cover}.collect-card div{padding:10px}.collect-card p{font-size:14px;line-height:1.35}.collect-card .small{margin-top:6px;color:var(--muted)}.empty{text-align:center;padding:38px 15px;color:var(--muted);line-height:1.6}.empty .icon{width:42px;height:42px;margin-bottom:12px}.setting-row{padding:14px 0;display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid #dedfc9}.setting-row strong{font-size:17px}.setting-row small{display:block;font:12px/1.4 var(--sans);color:var(--muted);margin-top:4px}.toggle{width:46px;height:27px;border-radius:20px;background:#ccd2bc;padding:3px;flex-shrink:0}.toggle:after{content:'';display:block;width:21px;height:21px;background:#fffdf0;border-radius:50%;transition:transform .2s}.toggle.on{background:var(--green)}.toggle.on:after{transform:translateX(19px)}input[type=range]{accent-color:var(--green);width:135px}.profile-row{padding:12px;background:#f2eedc;border-radius:13px;border:1px solid var(--border)}.profile-row.active{background:#e1eacf;border-color:#6a8657}.profile-row button{background:none;text-align:left;flex:1}.profile-row strong{font-size:18px}.profile-row small{display:block;margin-top:4px;font:11px var(--sans);color:var(--muted)}.about-art{height:180px;width:100%;object-fit:cover;border-radius:14px;margin-bottom:16px}.about-copy{font:14px/1.65 var(--sans)}.about-copy p{margin-bottom:12px}
.veil{position:fixed;inset:0;background:#15281fc0;z-index:20;display:flex;align-items:flex-end;justify-content:center;padding-top:30px;backdrop-filter:blur(4px)}.sheet{max-width:620px;width:100%;background:var(--ivory);border-radius:27px 27px 0 0;max-height:91vh;max-height:91dvh;overflow:auto;box-shadow:0 -8px 36px #1115;padding:19px 21px 25px;animation:rise .24s ease}.sheet-handle{width:43px;height:4px;background:#c6ccb4;border-radius:5px;margin:0 auto 14px}.sheet-header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:18px}.sheet h2{font-size:27px}.scripture-group{margin:20px 0}.scripture-group h3{font-size:18px;margin-bottom:12px;color:#4e6643}.scripture-verse{font-family:var(--serif);font-style:italic;font-size:22px;line-height:1.58;margin-bottom:9px;color:#2a3b2c}.scripture-verse sup{font-style:normal;font:11px var(--sans);color:#89916e;padding-right:5px}.scripture-footer{font:11px/1.5 var(--sans);color:var(--muted);margin:15px 0}.sheet .primary{font-size:20px;min-height:49px}.drawer-links{display:grid;gap:7px}.drawer-link{display:flex;align-items:center;gap:16px;text-align:left;padding:14px 9px;background:none;border-bottom:1px solid #dde1cb;font-size:21px}.drawer-link small{font:11px var(--sans);color:var(--muted);display:block;margin-top:3px}.drawer-brand{font-size:32px;text-align:center;margin-bottom:8px}.reward-art{width:100%;height:180px;object-fit:cover;border-radius:18px;margin:12px 0}.reward-choices{display:flex;justify-content:center;gap:20px;padding:15px}.celebration{text-align:center}.celebration h2{font-size:32px}.celebration p{font-size:18px;line-height:1.5;margin:12px 0}.celebration .icon{width:56px;height:56px;color:var(--gold)}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(100px);background:#203e2ff2;color:#fffdea;border:1px solid #eff1c97d;border-radius:15px;padding:13px 18px;font:14px/1.4 var(--sans);max-width:90%;width:max-content;z-index:50;opacity:0;transition:.2s;pointer-events:none;box-shadow:var(--shadow)}#toast.visible{opacity:1;transform:translateX(-50%) translateY(0)}.save-warning{position:fixed;bottom:0;left:0;right:0;background:#ffe3bd;color:#523b1c;z-index:55;padding:8px;text-align:center;font:12px var(--sans)}.large-text .question-title{font-size:30px}.large-text .answer{font-size:25px}.large-text .scripture-verse{font-size:27px}.large-text .question-image{height:34vh;min-height:230px}.reduced-motion *, .reduced-motion *:before,.reduced-motion *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.paradise-ending{min-height:100vh;background:url('art/journey.png') center/cover;display:flex;align-items:center;padding:25px}.paradise-ending .paper-card{background:#fffbe8ec;text-align:center;padding:28px}
@keyframes rise{from{transform:translateY(35px);opacity:0}to{transform:translateY(0);opacity:1}}
@media(min-width:621px){body{background:#e5e7d4}#app{box-shadow:0 0 65px #1f332433}.question-image{height:430px}.traveler-scene{height:440px}}@media(max-height:740px){.question-image{height:36vh;min-height:240px}.question-card{padding-top:16px}.question-title{font-size:22px}.answer{min-height:47px;font-size:20px}.answers{gap:7px}.traveler-scene{height:40vh;min-height:275px}.traveler-screen .bar h1{font-size:24px}.bar{padding:10px 14px}.traveler-options .primary{margin-top:12px}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}



.study-art{width:100%;height:220px;object-fit:cover;border-radius:18px;margin:2px 0 22px}.study-question{font:700 28px/1.2 var(--serif);margin:14px 0 23px}.study-answer{font:19px/1.6 var(--serif);margin-top:10px;white-space:pre-line}.study-scripture{margin:20px 0 10px}.study-pager{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:25px 0 15px}.study-pager .secondary{width:auto;min-width:95px;font-size:16px;padding:10px}.study-pager span{font:12px var(--sans);white-space:nowrap}button:disabled{cursor:default;opacity:.6}.large-text .study-answer{font-size:23px}.large-text .study-question{font-size:32px}
.traveler-screen .bar h1{font-size:23px;white-space:nowrap}.option-columns>div:first-child .swatches{gap:5px;flex-wrap:nowrap}.option-columns>div:first-child .swatch{width:25px;height:25px;min-width:25px}.traveler-screen .option-columns{grid-template-columns:1fr 1fr;gap:10px}.traveler-screen .option-columns>div+div{padding-left:10px}.traveler-screen .hair-choice{width:43px}.traveler-screen .hair-choices{gap:4px}



/* The answer bank is playable while original artwork remains in production. */
.question-art-pending{min-height:170px;padding-top:95px;display:flex;align-items:center;justify-content:center;gap:10px;background:#e9eddf;color:#576747;font-size:14px;padding:95px 24px 24px}
.card-art-pending{height:125px;background:#e9eddf;display:grid;place-items:center;color:#69784b}
.built-answer{min-height:72px;padding:16px;margin:12px 0 18px;border:1px solid #c5ccb3;border-radius:14px;background:#f2f3e9;line-height:1.65;overflow-wrap:anywhere}
.word-bank .word{overflow-wrap:anywhere;max-width:100%}

/* Keep every edge of question artwork visible on phones and in collected cards. */
.challenge .question-image,.study-screen .study-art{display:block;width:100%;height:auto;max-height:52vh;object-fit:contain;object-position:center;background:#f5f0df;margin:0 auto;}
.challenge .question-card{margin-top:0;}
.collect-card img{object-fit:contain;object-position:center;background:#f5f0df;}
.tries-left{font-size:.85rem;text-align:center;color:#647044;margin:12px 0;}

.challenge .bar{position:relative;background:var(--ivory);}

/* Journey milestones and original vector garden ornaments. */
.chapter-sign{position:absolute;z-index:3;top:137px;left:20px;max-width:64%;padding:9px 15px;background:#fffcece8;border:1px solid #fffce5;border-radius:13px;box-shadow:0 4px 15px #34562a1a;text-align:left}.chapter-sign span{display:block;font-size:20px;line-height:1.1}.chapter-sign small{display:block;margin-top:4px;font:10px var(--sans);color:var(--muted)}.journey .map-marker{width:35px;height:30px;font-size:16px;border-width:2px}.journey .map-marker.current{width:46px;height:38px;font-size:21px;box-shadow:0 0 0 4px #fff8d560,0 3px 1px #3547237a}.journey .map-traveler{width:93px;height:140px}.map-discovery{position:absolute;z-index:4;left:14px;bottom:21%;padding:9px 10px;border-radius:12px;background:#fffce8ed;max-width:55%;display:flex;align-items:center;gap:8px;text-align:left;font-size:14px;box-shadow:var(--shadow)}.map-discovery small{display:block;font:9px var(--sans);color:var(--muted);margin-top:3px}.chapter-complete{background:#e4ecd5;border-color:#b8a669}.chapter-tile .small .icon{width:17px;height:17px}.owner-tools{margin-bottom:16px;display:grid;gap:9px}.collection-summary{display:flex;justify-content:space-between;gap:10px;padding:6px 3px 17px;font:12px var(--sans);color:var(--muted)}.collection-summary strong{font:25px var(--serif);color:var(--green);display:block}.collection-tabs{display:flex;gap:3px;padding:4px;background:#e9ebd9;border-radius:14px;margin:0 0 20px;position:sticky;top:4px;z-index:5}.collection-tabs button{flex:1;min-height:43px;background:transparent;border-radius:10px;font:12px var(--sans);padding:9px 5px}.collection-tabs button.selected{background:var(--green);color:var(--ivory)}.collection-tabs button span{display:inline-block;border-radius:100%;padding:1px 4px;background:#b89855;color:#fff;font-size:10px}.collection-grid .collect-card{border:2px solid var(--card-border,var(--border))}.reward-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.reward-card{position:relative;background:#fffcef;border:1px solid #d8d9bd;border-radius:17px;padding:12px 10px;min-width:0;text-align:center;display:flex;flex-direction:column;align-items:center}.reward-card .reward-illustration{width:96px;height:96px}.reward-card strong{font-size:16px;line-height:1.2;display:block;margin-top:4px}.reward-card span{font:10px/1.35 var(--sans);color:var(--muted);display:block;margin-top:7px}.reward-card>.icon{position:absolute;top:9px;right:9px;width:15px;height:15px;color:#7e876c}.reward-card.earned{background:#f9f6e5;border-color:#a5b486}.unearned .reward-illustration,.unearned .chapter-medallion,.unearned .landmark-vignette{opacity:.4;filter:saturate(.35)}.reward-illustration{display:block;width:100px;height:100px;overflow:visible}.reward-waiting{margin-bottom:18px}.reward-waiting .primary{font-size:17px;margin-top:10px}.reward-detail{text-align:center;display:grid;gap:18px}.reward-detail>.reward-illustration{width:150px;height:150px;margin:auto}.reward-detail p{line-height:1.5}.reward-hero{width:135px;height:135px;margin:5px auto}.celebration h3{font-size:25px;margin:10px 0}.celebration .reward-choices{padding:8px 0;gap:9px}.palette-choice{flex:1;min-width:0;padding:7px 2px 12px;border:1px solid #c7d1b1;border-radius:14px;background:#fffced}.palette-choice .reward-illustration{width:100%;height:auto;max-height:96px}.palette-choice strong{font:13px var(--sans)}.badge-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.badge-card{padding:17px 9px;border:1px solid #d7d9c0;border-radius:18px;background:#fffcee;text-align:center}.badge-card strong{display:block;font-size:16px;line-height:1.3;margin:10px 0 6px}.badge-card small{font:10px var(--sans);color:var(--muted)}.chapter-medallion{position:relative;background:linear-gradient(145deg,#f0d98d,#c8ac5e);border:4px double #e9d59a;border-radius:50%;width:68px;height:68px;display:grid;place-items:center;margin:auto;box-shadow:0 3px 8px #66572f20;color:#5d663d}.chapter-medallion .icon{width:35px;height:35px;opacity:.5}.chapter-medallion span{position:absolute;font:700 24px var(--serif);text-shadow:0 1px #fff9}.landmark-list{display:grid;gap:16px}.landmark-card{border:1px solid #d1d8be;border-radius:18px;overflow:hidden;background:#fffced}.landmark-card>div:last-child{position:relative;padding:15px}.landmark-card h3{font-size:22px;margin:7px 0}.landmark-card p{font:12px var(--sans);color:var(--muted)}.landmark-card>div:last-child>.icon{position:absolute;right:15px;top:20px}.landmark-vignette{height:136px;background:linear-gradient(#dbece6 0%,#e5ecce 59%,#acbc80 60%,#c2cc98);position:relative;isolation:isolate;overflow:hidden}.landmark-vignette:after{content:'';position:absolute;inset:auto -10% -70% 10%;height:120%;background:#e3dab3;border-radius:50%;z-index:-1}.landscape-ornament{position:absolute;bottom:10px;width:110px;height:110px}.ornament-0{left:8%;}.ornament-1{left:38%;bottom:25px;width:105px;height:105px}.ornament-2{right:7%;width:82px;height:82px;bottom:3px}.equipped-charm{position:absolute;z-index:8;left:55%;top:29%;width:12%;height:12%;filter:drop-shadow(0 1px 1px #2336)}.equipped-charm .reward-illustration{width:100%;height:100%}.person .reward-shirt{opacity:.5;mix-blend-mode:multiply;background:var(--reward-color);position:absolute;inset:0;clip-path:polygon(29% 20%,39% 19%,46% 27%,54% 27%,59% 19%,65% 20%,72% 27%,74% 40%,65% 42%,62% 39%,40% 39%,35% 42%,27% 40%,29% 29%);pointer-events:none}.person.male .reward-shirt{clip-path:polygon(29% 17%,43% 16%,50% 23%,57% 16%,67% 17%,75% 27%,75% 40%,68% 42%,64% 40%,35% 40%,31% 42%,24% 40%,25% 29%)}
.garden-intro{padding:5px 23px 22px;text-align:center}.garden-intro h2{font-size:27px;margin:8px 0 10px}.garden-intro p{font:12px/1.5 var(--sans);color:var(--muted)}.garden-stage{height:460px;position:relative;overflow:hidden;border-top:1px solid #cad6bb;border-bottom:1px solid #c1cfa9;background:#b9c99b;isolation:isolate;touch-action:manipulation}.garden-horizon{position:absolute;inset:0 0 52%;background:url('art/journey.png') center 22%/cover;mask-image:linear-gradient(#000 75%,transparent);-webkit-mask-image:linear-gradient(#000 75%,transparent)}.garden-lawn{position:absolute;inset:38% -25% -13%;background:radial-gradient(ellipse at 30% 25%,#d9dfa8 0%,#b8cb8b 48%,#86a66e 100%);border-radius:50% 45% 0 0}.garden-lawn:after{content:'';position:absolute;inset:20% 10% 0;background:radial-gradient(ellipse at center,#ffffff22 0%,transparent 55%);background-size:23px 27px}.garden-stream{position:absolute;width:170%;height:70px;left:-20%;top:52%;background:linear-gradient(180deg,#91b7ad,#b6d5bc 60%,#82acaa);border:5px solid #a2b283;border-radius:50%;transform:rotate(-18deg)}.garden-path{position:absolute;bottom:-15%;left:16%;width:24%;height:60%;border-radius:60% 40% 0 0;background:linear-gradient(90deg,#cbb98b,#e2d3ab,#d3c097);transform:rotate(20deg);opacity:.9}.garden-traveler{height:148px;width:99px;position:absolute;bottom:3%;left:15%;z-index:90;pointer-events:none}.garden-empty{position:absolute;top:48%;left:10%;right:10%;z-index:100;background:#fffcebec;border:1px solid #d2d8b8;border-radius:17px;text-align:center;padding:18px;font:14px/1.5 var(--sans)}.placed-decoration{position:absolute;transform:translate(-50%,-80%) rotate(var(--rotation));background:transparent;width:84px;height:84px;padding:0;border:2px solid transparent;border-radius:14px;cursor:move}.placed-decoration>.reward-illustration{width:100%;height:100%;pointer-events:none;filter:drop-shadow(0 4px 2px #283c2520)}.placed-decoration.selected{border:2px dashed #31573a;background:#fff5;box-shadow:0 0 0 3px #ffffff40}.garden-toolbar{padding:17px 20px;background:#ecf0dc;border-bottom:1px solid #d4d9c2}.garden-toolbar p{font:13px/1.5 var(--sans);color:#526143;text-align:center}.garden-actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:center;margin-top:12px}.garden-actions .secondary{font-size:13px;min-height:42px;padding:8px 10px;background:#faf8e9}.garden-nudge{display:flex;justify-content:center;gap:8px;margin-top:10px}.garden-nudge .secondary{width:45px;min-height:44px;padding:6px;font-size:22px}.garden-inventory{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding-top:9px}.garden-item{background:#fffced;padding:8px 5px;border:1px solid #d2d8bd;border-radius:13px;min-width:0}.garden-item .reward-illustration{width:100%;height:auto}.garden-item span{display:block;font-size:12px;line-height:1.25}.garden-item small{display:block;font:9px var(--sans);color:var(--muted);margin-top:5px}.garden-item.selected{border:2px solid #5d7d47;background:#e6ecd6}.paradise-ending{position:relative}.ending-menu{position:absolute;left:18px;top:20px}.paradise-ending .paper-card{width:100%;margin:60px auto 0}.paradise-ending .primary{font-size:23px}.completion-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;background:#e5ecd5;border-radius:14px;padding:12px 6px;margin:20px 0}.completion-stats span{font:10px var(--sans);color:var(--muted)}.completion-stats strong{font:25px var(--serif);display:block;color:var(--green);margin-bottom:3px}.finale-emblem{width:85px;height:85px;display:grid;place-items:center;margin:0 auto 20px;border-radius:50%;background:#e6ebd1;border:3px double #c6b56b}.finale-emblem .icon{color:#758f53}.celebration-unlock{text-align:center}.celebration-unlock .chapter-medallion{width:94px;height:94px;margin:18px auto}.celebration-unlock .chapter-medallion span{font-size:32px}.celebration-unlock h3{font-size:25px;margin:10px 0}.celebration-unlock p{font:14px/1.6 var(--sans);color:var(--muted);margin:12px 0 20px}.large-text .collection-tabs button{font-size:14px}.large-text .garden-toolbar p{font-size:16px}.large-text .garden-item span{font-size:15px}.large-text .reward-card strong{font-size:19px}.large-text .badge-card strong{font-size:19px}
@media(max-width:370px){.journey-pill{font-size:10px;padding:7px 9px}.chapter-sign span{font-size:17px}.map-discovery{font-size:12px}.reward-card .reward-illustration{width:80px;height:80px}.garden-stage{height:415px}.placed-decoration{width:74px;height:74px}.garden-intro h2{font-size:24px}.collection-tabs button{font-size:11px}.large-text .collection-tabs button{font-size:12px}.traveler-screen .bar h1{white-space:normal}}@media(max-height:740px){.chapter-sign{top:127px;max-width:62%}.chapter-sign span{font-size:16px}.journey .map-traveler{width:77px;height:116px}.journey .map-marker{width:30px;height:27px;font-size:14px}.journey .map-marker.current{width:40px;height:34px}.signpost{left:3%;top:35%}.signpost span{font-size:10px;width:90px;padding:6px 8px}.chapter-sign small{font-size:9px}}
.chapter-atmosphere{position:absolute;inset:0;pointer-events:none;mix-blend-mode:soft-light;z-index:1;opacity:.12}.chapter-atmosphere.dawn{background:linear-gradient(#e5c591,transparent 65%)}.chapter-atmosphere.river{background:linear-gradient(#8bc4c1,transparent 65%)}.chapter-atmosphere.meadow{background:linear-gradient(#a6c58c,transparent 65%)}.chapter-botanical{position:absolute;left:0;top:61%;z-index:2;pointer-events:none;width:67px;height:67px;opacity:.85}.chapter-botanical .reward-illustration{width:100%;height:100%}.collection-grid .collect-card{border-style:var(--card-border-style,solid);border-width:3px}.person .reward-shirt.pattern-1{background-image:repeating-linear-gradient(0deg,transparent 0 11px,#fff5 11px 13px)}.person .reward-shirt.pattern-2{background-image:linear-gradient(90deg,transparent 48%,#fff6 48% 52%,transparent 52%)}.person .reward-shirt.pattern-3{background-image:repeating-linear-gradient(0deg,transparent 0 5px,#0002 5px 6px)}.person .reward-shirt.pattern-4{background-image:repeating-linear-gradient(90deg,transparent 0 7px,#fff4 7px 8px)}.person .reward-shirt.pattern-5{background-image:repeating-linear-gradient(0deg,transparent 0 13px,#fff5 13px 16px,#0001 16px 18px)}.garden-themes{display:flex;gap:7px;margin:4px 0 14px}.garden-themes button{flex:1;font:12px var(--sans);padding:8px;min-height:43px}.garden-themes .selected{background:#d9e5c9;border-color:#577943}.garden-stage.dawn .garden-horizon{filter:sepia(.12) saturate(1.2)}.garden-stage.dawn .garden-lawn{background:radial-gradient(ellipse at 30% 25%,#ebe1b3,#caca91 48%,#8fa268 100%)}.garden-stage.river .garden-horizon{filter:saturate(.9) hue-rotate(6deg)}.garden-stage.river .garden-lawn{background:radial-gradient(ellipse at 30% 25%,#d3e0bc,#adc5a4 48%,#779b7c 100%)}
.landscape-scene{display:block;width:100%;height:100%;object-fit:cover}.landmark-vignette:has(.landscape-scene):after{display:none}
/* Six original illustrated regions; each hosts five of the thirty chapters. */
.chapter-tile{position:relative;isolation:isolate;overflow:hidden;background:linear-gradient(110deg,#f3f2e4ed,#f3f2e4df),var(--region-art) center/cover}.chapter-tile.current{background:linear-gradient(110deg,#eef3e3e8,#eef3e3d9),var(--region-art) center/cover}.chapter-tile.chapter-complete{background:linear-gradient(110deg,#eef3e3e8,#eef3e3c9),var(--region-art) center/cover}.chapter-sign small{max-width:220px;line-height:1.4}

/* Completed journeys stay browsable; resetting is an explicit profile action. */
.completed-stop-list{display:grid;gap:10px;margin-bottom:16px}.completed-question{display:grid;gap:8px;text-align:left;background:#f7f5e9;border:1px solid #c8d1b5;border-radius:13px;padding:14px;min-height:64px}.completed-question span{display:flex;align-items:center;gap:7px;color:#65774b;font:12px var(--sans)}.completed-question strong{font-size:18px;font-weight:400;line-height:1.4}.completed-question .icon{width:17px;height:17px}.reset-card{display:grid;gap:14px}.reset-card p,.reset-warning{font:14px/1.6 var(--sans);color:var(--muted)}.reset-warning{margin:0 0 16px}.danger-button.secondary{color:#803f30;border-color:#b88d7f}.danger-button.primary{background:#803f30;color:#fffbed}.paradise-ending .secondary{margin-top:12px;width:100%}.large-text .completed-question strong{font-size:21px}.large-text .reset-card p,.large-text .reset-warning{font-size:17px}
/* Keep map stops available even with larger text on short phones. */
.journey-bottom{pointer-events:none}.journey-bottom button{pointer-events:auto}.journey-bottom .primary,.large-text .journey-bottom .primary{font-size:24px;line-height:1.2;padding:12px 18px}.journey-progress{flex-wrap:wrap;row-gap:3px}.map-discovery{top:202px;bottom:auto;max-width:35%;font-size:12px;padding:8px}.map-discovery .icon{flex-shrink:0;width:19px}.map-discovery small{font-size:9px}

#game-language{font:16px var(--sans);color:var(--green);background:#fffced;border:1px solid var(--border);border-radius:9px;padding:10px;max-width:58%}.large-text #game-language{font-size:18px}html[lang="es"] .journey-bottom .primary{font-size:21px}html[lang="es"] .bar h1{white-space:normal;font-size:clamp(22px,6vw,29px)}

@media(max-height:740px){.map-discovery{top:188px}}

/* One continuous skin-only layer; no clipped brightness rectangles. */
.person .skin-tone{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible}

/* Growing animal companions. Map artwork stays non-interactive so stops remain tappable. */
.companion-sprite{display:block;width:100px;height:100px;flex:none;background-repeat:no-repeat;background-size:300% 100%;filter:drop-shadow(0 3px 2px #374c2520)}
.journey .map-companion{position:absolute;left:-20px;bottom:-3px;width:46px;height:46px;z-index:5;pointer-events:none}
.journey .map-companion.companion-young{width:56px;height:56px;left:-24px}
.journey .map-companion.companion-adult{width:66px;height:66px;left:-27px}
.journey .bar h1{font-size:23px;padding:11px 6px;min-width:0;white-space:nowrap}
.companion-map-summary{position:relative;width:44px;height:44px;padding:2px;border:1px solid #ffffffb3;box-shadow:0 3px 10px #17311e25;color:var(--green)}
.companion-map-summary .companion-sprite{width:38px;height:38px}
.companion-map-summary>.icon{width:24px;height:24px;flex:none}
.companion-screen{background:linear-gradient(#f8f6e9,#eaf0df)}
.companion-screen .page-content{padding-top:12px}
.companion-screen .bar h1{font-size:25px;line-height:1.15}
.companion-heading{font-size:28px;margin:8px 0 10px;line-height:1.15}
.companion-screen .page-intro{margin-bottom:18px;font-size:16px}
.companion-existing-note{padding:12px 14px;border-radius:12px;background:#e1ead2;color:#3f5b3b;font:12px/1.6 var(--sans);margin-bottom:18px}
.companion-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:24px}
.companion-choice{position:relative;display:flex;flex-direction:column;align-items:center;padding:10px 9px 13px;min-width:0;min-height:164px;border:2px solid #d8ddc4;border-radius:20px;background:#fffdf0;color:var(--ink);box-shadow:0 3px 8px #4b633a08}
.companion-choice .companion-sprite{width:100%;height:0;padding-top:100%}
.companion-choice strong{display:block;font:600 17px/1.2 var(--serif);margin-top:5px}
.companion-choice small{display:block;font:11px var(--sans);margin-top:6px;color:var(--muted)}
.companion-choice.selected{border-color:#68814c;background:#edf2de;box-shadow:0 0 0 2px #68814c20}
.companion-choice.selected>.icon{position:absolute;top:10px;right:10px;width:20px;height:20px;padding:3px;border-radius:50%;background:var(--green);color:#fffce9}
.companion-choice:focus-visible,.companion-map-summary:focus-visible{outline:3px solid #365638;outline-offset:3px}
.companion-growth{padding:18px 13px;text-align:center}
.companion-growth h3{font-size:23px;margin-bottom:12px}
.companion-growth-stages{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}
.companion-growth-stages>div{padding:7px 2px;border-radius:13px}
.companion-growth-stages>div.current{background:#e8eed5}
.companion-growth-stages .companion-sprite{width:100%;height:0;padding-top:100%}
.companion-growth-stages strong{display:block;font:600 13px var(--sans)}
.companion-growth-stages small{display:block;font:10px/1.4 var(--sans);color:var(--muted);margin-top:5px}
.companion-current-stage{display:block;color:#416331;font:10px/1.3 var(--sans);margin-top:5px}
.companion-growth .companion-growth-note{font:12px/1.6 var(--sans);color:var(--muted);margin:15px 0 0}
.companion-confirm{margin-top:20px}
.companion-confirm p{font:12px/1.5 var(--sans);text-align:center;color:var(--muted);margin:12px 0 0}
.companion-confirm .primary{font-size:21px}
.large-text .companion-choice strong{font-size:20px}
.large-text .companion-screen .page-intro{font-size:20px}
.large-text .companion-existing-note,.large-text .companion-confirm p,.large-text .companion-growth .companion-growth-note{font-size:15px}
@media(min-width:460px){.companion-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:359px){.journey .map-companion.companion-adult{left:-22px;width:60px;height:60px}.companion-screen .bar h1{font-size:22px}.journey .bar h1{font-size:19px}.companion-grid{gap:9px}}

/* Web account chrome remains outside the game and never covers map controls. */
.web-game{--web-toolbar-height:38px;padding-top:var(--web-toolbar-height)}
#web-toolbar{height:var(--web-toolbar-height);position:fixed;inset:0 0 auto;z-index:200;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 max(12px,calc((100vw - 600px)/2));background:#173d2c;color:#f6f2dd;border-bottom:1px solid #fff3;font:11px/1.2 var(--sans)}
#web-toolbar a{color:#fff8dd;text-decoration:none;white-space:nowrap;padding:8px 0}
#web-save-status{text-align:center;opacity:.87;font-size:10px}
.web-game #app,.web-game #app>.screen{min-height:calc(100dvh - var(--web-toolbar-height))}
.web-game .journey{height:calc(100dvh - var(--web-toolbar-height))}
#web-loading{position:fixed;inset:0;z-index:250;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;background:#f7f1df;text-align:center;padding:30px}
#web-loading h1{font-size:34px;color:#244a34}#web-loading p{font:15px var(--sans);color:#5c6b50}.web-loading-leaf{font-size:70px;color:#718550}
#web-notice{position:fixed;inset:0;z-index:300;display:flex;align-items:center;justify-content:center;background:#10291de6;padding:20px;overflow:auto}
.web-notice-card{background:#fffbed;border:1px solid #cdd3b5;border-radius:24px;max-width:440px;padding:28px;box-shadow:0 20px 90px #0004}
.web-notice-card h2{font-size:29px;margin:10px 0 14px}.web-notice-card p:not(.eyebrow){font:15px/1.65 var(--sans);margin-bottom:22px}.web-notice-card .primary{font-size:20px}.web-notice-card a{text-decoration:none}
#web-loading[hidden],#web-notice[hidden]{display:none}

/* Both travelers share one ground circle. Babies are deliberately larger than
   the Android 46px sprites, with enough floor beneath every growth stage. */
.journey .map-traveler{width:184px;height:174px;isolation:isolate}
.journey .map-traveler::before{display:none}
.journey .map-traveler>.person{position:absolute;width:116px;height:174px;right:0;bottom:0;z-index:2}
.journey .shared-ground{position:absolute;left:3%;bottom:-2px;width:94%;height:27px;border:3px solid #ffffdf;border-radius:50%;background:radial-gradient(ellipse,#e9e4b6e8,#cbd5a7d9);box-shadow:0 4px 8px #14332266;z-index:0}
.journey .map-companion{left:0;bottom:1px;width:90px;height:90px;z-index:3;filter:drop-shadow(0 3px 2px #173b2426)}
.journey .map-companion.companion-young{left:0;width:98px;height:98px}
.journey .map-companion.companion-adult{left:-1px;width:108px;height:108px}
@media(max-height:800px),(max-width:390px){
 .journey .map-traveler{width:156px;height:140px}
 .journey .map-traveler>.person{width:93px;height:140px}
 .journey .shared-ground{left:2%;width:96%;height:24px}
 .journey .map-companion{left:0;bottom:1px;width:78px;height:78px}
 .journey .map-companion.companion-young{left:0;width:86px;height:86px}
 .journey .map-companion.companion-adult{left:-1px;width:94px;height:94px}
}
@media(max-width:340px){
 #web-toolbar{gap:6px;font-size:10px;padding:0 9px}#web-save-status{font-size:9px;max-width:120px}
 .journey .map-traveler{width:142px;height:132px}
 .journey .map-traveler>.person{width:88px;height:132px}
 .journey .map-companion{width:74px;height:74px}
 .journey .map-companion.companion-young{width:80px;height:80px}
 .journey .map-companion.companion-adult{width:87px;height:87px}
}

/* The web edition uses the whole browser canvas. Individual reading and
   editing surfaces keep a comfortable line length inside that canvas. */
body.web-game {
  --web-toolbar-height: calc(46px + env(safe-area-inset-top, 0px));
  --page-gutter: clamp(16px, 2.6vw, 44px);
}
.web-game #app { max-width: none; box-shadow: none; }
.web-game #web-toolbar {
  gap: clamp(5px, 1.4vw, 20px);
  padding: env(safe-area-inset-top, 0px) max(var(--page-gutter), env(safe-area-inset-right, 0px)) 0 max(var(--page-gutter), env(safe-area-inset-left, 0px));
  font-size: 12px;
}
.web-game #web-save-status { flex: 1; min-width: 0; font-size: 11px; }
.web-game #web-toolbar a { display: inline-flex; align-items: center; min-height: 42px; }
.web-game .collection-tabs { top: var(--web-toolbar-height); }
.web-game .page-content, .web-game .traveler-options {
  width: min(100%, 900px);
  margin-inline: auto;
}
.web-game .screen:not(.journey) > .bar { padding-inline: var(--page-gutter); }
.web-game .sex-tabs { width: min(calc(100% - 42px), 560px); margin-inline: auto; }
.web-game .paradise-ending .paper-card { max-width: 570px; }
.web-game .companion-growth-stages,.web-game .companion-confirm {
  max-width: 560px;
  margin-inline: auto;
}
.web-game .wide-map .journey-art { background-size: cover; background-position: center 18%; }
.web-game .wide-map .map-traveler {
  transform: translate(-50%, -100%) scale(var(--traveler-scale, 1));
  transform-origin: center bottom;
}

@media (min-width: 600px), (min-width: 480px) and (orientation: landscape) {
  .web-game .journey { min-height: 352px !important; }
  .web-game .journey .bar {
    gap: 9px;
    padding: 14px var(--page-gutter) 0;
  }
  .web-game .journey .bar-title {
    flex: 0 1 auto;
    padding: 9px clamp(16px, 2.4vw, 40px);
    margin-right: auto;
    box-shadow: var(--shadow);
  }
  .web-game .journey-top { left: var(--page-gutter); right: var(--page-gutter); top: 72px; pointer-events: none; }
  .web-game .journey-top button { pointer-events: auto; }
  .web-game .chapter-sign { left: var(--page-gutter); top: 117px; }
  .web-game .map-discovery { left: var(--page-gutter); top: 189px; max-width: 220px; }
  .web-game .signpost { left: var(--page-gutter); top: 40%; }
  .web-game .chapter-botanical { left: var(--page-gutter); }
  .web-game .journey-bottom {
    width: clamp(190px, 30vw, 330px);
    left: var(--page-gutter);
    right: auto;
    bottom: max(18px, env(safe-area-inset-bottom, 0px));
  }
  .web-game .reward-chip {
    z-index: 5;
    right: calc(var(--page-gutter) + 106px);
    top: 14px;
    bottom: auto;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    height: 44px;
    width: auto;
    max-width: 28vw;
    padding: 5px 12px;
    border-radius: 12px;
    transform: none;
    background-color: #fbf6dfed;
  }
  .web-game .reward-chip .reward-caption { display: none; }
  .web-game .journey-progress {
    width: fit-content;
    max-width: 100%;
    margin: 0 auto 8px;
    padding: 5px 10px;
    background: #173d2ce8;
    border-radius: 12px;
    font-size: 12px;
  }
  .web-game .companion-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .web-game .chapter-grid,.web-game .collection-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .web-game .garden-inventory { grid-template-columns: repeat(5, minmax(0,1fr)); }
}
@media (min-width: 860px) {
  .web-game .challenge {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    grid-template-rows: auto 1fr;
    background: #f2edda;
  }
  .web-game .challenge > .bar { grid-column: 1 / -1; }
  .web-game .challenge .bar-inner { padding: 3px 8px; }
  .web-game .challenge > .question-image,
  .web-game .challenge > .question-art-pending {
    grid-area: 2 / 1;
    align-self: start;
    position: sticky;
    top: var(--web-toolbar-height);
    height: calc(100vh - var(--web-toolbar-height) - 78px);
    height: calc(100dvh - var(--web-toolbar-height) - 78px);
    min-height: 260px;
    max-height: 850px;
    padding: 0;
    object-fit: contain;
    background: #e9e7d5;
  }
  .web-game .challenge .question-card {
    min-height: 0;
    align-self: stretch;
    align-content: center;
    grid-area: 2 / 2;
    border-radius: 0;
    padding: clamp(23px, 3.3vw, 60px) max(clamp(22px, 3vw, 56px), calc((100% - 620px) / 2));
  }
  .web-game .challenge .question-title { text-wrap: balance; }
  .web-game .challenge .question-meta { margin-bottom: 12px; }
  .web-game .companion-screen .page-content { width: min(100%, 1120px); }
  .web-game .companion-grid { grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); }
  .web-game .companion-choice { min-height: 158px; }
}
@media (min-width: 480px) and (orientation: landscape) and (max-height: 650px) {
  .web-game .journey .bar { padding-top: 7px; }
  .web-game .journey-top { top: 58px; }
  .web-game .chapter-sign { top: 100px; }
  .web-game .map-discovery { top: 158px; }
  .web-game .signpost,.web-game .chapter-botanical { display: none; }
  .web-game .reward-chip { top: 7px; padding: 5px 8px; font-size: 11px; }
  .web-game .journey-bottom .primary { min-height: 48px; padding: 9px 14px; font-size: 21px; }
}
@media (max-width: 599px) {
  .web-game #web-toolbar {
    font-size: 11px;
    gap: 6px;
    padding-inline: max(8px, env(safe-area-inset-left, 0px)) max(8px, env(safe-area-inset-right, 0px));
  }
  .web-game #web-save-status { font-size: 10px; max-width: none; }
}
@media (max-width: 350px) {
  .web-game #web-toolbar { font-size: 10px; gap: 4px; }
  .web-game #web-save-status { font-size: 9px; }
}

@media (min-width: 480px) and (orientation: landscape) and (max-height: 430px) {
  .web-game .journey { min-height: 258px !important; }
  .web-game .journey .bar { padding-top: 5px; }
  .web-game .journey .bar-title { font-size: 20px; padding: 8px 14px; }
  .web-game .journey-top { top: 53px; }
  .web-game .chapter-sign { top: 93px; max-width: 160px; }
  .web-game .map-discovery { top: 148px; max-width: 150px; }
  .web-game .journey-bottom { width: clamp(158px, 27vw, 220px); bottom: 8px; }
  .web-game .journey-progress { font-size: 10px; margin-bottom: 4px; }
  .web-game .journey-bottom .primary { min-height: 42px; font-size: 18px; }
  .web-game .reward-chip { top: 5px; font-size: 10px; }
  .web-game .reward-chip strong { font-size: 16px; }
}
