:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:dark;color:#ffffffde;background-color:#1a1a2e;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--font-base: 16px;--line-height: 1.6}@media(max-width:768px){:root{--font-base: 14px}}@media(max-width:480px){:root{--font-base: 13px}}*{box-sizing:border-box}html{scroll-behavior:smooth}a{font-weight:500;color:#61dafb;text-decoration:inherit;transition:color .2s}a:hover{color:#a0e8ff}body{margin:0;display:flex;min-width:320px;min-height:100vh;background-color:#1a1a2e;color:#ffffffde;line-height:var(--line-height)}#root{width:100%;display:flex;flex-direction:column}h1,h2,h3,h4,h5,h6{margin:0;line-height:1.2}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;cursor:pointer;transition:border-color .25s}button:focus,button:focus-visible{outline:2px solid #61dafb;outline-offset:2px}@media(max-width:480px){h1{font-size:1.5em}h2{font-size:1.25em}button{padding:.5em 1em;font-size:.9em}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.cookieBannerBackdrop{position:fixed;inset:0;background:#0006;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:999;opacity:0;animation:backdropFadeIn .2s ease-out forwards;pointer-events:auto}.cookieBanner{position:fixed;bottom:0;left:0;right:0;z-index:1000;padding:1rem;animation:slideUp .3s ease-out forwards;pointer-events:auto;transform:translateZ(0);will-change:transform}.cookieBanner.expanded{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;padding:1rem;animation:fadeIn .2s ease-out forwards;background:transparent}.cookieBanner.expanded .cookieContent{max-width:480px;max-height:90vh;overflow-y:auto;animation:scaleIn .2s ease-out forwards}@keyframes slideUp{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{transform:scale(.95);opacity:0}to{transform:scale(1);opacity:1}}@keyframes backdropFadeIn{0%{opacity:0}to{opacity:1}}.cookieContent{background:linear-gradient(135deg,#1a1a2ef2,#1a1a2eeb);border:1px solid rgba(255,255,255,.08);border-radius:16px;padding:1.5rem;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 20px 60px #0006,inset 0 1px #ffffff1a;font-size:14px;line-height:1.6}@media(max-width:480px){.cookieBanner:not(.expanded){border-radius:12px 12px 0 0}.cookieContent{border-radius:12px 12px 0 0;padding:1.25rem}.cookieBanner.expanded .cookieContent{max-height:calc(100vh - 2rem);border-radius:16px}}.cookieHeader{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;gap:1rem}.cookieTitle{font-size:16px;font-weight:600;margin:0;color:#e9eefc}.cookieClose{background:none;border:none;color:#ffffff80;font-size:20px;cursor:pointer;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;transition:color .15s ease;flex-shrink:0}.cookieClose:hover{color:#fffc}.cookieText{margin:0 0 1rem;color:#ffffffbf;font-size:14px;line-height:1.5}.cookieDetails{animation:slideUp .2s ease-out}.cookieOption{padding:1rem;margin:.75rem 0;background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:10px;transition:background .15s ease,border-color .15s ease}.cookieOption:hover{background:#ffffff0f;border-color:#ffffff1f}.optionHeader{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.5rem}.optionLabel{display:flex;align-items:center;gap:.75rem;cursor:pointer;font-weight:500;color:#e9eefc;margin:0}.optionLabel input{cursor:pointer;width:18px;height:18px;accent-color:#5a8cff}.optionLabel input:disabled{opacity:.6;cursor:not-allowed}.badge{display:inline-block;padding:4px 8px;background:#5a8cff33;border:1px solid rgba(90,140,255,.4);border-radius:6px;font-size:12px;color:#a0e8ff;font-weight:600;white-space:nowrap}.optionDesc{margin:.5rem 0 0 2.5rem;font-size:12px;color:#ffffff80;line-height:1.4}.cookieActions{display:flex;gap:.75rem;margin-top:1.5rem;flex-wrap:wrap}.cookieBtn{padding:.65rem 1.25rem;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .15s ease;white-space:nowrap;flex:1;min-width:100px}.cookieBtn.acceptAll{background:#5a8cff;color:#fff;border:1px solid #5a8cff}.cookieBtn.acceptAll:hover{background:#7aa4ff;box-shadow:0 8px 16px #5a8cff4d}.cookieBtn.acceptAll:active{transform:scale(.98)}.cookieBtn.reject{background:#ffffff14;color:#ffffffbf;border:1px solid rgba(255,255,255,.12)}.cookieBtn.reject:hover{background:#ffffff1f;border-color:#fff3;color:#ffffffe6}.cookieBtn.secondary{background:#ffffff1a;color:#fffc;border:1px solid rgba(255,255,255,.15)}.cookieBtn.secondary:hover{background:#ffffff24;border-color:#ffffff40}@media(max-width:480px){.cookieBanner:not(.expanded){padding:0}.cookieContent{border-radius:12px 12px 0 0}.cookieBtn{flex:0 1 calc(50% - .375rem)}.cookieBtn.acceptAll{flex:1}.cookieActions{gap:.5rem}.optionDesc{margin-left:2.25rem;font-size:11px}}@media(prefers-reduced-motion:reduce){.cookieBanner,.cookieContent,.cookieBannerBackdrop{animation:none;transition:none}}@media(max-width:768px){.cookieBanner.expanded{position:fixed}}#root{max-width:1280px;margin:0 auto;padding:2rem;text-align:center}@media(max-width:768px){#root{padding:1.5rem}}@media(max-width:480px){#root{padding:1rem}}.card{padding:2rem}@media(max-width:768px){.card{padding:1.5rem}}@media(max-width:480px){.card{padding:1rem}}.read-the-docs{display:none}.padWrap{margin-top:1rem;display:flex;justify-content:center;overflow-x:auto;padding:1rem 0}.pad{position:relative;width:620px;height:380px;border-radius:18px;border:1px solid #243154;overflow:hidden;background:radial-gradient(100% 100% at 10% 10%,rgba(90,140,255,.28),transparent 55%),radial-gradient(100% 100% at 90% 10%,rgba(255,120,200,.2),transparent 55%),radial-gradient(100% 100% at 20% 90%,rgba(90,255,200,.14),transparent 55%),linear-gradient(135deg,#ffffff0f,#ffffff03);-webkit-user-select:none;user-select:none;touch-action:none;flex-shrink:0}@media(max-width:768px){.pad{width:min(100%,90vw);height:min(55vw,300px)}}@media(max-width:480px){.pad{width:100%;height:200px}}.padGrid{position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.06) 1px,transparent 1px);background-size:40px 40px;opacity:.25;pointer-events:none}.hud{display:grid;gap:8px;padding:12px 14px;border-radius:12px;background:#00000038;border:1px solid rgba(255,255,255,.1);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);font-size:13px;margin-top:12px;text-align:left}@media(max-width:480px){.hud{font-size:11px;padding:10px 12px;gap:6px;margin-top:10px}}.puck{position:absolute;width:54px;height:54px;border-radius:999px;display:grid;place-items:center;background:#ffffff1a;border:1px solid rgba(255,255,255,.22);box-shadow:0 18px 40px #00000059,0 0 0 10px #e9eefc0f;cursor:grab;z-index:5}.puck:active{cursor:grabbing}.puckInner{width:18px;height:18px;border-radius:999px;background:#e9eefc;opacity:.9;box-shadow:0 0 0 8px #e9eefc1a}@media(max-width:480px){.puck{width:44px;height:44px}.puckInner{width:14px;height:14px}}.padLabels .lbl{position:absolute;font-size:12px;opacity:.65;padding:6px 8px;border-radius:999px;background:#0000002e;border:1px solid rgba(255,255,255,.08)}.lbl.tl{top:10px;left:10px}.lbl.tr{top:10px;right:10px}.lbl.bl{bottom:10px;left:10px}.lbl.br{bottom:10px;right:10px}@media(max-width:480px){.padLabels .lbl{font-size:10px;padding:4px 6px}}.chip.active{border-color:#ffffff59;background:#ffffff1a}.modeRow{display:flex;align-items:center;gap:8px;margin-top:10px;flex-wrap:wrap}.brandRow{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;margin-top:10px;width:700px}.modeActions{display:flex;gap:.75rem}@media(max-width:768px){.brandRow{width:100%;flex-direction:column;align-items:flex-start;gap:1rem}.modeActions{width:100%}.modeActions button{flex:1}}.wrap{display:grid;grid-template-areas:"top" "grid" "foot";grid-template-rows:auto 1fr auto;gap:2rem;min-height:100vh}@media(max-width:768px){.wrap{gap:1.5rem}}@media(max-width:480px){.wrap{gap:1rem}}.top{grid-area:top;display:grid;grid-template-columns:1fr auto;gap:2rem;align-items:start}@media(max-width:1024px){.top{grid-template-columns:1fr;gap:1.5rem}}@media(max-width:480px){.top{gap:1rem}}.brand{text-align:left}.titleBar{display:flex;align-items:center;gap:12px;margin-bottom:.5rem}.logo{width:48px;height:48px;object-fit:contain;border-radius:8px}@media(max-width:768px){.logo{width:40px;height:40px}}@media(max-width:480px){.logo{width:32px;height:32px}}.title{font-size:2.5rem;font-weight:700;margin:0;color:#fff}@media(max-width:768px){.title{font-size:2rem}}@media(max-width:480px){.title{font-size:1.5rem}}.sub{font-size:.95rem;line-height:1.6;color:#aaa;margin:.5rem 0 1rem;max-width:600px}.actions{display:flex;flex-direction:column;gap:1rem}@media(max-width:1024px){.actions{flex-direction:row;flex-wrap:wrap}}@media(max-width:480px){.actions{flex-direction:column;width:100%}}.bpmBox{display:flex;flex-direction:column;gap:.75rem;padding:.75rem 1rem;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:10px}.bpmInput{width:80px;padding:.5rem;background:#ffffff14;border:1px solid rgba(255,255,255,.15);border-radius:6px;color:#fff;font-weight:600;text-align:center;font-size:1rem}.bpmInput:focus{outline:none;border-color:#ffffff4d;background:#ffffff1f}.bpmChips{display:flex;gap:.5rem;flex-wrap:wrap}.grid{grid-area:grid;display:grid;grid-template-columns:2fr 1fr;gap:2rem}@media(max-width:1024px){.grid{grid-template-columns:1fr;gap:1.5rem}}.cardTitle{font-size:1.25rem;font-weight:600;margin-bottom:1rem;color:#e9eefc}.mapHelp{font-size:.875rem;color:#888;margin-bottom:1rem;font-weight:500}.params{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem;margin-top:2rem}@media(max-width:768px){.params{grid-template-columns:1fr;gap:1rem}}.param{display:flex;flex-direction:column;gap:.5rem}.paramTop{display:flex;justify-content:space-between;font-size:.875rem;color:#aaa}.param input[type=range]{cursor:pointer;accent-color:#61dafb}.mono{font-family:Courier New,monospace;color:#61dafb;font-weight:500}.dim{color:#888;font-weight:500;font-size:.875rem}.fineTag,.loopTag{font-size:.8rem;padding:.25rem .5rem;background:#ffffff0d;border-radius:4px;color:#61dafb}.loopTag{background:#ff64641a;color:#ff6464}.empty{padding:2rem 1rem;text-align:center;color:#888;font-size:.95rem;line-height:1.6}.list{display:flex;flex-direction:column;gap:1rem}.row{display:flex;justify-content:space-between;align-items:center;padding:1rem;background:#ffffff08;border:1px solid rgba(255,255,255,.08);border-radius:10px;gap:1rem;flex-wrap:wrap}@media(max-width:480px){.row{flex-direction:column;align-items:flex-start}}.rowMain{flex:1;text-align:left}.rowName{font-weight:600;color:#e9eefc;margin-bottom:.25rem}.rowMeta{font-size:.8rem;color:#888}.rowBtns{display:flex;gap:.5rem}@media(max-width:480px){.rowBtns{width:100%}.rowBtns button{flex:1}}.seoBlock{margin-top:2rem;padding-top:2rem;border-top:1px solid rgba(255,255,255,.08);text-align:left}.seoTitle{font-size:1.25rem;font-weight:600;margin-bottom:.75rem;color:#e9eefc}.seoText{color:#aaa;line-height:1.6;margin-bottom:1rem;font-size:.95rem}.seoList{list-style-position:inside;color:#888;font-size:.9rem;line-height:1.8;margin:0;padding-left:0}.seoList li{margin-bottom:.5rem}.sideTips{margin-top:1.5rem;padding:1rem;background:#ffffff08;border-left:3px solid #61dafb;border-radius:6px}.tipTitle{font-weight:600;color:#61dafb;margin-bottom:.5rem;font-size:.9rem}.tipText{font-size:.875rem;color:#aaa;line-height:1.5}.foot{grid-area:foot;padding:1rem;border-top:1px solid rgba(255,255,255,.08);font-size:.875rem;color:#888}.footContent{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}.footText{flex:1;min-width:200px}.footContact{padding:.5rem 1rem;border:1px solid rgba(255,255,255,.2);border-radius:6px;background:#6496ff1a;color:#5a8cff;text-decoration:none;font-weight:500;cursor:pointer;transition:all .2s ease;white-space:nowrap}.footContact:hover{background:#6496ff33;border-color:#fff6;color:#7aacff}@media(max-width:480px){.footContent{flex-direction:column;text-align:center}.footText{min-width:auto}.footContact{width:100%}}.footLinks{display:flex;align-items:center;gap:14px}.footLink{opacity:.85;text-decoration:none}.footLink:hover{opacity:1;text-decoration:underline}button{padding:.75rem 1.25rem;border:1px solid rgba(255,255,255,.2);border-radius:8px;background:#ffffff0d;color:#fff;font-weight:500;cursor:pointer;transition:all .2s ease;font-size:.95rem}button:hover{background:#ffffff1a;border-color:#ffffff59}button:active{transform:scale(.98)}.primary{background:#61dafb26;border-color:#61dafb66;color:#61dafb}.primary:hover{background:#61dafb40;border-color:#61dafb99}.danger{background:#ff646426;border-color:#ff646466;color:#ff6464}.danger:hover{background:#ff646440;border-color:#ff646499}.chip{padding:.5rem 1rem;font-size:.875rem}@media(max-width:480px){button{padding:.625rem 1rem;font-size:.875rem}.chip{padding:.45rem .85rem;font-size:.8rem}}@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}:focus-visible{outline:2px solid #61dafb;outline-offset:2px}.navLink{display:inline-flex;align-items:center;gap:8px;font-size:.9rem;color:#61dafbf2;text-decoration:none;opacity:.92}.navLink:hover{opacity:1;text-decoration:underline}.learnWrap,.guide{max-width:980px;margin:0 auto;padding:clamp(20px,4vw,44px);color:#fff}.learnHead,.guideHead{text-align:center;margin-bottom:22px}.learnHead h1,.guideHead h1{letter-spacing:-.02em;font-size:clamp(28px,3vw,40px);line-height:1.1;margin:10px 0}.learnHead p,.guideSub,.learnLead{color:#ffffffad;line-height:1.85;font-size:15px;max-width:70ch;margin:0 auto 10px}.learnAd{margin:18px 0 22px}.learnIntro{margin:18px auto 22px;max-width:980px}.learnIntroCard{padding:16px 16px 14px;border-radius:16px;border:1px solid rgba(255,255,255,.1);background:#ffffff08;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.learnMini{color:#ffffff9e;margin-top:8px}.learnActions{margin-top:10px}.learnGrid{display:grid;gap:14px;grid-template-columns:repeat(2,1fr);margin-top:16px}@media(max-width:860px){.learnGrid{grid-template-columns:1fr}}.learnCard{text-decoration:none;padding:18px;border-radius:14px;border:1px solid rgba(255,255,255,.1);background:#ffffff08;color:#fff;transition:transform .16s ease,border-color .16s ease,background .16s ease}.learnCard:hover{transform:translateY(-2px);border-color:#61dafb40;background:#ffffff0d}.learnCard p{color:#ffffffa6;margin:0;line-height:1.7}.learnMeta{display:inline-block;margin-top:10px;font-size:.85rem;color:#fff9;opacity:.95}.guide{text-align:left;max-width:860px}.guide h2{margin-top:18px;margin-bottom:8px;letter-spacing:-.01em;font-size:18px}.guide h3{margin-top:14px;margin-bottom:6px;font-size:15px;color:#ffffffe0}.guide p,.guide li{color:#ffffffad;line-height:1.9;font-size:15px}.guide ul{padding-left:18px}.guide li{margin:6px 0}.guideSection{margin-top:14px;padding:16px;border-radius:14px;border:1px solid rgba(255,255,255,.09);background:#ffffff05}.stepTitle{display:inline-flex;align-items:center;gap:10px;margin:0 0 10px}.stepBadge{width:26px;height:26px;border-radius:8px;display:grid;place-items:center;font-size:13px;color:#fffffff2;border:1px solid rgba(97,218,251,.35);background:#61dafb14}.callout{margin-top:12px;padding:12px;border-radius:12px;border:1px solid rgba(255,255,255,.08);background:#0000002e}.callout strong{color:#ffffffeb}.callout p{margin:6px 0 0}.stickyCta{position:sticky;bottom:14px;margin-top:22px;padding:12px;border-radius:14px;border:1px solid rgba(255,255,255,.1);background:#141630b8;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);display:flex;justify-content:space-between;gap:12px;align-items:center}.stickyCta p{margin:0;color:#ffffffb3;line-height:1.6;font-size:13px}.stickyCta .ctaBtn{white-space:nowrap;padding:10px 14px;border-radius:10px;border:1px solid rgba(97,218,251,.45);background:#61dafb1f;color:#61dafb;text-decoration:none}.stickyCta .ctaBtn:hover{background:#61dafb33}.adsbygoogle{display:block;width:100%}.adSlot{height:0;overflow:hidden;margin:0}.adSlot.is-filled{height:auto;margin:1.25rem 0 2rem}
