:root{color-scheme:light;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;color:#1d1d1f;background:#fff;font-synthesis:none;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{margin:0;background:#fff;overscroll-behavior:none;min-height:100svh;overflow:hidden}button,a{touch-action:manipulation}button{font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent}button:disabled{cursor:default;opacity:.35}button:focus-visible,a:focus-visible,canvas:focus-visible{outline:2px solid #0071e3;outline-offset:4px}svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.symbols{position:absolute;width:0;height:0;overflow:hidden}.header{position:fixed;z-index:5;top:0;left:0;right:0;display:flex;justify-content:space-between;align-items:center;padding:22px 40px;padding-top:calc(22px + env(safe-area-inset-top));pointer-events:none}.header h1{font-size:25px;font-weight:650;letter-spacing:-1.2px;margin:0;pointer-events:auto}.header h1 span{color:#a5a5aa}.header-actions{display:flex;gap:6px;pointer-events:auto}.quiet-button{width:42px;height:42px;padding:0;display:grid;place-items:center;border:0;background:transparent;color:#8b8b90;border-radius:50%;transition:color .2s,background .2s}.quiet-button:hover{color:#1d1d1f;background:#f5f5f7}.quiet-button svg{width:19px;height:19px}.stage{position:fixed;top:74px;bottom:170px;left:0;right:0;max-width:1500px;margin:auto;isolation:isolate;overflow:hidden}.ground-shadow{position:absolute;top:84%;left:50%;width:clamp(90px,15vw,180px);height:16px;background:#000;border-radius:50%;filter:blur(15px);opacity:0;transform:translateX(-50%);pointer-events:none;transition:opacity .3s;z-index:-1}.poster{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(70vw,480px);height:auto;max-height:90%;object-fit:contain;mix-blend-mode:multiply;pointer-events:none}.poster[hidden],.stage.ready .poster{display:none}.stage canvas{display:block;width:100%;height:100%;position:absolute;inset:0;touch-action:none;cursor:grab;outline-offset:-4px!important;opacity:0;visibility:hidden;transition:opacity .35s ease-out}.stage.ready canvas{opacity:1;visibility:visible}.stage canvas:active{cursor:grabbing}.bottom-ui{position:fixed;bottom:calc(24px + env(safe-area-inset-bottom));left:0;right:0;display:flex;align-items:center;flex-direction:column;z-index:6;pointer-events:none}.bottom-ui>*{pointer-events:auto}.gesture-hint{font-size:11px;letter-spacing:.1px;color:#a1a1a6;margin:0 0 22px;transition:opacity .6s;user-select:none}.gesture-hint span{margin:0 7px;color:#c6c6ca}.control-bar{display:flex;align-items:center;gap:7px;padding:7px;background:#f5f5f7d9;border:1px solid #ececee;border-radius:32px;box-shadow:0 4px 20px #00000004,inset 0 1px 0 #ffffffb3;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px)}.play-button{border:0;border-radius:50%;width:48px;height:48px;display:grid;place-items:center;background:#1d1d1f;color:#fff;transition:background .18s,transform .18s;flex-shrink:0}.play-button:hover{background:#3b3b3e}.play-button:active{transform:scale(.94)}.play-button svg{width:19px;height:19px;stroke-width:2.8}.play-button.paused svg{fill:currentColor;stroke-width:.5;margin-left:1px}.divider{width:1px;height:22px;background:#dedee2;margin:0 2px}.download-button{display:flex;gap:8px;align-items:center;justify-content:center;min-height:48px;padding:0 19px;border:0;background:#fff;color:#303034;border-radius:26px;font-size:12px;font-weight:500;letter-spacing:-.15px;white-space:nowrap;box-shadow:0 1px 3px #00000004;transition:background .18s,transform .18s,box-shadow .18s}.download-button svg{width:16px;height:16px;stroke-width:1.5}.download-button:hover{background:#fbfbfd;box-shadow:0 2px 8px #00000009}.download-button:active{transform:scale(.97)}.download-button.exporting{color:#86868b}.export-note{font-size:10px;color:#c0c0c4;letter-spacing:.1px;margin:14px 0 0}.status-line{height:22px;font-size:11px;color:#86868b;display:flex;align-items:center;gap:7px;margin-bottom:6px;transition:opacity .3s;text-align:center}.status-line.hidden{opacity:0;pointer-events:none}.status-line.error{color:#77777e;max-width:310px;line-height:1.5;height:auto;margin-bottom:15px}.status-line.error .loading-dot{display:none}#load-percent{font-variant-numeric:tabular-nums;margin-left:3px;color:#aaaab0}.loading-dot{width:4px;height:4px;border-radius:50%;background:#a0a0a6;animation:pulse 1.2s ease-in-out infinite}.status-line.error .retry{border:0;background:none;color:#0071e3;padding:8px;font-size:11px}.toast{position:fixed;z-index:30;bottom:calc(166px + env(safe-area-inset-bottom));left:50%;transform:translate(-50%,8px);background:#1d1d1fe8;color:white;padding:12px 19px;max-width:calc(100vw - 36px);text-align:center;border-radius:22px;font-size:11px;line-height:1.5;opacity:0;pointer-events:none;transition:opacity .25s,transform .25s}.toast.show{opacity:1;transform:translate(-50%,0)}dialog{border:1px solid #ebebed;padding:27px 30px 24px;border-radius:25px;width:min(90vw,430px);max-height:85dvh;overflow:auto;box-shadow:0 24px 100px #0000000e;color:#1d1d1f;background:#fffffffa}dialog::backdrop{background:#f5f5f7b0;backdrop-filter:blur(9px);-webkit-backdrop-filter:blur(9px)}.dialog-head{display:flex;align-items:center;justify-content:space-between;font-size:12px;font-weight:600;color:#86868b}.dialog-head .quiet-button{margin-right:-9px}dialog h2{font-size:39px;font-weight:600;letter-spacing:-1.6px;line-height:1.06;margin:21px 0}dialog p{font-size:13px;line-height:1.65;color:#86868b}dl{margin:25px 0}dl>div{display:grid;grid-template-columns:115px 1fr;padding:9px 0;border-bottom:1px solid #f2f2f4;font-size:11px;line-height:1.5}dt{font-weight:550}dd{margin:0;color:#86868b}.desktop-help{font-size:10px!important}.credits{margin-top:25px;border-top:1px solid #ededf0;padding-top:13px}.credits p{font-size:9px;line-height:1.7}.credits a{color:inherit;text-decoration-color:#c4c4c9;text-underline-offset:2px}@keyframes pulse{50%{opacity:.25}}
@media(max-width:600px){.header{padding:15px 23px;padding-top:calc(15px + env(safe-area-inset-top))}.header h1{font-size:23px}.header-actions{gap:0}.quiet-button{width:39px;height:42px}.quiet-button svg{width:18px;height:18px}.stage{top:calc(69px + env(safe-area-inset-top));bottom:calc(173px + env(safe-area-inset-bottom))}.ground-shadow{top:81%;width:110px;height:12px;filter:blur(13px)}.poster{width:89vw;max-width:420px}.bottom-ui{bottom:calc(23px + env(safe-area-inset-bottom))}.gesture-hint{font-size:10px;margin-bottom:19px}.control-bar{padding:6px;gap:5px}.play-button{width:44px;height:44px}.download-button{min-height:44px;padding:0 12px;gap:6px;font-size:11px}.download-button svg{width:15px;height:15px}.divider{margin:0 1px;height:20px}.export-note{font-size:9px;margin-top:13px}.status-line{font-size:10px;height:19px}.toast{bottom:calc(160px + env(safe-area-inset-bottom))}}
@media(max-width:350px){.header{padding-left:18px;padding-right:13px}.download-button{padding:0 9px;font-size:10px;gap:4px}.download-button svg{width:13px;height:13px}.control-bar{gap:4px}.gesture-hint{font-size:9px}}
@media(max-height:520px) and (orientation:landscape){.header{padding:8px 23px}.stage{top:40px;bottom:92px}.bottom-ui{bottom:12px}.gesture-hint,.export-note{display:none}.status-line{position:absolute;bottom:60px}.control-bar{padding:4px}.play-button{width:40px;height:40px}.download-button{min-height:40px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

.save-ready{border:0;background:none;color:#0071e3;font:inherit;padding:8px;cursor:pointer;font-weight:500}

.stage.ready .ground-shadow{opacity:.075}

/* Keep the full contract address readable and within thumb reach. */
.contract-button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;min-height:48px;max-width:calc(100vw - 36px);margin-top:9px;padding:6px 12px;border:1px solid transparent;border-radius:13px;background:transparent;color:#68686e;transition:background .2s,border-color .2s}
.contract-button:hover{background:#f5f5f7;border-color:#ececee}.contract-button:active{background:#eeeeF0}.contract-label{font-size:9px;line-height:1.2;letter-spacing:.3px;color:#86868b}.contract-row{display:flex;align-items:center;gap:8px;max-width:100%}.contract-row code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;line-height:1.4;white-space:nowrap;user-select:text;-webkit-user-select:text}.contract-row svg{width:13px;height:13px;flex-shrink:0;color:#86868b}.contract-button.copied .contract-label{color:#1d1d1f}
.stage{bottom:230px}.toast{bottom:calc(226px + env(safe-area-inset-bottom))}
@media(max-width:600px){.contract-row code{font-size:clamp(8px,2.6vw,10px)}.stage{bottom:calc(233px + env(safe-area-inset-bottom))}.toast{bottom:calc(220px + env(safe-area-inset-bottom))}}
@media(max-height:520px) and (orientation:landscape){.stage{bottom:148px}.status-line{bottom:116px}.contract-button{margin-top:5px;min-height:44px}.toast{bottom:142px}}
