:root{--red:#8e1118;--red-deep:#5c070c;--red-hi:#c2232b;--gold-1:#f9e7b1;--gold-2:#d6a84e;--gold-3:#a87a2a;--ivory:#fff7ea;--ink:#3a1a12;--muted:#8a6a58;--serif:"Noto Serif SC", "Source Han Serif SC", "Songti SC", "STSong", serif;--sans:-apple-system, "PingFang SC", "Microsoft YaHei", sans-serif}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{min-height:100%;margin:0}body{font-family:var(--sans);color:var(--ink);background:radial-gradient(120% 70% at 50% 0%, var(--red-hi) 0%, var(--red) 45%, var(--red-deep) 100%) fixed}#app{max-width:520px;padding:max(18px, env(safe-area-inset-top)) 18px calc(28px + env(safe-area-inset-bottom));margin:0 auto}.brand{color:var(--gold-1);align-items:center;gap:12px;margin:4px 2px 18px;display:flex}.brand img{border-radius:50%;width:46px;height:46px;box-shadow:0 0 0 2px #f9e7b18c}.brand b{font-family:var(--serif);letter-spacing:2px;font-size:19px;display:block}.brand small{opacity:.8;letter-spacing:1px;font-size:12px}.gold{background:linear-gradient(180deg, var(--gold-1), var(--gold-2));color:#0000;-webkit-background-clip:text;background-clip:text}h1.title{font-family:var(--serif);letter-spacing:3px;margin:8px 2px 6px;font-size:30px}p.lead{color:#f6dcc0;margin:0 2px 18px;font-size:14px;line-height:1.7}.panel{background:var(--ivory);border-radius:18px;padding:20px 18px;box-shadow:inset 0 0 0 1px #d6a84e8c,0 12px 30px #28000059}.panel+.panel{margin-top:14px}.panel h2{font-family:var(--serif);color:var(--red);letter-spacing:1px;margin:0 0 14px;font-size:18px}label.f{color:var(--muted);margin-bottom:14px;font-size:13px;display:block}label.f>span{margin-bottom:6px;display:block}input.t,select.t,textarea.t{width:100%;font:inherit;color:var(--ink);background:#fffdf8;border:1px solid #e6cfa8;border-radius:12px;outline:none;padding:12px 14px;font-size:16px}input.t:focus,select.t:focus,textarea.t:focus{border-color:var(--gold-2);box-shadow:0 0 0 3px #d6a84e33}textarea.t{resize:none;min-height:64px}.row{gap:10px;display:flex}.row>*{flex:1}.check{color:var(--ink);align-items:flex-start;gap:10px;margin:6px 0 12px;font-size:13px;line-height:1.6;display:flex}.check input{width:18px;height:18px;accent-color:var(--red);flex:none;margin-top:2px}button.btn{width:100%;font:inherit;letter-spacing:2px;color:var(--red-deep);background:linear-gradient(180deg, var(--gold-1), var(--gold-2));border:0;border-radius:14px;padding:15px;font-size:17px;font-weight:600;box-shadow:0 6px 16px #783c0059}button.btn:active{filter:brightness(.97);transform:translateY(1px)}button.btn[disabled]{opacity:.55}button.ghost{width:100%;color:var(--gold-1);font:inherit;background:0 0;border:1px solid #f9e7b180;border-radius:14px;margin-top:10px;padding:12px;font-size:15px}.panel button.ghost{color:var(--muted);border-color:#e6cfa8}.err{color:#c0262d;min-height:18px;margin:-4px 0 10px;font-size:13px}.note{color:var(--muted);font-size:12px;line-height:1.7}.progress{background:#ffffff2e;border-radius:4px;height:4px;margin:0 2px 16px;overflow:hidden}.progress i{background:linear-gradient(90deg, var(--gold-1), var(--gold-2));height:100%;transition:width .3s;display:block}.q{font-family:var(--serif);color:var(--ink);margin:0 0 18px;font-size:21px;line-height:1.6}.opt{text-align:left;width:100%;font:inherit;color:var(--ink);background:#fffdf8;border:1px solid #e6cfa8;border-radius:14px;margin-bottom:12px;padding:16px;font-size:16px;line-height:1.6}.opt:active,.opt.on{border-color:var(--gold-2);background:#fbefd2}.card{color:var(--ink);box-shadow:0 0 0 1.5px var(--gold-2) inset, 0 0 0 6px #f9e7b140, 0 18px 40px #28000073;background:linear-gradient(160deg,#fffaf0 0%,#fbeccd 100%);border-radius:22px;padding:22px 20px 20px;position:relative;overflow:hidden}.card:after{content:"";background:radial-gradient(closest-side,#d6a84e47,#0000);border-radius:50%;width:220px;height:220px;position:absolute;top:-60px;right:-60px}.card .top{color:var(--muted);letter-spacing:1px;justify-content:space-between;align-items:center;font-size:12px;display:flex}.card .top img{border-radius:50%;width:34px;height:34px}.card .name{font-family:var(--serif);color:var(--red);letter-spacing:4px;margin:14px 0 2px;font-size:34px;font-weight:700}.card .meta{color:var(--muted);font-size:13px}.card .chips{flex-wrap:wrap;gap:6px;margin:12px 0 14px;display:flex}.chip{color:var(--red);background:#8e111814;border:1px solid #8e11182e;border-radius:99px;padding:4px 10px;font-size:12px}.chip.gold{background:linear-gradient(180deg, var(--gold-1), var(--gold-2));color:var(--red-deep);-webkit-text-fill-color:initial;border:0}.kv{grid-template-columns:64px 1fr;gap:6px 10px;margin-bottom:14px;font-size:14px;line-height:1.6;display:grid}.kv dt{color:var(--muted)}.kv dd{margin:0}.ennea{border-top:1px dashed #e1c48e;align-items:center;gap:12px;margin-top:4px;padding-top:12px;display:flex}.ennea .n{width:52px;height:52px;font-family:var(--serif);color:var(--red-deep);background:linear-gradient(180deg, var(--gold-1), var(--gold-2));border-radius:50%;flex:none;place-items:center;font-size:26px;font-weight:700;display:grid}.ennea .d b{color:var(--red);font-size:15px;display:block}.ennea .d span{color:var(--muted);font-size:13px}.energy{border-top:1px solid #ead3a4;justify-content:space-between;align-items:flex-end;margin-top:16px;padding-top:14px;display:flex}.energy .v{font-family:var(--serif);color:var(--red);font-size:36px;font-weight:700;line-height:1}.energy .v small{color:var(--muted);font-size:13px;font-family:var(--sans);margin-left:4px;font-weight:400}.energy .tk{text-align:right;color:var(--muted);font-size:13px}.energy .tk b{color:var(--gold-3);font-size:22px}.actions{gap:10px;margin-top:16px;display:grid}.toast{color:#fff;z-index:9;background:#1e0606e0;border-radius:99px;padding:10px 18px;font-size:14px;position:fixed;bottom:40px;left:50%;transform:translate(-50%)}.poster{z-index:8;background:#140202e6;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.poster img{border-radius:12px;max-width:100%;max-height:82vh}.poster p{color:var(--gold-1);text-align:center;font-size:14px}.foot{text-align:center;color:#f9e7b199;letter-spacing:1px;margin-top:22px;font-size:12px}details.tg{border-top:1px solid #f0e0c2;padding:10px 0 4px}details.tg summary{color:var(--ink);align-items:center;gap:8px;font-size:15px;font-weight:600;list-style:none;display:flex}details.tg summary::-webkit-details-marker{display:none}details.tg summary:after{content:"›";color:var(--muted);margin-left:auto;transition:transform .2s}details.tg[open] summary:after{transform:rotate(90deg)}details.tg summary b{background:var(--red);color:#fff;border-radius:99px;padding:1px 7px;font-size:11px}details.tg .chips{flex-wrap:wrap;gap:8px;margin:10px 0 6px;display:flex}button.tag{font:inherit;color:var(--ink);background:#fffdf8;border:1px solid #e6cfa8;border-radius:99px;padding:8px 12px;font-size:14px}button.tag.on{background:var(--red);border-color:var(--red);color:#fff}.card .chips .chip.s{background:#fff}.earn{grid-template-columns:1fr auto;gap:6px 12px;margin:10px 0 0;font-size:14px;display:grid}.earn dt{color:var(--ink)}.earn dd{color:var(--gold-3);text-align:right;margin:0;font-weight:600}.earn dt.done{color:var(--muted);text-decoration:line-through}.bar{grid-template-columns:92px 1fr 30px;align-items:center;gap:8px;margin:7px 0;font-size:13px;display:grid}.bar i{background:linear-gradient(90deg, var(--gold-2), var(--red));border-radius:6px;height:10px;display:block}.bar b{text-align:right;color:var(--red)}p.rp{margin:-6px 0 14px;font-size:14px;line-height:1.8}.charge-wrap{justify-content:center;margin-top:18px;display:flex}.charge-btn{color:#5c070c;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;touch-action:none;background:radial-gradient(circle at 50% 35%,#fff1c4,#d6a84e 60%,#9a6a1e);border:0;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;width:220px;height:220px;font-weight:800;display:flex;box-shadow:0 0 0 8px #d6a84e40,0 12px 40px #0006}.charge-btn span{font-size:48px;line-height:1.1}.charge-btn small{margin-top:4px;font-size:16px}.charge-btn.on{transform:scale(.94);box-shadow:0 0 0 14px #f9e7b173,0 0 60px #f9e7b1cc}
