:root{--ink: #f4ead8;--muted: #c9b99f;--panel: rgba(22, 14, 10, .78);--line: rgba(217, 164, 65, .35);--red: #a8231a;--red-hi: #c4321f;--gold: #d9a441;--font: "PingFang SC", "Microsoft YaHei", "Noto Sans SC", system-ui, sans-serif;--serif: "STKaiti", "KaiTi", "Kaiti SC", "Noto Serif SC", "Songti SC", serif}*{box-sizing:border-box}html,body,#root{margin:0;height:100%;overflow:hidden;background:#120c0a;color:var(--ink);font-family:var(--font)}button,input{font:inherit;color:inherit}.stage{position:fixed;top:0;right:0;bottom:0;left:0}.stage canvas{display:block;touch-action:none}button{background:#1e140ed1;border:1px solid var(--line);border-radius:8px;padding:8px 14px;cursor:pointer;transition:background .15s,border-color .15s,transform .1s}button:hover{border-color:var(--gold);background:#342014eb}button:active{transform:translateY(1px)}button.primary{background:linear-gradient(#bd2f1f,#8e1a12);border-color:#e0a64a;color:#fff6e0;font-weight:600}button.primary:hover{background:linear-gradient(#cf3a26,#9b1d14)}button.large{font-size:18px;padding:12px 34px;letter-spacing:.2em;font-family:var(--serif)}button.link{background:none;border:none;color:var(--muted);padding:4px 0;font-size:12px;text-decoration:underline}kbd{display:inline-block;min-width:22px;padding:1px 6px;margin-right:4px;border:1px solid var(--line);border-bottom-width:2px;border-radius:4px;font:12px/18px var(--font);color:var(--ink);background:#00000059;text-align:center}.muted{color:var(--muted)}.small{font-size:12px}.brand{position:fixed;top:16px;left:16px;display:flex;align-items:center;gap:12px;pointer-events:none;text-shadow:0 1px 6px rgba(0,0,0,.6)}.brand h1{margin:0;font:600 24px/1.1 var(--serif);letter-spacing:.25em}.brand p{margin:2px 0 0;font-size:12px;color:var(--muted);letter-spacing:.1em}.seal{width:42px;height:42px;display:grid;place-items:center;background:var(--red);color:#fbe3a1;font:600 15px/1 var(--serif);border-radius:6px;writing-mode:vertical-rl;letter-spacing:2px;box-shadow:0 2px 10px #0006}.brand.big{position:static}.brand.big h1{font-size:40px}.brand.big .seal{width:64px;height:64px;font-size:22px}.loading{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px;overflow-y:auto;background:radial-gradient(circle at 50% 40%,#3a1a10,#120c0a 70%);padding:16px;text-align:center}.bar{width:min(360px,80vw);height:4px;background:#ffffff1f;border-radius:2px;overflow:hidden}.bar i{display:block;height:100%;background:linear-gradient(90deg,var(--red-hi),var(--gold));transition:width .3s}.err{color:#ffb4a0}.note{width:min(520px,100%);text-align:left;background:#00000047;border:1px solid rgba(214,168,67,.25);border-radius:12px;padding:16px 20px;animation:noteIn 1.2s ease both .3s}.note h3{margin:0 0 10px;font:600 17px var(--serif);color:#fbe3a1;letter-spacing:.06em}.note p{margin:0 0 8px;font-size:14px;line-height:1.85;color:#e8dccb}.note .sign{margin:10px 0 0;text-align:right;color:var(--muted);font-family:var(--serif)}.note.full{background:none;border:0;padding:0;animation:none}@keyframes noteIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media (max-width: 520px){.note{padding:12px 14px}.note p{font-size:13px;line-height:1.7}}.toolbar{position:fixed;top:16px;right:16px;display:flex;flex-direction:column;gap:8px}.toolbar button{display:flex;align-items:center;gap:8px;padding:8px 12px;min-width:92px}.toolbar button.on{border-color:var(--gold);color:#fbe3a1}.toolbar .q{width:18px;text-align:center;font-weight:700;color:var(--gold)}.info{position:fixed;left:16px;bottom:16px;width:min(340px,calc(100vw - 32px));background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px 18px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.info h3{margin:0 0 6px;font:600 20px var(--serif);color:#fbe3a1}.info p{margin:0 0 12px;font-size:13px;line-height:1.6;color:var(--muted)}.info .x{position:absolute;top:8px;right:8px;background:none;border:none;font-size:20px;padding:2px 8px}.enter{position:fixed;left:50%;bottom:28px;transform:translate(-50%);text-align:center}.hint{margin:10px 0 0;font-size:12px;color:var(--muted);text-shadow:0 1px 4px #000;white-space:nowrap}.crosshair{position:fixed;left:50%;top:50%;width:0;height:0;pointer-events:none}.crosshair i{position:absolute;background:#ffffffe6;box-shadow:0 0 0 1px #0000008c}.crosshair i:nth-child(1),.crosshair i:nth-child(2){width:7px;height:2px;top:-1px}.crosshair i:nth-child(1){left:-11px}.crosshair i:nth-child(2){left:4px}.crosshair i:nth-child(3),.crosshair i:nth-child(4){width:2px;height:7px;left:-1px}.crosshair i:nth-child(3){top:-11px}.crosshair i:nth-child(4){top:4px}.crosshair.active i{background:#f3c55a}.area{position:fixed;top:18px;left:50%;transform:translate(-50%);font:600 15px var(--serif);letter-spacing:.2em;padding:6px 18px;background:#00000059;border-radius:20px;text-shadow:0 1px 3px #000;pointer-events:none;white-space:nowrap}.topright{position:fixed;top:14px;right:16px;display:flex;gap:8px}.topright button{padding:8px 10px;display:grid;place-items:center}.prompt{position:fixed;left:50%;top:calc(50% + 48px);transform:translate(-50%);padding:7px 16px;border-radius:6px;background:#0000008c;border:1px solid var(--line);font-size:15px;pointer-events:none;white-space:nowrap}.tooltip{position:fixed;left:50%;top:calc(50% - 64px);transform:translate(-50%);padding:6px 14px;border-radius:6px;background:#78140abf;font:15px var(--serif);pointer-events:none;white-space:nowrap}.kneel{position:fixed;left:50%;bottom:74px;transform:translate(-50%);font-size:13px;color:var(--muted);background:#0006;padding:5px 12px;border-radius:12px;pointer-events:none}.keys{position:fixed;left:16px;bottom:16px;display:flex;flex-wrap:wrap;gap:6px 14px;max-width:520px;font-size:12px;color:var(--muted);text-shadow:0 1px 3px #000;pointer-events:none}.ritual{position:fixed;right:16px;top:70px;width:190px;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:12px 14px;font-size:13px}.ritual h4{margin:0 0 8px;font:600 16px var(--serif);color:#fbe3a1;letter-spacing:.15em}.ritual .st{display:flex;align-items:center;gap:8px;padding:4px 0;color:var(--muted)}.ritual .st b{width:20px;height:20px;border-radius:50%;display:grid;place-items:center;font-size:11px;border:1px solid var(--line)}.ritual .st.cur{color:var(--ink)}.ritual .st.cur b{border-color:var(--gold);color:var(--gold)}.ritual .st.done b{background:var(--red);border-color:var(--red);color:#fff}.ritual em{margin-left:auto;font-style:normal;color:var(--gold)}.mini{display:inline-block;width:48px;height:4px;background:#ffffff26;border-radius:2px;overflow:hidden}.mini.wide{width:200px;margin:6px auto 0;display:block}.mini i{display:block;height:100%;background:var(--gold)}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0805048c;display:grid;place-items:center;padding:16px;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.card{width:min(520px,100%);background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:22px 24px;box-shadow:0 20px 60px #00000080;max-height:calc(100vh - 32px);overflow:auto}.card.center{text-align:center}.card h2{margin:0 0 6px;font:600 24px var(--serif);letter-spacing:.15em;color:#fbe3a1}.card p{margin:0 0 14px;font-size:13px;line-height:1.6}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:16px 0;font-size:13px;text-align:left}.row{display:flex;gap:10px;justify-content:center;margin-top:16px;flex-wrap:wrap}.col{display:flex;flex-direction:column;gap:10px;margin-top:14px}.offers{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.offer{display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px 8px}.offer .glyph{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;font:600 22px var(--serif);background:radial-gradient(#c4321f,#7e1209);color:#fbe3a1;border:1px solid var(--gold)}.offer small{color:var(--muted);font-size:11px;line-height:1.4}label{display:block;font-size:13px;color:var(--muted);margin:10px 0 4px}input{display:block;width:100%;margin-top:4px;padding:10px 12px;border-radius:8px;border:1px solid var(--line);background:#00000059;font:18px var(--serif);outline:none}input:focus{border-color:var(--gold)}.chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.chips button{padding:4px 10px;font-size:13px;border-radius:14px}.chips button.on{border-color:var(--gold);color:#fbe3a1;background:#a8231a80}.fortune{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none}.fortune .fhint{position:absolute;top:18px;left:50%;transform:translate(-50%);text-align:center;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:10px 18px;width:min(420px,calc(100vw - 32px));font-size:13px;color:var(--muted);pointer-events:auto}.fortune .fhint b{display:block;font:600 17px var(--serif);color:#fbe3a1;margin-bottom:4px}.fortune .fhint button{margin-top:10px}.fortune .bottom{position:absolute;left:0;right:0;bottom:22px;pointer-events:auto}.toast{position:fixed;top:64px;left:50%;transform:translate(-50%,-8px);opacity:0;background:#6e140ce0;border:1px solid var(--gold);color:#fff3dc;padding:9px 18px;border-radius:8px;font-size:14px;transition:opacity .3s,transform .3s;pointer-events:none;max-width:calc(100vw - 32px);text-align:center}.toast.on{opacity:1;transform:translate(-50%)}.fade{position:fixed;top:0;right:0;bottom:0;left:0;background:#000;opacity:0;pointer-events:none;transition:opacity .45s}.fade.on{opacity:1}.touch{position:fixed;top:0;right:0;bottom:0;left:0}.joy{position:absolute;left:40px;bottom:60px;width:120px;height:120px;border-radius:50%;border:2px solid rgba(255,255,255,.35);background:#0003;opacity:.35;pointer-events:none}.joy div{position:absolute;left:35px;top:35px;width:50px;height:50px;border-radius:50%;background:#ffffff80}.tbtns{position:absolute;right:16px;bottom:24px;display:grid;grid-template-columns:repeat(2,64px);gap:10px}.tbtns button{height:64px;border-radius:50%;font:600 16px var(--serif);background:#1e140e99}@media (max-width: 640px){.brand h1{font-size:20px}.toolbar{top:auto;bottom:110px;flex-direction:row;right:50%;transform:translate(50%)}.toolbar button{min-width:0;padding:8px}.toolbar button span:last-child{display:none}.offers,.grid{grid-template-columns:repeat(2,1fr)}.info{bottom:170px}.hint{white-space:normal}.ritual{top:60px;width:160px;right:10px}}.offers.three{grid-template-columns:repeat(3,1fr);margin-top:8px}.offer.on{border-color:var(--gold);background:#781e128c}.topright button{font-size:13px}@media (max-width: 640px){.offers.three{grid-template-columns:1fr}}.enter-btn{min-width:160px;padding:10px 28px;font-size:16px;letter-spacing:.3em;animation:noteIn .8s ease both}details.author{text-align:left;border:1px solid var(--line);border-radius:8px;padding:8px 12px}details.author summary{cursor:pointer;color:#fbe3a1}details.author .note{margin-top:8px;width:auto}.music{display:grid;grid-template-columns:repeat(2,1fr);gap:6px}.music button{padding:8px 6px;font-size:13px}.music button.on{border-color:var(--gold);color:#fbe3a1;background:#d6a84324}.music .lab{grid-column:1 / -1;font-size:12px;color:var(--muted);text-align:left}
