*{box-sizing:border-box;margin:0;padding:0}:root{--mint:#00e0a0;--mint-deep:#0aa578;--ink:#17181c;--ink-2:#232428;--ink-border:#3a3b42;--paper:#ffffff;--line:#d9dbe0;--muted:#5c6066;--muted-dark:#9aa0a8;--foot-l:#ff5ca8;--foot-r:#38bdf8}html{-webkit-text-size-adjust:100%;touch-action:manipulation}body{background-color:var(--page-bg,#29d6a2);background-image:repeating-linear-gradient(115deg,rgba(255,255,255,.07) 0 18px,rgba(0,0,0,.045) 18px 36px),linear-gradient(135deg,var(--page-bg,#29d6a2),var(--page-bg2,var(--page-bg,#29d6a2)));background-attachment:scroll,fixed;font-family:Hiragino Sans,Noto Sans JP,system-ui,-apple-system,sans-serif;min-height:100vh}a,body{color:var(--ink)}a{font-weight:700}.edit-cell,.note,.pad-panel,button,select{touch-action:manipulation}.container{max-width:1100px;margin:0 auto;padding:10px 6px 48px;position:relative}.bg-picker-wrap{position:absolute;top:10px;right:8px;gap:5px}.bg-picker-wrap,.lang-wrap{display:flex;align-items:center}.lang-wrap{position:relative}.lang-badge{display:inline-flex;align-items:center;gap:3px;height:27px;padding:0 8px;background:var(--paper);border:2px solid var(--ink);color:var(--ink);font-size:11px;font-weight:800;box-shadow:0 2px 0 rgba(0,0,0,.3)}.lang-select{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;-moz-appearance:none;appearance:none;-webkit-appearance:none;font-size:16px}.bg-reset{width:27px;font-size:14px;line-height:1;display:flex;align-items:center;justify-content:center}.bg-picker,.bg-reset{height:27px;padding:0}.bg-picker{width:36px;border:2px solid var(--ink);background:var(--paper);box-shadow:0 2px 0 rgba(0,0,0,.3);cursor:pointer}.bg-picker::-webkit-color-swatch-wrapper{padding:3px}.bg-picker.round{width:27px;border-radius:50%}.bg-picker.round::-webkit-color-swatch{border-radius:50%}.bg-picker::-webkit-color-swatch{border:none}.site-header{margin-bottom:12px;padding-left:4px}.modal-backdrop{position:fixed;inset:0;background:rgba(6,8,12,.66);display:flex;align-items:center;justify-content:center;z-index:50;padding:16px}.modal-card{background:var(--ink);border:2px solid var(--ink-border);box-shadow:0 4px 0 rgba(0,0,0,.4);color:#fff;width:min(92vw,400px);padding:16px;display:flex;flex-direction:column;gap:16px;max-height:86vh;max-height:86dvh;overflow-y:auto;overscroll-behavior:contain}.modal-head{display:flex;align-items:center;justify-content:space-between}.modal-head h2{font-size:15px;font-weight:800;letter-spacing:.04em}.modal-close{width:32px;padding:6px 0}.opt-row{display:flex;flex-direction:column;gap:8px}.opt-label{font-size:12px;font-weight:700;color:var(--mint)}.opt-btns{display:flex;flex-wrap:wrap;gap:6px}.opt-hint{font-size:12px;color:#aab}.perm-label{margin-top:6px}.clip-range{display:flex;gap:10px;align-items:flex-end}.clip-range .timing-label{flex:1 1;min-width:0;color:#cdd3da}.clip-range input[type=number],.modal-card input[type=number]{width:100%;background:var(--paper);border:2px solid var(--line);border-radius:0;color:var(--ink);font-size:16px;padding:7px 10px}.clip-count{padding-bottom:10px;white-space:nowrap}.modal-card input[type=text]{font-size:16px}.perm-row{display:flex;gap:6px}.perm-btn{position:relative;flex:1 1;min-height:52px;font-size:20px;font-weight:800;padding:14px 0 6px}.perm-btn .perm-lane{position:absolute;top:2px;left:50%;transform:translateX(-50%);font-size:9px;font-weight:700;color:#888}.perm-btn.selected{outline:3px solid var(--mint);outline-offset:-1px}.site-footer{display:inline-block;margin:18px 0 10px;padding:5px 10px;font-size:11px;font-weight:700;color:rgba(255,255,255,.72);background:rgba(23,24,28,.62)}.site-footer a{color:var(--mint);text-decoration:underline;text-underline-offset:2px}.site-footer a:hover{color:#fff}.site-header h1{font-family:var(--font-title),"Arial Black",sans-serif;font-size:22px;font-weight:400;letter-spacing:.02em;text-transform:uppercase;line-height:1;display:inline-block}.site-header h1 a{color:#fff;text-decoration:none;text-shadow:-2px -2px 0 var(--ink),2px -2px 0 var(--ink),-2px 2px 0 var(--ink),2px 2px 0 var(--ink),-2px 0 0 var(--ink),2px 0 0 var(--ink),0 -2px 0 var(--ink),0 2px 0 var(--ink),3px 3px 0 #ffd400,4px 4px 0 #ffd400,5px 5px 0 #ffd400,7px 7px 0 var(--ink)}.card{background:var(--ink);border:none;border-radius:0;padding:14px;margin-bottom:12px;color:#fff;box-shadow:0 3px 0 rgba(0,0,0,.22)}.card h2{font-size:15px;margin-bottom:10px}textarea{width:100%;min-height:200px;background:var(--paper);border:2px solid var(--line);border-radius:0;color:var(--ink);font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:13px;padding:12px;resize:vertical}input[type=text]:focus,textarea:focus{outline:2px solid var(--mint);outline-offset:-1px}input[type=text],input[type=url]{background:var(--paper);border:2px solid var(--line);border-radius:0;color:var(--ink);font-size:14px;padding:7px 12px}input[type=url]:focus{outline:2px solid var(--mint);outline-offset:-1px}.url-import-row{display:flex;gap:8px;margin-bottom:8px}.url-import-row .url-input{flex:1 1;min-width:0;font-size:13px}.url-import-row button{flex-shrink:0;white-space:nowrap}button{-moz-appearance:none;appearance:none;-webkit-appearance:none;background:var(--mint);border:none;border-radius:0;color:var(--ink);cursor:pointer;font-size:13px;font-weight:800;padding:9px 14px;box-shadow:0 2px 0 rgba(0,0,0,.3);touch-action:manipulation;-moz-user-select:none;user-select:none;-webkit-user-select:none}button:hover{filter:brightness(1.05)}button:active{transform:translateY(1px);box-shadow:0 1px 0 rgba(0,0,0,.3)}button.secondary{background:var(--paper);border:2px solid var(--ink);color:var(--ink);padding:7px 12px}button:disabled{opacity:.5;cursor:default}select{background:var(--ink);border:none;border-radius:0;color:var(--mint);font-size:13px;font-weight:800;padding:8px 10px;border:1px solid var(--ink-border);box-shadow:0 2px 0 rgba(0,0,0,.3)}.form-row{display:flex;gap:10px;margin:10px 0;flex-wrap:wrap;align-items:center}.error{color:#ff7b7b}.error,.warning{font-size:13px;margin-top:8px;font-weight:700}.warning{color:#ffd23f}.share-url{display:flex;gap:8px;margin-top:12px}.share-url input{flex:1 1;min-width:0;font-family:ui-monospace,monospace;font-size:12px}.hint{color:var(--muted-dark);font-size:12px;line-height:1.7}.hint code{background:var(--ink-2);border-radius:4px;padding:1px 5px;font-size:11px;color:#fff}.head-card{padding:10px 14px}.head-row{justify-content:space-between}.chart-title,.head-row{display:flex;flex-wrap:wrap;gap:8px}.chart-title{font-size:15px;font-weight:800;align-items:center}.title-btn{background:none;border:none;box-shadow:none;color:#fff;font-size:inherit;font-weight:800;padding:0;text-align:left}.title-btn:active{transform:none}.title-btn .edit-pen{color:var(--muted-dark);font-size:12px}.title-input{font-size:14px;font-weight:700;max-width:220px}.title-edit{display:flex;flex-direction:column;gap:6px;min-width:0}.subtitle-input{font-size:12px;font-weight:600}.title-btn .title-lines{display:flex;flex-direction:column;gap:2px;min-width:0}.chart-subtitle{color:var(--muted-dark);font-size:12px;font-weight:700}.diff-chip{display:inline-flex;align-items:center;gap:3px;background:none;border:none;box-shadow:none;padding:0 2px}.diff-chip:active{transform:none}.diff-chip .diff-num{font-family:var(--font-logo),"Arial Black",sans-serif;font-size:15px;color:#fff;letter-spacing:.5px}.diff-edit{display:flex;align-items:center;gap:5px}.diff-foot-btn{display:inline-flex;align-items:center;background:#20232b;border:2px solid transparent;border-radius:8px;box-shadow:none;padding:4px 5px}.diff-foot-btn.sel{border-color:var(--accent,#00e0a0);background:#2a2f3b}.diff-lvl-input{width:52px;font-size:14px;font-weight:700}.hs-edit{display:flex;align-items:center;gap:10px;flex:1 1;min-width:0}.hs-edit input[type=range]{flex:1 1;min-width:0;accent-color:var(--accent,#00e0a0)}.hs-num{width:64px;font-size:16px;font-weight:700;text-align:center}.hs-bpm-hint{margin-top:-4px}.bg-grad-toggle{font-size:14px;padding:4px 8px}.bg-grad-toggle.active{outline:2px solid var(--mint,#00e0a0);outline-offset:-1px}.footer-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:18px 0 10px}.footer-row .site-footer{margin:0}.ai-gen-btn{font-size:12px;padding:8px 12px;white-space:nowrap}.ai-wish{width:100%;font-size:16px;min-height:84px}.ai-choice{display:flex;flex-direction:column;gap:10px;margin-top:12px}.ai-choice-btn,.site-footer a.ai-choice-btn{display:flex;align-items:center;gap:10px;background:#fff;color:var(--ink,#17181c);font-weight:800;font-size:14px;padding:11px 14px;text-decoration:none;box-shadow:4px 4px 0 rgba(0,0,0,.55)}.ai-choice-btn:active{transform:translate(2px,2px);box-shadow:2px 2px 0 rgba(0,0,0,.55)}.ai-choice-btn img{border-radius:4px}.ai-choice-name{flex:1 1}.ai-choice-ext,.site-footer .ai-choice-ext{font-size:11px;font-weight:700;color:#666}.spec-h{font-size:16px;font-weight:800;margin:14px 0 8px;color:var(--mint,#00e0a0)}.spec-list .spec-row{display:grid;grid-template-columns:84px 1fr;grid-gap:10px;gap:10px;padding:7px 0;border-bottom:1px solid rgba(255,255,255,.08)}.spec-list dt{font-family:ui-monospace,monospace;font-weight:700;color:#ffd93b;word-break:break-all}.spec-list dd{margin:0;font-size:13px;line-height:1.7}.spec-examples{padding-left:18px;font-size:13px;line-height:2}.spec-examples code{font-family:ui-monospace,monospace;background:rgba(255,255,255,.1);padding:2px 6px;border-radius:4px;word-break:break-all}.range-ops{display:inline-flex;gap:6px;flex-wrap:wrap}.range-ops button{font-size:12px;padding:5px 9px}.hl-comment-input{width:100%;font-size:13px;font-weight:600;margin-top:6px}.tpl-copy{background:none;border:none;box-shadow:none;color:var(--muted-dark);font-size:12px;font-weight:600;padding:2px 0 0;text-align:center;text-decoration:underline;text-underline-offset:2px}.tpl-copy:active{transform:none}.chart-title .bpm{color:var(--muted-dark);font-size:12px;font-weight:700;display:inline-flex;align-items:center;gap:4px}.bpm-input{width:52px;padding:3px 6px;font-size:12px;font-weight:800;text-align:center;background:var(--ink-2);border:none;color:var(--mint)}.legend{display:flex;gap:10px;flex-wrap:wrap;font-size:11px;color:var(--muted-dark);align-items:center;margin-top:6px}.legend .chip{display:inline-flex;align-items:center;gap:4px}.legend .dot{width:10px;height:10px;border-radius:50%;display:inline-block}.stats{display:flex;gap:6px;flex-wrap:wrap}.stat{background:var(--ink-2);border-radius:0;padding:5px 10px;text-align:center}.stat .num{font-family:var(--font-logo),"Arial Black",sans-serif;font-size:17px;font-weight:400;letter-spacing:.04em;color:var(--mint)}.stat .label{font-size:10px;color:var(--muted-dark)}.toolbar{display:flex;gap:5px;align-items:center;margin-bottom:10px;flex-wrap:nowrap;overflow-x:auto;padding:2px 4px}.toolbar button,.toolbar select{white-space:nowrap;padding:8px 10px;flex-shrink:0}.toolbar-spacer{flex:1 1}.viewer-layout{display:grid;grid-template-columns:auto minmax(0,1fr);grid-gap:6px;gap:6px;align-items:start}.side-pane{position:-webkit-sticky;position:sticky;top:8px;min-width:0}.chart-scroll{height:calc(100dvh - 210px);min-height:320px;overflow-y:auto;background:var(--ink);border:none;border-radius:0;padding:8px 6px 8px 26px;overscroll-behavior:contain;box-shadow:0 3px 0 rgba(0,0,0,.22)}.chart-inner{position:relative}.measure-line{border-top:2px solid rgba(255,255,255,.16)}.beat-line,.measure-line{position:absolute;left:-4px;right:-4px}.beat-line{border-top:1px solid rgba(255,255,255,.06)}.measure-num{position:absolute;left:-26px;color:#6d727a;font-size:10px;font-weight:700;font-family:ui-monospace,monospace}.measure-num.in-range,.measure-num.range-anchor{color:var(--mint)}.measure-num.range-anchor{text-decoration:underline}.measure-tap{position:absolute;left:-26px;width:25px;cursor:pointer;z-index:3;touch-action:manipulation}.range-bar{position:absolute;left:-12px;width:5px;border-radius:3px;background:var(--mint);opacity:.9;pointer-events:none}.range-bar.pending{opacity:.45}.img-preview{display:flex;align-items:flex-end;gap:12px;margin:12px 0 14px}.img-preview-frame{position:relative;border:1.5px solid rgba(255,255,255,.45);flex-shrink:0}.img-preview-col{position:absolute;background:rgba(23,24,28,.85);border:1px solid rgba(255,255,255,.35);box-sizing:border-box}.img-preview-meta{font-size:11px;font-weight:700;color:var(--muted-dark);font-family:ui-monospace,monospace;line-height:1.6}.toggle-row{display:flex;align-items:center;gap:10px;font-size:13px;font-weight:700;color:#e6e9f2;cursor:pointer}.toggle-row input[type=checkbox]{width:20px;height:20px;accent-color:var(--mint);flex-shrink:0}.modal-card input[type=url]{font-size:16px;width:100%}.range-hint{display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--ink);color:#f2f5ff;font-size:12px;font-weight:700;line-height:1.5;padding:8px 10px;margin:0 0 10px;box-shadow:0 2px 0 rgba(0,0,0,.2)}.range-hint .range-clear{padding:5px 10px;font-size:12px;flex-shrink:0;white-space:nowrap}.note{position:absolute;cursor:pointer;border-radius:2px}.note.current{outline:3px solid #fff;outline-offset:1px;z-index:3}.foot-badge{position:absolute;top:-6px;right:-6px;width:16px;height:16px;border-radius:50%;color:#fff;font-size:10px;font-weight:800;display:flex;align-items:center;justify-content:center;border:2px solid var(--ink);z-index:2}.foot-badge.pinned{border-color:#fff;box-shadow:0 0 6px rgba(255,255,255,.8)}.note-flag{position:absolute;bottom:-5px;right:-7px;font-size:9px;font-weight:700;border-radius:0;padding:0 3px;z-index:2}.flag-cross{background:#705f2a;color:#ffe9a3}.flag-jack{background:#703a2a;color:#ffc9b6}.hold-body{position:absolute;border-radius:3px;opacity:.8;box-shadow:inset 0 0 0 1px rgba(255,255,255,.22)}.mine{justify-content:center;color:#aab;font-weight:700}.mine,.shock-row{position:absolute;display:flex;align-items:center}.shock-row{justify-content:space-around;cursor:pointer;background:linear-gradient(90deg,rgba(125,249,255,.05),rgba(125,249,255,.22) 50%,rgba(125,249,255,.05));border-top:1px solid rgba(125,249,255,.65);border-bottom:1px solid rgba(125,249,255,.65);box-shadow:0 0 10px rgba(125,249,255,.45),inset 0 0 14px rgba(125,249,255,.25);animation:shock-flicker .9s steps(2,jump-none) infinite;z-index:2}@keyframes shock-flicker{0%{opacity:1}to{opacity:.55}}.shock-row.editing{pointer-events:none}.shock-row.current{outline:3px solid #fff;outline-offset:1px;animation:none;z-index:3}.shock-label{position:absolute;right:3px;top:50%;transform:translateY(-50%);font-size:10px;font-weight:800;line-height:1;padding:3px 4px;background:rgba(13,15,20,.88);border:1px solid;white-space:nowrap}.stat .num.shock-num{color:#7df9ff}.facing-band{position:absolute;left:0;right:0;pointer-events:none}.facing-legend{display:inline-flex;border-radius:0;overflow:hidden}.facing-legend span{width:8px;height:10px;display:inline-block}.edit-cell{position:absolute;border:1px dashed rgba(255,255,255,.28);border-radius:0;cursor:pointer;z-index:1}.edit-cell:hover{background:rgba(0,224,160,.25);border-color:var(--mint)}.pad-card{padding:8px}.stage3d{--stage:148px;display:flex;justify-content:center}.stage3d .scene{width:var(--stage);height:calc(var(--stage) * .82);perspective:620px;perspective-origin:50% 20%}.stage3d-gl .scene{perspective:none;width:calc(var(--stage) * 1.25);height:calc(var(--stage) * 1.02)}.floor{position:relative;width:var(--stage);height:var(--stage);transform:rotateX(50deg) translateY(calc(var(--stage) * -.09));transform-style:preserve-3d;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(3,1fr);grid-gap:3px;gap:3px}.floor-cell{border-radius:3px}.floor-panel{background:var(--ink-2);border:2px solid var(--ink-border);display:flex;align-items:center;justify-content:center}.floor-panel.active-L{border-color:var(--foot-l);background:rgba(255,92,168,.18);box-shadow:0 0 16px rgba(255,92,168,.5)}.floor-panel.active-R{border-color:var(--foot-r);background:rgba(56,189,248,.18);box-shadow:0 0 16px rgba(56,189,248,.5)}.floor-panel.active-LR{border-color:#fff;box-shadow:0 0 16px rgba(255,255,255,.4)}.pad-arrow{opacity:.35}.pad-arrow svg{width:62%;height:62%;min-width:22px;min-height:22px}.facing-marker{color:#8a8f96;font-size:calc(var(--stage) * .11);line-height:1;z-index:1}.facing-marker,.foot3d{position:absolute;transition:left .25s ease,top .25s ease,transform .25s ease;pointer-events:none}.foot3d{width:calc(var(--stage) * .155);height:calc(var(--stage) * .27);transform-style:preserve-3d;z-index:2}.foot3d.lifted{opacity:.8}.foot3d.lifted .foot3d-shadow{opacity:.25;transform:scale(.8)}.foot3d-shadow{position:absolute;inset:6% 0 -4% 0;background:rgba(0,0,0,.45);border-radius:45%;filter:blur(2px)}.foot3d-body{position:absolute;inset:0;border-radius:46% 46% 42% 42%/34% 34% 22% 22%;border:2px solid rgba(255,255,255,.85);color:#fff;font-size:calc(var(--stage) * .085);font-weight:800;display:flex;align-items:center;justify-content:center;transform:translateZ(7px);box-shadow:0 0 10px rgba(0,0,0,.35)}.foot3d-body.hop{animation:hop .28s ease-out}@keyframes hop{0%{transform:translateZ(7px)}45%{transform:translateZ(30px)}to{transform:translateZ(7px)}}.foot3d-body.held{border-color:#2ecc71;box-shadow:0 0 12px rgba(46,204,113,.9)}.controls{display:flex;gap:6px;align-items:center;justify-content:center;margin-top:10px;flex-wrap:wrap}.edit-toolbar{margin-top:6px}.edit-cell.freeze-anchor{outline:2px solid #2ecc71;outline-offset:-2px;background:rgba(46,204,113,.25)}.controls button{min-width:48px;min-height:42px;white-space:nowrap}.nav-controls{flex-wrap:nowrap}.nav-controls button{flex-shrink:0;padding-left:10px;padding-right:10px}.nav-controls .pos{min-width:0;flex-shrink:1;white-space:nowrap}@media (max-width:430px){.toolbar{gap:4px}.toolbar button,.toolbar select{padding:8px}.nav-controls{gap:4px}.nav-controls button{padding-left:8px;padding-right:8px;font-size:12px;min-width:0}.nav-controls .pos{font-size:11px}}.controls .pos{font-family:ui-monospace,monospace;font-size:12px;font-weight:700;color:var(--muted-dark);min-width:62px;text-align:center}input[type=range]{width:100%;margin-top:10px;accent-color:var(--mint-deep)}input[type=range]:focus{outline:none}.event-info{margin-top:10px;font-size:12px;line-height:1.7;color:#c2c6cc}.event-info .tags{display:flex;gap:5px;flex-wrap:wrap;margin-top:5px}.tag{border-radius:0;padding:2px 7px;font-size:11px;font-weight:700;background:var(--ink)}.tag.jump{color:#c9b6ff}.tag.onefoot{color:#7df9ff}.tag.ghostswap{color:#7ce8a9}.tag.shocktag{color:#7df9ff}.stat .num.swap-num{color:#7ce8a9}.note.ghost-note{opacity:.92}.tag.jack{color:#ffab8a}.tag.crossover{color:#ffd76e}.tag.hold{color:#4fe3a1}.tag.ds{color:#7ec4ff}.flag-ds{background:#2a4a70;color:#a3d5ff;font-size:9px;font-weight:700;border-radius:0;padding:0 3px}.facing-label{color:#ffd76e;font-weight:800}.cur-bpm{color:#7ec4ff;font-weight:800;font-family:ui-monospace,monospace}.playhead{top:0;left:-6px;right:-6px;height:0;border-top:2px solid rgba(0,224,160,.9);box-shadow:0 0 8px rgba(0,224,160,.55);z-index:6;will-change:transform}.hl-box,.playhead{position:absolute;pointer-events:none}.hl-box{border:3px solid #ffd93b;border-radius:12px;box-shadow:0 0 0 3px rgba(255,217,59,.28),0 0 14px rgba(255,217,59,.35);z-index:5}.hl-btn{background:none;border:2px solid var(--muted-dark);box-shadow:none;color:var(--muted-dark);font-size:11px;font-weight:800;padding:2px 8px;vertical-align:middle;flex-shrink:0}.event-head{display:flex;align-items:center;justify-content:space-between;gap:8px}.event-head-main{min-width:0}.event-head-side{display:flex;align-items:center;gap:8px;flex-shrink:0;margin-left:auto}.hl-btn.active{border-color:#ffd93b;color:#ffd93b;background:rgba(255,217,59,.12)}.bpm-chip{background:var(--ink-2);color:var(--mint);border:none;box-shadow:none;padding:4px 9px;font-size:12px;font-weight:800;font-family:ui-monospace,monospace;white-space:nowrap;flex-shrink:0}.bpm-chip.sofran{outline:2px solid var(--mint)}.bpm-chip.open{background:var(--mint);color:var(--ink)}.bpm-chip .bpm-caret{margin-left:4px;font-size:10px;color:var(--muted-dark)}.bpm-chip.open .bpm-caret,.sofran-chip{color:var(--ink)}.sofran-chip{background:var(--mint);border-radius:0;padding:1px 6px;font-size:10px;font-weight:800}.timing-label{display:flex;flex-direction:column;gap:4px;font-size:12px;font-weight:700;color:var(--muted-dark);flex:1 1;min-width:200px}.timing-marker{position:absolute;left:-4px;right:-4px;height:0;font-size:10px;font-weight:700;font-family:ui-monospace,monospace;pointer-events:none;z-index:4}.timing-marker-label{position:absolute;right:100%;top:0;transform:translateY(-100%);padding-right:3px;white-space:nowrap}.bpm-marker{color:#7db9ff;border-top:1px dashed rgba(125,185,255,.6)}.stop-marker{color:#ff8f8f;border-top:1px dashed rgba(255,143,143,.7)}.text-import textarea{min-height:160px}.chart-choices{gap:6px;margin-top:10px}.chart-choices,.override-row{display:flex;flex-wrap:wrap;align-items:center}.override-row{gap:5px;margin-top:6px}.override-label{font-size:12px;font-weight:700}.ov-btn{background:var(--paper);border:2px solid var(--line);border-radius:0;color:var(--ink);font-size:12px;font-weight:800;padding:4px 10px;box-shadow:none}.ov-btn.foot-l{border-color:var(--foot-l);color:var(--foot-l)}.ov-btn.foot-r{border-color:var(--foot-r);color:var(--foot-r)}.ov-btn.active{background:var(--mint);border-color:var(--mint);color:var(--ink)}.ov-btn.active-l{background:var(--foot-l);border-color:var(--foot-l);color:#fff}.ov-btn.active-r{background:var(--foot-r);border-color:var(--foot-r);color:#fff}.override-summary{display:flex;gap:8px;align-items:center;margin-top:10px;font-size:12px;color:var(--muted-dark)}.edit-hint{margin:-4px 0 10px;color:rgba(23,24,28,.75);font-weight:700}.panel-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:8px}.panel-head h2{background:#fff;font-size:13px;margin:0;padding:4px 14px 4px 12px;border-radius:0}.help-btn,.panel-head h2{color:var(--ink);font-weight:800}.help-btn{width:22px;height:22px;border-radius:50%;background:var(--paper);border:2px solid var(--ink);font-size:12px;padding:0;display:flex;align-items:center;justify-content:center;box-shadow:none}.help-btn.open{background:var(--mint);border-color:var(--mint);color:var(--ink)}.panel-help-text{flex-basis:100%;margin-top:2px}.viewer-fs .bg-picker-wrap,.viewer-fs .edit-hint,.viewer-fs .event-info,.viewer-fs .head-card,.viewer-fs .hint-card,.viewer-fs .override-summary,.viewer-fs .pad-card .controls,.viewer-fs .pad-card input[type=range],.viewer-fs .text-import,.viewer-fs .toolbar{display:none}.viewer-fs .viewer-layout{display:block}.viewer-fs .chart-pane{position:fixed;top:0;left:0;right:0;height:58dvh;z-index:100;background:#0d0f14;display:flex;justify-content:center;overflow:hidden}.viewer-fs .chart-scroll{position:relative;height:100%;min-height:0;overflow:hidden;background:transparent;border:none;border-radius:0;padding:0;box-shadow:none}.hold-clip{position:absolute;inset:0;pointer-events:none}.hold-clip-inner{position:absolute;top:0;left:0;will-change:transform}.viewer-fs .measure-num,.viewer-fs .measure-tap,.viewer-fs .range-bar{display:none}.viewer-fs .chart-inner{will-change:transform}.viewer-fs .note{pointer-events:none}.viewer-fs .side-pane{position:fixed;top:58dvh;bottom:0;left:0;right:0;z-index:100;background:#0d0f14;display:flex;align-items:center;justify-content:center}.viewer-fs .pad-card{background:transparent;border:none;margin:0;padding:0;box-shadow:none}.viewer-fs .stage3d{--stage:min(62vw,300px)}.viewer-fs .facing-marker{color:rgba(230,233,245,.5)}.viewer-fs .note.current{outline:none}.fs-cover{position:absolute;top:0;left:0;right:0;background:linear-gradient(180deg,#0d0f14 45%,rgba(13,15,20,0));z-index:4;pointer-events:none}.fs-title{position:absolute;top:10px;left:12px;font-size:13px;font-weight:800;color:#9aa0a8}.fs-title .fs-title-name{font-family:var(--font-logo),"Arial Black",sans-serif;font-weight:400;letter-spacing:.03em}.fs-progress{position:absolute;top:0;left:0;height:3px;background:var(--mint);z-index:7;transition:width .2s linear}.fs-receptors{position:absolute;left:50%;transform:translateX(-50%);display:flex;z-index:5;pointer-events:none}.receptor{display:flex;align-items:center;justify-content:center}.receptor.hit{animation:receptor-pop .22s ease-out}@keyframes receptor-pop{0%{transform:scale(1.25);filter:brightness(1.6)}to{transform:scale(1);filter:brightness(1)}}.receptor svg{overflow:visible}.fs-paused{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:56px;color:rgba(255,255,255,.75);z-index:6;pointer-events:none;text-shadow:0 0 20px rgba(0,0,0,.8)}.fs-exit{position:absolute;top:10px;right:10px;z-index:8;background:rgba(23,24,28,.85);border:1px solid #3a3b42;border-radius:50%;width:38px;height:38px;padding:0;font-size:16px;color:#fff;box-shadow:none}.pm-overlay,.viewer-fs .chart-pane,.viewer-fs .side-pane{touch-action:none;overscroll-behavior:none;-webkit-tap-highlight-color:transparent}.viewer-fs,.viewer-fs *{-webkit-user-select:none;-webkit-touch-callout:none}.pm-pad,.viewer-fs,.viewer-fs *{-moz-user-select:none;user-select:none}.pm-pad{position:fixed;top:58dvh;bottom:0;left:0;right:0;z-index:110;touch-action:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}.pm-zone{position:absolute;inset:0;background:transparent;pointer-events:none}.pm-zone-0{-webkit-clip-path:polygon(0 0,48% 48%,48% 52%,0 100%);clip-path:polygon(0 0,48% 48%,48% 52%,0 100%)}.pm-zone-1{-webkit-clip-path:polygon(0 100%,48% 52%,52% 52%,100% 100%);clip-path:polygon(0 100%,48% 52%,52% 52%,100% 100%)}.pm-zone-2{-webkit-clip-path:polygon(0 0,100% 0,52% 48%,48% 48%);clip-path:polygon(0 0,100% 0,52% 48%,48% 48%)}.pm-zone-3{-webkit-clip-path:polygon(100% 0,52% 48%,52% 52%,100% 100%);clip-path:polygon(100% 0,52% 48%,52% 52%,100% 100%)}.pm-zone.flash{animation:pm-zone-flash .18s ease-out}@keyframes pm-zone-flash{0%{background:rgba(255,212,0,.4)}to{background:transparent}}.pm-combo,.pm-count,.pm-grade,.pm-judgment,.pm-logo-text{font-family:var(--font-title),"Arial Black",sans-serif;font-weight:400;text-transform:uppercase;letter-spacing:.03em;line-height:1;pointer-events:none;white-space:nowrap}.pm-judgment{position:absolute;left:50%;top:172px;z-index:6;font-size:clamp(24px,6.4vw,44px);animation:pm-judge-pop .5s ease-out forwards}@keyframes pm-judge-pop{0%{transform:translateX(-50%) scale(1.55);opacity:0}16%{transform:translateX(-50%) scale(1);opacity:1}72%{transform:translateX(-50%) scale(1);opacity:1}to{transform:translateX(-50%) scale(.9);opacity:0}}.pm-j-marvelous{color:#fff;text-shadow:-2px -2px 0 var(--ink),2px -2px 0 var(--ink),-2px 2px 0 var(--ink),2px 2px 0 var(--ink),-2px 0 0 var(--ink),2px 0 0 var(--ink),0 -2px 0 var(--ink),0 2px 0 var(--ink),3px 3px 0 #ffd400,4px 4px 0 #ffd400,5px 5px 0 #ffd400,7px 7px 0 var(--ink)}.pm-j-perfect{color:#ffe27a;text-shadow:-2px -2px 0 var(--ink),2px -2px 0 var(--ink),-2px 2px 0 var(--ink),2px 2px 0 var(--ink),-2px 0 0 var(--ink),2px 0 0 var(--ink),0 -2px 0 var(--ink),0 2px 0 var(--ink),3px 3px 0 #ff7ab8,4px 4px 0 #ff7ab8,5px 5px 0 #ff7ab8,7px 7px 0 var(--ink)}.pm-j-great{color:#a8ffd2;text-shadow:-2px -2px 0 var(--ink),2px -2px 0 var(--ink),-2px 2px 0 var(--ink),2px 2px 0 var(--ink),-2px 0 0 var(--ink),2px 0 0 var(--ink),0 -2px 0 var(--ink),0 2px 0 var(--ink),3px 3px 0 #00b57f,4px 4px 0 #00b57f,5px 5px 0 #00b57f,7px 7px 0 var(--ink)}.pm-j-good{color:#a9c6ff;text-shadow:-2px -2px 0 var(--ink),2px -2px 0 var(--ink),-2px 2px 0 var(--ink),2px 2px 0 var(--ink),-2px 0 0 var(--ink),2px 0 0 var(--ink),0 -2px 0 var(--ink),0 2px 0 var(--ink),3px 3px 0 #3e6fd8,4px 4px 0 #3e6fd8,5px 5px 0 #3e6fd8,7px 7px 0 var(--ink)}.pm-j-miss{color:#c7c9d4;text-shadow:-2px -2px 0 var(--ink),2px -2px 0 var(--ink),-2px 2px 0 var(--ink),2px 2px 0 var(--ink),-2px 0 0 var(--ink),2px 0 0 var(--ink),0 -2px 0 var(--ink),0 2px 0 var(--ink),3px 3px 0 #e0455e,4px 4px 0 #e0455e,5px 5px 0 #e0455e,7px 7px 0 var(--ink)}.pm-combo{position:absolute;left:50%;transform:translateX(-50%);top:236px;z-index:6;font-size:30px;color:#fff;text-shadow:-2px -2px 0 var(--ink),2px -2px 0 var(--ink),-2px 2px 0 var(--ink),2px 2px 0 var(--ink),4px 4px 0 rgba(0,0,0,.55);animation:pm-combo-pulse .22s ease-out}.pm-combo-word{font-size:.62em;color:#ffd400}@keyframes pm-combo-pulse{0%{transform:translateX(-50%) scale(1.28)}to{transform:translateX(-50%) scale(1)}}.pm-count{position:absolute;left:50%;top:34%;z-index:6;font-size:clamp(90px,22vw,150px);color:#fff;text-shadow:-3px -3px 0 var(--ink),3px -3px 0 var(--ink),-3px 3px 0 var(--ink),3px 3px 0 var(--ink),5px 5px 0 #ffd400,7px 7px 0 #ffd400,10px 10px 0 var(--ink);animation:pm-count-pop .4s ease-out}@keyframes pm-count-pop{0%{transform:translateX(-50%) scale(1.6);opacity:.2}to{transform:translateX(-50%) scale(1);opacity:1}}.pm-overlay{position:fixed;inset:0;z-index:140;background:rgba(13,15,20,.96);color:#e6e9f5;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:24px;text-align:center}.pm-logo-text{font-size:clamp(40px,9vw,60px);color:#fff;pointer-events:none;text-shadow:-2px -2px 0 var(--ink),2px -2px 0 var(--ink),-2px 2px 0 var(--ink),2px 2px 0 var(--ink),3px 3px 0 #ffd400,4px 4px 0 #ffd400,5px 5px 0 #ffd400,7px 7px 0 var(--ink)}.pm-song{font-size:17px;font-weight:800;color:#fff}.pm-desc{font-size:13px;color:#aab0c0;max-width:420px;line-height:1.7}.pm-start{background:#ffd400;color:var(--ink);border:3px solid var(--ink);box-shadow:0 5px 0 var(--ink);font-size:19px;font-weight:900;padding:14px 36px}.pm-settings{display:flex;flex-direction:column;gap:10px;margin-top:8px;font-size:13px}.pm-setting-row{display:flex;align-items:center;justify-content:center;gap:8px}.pm-setting-row .secondary{padding:5px 12px}.pm-offset-val{font-family:var(--font-logo),"Arial Black",sans-serif;min-width:64px;color:var(--mint)}.pm-cal-dots{display:flex;gap:10px}.pm-cal-dots span{width:14px;height:14px;border-radius:50%;border:2px solid #5a6390}.pm-cal-dots span.on{background:var(--mint);border-color:var(--mint)}.pm-grade{font-size:clamp(84px,20vw,130px);color:#fff;text-shadow:-3px -3px 0 var(--ink),3px -3px 0 var(--ink),-3px 3px 0 var(--ink),3px 3px 0 var(--ink),5px 5px 0 #ffd400,7px 7px 0 #ffd400,9px 9px 0 #ffd400,12px 12px 0 var(--ink);animation:pm-count-pop .5s ease-out}.pm-score{display:flex;flex-direction:column;gap:4px}.pm-score-num{font-family:var(--font-logo),"Arial Black",sans-serif;font-size:38px;color:var(--mint);letter-spacing:.05em}.pm-score-ex{font-size:13px;color:#aab0c0}.pm-counts{width:min(82vw,340px);display:flex;flex-direction:column;gap:6px}.pm-count-row{display:flex;justify-content:space-between;align-items:baseline;border-bottom:1px solid rgba(255,255,255,.12);padding-bottom:4px}.pm-count-row .pm-count-label{font-family:var(--font-title),"Arial Black",sans-serif;font-size:15px;letter-spacing:.05em}.pm-count-row.pm-j-good,.pm-count-row.pm-j-great,.pm-count-row.pm-j-marvelous,.pm-count-row.pm-j-miss,.pm-count-row.pm-j-perfect{text-shadow:none}.pm-count-row .pm-count-num{font-family:var(--font-logo),"Arial Black",sans-serif;font-size:20px;color:#fff}.pm-result-btns{display:flex;gap:12px;margin-top:6px}.ab-labels{display:flex;gap:12px;margin:0 0 6px 26px}.ab-chip{display:inline-flex;align-items:center;gap:5px;padding:3px 8px;background:var(--ink);border:2px solid var(--ink-border);color:#fff;font-size:12px;font-weight:800;line-height:1;box-sizing:border-box;min-width:0}.ab-chip b{color:var(--mint);font-weight:400;font-size:14px}.ab-chip .diff-num,.ab-chip b{font-family:var(--font-logo),"Arial Black",sans-serif}.ab-chip .diff-num{font-size:13px;letter-spacing:.04em}.ab-chip.info-side{padding:1px 6px;margin-right:6px;vertical-align:middle}.ab-remove{margin-left:auto;width:20px;height:20px;padding:0;font-size:11px;line-height:1;background:var(--ink-2);border:1px solid var(--ink-border);color:#fff;box-shadow:none}.ab-divider{position:absolute;top:0;width:2px;background:rgba(255,255,255,.14);pointer-events:none}.pads-row{display:flex;justify-content:center;gap:6px}.pad-col{display:flex;flex-direction:column;align-items:center;min-width:0}.pad-label{margin-bottom:2px}.viewer-ab .stage3d{--stage:112px}.fs-ab-labels{position:absolute;top:36px;left:50%;transform:translateX(-50%);display:flex;justify-content:space-around;z-index:6;pointer-events:none}.viewer-fs.viewer-ab .stage3d{--stage:min(40vw,220px)}@media (max-width:559px){.viewer-ab:not(.viewer-fs) .viewer-layout{grid-template-columns:minmax(0,1fr)}.viewer-ab:not(.viewer-fs) .chart-scroll{height:48dvh;min-height:260px}.viewer-ab:not(.viewer-fs) .side-pane{position:static}}@media (min-width:560px){.container{padding:24px 16px 64px}.site-header h1{font-size:32px}.card{padding:20px}.head-card{padding:14px 20px}.chart-title{font-size:18px}.stat{padding:8px 14px}.stat .num{font-size:20px}.stat .label{font-size:11px}.toolbar{gap:8px}.toolbar button,.toolbar select{padding:9px 14px}.viewer-layout{gap:20px}.chart-scroll{height:72vh;padding:8px 12px 8px 40px}.measure-num{left:-34px;font-size:11px}.measure-tap{left:-40px;width:38px}.range-bar{left:-14px}.foot-badge{width:18px;height:18px;font-size:11px;top:-7px;right:-7px}.pad-card{padding:14px}.stage3d{--stage:220px}.viewer-ab .stage3d{--stage:168px}.side-pane{top:16px}.event-info,.hint{font-size:13px}}.card a{color:var(--mint)}.video-spot-info{font-size:13px;opacity:.85;margin:2px 0 6px}body:has(.embed-container){background:var(--ink)}.embed-container{padding:8px;max-width:1100px}.embed-container .head-card{margin-bottom:8px}.embed-container .bpm-caret,.embed-container .edit-pen,.embed-container .stats{display:none}.embed-container .bpm-chip:disabled,.embed-container .diff-chip:disabled,.embed-container .title-btn:disabled{opacity:1;cursor:default}.embed-container .chart-scroll{height:440px}.embed-container .viewer-layout{gap:6px}.embed-container .side-pane{position:static}.embed-container .controls{flex-wrap:wrap}.embed-container .hl-comment-input{width:100%;min-width:0}.embed-footer{padding:12px 0 4px;font-size:14px}.embed-footer a{color:var(--paper)}