:root{--ground:#000;--ground-lift:#000;--bone:#ece6db;box-sizing:border-box;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--ground:#000;--ground-lift:#000;--bone:#ece6db}}:root[data-theme=dark]{--ground:#000;--ground-lift:#000;--bone:#ece6db}*,:before,:after{box-sizing:inherit}html{height:100%;scroll-padding-top:env(safe-area-inset-top,0px)}body{background:var(--ground);min-height:100%;margin:0}.stage{isolation:isolate;touch-action:none;background:radial-gradient(ellipse 60% 65% at 50% 48%, var(--ground-lift), var(--ground) 72%);height:100svh;position:relative;overflow:hidden}.stage canvas{z-index:0;width:100%;height:100%;display:block;position:absolute;inset:0}.stage canvas.is-framed{border-radius:14px;outline:1px solid #ece6db73}.stage.is-grab canvas{cursor:grab}.stage.is-grabbing canvas{cursor:grabbing}.stage:before{content:"";z-index:1;pointer-events:none;opacity:.07;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");display:none;position:absolute;inset:0}.stage:after{content:"";z-index:1;pointer-events:none;background:radial-gradient(65% 75% at 50% 48%,#0000 45%,#00000073 100%);display:none;position:absolute;inset:0}.ui{color:var(--bone);font:400 .8rem/1.45 Helvetica Neue,Arial,sans-serif}.hint{left:50%;top:calc(clamp(1.25rem, 4vw, 2.25rem) + env(safe-area-inset-top,0px));z-index:2;text-align:center;color:#ece6db8c;letter-spacing:.02em;pointer-events:none;width:max-content;max-width:calc(100% - 2rem);margin:0;transition:opacity 1.2s;position:absolute;transform:translate(-50%)}.hint.is-gone{opacity:0}.sound{left:50%;bottom:calc(clamp(1.25rem, 4vw, 2.5rem) + env(safe-area-inset-bottom,0px));z-index:2;min-height:44px;color:var(--bone);letter-spacing:.04em;cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#000000b8;border:1px solid #ece6db73;border-radius:999px;align-items:center;gap:.55rem;padding:0 1.1rem 0 .95rem;font-size:.85rem;font-weight:500;transition:border-color .2s,background .2s;display:inline-flex;position:absolute;transform:translate(-50%)}.sound:hover{border-color:var(--bone);background:#000000e6}.sound:focus-visible{outline:2px solid var(--bone);outline-offset:3px}.sound svg{flex:none;width:18px;height:18px}.sound .waves{opacity:0;transition:opacity .2s}.sound[aria-pressed=true] .waves{opacity:1}.sound[aria-pressed=true] .mute{opacity:0}.sound .label-on{display:none}.sound[aria-pressed=true] .label-on{display:inline}.sound[aria-pressed=true] .label-off{display:none}#record[aria-pressed=true]{border-color:#ff6b6b}#record[aria-pressed=true] .rec-dot{color:#ff6b6b;animation:1.2s ease-in-out infinite rec-blink}@keyframes rec-blink{50%{opacity:.25}}@media (prefers-reduced-motion:reduce){#record[aria-pressed=true] .rec-dot{animation:none}}.toolbar{left:50%;bottom:calc(clamp(1.25rem, 4vw, 2.5rem) + env(safe-area-inset-bottom,0px));z-index:2;flex-wrap:wrap;justify-content:center;align-items:center;gap:.6rem;width:max-content;max-width:calc(100% - 1.5rem);display:flex;position:absolute;transform:translate(-50%)}.toolbar .sound{position:relative;bottom:auto;left:auto;transform:none}.palette{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#000000b8;border:1px solid #ece6db4d;border-radius:999px;align-items:center;gap:2px;padding:3px;display:flex}.palette button{color:#ece6db8c;cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;width:38px;height:38px;transition:background .2s,color .2s;display:grid}.palette button:hover{color:var(--bone)}.palette button[aria-pressed=true]{color:var(--bone);background:#ece6db24}.palette button:focus-visible{outline:2px solid var(--bone);outline-offset:1px}.palette svg{width:18px;height:18px}.palette .divider{background:#ece6db33;width:1px;height:20px;margin:0 4px}.stage.is-add canvas{cursor:copy}.panel{z-index:3;width:min(340px,100% - 1rem);padding:calc(1rem + env(safe-area-inset-top,0px)) 1.1rem calc(1rem + env(safe-area-inset-bottom,0px));-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);visibility:hidden;background:#080808eb;border-left:1px solid #ece6db24;transition:transform .38s cubic-bezier(.2,.7,.2,1),visibility 0s linear .38s;position:absolute;top:0;bottom:0;right:0;overflow-y:auto;transform:translate(100%);box-shadow:-20px 0 60px #00000073}.panel.is-open{visibility:visible;transition:transform .38s cubic-bezier(.2,.7,.2,1);transform:none}@media (prefers-reduced-motion:reduce){.panel,.panel.is-open{transition:none}}.nudge{left:50%;bottom:calc(clamp(1.25rem, 4vw, 2.5rem) + 66px + env(safe-area-inset-bottom,0px));z-index:2;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:var(--bone);letter-spacing:.03em;opacity:0;pointer-events:none;background:#000000b8;border:1px solid #ece6db4d;border-radius:999px;margin:0;padding:.45rem .95rem;transition:opacity .3s,left .38s cubic-bezier(.2,.7,.2,1);position:absolute;transform:translate(-50%)}.nudge.is-on{opacity:1}@media (width>=760px){.stage.has-panel .nudge{left:calc(50% - 170px)}}.toolbar,.hint{transition:left .38s cubic-bezier(.2,.7,.2,1)}@media (width>=760px){.stage.has-panel .toolbar,.stage.has-panel .hint{left:calc(50% - 170px)}}@media (prefers-reduced-motion:reduce){.toolbar,.hint{transition:none}}@media (width<=759px){.toolbar{z-index:4}.panel{padding-bottom:9rem}}.panel__actions{gap:.9rem;display:inline-flex}.panel__head{letter-spacing:.04em;justify-content:space-between;align-items:center;margin-bottom:.4rem;font-weight:500;display:flex}.panel fieldset{border:0;border-top:1px solid #ece6db1a;margin:0;padding:.55rem 0 .35rem}.panel legend{letter-spacing:.12em;text-transform:uppercase;color:#ece6db99;padding:0;font-size:.72rem}.panel legend+label{margin-top:.3rem}.panel .val{color:#ece6db8c;font-variant-numeric:tabular-nums;margin-left:.2rem}.panel label{color:#ece6dbd9;grid-template-columns:5.5rem 1fr;align-items:center;gap:.6rem;padding:.22rem 0;display:grid}.panel input[type=range]{appearance:none;cursor:pointer;background:0 0;width:100%;height:22px}.panel input[type=range]::-webkit-slider-runnable-track{background:#ece6db38;border-radius:2px;height:2px}.panel input[type=range]::-moz-range-track{background:#ece6db38;border-radius:2px;height:2px}.panel input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;background:var(--bone);border:0;border-radius:50%;width:12px;height:12px;margin-top:-5px}.panel input[type=range]::-moz-range-thumb{background:var(--bone);border:0;border-radius:50%;width:12px;height:12px}.panel input[type=range]:focus-visible{outline:2px solid var(--bone);outline-offset:2px;border-radius:4px}.text-btn{font:inherit;letter-spacing:.08em;text-transform:uppercase;color:#ece6dbb3;cursor:pointer;background:0 0;border:0;padding:.2rem .1rem;font-size:.72rem}.text-btn:hover{color:var(--bone)}.text-btn:focus-visible{outline:2px solid var(--bone);outline-offset:2px;border-radius:4px}#settings-btn[aria-expanded=true]{color:var(--bone);background:#ece6db24}.stage canvas,.stage.is-grab canvas,.stage.is-grabbing canvas,.stage.is-add canvas{cursor:none}.cursor-dot{z-index:4;pointer-events:none;opacity:0;width:10px;height:10px;transform:translate3d(var(--x,-100px), var(--y,-100px), 0) scale(var(--s,1));will-change:transform;background:#fff;border-radius:50%;margin:-5px 0 0 -5px;transition:opacity .2s,--s .25s;position:absolute;top:0;left:0}.cursor-dot.is-on{opacity:1}@property --s{syntax:"<number>";inherits:false;initial-value:1}.cursor-dot.is-hover{--s:1.8}.cursor-dot.is-press{--s:2.6;box-shadow:0 0 18px #ffffff59}@media (pointer:coarse){.cursor-dot{display:none}}@media (prefers-reduced-motion:reduce){.cursor-dot{transition:opacity .2s}}.seg{background:#ece6db0f;border-radius:8px;grid-template-columns:repeat(4,1fr);gap:2px;margin:.4rem 0 .3rem;padding:2px;display:grid}.seg button{color:#ece6dba6;font:inherit;letter-spacing:.02em;cursor:pointer;background:0 0;border:0;border-radius:6px;padding:.45rem .2rem;font-size:.72rem}.seg button:hover{color:var(--bone)}.seg button[aria-pressed=true]{color:var(--bone);background:#ece6db29}.seg button:focus-visible{outline:2px solid var(--bone);outline-offset:1px}
