@import url('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{color-scheme:dark;--bg:#0c1325;--surface:#182238;--line:#ffffff13;--text:#f1f1f7;--muted:#a6afc7;--accent:#c3b5fb;--accent-ink:#211c3d;font-family:'DM Sans','Noto Sans KR',sans-serif;font-size:16px}
*{box-sizing:border-box}body{margin:0;color:var(--text);background:radial-gradient(ellipse at 18% 20%,#202a4538,transparent 50%),radial-gradient(ellipse at 90% 75%,#44385d24,transparent 40%),#080e1b;line-height:1.65}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit;border:0;background:none;min-height:44px;transition:background .2s,transform .2s}button:hover{filter:brightness(1.12)}button:active{transform:translateY(1px)}button:disabled{opacity:.45;cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:4px}button svg,svg.icon{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}svg use{pointer-events:none}[hidden]{display:none!important}.svg-library{width:0;height:0;position:absolute}.app{max-width:520px;margin:auto;min-height:100dvh;background:linear-gradient(175deg,#20254144,transparent 500px),var(--bg);position:relative}.brandbar{padding:29px 24px 13px;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;gap:9px;color:var(--text);text-decoration:none;font-size:23px;letter-spacing:-1px;font-weight:500}.brand em{font-weight:400;color:var(--accent);font-style:normal}.brandmark{width:26px;height:32px;fill:none;stroke:var(--accent);stroke-width:1.4;stroke-linecap:round}.night-label{font-size:8px;letter-spacing:1.3px;max-width:99px;text-align:right;color:#8990ab;line-height:1.9}main{padding:0 24px 190px}.greeting{padding:30px 0 24px}.eyebrow{font-size:10px;font-weight:500;letter-spacing:2px;color:#b7b9d5}.greeting h1{font-size:27px;letter-spacing:-1.2px;font-weight:500;line-height:1.45;margin:8px 0}.greeting p{font-size:14px;margin:0;color:var(--muted)}h2{font-size:19px;font-weight:500;margin:0;letter-spacing:-.6px}p{margin:8px 0 16px}.hero{min-height:326px;border:1px solid #bbc4ed1a;border-radius:23px;position:relative;overflow:hidden;background:#182849}.flow-art{position:absolute;inset:0;overflow:hidden;background:radial-gradient(ellipse at 80% 15%,#aea3e539,transparent 37%),linear-gradient(165deg,#31486a 0%,#203950 45%,#15263d 64%,#202642 100%)}.glow{position:absolute;top:15%;left:57%;width:90px;height:90px;border-radius:50%;background:radial-gradient(circle at 40% 35%,#d7dbdf88,#a9d4e82b 45%,#b9bbde05 70%);box-shadow:0 0 70px #a4b7e229;filter:blur(1px)}.ripple{position:absolute;width:160%;height:60%;left:-30%;border-radius:50%;border-top:1px solid #b6d8e321;transform:rotate(-11deg);background:linear-gradient(180deg,#6a9cad0c,transparent 40%)}.r1{top:35%}.r2{top:42%;left:-10%;transform:rotate(12deg)}.r3{top:50%;left:-40%;transform:rotate(-18deg)}.hero:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#111c38dd,transparent 90%);pointer-events:none}.hero-top{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;padding:20px}.pill{padding:5px 10px;background:#dde7ff12;border:1px solid #dce4ff1a;border-radius:30px;font-size:12px;color:#dee5f7}.duration{display:flex;align-items:center;gap:6px;font-size:13px;color:#d4dded}.duration svg{height:15px;width:15px;fill:none;stroke:currentColor;stroke-width:1.5}.hero-copy{padding:27px 22px 22px;position:relative;z-index:1}.hero-copy .eyebrow{font-size:9px;color:#bfcfe1}.hero h2{font-size:29px;line-height:1.42;font-weight:400;letter-spacing:-1px;margin:10px 0}.hero p{font-size:13px;color:#c1cee1;margin:0 0 20px}.primary{display:inline-flex;justify-content:center;align-items:center;gap:9px;background:var(--accent);color:var(--accent-ink);padding:12px 21px;border-radius:13px;font-weight:600;font-size:15px;min-height:48px}.hero .primary{width:100%;background:#c7bdf5}.primary svg{width:18px;height:18px;fill:currentColor;stroke-width:0}.section{margin-top:29px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:17px}.section-heading h2{font-size:18px}.section-heading>span{font-size:11px;color:var(--muted)}fieldset{border:0;padding:0;margin:0;min-width:0}legend{font-size:14px;color:#c7ccdc;margin:0 0 12px;padding:0}.mood-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.mood-grid button{background:#171f33;border:1px solid transparent;border-radius:15px;display:flex;align-items:center;flex-direction:column;padding:9px 2px 12px;font-size:12px;color:#bbc2d5;gap:3px}.mood-symbol{font-family:serif;font-size:25px;line-height:33px;color:#a6afcb}.mood-grid button[aria-pressed=true]{border-color:#b6a6ed70;background:#a492e51b;color:#e0d7ff}.mood-grid button[aria-pressed=true] .mood-symbol{color:#d1c4fd}.setup-row{margin-top:23px;display:flex;gap:18px;align-items:start}.setup-row fieldset{flex:1}.segments{display:flex;background:#171f33;border-radius:11px;padding:4px;gap:2px}.segments button{min-height:40px;flex:1;font-size:14px;padding:4px 7px;border-radius:8px;color:#adb7d0}.segments button[aria-pressed=true]{background:#3c385b;color:#e4dbff}.wake-label{font-size:14px;color:#c7ccdc;flex:0 0 138px}.wake-label>span{font-size:11px;color:var(--muted);margin-left:7px}input[type=time]{display:block;width:100%;margin-top:11px;background:#171f33;border:1px solid var(--line);padding:9px 10px;border-radius:11px;height:48px;color:#d1d7e7}.muted{font-size:14px;color:var(--muted);line-height:1.7}#wake-hint:empty{display:none}.secondary{border:1px solid #aab5dc30;background:#ffffff03;border-radius:12px;font-size:14px;padding:10px 15px;color:#d7dced}.wide{width:100%}#routine-preview{margin-top:18px}.text-button{color:var(--accent);font-size:13px;padding:5px 2px}.track-teaser{padding:0;text-align:left;display:flex;align-items:center;gap:12px;width:100%}.small-art,.mini-art{background:radial-gradient(circle at 60% 30%,#b6c9e362,transparent 28%),linear-gradient(140deg,#314861,#272747 80%);border-radius:12px;flex-shrink:0;width:66px;height:70px;border:1px solid var(--line)}.track-copy{flex:1;min-width:0}.track-copy strong{font-size:14px;font-weight:500;display:block}.track-copy small{font-size:11px;color:var(--muted);display:block;margin-top:4px}.round-play{height:37px;width:37px;border:1px solid #b9c1df42;border-radius:50%;display:grid;place-items:center}.round-play svg{height:16px;width:16px}.closing-note{text-align:center;font-size:12px;color:#8993ad;line-height:1.9;margin-top:38px}.bottom-dock{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:min(100%,520px);z-index:10;padding:0 18px;background:linear-gradient(transparent,#0c1325 27%)}.bottom-nav{display:flex;justify-content:space-around;border-top:1px solid #9ca7ce1a;padding:9px 0 calc(10px + env(safe-area-inset-bottom));background:#0c1325eF;backdrop-filter:blur(20px)}.bottom-nav button{font-size:11px;display:flex;align-items:center;flex-direction:column;gap:4px;color:#8d97b3;min-width:80px;position:relative}.bottom-nav button svg{width:21px;height:21px}.bottom-nav button[aria-current]{color:var(--accent)}.bottom-nav button[aria-current]:before{content:'';position:absolute;top:-10px;width:25px;height:2px;background:var(--accent)}.mini-player{background:#252d46f5;display:flex;align-items:center;border-radius:14px;border:1px solid #bdc8e325;padding:8px;margin:0 0 12px;box-shadow:0 8px 30px #0003;gap:5px}.mini-open{flex:1;text-align:left;display:flex;gap:11px;align-items:center;min-width:0;padding:0}.mini-open strong{font-size:12px;font-weight:500;display:block}.mini-open small{font-size:11px;color:#b7bfd6;display:block}.mini-art{height:42px;width:42px;border-radius:9px}.icon-button{width:44px;height:44px;border-radius:50%;flex-shrink:0;display:inline-grid;place-items:center}.icon-button:hover{background:#ffffff0a}.sheet{background:linear-gradient(150deg,#242943,#111b2f 65%);color:var(--text);border:1px solid #b5b9d325;border-radius:26px;padding:22px;width:calc(100% - 24px);max-width:480px;max-height:calc(100dvh - 28px);overflow:auto;overscroll-behavior:contain;box-shadow:0 20px 100px #0007}.sheet::backdrop{background:#050b19bf;backdrop-filter:blur(7px)}.sheet-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:17px}.sheet-header .eyebrow{font-size:10px}.sheet h2{font-size:24px;line-height:1.5}.sheet p{font-size:14px}.player-art{height:225px;border-radius:20px;position:relative;overflow:hidden}.player-art .glow{width:130px;height:130px;left:45%;top:10%}.player-art>span{position:absolute;left:0;right:0;bottom:25px;text-align:center;font-family:Georgia,serif;font-size:21px;font-style:italic;color:#d4dcf4bb;letter-spacing:1px}.player-title{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:23px}.player-title h2{font-size:21px;overflow-wrap:anywhere}.player-title p{font-size:12px;color:var(--muted);margin:5px 0 0}.icon-button[aria-pressed=true]{color:var(--accent)}.icon-button[aria-pressed=true] svg{fill:#c3b5fb33}input[type=range]{width:100%;accent-color:var(--accent);height:24px;margin:0;cursor:pointer}.time-labels{display:flex;justify-content:space-between;color:#b4bfd5;font-size:12px}.transport{display:flex;justify-content:center;align-items:center;gap:31px;margin:18px 0 5px}.big-play{width:68px;height:68px;display:grid;place-items:center;border-radius:50%;background:#c9bdf7;color:#29203e}.big-play svg{width:28px;height:28px;stroke-width:2}.flip{transform:rotate(180deg)}.stop-button{display:block;margin:0 auto 8px;color:#b6bdd3}.player-options{border-top:1px solid var(--line);padding-top:15px}.player-options>label{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:14px;margin-bottom:14px}.player-options select{max-width:62%;width:auto;font-size:13px;padding:9px}.player-options p{font-size:12px}.volume-label span{color:var(--muted)}select,textarea{border:1px solid #9da8cb2b;background:#172137;color:#e2e5ee;border-radius:10px;padding:12px;width:100%;font-size:14px}textarea{resize:vertical;min-height:95px}#note-form label{display:block;margin:20px 0;font-size:14px}#note-form label select,#note-form textarea{margin-top:8px}.card{padding:20px;background:var(--surface);border:1px solid var(--line);border-radius:18px}.resume{width:100%;text-align:left;margin-top:15px;font-size:14px;color:#d7caff}.resume span{float:right}.routine-steps{list-style:none;padding:0;margin:24px 0}.routine-steps li{display:flex;gap:13px;align-items:center;padding:11px 0}.step-number{width:30px;height:30px;border:1px solid #aab8da30;display:grid;place-items:center;border-radius:50%;color:#d1c4ff;font-size:12px}.step-copy{flex:1}.step-copy strong{font-size:14px;font-weight:500;display:block}.step-copy small{font-size:12px;color:var(--muted)}.step-duration{font-size:13px;color:var(--muted)}.routine-music{padding:14px;background:#ffffff04;border:1px solid var(--line);border-radius:12px;margin:20px 0;font-size:14px}.routine-music select{margin-top:8px}.quiet-link{display:block;margin:8px auto}.session-stage{text-align:center;padding:22px 0}.stage-circle{height:175px;width:175px;margin:15px auto 30px;display:flex;flex-direction:column;justify-content:center;border-radius:50%;border:1px solid #a8bde346;box-shadow:0 0 0 18px #afc1f504,0 0 0 36px #afc1f503;background:radial-gradient(circle,#7c86b421,transparent 70%)}.stage-circle strong{font-size:35px;font-weight:400;font-variant-numeric:tabular-nums;letter-spacing:2px}.stage-circle span{font-size:12px;color:var(--muted)}.stage-prompt{min-height:100px;display:flex;align-items:center;justify-content:center;font-size:22px;line-height:1.7;white-space:pre-line;margin:20px 0}.stage-name{color:#c3b5fb;font-size:13px}.stage-progress{display:flex;gap:5px;margin:22px 0}.stage-progress span{height:3px;background:#ffffff14;flex:1;border-radius:3px}.stage-progress span.active{background:var(--accent)}.complete-mark{color:var(--accent);font-size:36px;line-height:80px;display:block}.complete-content{text-align:center;padding:15px 0 25px}.complete-content h2{margin-bottom:15px}.complete-content .primary{margin-top:20px}.music-card{background:#172239;border:1px solid var(--line);border-radius:22px;overflow:hidden}.music-cover{height:245px;position:relative;overflow:hidden}.music-cover .flow-art{background:radial-gradient(ellipse at 65% 30%,#97b4d53a,transparent 50%),linear-gradient(160deg,#304460,#182940 55%,#393657)}.cover-caption{position:absolute;bottom:23px;left:23px;line-height:1.2;font:italic 37px Georgia,serif;color:#d4ddee}.music-card-body{padding:18px 20px}.music-card-row{display:flex;align-items:center;gap:8px;justify-content:space-between}.music-card h2{font-size:19px}.music-card p{font-size:13px;color:var(--muted);margin:5px 0 13px}.music-actions{display:flex;gap:12px;align-items:center}.music-actions .primary{flex:1}.music-select{display:block;width:100%;text-align:left;padding:0}.track-selected{font-size:12px;color:#c6b9ff}.sound-note{text-align:center;margin:27px 0}.empty-state{text-align:center;padding:40px 15px}.empty-state>svg{height:36px;width:36px;stroke:var(--accent);fill:none;stroke-width:1}.empty-state h2{font-size:20px;margin:13px 0 8px}.empty-state p{color:var(--muted);font-size:14px}.empty-state button{margin-top:12px}.summary-card{background:linear-gradient(135deg,#333451,#202a40);margin-bottom:25px}.summary-card .eyebrow{font-size:10px}.summary-card h2{margin-top:10px;font-size:21px}.summary-card p{color:#c0c7db;font-size:14px}.session-card{padding:18px 0;border-bottom:1px solid var(--line)}.session-head{display:flex;justify-content:space-between;gap:8px;align-items:center}.session-head h3{font-size:15px;font-weight:500;margin:0}.status-pill{font-size:11px;color:#c6bee2;padding:2px 8px;background:#b4a2f012;border-radius:20px}.session-meta{font-size:13px;color:var(--muted);margin:7px 0}.note-content{font-size:14px;white-space:pre-wrap;overflow-wrap:anywhere;color:#cdd3e5}.session-actions{display:flex;gap:18px}.danger{color:#dd9da9}.settings{margin-top:30px;border-top:1px solid var(--line);padding-top:18px}.settings summary{font-size:14px;color:#c4ccdf;cursor:pointer;min-height:44px}.settings p{font-size:13px}.settings-actions{display:flex;flex-wrap:wrap;gap:10px}.confirm-actions{display:flex;gap:10px;margin-top:25px}.confirm-actions button{flex:1}.compact{max-width:390px}.toast{position:fixed;left:50%;bottom:175px;transform:translateX(-50%);background:#e3dcf6;color:#282039;padding:11px 17px;border-radius:12px;z-index:1000;max-width:calc(100% - 40px);width:max-content;font-size:14px;box-shadow:0 5px 40px #0006}.storage-banner{position:fixed;top:0;left:0;right:0;padding:12px;background:#59394b;color:white;z-index:2000;text-align:center;font-size:14px}.storage-banner button{text-decoration:underline;margin-left:12px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}body:has(dialog[open]){overflow:hidden}
@media(min-width:700px){.app{box-shadow:0 0 120px #05091480;border-left:1px solid #ffffff05;border-right:1px solid #ffffff05}.brandbar{padding-top:36px}main{padding-left:28px;padding-right:28px}.greeting{padding-top:32px}.hero{min-height:346px}.hero-copy{padding-top:42px}.sheet{padding:25px}.player-art{height:250px}}
@media(max-width:360px){.brandbar{padding:20px 18px 8px}.brand{font-size:21px}.night-label{display:none}main{padding-left:18px;padding-right:18px}.greeting{padding-top:22px}.greeting h1{font-size:24px}.hero-copy{padding:20px 17px}.hero h2{font-size:26px}.hero{min-height:310px}.hero-top{padding:16px}.section-heading>span{display:none}.setup-row{gap:10px}.wake-label{flex-basis:121px}.mood-grid{gap:5px}.sheet{padding:17px}.player-art{height:170px}.player-title h2{font-size:19px}.music-cover{height:210px}}
.toast{margin:0;inset:auto auto 175px 50%;border:0;line-height:1.6}.routine-music{display:block}.mood-grid button,.segments button,.bottom-nav button,.text-button,.hero p,.track-copy strong,.track-copy small,.mini-open strong,.player-options select{font-size:14px}.track-copy small{line-height:1.5}.bottom-nav button{gap:5px}.session-actions{flex-wrap:wrap;gap:4px 16px}.music-card-row h2{overflow-wrap:anywhere}.track-selected{flex-shrink:0}.resume span{float:none;display:block}.fine-print{text-align:center;margin-top:16px}.mini-open span:last-child{min-width:0}.mini-open strong{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.mini-open small{font-size:12px}.brandbar{gap:12px}#mini-player:has(.mini-open strong){min-height:62px}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
