:root{--bg:#fff8ee;--surface:#fff;--text:#24123f;--muted:#6b5d80;--border:#eadfce;--primary:#5b3cc4;--primary-text:#fff;--gold:#f4b73a;--alien:#8fe39a;--shadow:#24123f1f;--ok-bg:#e6f7e8;--warn-bg:#fff0d9;--danger:#c2352b;--radius:18px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#17102a;--surface:#221838;--text:#f3ecff;--muted:#b6a8cf;--border:#3a2d57;--primary:#8b6cf0;--shadow:#00000059;--ok-bg:#1f3a27;--warn-bg:#3d2d12;--danger:#ff6b5e;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);-webkit-tap-highlight-color:transparent;margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:16px;line-height:1.45}.app{flex-direction:column;max-width:640px;min-height:100dvh;margin:0 auto;display:flex}.topbar{padding:calc(env(safe-area-inset-top) + 14px) 16px 8px}.topbar h1{letter-spacing:-.01em;margin:0;font-size:1.5rem}.amp{color:var(--gold)}.content{padding:8px 16px calc(env(safe-area-inset-bottom) + 92px);flex:1}.stack{flex-direction:column;gap:14px;display:flex}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 2px 8px var(--shadow);padding:16px}.card h2{margin:0 0 8px;font-size:1.1rem}.card.danger h2{color:var(--danger)}.pet-card{align-items:center;gap:14px;display:flex}.pet{flex:none;width:110px;height:110px;animation:2.6s ease-in-out infinite bob}.pet .wave{transform-origin:92px 70px;animation:1.4s ease-in-out infinite wave}@keyframes bob{50%{transform:translateY(-3%)}}@keyframes wave{50%{transform:rotate(-25deg)}}@media (prefers-reduced-motion:reduce){.pet,.pet .wave{animation:none}}.row{align-items:center;gap:8px;display:flex}.row.wrap{flex-wrap:wrap}.row.spread{justify-content:space-between}input{min-width:0;font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:12px;flex:1;padding:10px 12px;font-size:1.1rem}input:focus{outline:2px solid var(--primary);outline-offset:1px}.unit{color:var(--muted)}.btn{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;border-radius:12px;justify-content:center;align-items:center;padding:10px 16px;font-weight:600;text-decoration:none;display:inline-flex}.btn.primary{background:var(--primary);border-color:var(--primary);color:var(--primary-text)}.btn.ghost{color:var(--primary);background:0 0;border-color:#0000}.btn.danger{border-color:var(--danger);color:var(--danger);background:0 0}.btn.small{padding:6px 12px;font-size:.9rem}.btn:disabled{opacity:.45;cursor:default}.muted{color:var(--muted);margin:0 0 10px}.small{font-size:.85rem}.error{color:var(--danger);margin:8px 0 0}.list{margin:12px 0 0;padding:0;list-style:none}.list li{border-top:1px solid var(--border);justify-content:space-between;gap:12px;padding:8px 0;display:flex}.list.plain li:first-child{border-top:none}.banner{background:var(--warn-bg);border-radius:14px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:12px 14px;display:flex}.banner.ok{background:var(--ok-bg)}.banner.warn{display:block}.tabbar{padding:8px 16px calc(env(safe-area-inset-bottom) + 8px);background:var(--surface);border-top:1px solid var(--border);justify-content:center;gap:8px;display:flex;position:fixed;bottom:0;left:0;right:0}.tabbar button{max-width:200px;font:inherit;color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:12px;flex-direction:column;flex:1;align-items:center;gap:2px;padding:6px;font-size:.85rem;display:flex}.tabbar button span{font-size:1.3rem}@media (width<=480px){.tabbar{gap:2px;padding-left:4px;padding-right:4px}.tabbar button{min-width:0;padding:6px 2px;font-size:.7rem}}.tabbar button.active{color:var(--primary);background:color-mix(in srgb, var(--primary) 12%, transparent);font-weight:600}.toast{left:16px;right:16px;bottom:calc(env(safe-area-inset-bottom) + 84px);background:var(--text);max-width:608px;color:var(--bg);box-shadow:0 6px 20px var(--shadow);border-radius:14px;align-items:center;gap:8px;margin:0 auto;padding:10px 12px;display:flex;position:fixed}.toast span{flex:1}.toast .btn.ghost{color:var(--bg)}h3.sub{color:var(--muted);margin:14px 0 4px;font-size:.95rem}.field{border:none;flex-direction:column;flex:1;gap:4px;min-width:0;margin:12px 0 0;padding:0;display:flex}.field>span,.field>legend{padding:0;font-size:.9rem;font-weight:600}.row.two>*,.row.three>*{flex:1}.row.two,.row.three{align-items:flex-start}.grow{flex:1}select{font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:12px;flex:1.4;min-width:0;padding:10px 8px}input.amount{flex:0 0 90px}.seg{background:var(--bg);border:1px solid var(--border);border-radius:12px;gap:2px;padding:3px;display:inline-flex}.seg.wide{display:flex}.seg button{font:inherit;color:var(--muted);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:9px;flex:1;padding:7px 10px;font-size:.88rem}.seg button.on{background:var(--primary);color:var(--primary-text);font-weight:600}.choices{flex-direction:column;gap:6px;display:flex}.choice{border:1px solid var(--border);cursor:pointer;border-radius:12px;grid-template-columns:auto 1fr;align-items:center;column-gap:10px;padding:10px 12px;display:grid}.choice input{accent-color:var(--primary);grid-row:span 2}.choice small{color:var(--muted)}.choice.on{border-color:var(--primary);background:color-mix(in srgb, var(--primary) 8%, transparent)}.card.result{background:color-mix(in srgb, var(--gold) 14%, var(--surface))}.card.result .row+.row{margin-top:6px}.nutrients{color:var(--muted);flex-wrap:wrap;gap:4px 14px;margin-top:8px;font-size:.9rem;display:flex}.sheet{flex-direction:column;gap:12px;display:flex}.sheet-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.sheet-head h2{overflow-wrap:anywhere;margin:0;font-size:1.2rem}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{font:inherit;border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;border-radius:999px;padding:8px 12px;font-size:.9rem}.list.pick{margin:0}.list.pick li{padding:0}.pick-item{flex-direction:column;align-items:stretch}.list .pick-item{flex-flow:wrap;display:flex}.pick-item>button:first-of-type{flex:1;min-width:0}.pick-item .group{color:var(--muted);flex-basis:100%;padding:12px 0 4px;font-size:.85rem;font-weight:700}.pick-item button{font:inherit;text-align:left;color:var(--text);cursor:pointer;background:0 0;border:none;flex-direction:column;gap:2px;padding:10px 2px;display:flex}.pick-item button small{font-size:.8rem}button.icon{font:inherit;color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:10px;align-self:center;padding:6px 8px}button.icon.add{color:var(--primary);font-size:1.3rem;font-weight:700}.link{font:inherit;color:var(--primary);cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}.link.small{margin-top:8px;font-size:.85rem}.list.entries li{align-items:center}.list.entries li>span:first-child{overflow-wrap:anywhere;min-width:0}.daybar{justify-content:space-between;align-items:center;display:flex}.daybar .btn{font-size:1.4rem;line-height:1}.summary{grid-template-columns:auto 1fr;align-items:center;gap:4px 14px;display:grid}.summary>p{grid-column:1/-1;margin:6px 0 0}.pet-mini{flex-direction:column;align-items:center;display:flex}.pet-mini .pet{width:72px;height:72px}.figures{text-align:center;justify-content:space-around;gap:8px;display:flex}.figures div{flex-direction:column;display:flex}.figures strong{font-size:1.35rem}.figures .under{color:#2f9e55}.figures .over{color:var(--danger)}.list li>strong,.card.result .row>strong{text-align:right}.card.closed{border-color:color-mix(in srgb, #2f9e55 45%, var(--border))}.coins{margin:8px 0;padding:0;font-size:.92rem;list-style:none}.coins li{justify-content:space-between;padding:3px 0;display:flex}.coins li.total{border-top:1px solid var(--border);margin-top:4px;padding-top:6px;font-weight:700}.coin{vertical-align:-.12em;width:.95em;height:.95em;display:inline-block;position:relative;overflow:hidden}.coin:before{content:"";background:var(--coin-strip) 0 0 / 100% 100% no-repeat;width:1163.64%;height:145.455%;image-rendering:pixelated;position:absolute;top:-34.0909%;left:-22.7273%}.coin.copper{--coin-strip:url(/sprites/coins/copper.png)}.coin.silver{--coin-strip:url(/sprites/coins/silver.png)}.coin.gold{--coin-strip:url(/sprites/coins/gold.png)}.coin.bar{background:url(/sprites/coin-piles/bars-1.webp) 50%/contain no-repeat;width:1.5em}.coin.bar:before{content:none}.coin.flying:before,.coin.falling:before{animation:.6s steps(8,end) infinite coin-spin}@keyframes coin-spin{to{transform:translate(-100%)}}@media (prefers-reduced-motion:reduce){.coin.flying:before,.coin.falling:before{animation:none}}.purse{flex-wrap:wrap;gap:16px;margin:6px 0 10px;font-size:1.1rem;font-weight:600;display:flex}.bars{flex-wrap:wrap;align-items:center;gap:4px;margin:6px 0;display:flex}.bar{background:linear-gradient(#ffe28a,#d39b14);border-radius:2px 2px 3px 3px;width:22px;height:11px;box-shadow:inset 0 -2px #00000026}p.big{margin:4px 0;font-size:1.3rem;font-weight:700}.progress{background:var(--border);border-radius:999px;height:10px;margin:8px 0;overflow:hidden}.progress span{background:linear-gradient(90deg, var(--gold), #2f9e55);height:100%;display:block}details summary{cursor:pointer;color:var(--primary);margin-top:8px}.choice.toggle{margin-top:12px}.hidden-number{letter-spacing:.1em;color:var(--muted)}.today-purse{align-items:center;gap:6px;margin:-4px 4px 0;font-weight:600;display:flex}.coinpop{left:50%;top:calc(env(safe-area-inset-top) + 92px);z-index:50;pointer-events:none;flex-direction:column;align-items:center;width:max-content;max-width:92vw;animation:.25s ease-out pop-in,.3s ease-in 1.5s forwards pop-out;display:flex;position:fixed;transform:translate(-50%)}.coinpop.banked{animation:.25s ease-out pop-in,.3s ease-in 2.3s forwards pop-out}.coinpop-coins{width:1px;height:34px;position:relative}.coin.flying{width:22px;height:22px;margin-left:-11px;animation:.9s ease-out both coin-up;position:absolute;top:0}.coinpop-text{background:var(--text);color:var(--bg);box-shadow:0 6px 20px var(--shadow);border-radius:999px;align-items:baseline;gap:8px;max-width:86vw;padding:6px 14px;display:flex}.coinpop-text strong{white-space:nowrap}.coinpop-text span{opacity:.85;white-space:nowrap;text-overflow:ellipsis;font-size:.85rem;overflow:hidden}@keyframes coin-up{0%{opacity:0;transform:translateY(16px)scale(.6)rotateY(0)}30%{opacity:1}to{opacity:1;transform:translateY(-8px)scale(1)rotateY(720deg)}}@keyframes pop-in{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}@keyframes pop-out{to{opacity:0;transform:translate(-50%,-10px)}}.vault-art svg{width:100%;height:auto;display:block}.vault-art .dropping{animation:.9s cubic-bezier(.45,0,.8,.4) both drop-in}@keyframes drop-in{0%{opacity:0;transform:translateY(-60px)}20%{opacity:1}85%{opacity:1;transform:translateY(116px)}to{opacity:0;transform:translateY(116px)}}@media (prefers-reduced-motion:reduce){.coinpop,.coin.flying,.vault-art .dropping{animation:none}}.coinpop.vanished{animation:.25s ease-out pop-in,.3s ease-in 2.3s forwards pop-out}.sad-dragon{width:96px;height:96px;margin-bottom:-6px;position:relative}.sad-dragon img,.sad-dragon .pet-sprite{width:96px;height:96px;image-rendering:pixelated}.sad-dragon .sad{filter:grayscale(.55)brightness(.9);transform:scaleY(.96)translateY(2px)}.pop-pet{margin-bottom:-10px}.sad-dragon .tear{background:#7fc8ff;border-radius:50%/30% 30% 70% 70%;width:6px;height:9px;animation:1.4s ease-in .3s infinite tear-fall;position:absolute;top:40px;left:63px}@keyframes tear-fall{0%{opacity:0;transform:translateY(0)}20%{opacity:1}to{opacity:0;transform:translateY(22px)}}.card.skipped{opacity:.85;border-style:dashed}.cave-card{padding-top:0;overflow:hidden}.cave-scene{aspect-ratio:16/9;border-radius:var(--radius) var(--radius) 0 0;margin:0 -16px 12px;position:relative;overflow:hidden}.cave-scene img{object-fit:cover;width:100%;height:100%;display:block}.pile-spot{aspect-ratio:1;position:absolute}.coin-hoard{position:absolute;inset:0}.cave-scene img.coin-pile{object-fit:contain;filter:drop-shadow(0 2px 2px #0006);height:auto;position:absolute;bottom:0}.coin.falling{aspect-ratio:1;width:12%;height:auto;animation:.9s cubic-bezier(.45,0,.8,.4) both coin-fall;position:absolute;top:-120%}@keyframes coin-fall{0%{opacity:0;transform:translateY(0)}15%{opacity:1}85%{opacity:1;transform:translateY(1050%)}to{opacity:0;transform:translateY(1050%)}}.cave-choice{text-align:left;font:inherit;color:var(--text);cursor:pointer;flex-direction:column;gap:0;padding:0;display:flex;overflow:hidden}.cave-choice img{aspect-ratio:16/9;object-fit:cover;width:100%;display:block}.cave-choice-text{flex-direction:column;gap:2px;padding:12px 16px;display:flex}@media (prefers-reduced-motion:reduce){.coin.falling{animation:none;display:none}}.pet-sprite{aspect-ratio:1;flex:none;display:inline-block;position:relative}.pet-frames{image-rendering:pixelated;background-repeat:no-repeat;position:absolute;inset:0}.standin-sleepy .pet-frames{filter:saturate(.7)brightness(.92);transform-origin:50% 90%;animation:3s ease-in-out infinite snooze}.standin-happy .pet-frames{animation:.45s ease-out 3 hop}.standin-walk .pet-frames{animation:.5s ease-in-out infinite hop}.standin-run .pet-frames,.standin-bike .pet-frames{animation:.32s ease-in-out infinite hop}.standin-eat .pet-frames{animation:.35s ease-in-out 4 munch}.standin-fx{aspect-ratio:1;pointer-events:none;width:26%;font-size:0;position:absolute;top:10%;right:8%}.standin-happy .standin-fx:after,.standin-eat .standin-fx:after,.standin-sleepy .standin-fx:after{font-size:calc(100% + 1em);line-height:1;position:absolute;inset:0}.standin-happy .standin-fx:after{content:"💕";font-size:1.1em;animation:1.4s ease-out both float-up}.standin-eat .standin-fx:after{content:"🍃";font-size:1em;animation:1.4s ease-out both float-up;top:30%}.standin-sleepy .standin-fx:after{content:"z";color:#6b4aa8;font-size:1.1em;font-weight:800;animation:2.4s ease-out infinite float-up}@keyframes snooze{50%{transform:scaleY(.96)}}@keyframes hop{40%{transform:translateY(-10%)}}@keyframes munch{50%{transform:scaleX(1.03)translateY(1%)}}@keyframes float-up{0%{opacity:0;transform:translateY(20%)}20%{opacity:1}to{opacity:0;transform:translateY(-80%)}}@media (prefers-reduced-motion:reduce){.standin-sleepy .pet-frames,.standin-happy .pet-frames,.standin-eat .pet-frames,.standin-fx:after{animation:none!important}}.pettable{cursor:pointer;touch-action:manipulation;background:0 0;border:none;padding:0;line-height:0;display:inline-block}.cave-pet{aspect-ratio:1;cursor:pointer;background:0 0;border:none;padding:0;position:absolute}.cave-pet .pet-sprite{width:100%!important}.cave-list li{align-items:center}.cave-list img{aspect-ratio:16/9;object-fit:cover;border-radius:8px;flex:none;width:72px}.cave-list-text{flex-direction:column;flex:1;display:flex}.pet-options{gap:8px;margin:8px 0;display:flex}.pet-option{border:2px solid var(--border);background:var(--bg);color:var(--text);font:inherit;cursor:pointer;border-radius:14px;flex-direction:column;flex:1;align-items:center;gap:2px;padding:8px 4px;display:flex}.pet-option.on{border-color:var(--primary);background:color-mix(in srgb, var(--primary) 10%, var(--surface))}.pop-pet.walking{animation:1.6s linear both walk-across}@keyframes walk-across{0%{transform:translate(-70px)}to{transform:translate(70px)}}:root{--series-1:#2a78d6;--series-2:#eb6834;--viz-grid:#ece6f2;--viz-axis:#c9bfd6;--viz-muted:#7d708f;--cal-0:#ece6f2;--cal-1:#86b6ef;--cal-2:#2a78d6;--cal-3:#184f95}@media (prefers-color-scheme:dark){:root{--series-1:#3987e5;--series-2:#d95926;--viz-grid:#33284c;--viz-axis:#4a3d66;--viz-muted:#a497bb;--cal-0:#33284c;--cal-1:#1c5cab;--cal-2:#3987e5;--cal-3:#86b6ef}}.viz{position:relative;overflow:hidden}.viz svg{touch-action:pan-y;max-width:100%;display:block}.viz svg:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:6px}.viz-grid{stroke:var(--viz-grid);stroke-width:1px}.viz-axis{stroke:var(--viz-axis);stroke-width:1px}.viz-tick{fill:var(--viz-muted);font-variant-numeric:tabular-nums;font-size:11px}.viz-end{fill:var(--text);font-size:11px;font-weight:600}.viz-line{fill:none;stroke-width:2px;stroke-linejoin:round;stroke-linecap:round}.viz-area{opacity:.1}.viz-dot{stroke:var(--surface);stroke-width:2px}.viz-cross{stroke:var(--viz-axis);stroke-width:1px}.viz-tip{pointer-events:none;background:var(--surface);border:1px solid var(--border);min-width:140px;box-shadow:0 4px 14px var(--shadow);border-radius:10px;flex-direction:column;gap:2px;padding:6px 10px;font-size:.85rem;display:flex;position:absolute}.viz-tip-day{color:var(--muted);font-size:.78rem}.viz-tip-row{align-items:center;gap:6px;display:flex}.viz-legend{color:var(--muted);flex-wrap:wrap;gap:4px 14px;margin-bottom:4px;font-size:.82rem;display:flex}.viz-legend>span{align-items:center;gap:6px;display:inline-flex}.key-line{border-radius:1px;width:14px;height:2px;display:inline-block}.key-dot{border-radius:50%;width:8px;height:8px;display:inline-block}.key-cell{border-radius:3px;width:12px;height:12px;display:inline-block}.cal-cell{fill:var(--cal-0);cursor:pointer}.cal-cell.hits-none{fill:#0000;stroke:var(--viz-grid);stroke-width:1px}.hits-0{fill:var(--cal-0);background:var(--cal-0)}.hits-1{fill:var(--cal-1);background:var(--cal-1)}.hits-2{fill:var(--cal-2);background:var(--cal-2)}.hits-3{fill:var(--cal-3);background:var(--cal-3)}.cal-cell.on{stroke:var(--text);stroke-width:2px}.cal-legend{margin-top:6px}.viz-table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;margin-top:6px;font-size:.85rem}.viz-table th,.viz-table td{text-align:left;border-bottom:1px solid var(--border);padding:3px 6px}.hero-figure{margin:4px 0 2px;font-size:3rem;font-weight:700;line-height:1.05}.journey-track{margin:26px 4px 6px;position:relative}.track-line{background:var(--cal-0);border-radius:999px;height:8px;overflow:hidden}.track-fill{background:var(--series-1);border-radius:999px;height:100%;display:block}.track-walker{position:absolute;top:-40px;transform:translate(-50%)}.track-dot{background:var(--series-1);border:2px solid var(--surface);border-radius:50%;width:14px;height:14px;margin-top:30px;display:block}.track-ends{justify-content:space-between;gap:12px;margin-top:4px;display:flex}.track-ends span:last-child{text-align:right}.range-filter{z-index:5;position:sticky;top:0}.tip-name{color:var(--muted)}.stage-card{padding-top:0;overflow:hidden}.stage{border-radius:var(--radius) var(--radius) 0 0;background-position:50% 70%;background-size:cover;justify-content:center;align-items:flex-end;height:200px;margin:0 -16px 10px;padding-bottom:14px;display:flex;position:relative}.stage>.muted{background:color-mix(in srgb, var(--surface) 85%, transparent);border-radius:10px;margin-bottom:30px;padding:6px 10px}.stage-pet{display:inline-block}.stage-pet.jump{animation:.9s cubic-bezier(.3,.7,.4,1) both jump-joy}@keyframes jump-joy{0%{transform:translateY(0)scale(1)}12%{transform:translateY(0)scale(1.08,.9)}40%{transform:translateY(-46px)scale(.96,1.06)}62%{transform:translateY(0)scale(1.06,.94)}76%{transform:translateY(-12px)scale(1)}to{transform:translateY(0)scale(1)}}.stage-bubble{background:var(--surface);color:var(--text);box-shadow:0 4px 14px var(--shadow);white-space:nowrap;border-radius:999px;padding:6px 14px;font-weight:700;animation:1.8s ease-out both bubble-pop;position:absolute;top:14px;left:50%;transform:translate(-50%)}@keyframes bubble-pop{0%{opacity:0;transform:translate(-50%,8px)scale(.9)}15%{opacity:1;transform:translate(-50%)scale(1.05)}25%{transform:translate(-50%)scale(1)}80%{opacity:1}to{opacity:0;transform:translate(-50%,-6px)}}.move-grid{flex-wrap:wrap;gap:6px;display:flex}.chip.on{background:var(--primary);color:var(--primary-text);border-color:var(--primary)}.chip.small{padding:3px 8px;font-size:.8rem}.set-entry{flex-direction:column;gap:10px;margin-top:14px;display:flex}.set-entry .btn{min-width:44px}.btn.big{padding:14px;font-size:1.1rem}.set-row{flex-wrap:wrap}.set-chips{flex-wrap:wrap;gap:4px;display:flex}@media (prefers-reduced-motion:reduce){.stage-pet.jump,.stage-bubble{animation:none}}.coinpop.low{top:auto;bottom:calc(env(safe-area-inset-bottom) + 96px)}.scanner{aspect-ratio:4/3;background:#000;border-radius:14px;position:relative;overflow:hidden}.scanner video{object-fit:cover;width:100%;height:100%;display:block}.scanner-frame{border:3px solid #ffffffe6;border-radius:10px;position:absolute;inset:30% 12%;box-shadow:0 0 0 999px #00000059}.credit{margin-top:.25rem}.banner.warn .btn{margin-top:.5rem}.cover{width:min(100%,420px);height:auto;margin:0 auto -8px;display:block}.cover.small{width:min(60%,240px);margin:4px auto 8px}.rival,.battle-pet{aspect-ratio:1;position:absolute}.rival.defeated{filter:saturate(.8)}.smooth .pet-frames{image-rendering:auto}.facing-left .pet-frames{transform:scaleX(-1)}.battle-hero{position:absolute}.rival.tappable{cursor:pointer}.cave-hero{cursor:pointer;background:0 0;border:0;padding:0;position:absolute}.rival-heap{position:absolute}.cave-scene img.rival-scatter{object-fit:contain;filter:drop-shadow(0 2px 2px #00000073);height:auto;position:absolute}.cave-scene .rival-heap img{object-fit:contain;filter:drop-shadow(0 2px 2px #00000073);width:100%;height:auto}.glint{aspect-ratio:1;clip-path:polygon(50% 0,58% 42%,100% 50%,58% 58%,50% 100%,42% 58%,0 50%,42% 42%);opacity:0;pointer-events:none;background:radial-gradient(circle,#fff 0 12%,#0000 13%),linear-gradient(#0000 46%,#fffcdcf2 46% 54%,#0000 54%),linear-gradient(90deg,#0000 46%,#fffcdcf2 46% 54%,#0000 54%);width:9%;max-width:14px;animation:3.4s ease-in-out infinite glint;position:absolute;translate:-50% -50%}@keyframes glint{0%,70%,to{opacity:0;transform:scale(.3)rotate(0)}80%{opacity:1;transform:scale(1)rotate(45deg)}90%{opacity:0;transform:scale(.4)rotate(90deg)}}.strike-flash{aspect-ratio:1;pointer-events:none;background:radial-gradient(circle,#fff4c8f2 0%,#ffc45099 35%,#0000 70%);border-radius:50%;width:22%;animation:.45s ease-out both strike;position:absolute;top:30%;left:58%}@keyframes strike{0%{opacity:1;transform:scale(.3)}to{opacity:0;transform:scale(1.4)}}.chest{aspect-ratio:1;width:28px;image-rendering:pixelated;opacity:.35;filter:grayscale(.8);background:url(/sprites/chest.png) 0 0/200% 100% no-repeat;display:inline-block}.chest.won{opacity:1;filter:none;background-position:100% 0}.cave-chests{flex-wrap:wrap-reverse;gap:0;width:16%;display:flex;position:absolute}.cave-chests .chest{width:33%;margin-left:-4%}@media (prefers-reduced-motion:reduce){.strike-flash{opacity:0;animation:none}.glint{animation:none}}.battle-styles{gap:8px;padding:0;display:grid}.battle-styles li{list-style:none}.battle-style{text-align:left;width:100%;font:inherit;color:inherit;cursor:pointer;gap:4px;display:grid}.battle-style.on{outline:3px solid var(--primary)}.battle-health{z-index:2;background:#140a1e99;border:2px solid #2b1b3f;border-radius:6px;width:40%;height:10px;position:absolute;top:6%;left:50%;overflow:hidden}.battle-health .bar{background:linear-gradient(#ffe28a,#d39b14);height:100%;transition:width .25s linear;display:block}.battle-now{text-align:center;justify-items:center;gap:2px;padding:8px 0 12px;display:grid}.battle-phase{text-transform:uppercase;letter-spacing:.08em;font-weight:700}.battle-now.work .battle-phase{color:var(--series-2)}.battle-now.rest .battle-phase{color:var(--series-1)}.battle-count{font-variant-numeric:tabular-nums;font-size:4rem;font-weight:800;line-height:1}.battle-move{font-size:1.3rem}.scene-camera{position:absolute;inset:0}.fight-fx{pointer-events:none;--impact:.42s;position:absolute;inset:0}.fight-fx.jab{--impact:.15s}.fx-burst{width:0;height:0;position:absolute;top:52%;left:63%}.fight-fx.jab .fx-burst{top:56%;left:61%}.spark{opacity:0;width:8px;height:8px;animation:spark .45s ease-out var(--impact) both;background:#fff6c8;position:absolute;top:-4px;left:-4px;box-shadow:0 0 0 2px #f4b73a}.spark:nth-child(odd){background:#fff;box-shadow:0 0 0 2px #ff9e5e}.fight-fx.jab .spark{width:6px;height:6px;animation-duration:.3s}@keyframes spark{0%{opacity:1;transform:rotate(var(--a)) translateX(0) scale(1.2)}to{opacity:0;transform:rotate(var(--a)) translateX(var(--d)) scale(.4)}}.fx-star{clip-path:polygon(50% 0,60% 38%,100% 50%,60% 62%,50% 100%,40% 62%,0 50%,40% 38%);opacity:0;width:68px;height:68px;animation:star .38s ease-out var(--impact) both;background:radial-gradient(circle,#fff 0 18%,#ffe28a 19% 34%,#f4b73a 35% 48%,#0000 49%);position:absolute;top:-34px;left:-34px}.fight-fx.finale .fx-star{animation-duration:.6s}@keyframes star{0%{opacity:1;transform:scale(.2)rotate(0)}45%{opacity:1;transform:scale(1.35)rotate(12deg)}to{opacity:0;transform:scale(1.7)rotate(20deg)}}.fx-fire{aspect-ratio:1.4;clip-path:polygon(0 50%,20% 20%,45% 30%,60% 0,100% 20%,100% 80%,60% 100%,45% 70%,20% 80%);opacity:0;background:radial-gradient(at 70%,#fffbe0 0 20%,#ffd23f 21% 45%,#ff8a2a 46% 70%,#e2442a 71% 100%);width:11%;animation:.26s linear .17s both fire;position:absolute;top:44%;left:30%}@keyframes fire{0%{opacity:1;transform:translate(0)scale(.7)}90%{opacity:1}to{opacity:0;transform:translate(260%)scale(1.3)}}.fx-kick{aspect-ratio:1;opacity:0;border:4px solid #fff9;border-color:#fff9 #fff #0000 #0000;border-radius:50%;width:12%;animation:.3s ease-out .25s both kick;position:absolute;top:40%;left:50%}@keyframes kick{0%{opacity:1;transform:rotate(-40deg)scale(.6)}to{opacity:0;transform:rotate(40deg)scale(1.2)}}.fx-dust{aspect-ratio:1.6;opacity:0;background:#d6bea0d9;border-radius:50%;width:10%;animation:.6s ease-out 50ms both dust;position:absolute;bottom:12%;left:14%;box-shadow:40px -6px 0 -4px #d6bea0b3,80px -2px 0 -6px #d6bea099}@keyframes dust{0%{opacity:.9;transform:scale(.4)}to{opacity:0;transform:scale(1.5)translateY(-30%)}}.fx-coin{aspect-ratio:1;opacity:0;width:7%;animation:.75s ease-in-out both coin-home;position:absolute;top:76%;left:50%}.fx-coin .coin{width:100%;height:100%}.fx-coin:nth-child(2n){animation-name:coin-home-high}@keyframes coin-home{0%{opacity:1;top:76%;left:50%}45%{top:36%;left:37%}90%{opacity:1}to{opacity:0;top:62%;left:21%}}@keyframes coin-home-high{0%{opacity:1;top:74%;left:52%}45%{top:24%;left:40%}90%{opacity:1}to{opacity:0;top:60%;left:23%}}.fx-dmg,.fx-combo,.fx-dodge,.fx-victory{color:#fff;letter-spacing:.02em;text-shadow:0 2px #2b1b3f,2px 0 #2b1b3f,-2px 0 #2b1b3f,0 -2px #2b1b3f,0 4px #00000059;white-space:nowrap;font-weight:800;position:absolute}.fx-dmg{color:#ffe28a;opacity:0;animation:dmg 1s ease-out var(--impact) both;font-size:1.25rem;top:30%;left:76%}@keyframes dmg{0%{opacity:0;transform:translate(-50%,10px)scale(.6)}15%{opacity:1;transform:translate(-50%)scale(1.25)}30%{transform:translate(-50%,-4px)scale(1)}80%{opacity:1}to{opacity:0;transform:translate(-50%,-30px)scale(1)}}.fx-combo{animation:combo .9s ease-out var(--impact) both;font-size:1.4rem;top:14%;left:34%}@keyframes combo{0%{opacity:0;transform:translate(-50%)scale(2.2)rotate(-6deg)}20%{opacity:1;transform:translate(-50%)scale(1)rotate(-3deg)}80%{opacity:1}to{opacity:0;transform:translate(-50%)scale(1)rotate(-3deg)}}.fx-dodge{color:#bfe8ff;opacity:0;font-size:1.05rem;animation:.9s ease-out .35s both combo;top:22%;left:26%}.fx-victory{color:#ffe28a;font-size:2.4rem;animation:2.4s ease-out .35s both victory;top:30%;left:50%}@keyframes victory{0%{opacity:0;transform:translate(-50%)scale(3)}15%{opacity:1;transform:translate(-50%)scale(.9)}22%{transform:translate(-50%)scale(1.1)}30%{transform:translate(-50%)scale(1)}85%{opacity:1}to{opacity:0;transform:translate(-50%)scale(1)}}@media (prefers-reduced-motion:reduce){.spark,.fx-fire,.fx-kick,.fx-dust,.fx-coin{display:none}.fx-star,.fx-dmg,.fx-combo,.fx-dodge,.fx-victory{animation-name:fade-flash}}@keyframes fade-flash{0%,to{opacity:0}20%,80%{opacity:1}}.battle-health .trail{background:#fff;transition:width .8s ease-in .45s;position:absolute;inset:0 auto 0 0}.battle-health .bar{position:relative}.treasure-grid{grid-template-columns:repeat(3,1fr);gap:8px;margin:8px 0 0;padding:0;display:grid}.treasure-grid li{list-style:none}.treasure{width:100%;height:100%;font:inherit;color:inherit;text-align:center;background:color-mix(in srgb, var(--primary) 6%, var(--surface));border:2px solid var(--border);cursor:pointer;border-radius:12px;justify-items:center;gap:2px;padding:6px 4px 8px;display:grid}.treasure-grid li:last-child{grid-column:1/-1}.treasure-grid li:last-child .treasure-art{aspect-ratio:5/2}.treasure.on{border-color:var(--primary)}.treasure-art{aspect-ratio:4/3;background:radial-gradient(at 50% 85%,#ffd25a47,#0000 70%),#2a2140;border-radius:8px;place-items:end center;width:100%;display:grid}.treasure-art img{object-fit:contain;filter:drop-shadow(0 2px 2px #00000080);max-width:92%;max-height:92%}.treasure-name{font-size:.75rem;font-weight:600;line-height:1.2}.treasure-badge{background:color-mix(in srgb, var(--muted) 18%, transparent);color:var(--muted);border-radius:999px;padding:1px 7px;font-size:.68rem}.treasure.won .treasure-art{background:radial-gradient(at 50% 85%,#78c88c40,#0000 70%),#263a30}.treasure.won .treasure-badge{background:color-mix(in srgb, var(--good,#2e8b57) 20%, transparent);color:var(--text)}.treasure.next .treasure-badge{background:color-mix(in srgb, var(--primary) 22%, transparent);color:var(--text)}.treasure.stolen .treasure-badge{background:color-mix(in srgb, var(--danger,#c0392b) 22%, transparent);color:var(--text)}.treasure.held .treasure-art img,.treasure.next .treasure-art img,.treasure.stolen .treasure-art img{animation:4s ease-in-out infinite treasure-shine}.treasure-grid li:nth-child(3n+2) .treasure-art img{animation-delay:1.3s}.treasure-grid li:nth-child(3n) .treasure-art img{animation-delay:2.6s}@keyframes treasure-shine{0%,80%,to{filter:drop-shadow(0 2px 2px #00000080)brightness()}90%{filter:drop-shadow(0 0 6px #ffe68ce6)brightness(1.25)}}.treasure-focus{border:1px solid var(--border);background:color-mix(in srgb, var(--primary) 6%, var(--surface));border-radius:12px;grid-template-columns:minmax(110px,40%) 1fr;align-items:center;gap:12px;margin:8px 0;padding:10px;display:grid}.treasure-focus img{background:radial-gradient(at 50% 85%,#ffd25a4d,#0000 70%),#2a2140;border-radius:8px;width:100%;padding:8px}.treasure-focus p{margin:4px 0 0}@media (prefers-reduced-motion:reduce){.treasure .treasure-art img{animation:none}}.company-scene{background:#1d1830}.track-strip{will-change:transform;height:100%;animation:linear infinite track-scroll;display:flex;position:absolute;inset:0 auto 0 0}.cave-scene .track-strip img{aspect-ratio:3/2;object-fit:cover;flex:none;width:auto;height:100%}.cave-scene .track-strip img.mirrored{transform:scaleX(-1)}@keyframes track-scroll{0%{transform:translate(0)}to{transform:translate(-66.6667%)}}.track-strip.still{animation-play-state:paused}.company-pet{aspect-ratio:1;width:22%;position:absolute;left:30%}.company-pet.run{animation:.35s ease-in-out infinite bob}.company-pet.bike{animation:.6s ease-in-out infinite bob}.company-bubble{color:#2b1b3f;background:#ffffffeb;border-radius:12px 12px 12px 2px;max-width:50%;margin:0;padding:6px 10px;font-size:.8rem;font-weight:600;line-height:1.25;animation:.3s ease-out both bubble-in;position:absolute;top:10%;left:46%}@keyframes bubble-in{0%{opacity:0;transform:translateY(6px)}}.company-now{justify-items:center;gap:2px;margin:4px 0 12px;display:grid}.company-clock{font-variant-numeric:tabular-nums;font-size:3.2rem;font-weight:800;line-height:1.1}.company-now.paused .company-clock{opacity:.55}@media (prefers-reduced-motion:reduce){.track-strip,.company-pet{animation:none}}.creature-grid{grid-template-columns:repeat(3,1fr);gap:6px;margin:8px 0;padding:0;display:grid}.creature-grid li{list-style:none}.creature-option{width:100%;height:100%;font:inherit;color:var(--text);text-align:center;background:var(--bg);border:2px solid var(--border);cursor:pointer;border-radius:12px;justify-items:center;gap:2px;padding:4px 2px 6px;line-height:1.2;display:grid}.creature-option.on{border-color:var(--primary);background:color-mix(in srgb, var(--primary) 10%, var(--bg))}.creature-portrait{aspect-ratio:4/3;place-items:center;width:100%;display:grid;overflow:hidden}.creature-portrait img{object-fit:contain;width:100%;height:100%;min-height:0}.creature-stage{background:radial-gradient(ellipse at 50% 90%, #ffd27840, transparent 70%), color-mix(in srgb, var(--primary) 8%, var(--bg));border-radius:12px;width:min(100%,360px);margin:4px auto}.team-list li{align-items:center}.water-scene{background:radial-gradient(ellipse at 50% 85%, #7fd6f24d, transparent 70%), color-mix(in srgb, #7bbf6a 16%, var(--bg));border-radius:12px;justify-content:center;margin:6px 0;padding:10px 8px 6px;display:flex;position:relative}.water-station{cursor:pointer;background:0 0;border:0;width:min(86%,330px);padding:0;position:relative}.water-station-art{height:100%;position:absolute;top:0}.water-pet{position:absolute}.water-frames{background-repeat:no-repeat;position:absolute;inset:0}.water-bowl{pointer-events:none;height:auto;position:absolute}.water-panels{grid-template-columns:1.15fr 1fr;align-items:center;gap:6px;margin:2px 0 6px;display:grid}.water-panel{background:50%/100% 100% no-repeat;display:block;position:relative}.water-panel-text{color:#fff3d6;text-shadow:0 1px #0009;align-content:center;justify-items:start;padding-left:4%;line-height:1.1;display:grid;position:absolute}.water-panel-text small{opacity:.85;font-size:clamp(.55rem,2.6vw,.75rem)}.water-panel-text strong{white-space:nowrap;font-size:clamp(.7rem,3.4vw,1rem)}.water-bubble{color:#2b1b3f;background:#fff;border-radius:10px;align-items:center;gap:4px;padding:4px 8px;font-size:.75rem;font-weight:600;animation:.3s ease-out both bubble-in;display:flex;position:absolute;top:8px;left:8px}.water-bubble img{width:18px;height:18px}.water-add{justify-content:center;align-items:center;gap:4px;display:inline-flex}.water-add img{width:22px;height:22px}.water-add span{text-align:left;white-space:nowrap;line-height:1.15;display:grid}.water-add small{opacity:.75;font-size:.7rem}.treat-scene{background:radial-gradient(ellipse at 50% 90%, #ffbe784d, transparent 70%), color-mix(in srgb, #f6c27a 14%, var(--bg));border-radius:12px;justify-content:center;margin:6px 0;padding:10px 8px 6px;display:flex}.treat-stage{width:min(86%,330px);display:block;position:relative}.treat-dispenser{height:100%;position:absolute;top:0}.treat-pet{position:absolute}.treat-frames{background-repeat:no-repeat;position:absolute;inset:0}.treat-drop{pointer-events:none;width:11%;animation:.9s cubic-bezier(.4,0,.9,.6) both treat-drop;position:absolute;translate:-50% -50%}@keyframes treat-drop{0%{opacity:0;transform:translateY(-30%)rotate(0)}15%{opacity:1}80%{opacity:1;transform:translate(-260%,230%)rotate(-200deg)}to{opacity:0;transform:translate(-260%,230%)rotate(-220deg)}}.water-panel-text.centred{text-align:center;justify-items:center;padding-left:0}.treat-add{align-items:center;gap:6px;display:inline-flex}.treat-add img{width:22px;height:22px}.treat-note{margin:4px 0;font-weight:600}.swap-form{gap:8px;display:grid}@media (prefers-reduced-motion:reduce){.treat-drop{opacity:0;animation:none}}.pile-spot,.coin-hoard,.cave-chests,.rival-heap,.cave-scene img.rival-scatter{pointer-events:none}textarea{font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--text);resize:vertical;border-radius:12px;min-width:0;padding:10px 12px;font-size:1rem;line-height:1.5}textarea:focus{outline:2px solid var(--primary);outline-offset:1px}.journal-story{background:color-mix(in srgb, var(--gold) 10%, var(--surface));border-left:4px solid var(--gold)}.journal-story p{margin:0;font-family:Georgia,Iowan Old Style,Times New Roman,serif;font-size:1.08rem;font-style:italic;line-height:1.6}:root{--mood-1:#5f78d6;--mood-2:#9db0e8;--mood-3:#d9cfbf;--mood-4:#93d6a2;--mood-5:#3fae64}@media (prefers-color-scheme:dark){:root{--mood-1:#6d84e0;--mood-2:#4c5a8f;--mood-3:#5e5468;--mood-4:#3c7a4f;--mood-5:#4fc276}}.mood-faces{gap:6px;display:flex}.mood-face{min-width:0;font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border);cursor:pointer;border-radius:12px;flex-direction:column;flex:1;align-items:center;gap:2px;padding:8px 2px;display:flex}.mood-face span{font-size:1.6rem;line-height:1}.mood-face small{font-size:.72rem}.mood-faces.small .mood-face span{font-size:1.3rem}.mood-face.on{border-width:2px;border-color:var(--primary)}.mood-face.on.m1,.mood-day.m1{background:color-mix(in srgb, var(--mood-1) 45%, var(--surface))}.mood-face.on.m2,.mood-day.m2{background:color-mix(in srgb, var(--mood-2) 55%, var(--surface))}.mood-face.on.m3,.mood-day.m3{background:color-mix(in srgb, var(--mood-3) 70%, var(--surface))}.mood-face.on.m4,.mood-day.m4{background:color-mix(in srgb, var(--mood-4) 55%, var(--surface))}.mood-face.on.m5,.mood-day.m5{background:color-mix(in srgb, var(--mood-5) 45%, var(--surface))}.mood-calendar{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.mood-dow{text-align:center;color:var(--muted);font-size:.75rem}.mood-day{aspect-ratio:1;font:inherit;color:var(--text);background:var(--bg);cursor:pointer;border:1px solid #0000;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;padding:0;font-size:.8rem;display:flex}.mood-day small{font-size:.85rem;line-height:1}.mood-day.selected{border:2px solid var(--primary)}.mood-day:disabled{opacity:.35;cursor:default}.journal-kinds{grid-template-columns:1fr 1fr;gap:8px;display:grid}.journal-kind{text-align:left;font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--border);cursor:pointer;border-radius:14px;flex-direction:column;align-items:flex-start;gap:2px;padding:12px;display:flex}.journal-kind span{font-size:1.4rem}.journal-kind small{color:var(--muted);font-size:.8rem}.journal-pages{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.journal-pages>li{border-bottom:1px solid var(--border);padding-bottom:12px}.journal-pages>li:last-child{border-bottom:none;padding-bottom:0}.journal-text{white-space:pre-wrap;overflow-wrap:anywhere;margin:4px 0}.journal-text.balanced{border-left:3px solid var(--mood-4);padding-left:8px}.good-things{margin:4px 0;padding-left:20px}.traps{flex-direction:column;gap:8px;margin:6px 0 0;padding:0;list-style:none;display:flex}.traps label,.check-row{cursor:pointer;align-items:flex-start;gap:10px;font-size:.9rem;display:flex}.check-row{align-items:center;margin-top:14px;font-size:1rem;font-weight:600}.traps input,.check-row input{flex:none;width:20px;height:20px;margin-top:2px}.journal-form input[type=range]{accent-color:var(--primary);background:0 0;border:none;padding:0}.good-thing{border-bottom:1px dashed var(--border);padding-bottom:8px}.support-link{align-self:center;margin:4px 0 8px}.support-kinds{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.support-kinds li{flex-direction:column;gap:2px;display:flex}.support-lines{-webkit-user-select:text;user-select:text;grid-template-columns:auto 1fr;gap:6px 14px;margin:12px 0 0;display:grid}.support-lines dt{color:var(--muted)}.support-lines dd{margin:0;font-weight:700}.breathing{flex-direction:column;align-items:center;gap:8px;display:flex}.breath-circle{background:radial-gradient(circle, color-mix(in srgb, var(--mood-4) 70%, var(--surface)), color-mix(in srgb, var(--mood-1) 40%, var(--surface)));border-radius:50%;width:120px;height:120px;transition:transform 4s ease-in-out;transform:scale(.55)}.breath-circle.in{transform:scale(1)}.breath-circle.out{transition-duration:6s;transform:scale(.55)}.breath-word{margin:0;font-size:1.2rem;font-weight:600}.grounding-n{margin:0;font-size:1.3rem;font-weight:700}@media (prefers-reduced-motion:reduce){.breath-circle{transition:none}}.seg.places{margin-bottom:0}.trail-cover{aspect-ratio:2;border-radius:var(--radius) var(--radius) 0 0;margin:-16px -16px 12px;position:relative;overflow:hidden}.trail-cover img{object-fit:cover;width:100%;height:100%;display:block}.trail-pet{aspect-ratio:1;width:22%;position:absolute;bottom:6%;left:40%}.trail-pet .pet-sprite{width:100%!important}.trail-next{margin:4px 0 8px;font-size:1.05rem}.trail-bar{background:color-mix(in srgb, var(--border) 70%, var(--surface));border-radius:999px;height:10px;overflow:hidden}.trail-bar span{background:linear-gradient(90deg,#8bc56a,#3f9e55);border-radius:999px;height:100%;display:block}.trail-stops{flex-direction:column;gap:10px;margin:0;padding:0 0 0 54px;list-style:none;display:flex;position:relative}.trail-stops:before{content:"";background:var(--path) center top / 100% auto repeat-y;border-radius:8px;width:26px;position:absolute;top:0;bottom:0;left:14px}.trail-stop{position:relative}.trail-km{text-align:center;width:54px;color:var(--text);text-shadow:0 0 3px var(--surface), 0 0 3px var(--surface), 0 0 3px var(--surface);font-size:.7rem;font-weight:700;position:absolute;top:50%;left:-54px;transform:translateY(-50%)}.trail-stop-card{border:1px solid var(--border);background:var(--bg);border-radius:14px;align-items:center;gap:10px;padding:6px;display:flex}.trail-stop-card>img:first-child{aspect-ratio:2.4;object-fit:cover;border-radius:8px;flex:none;width:96px}.trail-stop:not(.reached) .trail-stop-card>img:first-child{filter:saturate(.25)brightness(.85)}.trail-stop.next .trail-stop-card{border:2px solid var(--primary)}.trail-stop-text{flex-direction:column;flex:1;min-width:0;display:flex}.trail-critter{flex:none;width:44px;height:44px}.trail-critter.unknown{filter:brightness(0)opacity(.28)}.arrival{text-align:center;border:2px solid var(--gold)}.arrival-scene{border-radius:var(--radius) var(--radius) 0 0;margin:-16px -16px 12px;position:relative;overflow:hidden}.arrival-scene img{aspect-ratio:2.4;object-fit:cover;width:100%;display:block}.arrival-critter{aspect-ratio:1;width:34%;position:absolute;bottom:2%;left:50%;transform:translate(-50%)}.arrival-critter .pet-sprite,.pasture-critter .pet-sprite{width:100%!important}.pasture-critter{aspect-ratio:1;cursor:pointer;filter:drop-shadow(0 2px 2px #00000059);background:0 0;border:none;padding:0;position:absolute}.heart-pop{color:#e0457b;text-shadow:0 0 3px #fff,0 0 3px #fff;pointer-events:none;white-space:nowrap;font-size:.85rem;font-weight:800;animation:1.2s ease-out forwards heart-rise;position:absolute;top:-6%;left:50%;transform:translate(-50%)}@keyframes heart-rise{0%{opacity:1;transform:translate(-50%)}to{opacity:0;transform:translate(-50%,-24px)}}.critter-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.critter-list li{align-items:center;gap:10px;display:flex}.critter-list img{flex:none;width:48px;height:48px}.critter-list li>span:nth-child(2){flex-direction:column;flex:1;min-width:0;display:flex}.hearts{color:#e0457b;font-weight:700}@media (prefers-reduced-motion:reduce){.heart-pop{animation:none}}.hearth-scene{aspect-ratio:2;border-radius:var(--radius) var(--radius) 0 0;background:radial-gradient(55% 70% at 50% 62%,#ffaa468c,#ff8c2800 70%),linear-gradient(#3a2418,#24150e 72%,#4a2e1c 72%,#3a2416);justify-content:center;align-items:flex-end;margin:-16px -16px 12px -20px;display:flex;position:relative;overflow:hidden}.hearth{cursor:pointer;background:0 0;border:none;height:96%;padding:0;position:relative}.hearth img{width:100%;height:100%;display:block}.hearth-fire{pointer-events:none;position:absolute}.hearth-fire .pet-sprite{width:100%!important}.smooth-frames{image-rendering:auto}.hearth-pet{aspect-ratio:1;pointer-events:none;width:34%;position:absolute;bottom:0;transform:translate(-50%)}.hearth-pet .pet-sprite{width:100%!important}.sparks{pointer-events:none;position:absolute}.sparks span{background:#ffd36b;border-radius:50%;width:4px;height:4px;animation:1.2s ease-out forwards spark-rise;position:absolute;box-shadow:0 0 6px 2px #ffaa3ccc}@keyframes spark-rise{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(var(--dx), -70px)}}.plan-day h3{margin:0;font-size:1rem}.plan-day.today{border:2px solid var(--primary)}.plan-day.past{opacity:.7}.plan-slot{flex-direction:column;gap:4px;margin-top:8px;display:flex}.plan-chip{cursor:default;align-items:center;gap:4px;display:inline-flex}.plan-chip .icon{min-width:0;color:var(--muted);cursor:pointer;background:0 0;border:none;padding:0 2px;font-size:.75rem}.plan-chip.idea{border-style:dashed}.plan-chip.logged{background:var(--ok-bg)}.planned-here li.logged button{opacity:.65}.servings{flex-direction:column;flex:0 0 64px;align-items:center;display:flex}.servings input{text-align:center;width:56px;padding:6px;font-size:1rem}.grocery-list{flex-direction:column;gap:8px;margin:0 0 8px;padding:0;list-style:none;display:flex}.grocery-list label{cursor:pointer;align-items:flex-start;gap:10px;display:flex}.grocery-list input[type=checkbox]{flex:none;width:20px;height:20px;margin-top:2px}.grocery-list label>span{flex-direction:column;display:flex}.grocery-list .amount{color:var(--muted)}.grocery-list li.ticked strong,.grocery-list li.ticked .amount{color:var(--muted);text-decoration:line-through}.btn.gel-maker{margin:4px 0 10px}.maker-lines{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.maker-lines li{border:1px solid var(--border);background:var(--bg);border-radius:12px;flex-direction:column;gap:4px;padding:8px 10px;display:flex}.maker-lines li.swappable{border-color:var(--gold);background:color-mix(in srgb, var(--gold) 10%, var(--bg))}.maker-raw{overflow-wrap:anywhere;font-weight:600}.maker-match{align-items:center;gap:6px;min-width:0;display:flex}.maker-match .link{text-align:left;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.maker-match input.grams{text-align:right;flex:0 0 72px;padding:6px 8px;font-size:.95rem}.check-row.small{margin-top:0;font-size:.85rem;font-weight:500}.maker-mix{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.maker-mix li{grid-template-columns:1fr auto auto;align-items:center;gap:8px;display:grid}.maker-mix label{align-items:center;gap:4px;display:flex}.maker-mix input{text-align:center;width:56px;padding:6px;font-size:.95rem}.maker-mix-name{min-width:0;font-size:.9rem}.maker-need{grid-column:1/-1}.maker-result{background:var(--ok-bg);border-radius:14px;flex-direction:column;gap:6px;margin-top:8px;padding:12px;display:flex}.maker-result .saved strong{color:#2f8a4b}.gel-steps ol{margin:6px 0;padding-left:20px}.boosters{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.boosters li{border:1px solid var(--border);background:var(--bg);border-radius:10px;padding:6px 8px}.boosters li.on{background:color-mix(in srgb, #3f9e55 10%, var(--bg));border-color:#3f9e55}.booster-amount{align-items:center;gap:6px;margin:4px 0 0 30px;display:flex}.booster-amount input{text-align:center;width:64px;padding:5px 6px;font-size:.95rem}.maker-result .fibre strong{color:#2f8a4b}.maker-method summary{cursor:pointer;font-weight:600}.gel-steps ul{margin:6px 0;padding-left:20px}.cookbook-cover{cursor:pointer;filter:drop-shadow(0 6px 10px #28180a59);background:0 0;border:none;width:clamp(120px,36vw,170px);margin:0 auto 4px;padding:0;transition:transform .2s;display:block}.cookbook-cover img{width:100%;height:auto;display:block}.cookbook-cover:hover,.cookbook-cover:focus-visible{transform:translateY(-3px)rotate(-1.5deg)}.cookbook-cover.open{filter:drop-shadow(0 8px 14px #28180a73);transform:translateY(-3px)rotate(-1.5deg)scale(1.03)}@media (prefers-reduced-motion:reduce){.cookbook-cover{transition:none}}.cookbook-tags{flex-wrap:wrap;gap:4px;margin-top:4px;display:flex}.cookbook-tags .tag{background:var(--warn-bg);border:1px solid var(--border);color:var(--muted);border-radius:999px;padding:1px 8px;font-size:.75rem}.parchment{--page-w:min(100vw - 32px, 480px);--text:#2c1a10;--muted:#6e5238;--border:#6e482459;--surface:#fff8e88c;--bg:#fff8e8b3;--shadow:#3c1e0a40;color:var(--text);width:100%;max-width:480px;box-shadow:none;border-style:solid;border-color:#0000;border-width:calc(var(--page-w) * 201 / 1086) calc(var(--page-w) * 100 / 1086) calc(var(--page-w) * 342 / 1086) calc(var(--page-w) * 130 / 1086);filter:drop-shadow(0 4px 10px #2814084d);background:0 0;border-image:url(/journal/page.webp) 201 100 342 130 fill stretch round;border-radius:0;margin-inline:auto;padding:0 6px 4px 12px}.parchment .btn:not(.primary):not(.ghost),.parchment .pick-item button{background:#fffaee99}.parchment .btn.ghost{color:var(--text)}.parchment input:not([type=range]):not([type=checkbox]):not([type=radio]),.parchment textarea,.parchment select{color:var(--text);background:#fffcf4bf}.parchment h2{font-family:Georgia,Iowan Old Style,Palatino Linotype,serif}.parchment .cookbook-tags .tag{background:#f4b73a38}.technique-group{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:12px 0 4px;font-size:.85rem}.technique-effect{color:var(--primary);white-space:nowrap;font-weight:600}.technique-origin{color:var(--muted);margin:2px 0 0 28px;font-size:.8rem;line-height:1.35;display:block}.technique-origin .tag{border:1px solid var(--border);white-space:nowrap;border-radius:999px;margin-right:4px;padding:0 6px;font-size:.7rem}.techniques .field{margin:6px 0 0 28px}.technique-library{margin-top:12px}.technique-library>summary{cursor:pointer;padding:6px 0;font-weight:600}.technique-library input[type=search]{width:100%;margin:6px 0 8px}.technique-library .chips{gap:6px;margin-bottom:8px}.technique-library .chip{padding:4px 10px;font-size:.8rem}
