@font-face{font-family:Instrument Serif;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/instrument-serif-latin-ext-400-normal-C2je3j2s.woff2)format("woff2"),url(/assets/instrument-serif-latin-ext-400-normal-CFCUzsTy.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Instrument Serif;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/instrument-serif-latin-400-normal-DnYpCC2O.woff2)format("woff2"),url(/assets/instrument-serif-latin-400-normal-BVbkICAY.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Instrument Serif;font-style:italic;font-display:swap;font-weight:400;src:url(/assets/instrument-serif-latin-ext-400-italic-C9HzH3YL.woff2)format("woff2"),url(/assets/instrument-serif-latin-ext-400-italic-D7-lnxEk.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Instrument Serif;font-style:italic;font-display:swap;font-weight:400;src:url(/assets/instrument-serif-latin-400-italic-DKMiL14s.woff2)format("woff2"),url(/assets/instrument-serif-latin-400-italic-u__WvvIK.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-cyrillic-ext-400-normal-g30qAdWV.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-400-normal-Dsrv2Tcn.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-cyrillic-400-normal-DZqxrq2p.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-400-normal-BTotfTJu.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-greek-400-normal-_efipK4i.woff2)format("woff2"),url(/assets/ibm-plex-sans-greek-400-normal-D9ESIMu3.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-vietnamese-400-normal-DG4YqDda.woff2)format("woff2"),url(/assets/ibm-plex-sans-vietnamese-400-normal-fK1oJ5dG.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-latin-ext-400-normal-C5H60-Va.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-ext-400-normal-RBey6euL.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-latin-400-normal-CDDApCn2.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-400-normal-CYLoc0-x.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-cyrillic-ext-500-normal-Cs5J6C77.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-500-normal-DB5PtV2g.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-cyrillic-500-normal-CocWQlwt.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-500-normal-ByOcLdNv.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-greek-500-normal-JMMifIXV.woff2)format("woff2"),url(/assets/ibm-plex-sans-greek-500-normal-CuWXN6rf.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-vietnamese-500-normal-e4dixQRQ.woff2)format("woff2"),url(/assets/ibm-plex-sans-vietnamese-500-normal-BEb3_waV.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-latin-ext-500-normal-DakdToA3.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-ext-500-normal-D0aIdm-b.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-latin-500-normal-6ng42L7E.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-500-normal-BgVn5rGT.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-cyrillic-ext-600-normal-DUMzJB7m.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-600-normal-Bz0x94Yp.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-cyrillic-600-normal-71GNu3SW.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-600-normal-BGq0mW3O.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-greek-600-normal-DzTrcv_p.woff2)format("woff2"),url(/assets/ibm-plex-sans-greek-600-normal-D-CqTdkO.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-vietnamese-600-normal-DpPYBSTl.woff2)format("woff2"),url(/assets/ibm-plex-sans-vietnamese-600-normal-DgdngZtN.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-latin-ext-600-normal-DOrvGEcy.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-ext-600-normal-DIrixKbi.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-latin-600-normal-CuJfVYMP.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-600-normal-Cu4Hd6ag.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-xuaO2J-f.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-DMdlQ8Kv.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-400-normal-BSMlKf0J.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-400-normal-CEL4l2ZJ.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-vietnamese-400-normal-BulugwFq.woff2)format("woff2"),url(/assets/ibm-plex-mono-vietnamese-400-normal-DDuiU_S-.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-ext-400-normal-BmRBH3aV.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-ext-400-normal-D3D2R8hC.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BqneJy0T.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BIfNGwUT.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-500-normal-Bq9vWWag.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-500-normal-Ael50iVv.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-vietnamese-500-normal-DZ4AoWbu.woff2)format("woff2"),url(/assets/ibm-plex-mono-vietnamese-500-normal-C8zxqsMH.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-ext-500-normal-CAhNIIs5.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-ext-500-normal-CZ70TYgx.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-500-normal-CB9ihrfo.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--ivory:#f4efe6;--ink:#2b2a28;--ink-soft:#5c5850;--ink-faint:#2b2a281f;--accent:#b23a22;--refusal:#a8463a;--frost:#faf7f1b8;--frost-border:#2b2a281f;--frost-blur:14px;--swatch-vermilion:#d9472b;--swatch-indigo:#2f4a8a;--swatch-matcha:#7a9a57;--swatch-ochre:#c9962b;--swatch-sumi:#2b2a28;--paper-back:#fff;--font-display:"Instrument Serif", "Iowan Old Style", "Palatino Linotype", Georgia, serif;--font-ui:"IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;--radius-island:14px;--space:16px;--settle-ms:.25s}@media (prefers-reduced-motion:reduce){:root{--settle-ms:0s}}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--ivory);color:var(--ink);font-family:var(--font-ui);-webkit-font-smoothing:antialiased;overflow:hidden}.studio{background:var(--ivory);position:fixed;inset:0;overflow:hidden}.studio-main{display:contents}.stage-host{z-index:-1;position:absolute;inset:0}.island{background:var(--frost);border:1px solid var(--frost-border);border-radius:var(--radius-island);-webkit-backdrop-filter:blur(var(--frost-blur));position:absolute}.stage-host canvas{touch-action:none}.stage-error{max-width:min(360px, calc(100vw - 2 * var(--space)));text-align:center;color:var(--ink);font-family:var(--font-ui);flex-direction:column;align-items:center;gap:10px;padding:14px 18px;display:flex;top:50%;left:50%;transform:translate(-50%,-50%)}.stage-error p{margin:0}.app-failed{background:var(--ivory);color:var(--ink);font-family:var(--font-ui);flex-direction:column;justify-content:center;align-items:center;gap:12px;display:flex;position:fixed;inset:0}.app-failed button{font:inherit;border:1px solid var(--ink);color:var(--ink);cursor:pointer;background:0 0;border-radius:8px;padding:6px 14px}.coach{z-index:4;pointer-events:none;width:0;height:0;position:absolute}.coach-ring{border:1.5px solid var(--accent);border-radius:50%;width:22px;height:22px;position:absolute;top:-11px;left:-11px}.coach[data-motion] .coach-ring{animation:1.8s ease-out infinite coach-pulse}@keyframes coach-pulse{0%{opacity:1;transform:scale(.8)}70%,to{opacity:0;transform:scale(1.6)}}@media (prefers-reduced-motion:reduce){.coach[data-motion] .coach-ring{animation:none}}.coach-bubble{width:max-content;max-width:min(240px, calc(100vw - 2 * var(--space)));background:var(--ivory);border:1px solid var(--frost-border);color:var(--ink);pointer-events:auto;border-radius:10px;align-items:center;gap:8px;padding:6px 6px 6px 12px;font-size:13px;line-height:1.35;display:flex;position:absolute;bottom:14px;right:14px;box-shadow:0 2px 10px #2b2a281a}.coach-bubble p{margin:0}.island{transition:opacity var(--settle-ms) ease;color:var(--ink);font-size:13px;box-shadow:inset 0 1px #ffffff80,0 6px 24px -12px #2b2a2840}.studio[data-folding] .island:not(.foldbar){opacity:.4}.studio[data-folding] .island:not(.foldbar):hover,.studio[data-folding] .island:not(.foldbar):focus-within{opacity:1}.studio button,.studio input,.studio select{font:inherit;color:inherit}.studio :focus-visible{outline:2px solid var(--ink);outline-offset:2px;border-radius:6px}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.foldbar,.paper-panel{background:#faf7f1e6}.mode-switch{gap:2px;display:inline-flex}.topbar{top:var(--space);left:var(--space);align-items:center;gap:18px;padding:5px 8px 5px 18px;display:flex}.wordmark{font-family:var(--font-display);letter-spacing:.01em;margin:0;padding-bottom:2px;font-size:25px;font-weight:400;line-height:1}.bar-actions{align-items:center;gap:2px;display:flex}.sep{background:var(--frost-border);width:1px;height:18px;margin:0 6px}.tbtn{cursor:pointer;background:0 0;border:0;border-radius:8px;place-items:center;min-width:32px;height:32px;padding:0 6px;display:inline-grid}.tbtn.text{padding:0 11px;font-weight:500}.tbtn.primary{background:var(--ink);color:var(--ivory)}.tbtn svg{fill:none;stroke:currentColor;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;width:18px;height:18px}.tbtn:hover:not(:disabled){background:var(--ink-faint)}.tbtn.primary:hover:not(:disabled){background:var(--ink);opacity:.88}.tbtn:disabled,.tool:disabled,.seg button:disabled{opacity:.42;cursor:default}.tools{left:var(--space);flex-direction:column;gap:8px;width:124px;padding:8px;display:flex;top:50%;transform:translateY(-50%)}.stack{flex-direction:column;gap:1px;display:flex}.tool{text-align:left;cursor:pointer;background:0 0;border:0;border-radius:8px;height:32px;padding:0 10px}.tool:hover:not(:disabled){background:var(--ink-faint)}.tool[aria-pressed=true]{background:var(--ink);color:var(--ivory)}.tool.action{border:1px solid var(--frost-border)}.snaps,.views{border-top:1px solid var(--frost-border);padding-top:8px}.tool.view{height:28px;font-size:12.5px}.group-label{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);padding:0 10px 2px;font-size:11px}.tool.snap{height:28px;color:var(--ink-soft);padding-left:26px;font-size:12.5px;position:relative}.tool.snap:before{content:"";border:1.5px solid;border-radius:50%;width:9px;height:9px;margin-top:-4.5px;position:absolute;top:50%;left:9px}.tool.snap[aria-pressed=true]{color:var(--ink);background:0 0}.tool.snap[aria-pressed=true]:before{background:currentColor}.bottom{left:50%;bottom:var(--space);width:max-content;max-width:calc(100% - 2 * var(--space));pointer-events:none;flex-direction:column;align-items:center;gap:10px;display:flex;position:absolute;transform:translate(-50%)}.bottom>*{pointer-events:auto}.hint{-webkit-backdrop-filter:blur(var(--frost-blur));backdrop-filter:blur(var(--frost-blur));max-width:60ch;color:var(--ink-soft);text-align:center;text-wrap:balance;background:#faf7f1e0;border-radius:999px;margin:0;padding:3px 12px;font-size:14px}.hint[data-refusal],.hint[data-blocked]{color:var(--refusal)}.foldbar{max-width:100%;padding:8px 10px;position:relative}.fold-row{flex-wrap:wrap;justify-content:center;align-items:center;gap:10px 14px;display:flex}.seg{border:1px solid var(--frost-border);border-radius:9px;gap:2px;padding:2px;display:inline-flex}.seg button{cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:7px;height:28px;padding:0 11px}.seg button[aria-pressed=true]{background:var(--ink);color:var(--ivory)}.glyph{font-family:var(--font-mono);letter-spacing:-.1em;margin-right:4px}.angle{align-items:center;gap:8px;display:flex}.angle output{text-align:right;min-width:4ch}input[type=range]{width:150px;accent-color:var(--ink);cursor:pointer}.badge{align-items:center;gap:4px;font-size:12.5px;display:inline-flex}.readout{cursor:pointer;background:0 0;border:1px dashed #2b2a2859;border-radius:8px;height:28px;padding:0 10px;font-size:12.5px}.readout:hover:not(:disabled){background:var(--ink-faint)}.readout:disabled{opacity:.5;cursor:default}.numeric{border-bottom:1px solid var(--frost-border);flex-direction:column;align-items:flex-start;gap:8px;margin-bottom:8px;padding-bottom:8px;display:flex}.nrow{flex-wrap:wrap;gap:8px;display:flex}.nfield{color:var(--ink-soft);gap:2px;font-size:11px;display:grid}.nfield input{width:72px;height:28px;font-family:var(--font-mono);color:var(--ink);background:#fff9;border:1px solid #2b2a284d;border-radius:6px;padding:0 6px;font-size:12.5px}.nactions{gap:6px;display:flex}.nerror{color:var(--refusal);margin:0;font-size:12px}.paper-panel{left:calc(var(--space) * 2 + 124px);flex-direction:column;gap:12px;width:280px;padding:12px 14px 14px;display:flex;top:64px}.panel-head{justify-content:space-between;align-items:center;display:flex}.panel-head h2{font-family:var(--font-display);margin:0;font-size:20px;font-weight:400}.modes{grid-template-columns:1fr 1fr;gap:6px;display:grid}.mode{border:1px solid var(--frost-border);text-align:left;cursor:pointer;background:0 0;border-radius:9px;gap:1px;padding:7px 9px;display:grid}.mode small{color:var(--ink-soft);font-size:11px}.mode[aria-pressed=true]{background:var(--ink);color:var(--ivory)}.mode[aria-pressed=true] small{color:#f4efe6c7}.swatches{align-items:center;gap:8px;display:flex}.swatch{cursor:pointer;border:1px solid #2b2a2840;border-radius:50%;width:26px;height:26px;padding:0;position:relative}.swatch[aria-pressed=true]{outline:2px solid var(--ink);outline-offset:2px}.swatch.custom{background:conic-gradient(#d9472b,#c9962b,#7a9a57,#2f4a8a,#d9472b);overflow:hidden}.swatch.custom input{opacity:0;cursor:pointer;width:36px;height:36px;position:absolute;inset:-4px}.swatch.custom:focus-within{outline:2px solid var(--ink);outline-offset:2px}.editor{flex-direction:column;gap:10px;display:flex}.field-row{justify-content:space-between;align-items:center;gap:10px;display:flex}.field-row input[type=range]{width:140px}.note{color:var(--ink-soft);margin:0;font-size:12.5px}.sizes{align-self:flex-start}.dims{color:var(--ink-soft);align-items:center;gap:8px;font-size:12px;display:flex}.dims input{width:56px;height:28px;font-family:var(--font-mono);background:#fff9;border:1px solid #2b2a284d;border-radius:6px;margin-left:3px;padding:0 6px}@media (prefers-reduced-motion:reduce){.island{transition:none}}.foldbar[data-coarse] .seg button{height:40px}.foldbar[data-coarse] input[type=range]{height:32px}.lower,.dock,.dock-body{display:contents}.dock-handle{display:none}@media (width<=719.98px){.lower{pointer-events:none;flex-direction:column;gap:8px;display:flex;position:absolute;bottom:0;left:0;right:0}.lower>*{pointer-events:auto}.bottom{width:auto;max-width:none;padding:0 var(--space);pointer-events:none;position:static;transform:none}.bottom>*{max-width:100%}.dock{max-height:62vh;padding-bottom:env(safe-area-inset-bottom,0px);border-top:1px solid var(--frost-border);-webkit-backdrop-filter:blur(var(--frost-blur));background:#faf7f1f0;border-radius:18px 18px 0 0;flex-direction:column;display:flex;box-shadow:0 -8px 28px -14px #2b2a2859}.dock-handle{height:44px;color:var(--ink-soft);cursor:pointer;background:0 0;border:0;flex:none;justify-content:center;align-items:center;padding-top:8px;font-size:12.5px;display:flex;position:relative}.grabber{background:#2b2a2847;border-radius:2px;width:36px;height:4px;margin-left:-18px;position:absolute;top:8px;left:50%}.dock .island{width:auto;box-shadow:none;-webkit-backdrop-filter:none;background:0 0;border:0;border-radius:0;position:static;transform:none}.dock .tools{padding:0 var(--space) 8px;overscroll-behavior-x:contain;scrollbar-width:none;flex-direction:row;flex:none;align-items:center;gap:8px;overflow-x:auto}.dock .tools>*{flex:none}.dock .tools .stack{flex-direction:row;align-items:center;gap:2px}.dock .tools .snaps,.dock .tools .views{border-top:0;border-left:1px solid var(--frost-border);padding:0 0 0 8px}.dock .tool{white-space:nowrap;height:40px}.dock .tool.snap,.dock .tool.view{height:40px}.dock .group-label{display:none}.dock-body{padding:4px var(--space) var(--space);overscroll-behavior:contain;border-top:1px solid var(--frost-border);flex-direction:column;gap:10px;display:none;overflow-y:auto}.dock[data-open] .dock-body{display:flex}.dock .steps,.dock .paper-panel{gap:10px;padding:8px 0}.dock .step-list{flex:none;max-height:168px}.dock .mini-cp{height:110px}.dock .step-item,.dock .preset-btn{min-height:40px}.topbar{max-width:calc(100% - 2 * var(--space));gap:8px;padding-left:12px}.notice{max-width:calc(100% - 2 * var(--space))}}.scrim{z-index:10;background:#2b2a282e;place-items:center;display:grid;position:fixed;inset:0}.dialog{width:min(360px, calc(100% - 2 * var(--space)));background:#faf7f1f5;padding:16px 18px;position:static}.dialog h2{font-family:var(--font-display);margin:0 0 6px;font-size:21px;font-weight:400}.dialog p{color:var(--ink-soft);margin:0 0 14px;font-size:13.5px}.dialog-actions{justify-content:flex-end;gap:6px;display:flex}.steps{right:var(--space);top:var(--space);bottom:calc(var(--space) + 90px);background:#faf7f1e6;flex-direction:column;gap:10px;width:236px;padding:12px;display:flex}.mini-cp{border:1px solid var(--frost-border);background:var(--ivory);border-radius:8px;flex:none;width:100%;height:150px}.mini-cp line{stroke:var(--ink);stroke-width:1.2px;stroke-linecap:round}.mini-cp .cp-boundary{stroke-width:1.6px}.mini-cp .cp-open{stroke-width:.75px;stroke-opacity:.35}.step-list{flex:1;min-height:0;margin:0;padding:0;list-style:none;overflow-y:auto}.step-item{text-align:left;cursor:pointer;background:0 0;border:0;border-radius:6px;width:100%;padding:5px 8px;line-height:1.3;display:block}.step-item:hover{background:var(--ink-faint)}.step-item[aria-current=step]{background:var(--ink);color:var(--ivory)}.step-item[aria-disabled=true]{color:var(--ink-soft);border-left:2px dashed var(--ink-soft);border-radius:0 6px 6px 0;font-style:italic}.presets{flex-wrap:wrap;gap:4px;display:flex}.preset-btn{border:1px solid var(--frost-border);cursor:pointer;white-space:nowrap;background:0 0;border-radius:7px;flex:1;height:28px;padding:0 8px}.preset-btn[aria-pressed=true]{background:var(--ink);color:var(--ivory)}.steps .stop{border:1px solid var(--ink)}.toast{background:var(--ivory);border:1px solid var(--frost-border);border-radius:8px;justify-content:space-between;align-items:center;gap:8px;padding:4px 4px 4px 10px;display:flex}.export-wrap{display:inline-flex;position:relative}.export-menu{white-space:nowrap;background:var(--ivory);border:1px solid var(--frost-border);z-index:5;border-radius:10px;flex-direction:column;gap:2px;padding:4px;display:flex;position:absolute;top:calc(100% + 8px);right:0}@media (width>=720px){.export-menu{left:0;right:auto}}.export-opt{align-items:center;gap:6px;padding:4px 10px;font-size:.85rem;display:flex}.notice{left:50%;top:calc(var(--space) + 64px);z-index:6;position:absolute;transform:translate(-50%)}.share{width:min(460px, calc(100% - 2 * var(--space)))}.share-field{box-sizing:border-box;border:1px solid var(--frost-border);background:var(--ivory);width:100%;color:var(--ink);text-overflow:ellipsis;border-radius:8px;margin:0 0 8px;padding:8px 10px;font-size:12px}.share-warn{color:var(--ink)}.share-copied{min-height:1.2em;margin:0 0 8px}.studio[data-replaying] .dock,.studio[data-replaying] .tools{opacity:.4}.replaybar{background:#faf7f1e6;flex-wrap:wrap;justify-content:center;align-items:center;gap:10px 14px;max-width:100%;padding:8px 10px;display:flex;position:relative}.replaybar .scrub{align-items:center;gap:8px;display:flex}.replaybar .scrub input[type=range]{width:220px}.replaybar .scrub output{text-align:right;min-width:6ch}.replaybar .autoframe{cursor:pointer;align-items:center;gap:6px;display:inline-flex}.replaybar .autoframe input{accent-color:var(--ink)}@media (width<=719px){.replaybar .scrub input[type=range]{width:140px}}.record{width:min(400px, calc(100% - 2 * var(--space)))}.record-opts{border:0;flex-wrap:wrap;align-items:center;gap:4px 14px;margin:0 0 10px;padding:0;font-size:13.5px;display:flex}.record-opts legend{float:left;width:88px;color:var(--ink-soft);padding:0}.record-opts label{cursor:pointer;align-items:center;gap:5px;display:inline-flex}.record-note{font-size:12px}.record-progress{background:var(--ink-faint);border-radius:4px;height:8px;margin:0 0 14px;overflow:hidden}.record-progress>span{background:var(--accent);height:100%;transition:width .12s linear;display:block}@media (prefers-reduced-motion:reduce){.record-progress>span{transition:none}}.dialog p.record-warn{color:var(--ink)}.tool[data-lesson=dimmed]{opacity:.45}.tool[data-lesson=expected]{box-shadow:inset 0 0 0 1.5px var(--accent)}.tool[data-lesson=expected][aria-pressed=true]{box-shadow:inset 0 0 0 1.5px var(--accent), 0 0 0 2px var(--ivory)}.lesson-head{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.lesson-title{font-family:var(--font-display);margin:0;font-size:22px;font-weight:400}.lesson-count{color:var(--ink-soft)}.lesson-now{flex-direction:column;gap:6px;display:flex}.lesson-caption{margin:0;font-size:15px;line-height:1.35}.lesson-msg{color:var(--ink-soft);margin:0}.lesson-msg.miss{color:var(--refusal)}.lesson-hint{border-left:2px solid var(--accent);background:var(--ink-faint);border-radius:0 6px 6px 0;margin:0;padding:6px 8px}.lesson-actions{flex-wrap:wrap;gap:6px;display:flex}.ink-check{color:var(--ink);animation:ink-check var(--settle-ms) ease-out both;display:inline-block}@keyframes ink-check{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:none}}.step-item[data-state=done],.step-item[data-state=skipped]{color:var(--ink-soft)}.step-item:disabled{cursor:default;color:var(--ink-soft)}.step-mark{float:right;font-family:var(--font-mono);margin-left:6px;font-size:11px}.lesson-summary{flex-direction:column;gap:8px;display:flex}.lesson-done{font-family:var(--font-display);margin:0;font-size:18px}.lesson-stats{grid-template-columns:repeat(3,1fr);gap:6px;margin:0;display:grid}.lesson-stats dt{color:var(--ink-soft);font-size:11px}.lesson-stats dd{margin:0}.lesson-pick .difficulty{letter-spacing:1px;color:var(--ink-soft);margin-left:6px;font-size:9px}.lesson-empty{color:var(--ink-soft);margin:0}.soft-unavailable,.soft-note{color:var(--ink-soft);margin:0;font-size:11px}.soft-curve{color:var(--ink-soft);flex-direction:column;gap:2px;font-size:11px;display:flex}.soft-curve input{width:100%;accent-color:var(--ink)}.layer-belt{z-index:5;pointer-events:none;border-radius:50%}.studio[data-folding] .island.layer-belt{opacity:1}.layer-belt svg{display:block;overflow:visible}.layer-belt line,.layer-belt path{fill:none;stroke:var(--ink-soft);stroke-width:1.5px;stroke-linecap:round}.layer-belt [data-picked]{stroke:var(--accent);stroke-width:2px}
