.touch-layer{z-index:60;pointer-events:none;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;display:none;position:fixed;inset:0}.touch-layer.on{display:block}.touch-layer.on:not(.playing)>*{display:none}.touch-layer.on.playing{pointer-events:auto}.touch-base,.touch-knob{pointer-events:none;opacity:0;border-radius:50%;transition:opacity .15s;position:absolute;top:0;left:0}.touch-base{background:radial-gradient(circle,#ffffff0d,#ffffff05 60%,#0000 72%);border:1.5px solid #ffffff47;width:140px;height:140px;margin:-70px 0 0 -70px}.touch-knob{background:#39e1ff2e;border:1.5px solid #39e1ffd9;width:58px;height:58px;margin:-29px 0 0 -29px;box-shadow:0 0 22px #39e1ff73}.touch-layer.stick-on .touch-base,.touch-layer.stick-on .touch-knob{opacity:1}.touch-layer.playing:not(.stick-on):before{content:"";left:max(28px, env(safe-area-inset-left));pointer-events:none;border:1px dashed #ffffff29;border-radius:50%;width:112px;height:112px;position:absolute;bottom:34px}.touch-aim{pointer-events:none;opacity:0;border:1.5px solid #ffffff3d;border-radius:50%;width:64px;height:64px;margin:-32px 0 0 -32px;transition:opacity .12s,border-color .12s,box-shadow .12s;position:absolute;top:0;left:0}.touch-layer:not(.long-press) .touch-aim{display:none}.touch-layer.aim-on .touch-aim{opacity:1}.touch-aim:after{content:"";opacity:0;border:2px solid #c08bfff2;border-radius:50%;position:absolute;inset:-1.5px;transform:scale(.35)}.touch-layer.aim-on.lock-ready .touch-aim:after,.touch-layer.aim-on.locking .touch-aim:after{animation:touch-charge var(--long-press,.26s) linear forwards}@keyframes touch-charge{0%{opacity:.25;transform:scale(.35)}to{opacity:1;transform:scale(1)}}.touch-layer.locking .touch-aim{border-color:#c08bfff2;box-shadow:0 0 22px #c08bff8c,inset 0 0 14px #c08bff59}.touch-btn{right:max(22px, env(safe-area-inset-right));bottom:calc(26px + var(--slot) * 92px);color:#f3efe6db;letter-spacing:.18em;text-indent:.18em;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);-webkit-tap-highlight-color:transparent;background:#0a0b0e6b;border:1.5px solid #ffffff52;border-radius:50%;width:76px;height:76px;font:700 12px/1 Saira Variable,system-ui,sans-serif;transition:transform 80ms,background .12s,border-color .12s;position:absolute}.touch-btn.ready{color:#e2c8ff;border-color:#c08bffd9;box-shadow:0 0 18px #c08bff59}.touch-btn.pressed{background:#39e1ff38;border-color:#39e1ffe6;transform:scale(.92)}.touch-pause{left:max(16px, env(safe-area-inset-left));top:max(14px, env(safe-area-inset-top));-webkit-tap-highlight-color:transparent;background:#0a0b0e6b;border:1px solid #ffffff3d;border-radius:50%;grid-auto-flow:column;place-content:center;gap:6px;width:44px;height:44px;display:grid;position:absolute}.touch-pause i{background:#f3efe6db;width:4px;height:14px;display:block}.rotate-prompt{z-index:80;color:#f3efe6;letter-spacing:.12em;text-align:center;background:#07080b;place-content:center;justify-items:center;gap:18px;padding:24px;font:600 14px/1.6 Saira Variable,system-ui,sans-serif;display:none;position:fixed;inset:0}.rotate-prompt i{border:2px solid #ffe9c7d9;border-radius:9px;width:46px;height:78px;animation:2.2s ease-in-out infinite rotate-hint}@keyframes rotate-hint{0%,25%{transform:rotate(0)}55%,to{transform:rotate(-90deg)}}@media (orientation:portrait){body.touch .rotate-prompt{display:grid}}.fs-btn{top:max(10px, env(safe-area-inset-top));z-index:64;color:#f3efe6eb;letter-spacing:.14em;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);-webkit-tap-highlight-color:transparent;cursor:pointer;background:#0a0b0e9e;border:1px solid #ffffff52;border-radius:6px;align-items:center;gap:7px;padding:7px 11px;font:600 11px/1 Saira Variable,system-ui,sans-serif;display:none;position:fixed}.fs-btn.on{display:inline-flex}.fs-btn.tr{right:max(12px, env(safe-area-inset-right))}.fs-btn.tl{left:max(12px, env(safe-area-inset-left))}.fs-btn svg{width:13px;height:13px}.fs-guide{z-index:90;padding:12px max(16px, env(safe-area-inset-right)) 12px max(16px, env(safe-area-inset-left));-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#050608bd;place-items:center;display:none;position:fixed;inset:0}.fs-guide.on{display:grid}.fs-guide .box{box-sizing:border-box;color:#f3efe6;background:#090a0df2;border:1px solid #ffe9c74d;width:min(600px,100%);max-height:calc(100dvh - 24px);padding:14px 18px;font:13px/1.55 Hiragino Sans,Yu Gothic UI,Noto Sans JP,system-ui,sans-serif;overflow:auto}.fs-guide h3{letter-spacing:.06em;margin:0 0 4px;font-size:16px}.fs-guide p{color:#f3efe6b8;margin:0}.fs-guide ol{gap:6px;margin:8px 0;padding:0;list-style:none;display:grid}.fs-guide li{color:#f3efe6cc;background:#ffffff08;border:1px solid #ffe9c72e;padding:7px 10px}.fs-guide li b{color:#ffe9c7;margin-bottom:2px;display:block}.fs-guide .note{color:#f3efe680;font-size:11px}.fs-guide .btns{justify-content:flex-end;gap:8px;margin-top:10px;display:flex}.fs-guide button{color:#f3efe6db;letter-spacing:.08em;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:1px solid #ffe9c752;padding:7px 14px;font:600 12px/1 system-ui,sans-serif}.fs-guide button.ok{color:#0a0b0e;background:#ffe9c7;border-color:#ffe9c7}
