.viewer-loading{z-index:3;background:radial-gradient(circle at 50% 45%, var(--stage) 0%, var(--stage-2) 100%);color:var(--ink-2);pointer-events:none;place-content:center;justify-items:center;gap:14px;animation:.35s cubic-bezier(.2,.7,.2,1) both vl-in;display:grid;position:absolute;inset:0}.viewer-loading.over{background:color-mix(in srgb, var(--stage-2) 74%, transparent);-webkit-backdrop-filter:blur(12px)saturate(.8)}.vl-svg{filter:drop-shadow(0 10px 18px #0003);width:188px;height:auto;overflow:visible}.vl-label{letter-spacing:.015em;color:var(--ink-2);font-size:.86rem}.vl-dots i{font-style:normal;animation:1.4s ease-in-out infinite vl-dot;display:inline-block}.vl-dots i:nth-child(2){animation-delay:.18s}.vl-dots i:nth-child(3){animation-delay:.36s}@keyframes vl-dot{0%,70%,to{opacity:.25;transform:translateY(0)}35%{opacity:1;transform:translateY(-1.5px)}}@keyframes vl-in{0%{opacity:0;transform:scale(.985)}to{opacity:1;transform:none}}.cz-poster{transition:opacity .5s}.cz-poster.gone{opacity:0}@media (prefers-reduced-motion:reduce){.viewer-loading,.vl-dots i{animation:none}.vl-dots i{opacity:.6}.cz-poster{transition:none}}
.studio-app{background:var(--paper-2);grid-template-columns:minmax(320px,380px) minmax(0,1fr) minmax(300px,360px);grid-template-areas:"left stage right";gap:0;height:calc(100dvh - 61px);display:grid}.studio-left{background:var(--paper-2);flex-direction:column;grid-area:left;min-height:0;display:flex}.studio-stage{border:1px solid var(--line);min-width:0;min-height:0;box-shadow:var(--shadow-lg);background:var(--stage);border-radius:22px;grid-area:stage;margin:10px 0;position:relative;overflow:hidden}.studio-right{background:var(--paper-2);flex-direction:column;grid-area:right;min-height:0;display:flex}.studio-mobile{display:none}.studio-left-head{align-items:center;gap:8px;padding:14px 12px 8px 18px;display:flex}.studio-title{flex:auto;min-width:72px;margin-right:auto;line-height:1.2;display:grid}.studio-title>*{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.studio-title b{font-family:var(--font-display);letter-spacing:-.02em;font-size:1rem;font-weight:600}.provider-select{background:var(--card);border-radius:999px;width:auto;max-width:170px;height:26px;padding:0 8px;font-size:.74rem;box-shadow:0 1px 2px #0000000a}@media (max-width:1100px){.studio-app{grid-template:"stage"min(58dvh,560px)"mobile""left"/minmax(0,1fr);height:auto}.studio-app[data-fresh]{grid-template-rows:min(26dvh,240px) auto auto;grid-template-areas:"stage""left""mobile"}.studio-app[data-fresh] .studio-left{min-height:0}.studio-right{display:none}.studio-left{border-right:0;min-height:60dvh}.studio-left[data-mobile-hidden=true]{display:none}.studio-left-head{z-index:5;background:var(--card);position:sticky;top:61px}.studio-mobile{background:var(--card);border-bottom:1px solid var(--line);z-index:6;grid-area:mobile;padding:10px 12px;display:block;position:sticky;top:61px}.studio-mobile-panel{border-top:1px solid var(--line);margin:10px -12px -10px}.studio-mobile-panel .inspector-scroll{max-height:none}}.stage{background:radial-gradient(120% 90% at 50% 38%, var(--stage-hi) 0%, var(--stage) 55%, var(--stage-2) 100%);position:absolute;inset:0}.stage:after{content:"";pointer-events:none;background:radial-gradient(60% 40% at 50% 100%, color-mix(in srgb, var(--accent) 5%, transparent), transparent 70%);position:absolute;inset:0}.stage canvas{touch-action:none}.stage-loading{background:radial-gradient(circle at 50% 45%, var(--stage) 0%, var(--stage-2) 100%)}.stage-overlay{z-index:4;cursor:crosshair;position:absolute;inset:0}.stage[data-tool=mark] canvas{cursor:crosshair}.stage[data-tool=measure] canvas{cursor:copy}.stage-hint{z-index:6;background:var(--ink);max-width:calc(100% - 24px);color:var(--paper);pointer-events:none;white-space:nowrap;border-radius:999px;padding:8px 14px;font-size:.85rem;font-weight:500;animation:.2s both ui-fade-in;position:absolute;top:104px;left:50%;transform:translate(-50%);box-shadow:0 8px 24px -10px #00000073}.stage-top{z-index:7;pointer-events:none;align-items:center;gap:10px;display:flex;position:absolute;top:12px;left:12px;right:12px}.stage-top>*{pointer-events:auto}.phase-pill{background:color-mix(in srgb, var(--card) 72%, transparent);border:.5px solid color-mix(in srgb, var(--ink) 10%, transparent);-webkit-backdrop-filter:saturate(180%)blur(20px);border-radius:999px;align-items:center;gap:8px;height:34px;padding:0 14px 0 10px;font-size:.82rem;font-weight:500;display:inline-flex;box-shadow:0 1px 2px #0000000d,0 8px 24px -12px #0003}.phase-pill svg{width:16px;height:16px}.phase-pill.working{border-color:color-mix(in srgb, var(--accent) 45%, var(--line))}.phase-pill.working svg{color:var(--accent)}.version-nav{background:color-mix(in srgb, var(--card) 72%, transparent);border:.5px solid color-mix(in srgb, var(--ink) 10%, transparent);-webkit-backdrop-filter:saturate(180%)blur(20px);backdrop-filter:saturate(180%)blur(20px);border-radius:999px;align-items:center;gap:2px;height:36px;margin-left:auto;padding:0 2px;display:inline-flex;box-shadow:0 8px 24px -12px #0003}.version-nav .ui-icon-btn{width:30px;height:30px}.version-nav span{color:var(--ink-2);padding:0 4px}.stage-empty{z-index:5;text-align:center;justify-items:center;gap:4px;width:min(560px,100% - 32px);display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.steps3{grid-template-columns:repeat(3,1fr);gap:10px;width:100%;margin:0;padding:0;list-style:none;display:grid}.steps3 li{background:color-mix(in srgb, var(--card) 75%, transparent);border:.5px solid color-mix(in srgb, var(--ink) 9%, transparent);-webkit-backdrop-filter:saturate(180%)blur(20px);backdrop-filter:saturate(180%)blur(20px);border-radius:18px;justify-items:center;gap:2px;padding:18px 10px;display:grid;box-shadow:0 8px 30px -16px #0000002e}.steps3 li.on{box-shadow:0 0 0 1.5px var(--ink), 0 12px 30px -14px #00000040}.steps3 span{background:var(--paper-2);width:26px;height:26px;color:var(--ink-2);font:500 .8rem/1 var(--font-mono);border:1px solid var(--line);border-radius:50%;place-items:center;margin-bottom:6px;display:grid}.steps3 li.on span{background:var(--ink);color:var(--paper);border-color:var(--ink)}.steps3 b{font-family:var(--font-display);letter-spacing:-.02em;font-weight:600}.steps3 small{color:var(--ink-2);font-size:.78rem;line-height:1.3}.stage-empty>p{margin:18px 0 8px}.starter-grid{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.starter-grid button{border:1px solid var(--line);background:var(--card);height:34px;color:var(--ink);font:500 .83rem/1 var(--font-body);cursor:pointer;border-radius:999px;align-items:center;gap:7px;padding:0 14px;transition:border-color .15s,transform .1s,box-shadow .15s;display:inline-flex;box-shadow:0 1px 2px #0000000a}.starter-grid button:hover{border-color:var(--ink);transform:translateY(-1px)}.starter-grid svg{width:15px;height:15px;color:var(--ink-3)}@media (max-width:560px){.steps3 small{display:none}.steps3 li{padding:12px 6px}}.dock{z-index:7;background:color-mix(in srgb, var(--card) 70%, transparent);border:.5px solid color-mix(in srgb, var(--ink) 10%, transparent);-webkit-backdrop-filter:saturate(180%)blur(24px);scrollbar-width:none;border-radius:999px;align-items:center;gap:2px;max-width:calc(100% - 24px);padding:5px;display:flex;position:absolute;bottom:16px;left:50%;overflow-x:auto;transform:translate(-50%);box-shadow:0 1px 2px #0000000d,0 18px 44px -18px #00000059}.dock-btn,.dock-view{height:38px;color:var(--ink-2);font:500 .84rem/1 var(--font-body);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:999px;align-items:center;gap:7px;padding:0 14px;transition:background .15s,color .15s;display:inline-flex}.dock-view{padding:0 10px;font-weight:500}.dock-btn svg,.dock-view svg{stroke-width:1.8px;flex:none;width:17px;height:17px}.dock-btn:hover,.dock-view:hover{background:color-mix(in srgb, var(--ink) 6%, transparent);color:var(--ink)}.dock-btn.on{background:var(--ink);color:var(--paper);box-shadow:0 2px 8px -2px #0000004d}.dock-btn.mark.on{background:var(--accent);color:#fff}.dock-btn.mark:not(.on) svg{color:var(--accent)}.dock-sep{background:color-mix(in srgb, var(--ink) 10%, transparent);flex:none;width:1px;height:20px;margin:0 4px}@media (max-width:760px){.dock{border-radius:18px;bottom:10px}.dock-btn,.dock-view{border-radius:13px;flex-direction:column;justify-content:center;gap:2px;min-width:44px;height:44px;padding:0 7px;font-size:.62rem}.dock-btn svg,.dock-view svg{width:16px;height:16px}.dock-view.secondary{display:none}}.part-chips{z-index:6;flex-direction:column;gap:4px;max-height:45%;display:flex;position:absolute;bottom:76px;left:12px;overflow-y:auto}.part-chips button{border:1px solid var(--line);background:color-mix(in srgb, var(--card) 88%, transparent);color:var(--ink-2);font:500 .78rem/1.2 var(--font-body);cursor:default;text-align:left;border-radius:8px;align-items:center;gap:7px;padding:5px 10px 5px 7px;display:inline-flex}.part-chips button:hover{color:var(--ink);border-color:var(--ink-3)}.part-chips span{border-radius:3px;flex:none;width:10px;height:10px}@media (max-width:1100px){.part-chips{display:none}}.pin{background:var(--accent);color:#fff;width:30px;height:30px;font:700 .8rem/1 var(--font-mono);cursor:pointer;border:2px solid #fff;border-radius:50% 50% 50% 4px;place-items:center;display:grid;transform:rotate(-45deg)translate(10px,-10px);box-shadow:0 6px 14px -4px #00000073}.pin>*{transform:rotate(45deg)}.pin.sent{background:#3f3f46}.pin.active{box-shadow:0 0 0 5px color-mix(in srgb, var(--accent) 35%, transparent), 0 6px 14px -4px #00000073}.pin.static{width:24px;height:24px;box-shadow:none;cursor:default;border-width:0;border-radius:50%;flex:none;font-size:.72rem;transform:none}.measure-label{background:var(--blue);color:#fff;font:700 .8rem/1 var(--font-mono);white-space:nowrap;border-radius:6px;padding:4px 9px;box-shadow:0 4px 10px -4px #0006}.code-drawer{z-index:8;color:#d9dde3;background:#111418;border:1px solid #262b33;border-radius:18px;flex-direction:column;max-height:46%;display:flex;position:absolute;bottom:72px;left:12px;right:12px;overflow:hidden;box-shadow:0 24px 60px -24px #000000b3}.code-drawer header{border-bottom:1px solid #242932;align-items:center;gap:8px;padding:6px 8px 6px 14px;display:flex}.code-drawer header svg{width:17px;height:17px;color:var(--accent)}.code-drawer header .ui-icon-btn{color:#9aa1ab}.code-drawer header .ui-icon-btn:hover{color:#fff;background:#222730}.code-drawer header .muted{color:#7c838e}.code-scroll{overflow:auto}.code-drawer pre{font:.8rem/1.55 var(--font-mono);margin:0;padding:10px 0 14px}.code-line{padding-right:16px;display:flex}.code-ln{text-align:right;color:#4b525d;-webkit-user-select:none;user-select:none;flex:none;width:44px;padding-right:14px}.c-com{color:#6d7684;font-style:italic}.c-str{color:#a8d78a}.c-num{color:#f5b26b}.c-kw{color:#c792ea}.c-fn{color:#ff8a5c}.code-caret{background:var(--accent);vertical-align:middle;width:8px;height:15px;margin-left:58px;animation:1s steps(2,end) infinite ui-pulse;display:inline-block}.log{flex-direction:column;flex:1;min-height:0;display:flex}.log-feed{flex-direction:column;flex:1;gap:14px;padding:10px 18px 18px;display:flex;overflow-y:auto}.log-user{background:var(--card);max-width:88%;color:var(--ink);border:1px solid var(--line);white-space:pre-wrap;overflow-wrap:anywhere;border-radius:18px 18px 6px;align-self:flex-end;padding:10px 14px;font-size:.9rem;box-shadow:0 1px 2px #0000000a}.log-user-marks{font:500 .72rem/1 var(--font-mono);color:var(--accent-ink);margin-top:4px;display:block}.log-ai{color:var(--ink);font-size:.9rem;line-height:1.6}.log-ai p{white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.log-ai>*+*{margin-top:.6em}.log-ai-list{overflow-wrap:anywhere;margin:0;padding-left:1.2em}.log-ai-list li+li{margin-top:.25em}.log-ai strong{font-weight:600}.log-thinking button{color:var(--ink-3);font:500 .78rem/1.4 var(--font-body);cursor:pointer;background:0 0;border:0;align-items:center;gap:5px;margin-bottom:4px;padding:0;display:inline-flex}.log-thinking button:hover{color:var(--ink)}.log-thinking svg{width:14px;height:14px}.log-thinking p{color:var(--ink-2);border-left:2px solid var(--line);white-space:pre-wrap;margin:2px 0 8px;padding-left:10px;font-size:.8rem}.log-version{border:1px solid var(--line);background:var(--card);text-align:left;font:inherit;color:inherit;cursor:pointer;border-radius:16px;grid-template-columns:52px 1fr auto;align-items:center;gap:12px;padding:6px 12px 6px 6px;transition:border-color .15s;display:grid;box-shadow:0 1px 2px #0000000a}.log-version:hover{border-color:var(--ink-3)}.log-version.current{border-color:var(--ink);box-shadow:0 0 0 .5px var(--ink), 0 6px 18px -10px #00000040}.log-version img,.log-version-noimg{object-fit:cover;background:var(--stage);border-radius:11px;width:52px;height:52px;display:block}.log-version b{font-size:.86rem;font-weight:500;display:block}.log-version small{color:var(--ink-2);text-overflow:ellipsis;white-space:nowrap;font-size:.78rem;display:block;overflow:hidden}.log-version svg{width:20px;height:20px}.log-version svg.ok{color:var(--ok)}.log-version svg.err{color:var(--err)}.log-final{border:1px solid var(--line);background:var(--card);box-shadow:var(--shadow);border-radius:20px;padding:18px 18px 16px;font-size:.88rem}.log-final header{background:color-mix(in srgb, var(--ok) 12%, transparent);height:24px;font:500 .74rem/1 var(--font-body);color:var(--ok);border-radius:999px;align-items:center;gap:6px;padding:0 10px;display:inline-flex}.log-final header svg{width:15px;height:15px}.log-final h3{letter-spacing:-.025em;margin:12px 0 4px;font-size:1.12rem}.log-final h4{font-size:.78rem;font-weight:500;font-family:var(--font-body);color:var(--ink-3);margin:16px 0 6px}.log-final p{margin:0 0 4px}.log-final ul,.log-final ol{gap:3px;margin:0;padding-left:20px;display:grid}.log-chips{flex-wrap:wrap;gap:6px;display:flex}.log-chips span{background:var(--card);border:1px solid var(--line);border-radius:999px;padding:3px 10px;font-size:.8rem}.log-estimate{color:var(--ink-2);font-size:.86rem;margin-top:8px!important}.log-estimate b{color:var(--ink);font-weight:600}.log-next{background:var(--accent-soft);color:var(--ink);border-radius:12px;align-items:flex-start;gap:8px;padding:10px 12px;font-size:.88rem;line-height:1.45;display:flex;margin-top:12px!important}.log-next svg{width:16px;height:16px;color:var(--accent);flex:none;margin-top:2px}.log-caveat{color:var(--ink-2);background:var(--paper-2);border-radius:12px;padding:10px 12px;font-size:.8rem;margin-top:14px!important}.log-note{color:var(--ink-2);text-align:center;margin:0;font-size:.82rem}.log-note.err{color:var(--ink);text-align:left;background:color-mix(in srgb, var(--warn) 10%, var(--card));border:1px solid color-mix(in srgb, var(--warn) 35%, var(--line));border-radius:12px;padding:10px 12px;line-height:1.45}.log-retry{margin-top:8px;display:flex}.welcome{padding:8px 2px}.welcome h2{letter-spacing:-.025em;margin:10px 0 8px;font-size:1.6rem}.welcome p{color:var(--ink-2);font-size:.93rem}.welcome-ideas{gap:8px;margin-top:14px;display:grid}.welcome-ideas button{border:1px solid var(--line);background:var(--card);text-align:left;font:450 .88rem/1.4 var(--font-body);color:var(--ink);cursor:pointer;border-radius:16px;align-items:center;gap:12px;padding:13px 16px;transition:border-color .15s,transform .1s,box-shadow .15s;display:flex;box-shadow:0 1px 2px #0000000a}.welcome-ideas button:hover{border-color:var(--ink);box-shadow:var(--shadow);transform:translateY(-1px)}.welcome-icon{width:52px;height:44px;color:var(--ink-2);background:radial-gradient(circle at 50% 40%, color-mix(in srgb, var(--blue) 10%, transparent), transparent 70%), var(--paper-2);border:1px solid var(--line);border-radius:12px;flex:none;place-items:center;display:grid}.welcome-ideas button:hover .welcome-icon{color:var(--accent);border-color:color-mix(in srgb, var(--accent) 35%, var(--line))}.log-marks{gap:6px;padding:10px 14px;display:grid}.log-mark{align-items:center;gap:8px;display:flex}.log-mark input{border-radius:999px;height:38px;padding:0 14px;font-size:.86rem}.log-mark.active input{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 18%, transparent)}.composer{gap:8px;padding:6px 14px 14px;display:grid}.composer-busy{color:var(--ink-2);flex-wrap:wrap;align-items:center;gap:6px 8px;font-size:.8rem;display:flex}.composer-busy>span{flex:180px;line-height:1.35}.composer-pause{border:1px solid var(--line);background:var(--card);height:30px;color:var(--ink-2);font:500 .78rem/1 var(--font-body);cursor:pointer;border-radius:999px;align-items:center;gap:4px;padding:0 11px;display:inline-flex}.composer-pause svg{width:14px;height:14px}.composer-pause.on{border-color:var(--ink);color:var(--ink);background:var(--surface-2)}.composer-box{border:1px solid var(--line);background:var(--card);border-radius:22px;align-items:flex-end;gap:8px;padding:7px 7px 7px 16px;transition:border-color .15s,box-shadow .15s;display:flex;box-shadow:0 1px 2px #0000000a,0 12px 30px -18px #00000040}.composer-box:focus-within{border-color:color-mix(in srgb, var(--ink) 22%, transparent);box-shadow:0 0 0 4px var(--line-2), 0 12px 30px -18px #00000040}.composer-box textarea{resize:none;background:0 0;border:0;outline:none;min-height:38px;max-height:160px;padding:8px 0;font-size:.95rem;line-height:1.45;overflow:hidden;box-shadow:none!important}.composer-send{background:var(--ink);width:36px;height:36px;color:var(--paper);cursor:pointer;border:0;border-radius:999px;flex:none;place-items:center;transition:transform .1s,opacity .15s;display:grid}.composer-send svg{width:20px;height:20px}.composer-send:disabled{background:var(--line);color:var(--ink-3);cursor:not-allowed}.composer-send:not(:disabled):active{transform:scale(.94)}.inspector{flex-direction:column;height:100%;min-height:0;display:flex}.inspector>.ui-tabs{margin:14px 14px 0}.inspector-scroll{flex:1;overflow-y:auto}.insp-body{align-content:start;gap:18px;padding:18px;display:grid}.insp-lead{color:var(--ink-2);margin:0;font-size:.88rem}.insp-group{gap:16px;display:grid}.insp-more{color:var(--ink-2);gap:4px;margin:6px 0 2px 58px;padding:0;font-size:.8rem;list-style:none;display:grid}.insp-select{align-items:center;display:flex;position:relative}.insp-select>svg:first-child{width:17px;height:17px;color:var(--ink-3);pointer-events:none;position:absolute;left:12px}.insp-select>svg:last-child{width:16px;height:16px;color:var(--ink-3);pointer-events:none;position:absolute;right:12px}.insp-select select{appearance:none;cursor:pointer;border-radius:14px;height:44px;padding:0 36px 0 40px;font-weight:500;box-shadow:0 1px 2px #0000000a}.insp-stats{grid-template-columns:1fr 1fr;gap:8px;display:grid}.insp-stats>div{background:var(--card);border:1px solid var(--line);border-radius:16px;grid-template-columns:auto 1fr;align-items:center;column-gap:10px;padding:12px 14px;display:grid;box-shadow:0 1px 2px #00000008}.insp-stats svg{width:18px;height:18px;color:var(--ink-3);grid-row:span 2}.insp-stats b{font:600 1rem/1.2 var(--font-display);letter-spacing:-.02em}.insp-stats span{color:var(--ink-2);font-size:.74rem}.insp-details summary{cursor:pointer;color:var(--ink-2);font-size:.85rem}.insp-empty{text-align:center;color:var(--ink-2);justify-items:center;gap:6px;padding:48px 24px;display:grid}.insp-empty>span{background:var(--card);border:1px solid var(--line);width:48px;height:48px;box-shadow:var(--shadow);color:var(--ink-3);border-radius:999px;place-items:center;display:grid}.insp-empty svg{width:22px;height:22px}.insp-empty b{color:var(--ink);font-family:var(--font-display);letter-spacing:-.02em;font-weight:600}.insp-empty p{max-width:260px;margin:0;font-size:.86rem}.focus-bar{z-index:7;scrollbar-width:none;gap:6px;padding-bottom:2px;display:flex;position:absolute;top:60px;left:12px;right:12px;overflow-x:auto}.focus-bar button{border:.5px solid color-mix(in srgb, var(--ink) 10%, transparent);background:color-mix(in srgb, var(--card) 72%, transparent);-webkit-backdrop-filter:saturate(180%)blur(20px);backdrop-filter:saturate(180%)blur(20px);height:32px;color:var(--ink-2);font:500 .8rem/1 var(--font-body);cursor:pointer;border-radius:999px;flex:none;align-items:center;gap:7px;padding:0 12px;transition:background .15s,color .15s,border-color .15s;display:inline-flex;box-shadow:0 4px 14px -8px #0000002e}.focus-bar button:hover{color:var(--ink);border-color:var(--ink-3)}.focus-bar button.on{background:var(--ink);color:var(--paper);border-color:var(--ink)}.focus-bar button.on .muted{color:color-mix(in srgb, var(--paper) 60%, transparent)}.focus-bar i{border-radius:3px;flex:none;width:10px;height:10px}.parts-pill-row{z-index:7;align-items:center;gap:6px;max-width:calc(100% - 24px);display:flex;position:absolute;top:56px;left:12px}.parts-pill,.parts-pill-focus{border:.5px solid color-mix(in srgb, var(--ink) 10%, transparent);background:color-mix(in srgb, var(--card) 78%, transparent);-webkit-backdrop-filter:saturate(180%)blur(20px);height:32px;color:var(--ink);font:500 .8rem/1 var(--font-body);border-radius:999px;flex:none;align-items:center;gap:7px;padding:0 10px 0 11px;display:inline-flex;box-shadow:0 4px 14px -8px #0000002e}.parts-pill{cursor:pointer;transition:border-color .15s}.parts-pill:hover{border-color:var(--ink-3)}.parts-pill svg{width:15px;height:15px;color:var(--ink-2)}.parts-pill .muted{font-family:var(--font-mono);font-size:.74rem}.parts-pill-tag{background:color-mix(in srgb, var(--ink) 8%, transparent);color:var(--ink-2);border-radius:999px;padding:3px 7px;font-size:.7rem}.parts-pill-focus{background:var(--ink);min-width:0;color:var(--paper);border-color:var(--ink);flex:0 auto;padding-right:3px}.parts-pill-focus-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.parts-pill-focus button{background:color-mix(in srgb, var(--paper) 16%, transparent);width:26px;height:26px;color:var(--paper);cursor:pointer;border:0;border-radius:50%;flex:none;place-items:center;display:grid}.parts-pill-focus button svg{width:14px;height:14px}.parts-panel{z-index:8;background:color-mix(in srgb, var(--card) 94%, transparent);-webkit-backdrop-filter:saturate(180%)blur(24px);border:.5px solid color-mix(in srgb, var(--ink) 12%, transparent);border-radius:16px;flex-direction:column;width:min(272px,100% - 24px);min-height:140px;max-height:calc(100% - 196px);display:flex;position:absolute;top:56px;left:12px;overflow:hidden;box-shadow:0 1px 2px #0000000d,0 18px 44px -18px #0006}.parts-head{align-items:center;padding:4px;display:flex}.parts-title{height:32px;color:var(--ink);font:500 .82rem/1 var(--font-body);cursor:pointer;text-align:left;background:0 0;border:0;border-radius:10px;flex:1;align-items:center;gap:7px;padding:0 8px;display:flex}.parts-title:hover{background:color-mix(in srgb, var(--ink) 5%, transparent)}.parts-title>svg{width:15px;height:15px;color:var(--ink-2);flex:none}.parts-title .muted{font-size:.74rem}.parts-title .parts-chev{margin-left:auto;transform:rotate(180deg)}.parts-search{background:var(--card);border:1px solid var(--line);border-radius:10px;align-items:center;gap:6px;height:32px;margin:0 8px 6px;padding:0 9px;display:flex}.parts-search:focus-within{border-color:var(--ink-3);box-shadow:0 0 0 3px var(--focus)}.parts-search svg{width:14px;height:14px;color:var(--ink-3);flex:none}.parts-search input{min-width:0;height:100%;color:var(--ink);font:400 .8rem/1 var(--font-body);background:0 0;border:0;outline:none;flex:1}.parts-slots{flex-wrap:wrap;gap:4px;margin:0 8px 6px;display:flex}.parts-slots button{border:1px solid var(--line);background:var(--card);height:24px;color:var(--ink-2);font:500 .7rem/1 var(--font-body);cursor:pointer;border-radius:999px;align-items:center;gap:5px;padding:0 8px;display:inline-flex}.parts-slots button[aria-pressed=true]{border-color:var(--ink);color:var(--ink);box-shadow:inset 0 0 0 .5px var(--ink)}.parts-slots button i{width:9px;height:9px;box-shadow:0 0 0 1px color-mix(in srgb, var(--ink) 28%, transparent);border-radius:50%}.parts-slots .parts-slot-solo svg{width:12px;height:12px}.parts-list{overscroll-behavior:contain;flex:auto;min-height:0;margin:0;padding:0 4px 4px;list-style:none;overflow-y:auto}.parts-row{border-radius:9px;align-items:center;display:flex;position:relative}.parts-row:hover{background:color-mix(in srgb, var(--ink) 5%, transparent)}.parts-row.on{background:var(--ink)}.parts-row.on .parts-row-main,.parts-row.on .parts-row-act{color:var(--paper)}.parts-row.on .parts-qty,.parts-row.on .parts-slot-tag{color:color-mix(in srgb, var(--paper) 70%, transparent)}.parts-row.off .parts-row-main{opacity:.5}.parts-row.off .parts-swatch{box-shadow:inset 0 0 0 1.5px var(--ink-3);background:0 0!important}.parts-row-main{min-width:0;height:32px;color:var(--ink);font:400 .8rem/1 var(--font-body);cursor:pointer;text-align:left;background:0 0;border:0;border-radius:9px;flex:1;align-items:center;gap:8px;padding:0 4px 0 8px;display:flex}.parts-swatch{width:12px;height:12px;box-shadow:0 0 0 1px color-mix(in srgb, var(--ink) 22%, transparent);border-radius:4px;flex:none}.parts-name{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}.parts-qty{font:500 .72rem/1 var(--font-mono);color:var(--ink-3);flex:none}.parts-slot-tags{flex:none;gap:3px;display:inline-flex}.parts-slot-tag{background:color-mix(in srgb, var(--ink) 6%, transparent);color:var(--ink-2);font:500 .66rem/1 var(--font-mono);border-radius:6px;align-items:center;gap:3px;padding:2px 5px;display:inline-flex}.parts-slot-tag i{width:7px;height:7px;box-shadow:0 0 0 1px color-mix(in srgb, var(--ink) 28%, transparent);border-radius:50%}.parts-row-act{width:28px;height:28px;color:var(--ink-3);cursor:pointer;background:0 0;border:0;border-radius:8px;flex:none;place-items:center;display:grid}.parts-row-act:hover{color:var(--ink);background:color-mix(in srgb, var(--ink) 8%, transparent)}.parts-row-act svg{width:14px;height:14px}.parts-row-act[aria-pressed=true]{color:var(--ink)}@media (hover:hover){.parts-row-act.solo{opacity:0}.parts-row:hover .parts-row-act.solo,.parts-row:focus-within .parts-row-act.solo{opacity:1}}.parts-none{color:var(--ink-2);padding:12px 10px;font-size:.78rem}.parts-none button,.parts-foot button{color:var(--accent-ink);font:500 .78rem/1 var(--font-body);text-underline-offset:3px;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.parts-foot{border-top:1px solid color-mix(in srgb, var(--ink) 8%, transparent);color:var(--ink-2);justify-content:space-between;align-items:center;gap:8px;padding:8px 12px;font-size:.74rem;display:flex}.parts-foot button{margin-left:auto}@media (max-width:760px){.parts-panel{max-height:calc(100% - 130px)}}.mark-bar{z-index:9;background:var(--ink);width:max-content;max-width:calc(100% - 24px);color:var(--paper);border-radius:18px;flex-wrap:nowrap;justify-content:center;align-items:center;gap:8px;padding:5px;display:flex;position:absolute;bottom:74px;left:50%;transform:translate(-50%);box-shadow:0 10px 30px -12px #00000080}.mark-shape{background:color-mix(in srgb, var(--paper) 14%, transparent);border-radius:13px;flex:none;padding:2px;display:inline-flex}.mark-shape button{height:30px;color:color-mix(in srgb, var(--paper) 72%, transparent);font:500 .8rem/1 var(--font-body);cursor:pointer;background:0 0;border:0;border-radius:11px;align-items:center;gap:6px;padding:0 11px;display:inline-flex}.mark-shape button:hover{color:var(--paper)}.mark-shape button[aria-checked=true]{background:var(--accent);color:#fff;box-shadow:0 1px 3px #00000040}.mark-shape svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;width:16px;height:16px}.mark-bar-hint{min-width:0;max-width:360px;padding:0 4px;font-size:.82rem;line-height:1.3}.mark-bar-hint b{font-weight:600}.mark-bar-hint.miss{color:#ffb4a0}.mark-bar-done{background:color-mix(in srgb, var(--paper) 14%, transparent);height:30px;color:var(--paper);font:500 .8rem/1 var(--font-body);cursor:pointer;border:0;border-radius:11px;flex:none;align-items:center;gap:6px;padding:0 6px 0 12px;display:inline-flex}.mark-bar-done:hover{background:color-mix(in srgb, var(--paper) 22%, transparent)}.mark-bar-done kbd{font:600 .64rem/1 var(--font-mono);background:color-mix(in srgb, var(--paper) 16%, transparent);border-radius:5px;padding:3px 5px}@media (max-width:760px){.mark-bar{flex-wrap:wrap;bottom:64px}.mark-bar-hint{text-align:center;flex-basis:100%;order:3;padding:0 6px 3px;font-size:.76rem}.mark-bar-done kbd{display:none}}.mark-face-size{color:inherit;font-variant-numeric:tabular-nums;font-weight:650}.mark-face-swatch{vertical-align:0;background:#2f6bff;border-radius:3px;width:9px;height:9px;margin-right:6px;display:inline-block;box-shadow:0 0 0 2px #2f6bff4d}.mark-face-scope{background:color-mix(in srgb, var(--paper) 14%, transparent);border-radius:999px;gap:2px;padding:2px;display:inline-flex}.mark-face-scope button{font:inherit;color:inherit;cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:999px;padding:5px 10px;font-size:.78rem}.mark-face-scope button[aria-checked=true]{background:var(--paper);color:var(--ink);font-weight:600}.mark-face-scope button:focus-visible{outline-offset:1px;outline:2px solid #2f6bff}.mark-face-actions{flex:none;align-items:center;gap:6px;animation:.22s cubic-bezier(.2,.7,.2,1) both mark-face-in;display:inline-flex}.mark-face-actions button{white-space:nowrap;height:30px;font:500 .8rem/1 var(--font-body);cursor:pointer;border:0;border-radius:11px;align-items:center;gap:6px;padding:0 12px;transition:background .15s,color .15s,transform .1s;display:inline-flex}.mark-face-actions button:active{transform:scale(.97)}.mark-face-actions svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;width:15px;height:15px}.mark-face-keep,.mark-face-clear{background:color-mix(in srgb, var(--paper) 14%, transparent);color:var(--paper)}.mark-face-keep:hover,.mark-face-clear:hover{background:color-mix(in srgb, var(--paper) 22%, transparent)}.mark-face-keep.on{color:#fff;background:#f04d52}.mark-face-add.on{color:#fff;background:#2f6bff}.mark-face-use{background:var(--accent);color:#fff;box-shadow:0 1px 3px #00000040;font-weight:600!important}.mark-face-use:hover{filter:brightness(1.06)}@keyframes mark-face-in{0%{opacity:0;transform:translateY(3px)}to{opacity:1;transform:none}}@media (max-width:760px){.mark-face-actions{flex-wrap:wrap;flex-basis:100%;order:4;justify-content:center}.mark-face-actions button{white-space:nowrap;height:34px}.mark-face-use{flex-basis:100%;justify-content:center}.mark-face-scope{order:2}}@media (prefers-reduced-motion:reduce){.mark-face-actions{animation:none}.mark-face-actions button{transition:none}}.mark-circle{fill:#2f6bff1a;stroke:#2f6bff;stroke-width:2.5px;stroke-dasharray:6 5;transition:opacity .3s}.mark-circle.miss{fill:#f04d5214;stroke:#f04d52}.kbd-card{z-index:10;background:var(--card);border:.5px solid color-mix(in srgb, var(--ink) 14%, transparent);border-radius:18px;gap:10px;width:min(340px,100% - 24px);max-height:calc(100% - 150px);padding:12px 14px;display:grid;position:absolute;top:56px;right:12px;overflow-y:auto;box-shadow:0 24px 60px -24px #0000008c}.kbd-card header{justify-content:space-between;align-items:center;display:flex}.kbd-card header .ui-icon-btn{width:30px;height:30px}.kbd-card h4{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);margin:0 0 4px;font-size:.7rem;font-weight:600}.kbd-card dl{gap:5px;margin:0;display:grid}.kbd-card dl>div{grid-template-columns:92px 1fr;align-items:center;gap:10px;display:grid}.kbd-card dt{flex-wrap:wrap;gap:3px;display:flex}.kbd-card dd{color:var(--ink-2);margin:0;font-size:.8rem}.kbd-card p{margin:0}@media (max-width:1100px){.studio-stage{box-shadow:none;border:0;border-radius:0;margin:0}.studio-left,.studio-mobile,.studio-left-head{background:var(--paper)}}.stage-legend{z-index:6;color:var(--ink-2);background:color-mix(in srgb, var(--card) 72%, transparent);-webkit-backdrop-filter:saturate(180%)blur(20px);backdrop-filter:saturate(180%)blur(20px);border:.5px solid color-mix(in srgb, var(--ink) 10%, transparent);border-radius:16px;gap:6px;padding:10px 12px;font-size:.76rem;animation:.2s both ui-fade-in;display:grid;position:absolute;bottom:76px;left:12px;box-shadow:0 10px 30px -14px #0000004d}.stage-legend span{align-items:center;gap:8px;display:flex}.stage-legend i{border-radius:3px;width:10px;height:10px}.view-menu{z-index:9;background:color-mix(in srgb, var(--card) 84%, transparent);-webkit-backdrop-filter:saturate(180%)blur(24px);backdrop-filter:saturate(180%)blur(24px);border:.5px solid color-mix(in srgb, var(--ink) 10%, transparent);border-radius:18px;gap:10px;width:264px;padding:12px;animation:.18s both ui-fade-in;display:grid;position:absolute;top:58px;right:12px;box-shadow:0 20px 50px -20px #00000073}.view-menu h4{font:500 .76rem/1 var(--font-body);color:var(--ink-3);letter-spacing:0;margin:0}.view-modes{grid-template-columns:1fr 1fr;gap:6px;display:grid}.view-modes button{text-align:left;border:1px solid var(--line);background:var(--card);color:var(--ink);font:500 .8rem/1.2 var(--font-body);cursor:pointer;border-radius:12px;gap:3px;padding:9px 10px;display:grid}.view-modes button small{color:var(--ink-3);font-size:.7rem;font-weight:400}.view-modes button[aria-pressed=true]{border-color:var(--ink);box-shadow:0 0 0 .5px var(--ink)}.swatches{flex-wrap:wrap;gap:8px;display:flex}.swatches button{cursor:pointer;border:2px solid #0000;border-radius:50%;width:28px;height:28px;box-shadow:inset 0 0 0 1px #00000024}.swatches button[aria-pressed=true]{border-color:var(--ink)}.view-toggle{height:34px;font:500 .82rem/1 var(--font-body);color:var(--ink);cursor:pointer;background:color-mix(in srgb, var(--card) 72%, transparent);-webkit-backdrop-filter:saturate(180%)blur(20px);backdrop-filter:saturate(180%)blur(20px);border:.5px solid color-mix(in srgb, var(--ink) 10%, transparent);border-radius:999px;align-items:center;gap:7px;padding:0 13px;display:inline-flex;box-shadow:0 8px 24px -12px #0003}.view-toggle svg{width:16px;height:16px}.view-toggle i{border-radius:50%;width:12px;height:12px;box-shadow:inset 0 0 0 1px #00000026}.composer-box{align-items:flex-end}.attach{flex:none;margin-left:-8px;position:relative}.attach-btn{border:1px solid var(--line);background:var(--paper-2);width:36px;height:36px;color:var(--ink-2);cursor:pointer;border-radius:999px;place-items:center;display:grid}.attach-btn:hover{color:var(--ink)}.attach-btn svg{width:18px;height:18px}.attach-menu{z-index:20;background:color-mix(in srgb, var(--card) 88%, transparent);-webkit-backdrop-filter:saturate(180%)blur(24px);backdrop-filter:saturate(180%)blur(24px);border:.5px solid color-mix(in srgb, var(--ink) 12%, transparent);border-radius:16px;gap:2px;width:250px;padding:6px;display:grid;position:absolute;bottom:calc(100% + 8px);left:0;box-shadow:0 20px 50px -20px #00000080}.attach-menu button{color:var(--ink);text-align:left;cursor:pointer;font:inherit;background:0 0;border:0;border-radius:11px;align-items:center;gap:12px;padding:10px;display:flex}.attach-menu button:hover{background:color-mix(in srgb, var(--ink) 6%, transparent)}.attach-menu svg{width:18px;height:18px;color:var(--ink-2);flex:none}.attach-menu b{font-size:.86rem;font-weight:500;display:block}.attach-menu small{color:var(--ink-3);font-size:.76rem}.setup-chip{color:var(--ink-3);flex-wrap:wrap;align-items:center;gap:6px;padding:0 4px;font-size:.78rem;display:flex}.setup-chip select{width:auto;height:26px;color:var(--ink);background:var(--card);border:1px solid var(--line);box-shadow:none;border-radius:999px;padding:0 8px;font-size:.78rem;font-weight:500}.tray{gap:6px;display:grid}.tray-items{gap:8px;padding:2px 2px 4px;display:flex;overflow-x:auto}.tray-photo,.tray-size{flex:none;position:relative}.tray-photo>button:first-child{border:1px solid var(--line);cursor:pointer;background:var(--paper-2);border-radius:14px;width:72px;height:72px;padding:0;display:block;position:relative;overflow:hidden}.tray-photo img{object-fit:cover;width:100%;height:100%;display:block}.tray-photo span{color:#fff;text-align:center;background:#0a0a0bb8;border-radius:999px;padding:2px 4px;font-size:.66rem;font-weight:500;position:absolute;bottom:4px;left:4px;right:4px}.tray-size>button:first-child{border:1px solid var(--line);background:var(--card);height:72px;color:var(--ink);font:500 .82rem/1 var(--font-mono);cursor:pointer;border-radius:14px;align-items:center;gap:8px;padding:0 14px;display:inline-flex}.tray-size svg{width:16px;height:16px;color:var(--ink-3)}.tray-x{background:var(--ink);width:20px;height:20px;color:var(--paper);cursor:pointer;border:0;border-radius:50%;place-items:center;display:grid;position:absolute;top:-6px;right:-6px}.tray-x svg{width:12px;height:12px}.tray-preview-btn{color:var(--ink-3);font:500 .76rem/1.4 var(--font-body);cursor:pointer;text-underline-offset:3px;background:0 0;border:0;justify-self:start;padding:0 2px;text-decoration:underline}.tray-preview{background:var(--paper-2);border:1px solid var(--line);font:.74rem/1.5 var(--font-mono);white-space:pre-wrap;color:var(--ink-2);border-radius:12px;max-height:160px;margin:0;padding:10px 12px;overflow:auto}.log-user-imgs{flex-wrap:wrap;gap:6px;margin-bottom:6px;display:flex}.log-user-imgs img{object-fit:contain;background:var(--paper-2);border:1px solid var(--line);border-radius:10px;width:64px;height:64px}.log-user-chips{flex-wrap:wrap;gap:6px;margin-bottom:6px;display:flex}.log-user-chips em{font-style:normal;font:500 .72rem/1 var(--font-mono);background:var(--paper-2);border:1px solid var(--line);color:var(--ink-2);border-radius:999px;padding:5px 8px}.drop-hint{z-index:30;border:2px dashed var(--ink-3);background:color-mix(in srgb, var(--card) 85%, transparent);color:var(--ink);pointer-events:none;border-radius:20px;place-items:center;font-weight:500;display:grid;position:absolute;inset:8px}.modal-back{z-index:100;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#00000073;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal{background:var(--card);border:1px solid var(--line);border-radius:24px;width:min(1100px,100%);max-height:calc(100dvh - 32px);overflow:auto;box-shadow:0 40px 100px -30px #0009}.modal-head{align-items:flex-start;gap:12px;padding:18px 18px 12px 22px;display:flex}.modal-head>div{flex:1;gap:4px;display:grid}.modal-head b{letter-spacing:-.02em;font-size:1.05rem}.modal-head small{color:var(--ink-2);font-size:.84rem}.pe-body{grid-template-columns:minmax(0,1fr) 320px;gap:18px;padding:0 22px 22px;display:grid}@media (max-width:860px){.pe-body{grid-template-columns:1fr}}.pe-canvas{cursor:crosshair;touch-action:none;-webkit-user-select:none;user-select:none;background:#000;border-radius:16px;width:100%;max-height:70dvh;position:relative;overflow:hidden}.pe-canvas>img{object-fit:fill;width:100%;height:100%;position:absolute;inset:0}.pe-canvas .pe-edges{mix-blend-mode:screen;opacity:.95}.pe-canvas svg{width:100%;height:100%;position:absolute;inset:0}.pe-line{stroke:#ff7a3d;stroke-width:.45%;stroke-linecap:round;vector-effect:non-scaling-stroke;stroke-width:3px}.pe-shadow{stroke:#0000008c;stroke-linecap:round;vector-effect:non-scaling-stroke;stroke-width:7px}.pe-end{fill:#ff7a3d;stroke:#fff;stroke-width:2px;vector-effect:non-scaling-stroke}.pe-end.snapped{fill:#5ac8ff}g.on .pe-line{stroke:#ffb38f}.pe-tag{color:#fff;font:600 .74rem/1 var(--font-mono);pointer-events:none;white-space:nowrap;background:#0a0a0bd1;border-radius:999px;padding:4px 9px;position:absolute;transform:translate(-50%,-50%)}.pe-side{align-content:start;gap:10px;display:grid}.pe-tools{flex-wrap:wrap;gap:6px;display:flex}.pe-chip{border:1px solid var(--line);background:var(--card);height:32px;color:var(--ink-2);font:500 .8rem/1 var(--font-body);cursor:pointer;border-radius:999px;align-items:center;gap:6px;padding:0 12px;display:inline-flex}.pe-chip svg{width:15px;height:15px}.pe-chip.on{background:var(--ink);color:var(--paper);border-color:var(--ink)}.pe-row{border:1px solid var(--line);border-radius:14px;grid-template-columns:auto 1fr 96px auto;align-items:center;gap:6px;padding:6px;display:grid}.pe-row.on{border-color:var(--ink-3)}.pe-row input{border-radius:10px;height:32px;padding:0 10px;font-size:.84rem}.pe-id{color:#fff;width:26px;height:26px;font:700 .76rem/1 var(--font-mono);background:#ff7a3d;border-radius:50%;place-items:center;display:grid}.pe-mm{display:block;position:relative}.pe-mm input{text-align:right;font-family:var(--font-mono);padding-right:34px!important}.pe-mm span{color:var(--ink-3);pointer-events:none;font-size:.76rem;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.pe-note{color:var(--ink-2);gap:4px;font-size:.8rem;display:grid}.pe-role{flex-wrap:wrap;gap:6px;display:flex}.pe-role button{border:1px solid var(--line);background:var(--card);color:var(--ink-2);cursor:pointer;border-radius:999px;padding:5px 10px;font-size:.76rem}.pe-role button[aria-checked=true]{border-color:var(--accent);background:var(--accent-soft);color:var(--ink);font-weight:600}.tray-photo .tray-role{color:#1b1b1f;text-align:center;white-space:nowrap;text-overflow:ellipsis;background:#ffffffe6;border-radius:999px;padding:1px 4px;font-size:.6rem;font-style:normal;font-weight:600;position:absolute;top:4px;left:4px;right:4px;overflow:hidden}.pe-note input{height:36px;font-size:.86rem}.size-editor{width:min(820px,100%)}.sz-body{grid-template-columns:300px minmax(0,1fr);gap:22px;padding:0 22px 22px;display:grid}@media (max-width:720px){.sz-body{grid-template-columns:1fr}}.sz-visual{background:radial-gradient(90% 90% at 50% 40%, var(--card), var(--stage));border:1px solid var(--line);border-radius:18px;place-items:center;min-height:260px;padding:12px;display:grid}.iso-box{width:100%;max-height:260px}.iso-box polygon{stroke:var(--ink);stroke-width:1.2px;stroke-linejoin:round;transition:all .25s var(--ease)}.iso-box .f-top{fill:color-mix(in srgb, var(--ink) 6%, var(--card))}.iso-box .f-left{fill:color-mix(in srgb, var(--ink) 12%, var(--card))}.iso-box .f-right{fill:color-mix(in srgb, var(--ink) 18%, var(--card))}.iso-box text{font:600 11px var(--font-mono);fill:var(--ink-2)}.sz-form{align-content:start;gap:16px;display:grid}.sz-row{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.sz-field{color:var(--ink-2);gap:5px;font-size:.8rem;display:grid;position:relative}.sz-field input{height:46px;font:500 1.05rem/1 var(--font-mono);padding-right:38px}.sz-field em{color:var(--ink-3);font-size:.78rem;font-style:normal;position:absolute;bottom:14px;right:12px}.sz-dims{gap:8px;display:grid}.sz-dim{grid-template-columns:1fr 110px auto;align-items:center;gap:6px;display:grid}.sz-dim input{height:36px;font-size:.86rem}.pe-row input,.pe-mm input,.pe-note input,.sz-dim input,.sz-field input,.log-mark input{width:100%;min-width:0;font:inherit;color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:10px;padding:0 10px}.pe-row input:focus,.pe-mm input:focus,.pe-note input:focus,.sz-dim input:focus,.sz-field input:focus{border-color:var(--ink-3);box-shadow:0 0 0 3px var(--line-2);outline:none}.modal{overflow-x:hidden}.dock{overflow:visible}.dock-anchor{display:inline-flex;position:relative}.test-menu{z-index:20;background:var(--card);border:.5px solid color-mix(in srgb, var(--ink) 14%, transparent);border-radius:18px;gap:2px;width:300px;padding:6px;display:grid;position:absolute;bottom:calc(100% + 12px);right:-6px;box-shadow:0 24px 60px -24px #0000008c}.test-menu button{color:var(--ink);text-align:left;cursor:pointer;font:inherit;background:0 0;border:0;border-radius:12px;gap:2px;padding:10px 12px;display:grid}.test-menu button:hover{background:color-mix(in srgb, var(--ink) 6%, transparent)}.test-menu b{font-size:.86rem;font-weight:500}.test-menu small{color:var(--ink-3);font-size:.76rem}.test-menu button:first-child{background:color-mix(in srgb, var(--accent) 8%, transparent)}.test-menu.views{width:200px;left:-6px;right:auto}.test-menu.views button{grid-template-columns:1fr auto;align-items:center}.test-menu.views small{font-family:var(--font-mono)}.ref-label{white-space:nowrap;font:600 .72rem/1 var(--font-mono);color:#fff;background:#2f6bffd9;border-radius:999px;padding:4px 9px;box-shadow:0 4px 12px -4px #0006}.ref-label.held{font:500 .64rem/1 var(--font-mono);color:#1f4fd1;box-shadow:none;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#ffffffb8;border:1px solid #2f6bff59;padding:3px 7px}:root[data-theme=dark] .ref-label.held{color:#bcd3ff;background:#141822b3;border-color:#6ea8ff59}.ref-cards{gap:6px;display:grid}.ref-card{border:1px solid color-mix(in srgb, var(--blue) 35%, var(--line));background:color-mix(in srgb, var(--blue) 5%, var(--card));border-radius:16px;overflow:hidden}.ref-card-head{width:100%;color:var(--ink);text-align:left;cursor:pointer;font:inherit;background:0 0;border:0;grid-template-columns:auto 1fr;align-items:center;gap:10px;padding:10px 12px;display:grid}.ref-ico{background:color-mix(in srgb, var(--blue) 16%, transparent);width:32px;height:32px;color:var(--blue);border-radius:10px;grid-row:span 2;place-items:center;display:grid}.ref-ico svg{width:16px;height:16px}.ref-main{gap:1px;min-width:0;display:grid}.ref-main b{font-size:.86rem;font-weight:500}.ref-main small{color:var(--ink-2);font-size:.74rem;font-family:var(--font-mono)}.ref-fit{grid-column:2;font-size:.76rem;font-weight:500}.ref-fit.ok,.ref-fits .ok{color:var(--ok)}.ref-fit.warn,.ref-fits .warn{color:var(--warn)}.ref-fit.err,.ref-fits .err{color:var(--err)}.ref-body{gap:10px;padding:0 12px 12px;display:grid}.ref-nudge{gap:4px;display:grid}.ref-axis{grid-template-columns:18px repeat(2,34px) 1fr repeat(2,34px) 34px;align-items:center;gap:4px;display:grid}.ref-axis>span{font:600 .76rem/1 var(--font-mono);color:var(--ink-3)}.ref-axis button{border:1px solid var(--line);background:var(--card);height:28px;color:var(--ink-2);font:500 .74rem/1 var(--font-mono);cursor:pointer;border-radius:8px;place-items:center;display:grid}.ref-axis button:hover{color:var(--ink);border-color:var(--ink-3)}.ref-axis .rot svg{width:14px;height:14px}.ref-axis em{text-align:center;font-size:.8rem;font-style:normal}.ref-fits{gap:3px;margin:0;padding:0;font-size:.8rem;list-style:none;display:grid}.ref-fits li{align-items:center;gap:6px;display:flex}.ref-fits svg{width:14px;height:14px}.unit-modal{width:min(560px,100%)}.unit-options{gap:8px;padding:0 22px 14px;display:grid}.unit-opt{border:1px solid var(--line);background:var(--card);color:var(--ink);text-align:left;cursor:pointer;font:inherit;border-radius:16px;grid-template-columns:1fr auto;align-items:center;gap:2px 12px;padding:14px 16px;display:grid}.unit-opt:hover{border-color:var(--ink-3)}.unit-opt.suggested{border-color:var(--ink);box-shadow:0 0 0 .5px var(--ink)}.unit-opt b{font-weight:500}.unit-opt .mono{color:var(--ink-2);grid-row:span 2;font-size:.86rem}.unit-opt small{color:var(--ok);font-size:.74rem}.pp{z-index:12;background:radial-gradient(120% 90% at 50% 38%, var(--stage-hi) 0%, var(--stage) 55%, var(--stage-2) 100%);animation:.25s both ui-fade-in;position:absolute;inset:0}.pp canvas{touch-action:none}.pp-card{background:color-mix(in srgb, var(--card) 82%, transparent);-webkit-backdrop-filter:saturate(180%)blur(24px);backdrop-filter:saturate(180%)blur(24px);border:.5px solid color-mix(in srgb, var(--ink) 10%, transparent);color:var(--ink);position:absolute;box-shadow:0 18px 44px -20px #00000080}.pp-info{border-radius:16px;gap:8px;max-width:min(340px,100% - 24px);padding:12px 14px;display:grid;top:12px;left:12px}.pp-kicker{font:600 .66rem/1 var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);align-items:center;gap:6px;margin:0;display:inline-flex}.pp-kicker svg{width:12px;height:12px;color:var(--accent)}.pp-title{letter-spacing:-.01em;font-size:.98rem}.pp-stats{flex-wrap:wrap;gap:6px 14px;margin:0;display:flex}.pp-stats div{align-items:center;gap:5px;display:inline-flex}.pp-stats dt{color:var(--ink-3);display:inline-flex}.pp-stats dt svg{width:14px;height:14px}.pp-stats dd{font:500 .8rem/1 var(--font-body);font-variant-numeric:tabular-nums;color:var(--ink-2);margin:0}.pp-warn{background:var(--warn-soft,color-mix(in srgb, var(--warn) 12%, transparent));color:var(--warn);border-radius:10px;align-items:flex-start;gap:7px;margin:2px 0 0;padding:8px 10px;font-size:.78rem;line-height:1.4;display:flex}.pp-warn svg{flex:none;width:14px;height:14px;margin-top:1px}.pp-corner{align-items:center;gap:8px;display:flex;position:absolute;top:12px;right:12px}.pp-seg{background:color-mix(in srgb, var(--card) 82%, transparent);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:.5px solid color-mix(in srgb, var(--ink) 10%, transparent);border-radius:999px;gap:2px;padding:3px;display:inline-flex}.pp-seg button{height:30px;color:var(--ink-2);font:500 .78rem/1 var(--font-body);cursor:pointer;background:0 0;border:0;border-radius:999px;align-items:center;gap:6px;padding:0 12px;transition:background .15s,color .15s;display:inline-flex}.pp-seg button svg{width:14px;height:14px}.pp-seg button[aria-pressed=true]{background:var(--ink);color:var(--paper)}.pp-seg button:focus-visible,.pp-play:focus-visible,.pp-end:focus-visible,.pp-close:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.pp-close{border:.5px solid color-mix(in srgb, var(--ink) 10%, transparent);cursor:pointer;width:38px;height:38px;color:var(--ink);background:color-mix(in srgb, var(--card) 82%, transparent);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-radius:999px;place-items:center;display:grid}.pp-close svg{width:18px;height:18px}.pp-bar{border-radius:22px;align-items:center;gap:12px;width:min(760px,100% - 24px);padding:10px 12px 10px 10px;display:flex;bottom:14px;left:50%;transform:translate(-50%)}.pp-play{background:var(--accent);color:#fff;cursor:pointer;width:46px;height:46px;box-shadow:0 6px 18px -6px color-mix(in srgb, var(--accent) 70%, transparent);border:0;border-radius:999px;flex:none;place-items:center;transition:transform .12s;display:grid}.pp-play:active{transform:scale(.95)}.pp-play svg{fill:currentColor;width:18px;height:18px}.pp-play:disabled{opacity:.4}.pp-end{width:36px;height:36px;color:var(--ink-2);cursor:pointer;background:0 0;border:0;border-radius:999px;flex:none;place-items:center;display:grid}.pp-end:hover:not(:disabled){background:color-mix(in srgb, var(--ink) 7%, transparent);color:var(--ink)}.pp-end svg{width:17px;height:17px}.pp-end:disabled{opacity:.35}.pp-scrub{flex:1;gap:5px;min-width:0;display:grid}.pp-range{appearance:none;cursor:pointer;background:0 0;width:100%;height:22px;margin:0}.pp-range::-webkit-slider-runnable-track{background:linear-gradient(to right, var(--accent) var(--pct), color-mix(in srgb, var(--ink) 22%, transparent) var(--pct), color-mix(in srgb, var(--ink) 22%, transparent) var(--loaded), color-mix(in srgb, var(--ink) 8%, transparent) var(--loaded));border-radius:6px;height:6px}.pp-range::-webkit-slider-thumb{-webkit-appearance:none;border:3px solid var(--accent);background:#fff;border-radius:50%;width:18px;height:18px;margin-top:-6px;box-shadow:0 1px 5px #00000059}.pp-range::-moz-range-track{background:color-mix(in srgb, var(--ink) 12%, transparent);border-radius:6px;height:6px}.pp-range::-moz-range-progress{background:var(--accent);border-radius:6px;height:6px}.pp-range::-moz-range-thumb{border:3px solid var(--accent);background:#fff;border-radius:50%;width:14px;height:14px}.pp-meta{color:var(--ink-2);font-variant-numeric:tabular-nums;gap:12px;font-size:.76rem;display:flex}.pp-dim{color:var(--ink-3)}.pp-left{color:var(--ink);margin-left:auto;font-weight:500}.pp-speed button{font:600 .74rem/1 var(--font-mono);padding:0 10px}@media (max-width:640px){.pp-info{max-width:calc(100% - 24px);padding:10px 12px;right:12px}.pp-corner{top:auto;bottom:92px;right:12px}.pp-seg button{padding:0 10px}.pp-speed,.pp-dim{display:none}}.weight-card{border:1px solid var(--line);background:var(--card);border-radius:16px;gap:12px;padding:14px;display:grid}.fil-card{border:1px solid var(--line);background:var(--card);border-radius:16px;gap:10px;padding:14px;display:grid}.fil-card header{justify-content:space-between;align-items:baseline;display:flex}.fil-card h4{margin:0;font-size:.9rem}.fil-card header .mono{color:var(--ink-3);font-size:.72rem}.fil-part{gap:8px;display:grid}.fil-name{font-size:.8rem}.fil-part ul{gap:6px;margin:0;padding:0;list-style:none;display:grid}.fil-part li{grid-template-columns:16px auto 1fr auto;align-items:center;gap:8px;font-size:.82rem;display:grid}.fil-part li i{border:1px solid var(--line);border-radius:5px;width:16px;height:16px}.fil-part li .mono{color:var(--ink-3);font-size:.7rem}.fil-part li small{color:var(--ink-3)}.fil-part li em{color:var(--ink-2);font-size:.78rem;font-style:normal}.fil-cost{color:var(--ink-2);margin:0;font-size:.78rem;line-height:1.45}.weight-card header{justify-content:space-between;align-items:center;gap:10px;display:flex}.weight-card header span{display:grid}.weight-card header small{color:var(--ink-3);font-size:.74rem}.weight-card header b{letter-spacing:-.025em;font-variant-numeric:tabular-nums;font-size:1.6rem;font-weight:600}.weight-card header b.over{color:var(--err)}.weight-limit{gap:12px;display:grid}.weight-bar{background:var(--paper-2);border:1px solid var(--line);border-radius:8px;height:8px;overflow:hidden}.weight-bar i{background:var(--ok);height:100%;transition:width .3s var(--ease), background .3s;border-radius:8px;display:block}.weight-bar i.over{background:var(--err)}.tour{z-index:200;position:fixed;inset:0}.tour-hole{pointer-events:none;outline:2px solid color-mix(in srgb, var(--accent) 70%, #fff);outline-offset:2px;border-radius:16px;transition:all .35s cubic-bezier(.2,.7,.2,1);position:fixed;box-shadow:0 0 0 9999px #0505089e}.tour-card{background:var(--card);border:1px solid var(--line);border-radius:20px;gap:8px;width:320px;padding:16px;transition:top .35s cubic-bezier(.2,.7,.2,1),left .35s cubic-bezier(.2,.7,.2,1);display:grid;position:fixed;box-shadow:0 30px 70px -20px #0009}.tour-card b{letter-spacing:-.02em;font-size:1.02rem}.tour-card p{color:var(--ink-2);margin:0;font-size:.88rem}.tour-dots{gap:4px;display:flex}.tour-dots i{background:var(--line);border-radius:4px;width:18px;height:4px;transition:background .2s,width .2s}.tour-dots i.done{background:var(--ink-3)}.tour-dots i.on{background:var(--accent);width:28px}.tour-actions{align-items:center;gap:6px;margin-top:6px;display:flex}.tour-skip{color:var(--ink-3);font:500 .82rem var(--font-body);cursor:pointer;background:0 0;border:0;margin-right:auto}.tour-btn{border:1px solid var(--line);background:var(--card);height:30px;color:var(--ink-2);font:500 .78rem/1 var(--font-body);cursor:pointer;border-radius:999px;padding:0 12px}.tour-btn.new{border-color:var(--accent);color:var(--ink);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 16%, transparent)}.plates-card{border:1px solid var(--line);background:var(--card);border-radius:16px;gap:12px;padding:14px;display:grid}.plates-card header{align-items:center;gap:12px;display:flex}.plates-card header>span:last-child{gap:2px;display:grid}.plates-card header b{letter-spacing:-.01em;font-size:.95rem;font-weight:600}.plates-card header small{color:var(--ink-2);font-size:.76rem;line-height:1.4}.plates-count{width:38px;height:38px;font:600 1.1rem/1 var(--font-display);background:var(--paper-2);border:1px solid var(--line);border-radius:12px;flex:none;place-items:center;display:grid}.plates-list{gap:8px;margin:0;padding:0;list-style:none;display:grid}.plates-list li{background:var(--paper-2);border:1px solid var(--line);border-radius:12px;grid-template-columns:64px minmax(0,1fr);align-items:center;gap:4px 12px;padding:8px;display:grid}.plate-thumb{grid-row:span 2;width:64px;height:64px}.plate-bed{fill:var(--stage);stroke:var(--ink-3);stroke-opacity:.35;stroke-width:3px}.plate-item{stroke:#00000040;stroke-width:1.5px}.plates-meta{min-width:0;display:grid}.plates-meta b{font-size:.86rem;font-weight:600}.plates-meta small{color:var(--ink-2);font-variant-numeric:tabular-nums;font-size:.74rem}.plates-meta .plates-names{color:var(--ink-3);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.plates-actions{gap:6px;display:flex}.plates-actions .ui-btn svg{width:14px;height:14px}.plates-toobig{color:var(--err);background:var(--err-soft,color-mix(in srgb, var(--err) 10%, transparent));border-radius:12px;align-items:flex-start;gap:8px;margin:0;padding:10px 12px;font-size:.8rem;display:flex}.plates-toobig svg{flex:none;width:16px;height:16px;margin-top:1px}.pp-plates{background:color-mix(in srgb, var(--ink) 6%, transparent);border-radius:999px;flex-wrap:wrap;gap:2px;width:fit-content;padding:3px;display:inline-flex}.pp-plates button{height:26px;color:var(--ink-2);cursor:pointer;background:0 0;border:0;border-radius:999px;padding:0 11px;font-size:.78rem;font-weight:500}.pp-plates button[aria-pressed=true]{background:var(--ink);color:var(--paper)}.qcard{border:1px solid color-mix(in srgb, var(--blue) 35%, var(--line));background:color-mix(in srgb, var(--blue) 6%, var(--card));border-radius:16px;gap:12px;padding:14px;display:grid}.qcard.done{border-color:var(--line);background:var(--card);opacity:.85}.qcard header{color:var(--blue);align-items:center;gap:7px;font-size:.78rem;font-weight:600;display:flex}.qcard header svg{width:15px;height:15px}.qcard fieldset{border:0;gap:8px;min-width:0;margin:0;padding:0;display:grid}.qcard legend{margin-bottom:2px;padding:0;font-size:.9rem;font-weight:600;line-height:1.4}.qcard-why{color:var(--ink-3);margin:-4px 0 0;font-size:.76rem}.qcard-opts{gap:6px;display:grid}.qcard-opts button{text-align:left;border:1px solid var(--line);background:var(--card);color:var(--ink);cursor:pointer;font:inherit;border-radius:12px;align-items:flex-start;gap:10px;padding:9px 11px;transition:border-color .15s,background .15s;display:flex}.qcard-opts button:hover:not(:disabled){border-color:var(--ink-3)}.qcard-opts button[aria-checked=true]{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}.qcard-opts button>span:last-child{gap:1px;min-width:0;display:grid}.qcard-opts b{font-size:.84rem;font-weight:500}.qcard-opts small{color:var(--ink-2);font-size:.74rem}.qcard-dot{border:1.5px solid var(--ink-3);border-radius:50%;flex:none;place-items:center;width:18px;height:18px;margin-top:1px;display:grid}.qcard-opts button[aria-checked=true] .qcard-dot{background:var(--ink);border-color:var(--ink);color:var(--paper)}.qcard-dot svg{stroke-width:3px;width:12px;height:12px}.qcard-note{color:var(--ink-2);gap:5px;font-size:.74rem;display:grid}.qcard-note textarea{resize:vertical;width:100%;min-height:54px;font:inherit;border-radius:10px;padding:8px 10px;font-size:.84rem}.qcard-actions{flex-wrap:wrap;justify-content:space-between;gap:8px;display:flex}.qcard-actions svg{width:14px;height:14px}.qcard-answer{color:var(--ok);align-items:center;gap:6px;margin:0;font-size:.82rem;display:flex}.qcard-answer svg{width:14px;height:14px}.studio-projects{width:32px;height:32px}n.studio-projects svg{width:16px;height:16px}.log-further{border-top:1px dashed var(--line);margin-top:14px;padding-top:12px}.log-further h4{margin-top:0!important}.log-further-chips{flex-wrap:wrap;gap:6px;display:flex}.log-further-chips button{border:1px solid var(--line);background:var(--paper);height:30px;color:var(--ink);font:400 .78rem/1 var(--font-body);cursor:pointer;border-radius:999px;padding:0 11px;transition:border-color .15s,background .15s}.log-further-chips button:hover{border-color:var(--accent);background:var(--accent-soft)}.log-further-chips button.other{color:var(--ink-2);border-style:dashed}.log-final.compact{box-shadow:none;background:var(--paper-2)}.log-final.compact p{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.log-final-more{color:var(--ink-2);font:500 .78rem/1 var(--font-body);text-underline-offset:3px;cursor:pointer;background:0 0;border:0;margin-top:6px;padding:0;text-decoration:underline}.insp-action{margin:6px 0 0 36px}.tone-toggle{background:var(--paper-2);border:1px solid var(--line);border-radius:999px;flex:none;align-self:flex-start;width:max-content;padding:2px;display:inline-flex}.tone-toggle button{height:24px;color:var(--ink-3);font:500 .72rem/1 var(--font-body);cursor:pointer;background:0 0;border:0;border-radius:999px;padding:0 9px}.tone-toggle button[aria-pressed=true]{background:var(--card);color:var(--ink);box-shadow:0 1px 2px #00000014}.log-caveat-more{margin-top:10px}.log-caveat-more summary{cursor:pointer;color:var(--ink-2);font-size:.78rem}.studio-stage{container:stage/inline-size}@container stage (max-width:720px){.dock{border-radius:18px}.dock-btn,.dock-view{border-radius:13px;flex-direction:column;justify-content:center;gap:2px;min-width:44px;height:44px;padding:0 7px;font-size:.62rem}.dock-btn svg,.dock-view svg{width:16px;height:16px}}.cost-hint{color:var(--ink-3);flex-basis:100%;margin:0;font-size:.72rem}.local-usage{color:var(--ink-3);flex-basis:100%;margin:0;font-size:.66rem;line-height:1.4}.stage-labels{pointer-events:none;z-index:4;position:absolute;inset:0;overflow:hidden}.stage-label{visibility:hidden;will-change:transform;position:absolute;top:0;left:0}.welcome-next{gap:8px;margin:14px 0 0;padding:0;list-style:none;display:grid}.welcome-next li{background:var(--card);border:1px solid var(--line);color:var(--ink-2);border-radius:14px;align-items:flex-start;gap:10px;padding:11px 12px;font-size:.88rem;line-height:1.4;display:flex}.welcome-next li>svg{width:18px;height:18px;color:var(--accent-ink);flex:none;margin-top:1px}.welcome-next b{color:var(--ink);font-weight:600}.welcome-next kbd{margin-left:4px}@container stage (max-width:620px){.mark-bar{flex-wrap:wrap}.mark-bar-hint{text-align:center;flex-basis:100%;order:3;padding:0 6px 3px}}@container stage (max-width:440px){.dock{justify-content:space-between;gap:0;max-width:none;padding:4px;left:8px;right:8px;transform:none}.dock-sep{display:none}.dock-btn,.dock-view{flex:1 1 0;min-width:0;padding:0 2px;font-size:.6rem}.dock-anchor{flex:1 1 0;min-width:0}.dock-anchor>.dock-btn{width:100%}.mark-bar-hint{order:3}}.starter-grid button:disabled{cursor:default;opacity:.5;transform:none}.starter-grid button[aria-busy=true]{opacity:1;border-color:var(--ink-3)}.log-plan{border:1px solid var(--line);background:var(--paper-2);border-radius:14px;gap:8px;padding:12px 14px;font-size:.88rem;line-height:1.5;display:grid}.log-plan p{margin:0}.log-plan-head{flex-wrap:wrap;align-items:center;gap:6px 10px;display:flex}.log-plan-head svg{width:16px;height:16px;color:var(--accent)}.log-plan-head .mono{color:var(--ink-2);margin-left:auto;font-size:.78rem}.log-plan-note{color:var(--ink-2)}.log-plan-notify{align-self:flex-start;align-items:center;gap:6px;display:inline-flex}.log-plan-notify svg{width:14px;height:14px}p.log-plan-notify{color:var(--ink-2);margin:0}.log-plan-more summary{cursor:pointer;color:var(--accent-ink);font-size:.82rem;font-weight:600}.log-plan-more ul{color:var(--ink-2);gap:3px;margin:6px 0;padding-left:18px;font-size:.82rem;display:grid}.log-resume{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:8px;display:flex}.studio-app{position:relative}.studio-loading{z-index:60;background:var(--paper-2);opacity:1;place-items:center;transition:opacity .28s;display:grid;position:absolute;inset:0}.studio-loading.done{opacity:0;pointer-events:none}.studio-loading-inner{color:var(--ink-2);justify-items:center;gap:14px;font-size:.95rem;display:grid}.studio-loading-inner p{margin:0}.studio-loading-bar{background:var(--line);border-radius:3px;width:160px;height:3px;overflow:hidden}.studio-loading-bar i{background:var(--accent);border-radius:3px;width:40%;height:100%;animation:1.1s ease-in-out infinite studio-loading-slide;display:block}@keyframes studio-loading-slide{0%{transform:translate(-100%)}to{transform:translate(250%)}}@media (prefers-reduced-motion:reduce){.studio-loading{transition:none}.studio-loading-bar i{opacity:.5;width:100%;animation:none}}.mark-turn{opacity:.62;white-space:nowrap}.mark-turn.mark-note{white-space:normal;opacity:.8}.dock-btn{position:relative}.dock-badge{background:var(--accent);width:8px;height:8px;box-shadow:0 0 0 2px var(--panel,#1b1916);border-radius:50%;position:absolute;top:5px;right:6px}.dock-badge.busy{animation:1.2s ease-in-out infinite dock-badge-pulse}@keyframes dock-badge-pulse{50%{opacity:.35;transform:scale(.8)}}@media (prefers-reduced-motion:reduce){.dock-badge.busy{animation:none}}.log-version-wrap{gap:8px;display:grid}.log-version-note{color:var(--ink-2);margin:0 2px;font-size:.86rem;line-height:1.5}.log-estimates{background:var(--paper-2);border:1px dashed var(--line);border-radius:14px;gap:8px;padding:10px 12px;display:grid}.log-estimates-h{color:var(--ink-2);align-items:center;gap:7px;margin:0;font-size:.8rem;display:flex}.log-estimates-h svg{width:15px;height:15px;color:var(--accent,#ff6b2c);flex:none}.log-estimates-row{flex-wrap:wrap;gap:6px;display:flex}.log-estimate{border:1px solid var(--line);background:var(--card);height:32px;color:var(--ink-2);font:500 .8rem/1 var(--font-body);cursor:pointer;border-radius:999px;align-items:center;gap:6px;padding:0 11px;transition:border-color .15s,background .15s;display:inline-flex}.log-estimate:hover:not(:disabled){border-color:var(--ink-3);color:var(--ink)}.log-estimate b{color:var(--ink);font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-weight:600}.log-estimate.done{border-color:color-mix(in srgb, var(--ok,#16a34a) 45%, transparent)}.log-estimate.done svg{width:13px;height:13px;color:var(--ok,#16a34a)}.log-estimate>svg{width:13px;height:13px;color:var(--ink-3)}.log-estimate.editing{cursor:text;border-color:var(--ink);box-shadow:0 0 0 3px color-mix(in srgb, var(--ink) 10%, transparent)}.log-estimate.editing input{width:4.5em;color:var(--ink);font:600 .84rem/1 var(--font-mono);text-align:right;background:0 0;border:0;outline:none}.log-estimate.editing small{color:var(--ink-3)}.print-estimates{padding:12px 16px 0}.composer-cost{color:var(--ink-3);flex-wrap:wrap;align-items:baseline;gap:6px;margin:6px 4px 0;font-size:.74rem;display:flex}.composer-cost.tight{color:var(--warn,#b45309)}.composer-cost.free{color:var(--ok,#15803d)}.composer-cost-link{color:inherit;font:inherit;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.log-note.log-receipt{color:var(--ink-3);text-align:right;margin-top:-2px;font-size:.74rem}.param-flash{border-radius:10px;animation:1.5s ease-out param-flash}@keyframes param-flash{0%,40%{background:color-mix(in srgb, var(--accent,#ff6b2c) 16%, transparent)}to{background:0 0}}.running-elsewhere{z-index:60;background:var(--card);border:1px solid var(--line);max-width:calc(100vw - 32px);box-shadow:var(--shadow-lg);color:var(--ink);border-radius:999px;align-items:center;gap:10px;padding:8px 8px 8px 14px;font-size:.86rem;display:flex;position:fixed;top:72px;left:50%;transform:translate(-50%)}.running-elsewhere .muted{color:var(--ink-3)}.running-dot{background:var(--accent,#ff6b2c);border-radius:50%;flex:none;width:8px;height:8px;animation:1.4s ease-in-out infinite running-pulse}@keyframes running-pulse{50%{opacity:.35;transform:scale(.8)}}@media (prefers-reduced-motion:reduce){.running-dot{animation:none}}.log-estimates.compact{border-style:solid;border-color:color-mix(in srgb, var(--accent,#ff6b2c) 35%, var(--line));background:color-mix(in srgb, var(--accent,#ff6b2c) 6%, var(--paper-2))}@keyframes log-flash{0%,60%{box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 55%, transparent)}to{box-shadow:0 0 0 3px #0000}}.log-flash{border-radius:14px;animation:1.4s ease-out log-flash}.log-asked{border:1px solid var(--line);background:var(--card);border-radius:12px;gap:4px;padding:10px 12px;display:grid}.log-asked-h{margin:0}.log-asked ul{gap:3px;margin:0;padding:0;font-size:.84rem;list-style:none;display:grid}.log-asked li{grid-template-columns:16px minmax(0,1fr);align-items:start;gap:6px;line-height:1.4;display:grid}.log-asked li svg{width:14px;height:14px;color:var(--ink-3,var(--ink-2));margin-top:2px}.log-asked.done li svg{color:var(--ok,#16a34a)}.log-asked p.tiny{margin:2px 0 0}.log-final .log-asked{margin:4px 0 2px}.stage-empty.with-example{background:color-mix(in srgb, var(--paper) 88%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--line);border-radius:18px;padding:12px 14px;top:auto;bottom:16px;transform:translate(-50%)}.stage-empty.with-example .steps3{display:none}.stage-example{z-index:5;border:1px solid var(--line);background:color-mix(in srgb, var(--paper) 90%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);max-width:calc(100% - 32px);color:var(--ink-2);text-align:center;border-radius:999px;margin:0;padding:7px 14px;font-size:.82rem;position:absolute;top:58px;left:50%;transform:translate(-50%)}.stage-example b{color:var(--accent-ink,var(--accent));margin-right:4px}@media (max-width:560px){.stage-example{border-radius:14px;font-size:.76rem;top:52px}}.log-rate{color:var(--ink-3,var(--ink-2));flex-wrap:wrap;align-items:center;gap:6px;margin:0 2px;font-size:.82rem;display:flex}.log-rate-q{margin-right:2px}.log-rate-btn{width:30px;height:30px;color:var(--ink-3,var(--ink-2));cursor:pointer;background:0 0;border:1px solid #0000;border-radius:999px;place-items:center;transition:background .15s,color .15s,border-color .15s;display:inline-grid}.log-rate-btn svg{width:15px;height:15px}.log-rate-btn:hover{background:var(--paper-2);color:var(--ink)}.log-rate-btn.on{border-color:var(--line);background:var(--card);color:var(--accent,#ff6b2c)}.log-rate-more{gap:6px;width:100%;display:grid}.log-rate-chips{flex-wrap:wrap;gap:6px;display:flex}.log-rate-chip{border:1px solid var(--line);background:var(--card);height:28px;color:var(--ink-2);font:500 .78rem/1 var(--font-body);cursor:pointer;border-radius:999px;padding:0 10px;transition:border-color .15s,background .15s,color .15s}.log-rate-chip:hover{border-color:var(--ink-3,var(--line));color:var(--ink)}.log-rate-chip.on{border-color:var(--accent,#ff6b2c);color:var(--ink);background:color-mix(in srgb, var(--accent,#ff6b2c) 10%, var(--card))}.log-rate-note{border:1px solid var(--line);background:var(--card);height:32px;color:var(--ink);font:.82rem var(--font-body);border-radius:10px;padding:0 10px}.log-rate-note:focus{outline:2px solid color-mix(in srgb, var(--accent,#ff6b2c) 40%, transparent);outline-offset:1px}.log-rate-share{color:var(--ink);cursor:pointer;align-items:flex-start;gap:8px;margin-top:2px;font-size:.82rem;line-height:1.35;display:flex}.log-rate-share input{width:16px;height:16px;accent-color:var(--accent,#ff6b2c);flex:none;margin:1px 0 0}.log-rate-share small{color:var(--ink-3);margin-top:2px;font-size:.75rem;display:block}.welcome-public{color:var(--ink-3,var(--ink-2));align-items:flex-start;gap:8px;margin:14px 0 0;font-size:.8rem;line-height:1.5;display:flex}.welcome-public svg{flex:none;width:14px;height:14px;margin-top:2px}.welcome-public a{color:inherit;text-underline-offset:2px;text-decoration:underline}.stage-section{z-index:6;align-items:center;gap:6px;display:flex;position:absolute;bottom:76px;right:12px}.stage-section.on{background:color-mix(in srgb, var(--card) 80%, transparent);-webkit-backdrop-filter:saturate(180%)blur(20px);backdrop-filter:saturate(180%)blur(20px);border:.5px solid color-mix(in srgb, var(--ink) 10%, transparent);border-radius:999px;padding:6px 8px;box-shadow:0 10px 30px -14px #0000004d}.stage-section input[type=range]{width:120px}.stage-section-axes{gap:2px;display:inline-flex}.stage-section-axes button{min-width:26px;height:26px;color:var(--ink-2);cursor:pointer;background:0 0;border:0;border-radius:8px;font-weight:600}.stage-section-axes button.on{background:var(--ink);color:var(--paper)}@media (max-width:720px){.stage-section{bottom:132px;right:8px}.stage-section.on input[type=range]{width:90px}}.label-narrow{display:none}@media (max-width:640px){.stage-top{gap:6px;top:8px;left:8px;right:8px}.stage-top .label-wide{display:none}.stage-top .label-narrow{display:inline}.phase-pill{white-space:nowrap;text-overflow:ellipsis;flex-shrink:1;min-width:0;height:32px;padding:0 10px 0 8px;font-size:.78rem;overflow:hidden}.phase-pill span{text-overflow:ellipsis;overflow:hidden}.stage-top .view-toggle,.stage-top .share-btn{flex-shrink:0;min-width:32px;height:32px;padding:0 9px}.version-nav{flex-shrink:0;gap:0}.version-nav .ui-icon-btn{width:26px;height:26px}}@media (max-width:1100px){.studio-left:not([data-mobile-hidden=true]) .composer-box{left:8px;right:8px;bottom:calc(8px + env(safe-area-inset-bottom));z-index:30;position:fixed;box-shadow:0 12px 34px -12px #0009}.studio-left:not([data-mobile-hidden=true]){padding-bottom:84px}.studio-app:not([data-fresh])[data-mobile-tab]:not([data-mobile-tab=chat]){grid-template-rows:42dvh auto auto}.studio-app:not([data-fresh])[data-mobile-tab]:not([data-mobile-tab=chat]) .studio-mobile{position:static}.studio-app:not([data-fresh])[data-mobile-tab]:not([data-mobile-tab=chat]) .studio-mobile-panel{overscroll-behavior:contain;max-height:calc(58dvh - 125px);overflow-y:auto}}.found-via{color:var(--ink-2);flex-wrap:wrap;flex-basis:100%;align-items:center;gap:6px 8px;margin-top:6px;font-size:.8rem;display:flex}.found-via-q{color:var(--ink-3,var(--ink-2));flex:auto}.found-via>.log-rate-chips,.found-via-other{flex-basis:100%}.found-via-other{align-items:center;gap:6px;display:flex}.found-via-other .log-rate-note{width:180px}.found-via-x{width:24px;height:24px;color:var(--ink-3,var(--ink-2));cursor:pointer;background:0 0;border:0;border-radius:999px;place-items:center;display:inline-grid}.found-via-x:hover{background:var(--paper-2);color:var(--ink)}.found-via-x svg{width:14px;height:14px}.found-via-thanks{margin:6px 0 0}.cz-failed{z-index:4;text-align:center;background:color-mix(in srgb, var(--paper) 88%, transparent);border:1px solid color-mix(in srgb, var(--ink) 12%, transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:14px;justify-items:center;gap:6px;width:min(92%,420px);padding:14px 16px;display:grid;position:absolute;bottom:18px;left:50%;transform:translate(-50%)}.cz-failed b{font-size:.95rem}.cz-failed span{color:var(--ink-2);font-size:.85rem;line-height:1.4}.cz-failed .ui-btn{margin-top:4px}@media (max-width:1100px){.studio-app:not([data-fresh]){--sheet:58dvh;grid-template-rows:minmax(0, 1fr) auto calc(var(--sheet-drag,var(--sheet)) - 64px);grid-template-areas:"stage""mobile""left";height:calc(100dvh - 61px);overflow:hidden}.studio-app:not([data-fresh])[data-sheet=peek]{--sheet:40dvh}.studio-app:not([data-fresh])[data-sheet=full]{--sheet:calc(100dvh - 61px - 110px)}.studio-app:not([data-fresh]):not([data-dragging]){transition:grid-template-rows .28s cubic-bezier(.2,.8,.2,1)}@media (prefers-reduced-motion:reduce){.studio-app:not([data-fresh]):not([data-dragging]){transition:none}}.studio-app:not([data-fresh]) .studio-mobile{z-index:8;border-bottom:0;border-radius:20px 20px 0 0;padding:4px 12px 8px;position:relative;top:auto;box-shadow:0 -10px 30px -18px #0000008c}.sheet-handle{display:none}.studio-app:not([data-fresh]) .sheet-handle{cursor:grab;touch-action:none;background:0 0;border:0;place-items:center;width:100%;height:22px;margin:0 0 2px;padding:0;display:grid}.studio-app:not([data-fresh]) .sheet-handle span{background:color-mix(in srgb, var(--ink) 22%, transparent);border-radius:999px;width:40px;height:5px}.studio-app[data-dragging] .sheet-handle{cursor:grabbing}.studio-app:not([data-fresh]) .studio-left:not([data-mobile-hidden=true]){flex-direction:column;min-height:0;padding-bottom:0;display:flex;overflow:hidden}.studio-app:not([data-fresh]) .studio-left-head{padding:6px 12px 4px 16px;position:static}.studio-app:not([data-fresh]) .studio-left .log{min-height:0}.studio-app:not([data-fresh]) .studio-left .log-feed{overscroll-behavior:contain}.studio-app:not([data-fresh]) .studio-left:not([data-mobile-hidden=true]) .composer-box{box-shadow:none;margin:0 8px calc(8px + env(safe-area-inset-bottom));position:static}.studio-app:not([data-fresh]) .studio-left:not([data-mobile-hidden=true]){padding-bottom:0}.studio-app:not([data-fresh])[data-mobile-tab]:not([data-mobile-tab=chat]){grid-template-rows:minmax(0, 1fr) var(--sheet-drag,var(--sheet));grid-template-areas:"stage""mobile"}.studio-app:not([data-fresh])[data-mobile-tab]:not([data-mobile-tab=chat]) .studio-mobile{flex-direction:column;min-height:0;display:flex}.studio-app:not([data-fresh])[data-mobile-tab]:not([data-mobile-tab=chat]) .studio-mobile-panel{overscroll-behavior:contain;min-height:0;max-height:none;padding-bottom:env(safe-area-inset-bottom);flex:1;overflow-y:auto}.studio-app:not([data-fresh])[data-sheet=full] .studio-stage .dock,.studio-app:not([data-fresh])[data-sheet=full] .studio-stage .stage-top>:not(.phase-pill){display:none}}.composer-setup{display:contents}@media (max-width:1100px){.studio-app:not([data-fresh]) .composer-setup{scrollbar-width:none;align-items:center;gap:8px;margin:0 -14px;padding:0 14px;display:flex;overflow-x:auto;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 24px),#0000);mask-image:linear-gradient(90deg,#000 calc(100% - 24px),#0000)}.studio-app:not([data-fresh]) .composer-setup::-webkit-scrollbar{display:none}.studio-app:not([data-fresh]) .composer-setup>*{white-space:nowrap;flex:none;margin:0}.studio-app:not([data-fresh]) .composer{gap:6px;padding:4px 14px 0}.studio-app:not([data-fresh]) .studio-mobile{padding:0 12px 6px}.studio-app:not([data-fresh]) .sheet-handle{height:16px;margin:0}.studio-app:not([data-fresh]) .studio-left-head{gap:4px;padding:4px 8px 2px 16px}.studio-app:not([data-fresh]) .studio-left-head .studio-title span,.studio-app:not([data-fresh]) .studio-left-head .tour-btn{display:none}.studio-app:not([data-fresh]) .studio-left .log-feed{padding:6px 16px 12px}}.busy-touch{display:none}@media (pointer:coarse){.busy-desk{display:none}.busy-touch{display:inline}}.send-computer{display:none}@media (pointer:coarse){.send-computer{text-align:center;gap:6px;margin-top:4px;display:grid}.send-computer-done{justify-content:center;align-items:center;gap:6px;margin:4px 0;font-size:.9rem;display:flex}.send-computer-done svg{color:#2fb380;flex:none;width:18px;height:18px}}@media (max-width:1100px){.studio-stage .dock-anchor{position:static}.studio-stage .test-menu.views{grid-template-columns:repeat(auto-fit,minmax(0,1fr));grid-auto-flow:column;width:auto;bottom:calc(100% + 8px);left:0;right:0}.studio-stage .test-menu.views button{text-align:center;grid-template-columns:1fr;justify-items:center;min-height:44px;padding:11px 4px}.studio-stage .test-menu.views b{text-align:center;font-size:.82rem;line-height:1.15}.mark-bar.ui-fade-in{animation-name:mark-bar-in}}@keyframes mark-bar-in{0%{opacity:0;transform:translate(-50%,4px)}to{opacity:1;transform:translate(-50%)}}@media (pointer:coarse){.test-menu.views small,.test-menu.views .views-keys,.mark-bar-done kbd{display:none}.test-prints button,.test-prints a,.test-prints .ui-btn,.pat button,.pat .ui-btn{min-height:40px}.test-prints .test-prints-icon,.pat .pat-x{width:40px;height:40px}.pat-card-row .ui-icon-btn{width:36px;height:36px}.test-prints-eyebrow{font-size:.8rem}.test-prints-list>p,.test-prints small,.pat-card,.pat small,.pat-lib,.pat-controls{font-size:max(.82rem,13px)}.studio-stage .stage-top button,.studio-stage .stage-section button,.assembly-pill{position:relative}.studio-stage .stage-top button:before,.studio-stage .stage-section button:before,.assembly-pill:before{content:"";border-radius:inherit;position:absolute;inset:-6px}.insp-details summary,.studio-mobile-panel details>summary{align-items:center;min-height:40px;display:flex}.insp-stats span,.sp-card small{font-size:.8rem}}@media (max-width:1100px){.studio-app[data-fresh] .stage-empty.with-example{display:none}.studio-app[data-fresh] .welcome{padding-top:4px}.studio-app[data-fresh] .welcome h2{margin-top:6px}.studio-app[data-fresh] .welcome-ideas{scrollbar-width:none;scroll-snap-type:x mandatory;gap:8px;margin:12px -16px 0;padding:0 16px 4px;display:flex;overflow-x:auto}.studio-app[data-fresh] .welcome-ideas::-webkit-scrollbar{display:none}.studio-app[data-fresh] .welcome-ideas button{scroll-snap-align:start;flex:0 0 78%}.studio-app[data-fresh] .stage-example{text-align:left;border-radius:12px;max-width:none;padding:6px 10px;font-size:.76rem;line-height:1.35;inset:auto 10px 10px;transform:none}}.composer-fresh{gap:8px;padding:2px 0 0}.composer-fresh .composer-box{border-color:color-mix(in srgb, var(--accent) 55%, var(--line));box-shadow:0 0 0 4px color-mix(in srgb, var(--accent) 12%, transparent), 0 14px 34px -20px #00000059;border-radius:20px;flex-wrap:wrap;align-items:center;gap:6px;padding:12px 10px 10px 16px}.composer-fresh .composer-box:not(:focus-within){animation:2.2s ease-in-out 1.2s 3 composer-breathe}.composer-fresh .composer-box:focus-within{border-color:var(--accent);box-shadow:0 0 0 4px color-mix(in srgb, var(--accent) 22%, transparent), 0 14px 34px -20px #00000059}@keyframes composer-breathe{50%{box-shadow:0 0 0 7px color-mix(in srgb, var(--accent) 22%, transparent), 0 14px 34px -20px #00000059}}.composer-fresh .composer-box textarea{flex:1 0 100%;order:-1;min-height:calc(4.35em + 8px);padding:2px 0 4px;font-size:1rem}.composer-fresh .composer-box textarea::placeholder{color:var(--ink-3);white-space:pre-line}.composer-go{background:var(--ink);height:40px;color:var(--paper);font:600 .92rem/1 var(--font-body);cursor:pointer;border:0;border-radius:999px;align-items:center;gap:6px;margin-left:auto;padding:0 14px 0 18px;transition:background .15s,transform .1s;display:inline-flex}.composer-go svg{width:18px;height:18px}.composer-go.ready{background:var(--accent);color:#1b1009}.composer-go:active{transform:scale(.96)}.composer-nudge{color:var(--ink);margin:0 4px;font-size:.84rem;line-height:1.4;animation:.32s ease-out composer-nudge}@keyframes composer-nudge{0%,to{transform:none}25%{transform:translate(-4px)}75%{transform:translate(4px)}}.composer-fresh .composer-setup{opacity:.85;flex-wrap:wrap;order:5;align-items:center;gap:6px 10px;margin:0 2px;font-size:.8rem;display:flex}.composer-fresh .composer-setup>*{margin:0}.welcome-more{padding:6px 2px 4px}.welcome-ideas-label{color:var(--ink-3);margin:6px 0 0;font-size:.82rem}.welcome-more .welcome-ideas{margin-top:8px}@media (prefers-reduced-motion:reduce){.composer-fresh .composer-box,.composer-nudge{animation:none}}@media (max-width:480px){.composer-fresh .composer-box textarea{min-height:calc(5.8em + 6px)}}@media (max-width:1100px){.studio-app[data-fresh] .studio-left:not([data-mobile-hidden=true]) .composer-fresh .composer-box{z-index:auto;position:static;bottom:auto;left:auto;right:auto}.studio-app[data-fresh] .studio-left:not([data-mobile-hidden=true]){padding-bottom:calc(16px + env(safe-area-inset-bottom))}.studio-app[data-fresh] .welcome-more .welcome-ideas{scrollbar-width:none;scroll-snap-type:x mandatory;gap:8px;margin:8px -16px 0;padding:0 16px 4px;display:flex;overflow-x:auto}.studio-app[data-fresh] .welcome-more .welcome-ideas::-webkit-scrollbar{display:none}.studio-app[data-fresh] .welcome-more .welcome-ideas button{scroll-snap-align:start;flex:0 0 78%}}.composer-finishing{background:var(--surface-2);height:30px;color:var(--ink-2);font:500 .8rem/1 var(--font-body);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:0 12px;display:inline-flex}.composer-finishing svg{width:14px;height:14px}.insp-updating{color:var(--ink-2);align-items:center;gap:8px;display:inline-flex}.insp-updating-dot{background:var(--accent);border-radius:50%;width:8px;height:8px;animation:.9s ease-in-out infinite insp-pulse}@keyframes insp-pulse{0%,to{opacity:.35;transform:scale(.8)}50%{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.insp-updating-dot{animation:none}}
