@font-face{font-family:DM Sans;src:url(dm-sans-9fea608a94.woff2) format("woff2");font-weight:100 1000;font-display:swap}:root{--bg: #f2f2f7;--surface: #fff;--ink: #000;--muted: #8a8a8e;--rule: #c6c6c8;--err: #ff3b30;--on-ink: #fff;--fill: rgb(0 0 0 / .07);--fill-strong: rgb(0 0 0 / .12);--faint: rgb(0 0 0 / .3);--shade: rgb(0 0 0 / .12);--font: "DM Sans", ui-sans-serif, system-ui, sans-serif;--control: 40px;--corner: 10px;--card: 16px}:root[data-scheme=dark]{--on-ink: #000;--fill: rgb(255 255 255 / .12);--fill-strong: rgb(255 255 255 / .2);--faint: rgb(255 255 255 / .3);--shade: rgb(0 0 0 / .5)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{height:100%;margin:0;overflow:hidden;overscroll-behavior:none}body{background:var(--bg);color:var(--ink);font:400 15px/1.35 var(--font);-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;text-size-adjust:100%;user-select:none;-webkit-user-select:none;touch-action:manipulation}#app{position:fixed;inset:0;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}h1,h2,p{margin:0}h2{font-size:17px;font-weight:600}[hidden]{display:none!important}button,input,select{font:inherit;color:inherit}button{cursor:pointer}.muted{color:var(--muted)}.numbers{font-variant-numeric:tabular-nums}.grow{flex:1 1 0;min-width:0}.plain{padding:24px;max-width:480px;margin:0 auto}.icon{flex:none;display:block}.screen{position:absolute;inset:0;padding:inherit;display:flex;flex-direction:column;min-height:0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;flex:none;height:var(--control);padding:0 14px;border:0;border-radius:var(--corner);background:var(--fill);color:var(--ink);font-weight:500;white-space:nowrap;text-decoration:none;transition:opacity .12s}.btn:active{opacity:.6}.btn:disabled{color:var(--faint);cursor:default;opacity:1}.btn.primary{background:var(--ink);color:var(--on-ink)}.btn.primary:disabled{background:var(--fill);color:var(--faint)}.btn.danger{background:color-mix(in srgb,var(--err) 14%,transparent);color:var(--err)}.btn.danger:disabled{background:var(--fill);color:var(--faint)}.btn.float{background:var(--surface);box-shadow:0 0 0 1px var(--fill),0 2px 8px var(--shade)}.btn.square{width:var(--control);padding:0}.btn.large{height:48px;padding:0 22px;font-size:16px;font-weight:600}.btn .icon:first-child{margin-left:-4px}.btn.square .icon{margin:0}:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.btn.primary:focus-visible{outline-offset:3px}.text-btn{display:inline-flex;align-items:center;gap:4px;min-height:36px;padding:0 4px;border:0;background:none;font-weight:500}.text-btn:active{opacity:.6}.tag{margin-left:4px;padding:2px 6px;border-radius:6px;background:color-mix(in srgb,var(--on-ink) 22%,transparent);font-size:12px;font-weight:500}.spinner{flex:none;width:18px;height:18px;border:2px solid var(--fill-strong);border-top-color:var(--muted);border-radius:50%;animation:turn .9s linear infinite}@keyframes turn{to{transform:rotate(360deg)}}.picture{flex:1 1 0;min-width:0;min-height:0;position:relative}.picture canvas{position:absolute;inset:0;width:100%;height:100%}.card{display:flex;flex-direction:column;border:0;border-radius:var(--card);background:var(--surface);padding:12px 12px 4px 16px;text-align:left}.card:active{opacity:.6}.pair{display:flex;gap:4px}.card-foot{display:flex;align-items:center;justify-content:space-between;height:34px;color:var(--ink)}.card-foot>.icon{color:var(--faint)}.start{position:fixed;inset:0;z-index:30;display:flex;align-items:center;justify-content:center;padding:24px;background:var(--bg);overflow:auto}.start-back{position:absolute;inset:0;background:center / cover no-repeat}.start-card{position:relative;display:flex;flex-direction:column;align-items:center;width:100%;max-width:400px;padding:32px 28px 24px;border-radius:24px;background:var(--surface);box-shadow:0 8px 40px var(--shade);text-align:center}.start-icon{border-radius:16px;margin-bottom:16px}.start h1{font-size:28px;font-weight:600;letter-spacing:-.01em}.start-line{margin-top:4px;font-size:17px;font-weight:500}.start-text{margin:12px 0 24px;color:var(--muted)}.start .btn{width:100%}.start-note{margin:6px 0 16px;font-size:13px;color:var(--muted)}.start-note:last-child{margin-bottom:0}.sheet-back{position:fixed;inset:0;z-index:40;display:flex;align-items:center;justify-content:center;padding:16px;background:#00000059}.sheet{display:flex;flex-direction:column;gap:10px;width:100%;max-width:400px;padding:24px;border-radius:20px;background:var(--surface);box-shadow:0 8px 40px var(--shade)}.sheet h2{font-size:20px}.sheet-buttons{display:flex;flex-direction:column;gap:8px;margin-top:10px}.sheet-buttons .btn{height:44px}.home-top{display:flex;flex-direction:column;gap:10px;padding:10px 16px 8px}.source-row{display:flex;flex-wrap:wrap;gap:8px 10px}.notice{color:var(--err);font-size:13px}.shape-row{display:flex;gap:4px;margin:0 -16px;padding:0 16px;overflow-x:auto;scrollbar-width:none}.shape-row::-webkit-scrollbar{display:none}.shape{display:inline-flex;align-items:center;gap:8px;flex:none;height:38px;padding:0 10px;border:0;border-radius:var(--corner);background:none;color:var(--muted);white-space:nowrap}.shape span{padding-right:4px}.shape.on{background:var(--surface);color:var(--ink);font-weight:600}.dims{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;min-height:36px}.dim{display:inline-flex;align-items:baseline;gap:6px}.dim input,.choice{height:36px;border:0;border-radius:8px;background:var(--surface);font-size:17px}.dim input{width:62px;padding:0 8px;text-align:right;font-variant-numeric:tabular-nums;outline:1px solid transparent;user-select:text;-webkit-user-select:text}.dim input:focus{outline-color:var(--ink)}.dim input.invalid{color:var(--err);outline:1.5px solid var(--err)}.choice{display:inline-flex;align-items:center;position:relative;color:var(--ink)}.choice select{height:100%;padding:0 30px 0 10px;border:0;border-radius:8px;background:none;appearance:none;-webkit-appearance:none;cursor:pointer}.choice .icon{position:absolute;right:9px;color:var(--muted);pointer-events:none}.custom-summary{line-height:36px}.home-message{flex:1;display:flex;align-items:center;justify-content:center;max-width:320px;margin:0 auto;padding:16px;color:var(--muted);text-align:center}.panels{flex:1 1 0;min-height:0;display:flex;flex-direction:column;gap:12px;padding:2px 16px 12px}.panels.side-by-side{flex-direction:row}.panel{flex:1 1 0;min-width:0;min-height:0;display:flex;flex-direction:column;padding:0;border:0;border-radius:var(--card);background:var(--surface);text-align:left}.panel:active{opacity:.6}.panel:disabled{opacity:1;cursor:default}.panel-content{flex:1 1 0;min-height:0;display:flex}.panel-fill{flex:1;display:flex;align-items:center;justify-content:center;min-width:0;min-height:0}.panel-label{display:flex;align-items:center;gap:8px;padding:2px 14px 12px 16px;font-weight:600}.panel-label span{flex:1}.panel-label .icon{color:var(--faint)}.picture.pad{margin:6px}.three{flex:1 1 0;min-width:0;min-height:0;align-self:stretch;display:flex;flex-direction:column;align-items:stretch;padding:6px}.three.across{flex-direction:row}.three-more{flex:none;align-self:center;padding:6px;color:var(--faint)}.bar{display:flex;align-items:center;gap:12px;padding:6px 16px 8px}.summary{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.scroll{flex:1 1 0;min-height:0;overflow-y:auto;overscroll-behavior:contain}.suggestion-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(320px,100%),1fr));gap:12px;padding:4px 16px 0}.suggestion .pair{height:156px}.suggestion-foot{display:flex;flex-direction:column;align-items:center;gap:10px;padding:14px 16px 24px}.list-status{display:flex;align-items:center;gap:10px;text-align:center}.text-buttons{display:flex;flex-wrap:wrap;justify-content:center;gap:0 24px}.plan{flex-direction:row}.plan-main{flex:1 1 0;min-width:0;display:flex;flex-direction:column}.stage{flex:1 1 0;min-height:0;position:relative}.stage-canvas{position:absolute;inset:0;width:100%;height:100%;touch-action:none}.blocked{pointer-events:none}.top-bar{position:absolute;top:0;left:0;right:0;display:flex;align-items:flex-start;gap:10px;padding:6px 16px 0;pointer-events:none}.top-bar>*{pointer-events:auto}.top-right{display:flex;flex-direction:column;align-items:flex-end;gap:8px}.note{max-width:230px;padding:8px 12px;border:0;border-radius:12px;background:var(--surface);box-shadow:0 2px 8px var(--shade);text-align:left}.hint{position:absolute;left:0;right:0;bottom:0;padding:0 16px 6px;color:var(--muted);text-align:center;pointer-events:none}.hint.error{color:var(--err)}.dock{display:flex;flex-direction:column;gap:8px;padding:4px 16px 8px}.row{display:flex;align-items:center;gap:8px}.dock .row:first-child{gap:12px}.dock .row:last-child{gap:6px}.dock .row:last-child .btn{padding:0 clamp(6px,2.6vw,14px);font-size:clamp(13px,3.8vw,15px)}.dock .row:last-child .btn:not(.square){flex:0 1 auto;min-width:0;overflow:hidden}.width-value{min-width:58px;text-align:right;font-weight:500;white-space:nowrap}.column{flex:none;width:184px;display:flex;flex-direction:column;align-items:stretch;gap:8px;padding:8px 12px 8px 8px}.column:empty{display:none}.column>.btn.float{align-self:flex-start}.column .remove,.column .row .btn:first-child{flex:1}.column .width-value{min-width:0}input[type=range]{flex:1 1 0;min-width:0;height:28px;margin:0;background:none;appearance:none;-webkit-appearance:none;cursor:pointer;touch-action:none;--at: 0}.column input[type=range]{flex:none}input[type=range]::-webkit-slider-runnable-track{height:4px;border-radius:2px;background:linear-gradient(to right,var(--ink) calc(14px + (100% - 28px) * var(--at)),var(--fill-strong) 0)}input[type=range]::-moz-range-track{height:4px;border-radius:2px;background:var(--fill-strong)}input[type=range]::-moz-range-progress{height:4px;border-radius:2px;background:var(--ink)}input[type=range]::-webkit-slider-thumb{width:28px;height:28px;margin-top:-12px;border:0;border-radius:50%;background:#fff;box-shadow:0 0 0 .5px #00000014,0 1px 5px #0000004d;appearance:none;-webkit-appearance:none}input[type=range]::-moz-range-thumb{width:28px;height:28px;border:0;border-radius:50%;background:#fff;box-shadow:0 0 0 .5px #00000014,0 1px 5px #0000004d}.menu{position:fixed;z-index:20;min-width:220px;padding:6px;border-radius:14px;background:var(--surface);box-shadow:0 0 0 1px var(--fill),0 8px 32px var(--shade)}.menu-item{display:block;width:100%;height:42px;padding:0 12px;border:0;border-radius:8px;background:none;text-align:left}.menu-item:not(:disabled):hover,.menu-item:not(:disabled):active{background:var(--fill)}.menu-item:disabled{color:var(--faint);cursor:default}.menu-item.danger:not(:disabled){color:var(--err)}.browser{position:absolute;inset:0;z-index:10;display:flex;flex-direction:column;padding:inherit;background:var(--bg)}.plan[data-layout=wide] .browser{position:static;flex:none;width:384px;padding:0;border-left:1px solid var(--rule)}.list{flex:1 1 0;min-height:0;position:relative;overflow-y:auto;overscroll-behavior:contain}.list-space{position:relative}.list-row{position:absolute;left:0;right:0;height:204px;padding:6px 16px}.loop{height:100%;cursor:pointer}.loop .pair{flex:1 1 0;min-height:0}.list-foot{position:absolute;left:0;right:0;height:76px;display:flex;align-items:center;justify-content:center;gap:10px}.tutorial-top{display:flex;flex-direction:column;gap:8px;padding:6px 16px 0}.tutorial-float{position:absolute;top:8px;left:8px;width:min(380px,calc(100% - 16px))}.tutorial-exits{display:flex;align-items:center;gap:8px}.tutorial-card{display:flex;flex-direction:column;gap:10px;padding:14px;border-radius:18px;background:var(--surface)}.tutorial-head{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.tutorial-row,.tutorial-wait{display:flex;align-items:center;gap:8px}.tutorial-wait{gap:10px}.tutorial-overlay{position:fixed;inset:0;z-index:25;pointer-events:none}.tutorial-ring{position:absolute;border:2.5px solid var(--ink);border-radius:15px;transition:opacity .2s}.tutorial-finger{position:absolute;left:-22px;top:-22px;width:44px;height:44px;border:2px solid var(--surface);border-radius:50%;background:color-mix(in srgb,var(--ink) 25%,transparent);opacity:0;transform:translate(var(--x, 0),var(--y, 0))}:root[data-scheme=light] .tutorial-finger{border-color:#fff;background:#1a1a1a40}:root[data-scheme=dark] .tutorial-finger{border-color:#1a1a1a;background:#ffffff40}.tutorial-finger.shown{opacity:1}.tutorial-finger.pressed{transform:translate(var(--x, 0),var(--y, 0)) scale(.8)}:root[data-scheme=light] .tutorial-finger.pressed{background:#1a1a1a73}:root[data-scheme=dark] .tutorial-finger.pressed{background:#ffffff73}.wrap-canvases{flex:1 1 0;min-width:0;min-height:0;position:relative;display:flex;flex-direction:column}.wrap.wide,.wrap.wide .wrap-canvases{flex-direction:row}.wrap-canvases .stage-canvas{position:static;flex:1 1 0;min-width:0;min-height:0;width:auto;height:auto}.wrap.wide .wrap-canvases .stage-canvas{height:100%}.wrap:not(.wide) .wrap-canvases .stage-canvas{width:100%}.wrap-side{flex:none;display:flex;flex-direction:column}.wrap.wide .wrap-side{width:266px}.wrap.wide .top-bar{position:static}.wrap-controls{display:flex;flex-direction:column;gap:4px;padding:10px 16px}.wrap-controls.laying-on{gap:10px;padding-top:6px}.pro-link{display:inline;min-height:32px;padding:4px 0;border:0;background:none;text-align:left}.pro-link:active{opacity:.6}.pro-link strong{font-weight:600}.pro-link .icon{display:inline;vertical-align:-2px;margin-left:2px}.laying{display:flex;align-items:center;gap:8px}.laying-text{flex:1;display:flex;flex-direction:column;gap:2px;align-items:flex-start}.met{font-size:17px;font-weight:600;color:var(--met)}.ends{display:flex;gap:14px}.end{flex:1 1 0;display:flex;gap:6px}.step{flex:1 1 0;display:flex;align-items:center;justify-content:center;min-height:96px;padding:0;border:0;border-radius:20px;color:#fff}.step:active{opacity:.7}.step:disabled{opacity:.3;cursor:default}@media (prefers-reduced-motion: reduce){.spinner{animation-duration:2.4s}}
