@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Noto+Sans+KR:wght@400;500;600;700&display=swap";:root{font-family:DM Sans,Noto Sans KR,sans-serif;color:#252641;background:#f7f8fc;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-optical-sizing:auto;font-weight:400}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,input{font:inherit}button{cursor:pointer}.page-shell{position:relative;min-height:100vh;overflow:hidden;padding:0 28px 60px;background:radial-gradient(ellipse at 50% -12%,rgba(221,224,255,.48),transparent 50%),#f7f8fc}.ambient{position:absolute;pointer-events:none;border-radius:50%;filter:blur(1px)}.ambient-one{width:370px;height:370px;top:220px;left:-260px;background:radial-gradient(circle,rgba(181,188,255,.13),transparent 68%)}.ambient-two{width:450px;height:450px;right:-320px;top:350px;background:radial-gradient(circle,rgba(215,189,255,.13),transparent 67%)}.topbar{position:relative;z-index:1;max-width:1040px;height:80px;margin:0 auto;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:#262747;font-size:15px;font-weight:700;letter-spacing:-.04em}.brand-mark{display:grid;place-items:center;width:32px;height:32px;border-radius:11px;background:#6366e9;color:#fff;box-shadow:0 4px 10px #5353ce30}.local-badge{display:flex;align-items:center;gap:8px;border:1px solid #e8e9f2;background:#ffffffa8;border-radius:30px;padding:8px 12px;font-size:11px;color:#7e8097;letter-spacing:-.025em}.status-dot,.saved-dot{width:6px;height:6px;border-radius:50%;background:#6ac6a5;box-shadow:0 0 0 3px #6ac6a521}.workspace{position:relative;z-index:1;width:min(100%,620px);margin:40px auto 0}.hero{text-align:center;margin-bottom:28px}.eyebrow{display:flex;justify-content:center;align-items:center;gap:6px;color:#7779d7;font-size:10px;font-weight:700;letter-spacing:.15em}.eyebrow svg{color:#9a8cf3}.hero h1{margin:13px 0 5px;color:#252641;font-size:38px;line-height:1.3;font-weight:700;letter-spacing:-.075em}.hero h1 span{color:#6669df}.hero-subtitle{margin:0;color:#9698aa;font-size:13px;letter-spacing:-.035em}.date-line{margin:20px auto 0;display:flex;align-items:center;justify-content:center;gap:7px;color:#777a93;font-size:11px;font-weight:500;letter-spacing:-.02em}.date-dot{width:5px;height:5px;background:#898af0;border-radius:50%}.progress-card{position:relative;margin:0 0 16px;padding:21px 24px 17px;border:1px solid rgba(255,255,255,.9);border-radius:17px;background:linear-gradient(112deg,#fffffff0,#f9f9ffeb);box-shadow:0 7px 23px #2f316c0b,0 1px 3px #2a2c5d09;overflow:hidden}.progress-copy{display:flex;justify-content:space-between;align-items:center}.progress-copy>div:first-child{display:flex;flex-direction:column;gap:5px}.progress-label{font-size:12px;font-weight:700;color:#40415f}.progress-message{font-size:10.5px;color:#9a9bad;letter-spacing:-.025em}.progress-number{font-size:26px;font-weight:700;color:#686be1;letter-spacing:-.07em}.progress-number small{font-size:13px;margin-left:2px}.progress-track{height:6px;margin-top:16px;border-radius:9px;background:#eeeff8;overflow:hidden}.progress-fill{height:100%;border-radius:9px;background:linear-gradient(90deg,#8788f1,#6668de);transition:width .45s cubic-bezier(.2,.8,.2,1)}.progress-foot{display:flex;justify-content:space-between;margin-top:10px;color:#a0a1b2;font-size:10px}.progress-foot strong{color:#6568d9;font-weight:700}.progress-separator{padding:0 4px;color:#d4d4e1}.progress-sparkle{position:absolute;right:100px;top:23px;color:#d4d2fa}.todo-card{padding:23px 25px 0;border:1px solid #ececf4;border-radius:18px;background:#fffffff0;box-shadow:0 12px 35px #3133640f,0 2px 5px #31336406}.list-heading{display:flex;align-items:center;justify-content:space-between}.section-kicker{font-size:9px;font-weight:700;letter-spacing:.15em;color:#a1a2b5}.list-heading h2{display:flex;align-items:center;gap:8px;margin:5px 0 0;font-size:17px;font-weight:700;letter-spacing:-.06em;color:#2d2e4b}.count-pill{display:grid;place-items:center;min-width:20px;height:19px;padding:0 6px;border-radius:7px;background:#f0f0ff;color:#6b6ddd;font-family:DM Sans,sans-serif;font-size:10px;font-weight:700;letter-spacing:0}.heading-actions{display:flex;gap:5px}.icon-button{display:grid;place-items:center;width:32px;height:32px;border:1px solid transparent;border-radius:9px;background:transparent;color:#a3a4b5;transition:all .18s}.icon-button:hover,.icon-button.is-active{background:#f4f4ff;border-color:#ececff;color:#6b6ddd}.search-box{display:flex;align-items:center;gap:8px;height:39px;margin:15px 0 -3px;padding:0 11px;border:1px solid #eaeaF6;border-radius:10px;color:#999bb0}.search-box input{flex:1;min-width:0;border:0;outline:0;background:transparent;color:#43445d;font-size:11px}.search-box input::placeholder{color:#b4b5c3}.search-box button{display:grid;place-items:center;border:0;background:none;color:#a0a1b3}.add-form{display:flex;align-items:center;gap:10px;margin-top:18px;padding:6px 7px 6px 13px;min-height:49px;border:1px solid #e9eaf4;border-radius:12px;background:#fbfbfe;transition:border .2s,box-shadow .2s}.add-form:focus-within{border-color:#bdbefa;box-shadow:0 0 0 3px #6f70e114}.add-icon{display:grid;place-items:center;flex:none;color:#898be9}.add-form input{flex:1;width:0;border:0;outline:0;background:transparent;color:#353650;font-size:11px;letter-spacing:-.03em}.add-form input::placeholder{color:#b1b2c0}.add-button{display:flex;align-items:center;justify-content:center;gap:5px;min-width:78px;height:34px;padding:0 10px;border:0;border-radius:8px;background:#696be2;color:#fff;box-shadow:0 3px 7px #5759c82e;font-size:10px;font-weight:600;transition:background .2s,transform .2s}.add-button:hover{background:#595bd2;transform:translateY(-1px)}.filter-row{display:flex;align-items:center;gap:6px;height:53px;border-bottom:1px solid #f0f0f5}.filter-tab{display:flex;align-items:center;gap:6px;height:29px;padding:0 10px;border:0;border-radius:7px;background:transparent;color:#9b9cad;font-size:10px;font-weight:500;letter-spacing:-.025em;transition:all .18s}.filter-tab:hover{background:#f7f7fc;color:#6b6c87}.filter-tab.selected{background:#f0f0ff;color:#6769dc;font-weight:700}.filter-count{display:grid;place-items:center;min-width:15px;height:15px;padding:0 4px;border-radius:6px;background:#6d6edc1a;font-family:DM Sans,sans-serif;font-size:9px}.clear-button{display:flex;align-items:center;gap:4px;margin-left:auto;padding:5px 4px;border:0;background:none;color:#aaaaba;font-size:9px;transition:color .2s}.clear-button:hover{color:#d47783}.todo-list{min-height:120px}.todo-item{display:flex;align-items:center;gap:11px;min-height:57px;border-bottom:1px solid #f1f1f6;animation:item-in .25s both;animation-delay:calc(var(--item-index)*35ms)}@keyframes item-in{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}.check-button{display:grid;place-items:center;flex:none;width:23px;height:23px;padding:0;border:0;background:transparent;color:#d2d3df;transition:color .2s,transform .2s}.check-button:hover{color:#8a8be8;transform:scale(1.08)}.is-done .check-button{color:#7779e6}.todo-title{flex:1;color:#55566d;font-size:11.5px;letter-spacing:-.025em;transition:color .2s}.is-done .todo-title{color:#b4b4c1;text-decoration:line-through;text-decoration-color:#c7c7d3}.done-label{display:flex;align-items:center;gap:3px;padding:4px 7px;border-radius:6px;background:#f2f2ff;color:#8688dc;font-size:9px}.delete-button{display:grid;place-items:center;width:28px;height:28px;border:0;border-radius:7px;background:transparent;color:#c1c1ce;opacity:0;transition:all .18s}.todo-item:hover .delete-button,.delete-button:focus-visible{opacity:1}.delete-button:hover{background:#fff0f1;color:#d47d89}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:170px;color:#a1a2b2}.empty-icon{display:grid;place-items:center;width:42px;height:42px;margin-bottom:10px;border:1px solid #ededf8;border-radius:14px;background:#fafaff;color:#aaaaf0}.empty-state strong{font-size:11px;font-weight:600;color:#73748e}.empty-state>span{margin-top:5px;font-size:10px}.list-footer{display:flex;align-items:center;justify-content:space-between;height:43px;color:#a6a7b6;font-size:9px;letter-spacing:-.02em}.list-footer>span{display:flex;align-items:center;gap:6px}.footer-check{display:grid;place-items:center;width:15px;height:15px;border-radius:5px;background:#f0f0ff;color:#8587e8}.saved-dot{width:5px;height:5px;box-shadow:none}.privacy-note{margin:17px 0 0;text-align:center;color:#afb0be;font-size:9px;letter-spacing:-.015em}.privacy-note span{padding:0 4px;color:#d2d2dc}.toast{position:fixed;z-index:5;left:50%;bottom:28px;display:flex;align-items:center;gap:9px;transform:translate(-50%);padding:11px 16px;border:1px solid #ececf4;border-radius:11px;background:#fff;box-shadow:0 8px 25px #25264b1f;color:#55566f;font-size:11px;animation:toast-in .2s ease-out}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}.toast-mark{display:grid;place-items:center;width:19px;height:19px;border-radius:7px;background:#eff8f3;color:#54ae83}@media(max-width:600px){.page-shell{padding:0 16px 42px}.topbar{height:66px}.brand{font-size:14px}.brand-mark{width:30px;height:30px}.local-badge{padding:7px 9px;font-size:9px}.workspace{margin-top:35px}.hero{margin-bottom:24px}.hero h1{font-size:33px}.hero-subtitle{font-size:12px}.progress-card{padding:18px 18px 15px;border-radius:15px}.progress-sparkle{right:86px;top:21px}.todo-card{padding:20px 17px 0;border-radius:16px}.list-heading h2{font-size:16px}.add-form{gap:8px;padding-left:10px}.add-form input{font-size:10px}.add-button{min-width:35px;width:35px;padding:0}.add-button span{display:none}.filter-row{gap:3px}.filter-tab{padding:0 8px;font-size:9px}.clear-button{font-size:8px}.todo-item{gap:8px;min-height:54px}.todo-title{font-size:10.5px}.done-label{font-size:8px}.delete-button{opacity:1;width:25px;height:27px;color:#c1c1ce}.privacy-note{font-size:8px}}@media(max-width:380px){.local-badge{font-size:8px}.todo-card{padding-right:13px;padding-left:13px}.progress-card{padding-right:15px;padding-left:15px}.clear-button{gap:3px;font-size:7px}.filter-tab{padding:0 6px}.todo-title{font-size:10px}}
