@font-face{font-family:FontQu Smile;src:url(/fonts/fontqu-smile.woff2)format("woff2"),url(/fonts/fontqu-smile.ttf)format("truetype");font-style:normal;font-weight:400;font-display:block}:root{color:#171714;font-synthesis:none;--bg:#fff;--surface:#fff;--paper:#fff;--paper-light:#fff;--text:#171714;--muted:#77746c;--faint:#a5a198;--border:#d8d6cf;--line:#292923;--tea:#91764c;--fruit:#d7a43d;--leaf:#718166;--font-hand:"FontQu Smile", "FontQu Smile 常规", "字制区 喜脉喜欢体", "字制区喜脉喜欢体", "xihuanti", "hwmct", "Kaiti SC", "STKaiti", cursive;--radius-control:18px;--radius-soft:26px;background:#fff;font-family:FontQu Smile,FontQu Smile 常规,字制区 喜脉喜欢体,字制区喜脉喜欢体,xihuanti,hwmct,Kaiti SC,STKaiti,cursive}*{box-sizing:border-box}html{background:var(--bg);scroll-behavior:smooth}body{background:var(--bg);min-width:320px;min-height:100dvh;margin:0}button,textarea,input{font:inherit}button{color:inherit}button:focus-visible,textarea:focus-visible,input:focus-visible{outline-offset:3px;outline:2px solid #665536}.app{min-height:100dvh;overflow-x:hidden}.page-shell{width:min(100% - 40px,820px);margin:0 auto}.site-header{height:82px;padding:max(22px, env(safe-area-inset-top)) max(20px, calc((100vw - 1120px)/2));z-index:10;grid-template-columns:1fr auto 1fr;align-items:center;display:grid;position:relative}.brand{font-family:var(--font-hand);letter-spacing:.08em;cursor:pointer;background:0 0;border:0;justify-self:start;padding:0;font-size:22px;font-weight:500;transform:rotate(-2deg)}.brand-dot{color:var(--fruit)}.site-header>.brand:nth-child(2){justify-self:center}.home-header>.brand{grid-column:2;justify-self:center}.home-header>.profile-link{grid-column:3}.profile-link{cursor:pointer;color:#3f3e39;font-family:var(--font-hand);background:0 0;border:0;justify-self:end;align-items:center;gap:8px;padding:8px 0;font-size:15px;display:flex}.icon-button{border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:50%;place-items:center;width:40px;height:40px;display:grid}.home-page{min-height:calc(100dvh - 82px);padding:5vh 0 max(36px, env(safe-area-inset-bottom));flex-direction:column;display:flex}.home-hero{grid-template-columns:minmax(0,.9fr) minmax(300px,1.1fr);align-items:center;column-gap:clamp(36px,7vw,92px);min-height:390px;display:grid;transform:translate(clamp(32px,3vw,46px))}.hero-copy{z-index:1;order:-1;position:relative}.eyebrow{color:#88847a;font-family:var(--font-hand);letter-spacing:.16em;transform-origin:0;margin:0 0 18px;font-size:13px;transform:rotate(-1deg)}.hero-copy h1{font-family:var(--font-hand);letter-spacing:.035em;margin:0;font-size:clamp(40px,5vw,60px);font-weight:500;line-height:1.22}.subtitle{font-family:var(--font-hand);color:#66635c;letter-spacing:.05em;margin:20px 0 0;font-size:19px}.botanical{z-index:0;justify-self:end;width:100%;max-width:390px;position:relative}.botanical svg{width:100%;animation:4.8s ease-in-out infinite alternate collage-breathe;overflow:visible}.tea-hero-art{background:0 0;height:360px;animation:4.8s ease-in-out infinite alternate collage-breathe;overflow:visible}.tea-hero-art picture{width:100%;height:100%;display:block}.tea-hero-art img{object-fit:contain;object-position:center;width:100%;height:100%;display:block;transform:scale(1.04)}.sketch,.fruit-line,.doodle{fill:none;stroke:#25241f;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.leaf{fill:#9aa187;stroke:#34372c;stroke-width:1.3px;transform-origin:50%;animation:3.8s ease-in-out infinite alternate leaf-sway;transform:rotate(-7deg)}.leaf-two{fill:#c4c2a5}.fruit{stroke:#5b4a2d;stroke-width:1.3px}.fruit-one{fill:#bd8c45}.fruit-two{fill:#d3a55d}.hand-note{font-family:var(--font-hand);letter-spacing:.12em;transform-origin:50%;font-size:15px;transform:rotate(-7deg)}.composer-wrap{width:min(100%,680px);margin:38px auto 0}.composer{border-radius:var(--radius-soft);background:#fff;border:1px solid #aaa69d;align-items:flex-end;min-height:118px;padding:17px;transition:border-color .2s,transform .12s,box-shadow .25s;display:flex}.composer:focus-within{border-color:#111;box-shadow:inset 0 -2px #111}.composer-error{border-color:#b95d53;animation:.2s ease-in-out 2 shake}.composer textarea{resize:none;min-height:76px;line-height:1.65;font-family:var(--font-hand);color:var(--text);background:0 0;border:0;outline:0;flex:1;padding:1px 16px 1px 2px;font-size:18px}.composer textarea::placeholder{color:#a5a198}.send-button{color:#fff;cursor:pointer;background:#302f29;border:0;border-radius:50%;flex:none;place-items:center;width:44px;height:44px;transition:transform .18s,opacity .2s,background .2s;display:grid}.send-button:not(:disabled){animation:2.8s ease-in-out infinite soft-pulse}.send-button:active{transform:scale(.96)}.send-button:disabled{opacity:.25;cursor:default}.input-error{color:#a34f48;min-height:20px;font-family:var(--font-hand);margin:10px 8px 0;font-size:14px}.feedback-strip{border:0;border-top:1px solid var(--border);border-bottom:1px solid var(--border);text-align:left;cursor:pointer;background:0 0;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;width:min(100%,680px);margin:30px auto 0;padding:15px 2px;display:grid}.feedback-strip span:nth-child(2){flex-direction:column;gap:4px;display:flex}.feedback-strip strong{font-family:var(--font-hand);letter-spacing:.03em;font-size:16px;font-weight:500}.feedback-strip small{color:var(--muted);font-size:12px}.unread-dot{background:#d75f58;border-radius:50%;width:7px;height:7px}.disclaimer{text-align:center;color:#aaa69e;margin:auto auto 0;padding-top:28px;font-size:11px}.app-footer{width:min(100% - 40px,820px);padding:22px 0 max(24px, env(safe-area-inset-bottom));color:#aaa69e;border-top:1px solid #eceae5;justify-content:space-between;align-items:center;gap:18px;margin:18px auto 0;font-size:11px;display:flex}.app-footer nav{align-items:center;gap:8px;display:flex}.app-footer button{color:#77746c;font-family:var(--font-hand);cursor:pointer;background:0 0;border:0;padding:5px 2px;font-size:12px}.loading-page{flex-direction:column;justify-content:center;align-items:center;min-height:calc(100dvh - 82px);padding-bottom:15vh;display:flex}.loading-art{width:112px;height:104px;margin-bottom:30px;position:relative}.cup-line{border:2px solid #25241f;border-top:0;border-radius:0 0 28px 28px;width:72px;height:49px;position:absolute;bottom:4px;left:19px}.cup-line:after{content:"";border:2px solid #25241f;border-left:0;border-radius:0 18px 18px 0;width:25px;height:23px;position:absolute;top:7px;right:-25px}.cup-line span{transform-origin:0;background:#25241f;height:2px;animation:1.4s ease-in-out infinite alternate drawline;position:absolute;top:-2px;left:-12px;right:-12px}.steam{border-left:2px solid #25241f;border-radius:50%;width:22px;height:42px;animation:1.6s ease-in-out infinite steam;position:absolute;top:0}.steam-a{left:42px}.steam-b{animation-delay:.3s;left:65px}.loading-label{font-family:var(--font-hand);letter-spacing:.06em;margin:0;font-size:24px}.loading-input{color:var(--muted);font-family:var(--font-hand);margin:16px 0 26px;font-size:15px}.pencil-track{background:#dedbd3;width:min(250px,70vw);height:1px}.pencil-track span{background:#2f2e29;height:1px;transition:width .45s;display:block}.report-page,.profile-page{padding:34px 0 max(48px, env(safe-area-inset-bottom))}.drink-paper{border-radius:var(--radius-soft);background:#fff;border:1px solid #e4e1da;justify-content:space-between;align-items:flex-start;min-height:178px;padding:34px 38px;display:flex;position:relative;overflow:hidden}.drink-paper:after,.profile-paper:after{content:"";opacity:.2;pointer-events:none;background-image:radial-gradient(#a39d8d .6px,#0000 .6px);background-size:7px 7px;position:absolute;inset:0}.section-kicker{letter-spacing:.14em;color:var(--muted);margin:0 0 17px;font-size:11px}.drink-paper h2{font-family:var(--font-hand);letter-spacing:.05em;margin:0 0 12px;font-size:32px;font-weight:500}.drink-paper p:not(.section-kicker){color:#69665e;margin:6px 0;font-size:13px}.drink-paper .compound-summary{color:#4c493f!important}.text-icon-button{font-family:var(--font-hand);cursor:pointer;z-index:1;background:#ffffff73;border:1px solid #aaa495;border-radius:999px;align-items:center;gap:5px;padding:7px 11px;font-size:13px;display:flex}.prediction-hero{min-height:440px;padding:92px 7% 60px;position:relative}.sleep-label{font-family:var(--font-hand);letter-spacing:.05em;margin:0 0 12px;font-size:19px}.sleep-time{letter-spacing:-.035em;font-variant-numeric:tabular-nums;align-items:baseline;gap:14px;font-size:clamp(48px,8vw,72px);font-weight:400;display:flex}.sleep-time small{color:var(--muted);letter-spacing:.06em;font-size:14px}.impact-tag{font-family:var(--font-hand);letter-spacing:.06em;background:#f6f0df;border:1px solid #777264;border-radius:999px;margin-top:20px;padding:8px 14px;font-size:14px;display:inline-block}.prediction-copy{color:#5e5b53;max-width:570px;margin:34px 0 0;font-size:15px;line-height:1.85}.sleep-doodle{font-family:var(--font-hand);color:#7d755e;letter-spacing:.14em;animation:3.2s ease-in-out infinite alternate doodle-float;position:absolute;bottom:40px;right:7%;transform:rotate(-9deg)}.report-section{border-top:1px solid #282823;padding:42px 0 64px}.section-heading{align-items:baseline;gap:18px;margin-bottom:38px;display:flex}.section-heading span{color:#99958b;font-size:11px}.section-heading h2{font-family:var(--font-hand);letter-spacing:.05em;margin:0;font-size:27px;font-weight:500}.chart{width:100%}.chart svg{width:100%;height:auto;overflow:visible}.chart-grid{stroke:#ddd9cf;stroke-width:1px;stroke-dasharray:3 7}.chart-area{fill:url(#teaFade)}.chart-line{fill:none;stroke:#292821;stroke-width:2px;stroke-linecap:round;stroke-dasharray:760;stroke-dashoffset:760px;animation:1.25s ease-out .18s forwards chart-draw}.chart circle{fill:#fcfbf7;stroke:#292821;stroke-width:2px}.chart-labels{grid-template-columns:repeat(4,1fr);gap:8px;margin-top:5px;display:grid}.chart-labels span{flex-direction:column;gap:6px;display:flex}.chart-labels b{font-size:12px;font-weight:500}.chart-labels small{color:var(--muted);font-size:10px}.chart-note{color:#99958b;margin-top:30px;font-size:11px}.factor-list{border-top:1px solid var(--border)}.factor-row{border-bottom:1px solid var(--border);grid-template-columns:92px 1fr auto;align-items:start;gap:20px;padding:25px 0;display:grid}.factor-row h3{font-family:var(--font-hand);margin:0 0 7px;font-size:19px;font-weight:500}.factor-row p{color:var(--muted);margin:0;font-size:13px;line-height:1.65}.factor-row>small{color:#99958b;font-size:11px}.factor-mark{width:fit-content;font-family:var(--font-hand);font-size:13px;display:inline-block;position:relative}.factor-mark:after{content:"";border:1px solid #48453c;border-radius:52% 43% 48% 45%;position:absolute;inset:-6px -9px;transform:rotate(-5deg)}.mark-1:after{transform:rotate(4deg)}.mark-2:after{border-style:dashed}.confidence-line{border-top:1px solid var(--border);border-bottom:1px solid var(--border);justify-content:space-between;padding:19px 0;font-size:13px;display:flex}.confidence-line strong{font-weight:500}.feedback-cta{border-radius:var(--radius-control);width:100%;font-family:var(--font-hand);cursor:pointer;background:#fff;border:1px solid #e4e1da;justify-content:space-between;align-items:center;margin-top:32px;padding:21px 22px;font-size:17px;display:flex}.report-actions{align-items:center;gap:18px;margin-top:44px;display:flex}.outline-button{cursor:pointer;min-width:160px;height:52px;font-family:var(--font-hand);letter-spacing:.04em;background:#fff;border:1px solid #777264;border-radius:999px;font-size:16px}.plain-button{background:var(--paper-light);cursor:pointer;color:#555249;font-family:var(--font-hand);border:0;border-radius:999px;padding:14px 20px;font-size:15px}.sheet-backdrop{z-index:40;background:#19181433;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.feedback-sheet{width:min(100%,620px);max-height:90dvh;padding:22px 32px max(28px, env(safe-area-inset-bottom));background:#fff;border-radius:20px 20px 0 0;animation:.24s ease-out sheetup;position:relative;overflow-y:auto;box-shadow:0 -18px 60px #2a261921}.sheet-handle{background:#cfccc4;border-radius:2px;width:44px;height:3px;margin:0 auto 28px}.sheet-close{cursor:pointer;background:0 0;border:0;position:absolute;top:24px;right:25px}.feedback-sheet h2{font-family:var(--font-hand);letter-spacing:.04em;margin:0 0 12px;font-size:31px;font-weight:500}.sheet-context{color:var(--muted);margin-bottom:28px;font-size:13px;line-height:1.7}.field-label,fieldset legend{font-family:var(--font-hand);margin-bottom:12px;font-size:17px;display:block}.time-field{border-radius:var(--radius-control);background:#fffdf8;border:1px solid #827c6e;align-items:center;gap:12px;height:54px;margin-bottom:28px;padding:0 15px;display:flex}.time-field input{background:0 0;border:0;outline:0;flex:1;font-size:19px}fieldset{border:0;margin:0 0 27px;padding:0}fieldset legend small{color:var(--faint);margin-left:8px;font-size:10px}.ease-grid{grid-template-columns:repeat(2,1fr);gap:9px;display:grid}.ease-grid button,.chip-list button{border:1px solid var(--border);min-height:46px;font-family:var(--font-hand);cursor:pointer;background:#fff;border-radius:999px;font-size:15px;transition:transform .15s,background .2s}.ease-grid button:hover,.chip-list button:hover{transform:translateY(-1px)}.ease-grid button.selected,.chip-list button.selected{background:var(--paper-light);border-color:#77705e;box-shadow:inset 0 0 0 1px #77705e}.chip-list{flex-wrap:wrap;gap:8px;display:flex}.chip-list button{min-height:38px;padding:0 12px;font-size:12px}.submit-feedback{color:#fff;width:100%;height:52px;font-family:var(--font-hand);cursor:pointer;background:#454239;border:1px solid #454239;border-radius:999px;font-size:17px}.later-button{width:100%;color:var(--muted);cursor:pointer;font-family:var(--font-hand);background:0 0;border:0;padding:15px;font-size:14px}.feedback-success{flex-direction:column;justify-content:center;align-items:center;min-height:340px;display:flex}.feedback-success h2{margin-top:18px}.feedback-success p{color:var(--muted)}.legal-sheet,.delete-sheet{width:min(100%,620px);max-height:90dvh;padding:30px 34px max(30px, env(safe-area-inset-bottom));background:#fff;border-radius:24px 24px 0 0;animation:.24s ease-out sheetup;position:relative;overflow-y:auto;box-shadow:0 -18px 60px #2a261921}.legal-sheet h2,.delete-sheet h2{font-family:var(--font-hand);letter-spacing:.04em;margin:0 42px 22px 0;font-size:30px;font-weight:500}.legal-copy{gap:22px;margin-bottom:30px;display:grid}.legal-copy h3{font-family:var(--font-hand);margin:0 0 7px;font-size:17px;font-weight:500}.legal-copy p,.delete-sheet>p:not(.eyebrow){color:var(--muted);margin:0;font-size:13px;line-height:1.85}.delete-sheet{max-width:520px}.delete-actions{grid-template-columns:1fr 1fr;gap:12px;margin-top:30px;display:grid}.delete-actions .outline-button{width:100%}.danger-button{color:#fff;min-height:48px;font-family:var(--font-hand);cursor:pointer;background:#a9564e;border:1px solid #a9564e;border-radius:999px;font-size:16px}.danger-button:disabled,.delete-actions button:disabled{opacity:.55;cursor:wait}.delete-error{color:#a34f48!important;margin-top:18px!important}.profile-intro{padding:52px 0 45px}.profile-intro h1{font-family:var(--font-hand);letter-spacing:.05em;margin:0 0 13px;font-size:44px;font-weight:500}.profile-intro>p:last-child{color:var(--muted);font-size:14px}.profile-paper{border-radius:var(--radius-soft);background:#fff;border:1px solid #e4e1da;justify-content:space-between;min-height:190px;padding:38px;display:flex;position:relative;overflow:hidden}.profile-paper>div,.profile-paper>span{z-index:1;position:relative}.profile-paper small{color:var(--muted);margin-bottom:20px;display:block}.profile-paper strong{font-family:var(--font-hand);letter-spacing:.04em;font-size:32px;font-weight:500;display:block}.profile-paper p{color:var(--muted);margin-top:30px;font-size:12px}.hand-circle{font-family:var(--font-hand);align-self:flex-start;margin:16px 8px 0 0;font-size:14px;animation:3.4s ease-in-out infinite alternate doodle-float;transform:rotate(-7deg)}.hand-circle:after{content:"";border:1px solid #49473e;border-radius:50%;position:absolute;inset:-9px -13px}.profile-metrics{border-bottom:1px solid #292923;grid-template-columns:repeat(3,1fr);padding:46px 0;display:grid}.profile-metrics div{flex-direction:column;gap:12px;display:flex}.profile-metrics strong{font-size:clamp(21px,4vw,31px);font-weight:400}.profile-metrics span{color:var(--muted);font-size:12px}.profile-feedback{width:100%;margin:37px 0 0}.history-section{padding:60px 0 0}.history-title{justify-content:space-between;align-items:baseline;display:flex}.history-title h2{font-family:var(--font-hand);letter-spacing:.04em;margin:0;font-size:27px;font-weight:500}.history-title span{color:var(--muted);font-size:12px}.history-filters{border-bottom:1px solid var(--border);gap:26px;margin:30px 0 12px;display:flex}.history-filters button{color:var(--faint);font-family:var(--font-hand);cursor:pointer;background:0 0;border:0;border-radius:999px;padding:7px 13px;font-size:15px}.history-filters button.active{color:var(--text);background:var(--paper-light)}.history-row{border-bottom:1px solid var(--border);padding:19px 0;position:relative}.history-main{text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:84px 1fr auto;align-items:center;gap:16px;width:100%;padding:0 84px 0 0;display:grid}.history-date{color:var(--muted);font-size:12px}.history-main>span:nth-child(2){flex-direction:column;gap:6px;display:flex}.history-main strong{font-weight:500}.history-main small{color:var(--muted);font-size:11px}.record-status{font-family:var(--font-hand);cursor:pointer;background:#fffdf8;border:1px solid #777264;border-radius:999px;padding:6px 10px;font-size:12px;position:absolute;top:27px;right:24px}.record-status.done{color:var(--leaf);background:#fffdf8;border:0;right:42px}.reveal{animation:.42s ease-out both reveal}.delay-1{animation-delay:70ms}.delay-2{animation-delay:.14s}.delay-3{animation-delay:.2s}@keyframes reveal{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes sheetup{0%{opacity:.6;transform:translateY(25px)}}@keyframes steam{0%,to{opacity:.2;transform:translateY(5px)rotate(-8deg)}50%{opacity:1;transform:translateY(-5px)rotate(7deg)}}@keyframes drawline{0%{transform:scaleX(.15)}to{transform:scaleX(1)}}@keyframes shake{25%{transform:translate(-3px)}75%{transform:translate(3px)}}@keyframes collage-breathe{0%{transform:translateY(0)rotate(-.3deg)}to{transform:translateY(-5px)rotate(.4deg)}}@keyframes leaf-sway{0%{transform:rotate(-10deg)}to{transform:rotate(-3deg)}}@keyframes doodle-float{0%{transform:translateY(0)rotate(-9deg)}to{transform:translateY(-4px)rotate(-5deg)}}@keyframes soft-pulse{0%,to{box-shadow:0 0 #91764c00}50%{box-shadow:0 0 0 6px #91764c1a}}@keyframes chart-draw{to{stroke-dashoffset:0}}@media (width<=700px){.page-shell{width:min(100% - 36px,620px)}.site-header{height:72px;padding-left:18px;padding-right:18px}.profile-link span{display:none}.home-page{min-height:calc(100dvh - 72px);padding-top:3vh}.home-hero{grid-template-columns:1fr 45%;align-items:center;column-gap:16px;min-height:330px;transform:none}.hero-copy{z-index:2}.hero-copy h1{font-size:clamp(34px,10vw,45px)}.botanical{opacity:1;width:132%;max-width:none;transform:translate(18%,-1%)}.tea-hero-art{height:280px}.tea-hero-art img{object-position:center;transform:scale(1.03)}.composer-wrap{margin-top:68px}.prediction-hero{min-height:410px;padding:76px 2px 54px}.sleep-time{gap:8px;font-size:clamp(43px,12vw,62px)}.drink-paper{margin-left:-18px;margin-right:-18px;padding:27px 22px}.text-icon-button{position:absolute;top:26px;right:20px}.section-heading{margin-bottom:28px}.factor-row{grid-template-columns:78px 1fr;gap:15px}.factor-row>small{grid-column:2}.chart-labels small{max-width:65px}.profile-intro{padding-top:34px}.profile-paper{margin-left:-18px;margin-right:-18px;padding:28px 22px}.history-main{grid-template-columns:70px 1fr;padding-right:76px}.history-main svg{display:none}.record-status,.record-status.done{right:2px}.app-footer{flex-direction:column;align-items:flex-start;width:calc(100% - 36px)}.legal-sheet,.delete-sheet{padding-left:24px;padding-right:24px}}@media (width<=380px){.page-shell{width:calc(100% - 30px)}.composer{min-height:108px}.profile-metrics{gap:10px}.profile-metrics strong{font-size:18px}.report-actions{flex-direction:column;align-items:stretch}.outline-button{width:100%}.history-main{grid-template-columns:1fr;gap:6px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
