:root{color-scheme:dark;--bg:#10111b;--panel:#1a1b29;--muted:#a0a2b6;--accent:#b8a0ff;--ink:#f6f5ff}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.5 system-ui,-apple-system,"Segoe UI",sans-serif;background-image:radial-gradient(ellipse at 50% 0%,#2c244a66,transparent 65%);min-height:100svh}button,select,input{font:inherit}button,select{color:inherit}button{cursor:pointer;border:0;touch-action:manipulation}button:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:4px}button:disabled{opacity:.55;cursor:wait}[hidden]{display:none!important}.screen{width:min(100%,520px);margin:auto}.selection{padding:26px 22px max(20px,env(safe-area-inset-bottom))}.brand{display:flex;align-items:center;gap:12px;font-size:18px;letter-spacing:3px;font-weight:800;margin-bottom:30px}.brand small{display:block;font-size:10px;letter-spacing:2.5px;color:var(--muted);font-weight:500}.brandmark{font-size:43px;font-weight:900;letter-spacing:-10px;line-height:1;width:48px;color:var(--accent);transform:skew(-12deg)}.brandmark span{color:#79eed0}.edition{margin-left:auto;font-size:10px;color:var(--muted);letter-spacing:1px}.edition b{display:block;font-size:22px;color:var(--ink)}.section-label{display:flex;justify-content:space-between;font-size:11px;letter-spacing:2px;color:var(--muted);margin-bottom:13px}.tracks{display:grid;gap:12px}.track{position:relative;display:grid;grid-template-columns:78px 1fr 20px;align-items:center;gap:15px;width:100%;text-align:left;padding:15px;border:1px solid #333445;background:#191a27;border-radius:15px;overflow:hidden;transition:border-color .2s,background .2s}.track.active{border-color:var(--track-color);background:linear-gradient(110deg,#29263d,#191a27)}.art{width:78px;height:88px;position:relative;overflow:hidden;border-radius:8px;background:#28223d;color:var(--track-color);display:grid;place-items:center}.art.loop:before,.art.loop:after{content:"";position:absolute;width:49px;height:49px;border:2px solid currentColor;border-radius:50%;transform:rotate(-35deg) scaleX(.62)}.art.loop:after{transform:rotate(35deg) scaleX(.62);box-shadow:0 0 25px #b8a0ff66}.art.bremen{background:#143c39}.bars{display:flex;align-items:center;gap:5px;transform:rotate(-15deg)}.bars i{display:block;width:7px;height:40px;background:currentColor}.bars i:nth-child(2){height:64px}.bars i:nth-child(3){height:48px}.bars i:nth-child(4){height:25px}.track small{display:block;color:var(--track-color);font-size:10px;letter-spacing:2px;margin-bottom:5px}.track h2{font-size:18px;line-height:1.3;letter-spacing:-.3px;margin:0 0 7px}.track-meta{color:var(--muted);font-size:12px}.track-best{display:block;font-size:11px;color:var(--muted);margin-top:4px}.radio{width:17px;height:17px;border:1px solid #5b5b70;border-radius:50%}.active .radio{border:5px solid var(--track-color)}.options{margin:22px 0}.option-row{display:flex;align-items:center;justify-content:space-between;margin:13px 0;font-size:14px}.segmented{display:flex;background:#090b13;padding:4px;border-radius:8px;gap:3px}.segmented button{background:transparent;padding:7px 16px;border-radius:5px;font-size:12px;font-weight:700;color:var(--muted)}.segmented .active{background:var(--accent);color:#171226}select{background:var(--panel);border:1px solid #38394b;border-radius:7px;padding:6px 12px;font-size:14px}details{border-top:1px solid #2c2d3e;margin-top:17px;padding-top:12px;color:var(--muted);font-size:13px}summary{cursor:pointer}details p{font-size:12px;line-height:1.7}.slider-row{display:flex;align-items:center;gap:10px;margin-top:15px}.slider-row label{width:72px;font-size:12px}.slider-row input{width:0;flex:1;accent-color:var(--accent)}output{font-size:12px;width:55px;text-align:right}.primary{width:100%;border-radius:10px;background:var(--accent);color:#181327;min-height:54px;padding:14px 22px;font-weight:800;letter-spacing:1px;display:flex;justify-content:space-between;align-items:center;box-shadow:0 6px 24px #b8a0ff18}.primary:hover{filter:brightness(1.08)}.howto{font-size:12px;line-height:1.9;color:var(--muted);text-align:center;margin:17px 0}kbd{font:11px system-ui;border:1px solid #414155;padding:1px 4px;border-radius:3px}footer{text-align:center;font-size:10px;color:#7e8197}footer span{margin:0 5px}#error{color:#ffaaa9;font-size:14px}body.playing{overflow:hidden;overscroll-behavior:none}.play-screen{height:100svh;height:100dvh;display:flex;flex-direction:column;padding-top:env(safe-area-inset-top)}.play-header{display:flex;align-items:center;justify-content:space-between;padding:15px 20px 9px;gap:15px}.eyebrow{font-size:11px;letter-spacing:2px;color:var(--accent)}.play-header h1{font-size:16px;margin:3px 0;line-height:1.3}.icon-button{width:44px;height:44px;flex-shrink:0;background:#242536;border:1px solid #3e3d53;border-radius:50%;font-size:20px}.stats{display:flex;justify-content:space-between;padding:8px 22px 13px}.stats span,.result-score>span{font-size:10px;letter-spacing:2px;color:var(--muted);display:block}.stats strong{font-size:27px;font-variant-numeric:tabular-nums;letter-spacing:2px;line-height:1.25}.combo-stat{text-align:right}.combo-stat strong{color:var(--accent)}.progress{height:3px;background:#282637}.progress div{height:100%;background:var(--accent);width:0}#stage{position:relative;flex:1;min-height:0;touch-action:none;user-select:none;-webkit-user-select:none}canvas{display:block;width:100%;height:100%}.lane-inputs{position:absolute;inset:0;display:grid;grid-template-columns:repeat(4,1fr)}.lane-inputs button{background:transparent;color:#aaa8c6;display:flex;align-items:flex-end;justify-content:center;padding-bottom:23px;touch-action:none;font-size:12px;-webkit-tap-highlight-color:transparent}.play-footer{padding:8px 20px max(10px,env(safe-area-inset-bottom));display:flex;justify-content:space-between;color:var(--muted);font-size:10px;letter-spacing:1px;background:#141520}.overlay{position:fixed;inset:0;z-index:4;background:#080915cc;backdrop-filter:blur(14px);display:grid;place-items:center;padding:24px}.modal{width:min(100%,360px);text-align:center;padding:30px 24px;background:#1b1c2c;border:1px solid #414058;border-radius:20px}.modal h2{font-size:35px;letter-spacing:6px;margin:10px}.modal p{color:var(--muted);font-size:14px;margin-bottom:28px}.secondary{width:100%;padding:14px;min-height:50px;background:#222335;border:1px solid #3d3e54;border-radius:10px;margin-top:12px;font-size:14px}.text-button{background:transparent;color:var(--muted);padding:18px 10px 0;font-size:13px}.result-screen{padding:30px 24px max(24px,env(safe-area-inset-bottom));text-align:center}.result-screen h1{font-size:23px;line-height:1.25;margin-top:30px}.rank{font-size:110px;line-height:1.25;font-weight:900;font-style:italic;color:var(--accent);text-shadow:0 0 65px #b8a0ff66;letter-spacing:-8px;margin-top:18px}#clear-message{color:var(--accent);font-size:13px;letter-spacing:2px;margin:0 0 24px}.result-score strong{display:block;font-size:40px;font-variant-numeric:tabular-nums;letter-spacing:3px}.result-score small{color:var(--accent);font-size:12px}.result-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px 10px;margin:28px 0;padding:22px 0;border-block:1px solid #343449}.result-grid span{display:block;color:var(--muted);font-size:10px;letter-spacing:1px}.result-grid b{font-size:22px}.result-grid>div:first-child b{color:var(--accent)}@media(min-width:700px){.selection{padding-top:45px}.play-screen{border-inline:1px solid #343044}.result-screen{padding-top:40px}}@media(max-height:700px){.brand{margin-bottom:18px}.selection{padding-top:17px}.track{padding:11px}.art{height:71px}.options{margin:15px 0}.howto{margin:12px 0}.rank{font-size:80px}.result-screen h1{margin-top:15px}.result-grid{margin:18px 0;padding:16px 0}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}
.result-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:16px 0 4px}.result-actions .primary{grid-column:1/-1}.result-actions .secondary,.result-actions .primary{min-height:46px;padding:11px 10px;font-size:13px}.image-sheet{overflow-y:auto;align-items:start;padding-top:max(20px,env(safe-area-inset-top))}.image-sheet .modal{width:min(100%,440px);padding:22px 16px max(20px,env(safe-area-inset-bottom))}.image-sheet h2{font-size:23px;letter-spacing:1px}.image-sheet p{font-size:13px;margin:8px 0 15px}.image-sheet img{display:block;width:100%;height:auto;border-radius:10px;border:1px solid #434158;background:#10111b;user-select:none;-webkit-user-select:none}.image-sheet .secondary{margin-top:14px}