:root{--coral: #ff6b6b;--peach: #ffa552;--rose: #ff8fb1;--cream: #ffe3a3;--ink: #5a2a3a;--ink-soft: #8a5a68;--white: #fff7f2;--card-bg: rgba(255, 255, 255, .82);--card-border: rgba(255, 255, 255, .7);--glow: 0 8px 30px rgba(255, 107, 107, .35);--glow-soft: 0 4px 18px rgba(255, 143, 177, .28);--radius: 24px;--radius-sm: 16px;--bg: linear-gradient(160deg, #ffe3a3 0%, #ff8fb1 55%, #ff6b6b 100%);--font-title: "Fredoka", "Quicksand", system-ui, sans-serif;--font-body: "Quicksand", system-ui, -apple-system, "Segoe UI", sans-serif;--touch: 56px}*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{font-family:var(--font-body);color:var(--ink);background:var(--bg);background-attachment:fixed;min-height:100dvh;line-height:1.5;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);overflow-x:hidden}h1,h2,h3{font-family:var(--font-title);font-weight:600;line-height:1.15;color:var(--ink)}a{color:var(--coral);text-decoration:none}.wrap{width:100%;max-width:480px;margin:0 auto;padding:20px 18px 48px;position:relative;z-index:1}.card{background:var(--card-bg);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid var(--card-border);border-radius:var(--radius);box-shadow:var(--glow-soft);padding:20px;margin-bottom:16px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:var(--touch);padding:0 22px;border:none;border-radius:999px;font-family:var(--font-title);font-size:1.05rem;font-weight:600;color:var(--white);background:linear-gradient(135deg,var(--peach),var(--coral));box-shadow:var(--glow);cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}.btn:active{transform:scale(.96)}.btn--block{width:100%}.btn--ghost{background:#ffffff8c;color:var(--ink);box-shadow:none;border:1px solid var(--card-border)}.sweet{text-align:center;font-family:var(--font-title);color:var(--white);text-shadow:0 2px 10px rgba(255,107,107,.4);min-height:1.6em}.hearts{position:fixed;inset:0;z-index:0;overflow:hidden;pointer-events:none}.hearts span{position:absolute;bottom:-40px;font-size:1.4rem;opacity:.45;animation:float-up linear infinite}@keyframes float-up{0%{transform:translateY(0) rotate(0);opacity:0}10%{opacity:.5}90%{opacity:.5}to{transform:translateY(-110dvh) rotate(40deg);opacity:0}}@media(prefers-reduced-motion:reduce){.hearts span{animation:none;display:none}}.center{text-align:center}.muted{color:var(--ink-soft)}.stack>*+*{margin-top:12px}.app{padding-bottom:calc(82px + env(safe-area-inset-bottom))}.screen{display:none;animation:screen-in .32s ease both}.screen.is-active{display:block}@keyframes screen-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.screen__locked,.screen[data-locked] .screen__content{display:none}.screen[data-locked] .screen__locked{display:block}.back{align-self:flex-start;min-height:40px;padding:6px 14px;font-size:.95rem}.appnav{position:fixed;left:0;right:0;bottom:0;z-index:700;display:flex;justify-content:space-around;gap:4px;max-width:480px;margin:0 auto;padding:8px 10px calc(8px + env(safe-area-inset-bottom));background:#fff7f2eb;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-top:1px solid var(--card-border)}.appnav button{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;border:none;background:none;font:inherit;font-size:1.3rem;color:var(--ink-soft);cursor:pointer;border-radius:var(--radius-sm);padding:4px 0}.appnav button span{font-size:.66rem;font-weight:600}.appnav button.is-current{color:var(--coral);background:#ff8fb124}.appnav button.is-locked{opacity:.45}.appnav button.is-locked:after{content:"🔒";font-size:.6rem}.fab{position:fixed;right:16px;bottom:calc(94px + env(safe-area-inset-bottom));z-index:690;width:56px;height:56px;border:none;border-radius:50%;font-size:1.5rem;color:var(--white);background:linear-gradient(135deg,var(--peach),var(--coral));box-shadow:var(--glow);cursor:pointer}.fab:active{transform:scale(.94)}body.overlay-open .fab{display:none}.overlay{position:fixed;inset:0;z-index:1000;display:flex;align-items:flex-end;justify-content:center;background:#5a2a3a6b;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);opacity:0;transition:opacity .26s ease}.overlay[hidden]{display:none!important}.overlay.is-open{opacity:1}.overlay__sheet{width:100%;max-width:480px;max-height:92dvh;overflow-y:auto;background:var(--bg);border-radius:var(--radius) var(--radius) 0 0;padding:22px 18px calc(28px + env(safe-area-inset-bottom));box-shadow:0 -10px 40px #5a2a3a4d;transform:translateY(16px);transition:transform .26s ease;position:relative}.overlay.is-open .overlay__sheet{transform:translateY(0)}.overlay__close{position:absolute;top:12px;right:12px;width:40px;height:40px;border:none;border-radius:50%;background:#fff9;font-size:1.1rem;color:var(--ink);cursor:pointer}.mascot{display:inline-block;line-height:0}.bubble-row{display:flex;align-items:flex-end;gap:10px}.bubble{position:relative;flex:1;background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--radius-sm);box-shadow:var(--glow-soft);padding:12px 14px}.bubble>*+*{margin-top:6px}.bubble:before{content:"";position:absolute;left:-7px;bottom:14px;width:14px;height:14px;background:var(--card-bg);border-left:1px solid var(--card-border);border-bottom:1px solid var(--card-border);transform:rotate(45deg)}.purchase__head{display:flex;align-items:center;gap:12px}.purchase__emoji{font-size:1.8rem}.purchase__price{margin-left:auto;font-family:var(--font-title);font-weight:700;color:var(--coral)}.purchase__details{margin:0;padding-left:18px;color:var(--ink-soft);font-size:.92rem}.purchase__details li+li{margin-top:4px}.purchase.is-confirmed{outline:2px solid var(--rose);outline-offset:2px}.checklist{list-style:none}.checklist li+li{margin-top:8px}.checklist label{display:flex;align-items:center;gap:10px;min-height:44px;cursor:pointer}.checklist input{width:22px;height:22px;accent-color:var(--coral)}.checklist li.done span{text-decoration:line-through;color:var(--ink-soft)}.checklist label.taquin{color:var(--coral);font-weight:600}.gps-btn{background:linear-gradient(135deg,#6db7ff,#3b7fd1)}.zigzag{position:relative}.zigzag__svg{width:100%;max-width:280px;height:auto;display:block;margin:0 auto}.zigzag__heroine{position:absolute;top:0;left:50%}.zigzag__stops{list-style:none;margin-top:10px}.zigzag__stops li{padding:4px 0}@media(prefers-reduced-motion:reduce){.screen{animation:none}.overlay,.overlay__sheet{transition:none}}
