@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2c55a0e60120577a-s.2a48534a.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/9c72aa0f40e4eef8-s.18a48cbc.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/ad66f9afd8947f86-s.7a40eb73.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/5476f68d60460930-s.c995e352.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2bbe8d2671613f1f-s.76dcb0b2.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/1bffadaabf893a1e-s.7cd81963.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/83afe278b6a6bb3c-s.p.3a6ba036.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter Fallback;src:local(Arial);ascent-override:90.44%;descent-override:22.52%;line-gap-override:0.0%;size-adjust:107.12%}.inter_fa93af41-module__0D_jrq__className{font-family:Inter,Inter Fallback;font-style:normal}
@font-face{font-family:Caveat;font-style:normal;font-weight:400 700;font-display:swap;src:url(../media/da4b870ab52b3094-s.5e0466e7.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Caveat;font-style:normal;font-weight:400 700;font-display:swap;src:url(../media/86d70b7c76b6ec6e-s.5d81ed22.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Caveat;font-style:normal;font-weight:400 700;font-display:swap;src:url(../media/11cc37d7380d16b4-s.6c45a7b8.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Caveat;font-style:normal;font-weight:400 700;font-display:swap;src:url(../media/a85fe84266768609-s.p.e658778d.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Caveat Fallback;src:local(Arial);ascent-override:124.77%;descent-override:38.99%;line-gap-override:0.0%;size-adjust:76.94%}.caveat_fa6e8c7e-module__lduYla__className{font-family:Caveat,Caveat Fallback;font-style:normal}.caveat_fa6e8c7e-module__lduYla__variable{--font-hand:"Caveat","Caveat Fallback"}
:root{--gray0:#fff;--gray1:#fcfcfc;--gray2:#f8f8f8;--gray3:#f3f3f3;--gray4:#ededed;--gray5:#e8e8e8;--gray6:#e2e2e2;--gray7:#dbdbdb;--gray8:#c7c7c7;--gray9:#8f8f8f;--gray10:#858585;--gray11:#6f6f6f;--gray12:#171717;--hover:#282828;--side-padding:16px;--font-mono:"SF Mono","Fira Code","JetBrains Mono","Menlo",monospace}*,:before,:after{box-sizing:border-box;margin:0;padding:0}::selection{background:var(--gray7)}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{background:var(--gray0);color:var(--gray12);margin:0;padding:0;font-size:16px;line-height:25px}a{color:inherit;text-decoration:none}button{font:inherit}code{border:1px solid var(--gray3);background:var(--gray4);font-size:13px;line-height:28px;font-family:var(--font-mono);border-radius:6px;padding:2px 4px}pre code,.code code{font-size:inherit;line-height:inherit;background:0 0;border:none;border-radius:0;padding:0}.container{max-width:672px;padding-left:max(var(--side-padding),env(safe-area-inset-left));padding-right:max(var(--side-padding),env(safe-area-inset-right));margin:0 auto}.hero{flex-direction:column;align-items:center;gap:12px;display:flex}.hero h1{z-index:10;margin:-20px 0 12px;font-size:48px;font-weight:700}.hero>p{color:var(--gray12);margin-bottom:12px}.hero-buttons{gap:8px;display:flex}.hero-btn{cursor:pointer;border:none;border-radius:6px;justify-content:center;align-items:center;width:152px;height:40px;padding:0 30px;font-family:inherit;font-size:13px;font-weight:600;text-decoration:none;transition:box-shadow .2s,background .2s;display:inline-flex;position:relative;overflow:hidden}.hero-btn-primary{background:var(--gray12);color:var(--gray1);box-shadow:0 0 0 1px var(--gray12)}.hero-btn-primary:hover{background:var(--hover)}.hero-btn-secondary{color:var(--gray12);background:linear-gradient(156deg,#fff,#f0f0f0);box-shadow:0 0 0 1px #0000000f,0 1px #00000014,0 2px 2px #0000000a,0 3px 3px #00000005,0 4px 4px #00000003}.hero-btn-secondary:hover{background:linear-gradient(156deg,#fafafa,#eaeaea)}.hero-screen{justify-content:center;align-items:center;padding-top:50px;transition:background .6s ease-out;display:flex}.hero-center{max-width:672px;padding:0 var(--side-padding);flex-direction:column;align-items:center;gap:16px;display:flex}.hero-center h1{margin:0}.hero-subtitle{color:var(--gray11);margin:-4px 0 0;font-size:16px}.hero-demo{flex-direction:column;align-items:center;gap:12px;width:100%;display:flex}.hero-buttons-row{flex-wrap:wrap;justify-content:center;gap:6px;display:flex}.hero-bar{width:100%;max-width:400px}.hero-code-line{align-items:center;gap:12px;min-height:28px;display:flex}.hero-code-line code{font-family:var(--font-mono);font-size:13px}.hero-actions{gap:8px;margin-top:4px;display:flex}.hero-qr{justify-content:center;align-items:center;gap:16px;padding:32px 0;display:flex;transform:rotate(-2deg)}.hero-qr-sticker{border:1px solid var(--gray3);color:var(--gray12);background:#fff;border-radius:8px;padding:10px;box-shadow:0 2px 8px #0000000f,0 1px 2px #0000000a}@media (max-width:640px){.hero-screen{padding-top:32px}.hero-center h1 img{height:44px}.hero-subtitle{font-size:14px}.hero-buttons-row{gap:4px}.hero-buttons-row .btn{padding:6px 10px;font-size:12px}.hero-code-line code{font-size:11px}.hero-actions{width:100%;padding:0 var(--side-padding);flex-direction:column}.hero-actions .hero-btn{width:100%}.hero-qr{display:none}.pe-timeline{height:100px}.pe-block{width:20px}.pe-handle-top{height:16px;top:-6px}.pe-presets{gap:4px}}.hero-qr-text{font-family:var(--font-hand),cursive;color:var(--gray11);margin:0;font-size:22px;transform:rotate(-3deg)}.content{flex-direction:column;gap:64px;margin-top:64px;padding-bottom:64px;display:flex}.content h2{margin:12px 0;font-size:16px;font-weight:500}.content p{color:var(--gray12);margin-bottom:16px;font-size:16px;line-height:25px}.content h2+p{margin-top:-4px}.buttons{margin:0 calc(-1*var(--side-padding));padding:4px var(--side-padding);flex-wrap:wrap;gap:8px;display:flex;position:relative;overflow:auto}.btn{background:var(--gray1);border:1px solid var(--gray3);white-space:nowrap;cursor:pointer;color:var(--gray12);border-radius:6px;margin:0;padding:8px 12px;font-family:inherit;font-size:13px;font-weight:500;transition:border-color .2s,background .2s,box-shadow .2s}.btn:hover{background:var(--gray2);border-color:var(--gray4)}.btn:focus-visible{outline:none;box-shadow:0 0 0 1px #0000000f,0 1px #00000014,0 2px 2px #0000000a,0 3px 3px #00000005,0 4px 4px #00000003,0 0 0 2px #00000026}.pe-timeline:focus-visible,.pe-canvas:focus-visible,.theremin-pad:focus-visible{outline:2px solid var(--gray12);outline-offset:2px}.btn:active{transform:scale(.97)}.btn-active{background:var(--gray3);border-color:var(--gray7)}@media (pointer:coarse){.btn{min-height:44px;padding:10px 14px}}.code-outer{margin-top:16px;margin-bottom:16px;position:relative}.code-outer:hover .copy-btn{opacity:1}.code-wrapper{border:1px solid var(--gray3);border-radius:6px;padding:0;overflow-x:auto}.code{background:linear-gradient(to top,var(--gray2),var(--gray1)16px);font-family:var(--font-mono);white-space:pre-wrap;color:var(--gray12);margin:0;padding:16px;font-size:13px;line-height:17px}.copy-btn{z-index:1;border:1px solid var(--gray4);background:var(--gray0);cursor:pointer;opacity:0;width:26px;height:26px;color:var(--gray12);border-radius:6px;justify-content:center;align-items:center;transition:background .2s,opacity .2s;display:flex;position:absolute;top:12px;right:12px}@media (pointer:coarse){.copy-btn{opacity:1;width:36px;height:36px}}.copy-btn:hover{background:var(--gray1)}.copy-btn:focus-visible{opacity:1;box-shadow:0 0 0 1px var(--gray4)}.hl-keyword{color:#e06c75;font-weight:600}.hl-string{color:#50a14f}.hl-comment{color:var(--gray9);font-style:italic}.hl-tag{color:#0694a2}.demo-area{border:1px solid var(--gray3);border-radius:6px;margin-top:16px;position:relative;overflow:hidden}.demo-code{border-bottom:none}.demo-code .code{border-radius:0;margin:0}.demo-toasts{z-index:999;pointer-events:none;flex-direction:column-reverse;gap:8px;display:flex;position:fixed;bottom:24px;right:24px}@media (max-width:640px){.demo-toasts{bottom:8px;left:8px;right:8px}.demo-toast{width:100%}}.demo-toast{background:var(--gray0);border:1px solid var(--gray3);pointer-events:auto;border-radius:6px;justify-content:space-between;align-items:center;gap:16px;min-width:240px;padding:12px 16px;font-size:14px;animation:.3s toast-in;display:flex;box-shadow:0 4px 12px #0000001a}.demo-toast-pattern{color:var(--gray12);font-weight:500}.demo-toast-mode{text-transform:capitalize;border-radius:4px;padding:2px 8px;font-size:12px;font-weight:600}.demo-toast-haptics .demo-toast-mode{color:#166534;background:#dcfce7}.demo-toast-audio .demo-toast-mode{color:#92400e;background:#fef3c7}.demo-toast-none .demo-toast-mode{background:var(--gray3);color:var(--gray11)}@keyframes toast-in{0%{opacity:0;transform:translateY(16px)scale(.95)}to{opacity:1;transform:translateY(0)scale(1)}}.trigger-wrap{flex-direction:column;align-items:center;gap:12px;display:flex}.trigger-btn{border:1px solid var(--gray3);background:var(--gray0);height:36px;color:var(--gray12);cursor:pointer;border-radius:6px;padding:0 20px;font-size:13px;font-weight:500;transition:background .2s,border-color .2s,transform .1s}.trigger-btn:hover{background:var(--gray2);border-color:var(--gray4)}.trigger-btn:active{background:var(--gray3)}.trigger-btn-flash{background:var(--gray3);border-color:var(--gray7);transform:scale(.95)}.trigger-result{align-items:center;gap:8px;animation:.2s toast-in;display:flex}.trigger-method{font-family:var(--font-mono);color:var(--gray10);font-size:12px}.mode-badge{text-transform:capitalize;border-radius:4px;padding:2px 8px;font-size:12px;font-weight:600}.mode-haptics{color:#166534;background:#dcfce7}.mode-audio{color:#92400e;background:#fef3c7}.mode-none{background:var(--gray3);color:var(--gray11)}.code-file-label{color:var(--gray11);background:var(--gray1);border-bottom:1px solid var(--gray3);align-items:center;gap:8px;padding:8px 12px;font-size:13px;display:flex}.code-file-label .copy-btn{opacity:1;margin-left:auto;position:static}.code-file-icon{width:16px;height:16px;color:var(--gray9)}.install-code{background:linear-gradient(to top,var(--gray2),var(--gray1)8px);font-family:var(--font-mono);cursor:copy;border:1px solid var(--gray3);height:40px;color:var(--gray12);border-radius:6px;align-items:center;padding:0 12px;font-size:14px;display:flex;position:relative}.install-copy{cursor:pointer;border:1px solid var(--gray4);background:var(--gray0);color:var(--gray12);border-radius:6px;justify-content:center;align-items:center;width:26px;height:26px;transition:background .2s;display:flex;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.install-copy:hover{background:var(--gray1)}.docs{min-height:100vh}.docs-logo{margin-bottom:24px;font-size:14px;display:block}.docs-logo strong{font-weight:600}.docs-logo-by{color:var(--gray10);font-size:13px}.docs-main{max-width:672px;padding:24px var(--side-padding)80px;margin:0 auto;display:block}.docs-toc{display:none}@media (min-width:1024px){.docs-main{grid-template-columns:180px minmax(0,672px);justify-content:center;gap:48px;max-width:none;padding:40px 48px 120px;display:grid}.docs-toc{align-self:start;display:block;position:sticky;top:40px}}.docs-content{width:100%;max-width:672px}.docs-title{letter-spacing:-.02em;font-size:36px;font-weight:700;line-height:1.2}.docs-description{color:var(--gray11);margin-top:8px;margin-bottom:40px;font-size:16px;line-height:25px}.docs-content section{margin-top:40px}.docs-content section h2{letter-spacing:-.01em;margin-bottom:8px;font-size:22px;font-weight:700}.docs-content section h3{margin-top:32px;margin-bottom:8px;font-size:16px;font-weight:600}.docs-content section p{color:var(--gray11);margin-bottom:8px;font-size:16px;line-height:25px}.docs-toc-title{color:var(--gray10);align-items:center;gap:6px;margin-bottom:12px;font-size:13px;font-weight:500;display:flex}.docs-toc-link{color:var(--gray11);border-left:2px solid #0000;padding:3px 0 3px 10px;font-size:13px;transition:color .2s,border-color .2s;display:block}.docs-toc-link-active{border-left-color:var(--gray12);color:var(--gray12)}.docs-toc-link:hover{color:var(--gray12);border-left-color:var(--gray7)}.docs-toc-footer{border-top:1px solid var(--gray3);margin-top:24px;padding-top:16px}.docs-toc-github{color:var(--gray11);align-items:center;gap:8px;padding:3px 0;font-size:13px;display:flex}.docs-toc-github:hover{color:var(--gray12)}.doc-demo{border:1px solid var(--gray3);border-radius:6px;margin-top:16px;margin-bottom:16px;overflow:hidden}.doc-demo-tabs{border-bottom:1px solid var(--gray3);background:var(--gray1);justify-content:space-between;align-items:center;height:40px;padding:0 12px;display:flex}.doc-demo-tabs-left{gap:0;display:flex}.doc-demo-tab{color:var(--gray10);cursor:pointer;background:0 0;border:none;padding:8px 12px;font-size:13px;font-weight:500;transition:color .2s}.doc-demo-tab:hover,.doc-demo-tab-active{color:var(--gray12)}.doc-demo-copy{color:var(--gray10);cursor:pointer;background:0 0;border:none;font-size:13px;transition:color .2s}.doc-demo-copy:hover{color:var(--gray12)}.doc-demo-preview{justify-content:center;align-items:center;min-height:200px;padding:32px;display:flex}.doc-demo .code-wrapper{border:none;border-radius:0}.doc-demo .code-outer{margin:0}.doc-demo .copy-btn{display:none}.pattern-demo{margin-top:16px}.pattern-demo-body{border:1px solid var(--gray3);border-radius:6px;margin-top:16px;overflow:hidden}.pattern-demo-desc{color:var(--gray11);margin:0;padding:16px 16px 0;font-size:14px;line-height:1.5}.pattern-demo-preview{flex-direction:column;align-items:center;gap:8px;padding:20px 16px;display:flex}.pattern-demo-code{border-top:1px solid var(--gray3);background:linear-gradient(to top,var(--gray2),var(--gray1)16px)}.pattern-demo-code .code{background:0 0;border:none;margin:0;padding:12px 16px;font-size:13px}.seq{width:100%;margin-top:20px;padding:0 8px}.seq-timeline{height:40px;position:relative}.seq-spine{background:var(--gray7);border-radius:1px;height:2px;position:absolute;bottom:0;left:0;right:0}.seq-tick{flex-direction:column;align-items:center;display:flex;position:absolute;bottom:2px;transform:translate(-50%)}@keyframes seq-playhead-sweep{0%{left:0}to{left:100%}}.seq-playhead{z-index:1;pointer-events:none;background:#22c55e;width:2px;animation:linear forwards seq-playhead-sweep;position:absolute;top:0;bottom:0;box-shadow:0 0 8px #22c55e80}.seq-tick-pulse .seq-tick-bar{background:var(--gray8);border-radius:2px;width:14px;height:32px;transition:background 80ms ease-out,box-shadow 80ms ease-out,transform 80ms,width 80ms}.seq-tick-active .seq-tick-bar{background:#22c55e;width:18px;transition:background 20ms,box-shadow 20ms,transform 20ms,width 20ms;transform:scaleY(1.2);box-shadow:0 0 10px #22c55e80,0 0 20px #22c55e33}.seq-tick-gap .seq-tick-bar{background:var(--gray7);border-radius:1px;width:2px;height:14px;margin-top:9px}.seq-tick-gap .seq-tick-label{color:var(--gray7)}.seq-tick-label{font-family:var(--font-mono);color:var(--gray9);white-space:nowrap;font-size:10px;transition:color 80ms ease-out}.seq-tick-active .seq-tick-label{color:#16a34a;transition:color 20ms}@keyframes btn-selection{0%,to{transform:scale(1)}20%{transform:scale(.93)}40%{transform:scale(1)}60%{transform:scale(.9)}80%{transform:scale(1)}}@keyframes btn-success{0%,to{transform:translateY(0)}15%{transform:translateY(-3px)}30%{transform:translateY(0)}50%{transform:translateY(-5px)}65%{transform:translateY(0)}80%{transform:translateY(-7px)}95%{transform:translateY(0)}}@keyframes btn-error{0%,to{transform:translate(0)}10%{transform:translate(-3px)}20%{transform:translate(0)}30%{transform:translate(-3px)}40%{transform:translate(0)}55%{transform:translate(-4px)}65%{transform:translate(0)}80%{transform:translate(-5px)}90%{transform:translate(0)}}@keyframes btn-toggle{0%,to{transform:scale(1)}12%{transform:scale(.95)}24%{transform:scale(1)}44%{transform:scale(.9)}56%{transform:scale(1)}76%{transform:scale(.95)}88%{transform:scale(1)}}@keyframes btn-snap{0%,to{transform:translateY(0)}8%{transform:translateY(-1px)}16%{transform:translateY(0)}26%{transform:translateY(-2px)}34%{transform:translateY(0)}44%{transform:translateY(-3px)}52%{transform:translateY(0)}64%{transform:translateY(-5px)}72%{transform:translateY(0)}84%{transform:translateY(-7px)}92%{transform:translateY(0)}}.btn-anim-selection{animation:.3s btn-selection}.btn-anim-success{animation:.45s btn-success}.btn-anim-error{animation:.5s btn-error}.btn-anim-toggle{animation:.4s btn-toggle}.btn-anim-snap{animation:.5s btn-snap}@media (max-width:768px){.docs-title{font-size:28px}.doc-demo-preview{min-height:120px;padding:20px 16px}.doc-demo-tabs{height:36px;padding:0 8px}.doc-demo-tab{padding:6px 8px;font-size:12px}.doc-demo-copy{font-size:12px}.pe-editor{padding:12px}.api-table{min-width:340px;font-size:13px}.api-table th,.api-table td{padding:6px 8px}}.api-table-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}.api-table{border-collapse:collapse;width:100%;min-width:400px;margin-top:16px;font-size:14px}.api-table th{text-align:left;color:var(--gray11);border-bottom:1px solid var(--gray3);padding:8px 12px;font-weight:500}.api-table td{border-bottom:1px solid var(--gray3);color:var(--gray12);padding:8px 12px}.footer{border-top:1px solid var(--gray3);background:var(--gray1);margin-top:164px}.footer-inner{max-width:672px;padding:20px var(--side-padding);color:var(--gray11);margin:0 auto;font-size:14px}.footer-link{color:inherit;font-weight:600;text-decoration:none}.footer-link:hover{text-decoration:underline}.not-found{text-align:center;padding-top:100px;padding-bottom:100px}.not-found h1{font-size:48px;font-weight:700}.not-found p{color:var(--gray11);margin-top:8px;margin-bottom:24px}.not-found-links{justify-content:center;gap:8px;display:flex}@media (max-width:600px){.footer{padding:16px var(--side-padding);margin-top:80px}.not-found{padding-top:64px}}.playground{max-width:480px;padding:0 var(--side-padding);flex-direction:column;gap:24px;min-height:80vh;margin:0 auto;padding-top:20px;display:flex}.playground-header{text-align:center}.playground-header h1{letter-spacing:-.02em;font-size:28px;font-weight:700}.playground-desc{color:var(--gray11);margin-top:6px;font-size:15px}.playground-tabs{background:var(--gray2);border:1px solid var(--gray3);border-radius:6px;gap:4px;padding:4px;display:flex}.playground-tab{color:var(--gray10);cursor:pointer;background:0 0;border:none;border-radius:4px;flex:1;padding:8px 0;font-family:inherit;font-size:13px;font-weight:500;transition:background .15s,color .15s}.playground-tab:hover{color:var(--gray12)}.playground-tab-active{background:var(--gray0);color:var(--gray12);box-shadow:0 1px 2px #0000000f}.playground-panel{flex-direction:column;gap:16px;display:flex}.playground-big-btn{border:2px solid var(--gray4);background:var(--gray1);height:56px;color:var(--gray12);cursor:pointer;border-radius:8px;font-family:inherit;font-size:15px;font-weight:600;transition:background .15s,border-color .15s,box-shadow .15s}.playground-big-btn:hover{background:var(--gray2)}.playground-big-btn:disabled{opacity:.5;cursor:default}.playground-big-btn-active{color:#16a34a;background:#22c55e0f;border-color:#22c55e;box-shadow:0 0 16px #22c55e26}.playground-slider{color:var(--gray11);flex-direction:column;gap:6px;font-size:13px;display:flex}.playground-slider input[type=range]{width:100%;accent-color:var(--gray12)}.playground-warning{color:#b45309;text-align:center;background:#fef3c7;border-radius:6px;padding:8px 12px;font-size:13px}.playground-info{border-top:1px solid var(--gray3);padding-top:16px}.playground-info h3{margin-bottom:6px;font-size:13px;font-weight:600}.playground-info p{color:var(--gray11);font-size:14px;line-height:22px}.playground-info code{font-size:12px}.theremin-pad{border:2px solid var(--gray4);background:var(--gray2);cursor:crosshair;touch-action:none;-webkit-user-select:none;user-select:none;border-radius:8px;width:100%;height:240px;transition:border-color .15s,background .15s;position:relative;overflow:hidden}.theremin-pad-active{background:#22c55e08;border-color:#22c55e}.theremin-labels{pointer-events:none;position:absolute;inset:0}.theremin-label-y{transform-origin:0;color:var(--gray7);text-transform:uppercase;letter-spacing:.05em;font-size:11px;position:absolute;top:50%;left:8px;transform:rotate(-90deg)translate(-50%)}.theremin-label-x{color:var(--gray7);text-transform:uppercase;letter-spacing:.05em;font-size:11px;position:absolute;bottom:8px;left:50%;transform:translate(-50%)}.theremin-dot{pointer-events:none;background:#22c55e;border-radius:50%;width:20px;height:20px;transition:box-shadow .1s;position:absolute;transform:translate(-50%,50%);box-shadow:0 0 16px #22c55e80}.playground-speed-presets{flex-wrap:wrap;gap:6px;display:flex}.playground-speed-presets .btn{padding:6px 10px;font-size:12px}.theremin-readout{font-family:var(--font-mono);color:var(--gray10);justify-content:space-between;font-size:13px;display:flex}.pe-editor{padding:20px}.pe-presets{flex-wrap:wrap;gap:6px;margin-bottom:16px;display:flex}.pe-timeline{cursor:pointer;-webkit-user-select:none;user-select:none;height:80px;padding:0 8px;position:relative}.pe-timeline:before{content:"";background:var(--gray7);pointer-events:none;border-radius:1px;height:2px;position:absolute;bottom:18px;left:0;right:0}.pe-time-marker{color:var(--gray6);pointer-events:none;font-variant-numeric:tabular-nums;font-size:10px;position:absolute;bottom:0;transform:translate(-50%)}.pe-block{background:var(--gray8);cursor:move;border-radius:2px;width:14px;transition:background 80ms ease-out,box-shadow 80ms ease-out,transform 80ms,width 80ms;position:absolute;bottom:20px;transform:translate(-50%)}.pe-block:hover{background:var(--gray10);box-shadow:0 0 0 4px #0000000f}.pe-block:active{cursor:grabbing;background:var(--gray12)}.pe-block-lit{background:#22c55e!important;width:18px!important;transition:background 20ms,box-shadow 20ms,transform 20ms,width 20ms!important;transform:translate(-50%)scaleY(1.2)!important;box-shadow:0 0 10px #22c55e80,0 0 20px #22c55e33!important}.pe-block-lit .pe-block-label{color:#16a34a;transition:color 20ms}.pe-handle-top{cursor:ns-resize;z-index:2;height:10px;position:absolute;top:-4px;left:-8px;right:-8px}.pe-block-label{color:var(--gray9);white-space:nowrap;pointer-events:none;font-variant-numeric:tabular-nums;margin-top:4px;font-size:10px;position:absolute;top:100%;left:50%;transform:translate(-50%)}.pe-hint{color:var(--gray7);pointer-events:none;font-size:13px;position:absolute;top:45%;left:50%;transform:translate(-50%,-50%)}.pe-footer{align-items:center;gap:8px;margin-top:12px;display:flex}.pe-total{color:var(--gray8);font-variant-numeric:tabular-nums;margin-left:auto;font-size:13px}.v1-hero{max-width:672px;padding:0 var(--side-padding);flex-direction:column;align-items:center;gap:24px;margin:0 auto;display:flex}.v1-title{letter-spacing:-.03em;font-size:48px;font-weight:700}.v1-subtitle{color:var(--gray11);margin-top:-16px;font-size:16px}.v1-scope{border:1px solid #ffffff0f;border-radius:12px;width:100%;overflow:hidden;box-shadow:0 0 0 1px #0000004d,0 8px 40px #0003,0 2px 8px #00000026}.v1-scope-header{background:#141414;border-bottom:1px solid #ffffff0f;align-items:center;gap:8px;padding:10px 14px;display:flex}.v1-scope-dots{gap:6px;display:flex}.v1-scope-dots span{background:#ffffff1a;border-radius:50%;width:10px;height:10px}.v1-scope-dots span:first-child{background:#ff5f57}.v1-scope-dots span:nth-child(2){background:#febc2e}.v1-scope-dots span:nth-child(3){background:#28c840}.v1-scope-label{color:#ffffff59;font-size:12px;font-weight:500;font-family:var(--font-mono);margin-left:auto}.v1-waveform-wrap{background:#0a0a0a;justify-content:center;width:100%;display:flex}.waveform-canvas{max-width:100%;height:auto;display:block}.v1-buttons{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.v1-code-line{align-items:center;gap:12px;min-height:28px;display:flex}.v1-code-line code{font-family:var(--font-mono);font-size:13px}.v1-divider{background:var(--gray3);max-width:672px;height:1px;margin:48px auto}.v1-footer-links{justify-content:center;gap:8px;display:flex}.v3-hero{max-width:672px;padding:0 var(--side-padding);flex-direction:column;align-items:center;gap:16px;margin:0 auto;display:flex}.v3-title{letter-spacing:-.02em;font-size:36px;font-weight:700}.v3-subtitle{color:var(--gray11);margin-top:-8px;font-size:16px}.v3-buttons{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.v3-desc{color:var(--gray11);text-align:center;min-height:21px;font-size:14px}.v3-demo-panel{border:1px solid var(--gray3);background:linear-gradient(180deg,var(--gray1)0%,var(--gray2)100%);border-radius:10px;width:100%;overflow:hidden;box-shadow:0 4px 24px #0000000f}.v3-demo-label{color:var(--gray9);text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid var(--gray3);padding:10px 16px;font-size:12px;font-weight:600}.v3-bar-wrap{width:100%;padding:24px 16px}.v3-code-line{align-items:center;gap:12px;min-height:28px;display:flex}.v3-code-line code{font-family:var(--font-mono);font-size:13px}.v3-divider{background:var(--gray3);max-width:672px;height:1px;margin:48px auto}.v3-footer-links{justify-content:center;gap:8px;display:flex}@media (prefers-reduced-motion:reduce){.btn-anim-selection,.btn-anim-success,.btn-anim-error,.btn-anim-toggle,.btn-anim-snap{animation:none!important}.seq-tick-pulse .seq-tick-bar,.seq-tick-active .seq-tick-bar{transition:none!important}.demo-toast{animation:none!important}.trigger-btn,.pe-block,.pe-block-lit{transition:none!important}}
