:root{--paper:#f4ecdd;--paper-a:#f4ecddeb;--paper-2:#fbf6ec;--field:#fffdf8;--ink:#3b2a1e;--ink-muted:#6e5e50;--accent:#b8342a;--accent-press:#962a22;--on-accent:#fff8ee;--gold:#c9a24e;--gold-line:#c9a24eb3;--line:#dccfb8;--disabled-bg:#e6dccb;--disabled-ink:#5e4f43;--disabled-edge:#b9aa94;--edge:#8c6a3a;--edge-field:#8a7a6a;--hold-fill:#7a1f18;--mark-bg:#f6d3c8;--danger-bg:#f6dcd4;--night:#1b1f3b;--scrim:#1b1f3b61;--plate:#1e141cb8;--glow:#ffe7a8;--scene-great:#ffd98a;--scene-label:#fff4dc;--scene-zone:#f6d58a;--scene-arrow:#f2c14e;--scene-bell:#f4c56a;--font-display:Charm, "Charm Fallback", "Noto Serif", serif;--font-body:"Be Vietnam Pro", "Be Vietnam Pro Fallback", system-ui, sans-serif;--fs-body-s:16px;--fs-body:18px;--fs-lead:20px;--fs-h3:24px;--fs-h2:30px;--fs-h1:44px;--fs-result:56px;--fs-score:96px;--sp-4:4px;--sp-8:8px;--sp-12:12px;--sp-16:16px;--sp-20:20px;--sp-24:24px;--sp-32:32px;--sp-40:40px;--sp-48:48px;--sp-64:64px;--r-field:12px;--r-card:12px;--r-panel:16px;--r-pill:999px;--shadow-panel:0 8px 24px #5b2c1438;--shadow-button:0 4px 12px #5b2c1440;--dur-fast:.15s;--dur-base:.22s;--dur-slide:.26s;--dur-slow:.3s;--dur-verse:.4s;--dur-judge:.9s;--ease:cubic-bezier(.2, .8, .2, 1);--haptic-great:"60 40 90";--haptic-tap:"12";--touch-min:48px;--touch-primary:72px;--z-hud:10;--z-sheet:20;--z-toast:30;--z-modal:40}@media (prefers-reduced-motion:reduce){:root{--dur-fast:0s;--dur-base:0s;--dur-slide:0s;--dur-slow:0s;--dur-verse:0s;--dur-judge:0s;--haptic-great:"none"}}:root{--sat:env(safe-area-inset-top,0px);--sar:env(safe-area-inset-right,0px);--sab:env(safe-area-inset-bottom,0px);--sal:env(safe-area-inset-left,0px);--ts:1;--toast-bg:#3b2a1eeb;--toast-sys-bg:#1b1f3beb;--toast-warn-icon:#f4a08e;--chip-on-bg:#fbe9e2;--hover-primary:#a82f26;--focus-ring:#c9a24e4d;--error-ring:#b8342a26;--switch-knob:#fff;--switch-shadow:#00000040;--seg-shadow:#5b2c142e;--joystick-edge:#f4ecddb3;--joystick-bg:#1b1f3b38;--bubble-bg:#fbf6ecf5;--bubble-shadow:#3b2a1e40;--paper-scroll:#f6eedc;--paper-grain:#7a6a5c0f;--rod-top:#7a4a2e;--rod-bottom:#5a3422;--err-top:#2e2f5e;--err-bottom:#4b3b6b;--tpl-sky:#4b3b6b;--glow-soft:#ffdc96e6;--ghost-line:#fff3d6e6;--ghost-dot:#fff3d6f2;--ghost-glow:#ffdc96cc;--incense-stick:#9a4a30;--incense-ember:#e8502e;--incense-smoke:#b9ae9e;--debug-bg:#0009;--debug-ink:#b6ffb0}#ui,#activity-ui{pointer-events:none;color:var(--ink);font-family:var(--font-body);font-size:var(--fs-body);text-align:left;line-height:1.45;position:fixed;inset:0}#ui{z-index:2}#activity-ui{z-index:1}*,:before,:after{box-sizing:border-box}#ui :is(h1,h2,h3,p),#activity-ui :is(h1,h2,h3,p){margin:0}h1,h2,h3,h4{text-wrap:balance}#ui :is(button,input,textarea,form,section,.sheet,.scrim,.tut,.scroll,.card-read),#activity-ui :is(button,input,textarea,section,.sheet,.scrim,.tap-layer,.swipe-layer,.scroll){pointer-events:auto}.safe{inset:var(--sat) var(--sar) var(--sab) var(--sal);pointer-events:none;position:absolute}.display{font-family:var(--font-display);font-weight:700;line-height:1.15}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}:is(button,[role=switch],[tabindex]):focus-visible{outline:3px solid var(--gold);outline-offset:2px}.btn{min-height:var(--touch-min);min-width:var(--touch-min);border-radius:var(--r-pill);border:1.5px solid var(--edge);background:var(--paper-2);color:var(--ink);font:600 var(--fs-body) / 1.2 var(--font-body);white-space:nowrap;box-shadow:var(--shadow-button);cursor:pointer;transition:transform var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease);justify-content:center;align-items:center;gap:8px;padding:0 22px;display:inline-flex}.btn-primary{background:var(--accent);color:var(--on-accent);border-color:var(--gold)}.btn:active:not(:disabled){transform:scale(.97)}.btn-primary:active:not(:disabled){background:var(--accent-press)}.btn-secondary:active:not(:disabled){background:var(--paper)}.btn.big{min-height:var(--touch-primary);min-width:200px;font-size:var(--fs-lead);padding:0 32px}.btn.wide{width:100%}.btn:disabled:not(.is-loading){background:var(--disabled-bg);color:var(--disabled-ink);border-color:var(--disabled-edge);box-shadow:none;cursor:default}.btn.is-loading{pointer-events:none}.btn-ghost{box-shadow:none;color:var(--accent);background:0 0;border-color:#0000}@media (hover:hover){.btn-primary:hover:not(:disabled){background:var(--hover-primary)}.btn-secondary:hover:not(:disabled),.btn-round:hover{background:var(--paper);border-color:var(--ink)}.chip:hover{border-color:var(--ink)}.tab:hover:not(.is-on){color:var(--ink);border-bottom-color:var(--line)}}.spin{border:2.5px solid;border-right-color:#0000;border-radius:50%;flex:none;width:20px;height:20px;animation:.9s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spin{opacity:.6;border-right-color:currentColor;animation:none}}.btn-round{border-radius:var(--r-pill);background:var(--paper-a);border:1.5px solid var(--edge);width:56px;height:56px;color:var(--ink);box-shadow:var(--shadow-button);cursor:pointer;transition:transform var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease);place-items:center;padding:0;display:grid}.btn-round.sm{width:48px;height:48px}.btn-round:active{background:var(--paper);transform:scale(.94)}.btn-round.is-on{background:var(--ink);color:var(--paper)}.btn-round .ic{width:26px;height:26px}.hud-top{z-index:var(--z-hud);align-items:flex-start;gap:8px;display:flex;position:absolute;top:12px;left:12px;right:12px}.counter{background:var(--paper-a);border-radius:var(--r-panel);font-size:var(--fs-body-s);max-width:200px;box-shadow:var(--shadow-panel);padding:8px 14px;line-height:1.35}.counter b{font-variant-numeric:tabular-nums;font-weight:600}.hud-icons{gap:8px;margin-left:auto;display:flex}.joystick{border:2px solid var(--joystick-edge);background:var(--joystick-bg);z-index:1;pointer-events:none;opacity:0;border-radius:50%;place-items:center;width:132px;height:132px;display:grid;position:fixed;top:0;left:0}.joystick.visible{opacity:1}.joystick-knob{background:var(--paper-a);border:1.5px solid var(--gold-line);width:58px;height:58px;box-shadow:var(--shadow-button);border-radius:50%}.joystick.ghost{opacity:1;position:absolute;top:auto;bottom:24px;left:20px}.share-btn{z-index:var(--z-hud);position:absolute;bottom:44px;right:16px}.keys{z-index:var(--z-hud);flex-wrap:wrap;gap:8px;max-width:420px;display:none;position:absolute;bottom:24px;left:24px}.keys span{background:var(--paper-a);border-radius:var(--r-pill);font-size:var(--fs-body-s);padding:6px 14px}kbd{font:600 16px/1 var(--font-body);border:1px solid var(--line);background:var(--field);border-bottom-width:2px;border-radius:6px;padding:2px 6px}.scrim{background:var(--scrim);z-index:15;position:absolute;inset:0}.sheet{max-height:55%;z-index:var(--z-sheet);background:var(--paper-a);border-radius:var(--r-panel) var(--r-panel) 0 0;padding:10px 20px calc(16px + var(--sab));box-shadow:var(--shadow-panel);animation:slide-up var(--dur-slide) var(--ease);flex-direction:column;gap:14px;display:flex;position:absolute;bottom:0;left:0;right:0;overflow:hidden}.sheet.tall{height:88%;max-height:88%}.sheet>.msg{flex:none}.sheet .grab{background:var(--line);border-radius:2px;flex:none;align-self:center;width:40px;height:4px}.sheet-head{flex:none;align-items:center;gap:12px;display:flex}.sheet-head>.head-ic{color:var(--accent);display:inline-flex}.sheet-head h2{font-family:var(--font-display);font-weight:700;font-size:var(--fs-h2);line-height:1.15}.sheet-head .btn-round{margin-left:auto}.sheet-body{flex-direction:column;gap:14px;min-height:0;display:flex;overflow:auto}.sheet-body .display{padding-block:2px 4px}.sheet-foot{flex:none;gap:10px;display:flex}.sheet-foot .btn{flex:1}.muted{color:var(--ink-muted);font-size:var(--fs-body-s)}.fine{color:var(--ink-muted);font-size:var(--fs-body-s);text-align:center}.field{gap:6px;display:grid}.field label{font-size:var(--fs-body-s);color:var(--ink-muted);font-weight:500}.input{background:var(--field);border:1.5px solid var(--edge-field);border-radius:var(--r-field);width:100%;min-height:52px;font:400 var(--fs-body) / 1.45 var(--font-body);color:var(--ink);-webkit-user-select:text;user-select:text;padding:12px 14px}.input::placeholder{color:var(--ink-muted);opacity:1}.input.area{resize:none;min-height:112px;display:block}.input:focus{border-color:var(--gold);box-shadow:0 0 0 3px var(--focus-ring);outline:none}.input[aria-invalid=true]{border-color:var(--accent);box-shadow:0 0 0 3px var(--error-ring)}.input mark,.msg mark,.marked mark{background:var(--mark-bg);color:inherit;-webkit-text-decoration:underline wavy var(--accent) 2px;text-decoration:underline wavy var(--accent) 2px;text-underline-offset:4px;border-radius:3px;padding:0 2px}.field-row{font-size:var(--fs-body-s);color:var(--ink-muted);justify-content:space-between;gap:8px;display:flex}.field-row .warn{color:var(--accent);gap:6px;display:flex}.field-row .warn .ic{flex:none}.count{font-size:var(--fs-body-s);font-variant-numeric:tabular-nums;color:var(--ink-muted);margin-left:auto}.count.full{color:var(--accent);font-weight:600}.msg{background:var(--danger-bg);color:var(--ink);border-radius:var(--r-card);font-size:var(--fs-body-s);align-items:flex-start;gap:8px;padding:10px 12px;display:flex}.msg .ic{color:var(--accent);flex:none}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{white-space:nowrap;border-radius:var(--r-pill);border:1.5px solid var(--edge);background:var(--paper-2);min-height:48px;font:inherit;font-size:var(--fs-body-s);color:var(--ink);cursor:pointer;flex:none;align-items:center;padding:0 16px;display:inline-flex}.chip.is-on{border-color:var(--accent);background:var(--chip-on-bg);font-weight:600}.chip:disabled{color:var(--ink-muted);border-style:dashed}.chips.nowrap{scrollbar-width:none;flex-wrap:nowrap;margin-right:-20px;padding-right:20px;overflow-x:auto;-webkit-mask:linear-gradient(90deg,#000 80%,#0000);mask:linear-gradient(90deg,#000 80%,#0000)}.seg{background:var(--disabled-bg);border-radius:var(--r-pill);gap:4px;padding:4px;display:flex}.seg>button{border-radius:var(--r-pill);min-height:48px;font:600 var(--fs-body-s) / 1.45 var(--font-body);color:var(--ink-muted);cursor:pointer;background:0 0;border:0;flex:1;justify-content:center;align-items:center;gap:6px;padding:0;display:inline-flex}.seg>button.is-on{background:var(--paper-2);color:var(--ink);box-shadow:0 1px 4px var(--seg-shadow)}.seg.four{border-radius:var(--r-panel);grid-template-columns:1fr 1fr;display:grid}.seg.four>button{border-radius:var(--r-field)}.tabs{border-bottom:1px solid var(--line);flex:none;display:flex}.tab{min-height:48px;font:600 var(--fs-body-s) / 1.45 var(--font-body);color:var(--ink-muted);white-space:nowrap;cursor:pointer;background:0 0;border:0;border-bottom:3px solid #0000;flex:1;justify-content:center;align-items:center;margin-bottom:-1px;padding:0;display:inline-flex}.tab.is-on{color:var(--ink);border-bottom-color:var(--accent)}.toast-stack{z-index:var(--z-toast);pointer-events:none;justify-items:center;gap:8px;display:grid;position:absolute;top:80px;left:16px;right:16px}.toast{background:var(--toast-bg);max-width:min(340px,100%);color:var(--paper-2);border-radius:var(--r-panel);font-size:var(--fs-body-s);box-shadow:var(--shadow-panel);animation:rise var(--dur-base) var(--ease);align-items:flex-start;gap:10px;padding:12px 18px;display:flex;position:relative}.toast .ic{color:var(--gold);flex:none}.toast.warn .ic{color:var(--toast-warn-icon)}.toast.sys{background:var(--toast-sys-bg)}.toast .spin{width:18px;height:18px;color:var(--gold)}.result{z-index:25;text-align:center;pointer-events:none;justify-items:center;gap:6px;display:grid;position:absolute;top:34%;left:50%;transform:translate(-50%,-50%)}.result .lab{white-space:nowrap;font-family:var(--font-display);font-weight:700;font-size:var(--fs-result);color:var(--scene-great);background:var(--plate);border-radius:var(--r-pill);animation:judge-pop var(--dur-judge) var(--ease) both;padding:6px 28px 10px;line-height:1.1}.result .sub{background:var(--paper-a);border-radius:var(--r-pill);font-size:var(--fs-body-s);padding:6px 16px}.result.r2 .lab{color:var(--scene-label);font-size:44px}.result.r3 .lab{color:var(--scene-label);font-size:40px}.result.count .lab{padding:0 40px;font-size:96px;animation:none}@keyframes judge-pop{0%{opacity:0;transform:scale(.7)}25%{opacity:1;transform:scale(1.08)}to{opacity:1;transform:scale(1)}}.ring-wrap{z-index:22;pointer-events:none;width:260px;height:260px;position:absolute;top:44%;left:50%;transform:translate(-50%,-50%)}.ring-wrap svg{width:100%;height:100%;overflow:visible}.hint{z-index:22;left:50%;bottom:calc(var(--sab) + 120px);background:var(--paper-a);border-radius:var(--r-panel);font-size:var(--fs-body-s);text-align:center;width:max-content;max-width:86%;box-shadow:var(--shadow-panel);pointer-events:none;padding:10px 18px;position:absolute;transform:translate(-50%)}.fab-close{z-index:24;pointer-events:auto;position:absolute;top:12px;left:12px}.pill-top{z-index:24;background:var(--paper-a);border-radius:var(--r-pill);font-size:var(--fs-body-s);font-variant-numeric:tabular-nums;box-shadow:var(--shadow-panel);white-space:nowrap;align-items:center;gap:8px;padding:10px 16px;font-weight:600;display:flex;position:absolute;top:18px;left:50%;transform:translate(-50%)}.opts{grid-template-columns:1fr 1fr;gap:12px;display:grid}.opt{border:1.5px solid var(--edge);background:var(--paper-2);color:var(--ink);font:inherit;border-radius:var(--r-panel);text-align:center;cursor:pointer;min-height:168px;transition:transform var(--dur-fast) var(--ease);justify-items:center;gap:4px;padding:12px;display:grid}.opt .t{font-family:var(--font-display);font-size:30px;font-weight:700;line-height:1.1}.opt:active,.opt.is-on{border-color:var(--accent);box-shadow:0 0 0 3px var(--error-ring);transform:scale(.98)}.opt svg{width:72px;height:64px}.hold-pill{width:100%;min-height:var(--touch-primary);border-radius:var(--r-pill);background:var(--accent);color:var(--on-accent);border:1.5px solid var(--gold);font:600 var(--fs-lead) / 1.45 var(--font-body);box-shadow:var(--shadow-button);-webkit-user-select:none;user-select:none;touch-action:none;cursor:pointer;flex:none;place-items:center;padding:0;display:grid;position:relative;overflow:hidden}.hold-pill i{background:var(--hold-fill);position:absolute;top:0;bottom:0;left:0}.hold-pill span{position:relative}.scroll{z-index:var(--z-sheet);left:16px;right:16px;top:calc(var(--sat) + 16px);bottom:calc(var(--sab) + 16px);animation:rise var(--dur-base) var(--ease);flex-direction:column;display:flex;position:absolute}.scroll .rod{background:linear-gradient(var(--rod-top), var(--rod-bottom));height:18px;box-shadow:var(--shadow-button);border-radius:9px;flex:none;margin:0 -8px}.q-foot{flex:none;gap:10px;padding-top:12px;display:flex}.q-foot .btn{flex:1}.scroll .paper{background:var(--paper-scroll);background-image:radial-gradient(var(--paper-grain) 1px, transparent 1px);background-size:6px 6px;flex-direction:column;flex:1;gap:12px;min-height:0;padding:18px 16px;display:flex;overflow-y:auto}.scroll .paper .loading{height:100%;color:var(--ink-muted);align-content:center;place-items:center;gap:10px;display:grid}.q-head{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.q-no{font-family:var(--font-display);font-size:34px;font-weight:700}.q-lv{font-family:var(--font-display);color:var(--accent);border:1.5px solid var(--accent);border-radius:var(--r-pill);padding:0 14px;font-size:26px;font-weight:700}.poem{font-family:var(--font-display);text-align:center;border-block:1px solid var(--line);padding:6px 0;font-size:22px;line-height:1.45}.q-sec b{font-size:var(--fs-body-s);color:var(--ink-muted);font-weight:600;display:block}.pv-wrap{width:62%;max-width:220px;margin:0 auto}.sheet.tall .sheet-body{padding-bottom:20px;-webkit-mask:linear-gradient(#000 calc(100% - 24px),#0000);mask:linear-gradient(#000 calc(100% - 24px),#0000)}.stats{grid-template-columns:1fr 1fr;gap:8px;display:grid}.stat{background:var(--paper-2);border-radius:var(--r-card);padding:10px 12px}.stat b{font-family:var(--font-display);font-size:30px;line-height:1.1;display:block}.stat span{font-size:var(--fs-body-s);color:var(--ink-muted)}.list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.badge{border-radius:var(--r-pill);background:var(--chip-on-bg);min-height:36px;color:var(--accent);font-weight:600;font-size:var(--fs-body-s);align-items:center;padding:0 14px;display:inline-flex}.item{background:var(--paper-2);border-radius:var(--r-card);align-items:center;gap:8px;padding:8px 8px 8px 14px;display:flex}.item p{font-size:var(--fs-body-s);overflow-wrap:anywhere;flex:1}.item p small{color:var(--ink-muted);font-size:var(--fs-body-s);display:block}.empty{text-align:center;color:var(--ink-muted);justify-items:center;gap:10px;padding:20px 12px;display:grid}.empty .ic{width:48px;height:48px;color:var(--gold)}.empty b{color:var(--ink)}.banner{background:var(--danger-bg);border-radius:var(--r-card);font-size:var(--fs-body-s);align-items:flex-start;gap:10px;padding:10px 12px;display:flex}.banner .ic{color:var(--accent);flex:none}.row{border:0;border-bottom:1px solid var(--line);width:100%;min-height:52px;color:var(--ink);font:inherit;text-align:left;background:0 0;align-items:center;gap:12px;margin:0;padding:0;display:flex}button.row{cursor:pointer}.row>span:first-child{flex:1}.row .flip{display:inline-flex;transform:scaleX(-1)}.switch{background:var(--disabled-bg);border:1.5px solid var(--edge-field);border-radius:16px;flex:none;width:52px;height:32px;position:relative}.switch:after{content:"";background:var(--switch-knob);width:23px;height:23px;box-shadow:0 1px 3px var(--switch-shadow);transition:left var(--dur-fast) var(--ease);border-radius:50%;position:absolute;top:3px;left:3px}[aria-checked=true]>.switch{background:var(--accent);border-color:var(--accent)}[aria-checked=true]>.switch:after{left:24px}.slider{--v:.5;appearance:none;cursor:pointer;background:0 0;flex:none;width:140px;height:48px;margin:0}.slider::-webkit-slider-runnable-track{background:linear-gradient(90deg, var(--accent) calc(var(--v) * 100%), var(--line) 0);border-radius:3px;height:6px}.slider::-moz-range-track{background:linear-gradient(90deg, var(--accent) calc(var(--v) * 100%), var(--line) 0);border-radius:3px;height:6px}.slider::-webkit-slider-thumb{-webkit-appearance:none;background:var(--paper-2);border:2px solid var(--accent);box-sizing:border-box;border-radius:50%;width:28px;height:28px;margin-top:-11px}.slider::-moz-range-thumb{background:var(--paper-2);border:2px solid var(--accent);box-sizing:border-box;border-radius:50%;width:28px;height:28px}.tut{z-index:22;background:var(--paper-a);border-radius:var(--r-panel);max-width:280px;box-shadow:var(--shadow-panel);animation:rise var(--dur-base) var(--ease);gap:8px;padding:14px 16px;display:grid;position:absolute}.tut:after{content:"";background:inherit;width:16px;height:16px;position:absolute;transform:rotate(45deg)}.tut.down:after{bottom:-8px;left:48px}.tut.up:after{margin-left:-8px;top:-8px;left:50%}.tut-foot{justify-content:space-between;align-items:center;gap:8px;display:flex}.dots{gap:6px;display:flex}.dots i{background:var(--line);border-radius:50%;width:8px;height:8px}.dots i.is-on{background:var(--accent)}.ghost-hand{z-index:21;border-top:3px dashed var(--ghost-line);pointer-events:none;width:120px;height:2px;position:absolute;top:50%;left:58%}.ghost-hand:before{content:"";background:var(--ghost-dot);width:20px;height:20px;box-shadow:0 0 12px var(--ghost-glow);animation:ghost-drag 1.6s var(--ease) infinite;border-radius:50%;position:absolute;top:-12px;left:-10px}@keyframes ghost-drag{0%,15%{transform:translate(0)}85%,to{transform:translate(120px)}}@media (prefers-reduced-motion:reduce){.ghost-hand:before{animation:none}}.splash-skip,.skip-pill{z-index:24;left:50%;bottom:calc(var(--sab) + 40px);background:var(--plate);color:var(--scene-label);border-radius:var(--r-pill);font-size:var(--fs-body-s);white-space:nowrap;align-items:center;min-height:48px;padding:12px 22px;font-weight:600;display:flex;position:absolute;transform:translate(-50%)}.err-page{background:linear-gradient(var(--err-top), var(--err-bottom));pointer-events:auto;place-items:center;padding:24px;display:grid;position:absolute;inset:0}.err-card{background:var(--paper);border-radius:var(--r-panel);max-width:420px;box-shadow:var(--shadow-panel);gap:12px;padding:22px;display:grid}.err-card>.ic{color:var(--accent);width:32px;height:32px}.err-card h2{font-family:var(--font-display);font-size:var(--fs-h2);line-height:1.15}.err-card ul{gap:4px;margin:0;padding-left:20px;display:grid}.tpl-row{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.tpl{border:1.5px solid var(--edge);border-radius:var(--r-card);font:inherit;font-size:var(--fs-body-s);color:var(--ink);background:var(--paper-2);cursor:pointer;justify-items:center;gap:4px;min-height:48px;padding:6px;display:grid}.tpl i{aspect-ratio:4/5;background:linear-gradient(var(--tpl-sky) 0 58%, var(--paper) 58%);border-radius:8px;width:100%;display:block}.tpl.is-on{border-color:var(--accent);font-weight:600}.tpl:disabled{color:var(--ink-muted);cursor:default;border-style:dashed}.tpl:disabled i{opacity:.35}.pv{aspect-ratio:4/5;border-radius:var(--r-card);width:100%;box-shadow:var(--shadow-button);background:var(--paper-2);position:relative;overflow:hidden}.pv img{object-fit:cover;-webkit-user-select:auto;user-select:auto;-webkit-touch-callout:default;width:100%;height:100%;display:block}.pv.is-loading{color:var(--ink-muted);font-family:var(--font-body);font-size:var(--fs-body-s);align-content:center;place-items:center;gap:8px;display:grid}.action-bar{z-index:var(--z-hud);animation:rise var(--dur-base) var(--ease);gap:12px;display:flex;position:absolute;bottom:36px;left:50%;transform:translate(-50%)}.action-bar .btn.big{min-width:148px;padding:0 20px}.share-btn.raised{bottom:128px}.verse{z-index:25;background:var(--paper-a);border-radius:var(--r-panel);text-align:center;width:min(340px,86%);box-shadow:var(--shadow-panel);pointer-events:auto;animation:verse-rise var(--dur-verse) var(--ease);justify-items:center;gap:16px;padding:22px 20px 16px;display:grid;position:absolute;top:46%;left:50%;transform:translate(-50%,-50%)}.verse p{font-family:var(--font-display);font-size:28px;font-weight:700;line-height:1.35}.card-read{z-index:25;background:var(--paper-a);border-radius:var(--r-panel);width:min(340px,88%);box-shadow:var(--shadow-panel);border-top:6px solid var(--accent);animation:verse-rise var(--dur-base) var(--ease);gap:10px;padding:16px 18px 18px;display:grid;position:absolute;top:42%;left:50%;transform:translate(-50%,-50%)}.card-read .head{align-items:center;gap:10px;display:flex}.card-read .head b{font-size:var(--fs-body-s);color:var(--ink-muted);flex:1}.card-read p{font-family:var(--font-display);overflow-wrap:anywhere;font-size:26px;font-weight:700;line-height:1.35}.card-read .prayer-text.long{font-size:22px}.mo-ico{z-index:22;left:50%;bottom:calc(var(--sab) + 150px);background:var(--paper-a);width:88px;height:88px;box-shadow:var(--shadow-panel);pointer-events:none;border-radius:50%;place-items:center;margin-left:-44px;display:grid;position:absolute}.mo-ico .ic{width:48px;height:48px}.mo-ring{z-index:21;left:50%;bottom:calc(var(--sab) + 122px);border:5px solid var(--scene-great);width:144px;height:144px;box-shadow:0 0 10px var(--glow-soft);pointer-events:none;opacity:0;border-radius:50%;margin-left:-72px;position:absolute}.walk-pill{z-index:22;left:50%;bottom:calc(var(--sab) + 48px);background:var(--paper-a);border-radius:var(--r-pill);font-size:var(--fs-body-s);white-space:nowrap;box-shadow:var(--shadow-panel);animation:rise var(--dur-base) var(--ease);align-items:center;gap:10px;padding:12px 18px;display:flex;position:absolute;transform:translate(-50%)}.walk-pill .spin{width:18px;height:18px;color:var(--accent)}.tut.top{width:min(320px,86%);top:84px;left:50%;transform:translate(-50%)}.flash-note{color:var(--ink-muted);font-size:var(--fs-body-s)}.swipe-note{color:var(--ink-muted);justify-content:center;align-items:center;gap:10px;display:flex}.mo-score{text-align:center;justify-items:center;gap:4px;display:grid}.mo-score .display{font-size:var(--fs-score);color:var(--accent);line-height:1}.mo-score p,.lead{font-size:var(--fs-lead)}.stick-no{text-align:center;justify-items:center;gap:6px;display:grid}.stick-no .display{font-size:64px;line-height:1}.blessing{font-size:22px;line-height:1.3}.tap-layer,.swipe-layer{touch-action:none;position:absolute;inset:0}.bubbles{z-index:1;pointer-events:none;position:fixed;inset:0;overflow:hidden}.pbubble{background:var(--bubble-bg);border:1px solid var(--line);width:max-content;max-width:220px;color:var(--ink);box-shadow:0 4px 14px var(--bubble-shadow);pointer-events:none;opacity:0;will-change:transform, opacity;border-radius:14px;padding:8px 14px;position:absolute;top:0;left:0}.pbubble span{-webkit-line-clamp:2;font:500 calc(16px * var(--ts)) / 1.35 var(--font-body);text-align:center;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.pbubble:after{content:"";left:var(--tail,50%);background:inherit;border:inherit;border-width:0 1px 1px 0;width:12px;height:12px;position:absolute;bottom:-7px;transform:translate(-50%)rotate(45deg)}.debug-overlay{left:calc(8px + var(--sal));bottom:calc(112px + var(--sab));z-index:10;background:var(--debug-bg);color:var(--debug-ink);white-space:pre;pointer-events:none;border-radius:6px;padding:6px 8px;font:12px/1.4 ui-monospace,Menlo,monospace;position:fixed}@keyframes slide-up{0%{opacity:0;transform:translateY(24px)}}@keyframes rise{0%{opacity:0;translate:0 8px}}@keyframes verse-rise{0%{opacity:0;translate:0 12px}}@media (orientation:landscape){.sheet{top:auto;left:auto;right:calc(12px + var(--sar));border-radius:var(--r-panel);gap:10px;width:380px;height:auto;max-height:calc(100% - 24px);padding-bottom:16px;bottom:12px}.sheet.tall{height:auto;max-height:none;top:12px}.sheet .grab{display:none}.joystick{width:112px;height:112px}.joystick.ghost{bottom:16px;left:16px}.share-btn{bottom:20px}.counter{max-width:280px}.ring-wrap{width:200px;height:200px;left:36%}.result{top:40%;left:36%}.hint{bottom:16px;left:36%}.scroll{width:460px;left:auto;right:calc(16px + var(--sar));top:12px;bottom:12px}.opt{min-height:132px}.action-bar{bottom:16px}.share-btn.raised{bottom:20px}.toast-stack{top:16px;left:30%;right:30%}.mo-ico{bottom:52px;left:36%}.mo-ring{bottom:24px;left:36%}.verse,.card-read{left:36%}.tut.top{top:76px}.input.area{min-height:76px}.sugg-lab{display:none}.pv-wrap{max-width:120px}}@media (min-width:1000px){.sheet{width:440px;max-height:calc(100% - 48px);top:auto;bottom:24px;right:24px}.sheet.tall{top:24px}.joystick{display:none}.keys{display:flex}.ring-wrap{width:300px;height:300px;left:42%}.result{left:42%}.hint{bottom:40px;left:42%}.scroll{width:520px;top:24px;bottom:24px;right:24px}.share-btn.raised{bottom:44px}.mo-ico,.mo-ring,.verse,.card-read{left:42%}.pbubble{max-width:260px}}@media (max-height:700px) and (orientation:portrait){.sheet{gap:10px;max-height:62%}.sheet.tall{height:92%;max-height:92%}.opt{min-height:132px}.opt svg{width:56px;height:48px}.input.area{min-height:84px}.sugg-lab{display:none}.ring-wrap{width:220px;height:220px}.poem{font-size:20px}.scroll .paper{gap:8px;padding:14px 18px}}.input-wrap{display:grid}.input-wrap>*{grid-area:1/1}.input-wrap.is-marked>.input:not(.backdrop){background:0 0;position:relative}.input.backdrop{color:#0000;pointer-events:none;white-space:pre;box-shadow:none;border-color:#0000;overflow:hidden}.input.area.backdrop{white-space:pre-wrap;overflow-wrap:break-word}.field-line{gap:8px;display:flex}.field-line .input-wrap{flex:1;min-width:0}.result.chant{top:30%}.hint.chant-hint{bottom:calc(var(--sab) + 60px)}
