:root{color-scheme:dark;font-family:system-ui,-apple-system,Microsoft YaHei,sans-serif}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:#17251e;color:#f3e4c7}#scene{width:100%;height:100%;display:block;touch-action:none}#loading{position:fixed;inset:0;z-index:20;background:radial-gradient(circle at 50% 30%,#344c3a,#111b17);display:flex;align-items:center;justify-content:center;flex-direction:column;gap:18px;text-align:center;padding:30px}.logo{font-family:serif;font-size:clamp(35px,7vw,62px);letter-spacing:.35em;color:#efdebc}#enter{padding:13px 38px;background:#a7864c;color:#151912;border:none;border-radius:7px;font-size:17px;cursor:pointer}#enter:disabled{opacity:.55;cursor:progress}button{font:inherit;cursor:pointer}#hud{position:fixed;inset:0;pointer-events:none}#hud button,#hud input,#hud select{pointer-events:auto}#top{position:absolute;top:18px;left:22px;right:22px;display:flex;justify-content:space-between;gap:12px;align-items:flex-start}#title{font-family:serif;font-size:23px;letter-spacing:.13em;text-shadow:0 2px 8px #07120b}#tip{font-size:12px;color:#e6d1a6;margin-top:6px}#actions{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}#actions button,#interact,#panel button{background:#1a3028e6;border:1px solid #bda06c7a;color:#f5dfb9;border-radius:7px;padding:9px 12px}#status{position:absolute;left:22px;bottom:48px;font-size:12px;line-height:1.9;padding:10px 14px;background:#14251fd9;border:1px solid #bda06c44;border-radius:8px;max-width:52vw;white-space:pre-line}#keys{position:absolute;bottom:18px;left:50%;transform:translate(-50%);font-size:12px;white-space:nowrap;color:#e7dcc9;text-shadow:0 2px 5px #000}#interact{position:absolute;bottom:110px;left:50%;transform:translate(-50%);display:none}#panel{position:absolute;right:18px;top:78px;width:min(320px,calc(100vw - 36px));padding:16px;border-radius:12px;background:#14251ff5;border:1px solid #c4a6757c;display:none;pointer-events:auto;max-height:80vh;overflow:auto}#panel h3{margin:0 0 12px}#panel label{display:block;margin:12px 0;font-size:13px}#panel input[type=file]{width:100%;font-size:12px;margin-top:6px}#panel select{background:#24372d;color:#eedfc4;padding:6px;border:1px solid #927957;border-radius:5px}#log{font-size:12px;color:#c9bd9f;white-space:pre-wrap;line-height:1.6}#joy{position:absolute;left:22px;bottom:100px;width:108px;height:108px;border:2px solid #d3bf9166;background:#23382b6b;border-radius:100%;display:none;pointer-events:auto;touch-action:none}#knob{position:absolute;left:31px;top:31px;width:42px;height:42px;background:#d4be8b88;border-radius:100%}#touchInteract{position:absolute;right:24px;bottom:136px;border-radius:100%;width:55px;height:55px;background:#8c704bcf;color:#fff;border:1px solid #f0daaa;display:none}#message{position:absolute;top:21%;left:50%;transform:translate(-50%);background:#192b23e8;padding:12px 20px;border-radius:8px;opacity:0;transition:opacity .3s}#message.show{opacity:1}@media (pointer: coarse){#joy,#touchInteract{display:block}#keys{display:none}#status{bottom:12px;left:12px;font-size:10px;max-width:60vw}#actions button{padding:7px}#top{left:12px;right:12px}}:root{--yns-gold: #c9a24a;--yns-gold-l: #f0d79b;--yns-ink: #241a12;--yns-paper: #efe6d4;--yns-dark: #16110c}.yns-ui{font-family:Songti SC,STKaiti,KaiTi,Microsoft YaHei,serif}.yns-bar{position:absolute;inset:0;pointer-events:none}.yns-bar-left{position:absolute;left:14px;top:104px;display:flex;align-items:center;gap:7px;background:#120d098c;border:1px solid rgba(201,162,74,.32);border-radius:999px;padding:5px 12px;color:#eadfc8;font-size:12px;letter-spacing:.04em;backdrop-filter:blur(6px)}.yns-id{color:var(--yns-gold-l)}.yns-dot{width:7px;height:7px;border-radius:50%;background:#7a6a55;box-shadow:0 0 #78c88c00}.yns-dot.on{background:#6ec98a;box-shadow:0 0 8px #6ec98acc}.yns-bar-right{position:absolute;right:14px;bottom:56px;display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end;max-width:60vw}.yns-hud-btn{pointer-events:auto;cursor:pointer;background:#120d098c;color:#eadfc8;border:1px solid rgba(201,162,74,.36);border-radius:999px;padding:6px 13px;font-size:12px;letter-spacing:.08em;font-family:inherit;backdrop-filter:blur(6px);transition:.18s}.yns-hud-btn:hover{border-color:var(--yns-gold);color:#fff6e2}.yns-hud-btn.gold{background:linear-gradient(180deg,#d8b45c,#a8802f);color:#2a1d0c;border-color:#f2d68f;font-weight:700}.yns-notice{position:absolute;left:50%;top:146px;transform:translate(-50%);max-width:min(92vw,640px);padding:8px 16px;border-radius:8px;background:#18100ab8;border:1px solid rgba(201,162,74,.4);color:#f4e8cf;font-size:13px;line-height:1.5;text-align:center;backdrop-filter:blur(8px)}.yns-notice-tag{color:var(--yns-gold);margin-right:8px;font-size:11px;letter-spacing:.16em}.yns-overlay{position:fixed;inset:0;z-index:900;background:radial-gradient(120% 90% at 50% 0%,#1c140db8,#080604e6);display:flex;align-items:center;justify-content:center;padding:18px;backdrop-filter:blur(3px);animation:yns-fade .2s ease}.yns-overlay[hidden]{display:none}@keyframes yns-fade{0%{opacity:0}to{opacity:1}}.yns-card{width:min(94vw,520px);max-height:86vh;display:flex;flex-direction:column;background:linear-gradient(180deg,#f4ecdc,#e6d9c2);color:var(--yns-ink);border-radius:14px;overflow:hidden;border:1px solid rgba(201,162,74,.55);box-shadow:0 24px 60px #0000008c,inset 0 0 0 1px #ffffff59;animation:yns-rise .24s cubic-bezier(.2,.9,.3,1)}@keyframes yns-rise{0%{transform:translateY(14px) scale(.98);opacity:0}to{transform:none;opacity:1}}.yns-card-head{position:relative;padding:18px 20px 12px;border-bottom:1px solid rgba(120,90,50,.22)}.yns-card-head h3{margin:0;font-size:20px;letter-spacing:.16em;font-weight:700}.yns-sub{margin:5px 0 0;font-size:12px;color:#7a6650;letter-spacing:.04em}.yns-close{position:absolute;right:12px;top:12px;width:30px;height:30px;border:none;background:transparent;font-size:22px;line-height:1;color:#8a7457;cursor:pointer;border-radius:50%}.yns-close:hover{background:#785a321f;color:#3a2a1a}.yns-card-body{padding:14px 20px 20px;overflow-y:auto;-webkit-overflow-scrolling:touch}.yns-list{display:flex;flex-direction:column;gap:9px;margin-bottom:14px}.yns-list-sm{max-height:190px;overflow-y:auto}.yns-item{position:relative;padding:10px 12px;border-radius:9px;background:#ffffff80;border:1px solid rgba(140,110,70,.2)}.yns-item-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:4px}.yns-who{font-size:13px;font-weight:700;color:#5a4326;letter-spacing:.04em}.yns-who.abbot{color:#9a6f16}.yns-time{font-size:11px;color:#9a8a72}.yns-text{margin:0;font-size:14px;line-height:1.65;white-space:pre-wrap;word-break:break-word}.yns-empty{margin:14px 0;font-size:13px;color:#8a7a62;text-align:center;line-height:1.7}.yns-form{display:flex;flex-direction:column;gap:8px;margin-top:6px}.yns-form-row{display:flex;gap:8px;align-items:center}.yns-input{flex:1;min-width:0;padding:10px 12px;font-size:14px;font-family:inherit;border:1px solid rgba(120,90,50,.35);border-radius:9px;background:#ffffffbf;color:var(--yns-ink);resize:vertical}.yns-input:focus{outline:none;border-color:var(--yns-gold);box-shadow:0 0 0 3px #c9a24a2e}.yns-num{max-width:78px}.yns-count{font-size:11px;color:#9a8a72}.yns-form-row:has(.yns-count){justify-content:space-between}.yns-btn{cursor:pointer;font-family:inherit;font-size:13px;letter-spacing:.08em;padding:10px 16px;border-radius:9px;white-space:nowrap;border:1px solid rgba(120,90,50,.4);background:#fff9;color:#4a3620;transition:.16s}.yns-btn:hover{background:#fff;border-color:var(--yns-gold)}.yns-btn:disabled{opacity:.5;cursor:default}.yns-primary{background:linear-gradient(180deg,#d9b76a,#b1893a);color:#2a1d0c;border-color:#e8cd8b;font-weight:700}.yns-primary:hover{background:linear-gradient(180deg,#e6c67c,#bd9542)}.yns-sm{padding:5px 10px;font-size:12px}.yns-danger{color:#9c3b2f;border-color:#9c3b2f59}.yns-fine{font-size:11px;color:#8a7a62;line-height:1.7;margin:12px 0 0}.yns-h4{font-size:13px;letter-spacing:.12em;color:#6a5334;margin:16px 0 8px}.yns-fortune{display:flex;flex-direction:column;align-items:center;gap:12px}.yns-tube{position:relative;width:74px;height:116px}.yns-tube-body{position:absolute;bottom:0;left:8px;width:58px;height:84px;background:linear-gradient(90deg,#6b4a2f,#a9743f 45%,#6b4a2f);border-radius:6px 6px 4px 4px;box-shadow:inset 0 -6px 10px #00000059}.yns-tube-sticks{position:absolute;bottom:62px;left:16px;width:42px;height:52px}.yns-tube-sticks i{position:absolute;bottom:0;width:5px;height:50px;border-radius:3px;background:linear-gradient(180deg,#f0e2c4,#cbb28a);box-shadow:0 0 4px #0003}.yns-tube-sticks i:nth-child(1){left:2px;height:44px;transform:rotate(-8deg)}.yns-tube-sticks i:nth-child(2){left:10px;height:50px;transform:rotate(-3deg)}.yns-tube-sticks i:nth-child(3){left:18px;height:52px}.yns-tube-sticks i:nth-child(4){left:26px;height:47px;transform:rotate(5deg)}.yns-tube-sticks i:nth-child(5){left:33px;height:42px;transform:rotate(9deg)}.yns-tube.shake{animation:yns-shake .42s ease-in-out 3}@keyframes yns-shake{0%,to{transform:rotate(0)}25%{transform:rotate(-9deg) translate(-3px)}75%{transform:rotate(9deg) translate(3px)}}.yns-result{width:100%}.yns-sign{padding:14px;border-radius:10px;background:#ffffff8c;border:1px solid rgba(201,162,74,.5)}.yns-sign-top{display:flex;justify-content:space-between;align-items:center;font-size:12px}.yns-level{color:#9c3b2f;font-weight:700;letter-spacing:.18em}.yns-no{color:#9a8a72}.yns-sign h4{margin:8px 0 10px;font-size:17px;letter-spacing:.12em;text-align:center}.yns-poem{margin:0 0 12px;padding:10px 12px;font-family:inherit;font-size:14px;line-height:2;text-align:center;color:#4a3620;background:#c9a24a1a;border-radius:8px;white-space:pre-wrap}.yns-read{font-size:13px;line-height:1.8;color:#5a4326;margin-bottom:8px}.yns-read b{color:#9a6f16;margin-right:8px;letter-spacing:.1em}.yns-meta{display:flex;gap:12px;font-size:12px;color:#7a6650;margin-bottom:8px}.yns-donate{text-align:center}.yns-donate-lead{font-size:13px;line-height:1.9;color:#5a4326;margin:0 0 12px}.yns-qr{display:inline-block;padding:8px;border-radius:12px;background:#fff;box-shadow:0 6px 20px #0000002e}.yns-qr img{display:block;width:min(58vw,240px);height:auto;border-radius:8px}.yns-donate-tip{font-size:12px;color:#8a7a62;margin:10px 0 14px}.yns-donate-note{text-align:left;padding:10px 12px;border-radius:9px;background:#c9a24a1f;border:1px dashed rgba(201,162,74,.55)}.yns-donate-note b{display:block;font-size:12px;color:#9a6f16;letter-spacing:.1em;margin-bottom:4px}.yns-donate-note span{font-size:12px;line-height:1.75;color:#6a5334}.yns-abbot-status{display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:9px;background:#c9a24a24;border:1px solid rgba(201,162,74,.45);font-size:13px;color:#5a4326;margin-bottom:12px}.yns-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.yns-grid .yns-btn{display:flex;flex-direction:column;align-items:flex-start;gap:3px;text-align:left;padding:11px 13px}.yns-grid .yns-btn b{font-size:14px;letter-spacing:.12em}.yns-grid .yns-btn span{font-size:11px;opacity:.72;letter-spacing:0}.yns-knocks{margin-top:14px}.yns-knocks h4{font-size:13px;color:#6a5334;margin:0 0 8px;letter-spacing:.1em}.yns-knock{display:flex;align-items:center;justify-content:space-between;padding:8px 10px;border-radius:8px;background:#ffffff8c;margin-bottom:6px;font-size:13px}.yns-tabs{display:flex;gap:4px;margin-bottom:12px;border-bottom:1px solid rgba(120,90,50,.2);padding-bottom:8px;overflow-x:auto}.yns-tab{cursor:pointer;font-family:inherit;font-size:12px;letter-spacing:.08em;padding:6px 11px;border-radius:999px;border:1px solid transparent;background:transparent;color:#7a6650;white-space:nowrap}.yns-tab.on{background:#c9a24a38;border-color:#c9a24a99;color:#4a3620;font-weight:700}.yns-pane{min-height:120px}.yns-kv{display:flex;justify-content:space-between;padding:8px 2px;border-bottom:1px dashed rgba(120,90,50,.18);font-size:13px;color:#6a5334}.yns-kv b{color:#3a2a1a}.yns-codes{display:flex;flex-direction:column;gap:7px;margin-top:12px;max-height:260px;overflow-y:auto}.yns-code{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:8px;background:#fff9;border:1px solid rgba(140,110,70,.22);font-size:12px}.yns-code code{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px;letter-spacing:.06em;color:#3a2a1a}.yns-code span{flex:1;color:#8a7a62;font-size:11px}.yns-code.used{opacity:.55}.yns-code.revoked{opacity:.45;text-decoration:line-through}@media (max-width: 560px){.yns-bar-left{left:8px;top:92px;font-size:11px;padding:4px 10px}.yns-bar-right{right:8px;bottom:132px;top:auto;max-width:74vw}.yns-hud-btn{padding:5px 10px;font-size:11px}.yns-card{width:96vw;max-height:88vh}.yns-card-head{padding:14px 16px 10px}.yns-card-body{padding:12px 16px 16px}.yns-grid{grid-template-columns:1fr}.yns-notice{top:132px;font-size:12px}}
