:root{color:#1f2328;background:#dfe5e8;font-family:Noto Sans KR,Apple SD Gothic Neo,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;--background: #dfe5e8;--panel: #ffffff;--text: #1f2328;--muted: #9aa0a8;--line: #e9eef0;--mint: #4db6ac;--mint-strong: #38afa4;--mint-soft: #e9f8f6;--mint-pale: #f3fbfa;--lavender: #b9b7ff;--sky: #9fd5ff;--shadow: 0 4px 12px rgba(0, 0, 0, .05);--shadow-lift: 0 14px 30px rgba(31, 35, 40, .08)}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;overflow-x:hidden}button,input{font:inherit}button{-webkit-tap-highlight-color:transparent}#root{min-height:100vh;background:radial-gradient(circle at 50% -12%,rgba(77,182,172,.2),transparent 340px),radial-gradient(circle at 100% 18%,rgba(185,183,255,.2),transparent 210px),linear-gradient(180deg,#edf2f4 0%,var(--background) 42%,#d8e0e3 100%)}.onboarding,.app-shell{width:min(100%,480px);min-height:100vh;margin:0 auto;padding:max(24px,env(safe-area-inset-top)) 18px max(28px,env(safe-area-inset-bottom))}.app-shell{padding-bottom:calc(132px + env(safe-area-inset-bottom))}.onboarding{display:grid;place-items:center}.onboarding-card,.hero-card,.milestone-card,.share-card,.progress-card,.next-card,.readonly-list{border:1px solid rgba(255,255,255,.84);border-radius:22px;background:var(--panel);box-shadow:var(--shadow)}.onboarding-card{position:relative;overflow:hidden;width:100%;padding:30px 22px 20px;animation:floatIn .46s cubic-bezier(.2,.8,.2,1) both}.sparkle-orbit{position:absolute;inset:-70px -64px auto auto;width:190px;height:190px;border-radius:999px;background:linear-gradient(135deg,#4db6ac33,#38afa40a)}.sparkle-orbit span{position:absolute;display:block;border-radius:999px;background:var(--mint);animation:pulse 2.8s ease-in-out infinite}.sparkle-orbit span:nth-child(1){width:18px;height:18px;left:58px;top:98px}.sparkle-orbit span:nth-child(2){width:10px;height:10px;left:118px;top:126px;animation-delay:.38s}.sparkle-orbit span:nth-child(3){width:34px;height:34px;left:86px;top:54px;background:#4db6ac3d;animation-delay:.72s}.onboarding-badge{display:grid;place-items:center;width:58px;height:58px;margin-bottom:24px;border-radius:18px;color:#fff;font-size:.9rem;font-weight:900;letter-spacing:-.03em;background:linear-gradient(135deg,var(--mint),var(--mint-strong));box-shadow:0 12px 22px #4db6ac47}.eyebrow{margin:0 0 8px;color:var(--mint-strong);font-size:.74rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}h1,h2,h3,p{margin-top:0}h1{position:relative;margin-bottom:14px;color:var(--text);font-size:clamp(2.05rem,9.4vw,3.28rem);line-height:1.02;letter-spacing:-.075em}h2{margin-bottom:0;color:var(--text);font-size:1.42rem;line-height:1.25;letter-spacing:-.055em}h3{margin-bottom:8px;color:var(--text);font-size:1.04rem;line-height:1.32;letter-spacing:-.035em}.intro-copy,.share-card p,.next-card p,.task-detail,.empty-state,.onboarding-note{color:var(--muted);line-height:1.65}.date-form{position:relative;display:grid;gap:12px;margin-top:30px}.date-form label{color:var(--text);font-size:.86rem;font-weight:800}.date-form input,.date-form button{width:100%;border:0;border-radius:16px}.date-form input{padding:17px 16px;color:var(--text);background:#f8fafb;box-shadow:inset 0 0 0 1px var(--line);outline:none;transition:box-shadow .16s ease,background .16s ease}.date-form input:focus{background:#fff;box-shadow:inset 0 0 0 2px #4db6ac8c}.date-form button,.ghost-button,.bottom-tab-bar button,.floating-action,.task-main{cursor:pointer}.date-form button{padding:17px 20px;color:#fff;font-weight:850;background:linear-gradient(135deg,var(--mint),var(--mint-strong));box-shadow:0 12px 24px #4db6ac3d;transition:transform .15s ease,opacity .15s ease,box-shadow .15s ease}.date-form button:active,.ghost-button:active,.bottom-tab-bar button:active,.floating-action:active,.task-card:active{transform:scale(.98);opacity:.86}.onboarding-note{margin:16px 0 0;font-size:.82rem}.app-shell{display:grid;align-content:start;gap:16px}.hero-card{position:relative;overflow:hidden;display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:24px;background:linear-gradient(135deg,#fffffff5,#ffffffe0),var(--panel);animation:slideUp .38s cubic-bezier(.2,.8,.2,1) both}.hero-glow{position:absolute;inset:auto -34px -72px auto;width:178px;height:178px;border-radius:999px;background:#4db6ac24}.hero-card>div,.hero-card .ghost-button{position:relative}.hero-card h1{margin-bottom:16px;max-width:280px;font-size:1.98rem}.hero-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.hero-date{margin-bottom:0;color:var(--muted);font-size:.92rem;font-weight:700}.hero-meta span,.section-heading>span,.milestone-header>span:not(.milestone-dot),.next-card>span,.share-badge{border-radius:999px;padding:7px 10px;color:var(--mint-strong);font-size:.76rem;font-weight:850;background:var(--mint-soft)}.ghost-button{flex:0 0 auto;border:0;border-radius:999px;padding:10px 13px;color:var(--text);font-size:.82rem;font-weight:800;background:#f6f8f9;transition:transform .15s ease,opacity .15s ease,background .15s ease}.timeline-view,.dashboard-view{display:grid;gap:16px;animation:slideUp .38s cubic-bezier(.2,.8,.2,1) both}.section-heading,.milestone-header,.progress-topline,.readonly-item{display:flex;align-items:center;justify-content:space-between;gap:14px}.section-heading{padding:6px 4px 0}.timeline-list{display:grid;gap:16px}.milestone-card,.share-card,.progress-card,.next-card,.readonly-list{padding:18px}.milestone-card{position:relative;overflow:hidden}.milestone-card:before{content:"";position:absolute;left:27px;top:61px;bottom:18px;width:2px;border-radius:999px;background:linear-gradient(180deg,#4db6ac52,#4db6ac00)}.milestone-header{position:relative;justify-content:flex-start;margin-bottom:14px}.milestone-header>div{flex:1}.milestone-dot{display:grid;place-items:center;flex:0 0 auto;width:20px;height:20px;border:5px solid var(--mint-soft);border-radius:999px;background:var(--mint);box-shadow:0 0 0 4px #4db6ac14}.milestone-header p{margin-bottom:4px;color:var(--mint-strong);font-size:.82rem;font-weight:900}.milestone-header h3{margin-bottom:0}.milestone-header .late{color:#d36a5d;background:#fff0ee}.task-stack{position:relative;display:grid;gap:10px;padding-left:30px}.task-card{display:grid;gap:12px;padding:15px;border:1px solid var(--line);border-radius:16px;background:#fff;box-shadow:0 2px 8px #1f232808;transition:transform .16s ease,opacity .16s ease,border-color .16s ease,box-shadow .16s ease}.task-card:hover{border-color:#4db6ac38;box-shadow:var(--shadow-lift)}.task-card.done{background:#fbfcfc;opacity:.72}.task-main{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;border:0;padding:0;color:var(--text);text-align:left;background:transparent}.task-copy{display:grid;gap:7px}.task-tag{width:fit-content;border-radius:999px;padding:4px 8px;color:var(--mint-strong);font-size:.7rem;font-weight:900;background:var(--mint-soft)}.chevron{flex:0 0 auto;color:var(--mint-strong);font-size:.78rem;font-weight:850}.task-detail{margin-bottom:0;padding:12px 0 0;border-top:1px solid var(--line);animation:reveal .18s ease both}.done-toggle{display:flex;align-items:center;gap:8px;width:fit-content;color:var(--muted);font-size:.88rem;font-weight:800}.done-toggle input{width:19px;height:19px;accent-color:var(--mint)}.share-card{position:relative;overflow:hidden;padding:22px;color:#fff;background:radial-gradient(circle at 92% 0%,rgba(255,255,255,.22),transparent 150px),linear-gradient(135deg,#4db6ac,#2f9e96);box-shadow:0 12px 28px #4db6ac3d}.share-card .eyebrow,.share-card p{color:#ffffffc2}.share-card h2{color:#fff}.share-badge{position:absolute;top:18px;right:18px;color:#fff;background:#ffffff2e}.progress-card,.next-card,.readonly-list{background:#fff}.progress-topline span{color:var(--muted);font-weight:800}.progress-topline strong{color:var(--text);font-size:2.24rem;letter-spacing:-.075em}.progress-track{overflow:hidden;height:12px;margin-top:12px;border-radius:999px;background:#edf2f3}.progress-track span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--mint),#63d1c7);transition:width .32s ease}.next-card>span{display:inline-block;margin-top:8px}.section-heading.compact{padding:0;margin-bottom:12px}.section-heading.compact h3{margin-bottom:0}.readonly-item{justify-content:flex-start;padding:12px 0;border-top:1px solid var(--line)}.readonly-item span{display:grid;place-items:center;width:26px;height:26px;border-radius:999px;color:#fff;font-weight:900;background:var(--mint)}.readonly-item p{margin-bottom:0;font-weight:800}.empty-state{margin-bottom:0}.floating-action{position:fixed;right:max(22px,calc((100vw - 480px)/2 + 24px));bottom:calc(94px + env(safe-area-inset-bottom));z-index:8;display:grid;place-items:center;width:58px;height:58px;border:0;border-radius:24px;color:#fff;font-size:1.24rem;font-weight:900;background:linear-gradient(135deg,var(--lavender),var(--sky) 48%,var(--mint));box-shadow:0 16px 34px #4db6ac4d;transition:transform .16s ease,opacity .16s ease,box-shadow .16s ease}.floating-action:hover{box-shadow:0 18px 38px #4db6ac5c}.bottom-tab-bar{position:fixed;left:50%;bottom:max(14px,env(safe-area-inset-bottom));z-index:7;display:grid;grid-template-columns:1fr 1fr;gap:8px;width:min(calc(100% - 28px),448px);padding:8px;border:1px solid rgba(255,255,255,.82);border-radius:24px;background:#ffffffe0;box-shadow:0 18px 44px #1f232824;-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);transform:translate(-50%)}.bottom-tab-bar button{display:grid;place-items:center;gap:4px;min-height:58px;border:0;border-radius:18px;color:var(--muted);font-size:.76rem;font-weight:850;background:transparent;transition:transform .15s ease,opacity .15s ease,color .15s ease,background .15s ease}.bottom-tab-bar button span{display:grid;place-items:center;width:24px;height:24px;border-radius:999px;color:inherit;font-size:1.02rem;line-height:1;background:#f4f7f8}.bottom-tab-bar .active{color:var(--mint-strong);background:var(--mint-soft)}.bottom-tab-bar .active span{color:#fff;background:var(--mint);box-shadow:0 8px 18px #4db6ac38}@keyframes floatIn{0%{opacity:0;transform:translateY(18px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes slideUp{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes reveal{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{transform:scale(1);opacity:.72}50%{transform:scale(1.16);opacity:1}}@media(min-width:760px){.app-shell,.onboarding{padding-top:46px}.onboarding{padding-bottom:46px}}
