@import "https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@300;400;500;600&family=Noto+Serif+SC:wght@400;500;600;700&display=swap";:root{color:#272723;font-synthesis:none;text-rendering:optimizelegibility;--ink:#20211e;--ink-soft:#5f5d55;--paper:#e9e3d6;--paper-light:#f2ede3;--cinnabar:#9f3028;--line:#2d2b2529;background:#e7e1d4;font-family:Noto Sans SC,Microsoft YaHei,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{min-width:320px;min-height:100vh;margin:0}button,textarea{font:inherit}button{color:inherit}button:focus-visible,textarea:focus-visible{outline:2px solid var(--cinnabar);outline-offset:3px}::selection{background:#9f302833}body:before{content:"";pointer-events:none;opacity:.18;z-index:100;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.3'/%3E%3C/svg%3E");position:fixed;inset:0}#root{min-height:100vh}.app{color:#26302a;isolation:isolate;background:#e6e8df;grid-template-rows:auto minmax(0,1fr) auto;min-height:100svh;display:grid;position:relative;overflow-x:hidden}.ink-background,.base-layer,.scene-layer,.ripple-canvas,.paper-texture{pointer-events:none;position:absolute;inset:0}.ink-background{z-index:-3;overflow:hidden}.base-layer{background:radial-gradient(circle at 50% 42%,#fffff8b8,#0000 31%),linear-gradient(145deg,#eef0e8 0%,#e3e7dd 54%,#d7ddd3 100%)}.scene-layer{object-fit:cover;object-position:center bottom;-webkit-user-select:none;user-select:none;width:100%;height:100%}.scene-base{z-index:0}.scene-mid,.scene-left,.scene-right{z-index:1;mix-blend-mode:multiply;filter:contrast(1.3)brightness(1.06)saturate(.72);transform-origin:bottom;will-change:transform;transform:scale(1.025)}.scene-mid{opacity:.47;animation:32s ease-in-out infinite alternate asset-mid-drift}.scene-left{opacity:.68;transform-origin:0 100%;animation:24s ease-in-out infinite alternate asset-left-drift}.scene-right{opacity:.72;transform-origin:100% 100%;animation:20s ease-in-out infinite alternate asset-right-drift}.ripple-canvas{z-index:3;opacity:1;width:100%;height:100%}.paper-texture{z-index:4;mix-blend-mode:multiply;opacity:.18;background:url(/background/paper-noise.png) 50%/640px 640px}.header{border-bottom:1px solid #26302a1f;align-items:center;gap:13px;height:88px;padding:0 clamp(24px,5vw,76px);display:flex}.brand-seal{color:#bd6257;border:1px solid #a9463b;place-items:center;width:38px;height:38px;font:500 21px Noto Serif SC,Songti SC,SimSun,serif;display:grid;transform:rotate(-2deg)}.header h1,.birth-panel h2,.dialog-head h2{letter-spacing:0;margin:0;font-family:Noto Serif SC,Songti SC,SimSun,serif;font-weight:500}.header h1{letter-spacing:.27em;font-size:18px;line-height:1.1}.header p{color:#26302a7a;letter-spacing:.2em;margin:6px 0 0;font-size:8px}.chat-stage{align-items:center;min-height:0;padding:20px clamp(18px,4vw,64px);display:grid}.chat-layout{grid-template-columns:318px minmax(0,1fr);gap:16px;width:min(1120px,100%);height:min(500px,100svh - 170px);min-height:420px;margin:0 auto;display:grid}.birth-panel,.dialog-panel{-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);background:#efece2ad;border:1px solid #26302a29;border-radius:8px;min-width:0;box-shadow:0 18px 54px #252b2521}.birth-panel{flex-direction:column;padding:28px;display:flex}.panel-kicker{color:#8b3f36;letter-spacing:.22em;text-transform:uppercase;margin-bottom:8px;font-size:10px}.birth-panel h2,.dialog-head h2{color:#22312a;font-size:26px}.field-label{color:#26302aa3;margin-top:34px;margin-bottom:9px;font-size:12px}.birth-panel input,.composer textarea{box-sizing:border-box;color:#23302a;background:#fffcf1bd;border:1px solid #26302a3d;border-radius:8px;width:100%;font:400 16px/1.5 Noto Sans SC,system-ui,sans-serif}.birth-panel input{min-height:46px;padding:0 12px}.birth-panel input:focus,.composer textarea:focus,.composer button:focus-visible{outline-offset:2px;outline:2px solid #3b596157}.timezone-row{color:#26302a94;justify-content:space-between;align-items:center;gap:10px;margin-top:14px;font-size:12px;display:flex}.timezone-row strong{color:#3b5961;font-weight:600}.bazi-summary{margin-top:auto;padding-top:28px}.bazi-summary p,.empty-bazi{color:#26302a94;margin:0 0 18px;font-size:13px;line-height:1.7}.bazi-summary dl{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0;display:grid}.bazi-summary dl div{background:#fffcf18c;border:1px solid #26302a24;border-radius:8px;place-items:center;min-height:74px;display:grid}.bazi-summary dt{color:#26302a75;font-size:11px}.bazi-summary dd{color:#253029;margin:-8px 0 0;font:500 22px Noto Serif SC,Songti SC,SimSun,serif}.empty-bazi{margin-top:auto}.dialog-panel{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#efece28a;grid-template-rows:auto minmax(0,1fr) auto auto;gap:10px;min-height:0;padding:18px;display:grid}.dialog-head{justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.dialog-head-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.new-conversation-button{color:#3b5961;font:inherit;cursor:pointer;background:#fffcf16b;border:1px solid #3b596147;border-radius:6px;padding:7px 10px;font-size:11px}.new-conversation-button:hover:not(:disabled){background:#fffcf1b8}.new-conversation-button:focus-visible{outline-offset:2px;outline:2px solid #3b59618c}.new-conversation-button:disabled{cursor:not-allowed;opacity:.5}.model-badge{color:#3b5961;background:#dee8e67a;border:1px solid #3b596152;border-radius:999px;flex:none;padding:7px 11px;font-size:11px}.message-list{scrollbar-width:thin;scrollbar-color:#26302a47 transparent;flex-direction:column;gap:10px;min-height:0;padding:2px 6px 2px 2px;display:flex;overflow-y:auto}.message{word-break:break-word;border-radius:8px;max-width:min(88%,720px);padding:11px 13px;animation:.28s both fade-up}.message p{white-space:pre-wrap;color:#26302a;margin:0;font-size:14px;line-height:1.75}.message-assistant{background:#fffcf18c;border:1px solid #26302a21;align-self:flex-start}.message-user{color:#f6f1e5;background:#2f3d34;align-self:flex-end}.message-user p{color:#f6f1e5}.message-draw-result{background:0 0;border:0;max-width:min(94%,560px);padding:0}.is-loading p{color:#26302a94}.inline-bazi{color:#8b3f36;border-top:1px solid #26302a1f;margin-top:12px;padding-top:10px;font:500 13px Noto Serif SC,Songti SC,SimSun,serif}.source-list{color:#26302a9e;margin-top:10px;font-size:12px}.source-list summary{cursor:pointer;color:#3b5961}.source-list ol{margin:8px 0 0;padding-left:18px}.source-list li{margin:4px 0}.draw-invite{flex-direction:column;align-items:flex-start;gap:9px;margin-top:12px;display:flex}.draw-start-button,.draw-share-button,.draw-interpret-button{color:#3b5961;cursor:pointer;background:#dee8e66b;border:1px solid #3b59616b;border-radius:6px;min-height:36px;padding:8px 13px;font:600 12px Noto Sans SC,system-ui,sans-serif;transition:background .2s,border-color .2s,transform .2s}.draw-start-button:hover,.draw-share-button:hover,.draw-interpret-button:hover:not(:disabled){background:#dee8e6b3;border-color:#3b5961;transform:translateY(-1px)}.draw-start-button:focus-visible,.draw-share-button:focus-visible,.draw-interpret-button:focus-visible,.draw-hold-button:focus-visible{outline-offset:3px;outline:2px solid #3b596170}.draw-hold-button{color:#26302a;cursor:pointer;touch-action:none;-webkit-tap-highlight-color:transparent;background:0 0;border:0;border-radius:50%;width:132px;height:132px;padding:0;position:relative}.draw-progress,.draw-ring{pointer-events:none;border-radius:50%;position:absolute}.draw-progress{background:conic-gradient(#a9463b 0%,#0000 0%);inset:0;-webkit-mask:radial-gradient(#0000 65%,#000 66% 68%,#0000 69%);mask:radial-gradient(#0000 65%,#000 66% 68%,#0000 69%)}.draw-hold-button.is-holding .draw-progress{animation:1.4s linear forwards fill}.draw-ring-outer{border:1px solid #26302a1f;inset:-14px}.draw-ring-inner{border:1px solid #26302a59;transition:transform .5s,border-color .5s;inset:11px}.draw-hold-button:hover .draw-ring-inner,.draw-hold-button.is-holding .draw-ring-inner{border-color:#26302ab8}.draw-hold-button.is-holding .draw-ring-inner{transform:scale(.88)}.draw-button-copy{background:radial-gradient(circle,#fffcf194,#0000 70%);border-radius:50%;place-content:center;display:grid;position:absolute;inset:28px}.draw-button-copy b{letter-spacing:.28em;margin-left:.28em;font:500 22px Noto Serif SC,Songti SC,SimSun,serif;display:block}.draw-button-copy small{color:#26302a80;letter-spacing:.16em;margin-top:8px;font-size:9px}.draw-hint{color:#26302a8a;font-size:11px}.draw-result{box-sizing:border-box;color:#272723;background:#eee8dceb;width:min(100%,520px);padding:20px 24px 17px;animation:.65s cubic-bezier(.2,.76,.2,1) both reveal;position:relative;box-shadow:0 18px 48px #00000029}.draw-result:before{content:"";pointer-events:none;border:1px solid #37332b1c;position:absolute;inset:7px}.draw-card-top{color:#948d81;letter-spacing:.2em;border-bottom:1px solid #37332b24;justify-content:space-between;padding-bottom:11px;font-size:9px;display:flex}.draw-result blockquote{writing-mode:vertical-rl;text-orientation:upright;letter-spacing:.13em;min-height:165px;margin:22px auto 20px;font:500 25px/1.85 Noto Serif SC,Songti SC,SimSun,serif}.draw-result blockquote.long{letter-spacing:.08em;font-size:20px;line-height:1.75}.draw-actions{z-index:2;grid-template-columns:1fr;gap:8px;margin-top:16px;display:grid;position:relative}.draw-actions button{letter-spacing:.12em;border-radius:5px;min-height:34px;padding:8px 10px;font-size:11px}.draw-interpret-button{color:#fff9ec;background:#8f362de6;border-color:#8f362dd1;grid-column:1/-1}.draw-interpret-button:hover:not(:disabled){background:#7e3029;border-color:#7e3029}.draw-interpret-button:disabled{cursor:wait;opacity:.62}.draw-share-button{color:#292a26;background:0 0;border-color:#292a266b}.draw-share-button:hover{color:#9f3028;background:0 0;border-color:#9f3028}.form-error{color:#7b2e27;background:#ffeee4bd;border-left:3px solid #a9463b;margin:0;padding:9px 11px;font-size:13px;line-height:1.5}.composer{grid-template-columns:minmax(0,1fr) 96px;gap:10px;display:grid}.composer textarea{resize:vertical;min-height:64px;max-height:120px;padding:12px 13px}.composer button{color:#f8f1e4;cursor:pointer;background:#8b3f36;border:0;border-radius:8px;min-height:64px;font:600 14px Noto Sans SC,system-ui,sans-serif;transition:background .2s,opacity .2s,transform .2s}.composer button:not(:disabled):hover{background:#78342d;transform:translateY(-1px)}.composer button:disabled{opacity:.46;cursor:not-allowed}footer{color:#26302a6b;letter-spacing:.2em;border-top:1px solid #26302a1a;justify-content:space-between;align-items:center;min-height:70px;padding:0 clamp(24px,5vw,76px);font-size:8px;display:flex}.toast{z-index:10;color:#292a26;letter-spacing:.14em;background:#eee8dcf0;padding:9px 16px;font-size:10px;position:fixed;bottom:28px;left:50%;transform:translate(-50%);box-shadow:0 12px 32px #0000002e}@keyframes fill{to{background:conic-gradient(#a9463b 100%,#0000 100%)}}@keyframes fade-up{0%{opacity:0;transform:translateY(12px)}}@keyframes reveal{0%{opacity:0;filter:blur(2px);transform:scale(.96)translateY(10px)}}@keyframes asset-mid-drift{0%{transform:translate(-5px)scale(1.025)}to{transform:translate(5px,1px)scale(1.032)}}@keyframes asset-left-drift{0%{transform:translate(-8px,1px)scale(1.03)}to{transform:translate(7px)scale(1.02)}}@keyframes asset-right-drift{0%{transform:translate(8px)scale(1.025)}to{transform:translate(-8px,1px)scale(1.035)}}@media (width<=820px){.app{grid-template-rows:auto auto auto}.header{height:72px;padding:0 20px}.brand-seal{width:34px;height:34px;font-size:18px}.chat-stage{padding:18px 14px 22px}.chat-layout{grid-template-columns:1fr;height:auto;min-height:0}.birth-panel,.dialog-panel{padding:18px}.birth-panel h2,.dialog-head h2{font-size:23px}.field-label{margin-top:20px}.bazi-summary{margin-top:22px;padding-top:0}.message-list{min-height:240px;max-height:45svh}.message{max-width:94%}.composer{grid-template-columns:1fr}.composer button{min-height:48px}.draw-result{padding:18px 20px 15px}.draw-result blockquote{min-height:140px;margin-top:18px;font-size:22px}.draw-result blockquote.long{font-size:18px}footer{justify-content:center;min-height:58px;padding:0 20px}footer span:last-child{display:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
