:root{--ink: #f5efe2;--ink-dim: rgba(245, 239, 226, .72);--panel: rgba(28, 34, 30, .55);--panel-strong: rgba(28, 34, 30, .78);--gold: #d9b45a;--gold-deep: #a9832f;--line: rgba(245, 239, 226, .18);font-family:Be Vietnam Pro,Segoe UI,system-ui,-apple-system,sans-serif}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;height:100%;overflow:hidden;background:#1d2a24;color:var(--ink);user-select:none;-webkit-user-select:none;touch-action:none}#app canvas{display:block;width:100vw;height:100vh;outline:none}.hidden{display:none!important}.overlay{position:fixed;inset:0;display:grid;place-items:center;padding:16px;background:radial-gradient(ellipse at 50% 40%,#3c5042eb,#121815f7);z-index:50}.intro-card{max-width:420px;text-align:center}.intro-card h1{font-family:"Noto Serif",Times New Roman,serif;font-weight:600;font-size:clamp(34px,8vw,52px);letter-spacing:.04em;margin:0 0 6px;color:var(--gold);text-shadow:0 0 24px rgba(217,180,90,.35)}.intro-card h2{font-family:"Noto Serif",Times New Roman,serif;color:var(--gold);font-weight:500}.tagline{margin:0 0 28px;color:var(--ink-dim);font-size:17px}.hint{color:var(--ink-dim);font-size:13px;margin-top:26px}button{font:inherit;cursor:pointer;border:none}.btn-primary{background:linear-gradient(180deg,var(--gold),var(--gold-deep));color:#2a1d08;font-weight:600;padding:12px 22px;border-radius:999px;box-shadow:0 4px 18px #d9b45a4d}.btn-ghost{background:transparent;color:var(--ink);border:1px solid var(--line);padding:10px 18px;border-radius:999px}.icon-btn{background:var(--panel);color:var(--ink);width:38px;height:38px;border-radius:50%;backdrop-filter:blur(6px)}.hud-top{position:fixed;top:max(12px,env(safe-area-inset-top));left:16px;right:16px;display:flex;justify-content:space-between;align-items:center;gap:10px;pointer-events:none;z-index:10}.hud-status,.hud-merit{background:var(--panel);backdrop-filter:blur(6px);padding:8px 14px;border-radius:999px;font-size:13px;color:var(--ink-dim);white-space:nowrap}.hud-merit{color:var(--gold)}.hud-status{min-width:0;overflow:hidden;text-overflow:ellipsis}.hud-right{flex:none}.hud-right{display:flex;gap:8px;align-items:center;pointer-events:auto}.hud-poses{position:fixed;right:16px;bottom:max(16px,env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:8px;z-index:10}.pose-btn{background:var(--panel);backdrop-filter:blur(6px);color:var(--ink);padding:10px 16px;border-radius:999px;font-size:14px;border:1px solid transparent}.pose-btn.on{border-color:var(--gold);color:var(--gold)}.pose-btn.accent{color:var(--gold)}.hud-context{position:fixed;left:50%;bottom:max(20px,env(safe-area-inset-bottom));transform:translate(-50%);background:var(--panel-strong);backdrop-filter:blur(8px);padding:14px 18px;border-radius:18px;text-align:center;z-index:11;max-width:calc(100vw - 32px)}.ctx-title{font-family:"Noto Serif",Times New Roman,serif;color:var(--gold);margin-bottom:10px}.ctx-row{display:flex;gap:8px;justify-content:center;align-items:center;flex-wrap:wrap}.ctx-info{color:var(--ink-dim);font-size:14px;margin-right:6px}.hud-toast{position:fixed;top:22%;left:50%;transform:translate(-50%);color:var(--gold);font-family:"Noto Serif",Times New Roman,serif;font-size:20px;opacity:0;pointer-events:none;text-shadow:0 0 12px rgba(0,0,0,.6);z-index:12}.hud-toast.show{animation:toast 2.8s ease forwards}@keyframes toast{0%{opacity:0;transform:translate(-50%,10px)}15%{opacity:1;transform:translate(-50%)}75%{opacity:1}to{opacity:0;transform:translate(-50%,-12px)}}.hud-conn{position:fixed;top:64px;left:50%;transform:translate(-50%);background:var(--panel-strong);padding:8px 16px;border-radius:999px;font-size:13px;z-index:12}button.hud-merit{pointer-events:auto;display:inline-flex;align-items:center;gap:6px}.hud-merit:after{content:"?";display:inline-grid;place-items:center;width:15px;height:15px;border-radius:50%;border:1px solid currentColor;font-size:10px;opacity:.75}.hud-rules{position:fixed;top:calc(max(12px,env(safe-area-inset-top)) + 50px);right:16px;width:min(360px,calc(100vw - 32px));max-height:calc(100vh - 140px);overflow-y:auto;background:var(--panel-strong);backdrop-filter:blur(10px);border:1px solid var(--line);border-radius:16px;padding:14px 16px 16px;font-size:13px;z-index:35;box-shadow:0 10px 30px #00000059}.rules-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.rules-title{font-family:"Noto Serif",Times New Roman,serif;color:var(--gold);font-size:16px}.rules-close{background:transparent;color:var(--ink-dim);width:28px;height:28px;border-radius:50%}.rules-list{list-style:none;margin:0 0 12px;padding:0}.rules-list li{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;padding:7px 0;border-bottom:1px solid var(--line)}.rules-name{color:var(--ink)}.rules-how{color:var(--ink-dim);font-size:12px;margin-top:2px}.rules-pts{flex:none;color:var(--gold);font-weight:600;white-space:nowrap}.rules-today{color:var(--gold);margin-bottom:6px}.rules-bar{height:6px;border-radius:3px;background:var(--line);overflow:hidden}.rules-bar-fill{height:100%;width:0;background:linear-gradient(90deg,var(--gold-deep),var(--gold));transition:width .4s ease}.rules-cap{color:var(--ink-dim);font-size:12px;margin-top:6px}.hud-practice{position:fixed;top:calc(max(12px,env(safe-area-inset-top)) + 52px);left:50%;transform:translate(-50%);background:var(--panel);backdrop-filter:blur(6px);color:var(--gold);padding:6px 14px;border-radius:999px;font-size:13px;white-space:nowrap;max-width:calc(100vw - 32px);overflow:hidden;text-overflow:ellipsis;pointer-events:none;z-index:10;font-variant-numeric:tabular-nums}@media(max-width:520px){.hud-practice{left:auto;right:10px;transform:none;max-width:calc(100vw - 180px);font-size:12px;white-space:normal;text-align:right}}.joystick{position:fixed;left:24px;bottom:max(28px,env(safe-area-inset-bottom));width:120px;height:120px;border-radius:50%;background:#f5efe21f;border:1px solid var(--line);z-index:10;touch-action:none}.joystick-knob{position:absolute;left:36px;top:36px;width:48px;height:48px;border-radius:50%;background:#f5efe273;transition:transform .05s}.rosary{position:fixed;left:50%;bottom:90px;transform:translate(-50%);width:min(260px,70vw);text-align:center;z-index:11;touch-action:none;cursor:grab}.rosary-svg{width:100%;overflow:visible;filter:drop-shadow(0 6px 14px rgba(0,0,0,.45))}.rosary .string{fill:none;stroke:#783c1e99;stroke-width:1.5}.rosary .ring{transition:transform .25s cubic-bezier(.3,1.4,.5,1)}.rosary .bead{fill:#6b3d22;stroke:#3a1f10;stroke-width:1}.rosary .guru{fill:#a8742e}.rosary .tassel{fill:#b3241b}.rosary-count{margin-top:4px;font-family:"Noto Serif",Times New Roman,serif;color:var(--gold);font-size:18px}.rosary-count span{color:var(--ink-dim);font-size:14px}.rosary-hint{color:var(--ink-dim);font-size:12px;margin-top:4px}@media(max-width:520px){.hud-top{left:10px;right:10px;gap:6px}.hud-status,.hud-merit{font-size:12px;padding:7px 10px}.hud-poses{right:10px;bottom:calc(max(16px,env(safe-area-inset-bottom)) + 150px);gap:6px}.pose-btn{padding:8px 12px;font-size:13px}.hud-context{bottom:calc(max(12px,env(safe-area-inset-bottom)) + 140px)}}@media(max-height:520px){.hud-top{top:max(8px,env(safe-area-inset-top))}.map-mini{top:calc(max(8px,env(safe-area-inset-top)) + 40px);width:96px;height:96px}.hud-poses{bottom:max(10px,env(safe-area-inset-bottom));gap:5px}.pose-btn{padding:6px 12px;font-size:12px}.joystick{width:104px;height:104px;bottom:max(14px,env(safe-area-inset-bottom))}.joystick-knob{left:30px;top:30px;width:44px;height:44px}.hud-context{bottom:max(8px,env(safe-area-inset-bottom));padding:10px 14px}.map-card{padding:10px 12px 8px}.map-hint{display:none}}@media(min-width:1600px){.hud-status,.hud-merit{font-size:15px}.pose-btn{font-size:16px;padding:12px 20px}.map-mini{width:176px;height:176px}}.map-mini{position:fixed;left:16px;top:calc(max(12px,env(safe-area-inset-top)) + 48px);width:148px;height:148px;padding:0;border-radius:50%;border:2px solid rgba(217,180,90,.75);background:#3f5a39;box-shadow:0 6px 18px #00000059;overflow:hidden;z-index:10;cursor:pointer}.map-mini canvas{display:block;width:100%;height:100%}.map-mini-label{position:absolute;left:50%;bottom:6px;transform:translate(-50%);font-size:11px;color:var(--ink);background:var(--panel-strong);padding:2px 8px;border-radius:999px;pointer-events:none;white-space:nowrap}.map-overlay{position:fixed;inset:0;z-index:30;display:flex;align-items:center;justify-content:center;background:#0a0e0c8c;backdrop-filter:blur(4px)}.map-card{background:var(--panel-strong);border:1px solid var(--line);border-radius:18px;padding:14px 16px 10px;max-width:calc(100vw - 24px);max-height:calc(100vh - 24px);overflow:auto}.map-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.map-head h2{margin:0;font-family:"Noto Serif",Times New Roman,serif;font-size:18px;color:var(--gold)}.map-body{display:flex;gap:14px;align-items:flex-start}.map-big{border-radius:10px;cursor:pointer;flex:none}.map-list{display:flex;flex-direction:column;gap:6px;min-width:170px}.map-list-title{color:var(--ink-dim);font-size:13px;margin-bottom:2px}.map-place{text-align:left;background:#f5efe214;color:var(--ink);border:1px solid var(--line);border-radius:10px;padding:8px 12px;font-size:14px;cursor:pointer}.map-place:hover{border-color:var(--gold);color:var(--gold)}.map-hint{color:var(--ink-dim);font-size:12px;margin:10px 0 0}@media(max-width:640px){.map-mini{width:104px;height:104px}.map-body{flex-direction:column;align-items:center}.map-list{flex-direction:row;flex-wrap:wrap;min-width:0}.map-place{padding:7px 10px;font-size:13px}}.perf-panel{position:fixed;right:8px;top:56px;z-index:40;margin:0;max-width:min(640px,calc(100vw - 16px));padding:8px 10px;border-radius:8px;background:#080a09c7;color:#cfe8c8;font:11px/1.45 ui-monospace,Consolas,monospace;white-space:pre-wrap;pointer-events:none}
