:root{--paper:#f6ecd9;--ink:#3b2a1e;--muted:#8b7458;--wood:#8a5a3a;--brass:#c9a24a;--warn:#a8321f;--ok:#2f6f4f;--line:#e2d2b4}*{box-sizing:border-box}html,body{margin:0;height:100%;background:var(--paper);color:var(--ink);font:15px/1.45 Iowan Old Style,Palatino Linotype,Georgia,serif}button{font:inherit;color:inherit;background:#fffaf0;border:1px solid var(--line);border-radius:8px;padding:.35em .8em;cursor:pointer}button:hover{border-color:var(--wood)}header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.6rem 1rem;border-bottom:1px solid var(--line);flex-wrap:wrap}h1{margin:0;font-size:1.5rem;letter-spacing:.02em}h1 small{font-size:.8rem;color:var(--muted);font-style:italic;margin-left:.6em}nav{display:flex;gap:.4rem;flex-wrap:wrap}main{display:grid;grid-template-columns:minmax(320px,600px) 1fr;height:calc(100% - 58px);min-height:0}aside{overflow:auto;padding:.6rem 1rem 2rem;border-right:1px solid var(--line)}h2{font-size:.8rem;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);margin:.8rem 0 .4rem}h3{margin:.6rem 0 .2rem}#scenes,#modules{display:flex;flex-direction:column;gap:.4rem}.scene,.mod{text-align:left;display:flex;flex-direction:column;gap:.1rem}.scene span,.mod small{color:var(--muted);font-size:.85rem}.scene.on,.mod.on{border-color:var(--brass);background:#fff3d6;box-shadow:inset 3px 0 0 var(--brass)}#sketchpad{padding:10px 12px;margin:0 -12px;touch-action:none;cursor:crosshair}#sketch{width:100%;height:auto;border:1px solid var(--line);border-radius:8px;touch-action:none;cursor:crosshair;background:#fbf4e6;display:block}.row{display:grid;grid-template-columns:7em 1fr 4.5em;align-items:center;gap:.5rem;margin:.35rem 0}.row output{text-align:right;font-variant-numeric:tabular-nums}.hint,.muted{color:var(--muted);font-size:.88rem;margin:.2rem 0}.warn{color:var(--warn);background:#fbe7e0;border-radius:8px;padding:.5rem .7rem;margin:.5rem 0}.ok{color:var(--ok);background:#e5f1ea;border-radius:8px;padding:.5rem .7rem;margin:.5rem 0}.note{color:#6b5a3a;font-size:.9rem}.fixes{display:flex;gap:.4rem;align-items:center;flex-wrap:wrap;margin-top:.4rem}.fixes span{color:var(--muted);font-size:.85rem}.honest{color:var(--muted);font-size:.8rem;border-top:1px dashed var(--line);padding-top:.6rem;margin-top:1rem}#workshop{display:grid;grid-template-rows:minmax(0,1fr) auto auto;min-width:0;min-height:0}#stage{min-height:0;position:relative;overflow:hidden}#stage canvas{display:block;width:100%;height:100%}#controls{display:flex;align-items:center;gap:1rem;padding:.4rem 1rem;border-top:1px solid var(--line);flex-wrap:wrap}#crank{width:72px;height:72px;cursor:grab;touch-action:none}#timeline{position:relative;padding:.3rem 1rem .6rem;border-top:1px solid var(--line);max-height:32vh;overflow:auto}.lane{display:grid;grid-template-columns:64px 1fr;align-items:center;height:30px}.lane span{font-size:.8rem;color:var(--muted)}.lane svg{width:100%;height:28px}.lane polyline{fill:none;stroke:var(--wood);stroke-width:1.6;vector-effect:non-scaling-stroke}#head{position:absolute;top:.3rem;bottom:.6rem;width:2px;background:var(--ok);pointer-events:none}@media(max-width:900px){main{grid-template-columns:1fr;grid-template-rows:auto 60vh;height:auto}aside{border-right:0}}.fixnote{margin:.5rem 0 0;color:var(--ink);font-style:italic}#goal p{margin:.3rem 0}#goal{background:#fff7e3;border:1px solid var(--line);border-radius:10px;padding:.2rem .7rem;margin-top:.6rem}#moment{position:absolute;left:50%;top:14%;transform:translate(-50%,-6px);background:#fff7e3;color:var(--ink);border:2px solid var(--brass);border-radius:999px;padding:.5rem 1.1rem;font-size:1.1rem;opacity:0;transition:opacity .3s,transform .3s;pointer-events:none;z-index:2;box-shadow:0 6px 24px #00000059}#moment.show{opacity:1;transform:translate(-50%)}#moment{transition:opacity .18s,transform .18s;max-width:min(24rem,80%);text-align:center}#moment:after{content:"";position:absolute;left:var(--tx,50%);top:100%;width:0;height:0;margin-left:-8px;border:8px solid transparent;border-top:12px solid var(--brass)}#moment:before{content:"";position:absolute;left:var(--tx,50%);top:calc(100% + 18px);width:6px;height:6px;margin-left:-3px;border-radius:50%;background:var(--brass);box-shadow:0 0 0 2px #fff7e3cc}#moment.below:after{top:auto;bottom:100%;border-top:8px solid transparent;border-bottom:12px solid var(--brass)}#moment.below:before{top:auto;bottom:calc(100% + 18px)}#stale{position:absolute;left:1rem;top:1rem;background:#fbe7e0;color:var(--warn);border-radius:8px;padding:.4rem .7rem;font-size:.9rem;z-index:2}#toast{position:absolute;left:50%;bottom:1rem;transform:translate(-50%);background:#fff7e3;border:1px solid var(--line);border-radius:10px;padding:.5rem .9rem;opacity:0;transition:opacity .3s;pointer-events:none;z-index:2;max-width:80%}#toast.show{opacity:1}.lane rect.win{fill:#2f6f4f24}.lane rect.hit{fill:#c9a24a8c}.lanekey{margin:.2rem 0 0 64px;font-size:.8rem;color:var(--muted)}.lanekey i{display:inline-block;width:.9em;height:.7em;vertical-align:middle}.lanekey i.win{background:#2f6f4f40}.lanekey i.hit{background:#c9a24ab3}nav .sep{width:1px;background:var(--line);margin:0 .2rem}label.button{font:inherit;background:#fffaf0;border:1px solid var(--line);border-radius:8px;padding:.35em .8em;cursor:pointer}label.button:hover{border-color:var(--wood)}button:disabled{opacity:.45;cursor:not-allowed}button.primary{background:var(--wood);color:#fffaf0;border-color:var(--wood)}#scenes{display:grid;grid-template-columns:1fr 1fr;gap:.35rem}#scenes .scene{padding:.3em .6em;flex-direction:row!important;align-items:baseline;gap:.45rem!important;flex-wrap:wrap}#scenes .scene b{font-size:.93rem}#scenes .scene span{font-size:.75rem}#scenes .scene.new{grid-column:1/-1;border-style:dashed}#mine h2{margin-top:.7rem}.saved{display:flex;gap:.3rem;margin:.25rem 0}.saved button:first-child{flex:1;text-align:left;display:flex;flex-direction:column}.saved span{color:var(--muted);font-size:.8rem}.saved.on button:first-child{border-color:var(--brass);background:#fff3d6}.saved .x{padding:.2em .6em;color:var(--muted)}.empty{color:var(--muted);font-style:italic;margin:.3rem 0}.icon{width:1.15em;height:1.15em;vertical-align:-.2em;fill:none;stroke:currentColor;stroke-width:1.5}.mod{flex-direction:row!important;flex-wrap:wrap;align-items:center;gap:.3rem!important}.mod small{flex-basis:100%}.palette{border:1px dashed var(--line);border-radius:10px;padding:.45rem .7rem .2rem;margin-top:.6rem;background:#fffaf3}.palette h3{font-size:.95rem;margin:.4rem 0}.palette .on{display:flex;gap:.4rem;align-items:center;font-size:.9rem}.palette select{font:inherit;max-width:100%}.families{display:grid;grid-template-columns:repeat(4,1fr);gap:.3rem;margin:.45rem 0}.families button{display:flex;gap:.3rem;align-items:center;justify-content:center;font-size:.88rem;padding:.35em .3em}#tabs{display:flex;gap:0;margin:.9rem 0 .2rem;border-bottom:1px solid var(--line)}#tabs button{border:0;border-radius:8px 8px 0 0;background:transparent;padding:.4em 1em;color:var(--muted)}#tabs button.on{background:#fff3d6;color:var(--ink);box-shadow:inset 0 -3px 0 var(--brass)}.parthead{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;justify-content:space-between;margin-top:.5rem}.parthead h3{margin:0}.stack{display:flex;gap:.3rem;align-items:center;font-size:.85rem;color:var(--muted)}.stack button{padding:.15em .5em;font-size:.85rem}button.remove{color:var(--warn);font-size:.85rem;padding:.15em .6em}.row select{font:inherit}.chips{display:flex;flex-wrap:wrap;gap:.3rem;margin:.3rem 0}.chip{display:flex;align-items:center;gap:.3rem;padding:.15em .6em .15em .2em}.chip img{width:28px;height:28px}.chip.on{border-color:var(--brass);background:#fff3d6}.kit{display:grid;grid-template-columns:repeat(auto-fill,minmax(76px,1fr));gap:.3rem;margin:.4rem 0}.kit button{display:flex;flex-direction:column;align-items:center;padding:.2rem;font-size:.75rem;line-height:1.1}.kit img{width:56px;height:56px}.figed{border:1px solid var(--line);border-radius:10px;padding:.2rem .7rem .4rem;background:#fffaf3;margin:.4rem 0}.swatches{display:flex;gap:.3rem;align-items:center}.sw{width:1.6em;height:1.6em;padding:0;border-radius:50%;border:2px solid #fff}.sw.on{outline:2px solid var(--wood)}.swatches input[type=color]{width:2em;height:1.7em;padding:0;border:0;background:none}.momented{display:flex;flex-direction:column;gap:.35rem;margin:.4rem 0}.mrow{display:flex;gap:.4rem;align-items:center;flex-wrap:wrap}.mrow>span{width:2.6em;color:var(--muted)}.mrow select,.mrow input[type=text]{font:inherit;padding:.2em .3em;border:1px solid var(--line);border-radius:6px;background:#fffaf0}.mrow input[type=text]{flex:1;min-width:12em}#goal details{margin:.2rem 0 .4rem}#goal summary{cursor:pointer;color:var(--muted);font-size:.88rem}.lane{grid-template-columns:96px 1fr!important;cursor:pointer}.lane span{display:flex;flex-direction:column;line-height:1.1}.lane span i{font-size:.7rem;color:var(--brass);font-style:normal}.lane.on span{color:var(--ink);font-weight:700}.lane path{fill:none;stroke:var(--wood);stroke-width:1.6;vector-effect:non-scaling-stroke}.lanekey{margin-left:96px!important}.ticks{position:absolute;inset:.3rem 1rem .6rem;pointer-events:none}.ticks b{position:absolute;top:0;bottom:1.2rem;width:0;border-left:1px dashed rgba(138,90,58,.35)}#scan-result{position:absolute;right:1rem;top:1rem;max-width:40%;z-index:2}#scan-result p{margin:0;box-shadow:0 4px 18px #00000040}dialog{border:1px solid var(--line);border-radius:12px;background:var(--paper);color:var(--ink);padding:1rem 1.2rem;min-width:22rem}dialog::backdrop{background:#1e140c73}dialog label{display:flex;flex-direction:column;gap:.3rem}dialog input{font:inherit;padding:.3em .4em;border:1px solid var(--line);border-radius:6px}.warnline{color:var(--warn);min-height:1em;margin:.3rem 0}#bench-hint{position:absolute;left:50%;top:18%;transform:translate(-50%);background:#fff7e3f0;border:1px dashed var(--brass);border-radius:12px;padding:.7rem 1.1rem;max-width:26rem;text-align:center;z-index:2}#toast.act{pointer-events:auto}#toast button{margin-left:.5rem;padding:.15em .7em}.broke{color:#fff;background:var(--warn);border-radius:8px;padding:.55rem .75rem;margin:.6rem 0;box-shadow:0 2px 10px #a8321f59}.broke button{margin-left:.4rem;background:#fff;color:var(--warn);border-color:#fff;padding:.15em .7em}.within{display:inline-flex;gap:.3rem;align-items:center;color:var(--muted)}.within input{width:4.2em;font:inherit;padding:.15em .3em;border:1px solid var(--line);border-radius:6px;background:#fffaf0}aside{overflow-anchor:none}aside:after{content:"";display:block;height:55vh}.palette{margin:.2rem 0 .6rem}.mod small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#goal{display:block}#goal .goaltext,#goal .own{margin:.3rem 0}#goal .own{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:2.9em}.gstatus{height:3.4em;overflow:hidden;display:flex;align-items:center}.gstatus p{margin:0;padding:.25rem .55rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;width:100%;font-size:.93rem;line-height:1.35}.gstatus p.ok,.gstatus p.warn{border-radius:6px}#goal details .answer{font-weight:700;color:var(--ink);margin:.2rem 0 .4rem}button.small{font-size:.85rem;padding:.15em .7em;margin:.1rem 0 .4rem}#controls{height:66px;flex-wrap:nowrap;overflow:hidden}#controls .hint{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;flex:1}#controls label{white-space:nowrap}#play{min-width:6.8em;text-align:center}.lanekey{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;height:1.3em}.lane span[data-mod]{cursor:pointer}.lane span[data-mod]:hover{color:var(--ink)}.lane{cursor:default!important}.lane svg[data-scrub]{cursor:col-resize}#scan-result{top:auto;right:auto;left:1rem;bottom:1rem;max-width:min(30rem,46%);opacity:0;transition:opacity .6s;pointer-events:none;display:flex;gap:.3rem;align-items:flex-start}#scan-result.show{opacity:1;pointer-events:auto}#scan-result .x{padding:.05em .5em;line-height:1.2;background:#fffaf0;box-shadow:0 4px 18px #00000040}#toast{max-width:min(40rem,60%)}.gaplabel{position:absolute;transform:translate(-50%,-140%);background:#1e1610d1;color:#fff7e3;border-radius:6px;padding:.05rem .45rem;font:600 12px system-ui,sans-serif;pointer-events:none;z-index:1;white-space:nowrap}.gaplabel.close{background:#c9a24aeb;color:#2a1c10;transform:translate(-50%,40%)}.touchinfo{border:1px solid var(--line);border-radius:10px;background:#fffaf3;padding:.3rem .7rem .45rem;margin:.2rem 0;min-height:6.2em}.touchinfo p{margin:.2rem 0;font-size:.92rem}.touchinfo .fixes{margin-top:.2rem}.dot{display:inline-block;width:.8em;height:.8em;border-radius:50%;vertical-align:-.05em;margin:0 .3em 0 .15em;box-shadow:0 0 0 2px #fff}.dot.a{background:#ff8a3d}.dot.b{background:#3cc6cf}.ok-ink{color:var(--ok)}.fixes .why{color:var(--warn);font-size:.82rem;flex-basis:100%;margin:-.15rem 0 .1rem}.fixes button small{color:inherit;opacity:.75}.ask{background:#fff3d6;border:1px solid var(--brass);border-radius:8px;padding:.5rem .7rem;margin:.4rem 0;color:var(--ink)}body{display:flex;flex-direction:column}header{flex:none}main{flex:1;height:auto!important;min-height:0;grid-template-columns:minmax(300px,min(600px,38vw)) minmax(0,1fr)}#moment{transition:opacity .15s,transform .15s}#moment.show{transition:none}#views{position:absolute;right:.6rem;top:.6rem;z-index:3;display:flex;flex-direction:column;align-items:flex-end;gap:.25rem;pointer-events:none}#views>*{pointer-events:auto}#views .vbtns{display:flex;gap:0;background:#fff7e3eb;border:1px solid var(--line);border-radius:9px;padding:2px;box-shadow:0 3px 12px #00000040}#views .vbtns button{border:0;border-radius:7px;background:transparent;padding:.2em .6em;font-size:.85rem}#views .vbtns button.on{background:var(--wood);color:#fffaf0}#views .vbtns #frame{margin-left:.25rem;border-left:1px solid var(--line);border-radius:0 7px 7px 0}#views .arrange{font-size:.78rem;color:#f6ecd9;display:flex;gap:.3rem;align-items:center;text-shadow:0 1px 2px rgba(0,0,0,.6);cursor:pointer}#view-note{font:12px system-ui,sans-serif;color:#f6ecd9bf;text-shadow:0 1px 2px rgba(0,0,0,.6)}#frame-hint{position:absolute;right:.6rem;top:5.4rem;z-index:3;background:#fff7e3;border:1px solid var(--brass);border-radius:10px;padding:.3rem .4rem .3rem .8rem;display:flex;gap:.4rem;align-items:center;font-size:.9rem;box-shadow:0 4px 16px #0000004d;white-space:nowrap}#frame-hint[hidden]{display:none}#frame-hint button{padding:.15em .6em;font-size:.85rem}#frame-hint .x{padding:.1em .5em;color:var(--muted)}.depthlabel{position:absolute;transform:translate(-50%,-50%);background:#ffd66bf2;color:#2a1c10;border-radius:6px;padding:.05rem .4rem;font:600 11px system-ui,sans-serif;pointer-events:none;z-index:1;white-space:nowrap}.depthlabel.back{background:#1e1610cc;color:#ffd66b}.row.depth{grid-template-columns:7em 1fr 6.6em}.row.depth output{font-size:.85rem}.depthrange{display:flex;flex-direction:column;min-width:0}.depthrange input{width:100%}.depthrange .ends{display:flex;justify-content:space-between;font-size:.72rem;color:var(--muted);line-height:1.1;margin-top:-.1rem}#scenes .scene{position:relative}.editedmark{display:none;position:absolute;top:-.55em;right:.5em;font:600 .62rem/1.3 system-ui,sans-serif;font-style:normal;background:var(--brass);color:#fffaf0;border-radius:999px;padding:0 .45em;letter-spacing:.03em}#scenes .scene.edited .editedmark{display:block}#reset:disabled{opacity:.5}@media(max-width:1280px){h1 small{display:none}}@media(max-width:1120px){header{padding:.4rem .7rem;gap:.5rem}h1{font-size:1.25rem}header nav{gap:.25rem}header nav button,header nav label.button{font-size:.82rem;padding:.3em .55em}aside{padding:.5rem .7rem 2rem}#controls{gap:.6rem;padding:.3rem .7rem;height:58px}#crank{width:56px;height:56px}#play{min-width:6em}#controls label input{width:90px}#timeline{padding:.2rem .7rem .4rem}.row{grid-template-columns:6em 1fr 4.2em}}@media(max-height:760px){#timeline{max-height:26vh}.lane{height:26px}.lane svg{height:24px}}#sheet-toggle{display:none}@media(max-width:760px),(max-height:500px)and (orientation:landscape){html{font-size:17.5px;touch-action:pan-x pan-y}body{font-size:16px;height:100dvh;overflow:hidden;-webkit-text-size-adjust:100%}header{flex-wrap:nowrap;gap:.4rem;padding:.25rem .5rem!important}h1{font-size:1.05rem!important;white-space:nowrap}h1 small{display:none}header nav{flex-wrap:nowrap;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none;min-width:0;flex:1;gap:.3rem!important;-webkit-mask-image:linear-gradient(90deg,#000 88%,transparent);mask-image:linear-gradient(90deg,#000 88%,transparent);padding-right:1.5rem}header nav::-webkit-scrollbar{display:none}header nav button,header nav label.button{white-space:nowrap;font-size:14px!important;padding:0 .7em!important;min-height:44px;display:inline-flex;align-items:center}header nav .sep{flex:none}main{display:flex!important;min-height:0}button,label.button,select{min-height:44px}select{font-size:16px}input[type=range]{min-height:44px}input[type=checkbox]{width:22px;height:22px}.hint,.muted,.note,.honest,.scene span,.mod small,.saved span,.fixes span,.fixes .why,.lane span,.lanekey,.stack,.stack button,button.small,button.remove,.palette .on,.families button,.kit button,#goal summary,.within,.depthrange .ends,.gstatus p,.touchinfo p,.row output,.row.depth output,#views .vbtns button,#views .arrange,#frame-hint,#frame-hint button,#scenes .scene b,#scenes .scene span{font-size:14px!important}.lane span i{font-size:14px!important}.editedmark{font-size:12px!important}.gaplabel,.depthlabel{font-size:14px!important}#view-note,#controls .hint{display:none}.sw{width:36px;height:36px;min-height:0}.swatches{gap:.5rem;flex-wrap:wrap}.stack button{min-width:44px}.row{grid-template-columns:5.5em minmax(0,1fr) 4em!important;gap:.4rem}.row.depth{grid-template-columns:5.5em minmax(0,1fr) 5.5em!important}.families{grid-template-columns:repeat(2,1fr)}.kit{grid-template-columns:repeat(auto-fill,minmax(88px,1fr))}#tabs button{flex:1;min-height:44px}summary{min-height:44px;display:flex;align-items:center}.mrow input[type=text]{min-width:0;min-height:44px}.mrow select{max-width:100%}#views{right:.4rem;top:.4rem}#views .arrange{background:#1e16108c;border-radius:999px;padding:0 .6em}#undo{order:1}#redo{order:2}#save{order:3}#savefile{order:4}header nav label.button{order:5}#scan{order:6}#export{order:7}#reset{order:8}header nav .sep{display:none}#views .vbtns button{min-height:40px;padding:0 .55em}#views .arrange{min-height:32px}#frame-hint{top:auto;bottom:.5rem;right:.5rem;white-space:normal;max-width:calc(100% - 1rem)}#scan-result{max-width:calc(100% - 2rem)}#toast{position:fixed;bottom:.8rem;max-width:calc(100% - 1.5rem);z-index:20;box-shadow:0 6px 24px #0000004d}.swatches input[type=color]{width:44px;height:36px}#moment{font-size:1rem;max-width:88%}#controls{height:60px!important;gap:.5rem!important;padding:.25rem .5rem!important}#play{min-width:0!important;padding:0 .7em}#controls label{display:flex;align-items:center;gap:.3rem;font-size:14px}#controls label input{width:80px!important}#crank{width:52px!important;height:52px!important;flex:none}#timeline{padding:.2rem .5rem .3rem!important;overscroll-behavior:contain}.lane{grid-template-columns:72px 1fr!important;height:34px!important}.lanekey{margin-left:72px!important}.lanekey{font-size:13px}dialog{min-width:0;width:min(22rem,calc(100vw - 2rem))}dialog input{font-size:16px;min-height:44px}aside{overscroll-behavior:contain;-webkit-overflow-scrolling:touch}aside:after{height:30vh}}@media(max-width:760px)and (orientation:portrait){main{flex-direction:column}#workshop{order:1;flex:none;height:54%;grid-template-rows:minmax(0,1fr) auto auto;transition:height .2s}#sheet-toggle{order:2;display:flex;align-items:center;justify-content:center;gap:.4rem;flex:none;width:100%;min-height:44px;border:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);border-radius:0;background:#efe1c6;font-size:14px;color:var(--ink)}aside{order:3;flex:1;min-height:0;border-right:0!important;padding:.3rem .8rem 1rem!important}body.sheet-up #workshop{height:32%}body.sheet-up #views .arrange{display:none}#views{bottom:.4rem;justify-content:space-between}#timeline{max-height:96px!important}h1{display:none}#controls label input{width:72px!important}}@media(max-height:500px)and (orientation:landscape),(max-width:760px)and (orientation:landscape){main{flex-direction:row}aside{flex:none;width:44%;max-width:420px;border-right:1px solid var(--line)!important;padding:.3rem .7rem 1rem!important}#workshop{flex:1;min-width:0}#timeline{max-height:68px!important}.lane{height:30px!important}h1{display:none}#views{top:.3rem;right:.3rem}#views .vbtns{flex-direction:column}#views .vbtns button{min-height:38px;padding:0 .5em}#views .vbtns #frame{margin:.2rem 0 0;border-left:0;border-top:1px solid var(--line);border-radius:0 0 7px 7px}#views .arrange{display:none}}
