:root{--bg1: #fff6e3;--bg2: #ffe6c6;--card: #fffdf7;--ink: #4a3528;--muted: #a08b78;--line: rgba(74, 53, 40, .14);--pink: #ff7f9e;--blue: #4fa8f7;--green: #57c95f;--yellow: #ffc94d;--purple: #b98cff;--orange: #ffa15c;--shadow: rgba(120, 86, 58, .18)}*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}html,body{height:100%}body{font-family:Hiragino Maru Gothic ProN,Yu Gothic,Noto Sans JP,system-ui,sans-serif;color:var(--ink);background:radial-gradient(circle at 20% 0%,#fffdf3 0%,var(--bg1) 45%,var(--bg2) 100%) fixed;overflow:hidden;position:fixed;width:100%;user-select:none;-webkit-user-select:none}button,input{font-family:inherit;color:inherit;border:none;background:none}button{cursor:pointer}.app{position:relative;display:flex;flex-direction:column;width:100%;max-width:460px;height:100dvh;margin:0 auto;background:linear-gradient(180deg,#fffdf5,#fff3de);box-shadow:0 0 40px #8c643c24}.hdr{flex:none;display:flex;align-items:center;gap:10px;padding:calc(env(safe-area-inset-top) + 10px) 14px 10px;background:linear-gradient(180deg,#fff8e6,#fff2da);border-bottom:2px solid var(--line)}.lv-block{flex:1;min-width:0}.lv-top{display:flex;align-items:baseline;gap:6px;font-size:12px;color:var(--muted)}.lv-top b{font-size:17px;color:var(--ink)}.lv-bar{margin-top:3px;height:10px;border-radius:99px;background:#f0e2cf;overflow:hidden}.lv-bar i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#ffd76b,var(--orange));transition:width .45s cubic-bezier(.2,.9,.3,1)}.pt-chip{flex:none;display:flex;align-items:center;gap:5px;padding:7px 13px;border-radius:99px;background:#fff;border:2px solid var(--line);box-shadow:0 3px 0 var(--shadow);font-weight:700;font-size:17px}.pt-chip small{font-size:11px;color:var(--muted)}.icon-btn{flex:none;width:38px;height:38px;border-radius:50%;font-size:18px;background:#fff;border:2px solid var(--line);box-shadow:0 3px 0 var(--shadow)}.view{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:14px 14px 20px;display:flex;flex-direction:column;gap:12px}.view::-webkit-scrollbar{width:0}.tabbar{flex:none;display:grid;grid-template-columns:repeat(4,1fr);gap:4px;padding:6px 8px calc(env(safe-area-inset-bottom) + 6px);background:#fffaf0;border-top:2px solid var(--line)}.tabbar button{display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 0 4px;border-radius:14px;font-size:11px;font-weight:700;color:var(--muted);transition:transform .12s}.tabbar button span.ic{font-size:21px;line-height:1}.tabbar button.active{color:var(--ink);background:#ffeec9}.tabbar button:active{transform:scale(.92)}.screen{display:flex;flex-direction:column;gap:12px;animation:slidein .22s ease}@keyframes slidein{0%{opacity:0;transform:translateY(10px)}}.card{background:var(--card);border:2px solid var(--line);border-radius:22px;box-shadow:0 4px 0 var(--shadow);padding:14px}.card-title{display:flex;align-items:center;justify-content:space-between;font-size:14px;font-weight:700;color:var(--muted);margin-bottom:10px}.chara-card{position:relative;display:flex;flex-direction:column;align-items:center;padding:10px 14px 16px;background:linear-gradient(180deg,#eaf7ff,#d9efff 60%,#cfeadd);overflow:hidden}.chara-card:after{content:"";position:absolute;left:-10%;right:-10%;bottom:-40px;height:110px;border-radius:50%;background:#b6e3b0}.bubble{position:relative;z-index:2;max-width:90%;padding:8px 15px;border-radius:18px;background:#fff;border:2px solid var(--line);font-size:14px;font-weight:700;text-align:center;box-shadow:0 3px 0 var(--shadow)}.bubble:after{content:"";position:absolute;left:50%;bottom:-9px;width:14px;height:14px;margin-left:-7px;background:#fff;border-right:2px solid var(--line);border-bottom:2px solid var(--line);transform:rotate(45deg)}.chara-stage{position:relative;z-index:2;width:100%;max-width:250px;aspect-ratio:1;margin-top:6px;border:none;background:none;display:block}.chara-svg{width:100%;height:100%;overflow:visible}.chara-body{transform-origin:100px 175px;animation:bob 2.4s ease-in-out infinite}.chara-stage:active .chara-body{animation:none}.chara-stage.pat .chara-body{animation:squash .32s ease-out}@keyframes bob{0%,to{transform:translateY(0) scale(1)}50%{transform:translateY(-7px) scale(.99,1.02)}}@keyframes squash{0%{transform:scale(1)}35%{transform:scale(1.14,.86) translateY(6px)}70%{transform:scale(.94,1.08) translateY(-4px)}to{transform:scale(1)}}.spark{transform-box:fill-box;transform-origin:center;animation:twinkle 1.8s ease-in-out infinite}@keyframes twinkle{0%,to{opacity:.25;transform:scale(.7)}50%{opacity:1;transform:scale(1.15)}}.stage-name{position:relative;z-index:2;margin-top:2px;padding:5px 16px;border-radius:99px;background:#fff;border:2px solid var(--line);font-weight:700;font-size:15px;box-shadow:0 3px 0 var(--shadow)}.pat-hint{position:relative;z-index:2;margin-top:8px;font-size:12px;font-weight:700;color:#4a6b55}.pat-bar{position:relative;z-index:2;width:70%;height:8px;margin-top:5px;border-radius:99px;background:#ffffffb3;overflow:hidden;border:2px solid var(--line)}.pat-bar i{display:block;height:100%;background:var(--pink);transition:width .25s}.summary-row{display:flex;gap:10px}.summary-row .card{flex:1;text-align:center;padding:12px 8px}.summary-row .big{font-size:24px;font-weight:800;line-height:1.1}.summary-row .lbl{font-size:11px;color:var(--muted);font-weight:700}.btn-primary,.btn-ghost,.btn-danger{padding:13px 18px;border-radius:16px;font-size:16px;font-weight:800;transition:transform .1s}.btn-primary{background:linear-gradient(180deg,#ffd15c,var(--orange));color:#4a3528;border:2px solid var(--line);box-shadow:0 4px 0 var(--shadow)}.btn-ghost{background:#fff;border:2px solid var(--line);box-shadow:0 4px 0 var(--shadow)}.btn-danger{background:#ff7f7f;color:#fff;border:2px solid var(--line);box-shadow:0 4px 0 var(--shadow)}.btn-primary:active,.btn-ghost:active,.btn-danger:active{transform:translateY(3px);box-shadow:0 1px 0 var(--shadow)}.wide{width:100%}.sec-title{display:flex;align-items:center;justify-content:space-between;margin:6px 4px -4px;font-size:14px;font-weight:800;color:var(--muted)}.sec-title span{padding:3px 10px;border-radius:99px;background:#fff;border:2px solid var(--line);font-size:12px}.tag{display:inline-block;margin-left:4px;padding:1px 7px;border-radius:99px;background:#ffe6a8;color:#8a6a20;font-size:10px;font-weight:800;vertical-align:1px}.challenge-row{display:flex;align-items:center;justify-content:space-between;width:100%;padding:12px 14px;border-radius:18px;background:linear-gradient(90deg,#fff1cf,#ffe4ee);border:2px solid var(--line);box-shadow:0 4px 0 var(--shadow);font-size:14px;font-weight:800}.challenge-row b{font-size:18px}.challenge-row:active{transform:translateY(3px);box-shadow:0 1px 0 var(--shadow)}.task{display:flex;align-items:center;gap:12px;padding:12px;background:var(--card);border:2px solid var(--line);border-radius:20px;box-shadow:0 4px 0 var(--shadow);transition:transform .15s,opacity .2s}.task .ic{flex:none;width:50px;height:50px;display:grid;place-items:center;font-size:27px;border-radius:15px;background:#fff3d8}.task .body{flex:1;min-width:0}.task .name{font-size:16px;font-weight:800;line-height:1.3;word-break:break-word}.task .pts{font-size:12px;font-weight:700;color:var(--orange)}.task.once .ic{background:#ffe9f0}.task .go{flex:none;padding:11px 15px;border-radius:14px;font-size:15px;font-weight:800;color:#fff;background:linear-gradient(180deg,#6fd873,var(--green));border:2px solid var(--line);box-shadow:0 3px 0 var(--shadow)}.task .go:active{transform:translateY(2px);box-shadow:0 1px 0 var(--shadow)}.task.done{background:#f2ede3;opacity:.72}.task.done .name{text-decoration:line-through;color:var(--muted)}.task.done .ic{background:#e4dccd}.task .check{flex:none;width:46px;height:46px;display:grid;place-items:center;font-size:24px;border-radius:50%;background:var(--green);color:#fff;border:2px solid var(--line)}.task.pop{animation:pop .4s ease}@keyframes pop{40%{transform:scale(1.05)}to{transform:scale(1)}}.progress-card{display:flex;align-items:center;gap:12px}.progress-card .big{font-size:26px;font-weight:800}.progress-track{flex:1;height:16px;border-radius:99px;background:#f0e2cf;overflow:hidden;border:2px solid var(--line)}.progress-track i{display:block;height:100%;background:linear-gradient(90deg,#8ee08e,var(--green));transition:width .4s cubic-bezier(.2,.9,.3,1)}.banner{padding:12px;border-radius:18px;text-align:center;font-weight:800;background:linear-gradient(90deg,#ffe6a0,#ffd0e0);border:2px solid var(--line);box-shadow:0 4px 0 var(--shadow)}.point-card,.allow-card{display:flex;align-items:center;justify-content:center;gap:10px;padding:16px;background:linear-gradient(180deg,#fff6d8,#ffe9b0)}.allow-card{background:linear-gradient(180deg,#e8f8e4,#d3f0cd)}.point-card .num,.allow-card .num{font-size:38px;font-weight:800;line-height:1}.point-card .num small,.allow-card .num small{font-size:18px}.pc-lbl{font-size:12px;font-weight:700;color:var(--muted)}.ex-amount{text-align:center;padding:6px 0 10px}.ex-val{font-size:42px;font-weight:800;line-height:1.1}.ex-val small{font-size:18px;color:var(--muted)}.ex-yen{font-size:20px;font-weight:800;color:var(--green)}.ex-pad{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:10px}.mini-step{padding:13px 0;border-radius:14px;font-size:15px;font-weight:800;background:#fff;border:2px solid var(--line);box-shadow:0 3px 0 var(--shadow)}.mini-step:active{transform:translateY(2px);box-shadow:0 1px 0 var(--shadow)}.ex-chips,.rate-row{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:12px}.chip{flex:1;min-width:62px;padding:9px 6px;border-radius:99px;font-size:13px;font-weight:800;background:#fff5e2;border:2px solid var(--line)}.chip.sel{background:#ffd15c}.rate-now{text-align:center;font-size:19px;font-weight:800;margin-bottom:10px}.rate-now small{font-size:12px;color:var(--muted)}.hist{display:flex;align-items:center;gap:8px;padding:7px 2px;font-size:13px;font-weight:700;border-bottom:1px dashed var(--line)}.hist:last-child{border-bottom:none}.hist .d{margin-left:auto;font-size:11px;color:var(--muted);font-weight:700}.row-edit{display:flex;align-items:center;gap:10px;padding:9px 4px;border-bottom:1px dashed var(--line)}.row-edit:last-of-type{border-bottom:none}.row-edit .ic{font-size:22px;width:32px;text-align:center}.row-edit .txt{flex:1;min-width:0}.row-edit .nm{font-size:14px;font-weight:700;line-height:1.3;word-break:break-word}.row-edit .pt{font-size:12px;font-weight:800;color:var(--orange)}.mini-btn{padding:7px 11px;border-radius:11px;font-size:12px;font-weight:800;background:#fff;border:2px solid var(--line);box-shadow:0 2px 0 var(--shadow)}.mini-btn.del{color:#e05555}.add-btn{width:100%;margin-top:10px;padding:11px;border-radius:15px;font-size:15px;font-weight:800;border:2px dashed rgba(74,53,40,.3);color:var(--muted);background:#fffdf7}.note{font-size:12px;color:var(--muted);line-height:1.6;font-weight:700}.empty{text-align:center;padding:26px 14px;color:var(--muted);font-weight:700;font-size:14px;line-height:1.7}.modal-back,.celebrate{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:grid;place-items:center;padding:18px;background:#3c28196b;animation:fade .18s ease}.modal-back.closing,.celebrate.closing{animation:fade .18s ease reverse;opacity:0}@keyframes fade{0%{opacity:0}to{opacity:1}}.modal-card,.celebrate-card{width:100%;max-width:340px;max-height:86dvh;overflow-y:auto;padding:18px;border-radius:24px;background:var(--card);border:2px solid var(--line);box-shadow:0 8px #5a3e2840;animation:rise .24s cubic-bezier(.2,1.2,.4,1)}@keyframes rise{0%{transform:translateY(24px) scale(.94);opacity:0}}.dialog h3{font-size:18px;text-align:center;margin-bottom:8px}.dialog p{font-size:14px;text-align:center;color:var(--muted);font-weight:700;line-height:1.7;margin-bottom:14px}.dialog-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.gate-q{display:block;font-size:26px;color:var(--ink);margin-top:6px}.gate-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px}.gate-btn{padding:15px;border-radius:15px;font-size:19px;font-weight:800;background:#fff;border:2px solid var(--line);box-shadow:0 3px 0 var(--shadow)}.shake{animation:shake .35s}@keyframes shake{25%{transform:translate(-7px)}75%{transform:translate(7px)}}.field{margin-bottom:12px}.field label{display:block;font-size:12px;font-weight:800;color:var(--muted);margin-bottom:5px}.field input[type=text]{width:100%;padding:11px 13px;border-radius:14px;border:2px solid var(--line);background:#fff;font-size:16px;font-weight:700}.emoji-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:6px}.emoji-grid button{aspect-ratio:1;font-size:21px;border-radius:12px;background:#fff;border:2px solid var(--line)}.emoji-grid button.sel{background:#ffe6a8;box-shadow:0 0 0 3px #ffc94d inset}.stepper{display:flex;align-items:center;gap:10px}.stepper button{width:44px;height:44px;border-radius:14px;font-size:22px;font-weight:800;background:#fff;border:2px solid var(--line);box-shadow:0 3px 0 var(--shadow)}.stepper .val{flex:1;text-align:center;font-size:22px;font-weight:800}#fx-layer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:70;pointer-events:none}#fx-layer .celebrate,#fx-layer .modal-back{pointer-events:auto}.confetti{position:absolute;width:10px;height:13px;border-radius:3px;transform:translate(-50%,-50%)}.float-text{position:absolute;font-size:22px;font-weight:800;color:var(--orange);text-shadow:0 2px 0 #fff,0 0 6px #fff;white-space:nowrap}.float-text.pink{color:var(--pink)}.toast{position:absolute;left:50%;bottom:96px;transform:translate(-50%,14px);padding:11px 20px;border-radius:99px;background:#4a3528eb;color:#fff;font-weight:800;font-size:14px;opacity:0;transition:opacity .2s,transform .2s}.toast.show{opacity:1;transform:translate(-50%)}.celebrate-card{text-align:center}.celebrate-art{font-size:60px;line-height:1.1;margin-bottom:6px}.celebrate-art .chara-svg{width:160px;height:160px;margin:0 auto}.celebrate-card h2{font-size:22px;margin-bottom:6px}.celebrate-card p{font-size:14px;font-weight:700;color:var(--muted);line-height:1.7;margin-bottom:14px}.celebrate-card button{width:100%}
