@font-face{font-family:"Baloo 2";font-style:normal;font-display:swap;font-weight:600;src:url(./baloo-2-latin-600-normal-tIfxVoAe.woff2)format("woff2"),url(./baloo-2-latin-600-normal-B4tNaogw.woff)format("woff")}@font-face{font-family:"Baloo 2";font-style:normal;font-display:swap;font-weight:700;src:url(./baloo-2-latin-700-normal-CqTg7A15.woff2)format("woff2"),url(./baloo-2-latin-700-normal-Ld3Zm3l2.woff)format("woff")}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:400;src:url(./nunito-latin-400-normal-r8SDr6Up.woff2)format("woff2"),url(./nunito-latin-400-normal-DKg4f3fz.woff)format("woff")}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:600;src:url(./nunito-latin-600-normal-Br8yIETf.woff2)format("woff2"),url(./nunito-latin-600-normal-Cd0eNu1l.woff)format("woff")}@font-face{font-family:Nunito;font-style:normal;font-display:swap;font-weight:700;src:url(./nunito-latin-700-normal-Dort48En.woff2)format("woff2"),url(./nunito-latin-700-normal-OcDqTBcA.woff)format("woff")}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--night:#17153a;--dusk:#262158;--panel:#1e1a48;--parchment:#f7efdd;--parchment-deep:#ecdfc2;--parchment-edge:#d6c39b;--ink:#2b2442;--ink-soft:#5c5372;--mist:#cfc9ee;--lantern:#f2b33d;--lantern-deep:#7a4e06;--essence:#8fd3e0;--display:"Baloo 2", "Trebuchet MS", "Segoe UI", sans-serif;--body:"Nunito", "Segoe UI", system-ui, sans-serif;--bg:var(--parchment);--fg:var(--ink);--muted:var(--ink-soft);--card:#fbf6ea;--line:var(--parchment-edge);--accent:var(--lantern);--accent-fg:var(--ink);--fire:#b8461a;--water:#0e6f84;--nature:#2f7a2a;--storm:#7a5a00;--neutral:#6b6380;--foe:#a6262c;--good:#2f7a2a;--warn:#7a4e06;--bad:#a6262c;font-family:var(--body);background:var(--bg);color:var(--fg);font-size:16px;line-height:1.45}*{box-sizing:border-box}body{min-height:100dvh;margin:0}.shell{--tabbar-h:60px;max-width:480px;padding:max(16px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(16px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));margin:0 auto;position:relative}.shell.has-tabbar{padding-bottom:calc(var(--tabbar-h) + 16px + env(safe-area-inset-bottom))}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.brand{background:#06132c;border-radius:12px;width:100%;height:auto;margin:0 0 12px;display:block}h1{margin:0 0 4px;font-size:1.5rem}h2{margin:0 0 8px;font-size:1.1rem}.muted{color:var(--muted)}p.muted{margin:0 0 16px}.card{background:var(--card);border:1px solid var(--line);border-radius:12px;margin-bottom:12px;padding:16px}dl{grid-template-columns:auto 1fr;gap:4px 16px;margin:0;display:grid}dt{color:var(--muted)}dd{font-variant-numeric:tabular-nums;margin:0}.watermark{letter-spacing:.1em;opacity:.06;pointer-events:none;-webkit-user-select:none;user-select:none;place-items:center;font-size:18vw;font-weight:800;display:grid;position:fixed;inset:0;transform:rotate(-20deg)}button{font:inherit;border:1px solid var(--line);background:var(--card);min-height:44px;color:var(--fg);cursor:pointer;touch-action:manipulation;border-radius:10px;padding:8px 14px}button:disabled,button[aria-disabled=true]{opacity:.45;cursor:not-allowed}button.primary{background:var(--accent);color:var(--accent-fg);border-color:var(--accent);font-weight:600}button.small{min-height:44px;padding:4px 12px;font-size:.875rem}button.wide{width:100%}button.link{color:var(--accent);background:0 0;border:none;padding:8px 0}.grow{flex:1}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.small-text{font-size:.875rem}.chip{border:1px solid var(--line);border-radius:999px;align-items:center;gap:4px;padding:2px 8px;font-size:.8125rem;display:inline-flex}.chip.trait{border-style:dashed}.chip.on{border-color:var(--accent);font-weight:600}.field{flex-direction:column;gap:4px;margin-top:8px;display:flex}select,input[type=range]{font:inherit;min-height:44px}.menu{gap:8px;display:grid}.el{fill:var(--neutral);flex:none}.el-fire{fill:var(--fire)}.el-water{fill:var(--water)}.el-nature{fill:none;stroke:var(--nature);stroke-width:2.5px;stroke-linecap:round}.el-nature path{fill:var(--nature);fill-opacity:.35}.el-storm{fill:var(--storm)}.team-order{margin:0 0 12px;padding-left:0;list-style:none}.team-order li{justify-content:space-between;align-items:center;gap:8px;padding:4px 0;display:flex}.species h3{flex:1;margin:0;font-size:1.05rem}.species.picked{border-color:var(--accent)}.abilities{gap:4px;margin:8px 0 0;padding:0;list-style:none;display:grid}.tiers{border:none;flex-wrap:wrap;gap:8px;margin:12px 0 0;padding:0;display:flex}.tiers legend{margin-bottom:4px}.tiers input{opacity:0;position:absolute}.tiers .chip{cursor:pointer;min-height:44px;padding:0 16px}.sticky-bottom{padding:12px 0 max(12px, env(safe-area-inset-bottom));background:var(--bg);position:sticky;bottom:0}.has-tabbar .sticky-bottom{bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom));padding-bottom:12px}.battle .field{gap:6px;margin:0;display:grid}.creature{background:var(--card);border:1px solid var(--line);--lunge:6px;--from-foe:-10px;border-radius:12px;padding:8px 12px;position:relative}.creature.mine{border-left:4px solid var(--accent);--lunge:-6px}.creature.theirs{--from-foe:10px}.creature.spent{opacity:.5}.cname{font-size:1.1rem}.echo-tag{align-items:center;gap:4px;margin-left:auto;font-size:.8125rem;display:inline-flex}.vit{background:var(--line);border-radius:6px;height:22px;margin:6px 0;position:relative;overflow:hidden}.vit-fill{height:100%;transition:width .3s ease-out}.vit-fill.high{background:var(--good)}.vit-fill.mid{background:var(--warn)}.vit-fill.low{background:var(--bad)}.vit-text{font-variant-numeric:tabular-nums;color:var(--fg);text-shadow:0 0 3px var(--card);place-items:center;font-size:.8125rem;font-weight:600;display:grid;position:absolute;inset:0}.chips{flex-wrap:wrap;gap:4px;display:flex}.log{max-height:60dvh;font-size:.9375rem;overflow-y:auto}.log-turn h4{color:var(--muted);margin:8px 0 2px;font-size:.8125rem}.log-turn p{margin:0 0 2px}.actions{background:var(--bg);padding:8px 0 max(8px, env(safe-area-inset-bottom));gap:8px;display:grid;position:sticky;bottom:0}.ability-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}button.ability{text-align:left;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;align-items:center;gap:8px;min-height:56px;display:flex}.aname{flex:1;line-height:1.2}.aname small{color:var(--muted);display:block}.hint,.thinking{text-align:center;margin:0}.preview{width:min(448px,100% - 32px);left:50%;top:max(8px, env(safe-area-inset-top));max-height:calc(100dvh - 16px - env(safe-area-inset-top));z-index:4;margin:0;position:fixed;overflow-y:auto;transform:translate(-50%);box-shadow:0 8px 24px #00000040}.preview p{margin:6px 0 0}.preview .big{font-size:1.4rem;font-weight:700}.sheet{z-index:5;background:var(--card);border:1px solid var(--line);width:min(480px,100%);max-height:85dvh;padding:16px 16px max(16px, env(safe-area-inset-bottom));border-radius:16px 16px 0 0;gap:8px;display:grid;position:fixed;bottom:0;left:50%;overflow-y:auto;transform:translate(-50%);box-shadow:0 -8px 24px #0003}.sheet h3{margin:0 0 4px}button.choice{text-align:left;align-items:center;gap:8px;display:flex}.result{text-align:center}.result h2{font-size:1.6rem}.result .row{justify-content:center}.pick-list{gap:6px;margin-bottom:12px;display:grid}button.choice{width:100%}button.choice small{color:var(--muted);display:block}button.choice.selected{border-color:var(--accent);border-width:2px}.donor{gap:4px;display:grid}.reason{color:var(--warn);font-weight:600}button.choice .reason{color:var(--warn);display:block}.ability-cards{gap:8px;display:grid}.ability-card.selected{border-color:var(--accent);border-width:2px}.ability-card.ineligible{opacity:.7}.ability-card p{margin:4px 0}.outcomes,.legacy,.changes ul{gap:8px;margin:8px 0 0;padding-left:0;list-style:none;display:grid}.outcomes li{align-items:flex-start;gap:8px;display:flex}.donor-card{border:1px dashed var(--warn);border-radius:10px;margin-top:12px;padding:12px}.memory p{margin:6px 0}.confirm{gap:4px;margin:8px 0;display:grid}button.hold{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;min-height:56px;position:relative;overflow:hidden}.hold-fill{background:#ffffff59;width:0;position:absolute;inset:0}button.hold.holding .hold-fill{width:100%;transition:width var(--hold-ms) linear}.hold-label{position:relative}button.armed{outline:3px solid var(--warn);outline-offset:2px}.test-panel summary{cursor:pointer;align-items:center;min-height:44px;font-weight:600;display:flex}.switches{flex-wrap:wrap;gap:6px;margin:8px 0;display:flex}.creature-line{text-align:left;flex:1;gap:2px;min-width:0;display:grid}.cl-head{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.cl-detail{color:var(--muted);font-size:.875rem}.donor.ineligible button.choice{opacity:1;background:0 0;border-style:dashed}.donor.ineligible .cl-head strong{color:var(--muted)}button.fix{justify-self:start}.side-tag{text-transform:uppercase;letter-spacing:.04em;color:#fff;border-radius:999px;padding:2px 8px;font-size:.75rem;font-weight:700}.side-tag.mine{background:var(--accent);color:var(--accent-fg)}.side-tag.theirs{background:var(--foe)}.creature.theirs{border-left:4px solid var(--foe)}.team-slots{gap:4px;display:grid}.team-slots ul{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:0;padding:0;list-style:none;display:grid}.slot{border:1px solid var(--line);background:var(--card);border-radius:8px;gap:2px;min-width:0;padding:4px 6px;font-size:.8125rem;display:grid}.team-slots.mine .slot.active{border:2px solid var(--accent)}.team-slots.theirs .slot.active{border:2px solid var(--foe)}.slot.spent{opacity:.5;text-decoration:line-through}.slot-name{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.slot-bar{background:var(--line);border-radius:2px;height:4px;overflow:hidden}.slot-bar span{background:var(--good);height:100%;display:block}.slot-state{color:var(--muted);font-variant-numeric:tabular-nums}.ability-cell{gap:4px;min-width:0;display:flex}.ability-cell button.ability{flex:1;min-width:0}button.info{flex:none;width:44px;min-height:56px;padding:0;font-family:Georgia,serif;font-style:italic;font-weight:700}button.info.on{border-color:var(--accent);color:var(--accent)}.cooldown{background:var(--line);font-variant-numeric:tabular-nums;border-radius:6px;flex:none;padding:2px 6px;font-size:.8125rem;font-weight:700}.turn-state{text-align:center;margin:0;font-weight:600}.turn-state.busy{color:var(--muted)}.tabbar{z-index:4;background:var(--card);border-top:1px solid var(--line);padding:0 env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);position:fixed;bottom:0;left:0;right:0}.tabbar ul{grid-template-columns:repeat(4,1fr);max-width:480px;margin:0 auto;padding:0;list-style:none;display:grid}.tabbar button{width:100%;min-height:var(--tabbar-h);color:var(--muted);background:0 0;border:none;border-radius:0;place-items:center;gap:2px;padding:6px 0;font-size:.8125rem;display:grid}.tabbar button[aria-current=page]{color:var(--accent);font-weight:700}.tabbar svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:24px;height:24px}.update-banner{flex:none;align-items:center;gap:8px;display:flex}button.big{min-height:56px;font-size:1.1rem}.camp{gap:12px;display:grid}.camp-scene{color:#f1f5f9;text-align:center;background:linear-gradient(#0b1d3f 0%,#1e2f55 55%,#3b3155 100%);border-radius:16px;align-content:center;gap:6px;min-height:46dvh;padding:16px;display:grid}.scene-label{letter-spacing:.06em;text-transform:uppercase;opacity:.75;margin:0;font-size:.8125rem}.companion{justify-items:center;gap:4px;margin:8px 0;display:grid}.companion-body{background:#ffffff1f;border-radius:50%;place-items:center;width:104px;height:104px;animation:4s ease-in-out infinite rest;display:grid}.campfire{background:radial-gradient(#fbbf24 0%,#f97316 45%,#0000 75%);border-radius:50%;width:44px;height:12px;animation:1.6s ease-in-out infinite alternate flicker}.camp-scene .muted{color:#cbd5e1}.camp-scene .scene-text{min-height:2.9em;margin:0}.companion-line{color:#cbd5e1;margin:0;font-size:.9375rem}.camp-scene[data-temperament=playful] .companion-body{animation-duration:1.8s}.camp-scene[data-temperament=steady] .companion-body{animation-duration:6s}@keyframes rest{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes flicker{0%{opacity:.75;transform:scaleX(.9)}to{opacity:1;transform:scaleX(1.1)}}.settings-panel summary{cursor:pointer;align-items:center;min-height:44px;font-weight:600;display:flex}.map{background:radial-gradient(circle at 20% 30%, #15803d2e, transparent 45%), radial-gradient(circle at 80% 70%, #0369a12e, transparent 45%), var(--card);border:1px solid var(--line);border-radius:16px;grid-template-columns:1fr 1fr;gap:10px;padding:12px;display:grid}.place{border:1px solid var(--line);background:var(--bg);text-align:left;border-radius:12px;align-content:start;gap:4px;min-height:120px;padding:12px;display:grid}.place.closed{opacity:.7;border-style:dashed}.place.closed .chip{justify-self:start;margin-top:4px}.destinations{gap:10px;margin-top:12px;display:grid}.map .place{min-height:0}button.place{width:100%;font:inherit;border:2px solid var(--accent);min-height:88px}.shell.fill{flex-direction:column;height:100dvh;display:flex}.shell.fill>.battle{flex-direction:column;flex:1;min-height:0;display:flex}.shell.fill .battle-top{flex:1 1 0;min-height:0;overflow-y:auto}.battle-bottom{gap:8px;display:grid}.shell.fill .battle-bottom{flex:0 auto;max-height:65%;padding-top:8px;overflow-y:auto}.shell.fill .actions{padding-bottom:0;position:static}.shell.fill .result{margin:0}@media (orientation:landscape) and (height<=500px){.shell.fill{max-width:960px}.shell.fill>.battle{flex-direction:row;gap:12px}.shell.fill .battle-top,.shell.fill .battle-bottom{flex:50%;max-height:none;overflow-y:auto}}.exchange{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:8px 12px}.exchange-head{align-items:center;gap:8px;display:flex}.exchange-head h3{flex:1;margin:0;font-size:.9375rem}.exchange-lines p{margin:2px 0;font-size:.875rem;line-height:1.3}.vit-wrap{position:relative}.delta{font-variant-numeric:tabular-nums;pointer-events:none;font-size:1.1rem;font-weight:800;animation:.6s ease-out forwards rise;position:absolute;top:calc(100% - 2px);right:6px}.delta.down{color:var(--bad)}.delta.up{color:var(--good)}@keyframes rise{0%{opacity:0;transform:translateY(6px)}15%{opacity:1}to{opacity:.9;transform:translateY(-4px)}}.matchup.strong{color:var(--good);font-weight:700}.shell[data-hand=left] .ability-cell{flex-direction:row-reverse}@media (prefers-reduced-motion:reduce){.companion-body,.campfire,.delta{animation:none}.vit-fill{transition:none}}.fx-flash{border-radius:inherit;background:var(--bad);opacity:0;pointer-events:none;position:absolute;inset:0}.creature.fx-shield:after{content:"";border:2px solid var(--neutral);pointer-events:none;border-radius:10px;position:absolute;inset:2px}.creature.fx-shield.fx-cracked:after{opacity:.85;border-style:dashed}.fx-chip{font-weight:700}.fx-badge.strong{border:2px solid}.fx-badge.weak{color:var(--muted)}.fx-stopped{border-color:var(--neutral)}.fx-back{color:var(--bad);border-color:currentColor}.creature.spent .panel-art{translate:0 3px}.exchange-lines .payoff{border-left:3px solid var(--good);padding-left:6px;font-weight:700}.recharge-note{border:1px dashed var(--neutral);text-align:center;border-radius:10px;padding:6px 10px}.recharge-note p{margin:0}.recharge-note p:first-child{font-weight:600}@media (prefers-reduced-motion:reduce){.fx-flash{display:none}}@media (prefers-reduced-motion:no-preference){.creature{transition:opacity .4s ease-out}.creature.fx-lunge.fx-p0{animation:.36s ease-out fx-lunge-a}.creature.fx-lunge.fx-p1{animation:.36s ease-out fx-lunge-b}.fx-flash{animation:.4s ease-out fx-flash}.creature.fx-shield.fx-cracked:after{animation:.45s ease-out fx-crack}.fx-chip{animation:.3s ease-out fx-pop}.fx-chip.fx-back{animation:.45s ease-out fx-back}.creature.spent .panel-art{animation:.5s ease-out both fx-settle}.exchange-lines .payoff{animation:.3s ease-out fx-fade-in}}@keyframes fx-lunge-a{0%,to{translate:0}40%{translate:0 var(--lunge)}}@keyframes fx-lunge-b{0%,to{translate:0}40%{translate:0 var(--lunge)}}@keyframes fx-flash{0%{opacity:0}25%{opacity:.22}to{opacity:0}}@keyframes fx-crack{0%{opacity:1;scale:1.03}to{opacity:.85;scale:1}}@keyframes fx-pop{0%{opacity:0;scale:.7}to{opacity:1;scale:1}}@keyframes fx-back{0%{opacity:0;translate:0 var(--from-foe)}to{opacity:1;translate:0}}@keyframes fx-settle{0%{translate:0 -3px}to{translate:0 3px}}@keyframes fx-fade-in{0%{opacity:0}to{opacity:1}}.sandbox summary{cursor:pointer;align-items:center;min-height:44px;font-weight:600;display:flex}.owned-list{gap:8px;margin:0 0 12px;padding:0;list-style:none;display:grid}.owned-list .owned{gap:8px;margin:0;display:grid}.save-problem{border-color:var(--warn);gap:8px;display:grid}.save-problem p{margin:0}.save-problem button{justify-self:start}.creature-page{gap:12px;display:grid}.creature-page .card,.page-head h1{margin:0}.memories{gap:4px;margin:4px 0 8px;padding-left:20px;display:grid}.flavour{margin:4px 0}.after-battle{text-align:left;gap:8px;margin:8px 0;display:grid}.after-battle p{margin:0}.scene{gap:12px;display:grid}.scene h1,.scene p{margin:0}.scene-art{border-radius:16px;height:28dvh;min-height:120px}.scene-art.compact{height:9dvh;min-height:56px}.scene-art.grove{background:radial-gradient(circle at 25% 70%,#bef2648c,#0000 22%),radial-gradient(circle at 70% 60%,#a3e63573,#0000 18%),radial-gradient(circle at 50% 85%,#facc1559,#0000 30%),linear-gradient(#0f2a1d 0%,#1d3b2a 60%,#2a4a2f 100%)}.companion-note{border-left:4px solid var(--accent);padding-left:10px}.choices{gap:8px;display:grid}.wild{gap:6px;margin:0;display:grid}.attune{text-align:center;justify-items:center;gap:10px;margin:0;display:grid}.attune-ring{border:4px solid var(--accent);border-radius:50%;place-items:center;width:140px;height:140px;display:grid;position:relative}.attune-pulse{background:radial-gradient(circle,#facc15e6 0%,#facc1533 60%,#0000 70%);border-radius:50%;width:136px;height:136px;animation:linear infinite attune-grow}.attune-ring.still .attune-pulse{animation:none;transform:scale(.8)}@keyframes attune-grow{0%{opacity:.4;transform:scale(.1)}to{opacity:1;transform:scale(1)}}.attune-count{font-weight:600}.explore{min-height:calc(100dvh - var(--tabbar-h) - 32px - env(safe-area-inset-top) - env(safe-area-inset-bottom));flex-direction:column;display:flex}.explore .destinations{margin-top:auto;padding-top:12px}.scene{min-height:calc(100dvh - var(--tabbar-h) - 32px - env(safe-area-inset-top) - env(safe-area-inset-bottom));flex-direction:column;display:flex}.scene>.choices,.scene>button.big{margin-top:auto}.confirm .consequence{margin:0 0 4px;font-weight:600}.approach-note{font-weight:400;display:block}.danger-link{justify-self:end;margin:-4px 0 4px}.settings-panel .toggle{margin-top:12px;display:block}.settings-panel .battle-effects p{flex-basis:100%;margin:0}.settings-panel .battle-tips-setting{margin-top:12px}.settings-panel .battle-tips-setting p{margin:4px 0 0}.scene-art.reeds{background:linear-gradient(100deg,#0000 0 18%,#84cc1659 19% 20%,#0000 21%),linear-gradient(80deg,#0000 0 62%,#84cc164d 63% 64%,#0000 65%),radial-gradient(at 50% 92%,#38bdf88c,#0000 45%),linear-gradient(#0b2533 0%,#134e4a 65%,#155e75 100%)}.scene-art.mill{background:radial-gradient(circle at 72% 30%,#fde04773,#0000 18%),radial-gradient(at 40% 105%,#a3e63580,#0000 55%),linear-gradient(#312e81 0%,#6d4c2e 70%,#4d7c0f 100%)}button.place-grove{border-left:8px solid #3f6212}button.place-reeds{border-left:8px solid #0e7490}button.place-mill{border-left:8px solid #a16207}button.place-well{border-left:8px solid #6d28d9}.map.region{background:linear-gradient(160deg, transparent 0 46%, #0e749059 47% 52%, transparent 53%), radial-gradient(circle at 25% 65%, #3f62124d, transparent 30%), radial-gradient(circle at 78% 25%, #a1620740, transparent 30%), var(--card);flex:1;min-height:140px;margin-top:12px;display:block;position:relative}.region-name{color:var(--muted,#555);font-weight:700}.pin{border:2px solid #fff;border-radius:50%;width:14px;height:14px;position:absolute}.pin-grove{background:#3f6212;top:62%;left:24%}.pin-reeds{background:#0e7490;top:48%;left:52%}.pin-mill{background:#a16207;top:22%;left:76%}.pin-well{background:#6d28d9;top:78%;left:34%}.explore .destinations{grid-template-columns:1fr 1fr}.explore button.place{min-height:96px}.creature-art{object-fit:contain;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;display:block}.companion-body:has(img.creature-art){background:0 0;border-radius:0;width:auto;height:auto}.creature.has-art{padding-right:84px;position:relative}.creature .panel-art{position:absolute;top:50%;right:4px;transform:translateY(-50%)}.creature .panel-art.facing{transform:translateY(-50%)scaleX(-1)}.creature.spent .panel-art{filter:grayscale(.6);opacity:.8}.page-head .page-art{margin:0 auto 4px}.creature-line .list-art{flex:none;width:50px;height:40px}.wild .wild-art{margin:-4px auto 4px}.wild-art.unstable{filter:drop-shadow(0 0 6px #a855f7cc)saturate(1.3);animation:1.6s steps(2,jump-none) infinite unstable-flicker}@keyframes unstable-flicker{0%,to{opacity:1}50%{opacity:.72}}@media (prefers-reduced-motion:reduce){.wild-art.unstable{animation:none}}.unstable-chip{color:#6b21a8;background:#f3e8ff;border-color:#c084fc}button.echo-tag{font:inherit;border:1px solid var(--line);background:var(--card);border-radius:999px;min-width:44px;min-height:44px;padding:2px 10px}.known-for-link{justify-self:start;margin:-4px 0 4px}.scene-art.reeds.silted{background:linear-gradient(100deg,#0000 0 18%,#78716c73 19% 20%,#0000 21%),linear-gradient(80deg,#0000 0 62%,#78716c66 63% 64%,#0000 65%),linear-gradient(168deg,#0000 0 54%,#57534e 55% 57%,#0000 58% 61%,#57534e 62% 64%,#0000 65%),radial-gradient(at 50% 92%,#927448bf,#0000 50%),linear-gradient(#1c1917 0%,#3f3a2e 65%,#5b4a2f 100%)}.scene-art.reeds.restored{background:linear-gradient(100deg,#0000 0 18%,#a3e63573 19% 20%,#0000 21%),linear-gradient(80deg,#0000 0 62%,#a3e63566 63% 64%,#0000 65%),linear-gradient(#0000 0 57%,#a16207 58% 61%,#0000 62%),radial-gradient(at 50% 92%,#67e8f9bf,#0000 50%),linear-gradient(#0c4a6e 0%,#0f766e 65%,#0891b2 100%)}.scene-art.willow{background:radial-gradient(at 50% 18%,#bef26480,#0000 40%),linear-gradient(95deg,#0000 0 30%,#84cc1659 31% 32%,#0000 33%),linear-gradient(85deg,#0000 0 66%,#84cc1659 67% 68%,#0000 69%),radial-gradient(at 50% 88%,#7dd3fc99,#0000 38%),linear-gradient(#14532d 0%,#1e4636 60%,#164e63 100%)}button.place-willow{border-left:8px solid #4d7c0f}.pin-willow{background:#4d7c0f;top:34%;left:60%}button.place.adventure{background:#fffbeb;border-left-color:#b45309}.adventure-chip{color:#92400e;background:#fef3c7;border-color:#f59e0b;justify-self:start}.adventure-label{color:#92400e;opacity:1}.objective{border-left:6px solid #b45309;gap:6px;display:grid}.objective p{margin:0}.objective-label{text-transform:uppercase;letter-spacing:.06em;color:#92400e}.companion{position:relative}.companion .mate{opacity:.95;place-items:center;width:72px;height:64px;display:grid;position:absolute;bottom:0}.companion .mate-0{left:calc(50% - 132px)}.companion .mate-1{right:calc(50% - 132px)}.companion .mate .creature-art.icon{background:#ffffff1f;border-radius:50%;place-items:center;width:52px;height:52px;display:grid}.companion-body .creature-art.icon{place-items:center;display:grid}.helper-choice{text-align:left;align-items:center;gap:10px;display:flex}.helper-choice .list-art{flex:none;width:50px;height:40px}.helper-scene{text-align:center;justify-items:center;gap:8px;display:grid}.bobber-card .pair{justify-content:center;align-items:flex-end;gap:4px;display:flex}.before-battle{border-left:6px solid #0e7490;gap:6px;display:grid}.before-battle p{margin:0}.attune-art{margin:0 auto}.end-card{gap:10px;display:grid}.end-card .credit,.greeting{align-items:center;gap:10px}.end-card .credit .list-art,.greeting .list-art{flex:none}body{background:var(--night)}.shell{background:var(--parchment);min-height:100dvh}h1,h2,h3,.display{font-family:var(--display);text-wrap:balance;font-weight:700;line-height:1.15}h1{font-size:1.6rem}h2{font-size:1.2rem;font-weight:600}button{border-width:2px;border-color:var(--parchment-edge);background:var(--parchment-deep);border-radius:14px;font-weight:700}button.primary{background:var(--lantern);color:var(--ink);border-color:#c98a1e;font-weight:700;box-shadow:inset 0 -3px #00000026}button.secondary{background:var(--parchment-deep)}button.link{color:var(--lantern-deep);font-weight:700;text-decoration:underline}button.link.quiet{min-height:44px;color:var(--ink-soft);margin:0 auto;padding:8px 12px;display:block}.card{border:2px solid var(--parchment-edge);border-radius:16px}.row.two{grid-template-columns:1fr 1fr;gap:10px;display:grid}.vista{background:var(--dusk);color:var(--parchment);position:relative;overflow:hidden}.vista>svg{width:100%;height:100%;display:block}.bleed{margin-left:calc(-1 * max(16px, env(safe-area-inset-left)));margin-right:calc(-1 * max(16px, env(safe-area-inset-right)));margin-top:calc(-1 * max(16px, env(safe-area-inset-top)))}.page-sheet{margin:-22px calc(-1 * max(16px, env(safe-area-inset-right))) 0 calc(-1 * max(16px, env(safe-area-inset-left)));padding:18px max(16px, env(safe-area-inset-right)) 8px max(16px, env(safe-area-inset-left));background:var(--parchment);border-radius:22px 22px 0 0;flex-direction:column;gap:12px;display:flex;position:relative;box-shadow:0 -10px 28px #0000004d}.page-sheet>*{margin-top:0;margin-bottom:0}.lede{font-size:1.0625rem}.camp{display:block}.camp-night{height:38dvh;min-height:220px;max-height:340px}.camp-cast{justify-content:center;align-items:flex-end;gap:2px;display:flex;position:absolute;inset:auto 0 30px}.cast-member{background:0 0;border:none;place-items:end center;min-width:44px;min-height:44px;padding:0;display:grid}.cast-member.lead{filter:drop-shadow(0 6px 10px #0006);margin-bottom:14px}.cast-member.lead.idle .creature-art{transform-origin:50% 100%}.cast-member.lead.idle[data-temperament=curious] .creature-art{animation:3.4s ease-in-out infinite peek}.cast-member.lead.idle[data-temperament=playful] .creature-art{animation:2.2s ease-in-out infinite bounce}.cast-member.lead.idle[data-temperament=bold] .creature-art{animation:2.8s ease-in-out infinite puff}.cast-member.lead.idle[data-temperament=gentle] .creature-art,.cast-member.lead.idle[data-temperament=steady] .creature-art{animation:4s ease-in-out infinite breathe}.river-cue{color:var(--parchment);pointer-events:none;gap:10px;font-size:1.4rem;display:flex;position:absolute;top:38%;right:6%}.river-cue span{animation:2.6s ease-out infinite whistle}.river-cue span+span{animation-delay:1.1s}@media (prefers-reduced-motion:reduce){.cast-member.lead.idle .creature-art,.river-cue span{animation:none!important}}.camp-cast .creature-art.icon{background:#ffffff1f;border-radius:50%;place-items:center;display:grid}.campfire{background:radial-gradient(at 50% 80%,#ffd27ae6,#f2763a66 45%,#0000 70%);border-radius:50%;width:56px;height:40px;margin:0 4px 6px;animation:2.4s ease-in-out infinite alternate campglow;position:relative;box-shadow:0 0 60px 30px #f2763a40}.campfire:after{content:"";background:#5a3a24;border-radius:4px;height:7px;position:absolute;bottom:2px;left:8px;right:8px}.campfire .flame{transform-origin:50% 100%;background:linear-gradient(#ffe3a0,#f5b342 40%,#f2763a);border-radius:50%/60% 60% 40% 40%;width:22px;height:30px;margin-left:-11px;animation:.9s ease-in-out infinite alternate campflame;position:absolute;bottom:8px;left:50%}@keyframes campglow{0%{opacity:.75}to{opacity:1}}@keyframes campflame{0%{transform:scale(.94,.9)}to{transform:scale(1.04,1.06)}}.companion-name{margin:0}.camp .scene-text{min-height:0;margin:0}.camp-actions{gap:10px;display:grid}.build-line{text-align:center}.party-ground{margin-left:calc(-1 * max(16px, env(safe-area-inset-left)));margin-right:calc(-1 * max(16px, env(safe-area-inset-right)));margin-top:calc(-1 * max(16px, env(safe-area-inset-top)));height:40dvh;min-height:250px;max-height:360px}.party-ground>svg{position:absolute;inset:0}.party{grid-template-columns:1fr 1.3fr 1fr;align-items:end;margin:0;padding:0 8px;list-style:none;display:grid;position:absolute;inset:auto 0 30px}.party li:first-child{order:2}.party li:nth-child(2){order:1}.party li:nth-child(3){order:3}.party-member{width:100%;color:var(--parchment);background:0 0;border:none;justify-items:center;gap:0;padding:4px;display:grid}.party-member .creature-art{filter:drop-shadow(0 6px 8px #00000059)}.party-name{font-family:var(--display);font-size:1rem;font-weight:600;line-height:1.1}.party-lead{color:var(--lantern);font-size:.8125rem}.empty-slot{border:2px dashed var(--mist);width:64px;height:64px;color:var(--mist);border-radius:50%;place-items:center;font-size:1.8rem;display:grid}.party-member.empty:disabled{opacity:.7}.segmented{background:var(--parchment-deep);border-radius:14px;grid-template-columns:repeat(3,1fr);gap:4px;padding:4px;display:grid}.segmented button{background:0 0;border:0;border-radius:11px;min-height:44px}.segmented button.on{background:var(--parchment);box-shadow:0 1px 3px #00000026}.codex{gap:8px;margin:0;padding:0;list-style:none;display:grid}.codex li{grid-template-rows:auto auto;grid-template-columns:60px 1fr;align-items:center;column-gap:8px;display:grid}.codex li>:first-child{grid-row:span 2}.codex-name{font-weight:700}.codex li.unseen .creature-art{filter:brightness(0)opacity(.3)}.practice{gap:10px;display:grid}.portrait-scene{background:radial-gradient(circle at 50% 70%, #f7efdd33, transparent 60%), var(--dusk);place-items:center;height:32dvh;min-height:210px;display:grid}.portrait-scene.el-fire{background-color:#4a2a3a}.portrait-scene.el-water{background-color:#1f3a5a}.portrait-scene.el-nature{background-color:#233f33}.portrait-scene.el-storm{background-color:#3a3560}.creature-page .page-sheet section{gap:4px;display:grid}.creature-page .page-sheet h2{margin:0}.page-reasons{margin:0;padding-left:18px}.overlay{z-index:20;background:#0a081e99;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.modal{background:var(--parchment);width:100%;max-width:480px;max-height:85dvh;padding:18px max(16px, env(safe-area-inset-right)) calc(18px + env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));border-radius:22px 22px 0 0;gap:12px;display:grid;overflow-y:auto}.modal h2{margin:0}.tabbar{background:var(--panel);border-top:none;box-shadow:0 -4px 16px #0000004d}.tabbar ul{grid-template-columns:repeat(3,1fr)}.tabbar button{color:var(--mist);background:0 0;border:none;border-radius:0}.tabbar button[aria-current=page]{color:var(--lantern)}.watermark{color:#2b24420f}@media (prefers-reduced-motion:reduce){.campfire,.campfire .flame{animation:none}}.camp .page-sheet .companion-line,.camp .page-sheet .scene-text{color:var(--ink-soft)}.camp .page-sheet .scene-text.lede{color:var(--ink)}.reeds-scene{height:46dvh;min-height:280px;max-height:480px;margin-bottom:12px}.reeds-scene.compact{height:26dvh;min-height:170px}.scene-path line{stroke:var(--parchment);stroke-opacity:.55;stroke-width:3px;stroke-dasharray:1 9;stroke-linecap:round}.scene-path line.locked{stroke-opacity:.2}.waypoint{cursor:pointer}.waypoint:focus{outline:none}.waypoint .hit{fill:#0000}.waypoint .ring{fill:#f7efdd2e;stroke:var(--parchment);stroke-width:3px}.waypoint .core{fill:var(--lantern)}.waypoint.been .core{fill:var(--mist)}.waypoint.current .ring{stroke:var(--lantern);stroke-width:4px}.waypoint.reachable:not(.been) .ring{transform-box:fill-box;transform-origin:50%;animation:1.8s ease-in-out infinite beckon}.waypoint.locked{cursor:not-allowed}.waypoint.locked .ring{stroke-dasharray:3 4;fill:#17153a80}.waypoint .lock{fill:none;stroke:var(--parchment);stroke-width:2px}.waypoint:focus-visible .ring{stroke:var(--lantern);stroke-width:6px}.point-label{fill:var(--parchment);font:700 13px var(--display);paint-order:stroke;stroke:#17153ad9;stroke-width:4px;pointer-events:none}.waypoint.current .point-label{fill:var(--lantern)}@keyframes beckon{50%{opacity:.6;transform:scale(1.25)}}.companion-sprite{transition:transform .3s ease-in-out}.companion-sprite image,.stuck-sprite,.vanepip-sprite,.helper-sprite,.whistle{transform-box:fill-box;transform-origin:50% 100%}.companion-sprite.walking image{animation:.32s ease-in-out infinite hop}@keyframes hop{50%{transform:translateY(-7%)}}.companion-sprite:not(.walking)[data-temperament=curious] image{animation:3.4s ease-in-out infinite peek}.companion-sprite:not(.walking)[data-temperament=playful] image{animation:2.2s ease-in-out infinite bounce}.companion-sprite:not(.walking)[data-temperament=bold] image{animation:2.8s ease-in-out infinite puff}.companion-sprite:not(.walking)[data-temperament=gentle] image,.companion-sprite:not(.walking)[data-temperament=steady] image{animation:4s ease-in-out infinite breathe}@keyframes peek{0%,60%,to{transform:rotate(0)}70%,85%{transform:rotate(-6deg)translateY(-2%)}}@keyframes bounce{0%,40%,to{transform:translateY(0)}20%{transform:translateY(-9%)}}@keyframes puff{0%,to{transform:scale(1)}50%{transform:scale(1.05,1.04)}}@keyframes breathe{0%,to{transform:scale(1)}50%{transform:scale(1.02,1.03)}}.stuck-sprite{animation:1.6s ease-in-out infinite struggle}@keyframes struggle{0%,55%,to{transform:rotate(0)}65%{transform:rotate(-5deg)}80%{transform:rotate(4deg)}}.vanepip-sprite{animation:2.6s ease-in-out infinite flit}.vanepip-sprite.hanging-back{opacity:.85;animation-duration:4s}@keyframes flit{0%,70%,to{transform:translate(0)}78%{transform:translate(-8%,-16%)}88%{transform:translate(4%,-6%)}}.whistle{animation:2.4s ease-out infinite whistle}@keyframes whistle{0%{opacity:0;transform:translateY(4px)}30%{opacity:.9}to{opacity:0;transform:translate(10px,-18px)}}.helper-sprite.beat-ready{animation:.9s ease-in-out infinite ready}@keyframes ready{50%{transform:translateY(-4%)rotate(-3deg)}}.helper-sprite.beat-act{animation:.45s ease-in-out infinite act}@keyframes act{50%{transform:translateY(-6%)scale(1.04)}}.mark-growing{animation:1.4s ease-out both mark-grow}@keyframes mark-grow{0%{clip-path:inset(100% 0 0)}to{clip-path:inset(0)}}.silt-giving{transform-box:fill-box;transform-origin:50% 100%;animation:1.4s ease-in forwards give}@keyframes give{20%{transform:translate(-3px)}40%{transform:translate(3px)}to{opacity:.4;transform:scaleY(.4)}}.scene-caption{left:12px;right:12px;top:calc(12px + env(safe-area-inset-top));color:var(--parchment);background:#17153ad1;border-radius:14px;margin:0;padding:10px 14px;font-size:1rem;line-height:1.4;animation:.24s ease-out slot-in;position:absolute}.scene-path line.trodden{stroke:var(--lantern);stroke-opacity:.7}.point-name{font-family:var(--display);color:var(--lantern-deep);margin:-4px 0 4px;font-weight:600}.ford .clue,.ford .discovery{gap:8px;display:grid}.ford .clue p,.ford .discovery p{margin:0}.moves{border-top:2px dashed var(--parchment-edge);flex-wrap:wrap;gap:8px;margin-top:12px;padding-top:8px;display:flex}.moves-title{width:100%;color:var(--ink-soft);margin:0;font-weight:700}.moves button.move{flex:140px;min-height:48px}.moves button.move.locked{opacity:.7}.move-note{font-size:.8125rem;font-weight:400}.moves .reason{width:100%;margin:0}@media (prefers-reduced-motion:reduce){.companion-sprite,.companion-sprite image,.stuck-sprite,.vanepip-sprite,.helper-sprite,.whistle,.mark-growing,.silt-giving,.scene-caption,.waypoint .ring{transition:none;animation:none!important}}.visited-chip{background:var(--parchment-deep);color:var(--ink-soft);border:1px solid var(--parchment-edge);justify-self:start}.place.closed{background:var(--parchment-deep)}.encounter-focus{background:radial-gradient(ellipse at 50% 70%, #f2b33d38, transparent 65%), var(--parchment-deep);border-radius:12px;place-items:center;margin:-4px -4px 8px;padding:8px 0 4px;display:grid}.encounter .pitch{margin:0}.wild-art.hanging-back{opacity:.55;transform:translateY(6px)scale(.9)}.solo-note{font-weight:600}.memory-toast{z-index:15;top:calc(8px + env(safe-area-inset-top));background:var(--parchment);border:2px solid var(--lantern);border-radius:16px;gap:4px;width:min(448px,100% - 24px);padding:10px 14px;animation:.24s ease-out toast-in;display:grid;position:fixed;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #0000004d}.memory-toast p{margin:0}.memory-toast.in-slot{width:auto;margin:0 0 12px;animation:.24s ease-out slot-in;position:static;transform:none;box-shadow:0 4px 12px #00000026}@keyframes slot-in{0%{opacity:0;transform:translateY(-6px)}}.memory-toast-title{color:var(--lantern-deep);font-weight:700}.memory-toast .row{align-items:center;gap:8px}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,-12px)}}@media (prefers-reduced-motion:reduce){.memory-toast,.memory-toast.in-slot{animation:none}}.end-card .cheer{font-family:var(--display);color:var(--lantern-deep);margin:0;font-size:1.3rem;font-weight:700}.battle{--fx-step:.42s}.battle .field{background:radial-gradient(120% 70% at 50% 0%, var(--dusk) 0%, transparent 70%), radial-gradient(90% 60% at 50% 100%, var(--panel) 0%, transparent 75%), var(--night);color:var(--parchment);border-radius:18px;padding:10px;position:relative;box-shadow:inset 0 0 0 1px #ffffff0f}.battle .field .slot{color:var(--parchment);background:#262158d9;border-color:#cfc9ee40}.battle .field .team-slots.mine .slot.active{border-color:var(--lantern)}.battle .field .team-slots.theirs .slot.active{border-color:var(--mist)}.battle .field .slot-bar{background:#17153ae6}.battle .field .slot-bar span{background:#6fbf5a}.battle .field .slot-state{color:var(--mist)}.battle .field button.link{color:var(--lantern)}.battle .stage{border-radius:14px;gap:4px;margin:-4px;padding:4px;display:grid}.battle .place-sluice .stage{background:linear-gradient(#2a2650 0,#6d5e7e 16%,#3b3a4a 16% 20%,#7a6342 20%,#4d3d28 52%,#3a3326 52%)}.battle .teams{gap:4px;display:grid}.battle .field button.link{background:#17153ac7;border-radius:999px;justify-self:center;padding:2px 12px}.battle .creature{color:var(--ink);background:0 0;border:0;border-radius:0;align-items:flex-end;gap:6px;padding:0;display:flex}.battle .creature.theirs{flex-direction:row-reverse}.battle .creature.has-art{min-height:0;padding-right:0}.battle .creature-card{background:var(--parchment);border:2px solid var(--parchment-edge);border-radius:14px;flex:auto;min-width:0;padding:4px 8px;position:relative;box-shadow:0 6px 16px #08061e59}.battle .creature.mine .creature-card{border-left:6px solid var(--lantern)}.battle .creature.theirs .creature-card{border-left:6px solid var(--foe)}.battle .creature.theirs{--art:clamp(72px, 13vh, 112px)}.battle .creature.mine{--art:clamp(84px, 15vh, 128px)}.battle .creature-card .row{gap:2px 6px}.battle .creature-card .side-tag{padding:1px 6px;font-size:.6875rem}.battle .creature-card .vit{height:20px;margin:4px 0}.battle .creature-card .chips{gap:3px}.battle .creature-card .chip{padding:1px 7px}.battle .panel-art-wrap{width:calc(var(--art) * 1.25);height:var(--art);flex:none;position:relative}.battle .creature .panel-art{z-index:1;width:100%;height:100%;position:absolute;inset:0;transform:none}.battle .creature .panel-art.facing{transform:scaleX(-1)}.battle .ground{background:radial-gradient(closest-side,#08061e73,#0000);border-radius:50%;height:16%;position:absolute;bottom:-3px;left:12%;right:12%}.battle .place-sluice .creature.theirs .ground{background:radial-gradient(closest-side,#0000 58%,#cdeefa80 64%,#0000 74%);left:4%;right:4%}.battle .sluice-gate{z-index:0;width:72%;height:auto;position:absolute;bottom:12%;right:4%}.battle .creature .vit-wrap{position:static}.battle .creature .delta{z-index:1;background:#f7efddeb;border-radius:8px;padding:0 6px;font-size:1.3rem;line-height:1.25;top:-14px;right:6px}.battle .fx-bubble{z-index:2;pointer-events:none;background:radial-gradient(circle at 30% 26%,#ffffffb3 0 5%,#0000 6%),radial-gradient(closest-side,#7cc4e00f 68%,#7cc4e066 100%);border:2px solid #cdeefaf2;border-radius:50%;position:absolute;inset:-6% 4% -2%;box-shadow:0 0 14px #7cc4e099,inset 0 0 10px #cdeefa59}.battle .fx-bubble.popped{opacity:.55;box-shadow:none;background:0 0;border-style:dashed}.battle .fx-splash{z-index:3;color:#7cc4e0;filter:drop-shadow(0 0 4px #fff);pointer-events:none;opacity:0;margin:-20px 0 0 -20px;position:absolute;top:40%;left:50%}.battle .fx-shelter{z-index:2;pointer-events:none;height:84%;position:absolute;top:-8%;left:-2%;right:-2%}.battle .fx-shelter svg{width:100%;height:100%;display:block;overflow:visible}.battle .fx-shelter path{fill:none;stroke:#f0d36b;stroke-width:3px;stroke-linecap:round;vector-effect:non-scaling-stroke}.battle .fx-shelter path:first-child{fill:#f0d36b1f;filter:drop-shadow(0 0 4px #f0d36bcc)}.battle .fx-shelter .gust{stroke:#fffc;stroke-width:2.5px}.battle .fx-shelter.broken{opacity:.6}.battle .fx-shelter.broken path:first-child{fill:none;filter:none;stroke-dasharray:6 6}.battle .fx-shelter.broken .gust{display:none}.battle .fx-icon{fill:currentColor;flex:none}.battle .fx-landing{background:var(--ink);color:var(--lantern);font-family:var(--display);border-radius:10px;align-items:center;gap:6px;margin:4px 0;padding:3px 10px;font-size:.95rem;font-weight:700;display:flex}.battle .creature.fx-charging .panel-art{filter:drop-shadow(0 0 6px var(--lantern)) drop-shadow(0 0 2px var(--lantern))}.battle .fx-order{background:var(--ink-soft);min-width:1.3em;height:1.3em;color:var(--parchment);border-radius:999px;flex:none;place-items:center;padding:0 3px;font-size:.75rem;font-weight:800;line-height:1;display:inline-grid}.battle .fx-order.mine{background:var(--lantern);color:var(--ink);box-shadow:inset 0 0 0 1px var(--lantern-deep)}.battle .fx-order.theirs{background:var(--foe);color:#fff}.battle .fx-move{border:1px solid var(--lantern-deep);color:var(--ink);background:#fbe3ae}.battle .fx-got{background:var(--parchment);border:1px dashed var(--ink-soft);color:var(--ink)}.battle .fx-got.hit{border:2px solid var(--bad)}.battle .fx-got.hit .fx-icon{color:var(--bad)}.battle .fx-badge.strong{color:#7a2408;background:#fde2d3;border:2px solid}.battle .fx-badge.weak{color:var(--ink-soft);background:0 0;border:2px dashed}.battle .fx-guarded,.battle .fx-stopped{border:2px solid var(--water);color:var(--ink);background:#dff3f7}.battle .fx-guarded .fx-icon,.battle .fx-stopped .fx-icon{color:var(--water)}.battle .fx-stopped{border-style:dashed}.battle .fx-sent,.battle .fx-back{background:var(--parchment);color:var(--lantern-deep);border:2px solid var(--lantern-deep)}.battle .fx-healed{color:#24601f;border:2px solid var(--nature);background:#e3f3dc}.battle .fx-paid{background:var(--lantern);color:var(--ink);border:2px solid var(--lantern-deep)}.battle .creature.fx-shield:after{content:none}.battle .creature.fx-shield .panel-art-wrap:after{content:"";z-index:2;pointer-events:none;border:3px solid #7cc4e0;border-radius:50% 50% 42% 42%;position:absolute;inset:-4% 6% 0;box-shadow:0 0 10px #7cc4e08c}.battle .creature.fx-shield.fx-cracked .panel-art-wrap:after{box-shadow:none;opacity:.85;border-style:dashed}.battle .fx-glow,.battle .fx-impact{pointer-events:none;opacity:0;position:absolute}.battle .fx-glow{z-index:0;box-shadow:0 0 24px var(--lantern);background:radial-gradient(closest-side,#f2b33d8c,#0000);border-radius:50%;inset:8% 10% 0}.battle .fx-impact{z-index:3;color:#f2763a;filter:drop-shadow(0 0 4px #fff);margin:-22px 0 0 -22px;top:45%;left:50%}.battle .fx-impact.strong{color:#e8461a}.battle .fx-impact.weak{color:var(--mist)}.battle .exchange-lines p.numbered{align-items:baseline;gap:6px;display:flex}.battle .exchange-lines p.numbered .fx-order{translate:0 1px}.battle .exchange-lines .payoff{border-left:4px solid var(--lantern);color:var(--ink);background:linear-gradient(90deg,#f2b33d66,#f2b33d0d);border-radius:0 8px 8px 0;padding:2px 8px}.battle .exchange-lines .payoff:before{content:"✦ ";color:var(--lantern-deep)}.battle .ko-steps{border-top:1px dashed var(--parchment-edge);gap:4px;margin:6px 0 0;padding:6px 0 0;list-style:none;display:grid}.battle .ko-step{align-items:center;gap:8px;font-size:.9rem;font-weight:700;display:flex}.battle .ko-step .fx-icon{width:18px;height:18px}.battle .ko-step.spent{color:var(--ink-soft)}.battle .ko-step.choose{color:var(--lantern-deep)}.battle .ko-step.win,.battle .ko-step.over{color:var(--lantern-deep);font-family:var(--display);font-size:1.05rem}.battle .ko-step.lose{font-family:var(--display)}.battle .battle-tip{border-top:1px dashed var(--parchment-edge);flex-wrap:wrap;align-items:center;gap:4px 8px;margin-top:6px;padding-top:6px;display:flex}.battle .battle-tip .tip-text{flex:14rem}.battle .battle-tip .tip-more{flex-basis:100%}.battle .battle-tip .tip-actions{margin-left:auto}.battle .battle-tip p{margin:0}.battle .tip-text{align-items:flex-start;gap:6px;font-size:.875rem;font-weight:600;line-height:1.3;display:flex}.battle .tip-text .fx-icon{color:var(--lantern-deep);margin-top:2px}.battle .tip-more{color:var(--ink-soft)}.battle .tip-actions{flex-wrap:wrap;justify-content:flex-end;gap:6px;display:flex}.battle .recharge-help{text-align:left;gap:2px;margin:4px 0;padding:0;list-style:none;display:grid}.battle .recharge-help li{align-items:flex-start;gap:6px;display:flex}.battle .recharge-help li .fx-icon{margin-top:3px}.battle .recharge-help li.unavailable{color:var(--ink-soft);font-style:italic}.battle .result h2{justify-content:center;align-items:center;gap:8px;display:flex}.battle .result.won h2{color:var(--lantern-deep)}.battle .result.won{border-color:var(--lantern);box-shadow:0 0 0 3px #f2b33d59}.battle .loss-review{text-align:left;background:var(--parchment-deep);border-radius:12px;margin:8px 0;padding:8px 12px}.battle .loss-review h3{margin:0 0 4px;font-size:1rem}.battle .loss-review ul{gap:4px;margin:0;padding-left:1.2em;display:grid}.battle .loss-review p{margin:6px 0 0}.battle[data-effects=still] *,.battle[data-effects=still] :before,.battle[data-effects=still] :after{transition:none!important;animation:none!important}.battle[data-effects=still] .fx-flash,.battle[data-effects=still] .fx-glow,.battle[data-effects=still] .fx-impact,.battle[data-effects=still] .fx-splash{display:none}@media (prefers-reduced-motion:reduce){.battle .fx-glow,.battle .fx-impact,.battle .fx-splash{display:none}}@media (prefers-reduced-motion:no-preference){.battle .creature.fx-lunge.fx-p0,.battle .creature.fx-lunge.fx-p1{animation-delay:calc(var(--fx-step) * var(--act-at,0))}.battle .fx-flash{animation-delay:calc(var(--fx-step) * var(--hit-at,0) + .12s);animation-fill-mode:both}.battle .fx-chip,.battle .exchange-lines p.numbered{animation-delay:calc(var(--fx-step) * var(--fx-at,0));animation-fill-mode:both}.battle .exchange-lines p.numbered{animation-name:fx-step-in;animation-duration:.26s;animation-timing-function:ease-out}.battle .delta{animation-delay:calc(var(--fx-step) * var(--hit-at,0) + .12s);animation-fill-mode:both}.battle .creature .vit-fill{transition-delay:calc(var(--fx-step) * var(--hit-at,0) + .12s)}.battle .fx-glow{animation:.7s ease-out both fx-glow;animation-delay:calc(var(--fx-step) * var(--act-at,0))}.battle .fx-impact{animation:.42s ease-out both fx-impact;animation-delay:calc(var(--fx-step) * var(--hit-at,0) + .12s)}.battle .fx-impact.strong{animation-name:fx-impact-strong;animation-duration:.52s}.battle .panel-art.fx-recoil.fx-p0{animation:.36s ease-out both fx-recoil-a;animation-delay:calc(var(--fx-step) * var(--hit-at,0) + .12s)}.battle .panel-art.fx-recoil.fx-p1{animation:.36s ease-out both fx-recoil-b;animation-delay:calc(var(--fx-step) * var(--hit-at,0) + .12s)}.battle .creature.fx-charging .panel-art{animation:.9s ease-in-out infinite alternate fx-charge-pulse}.battle .fx-landing .fx-icon{animation:.9s ease-in-out infinite alternate fx-bolt}.battle .exchange-lines .payoff{background-size:200% 100%;animation:.7s ease-out both fx-payoff}.battle .fx-chip.fx-paid{animation-name:fx-star;animation-duration:.6s}.battle .ko-step{animation:.3s ease-out both fx-step-in;animation-delay:calc(var(--fx-step) * var(--fx-at,0) + .2s)}.battle .result.won h2 .fx-icon{animation:1.2s ease-in-out 2 alternate fx-twinkle}.battle .creature.fx-won .panel-art{animation:.6s ease-out 2 fx-hop}.battle .creature.fx-shield.fx-cracked .panel-art-wrap:after{animation:.45s ease-out both fx-crack;animation-delay:calc(var(--fx-step) * var(--hit-at,0) + .12s)}.battle .fx-bubble.held{animation:.45s ease-out both fx-bubble-form,2.4s ease-in-out infinite alternate fx-bubble-wobble;animation-delay:calc(var(--fx-step) * var(--bubble-at,0)), calc(var(--fx-step) * var(--bubble-at,0) + .45s)}.battle .fx-bubble.popped{animation:.45s ease-out both fx-bubble-form,.42s ease-in forwards fx-bubble-pop;animation-delay:calc(var(--fx-step) * var(--bubble-at,0)), calc(var(--fx-step) * var(--pop-at,0) + .12s)}.battle .fx-splash{animation:.48s ease-out both fx-impact;animation-delay:calc(var(--fx-step) * var(--act-at,0) + .3s)}.battle .fx-shelter.up.new{animation:.52s ease-out both fx-shelter-in;animation-delay:calc(var(--fx-step) * var(--shelter-at,0) + .2s)}.battle .fx-shelter.up .gust{animation:1.8s ease-in-out infinite alternate fx-gust}.battle .fx-shelter.broken{animation:.48s ease-in both fx-shelter-break;animation-delay:calc(var(--fx-step) * var(--hit-at,0) + .12s)}.battle .battle-tip{animation:.3s ease-out both fx-step-in}.battle[data-effects=quick] .creature.fx-lunge.fx-p0,.battle[data-effects=quick] .creature.fx-lunge.fx-p1,.battle[data-effects=quick] .panel-art.fx-recoil,.battle[data-effects=quick] .fx-flash,.battle[data-effects=quick] .fx-impact,.battle[data-effects=quick] .fx-glow,.battle[data-effects=quick] .fx-splash,.battle[data-effects=quick] .fx-shelter,.battle[data-effects=quick] .creature.fx-shield.fx-cracked .panel-art-wrap:after{animation-duration:.2s}.battle[data-effects=quick] .fx-bubble.held{animation-duration:.2s,2.4s}.battle[data-effects=quick] .fx-bubble.popped{animation-duration:.2s,.2s}.battle[data-effects=quick] .fx-chip,.battle[data-effects=quick] .exchange-lines p.numbered,.battle[data-effects=quick] .ko-step,.battle[data-effects=quick] .battle-tip,.battle[data-effects=quick] .exchange-lines .payoff,.battle[data-effects=quick] .delta{animation-duration:.15s}.battle[data-effects=quick] .creature .vit-fill{transition-duration:.15s}.battle[data-effects=quick] .ko-step{animation-delay:calc(var(--fx-step) * var(--fx-at,0))}.battle[data-effects=quick] .creature.fx-won .panel-art,.battle[data-effects=quick] .result.won h2 .fx-icon{animation-iteration-count:1}}@keyframes fx-glow{0%{opacity:0}25%{opacity:1}to{opacity:0}}@keyframes fx-impact{0%{opacity:0;scale:.4}30%{opacity:1;scale:1}to{opacity:0;scale:1.2}}@keyframes fx-impact-strong{0%{opacity:0;rotate:0deg;scale:.4}30%{opacity:1;scale:1.45}to{opacity:0;rotate:20deg;scale:1.7}}@keyframes fx-recoil-a{0%,to{rotate:0deg}35%{rotate:-7deg}}@keyframes fx-recoil-b{0%,to{rotate:0deg}35%{rotate:-7deg}}@keyframes fx-charge-pulse{0%{filter:drop-shadow(0 0 3px var(--lantern))}to{filter:drop-shadow(0 0 10px var(--lantern)) drop-shadow(0 0 3px #fff)}}@keyframes fx-bolt{0%{scale:1}to{scale:1.25}}@keyframes fx-payoff{0%{opacity:0;background-position:100% 0}40%{opacity:1}to{opacity:1;background-position:0 0}}@keyframes fx-star{0%{opacity:0;rotate:-12deg;scale:.5}60%{opacity:1;rotate:4deg;scale:1.15}to{opacity:1;rotate:0deg;scale:1}}@keyframes fx-step-in{0%{opacity:0;translate:0 4px}to{opacity:1;translate:0}}@keyframes fx-twinkle{0%{rotate:0deg;scale:1}to{rotate:45deg;scale:1.3}}@keyframes fx-bubble-form{0%{opacity:0;scale:.6}to{opacity:1;border-style:solid;scale:1}}@keyframes fx-bubble-wobble{0%{scale:1}to{scale:1.03 .97}}@keyframes fx-bubble-pop{0%{opacity:1;border-style:solid;scale:1}50%{opacity:.2;scale:1.28}to{opacity:.55;border-style:dashed;scale:1.04}}@keyframes fx-shelter-in{0%{opacity:0;translate:0 -14px;scale:1.15 .8}to{opacity:1;translate:0;scale:1}}@keyframes fx-shelter-break{0%{opacity:1;scale:1}45%{opacity:.25;scale:1.15}to{opacity:.6;scale:1}}@keyframes fx-gust{0%{translate:-2px}to{translate:3px -1px}}@keyframes fx-hop{0%,to{translate:0}40%{translate:0 -6px}}
