:root{--bg:#e4e8ec;--panel:#f4f6f8;--line:#c9d0d8;--fg:#171b22;--muted:#566070;--accent:#0f6e78;--on-accent:#fff;--lift:#fff;--rest:#d5dbe1;--pop:#e2e5e9;--shadow:0 1px 2px #1018241a, 0 10px 28px #1018241a;--font-display:"Bricolage Grotesque", "Helvetica Neue", Arial, sans-serif;--font-body:"Instrument Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#12151a;--panel:#1b1f26;--line:#2d333d;--fg:#e7eaee;--muted:#98a1af;--accent:#58c4c0;--on-accent:#0b1718;--lift:#272d36;--rest:#15191e;--pop:#262b33;--shadow:0 1px 2px #00000080, 0 10px 28px #00000073;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#12151a;--panel:#1b1f26;--line:#2d333d;--fg:#e7eaee;--muted:#98a1af;--accent:#58c4c0;--on-accent:#0b1718;--lift:#272d36;--rest:#15191e;--pop:#262b33;--shadow:0 1px 2px #00000080, 0 10px 28px #00000073;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}body{background:var(--bg);min-height:100vh;color:var(--fg);font:14px/1.45 var(--font-body);padding-block:16px;padding-left:max(16px, env(safe-area-inset-left,0px));padding-right:max(16px, env(safe-area-inset-right,0px));margin:0}[hidden]{display:none!important}button,input,select{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.app>.top{grid-area:top}.app{grid-template-columns:minmax(0,1fr) 300px;grid-template-areas:"top name""stage panel";align-items:start;gap:16px 20px;max-width:1240px;margin:0 auto;display:grid}.top{flex-wrap:wrap;align-items:baseline;gap:4px 16px;display:flex}.top h1{font:600 28px/1.1 var(--font-display);letter-spacing:-.01em;text-wrap:balance;margin:0}.top p{color:var(--muted);margin:0}.stage{min-width:0;width:min(100%, calc((100vh - 170px) * var(--sheet-wide,.8333)));width:min(100%, calc((100dvh - 170px) * var(--sheet-wide,.8333)));grid-area:stage;gap:12px;margin-inline:auto;display:grid}.sheet{box-shadow:var(--shadow);position:relative}.sheet:after{content:"";pointer-events:none;background-image:var(--texture);background-size:var(--texture-size) auto;opacity:var(--texture-strength,.22);position:absolute;inset:0}#paper{width:100%;height:auto;aspect-ratio:var(--sheet-ratio,5 / 6);touch-action:none;cursor:none;display:block}.ring{z-index:2;pointer-events:none;will-change:transform;border-radius:50%;position:absolute;top:0;left:0;transform:translate(-50%,-50%);box-shadow:0 0 0 1px #0000008c,inset 0 0 0 1px #ffffffe6}.ring.box{border-radius:2px}.ring.blade{border-radius:1px}.ring.blade:before{content:"";border-top:1px solid #fff;width:7px;height:0;position:absolute;top:50%;left:100%;box-shadow:0 0 0 1px #00000073}.ring:after{content:"";background:#fff;border-radius:50%;width:3px;height:3px;margin:-1.5px 0 0 -1.5px;position:absolute;top:50%;left:50%;box-shadow:0 0 0 1px #0009}.bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 12px;display:flex}.readout{font:400 13px/1.3 var(--font-mono);color:var(--muted);font-variant-numeric:tabular-nums;margin:0}.actions{flex-wrap:wrap;gap:8px;display:flex}.btn{border:1px solid var(--line);background:var(--panel);border-radius:4px;min-height:36px;padding:0 14px}.btn:hover:not(:disabled){border-color:var(--muted)}.btn:disabled{opacity:.45;cursor:default}.panel{border:1px solid var(--line);background:var(--panel);border-radius:6px;grid-area:panel;gap:22px;padding:16px;display:grid}.panel h2{font:500 11px/1 var(--font-mono);letter-spacing:.09em;text-transform:uppercase;color:var(--muted);margin:0 0 10px}.hint{min-height:4.4em;color:var(--muted);margin:10px 0 0;font-size:13px;line-height:1.45}.brushes{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;display:grid}.brushes button{border:1px solid var(--line);background:0 0;border-radius:4px;justify-content:space-between;align-items:center;gap:8px;min-height:40px;padding:0 12px;font-weight:600;display:flex}.brushes button:hover{border-color:var(--muted)}.brushes button[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.brushes kbd{font:400 11px var(--font-mono);opacity:.65}.swatches{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;display:grid}.swatch{aspect-ratio:1;background:var(--c);border:0;border-radius:3px;min-width:0;box-shadow:inset 0 0 0 1px #0003}.swatch[aria-pressed=true]{outline:2px solid var(--fg);outline-offset:2px}.custom{color:var(--muted);justify-content:space-between;align-items:center;gap:12px;margin-top:12px;display:flex}.custom-chip{border:1px solid var(--line);background:var(--c,transparent);cursor:pointer;border-radius:3px;width:44px;height:30px;padding:0;box-shadow:inset 0 0 0 1px #00000026}.slider{grid-template-columns:1fr auto;gap:2px 8px;margin-bottom:10px;display:grid}.slider label{font-weight:500}.slider output{font:400 13px var(--font-mono);color:var(--muted);font-variant-numeric:tabular-nums}.slider input{width:100%;accent-color:var(--accent);grid-column:1/-1;margin:0}@media (width<=860px){.app{grid-template-columns:minmax(0,1fr);grid-template-areas:"top""name""stage""panel"}.stage{width:100%}.brushes{grid-template-columns:repeat(3,minmax(0,1fr))}.hint{min-height:0}}.welcome{place-items:center;min-height:calc(100dvh - 32px);display:grid}.signup{border:1px solid var(--line);background:var(--panel);width:min(100%,380px);box-shadow:var(--shadow);border-radius:6px;gap:16px;padding:24px;display:grid}.signup h1{font:600 32px/1.1 var(--font-display);margin:0}.signup p{color:var(--muted);margin:0}.field{gap:6px;font-weight:500;display:grid}.field input,.teacher label{align-items:center;gap:8px;display:flex}.turn-back{place-items:center;width:34px;min-height:34px;padding:0;display:grid}.turn-back svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:18px;height:18px}.signup fieldset{border:0;gap:8px;margin:0;padding:0;display:grid}.signup legend{margin-bottom:8px;font-weight:500}.levels{gap:6px;display:grid}.level{align-items:center;gap:8px;min-height:32px;display:flex}.level input{accent-color:var(--accent)}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent);font-weight:600}.app .top{align-items:center}.app .top h1{font-size:24px}:root{--wood:#d6ae74;--wood-deep:#b98d52;--room-wall:#e9e8e3;--room-wall-shade:#d8d7d1;--room-floor:#c4c3be;--room-floor-line:#b3b2ac;--room-plank:236px;--room-ink:#1d1f22;--floor-ink:#1d1f22;--baseboard:#fafaf8;--stand:#2a2c30;--stand-deep:#141517;--stand-text:#f5f5f2;--sun:#fffae6bf;--spot:transparent;--frame:#2f261e;--mat:#f7f4ee}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--frame:#120e0b;--mat:#d9d4ca}}:root[data-theme=dark]{--frame:#120e0b;--mat:#d9d4ca}.studio{max-width:1240px;margin:0 auto}.note{color:var(--muted);margin:0}.btn.small{min-height:30px;padding:0 10px;font-size:13px}.overhead,.tabled{--shade:radial-gradient(ellipse at 50% 50%, transparent 55%, #00000029 100%);background:var(--shade), repeating-linear-gradient(90deg, var(--room-floor) 0 calc(var(--room-plank) / 2 - 2px), var(--room-floor-line) calc(var(--room-plank) / 2 - 2px) calc(var(--room-plank) / 2))}.scene{--table-w:min(560px, 50vw);--rack-w:min(170px, 15vw);--laid-w:calc(var(--table-w) * .5);--easel-w:min(260px, 34vw);--slot-w:min(130px, 14vw);gap:14px;display:grid}@media (width<=760px){.scene{--table-w:calc(100vw - 80px);--rack-w:24vw}}.canvas{width:100%;box-shadow:0 4px 10px #0000004d, 0 0 0 1px #00000014, 0 0 44px 6px var(--spot);background:0 0;border:0;padding:0;animation:.4s ease-out backwards settle;display:block}@keyframes settle{0%{opacity:0}}.rack>:nth-child(2) .canvas,.slots>:nth-child(2){animation-delay:60ms}.rack>:nth-child(3) .canvas,.slots>:nth-child(3){animation-delay:.12s}@media (prefers-reduced-motion:reduce){.overhead:before,.backwall:before,.sign-board,.canvas{animation:none}}.canvas img{width:100%;display:block}.canvas:hover img{filter:brightness(1.04)}.brand-logo{background:#fbfaf7;width:300px;max-width:30%;height:auto;margin-top:6px;padding:8px 12px;display:block;box-shadow:0 3px 8px #0003}@media (width<=700px){.brand-logo{display:none}}.sign-board{background:var(--stand);color:var(--stand-text);font:600 18px/1.2 var(--font-display);border:0;border-radius:3px;padding:8px 18px;position:relative}.overhead{--shade:radial-gradient(ellipse 50% 62% at 37% 56%, transparent 35%, #0000004d 100%);isolation:isolate;min-height:560px;color:var(--floor-ink);border-radius:6px;grid-template-rows:auto 1fr;gap:10px;padding:22px 24px 110px;display:grid;position:relative;overflow:hidden}.overhead:before{content:"";z-index:-1;background:linear-gradient(90deg, var(--sun) 0 47%, transparent 47% 53%, var(--sun) 53%);opacity:.7;filter:blur(2px);width:min(320px,30%);height:70%;animation:40s ease-in-out infinite alternate sun;position:absolute;top:-4%;left:4%;transform:skew(-24deg);-webkit-mask-image:repeating-linear-gradient(#000 0 30%,#0000 30% 35%);mask-image:repeating-linear-gradient(#000 0 30%,#0000 30% 35%)}@keyframes sun{to{opacity:.5;translate:70px}}.floor-top{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.floor-top h1{font:600 28px/1.1 var(--font-display);color:var(--floor-ink);margin:0}.floor-top .brand-logo{rotate:1deg;box-shadow:0 2px 5px #00000038}.overhead .sign-board{transition:translate .15s;rotate:-2deg;box-shadow:0 2px 5px #0000004d}.overhead .sign-board:hover{translate:0 -2px}.work{flex-wrap:wrap;justify-content:center;align-items:center;gap:36px min(64px,5vw);padding-top:12px;display:flex}.table{width:var(--table-w);aspect-ratio:7/5;flex:none;position:relative}.table:before{content:"";z-index:-2;pointer-events:none;background:radial-gradient(closest-side,#fffae84d,#fffae81f 55%,#0000);position:absolute;inset:-70% -55%}.table>.floor-paint{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.table>.floor-paint.round{z-index:-3;width:200%;height:220%;top:-60%;left:-50%;overflow:visible}.table-wood{filter:drop-shadow(0 0 3px #00000059)drop-shadow(0 0 16px #0000004d);width:100%;height:100%;position:absolute;inset:0}.table-wood .top{fill:var(--wood);stroke:var(--wood-deep);stroke-width:12px}.table-wood .seam{fill:var(--wood-deep);opacity:.6}.on-table{place-items:center;display:grid;position:absolute;inset:0}.canvas.laid{width:var(--laid-w);transition:rotate .45s ease-in-out;position:relative;box-shadow:0 0 4px #0000004d,0 0 0 1px #00000014}.canvas.laid.wide{width:calc(var(--laid-w) * 6 / 5)}.canvas.laid.pulled{animation:.35s ease-out backwards pull}.canvas.laid.ccw{rotate:-90deg}@keyframes pull{0%{opacity:0;translate:80px}}.rack-box{--rim:8px;--face:18px;filter:drop-shadow(12px 5px 8px #00000059);flex:none;display:grid;position:relative}.rack-box:before{content:"";width:var(--face);clip-path:polygon(0 var(--face), 100% 0, 100% 100%, 0 calc(100% - var(--face)));background:linear-gradient(90deg, color-mix(in srgb, var(--stand) 70%, #000), color-mix(in srgb, var(--stand) 88%, #fff));position:absolute;top:0;bottom:0;right:100%}.rack-lid{color:var(--stand-text);background:linear-gradient(170deg, color-mix(in srgb, var(--stand) 88%, #fff), var(--stand) 60%);border-radius:4px 4px 0 0;justify-items:start;gap:6px;padding:12px 14px 10px;display:grid}.table-name{width:100%;font:600 17px/1.2 var(--font-display);gap:0;display:grid}.table-title{width:100%;color:var(--stand-text);background:0 0;border:0;border-bottom:1px dashed #0000;padding:0 4px;font:500 32px/1.15 Caveat,cursive}.table-title:hover{border-bottom-color:currentColor}.table-title:focus{background:#ffffff1f;border-bottom-color:currentColor;outline:none}.table-row{flex-wrap:wrap;gap:8px;display:flex}.rack-lid .btn:not(.primary){color:var(--fg)}.turn-back[data-act=turn] svg{stroke-width:1.6px;width:24px;height:24px}.overhead .rack{gap:var(--rim);padding:0 var(--rim) var(--rim);background:var(--stand);border-radius:0 0 4px 4px;display:flex}.slot{width:calc(var(--rack-w) * .58);height:calc(var(--rack-w) + 24px);perspective:calc(var(--rack-w) * 12);perspective-origin:0;background:linear-gradient(#0000004d, transparent 12px calc(100% - 12px), #0000002e), color-mix(in srgb, var(--stand-deep) 55%, #000);border:0;padding:0;display:block;position:relative;box-shadow:inset 0 0 10px #00000073}.slot:before{content:"";clip-path:polygon(0 12px,100% 0,100% 100%,0 calc(100% - 12px));background:linear-gradient(90deg, color-mix(in srgb, var(--stand) 55%, #000), color-mix(in srgb, var(--stand) 92%, #fff));width:24%;position:absolute;top:0;bottom:0;right:0}.slot:first-child{z-index:3}.slot:nth-child(2){z-index:2}.slot:hover{z-index:5}.canvas.lean{width:calc(var(--rack-w) * 6 / 5);height:var(--rack-w);transform-origin:0;transition:transform .22s ease-out;position:absolute;top:12px;left:1px;overflow:hidden;transform:rotateY(-70deg)}.slot:hover .lean{transform:rotateY(-52deg)}.canvas.lean img{width:var(--rack-w);max-width:none;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)rotate(90deg)}.canvas.lean.turned img{width:100%;transform:translate(-50%,-50%)}.canvas.lean:before{content:"";z-index:1;pointer-events:none;background:linear-gradient(90deg,#00000047,#0000 45%,#ffffff14);position:absolute;inset:0}.room-easel{grid-template-rows:auto auto 90px;grid-template-columns:1fr auto auto 1fr;align-items:end;column-gap:min(36px,3vw);display:grid}.backwall{background:radial-gradient(ellipse 20% 85% at 31% 28%, var(--spot), transparent 72%), radial-gradient(ellipse 30% 85% at 64% 28%, var(--spot), transparent 72%), radial-gradient(ellipse at 50% 15%, transparent 40%, var(--room-wall-shade) 100%), var(--room-wall);border-radius:6px 6px 0 0;grid-area:1/1/3/-1;align-self:stretch;position:relative;overflow:hidden}.backwall:before{content:"";background:linear-gradient(90deg, var(--sun) 0 47%, transparent 47% 53%, var(--sun) 53%);filter:blur(1.5px);width:min(280px,26%);height:68%;animation:40s ease-in-out infinite alternate sun;position:absolute;top:6%;left:5%;transform:skew(-20deg);-webkit-mask-image:repeating-linear-gradient(#000 0 30%,#0000 30% 35%);mask-image:repeating-linear-gradient(#000 0 30%,#0000 30% 35%)}.room-easel .floor{grid-area:3/1/auto/-1;align-self:stretch}.room-easel .floor-paint{width:100%;height:100%;position:absolute;inset:0}.wall-top{z-index:1;grid-area:1/1/auto/-1;justify-content:space-between;align-items:flex-start;gap:16px;padding:22px 24px 32px;display:flex}.wall-top h1{font:600 28px/1.1 var(--font-display);color:var(--room-ink);margin:0}.room-easel .sign-board{transform-origin:50% -22px;margin-top:22px;animation:7s ease-in-out infinite alternate sway;transform:rotate(-2deg);box-shadow:0 4px 10px #00000040}@keyframes sway{to{transform:rotate(1.5deg)}}.room-easel .sign-board:before{content:"";border-inline:2px solid var(--stand-deep);height:22px;position:absolute;bottom:100%;left:18%;right:18%}.room-easel .sign-board:hover{animation-play-state:paused}.easel{z-index:2;width:var(--easel-w);aspect-ratio:260/470;grid-area:2/2;margin-bottom:-50px;position:relative}.easel .easel-wood{width:100%;height:100%;position:absolute;inset:0}.easel-wood{filter:drop-shadow(10px 6px 8px #00000038)}.easel-wood path{stroke:var(--wood);stroke-width:12px;stroke-linecap:round;fill:none}.easel-wood rect{fill:var(--wood-deep)}.easel .canvas{width:84.6%;transition:translate .15s;position:absolute;bottom:37.9%;left:7.7%}.easel .canvas:hover{translate:0 -3px}.easel .canvas.wide{width:101.52%;left:-.760001%}.easel .canvas.wide:before{width:25.8333%}.easel .canvas:before{content:"";background:var(--wood-deep);border-radius:2px;width:31%;height:14px;position:absolute;bottom:calc(100% - 4px);left:50%;transform:translate(-50%)}.room-easel .rack{z-index:2;background:linear-gradient(var(--stand), var(--stand)) left top / 12px 100% no-repeat, linear-gradient(var(--stand), var(--stand)) right top / 12px 100% no-repeat, linear-gradient(var(--stand-deep), var(--stand-deep)) 0 22% / 100% 10px no-repeat, linear-gradient(var(--stand-deep), var(--stand-deep)) 0 100% / 100% 20px no-repeat;grid-area:2/3;margin-bottom:-30px;padding:0 16px 20px;position:relative}.slots{gap:10px;padding-top:18px;display:flex}.slots .canvas{width:var(--slot-w);transition:transform .15s;position:relative}.slots>:first-child{transform:rotate(-1.5deg)}.slots>:nth-child(2){transform:rotate(.8deg)}.slots>:nth-child(3){transform:rotate(-.6deg)}.slots>.canvas:hover{transform:translateY(-4px)}.slots .canvas.turned{aspect-ratio:5/6;overflow:hidden}.slots .canvas.turned img{width:calc(var(--slot-w) * 6 / 5);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)rotate(90deg)}.teacher{color:var(--muted);flex-wrap:wrap;align-items:center;gap:8px 22px;display:flex}.view-pick,.canvas-turn{align-items:center;gap:8px;display:flex}.view-pick .brushes{width:170px}.looks{align-items:center;gap:8px;display:flex}.look{border:1px solid var(--line);background:linear-gradient(var(--room-wall) 0 62%, var(--room-floor) 62%);border-radius:50%;width:34px;height:34px;padding:0}.look[aria-pressed=true]{outline:2px solid var(--fg);outline-offset:2px}.teacher select{border:1px solid var(--line);background:var(--panel);border-radius:4px;min-height:34px;padding:0 8px}.floor{border-top:8px solid var(--baseboard);background:linear-gradient(#00000024, transparent 45%), repeating-linear-gradient(90deg, var(--room-floor) 0 calc(var(--room-plank) - 2px), var(--room-floor-line) calc(var(--room-plank) - 2px) var(--room-plank));border-radius:0 0 6px 6px;position:relative;overflow:hidden}.gallery{gap:16px;max-width:1240px;margin:0 auto;display:grid}.gallery .top{align-items:center}.gallery-room .floor{height:90px}.gallery-wall{background:radial-gradient(ellipse at 50% 15%, transparent 40%, var(--room-wall-shade) 100%), var(--room-wall);border-radius:6px 6px 0 0;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:36px 28px;padding:36px 28px 48px;display:grid}.gallery-wall .note{text-align:center;grid-column:1/-1;padding:40px 0}.hung{align-content:center;justify-items:center;gap:10px;margin:0;display:grid}.hung figcaption{color:#2a2a2a;min-width:120px;max-width:220px;font:600 14px/1.25 var(--font-display);text-align:center;overflow-wrap:anywhere;background:#fbfaf7;border-radius:2px;padding:6px 14px 7px;box-shadow:0 1px 2px #00000040,0 3px 8px #0000001f}.frame-hung{width:100%;padding:var(--frame-w,4%);background:0 0;border:0;border-radius:0;transition:transform .15s;position:relative;box-shadow:0 8px 18px #00000047}.frame-hung .mat{padding:var(--mat-w,8%);display:block;position:relative}.frame-art{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.frame-hung:hover{transform:translateY(-3px)}.frame-hung img{width:100%;display:block}.frame-hung.bare,.viewer.framed-view .framed.bare{box-shadow:2px 3px 1px #0000004d,0 10px 22px #00000042}.frame-hung.bare .mat,.framed.bare .mat{overflow:hidden}.frame-hung.bare img,.framed.bare .frame{width:var(--crop-w,100%);max-width:none;margin:var(--crop-m,0)}.frame-hung.bare:after,.framed.bare:after{content:"";pointer-events:none;position:absolute;inset:0;box-shadow:inset 1px 1px #ffffff59,inset -2px -2px #00000038}.viewer{border:1px solid var(--line);background:var(--panel);width:auto;max-width:96vw;color:var(--fg);border-radius:6px;padding:12px}.viewer::backdrop{background:#0009}.viewer-bar{justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;font-weight:600;display:flex}.viewer-status{color:var(--muted);text-align:right;flex:1;font-size:13px;font-weight:400}.viewer-tools{align-items:center;gap:8px;display:flex}.viewer-dpi{border:1px solid var(--line);background:var(--panel);border-radius:4px;min-height:30px;padding:0 6px;font-size:13px}.viewer canvas{width:100%;height:auto;display:block}.canvas.blank:after,.preview.blank:after{content:"";pointer-events:none;background:var(--weave) 0 0 / 18px 18px;mix-blend-mode:multiply;opacity:.55;position:absolute;inset:0}.title-edit{width:min(100%,22ch);min-width:0;font:600 28px/1.1 var(--font-display);letter-spacing:-.01em;background:0 0;border:1px solid #0000;border-radius:4px;margin:0;padding:2px 6px}.title-edit:hover{border-color:var(--line)}.title-edit:focus{border-color:var(--accent);background:var(--panel);outline:none}.colophon{font:400 12px var(--font-mono);color:var(--muted);justify-self:end;margin:0}.layers{gap:16px;max-width:1240px;margin:0 auto;display:grid}.layers .top{align-items:center}.layer-boxes{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:20px;display:grid}.layer-box{border:1px solid var(--line);background:var(--panel);text-align:left;border-radius:6px;align-content:start;gap:4px;padding:10px;display:grid}button.layer-box:hover,.final .preview:hover{border-color:var(--accent)}.preview{background:0 0;border:0;width:100%;margin-bottom:6px;padding:0;display:block;position:relative;box-shadow:0 2px 6px #0003}.preview canvas{width:100%;height:auto;aspect-ratio:var(--sheet-ratio,5 / 6);display:block}.layer-name{font-weight:600}.layer-tip{color:var(--muted);font-size:13px}.layer-count{font:400 12px var(--font-mono);color:var(--muted)}.layer-active{background:var(--accent);color:#fff;letter-spacing:.04em;border-radius:999px;justify-self:start;padding:1px 8px;font-size:11px;font-weight:600}.layer-box.active{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.layer-actions{flex-wrap:wrap;gap:8px;margin-top:6px;display:flex}.sketch-surface{background:var(--paper,#f4f3ef)}.sketch-svg{width:100%;height:auto;aspect-ratio:var(--sheet-ratio,5 / 6);fill:none;stroke:var(--ink);stroke-linecap:round;stroke-linejoin:round;display:block}.sketch-svg .outline{fill:none;stroke:var(--accent);stroke-width:.5px;stroke-dasharray:1.2 1}.sketch-svg .marquee rect{fill:none;stroke:#111;stroke-width:.7px;stroke-dasharray:2 1.5;stroke-linecap:butt;filter:drop-shadow(0 0 .4px #fff)drop-shadow(0 0 .4px #fff);animation:1s linear infinite march}@keyframes march{to{stroke-dashoffset:-3.5px}}.sig-marquee{pointer-events:none;position:absolute;inset:0}.sketch-svg .thirds line{stroke:#2b2a2824;stroke-width:.4px;stroke-dasharray:1.5 1.5}.compositions{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.composition{border:1px solid var(--line);text-align:left;background:0 0;border-radius:4px;gap:6px;padding:6px;font-size:13px;font-weight:600;display:grid}.composition:hover{border-color:var(--muted)}.composition[aria-pressed=true]{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.composition .mini{background:var(--paper,#f4f3ef);display:block;box-shadow:0 1px 3px #0000002e}.guide,.guide-pick{z-index:1;pointer-events:none;position:absolute;inset:0}.guide-pick .sketch-svg .outline{stroke-width:.4px}.guide-pick .sketch-svg .grip{display:none}.guide-head{gap:4px;display:grid}.guide-head .object{grid-template-columns:1fr auto auto;margin:0}.guide-head .name{padding:6px 8px}.sketch-row .name{cursor:default}.sketch-peek{z-index:6;border:1px solid var(--line);background:var(--panel);pointer-events:none;border-radius:6px;width:260px;padding:6px;display:none;position:absolute;top:0;right:calc(100% + 12px);box-shadow:0 10px 30px #00000040}.sketch-peek .sketch-svg{background:var(--paper,#f4f3ef)}.sketch-row.peek .sketch-peek{display:block}@media (hover:hover){.sketch-row:hover .sketch-peek{display:block}}@media (width<=860px){.sketch-peek{width:min(260px,100%);top:calc(100% + 6px);right:0}}.guide-head .empty{padding:2px 8px}.guide-head .clean{gap:4px;margin-top:2px;display:grid}.guide-head .clean-label{font-size:13px;font-weight:600}.guide-head .clean-label .size{font:400 12px var(--font-mono);color:var(--muted);margin-left:6px}.offset-head{align-items:center;gap:6px;display:flex}.offset-head .clean-label{margin-right:auto}.offset-cols{grid-template-columns:1fr 1fr;gap:10px;display:grid}.offset-col{grid-template-columns:auto 1fr auto;align-items:center;gap:2px 4px;display:grid}.offset-name{color:var(--muted);grid-column:1/-1;font-size:12px}.offset-col output{text-align:center;font:400 12px var(--font-mono);font-variant-numeric:tabular-nums}.offset-col .btn{padding:0 8px}.guide-head .clean .btn:disabled,.guide-head .clean button:disabled{opacity:.45;cursor:default}#sketchSurface{touch-action:none;cursor:crosshair}.tabs{border-bottom:1px solid var(--line);grid-auto-columns:1fr;grid-auto-flow:column;margin:-4px 0 -8px;display:grid}.tabs button{min-height:36px;color:var(--muted);background:0 0;border:0;border-bottom:2px solid #0000;font-weight:600}.tabs button[aria-selected=true]{border-bottom-color:var(--accent);color:var(--fg)}.sketch-panel h2.sub{margin-top:16px}.sketch-actions{margin-top:14px}.caps{grid-column:1/-1;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:4px}.caps button{justify-content:center;min-height:32px}.trail{grid-template-columns:1fr;margin-top:6px}.trail button{justify-content:center}#penHint{min-height:3em}#sketchSurface.arranging{cursor:default}#sketchScreen{grid-template-rows:auto auto 1fr;grid-template-areas:"top name""stage panel""row panel"}#sketchScreen .stage{width:min(100%, calc((100vh - 330px) * var(--sheet-wide,.8333)));width:min(100%, calc((100dvh - 330px) * var(--sheet-wide,.8333)))}#sketchScreen>.sketch-side{grid-area:2/panel/span 2;align-content:start;gap:16px;min-width:0;display:grid}.sketch-side>.panel{grid-area:auto}.pen-row{width:min(100%, calc((100vh - 330px) * var(--sheet-wide,.8333)));width:min(100%, calc((100dvh - 330px) * var(--sheet-wide,.8333)));grid-area:row;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);justify-self:center;gap:24px}.sketch-panel{position:relative}.canvas-pop{z-index:5;width:max(calc(100% + 2px), min(420px, calc(100% + 2px + var(--room,0px))));border:1px solid var(--line);background:var(--pop);border-radius:6px;align-content:start;gap:14px;min-height:calc(100% + 2px);max-height:calc(100dvh - 120px);padding:16px;display:grid;position:absolute;top:-1px;right:-1px;overflow:hidden auto;box-shadow:0 10px 30px #00000040}.canvas-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.canvas-head h2{margin:0}.pop-acts{gap:6px;display:flex}.pop-step{gap:4px;margin-right:6px;display:flex}.pop-step[hidden]{display:none}.canvas-lines{grid-column:1/-1;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;align-items:start;gap:24px;display:grid}.canvas-line{align-content:start;gap:6px;display:grid}.canvas-line h2{margin:0}.canvas-pop h2.sub{margin:4px 0 8px}.size-fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px;margin-bottom:8px;display:grid}.size-field{gap:2px;font-size:13px;font-weight:500;display:grid}.size-field input{border:1px solid var(--line);width:100%;min-height:30px;color:inherit;font:400 13px var(--font-mono);background:0 0;border-radius:4px;padding:0 6px}.subtabs{margin:10px 0 8px}.subtabs.tool-tabs{grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;margin:0}.tool-tabs button{min-height:28px;padding:0 6px;font-size:13px}.tool-title{border-top:1px solid var(--line);margin:14px 0 8px;padding-top:10px}#palettePane .subtabs{margin-top:0}.object.part{margin-left:16px}.canvas-overview{flex-wrap:wrap;align-items:center;gap:4px 6px;font-size:14px;display:flex}.canvas-overview .sep{color:var(--muted)}.canvas-overview .tone{background:var(--c);border-radius:2px;width:12px;height:12px;box-shadow:inset 0 0 0 1px #00000040}.canvas-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px;display:grid}.canvas-grid .wide{grid-column:1/-1}.choice{grid-column:1/-1;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:4px}.choice button{justify-content:center;min-height:32px}.shape-layers .choice{margin-top:0}.materials{grid-template-columns:repeat(auto-fill,minmax(116px,1fr))}.materials button{justify-content:flex-start;gap:6px;font-size:13px}.materials .tone{background:var(--c);border-radius:2px;flex:none;width:12px;height:12px;box-shadow:inset 0 0 0 1px #00000040}.pen-sliders{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px;display:grid}.pen-sliders .slider:first-child{grid-column:1/-1}.targets{grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:10px}.targets button{justify-content:center;min-height:32px}#objectList .join{grid-template-columns:minmax(0,1fr);margin:10px 0 0}.ramps{gap:6px;display:grid}.ramp{grid-template-columns:14px repeat(7,minmax(0,40px));align-items:center;gap:4px;display:grid}.ramp-name{font:400 12px var(--font-mono);color:var(--muted)}.ramp-empty{color:var(--muted);grid-column:2/-1;font-size:13px}.ramp .plain{grid-column:2/-1;justify-self:start}.ramp .plain[aria-pressed=true]{border-color:var(--accent)}.chip{aspect-ratio:1;background:var(--c);border:0;border-radius:3px;min-width:0;padding:0;box-shadow:inset 0 0 0 1px #0003}.chip[aria-pressed=true]{outline:2px solid var(--fg);outline-offset:2px}#paintPanel{position:relative}.relations{z-index:5;background:var(--panel);border:1px solid var(--line);min-height:100%;box-shadow:var(--shadow);box-sizing:border-box;border-radius:6px;align-content:start;gap:8px;padding:10px;display:grid;position:absolute;inset:0 0 auto}.relations[hidden]{display:none}.relations-head{grid-template-columns:28px 1fr auto;align-items:center;gap:8px;display:grid}.relations-title{font-size:13px;font-weight:600}.relations-sub{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:4px 0 0;font-size:12px;font-weight:600}.relations-sub span{text-transform:none;letter-spacing:0;margin-left:6px;font-weight:400}.relation{gap:4px;display:grid}.relation-name{color:var(--muted);font-size:12px}.relation-chips{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.relation-chips .chip,.relations-head .chip{width:28px}.relation-own{border-left:1px solid var(--line);flex-wrap:wrap;gap:6px;margin-left:8px;padding-left:10px;display:flex}.relation-own .chip{box-shadow:inset 0 0 0 1px #0003, 0 0 0 2px var(--panel), 0 0 0 3px var(--muted)}.palettes{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.palette-cell{gap:4px;display:grid}.palette{aspect-ratio:1;border:1px solid var(--line);background:var(--c);color:var(--muted);border-radius:50%;font-size:12px;box-shadow:inset 0 0 0 1px #00000026}.palette[style*=transparent]{box-shadow:none;border-style:dashed}.palette-acts{justify-content:center;gap:4px;display:flex}.palette-acts button{border:1px solid var(--line);min-width:28px;height:24px;color:var(--muted);background:0 0;border-radius:3px}.palette-acts button:disabled{opacity:.35;cursor:default}.swatches.base{grid-template-columns:repeat(6,minmax(0,1fr))}.swatches.row{grid-template-columns:repeat(11,minmax(0,1fr));gap:4px;margin-bottom:12px}.groups{gap:6px;display:grid}.group{border:1px solid var(--line);text-align:left;background:0 0;border-radius:4px;grid-template-columns:1fr auto;align-items:center;gap:8px;padding:6px 8px;display:grid}.group:hover{border-color:var(--muted)}.group[aria-pressed=true]{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.group-name{font-size:13px;font-weight:600}.group-chips{gap:4px;display:flex}.group-chips .chip{width:26px}@media (width<=860px){#sketchScreen{grid-template-rows:none;grid-template-areas:"top""name""stage""row""panel"}#sketchScreen>.sketch-side{grid-row:auto}.pen-row{grid-template-columns:minmax(0,1fr)}}.object-group+.object-group{margin-top:4px}#objectList .object-scroll{padding-top:12px}.object{position:relative}.object .menu{z-index:2;background:var(--panel);border:1px solid var(--muted);border-radius:4px;gap:2px;padding:2px;display:none;position:absolute;top:0;right:6px;transform:translateY(-50%);box-shadow:0 2px 6px #00000026}.object:hover .menu,.object:focus-within .menu{display:flex}.object .menu button{color:var(--fg);border-radius:3px;padding:2px 8px;font-size:12px;font-weight:600}.object .menu button:hover{background:var(--line)}.canvas-row .name{font-style:italic}.objects h2{margin:12px 0 6px}.objects .empty{color:var(--muted);margin:0;font-size:13px}.object{border:1px solid var(--line);border-radius:4px;grid-template-columns:1fr auto auto;align-items:center;gap:8px;margin-bottom:4px;display:grid}.object:hover{border-color:var(--muted)}.object[aria-current=true]{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.object button{text-align:left;background:0 0;border:0}.object .name{padding:6px 8px;font-size:13px;font-weight:600}.object .size{font:400 12px var(--font-mono);color:var(--muted)}#guideObjects .object{grid-template-columns:1fr auto auto auto}.object .tally{text-align:right;min-width:1.5em;font:400 12px var(--font-mono);color:var(--muted)}.object .drop{color:var(--muted);padding:4px 10px;font-size:16px}.object .drop:hover{color:var(--fg)}.object .eye{place-items:center;display:grid}.object .eye svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;width:18px;height:18px}.object.off .name{color:var(--muted);font-weight:400}.sketch-svg .grip{fill:var(--panel);stroke:var(--accent);stroke-width:.5px}.restore{z-index:20;background:var(--panel);border:1px solid var(--line);min-width:200px;box-shadow:var(--shadow);border-radius:6px;padding:10px 12px;transition:opacity .3s;position:fixed;bottom:16px;left:16px}.restore.leaving{opacity:0}.guide-pick.aside{opacity:0;transition:opacity .15s}.rendering{z-index:21;color:#3b2f08;letter-spacing:.02em;box-shadow:var(--shadow);text-align:center;box-sizing:border-box;background:#f6d76b;border:1px solid #e2b83a;border-radius:999px;padding:12px 28px;font-size:18px;font-weight:700;transition:opacity .3s;position:fixed;top:16px;right:24px}.rendering.leaving{opacity:0}.restore p{margin:0 0 6px;font-weight:600}.restore ul{margin:0;padding:0;list-style:none}.restore li{justify-content:space-between;gap:16px;font-size:13px;display:flex}.restore li span:last-child{font:400 12px var(--font-mono);color:var(--muted)}.restore li.done span:last-child{color:var(--accent)}.restore li.wait{color:var(--muted)}.trace-row{align-items:center;gap:8px;display:flex}.trace-bar{border-top:1px solid var(--line);padding-top:14px}.trace-row .hint{margin:0}.trace-row .btn:disabled{opacity:.4;cursor:default}.wall-side,.floor-side{justify-items:end;gap:20px;display:grid}.tape-note{color:#4a3f2a;font:500 22px/1 "Caveat", var(--font-body);background:#fbf3c4;border:0;border-radius:1px;padding:10px 18px 8px;transition:transform .15s;position:relative;transform:rotate(-3deg);box-shadow:0 3px 6px #0000002e,0 1px #0000000f}.tape-note:before{content:"";background:#ece6d6b8;width:46px;height:16px;position:absolute;top:-9px;left:50%;translate:-50%;rotate:4deg;box-shadow:0 0 0 1px #0000000d}.tape-note:hover{transform:rotate(0)}.tape-note.signed{background:#fcfcfa;padding:8px 12px}.tape-note.signed img{width:200px;height:auto;display:block}.signature{gap:16px;max-width:1240px;margin:0 auto;display:grid}.signature .top{align-items:center}.sig-row{grid-template-columns:minmax(0,1fr) 300px;align-items:start;gap:16px;display:grid}.signature .sig-row{align-items:stretch}.sig-tabs{margin:-4px 0 16px}.sig-picked{justify-content:space-between;align-items:center;gap:8px;margin-bottom:12px;display:flex}.sig-picked h2{margin:0}.sig-handle line{stroke:var(--accent);stroke-width:.4px;stroke-dasharray:1.2 1}.sig-handle circle{fill:var(--panel);stroke:var(--accent);stroke-width:.7px;cursor:grab}.sig-bench{padding:18px 28px 28px;position:relative}.sig-bench>.table-back{position:absolute;inset:0}.sig-bench h2{font:500 11px var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--wall-muted,var(--muted));margin:10px 0 8px}.tabled .sig-bench h2{color:#f4f3ef;text-shadow:0 1px 2px #00000080}.sig-fonts{gap:6px;max-height:420px;margin-top:12px;display:grid;overflow-y:auto}.sig-fonts[hidden]{display:none}.sig-choice{border:1px solid var(--line);background:var(--paper,#f4f3ef);color:#1e1e1e;border-radius:4px;grid-template-columns:1fr auto;align-items:center;gap:12px;padding:6px 12px;display:grid;position:relative}.sig-choice[aria-current=true]{border-color:var(--accent);box-shadow:inset 3px 0 0 var(--accent)}.sig-choice .sample{white-space:nowrap;text-overflow:ellipsis;min-width:0;font-size:36px;line-height:1.4;overflow:hidden}.sig-choice .name{font:400 11px var(--font-mono);color:#6b7280;position:absolute;top:4px;right:10px}.sig-choice .btn{visibility:hidden}.sig-choice:hover .btn,.sig-choice:focus-within .btn{visibility:visible}.sig-panel h2{font:500 11px var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0 0 8px}.sig-panel{grid-area:auto;display:block}.sig-panel h2.sub{margin-top:14px}.sig-strip{aspect-ratio:4;box-shadow:var(--shadow);touch-action:none;position:relative}.sig-vector{background:var(--paper,#f4f3ef);cursor:crosshair}.sig-paint{background:var(--paper,#f4f3ef);cursor:none;overflow:hidden}.sig-strip .sketch-svg{aspect-ratio:4}.sig-guide{opacity:.3;pointer-events:none;position:absolute;inset:0}.sig-guide .sig-text.on{fill:var(--accent)}.sig-guide g.on>*{stroke:var(--accent)}.sig-guide g.on [fill]{fill:var(--accent)}.sig-guide:has(.on){opacity:.45}.sig-masks:empty{display:none}.sig-masks button{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.sig-paint canvas{width:100%;height:auto;display:block;position:relative}.sig-text{fill:var(--ink);stroke:none}.sig-text.picked{fill:var(--accent)}.sig-svg.guide .sig-text{fill:var(--ink)}.sig-text-edit,.sig-font{border:1px solid var(--line);background:var(--panel);border-radius:4px;width:100%;min-height:34px;margin-bottom:8px;padding:0 8px}.sig-font{font:inherit;color:inherit;text-align:left;cursor:pointer;justify-content:space-between;align-items:center;display:flex}.sig-font:after{content:"▾";color:var(--muted)}.sig-font[aria-pressed=true]{border-color:var(--accent)}.sig-font[aria-pressed=true]:after{content:"▴"}.sig-sliders{grid-template-columns:1fr 1fr;gap:0 12px;display:grid}.sig-tools{grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:10px}.sig-panel .hint{min-height:0}@media (width<=860px){.sig-row{grid-template-columns:minmax(0,1fr)}}.sign{gap:16px;max-width:1240px;margin:0 auto;display:grid}.sign .top{align-items:center}.sign-row{grid-template-columns:minmax(0,1fr) 300px;align-items:start;gap:16px;display:grid}.sign-view{justify-items:center;display:grid}.sign-stage{touch-action:none;cursor:move;width:fit-content;max-width:100%}.sign-stage canvas{width:auto;max-width:100%;height:auto;max-height:calc(100vh - 150px);display:block}.sign-view .hint{min-height:0}.sign-corners,.sign-varnish{grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:10px}.sign-varnish{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:0}.sign-slots{flex-wrap:wrap;gap:6px;display:flex}.sign-slots:empty{display:none}.sign-slot{border:1px solid var(--line);background:var(--panel);border-radius:4px;align-items:center;gap:4px;padding:4px 6px;display:inline-flex}.sign-slot[aria-pressed=true]{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.sign-slot .chip{background:var(--c);border-radius:3px;width:18px;height:18px;box-shadow:inset 0 0 0 1px #0003}.sign-slot .to{color:var(--muted);font-size:12px}.sign .swatch:disabled{opacity:.4;cursor:default}.sign-actions{justify-content:space-between;margin-top:14px}@media (width<=860px){.sign-row{grid-template-columns:minmax(0,1fr)}}.sign-side{gap:8px;display:grid}.sign-status{border:1px solid var(--accent);background:var(--panel);color:var(--accent);font:500 13px var(--font-mono);border-radius:4px;margin:0;padding:8px 12px}.sign-status:empty{display:none}.ask{border:1px solid var(--line);background:var(--panel);width:min(92vw,460px);color:var(--fg);box-shadow:var(--shadow);border-radius:8px;padding:20px}.ask::backdrop{background:#00000073}.ask-title{font:600 20px/1.2 var(--font-display);margin:0}.ask-text{color:var(--muted);margin:6px 0 0}.ask .actions{justify-content:flex-end;margin-top:18px}.viewer-body{align-items:flex-start;gap:16px;display:flex}.viewer-wall{flex:auto;place-items:center;display:grid}.viewer.framed-view .viewer-wall{background:radial-gradient(ellipse at 50% 15%, transparent 40%, var(--room-wall-shade) 100%), var(--room-wall);border-radius:4px;padding:24px}.framed{padding:var(--frame-w,0);position:relative}.framed .mat{padding:var(--mat-w,0);position:relative}.viewer.framed-view .framed{box-shadow:0 12px 28px #00000059}.viewer.framed-view .mat .frame{box-shadow:none}.viewer-panel{flex:0 0 280px}.viewer-sizes,.viewer-dpis,.viewer-finishes,.viewer-joints,.viewer-textures{grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:4px}.viewer-dpis{grid-template-columns:repeat(3,minmax(0,1fr))}.viewer-panel .hint{min-height:0;margin-bottom:12px}.viewer-panel .swatches{margin-bottom:12px}.viewer-tools [aria-pressed=true]{border-color:var(--accent);color:var(--accent)}@media (width<=860px){.viewer-body{flex-direction:column}.viewer-panel{flex:none;width:100%}}.viewer-finishes,.viewer-joints{grid-template-columns:repeat(3,minmax(0,1fr))}.curate-tabs{margin:-4px 0 12px}.mix-result{align-items:center;gap:10px;margin-bottom:8px;display:flex}.mix-result .chip{background:var(--c);border-radius:4px;flex:none;width:34px;height:34px;box-shadow:inset 0 0 0 1px #0003}.mix-result .recipe{color:var(--muted);font-size:12px;line-height:1.35}.curate-mix .swatches{margin-bottom:8px}.viewer-mats [data-id=mix]:after{content:"Mix";height:100%;font:600 10px var(--font-body);color:#fff;text-shadow:0 1px 2px #0009;place-items:center;display:grid}.btn.danger{color:#fff;background:#b3261e;border-color:#b3261e;font-weight:600}.ask-art{margin:-4px 0 12px;position:relative}.ask-art img{width:100%;height:auto;margin:0;display:block}.ask-stamp{pointer-events:none;position:absolute;inset:0}.ask-stamp svg{width:100%;height:100%;display:block}.viewer-side{flex:0 0 280px;align-content:start;gap:8px;display:grid}.viewer-side .viewer-panel{flex:none;grid-area:auto}.print-banner{border:1px solid var(--accent);background:var(--panel);border-radius:4px;padding:8px 12px}.print-status{color:var(--accent);font:500 12px/1.35 var(--font-mono);margin:0 0 6px}.print-bar{background:var(--line);border-radius:2px;height:4px;overflow:hidden}.print-bar span{background:var(--accent);width:0;height:100%;transition:width .2s;display:block}.viewer-panel .actions .btn{flex:1}@media (width<=860px){.viewer-side{flex:none;width:100%}}.fold h2{margin:0}.fold-head{background:var(--bg);width:100%;min-height:32px;color:inherit;font:inherit;letter-spacing:inherit;text-transform:inherit;text-align:left;cursor:pointer;border:0;border-radius:4px;align-items:center;gap:8px;padding:4px 8px 4px 10px;display:flex}.fold-name{flex:none}.fold-sum{white-space:nowrap;text-overflow:ellipsis;min-width:0;font:400 12px var(--font-body);letter-spacing:0;text-transform:none;color:var(--fg);flex:1;justify-content:flex-end;align-items:center;gap:6px;display:flex;overflow:hidden}.fold-text{text-overflow:ellipsis;overflow:hidden}.fold-chip{background:var(--c,transparent);border-radius:3px;flex:none;width:14px;height:14px;box-shadow:inset 0 0 0 1px #0003}.fold-mark{border-bottom:1.5px solid;border-right:1.5px solid;flex:none;width:7px;height:7px;margin:0 4px 3px;transition:transform .15s;transform:rotate(45deg)}.fold.open .fold-mark{margin-bottom:-3px;transform:rotate(-135deg)}.fold.open .fold-sum{visibility:hidden}.fold-body{padding:12px 2px 0;display:none}.fold-head:hover{background:var(--line)}#paintPanel{gap:12px}@media (width>=861px){main.app[data-screen=paint]{grid-template-columns:minmax(0,1fr) 360px}}#paintPanel .color-targets{margin-bottom:0}.paint-color h2{margin:4px 0 8px}.fold.open .fold-body{display:block}.fold-head:hover .fold-name{color:var(--fg)}.teach{border-left:3px solid var(--accent);background:var(--panel);max-width:760px;box-shadow:var(--shadow);border-radius:0 6px 6px 0;flex-basis:100%;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:2px 12px;margin-top:8px;padding:8px 8px 8px 12px;transition:opacity .28s,transform .28s;display:grid}.teach[hidden]{display:none}.teach b{font:500 11px var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--accent);grid-column:1}.teach p{color:var(--fg);grid-column:1;margin:0;font-size:13px;line-height:1.45}.teach .check{border:1px solid var(--line);background:var(--bg,transparent);width:34px;height:34px;color:var(--muted);border-radius:50%;place-items:center;padding:0;transition:background .18s,color .18s,border-color .18s,transform .18s;display:grid}.teach .check svg{fill:none;stroke:currentColor;stroke-width:2.4px;stroke-linecap:round;stroke-linejoin:round;width:18px;height:18px}.teach .check:hover{border-color:var(--accent);color:var(--accent)}.teach.heard .check{background:var(--accent);border-color:var(--accent);color:#fff;transform:scale(1.12)}.teach.leaving{opacity:0;transform:translateY(-6px)}.top{position:relative}.teach:not(.pinned){z-index:8;box-sizing:border-box;width:min(760px,100%);position:absolute;top:100%;left:0;box-shadow:0 8px 24px #00000038}.teach-acts{grid-area:1/2/span 2;align-items:center;gap:6px;display:flex}.teach .pin{width:28px;height:28px;color:var(--muted);background:0 0;border:1px solid #0000;border-radius:50%;place-items:center;padding:0;display:grid}.teach .pin svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linejoin:round;width:16px;height:16px}.teach .pin:hover{border-color:var(--line);color:var(--accent)}.teach .pin[aria-pressed=true]{color:var(--accent)}.teach .pin[aria-pressed=true] svg{fill:currentColor}.modes-bar .subtabs{grid-template-columns:repeat(3,minmax(0,1fr));margin:0}.texture-box{margin-bottom:10px}.texture-box .slider{margin-top:0}.trace-row #lay{flex:none}.trace-row #lay:disabled{opacity:.4;cursor:default}.top .layer-nav{flex-wrap:wrap;gap:4px;display:flex}.top .layer-nav button{min-height:32px;padding:0 10px}.stage{position:relative}.side-tabs{flex-direction:column;justify-content:flex-end;align-items:flex-end;gap:10px;display:flex;position:absolute;top:0;bottom:0;right:calc(100% + 10px)}.side-colors{background:var(--paper,#f4f3ef);color:#2b2a28;box-shadow:0 1px 2px #1018241f}@media (width<=860px){.side-tabs{display:contents}}.work-title{text-overflow:ellipsis;white-space:nowrap;background:var(--paper,#f4f3ef);color:#2b2a28;max-width:100%;font:600 24px/1.1 var(--font-display);letter-spacing:-.01em;border-radius:8px;grid-area:name;place-self:center start;margin:0;padding:6px 14px;overflow:hidden;box-shadow:0 1px 2px #1018241f}.pen-row{background:var(--lift);color:var(--fg)}.pen-row:has(.defaults){background:var(--rest)}.layer-line{grid-column:1/-1}.side-colors{border-radius:10px 0 0 10px;flex:none;gap:8px;width:74px;padding:9px;display:grid}.side-colors .chip[aria-pressed=true]{outline-color:#2b2a28}.side-colors .btn.small{min-height:24px;padding:0 4px;font-size:11px}.side-label{text-align:center;font:500 11px/24px var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:#5c5a55;display:block}.side-colors .side-chip[aria-pressed=true]{outline-offset:1px;outline:2px solid #2b2a28}.side-color-title{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase}.side-plain{gap:4px;display:grid}.side-colors .btn[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.side-banks{grid-template-columns:1fr 1fr;gap:10px 6px;display:grid}.side-bank{align-content:start;gap:3px;display:grid}.side-bank .chip{aspect-ratio:5/4;width:100%}.side-bank .chip[aria-pressed=true]{outline-offset:1px}.side-bank.empty{border:1px dashed var(--muted);background:0 0;border-radius:4px;min-height:160px;padding:0}.side-chip{border:1px solid var(--line);background:var(--c);width:100%;height:28px;color:var(--muted);border-radius:4px;padding:0;font-size:11px;box-shadow:inset 0 0 0 1px #00000026}.side-chip.empty{border:1px dashed var(--muted);box-shadow:none;background:0 0}.side-chip:not(.empty){color:#1a1a1a}.side-chip.dark{color:#f4f4f4}.side-own{grid-template-columns:1fr 1fr;gap:3px 6px;margin-bottom:4px;display:grid}.side-own .chip{aspect-ratio:5/4;width:100%}.side-chip:hover,.side-bank.empty:hover{outline:2px solid var(--accent);outline-offset:1px}@media (width<=860px){.side-colors{border-radius:8px;flex-wrap:wrap;order:1;align-items:start;width:auto;margin:0;display:flex}.side-banks{grid-template-columns:repeat(5,28px)}.side-plain{grid-auto-flow:column}}.color-targets{grid-template-columns:1fr 1fr;gap:8px;display:grid}.color-targets button{justify-content:space-between}.target-tone{background:var(--c);border-radius:3px;min-width:28px;height:18px;box-shadow:inset 0 0 0 1px #00000040}.target-tone.none{box-shadow:none;font:400 11px var(--font-mono);opacity:.75}.color-dialog{gap:12px;width:min(92vw,340px);margin:72px 24px auto auto;display:grid}#customDialog,#paletteDialog{margin:0;bottom:auto;right:auto}#paletteDialog{z-index:30;max-height:calc(100dvh - 24px);padding:14px;position:fixed;overflow-y:auto}#paletteDialog .swatches.base{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}#paletteDialog .palettes{gap:6px}.color-dialog:not([open]){display:none}.color-dialog::backdrop{background:#00000014}.color-dialog .canvas-head h2{margin:0}#paletteDialog{background:var(--pop)}.color-dialog .relations{min-height:0;box-shadow:none;background:0 0;border:0;padding:0;position:static}.color-dialog h2{font:500 11px/1 var(--font-mono);letter-spacing:.09em;text-transform:uppercase;color:var(--muted);margin:0 0 10px}.color-dialog h2.sub{margin-top:16px}.walled .table-back,.tabled .easel-back{display:none}.walled{--wall-muted:color-mix(in srgb, var(--room-ink) 72%, transparent);isolation:isolate;color:var(--room-ink);background:radial-gradient(ellipse at 50% 15%, transparent 40%, var(--room-wall-shade) 100%), var(--room-wall);border-radius:6px;padding:16px 20px 20px;position:relative}:where(.walled) .panel,:where(.walled) .btn,:where(.walled) .layer-box{color:var(--fg)}.walled .top>p,.walled .readout{color:var(--wall-muted)}.walled .title-edit:focus{color:var(--fg)}.easel-back{z-index:-1;pointer-events:none}.app>.easel-back{clip-path:inset(-100vh -100vw 0);grid-area:2/1/-1;align-self:stretch;margin-bottom:-20px}.easel-fit{aspect-ratio:var(--sheet-ratio,5 / 6);width:min(100%, calc((100vh - 170px) * var(--sheet-wide,.8333)));width:min(100%, calc((100dvh - 170px) * var(--sheet-wide,.8333)));margin-inline:auto;position:relative}#sketchScreen .easel-fit{width:min(100%, calc((100vh - 330px) * var(--sheet-wide,.8333)));width:min(100%, calc((100dvh - 330px) * var(--sheet-wide,.8333)))}@media (width>=861px){.walled .stage,.walled .easel-fit{max-width:calc(100% - 136px)}}@media (width<=860px){.easel-fit{width:100%}}.walled .sheet:before{content:"";z-index:3;width:calc(24% / max(1, var(--sheet-wide,.8333)));background:linear-gradient(90deg, #0000001a, transparent 18% 82%, #00000024), var(--wood-deep);pointer-events:none;border-radius:3px 3px 0 0;height:15px;position:absolute;bottom:100%;left:50%;transform:translate(-50%);box-shadow:0 2px 3px #00000040}.easel-fit .easel-wood{width:calc(118.2% / max(1, var(--sheet-wide,.8333)));height:auto;position:absolute;top:100%;left:50%;transform:translate(-50%,-62.1%)}.layers.walled{align-content:start;min-height:calc(100dvh - 32px)}.layers>.easel-back{border-radius:6px;position:absolute;inset:0;overflow:hidden}.layers>.easel-back .easel-wood{width:min(46%,420px);height:auto;position:absolute;bottom:-3%;left:50%;translate:-50%}.tabled{--floor-muted:color-mix(in srgb, var(--floor-ink) 72%, transparent);isolation:isolate;color:var(--floor-ink);border-radius:6px;padding:16px 20px 20px;position:relative}:where(.tabled) .panel,:where(.tabled) .btn,:where(.tabled) .layer-box{color:var(--fg)}.tabled .top>p,.tabled .readout{color:var(--floor-muted)}.tabled .title-edit:focus{color:var(--fg)}.table-back{z-index:-1;pointer-events:none}.app>.table-back{grid-area:2/1/-1;align-self:stretch}.tabled .side-tabs{grid-area:1/1;bottom:-20px}.tabled .stage>.bar{margin-top:20px}.tabled .pen-row{margin-top:8px}.table-fit{aspect-ratio:var(--sheet-ratio,5 / 6);width:min(100%, calc((100vh - 170px) * var(--sheet-wide,.8333)));width:min(100%, calc((100dvh - 170px) * var(--sheet-wide,.8333)));margin-inline:auto;position:relative}#sketchScreen .table-fit{width:min(100%, calc((100vh - 330px) * var(--sheet-wide,.8333)));width:min(100%, calc((100dvh - 330px) * var(--sheet-wide,.8333)))}@media (width>=861px){.tabled .stage,.tabled .table-fit{max-width:calc(100% - 136px)}}@media (width<=860px){.table-fit{width:100%}}.table-fit .table-wood{width:calc(100% + 126px);height:calc(100% + 32px);top:-12px;left:-96px}@media (width<=860px){.table-fit .table-wood{width:calc(100% + 28px);left:-14px}}.layers.tabled{align-content:start;min-height:calc(100dvh - 32px)}.layers>.table-back{position:absolute;inset:64px 10px 10px}
