@charset "UTF-8";
:root{color-scheme:dark;--bg:#10080d;--paper:#f0e3dc;--muted:#b49ba5;--red:#e27b99;--line:#6b36484d;font-family:"PingFang TC","Microsoft JhengHei",sans-serif}*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;background:var(--bg);color:var(--paper)}button,input,textarea,select{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button,a{color:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.4}button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid #ffc3cd;outline-offset:4px}input:focus,textarea:focus,select:focus{outline:1px solid #e88ba6;border-color:#e88ba6}a{text-decoration:none}button{border:0;background:none}.top{min-height:100px;padding:24px 4vw;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line);gap:20px}.brand{font:22px Georgia,serif;letter-spacing:.15em}.brand small{display:block;font:10px monospace;color:var(--muted);margin-top:9px;letter-spacing:.18em}.top>div{display:flex;align-items:center;gap:10px}.quiet{font-size:12px;color:var(--muted);padding:12px 8px;min-height:44px}.quiet:hover{color:#fff}.layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(380px,480px)}.stage{position:sticky;top:0;align-self:start;height:calc(100svh - 20px);min-height:740px;isolation:isolate;overflow:hidden;display:grid;place-items:center}.stage-art{position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,#10080d 2%,#230813b8 50%,#10080ddd),url('assets/bloom-art.jpg') center/cover;opacity:.85}.stage-content{width:100%;padding:30px;text-align:center}.eyebrow{font:11px monospace;letter-spacing:.2em;color:var(--muted);margin:0 0 16px}.title{width:210px;height:85px;object-fit:contain}.stage h1{font:30px/1.5 "Songti TC",serif;letter-spacing:.12em;overflow-wrap:anywhere;margin:18px 0 6px}.stage p{color:var(--muted)}#stage-invitation{font-size:14px}.sigil{position:relative;width:310px;height:310px;display:grid;place-items:center;margin:28px auto}.ring{position:absolute;inset:0;border:1px solid #c15c7850;border-radius:50%;box-shadow:0 0 80px #b6294820,inset 0 0 60px #b6294810;animation:rotate 60s linear infinite;border-top-color:#d17a91}.ring.second{inset:18px;border-style:dashed;animation-direction:reverse;opacity:.5}.counter{position:absolute;bottom:27px;font:10px monospace;letter-spacing:.3em;color:#c08c9d}#signal{position:absolute;font:10px monospace;letter-spacing:.2em;color:#b78998}.lines{height:160px;width:150px;display:flex;flex-direction:column-reverse;gap:15px;justify-content:flex-start}.line{display:flex;gap:20px;height:12px;position:relative;flex:none;filter:drop-shadow(0 0 9px #b73158)}.line i{background:#e9acb8;flex:1}.line.moving i{background:#ffdf9a}.line.moving:after{content:"○";position:absolute;right:-24px;top:-5px;color:#ffdf9a}.line.new{animation:resolve .9s both}.sigil.scanning{animation:pulse .65s}.sigil.scanning #signal{display:block!important;z-index:2;top:64px;color:#ffd7df}.stage h2{font:32px "Songti TC",serif;letter-spacing:.15em;margin:16px 0}#changed{font-size:13px;min-height:20px}.stage-verdict{max-width:390px;margin:20px auto;font:18px/1.8 "Songti TC",serif;white-space:pre-wrap;overflow-wrap:anywhere}.stage-status{font:10px monospace;color:#bc8193;border:1px solid var(--line);padding:8px 14px;display:inline-block}.console{padding:38px 32px 60px;border-left:1px solid var(--line);background:#140d12}.console-heading{display:flex;align-items:center;justify-content:space-between}.console-heading .eyebrow{margin:0}.privacy,.hint{color:var(--muted);font-size:12px;line-height:1.8}.privacy{margin:12px 0 28px}label{display:block;font-size:13px;color:#e5cad4;margin:0 0 9px}label>span{font-size:10px;color:var(--muted);margin-left:6px}input:not([type=checkbox]),select,textarea{width:100%;border:1px solid #704352;background:#21141d;color:var(--paper);border-radius:0;padding:12px;min-height:46px;line-height:1.6}input::placeholder,textarea::placeholder{color:#957887}textarea{resize:vertical}.field{margin:0 0 20px}.entry-title{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding-top:24px}.entry-title h2{font-size:18px;font-weight:400;margin:0 0 20px}.entry-title span{font-size:11px;color:var(--muted)}.entry-fields{display:grid;grid-template-columns:1fr 1.3fr;gap:12px}.primary,.secondary{min-height:48px;padding:12px 18px;border:1px solid #c76f8b;background:#732b4455;font-size:13px;letter-spacing:.08em}.primary:hover{background:#8e3657aa}.primary span{margin-left:16px}.secondary{background:transparent;border-color:#755262}#capture-button{width:100%;display:flex;justify-content:space-between}.record-head{display:flex;align-items:center;justify-content:space-between;margin-top:20px;font-size:12px;color:var(--muted)}.records{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.records li{padding:12px 8px;border:1px solid var(--line);font-size:12px;line-height:1.8;color:#e0bbc7}.records small{display:block;color:var(--muted);font-size:10px}#status{font-size:12px;color:#eeb4c7;line-height:1.8;min-height:22px}.divider{height:1px;background:var(--line);margin:30px 0}.console h2{font-family:"Songti TC",serif;font-size:24px;font-weight:400;letter-spacing:.08em}#reading>input,#reading>textarea{margin-bottom:20px}.followup{margin-top:12px;border:1px solid var(--line);padding:18px}.followup summary{cursor:pointer;font-size:14px;line-height:1.6;list-style:none}.followup summary span{float:right}.followup textarea{margin-bottom:14px}.ai-state{font-size:12px;line-height:1.8;color:#dab78d}.paper-controls{display:flex;align-items:center;gap:20px}.paper-controls label{min-width:90px}.paper-controls select{margin-top:8px}.check{display:flex;gap:10px;align-items:center;line-height:1.6;margin:18px 0}.check input{accent-color:#c56d8c;width:18px;height:18px}.ticket-preview{padding:28px 20px;background:#090709;border:1px solid var(--line);text-align:center}.ticket-preview img{width:220px;max-width:100%;height:auto;box-shadow:0 10px 30px #0009}.ticket-preview p{font:11px monospace;color:var(--muted)}.buttons{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}.bottom{display:flex;justify-content:space-between;padding:22px 4vw;border-top:1px solid var(--line);color:var(--muted);font:10px monospace;letter-spacing:.15em}#print-sheet{display:none}body.present .console,body.present .bottom,body.present .top .brand small{display:none}body.present .layout{display:block}body.present .stage{position:relative;min-height:calc(100svh - 100px);height:auto}body.present .stage-content{max-width:900px}body.present #stage-verdict{max-width:600px}body.present .stage h1{font-size:40px}
@keyframes rotate{to{transform:rotate(360deg)}}@keyframes resolve{0%{opacity:0;transform:translateY(-30px) scaleX(.05);filter:blur(9px)}40%{opacity:1;transform:translateY(0) scaleX(1.1)}100%{transform:none;filter:drop-shadow(0 0 9px #b73158)}}@keyframes pulse{50%{filter:brightness(2);transform:scale(.96)}}
@media(max-width:850px){.layout{grid-template-columns:1fr}.stage{position:relative;min-height:670px;height:auto}.console{border-left:0;border-top:1px solid var(--line);padding:30px 24px}.top{padding:18px 20px;flex-wrap:wrap}.top>div{gap:4px}.brand{font-size:19px}.sigil{width:280px;height:280px}.stage-content{padding:25px 16px}.stage h1{font-size:26px}.bottom{gap:18px;line-height:1.7}.stage-verdict{font-size:17px}.entry-fields{grid-template-columns:1fr 1.3fr}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
@media print{html,body{margin:0!important;padding:0!important;background:#fff!important}body>*:not(#print-sheet){display:none!important}#print-sheet{display:block;width:var(--label-width,50mm);margin:0}#print-sheet img{display:block;width:100%;height:auto;break-inside:avoid}}

.bean-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:24px 0}.bean-grid label{font-size:12px;letter-spacing:.08em}.bean-grid input{margin-top:10px;width:100%;min-width:0}.gua-prefix{font-size:22px;letter-spacing:.45em;margin:12px 0 4px;color:#d5a0ae}#gua-name{font-size:clamp(36px,6vw,62px);letter-spacing:.16em;margin:4px 0 16px}#return-url{font-size:13px}.scanning .ring{animation:spin 5s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.scanning .ring{animation:none}}

.bean-grid input::-webkit-inner-spin-button{opacity:1}.ticket-preview img{width:min(300px,100%)}#ink{margin-bottom:22px}
