/* RIO adventures: lagoon blue, sun-yellow stamps, and tactile travel cards. */
#adventure-invitation,#rio-adventures{scroll-margin-top:105px}
body:not([data-page=home]) #adventure-invitation,body:not([data-page=island]) #rio-adventures{display:none!important}
body[data-page=island] main>.section#rio-adventures{display:block!important;background:#087b89;color:#fffaf0;padding:44px 0 32px}
.adventure-heading{display:flex;justify-content:space-between;align-items:center;gap:25px;margin-bottom:25px}.adventure-heading h2{margin:0;font-size:clamp(2.1rem,4.2vw,3.5rem)}.adventure-heading p{margin:12px 0 0}.adventure-heading .kicker{color:#ffe38d;margin:0 0 12px;font-size:.875rem}
.passport-badge{display:flex;gap:10px;align-items:center;flex-shrink:0;border:1px solid #5cb1b6;border-radius:16px;padding:14px 18px;color:#fff5c7;font:700 3rem/1 Georgia,serif}.passport-badge span{font:400 .875rem/1.5 Arial,sans-serif;max-width:130px}
.adventure-tabs{display:flex;gap:8px;overflow-x:auto;padding:4px 2px 0}.adventure-tabs button{flex:1;padding:16px 20px;min-height:54px;background:#086170;color:#e4ffff;border:1px solid #4096a0;border-bottom:0;border-radius:14px 14px 0 0;font-weight:700;font-size:1rem;white-space:nowrap}.adventure-tabs button span{color:#9bdddf;margin-right:8px}.adventure-tabs button[aria-selected=true]{color:#073e49;background:#fff9ed;border-color:#fff9ed}.adventure-tabs button[aria-selected=true] span{color:#b64309}
#adventure-panel{background:#fff9ed;color:#073e49;border-radius:0 0 18px 18px;overflow:hidden;min-height:375px}.adventure-split{display:grid;grid-template-columns:.8fr 1.2fr;min-height:400px}.quiz-cover,.character-scene{position:relative;overflow:hidden;min-height:420px}.quiz-cover img,.character-scene>img{position:absolute;width:100%;height:100%;object-fit:cover;object-position:50% 23%}.adventure-body{padding:40px;align-self:center}.adventure-body h3,.quiz-question h3,.passport-top h3,.trail-card>h3{font:700 clamp(1.8rem,3vw,2.6rem)/1.15 Georgia,serif;margin:14px 0 18px;letter-spacing:-.025em}.adventure-body p{line-height:1.65}.adventure-body .kicker{font-size:.875rem;line-height:1.6;letter-spacing:.06em}.adventure-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:22px 0}.adventure-actions .btn{font-size:.875rem;padding:12px 16px}.adventure-section .adventure-note{color:#d1eff0;font-size:.875rem;line-height:1.5;margin:12px 0}.adventure-body .adventure-note,.island-predictions .adventure-note{color:#4d6669}.adventure-status{min-height:1.3em;font-size:.95rem;margin:8px 0}.adventure-reset{font-size:.875rem;color:#d3eded;max-width:560px}.adventure-reset summary{cursor:pointer;padding:8px 0}.adventure-reset .btn{margin:10px 10px 10px 0}.adventure-reset p{line-height:1.5}
.quiz-question{padding:34px 42px;max-width:900px;margin:auto}.quiz-progress{display:flex;align-items:center;gap:25px;font-size:.875rem;font-weight:700}.quiz-progress progress{flex:1}progress{height:8px;border:0;border-radius:20px;overflow:hidden;background:#d6e4df;accent-color:#ff6a24;width:100%}progress::-webkit-progress-bar{background:#d6e4df}progress::-webkit-progress-value{background:#ec6322;border-radius:20px}.quiz-options{border:0;padding:0;margin:20px 0;display:grid;grid-template-columns:1fr 1fr;gap:12px}.quiz-options label{display:flex;gap:12px;align-items:center;position:relative;min-height:74px;padding:15px;border:1px solid #becac1;border-radius:10px;cursor:pointer;background:#fffdf7;font-size:1rem;line-height:1.35}.quiz-options input{accent-color:#087b89;width:18px;height:18px;flex-shrink:0}.quiz-options label:has(:checked){border:2px solid #087b89;background:#dcf3e6;padding:14px}.option-letter{font-weight:bold;color:#b34917}.character-scene>div{position:absolute;inset:auto 0 0;padding:70px 28px 28px;background:linear-gradient(transparent,#063c48);color:#fff9ed}.character-scene h3{font:700 3.5rem Georgia,serif;margin:12px 0 0}.character-scene span{font-size:.875rem}.shared-note{border-left:3px solid #ed6324;padding:12px;background:#f7eacd}
.passport-paper{padding:32px 40px;background:#fff6df}.passport-top{display:flex;justify-content:space-between;gap:15px;align-items:center}.passport-top h3{margin-top:0}.passport-top>strong{font:700 2rem Georgia,serif;white-space:nowrap}.passport-top .kicker{margin:0 0 8px}.passport-stamps{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:28px 0}.passport-stamp{min-width:0;border:2px dashed #afa992;background:transparent;padding:18px 12px;border-radius:48%;color:#706f60;min-height:132px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px}.passport-stamp b{font:700 1.65rem Georgia,serif}.passport-stamp span{font-size:.875rem;max-width:170px;line-height:1.4}.passport-stamp.stamped{border:3px double #08706f;background:#def0d2;color:#075c60;transform:rotate(-3deg)}.passport-stamp.stamped:nth-child(even){transform:rotate(3deg)}
.trail-card{padding:36px 42px;max-width:850px;margin:auto}.trail-card .kicker{color:#a14113}.trail-card>p{line-height:1.6}.trail-riddle{padding:20px 24px;border:1px solid #d6c295;border-left:5px solid #ec6322;background:#fff0c8;margin:20px 0;border-radius:10px}.trail-riddle>span{font-size:.875rem;font-weight:700;color:#92400f}.trail-riddle h4{font-size:1.3rem;line-height:1.5;margin:10px 0 15px}.trail-success{background:#daf0d9;border:1px solid #aec7aa;padding:20px;border-radius:12px}.trail-success b{font-size:2rem}
.map-adventure-tools{display:flex;gap:18px;align-items:end;justify-content:space-between;margin:0 0 18px;flex-wrap:wrap}.map-adventure-tools label{display:flex;flex-direction:column;gap:8px;font-size:.875rem;font-weight:700}.map-adventure-tools select{max-width:100%;min-width:200px}.island-controls{display:flex;gap:8px;flex-wrap:wrap}.island-controls .btn{font-size:.875rem;padding:10px 14px}.map-passport-progress{font-size:.95rem;padding:12px 0}.map-trail{display:flex;gap:12px;align-items:center;padding:18px 22px;background:#ffedb9;border:1px solid #e1ca85;border-radius:12px;margin-bottom:18px;flex-wrap:wrap;line-height:1.6}.map-trail[hidden]{display:none}.map-trail>b{color:#ac4410;white-space:nowrap}.map-trail .btn{margin-left:auto;padding:9px 14px;font-size:.875rem}.map-trail small,.trail-feedback{width:100%;font-size:.875rem}.map-marker.has-stamp{box-shadow:0 0 0 3px #fff6ce,0 0 0 6px #147a60}.map-place-link.has-stamp .map-place-number{background:#177964;color:#fff}.spoiler-note{padding:14px;background:#e9f2e7;border-left:3px solid #2d877d;line-height:1.6;font-size:.95rem}.map-place-copy .episode-links{margin-top:16px}
.adventure-home{background:#05a2b1;padding:36px 0}.adventure-invite{display:grid;grid-template-columns:1.1fr 1fr;gap:30px;align-items:center;color:white}.adventure-invite h2{font-size:clamp(2rem,3.5vw,3rem);margin:10px 0}.adventure-invite .kicker{color:#fff0a5}.adventure-invite>img{width:100%;aspect-ratio:1.8;object-fit:cover;border-radius:18px;border:4px solid #63c4c7;box-shadow:0 12px 30px #005c6766}.adventure-invite .adventure-actions{margin-bottom:0}
.lemonade-lab{margin:0 auto 50px}.lab-heading{max-width:800px;margin-bottom:25px}.lab-heading h2{margin:12px 0}.lab-heading p{line-height:1.6}.lab-grid{display:grid;grid-template-columns:1fr 1fr;overflow:hidden;border-radius:20px;border:1px solid #d4cbb2;background:#fffaf0}.lab-visual{position:relative;align-self:start;background:#bbe8d6;overflow:hidden}.lab-visual .flavour-scene{aspect-ratio:1}.lab-caption{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(transparent,#063c48);padding:60px 28px 25px;color:white}.lab-caption span{font-size:.875rem}.lab-caption h3{font:700 clamp(1.8rem,3vw,2.7rem)/1.2 Georgia,serif;margin:8px 0;overflow-wrap:anywhere}.lab-controls{padding:28px;min-width:0}.lab-fields{display:grid;grid-template-columns:1fr 1fr;gap:14px}.lab-controls .field{margin-bottom:15px}.lab-controls select,.lab-controls input{width:100%}.lab-recipe{padding:18px;background:#eef2df;border-radius:12px;line-height:1.65}.lab-recipe ul{margin:8px 0 0;padding-left:20px}.lab-controls .adventure-actions{margin:18px 0}.lab-controls .adventure-status{color:#9b410a}.share-fallback{width:100%;margin:10px 0}
.island-predictions{grid-column:1/-1;border-top:1px solid #ccbd9d;padding-top:30px;margin-top:15px;max-width:850px;width:100%}.island-predictions h3{font:700 2rem Georgia,serif;margin:10px 0}.island-predictions fieldset{border:0;padding:0;margin:20px 0}.island-predictions legend{font-size:1.2rem;font-weight:700;margin-bottom:16px;line-height:1.5}.poll-option{display:flex;gap:12px;align-items:center;position:relative;isolation:isolate;overflow:hidden;border:1px solid #b9c8bd;padding:16px;border-radius:10px;background:#fffaf0;cursor:pointer;margin:10px 0;min-height:60px}.poll-option input{accent-color:#087b89;width:18px;height:18px}.poll-option>span:not(.poll-bar){flex:1}.poll-option>b{font-size:.875rem}.poll-option .poll-bar{position:absolute;inset:0;right:auto;width:var(--poll-width);background:#a0d9c04a;z-index:-1}.poll-option:has(:checked){border:2px solid #087b89;padding:15px}
.living-palm,.living-macaw{position:absolute;pointer-events:none;z-index:0}.living-palm{right:-30px;top:-35px;width:min(26vw,380px);height:auto;transform-origin:95% 5%}.living-macaw{width:150px;height:auto;top:18%;right:12%;opacity:0}.hero-island-controls{position:absolute;bottom:16px;right:18px;z-index:2;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;max-width:min(420px,calc(100% - 36px))}.hero-island-controls .btn{background:#fffaf1e8;font-size:.875rem;padding:10px 14px}.hero-island-controls .btn[aria-pressed=true]{background:#d7eee4f2;border-color:#147769;color:#063c48}.hero-island-controls .map-sound-status{margin:0;padding:6px 10px;border-radius:8px;background:#fffaf1ed;text-align:right}body[data-rio-motion=on] .living-palm{animation:palm-sway 9s ease-in-out infinite alternate}body[data-rio-motion=on] .living-macaw{animation:rio-fly 9s ease-in-out infinite}body[data-rio-motion=on] .hero-scene{animation:lagoon-drift 14s ease-in-out infinite alternate}body[data-rio-motion=off] .living-palm{transform:rotate(-2deg)}@keyframes palm-sway{to{transform:rotate(-4deg) translate(-6px,4px)}}@keyframes lagoon-drift{to{transform:scale(1.025)}}/* A visible pass every 9 seconds; gentle climbs and dips stay within the hero sky. */
@keyframes rio-fly{
  0%,100%{opacity:0;transform:translate(-115px,22px) rotate(-8deg) scale(.7)}
  6%{opacity:1;transform:translate(-95px,10px) rotate(-5deg) scale(.78)}
  24%{opacity:1;transform:translate(-48px,-25px) rotate(-9deg) scale(.88)}
  42%{opacity:1;transform:translate(0,-6px) rotate(6deg) scale(1)}
  60%{opacity:1;transform:translate(50px,-40px) rotate(-8deg) scale(.95)}
  78%{opacity:1;transform:translate(100px,-25px) rotate(5deg) scale(.85)}
  90%{opacity:0;transform:translate(155px,-80px) rotate(-10deg) scale(.65)}
}
#adventure-panel:focus-visible,.adventure-tabs button:focus-visible,.passport-stamp:focus-visible,.quiz-options label:focus-within{outline:3px solid #f8b82a;outline-offset:3px}
@media(max-width:1100px){.links{gap:10px}.links a{font-size:.8rem}.adventure-body{padding:28px}.adventure-tabs button{padding:16px 12px}.lab-fields{grid-template-columns:1fr}}
@media(max-width:760px){.adventure-split{grid-template-columns:1fr}.quiz-cover{min-height:220px;height:220px}.quiz-cover img{object-position:50% 26%}.character-scene{min-height:310px}.character-scene img{object-position:50% 28%}.adventure-invite{grid-template-columns:1fr}.adventure-invite>img{display:none}.lab-grid{grid-template-columns:1fr}.lab-visual .flavour-scene{max-height:none}.lab-fields{grid-template-columns:1fr 1fr}.quiz-question,.trail-card{padding:26px}.quiz-options{grid-template-columns:1fr}.quiz-options label{min-height:62px}.passport-paper{padding:25px}.passport-stamps{gap:12px;grid-template-columns:repeat(2,1fr)}.passport-stamp{min-height:120px}.adventure-heading{align-items:flex-start}.passport-badge{font-size:2rem;padding:10px;gap:5px}.passport-badge span{font-size:.875rem;max-width:75px}.adventure-tabs{gap:5px}.adventure-tabs button{font-size:.875rem;white-space:normal;padding:12px 8px}.adventure-tabs button span{display:block;margin:0 0 5px}.adventure-heading h2{font-size:2.1rem}.adventure-heading>div{min-width:0}.map-adventure-tools{align-items:stretch}.map-adventure-tools label{width:100%}.island-controls{width:100%}.hero-island-controls{top:240px;bottom:auto;right:12px}.living-palm{width:160px;z-index:0;right:-15px}.living-macaw{width:100px;top:80px;right:15%}.lab-controls{padding:22px}.lab-caption{padding:50px 22px 22px}.lab-heading h2{font-size:2.2rem}#adventure-invitation,#rio-adventures{scroll-margin-top:80px}.adventure-actions .btn{flex:1;white-space:normal}}
@media(max-width:380px){.passport-badge{display:none}.quiz-question,.trail-card,.adventure-body{padding:22px 18px}.lab-fields{grid-template-columns:1fr}.quiz-progress{gap:12px}.passport-paper{padding:20px 16px}.adventure-heading h2{font-size:1.9rem}.adventure-actions{gap:8px}.adventure-actions .btn{padding:12px}}
@media(prefers-reduced-motion:reduce){.living-palm,.living-macaw,.hero-scene{animation:none!important}.living-macaw{display:none}}

/* Keep every hero layer in the same 1774 × 887 coordinate system. */
.hero-scene .living-toucan{transform-box:view-box;transform-origin:885px 411px;pointer-events:none}
body[data-rio-motion=on] .living-toucan{animation:rio-toucan-perch 5.6s ease-in-out infinite}
@keyframes rio-toucan-perch{
  0%,100%{transform:translateY(0) rotate(0deg)}
  16%{transform:translateY(-2px) rotate(-2.5deg)}
  32%{transform:translateY(0) rotate(2deg)}
  46%,72%{transform:translateY(0) rotate(0deg)}
  54%{transform:translateY(-14px) rotate(-3deg)}
  61%{transform:translateY(0) rotate(1.5deg)}
  85%{transform:translateY(-1px) rotate(-1.5deg)}
}
@media(prefers-reduced-motion:reduce){.living-toucan{animation:none!important;transform:none!important}}
/* Mobile: reserve a separate row below the artwork instead of covering it. */
@media(max-width:680px){
  .hero-island-controls{position:relative;inset:auto;order:0;align-self:stretch;display:flex;justify-content:flex-end;max-width:none;padding:12px 18px 0;background:#e3f7ec}
  .hero-island-controls .btn{flex:1 1 140px;max-width:100%;white-space:normal}.hero-island-controls .map-sound-status{background:transparent;padding:0;text-align:center}
  .hero-island-controls:not(:has(.btn:not([data-story-off]))){display:none}
}
.quiz-flavour,.map-flavour{padding:15px 18px;background:#eef0d7;border-radius:10px;display:grid;gap:7px;margin:18px 0}.quiz-flavour span,.map-flavour span{font-size:.875rem}.quiz-flavour a,.map-flavour a{font-weight:700;text-decoration:underline;text-underline-offset:4px}.lab-visual .tea-scene{background-size:contain;background-position:center;background-repeat:no-repeat}.bottle-welcome{background:#fff0bd;color:#073e49;border-radius:12px;padding:20px;margin-bottom:24px}.bottle-welcome strong{font:700 1.6rem Georgia,serif}.bottle-welcome p{line-height:1.6}
body[data-page=home] #lemonade-lab,body[data-page=home] .island-predictions{display:none}
.export-card-preview{display:block;width:135px;max-width:100%;height:auto;margin-top:14px;border-radius:8px;border:2px solid #fff5d4}
.adventure-heading>div{min-width:0}.adventure-heading h2,.adventure-heading .kicker,.passport-badge span{overflow-wrap:anywhere}.adventure-tabs{max-width:100%;overflow:visible}.adventure-tabs button{min-width:0;white-space:normal;overflow-wrap:anywhere}.adventure-body,.quiz-question,.trail-card,.lab-controls{overflow-wrap:anywhere}.lab-controls .field label{color:#315d62}.adventure-section .btn,.island-controls .btn{max-width:100%;white-space:normal}
@media(max-width:760px){.adventure-heading{flex-wrap:wrap}.adventure-heading>div{flex:1 1 240px}.passport-badge{max-width:100%;font-size:1.5rem;flex:0 1 auto}.passport-badge span{max-width:none;font-size:.875rem}.adventure-tabs button{font-size:.875rem}.lab-heading{overflow-wrap:anywhere}}
#lemonade-lab{scroll-margin-top:110px}@media(max-width:760px){#lemonade-lab{scroll-margin-top:80px}}

/* Two flavours, each prepared at its own dilution. */
.lab-scene-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px;background:#d8e9da}
.lab-scene-pair[data-blended=false]{grid-template-columns:1fr}
.lab-scene-pair figure{margin:0;min-width:0;background:#e1f2e8}
.lab-scene-pair figcaption{padding:14px 16px;font-size:1rem;font-weight:700;line-height:1.45}
.lab-visual .lab-caption{position:relative;background:#063c48;padding:26px 28px}
.lab-caption p{font-size:1rem;line-height:1.6;margin:12px 0 0;color:#d4f6e6}
.lab-balance{padding:18px;background:#e4f4ed;border:1px solid #b5d4c5;border-radius:12px;margin:0 0 20px}
.lab-balance label{display:block;font-weight:700;margin-bottom:8px}
.lab-balance output{display:block;font-size:.95rem;line-height:1.5}
.lab-balance input{width:100%;height:32px;margin:10px 0 0;accent-color:#007e82;cursor:pointer}
.lab-balance p{font-size:.875rem;line-height:1.5;margin:6px 0 0;color:#345f58}
.lab-products{display:flex;flex-direction:column;align-items:flex-start;gap:8px}
.lab-products>span{font-size:.875rem;font-weight:700}
.lemonade-lab [hidden]{display:none!important}
@media(max-width:760px){.lab-scene-pair figcaption{padding:12px;font-size:.875rem}.lab-visual .lab-caption{padding:22px}.lab-balance{padding:15px}.lab-grid .lab-controls{padding:22px;grid-row:1}.lab-grid .lab-visual{grid-row:2}}

/* Scene ambience and motion belong to the map as well as the opening hero. */
.island-controls{max-width:420px;align-items:flex-start}
.island-controls .btn[aria-pressed=true]{background:#d7eee4;border-color:#147769;color:#063c48}
.map-sound-status,.map-motion-note{display:block;flex:1 1 100%;font-size:.875rem;line-height:1.5;color:#406367;overflow-wrap:anywhere}
.map-sound-status[data-sound=on]{color:#075f56;font-weight:600}
.map-sound-status[data-sound=on]::before{content:'●';color:#087869;margin-right:6px}
.map-motion-note{max-width:38ch}
.map-scene{overflow:hidden;isolation:isolate}
.map-scene>img{transform-origin:50% 60%}
.map-scene figcaption,.map-chapter{z-index:2}
.map-scene::after{content:'';position:absolute;inset:-20%;pointer-events:none;opacity:0;background:linear-gradient(115deg,transparent 25%,#fff6cc40 48%,transparent 66%)}
.map-scene[data-scene=aster]::after{background:linear-gradient(180deg,transparent 38%,#97efdf36 50%,transparent 62%)}
.map-scene[data-scene=tunnels]::after{background:radial-gradient(ellipse at 30% 45%,#ffeacb30,transparent 45%)}
.map-scene[data-scene=baixa]::after{background:repeating-linear-gradient(165deg,transparent 0 34px,#c6fffc24 42px,transparent 54px 96px)}
.map-scene[data-scene=tower]::after{background:linear-gradient(165deg,transparent 15%,#d6f8ff3b 46%,transparent 80%)}
.island-map-art::after{content:'';position:absolute;inset:0;pointer-events:none;opacity:0;background:linear-gradient(120deg,transparent 18%,#c9ffff30 38%,transparent 54%,#fff9d82b 65%,transparent 83%);background-size:240% 100%;mix-blend-mode:screen}
.island-map-art .map-marker{z-index:2}
.map-marker[aria-pressed=true]::after{content:'';position:absolute;inset:-10px;border:2px solid #fff8d8;border-radius:50%;pointer-events:none;opacity:0}
body[data-rio-motion=on] .map-scene>img{animation:rio-scene-drift 8s ease-in-out infinite alternate}
body[data-rio-motion=on] .map-scene::after{opacity:1;animation:rio-scene-light 6s ease-in-out infinite alternate}
body[data-rio-motion=on] .map-scene[data-scene=aster]::after{animation-duration:4s}
body[data-rio-motion=on] .map-scene[data-scene=baixa]::after{animation:rio-lagoon-reflection 5s ease-in-out infinite alternate}
body[data-rio-motion=on] .map-scene[data-scene=tower]>img{animation-duration:11s;transform-origin:50% 30%}
body[data-rio-motion=on] .island-map-art::after{opacity:1;animation:rio-map-shimmer 9s ease-in-out infinite alternate}
body[data-rio-motion=on] .map-marker[aria-pressed=true]::after{animation:rio-place-ripple 2.4s ease-out infinite}
@keyframes rio-scene-drift{from{transform:scale(1.04) translate3d(.5%,0,0)}to{transform:scale(1.12) translate3d(-1%,.8%,0)}}
@keyframes rio-scene-light{from{transform:translate3d(-14%,-5%,0);opacity:.35}to{transform:translate3d(14%,5%,0);opacity:.85}}
@keyframes rio-lagoon-reflection{from{transform:translate3d(-2%,-3%,0);opacity:.4}to{transform:translate3d(3%,4%,0);opacity:.9}}
@keyframes rio-map-shimmer{from{background-position:100% 0;opacity:.35}to{background-position:0 0;opacity:.75}}
@keyframes rio-place-ripple{0%{transform:scale(.8);opacity:.9}85%,100%{transform:scale(1.7);opacity:0}}
@media(max-width:760px){.island-controls{max-width:none}.island-controls>.btn{flex:1}.map-sound-status{min-height:2.8em}}
@media(prefers-reduced-motion:reduce){.map-scene>img,.map-scene::after,.island-map-art::after,.map-marker::after{animation:none!important}.map-scene::after,.island-map-art::after,.map-marker::after{opacity:0!important}}
