:root{--paper:#f8f2e7;--card:#fffcf5;--ink:#3d332b;--red:#a13d33;--line:#d9cdb9;--muted:#6c5d50;--lunar-preview:#e3d5b8;--serif:"Songti SC","STSong","Noto Serif CJK SC","Source Han Serif SC",serif;--sans:-apple-system,BlinkMacSystemFont,"PingFang SC","Noto Sans CJK SC","Microsoft YaHei",sans-serif}*{box-sizing:border-box}html{background:var(--paper);color:var(--ink);-webkit-text-size-adjust:100%}body{font-family:var(--sans);margin:0;font-size:15px}h1,h2,p{margin:0}button,a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}button{font:inherit;color:inherit;cursor:pointer}a{color:inherit;text-decoration:none}button:disabled{cursor:default}:is(button:focus-visible,a:focus-visible){outline:2px solid var(--red);outline-offset:4px}svg{display:block}.app-shell{width:100%;max-width:420px;min-height:100vh;background:var(--paper);min-height:100dvh;margin:0 auto}.screen{min-height:100vh;min-height:100dvh;padding:24px 23px calc(25px + env(safe-area-inset-bottom));padding-top:calc(24px + env(safe-area-inset-top));flex-direction:column;display:flex}.button{border:1px solid var(--red);background:var(--card);min-height:51px;color:var(--red);letter-spacing:2px;text-align:center;border-radius:9px;justify-content:center;align-items:center;padding:10px 15px;font-size:18px;display:flex}.button.primary{color:#fff9ed;background:var(--red);box-shadow:0 3px #773128}.button:disabled{color:var(--muted);box-shadow:none;background:#e5d9c8;border-color:#c6b69e}.text-link{min-height:44px;color:var(--muted);background:0 0;border:0;justify-content:center;align-items:center;padding:8px;font-size:13px;display:inline-flex}.masthead{flex:none;justify-content:center;align-items:center;height:42px;display:flex;position:relative}.masthead h1{gap:5px;margin-left:-38px;display:flex}.masthead h1 span{border:1px solid var(--red);outline-offset:-4px;width:36px;height:36px;font:600 21px var(--serif);color:var(--red);border-radius:50%;outline:1px solid #a13d3350;place-items:center;display:grid}.settings{background:0 0;border:1px solid #9b8876;border-radius:7px;width:33px;height:33px;padding:5px;position:absolute;top:4.5px;right:0}.settings:after{content:"";position:absolute;inset:-6px}.settings svg{width:22px;height:22px}.settings circle{fill:var(--paper)}.language-row{flex:none;justify-content:flex-end;align-items:center;height:48px;margin-top:3px;display:flex}.language-switch{border:1px solid var(--line);border-radius:4px;display:flex;overflow:hidden}.language-switch button{min-width:49px;height:44px;color:var(--muted);background:0 0;border:0;font-size:13px}.language-switch [aria-pressed=true]{color:var(--red);background:#eedfce;font-weight:600}.calendar{border:1px solid var(--red);flex:none;grid-template-columns:minmax(0,1fr) 106px;min-height:160px;margin-top:3px;display:grid}.lunar{background:var(--lunar-preview);flex-direction:column;justify-content:space-between;gap:10px;padding:12px 11px 10px;display:flex}.year-ganzhi{text-align:center;font:12px var(--serif);letter-spacing:3px}.lunar-date{align-items:center;gap:11px;display:flex}.lunar-date small{font:13px var(--serif);writing-mode:vertical-rl;letter-spacing:2px;border:1px solid;flex:none;padding:5px 3px}.lunar-date strong{font:600 clamp(23px,7.6vw,30px) var(--serif);white-space:nowrap}.ganzhi{text-align:center;font:600 14px var(--serif);letter-spacing:1px;border-top:1px solid;padding-top:9px}.solar{background:var(--red);color:#fff9ee;flex-direction:column;justify-content:center;align-items:center;gap:11px;display:flex}.solar span{font:21px Georgia,serif}.solar strong{letter-spacing:-1px;font:600 30px Georgia,serif}.solar small{font-size:12px}.almanac{margin-top:10px;padding:0 5px}.almanac-row{align-items:center;gap:19px;min-height:67px;padding:10px 0;display:flex}.almanac-row+.almanac-row{border-top:1px solid var(--line)}.almanac-seal{border:1px solid var(--red);outline:1px solid var(--red);outline-offset:-5px;width:44px;height:44px;color:var(--red);font:600 27px var(--serif);border-radius:50%;flex:none;place-items:center;display:grid}.avoid .almanac-seal{color:#6c6054;border-color:#998b7d;outline-color:#998b7d}.almanac-items{flex-wrap:wrap;flex:1;gap:14px 23px;margin:0;padding:0;list-style:none;display:flex}.almanac-items li{writing-mode:vertical-rl;font:22px var(--serif);letter-spacing:2px;line-height:1.1}.almanac-items .empty{writing-mode:horizontal-tb;color:var(--muted);font-size:20px}.energy-list{flex-direction:column;gap:6px;margin-top:13px;display:flex}.energy-row{border:1px solid var(--line);background:#fffcf555;border-radius:6px;grid-template-columns:35px 1fr 42px;align-items:center;gap:8px;min-height:37px;padding:0 9px;font-size:13px;display:grid}.energy-row>span:last-child{text-align:center;color:var(--muted)}.energy-track{background:#e4dacb;border-radius:3px;height:6px}.home-action{margin-top:auto;padding:64px 10px 0}.home-action .button{letter-spacing:8px;padding-left:23px;font-size:22px}.error-message{color:#7b2922;background:#efe2d3;margin-top:16px;padding:12px;font-size:13px;line-height:1.8}.calendar-error{border:1px solid var(--line);padding:24px;line-height:1.8}.select-screen{padding:59px 27px calc(28px + env(safe-area-inset-bottom))}.select-screen h1{text-align:center;font:600 28px var(--serif);letter-spacing:2px}.select-rule{justify-content:center;align-items:center;gap:13px;margin:22px 0 29px;display:flex}.select-rule:before,.select-rule:after{content:"";background:var(--line);width:40px;height:1px}.select-rule i{border:1px solid var(--red);width:5px;height:5px;transform:rotate(45deg)}.zodiac-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 10px;display:grid}.zodiac-choice{border:1px solid var(--line);min-height:113px;font:17px var(--serif);letter-spacing:2px;background:#fffcf55e;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:10px;display:flex;position:relative}.zodiac-choice.chosen{color:var(--red);border:1.5px solid var(--red);background:#f0e1d2}.zodiac-symbol{color:#665348}.zodiac-symbol svg{stroke-width:1.7px;width:35px;height:35px}.chosen .zodiac-symbol{color:var(--red)}.check{font:12px var(--sans);position:absolute;top:4px;right:6px}.select-actions{text-align:center;margin-top:auto;padding-top:64px}.select-actions .button{width:100%;font-size:17px}.select-actions .text-link{margin-top:10px}.startup-screen{text-align:center;justify-content:center;gap:22px}.startup-screen h1{font:600 25px var(--serif)}.startup-screen p{color:var(--muted);overflow-wrap:anywhere;line-height:1.9}.feature-screen{min-height:100vh;min-height:100dvh}.feature-screen .back{align-self:flex-start}.feature-content{text-align:center;flex-direction:column;align-items:center;gap:24px;margin:auto 0;display:flex}.feature-content h1{font:600 27px var(--serif);letter-spacing:2px}.feature-content p{color:var(--muted);font-size:14px}.feature-seal{border:1px solid var(--red);outline:1px solid var(--line);outline-offset:7px;width:96px;height:130px;font:58px var(--serif);color:var(--red);place-items:center;display:grid}.preference-error{color:#fff;z-index:10;background:#6b2f27;border-radius:5px;width:min(90vw,380px);padding:13px 18px;font-size:13px;line-height:1.8;position:fixed;bottom:20px;left:50%;transform:translate(-50%)}@media (max-width:359px){.screen{padding-left:20px;padding-right:20px}.masthead h1{gap:4px;margin-left:-35px}.masthead h1 span{width:31px;height:31px;font-size:18px}.calendar{grid-template-columns:minmax(0,1fr) 86px;min-height:142px}.lunar{padding:11px 8px}.lunar-date{gap:7px}.ganzhi{letter-spacing:0;font-size:13px}.solar strong{font-size:27px}.almanac-row{gap:14px;padding:8px 0}.almanac-seal{width:40px;height:40px;font-size:24px}.almanac-items{gap:13px}.almanac-items li{font-size:20px}.energy-row{grid-template-columns:32px 1fr 42px;gap:6px;min-height:34px;padding:0 7px;font-size:12px}.home-action{padding-top:22px}.select-screen{padding-top:42px;padding-left:22px;padding-right:22px}.zodiac-choice{min-height:96px}.select-actions{padding-top:34px}.select-screen h1{font-size:25px}}@media (max-height:760px) and (min-width:360px){.calendar{min-height:146px}.language-row{height:46px}.energy-row{min-height:34px}.almanac-row{padding-top:8px;padding-bottom:8px}.home-action{padding-top:18px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important}}.select-screen .select-rule{margin:18px 0 23px}.selection-method{border-bottom:1px solid var(--line);grid-template-columns:1fr 1fr;gap:20px;margin-bottom:24px;display:grid}.selection-method button{min-height:47px;color:var(--muted);letter-spacing:1px;background:0 0;border:0;padding:10px 2px;font-size:15px;position:relative}.selection-method button[aria-pressed=true]{color:var(--red);font-weight:600}.selection-method button[aria-pressed=true]:after{content:"";background:var(--red);height:2px;position:absolute;bottom:-1px;left:10px;right:10px}.select-screen .zodiac-choice{min-height:100px}.select-screen .select-actions{padding-top:35px}.birthday-panel{flex-direction:column;display:flex}.birthday-heading{margin:5px 0 27px}.birthday-heading>span{font:600 21px var(--serif);letter-spacing:1px}.birthday-heading p{color:var(--muted);margin-top:9px;font-size:13px;line-height:1.8}.birthday-panel label{align-items:center;gap:9px;margin-bottom:10px;font-size:14px;display:flex}.birthday-panel label span{color:var(--muted);border:1px solid var(--line);border-radius:3px;padding:2px 6px;font-size:11px}.birthday-panel input{box-sizing:border-box;-webkit-appearance:none;appearance:none;background:var(--card);width:100%;min-width:0;max-width:100%;min-height:58px;color:var(--ink);font:20px var(--sans);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;border:1px solid #b9a78f;border-radius:7px;padding:12px 14px;display:block}.birthday-panel input::-webkit-date-and-time-value{text-align:left;min-height:25px}.birthday-panel input:focus{outline:2px solid var(--red);outline-offset:3px}.birthday-panel input[aria-invalid=true]{border-color:var(--red)}.birthday-privacy{color:var(--muted);margin-top:10px;font-size:12px;line-height:1.8}.birthday-validation{color:var(--red);margin-top:8px;font-size:13px;line-height:1.7}.birthday-match{border-top:1px solid var(--line);border-bottom:1px solid var(--line);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:9px;min-height:191px;margin:25px 0 20px;padding:18px 6px;display:flex}.birthday-match strong{font:600 24px var(--serif);letter-spacing:3px;color:var(--muted)}.birthday-match.ready strong,.birthday-match.ready .zodiac-symbol{color:var(--red)}.birthday-match .zodiac-symbol svg{width:39px;height:39px}.match-caption{color:var(--muted);font-size:12px}.match-state{color:var(--muted);font-size:12px;line-height:1.8}.match-placeholder{font:36px var(--serif);color:#ad967c;margin-bottom:3px}.birthday-save{letter-spacing:1px;min-height:46px;font-size:15px}@media (max-width:359px){.select-screen .zodiac-choice{min-height:88px}.selection-method{gap:10px;margin-bottom:20px}.selection-method button{font-size:14px}.birthday-heading>span{font-size:19px}.birthday-heading{margin-bottom:22px}.birthday-match{min-height:173px}.select-screen .select-actions{padding-top:28px}}.home-action .button{width:100%}.energy-track{overflow:hidden}.energy-track i{border-radius:inherit;background:#9f8972;height:100%;display:block}.energy-row.primary{border-color:var(--red);background:#f2e4d5}.energy-row.primary>span:first-child{color:var(--red);font-weight:600}.energy-row.primary .energy-track i{background:var(--red)}.energy-row.primary .energy-label{background:var(--red);color:var(--card);border-radius:12px;padding:3px 4px;font-size:11px}.energy-row.weak{color:#697b80;background:#eef0eb;border-color:#b9c3c1}.energy-row.weak .energy-track i{background:#91a4a6}.energy-row.weak .energy-label{color:#586e73;font-size:11px}.daily-loading{color:var(--muted);text-align:center;padding:34px 0;font-size:13px}.shake-screen .back,.maxim-screen .back{align-self:flex-start;padding-left:0}.shake-center{text-align:center;margin:auto 0;padding:46px 0 36px}.shake-center h1{font:600 26px var(--serif);letter-spacing:2px;margin-top:48px}.shake-status{color:var(--muted);max-width:300px;min-height:54px;margin:17px auto 0;font-size:14px;line-height:1.9}.bamboo-art{border:2px solid var(--red);width:100px;height:127px;color:var(--red);font:48px var(--serif);transform-origin:50% 90%;background:#f0e2ca;border-radius:5px 5px 20px 20px;place-items:center;margin:78px auto 0;display:grid;position:relative}.bamboo-art i{z-index:0;background:#d4b88d;border:1px solid #826a4c;border-radius:3px;width:9px;height:84px;position:absolute;top:-82px}.bamboo-art i:first-child{left:13px;transform:rotate(-9deg)}.bamboo-art i:nth-child(2){top:-88px;left:36px}.bamboo-art i:nth-child(3){top:-86px;left:60px;transform:rotate(4deg)}.bamboo-art i:nth-child(4){top:-99px;left:83px;transform:rotate(15deg)}.bamboo-art.listening{animation:1.7s ease-in-out infinite gentle-shake}@keyframes gentle-shake{0%,65%,to{transform:rotate(0)}15%,45%{transform:rotate(-7deg)}30%{transform:rotate(7deg)}}.shake-actions{text-align:center;flex-direction:column;gap:12px;padding:15px 0 12px;display:flex}.shake-instruction{color:var(--muted);font-size:14px;line-height:1.8}.tap-fallback{align-self:center}.fortune-screen{padding-top:calc(71px + env(safe-area-inset-top))}.fortune-paper{outline:1px solid var(--line);outline-offset:-9px;background:var(--card);width:100%;height:clamp(440px,100dvh - 200px,624px);color:var(--ink);border:1.5px solid #77634f;border-radius:13px;flex:none;justify-content:center;align-items:center;padding:35px 15px;display:flex;position:relative;box-shadow:0 3px #4d392b15}.fortune-face strong{font:500 clamp(110px,36vw,150px)/1.3 var(--serif);writing-mode:vertical-rl;letter-spacing:.18em;padding-top:.18em}.paper-dot{font:30px var(--serif);color:var(--red);line-height:1;position:absolute;left:50%;transform:translate(-50%)}.paper-dot.top{top:14px}.paper-dot.bottom{bottom:20px}.flip-prompt{background:0 0;border:0;flex-direction:column;align-items:center;gap:9px;min-height:88px;margin:22px auto 0;padding:8px;display:flex}.flip-prompt>span{color:var(--red);font-size:35px;line-height:1}.flip-prompt strong{font:600 18px var(--serif)}.flip-prompt small{color:var(--muted);font-size:12px;line-height:1.8}.maxim-screen{padding-top:calc(18px + env(safe-area-inset-top))}.maxim-screen .back{flex:none;height:44px;margin-bottom:9px}.maxim-words{flex-direction:row-reverse;justify-content:center;gap:clamp(35px,10vw,60px);display:flex}.maxim-words span{writing-mode:vertical-rl;font:500 clamp(42px,13vw,56px)/1.25 var(--serif);letter-spacing:.19em}.maxim-actions{text-align:center;margin-top:24px}.button-pair{grid-template-columns:1fr 1fr;gap:14px;display:grid}.maxim-actions p{color:var(--muted);margin-top:15px;font-size:12px;line-height:1.8}@media (max-width:359px){.fortune-paper{height:440px}.fortune-face strong{font-size:112px}.maxim-words{gap:35px}.maxim-words span{font-size:43px}.shake-center h1{font-size:22px}}@media (prefers-reduced-motion:reduce){.bamboo-art.listening{animation:none}}.coin-stage{text-align:center;margin:auto 0;padding:55px 0}.single-coin{aspect-ratio:1;color:#634b2c;outline-offset:-17px;background:#ead8b1;border:6px double #ad8c4f;border-radius:50%;outline:1px solid #b79c6a;width:min(72vw,290px);font:600 clamp(58px,18vw,85px) Georgia,serif;box-shadow:0 5px #b29a70}.single-coin:disabled{cursor:default;color:#8f764a}.single-coin.tossing{animation:.35s linear infinite coin-spin}.coin-stage>p,.entertainment{color:var(--muted);margin-top:32px;font-size:13px;line-height:1.9}.entertainment{text-align:center;margin-bottom:18px}@keyframes coin-spin{to{transform:rotateY(360deg)}}.poster-screen{padding:18px 23px 30px}.poster-screen header{align-items:center;min-height:50px;margin-bottom:18px;display:flex;position:relative}.poster-screen header h1{font:600 23px var(--serif);margin:auto}.poster-screen .back{padding-left:0;font-size:12px;position:absolute;top:0;left:0}.poster-frame{aspect-ratio:750/1220;border:1px solid var(--line);background:var(--card);width:100%;overflow:hidden}.poster-frame img{object-fit:contain;width:100%;height:100%;display:block}.poster-placeholder{text-align:center;height:100%;color:var(--muted);flex-direction:column;justify-content:center;align-items:center;gap:20px;padding:24px;line-height:1.9;display:flex}.poster-actions{margin-top:22px}.poster-actions>p{color:var(--muted);margin-bottom:16px;font-size:13px;line-height:1.8}.poster-note{color:var(--muted);text-align:center;margin-top:16px;font-size:12px;line-height:1.8}@media (max-width:359px){.poster-screen{padding-left:17px;padding-right:17px}.poster-screen header h1{font-size:20px}.poster-screen .back{font-size:11px}}@media (prefers-reduced-motion:reduce){.single-coin.tossing{animation:none}}
