:root{--ground:#14110f;--tatami:#c9a45c;--obi:#c8402f;--ink:#f3ede3;--ink-dim:#f3ede3a6;--panel:#1d1815;--panel-line:#c9a45c40}*{box-sizing:border-box}html,body{background:var(--ground);color:var(--ink);overscroll-behavior:none;height:100%;margin:0;padding:0;font-family:Hiragino Sans,Hiragino Kaku Gothic ProN,Yu Gothic,system-ui,-apple-system,sans-serif}#app{min-height:100vh}button{font-family:inherit}.screen.setup{padding:1.25rem 1rem calc(1.5rem + env(safe-area-inset-bottom));padding-top:calc(1.25rem + env(safe-area-inset-top));background:var(--ground);min-height:100dvh;color:var(--ink);flex-direction:column;gap:1rem;display:flex}.screen-title{text-align:center;color:var(--tatami);letter-spacing:.04em;margin:0 0 .25rem;font-size:1.6rem;font-weight:700}.preset-band{-webkit-overflow-scrolling:touch;align-items:center;gap:.5rem;padding:.25rem .1rem .5rem;display:flex;overflow-x:auto}.preset-chip{border:1px solid var(--panel-line);background:var(--panel);border-radius:999px;flex:none;align-items:stretch;display:inline-flex;overflow:hidden}.preset-load{color:var(--tatami);font:inherit;white-space:nowrap;cursor:pointer;background:0 0;border:none;padding:.4rem .5rem .4rem .85rem}.preset-del{border:none;border-left:1px solid var(--panel-line);color:#f3ede380;cursor:pointer;background:0 0;padding:0 .6rem;font-size:.75rem}.preset-del:hover{color:var(--obi)}.preset-save{border:1px dashed var(--panel-line);color:var(--tatami);font:inherit;white-space:nowrap;cursor:pointer;background:0 0;border-radius:999px;flex:none;padding:.4rem .85rem}.setup-status{border:1px solid var(--obi);color:var(--obi);text-align:center;background:#c8402f26;border-radius:8px;margin-bottom:.75rem;padding:.6rem .9rem;font-size:.9rem;font-weight:600}[data-rows]{flex-direction:column;gap:.6rem;display:flex}.row{background:var(--panel);border:1px solid var(--panel-line);border-radius:10px;align-items:center;gap:.5rem;padding:.4rem;display:flex}.row.rest{opacity:.65}.drill-name,.drill-secs{border:1px solid var(--panel-line);background:var(--ground);color:var(--ink);border-radius:6px;padding:.6rem .7rem;font-size:1rem}.drill-name{flex:1}.drill-secs{width:80px}.row-move{width:36px;height:36px;color:var(--tatami);cursor:pointer;background:#c9a45c26;border:1px solid #c9a45c66;border-radius:6px;justify-content:center;align-items:center;padding:0;font-size:1rem;font-weight:700;display:flex}.row-move:disabled{opacity:.3;cursor:not-allowed}.row-del{border:1px solid var(--obi);color:var(--obi);cursor:pointer;background:#c8402f33;border-radius:6px;padding:.6rem .85rem;font-size:1rem}.add{background:var(--panel);border:1px solid var(--panel-line);color:var(--ink);cursor:pointer;border-radius:8px;padding:.85rem 1rem;font-size:1rem}.total{text-align:center;color:var(--ink-dim);padding:.5rem;font-size:.9rem}.btn-ghost,.btn-start{cursor:pointer;border:none;border-radius:10px;min-height:48px;padding:.95rem 1rem;font-size:1.05rem}.btn-ghost{background:var(--panel);border:1px solid var(--panel-line);color:var(--ink)}.btn-start{background:var(--obi);color:var(--ink);letter-spacing:.02em;font-weight:700}.screen.training{background:#000;flex-direction:column;width:100%;height:100vh;display:flex;position:relative;overflow:hidden}.screen.training video.mirror{object-fit:cover;width:100%;height:100%;position:absolute;top:0;left:0;transform:scaleX(-1)}.training-top-bar{padding:calc(.6rem + env(safe-area-inset-top)) 1rem .6rem;color:var(--ink);z-index:10;background:linear-gradient(#000000a6,#0000);justify-content:space-between;font-size:.95rem;display:flex;position:absolute;top:0;left:0;right:0}[data-rec]{color:var(--obi);font-weight:700}@keyframes rec-pulse{0%,to{opacity:1}50%{opacity:.45}}[data-rec]:before{content:"";background:var(--obi);border-radius:50%;width:.55em;height:.55em;margin-right:.4em;animation:1.4s ease-in-out infinite rec-pulse;display:inline-block}[data-prog]{text-align:right;color:var(--ink)}.training-center{z-index:10;text-align:center;flex-direction:column;align-items:center;gap:1rem;width:100%;padding:0 1rem;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}[data-drill]{color:var(--ink);text-align:center;text-shadow:0 2px 10px #0009;font-size:1.5rem;font-weight:700}[data-timer]{color:var(--ink);font-variant-numeric:tabular-nums;text-shadow:0 4px 18px #000000b3;font-size:6rem;font-weight:800;line-height:1}[data-cue]{background:var(--tatami);color:var(--ground);text-align:center;z-index:20;opacity:0;pointer-events:none;border-radius:10px;padding:1rem 2rem;font-size:1.3rem;font-weight:700;transition:opacity .2s ease-in-out;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}[data-cue].show{opacity:1}[data-next]{bottom:calc(90px + env(safe-area-inset-bottom));color:var(--ink-dim);text-align:right;text-shadow:0 2px 8px #0009;font-size:.9rem;font-weight:700;position:absolute;right:1rem}.training-controls{padding:.6rem .6rem calc(.6rem + env(safe-area-inset-bottom));z-index:10;background:linear-gradient(#0000,#000000b3);gap:.5rem;display:flex;position:absolute;bottom:0;left:0;right:0}.ctrl-btn{color:var(--ink);cursor:pointer;background:#ffffff14;border:1px solid #f3ede34d;border-radius:10px;flex:1;min-height:48px;padding:.9rem .5rem;font-size:.9rem;font-weight:700;transition:background .2s}.ctrl-btn:active{background:#ffffff4d}.stop-btn{border-color:var(--obi);color:var(--obi)}.screen.done{padding:1.25rem 1rem calc(1.5rem + env(safe-area-inset-bottom));padding-top:calc(1.25rem + env(safe-area-inset-top));background:var(--ground);min-height:100dvh;color:var(--ink);flex-direction:column;align-items:center;gap:1rem;display:flex}.screen.done video{background:#000;border-radius:10px;width:100%;max-width:400px}.stats{justify-content:center;gap:1rem;display:flex}.stat{background:var(--panel);border:1px solid var(--panel-line);border-radius:10px;flex-direction:column;align-items:center;gap:.4rem;min-width:84px;padding:.6rem 1rem;display:flex}.stat .v{color:var(--tatami);font-size:1.5rem;font-weight:700}.stat .k{color:var(--ink-dim);font-size:.85rem}.btn-dl,.btn-again{cursor:pointer;border:none;border-radius:10px;width:100%;max-width:340px;min-height:48px;padding:.95rem 1rem;font-size:1.05rem}.btn-dl{background:var(--obi);color:var(--ink);font-weight:700}.btn-again{background:var(--panel);border:1px solid var(--panel-line);color:var(--ink);font-weight:700}.screen.voice{padding:1.25rem 1rem calc(1.5rem + env(safe-area-inset-bottom));padding-top:calc(1.25rem + env(safe-area-inset-top));background:var(--ground);max-width:500px;min-height:100dvh;color:var(--ink);flex-direction:column;gap:1rem;margin:0 auto;display:flex}.btn-back{background:var(--panel);border:1px solid var(--panel-line);color:var(--ink);cursor:pointer;border-radius:8px;align-self:flex-start;padding:.6rem .9rem;font-size:.95rem}select[data-role],input[data-label]{border:1px solid var(--panel-line);background:var(--panel);color:var(--ink);border-radius:6px;padding:.6rem .7rem;font-size:1rem}.btn-record{background:var(--obi);color:var(--ink);cursor:pointer;border:none;border-radius:10px;min-height:48px;padding:.95rem 1rem;font-size:1rem;font-weight:700}[data-list]{flex-direction:column;gap:1rem;display:flex}.clip-section h3{color:var(--tatami);margin:.5rem 0;font-size:.9rem}.clip-section ul{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.clip-item{border:1px solid var(--panel-line);background:var(--panel);border-radius:8px;align-items:center;gap:.5rem;padding:.5rem;display:flex}.clip-label{color:var(--ink);flex:1;font-size:.9rem}.btn-play,.btn-delete{border:1px solid var(--panel-line);cursor:pointer;color:var(--ink);background:0 0;border-radius:6px;padding:.4rem .6rem;font-size:.8rem}.btn-play{border-color:var(--tatami);color:var(--tatami)}.btn-delete{border-color:var(--obi);color:var(--obi)}.btn-export,.btn-import{background:var(--panel);border:1px solid var(--panel-line);color:var(--ink);cursor:pointer;border-radius:8px;padding:.85rem 1rem;font-size:1rem}.caveat{color:var(--ink-dim);text-align:center;font-size:.8rem}.voice-status{color:var(--obi);text-align:center;min-height:1em;font-size:.85rem}.btn-play:disabled{opacity:.4;cursor:not-allowed}@media (prefers-reduced-motion:reduce){[data-rec]:before{animation:none}[data-cue]{transition:none}}
