@import "https://fonts.googleapis.com/css2?family=Outfit:wght@400;500;600;700;800;900&family=Nunito:wght@300;400;500;600;700;800&display=swap";:root{--pink-50:#fff0f6;--pink-100:#ffe0ef;--pink-200:#ffb3d4;--pink-300:#ff80ba;--pink-400:#ff4da0;--pink-500:#e91e8c;--pink-600:#c2157a;--peach-50:#fff5ee;--peach-100:#ffe8d6;--peach-200:#ffc9a0;--peach-300:#ffaa6a;--cream:#fffaf5;--rose-50:#fdf2f7;--white:#fff;--text-900:#2d1028;--text-700:#5e2248;--text-500:#a05080;--text-300:#d4a0c0;--glass-bg:#ffffff9e;--glass-border:#ffb6d273;--glass-blur:24px;--shadow-sm:0 2px 12px #c8147812;--shadow-md:0 6px 28px #c814781c;--shadow-lg:0 16px 48px #c8147829;--shadow-xl:0 24px 72px #c8147838;--radius-sm:12px;--radius-md:18px;--radius-lg:24px;--radius-xl:32px;--radius-pill:100px;--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--transition:all .3s var(--ease-out);--font-serif:"Outfit", system-ui, sans-serif;--font-sans:"Nunito", system-ui, sans-serif}*,:before,:after{box-sizing:border-box;margin:0;padding:0}button,input,textarea,select{font-family:inherit}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;font-size:16px}body{font-family:var(--font-sans);background:var(--cream);min-height:100vh;color:var(--text-900);overflow-x:hidden}body:before{content:"";pointer-events:none;z-index:0;background:radial-gradient(800px 600px at 10% 90%,#ffb6d238 0%,#0000 70%),radial-gradient(600px 800px at 90% 10%,#ffc8aa33 0%,#0000 70%),radial-gradient(700px 500px,#fff0f659 0%,#0000 70%),linear-gradient(160deg,#fff0f6 0%,#fffaf5 40%,#fff5ee 70%,#fff0f6 100%);position:fixed;inset:0}#root{z-index:1;position:relative}::-webkit-scrollbar{width:5px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--pink-200);border-radius:10px}@keyframes float{0%,to{transform:translateY(0)rotate(0)}33%{transform:translateY(-9px)rotate(1.5deg)}66%{transform:translateY(-4px)rotate(-.8deg)}}@keyframes pulse-scale{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}@keyframes shimmer{to{background-position:200%}}@keyframes fade-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slide-in{0%{opacity:0;transform:translate(-14px)}to{opacity:1;transform:translate(0)}}@keyframes progress-expand{0%{width:0}to{width:var(--target-w)}}@keyframes sos-ring{0%{box-shadow:0 0 #e91e8c73}70%{box-shadow:0 0 0 18px #e91e8c00}to{box-shadow:0 0 #e91e8c00}}@keyframes modal-pop{0%{opacity:0;transform:scale(.88)translateY(16px)}to{opacity:1;transform:scale(1)translateY(0)}}@keyframes petal-drift{0%{opacity:0;transform:translateY(-40px)translate(0)rotate(0)}8%{opacity:.75}92%{opacity:.5}to{opacity:0;transform:translateY(105vh)translate(60px)rotate(540deg)}}@keyframes ticker{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.petal{pointer-events:none;z-index:0;will-change:transform;-webkit-user-select:none;user-select:none;opacity:0;animation:linear infinite petal-drift;position:fixed}.page{z-index:1;min-height:100vh;position:relative}.container{width:100%;max-width:1100px;margin:0 auto;padding:0 16px 60px}.hero{text-align:center;animation:fade-up .7s var(--ease-out) both;padding:40px 16px 24px}.hero-avatar-ring{margin-bottom:28px;display:inline-block;position:relative}.hero-avatar{object-fit:cover;width:120px;height:120px;box-shadow:0 0 0 6px #ffb6d22e, 0 0 0 12px #ffb6d214, var(--shadow-lg);border:3px solid #ffb6d299;border-radius:50%;animation:5.5s ease-in-out infinite float;display:block}.hero-badge{background:linear-gradient(135deg,#ff6eb8,#e91e8c);border:2.5px solid #fff;border-radius:50%;justify-content:center;align-items:center;width:42px;height:42px;animation:2s ease-in-out infinite pulse-scale;display:flex;position:absolute;bottom:6px;right:6px;box-shadow:0 4px 14px #e91e8c73}.hero-title{font-family:var(--font-serif);color:var(--text-900);margin-bottom:14px;font-size:clamp(30px,6vw,46px);font-weight:700;line-height:1.18}.hero-title .gradient-text{background:linear-gradient(90deg,#e91e8c 0%,#ff6eb8 25%,#ff9a5c 50%,#ff6eb8 75%,#e91e8c 100%) 0 0/200%;-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;animation:4s linear infinite shimmer}.hero-subtitle{color:var(--text-500);max-width:440px;margin:0 auto;font-size:clamp(15px,2.5vw,17px);font-weight:500;line-height:1.7}.card{background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--glass-blur));border:1.5px solid var(--glass-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);transition:var(--transition);overflow:hidden}.card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.card-body{padding:20px 16px}.card-body-sm{padding:16px}.main-grid{grid-template-columns:1fr;gap:16px;display:grid}@media (width>=780px){.container{padding:0 40px 80px}.hero{padding:56px 24px 40px}.hero-avatar{width:148px;height:148px;box-shadow:0 0 0 8px #ffb6d22e, 0 0 0 16px #ffb6d214, var(--shadow-lg)}.card-body{padding:28px}.card-body-sm{padding:22px 24px}.main-grid{grid-template-columns:1fr 1fr;gap:20px}.col-full{grid-column:1/-1}.col-left{grid-column:1}.col-right{grid-column:2}}.timer-card{animation:fade-up .6s var(--ease-out) 50ms both}.timer-header{align-items:center;gap:10px;margin-bottom:24px;display:flex}.timer-header-label{letter-spacing:.14em;text-transform:uppercase;color:var(--text-500);font-size:12px;font-weight:800}.timer-units{justify-content:center;align-items:flex-end;gap:0;display:flex}.timer-cell{flex-direction:column;flex:1;align-items:center;display:flex}.timer-number{font-family:var(--font-serif);background:linear-gradient(#e91e8c 0%,#ff80ba 100%);-webkit-text-fill-color:transparent;text-align:center;min-width:2ch;animation:ticker .3s var(--ease-spring);-webkit-background-clip:text;background-clip:text;font-size:clamp(38px,8vw,58px);font-weight:700;line-height:1}.timer-unit-label{letter-spacing:.1em;text-transform:uppercase;color:var(--text-300);margin-top:6px;font-size:10px;font-weight:800}.timer-colon{font-family:var(--font-serif);color:var(--pink-200);flex-shrink:0;padding:0 4px 22px;font-size:40px;font-weight:300;line-height:1}.stat-card{animation:fade-up .6s var(--ease-out) .1s both}.stat-card-inner{text-align:center;flex-direction:column;align-items:center;gap:6px;display:flex}.stat-icon-wrap{border-radius:16px;justify-content:center;align-items:center;width:52px;height:52px;margin-bottom:4px;display:flex}.stat-icon-wrap.pink{background:linear-gradient(135deg,#ff6eb82e,#e91e8c1f)}.stat-icon-wrap.peach{background:linear-gradient(135deg,#ffb47833,#ff96501f)}.stat-number{font-family:var(--font-serif);font-size:clamp(24px,4.5vw,34px);font-weight:700;line-height:1}.stat-number.pink-grad{background:linear-gradient(135deg,#e91e8c,#ff6eb8);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.stat-number.peach-grad{background:linear-gradient(135deg,#ff8c42,#ff6b35);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.stat-label{letter-spacing:.1em;text-transform:uppercase;color:var(--text-300);font-size:11px;font-weight:800}.progress-section{animation:fade-up .6s var(--ease-out) .15s both}.section-header{align-items:center;gap:10px;margin-bottom:20px;display:flex}.section-title{font-family:var(--font-serif);color:var(--text-900);font-size:20px;font-weight:600}.progress-item{margin-bottom:16px}.progress-item:last-child{margin-bottom:0}.progress-meta{justify-content:space-between;align-items:center;margin-bottom:7px;display:flex}.progress-name{color:var(--text-700);font-size:13px;font-weight:700}.progress-val{color:var(--text-300);font-variant-numeric:tabular-nums;font-size:12px;font-weight:700}.progress-track{border-radius:var(--radius-pill);background:#ffb6d240;height:8px;overflow:hidden}.progress-fill{border-radius:var(--radius-pill);height:100%;animation:progress-expand 1.3s var(--ease-out) both, shimmer 4s linear infinite;transition:width .8s var(--ease-out);background:linear-gradient(90deg,#ff9a5c 0%,#ff6eb8 25%,#e91e8c 50%,#ff6eb8 75%,#ff9a5c 100%) 0 0/200%}.progress-footer{text-align:center;color:var(--text-500);margin-top:14px;font-size:13px;font-weight:600;line-height:1.5}.achievements-section{animation:fade-up .6s var(--ease-out) .2s both}.achievements-grid{grid-template-columns:repeat(2,1fr);gap:10px;display:grid}@media (width>=360px){.achievements-grid{grid-template-columns:repeat(3,1fr)}}@media (width>=480px){.achievements-grid{grid-template-columns:repeat(4,1fr)}}.achievement-chip{border-radius:var(--radius-md);text-align:center;transition:var(--transition);cursor:default;padding:16px 12px;position:relative}.achievement-chip.unlocked{box-shadow:var(--shadow-sm);background:linear-gradient(135deg,#ff6eb824,#ffb6d238);border:1.5px solid #ff6eb859}.achievement-chip.locked{opacity:.5;background:#ffffff61;border:1.5px solid #d2b4c840}.achievement-chip.unlocked:hover{box-shadow:var(--shadow-md);transform:translateY(-3px)scale(1.04)}.achievement-icon-wrap{border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;margin:0 auto 8px;display:flex}.achievement-chip.unlocked .achievement-icon-wrap{background:linear-gradient(135deg,#ff6eb840,#e91e8c26)}.achievement-chip.locked .achievement-icon-wrap{background:#c8b4c826}.achievement-badge{display:flex;position:absolute;top:7px;right:7px}.chip-title{color:var(--text-900);margin-bottom:2px;font-size:11.5px;font-weight:800;line-height:1.3}.chip-desc{color:var(--text-500);font-size:10px;font-weight:600}.motivation-card{animation:fade-up .6s var(--ease-out) .25s both;cursor:pointer;-webkit-user-select:none;user-select:none;position:relative}.motivation-card:active{transform:scale(.985)}.motivation-deco{font-family:var(--font-serif);color:#e91e8c12;pointer-events:none;-webkit-user-select:none;user-select:none;font-size:100px;font-style:italic;line-height:1;position:absolute;top:-8px;left:20px}.motivation-body{position:relative}.motivation-text{font-family:var(--font-serif);color:var(--text-900);margin-bottom:16px;font-size:clamp(16px,2.8vw,19px);font-style:italic;line-height:1.7}.motivation-footer{justify-content:space-between;align-items:center;display:flex}.motivation-dots{gap:5px;display:flex}.motivation-dot{background:var(--pink-200);width:6px;height:6px;transition:var(--transition);border-radius:50%}.motivation-dot.active{background:var(--pink-500);border-radius:10px;width:18px}.motivation-hint{color:var(--text-300);letter-spacing:.05em;align-items:center;gap:5px;font-size:11px;font-weight:700;display:flex}.letter-card{animation:fade-up .6s var(--ease-out) .3s both;position:relative;overflow:visible}.letter-icon-row{align-items:center;gap:12px;margin-bottom:22px;display:flex}.letter-icon-box{background:linear-gradient(135deg,#ff6eb82e,#e91e8c1f);border-radius:14px;flex-shrink:0;justify-content:center;align-items:center;width:46px;height:46px;display:flex}.letter-title{font-family:var(--font-serif);color:var(--text-900);font-size:19px;font-weight:600}.letter-divider{background:linear-gradient(90deg,#ff6eb866,#0000);border-radius:10px;height:1.5px;margin-bottom:20px}.letter-text{color:var(--text-700);font-size:15.5px;line-height:1.9}.letter-text p{margin-bottom:14px}.letter-text p:last-child{margin-bottom:0}.letter-text em{color:var(--text-900);font-style:italic;font-weight:600}.letter-sig{font-family:var(--font-serif);color:var(--text-900);text-align:right;border-top:1.5px solid #ffb6d24d;justify-content:flex-end;align-items:center;gap:8px;margin-top:24px;padding-top:18px;font-size:16px;font-style:italic;display:flex}.sos-section{animation:fade-up .6s var(--ease-out) .35s both}.sos-inner{text-align:center;flex-direction:column;align-items:center;gap:16px;display:flex}.sos-icon-wrap{background:linear-gradient(135deg,#ff6eb826,#e91e8c1a);border:1.5px solid #ff6eb84d;border-radius:50%;justify-content:center;align-items:center;width:64px;height:64px;display:flex}.sos-title{font-family:var(--font-serif);color:var(--text-900);font-size:20px;font-weight:600}.sos-subtitle{color:var(--text-500);max-width:360px;font-size:14px;line-height:1.65}.sos-btn{color:#fff;font-family:var(--font-sans);border-radius:var(--radius-pill);cursor:pointer;transition:var(--transition);letter-spacing:.02em;white-space:nowrap;background:linear-gradient(135deg,#ff6eb8,#e91e8c);border:none;align-items:center;gap:10px;padding:15px 36px;font-size:16px;font-weight:800;animation:2.2s infinite sos-ring;display:inline-flex;box-shadow:0 6px 24px #e91e8c59}.sos-btn:hover{transform:translateY(-3px)scale(1.04);box-shadow:0 12px 36px #e91e8c7a}.sos-btn:active{transform:scale(.97)}.overlay{-webkit-backdrop-filter:blur(10px);z-index:200;animation:fade-up .25s var(--ease-out);background:#2d10288c;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal{border-radius:var(--radius-xl);width:100%;max-width:440px;box-shadow:var(--shadow-xl);animation:modal-pop .38s var(--ease-spring);background:linear-gradient(150deg,#fff0f6 0%,#fffaf5 60%,#fff5ee 100%);padding:40px 32px 36px;position:relative}.modal-close-btn{width:36px;height:36px;color:var(--text-700);cursor:pointer;transition:var(--transition);background:#ffb6d24d;border:none;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;top:14px;right:14px}.modal-close-btn:hover{background:#ff6eb840;transform:rotate(90deg)}.modal-header{text-align:center;flex-direction:column;align-items:center;margin-bottom:24px;display:flex}.modal-icon-ring{background:linear-gradient(135deg,#ff6eb82e,#e91e8c1f);border:2px solid #ff6eb84d;border-radius:50%;justify-content:center;align-items:center;width:72px;height:72px;margin-bottom:16px;animation:3.5s ease-in-out infinite float;display:flex}.modal-title{font-family:var(--font-serif);color:var(--text-900);margin-bottom:8px;font-size:24px;font-weight:700}.modal-subtitle{color:var(--text-700);font-size:14.5px;line-height:1.7}.modal-subtitle strong{color:var(--pink-600);font-weight:800}.modal-tips{flex-direction:column;gap:10px;margin-bottom:24px;display:flex}.modal-tip{border-radius:var(--radius-md);animation:slide-in .4s var(--ease-out) both;background:#ffb6d226;border:1px solid #ffb6d24d;align-items:flex-start;gap:14px;padding:14px 16px;display:flex}.modal-tip:first-child{animation-delay:50ms}.modal-tip:nth-child(2){animation-delay:.1s}.modal-tip:nth-child(3){animation-delay:.15s}.modal-tip:nth-child(4){animation-delay:.2s}.tip-icon-box{background:linear-gradient(135deg,#ff6eb833,#e91e8c1f);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.tip-text{color:var(--text-700);padding-top:2px;font-size:13.5px;font-weight:500;line-height:1.55}.modal-confirm-btn{color:#fff;width:100%;font-family:var(--font-sans);border-radius:var(--radius-pill);cursor:pointer;transition:var(--transition);letter-spacing:.02em;background:linear-gradient(135deg,#ff6eb8,#e91e8c);border:none;padding:15px;font-size:16px;font-weight:800;box-shadow:0 6px 20px #e91e8c61}.modal-confirm-btn:hover{transform:translateY(-2px);box-shadow:0 10px 30px #e91e8c7a}.site-footer{text-align:center;animation:fade-up .6s var(--ease-out) .5s both;padding:32px 0 8px}.footer-hearts{justify-content:center;gap:8px;margin-bottom:12px;display:flex}.footer-heart{animation:2.2s ease-in-out infinite pulse-scale}.footer-heart:nth-child(2){animation-delay:.3s}.footer-heart:nth-child(3){animation-delay:.6s}.footer-text{color:var(--text-300);font-size:14px;font-weight:600;line-height:1.7}@media (width>=780px){.hero{padding:64px 24px 48px}.hero-avatar{width:164px;height:164px}.stats-pair{display:contents}.modal{padding:44px 36px 40px}}@media (width<=440px){.container{padding:0 14px 100px}.card-body,.card-body-sm{padding:20px 18px}.timer-colon{padding:0 2px 22px;font-size:32px}.timer-number{font-size:32px}.achievements-grid{grid-template-columns:repeat(3,1fr)}}@supports (padding-bottom:env(safe-area-inset-bottom)){.container{padding-bottom:max(60px, env(safe-area-inset-bottom))}@media (width<=440px){.container{padding-bottom:calc(100px + env(safe-area-inset-bottom))}}}.sos-card-inner{text-align:center;background:linear-gradient(135deg,#ff6eb814 0%,#fff0 100%);flex-direction:column;align-items:center;gap:20px;padding:24px 20px;display:flex}.sos-left{flex-direction:column;align-items:center;gap:14px;display:flex}.sos-icon-glow{background:linear-gradient(135deg,#ff6eb833,#e91e8c1f);border:2px solid #ff6eb859;border-radius:50%;justify-content:center;align-items:center;width:70px;height:70px;animation:2.5s ease-in-out infinite pulse-scale;display:flex;box-shadow:0 0 0 8px #e91e8c0f,0 0 0 16px #e91e8c08}@media (width>=600px){.sos-card-inner{text-align:left;flex-direction:row;justify-content:space-between;padding:28px 32px}.sos-left{flex-direction:row;align-items:flex-start}}.sos-overlay{align-items:flex-end;padding:0}@media (width>=500px){.sos-overlay{align-items:center;padding:20px}}.sos-modal{border-radius:var(--radius-xl) var(--radius-xl) 0 0;padding:32px 24px;padding-bottom:max(28px, env(safe-area-inset-bottom,28px));-webkit-overflow-scrolling:touch;background:linear-gradient(160deg,#fff0f6 0%,#fffaf5 60%,#fff5ee 100%);width:100%;max-width:100%;max-height:95vh;overflow-y:auto;animation:sheet-up .38s var(--ease-spring)!important}@media (width>=500px){.sos-modal{border-radius:var(--radius-xl);max-width:480px;max-height:none;padding:40px 32px 36px;overflow-y:visible;animation:modal-pop .38s var(--ease-spring)!important}}.sos-modal-header{text-align:center;margin-bottom:20px}.sos-modal-label{letter-spacing:.18em;text-transform:uppercase;color:var(--text-300);margin-bottom:6px;font-size:10px;font-weight:900}.sos-countdown{font-family:var(--font-serif);background:linear-gradient(135deg,#e91e8c,#ff9a5c);-webkit-text-fill-color:transparent;font-variant-numeric:tabular-nums;-webkit-background-clip:text;background-clip:text;margin-bottom:10px;font-size:clamp(52px,14vw,72px);font-weight:700;line-height:1}.sos-modal-sub{color:var(--text-700);font-size:14px;line-height:1.65}.sos-modal-sub strong{color:var(--pink-600);font-weight:800}.breath-center{justify-content:center;align-items:center;width:160px;height:160px;margin:0 auto 20px;display:flex;position:relative}.breath-progress-svg{width:100%;height:100%;position:absolute;inset:0}.breath-ring{z-index:1;background:linear-gradient(135deg,#ff6eb82e,#e91e8c1a);border:2px solid #ff6eb859;border-radius:50%;justify-content:center;align-items:center;width:110px;height:110px;display:flex;position:relative}.breath-inner{text-align:center}.breath-label{color:var(--pink-600);margin-bottom:2px;font-size:13px;font-weight:700}.breath-count{font-family:var(--font-serif);color:var(--text-900);font-size:22px;font-weight:700;line-height:1}@keyframes sheet-up{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}.sos-modal-badge{background:linear-gradient(135deg,#ff6eb82e,#e91e8c1f);border:2px solid #ff6eb84d;border-radius:50%;justify-content:center;align-items:center;width:52px;height:52px;margin:0 auto 10px;animation:3.5s ease-in-out infinite float;display:flex}.sos-modal-title{font-family:var(--font-serif);color:var(--text-900);margin-bottom:4px;font-size:22px;font-weight:700}.sos-countdown.done{background:linear-gradient(135deg,#43c59e,#2da882);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.sos-tabs{border-radius:var(--radius-pill);background:#ffb6d226;gap:8px;margin:0 0 18px;padding:4px;display:flex}.sos-tab{border-radius:var(--radius-pill);font-family:var(--font-sans);color:var(--text-500);cursor:pointer;transition:var(--transition);white-space:nowrap;background:0 0;border:none;flex:1;padding:9px 12px;font-size:13px;font-weight:700}.sos-tab.active{color:var(--pink-600);box-shadow:var(--shadow-sm);background:#fff}.modal-confirm-btn.done-btn{background:linear-gradient(135deg,#43c59e,#2da882);animation:1.5s ease-in-out infinite pulse-scale;box-shadow:0 6px 20px #2da88261}.health-timeline-grid{grid-template-columns:1fr;gap:12px;display:grid}@media (width>=600px){.health-timeline-grid{grid-template-columns:1fr 1fr}}.health-item{border-radius:var(--radius-md);transition:var(--transition);background:#fff6;border:1px solid #ffb6d24d;padding:14px 16px}.health-item.done{background:linear-gradient(135deg,#ff6eb814,#e91e8c0d);border-color:#ff6eb84d}.health-item:hover{box-shadow:var(--shadow-sm);transform:translateY(-2px)}
