/* Small vector hearts; no bitmap downloads or background animation. */
body{position:relative;isolation:isolate}
body,:root[data-theme="dark"] body,:root[data-theme="light"] body{background:radial-gradient(ellipse at 100% 0,rgba(221,129,172,.12),transparent 36rem),radial-gradient(ellipse at 0 60%,rgba(140,119,215,.06),transparent 32rem),var(--bg)}
.heart-backdrop{position:fixed;inset:0;z-index:0;pointer-events:none;background:url('hearts-68.svg') 6px 12px/220px 200px repeat;opacity:.5}
.app-shell{position:relative;z-index:1}
body.login-page,:root[data-theme] body.login-page{background:radial-gradient(ellipse at 50% 30%,#2a1428 0,#100c16 55%,#08080e 100%)}
.login-page:before,.login-page:after{display:none}
.login-page .heart-backdrop{opacity:.65;background-size:220px 200px}
.login-page .auth-screen{background:rgba(22,13,26,.25);border-color:rgba(245,193,217,.2)}
.tabbar .tab{min-width:0;flex:1;font-size:9px}
.tabbar .tab-icon svg{width:23px;height:23px;display:block}
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
[hidden]{display:none!important}
.sleep-shortcut{display:flex;align-items:center;gap:14px;text-decoration:none;color:var(--text);border:1px solid rgba(173,132,201,.25);border-radius:24px;padding:17px 18px;margin:16px 0;background:linear-gradient(120deg,color-mix(in srgb,var(--card) 95%,#bca3dd),color-mix(in srgb,var(--card) 95%,#efb0c6));box-shadow:0 8px 26px rgba(124,72,124,.05)}
.sleep-shortcut-icon{width:48px;height:48px;flex:0 0 auto;border-radius:17px;background:linear-gradient(135deg,#d1b0e6,#9f8ae1);display:grid;place-items:center;color:#fff}
.sleep-shortcut-icon svg{width:27px;height:27px}.sleep-shortcut b,.sleep-shortcut small{display:block}.sleep-shortcut b{font-size:17px}.sleep-shortcut small{color:var(--secondary);font-size:12px;margin-top:4px}.sleep-shortcut>i{font-size:25px;font-style:normal;color:#b796cd;margin-left:auto}
.sleep-page{--sleep-accent:#ab82cc;--sleep-ink:#56336f}
.sleep-header{align-items:center;margin-bottom:6px}.sleep-header h1{font-size:clamp(30px,8vw,40px);margin-bottom:7px}.sleep-subtitle{font-size:14px;color:var(--secondary);margin:0;line-height:1.5}.sleep-header-heart{color:#cf7eaa;flex:0 0 auto;margin-left:8px}.sleep-header-heart svg{width:33px;height:33px;transform:rotate(12deg)}
.sleep-experience{max-width:600px;margin:auto}.sleep-scene{position:relative;height:215px;display:grid;place-items:center;isolation:isolate}.sleep-halo{position:absolute;width:210px;height:210px;border-radius:50%;background:radial-gradient(circle,rgba(198,156,221,.28),rgba(198,156,221,.07) 58%,transparent 72%)}.sleep-moon{width:105px;height:105px;border-radius:50%;display:grid;place-items:center;color:#dcc6ee;transform:rotate(-12deg);filter:drop-shadow(0 10px 28px rgba(143,99,180,.22))}.sleep-moon svg{width:100%;height:100%;stroke-width:.75;fill:color-mix(in srgb,var(--card) 65%,#c6abdc)}.sleep-star{position:absolute;color:#bc9fd3;font-size:20px}.star-one{left:calc(50% - 105px);top:48px;font-size:15px}.star-two{left:calc(50% + 76px);top:45px;font-size:27px}.star-three{left:calc(50% - 70px);top:156px;font-size:11px}.sleep-scene-heart{position:absolute;left:calc(50% + 63px);top:148px;color:#d28eaf;transform:rotate(12deg)}.sleep-scene-heart svg{width:22px;height:22px}.sleep-orbit{position:absolute;width:202px;height:75px;border:1px solid rgba(185,151,208,.17);border-radius:50%;transform:rotate(-26deg);top:85px;z-index:-1}
.sleep-now{text-align:center}.sleep-now .eyebrow{color:var(--sleep-accent);font-size:10px;letter-spacing:.17em}.sleep-now h2{font-size:28px;line-height:1.2;margin-bottom:8px}.sleep-now>p:last-child{color:var(--secondary);font-size:13px;line-height:1.5;margin-bottom:8px}
.sleep-equalizer{height:24px;display:flex;justify-content:center;align-items:center;gap:4px;margin:9px 0}.sleep-equalizer i{width:3px;height:5px;border-radius:4px;background:#b497d0;animation:sleep-wave 1.4s ease-in-out infinite alternate;animation-play-state:paused}.sleep-equalizer i:nth-child(2n){height:15px;animation-delay:-.9s}.sleep-equalizer i:nth-child(3n){height:21px;animation-delay:-.4s}.is-playing .sleep-equalizer i{animation-play-state:running}.is-playing .sleep-moon{animation:sleep-breathe 7s ease-in-out infinite}.sleep-custom-controls{display:none}.is-ready .sleep-custom-controls{display:block}.sleep-experience>audio{display:block;width:100%;margin:15px 0}.is-ready>audio{display:none}
.sleep-playback{display:flex;align-items:center;justify-content:center;gap:31px;margin:15px 0 13px}.sleep-play,.sleep-skip{display:grid;place-items:center;border:0;cursor:pointer;-webkit-tap-highlight-color:transparent}.sleep-play{height:76px;width:76px;border-radius:50%;background:linear-gradient(140deg,#c29ade,#9479cb);color:white;box-shadow:0 10px 30px rgba(151,109,188,.25);transition:transform .2s}.sleep-play:active{transform:scale(.94)}.sleep-play span{display:grid;place-items:center}.sleep-play svg{width:31px;height:31px}.sleep-skip{width:46px;height:46px;background:transparent;color:var(--text);opacity:.65}.sleep-skip svg{width:25px;height:25px}.sleep-play:focus-visible,.sleep-skip:focus-visible,.sleep-track:focus-visible,.sleep-timer button:focus-visible{outline:3px solid #bd8fd6;outline-offset:4px}.sleep-status{text-align:center;font-size:12px;color:var(--secondary);min-height:18px;line-height:1.4;margin:0 0 21px}
.sleep-timeline{padding:0 10px;margin-bottom:26px}.sleep-timeline>div{display:flex;justify-content:space-between;gap:10px;font-size:11px;font-variant-numeric:tabular-nums;color:var(--secondary);margin-top:4px}.sleep-timeline input,.sleep-volume input{width:100%;margin:0;accent-color:#ab82cc;cursor:pointer;height:20px}.sleep-timeline input:disabled{cursor:default;opacity:.5}
.sleep-timer{border:0;padding:0;margin:0 0 20px;min-width:0}.sleep-timer legend{display:flex;align-items:center;gap:7px;font-weight:650;font-size:13px;margin-bottom:12px;width:100%;justify-content:center}.sleep-timer legend svg{width:17px;height:17px;color:var(--sleep-accent)}.sleep-timer-options{display:flex;flex-wrap:wrap;justify-content:center;gap:6px}.sleep-timer button{border:1px solid var(--line);background:var(--card);color:var(--secondary);font-family:inherit;font-size:12px;border-radius:12px;min-height:42px;padding:0 12px;cursor:pointer;white-space:nowrap}.sleep-timer button[aria-pressed="true"]{background:#ab82cc;border-color:#ab82cc;color:white;font-weight:650}.sleep-timer>p{text-align:center;color:var(--secondary);font-size:11px;margin:12px 0 0;line-height:1.4}.sleep-volume{display:flex;gap:10px;align-items:center;margin:0 auto 25px;max-width:300px;color:var(--secondary)}.sleep-volume>svg{width:19px;height:19px;flex-shrink:0}.sleep-volume output{font-size:11px;min-width:29px;text-align:right}.sleep-device-volume{text-align:center;font-size:11px;color:var(--secondary);margin:0 0 24px}
.sleep-library-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:30px;margin-bottom:13px}.sleep-library-head h2{font-size:19px;margin:0}.sleep-library-head>span{font-size:11px;color:var(--secondary)}.sleep-track-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.sleep-track{position:relative;text-align:left;font:inherit;color:var(--text);background:var(--card);border:1px solid var(--line);border-radius:22px;padding:17px 14px;cursor:pointer;display:flex;flex-direction:column;align-items:flex-start;gap:12px;min-width:0;transition:border-color .2s,background .2s}.sleep-track[aria-pressed="true"]{border-color:#b492cf;background:color-mix(in srgb,var(--card) 92%,#b98bd2);box-shadow:0 6px 20px rgba(149,105,178,.08)}.sleep-track-icon{width:43px;height:43px;display:grid;place-items:center;border-radius:15px;background:rgba(171,130,204,.13);color:#a780c7}.sleep-track-icon svg{width:25px;height:25px}.sleep-track.blue .sleep-track-icon{background:rgba(107,161,212,.13);color:#6ba1d4}.sleep-track.teal .sleep-track-icon{background:rgba(100,168,163,.13);color:#64a8a3}.sleep-track.rose .sleep-track-icon{background:rgba(207,131,165,.13);color:#cf83a5}.sleep-track b{font-size:14px;display:block;margin-bottom:5px}.sleep-track small{display:block;font-size:11px;line-height:1.5;color:var(--secondary)}.sleep-track-check{position:absolute;right:13px;top:14px;width:19px;height:19px;display:grid;place-items:center;border-radius:50%;color:white;background:#ab82cc;font-size:11px;opacity:0}.sleep-track[aria-pressed="true"] .sleep-track-check{opacity:1}
.sleep-categories{display:flex;gap:5px;padding:5px;border-radius:16px;background:rgba(118,118,128,.1);margin:0 0 16px}.sleep-categories button{flex:1;border:0;border-radius:12px;padding:11px 5px;min-height:44px;font:inherit;font-size:12px;color:var(--secondary);background:transparent;cursor:pointer}.sleep-categories button[aria-pressed="true"]{color:var(--text);background:var(--card);box-shadow:0 2px 8px rgba(0,0,0,.06);font-weight:650}.sleep-categories span{margin-left:4px;font-size:10px;opacity:.65}.sleep-categories button:focus-visible{outline:3px solid #bd8fd6;outline-offset:2px}
.sleep-iphone-note{display:flex;gap:9px;font-size:11px;line-height:1.65;color:var(--secondary);padding:18px 6px 0;margin-bottom:0}.sleep-iphone-note>svg{width:16px;height:16px;flex-shrink:0;margin-top:1px;color:#b497d0}.sleep-signoff{text-align:center;font-size:13px;color:var(--secondary);margin:24px 0 8px}.sleep-signoff span{color:#cf83a5;font-size:20px;vertical-align:-2px;margin-left:3px}
@keyframes sleep-wave{to{height:4px;opacity:.45}}@keyframes sleep-breathe{50%{transform:rotate(-9deg) scale(1.045)}}
@media(min-width:600px){.sleep-scene{height:235px}.sleep-track{padding:20px}.sleep-track b{font-size:16px}.sleep-track small{font-size:12px}.sleep-timer button{padding:0 17px}}
@media(max-width:360px){.sleep-track{padding:15px 12px}.sleep-timer button{padding:0 9px;font-size:11px}.tabbar .tab{font-size:8px}.sleep-header h1{font-size:28px}.sleep-scene{height:195px}}
@media(prefers-reduced-motion:reduce){.sleep-equalizer i,.is-playing .sleep-moon{animation:none}.sleep-track,.sleep-play{transition:none}}
.menu-mode-card{background:var(--card);border:1px solid rgba(139,126,208,.25);border-radius:25px;padding:20px;margin:22px 0;scroll-margin-top:20px;box-shadow:var(--shadow)}.menu-mode-head{display:flex;gap:12px;align-items:center;margin-bottom:14px}.menu-mode-icon{width:46px;height:46px;flex-shrink:0;border-radius:16px;background:linear-gradient(140deg,#b6a1e3,#8a80cc);color:white;display:grid;place-items:center;font-size:20px;font-weight:750}.menu-mode-head .eyebrow{font-size:9px;margin-bottom:4px}.menu-mode-head h2{font-size:21px;margin:0}.menu-mode-lock{margin-left:auto;color:var(--secondary);font-size:10px;white-space:nowrap}.menu-mode-card>p{font-size:14px;line-height:1.6;color:var(--secondary);margin-bottom:14px}.menu-mode-card .menu-mode-note{font-size:12px;line-height:1.6;color:var(--secondary)}.menu-mode-card.locked{border-color:rgba(52,199,89,.28)}.menu-mode-card.locked .menu-mode-icon{background:linear-gradient(140deg,#71bc9a,#34a977)}.menu-mode-confirm{display:flex;align-items:flex-start;gap:10px;border-radius:15px;background:rgba(139,126,208,.08);padding:13px;margin:16px 0;font-size:12px;line-height:1.5}.menu-mode-confirm input{width:20px;height:20px;flex-shrink:0;accent-color:var(--blue);margin:1px 0 0}.menu-mode-card form{margin:0}.menu-mode-card>.secondary-button{display:flex;justify-content:center;text-align:center;min-height:44px}.menu-pair-banner{display:flex;align-items:center;gap:12px;padding:13px 16px;border-radius:18px;border:1px solid rgba(139,126,208,.24);background:rgba(139,126,208,.1);margin:0 0 14px}.menu-pair-banner>span{font-size:21px;font-weight:750;color:#a38bd0}.menu-pair-banner b,.menu-pair-banner small{display:block}.menu-pair-banner b{font-size:13px}.menu-pair-banner small{font-size:11px;line-height:1.5;color:var(--secondary);margin-top:3px}
.sleep-intro-open{overflow:hidden}.sleep-welcome{position:fixed;inset:0;z-index:160;display:grid;place-items:center;padding:calc(22px + env(safe-area-inset-top)) 18px calc(22px + env(safe-area-inset-bottom))}.sleep-welcome-backdrop{position:absolute;inset:0;background:rgba(15,9,22,.62);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}.sleep-welcome-card{position:relative;width:min(100%,420px);max-height:100%;overflow:auto;border:1px solid rgba(186,151,210,.3);border-radius:32px;background:var(--card);padding:30px 25px 24px;text-align:center;box-shadow:0 24px 80px rgba(20,8,35,.28)}.sleep-welcome-icon{position:relative;width:82px;height:82px;border-radius:27px;display:grid;place-items:center;margin:0 auto 22px;color:#fff;background:linear-gradient(145deg,#cfa7e4,#997bc9);box-shadow:0 10px 28px rgba(158,119,189,.22)}.sleep-welcome-icon>svg{width:45px;height:45px;transform:rotate(-10deg)}.sleep-welcome-icon>span{position:absolute;right:8px;bottom:5px;color:#ffe1ee;font-size:22px}.sleep-welcome-card>.eyebrow{color:#ad86c8;font-size:10px;letter-spacing:.13em}.sleep-welcome-card h2{font-size:29px;line-height:1.12;letter-spacing:-.035em;margin-bottom:14px}.sleep-welcome-card>p:not(.eyebrow){font-size:14px;line-height:1.6;color:var(--secondary);margin-bottom:20px}.sleep-welcome-card ul{list-style:none;padding:0;margin:0 0 23px;display:grid;gap:14px;text-align:left}.sleep-welcome-card li{display:flex;gap:10px;align-items:center;font-size:12px;line-height:1.5;color:var(--text)}.sleep-welcome-card li svg{width:22px;height:22px;flex-shrink:0;color:#ad86c8}.sleep-welcome-button{display:flex;align-items:center;justify-content:center;width:100%;min-height:52px;border-radius:17px;background:linear-gradient(130deg,#bd95d6,#9a7acb);color:white;text-decoration:none;font-weight:700;font-size:16px}.sleep-welcome-button:focus-visible{outline:3px solid #b086d0;outline-offset:4px}.sleep-welcome-card>small{display:block;margin-top:14px;color:var(--secondary);font-size:10px;line-height:1.5}@media(max-width:360px){.sleep-welcome-card{padding:25px 21px 22px}.sleep-welcome-card h2{font-size:26px}.sleep-welcome-icon{width:68px;height:68px;margin-bottom:18px}}
