:root{font-family:Manrope,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#293e38;background:#f8f6f2;font-weight:400;line-height:1.5;font-synthesis:none;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;--rose: #b95067;--dark: #293e38;--muted: #7e827a;--border: #e9e7e0}*{box-sizing:border-box}body{margin:0}button,input,a{-webkit-tap-highlight-color:transparent}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:default}a{color:inherit;text-decoration:none}button{color:inherit}button:focus-visible,a:focus-visible{outline:3px solid #b9506780;outline-offset:5px}input:focus{outline:2px solid #b9506750;border-color:var(--rose)}h1,h2,h3,p{margin:0}button svg{flex-shrink:0}button{transition:background .2s,transform .2s,opacity .2s}button:disabled{opacity:.55}.site-shell{display:grid;grid-template-columns:45% 55%;min-height:100dvh}.story-panel{position:relative;padding:46px 55px 30px;background:#eceee5;display:flex;flex-direction:column;overflow:hidden;min-height:100dvh}.wordmark{display:flex;align-items:center;gap:10px;font-size:25px;letter-spacing:-1.5px;font-weight:800;align-self:flex-start}.brand-symbol{height:31px;width:31px;border:1.5px solid #adbdac;border-radius:50%;display:grid;place-items:center;color:#506a54}.brand-symbol svg{width:17px}.brand-dot{color:var(--rose);margin-left:-8px}.story-copy{margin:auto 0;padding:65px 0 30px;position:relative;z-index:1}.eyebrow{font-size:10px;letter-spacing:2.2px;font-weight:700;display:flex;align-items:center;gap:9px}.eyebrow>span{display:block;width:6px;height:6px;background:#748d6b;border-radius:50%}.story-copy h1{font-family:Lora,Georgia,serif;font-size:clamp(42px,4.3vw,68px);font-weight:400;line-height:1.18;letter-spacing:-2.4px;margin:27px 0 24px}.story-copy h1 em{color:var(--rose);font-weight:400}.story-copy>p{font-size:14px;line-height:1.9;color:#778071}.story-hearts{position:relative;height:145px;max-width:300px;margin-top:27px}.heart-one{color:#b95067;width:71px;height:71px;position:absolute;left:27px;top:34px;transform:rotate(-17deg);filter:drop-shadow(0 9px 8px #b9506715)}.heart-two{color:#7a8d71;width:42px;height:42px;position:absolute;right:44px;top:19px;transform:rotate(15deg)}.dotted-path{position:absolute;left:93px;top:28px;width:108px;height:65px;border:1.5px dashed #aab1a0;border-top:none;border-radius:0 0 70% 50%;transform:rotate(-19deg)}.spark{position:absolute;top:14px;left:105px;color:#a79873}.story-panel:after{content:"";width:500px;height:500px;border:1px solid #dde2d5;border-radius:50%;position:absolute;bottom:-320px;right:-240px;box-shadow:0 0 0 50px #e5e9de60,0 0 0 100px #e5e9de40}.story-footer{display:flex;align-items:center;gap:8px;font-size:10px;color:#7f8878;z-index:1}.edition{margin-left:auto;font-size:8px;letter-spacing:1.5px}.app-panel{padding:46px 60px 25px;display:flex;flex-direction:column;min-width:0;min-height:100dvh;position:relative}.app-header{display:flex;align-items:center;justify-content:space-between;min-height:32px;margin-bottom:36px}.header-note{font-size:10px;color:#96988d;letter-spacing:.3px}.mobile-brand{display:none}.icon-button{background:none;border:0;display:inline-flex;align-items:center;justify-content:center;padding:9px;border-radius:50%;color:#7e827a}.icon-button:hover{background:#edece5}.app-content{width:100%;max-width:440px;margin:auto;position:relative;padding:20px 0 40px}.home-content{padding-top:7px;padding-bottom:20px}.app-footer{display:flex;align-items:center;justify-content:center;gap:6px;font-size:9px;color:#94958b;margin-top:auto;padding-top:20px}.app-footer>svg{color:#b28684}.app-footer button{display:flex;align-items:center;gap:4px;border:0;background:none;color:#737c6c;font-size:9px;margin-left:auto;padding:8px 0 8px 12px}.app-footer:has(button){justify-content:flex-start}h2{font-family:Lora,Georgia,serif;font-size:36px;font-weight:400;line-height:1.25;letter-spacing:-1.3px;margin:15px 0 14px}h3{font-size:17px;font-weight:600;letter-spacing:-.4px}.muted{color:var(--muted);font-size:13px;line-height:1.8}.intro{margin-bottom:30px;max-width:370px}.section-icon{display:flex;align-items:center;justify-content:center;width:53px;height:53px;border-radius:17px;color:var(--rose);background:#f1e6e5;margin-bottom:29px}.form{display:flex;flex-direction:column;gap:9px}.form label{font-size:11px;font-weight:650;margin-top:8px}.form input{width:100%;height:51px;border:1px solid #dedfd6;background:#fbfaf7;border-radius:9px;padding:0 15px;color:var(--dark);font-size:13px;min-width:0}.form input::placeholder{color:#a4a59b}.primary,.secondary{display:flex;align-items:center;justify-content:center;gap:12px;border:0;border-radius:9px;padding:15px 22px;min-height:50px;font-size:12px;font-weight:600}.primary{background:var(--dark);color:#fff}.primary:not(:disabled):hover{background:#3f594f}.form .primary{margin-top:17px}.secondary{background:#efeee8;border:1px solid #e2e3d9}.secondary:hover{background:#e7e8df}.private-note{display:flex;align-items:center;justify-content:center;gap:6px;font-size:9px;color:#96988c;margin-top:21px}.setup-note{font-size:11px;line-height:1.7;color:#8e7b61;background:#efeee6;border-radius:7px;padding:10px 12px;margin-top:20px}.text-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:0;background:none;padding:9px 0;font-size:11px;font-weight:600;color:#7e806f}.preview-link{display:flex;margin:24px auto 0;color:var(--rose)}.input-prefix{position:relative}.input-prefix>span{position:absolute;left:15px;top:14px;color:#999a8f;font-size:14px}.input-prefix input{padding-left:33px}.form small{font-size:10px;color:#929488}.handle-card{padding:16px 19px;border:1px dashed #cccfc2;border-radius:9px;display:flex;flex-direction:column;margin:24px 0;font-size:10px;color:#939784;gap:4px;background:#f1f2ea}.handle-card strong{font-size:17px;color:#596c50;letter-spacing:.2px}.skip-link{display:flex;margin:24px auto 0}.back-link{display:flex;align-items:center;gap:7px;border:0;background:none;font-size:11px;color:var(--muted);padding:0;margin-bottom:27px}.greeting h2{font-size:36px;margin:10px 0 9px}.greeting .eyebrow{font-size:9px;letter-spacing:1.8px}.greeting-dot{color:var(--rose)}.greeting>p{font-size:11px}.connection-pill{display:flex;gap:6px;align-items:center;justify-content:center;background:#ebeee3;border:1px solid #e1e6d7;border-radius:30px;font-size:10px;color:#7a866d;width:fit-content;margin:30px auto 0;padding:7px 13px}.connection-pill strong{font-weight:650;color:#526449}.connection-pill svg{margin-left:5px}.status-dot{width:5px;height:5px;background:#8c9e74;border-radius:50%;margin-right:1px}.nudge-stage{position:relative;display:flex;align-items:center;justify-content:center;height:268px;margin-top:5px}.orbit{position:absolute;border:1px solid #ebe5de;border-radius:50%;pointer-events:none}.orbit-one{width:240px;height:240px}.orbit-two{width:285px;height:285px;border-style:dashed;opacity:.55;transform:scaleY(.78) rotate(-17deg)}.nudge-button{border:0;background:radial-gradient(circle at 35% 20%,#f4dfe3,#dfb2bc 75%);width:178px;height:178px;border-radius:50%;color:#fbe9e5;display:flex;align-items:center;justify-content:center;flex-direction:column;box-shadow:0 12px 22px #a7425626,inset 0 2px 1px #ffffff30;position:relative;overflow:hidden;isolation:isolate;z-index:1}.nudge-fill{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;background:radial-gradient(circle at 35% 20%,#d87a89,#b94e65 75%);transform:scaleY(var(--nudge-progress, 1));transform-origin:center bottom;opacity:var(--nudge-opacity, 1);transition:transform 1s linear,opacity 1s linear}.nudge-button:not(.is-waiting) .nudge-fill{transition:none}.nudge-button svg{position:relative;z-index:1;width:64px;height:64px;filter:drop-shadow(0 3px 0 #923e5120);margin-top:6px}.nudge-label{position:relative;z-index:1;font-size:10px;font-weight:600;margin-top:8px;letter-spacing:.4px}.nudge-button:not(:disabled):hover{transform:translateY(-4px);box-shadow:0 16px 28px #a7425638}.nudge-button:not(:disabled):active{transform:scale(.95)}.nudge-button:disabled{opacity:1}.nudge-button.is-waiting{color:#6f2438}.is-waiting .orbit{opacity:.5}.stage-spark{font-size:30px;color:#bd9f76;position:absolute;font-family:Georgia,serif}.spark-left{left:17%;top:62px}.spark-right{right:13%;top:158px;font-size:24px}.stage-dot{position:absolute;border-radius:50%;background:#cfb6a4;width:4px;height:4px}.dot-one{left:23%;bottom:49px}.dot-two{right:23%;top:48px;background:#9ba485;width:5px;height:5px}.nudge-caption{text-align:center;margin-top:-2px}.nudge-caption h3{font-family:Lora,Georgia,serif;font-size:21px;font-weight:400;letter-spacing:-.5px}.nudge-caption>p{font-size:10px;color:#898c7f;margin-top:9px}.cooldown-note{display:block;font-size:9px;color:#aaa99e;margin-top:6px}.timer{font-variant-numeric:tabular-nums;color:var(--rose);font-size:12px}.activity{margin-top:32px}.activity-heading{display:flex;justify-content:space-between;font-size:8px;letter-spacing:1.5px;color:#999b8d;padding-bottom:13px;border-bottom:1px solid var(--border)}.activity-heading>span+span{color:#ba8b8e;font-size:11px}.activity-row{display:flex;align-items:center;gap:12px;padding:15px 0;border-bottom:1px solid var(--border)}.activity-heart{width:35px;height:35px;display:grid;place-items:center;border-radius:50%;background:#eee2df;color:#b36d7d;flex-shrink:0}.activity-heart.sent{background:#e9ece1;color:#8a9878}.activity-row strong{font-size:10px;font-weight:600;display:block}.activity-row p{font-size:9px;color:#a1a193;margin-top:3px}.activity-row time{font-size:9px;color:#a4a493;margin-left:auto;white-space:nowrap}.notification-card{display:flex;align-items:center;gap:12px;text-align:left;width:100%;padding:15px 14px;border:1px solid #e4e5db;border-radius:10px;background:#f0f1e9;margin-top:24px}.notification-icon{width:31px;height:31px;display:grid;place-items:center;background:#e5e8db;border-radius:9px;color:#7d8a6c;flex-shrink:0}.notification-card>span:nth-child(2){flex:1}.notification-card strong{font-size:10px;font-weight:600;display:block}.notification-card small{font-size:9px;color:#8d9380;margin-top:3px;display:block}.notification-card>svg{color:#9ba18d}.unconnected{text-align:center;padding:40px 0 20px}.empty-hearts{height:105px;position:relative;max-width:180px;margin:auto}.empty-hearts svg{width:67px;height:67px;position:absolute;left:22px;top:15px;transform:rotate(-15deg);fill:#e7c4c5;color:#d7a2ad;stroke-width:1}.empty-hearts svg+svg{width:43px;height:43px;left:auto;right:26px;top:4px;transform:rotate(20deg);fill:#dce2ce;color:#a9b592}.unconnected>p{max-width:300px;margin:13px auto 25px;font-size:12px}.unconnected .primary{width:100%;margin-top:20px}.unconnected .secondary{margin:auto}.own-handle{display:block;font-size:10px;color:#969989;margin-top:25px}.own-handle strong{color:#6f7f63}.request-card{display:flex;align-items:center;gap:9px;padding:16px 12px;background:#efeee4;border:1px solid #e1dfce;border-radius:10px;margin-top:20px}.request-card strong{font-size:10px}.request-card p{font-size:10px;color:#92917e}.request-actions{display:flex;align-items:center;margin-left:auto}.accept-button{background:var(--dark);color:#fff;padding:8px;border:0;border-radius:50%;display:flex}.avatar{width:49px;height:49px;border-radius:50%;background:#e9d9d5;color:var(--rose);display:grid;place-items:center;font-family:Georgia,serif;font-size:24px;flex-shrink:0}.avatar.small{width:32px;height:32px;font-size:17px}.profile-card{display:flex;gap:15px;align-items:center;margin:25px 0 30px;padding:20px;background:#efeee7;border-radius:12px}.profile-card h3{font-size:16px}.profile-card p{color:#929381;font-size:11px;margin-top:3px}.settings-row{display:flex;align-items:center;text-align:left;width:100%;gap:14px;border:0;background:none;border-bottom:1px solid var(--border);padding:22px 0}.settings-row>svg{color:#89947d}.settings-row>span:nth-child(2){flex:1}.settings-row strong{font-size:12px;font-weight:600;display:block}.settings-row small{font-size:10px;display:block;color:#9a9b8d;margin-top:3px}.toggle{width:32px;height:19px;border-radius:20px;background:#d7d9cf;position:relative}.toggle:after{content:"";width:13px;height:13px;border-radius:50%;background:#fff;position:absolute;top:3px;left:3px}.toggle.on{background:#7f926c}.toggle.on:after{left:16px}.danger{color:#a26364;font-size:10px;margin-top:14px}.logout{width:100%;margin-top:35px}.settings-footnote{font-size:10px;color:#a1a091;line-height:1.8;margin-top:16px;text-align:center}.disconnect-confirm{padding:16px;background:#f1e7e3;border-radius:9px;font-size:12px;margin-top:15px}.disconnect-confirm>div{display:flex;gap:10px;margin-top:14px}.disconnect-confirm button{flex:1}.danger-button{border:0;background:#b65665;color:#fff;border-radius:9px;font-size:12px;padding:10px}.preview-banner,.offline-banner{display:flex;align-items:center;gap:7px;padding:10px 12px;border-radius:8px;background:#ebece0;color:#7e886c;font-size:10px;margin-bottom:20px}.preview-banner button{margin-left:auto;display:flex;border:0;background:none;color:inherit}.local-banner{flex-wrap:wrap}.local-banner button{font:inherit;text-decoration:underline;white-space:nowrap}.sleep-card{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:7px 12px;text-align:left;border-top:1px solid var(--border);padding:10px 0 0;margin:12px 0 0;color:#707b68}.sleep-card.status-sleeping{color:#666c84}.sleep-heading{display:flex;align-items:flex-start;gap:12px}.sleep-heading>svg{flex-shrink:0;margin-top:3px}.sleep-heading h3{margin:0;font-size:12px;font-weight:600}.sleep-heading p,.sleep-request{font-size:10px;line-height:1.5;margin:2px 0 0}.sleep-card>button{grid-column:2;grid-row:1;min-height:44px;margin:0;padding:7px 12px;font-size:11px;border:0;background:#eeeee7;border-radius:9px}.sleep-timer{font-variant-numeric:tabular-nums}.sleep-progress{grid-column:1 / -1;width:100%;height:4px;border:0;border-radius:5px;overflow:hidden;accent-color:#7c8e74;background:#dce2d5}.sleep-progress::-webkit-progress-bar{background:#dce2d5}.sleep-progress::-webkit-progress-value{background:#7c8e74;transition:width 1s linear}.sleep-progress::-moz-progress-bar{background:#7c8e74}.sleep-request{grid-column:1 / -1;margin-top:0}.sleep-request .sleep-actions{gap:7px;margin-top:6px}.sleep-request button{min-height:44px;padding:6px 10px;font-size:11px}.sleep-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}.sleep-actions button{flex:1}.statistics-tabs{display:flex;gap:5px;padding:5px;background:#eaece3;border-radius:14px;margin:24px 0}.statistics-tabs button{flex:1;padding:12px;border:0;border-radius:10px;background:transparent;color:#63705c;font:inherit;cursor:pointer}.statistics-tabs button[aria-pressed=true]{background:#fffdf7;box-shadow:0 2px 8px #26351b0d;color:#394c34}.metric-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.metric-grid article{padding:18px 15px;border:1px solid #e9e3d9;border-radius:16px;background:#fcfaf4;min-width:0}.metric-grid article>span,.metric-grid article>small{display:block;font-size:11px;line-height:1.6;color:#8c8d7e}.metric-grid article>strong{display:block;font-size:32px;font-weight:500;margin:10px 0;color:#56634a}.metric-grid strong small{font-size:14px}.metric-grid .reaction-metric{grid-column:1 / -1;background:#f4ebe5}.histogram{margin:30px 0}.histogram figcaption{font-size:17px;font-weight:600;color:#535d47}.histogram>p{font-size:11px}.histogram-bars{display:grid;grid-template-columns:repeat(24,minmax(0,1fr));gap:3px;height:150px;border-bottom:1px solid #ddd9cf;margin-top:25px}.histogram-bars>div{height:100%;display:flex;align-items:flex-end}.histogram-bars span{display:block;width:100%;border-radius:4px 4px 0 0;background:#b9616a}.histogram-axis{display:flex;justify-content:space-between;margin-top:8px;font-size:10px;color:#939080}.histogram details,.statistics-rules{margin-top:18px;font-size:12px;line-height:1.7;color:#7d826e}.histogram table{width:100%;margin-top:12px;border-collapse:collapse}.histogram th,.histogram td{border-bottom:1px solid #e8e3d8;text-align:left;padding:5px 8px}.statistics-rules summary,.histogram summary{cursor:pointer}.offline-banner{background:#f0e8dc;color:#927950}.update-banner{display:flex;align-items:center;flex-wrap:wrap;gap:12px;padding:15px;margin-bottom:22px;border:1px solid #d9dfce;border-radius:10px;background:#e9eddf;color:#53664b}.update-banner>svg{flex-shrink:0}.update-banner>span{flex:1;min-width:170px}.update-banner strong{display:block;font-size:12px}.update-banner small{display:block;margin-top:3px;font-size:10px;line-height:1.6}.update-banner button{border:0;border-radius:7px;padding:9px 13px;background:var(--dark);color:#fff;font-size:11px;font-weight:600}.message{display:flex;align-items:flex-start;gap:10px;border-radius:9px;padding:13px 15px;font-size:11px;line-height:1.7;margin-bottom:20px}.message.error{background:#f5e4e3;color:#a34c58}.message button{display:flex;margin-left:auto;padding:2px;border:0;background:none;color:inherit}.toast{pointer-events:none;position:fixed;top:22px;left:50%;transform:translate(-50%);background:var(--dark);color:#fff;border-radius:10px;box-shadow:0 6px 22px #293e3820;padding:14px 20px;display:flex;align-items:center;gap:9px;font-size:12px;z-index:5;max-width:90vw;width:max-content}.loading,.empty-view{padding:50px 0;text-align:center;color:var(--muted);font-size:13px}.loading{display:flex;gap:10px;align-items:center;justify-content:center}.empty-view .section-icon{margin:0 auto 20px}.empty-view .secondary{margin:20px auto 10px}.first-moment{font-size:11px;color:#a0a28e;text-align:center;padding:22px}.balloon{position:absolute;left:calc(50% - 30px);top:82px;z-index:4;color:#bd526c;pointer-events:none;animation:float-away 2.4s linear forwards,balloon-sway 2.4s ease-in-out forwards}.balloon svg{width:60px;height:60px;filter:drop-shadow(0 5px 5px #9a3a5820)}.balloon>span{display:block;height:65px;width:17px;border-left:1px solid #bf8190;border-radius:50%;margin:-10px auto 0;transform:rotate(-8deg)}@keyframes float-away{0%{translate:0 0;opacity:1}70%{opacity:.9}to{translate:0 -420px;opacity:0}}@keyframes balloon-sway{0%{transform:translate(0) rotate(-8deg)}35%{transform:translate(18px) rotate(10deg)}70%{transform:translate(-12px) rotate(-10deg)}to{transform:translate(12px) rotate(9deg)}}.spin{animation:spin 1.5s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#1d302c70;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);z-index:10;display:flex;align-items:center;justify-content:center;padding:20px}.install-modal{background:#f8f6f2;max-width:440px;width:100%;padding:35px;border-radius:20px;position:relative;max-height:90dvh;overflow-y:auto}.modal-close{position:absolute;right:13px;top:13px}.install-modal h2{font-size:30px}.install-modal>p{font-size:12px;line-height:1.8;color:#8b8f80}.install-modal ol{padding-left:19px;font-size:12px;line-height:1.8;color:#7f8776}.install-modal li{padding-left:5px;margin-bottom:15px}.install-modal li strong{color:var(--dark)}.install-modal .primary{width:100%;margin-top:25px}@media(min-width:1500px){.story-panel{padding-left:max(65px,calc((100vw - 1280px)/2))}.app-panel{padding-right:max(65px,calc((100vw - 1370px)/2))}}@media(max-width:1100px){.story-panel{padding:35px}.app-panel{padding:35px 38px 24px}.story-copy h1{font-size:46px;letter-spacing:-2px}.story-copy>p{font-size:12px}.edition{display:none}.story-footer{font-size:9px}.app-header{margin-bottom:25px}}@media(max-width:760px){.site-shell{display:block}.story-panel{display:none}.app-panel{padding:max(22px,env(safe-area-inset-top)) 25px max(18px,env(safe-area-inset-bottom));min-height:100dvh}.app-header{margin-bottom:25px;min-height:35px}.header-note{display:none}.mobile-brand{display:block;font-size:22px;font-weight:800;letter-spacing:-1.2px}.mobile-brand span{color:var(--rose)}.app-content{max-width:430px;padding-top:18px;padding-bottom:25px}.home-content{padding-top:0}.login-view{padding:10px 0 25px}.section-icon{margin-bottom:25px}h2{font-size:34px}.app-footer{font-size:8px;padding-top:12px}.app-footer button{font-size:9px}.greeting h2{font-size:34px}.greeting .eyebrow{font-size:8px}.greeting>p{font-size:11px}.connection-pill{margin-top:26px}.nudge-stage{height:257px}.nudge-button{width:173px;height:173px}.orbit-one{width:229px;height:229px}.orbit-two{width:275px;height:275px}.activity{margin-top:29px}.notification-card{margin-top:21px}.activity-row{padding:14px 0}.activity-row strong{font-size:10px}.nudge-caption h3{font-size:22px}.nudge-caption>p{font-size:10px}.toast{top:max(15px,env(safe-area-inset-top));font-size:11px}.install-modal{padding:28px}.private-note{font-size:9px}}@media(max-width:360px){.app-panel{padding-left:19px;padding-right:19px}.nudge-stage{height:242px}.activity-row{gap:8px}.activity-row time{font-size:8px}.notification-card{gap:8px;padding:12px 10px}.notification-card strong{font-size:9px}.app-footer{flex-wrap:wrap}.app-footer button{padding-left:0}}.is-home{--home-height: calc(100dvh - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px)) ;--stage-size: clamp(124px, calc(var(--home-height) - 560px), 210px);--heart-size: clamp(112px, calc(var(--stage-size) - 30px), 174px)}.is-home:has(.sleep-card.status-pending){--stage-size: clamp(112px, calc(var(--home-height) - 650px), 174px)}.is-home:has(.sleep-request){--stage-size: clamp(100px, calc(var(--home-height) - 710px), 148px);--heart-size: clamp(96px, calc(var(--stage-size) - 20px), 136px)}.is-home .app-panel{padding-top:max(10px,env(safe-area-inset-top));padding-bottom:max(10px,env(safe-area-inset-bottom))}.is-home .app-header{min-height:44px;margin-bottom:10px}.is-home .app-header .icon-button{min-width:44px;min-height:44px}.is-home .home-content{padding:0;margin:0 auto;flex:1;display:flex;flex-direction:column}.is-home .home-view{flex:1;display:flex;flex-direction:column}.is-home .home-view>*{flex-shrink:0}.is-home .nudge-area{flex:1 0 auto;display:flex;flex-direction:column;justify-content:center}.is-home .nudge-area>*{flex-shrink:0}.is-home .preview-banner,.is-home .offline-banner{margin-bottom:8px;padding-block:6px}.is-home .greeting h2{font-size:28px;margin:4px 0}.is-home .greeting>p,.is-home .cooldown-note,.is-home .activity-row p{display:none}.is-home .connection-pill{margin-top:8px;padding-block:5px}.is-home .nudge-stage{height:var(--stage-size);margin-top:4px}.is-home .nudge-button{width:var(--heart-size);height:var(--heart-size)}.is-home .nudge-button svg{width:calc(var(--heart-size) / 3);height:calc(var(--heart-size) / 3)}.is-home .orbit-one{width:calc(var(--heart-size) + 24px);height:calc(var(--heart-size) + 24px)}.is-home .orbit-two{width:calc(var(--heart-size) + 50px);height:calc(var(--heart-size) + 50px)}.is-home .spark-left{top:20%}.is-home .spark-right{top:auto;bottom:20%}.is-home .dot-one{bottom:18%}.is-home .dot-two{top:18%}.is-home .balloon{top:calc(50% - 30px)}.is-home .nudge-caption{margin-top:0}.is-home .nudge-caption h3{font-size:18px}.is-home .nudge-caption>p{margin-top:4px}.is-home .activity{margin-top:12px}.is-home .activity-heading{padding-bottom:6px}.is-home .activity-row{gap:8px;padding-block:6px}.is-home .activity-row>div:nth-child(2){flex:1;min-width:0}.is-home .activity-row time{flex-shrink:0}.is-home .greeting h2,.is-home .activity-row strong,.sleep-heading p{overflow-wrap:anywhere}.is-home .connection-pill{max-width:100%;flex-wrap:wrap}.is-home .connection-pill strong{overflow-wrap:anywhere;min-width:0}.is-home .activity-heart{width:28px;height:28px}.is-home .notification-card{margin-top:10px;min-height:44px;padding:8px 10px}.is-home .app-footer{padding-top:6px;margin-top:0}.is-home .app-footer>span,.is-home .app-footer>svg{display:none}.is-home .app-footer:not(:has(button)){display:none}@media(max-height:740px){.is-home .greeting .eyebrow,.is-home .nudge-caption h3,.is-home .app-footer{display:none}.is-home .activity-row{padding-block:4px}.is-home .activity-heart{width:24px;height:24px}.is-home:has(.sleep-card.status-pending) .greeting{display:none}}@media(max-height:600px){.is-home{--stage-size: 108px;--heart-size: 96px}.is-home .greeting h2{font-size:24px;margin-block:2px}.is-home .activity,.is-home .sleep-card{margin-top:8px}.is-home .notification-card{margin-top:6px}}.site-shell{transition:color 1s ease,background-color 1s ease}.story-panel{transition:background-color 1s ease}.night-sky{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none;opacity:0;transition:opacity 1s ease;background:radial-gradient(circle at 13% 9%,#fff9df 0 1px,transparent 2px),radial-gradient(circle at 72% 6%,#fff 0 1px,transparent 2px),radial-gradient(circle at 35% 22%,#fff 0 1px,transparent 2px),radial-gradient(circle at 88% 32%,#fff9df 0 1px,transparent 2px),radial-gradient(circle at 8% 44%,#fff 0 1px,transparent 2px),radial-gradient(circle at 68% 54%,#fff9df 0 1px,transparent 2px),radial-gradient(circle at 24% 71%,#fff 0 1px,transparent 2px),radial-gradient(circle at 84% 88%,#fff 0 1px,transparent 2px),linear-gradient(155deg,#cfdcf0,#e7edf7 55%,#dde6f2)}.app-header,.app-footer{position:relative;z-index:1}.night-moon{position:absolute;top:12%;right:9%;width:46px;height:46px;color:#fff8dc;filter:drop-shadow(0 0 15px #fff9df70);transform:translateY(-14px) rotate(-15deg);transition:transform 1.2s ease}.night-star{position:absolute;color:#fff9e7;font-size:18px}.night-star.star-one{top:24%;left:12%}.night-star.star-two{top:38%;right:12%;font-size:24px}.night-star.star-three{bottom:16%;left:16%;font-size:12px}.nudge-symbol{position:relative;z-index:1;display:grid;place-items:center;width:calc(var(--heart-size, 178px) / 3);height:calc(var(--heart-size, 178px) / 3);margin-top:6px}.nudge-button .nudge-symbol>svg{width:100%;height:100%;margin:0}.nudge-heart{opacity:1;transform:scale(1) rotate(0);transition:opacity .65s ease,transform .8s ease}.sleep-symbol{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;opacity:0;transform:translateY(8px) scale(.8);transition:opacity .65s ease,transform .8s ease}.nudge-button .sleep-symbol svg{width:46%;height:46%;margin:0}.sleep-symbol>span{font-size:clamp(13px,calc(var(--heart-size, 178px) / 9),20px);letter-spacing:3px;font-weight:650;line-height:1.1}.nudge-label{display:grid}.nudge-label>span{grid-area:1 / 1;transition:opacity .65s ease}.sleep-label{opacity:0}.nudge-button{transition:transform .2s,color 1s ease,box-shadow 1s ease}.nudge-button:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;background:radial-gradient(circle at 35% 20%,#738bb5,#415b86 80%);opacity:0;transition:opacity 1s ease}.connection-pill,.activity-heart,.notification-card,.preview-banner{transition:color 1s ease,background-color 1s ease,border-color 1s ease}.is-sleeping{color:#354d70;background-color:#dde6f2}.is-sleeping .story-panel{background-color:#dce4f1}.is-sleeping .night-sky{opacity:1}.is-sleeping .night-moon{transform:translateY(0) rotate(0)}.is-sleeping .nudge-button{color:#fff8df;box-shadow:0 10px 28px #435f8930,inset 0 1px 1px #ffffff30}.is-sleeping .nudge-button:after{opacity:1}.is-sleeping .nudge-heart{opacity:0;transform:scale(.7) rotate(-12deg)}.is-sleeping .sleep-symbol{opacity:1;transform:translateY(0) scale(1)}.is-sleeping .awake-label{opacity:0}.is-sleeping .sleep-label{opacity:1}.is-sleeping .greeting-dot{color:#718eb5}.is-sleeping .connection-pill,.is-sleeping .notification-card,.is-sleeping .preview-banner{background-color:#e5ecf6;border-color:#cbd8e9;color:#637795}.is-sleeping .connection-pill strong{color:#465f83}.is-sleeping .activity-row,.is-sleeping .activity-heading,.is-sleeping .sleep-card{border-color:#cbd7e8}.is-sleeping .activity-heart{background-color:#e2e9f5;color:#8197b7}.is-sleeping .stage-spark{color:#8d9fbd}.is-sleeping .stage-dot{background-color:#8d9fbd}.message-settings{margin:24px 0;padding:20px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.message-settings-heading{display:flex;justify-content:space-between;align-items:center}.message-settings-heading h3{font-size:16px}.message-settings-heading>span{font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}.message-settings>.muted,.message-placeholder-hint{font-size:11px;line-height:1.7;margin-top:9px}.message-placeholder-hint{color:#7d826f}.message-placeholder-hint code{font:inherit;color:#9d465e}.message-settings fieldset{padding:0;margin:15px 0 0;border:0;min-width:0}.message-template{padding:13px;margin-bottom:10px;border:1px solid var(--border);border-radius:12px;background:#fcfaf5}.message-template.is-primary{border-color:#ce9ba8;background:#fcf4f3}.message-template-heading{display:flex;gap:8px;align-items:center;margin-bottom:8px}.message-template-heading>label:first-child{flex:1;font-size:11px;font-weight:650}.message-primary{display:flex;align-items:center;gap:4px;color:#a24a61;font-size:10px;cursor:pointer}.message-primary input{accent-color:var(--rose)}.message-template-heading .icon-button{min-height:36px;min-width:36px;padding:8px}.message-template textarea{display:block;width:100%;resize:vertical;min-height:54px;padding:9px 10px;border:1px solid #dedfd6;border-radius:7px;background:#fffdf9;color:var(--dark);font:inherit;font-size:16px;line-height:1.6}.message-template textarea:read-only{background:transparent;border-color:transparent;padding-left:0;resize:none}.message-template textarea:focus{outline:2px solid #b9506750}.message-template-footer{display:flex;gap:12px;color:#7d826f;margin-top:7px}.message-template-footer small{flex:1;font-size:10px;overflow-wrap:anywhere}.message-template-footer>span{font-size:9px;white-space:nowrap}.message-settings-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;margin-top:12px}.message-settings-actions .text-button{display:flex;gap:5px;align-items:center;min-height:44px}.message-settings-actions .secondary{min-height:44px;padding:10px 14px;font-size:11px}.message-validation{color:#9b4a5c;font-size:11px;margin-top:12px}.nudge-control{width:var(--heart-size, 178px);height:var(--heart-size, 178px);position:relative;flex-shrink:0}.nudge-button.has-messages{touch-action:none;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.message-picker-trigger{position:absolute;right:-7px;bottom:-2px;z-index:2;display:grid;place-items:center;width:44px;height:44px;padding:7px;border:0;border-radius:50%;background:transparent;color:#9d4e64}.message-picker-trigger>span{display:flex;align-items:center;justify-content:center;gap:3px;width:30px;height:30px;border:1px solid #dfc0c7;border-radius:50%;background:#fff9f4;font-size:10px;box-shadow:0 2px 8px #7f334514}.message-picker-trigger:not(:disabled):hover>span{background:#f7e6e9}.is-sleeping .message-picker-trigger>span{background:#e9edf7;color:#5f7595;border-color:#c9d5e7}.message-picker{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;background:#263a3359;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:var(--dark);overscroll-behavior:contain;animation:picker-appear .22s ease both}.message-picker.is-dragging{pointer-events:none}.wheel-heading{position:absolute;top:max(18px,env(safe-area-inset-top));left:44px;right:44px;text-align:center;color:#fffaf0}.wheel-heading h2{margin:0;font-size:clamp(20px,6vw,25px);letter-spacing:-.7px}.wheel-heading p{font-size:11px;margin-top:5px}.wheel-close{position:absolute;top:14px;right:12px;color:#fff}.message-wheel{position:absolute;transform:translate(-50%,-50%);border:1px solid #fffc;border-radius:50%;background:radial-gradient(circle,#fff8ee26 0 24%,#fff8ee0d 25% 60%,#fff8ee21 61% 62%,transparent 63%)}.wheel-center{position:absolute;top:35%;right:35%;bottom:35%;left:35%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;border-radius:50%;color:#fff8ed;font-size:10px}.wheel-center svg{opacity:.85}.wheel-slot{position:absolute;width:104px;height:72px;transform:translate(-50%,-50%);animation:wheel-unfold .3s cubic-bezier(.16,.8,.28,1) backwards}.wheel-option{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;width:100%;height:100%;padding:8px;border:1px solid #fffaf3;border-radius:24px;color:#53604d;background:#fffaf4f5;box-shadow:0 6px 18px #14291f18;transform:scale(calc(1 + var(--proximity, 0) * .07));transition:transform .1s ease-out,background-color .15s ease,color .15s ease,box-shadow .15s ease}.wheel-option>span:last-child{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;overflow-wrap:anywhere;font-size:10px;line-height:1.35}.wheel-option-number{display:flex;align-items:center;height:12px;font-size:9px;color:#b37483}.wheel-option.is-selected,.wheel-option:focus-visible{background:#b95067;color:#fff;border-color:#f9d9df;box-shadow:0 0 0 5px #fff5e52b,0 9px 26px #7630473d;transform:scale(1.13)}.wheel-option.is-selected .wheel-option-number,.wheel-option:focus-visible .wheel-option-number{color:#ffe6cc}.wheel-preview{position:absolute;left:20px;right:20px;bottom:max(20px,env(safe-area-inset-bottom));max-width:440px;margin:0 auto;text-align:center;border:1px solid #fff8ed70;border-radius:18px;padding:12px 16px;background:#fffaf4f5;box-shadow:0 10px 25px #14291f0f}.wheel-preview small{color:#937a78;font-size:10px}.wheel-preview p{font-size:13px;line-height:1.5;overflow-wrap:anywhere;margin-top:4px}.message-picker.is-compact .wheel-heading{top:5px}.message-picker.is-compact .wheel-heading h2{font-size:17px}.message-picker.is-compact .wheel-heading p{margin-top:0;font-size:10px}.message-picker.is-compact .message-wheel{border:0;background:none}.message-picker.is-compact .wheel-center{display:none}.message-picker.is-compact .wheel-slot{width:min(300px,calc(100vw - 32px));height:42px}.message-picker.is-compact .wheel-option{flex-direction:row;justify-content:flex-start;gap:10px;border-radius:14px;padding:6px 12px}.message-picker.is-compact .wheel-option>span:last-child{-webkit-line-clamp:2}.message-picker.is-compact .wheel-preview{bottom:5px;padding:4px 10px}.message-picker.is-compact .wheel-preview small{display:none}.message-picker.is-compact .wheel-preview p{font-size:10px;margin:0;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}@keyframes picker-appear{0%{opacity:0}to{opacity:1}}@keyframes wheel-unfold{0%{opacity:0;transform:translate(-50%,-50%) translate(var(--from-x),var(--from-y)) scale(.2)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition:none!important}.balloon{animation:none;display:none}}
