:root{--app-height:100vh;--font-sans:"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans CJK SC",sans-serif;--font-serif:"Songti SC","STSong","Noto Serif CJK SC",serif;--bg:#f6f3ed;--bg-deep:#efeae1;--ink:#1f1f1b;--muted:#6c6a63;--line:#d8d1c5;--soft:#f2eee6;--serif:var(--font-serif);--sans:var(--font-sans)}*,:before,:after{box-sizing:border-box}html,body{overscroll-behavior:none;background-color:var(--bg-deep);height:100%;min-height:100%;margin:0;padding:0}body{color:var(--ink);font-family:var(--sans),"PingFang SC","Hiragino Sans GB",sans-serif;background:linear-gradient(180deg,var(--bg)0%,var(--bg-deep)100%),repeating-linear-gradient(120deg,#00000005 0px,#00000005 1px,transparent 1px,transparent 6px);letter-spacing:.01em;overscroll-behavior-y:none}a{color:inherit;text-decoration:none}button{font-family:inherit}.app-shell{min-height:var(--app-height);overscroll-behavior:none}.page{min-height:var(--app-height);flex-direction:column;padding:clamp(24px,6vw,72px) clamp(20px,8vw,120px);display:flex}.topbar{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-end;gap:24px;padding-bottom:16px;display:flex}.install-wrap{flex-direction:column;align-items:flex-end;gap:6px;display:flex}.install-button{border:1px solid var(--line);color:var(--ink);cursor:pointer;background:0 0;border-radius:999px;padding:6px 14px;font-size:12px}.install-button:hover{background:var(--soft);border-color:#cfc6b7}.install-hint{color:var(--muted);font-size:12px}.topbar-left{align-items:center;gap:16px;display:flex}.brand{font-family:var(--serif),"Songti SC",serif;letter-spacing:.12em;color:var(--ink);font-size:clamp(20px,2.6vw,28px)}.back-link{min-height:44px;color:var(--muted);-webkit-tap-highlight-color:transparent;touch-action:manipulation;-webkit-user-select:none;user-select:none;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;padding:0 14px;font-size:14px;line-height:1;transition:background .2s,border-color .2s,transform 60ms;display:inline-flex}.back-link:hover{border-color:var(--line);background:#d8d1c529}.back-link:active{transform:scale(.98)}.nav{color:var(--muted);align-items:center;gap:16px;font-size:14px;display:flex}.nav a{border-bottom:1px solid #0000;padding-bottom:4px;transition:border-color .2s}.nav a:hover{border-color:var(--line)}.ghost{color:inherit;cursor:pointer;background:0 0;border:none;border-bottom:1px solid #0000;padding:0 0 4px}.ghost:hover{border-color:var(--line)}.meta{max-width:720px;margin-top:clamp(28px,6vw,56px)}.meta-date{font-family:var(--serif),"Songti SC",serif;letter-spacing:.06em;font-size:clamp(24px,3.6vw,40px)}.meta-time{color:var(--muted);margin-top:6px;font-size:14px}.meta-greeting{color:var(--ink);margin:18px 0 8px;font-size:clamp(18px,2vw,22px)}.meta-sub{color:var(--muted);margin:0;font-size:15px}.editor{flex:1;margin-top:clamp(20px,5vw,40px)}.journal-input{resize:none;width:100%;height:70vh;min-height:60vh;font-family:var(--serif),"Songti SC",serif;color:var(--ink);background:0 0;border:none;padding:0;font-size:clamp(20px,2.2vw,26px);line-height:1.8}.journal-input::placeholder{color:#a39d92}.journal-input:focus{outline:none}.dash-hero{border-bottom:1px solid var(--line);align-items:flex-end;gap:32px;margin-top:clamp(28px,6vw,56px);padding-bottom:28px;display:flex}.dash-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-top:24px;display:grid}.dash-card{border:1px solid var(--line);background:#ffffff80;flex-direction:column;gap:8px;min-height:160px;padding:18px;display:flex}.dash-title{font-family:var(--serif),"Songti SC",serif;color:var(--ink);font-size:18px}.dash-desc{color:var(--muted);margin:0;font-size:14px;line-height:1.5}.dash-link{color:var(--ink);border-bottom:1px solid var(--line);width:fit-content;margin-top:auto;font-size:13px}.dash-list{margin-top:32px}.footer{color:var(--muted);border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;margin-top:24px;padding-top:12px;font-size:13px;display:flex}.footer-left{align-items:center;gap:12px;display:flex}.footer-right{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.panel{border:1px solid var(--line);background:#ffffff80;max-width:520px;margin-top:24px;padding:20px}.panel-title{font-family:var(--serif),"Songti SC",serif;margin-bottom:12px;font-size:18px}.field{color:var(--muted);flex-direction:column;gap:8px;margin-bottom:14px;font-size:14px;display:flex}.field input[type=text]{border:1px solid var(--line);color:var(--ink);background:0 0;padding:10px 12px;font-size:15px}.field input[type=text]:focus{border-color:#b9b0a2;outline:none}.field-inline{flex-direction:row;justify-content:space-between;align-items:center;gap:12px}.panel-note{color:var(--muted);margin:0;font-size:12px}.panel-note a{color:inherit;text-underline-offset:2px;text-decoration:underline}.panel-actions{flex-wrap:wrap;gap:12px;display:flex}.panel-btn{border:1px solid var(--line);color:var(--ink);cursor:pointer;background:0 0;border-radius:999px;padding:6px 14px;font-size:12px;transition:background .2s,border-color .2s}.panel-btn:hover{background:var(--soft);border-color:#cfc6b7}.signature-pad-wrap{border:1px solid var(--line);background:#ffffff8f;margin-top:8px}.signature-pad{touch-action:none;cursor:crosshair;width:100%;height:180px;display:block}.signature-preview{border-top:1px solid var(--line);margin-top:10px;padding-top:10px}.signature-preview-svg{color:#1f1f1bb3;width:min(280px,100%);height:auto}.signature-preview-svg path{fill:none;stroke:currentColor;stroke-width:2.2px;stroke-linecap:round;stroke-linejoin:round}.signature-preview-text{font-family:var(--sans),"PingFang SC",sans-serif;letter-spacing:.08em;color:#1f1f1b9e;font-size:32px}.signature-import{margin-top:10px}.signature-text-input{margin-top:8px}.signature-import-textarea{border:1px solid var(--line);width:100%;min-height:96px;color:var(--ink);resize:vertical;background:#ffffff8f;padding:10px 12px;font-size:13px;line-height:1.5}.signature-import-textarea:focus{border-color:#b9b0a2;outline:none}.study-panel{max-width:760px}.study-step-panel{background:0 0;border:none;flex-direction:column;flex:1;align-self:center;width:min(1080px,100%);max-width:none;padding:0;display:flex}.study-step-meta{color:var(--muted);letter-spacing:.04em;font-size:13px}.study-textarea{border:none;border-bottom:1px solid var(--line);width:100%;min-height:clamp(280px,52vh,620px);font:inherit;color:var(--ink);resize:vertical;background:0 0;padding:12px 0 10px;font-size:23px;line-height:1.8}.study-textarea:focus{border-bottom-color:#b9b0a2;outline:none}.study-textarea::placeholder{color:#9b9489}.study-footer{justify-content:flex-end;align-self:center;width:min(1080px,100%);margin-top:12px}.study-footer .footer-right{justify-content:flex-end;width:100%}.study-action{border:1px solid var(--line);color:var(--ink);cursor:pointer;background:0 0;border-radius:999px;padding:8px 16px;font-size:13px;transition:background .2s,border-color .2s}.study-action:hover{background:var(--soft);border-color:#cfc6b7}.study-action:disabled{opacity:.45;cursor:not-allowed}.study-action.is-next{background:#1f1f1b0f}.study-hint{color:var(--muted);margin:0;font-size:13px}.study-hint.ok{color:#2d6a43}.study-hint.bad{color:#8f3a2f}.study-encourage{color:var(--ink);font-size:15px}.study-flow-list{flex-direction:column;gap:12px;display:flex}.study-flow-item{border-bottom:1px dashed var(--line);justify-content:space-between;align-items:center;gap:12px;padding-bottom:8px;display:flex}.study-flow-title{color:var(--ink);font-size:15px}.study-lock{color:var(--muted);font-size:13px}.study-compare-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:18px;display:grid}.study-compare-card{border:1px solid var(--line);background:#ffffff73;flex-direction:column;gap:10px;min-height:240px;padding:14px;display:flex}.study-compare-head{color:var(--muted);justify-content:space-between;align-items:center;gap:10px;font-size:13px;display:flex}.study-compare-text{white-space:pre-wrap;color:var(--ink);margin:0;font-size:16px;line-height:1.8}.study-history-item{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.study-history-main{flex:1;display:block}.study-history-meta{color:var(--muted);flex-wrap:wrap;gap:10px;font-size:13px;display:flex}@media (max-width:980px){.study-compare-grid{grid-template-columns:1fr}}.pin-row{color:var(--muted);justify-content:space-between;align-items:center;gap:16px;margin-bottom:12px;font-size:14px;display:flex}.pin-switch{border:1px solid var(--line);cursor:pointer;background:#f1ede6;border-radius:999px;width:50px;height:28px;padding:0;position:relative}.pin-switch.is-on{background:#34c759;border-color:#34c759}.pin-switch-knob{background:#fff;border-radius:999px;width:24px;height:24px;transition:transform .2s;position:absolute;top:2px;left:2px;box-shadow:0 2px 6px #0000001f}.pin-switch.is-on .pin-switch-knob{transform:translate(22px)}.pin-modal{z-index:60;background:#f6f3edb3;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.pin-modal-card{border:1px solid var(--line);background:#fbf9f4;border-radius:18px;width:min(360px,100%);padding:20px}.sr-only{clip:rect(0,0,0,0);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.panel-warn{color:#8a3b2f;margin:0 0 12px;font-size:13px}.gate{text-align:center;justify-content:center;align-items:center;gap:12px}.gate-title{font-family:var(--serif),"Songti SC",serif;letter-spacing:.08em;font-size:24px}.gate-desc{color:var(--muted);margin:0 0 12px;font-size:14px}.gate-actions{flex-direction:column;align-items:center;gap:10px;display:flex}.primary{border:1px solid var(--line);background:var(--ink);color:#f6f3ed;border-radius:999px;padding:8px 18px;font-size:13px}.primary:hover{opacity:.92}.primary:disabled{opacity:.45;cursor:not-allowed}.gate-download{color:var(--muted);border-bottom:1px solid var(--line);font-size:13px}.pin-input{border:1px solid var(--line);text-align:center;letter-spacing:.2em;width:min(220px,100%);color:var(--ink);background:0 0;padding:10px 12px;font-size:18px}.pin-input:focus{border-color:#b9b0a2;outline:none}.pin-dots{gap:12px;margin:8px 0 4px;display:flex}.pin-dot{border:1px solid #1f1f1b66;border-radius:999px;width:12px;height:12px}.pin-dot.is-filled{background:#1f1f1bd9;border-color:#1f1f1bd9}.pin-keypad{grid-template-columns:repeat(3,minmax(64px,1fr));gap:10px;width:min(280px,100%);margin-top:8px;display:grid}.pin-key{border:1px solid var(--line);color:var(--ink);cursor:pointer;background:0 0;border-radius:18px;padding:12px 0;font-size:18px}.pin-key:hover{background:var(--soft);border-color:#cfc6b7}.pin-key.ghost{color:var(--muted);font-size:12px}.gate-loading{min-height:var(--app-height)}.welcome-overlay{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);pointer-events:none;z-index:40;background:#f6f3ed99;place-items:center;animation:2.2s forwards welcome-fade;display:grid;position:fixed;inset:0}.welcome-content{text-align:center;color:var(--ink);font-family:var(--serif),"Songti SC",serif;animation:2.2s forwards welcome-rise}.welcome-text{letter-spacing:.06em;font-size:clamp(24px,3vw,36px)}.welcome-line{background:#1f1f1b40;width:180px;height:1px;margin:12px auto 8px}.welcome-stamp{font-family:var(--sans),"PingFang SC",sans-serif;letter-spacing:.4em;color:#1f1f1b47;font-size:14px}.welcome-signature{color:#1f1f1b8f;width:min(220px,52vw);height:auto;overflow:visible}.welcome-signature-initials{width:min(260px,60vw)}.welcome-signature-jt{color:#1f1f1bad;opacity:.68;width:min(230px,56vw);animation:.72s ease-in-out 1.9s forwards welcome-jt-settle}.welcome-signature-path{fill:none;stroke:currentColor;stroke-width:2.2px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1px;opacity:0;animation:1.18s ease-out forwards welcome-sign-write}.welcome-signature-jt-path{fill:none;stroke:currentColor;stroke-width:2.45px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1px;opacity:0;animation:1.75s ease-out forwards welcome-sign-write}.welcome-signature-jt-dot{fill:currentColor;opacity:0;transform-origin:50%;animation:.68s ease-out forwards welcome-jt-dot}.welcome-signature-text{--dash-start:320;fill:none;stroke:currentColor;stroke-width:1.1px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:var(--dash-start);stroke-dashoffset:var(--dash-start);opacity:0;font-family:var(--sans),"PingFang SC",sans-serif;letter-spacing:.09em;font-size:42px;animation:1.18s ease-out forwards welcome-sign-write}@keyframes welcome-fade{0%{opacity:0}15%{opacity:1}80%{opacity:1}to{opacity:0}}@keyframes welcome-rise{0%{opacity:0;transform:translateY(8px)}20%{opacity:1;transform:translateY(0)}to{opacity:.92;transform:translateY(-6px)}}@keyframes welcome-sign-write{0%{opacity:0;stroke-dashoffset:var(--dash-start,1)}18%{opacity:1}to{opacity:1;stroke-dashoffset:0}}@keyframes welcome-jt-dot{0%{opacity:0;transform:scale(.3)}65%{opacity:.84;transform:scale(1.14)}to{opacity:.72;transform:scale(1)}}@keyframes welcome-jt-settle{0%{opacity:.68}50%{opacity:.76}to{opacity:.68}}.login{text-align:center;justify-content:center;align-items:center;gap:20px}.login .panel{width:min(520px,100%)}.login-actions{justify-content:center;align-items:center;gap:12px;margin-top:12px;display:flex}.login-actions .primary{border:none}.login-actions .primary:disabled{opacity:.5;cursor:not-allowed}.ghost-action{border:1px solid var(--line);color:var(--ink);cursor:pointer;background:0 0;border-radius:999px;margin-left:auto;padding:6px 14px;font-size:12px;transition:background .2s,border-color .2s}.ghost-action:hover{background:var(--soft);border-color:#cfc6b7}.list{flex-direction:column;gap:20px;margin-top:clamp(24px,6vw,48px);display:flex}.entry{border-bottom:1px solid var(--line);padding:16px 0 20px;display:block}.entry-date{color:var(--ink);font-size:16px;font-family:var(--serif),"Songti SC",serif;margin-bottom:8px}.entry-preview{color:var(--muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-size:15px;line-height:1.6;display:-webkit-box;overflow:hidden}.detail-meta{margin-top:clamp(24px,6vw,48px)}.empty{color:var(--muted);padding:24px 0;font-size:15px}.danger{border:1px solid var(--line);background:var(--soft);color:var(--ink);cursor:pointer;border-radius:999px;padding:6px 16px;transition:background .2s,border-color .2s}.danger:hover{background:#e9e3d8;border-color:#cfc6b7}.focus-shell{min-height:var(--app-height);color:#2b2b26;background:#f3f1ec;justify-content:center;align-items:center;padding:clamp(32px,8vw,96px);font-family:PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;display:flex}.focus-stage{text-align:center;flex-direction:column;align-items:center;gap:clamp(20px,4vw,32px);width:min(520px,100%);display:flex}.focus-back{color:#6c6a63;-webkit-tap-highlight-color:transparent;touch-action:manipulation;-webkit-user-select:none;user-select:none;border:1px solid #1f1f1b29;border-radius:999px;justify-content:center;align-self:flex-start;align-items:center;min-height:44px;padding:0 14px;font-size:14px;line-height:1;transition:background .2s,border-color .2s,transform 60ms;display:inline-flex}.focus-back:hover{background:#5f6a551a;border-color:#1f1f1b3d}.focus-back:active{transform:scale(.98)}.focus-time{letter-spacing:.04em;font-size:clamp(64px,14vw,140px);font-weight:300}.focus-content{flex-direction:column;align-items:center;gap:16px;width:100%;display:flex}.focus-presets{color:#6c6a63;flex-wrap:wrap;justify-content:center;gap:18px;font-size:16px;line-height:1.7;display:flex}.focus-preset{color:inherit;cursor:pointer;background:0 0;border:none;border-bottom:1px solid #0000;padding:0;font-size:16px;line-height:1.7}.focus-preset.is-active{color:#5f6a55;border-bottom-color:#5f6a55}.focus-preset:disabled{opacity:.5;cursor:not-allowed}.focus-custom{color:inherit;align-items:center;gap:6px;font-size:16px;line-height:1.7;display:inline-flex}.focus-custom-input{text-align:center;width:64px;color:inherit;background:0 0;border:none;border-bottom:1px solid #1f1f1b33;font-size:16px;line-height:1.7}.focus-custom-input:focus{border-bottom-color:#5f6a55;outline:none}.focus-custom-input:disabled{opacity:.5}.focus-input{text-align:center;width:min(420px,100%);color:inherit;background:0 0;border:none;border-bottom:1px solid #1f1f1b33;padding:10px 0;font-size:16px;line-height:1.7}.focus-input::placeholder{color:#2b2b2673}.focus-input:focus{border-bottom-color:#5f6a55;outline:none}.focus-toggle{color:#5f6a55;cursor:pointer;background:0 0;border:1px solid #5f6a55;border-radius:999px;padding:12px 32px;font-size:16px;line-height:1.7;transition:background .2s,color .2s}.focus-toggle:hover{background:#5f6a551a}.sleep-page.cosmos{--jungle-photo-opacity:0;--jungle-photo-blur:12px;--mist-opacity:0;--orb-shell-scale:1;min-height:var(--app-height);color:#d8e7ff;background:radial-gradient(circle at 50% -12%,#154292 0%,#07142f 35%,#030813 75%,#02040a 100%);padding:20px;position:relative;overflow:hidden}.sleep-page.cosmos:before{content:"";opacity:var(--jungle-photo-opacity);filter:blur(calc(var(--jungle-photo-blur)*.55));pointer-events:none;background:radial-gradient(circle at 12% 54%,#184e46b8,#0000 28%),radial-gradient(circle at 86% 42%,#134942ad,#0000 32%),radial-gradient(circle at 48% 54%,#2a6e6385,#0000 34%),linear-gradient(#0d2b2f 0%,#0a1e24 60%,#070f15 100%);transition:opacity .24s linear,filter .24s linear;position:absolute;inset:0;transform:scale(1.06)}.sleep-page.cosmos:after{content:"";opacity:var(--mist-opacity);pointer-events:none;background:radial-gradient(circle at 22% 36%,#ffd8673d,#0000 1.8%),radial-gradient(circle at 34% 62%,#ffd8672e,#0000 1.7%),radial-gradient(circle at 68% 42%,#ffd86733,#0000 1.9%),radial-gradient(circle at 84% 66%,#ffd86733,#0000 1.8%),radial-gradient(circle at 52% 52%,#a3ffe624,#0000 5.8%);transition:opacity .28s linear;position:absolute;inset:0}.sleep-jungle-layer{pointer-events:none;opacity:var(--jungle-photo-opacity);filter:blur(var(--jungle-photo-blur))saturate(.9);z-index:1;background-image:url(/images/jungle-bg.png);background-position:50%;background-size:cover;transition:opacity .24s linear,filter .24s linear,transform .24s linear;position:absolute;inset:0;transform:scale(1.06)}.sleep-page.mode-campfire .sleep-jungle-layer{background-image:url(/images/campfire-bg.jpg)}.sleep-page.mode-rain .sleep-jungle-layer{background-image:url(/images/rain-bg.png)}.sleep-page.mode-jungle .sleep-jungle-layer{background-image:url(/images/wind-bg.png)}.sleep-page.mode-mokugyo .sleep-jungle-layer{background-image:url(/images/mokugyo-bg.png)}.sleep-jungle-layer:before{content:"";background:radial-gradient(60% 100% at -6% 45%,#051214db,#0000 58%),radial-gradient(60% 100% at 108% 44%,#051214db,#0000 58%),radial-gradient(48% 82% at 50% 100%,#071619d6,#0000 72%),linear-gradient(#0209101f,#01050b6b);position:absolute;inset:0}.sleep-jungle-layer:after{content:"";filter:blur(8px);background:radial-gradient(42% 30% at 50% 72%,#5098892e,#0000 78%),radial-gradient(32% 22% at 50% 82%,#7cbeaf1a,#0000 82%);position:absolute;inset:0}.sleep-head{z-index:2;justify-content:flex-start;display:flex;position:relative}.sleep-back{color:#d9e9ffbd;letter-spacing:.08em;-webkit-tap-highlight-color:transparent;touch-action:manipulation;-webkit-user-select:none;user-select:none;background:#08193b3d;border:1px solid #d9e9ff3d;border-radius:999px;justify-content:center;align-items:center;min-width:68px;min-height:44px;padding:0 14px;font-size:14px;line-height:1;transition:background .2s,border-color .2s,transform 60ms;display:inline-flex}.sleep-back:hover{background:#0b255861;border-color:#d9e9ff8c}.sleep-back:active{transform:scale(.98)}.sleep-stage{z-index:2;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:18px;display:flex;position:relative}.sleep-page.mode-campfire{--jungle-photo-opacity:.48;--jungle-photo-blur:8px;--mist-opacity:.36;background:radial-gradient(circle at 50% -14%,#783f1f 0%,#25120a 38%,#120906 74%,#090505 100%)}.sleep-page.mode-jungle{--jungle-photo-opacity:1;--jungle-photo-blur:2px;--mist-opacity:.95}.sleep-page.mode-rain{--jungle-photo-opacity:.86;--jungle-photo-blur:4px;--mist-opacity:.9;background:radial-gradient(circle at 50% -14%,#3f566f 0%,#132233 40%,#0b131f 74%,#070b12 100%)}.sleep-page.mode-mokugyo{--jungle-photo-opacity:.88;--jungle-photo-blur:3px;--mist-opacity:.84;background:radial-gradient(circle at 50% -14%,#4f5a45 0%,#1b241a 40%,#0f1410 74%,#080b08 100%)}.sleep-page.mode-breath{--jungle-photo-opacity:0;--jungle-photo-blur:11px;--mist-opacity:.25}.sleep-stage.is-nature{justify-content:flex-end;padding-bottom:clamp(46px,8vh,96px)}.sleep-orb-shell{transform:scale(var(--orb-shell-scale));transition:transform .45s}.sleep-breath{--phase-ms:4.2s;aspect-ratio:1;cursor:pointer;filter:saturate(1.18);background:radial-gradient(circle at 18% 74%,#78f6ffe0,#0000 20%),radial-gradient(circle at 82% 31%,#5fc7ffc7,#0000 26%),radial-gradient(circle at 36% 22%,#1f54c6c2,#0000 34%),conic-gradient(from 10deg,#6defff 2%,#2d75ef 20%,#1b469f 44%,#58caf3 62%,#214bb6 82%,#85f1ff 99%);border:none;border-radius:50%;width:min(78vmin,640px);padding:0;transition:box-shadow 1.3s ease-in-out;position:relative;overflow:hidden;box-shadow:0 0 48px #3c99ff6b,inset 0 0 42px #a3edff29}.sleep-breath:before{content:"";mix-blend-mode:screen;pointer-events:none;background:radial-gradient(circle at 26% 24%,#aefdff3d,#0000 34%),radial-gradient(circle at 74% 62%,#2a81ff3d,#0000 38%),conic-gradient(#7ef8ff29,#1537811a,#7ef8ff29);border-radius:50%;animation:26s linear infinite sleep-swirl;position:absolute;inset:-14%}.sleep-breath:after{content:"";mix-blend-mode:screen;background:radial-gradient(circle at 58% 44%,#f5ffff38,#0000 30%),radial-gradient(circle at 28% 64%,#0f47bc59,#0000 44%);border-radius:50%;position:absolute;inset:0}.sleep-breath-center{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:radial-gradient(circle at 54% 34%,#84d3ff57,#091e53a3 35%,#010a28eb 75%),#04194d80;border-radius:50%;place-items:center;display:grid;position:absolute;inset:19%;box-shadow:inset 0 -16px 40px #031136e0,0 0 44px #105cd033}.sleep-breath-center-text{color:#eef6ffeb;font-family:var(--serif),"Songti SC",serif;letter-spacing:.04em;text-shadow:0 0 22px #45adff47;font-size:clamp(30px,3.4vw,44px)}.sleep-breath:not(.is-running){filter:saturate(1.02)brightness(.88);transform:scale(.9)}.sleep-breath.is-running.phase-inhale{animation:sleep-inhale var(--phase-ms)linear forwards;box-shadow:0 0 56px #45bdff80,inset 0 0 44px #a3edff33}.sleep-breath.is-running.phase-holdIn{filter:saturate(1.16)brightness(1.02);animation:sleep-hold-in var(--phase-ms)ease-in-out infinite;transform:scale(1)}.sleep-breath.is-running.phase-exhale{animation:sleep-exhale var(--phase-ms)linear forwards;box-shadow:0 0 36px #307af14d,inset 0 0 30px #6dbfff24}.sleep-breath.is-running.phase-holdOut{filter:saturate(.96)brightness(.82);animation:sleep-hold-out var(--phase-ms)ease-in-out infinite;transform:scale(.82)}.sleep-note{color:#cbdfff9e;letter-spacing:.06em;margin:2px 0 0;font-size:13px}.sleep-mode-footer{align-items:center;gap:12px;margin-top:10px;display:flex}.sleep-mode-name{color:#d1e2ffe6;letter-spacing:.08em;font-size:14px}.sleep-direct-btn{color:#d6e5fff0;letter-spacing:.04em;cursor:pointer;background:#0a204a8f;border:1px solid #81aef66b;border-radius:999px;margin-top:12px;padding:9px 16px;font-size:13px}.sleep-direct-actions{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.sleep-direct-actions .sleep-direct-btn{margin-top:12px}.sleep-direct-btn:disabled{opacity:.55;cursor:default}.sleep-error{color:#ffcdcdeb;letter-spacing:.03em;margin:4px 0 0;font-size:12px}.sleep-switch{color:#d8e9ffdb;cursor:pointer;z-index:3;background:#06183870;border:1px solid #92b7f257;border-radius:999px;place-items:center;width:40px;height:40px;font-size:24px;line-height:1;display:grid;position:absolute;top:50%;transform:translateY(-50%)}.sleep-switch-left{left:clamp(8px,3vw,22px)}.sleep-switch-right{right:clamp(8px,3vw,22px)}.sleep-page.cosmos.stage-nature{--jungle-photo-opacity:1;--mist-opacity:.95;--jungle-photo-blur:2px}.sleep-page.cosmos.stage-nature .sleep-orb-shell{opacity:0;pointer-events:none;transform:scale(.7)}.sleep-choice-card{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#08193bc7;border:1px solid #7cabf557;border-radius:20px;width:min(380px,88vw);margin-top:6px;padding:14px}.sleep-choice-title{color:#d6e5ffe6;letter-spacing:.04em;margin-bottom:10px;font-size:13px}.sleep-choice-actions{gap:10px;display:flex}.sleep-choice-btn{color:#e2ecfff0;cursor:pointer;background:#0b2558b3;border:1px solid #7cabf552;border-radius:999px;flex:1;padding:9px 12px;font-size:14px}.sleep-choice-btn.primary{background:#1c5dbfb8;border-color:#7bbbff8f}@keyframes sleep-swirl{0%{transform:rotate(0)scale(1)}50%{transform:rotate(180deg)scale(1.03)}to{transform:rotate(360deg)scale(1)}}@keyframes sleep-hold-in{0%{filter:saturate(1.14)brightness();transform:scale(1)}50%{filter:saturate(1.18)brightness(1.04);transform:scale(1.006)}to{filter:saturate(1.14)brightness();transform:scale(1)}}@keyframes sleep-hold-out{0%{filter:saturate(.94)brightness(.8);transform:scale(.82)}50%{filter:saturate(.98)brightness(.84);transform:scale(.826)}to{filter:saturate(.94)brightness(.8);transform:scale(.82)}}@keyframes sleep-inhale{0%{filter:saturate(1.02)brightness(.86);transform:scale(.82)}to{filter:saturate(1.2)brightness(1.07);transform:scale(1)}}@keyframes sleep-exhale{0%{filter:saturate(1.16)brightness(1.02);transform:scale(1)}to{filter:saturate(1.02)brightness(.86);transform:scale(.82)}}.dream-shell{min-height:var(--app-height);position:fixed;inset:0;overflow:hidden}.dream-page{min-height:var(--app-height);height:var(--app-height);color:#e8ebffe6;overscroll-behavior:none;touch-action:pan-x pan-y;background:radial-gradient(circle at 16% 6%,#8c5ed061,#0000 42%),radial-gradient(circle at 84% 12%,#7854cc57,#0000 44%),radial-gradient(circle at 50% 56%,#905cd233,#0000 60%),linear-gradient(#1d1b38 0%,#1b1835 52%,#15142d 100%);padding:clamp(18px,3.2vw,26px);position:relative;overflow:hidden}body.dream-body{overscroll-behavior:none;background:#1b1835;overflow:hidden}.dream-veil{pointer-events:none;z-index:1;filter:blur(26px);opacity:.66;background:radial-gradient(50% 34% at 24% 28%,#8e60d638,#0000 82%),radial-gradient(56% 40% at 80% 34%,#6470e02e,#0000 84%),radial-gradient(52% 46% at 48% 66%,#aa55b624,#0000 84%);animation:68s linear infinite dream-veil-drift;position:absolute;inset:-6%}.dream-grain{pointer-events:none;z-index:2;opacity:.07;mix-blend-mode:screen;background-image:radial-gradient(circle at 18% 12%,#ffffffd9 .35px,#0000 .7px),radial-gradient(circle at 72% 64%,#ffffffbf .3px,#0000 .72px),radial-gradient(circle at 42% 82%,#ffffffb8 .34px,#0000 .78px);background-size:280px 280px,320px 320px,360px 360px;animation:90s linear infinite dream-grain-drift;position:absolute;inset:0}.dream-center-aura{filter:blur(34px);opacity:.34;z-index:3;pointer-events:none;background:radial-gradient(circle,#ce8eff33,#9468e014 45%,#0000 72%);border-radius:999px;width:min(46vw,520px);height:min(32vh,300px);animation:28s ease-in-out infinite dream-aura-pulse;position:absolute;top:58%;left:50%;transform:translate(-50%,-50%)}.dream-head{top:max(12px,env(safe-area-inset-top));left:max(12px,env(safe-area-inset-left));z-index:20;position:fixed}.dream-back{color:#f1ecffeb;letter-spacing:.04em;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);-webkit-tap-highlight-color:transparent;touch-action:manipulation;-webkit-user-select:none;user-select:none;background:#2b224e6b;border:1px solid #e0d6ff5c;border-radius:999px;justify-content:center;align-items:center;min-width:68px;min-height:44px;padding:0 14px;font-size:14px;line-height:1;transition:background .2s,border-color .2s,transform 60ms;display:inline-flex}.dream-back:hover{background:#3228588f;border-color:#ece3ff75}.dream-back:active{transform:scale(.98)}.dream-stage{z-index:8;min-height:calc(var(--app-height) - 72px);flex-direction:column;justify-content:flex-end;align-items:center;gap:12px;padding-bottom:clamp(42px,9vh,92px);display:flex;position:relative}.dream-text{color:#dee3f7a8;letter-spacing:.06em;text-shadow:0 0 16px #9284e72e;margin:0;font-size:13px;animation:24s ease-in-out infinite dream-text-breathe}.dream-error{color:#ffd5d5e0;margin:2px 0 0;font-size:12px}.dream-toggle{display:none!important}.dream-mist{pointer-events:none;filter:blur(34px);opacity:.42;border-radius:999px;position:absolute}.dream-mist-a{background:radial-gradient(circle,#976ee86b,#5f4eb20a 72%);width:min(62vw,740px);height:min(44vh,420px);animation:26s ease-in-out infinite alternate dream-drift-a;top:24%;left:-6%}.dream-mist-b{background:radial-gradient(circle,#bc66d05c,#7049af05 72%);width:min(55vw,620px);height:min(42vh,390px);animation:30s ease-in-out infinite alternate dream-drift-b;top:16%;right:-10%}.dream-mist-c{background:radial-gradient(circle,#7a62cc57,#50469805 76%);width:min(70vw,860px);height:min(46vh,440px);animation:34s ease-in-out infinite alternate dream-drift-c;bottom:-16%;left:8%}.dream-obj{pointer-events:none;z-index:7;opacity:.18;filter:blur(2.2px);transform-origin:50%;position:absolute}.dream-obj-pane{background:linear-gradient(160deg,#d9deff42,#7b6ac61a 55%,#5a4daa05),radial-gradient(circle at 35% 26%,#91b5ff42,#0000 44%);border:1px solid #dedcff29;border-radius:6px;width:min(14vw,176px);height:min(24vh,272px);animation:13s ease-in-out infinite dream-obj-pane;top:28%;left:12%;transform:rotate(7deg);box-shadow:0 0 38px #a88aff2e}.dream-obj-capsule{background:linear-gradient(145deg,#fff4fcb8,#ffc6e842);border-radius:999px;width:60px;height:34px;animation:11s ease-in-out -6s infinite dream-obj-capsule;top:21%;left:28%;box-shadow:0 0 30px #ffafec42}.dream-obj-diamond{background:linear-gradient(135deg,#fffafde6,#ffe7f894);border-radius:9px;width:56px;height:56px;animation:12s ease-in-out -9s infinite dream-obj-diamond;top:20%;right:37%;transform:rotate(45deg);box-shadow:0 0 22px #fff1fc47,18px -8px 22px #ff346057}.dream-obj-ring{border:5px solid #f5f3ffc7;border-radius:999px;width:78px;height:48px;animation:13s ease-in-out -4s infinite dream-obj-ring;top:26%;right:16%;transform:rotate(12deg);box-shadow:inset 0 0 14px #c7bfff73,0 0 28px #dad2ff38}.dream-obj-cube{clip-path:polygon(20% 4%,80% 0%,100% 30%,86% 88%,30% 100%,0% 66%);background:linear-gradient(140deg,#342348cc,#19162ce6);width:68px;height:74px;animation:15s ease-in-out -11s infinite dream-obj-cube;bottom:24%;right:27%;box-shadow:inset -10px -10px 14px #00000042,0 0 18px #884fc233}.dream-obj-shard{clip-path:polygon(50% 0%,100% 100%,0% 84%);background:linear-gradient(155deg,#fcd2ffbd,#bb6de957);width:36px;height:30px;animation:10s ease-in-out -3s infinite dream-obj-shard;top:30%;right:33%;box-shadow:0 0 20px #dd90ff47}.dream-obj-prism{clip-path:polygon(16% 24%,74% 0%,100% 44%,72% 100%,0% 72%);background:linear-gradient(140deg,#f4dbffa3,#b073e247);width:32px;height:32px;animation:11s ease-in-out -7s infinite dream-obj-prism;top:30%;left:34%;box-shadow:0 0 18px #cd8ff43d}.dream-obj-orb{background:radial-gradient(circle at 35% 32%,#b0f3fff2,#43a2ff8f);border-radius:999px;width:12px;height:12px;animation:10s ease-in-out -10s infinite dream-obj-orb;top:33%;right:35%;box-shadow:0 0 16px #5ac5ff73}.dream-fog-front{z-index:6;pointer-events:none;opacity:.24;filter:blur(18px);background:radial-gradient(40% 28% at 24% 42%,#7058b857,#0000 74%),radial-gradient(42% 26% at 74%,#6254b052,#0000 74%),radial-gradient(56% 34% at 52% 70%,#5648a247,#0000 78%);animation:28s ease-in-out infinite dream-fog-pass;position:absolute;inset:-10% -8%}.dream-particles{z-index:4;pointer-events:none;position:absolute;inset:0}.dream-particle{filter:blur(.5px);opacity:.24;background:#ece2ff52;border-radius:999px;width:4px;height:4px;animation:36s ease-in-out infinite dream-particle;position:absolute}.dream-particle.p1{animation-delay:-8s;top:72%;left:14%}.dream-particle.p2{animation-delay:-15s;top:26%;left:22%}.dream-particle.p3{animation-delay:-21s;top:64%;left:46%}.dream-particle.p4{animation-delay:-30s;top:35%;left:65%}.dream-particle.p5{animation-delay:-43s;top:76%;left:82%}.dream-particle.p6{animation-delay:-52s;top:18%;left:74%}@keyframes dream-drift-a{0%{opacity:.26;transform:translate(0,0)scale(1)}50%{opacity:.34;transform:translate(2.5%,-2%)scale(1.04)}to{opacity:.4;transform:translate(4.5%,-3%)scale(1.07)}}@keyframes dream-drift-b{0%{opacity:.24;transform:translate(0,0)scale(1)}50%{opacity:.3;transform:translate(-2%,3%)scale(1.03)}to{opacity:.36;transform:translate(-4%,4.5%)scale(1.06)}}@keyframes dream-drift-c{0%{opacity:.2;transform:translate(0,0)scale(1)}50%{opacity:.28;transform:translate(-1.5%,-1.5%)scale(1.02)}to{opacity:.34;transform:translate(-3%,-2.2%)scale(1.05)}}@keyframes dream-obj-pane{0%{opacity:.12;filter:blur(3.8px);transform:translate(0,0)rotate(7deg)scale(.98)}32%{opacity:.54;filter:blur(1.1px);transform:translate(10px,-6px)rotate(4deg)scale(1.02)}68%{opacity:.2;filter:blur(2.8px);transform:translate(-5px,6px)rotate(9deg)scale(1)}to{opacity:.12;filter:blur(3.8px);transform:translate(-10px,2px)rotate(10deg)scale(.98)}}@keyframes dream-obj-capsule{0%{opacity:.14;filter:blur(3.5px);transform:translate(0,0)rotate(-16deg)scale(.95)}28%{opacity:.6;filter:blur(.8px);transform:translate(7px,-7px)rotate(-8deg)scale(1.03)}64%{opacity:.18;filter:blur(2.6px);transform:translate(-3px,6px)rotate(-14deg)scale(.99)}to{opacity:.14;filter:blur(3.5px);transform:translate(-8px,1px)rotate(-20deg)scale(.94)}}@keyframes dream-obj-diamond{0%{opacity:.12;filter:blur(3.2px);transform:translate(0,0)rotate(45deg)scale(.95)}30%{opacity:.62;filter:blur(.8px);transform:translate(-8px,7px)rotate(40deg)scale(1.04)}66%{opacity:.18;filter:blur(2.6px);transform:translate(5px,-5px)rotate(49deg)scale(.99)}to{opacity:.12;filter:blur(3.3px);transform:translate(8px,-2px)rotate(52deg)scale(.94)}}@keyframes dream-obj-ring{0%{opacity:.14;filter:blur(2.8px);transform:translate(0,0)rotate(12deg)scale(.96)}35%{opacity:.58;filter:blur(.7px);transform:translate(8px,-6px)rotate(7deg)scale(1.03)}70%{opacity:.2;filter:blur(2.2px);transform:translate(-4px,4px)rotate(14deg)scale(.99)}to{opacity:.14;filter:blur(2.9px);transform:translate(-8px,1px)rotate(16deg)scale(.96)}}@keyframes dream-obj-cube{0%{opacity:.12;filter:blur(3.4px);transform:translate(0,0)rotate(-7deg)scale(.96)}34%{opacity:.48;filter:blur(.9px);transform:translate(-10px,8px)rotate(-2deg)scale(1.03)}69%{opacity:.17;filter:blur(2.8px);transform:translate(6px,-5px)rotate(-9deg)scale(1)}to{opacity:.12;filter:blur(3.4px);transform:translate(10px,-1px)rotate(-12deg)scale(.95)}}@keyframes dream-obj-shard{0%{opacity:.14;filter:blur(2.8px);transform:translate(0,0)rotate(18deg)scale(.95)}30%{opacity:.56;filter:blur(.7px);transform:translate(6px,-7px)rotate(12deg)scale(1.04)}64%{opacity:.16;filter:blur(2.6px);transform:translate(-4px,6px)rotate(22deg)scale(1)}to{opacity:.14;filter:blur(2.9px);transform:translate(-6px,1px)rotate(24deg)scale(.95)}}@keyframes dream-obj-prism{0%{opacity:.13;filter:blur(2.9px);transform:translate(0,0)rotate(16deg)scale(.95)}30%{opacity:.52;filter:blur(.7px);transform:translate(8px,-8px)rotate(10deg)scale(1.04)}63%{opacity:.14;filter:blur(2.7px);transform:translate(-5px,6px)rotate(20deg)scale(1)}to{opacity:.13;filter:blur(3px);transform:translate(-8px,2px)rotate(22deg)scale(.95)}}@keyframes dream-obj-orb{0%{opacity:.16;filter:blur(2.8px);transform:translate(0,0)scale(.9)}28%{opacity:.72;filter:blur(.6px);transform:translate(7px,-6px)scale(1.08)}62%{opacity:.18;filter:blur(2.4px);transform:translate(-5px,4px)scale(.98)}to{opacity:.16;filter:blur(2.8px);transform:translate(-7px,1px)scale(.88)}}@keyframes dream-veil-drift{0%{transform:translate(0,0)scale(1)}50%{transform:translate(-1.4%,1.1%)scale(1.03)}to{transform:translate(1.2%,-1.5%)scale(1.06)}}@keyframes dream-grain-drift{0%{transform:translate(0,0)}to{transform:translate(-12px,10px)}}@keyframes dream-aura-pulse{0%{opacity:.26;transform:translate(-50%,-50%)scale(.97)}50%{opacity:.48;transform:translate(-50%,-50%)scale(1.03)}to{opacity:.26;transform:translate(-50%,-50%)scale(.97)}}@keyframes dream-fog-pass{0%{opacity:.28;transform:translate(-2%)scale(1)}50%{opacity:.46;transform:translate(2.2%,-1.2%)scale(1.04)}to{opacity:.32;transform:translate(-1.5%,1.1%)scale(1.02)}}@keyframes dream-text-breathe{0%{opacity:.58}50%{opacity:.82}to{opacity:.58}}@keyframes dream-particle{0%{opacity:.12;transform:translate(0,0)scale(.95)}50%{opacity:.3;transform:translate(-8px,-18px)scale(1.1)}to{opacity:.1;transform:translate(7px,-35px)scale(.95)}}@media (max-width:720px){.page{padding:24px}.topbar{align-items:center}.dash-hero{flex-direction:column;align-items:flex-start}.journal-input{height:60vh}.focus-shell{padding:28px 20px 36px}.focus-stage{gap:18px;transform:translateY(6vh)}.focus-back{align-self:center;font-size:13px}.focus-time{letter-spacing:.03em;font-size:clamp(56px,18vw,96px)}.focus-presets{gap:14px 16px;font-size:15px}.focus-preset{padding:4px 2px}.focus-custom-input{width:56px}.focus-input{padding:12px 0;font-size:16px}.focus-toggle{width:min(240px,90vw);padding:14px 32px;font-size:16px}.sleep-page.cosmos{padding:18px 14px 22px}.sleep-stage{gap:18px}.sleep-switch{width:34px;height:34px;font-size:20px}.sleep-breath{width:min(92vmin,520px)}.dream-page{min-height:var(--app-height);height:var(--app-height);padding:16px 14px 18px}.dream-stage{min-height:calc(var(--app-height) - 62px);padding-bottom:56px}}
