:root{--ink:#473c42;--sub:#8b797a;--rose:#d77f99;--rose-deep:#bb617d;--blush:#f7d7dc;--rose-wash:#fff1f0;--cream:#fdf8ef;--paper:#fffaf1;--peach:#f6e5d2;--border:#ead8cc;--sage:#7ba393;--sage-pale:#e6f1e7;--shadow:0 16px 35px rgba(101,70,84,.13);--font:Georgia,'Times New Roman',serif;--ui:system-ui,-apple-system,Roboto,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:#eee5e1;font-family:var(--ui);-webkit-tap-highlight-color:transparent}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.55;cursor:not-allowed}#app{max-width:480px;min-height:100svh;margin:0 auto;background:var(--cream);box-shadow:0 0 50px #4f353316;position:relative;overflow:hidden}.loading{min-height:100svh;display:grid;place-content:center;font:25px var(--font)}.serif{font-family:var(--font)}.smallcaps{text-transform:uppercase;letter-spacing:.19em;font-size:10px;font-weight:700}.muted{color:var(--sub)}.tiny{font-size:11px}.soft-label{color:var(--rose-deep);font-size:11px;font-weight:750;text-transform:uppercase;letter-spacing:.12em}.button{border:0;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:11px 16px;border-radius:99px;font-weight:700;font-size:13px;transition:.18s ease;background:var(--rose);color:white;box-shadow:0 5px 0 rgba(157,83,102,.14)}.button:active{transform:scale(.98)}.button.outline{background:#fffaf4;color:#92576b;border:1px solid #e8c9c9;box-shadow:none}.button.plain{background:transparent;box-shadow:none;color:var(--ink);padding:7px 9px}.button.sage{background:#8aa897}.button.warning{background:#f4ebe5;color:#ae6f68;box-shadow:none}.button.small{min-height:34px;padding:7px 12px;font-size:12px}.button.wide{width:100%}.circlebtn{border:1px solid #e8d1c8;width:39px;height:39px;display:grid;place-items:center;border-radius:50%;background:#fffaf4e8;color:#72545c;font-size:18px}.circlebtn:active{transform:scale(.95)}
.bottom-nav{position:fixed;bottom:0;width:min(100%,480px);height:calc(73px + env(safe-area-inset-bottom));padding:9px 12px calc(9px + env(safe-area-inset-bottom));background:#fff9f0ee;border-top:1px solid #eddad6;box-shadow:0 -8px 25px #65454b11;display:flex;justify-content:space-around;z-index:20;backdrop-filter:blur(20px)}.navitem{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:4px;border:0;background:transparent;color:#9b8584;font-size:10px;font-weight:750;min-width:66px}.navitem .nav-icon{font-size:23px;line-height:1}.navitem.active{color:var(--rose-deep)}.navitem.active .nav-icon{filter:drop-shadow(0 2px 1px #e4b1b6)}
.scene{background-position:center;background-size:cover;position:relative;isolation:isolate}.scene::before{content:"";position:absolute;inset:0;background:linear-gradient(to bottom,#fef8e90a 0%,#fff8ed12 54%,#fffcf5a8 100%);z-index:-1}.home{min-height:calc(100svh - 73px - env(safe-area-inset-bottom));display:flex;flex-direction:column;position:relative;overflow:hidden;padding-bottom:18px}.home::after,.chapter-art::after{content:"";pointer-events:none;position:absolute;inset:0;opacity:.18;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='100'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.54' numOctaves='3' seed='9'/%3E%3C/filter%3E%3Crect width='100' height='100' opacity='.2' filter='url(%23n)'/%3E%3C/svg%3E")}.home-top{display:flex;justify-content:space-between;align-items:center;padding:calc(22px + env(safe-area-inset-top)) 23px 0;position:relative;z-index:2}.brand{line-height:1.25}.brand-name{font-size:14px;letter-spacing:.21em;color:#50444b;font-weight:700;font-family:var(--font)}.brand-sub{font-size:10px;letter-spacing:.09em;margin-top:3px;color:#63565d}.home-center{flex:1;min-height:275px;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;z-index:1;padding-top:10px}.home-headline{text-align:center;text-shadow:0 2px 15px #fff9f0bd;margin:0;font-family:var(--font);font-size:clamp(34px,9vw,45px);font-weight:normal;line-height:1.08;color:#584653}.home-headline i{font-weight:normal;color:#aa657d}.home-chapter{color:#705666;font-size:10px;letter-spacing:.2em;text-transform:uppercase;margin:8px 0 0;font-weight:700}.home-mascot-wrap{position:relative;width:195px;max-width:50vw;margin:22px auto 0}.mascot{width:100%;height:auto;display:block;overflow:visible;filter:drop-shadow(0 16px 12px #60424a38)}.mascot .wave{transform-origin:239px 241px;animation:wave 2.3s ease-in-out infinite}.mascot .blink{transform-origin:center;animation:blink 6s infinite}.mascot .bob{animation:bob 3.3s ease-in-out infinite}@keyframes wave{0%,100%{transform:rotate(-7deg)}35%,60%{transform:rotate(17deg)}}@keyframes blink{0%,95%,100%{transform:scaleY(1)}97%{transform:scaleY(.08)}}@keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-5px)}}.dialogue{position:absolute;background:#fff9edee;border:2px solid #f0d3c7;box-shadow:0 5px 18px #634b5424;max-width:206px;border-radius:19px 19px 19px 5px;left:-52px;right:auto;top:-20px;padding:13px 14px;font-family:var(--font);font-size:12px;line-height:1.45;width:171px;transform:rotate(-4deg);color:#6a4d55}.dialogue::after{content:"";position:absolute;bottom:-13px;right:15px;border-width:13px 7px 0;border-style:solid;border-color:#fff9ed transparent transparent}.float-petal{position:absolute;color:#d881a0;font-size:21px;opacity:.62;animation:petal 9s ease-in-out infinite;pointer-events:none;z-index:1}.p1{top:19%;left:11%}.p2{right:10%;top:44%;animation-delay:-3s;font-size:18px}.p3{top:58%;left:17%;animation-delay:-5s;font-size:12px}@keyframes petal{0%,100%{transform:translate(0,0) rotate(-10deg)}50%{transform:translate(14px,21px) rotate(18deg)}}
.parchment{background:linear-gradient(135deg,#fffaf1f5,#fff4e9f8);border:1px solid #e9d1bc;border-radius:24px;box-shadow:0 8px 35px #684b5740;position:relative}.parchment:before,.parchment:after{position:absolute;content:'✿';color:#e7a2af;opacity:.8;font-size:23px}.parchment:before{top:10px;left:12px}.parchment:after{right:12px;bottom:7px}.home-card{z-index:2;margin:0 17px 12px;padding:20px 19px 18px;text-align:center}.home-card .date-nav{display:flex;align-items:center;justify-content:space-between;gap:7px;padding:0 7px}.date-select{border:0;background:transparent;color:#6a4b54;font:17px var(--font);text-align:center;max-width:215px;outline:none;appearance:none;text-align-last:center}.day-title{font:normal 31px var(--font);margin:9px 0 5px;letter-spacing:-.025em}.day-subtitle{font-size:12px;color:#896e74;margin:0 0 12px}.day-counts{display:flex;align-items:center;justify-content:center;gap:14px;font-size:11px;color:#806c73;margin:0 0 16px;flex-wrap:wrap}.home-card .button{font-family:var(--font);font-weight:normal;letter-spacing:.03em;font-size:19px;padding:14px 20px;min-height:52px;background:linear-gradient(110deg,#d87e95,#d67c88)}
.inside{padding:0 16px 103px;min-height:100svh}.chapter-art{height:254px;margin:0 -16px 0;position:relative;background-position:center 40%;background-size:cover}.chapter-art::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#fff8f3a8 0,#fff8f345 43%,var(--cream) 100%)}.day-topbar{display:flex;align-items:center;justify-content:space-between;padding:calc(16px + env(safe-area-inset-top)) 16px 0;position:relative;z-index:2}.day-overlap{margin-top:-83px;position:relative;z-index:2}.day-heading{display:flex;align-items:center;gap:3px;justify-content:space-between}.day-info{flex:1;min-width:0}.day-heading h1{font:normal 35px/1.02 var(--font);margin:6px 0 8px;letter-spacing:-.04em}.day-heading .mascot{width:115px;filter:drop-shadow(0 8px 5px #805f6140)}.chapter-sticker{display:inline-block;background:#fff9f0d9;padding:5px 9px;border:1px solid #e6c6c0;border-radius:100px}.miniquote{background:#fff7eff0;border:1px solid #efddd1;box-shadow:0 4px 16px #96716f0f;padding:13px 15px;border-radius:16px 16px 16px 4px;font:italic 14px/1.5 var(--font);margin:4px 0 13px}.progress-row{display:flex;justify-content:space-between;align-items:center;font-size:12px;margin:16px 1px 9px}.progress-track{height:9px;background:#ecdcd2;border-radius:30px;overflow:hidden;border:1px solid #e1c8bf}.progress-fill{height:100%;background:linear-gradient(90deg,#df93a9,#cf7790);border-radius:30px;transition:width .25s}.day-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;background:#f6e9e2;padding:5px;border:1px solid #ebd4cf;border-radius:17px;margin:20px 0 17px}.tab{border:0;border-radius:12px;background:transparent;padding:11px 5px;color:#8a7074;font-weight:700;font-size:12px}.tab.active{background:#f5cdd3;color:#a65673;box-shadow:0 2px 8px #ae737c22}.section-header{display:flex;align-items:end;justify-content:space-between;gap:10px;margin-bottom:16px}.section-header h2{font:normal 26px var(--font);margin:4px 0 0}.timeline{position:relative;padding-left:16px}.timeline:before{content:"";position:absolute;top:14px;bottom:25px;width:2px;left:14px;background:linear-gradient(#ddb5bc,#ead3cc)}.time-item{position:relative;padding-left:25px;margin-bottom:11px}.time-dot{position:absolute;left:-9px;top:21px;width:17px;height:17px;border:2px solid #bc98a1;border-radius:50%;background:#fff9ef;z-index:1}.time-item.done .time-dot{background:#8caf9d;border-color:#7b9b8d}.time-item.missed .time-dot{background:#eed8d3;border-color:#c7a6a5}.activity-card{background:#fffcf7;border:1px solid #ead9cc;border-radius:16px;box-shadow:0 3px 9px #70505a0e;overflow:hidden}.activity-summary{padding:14px;display:flex;align-items:center;gap:12px;cursor:pointer}.activity-emoji{width:47px;height:49px;display:grid;place-items:center;border-radius:12px;background:linear-gradient(145deg,#f9d9d5,#e6ede2);font-size:27px;flex-shrink:0}.activity-text{flex:1;min-width:0}.activity-time{font-size:10px;letter-spacing:.08em;color:#ad7287;font-weight:800}.activity-name{font:normal 17px/1.3 var(--font);margin:3px 0 3px}.activity-area{font-size:11px;color:#927f7d}.activity-chevron{font-size:19px;color:#b68e95}.time-item.done .activity-name{text-decoration:line-through;text-decoration-color:#c5a7a6;color:#958588}.time-item.missed .activity-card{opacity:.68}.activity-details{padding:0 14px 15px 73px;animation:fade .2s ease}.activity-details p{margin:3px 0 12px;font-size:12px;line-height:1.6;color:#76676a}.action-grid{display:flex;flex-wrap:wrap;gap:6px;margin-left:-55px}.action-grid .button{font-size:11px;min-height:33px;padding:7px 10px}.note-line{background:#faf1e8;padding:9px 12px;margin:9px 0;border-radius:10px;font-size:12px;line-height:1.4}.meal-pill{border:1px dashed #e0bba4;background:#fff6e9;display:flex;width:100%;gap:10px;align-items:center;text-align:left;padding:12px 14px;border-radius:13px;color:#865c61}.meal-pill strong{font:16px var(--font)}.meal-pill span{font-size:11px;color:#ab7d76;display:block}.note-banner{border:1px solid #e7d4b4;background:#fff7e8;border-radius:12px;padding:11px 13px;font-size:12px;line-height:1.5;color:#876b5d}.bottom-add{display:flex;justify-content:center;padding:15px 0 4px}
.food-intro{border:1px solid #edd6d1;background:linear-gradient(130deg,#fff7ed,#f9eded);border-radius:18px;padding:16px;margin-bottom:16px;font:15px/1.45 var(--font)}.food-slot{margin-bottom:18px}.slot-head{display:flex;justify-content:space-between;align-items:end;padding:2px 2px 10px}.slot-head h3{font:normal 23px var(--font);margin:3px 0}.rest-card{background:#fffdf8;border-radius:18px;border:1px solid #ebd7cd;padding:13px;margin-bottom:10px;box-shadow:0 3px 8px #7251510a}.rest-card.selected{border:2px solid #d98b9e;background:#fff9f5}.rest-top{display:flex;align-items:start;gap:12px}.rest-emoji{width:51px;height:52px;background:linear-gradient(145deg,#f3e3cd,#f6dbe1);display:grid;place-items:center;border-radius:12px;font-size:24px;flex-shrink:0}.rest-body{min-width:0;flex:1}.rest-name{font:normal 19px var(--font);margin:1px 0 4px}.rest-area{color:#97807b;font-size:11px}.badge{font:750 10px var(--ui);display:inline-flex;align-items:center;gap:5px;padding:5px 8px;border-radius:40px;background:#f3e7e3;color:#936a73}.badge.green{background:#e3eee6;color:#648b76}.badge.rose{background:#f9dfe5;color:#aa667c}.rest-desc{font-size:12px;line-height:1.55;color:#796c6e;margin:9px 0}.rest-actions{display:flex;flex-wrap:wrap;gap:7px;padding-top:10px}.rest-actions .button{font-size:11px;padding:7px 10px;min-height:33px}.dish-list{margin:10px 0 4px;padding:11px 12px;background:#fbf1e8;border-radius:12px}.dish-list p{font:16px var(--font);margin:0 0 9px}.dish-list li{padding:3px 0;font-size:12px}.dish-tip{font-size:11px;color:#9d7774;margin:9px 0 0;line-height:1.5}
.help-hero{display:flex;gap:12px;align-items:center;background:#fff7ef;border:1px solid #e9d8ca;padding:17px;border-radius:17px;margin-bottom:17px}.help-hero .mascot{width:90px;flex-shrink:0}.help-hero strong{font:21px var(--font)}.help-hero p{font-size:12px;line-height:1.55}.tip{display:flex;gap:12px;padding:14px;margin-bottom:9px;background:#fffefa;border:1px solid #e9d8ca;border-radius:14px;font-size:13px;line-height:1.55}.tipico{font-size:21px}.help-links{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:13px}.help-links .button{font-size:12px;padding:8px}
.screen-title{padding:calc(25px + env(safe-area-inset-top)) 6px 12px}.screen-title h1{font:normal 39px/1.05 var(--font);margin:4px 0 9px}.screen-title p{font-size:13px;line-height:1.55;color:var(--sub);margin:0}.daylist{display:grid;gap:10px}.daylist-card{width:100%;border:1px solid #ebd9d0;background:#fffaf4;border-radius:17px;display:flex;text-align:left;align-items:center;gap:13px;padding:9px;min-height:96px}.daylist-img{width:79px;height:80px;border-radius:12px;background-size:cover;background-position:center;flex-shrink:0}.daylist-detail{flex:1}.daylist-detail strong{font:19px var(--font);display:block;margin:4px 0}.daylist-detail small{color:#9b787c;font-size:11px}.daylist-detail .mini-track{height:4px;border-radius:10px;background:#e9d9d2;margin:9px 0 2px;overflow:hidden}.daylist-detail .mini-track>span{height:100%;background:#d38198;display:block}.missed-card{padding:16px;background:#fffaf4;border:1px solid #ecd8cf;border-radius:16px;margin:12px 0}.missed-card h3{font:normal 20px var(--font);margin:4px 0}.missed-card p{font-size:12px;color:#907b7a}.empty{padding:37px 20px;border:1px dashed #dec3c0;border-radius:22px;text-align:center;background:#fffbf6}.empty .huge{font-size:45px}.empty h3{font:normal 22px var(--font)}.empty p{font-size:13px;line-height:1.5;color:#9a7e7f}
.modal-underlay{position:fixed;inset:0;z-index:50;background:#3e2c3d82;display:flex;align-items:flex-end;justify-content:center;backdrop-filter:blur(2px)}.modal{background:#fffaf1;border-radius:27px 27px 0 0;width:min(100%,480px);padding:17px 19px calc(27px + env(safe-area-inset-bottom));max-height:91svh;overflow:auto;box-shadow:0 -9px 30px #392b3638}.modal-handle{width:42px;height:5px;background:#e4c7c3;border-radius:10px;margin:0 auto 16px}.modal-heading{display:flex;justify-content:space-between;align-items:start;margin:0 0 17px}.modal-heading h2{font:normal 26px var(--font);margin:0}.field{display:grid;gap:6px;margin-bottom:13px}.field label{font-size:12px;font-weight:700;color:#866d76}.field input,.field select,.field textarea{border:1px solid #ead0c8;border-radius:12px;background:#fffefa;color:var(--ink);font-size:15px;min-height:44px;padding:11px;width:100%;outline-color:#d4829c}.field textarea{min-height:82px;resize:vertical}.modal-action-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:17px}.account-card{background:#f9eee8;border:1px solid #ecd7cd;border-radius:15px;padding:14px;margin:13px 0}.account-card p{font-size:12px;color:#816a6c;line-height:1.5}.alert{font-size:12px;background:#fff2db;color:#9a7053;padding:12px;border-radius:12px;line-height:1.5;border:1px solid #ebd5b0}.sync-pill{display:inline-flex;align-items:center;gap:6px;background:#fff9f1df;padding:6px 9px;border-radius:50px;font-size:10px;color:#876d75;border:1px solid #e9d6ce}.toast{position:fixed;z-index:70;bottom:calc(90px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);background:#554a51;color:#fff;width:max-content;max-width:min(90%,420px);padding:12px 17px;border-radius:14px;box-shadow:0 6px 30px #392b3b44;font-size:13px;text-align:center;animation:fade .3s}.confetti{pointer-events:none;position:fixed;inset:0;z-index:80;display:grid;place-items:center;background:#3c304444}.confetti-inner{border-radius:30px;text-align:center;padding:27px;background:#fff7eb;max-width:320px;box-shadow:0 8px 40px #4c394e55}.confetti-inner h2{font:normal 28px var(--font);margin:5px 0}.confetti-inner .mascot{width:140px;margin:auto}.confetti-inner p{font-size:13px;line-height:1.5}.confetti-petal{position:absolute;animation:floatdown 3s linear infinite;color:#efb4c3;top:0;font-size:30px}@keyframes floatdown{to{transform:translateY(95svh) rotate(360deg)}}@keyframes fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
.footer-hint{text-align:center;font-size:10px;color:#a58b8a;margin-top:20px;padding-bottom:8px;letter-spacing:.05em}.ribbon{background:#faf0e7;border:1px solid #ead9cf;padding:9px 12px;border-radius:12px;display:flex;align-items:center;gap:10px;margin-bottom:15px;font-size:12px}.ribbon strong{font-size:11px}.titlebar{display:flex;align-items:center;justify-content:space-between;padding:0 0 16px;gap:10px}.pwa-hint{font-size:11px;color:#9c777a}.input-error{font-size:12px;color:#ac4158}.reschedule-list{display:grid;gap:8px}.reschedule-list button{border:1px solid #ead8ce;padding:12px;border-radius:14px;text-align:left;background:white;color:var(--ink)}.reschedule-list button strong{font:17px var(--font)}.reschedule-list button small{color:#927d80;display:block;margin-top:4px}.reschedule-list button.suggested{border-color:#e39aad;background:#fff1f1}.intro-chip{background:#fff6efc7;border-radius:99px;padding:6px 11px;font-size:11px;color:#876c73;border:1px solid #e8d2c5}
@media (min-width:650px){#app{min-height:100svh}.home{min-height:calc(100svh - 73px)}.home-card{margin-bottom:21px}}@media (max-height:740px){.home-center{min-height:205px}.home-mascot-wrap{width:150px;margin-top:9px}.dialogue{top:-5px;font-size:11px;max-width:155px}.home-card{padding:15px}.day-title{font-size:25px}}@media (prefers-reduced-motion:reduce){*,*::after,*::before{animation:none!important;transition:none!important}}


/* ==== Project Sakura V2 polish layer ==== */
:root{--ink:#46363d;--sub:#846f74;--rose:#d98298;--rose-deep:#b85f79;--blush:#f8dde2;--paper:#fffaf4;--cream:#fcf7ef;--gold:#d7b27a;--shadow-soft:0 10px 30px rgba(89,61,73,.10);--shadow-card:0 14px 34px rgba(92,60,77,.12)}
body{background:radial-gradient(circle at top,#f8ece9 0,#efe4df 45%,#e9dfdd 100%)}
#app{background:linear-gradient(180deg,#fffdf9,#fef9f1 35%,#fcf6ee 100%)}
.circlebtn{background:rgba(255,250,244,.86);box-shadow:0 8px 22px rgba(92,60,77,.08);border-color:#edd8d0}
.circlebtn:hover{background:#fffdf9}
.bottom-nav{left:50%;transform:translateX(-50%);bottom:max(8px,env(safe-area-inset-bottom));height:auto;padding:9px 14px;border:1px solid rgba(235,214,210,.95);border-radius:22px;width:min(calc(100% - 16px),450px);background:rgba(255,249,242,.94);box-shadow:0 10px 30px rgba(87,58,70,.12)}
.navitem{border-radius:16px;min-width:72px;padding:6px 0;transition:.18s ease}
.navitem .nav-icon{font-size:21px}
.navitem.active{background:linear-gradient(180deg,#fff5f7,#f8e1e6);color:var(--rose-deep);box-shadow:inset 0 0 0 1px #efd1d7}
.scene::before{background:linear-gradient(to bottom,rgba(255,250,244,.18) 0%,rgba(255,248,238,.18) 38%,rgba(255,251,245,.80) 74%,rgba(255,252,246,.96) 100%)}
.home-top{padding:calc(20px + env(safe-area-inset-top)) 20px 0}
.brand-name{font-size:15px;letter-spacing:.18em;color:#49383f}.brand-sub{font-size:10px;letter-spacing:.14em;color:#7c676d}
.home-center{min-height:315px;padding-top:0}
.home-headline{font-size:clamp(36px,9.2vw,48px);line-height:1.02;text-shadow:0 4px 24px rgba(255,252,247,.72)}
.home-chapter{font-size:10px;letter-spacing:.24em;color:#735c63}
.home-mascot-wrap{width:208px;max-width:54vw;margin-top:26px}
.mascot{filter:drop-shadow(0 16px 18px rgba(89,60,72,.20))}
.dialogue{background:rgba(255,249,239,.94);border-color:#efdbcf;box-shadow:0 16px 32px rgba(98,69,78,.14);font-size:12.5px;line-height:1.5;color:#664d54}
.parchment{background:linear-gradient(180deg,rgba(255,250,244,.97),rgba(255,244,235,.97));border:1px solid #ead7cb;box-shadow:0 18px 38px rgba(95,66,79,.16);border-radius:28px}
.parchment:before,.parchment:after{font-size:19px;opacity:.75}
.home-card{margin:0 16px 10px;padding:22px 18px 18px}
.date-select{font-size:18px;color:#6c505a;max-width:230px}
.day-title{font-size:32px;line-height:1.04;color:#443238;margin-top:10px}.day-subtitle{font-size:12.5px;line-height:1.45;color:#8c7176}.day-counts{gap:10px}.day-counts span{background:#fff8f2;border:1px solid #ecd9d0;padding:6px 10px;border-radius:999px}
.home-card .button{background:linear-gradient(135deg,#e090a4,#cb7388);box-shadow:0 12px 24px rgba(206,118,140,.28);letter-spacing:.01em}
.inside{padding:0 16px 112px}
.chapter-art{height:270px;border-radius:0 0 28px 28px;overflow:hidden;box-shadow:inset 0 -40px 50px rgba(255,248,241,.55)}
.chapter-art::before{background:linear-gradient(180deg,rgba(255,248,243,.22) 0,rgba(255,248,243,.08) 36%,rgba(252,247,239,.96) 100%)}
.day-overlap{margin-top:-96px;background:linear-gradient(180deg,rgba(255,250,245,.94),rgba(255,249,243,.98));border:1px solid #ecdacf;border-radius:28px;padding:18px 16px 0;box-shadow:var(--shadow-card)}
.day-heading{gap:10px;align-items:flex-start}.day-heading h1{font-size:36px;color:#45333a}.day-heading .mascot{width:118px}
.intro-chip,.chapter-sticker{background:#fff7f1;border-color:#ebd8cd;color:#886f75;box-shadow:0 2px 8px rgba(131,98,112,.05)}
.miniquote{background:#fffaf4;border-color:#eddcd3;border-radius:18px;box-shadow:0 10px 24px rgba(116,85,97,.08);font-size:14px;color:#6d5960}
.progress-row{font-size:12px;color:#6c565e}.progress-track{height:10px;background:#efe3db}.progress-fill{background:linear-gradient(90deg,#e7a1b2,#cb7388)}
.day-tabs{padding:6px;background:#f9eee9;border-radius:18px;border-color:#ecd8d2;box-shadow:inset 0 1px 0 rgba(255,255,255,.6)}
.tab{padding:12px 8px;border-radius:13px;font-size:12px;letter-spacing:.02em}.tab.active{background:linear-gradient(180deg,#f9dbe1,#f3c8d2);color:#9f4f68;box-shadow:0 6px 16px rgba(186,112,132,.18)}
.section-header h2{font-size:28px;color:#47353d}
.timeline:before{left:15px;width:3px;border-radius:999px;background:linear-gradient(#e6b8c2,#eadcd5)}
.time-item{padding-left:28px;margin-bottom:13px}.time-dot{left:-8px;top:20px;width:18px;height:18px;box-shadow:0 4px 10px rgba(95,64,79,.08)}
.activity-card,.rest-card,.missed-card,.daylist-card,.help-hero,.tip{box-shadow:var(--shadow-soft)}
.activity-card{border-radius:18px;background:linear-gradient(180deg,#fffdf9,#fffaf4);border-color:#ecddd2}.activity-summary{padding:15px}.activity-emoji{width:50px;height:52px;border-radius:14px;background:linear-gradient(145deg,#fae2df,#e8efe6)}
.activity-name{font-size:18px;color:#4d3940}.activity-area{font-size:11px;color:#99807f}.activity-details{padding:0 15px 16px 76px}.action-grid .button{border-radius:999px}
.meal-pill{background:linear-gradient(180deg,#fff8ef,#fff3e6);border-color:#ebd2ba;border-radius:16px;box-shadow:0 8px 20px rgba(121,87,73,.08)}
.note-banner{background:#fff8eb;border-color:#ecd7b6;border-radius:15px}
.food-intro{border-radius:20px;background:linear-gradient(135deg,#fff9f1,#fbe9eb);box-shadow:var(--shadow-soft)}
.slot-head h3{font-size:24px}.rest-card{border-radius:20px;padding:14px;background:linear-gradient(180deg,#fffdf9,#fff9f3)}.rest-card.selected{box-shadow:0 14px 26px rgba(209,124,145,.16)}
.rest-emoji{width:54px;height:54px;border-radius:14px}.rest-name{font-size:20px;color:#46353c}.dish-list{background:#fcf3eb;border-radius:14px}
.help-hero{border-radius:20px;background:linear-gradient(135deg,#fff8f0,#fcedee)}
.help-hero .mascot{width:94px}.tip{border-radius:16px;background:linear-gradient(180deg,#fffefa,#fffcf8)}
.screen-title{padding:calc(22px + env(safe-area-inset-top)) 8px 14px}.screen-title h1{font-size:40px;color:#46343b}.screen-title p{font-size:13px;line-height:1.6}
.daylist-card{min-height:102px;border-radius:18px;padding:10px 11px}.daylist-img{width:84px;height:84px;border-radius:14px}.daylist-detail strong{font-size:20px}
.empty{border-radius:24px;background:linear-gradient(180deg,#fffdf8,#fff7ef)}
.modal{background:linear-gradient(180deg,#fffaf3,#fff7ef);border-radius:30px 30px 0 0;box-shadow:0 -18px 44px rgba(69,46,55,.20)}
.field input,.field select,.field textarea{background:#fffdfa;border-radius:14px}.toast{background:#4e3d45;border-radius:16px}.ribbon{background:linear-gradient(180deg,#fff6ef,#faeee8);border-radius:14px}.sync-pill{background:#fff9f2;border-color:#ecd8ce}
.footer-hint{font-size:10px;letter-spacing:.09em;text-transform:uppercase}
@media (min-width:650px){#app{border-radius:28px;overflow:hidden;margin:12px auto;min-height:calc(100svh - 24px)}}
@media (max-height:740px){.home-center{min-height:222px}.home-mascot-wrap{width:168px}.day-overlap{margin-top:-84px}}


/* ==== Project Sakura V3 mascot animation + blossom polish ==== */
.home-mascot-wrap{overflow:visible}
.mascot-animated{will-change:transform;transform-origin:50% 88%}
.mascot-animated.bob-anim{animation:bobV3 3.8s ease-in-out infinite}
.mascot-animated.wave-phase{animation:waveV3 .76s ease-in-out 1,bobV3 3.8s ease-in-out infinite}
@keyframes bobV3{0%,100%{transform:translateY(0) rotate(0deg)}50%{transform:translateY(-7px) rotate(-1.2deg)}}
@keyframes waveV3{0%{transform:translateY(0) rotate(0deg) scale(1)}28%{transform:translateY(-6px) rotate(4deg) scale(1.015)}56%{transform:translateY(-3px) rotate(-4deg) scale(1.01)}100%{transform:translateY(0) rotate(0deg) scale(1)}}
.dialogue{width:auto !important;min-width:176px;max-width:min(250px,72vw);left:-96px;top:-42px;padding:15px 16px;border-radius:22px 22px 22px 9px;transform:rotate(-2.5deg);z-index:4;white-space:normal;overflow-wrap:break-word;text-wrap:balance;line-height:1.48;font-size:12.8px}
.dialogue::after{right:26px;bottom:-12px}.home-mascot-wrap .mascot{position:relative;z-index:2}
.float-petal{opacity:.70;filter:drop-shadow(0 3px 8px rgba(216,129,160,.15));animation:petalV3 11s ease-in-out infinite}
.p1{top:15%;left:8%;font-size:22px}.p2{right:8%;top:27%;animation-delay:-3.5s;font-size:17px}.p3{top:61%;left:16%;animation-delay:-6s;font-size:13px}.p4{top:12%;right:22%;animation-delay:-1s;font-size:15px}.p5{top:42%;left:4%;animation-delay:-8s;font-size:19px}.p6{top:71%;right:14%;animation-delay:-4.8s;font-size:16px}.p7{top:52%;right:5%;animation-delay:-2.6s;font-size:14px}.p8{top:30%;left:23%;animation-delay:-7.2s;font-size:12px}
@keyframes petalV3{0%,100%{transform:translate(0,0) rotate(-9deg)}25%{transform:translate(10px,8px) rotate(7deg)}50%{transform:translate(18px,22px) rotate(18deg)}75%{transform:translate(7px,12px) rotate(4deg)}}
@media (max-width:420px){.dialogue{left:-74px;top:-34px;max-width:min(220px,68vw);font-size:12.3px}}
@media (max-height:740px){.dialogue{left:-62px;top:-22px;max-width:min(208px,64vw)}}


/* Project Sakura V3.1: reliable frame-animated mascot */
.mascot-picture{display:block;width:100%;height:auto;flex-shrink:0;position:relative;z-index:2}
.mascot-picture>.mascot{display:block;width:100%;height:auto}
.day-heading>.mascot-picture{width:118px;flex:0 0 118px;align-self:center}
.help-hero>.mascot-picture{width:94px;flex:0 0 94px}
.confetti-inner .mascot-picture{width:140px;margin:0 auto}
@media (max-width:360px){.day-heading>.mascot-picture{width:96px;flex-basis:96px}}
@media (prefers-reduced-motion:reduce){.mascot-picture>.mascot{animation:none!important}}


/* v3.1.1 — Position the dialogue ABOVE Tanuki, without covering the illustration. */
.home-mascot-wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: min(268px, 76vw);
  max-width: none;
  margin: 14px auto 0;
  overflow: visible;
}
.home-mascot-wrap .dialogue {
  position: relative;
  inset: auto;
  left: auto;
  right: auto;
  top: auto;
  bottom: auto;
  box-sizing: border-box;
  min-width: 0;
  width: min(258px, 76vw) !important;
  max-width: 100%;
  padding: 12px 15px;
  margin: 0 0 13px;
  flex-shrink: 0;
  border-radius: 19px 19px 19px 7px;
  transform: rotate(-2deg);
  font-size: 12.8px;
  line-height: 1.45;
  text-wrap: pretty;
  z-index: 3;
}
.home-mascot-wrap .dialogue::after {
  right: 25%;
  bottom: -12px;
}
.home-mascot-wrap .mascot {
  width: min(208px, 55vw);
  max-width: 100%;
  flex-shrink: 0;
  position: relative;
  z-index: 2;
}
@media (max-width: 360px) {
  .home-mascot-wrap .dialogue {
    width: min(246px, 78vw) !important;
    font-size: 12px;
    padding: 11px 13px;
  }
}
