:root{--scale: 1;--paper: #f6ecd6;--paper-2: #fbf5e6;--ink: #3a2a1a;--ink-soft: #6b5640;--accent: #9b3d1f;--accent-ink: #fff8ec;--line: #d9c49c;--sea: #bcd9df;--land: #e9d9b0;--ok: #2f6b3a;--no: #9a2b2b;--gold: #c58a1b}*{box-sizing:border-box}html{font-size:calc(17px * var(--scale))}body{margin:0;background:var(--paper);color:var(--ink);font-family:Georgia,Times New Roman,serif;line-height:1.5;font-size:1rem}#app{max-width:760px;margin:0 auto;padding-block:0 48px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}.top{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:8px;padding:12px 0;border-bottom:2px solid var(--line);margin-bottom:16px}.top h1{font-size:1.05rem;margin:0;text-align:center}.top>:last-child{justify-self:end}.top>:first-child{justify-self:start}h2{font-size:1.25rem;margin:0 0 8px}h3{font-size:1rem;margin:16px 0 8px;color:var(--ink-soft)}.stage{display:flex;flex-direction:column;gap:14px}.title{text-align:center;align-items:center}.activity{display:flex;flex-direction:column;gap:12px}.art{font-size:4rem;text-align:center;line-height:1.2}.speaker{margin:0;font-style:italic;color:var(--accent);text-align:center}.story{margin:0;font-size:1.1rem}.prompt{margin:0;font-size:1.1rem;font-weight:700}.hint,.count,.legend{margin:0;color:var(--ink-soft);font-size:.9rem}.note{margin:0;font-size:.9rem;color:var(--ink-soft);border-left:3px solid var(--line);padding-left:10px;text-align:left}.feedback{margin:0;min-height:1.5em;color:var(--accent);font-weight:700}.sentence{font-size:1.15rem;margin:0;background:var(--paper-2);padding:12px;border-radius:10px;border:1px solid var(--line)}.blank{font-weight:700;padding:0 4px;border-bottom:2px solid var(--accent)}.blank.ok{color:var(--ok);border-color:var(--ok)}.btn{font:inherit;color:var(--ink);background:var(--paper-2);border:2px solid var(--line);border-radius:12px;padding:12px 16px;min-height:48px;cursor:pointer;text-align:left}.btn:hover:not(:disabled){border-color:var(--accent)}.btn:focus-visible,.tile:focus-visible,.pad:focus-visible,.node:focus-visible{outline:3px solid var(--gold);outline-offset:2px}.btn:disabled{opacity:.6;cursor:default}.btn.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);text-align:center;font-weight:700}.btn.ghost{background:transparent;border-color:transparent;text-decoration:underline;text-align:center}.btn.small{min-height:40px;padding:6px 10px;text-decoration:none}.btn.big{font-size:1.2rem}.btn.on{border-color:var(--accent);background:#f3dfc0;font-weight:700}.btn.ok{border-color:var(--ok);color:var(--ok);opacity:1;font-weight:700}.btn.no{border-color:var(--no);color:var(--no);opacity:1}.btn.locked{color:var(--ink-soft);border-style:dashed}.btn small{color:var(--ink-soft);font-size:.85rem}.btn.skip{align-self:flex-end;font-size:.85rem}.options{display:flex;flex-direction:column;gap:10px}.options.row{flex-direction:row;flex-wrap:wrap;justify-content:center}.avatar{display:flex;flex-direction:column;align-items:center;min-width:120px}.ordered{margin:0;padding-left:1.4em;min-height:1em}.ordered li{padding:4px 0;color:var(--ok)}.tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.tile{font:inherit;color:var(--ink);background:var(--paper-2);border:2px solid var(--line);border-radius:12px;padding:10px 4px;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:2px;font-size:.85rem;min-height:84px}.tile:disabled{opacity:.55;cursor:default}.tile.ok{border-color:var(--ok);opacity:1;background:#e3efd9}.tile-icon{font-size:2rem;line-height:1.1}.guard{text-align:center;font-size:1.15rem;font-weight:700;padding:12px;border-radius:12px;background:#e3efd9;color:var(--ok)}.guard.danger{background:#f3d9d2;color:var(--no)}.track{display:flex;justify-content:space-between;font-size:1.6rem;padding:4px 8px;border-bottom:3px solid var(--line)}.dot.done{opacity:.3}.pads{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.pad{font-size:2rem;padding:14px 0;border-radius:14px;border:3px solid var(--line);background:var(--paper-2);cursor:pointer}.pad.lit{background:var(--gold);border-color:var(--accent);transform:scale(1.06)}.pad:disabled{cursor:default}.status{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;font-size:.9rem;background:var(--paper-2);border:1px solid var(--line);border-radius:10px;padding:8px 12px}.panel{background:var(--paper-2);border:1px solid var(--line);border-radius:14px;padding:16px;display:flex;flex-direction:column;gap:10px}.steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.steps li{display:flex;flex-direction:column;gap:2px}.steps small{color:var(--ink-soft);font-size:.85rem;padding-left:6px}.steps li.feito .btn{opacity:1;border-color:var(--ok)}.plain{margin:0;padding-left:1.2em}.routes{display:grid;grid-template-columns:1fr 1fr;gap:12px}.route{margin:0;padding-left:1.4em;font-size:.9rem}.scroll{border-top:1px dashed var(--line);padding-top:8px}.scroll h3{margin:0 0 4px;color:var(--accent)}.scroll p{margin:0}.field.wide{max-width:100%;width:100%}label{font-size:.95rem;font-weight:700}.check{display:flex;gap:10px;align-items:flex-start;font-weight:400}.check input{width:22px;height:22px;flex:none;margin-top:2px;accent-color:var(--accent)}.center{text-align:center}.field{font:inherit;padding:10px;border:2px solid var(--line);border-radius:10px;background:#fff;color:var(--ink);max-width:160px}.mapwrap{border:2px solid var(--line);border-radius:14px;overflow:hidden;background:var(--sea)}.map{display:block;width:100%;height:auto}.sea{fill:var(--sea)}.land{fill:var(--land);stroke:#c9b684;stroke-width:2}.region{font-size:20px;fill:#a08a5c;font-style:italic;text-anchor:middle}.edge{fill:none;stroke:#8a6a3f;stroke-width:3;stroke-linecap:round}.edge.mar{stroke:#3f6f86;stroke-dasharray:3 9}.edge.closed{opacity:.25}.node{cursor:pointer}.node circle{fill:#fff8ec;stroke:var(--ink);stroke-width:2.5}.node.visitada circle{fill:#e8d6ad}.node.semeada circle,.node.plantada circle{fill:#9fc28a}.node.estabelecida circle{fill:var(--gold)}.node.here circle{stroke:var(--accent);stroke-width:5}.label{font-size:22px;font-weight:700;fill:var(--ink);text-anchor:middle;paint-order:stroke;stroke:#fbf5e6;stroke-width:4px}.pin{font-size:26px;text-anchor:middle}.mark{font-size:18px;text-anchor:middle;pointer-events:none}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#3a2a1a8c;display:grid;place-items:center;padding:16px;z-index:10}.card{background:var(--paper-2);border:2px solid var(--line);border-radius:16px;padding:20px;max-width:480px;display:flex;flex-direction:column;gap:14px}.scene-stage{position:relative;display:flex;justify-content:center;align-items:flex-end;min-height:200px;padding:14px 12px 0;border-radius:16px;overflow:hidden;background:#cfe4e6;border:2px solid var(--line)}.scene-stage.small{min-height:104px;justify-content:flex-start}.scene-stage.small .fig{width:56px;height:84px}.scene-stage.small .scene-icon{font-size:2rem}.backdrop{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.scene-stage .cast{position:relative}.backdrop .wave{animation:drift 5s linear infinite}.backdrop .wave.slow{animation-duration:8s}.backdrop .sway{transform-box:fill-box;transform-origin:bottom center;animation:sway 4s ease-in-out infinite}.backdrop .flame{transform-box:fill-box;transform-origin:center;animation:flicker 1.1s ease-in-out infinite}.backdrop .star{animation:twinkle 2.6s ease-in-out infinite;animation-delay:calc(var(--i) * -.4s)}.backdrop .rays{transform-box:fill-box;transform-origin:top center;animation:glow 3s ease-in-out infinite}.fig .talk{transform-box:fill-box;transform-origin:center;animation:talk .42s ease-in-out infinite}.fig .gesture{transform-box:fill-box;transform-origin:bottom left;animation:gesture 1.6s ease-in-out infinite}.fig.mood-alegre .bob{animation:hop .9s ease-in-out infinite}.fig.mood-susto .bob{animation:tremble .3s linear infinite}.sneak-scene{position:relative;height:230px;border-radius:16px;overflow:hidden;border:2px solid var(--line);background:#26304f}.sneak-scene .fig{width:60px;height:90px}.sn-mover{position:absolute;transition:left .5s ease,top .5s ease}.sn-guard{position:absolute;transition:transform .3s ease}.sn-bubble{position:absolute;top:-8px;right:-14px;font-size:1.4rem;background:#fbf5e6;border-radius:50%;padding:2px 4px;line-height:1.2}.sneak-scene.rua .sn-mover{bottom:6%;display:flex}.sneak-scene.rua .sn-mover .member{margin-right:-18px}.sneak-scene.rua .sn-guard{right:16%;bottom:6%;transform:scaleX(-1)}.sneak-scene.rua.watching .sn-guard{transform:none}.sneak-scene.rua .sn-bubble{transform:scaleX(-1)}.sneak-scene.rua.watching .sn-bubble{transform:none}.sn-goal{position:absolute;right:2%;bottom:8%;font-size:3rem;line-height:1}.sneak-scene.cesto .backdrop{opacity:.55}.sn-wall{position:absolute;left:0;top:44%;bottom:0;width:58%;background:repeating-linear-gradient(#6a6875 0,#6a6875 22px,#55535f 22px,#55535f 24px);border-top:10px solid #7b7986;border-right:6px solid #494753}.sneak-scene.cesto .sn-guard{left:10%;top:calc(44% - 84px);transform:scaleX(-1)}.sneak-scene.cesto.watching .sn-guard{transform:none}.sneak-scene.cesto .sn-bubble{transform:scaleX(-1)}.sneak-scene.cesto.watching .sn-bubble{transform:none}.sn-rope{position:absolute;left:calc(58% + 37px);top:44%;width:3px;background:#d9c08a;transition:height .5s ease}.sneak-scene.cesto .sn-mover{left:calc(58% + 6px);width:64px}.basket{width:64px;height:64px;display:block}.tools{display:flex;gap:2px}.scene-icon{position:absolute;top:10px;right:14px;font-size:2.6rem;line-height:1;filter:drop-shadow(0 2px 2px rgba(58,42,26,.25));animation:float 4s ease-in-out infinite}.cast{display:flex;justify-content:center;align-items:flex-end;gap:4px;flex-wrap:wrap}.member{margin:0;display:flex;flex-direction:column;align-items:center;animation:enter .45s ease-out both;animation-delay:calc(var(--n, 0) * 90ms)}.member:nth-child(2){--n: 1}.member:nth-child(3){--n: 2}.member:nth-child(4){--n: 3}.member figcaption{font-size:.75rem;color:var(--ink);background:#fbf5e6d9;border-radius:8px;padding:0 6px;margin-bottom:6px}.fig{width:92px;height:138px;display:block;overflow:visible}.fig .bob{animation:bob 2.8s ease-in-out infinite;animation-delay:calc(var(--i, 0) * -.7s)}.fig .blink{transform-box:fill-box;transform-origin:center;animation:blink 4.6s infinite;animation-delay:calc(var(--i, 0) * -1.3s)}.fig .arm-r{transform-box:fill-box;transform-origin:top left;animation:wave 3.6s ease-in-out infinite;animation-delay:calc(var(--i, 0) * -.9s)}.cast.lineup .fig{width:104px;height:156px}.cast.small{justify-content:flex-start}.cast.small .fig{width:52px;height:78px}.avatar-fig .fig{width:84px;height:126px}.activity>.story,.activity>.prompt{animation:rise .35s ease-out both}.btn:active:not(:disabled),.tile:active:not(:disabled),.pad:active:not(:disabled){transform:scale(.97)}.btn,.tile,.pad{transition:transform .08s ease,border-color .15s ease,background .15s ease}.btn.ok,.tile.ok,.blank.ok{animation:pop .4s ease-out}.btn.no,.shake{animation:shake .35s ease-in-out}.stage>.panel,.stage>.mapwrap{animation:rise .3s ease-out both}.edge.mar{animation:tide 1.6s linear infinite}.edge.active{stroke:var(--accent);stroke-width:5;opacity:1}.node.here circle{animation:pulse 1.8s ease-in-out infinite}.node.estabelecida .mark{animation:flicker 1.4s ease-in-out infinite;transform-box:fill-box;transform-origin:center bottom}.traveler{font-size:30px;text-anchor:middle;pointer-events:none}.pin{animation:float 2.4s ease-in-out infinite}.party{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden;z-index:20}.party span{position:absolute;bottom:-2rem;animation:rise-up 1.5s ease-out forwards}@keyframes drift{to{transform:translate(-40px)}}@keyframes sway{0%,to{transform:rotate(-1.5deg)}50%{transform:rotate(1.5deg)}}@keyframes twinkle{0%,to{opacity:1}50%{opacity:.3}}@keyframes glow{0%,to{opacity:.75}50%{opacity:1}}@keyframes talk{0%,to{transform:scaleY(1)}50%{transform:scaleY(.35)}}@keyframes gesture{0%,to{transform:rotate(0)}50%{transform:rotate(-10deg)}}@keyframes hop{0%,to{transform:translateY(0)}50%{transform:translateY(-7px)}}@keyframes tremble{0%,to{transform:translate(-1px)}50%{transform:translate(1px)}}@keyframes bob{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}@keyframes blink{0%,93%,to{transform:scaleY(1)}96%{transform:scaleY(.1)}}@keyframes wave{0%,70%,to{transform:rotate(0)}80%{transform:rotate(-9deg)}90%{transform:rotate(4deg)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}@keyframes enter{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes pop{0%{transform:scale(1)}45%{transform:scale(1.06)}to{transform:scale(1)}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}@keyframes tide{to{stroke-dashoffset:-24}}@keyframes pulse{0%,to{stroke-width:5}50%{stroke-width:8}}@keyframes flicker{0%,to{transform:scale(1)}50%{transform:scale(1.18)}}@keyframes rise-up{0%{transform:translateY(0) rotate(0);opacity:0}15%{opacity:1}to{transform:translateY(-105vh) rotate(40deg);opacity:0}}@media (max-width: 420px){.fig{width:78px;height:117px}.cast.lineup .fig{width:88px;height:132px}.routes{grid-template-columns:1fr}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation:none!important;transition:none!important}.pad.lit{transform:none}}
