:root{--ink:#f7edef;--muted:#f7edef70;--rose:#ef8797;--background:#080708}*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0;overflow:hidden}body{color:var(--ink);background:var(--background);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button{font:inherit}.rose-shell{--charge:0;--transition:0;isolation:isolate;background:radial-gradient(circle at 50% 43%,#5e1a2b30,#0000 44%),#080708;width:100vw;height:100dvh;position:relative;overflow:hidden}.rose-shell:after{z-index:1;pointer-events:none;content:"";background:radial-gradient(circle,#0000 46%,#00000061 100%);position:absolute;inset:0}.rose-canvas{z-index:0;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;width:100%;height:100%;display:block;position:absolute;inset:0}.rose-canvas:active{cursor:grabbing}.brand,.telemetry,.part-readout,.toolbar,.color-panel,.interaction-hint{z-index:2;position:absolute}.brand{pointer-events:none;grid-template-columns:22px auto;align-items:start;column-gap:12px;display:grid;top:clamp(24px,3.6vw,50px);left:clamp(22px,3.7vw,54px)}.brand-index{color:var(--rose);grid-row:1/3;font:10px/18px ui-monospace,SFMono-Regular,Consolas,monospace}.brand h1{letter-spacing:-.035em;margin:0;font-size:clamp(25px,2.3vw,36px);font-weight:520;line-height:.88}.brand p{color:var(--muted);letter-spacing:.14em;margin:9px 0 0;font:9px/1 ui-monospace,SFMono-Regular,Consolas,monospace}.telemetry{color:var(--muted);pointer-events:none;gap:20px;font:9px/1 ui-monospace,SFMono-Regular,Consolas,monospace;display:flex;top:clamp(27px,3.7vw,51px);right:clamp(22px,3.7vw,54px)}.part-readout{pointer-events:none;gap:6px;display:grid;bottom:clamp(28px,4vw,54px);left:clamp(22px,3.7vw,54px)}.part-readout span{color:#f7edef4d;letter-spacing:.08em;font:8px/1 ui-monospace,SFMono-Regular,Consolas,monospace}.part-readout strong{color:#fff0f2e0;letter-spacing:.05em;font:520 11px/1 ui-sans-serif,system-ui,sans-serif}.interaction-hint{color:#ffeef28f;letter-spacing:.18em;pointer-events:none;margin:0;font:9px/1 ui-monospace,SFMono-Regular,Consolas,monospace;transition:opacity .7s;bottom:clamp(28px,4vw,54px);left:50%;transform:translate(-50%)}.interaction-hint.is-subtle{opacity:.24}.interaction-hint.is-charging,.interaction-hint.is-blooming,.interaction-hint.is-transitioning{color:#ffb0bee6;text-shadow:0 0 18px #ff62808c}.charge-meter{background:#ffffff21;width:92px;height:1px;position:absolute;top:17px;left:50%;overflow:hidden;transform:translate(-50%)}.charge-meter:after{content:"";width:100%;height:100%;transform:scaleX(var(--charge));transform-origin:0;background:linear-gradient(90deg,#b92e50,#ffd0d6);display:block;box-shadow:0 0 12px #ff5d7ccc}.interaction-hint.is-blooming .charge-meter:after{animation:.72s ease-out bloom-flash}.interaction-hint.is-transitioning .charge-meter:after{transform:scaleX(var(--transition))}.toolbar{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#0c0a0ca6;border:1px solid #ffffff1c;border-radius:5px;gap:6px;padding:5px;display:flex;bottom:clamp(22px,3.6vw,50px);right:clamp(20px,3.6vw,52px);box-shadow:0 16px 50px #00000047}.color-panel{opacity:0;visibility:hidden;pointer-events:none;transform-origin:100% 100%;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#0c0a0cc7;border:1px solid #ffffff1c;border-radius:5px;width:218px;padding:14px;transition:opacity .2s,visibility .2s,transform .2s;bottom:calc(clamp(22px,3.6vw,50px) + 58px);right:clamp(20px,3.6vw,52px);transform:translateY(8px)scale(.98);box-shadow:0 20px 54px #00000057}.color-panel.is-open{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0)scale(1)}.color-panel header{border-bottom:1px solid #ffffff14;justify-content:space-between;align-items:center;padding:1px 1px 11px;display:flex}.color-panel header strong{color:#fff4f6d1;letter-spacing:.08em;font:520 11px/1 ui-sans-serif,system-ui,sans-serif}.color-panel header button{color:#ffffff5c;cursor:pointer;background:0 0;border:0;padding:3px 0;font:9px/1 ui-sans-serif,system-ui,sans-serif;transition:color .16s}.color-panel header button:hover,.color-panel header button:focus-visible{color:#ffacb9;outline:none}.color-panel.is-locked .color-controls{opacity:.42}.color-panel button:disabled,.color-panel input:disabled{cursor:not-allowed}.color-controls{gap:2px;padding-top:8px;display:grid}.color-control{color:#f7edef8a;letter-spacing:.06em;cursor:pointer;justify-content:space-between;align-items:center;min-height:38px;padding:0 1px;font:10px/1 ui-sans-serif,system-ui,sans-serif;display:flex}.color-control input{cursor:pointer;background:#ffffff0a;border:1px solid #ffffff29;border-radius:50%;width:29px;height:29px;padding:2px}.color-control input::-webkit-color-swatch-wrapper{padding:0}.color-control input::-webkit-color-swatch{border:0;border-radius:50%}.color-control input::-moz-color-swatch{border:0;border-radius:50%}.tool-button{color:#ffffff80;cursor:pointer;background:0 0;border:0;border-radius:3px;place-items:center;width:39px;height:39px;padding:0;transition:color .16s,background .16s,transform .16s;display:grid}.tool-button:hover,.tool-button:focus-visible{color:#fff;background:#ffffff14;outline:none}.tool-button:active{transform:scale(.94)}.tool-button.is-active{color:#ffacb9;background:#cf465e24}.tool-button:disabled{opacity:.28;cursor:not-allowed}.tool-button span{font:15px/1 ui-monospace,monospace}.palette-icon{width:17px;height:17px;display:block;position:relative}.palette-icon i{border-radius:50%;width:7px;height:7px;position:absolute;box-shadow:0 0 7px}.palette-icon i:first-child{background:#ef8797;top:0;left:0}.palette-icon i:nth-child(2){background:#829885;top:0;right:0}.palette-icon i:nth-child(3){background:#f0d4d4;bottom:0;left:0}.palette-icon i:nth-child(4){background:#b97c91;bottom:0;right:0}.loading{z-index:4;background:#080708;place-content:center;justify-items:center;gap:18px;transition:opacity .55s,visibility .55s;display:grid;position:absolute;inset:0}.loading.is-hidden{opacity:0;visibility:hidden}.loading span{border:1px solid #ffffff1a;border-top-color:#ed8495;border-radius:50%;width:34px;height:34px;animation:.8s linear infinite spin}.loading p{color:#ffffff61;letter-spacing:.08em;margin:0;font:9px/1 ui-monospace,SFMono-Regular,Consolas,monospace}@keyframes spin{to{transform:rotate(360deg)}}@keyframes bloom-flash{0%{opacity:1;transform:scaleX(1)}to{opacity:0;transform:scaleX(1)}}@media (width<=680px){.brand{top:22px;left:20px}.telemetry{top:25px;right:20px}.telemetry span:first-child,.telemetry span:last-child{display:none}.part-readout{left:20px;bottom:max(25px, calc(env(safe-area-inset-bottom) + 5px))}.interaction-hint{bottom:max(82px, calc(env(safe-area-inset-bottom) + 62px))}.interaction-hint.is-panel-open{opacity:0}.toolbar{right:18px;bottom:max(18px, env(safe-area-inset-bottom))}.color-panel{right:18px;bottom:max(76px, calc(env(safe-area-inset-bottom) + 58px))}}@media (prefers-reduced-motion:reduce){.tool-button,.loading,.interaction-hint,.color-panel{transition:none}}
