:root{--ground:#f1ede4;--ground-panel:#eae3d3;--ground-panel-2:#e0d7c2;--ink:#2b2a25;--ink-soft:#5c5748;--ink-faint:#6e6858;--primary:#7d6047;--primary-soft:#a9906f;--accent:#6b4f37;--accent-soft:#e4d9c7;--line:#2b2a252e;--shadow:#2b2a2514;--danger:#a6503e;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}:root:not([data-theme=light]){--ground:#1c1a16;--ground-panel:#242019;--ground-panel-2:#2c2720;--ink:#ede7d9;--ink-soft:#b8af9c;--ink-faint:#8f866f;--primary:#c9a87c;--primary-soft:#a4855f;--accent:#d9b98a;--accent-soft:#3a2f22;--line:#ede7d929;--shadow:#00000073;--danger:#d98770}}:root[data-theme=dark]{--ground:#1c1a16;--ground-panel:#242019;--ground-panel-2:#2c2720;--ink:#ede7d9;--ink-soft:#b8af9c;--ink-faint:#8f866f;--primary:#c9a87c;--primary-soft:#a4855f;--accent:#d9b98a;--accent-soft:#3a2f22;--line:#ede7d929;--shadow:#00000073;--danger:#d98770}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--ground);color:var(--ink);-webkit-font-smoothing:antialiased;overscroll-behavior-y:none;margin:0;font-family:Karla,Segoe UI,system-ui,sans-serif;line-height:1.5}h1,h2,h3,h4{text-wrap:balance;color:var(--ink);margin:0;font-family:Fraunces,Georgia,serif;font-weight:600}p{color:var(--ink-soft);margin:0}button{cursor:pointer;font-family:inherit}button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}::selection{background:var(--accent-soft);color:var(--ink)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important}}.shell{background:var(--ground);flex-direction:column;max-width:480px;height:100dvh;margin:0 auto;display:flex;position:relative;overflow:hidden}@media (width>=481px){.shell{box-shadow:0 0 0 1px var(--line), 0 20px 50px var(--shadow)}}.screen{-webkit-overflow-scrolling:touch;flex:1;padding:2rem 1.5rem 6.5rem;animation:.4s cubic-bezier(.16,1,.3,1) both screen-in;overflow-y:auto}@keyframes screen-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes item-in{0%{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}.mood-btn,.session-row,.collection-card,.breathing-card,.sound-tile{animation:.5s cubic-bezier(.16,1,.3,1) both item-in;animation-delay:calc(var(--i,0) * 45ms)}.eyebrow{color:var(--ink-soft);margin-bottom:.5rem;font-family:Fraunces,Georgia,serif;font-size:.98rem;font-style:italic;font-weight:500;display:block}.screen-title{margin-bottom:.5rem;font-size:2.1rem;line-height:1.05}.screen-lead{max-width:38ch;margin-bottom:1.6rem;font-size:1rem;line-height:1.6}.stats-line{color:var(--ink-soft);flex-wrap:wrap;align-items:baseline;gap:.7rem;margin:-1rem 0 1.4rem;font-size:.85rem;font-weight:500;display:flex}.reset-link{color:var(--ink-faint);text-underline-offset:2px;background:0 0;border:none;padding:0;font-size:.78rem;font-weight:500;text-decoration:underline;transition:color .15s}.reset-link:hover{color:var(--ink-soft)}.streak-breadcrumb{color:var(--ink-soft);background:0 0;border:none;margin:-.8rem 0 1.4rem;padding:0;font-size:.85rem;font-weight:500;transition:color .15s;display:inline-block}.streak-breadcrumb:hover{color:var(--primary)}.daily-nudge{color:var(--ink-soft);justify-content:space-between;align-items:center;gap:.6rem;margin:-.8rem 0 1.4rem;font-size:.85rem;display:flex}.daily-nudge button{color:var(--ink-faint);background:0 0;border:none;padding:0;font-size:.8rem;line-height:1;transition:color .15s}.daily-nudge button:hover{color:var(--ink)}.practice-calendar{margin-bottom:1.8rem}.practice-grid{gap:6px;display:flex}.practice-weekdays,.practice-row{flex-direction:column;flex-shrink:0;gap:3px;display:flex}.practice-weekdays span{width:12px;height:12px;color:var(--ink-faint);align-items:center;font-size:.62rem;line-height:1;display:flex}.practice-weeks{flex-direction:row;gap:3px;display:flex}.practice-cell{background:var(--ground);border:1px solid var(--line);border-radius:2px;flex-shrink:0;width:12px;height:12px}.practice-cell.filled{background:var(--primary);border-color:var(--primary)}.practice-cell.today{box-shadow:inset 0 0 0 1.5px var(--ink)}.practice-cell.future{background:0 0;border-color:#0000}.daily-pick{border-top:1px solid var(--line);margin-top:2.4rem;padding-top:1.6rem}.daily-pick-row{justify-content:space-between;align-items:center;gap:.8rem;display:flex}.daily-pick-btn{text-align:left;color:var(--ink);background:0 0;border:none;padding:0;font-family:Fraunces,serif;font-size:1.15rem;transition:color .15s;display:block}.daily-pick-btn:hover{color:var(--primary)}.daily-pick-btn .dur{color:var(--ink-soft);font-family:Karla,sans-serif;font-size:.85rem}.splash{z-index:40;background:var(--ground);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:1rem;padding:2rem;animation:.6s fade-in;display:flex;position:absolute;inset:0}.splash .word,.splash .tag,.splash .enter{animation:.6s cubic-bezier(.16,1,.3,1) both item-in}.splash .word{animation-delay:.1s}.splash .tag{animation-delay:.22s}.splash .enter{animation-delay:.36s}.splash .word{letter-spacing:.01em;font-family:Fraunces,serif;font-size:3rem;font-weight:600}.splash .tag{color:var(--ink-soft);font-family:Fraunces,serif;font-size:1.05rem;font-style:italic}.splash .enter{border:1.5px solid var(--ink);color:var(--ink);letter-spacing:.02em;background:0 0;border-radius:4px;margin-top:1.5rem;padding:.8rem 2rem;font-size:.92rem;font-weight:600;transition:background-color .15s,color .15s,transform .15s}.splash .enter:hover{background:var(--ink);color:var(--ground)}.splash .enter:active{transform:scale(.97)}.breath-ring{border:1.5px solid var(--primary-soft);border-radius:50%;width:72px;height:72px;animation:4.5s ease-in-out infinite breathe,.6s cubic-bezier(.16,1,.3,1) both item-in}@keyframes breathe{0%,to{opacity:.6;transform:scale(.85)}50%{opacity:1;transform:scale(1.05)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.mood-list,.breathing-list,.sound-list,.collection-list{border-top:1px solid var(--line);flex-direction:column;display:flex}.mood-btn,.session-row,.collection-card,.breathing-card,.sound-tile{text-align:left;border:none;border-bottom:1px solid var(--line);width:100%;color:var(--ink);background:0 0;align-items:center;padding:1.15rem .1rem;transition:padding-left .2s,opacity .15s;display:flex}.mood-btn:hover,.session-row:hover,.collection-card:hover,.breathing-card:hover,.sound-tile:hover{padding-left:.5rem}.mood-btn:active,.session-row:active,.collection-card:active,.breathing-card:active,.sound-tile:active{opacity:.6}.mood-btn{gap:1rem;font-size:1.02rem}.mood-btn.selected{border-bottom-color:var(--primary);font-weight:700}.mood-emoji{font-size:1.3rem;line-height:1;transition:transform .2s}.mood-btn.selected .mood-emoji{transform:scale(1.12)}.recommend{border-left:3px solid var(--primary);margin-top:2rem;padding-left:1.1rem;animation:.4s fade-in}.recommend .cat{color:var(--ink-soft)}.recommend h3{margin:.3rem 0 .6rem;font-size:1.6rem}.recommend .blurb{max-width:40ch;margin-bottom:1.2rem;font-size:1rem;line-height:1.55}.recommend .meta-row{justify-content:space-between;align-items:center;display:flex}.alt-link{color:var(--ink-soft);text-underline-offset:3px;background:0 0;border:none;margin-top:1rem;padding:0;font-size:.85rem;font-weight:500;-webkit-text-decoration:underline #0000;text-decoration:underline #0000;transition:color .15s,text-decoration-color .15s;display:inline-block}.alt-link:hover{color:var(--ink);text-decoration-color:currentColor}.recommend .dur{color:var(--ink-soft);font-family:Karla,sans-serif;font-weight:600}.play-btn{background:var(--primary);color:var(--ground);border:none;border-radius:4px;align-items:center;gap:.5rem;padding:.65rem 1.25rem;font-size:.92rem;font-weight:600;transition:filter .15s,transform .15s;display:inline-flex}.play-btn:hover{filter:brightness(1.1)}.play-btn:active{transform:scale(.97)}.session-row{justify-content:space-between;gap:1rem}.row-play{text-align:left;min-width:0;color:inherit;font:inherit;background:0 0;border:none;flex-direction:column;flex:1;padding:0;display:flex}.session-row .title{color:var(--ink);font-size:1rem;font-weight:600}.session-row .blurb{color:var(--ink-faint);margin-top:.2rem;font-size:.86rem}.row-end{flex-shrink:0;align-items:center;gap:.8rem;display:flex}.session-row .dur{font-variant-numeric:tabular-nums;color:var(--ink-soft);font-size:.82rem;font-weight:600}.favorite-btn{color:var(--ink-faint);background:0 0;border:none;padding:0;font-size:1.1rem;line-height:1;transition:color .15s,transform .15s}.favorite-btn:hover{color:var(--primary)}.favorite-btn:active{transform:scale(.9)}.favorite-btn[aria-pressed=true]{color:var(--primary)}.collection-card{padding:1.35rem .1rem;display:block}.collection-card.library{font-style:normal}.collection-card.flagship{border-left:3px solid var(--accent);padding-left:1rem}.collection-card h3{margin-bottom:.35rem;font-size:1.25rem}.collection-card p{color:var(--ink-soft);font-size:.9rem}.collection-card .count{color:var(--ink-faint);margin-top:.6rem;font-family:Fraunces,serif;font-size:.85rem;font-style:italic;display:inline-block}.category-group,.section-group{margin-bottom:.4rem}.category-heading,.section-heading{margin-top:1.6rem}.category-group:first-child .category-heading,.section-group:first-child .section-heading{margin-top:0}.hit-area,.hit-area-tight{position:relative}.hit-area:before{content:"";position:absolute;inset:-10px}.hit-area-tight:before{content:"";position:absolute;inset:-6px}.back-link{color:var(--ink-soft);background:0 0;border:none;align-items:center;gap:.35rem;margin-bottom:1.2rem;padding:0;font-size:.88rem;transition:color .15s;display:inline-flex}.back-link:hover{color:var(--ink)}.breathing-card{display:block}.breathing-card h3{margin-bottom:.3rem;font-size:1.05rem}.breathing-card p{color:var(--ink-soft);font-size:.86rem}.breath-stage{flex-direction:column;align-items:center;gap:1.6rem;padding-top:1.5rem;display:flex}.breath-orb-wrap{justify-content:center;align-items:center;width:220px;height:220px;display:flex}.breath-orb{background:radial-gradient(circle at 35% 30%, var(--accent-soft), var(--primary) 75%);box-shadow:0 0 30px var(--shadow);border-radius:50%;justify-content:center;align-items:center;transition-property:width,height,box-shadow;transition-timing-function:ease-in-out;display:flex}.breath-orb span{color:var(--ground);text-align:center;font-family:Fraunces,serif;font-size:1.05rem;font-weight:600}.breath-meta{font-variant-numeric:tabular-nums;color:var(--ink-faint);gap:1rem;font-size:.8rem;display:flex}.breath-controls{gap:.8rem;display:flex}.breath-done{color:var(--ink-faint);font-family:Fraunces,serif;font-size:.85rem;font-style:italic}.ghost-btn{border:1px solid var(--ink);color:var(--ink);background:0 0;border-radius:4px;padding:.6rem 1.3rem;font-size:.88rem;font-weight:500;transition:background-color .15s,color .15s,transform .15s}.ghost-btn:hover{background:var(--ink);color:var(--ground)}.ghost-btn:active{transform:scale(.97)}.ghost-btn:disabled{opacity:.4;cursor:default}.ghost-btn:disabled:hover{color:var(--ink);background:0 0}.data-io{border-top:1px solid var(--line);flex-direction:column;align-items:flex-start;gap:.7rem;margin-top:2rem;padding-top:1.6rem;display:flex}.io-textarea{resize:vertical;background:var(--ground);border:1px solid var(--line);width:100%;min-height:5.5rem;color:var(--ink-soft);border-radius:4px;padding:.7rem .8rem;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.76rem}.io-textarea:focus{outline:1.5px solid var(--ink)}.io-message{color:var(--ink-faint);font-size:.82rem}.io-message.io-error{color:var(--danger)}.sound-tile{justify-content:space-between;gap:1rem}.sound-tile .left{align-items:center;gap:.85rem;display:flex}.sound-tile .icon{font-size:1.3rem}.sound-tile .name{font-size:1rem;font-weight:600}.sound-tile.active .name{color:var(--primary)}.sound-tile .state{color:var(--ink-faint);font-variant-numeric:tabular-nums;align-items:center;gap:.5rem;font-size:.8rem;display:flex}.eq{align-items:flex-end;gap:2px;height:10px;display:inline-flex}.eq span{background:var(--primary);border-radius:1px;width:3px;animation:.9s ease-in-out infinite eq-bounce}.eq span:first-child{animation-delay:0s}.eq span:nth-child(2){animation-delay:.15s}.eq span:nth-child(3){animation-delay:.3s}@keyframes eq-bounce{0%,to{height:3px}50%{height:10px}}.timer-heading{margin-top:2rem}.timer-chips{flex-wrap:wrap;gap:1.3rem;display:flex}.timer-chip{color:var(--ink-faint);background:0 0;border:none;border-bottom:2px solid #0000;padding:0 0 .2rem;font-size:.92rem;transition:color .15s,border-color .15s}.timer-chip:hover{color:var(--ink-soft)}.timer-chip.active{color:var(--ink);border-bottom-color:var(--primary);font-weight:600}.tabbar{background:var(--ground);border-top:1px solid var(--line);padding:.7rem .5rem calc(.6rem + env(safe-area-inset-bottom));z-index:20;display:flex;position:absolute;bottom:0;left:0;right:0}.tab-indicator{background:var(--primary);width:calc(25% - .25rem);height:2px;transition:transform .3s cubic-bezier(.16,1,.3,1);position:absolute;top:-1px;left:.5rem}.tab-btn{color:var(--ink-faint);background:0 0;border:none;flex:1;justify-content:center;align-items:center;padding:.35rem 0;font-family:Fraunces,serif;font-size:.9rem;font-style:italic;transition:color .15s;display:flex}.tab-btn:hover{color:var(--ink-soft)}.tab-btn.active{color:var(--ink);font-style:normal;font-weight:600}.mini-player{left:0;right:0;bottom:calc(3.6rem + env(safe-area-inset-bottom));z-index:25;background:var(--ground);border-top:1px solid var(--line);align-items:center;gap:.9rem;padding:.75rem 1.15rem;display:flex;position:absolute}.mini-player button{color:inherit;background:0 0;border:none}.mini-player .info{text-align:left;min-width:0;color:inherit;background:0 0;border:none;flex:1}.mini-player .title{color:var(--ink);white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:.45rem;font-size:.9rem;font-weight:600;display:flex;overflow:hidden}.mini-player .pulse-dot{background:var(--primary);border-radius:50%;flex-shrink:0;width:6px;height:6px;animation:1.6s ease-in-out infinite pulse-dot}@keyframes pulse-dot{0%,to{opacity:.4;transform:scale(.85)}50%{opacity:1;transform:scale(1.15)}}.mini-player .time{color:var(--ink-faint);font-variant-numeric:tabular-nums;font-size:.76rem}.mini-player .toggle{color:var(--ink);font-size:1.05rem;transition:transform .15s}.mini-player .toggle:active{transform:scale(.9)}.player-screen{z-index:30;background:var(--ground);flex-direction:column;animation:.28s slide-up;display:flex;position:absolute;inset:0}.player-backdrop{z-index:-1;pointer-events:none;background:#14110d;position:absolute;inset:0;overflow:hidden}.scenery{width:100%;height:100%;display:block}.player-backdrop:after{content:"";pointer-events:none;background:radial-gradient(70% 55% at 50% 47%,#00000080,#0000004d 55%,#0000009e 100%);position:absolute;inset:0}.immersive{--ink:#f4efe6;--ink-soft:#cbc0ae;--ink-faint:#9a8f7e;--primary:#e8d9bf;--primary-soft:#b8a887;--ground:#14110d;--line:#f4efe62e;--ground-panel-2:#f4efe629;color:var(--ink);background:#14110d}.immersive .player-body>div,.immersive .ring-center,.immersive .finished-panel,.immersive .breath-stage,.immersive .eyebrow,.immersive .back-link{text-shadow:0 1px 12px #00000080}.immersive .transport .big-toggle{color:#14110d;background:#f4efe6f2}.immersive .ghost-btn{border-color:var(--ink-soft);color:var(--ink)}.immersive .ghost-btn:hover{background:var(--ink);color:#14110d}.breath-screen{position:relative}.breath-screen .breath-orb{border-color:#f4efe68c}@keyframes slide-up{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.player-top{justify-content:space-between;align-items:center;padding:1.1rem 1.25rem 0;display:flex}.player-top button{color:var(--ink-soft);background:0 0;border:none;font-size:.85rem;transition:color .15s}.player-top button:hover{color:var(--ink)}.player-body{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:1.6rem;padding:1rem 2rem 3rem;display:flex}.player-body .cat{color:var(--ink-soft)}.player-body h2{font-size:1.7rem}.player-body .blurb{color:var(--ink-soft);max-width:32ch;font-size:.95rem}.ring-wrap{width:220px;height:220px;position:relative}.ring-wrap:before{content:"";background:radial-gradient(circle, var(--accent-soft), transparent 70%);opacity:.4;z-index:-1;border-radius:50%;animation:4.5s ease-in-out infinite paused halo-pulse;position:absolute;inset:-18px}.ring-wrap.playing:before{animation-play-state:running}@keyframes halo-pulse{0%,to{opacity:.3;transform:scale(.9)}50%{opacity:.55;transform:scale(1.08)}}.ring-wrap svg{transform:rotate(-90deg)}.ring-track{fill:none;stroke:var(--ground-panel-2);stroke-width:8px}.ring-progress{fill:none;stroke:var(--primary);stroke-width:8px;stroke-linecap:round;transition:stroke-dashoffset 1s linear}.ring-center{flex-direction:column;justify-content:center;align-items:center;gap:.2rem;display:flex;position:absolute;inset:0}.ring-center .clock{font-variant-numeric:tabular-nums;font-family:Fraunces,serif;font-size:1.7rem;font-weight:600}.ring-center .status{color:var(--ink-faint);font-family:Fraunces,serif;font-size:.78rem;font-style:italic}.transport{align-items:center;gap:1.3rem;display:flex}.transport .big-toggle{background:var(--primary);width:68px;height:68px;color:var(--ground);box-shadow:0 4px 14px var(--shadow);border:none;border-radius:50%;justify-content:center;align-items:center;font-size:1.4rem;transition:filter .15s,transform .15s;display:flex}.transport .big-toggle:hover{filter:brightness(1.1)}.transport .big-toggle:active{transform:scale(.96)}.transport .stop-btn{border:1px solid var(--line);width:44px;height:44px;color:var(--ink-soft);background:0 0;border-radius:50%;justify-content:center;align-items:center;font-size:1.05rem;transition:border-color .15s,color .15s,transform .15s;display:flex}.transport .stop-btn:hover{border-color:var(--danger);color:var(--danger)}.transport .stop-btn:active{transform:scale(.94)}.placeholder-note{color:var(--ink-faint);font-family:Fraunces,serif;font-size:.85rem;font-style:italic}.finished-panel{text-align:center;flex-direction:column;align-items:center;gap:.9rem;animation:.6s cubic-bezier(.16,1,.3,1) both finish-in;display:flex}@keyframes finish-in{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:none}}.error-screen{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:.9rem;padding:2rem;display:flex}.error-screen .screen-lead{max-width:36ch}
