:root{--ink: #4a3a2a;--ink-soft: rgba(74, 58, 42, .56);--glass: rgba(255, 248, 236, .72);--glass-strong: rgba(255, 250, 242, .9);--line: rgba(255, 255, 255, .62);--shadow: 0 18px 48px rgba(74, 46, 18, .18), 0 2px 8px rgba(74, 46, 18, .1);--radius-panel: 26px;--radius-item: 11px;--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-top: env(safe-area-inset-top, 0px);--safe-left: env(safe-area-inset-left, 0px);--safe-right: env(safe-area-inset-right, 0px);color-scheme:light}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;padding:0;height:100%;width:100%;overflow:hidden;overscroll-behavior:none;background:#f2d9ae;font-family:ui-sans-serif,system-ui,-apple-system,SF Pro Text,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;color:var(--ink);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}body{position:fixed;inset:0;touch-action:manipulation;user-select:none;-webkit-user-select:none}#app{position:absolute;inset:0;overflow:hidden}.stage{position:absolute;inset:0;touch-action:none}.stage canvas{display:block;width:100%;height:100%;image-rendering:pixelated;image-rendering:crisp-edges;cursor:grab;touch-action:none}.stage canvas:active{cursor:grabbing}.brand{position:absolute;top:calc(18px + var(--safe-top));left:calc(22px + var(--safe-left));pointer-events:none;opacity:0;transform:translateY(-6px);transition:opacity 1.2s ease .35s,transform 1.2s ease .35s;text-shadow:0 1px 0 rgba(255,248,232,.55)}body.is-ready .brand{opacity:1;transform:none}.brand__title{margin:0;font-size:clamp(14px,1.4vw,18px);font-weight:640;letter-spacing:.2em;text-transform:uppercase;color:#4a3018d1;text-shadow:0 1px 0 rgba(255,248,232,.68)}.brand__sub{margin:3px 0 0;font-size:10.5px;letter-spacing:.16em;color:#5e3e209e;text-shadow:0 1px 0 rgba(255,248,232,.6)}.hint{position:absolute;left:50%;bottom:calc(168px + var(--safe-bottom));transform:translate(-50%);display:flex;align-items:center;gap:9px;padding:8px 16px;border-radius:999px;background:#34241652;backdrop-filter:blur(8px) saturate(120%);-webkit-backdrop-filter:blur(8px) saturate(120%);color:#fff9eef0;font-size:11.5px;letter-spacing:.04em;pointer-events:none;opacity:0;transition:opacity 1s ease 1.6s;white-space:nowrap}.hint i{width:3px;height:3px;border-radius:50%;background:#fff9ee8c}body.is-ready .hint{opacity:1}body.is-ready .hint.is-hidden{opacity:0;transition:opacity 1.4s ease}.rotate-hint{position:absolute;top:calc(58px + var(--safe-top));left:50%;transform:translate(-50%);padding:7px 15px;border-radius:999px;background:#fff8ecd1;border:1px solid var(--line);box-shadow:0 6px 18px #4a2e1224;font-size:11px;letter-spacing:.06em;color:var(--ink-soft);opacity:0;pointer-events:none;transition:opacity .8s ease;white-space:nowrap}@media(orientation:portrait){.rotate-hint.is-shown{opacity:1}}.ui{position:absolute;left:0;right:0;bottom:0;display:flex;justify-content:center;padding:0 calc(14px + var(--safe-left)) calc(12px + var(--safe-bottom)) calc(14px + var(--safe-right));pointer-events:none;z-index:20}.panel{position:relative;pointer-events:auto;max-width:min(1010px,100%);width:100%;background:var(--glass);border:1px solid var(--line);border-radius:var(--radius-panel);box-shadow:var(--shadow);backdrop-filter:blur(22px) saturate(150%);-webkit-backdrop-filter:blur(22px) saturate(150%);padding:10px 16px 12px;transition:transform .42s cubic-bezier(.22,.61,.36,1),padding .32s ease,max-width .4s ease,opacity .3s ease;opacity:0;transform:translateY(18px)}body.is-ready .panel{opacity:1;transform:none}.panel__handle{position:absolute;top:-13px;left:50%;transform:translate(-50%);width:54px;height:22px;border:1px solid var(--line);border-radius:999px;background:#fffaf2eb;box-shadow:0 4px 12px #4a2e1229;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;transition:width .25s ease,background .2s ease}.panel__handle:hover{width:62px}.panel__grip{width:18px;height:2px;border-radius:2px;background:#4a3a2a6b;position:relative;transition:transform .3s ease}.panel__grip:after{content:"";position:absolute;left:7px;top:-3px;width:5px;height:5px;border-right:2px solid rgba(74,58,42,.42);border-bottom:2px solid rgba(74,58,42,.42);transform:rotate(45deg);border-radius:1px;transition:transform .3s ease,top .3s ease}.panel.is-collapsed .panel__grip{transform:translateY(-2px)}.panel.is-collapsed .panel__grip:after{top:1px;transform:rotate(225deg)}.panel__body{display:flex;align-items:flex-start;justify-content:center;gap:20px;overflow:hidden;max-height:190px;padding-top:8px;transition:max-height .42s cubic-bezier(.22,.61,.36,1),opacity .3s ease,padding .3s ease}.panel.is-collapsed{padding:0;border-color:transparent;background:transparent;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;width:auto;max-width:none;margin-bottom:6px}.panel.is-collapsed .panel__body{max-height:0;opacity:0;padding-top:0}.panel.is-collapsed .panel__handle{position:relative;top:0;left:0;transform:none;width:92px;height:34px;background:var(--glass);backdrop-filter:blur(18px) saturate(150%);-webkit-backdrop-filter:blur(18px) saturate(150%);box-shadow:var(--shadow)}.group{display:flex;flex-direction:column;gap:7px;min-width:0}.group__label{font-size:9.5px;font-weight:640;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft);padding-left:3px;white-space:nowrap}.segmented{display:flex;gap:2px;padding:3px;background:#ffffff70;border:1px solid rgba(255,255,255,.5);border-radius:13px;box-shadow:inset 0 1px 2px #785a320f}.segmented--tight{padding:2px}.segmented__item{appearance:none;border:0;background:transparent;color:var(--ink-soft);font:inherit;font-size:12px;font-weight:560;letter-spacing:.01em;padding:6px 12px;border-radius:10px;cursor:pointer;transition:background .18s ease,color .18s ease,box-shadow .18s ease,transform .12s ease;white-space:nowrap}.segmented__item--icon{font-size:13px;padding:5px 10px;min-width:34px}.segmented__item:hover{color:var(--ink);background:#fff6}.segmented__item:active{transform:scale(.96)}.segmented__item.is-on{background:var(--glass-strong);color:#34281b;font-weight:640;box-shadow:0 1px 3px #5a3c1929,0 0 0 .5px #fffc inset}.segmented__item:focus-visible,.chip:focus-visible,.panel__handle:focus-visible,.slider__input:focus-visible{outline:2px solid rgba(184,122,44,.75);outline-offset:2px}.sliders{display:flex;flex-direction:row;gap:12px}.slider{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--ink-soft)}.slider__name{width:40px;letter-spacing:.02em}.slider__value{width:22px;text-align:right;font-variant-numeric:tabular-nums;color:var(--ink);font-weight:600}.slider__input{-webkit-appearance:none;appearance:none;width:74px;height:4px;border-radius:999px;background:linear-gradient(90deg,#c75a328c,#e3a648bf);outline:none;cursor:pointer}.slider__input::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:15px;height:15px;border-radius:50%;background:#fffaf0;border:1px solid rgba(120,90,50,.25);box-shadow:0 1px 4px #5a3c194d;transition:transform .15s ease}.slider__input::-webkit-slider-thumb:active{transform:scale(1.16)}.slider__input::-moz-range-thumb{width:15px;height:15px;border-radius:50%;background:#fffaf0;border:1px solid rgba(120,90,50,.25);box-shadow:0 1px 4px #5a3c194d}.chip{appearance:none;border:1px solid rgba(255,255,255,.55);background:#ffffff6b;color:var(--ink);font:inherit;font-size:12px;font-weight:560;padding:7px 15px;border-radius:11px;cursor:pointer;transition:background .18s ease,transform .12s ease,box-shadow .18s ease;white-space:nowrap}.chip:hover{background:#ffffff9e}.chip:active{transform:scale(.97)}.chip.is-on{background:#c75a32e6;border-color:#fff9;color:#fff6ec;box-shadow:0 2px 10px #c75a3257}.chip.is-error{background:#c75a322e;color:#a4401f}.chip--action{background:#e3a64847;border-color:#fff9}.chip--action.is-active{background:#e3a648d9;color:#3b2a12}.panel__fps{font-size:9px;letter-spacing:.1em;color:var(--ink-soft);align-self:flex-end;padding-bottom:4px}.loader{position:absolute;inset:0;display:grid;place-items:center;background:radial-gradient(circle at 50% 38%,#f9e7c6,#f0cfa0 46%,#e0b382);z-index:40;transition:opacity .8s ease,visibility .8s ease}.loader.is-done{opacity:0;visibility:hidden}.loader__inner{display:flex;flex-direction:column;align-items:center;gap:16px}.loader__title{font-size:13px;letter-spacing:.32em;text-transform:uppercase;color:#664422e6;font-weight:600}.loader__bar{width:168px;height:3px;border-radius:999px;background:#ffffff6b;overflow:hidden}.loader__bar i{display:block;height:100%;width:40%;border-radius:999px;background:linear-gradient(90deg,#c75a32e6,#e3a648e6);animation:loader-slide 1.5s ease-in-out infinite}@keyframes loader-slide{0%{transform:translate(-110%)}50%{transform:translate(120%)}to{transform:translate(320%)}}.loader__sub{font-size:11px;letter-spacing:.08em;color:#6644229e}.error{position:absolute;inset:0;display:grid;place-items:center;background:#f0d6b0f0;z-index:60;padding:24px}.error[hidden]{display:none}.error__card{max-width:420px;background:#fffaf1;border:1px solid rgba(255,255,255,.8);border-radius:22px;padding:26px 26px 22px;box-shadow:0 24px 60px #5a3c1938}.error__title{font-size:15px;font-weight:650;margin-bottom:10px}.error__text{font-size:12.5px;line-height:1.6;color:#4a3a2ac7;margin:0 0 8px}.error__detail{display:block;font-size:11px;background:#785a3214;border-radius:8px;padding:8px 10px;margin:12px 0 14px;color:#4a3a2ab3;word-break:break-word}.error__retry{appearance:none;border:0;border-radius:11px;padding:9px 18px;font:inherit;font-size:12.5px;font-weight:600;background:#c75a32;color:#fff6ec;cursor:pointer}@media(max-width:900px){.panel__body{flex-wrap:wrap;gap:12px 16px;max-height:260px;justify-content:center}.panel{padding:8px 12px 10px}.slider__input{width:66px}}@media(max-width:620px){.brand__sub{display:none}.hint{bottom:calc(96px + var(--safe-bottom));font-size:10.5px;gap:7px;padding:7px 13px}.segmented__item{font-size:11.5px;padding:5px 9px}.chip{font-size:11.5px;padding:6px 12px}.panel__body{max-height:300px}}@media(max-height:460px){.panel__body{max-height:150px;gap:8px 12px}.group{gap:4px}.hint{display:none}}@media(prefers-reduced-motion:reduce){.loader__bar i{animation-duration:3s}.panel,.brand,.hint{transition-duration:.01ms}}
