:root{--outline: #3a2e2e;--panel: #fff8e8;--panel-2: #f5ead0;--accent: #7dd6a0;--accent-2: #f5a8c0;--danger: #f08a8a;--text: #3a2e2e;--radius: 14px}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;padding:0;height:100%;overflow:hidden;background:#87b88a;font-family:Trebuchet MS,Segoe UI Rounded,Comic Sans MS,system-ui,sans-serif;color:var(--text);touch-action:none}#app{position:fixed;inset:0}#game-root,#game-root canvas{position:absolute;inset:0;width:100%;height:100%}#ui-root{position:absolute;inset:0;pointer-events:none;user-select:none}#ui-root>*{pointer-events:auto}.panel{background:var(--panel);border:3px solid var(--outline);border-radius:var(--radius);box-shadow:0 4px #3a2e2e59;padding:12px 16px}button.btn{font:inherit;font-weight:700;color:var(--text);background:var(--panel-2);border:3px solid var(--outline);border-radius:10px;padding:10px 14px;cursor:pointer;box-shadow:0 3px #3a2e2e66;transition:transform .06s ease}button.btn:active{transform:translateY(2px);box-shadow:0 1px #3a2e2e66}button.btn.primary{background:var(--accent)}button.btn.danger{background:var(--danger)}button.btn:disabled{opacity:.45;cursor:default}.dialog-box{position:absolute;left:50%;bottom:max(18px,env(safe-area-inset-bottom));transform:translate(-50%);width:min(680px,calc(100% - 32px));min-height:86px;font-size:17px;line-height:1.45;cursor:pointer}.dialog-box .speaker{display:inline-block;background:var(--accent);border:2px solid var(--outline);border-radius:8px;padding:1px 10px;font-weight:700;margin-bottom:6px;font-size:14px}.dialog-box .hint{position:absolute;right:14px;bottom:8px;font-size:12px;opacity:.6;animation:blink 1.2s infinite}@keyframes blink{50%{opacity:.15}}.hud{position:absolute;top:max(12px,env(safe-area-inset-top));left:12px;display:flex;flex-direction:column;gap:6px;pointer-events:none}.hud-chip{display:inline-flex;align-items:center;gap:8px;background:var(--panel);border:2.5px solid var(--outline);border-radius:999px;padding:4px 12px;font-size:13px;font-weight:700;width:fit-content}.hud-chip .dot{width:10px;height:10px;border-radius:50%;border:2px solid var(--outline)}.notice{position:absolute;top:max(12px,env(safe-area-inset-top));left:50%;transform:translate(-50%);font-size:14px;font-weight:700;padding:8px 16px;opacity:0;transition:opacity .25s ease}.notice.visible{opacity:1}.overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#3a2e2e73;padding:16px}.overlay .panel{max-width:720px;width:100%;max-height:calc(100% - 24px);overflow-y:auto}.starter-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:12px}@media(max-width:560px){.starter-grid{grid-template-columns:1fr}}.starter-card{background:var(--panel-2);border:3px solid var(--outline);border-radius:var(--radius);padding:12px;text-align:center;cursor:pointer;transition:transform .08s ease}.starter-card:hover{transform:translateY(-3px)}.starter-card img{width:96px;height:96px;image-rendering:auto}.starter-card h3{margin:6px 0 2px}.starter-card .tipo{display:inline-block;font-size:12px;font-weight:700;border:2px solid var(--outline);border-radius:999px;padding:1px 10px;margin-bottom:6px}.starter-card p{font-size:13px;margin:4px 0 0;opacity:.85}.battle{position:absolute;inset:0;display:flex;flex-direction:column;background:linear-gradient(180deg,#cdeffd,#e8f7d8 55%,#a8dba8)}.battle-field{flex:1;position:relative;min-height:0}.combatant{position:absolute;display:flex;flex-direction:column;align-items:center;gap:8px}.combatant.enemy{top:8%;right:10%}.combatant.ally{bottom:4%;left:10%}.combatant img{width:clamp(90px,18vmin,150px);height:auto}.combatant.ally img{width:clamp(110px,22vmin,180px)}.combatant .card{background:var(--panel);border:3px solid var(--outline);border-radius:12px;padding:6px 12px;min-width:170px}.combatant .card .nome{font-weight:700;display:flex;justify-content:space-between;gap:10px;font-size:14px}.hp-bar{height:10px;background:#ddd0b8;border:2px solid var(--outline);border-radius:999px;overflow:hidden;margin-top:4px}.hp-bar .fill{height:100%;background:#7dd6a0;border-radius:999px;transition:width .4s ease,background .4s ease}.hp-bar .fill.warn{background:#f7d98a}.hp-bar .fill.low{background:var(--danger)}.battle-panel{border-top:3px solid var(--outline);background:var(--panel);padding:10px 14px calc(10px + env(safe-area-inset-bottom));min-height:132px}.battle-log{font-size:15px;min-height:24px;margin-bottom:8px;font-weight:700}.battle-actions{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}@media(min-width:700px){.battle-actions{grid-template-columns:repeat(4,1fr)}}.shake{animation:shake .35s ease}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-7px)}75%{transform:translate(7px)}}.flash{animation:flash .35s ease}@keyframes flash{50%{filter:brightness(2.2)}}.team-list{display:flex;flex-direction:column;gap:8px;margin-top:10px}.team-row{display:flex;align-items:center;gap:12px;background:var(--panel-2);border:2.5px solid var(--outline);border-radius:12px;padding:6px 12px}.team-row img{width:44px;height:44px}.team-row .info{flex:1;min-width:0}.team-row .info .nome{font-weight:700;font-size:14px}.team-row .info .hp-bar{max-width:220px}.team-row.fainted{opacity:.5}.joystick{position:absolute;left:22px;bottom:max(26px,env(safe-area-inset-bottom));width:112px;height:112px;border-radius:50%;border:3px solid rgba(58,46,46,.55);background:#fff8e859;touch-action:none}.joystick-knob{position:absolute;left:50%;top:50%;width:48px;height:48px;margin:-24px 0 0 -24px;border-radius:50%;background:#fff8e8d9;border:3px solid var(--outline);pointer-events:none}.touch-action{position:absolute;right:26px;bottom:max(40px,calc(env(safe-area-inset-bottom) + 14px));width:64px;height:64px;border-radius:50%;font-size:22px;font-weight:700;background:var(--accent);border:3px solid var(--outline);box-shadow:0 3px #3a2e2e66;color:var(--text)}.touch-menu{position:absolute;right:26px;top:max(14px,env(safe-area-inset-top));width:44px;height:44px;border-radius:12px;font-size:18px;background:var(--panel);border:3px solid var(--outline);color:var(--text)}.menu-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}h2.ui-title{margin:0 0 4px}
