.back-to-top{position:fixed;z-index:20;right:max(1.2rem,env(safe-area-inset-right));bottom:max(1.2rem,env(safe-area-inset-bottom));display:flex;align-items:center;gap:.4rem;padding:.58rem .75rem;border:1px solid var(--line-strong);border-radius:999px;background:var(--bg-raised);color:var(--ink-soft);box-shadow:0 .6rem 2rem var(--shadow);cursor:pointer;font-size:.56rem;font-weight:650;letter-spacing:.12em;text-transform:uppercase;transition:color .15s ease,border-color .15s ease,transform .15s ease}.back-to-top:hover{border-color:var(--accent);color:var(--accent);transform:translateY(-2px)}.back-to-top svg{width:.85rem;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5}@media(max-width:720px){.back-to-top span{display:none}.back-to-top{width:2.35rem;height:2.35rem;justify-content:center;padding:0}}.method{padding:clamp(4.5rem,8vw,7rem) clamp(1.3rem,6vw,5rem) clamp(5rem,9vw,8rem);border-top:1px solid var(--line);background:var(--bg-raised)}.method-document{max-width:54rem;margin:0 auto}.eyebrow{margin:0 0 1rem;color:var(--accent);font-size:.6rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase}.method-header{padding-bottom:clamp(2.5rem,5vw,4rem);border-bottom:1px solid var(--line-strong)}.method-header h1{margin:0;font-size:clamp(2rem,4vw,3.4rem);font-weight:350;line-height:1.05;letter-spacing:-.045em}.method-lead{max-width:43rem;margin:1.5rem 0 0;color:var(--ink-soft);font-size:clamp(.98rem,1.6vw,1.12rem);line-height:1.65}.method-section{display:grid;grid-template-columns:2.6rem minmax(0,1fr) minmax(12rem,15rem);gap:clamp(1rem,3vw,2rem);align-items:start;padding:clamp(2.4rem,5vw,3.8rem) 0;border-bottom:1px solid var(--line)}.method-section-last{padding-bottom:0;border-bottom:0}.method-number{padding-top:.26rem;color:var(--ink-faint);font-size:.56rem;font-variant-numeric:tabular-nums;font-weight:700;letter-spacing:.12em}.method-copy{max-width:43rem}.method-copy h2{margin:0 0 1.15rem;font-size:clamp(1.15rem,2vw,1.4rem);font-weight:500;letter-spacing:-.025em}.method-copy p{margin:0 0 1rem;color:var(--ink-soft);font-size:clamp(.9rem,1.3vw,.98rem);line-height:1.72}.method-copy p:last-child{margin-bottom:0}.method-copy code{padding:.08rem .3rem;border:1px solid var(--line);border-radius:.25rem;color:var(--ink);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.84em}.method-equation{margin:1.5rem 0;padding:.9rem 1rem;border-left:2px solid var(--accent);background:var(--accent-soft);color:var(--ink-soft);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:clamp(.7rem,1.5vw,.84rem);line-height:1.6}.method-equation span{color:var(--accent)}.method-footer{display:flex;align-items:center;justify-content:center;gap:.5rem;padding-top:clamp(3rem,6vw,5rem);color:var(--ink-faint);font-size:.56rem;font-weight:650;letter-spacing:.12em;text-transform:uppercase}.method-figure{width:100%;margin:.1rem 0 0;align-self:center}.method-figure svg{display:block;width:100%;height:auto;overflow:visible}.method-figure path,.method-figure circle{vector-effect:non-scaling-stroke}.figure-axis,.figure-ticks,.figure-measure{fill:none;stroke:var(--line-strong);stroke-width:1}.figure-fit{fill:none;stroke:var(--accent);stroke-width:2;stroke-linecap:round}.figure-residual{fill:none;stroke:var(--ink-faint);stroke-width:1;stroke-dasharray:2 2}.figure-points circle{fill:var(--bg-raised);stroke:var(--accent);stroke-width:2}.figure-outlier-line,.figure-reassign,.figure-range,.figure-range-arrow{fill:none;stroke:var(--ink-faint);stroke-width:1;stroke-dasharray:3 3}.figure-outlier,.figure-secondary,.figure-missing{fill:var(--bg-raised);stroke:var(--ink-faint);stroke-width:1.5}.figure-missing{stroke-dasharray:2 2}.figure-cross{fill:none;stroke:var(--ink-faint);stroke-width:1.25}.figure-target{fill:var(--accent);stroke:var(--bg-raised);stroke-width:3}.method-figure text{fill:var(--ink-faint);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:9px;letter-spacing:.04em}@media(max-width:720px){.method{padding-top:4rem}.method-section{grid-template-columns:1fr;gap:.65rem}.method-number{padding-top:0}.method-figure{width:min(100%,18rem);margin:1rem auto 0}}.site-header{position:relative;z-index:5;display:flex;width:100%;align-items:center;justify-content:space-between;align-self:start}.home-mark{display:grid;width:2.15rem;height:2.15rem;place-items:center;border:0;background:transparent;color:var(--ink-soft);cursor:pointer;text-decoration:none;transition:color .15s ease,transform .15s ease}.home-mark:hover{color:var(--accent);transform:rotate(8deg)}.home-mark svg{width:1.85rem;height:1.85rem;overflow:visible}.home-mark-track,.home-mark-progress{fill:none;vector-effect:non-scaling-stroke}.home-mark-track{stroke:var(--line-strong);stroke-width:1.5}.home-mark-progress{stroke:currentColor;stroke-width:2;stroke-linecap:round}.home-mark-center{fill:var(--accent)}.header-meta{display:flex;align-items:center;gap:1.1rem}.icon-button{display:grid;width:2.15rem;height:2.15rem;place-items:center;border:1px solid var(--line);border-radius:50%;background:transparent;cursor:pointer;transition:border-color .16s ease,background .16s ease}.icon-button:hover{border-color:var(--line-strong);background:var(--face)}.icon-button svg{width:1.15rem;fill:none;stroke:currentColor;stroke-linecap:round;stroke-width:1.35}.header-action{padding:.38rem .68rem;border:1px solid var(--line);border-radius:999px;background:transparent;color:var(--ink-faint);cursor:pointer;font-size:.55rem;font-weight:650;letter-spacing:.1em;text-transform:uppercase;transition:color .15s ease,border-color .15s ease}.mobile-restart{display:none}.header-action:hover{border-color:var(--line-strong);color:var(--ink)}.theme-toggle .sun-icon{display:none}:root[data-theme=dark] .theme-toggle .sun-icon{display:block}:root[data-theme=dark] .theme-toggle .moon-icon{display:none}.instrument{position:relative;display:grid;width:clamp(20rem,min(60vh,43vw),31rem);aspect-ratio:1;place-items:center;-webkit-user-select:none;user-select:none}.precision-ring{position:absolute;inset:0;width:100%;height:100%;overflow:visible;transform-box:fill-box;transform-origin:center}.precision-ring circle,.precision-ring path{fill:none;vector-effect:non-scaling-stroke}.ring-guide{stroke:var(--line);stroke-width:1}.ring-guide-outer{stroke-dasharray:1 9;stroke-linecap:round}.ring-guide-inner{opacity:.65}.ring-track{stroke:var(--ring-track);stroke-width:6}.ring-progress{stroke:var(--accent);stroke-width:6;stroke-linecap:round;transition:stroke-width .5s ease}.ring-crosshairs{stroke:var(--ink-faint);stroke-width:1}.instrument-face{position:relative;z-index:2;display:flex;width:71%;aspect-ratio:1;flex-direction:column;align-items:center;justify-content:center;border:1px solid var(--line);border-radius:50%;background:var(--face);box-shadow:0 1.5rem 4rem var(--shadow);transition:border-color .5s ease,background .5s ease}.state-label{position:absolute;top:16%;display:flex;align-items:center;gap:.55rem;color:var(--ink-faint);font-size:clamp(.5rem,1.2vw,.63rem);font-weight:650;letter-spacing:.14em;text-transform:uppercase}.state-dot{width:.32rem;height:.32rem;border-radius:50%;background:currentColor;box-shadow:0 0 0 0 currentColor;transition:color .3s ease}.roundable .state-label{color:var(--accent)}.idle-copy,.warming-copy,.tempo-copy{display:flex;flex-direction:column;align-items:center;text-align:center}.idle-action{font-size:clamp(3.35rem,8vw,5.5rem);font-weight:250;line-height:.94;letter-spacing:-.07em}.idle-prompt,.warm-prompt,.session-prompt{color:var(--ink-soft)}.idle-prompt,.warm-prompt{margin-top:.9rem;font-size:clamp(.72rem,1.6vw,.9rem)}.idle-prompt{display:flex;align-items:center;gap:.65rem;color:var(--ink-faint);font-size:clamp(.54rem,1.2vw,.68rem);font-weight:650;letter-spacing:.12em;text-transform:uppercase}.touch-input-hint{display:none}.inline-key{min-width:3.5rem;padding:.34rem .55rem .28rem;border:1px solid var(--line-strong);border-bottom-width:2px;border-radius:.34rem;background:var(--face);color:var(--ink-soft);text-align:center}.warm-count{color:var(--accent);font-size:clamp(3.2rem,8vw,5.4rem);font-weight:250;line-height:.9;letter-spacing:-.06em;font-variant-numeric:tabular-nums}.bpm-row{display:flex;align-items:flex-end;gap:.55rem}.bpm-value{font-size:clamp(3.05rem,8vw,5.8rem);font-weight:300;font-variant-numeric:tabular-nums lining-nums;line-height:.86;letter-spacing:-.08em}.bpm-unit{margin-bottom:.42rem;color:var(--ink-faint);font-size:clamp(.52rem,1.1vw,.68rem);font-weight:650;letter-spacing:.12em;text-transform:uppercase}.precision-value{margin-top:.8rem;color:var(--accent);font-size:clamp(.72rem,1.45vw,.88rem);font-variant-numeric:tabular-nums}.session-prompt{min-height:1.2em;margin:.48rem 0 0;font-size:clamp(.62rem,1.2vw,.76rem)}.tempo-controls{position:absolute;bottom:13%;display:flex;gap:.45rem}.tempo-controls button{min-width:3rem;padding:.38rem .68rem;border:1px solid var(--line-strong);border-radius:999px;background:transparent;color:var(--ink-soft);cursor:pointer;font-size:clamp(.62rem,1.2vw,.74rem);transition:color .15s ease,border-color .15s ease,background .15s ease}.tempo-controls button:hover,.tempo-controls button:active{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}.desktop-restart{margin-left:.25rem}.button-shortcut{margin-left:.3rem;color:var(--ink-faint);font-size:.78em;letter-spacing:.08em;text-transform:uppercase}.tap-echo,.round-bloom,.beat-wave,.beat-flare{position:absolute;border-radius:50%;pointer-events:none}.tap-echo{inset:7.5%;border:2px solid var(--accent);opacity:0}.instrument.has-taps[data-tap="0"] .tap-echo{animation:tap-even .32s ease-out}.instrument.has-taps[data-tap="1"] .tap-echo{animation:tap-odd .32s ease-out}.instrument.has-taps[data-tap="0"] .instrument-face{animation:face-press-even .28s cubic-bezier(.16,.8,.2,1)}.instrument.has-taps[data-tap="1"] .instrument-face{animation:face-press-odd .28s cubic-bezier(.16,.8,.2,1)}.instrument.has-taps[data-tap="0"] .precision-ring{animation:ring-press-even .28s cubic-bezier(.16,.8,.2,1)}.instrument.has-taps[data-tap="1"] .precision-ring{animation:ring-press-odd .28s cubic-bezier(.16,.8,.2,1)}.round-bloom{inset:-5%;background:radial-gradient(circle,transparent 45%,var(--accent-glow) 61%,transparent 72%);opacity:0}.roundable .round-bloom{animation:resolve .9s cubic-bezier(.16,.8,.25,1) both}.roundable .ring-progress{stroke:var(--accent-bright);stroke-width:8}.roundable .instrument-face{border-color:color-mix(in srgb,var(--accent) 45%,transparent);box-shadow:0 1.5rem 4rem var(--shadow)}.beat-wave{inset:1.5%;border:2px solid var(--accent);opacity:0}.beat-wave-b{inset:-5%;border-width:1px}.beat-flare{inset:10%;background:radial-gradient(circle,var(--accent-glow) 0,transparent 67%);opacity:0}.metronome .beat-wave-a{animation:beat-wave var(--beat) cubic-bezier(.08,.55,.2,1) infinite;will-change:transform,opacity}.metronome .beat-wave-b{animation:beat-wave-wide var(--beat) cubic-bezier(.08,.55,.2,1) infinite;will-change:transform,opacity}.metronome .beat-flare{animation:beat-flare var(--beat) cubic-bezier(.08,.6,.2,1) infinite;will-change:transform,opacity}.metronome .ring-progress-segments{animation:ring-flash var(--beat) cubic-bezier(.12,.65,.2,1) infinite;transform-box:fill-box;transform-origin:center;will-change:transform,opacity}.metronome .instrument-face{animation:face-pulse var(--beat) cubic-bezier(.2,.7,.2,1) infinite;will-change:transform}@keyframes tap-even{0%{opacity:.8;transform:scale(.82)}to{opacity:0;transform:scale(1.12)}}@keyframes tap-odd{0%{opacity:.8;transform:scale(.82)}to{opacity:0;transform:scale(1.12)}}@keyframes face-press-even{0%{transform:scale(.955)}58%{transform:scale(1.012)}to{transform:scale(1)}}@keyframes face-press-odd{0%{transform:scale(.955)}58%{transform:scale(1.012)}to{transform:scale(1)}}@keyframes ring-press-even{0%{transform:scale(.975)}58%{transform:scale(1.006)}to{transform:scale(1)}}@keyframes ring-press-odd{0%{transform:scale(.975)}58%{transform:scale(1.006)}to{transform:scale(1)}}@keyframes resolve{0%{opacity:0;transform:scale(.72)}26%{opacity:.85}to{opacity:0;transform:scale(1.34)}}@keyframes beat-wave{0%{opacity:.78;transform:scale(.96)}68%,to{opacity:0;transform:scale(1.14)}}@keyframes beat-wave-wide{0%{opacity:.4;transform:scale(.94)}78%,to{opacity:0;transform:scale(1.22)}}@keyframes beat-flare{0%{opacity:.68;transform:scale(.92)}38%{opacity:.16}to{opacity:0;transform:scale(1.13)}}@keyframes ring-flash{0%{opacity:1;transform:scale(1.01)}40%,to{opacity:.72;transform:scale(1)}}@keyframes face-pulse{0%{transform:scale(1.014)}42%,to{transform:scale(1)}}@media(max-width:720px){.instrument{width:min(91vw,25rem)}.instrument-face{width:73%}.bpm-row{gap:.38rem}}@media(pointer:coarse){.inline-key,.desktop-input-hint,.button-shortcut{display:none}.touch-input-hint{display:inline}.desktop-restart{display:none}.idle-prompt{gap:0}}@media(max-height:720px)and (min-width:721px){.instrument{width:min(68vh,29rem)}}.tap-tempo{position:relative;isolation:isolate;display:grid;min-height:100svh;grid-template-rows:auto 1fr auto;overflow:hidden;padding:clamp(1.2rem,2.5vw,2rem) clamp(1.15rem,4vw,4rem);background:radial-gradient(circle at 50% 51%,var(--accent-soft) 0,transparent calc(17% + var(--energy) * 17%)),linear-gradient(var(--bg),var(--bg));touch-action:manipulation;transition:background .7s ease}.tap-tempo:before{content:"";position:absolute;z-index:-2;inset:0;opacity:calc(.22 + var(--energy) * .38);background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:5rem 5rem;background-position:0 var(--grid-y, 50%),var(--grid-x, 50%) 0;-webkit-mask-image:radial-gradient(circle at var(--grid-x, 50%) var(--grid-y, 50%),black,transparent 72%);mask-image:radial-gradient(circle at var(--grid-x, 50%) var(--grid-y, 50%),black,transparent 72%)}.ambient{position:absolute;z-index:-1;inset:0;overflow:hidden;pointer-events:none}.ambient-orbit{position:absolute;top:50%;left:50%;width:min(84vw,70rem);aspect-ratio:1;border:1px solid var(--line);border-radius:50%;transform:translate(-50%,-50%)}.ambient-orbit:before,.ambient-orbit:after{content:"";position:absolute;border:1px solid var(--line);border-radius:inherit}.ambient-orbit:before{inset:12%}.ambient-orbit:after{inset:28%}.ambient-orbit-a{opacity:.42}.ambient-orbit-b{width:min(118vw,92rem);border-style:dashed;opacity:.25}.tap-tempo-center{display:flex;min-height:0;flex-direction:column;align-items:center;justify-content:center;gap:clamp(1rem,2vh,1.5rem);padding:clamp(2.5rem,5vh,4rem) 0 2rem}.tap-tempo-footer{position:relative;z-index:5;display:flex;width:100%;align-items:center;justify-content:space-between;align-self:end;color:var(--ink-faint);font-size:.58rem;font-weight:650;letter-spacing:.14em;text-transform:uppercase}.footer-credit{display:flex;align-items:center;gap:.45rem;color:inherit;text-decoration:none}.synmersion-logo{width:5rem;height:auto;opacity:.58}.footer-credit:hover .synmersion-logo{opacity:.9}.method-link{display:flex;align-items:center;gap:.55rem;text-decoration:none}.method-link:hover{color:var(--ink)}.method-link svg{width:.8rem;fill:none;stroke:currentColor;stroke-width:1.5}@media(max-width:720px){.tap-tempo{padding:1.1rem 1rem max(1.15rem,env(safe-area-inset-bottom))}.tap-tempo-center{padding-top:2rem}}@media(pointer:coarse){.mobile-restart{display:inline-flex}}@media(max-height:720px)and (min-width:721px){.tap-tempo-center{gap:.6rem;padding:1rem 0}}:root{color-scheme:light dark;font-family:Helvetica Neue,Avenir Next,Avenir,Helvetica,Arial,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;--bg: #f2f4f2;--bg-raised: #f8faf8;--ink: #101616;--ink-soft: #5e6967;--ink-faint: #929c99;--line: rgba(16, 22, 22, .13);--line-strong: rgba(16, 22, 22, .23);--accent: #087f78;--accent-bright: #00a99d;--accent-soft: rgba(0, 137, 127, .11);--accent-glow: rgba(0, 155, 143, .2);--ring-track: rgba(16, 22, 22, .1);--face: rgba(248, 250, 248, .62);--shadow: rgba(26, 55, 51, .1)}*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--bg)}body{min-width:320px;min-height:100%;margin:0;background:var(--bg);color:var(--ink)}button,a{color:inherit;font:inherit}button{border:0}button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.app-shell{min-height:100vh;overflow:hidden}:root[data-theme=light]{color-scheme:light;--bg: #f2f4f2;--bg-raised: #f8faf8;--ink: #101616;--ink-soft: #5e6967;--ink-faint: #929c99;--line: rgba(16, 22, 22, .13);--line-strong: rgba(16, 22, 22, .23);--accent: #087f78;--accent-bright: #00a99d;--accent-soft: rgba(0, 137, 127, .11);--accent-glow: rgba(0, 155, 143, .2);--ring-track: rgba(16, 22, 22, .1);--face: rgba(248, 250, 248, .62);--shadow: rgba(26, 55, 51, .1)}:root[data-theme=dark]{color-scheme:dark;--bg: #090c0c;--bg-raised: #0d1110;--ink: #eef3f1;--ink-soft: #9ba9a6;--ink-faint: #626e6c;--line: rgba(223, 239, 235, .09);--line-strong: rgba(223, 239, 235, .17);--accent: #53c9bd;--accent-bright: #7ee9df;--accent-soft: rgba(67, 195, 181, .1);--accent-glow: rgba(64, 210, 194, .22);--ring-track: rgba(223, 239, 235, .1);--face: rgba(11, 17, 16, .68);--shadow: rgba(0, 0, 0, .36)}:root[data-theme=light] .synmersion-logo{filter:none}:root[data-theme=dark] .synmersion-logo{filter:invert(1)}@media(prefers-color-scheme:dark){:root:not([data-theme]){--bg: #090c0c;--bg-raised: #0d1110;--ink: #eef3f1;--ink-soft: #9ba9a6;--ink-faint: #626e6c;--line: rgba(223, 239, 235, .09);--line-strong: rgba(223, 239, 235, .17);--accent: #53c9bd;--accent-bright: #7ee9df;--accent-soft: rgba(67, 195, 181, .1);--accent-glow: rgba(64, 210, 194, .22);--ring-track: rgba(223, 239, 235, .1);--face: rgba(11, 17, 16, .68);--shadow: rgba(0, 0, 0, .36)}:root:not([data-theme]) .synmersion-logo{filter:invert(1)}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:1ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:1ms!important}}
