.ph{height:100%;font-size:var(--fs-chip);flex-direction:column;gap:8px;padding:10px;display:flex;overflow:auto}.ph-row{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.ph-chip,.ph-slot,.ph-edge,.ph-line,.ph-page,.ph-hint{border:1.5px solid var(--c-line-strong);background:var(--c-surface);min-height:36px;color:var(--c-ink);font-size:var(--fs-chip);text-align:left;border-radius:10px;align-items:center;gap:6px;padding:4px 10px;display:inline-flex}button.ph-chip,button.ph-slot,button.ph-edge,button.ph-line,button.ph-page{cursor:pointer}.ph-edge-item{display:contents}.ph-edge-act{border-color:var(--c-acts)}.ph-slot{border-style:dashed}[aria-pressed=true]{border-color:var(--c-ink);box-shadow:inset 0 0 0 2px var(--c-ink)}[data-target=true]{border-color:var(--c-private)}[data-mark~=pulse]{border-color:var(--c-outside);box-shadow:0 0 0 3px var(--c-notyet-bg)}[data-mark~=outline],[data-mark~=flash]{border-color:var(--c-outside);border-width:3px}[data-mark~=trace]{border-color:var(--c-leak);border-style:dashed}.ph-mark{font-size:var(--fs-chip);border-radius:6px;padding:0 6px}.ph-mark-private{color:var(--c-private);border:1.5px solid var(--c-private)}.ph-mark-outside{color:var(--c-outside);border:1.5px dashed var(--c-outside)}.ph-mark-acts{color:var(--c-acts);border:1.5px solid var(--c-acts)}.ph-boundary{border-top:2px dotted var(--c-line-strong);color:var(--c-muted)}.ph-page,.ph-stream{flex-direction:column;align-items:stretch;gap:2px;display:flex}.ph-stream{gap:4px}.ph-stream .ph-line{min-height:32px;padding:2px 8px}.ph-mono,.ph-line{font-family:var(--font-mono);font-size:var(--fs-stream)}.ph-faint{color:var(--c-muted)}.ph-ghost{color:var(--c-muted);border-style:dotted;align-self:flex-start}.ph-log{background:var(--c-surface);border:1.5px solid var(--c-line-strong);font-family:var(--font-mono);font-size:var(--fs-stream);border-radius:10px;order:-1;margin:0;padding:6px 8px 6px 26px}.ph-tray{flex-wrap:wrap;gap:8px;padding:8px 0;display:flex}.ph-tray .ph-chip{min-height:var(--target)}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--c-private:#2563eb;--c-outside:#b45309;--c-acts:#be185d;--c-holds:#15803d;--c-leak:#b91c1c;--c-surface:#f8fafc;--c-panel:#fff;--c-ink:#0f172a;--c-muted:#475569;--c-line:#cbd5e1;--c-line-strong:#94a3b8;--c-notyet-bg:#fef3c7;--c-notyet-ink:#78350f;--c-right-bg:#dcfce7;--c-right-ink:#14532d;--c-pill:#0f172a;--c-pill-ink:#f8fafc;--c-pill-off:#e2e8f0;--c-pill-off-ink:#475569;--c-focus:#2563eb;--c-stage-border:#cbd5e1;--c-backdrop:#0f172a73;--font-ui:Inter, "IBM Plex Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono:"IBM Plex Mono", "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--fs-prompt:19px;--fs-label:16px;--fs-chip:16px;--fs-stream:16px;--lh-prompt:1.32;--frame-max:512px;--gutter:16px;--gap:8px;--frame-top:0px;--bar-h:44px;--prompt-h:120px;--dock-h:160px;--pill-h:52px;--bottom-min:24px;--chrome-h:calc(var(--frame-top) + var(--bar-h) + var(--prompt-h) + 3 * var(--gap) + var(--dock-h) + var(--pill-h) + var(--bottom-min));--stage-min:340px;--stage-h:clamp(var(--stage-min), calc(100dvh - var(--chrome-h) - env(safe-area-inset-top) - env(safe-area-inset-bottom)), 50dvh);--radius:14px;--radius-pill:999px;--target:44px;--motion-snap:.16s;--motion-gate:.2s;--motion-merge:.24s;--motion-leg:.28s;--motion-hold:.18s;--motion-sheet:.22s;--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-snap:cubic-bezier(.34, 1.56, .64, 1)}@media (width>=560px){:root{--frame-top:24px;--fs-prompt:20px;--bottom-min:56px;--stage-h:clamp(var(--stage-min), calc(100dvh - var(--chrome-h)), 420px)}}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--c-private:#60a5fa;--c-outside:#f59e0b;--c-acts:#f472b6;--c-holds:#4ade80;--c-leak:#f87171;--c-surface:#0b1220;--c-panel:#111a2e;--c-ink:#e2e8f0;--c-muted:#a3b0c2;--c-line:#283550;--c-line-strong:#4b5d7a;--c-notyet-bg:#3a2a0c;--c-notyet-ink:#fde68a;--c-right-bg:#0f2e1d;--c-right-ink:#bbf7d0;--c-pill:#e2e8f0;--c-pill-ink:#0f172a;--c-pill-off:#1e293b;--c-pill-off-ink:#a3b0c2;--c-focus:#60a5fa;--c-stage-border:#283550;--c-backdrop:#02061799}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--c-private:#60a5fa;--c-outside:#f59e0b;--c-acts:#f472b6;--c-holds:#4ade80;--c-leak:#f87171;--c-surface:#0b1220;--c-panel:#111a2e;--c-ink:#e2e8f0;--c-muted:#a3b0c2;--c-line:#283550;--c-line-strong:#4b5d7a;--c-notyet-bg:#3a2a0c;--c-notyet-ink:#fde68a;--c-right-bg:#0f2e1d;--c-right-ink:#bbf7d0;--c-pill:#e2e8f0;--c-pill-ink:#0f172a;--c-pill-off:#1e293b;--c-pill-off-ink:#a3b0c2;--c-focus:#60a5fa;--c-stage-border:#283550;--c-backdrop:#02061799}@media (prefers-reduced-motion:reduce){:root{--motion-snap:0s;--motion-gate:0s;--motion-merge:0s;--motion-leg:0s;--motion-hold:0s;--motion-sheet:0s}}*,:before,:after{box-sizing:border-box}html,body{background:var(--c-surface);color:var(--c-ink);font-family:var(--font-ui);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;margin:0;padding:0;font-size:16px;line-height:1.4}body{overflow-x:clip}button{font:inherit;color:inherit}:focus-visible{outline:3px solid var(--c-focus);outline-offset:2px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.frame{width:min(100%, var(--frame-max));min-height:100dvh;margin:0 auto;position:relative}.frame-main{min-height:100dvh;padding:var(--frame-top) var(--gutter) 0;flex-direction:column;display:flex}.bar{height:calc(var(--bar-h) + env(safe-area-inset-top));padding-top:env(safe-area-inset-top);flex:none;align-items:center;gap:12px;display:flex}.ticks{flex:1;grid-template-columns:repeat(15,1fr);gap:3px;height:6px;display:grid}.tick{background:var(--c-line);border-radius:3px}.tick[data-state=done]{background:var(--c-ink)}.tick[data-state=current]{background:var(--c-private)}.tick[data-state=complete]{background:var(--c-holds)}.count{color:var(--c-muted);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:16px}.more{width:var(--target);height:var(--target);color:var(--c-ink);cursor:pointer;background:0 0;border:0;border-radius:50%;margin-right:-10px;font-size:22px;line-height:1}.more:hover{background:var(--c-pill-off)}.more:active{transform:scale(.94)}.prompt-zone{flex:0 0 var(--prompt-h);align-items:flex-start;padding-top:8px;display:flex;overflow:hidden}.prompt{font-size:var(--fs-prompt);line-height:var(--lh-prompt);letter-spacing:-.01em;text-wrap:pretty;margin:0;font-weight:600}.stage{flex:0 0 var(--stage-h);height:var(--stage-h);margin-top:var(--gap);border-radius:var(--radius);background:var(--c-panel);position:relative;overflow:hidden}.stage:after{content:"";border:1px solid var(--c-stage-border);border-radius:inherit;pointer-events:none;position:absolute;inset:0}.dock{margin-top:var(--gap);gap:var(--gap);padding-bottom:calc(var(--bottom-min) + env(safe-area-inset-bottom));flex-direction:column;flex:1 0 auto;display:flex}.dock-content{flex:0 0 var(--dock-h);min-height:0;position:relative;overflow:clip}.dock-input{flex-direction:column;justify-content:flex-end;height:100%;display:flex}.dock-input[inert]{opacity:0;transition:opacity var(--motion-sheet) var(--ease-out)}.feedback{border-radius:var(--radius);background:var(--c-panel);border:1px solid var(--c-line);opacity:0;visibility:hidden;max-height:100%;transition:transform var(--motion-sheet) var(--ease-out), opacity var(--motion-sheet) var(--ease-out), visibility 0s linear var(--motion-sheet);flex-direction:column;justify-content:flex-end;gap:2px;padding:10px 14px 4px;display:flex;position:absolute;bottom:0;left:0;right:0;transform:translateY(105%)}.feedback[data-risen=true]{opacity:1;visibility:visible;transition:transform var(--motion-sheet) var(--ease-out), opacity var(--motion-sheet) var(--ease-out);transform:translateY(0)}.feedback:focus{outline:none}.feedback[data-verdict=right],.feedback[data-verdict=revealed]{border-color:var(--c-holds);background:var(--c-right-bg);color:var(--c-right-ink)}.feedback[data-verdict=notYet]{border-color:var(--c-outside);background:var(--c-notyet-bg);color:var(--c-notyet-ink)}.feedback[data-verdict=missed]{border-color:var(--c-line-strong)}.feedback-text{--lh:20.8px;font-size:16px;line-height:var(--lh);gap:10px;margin:0;display:flex}.feedback-glyph{flex:none;font-weight:700}.links{flex-wrap:wrap;align-items:center;gap:4px 16px;display:flex}.link{min-height:var(--target);color:inherit;text-underline-offset:3px;cursor:pointer;background:0 0;border:0;border-radius:6px;margin-left:-4px;padding:0 4px;font-weight:600;text-decoration:underline}.link:hover{text-decoration-thickness:2px}.link:active{opacity:.7}.link-next{color:var(--c-muted);margin:0}.pill-row{bottom:calc(var(--bottom-min) + env(safe-area-inset-bottom));flex:0 0 var(--pill-h);background:var(--c-surface);display:flex;position:sticky}.pill-row:before{content:"";background:var(--c-line);height:1px;transition:opacity var(--motion-sheet) var(--ease-out);position:absolute;top:-6px;left:0;right:0}.dock[data-empty] .pill-row:before{opacity:0}.pill{width:100%;height:var(--pill-h);border-radius:var(--radius-pill);background:var(--c-pill);color:var(--c-pill-ink);font-size:var(--fs-label);cursor:pointer;transition:transform var(--motion-snap) var(--ease-out), opacity var(--motion-snap) var(--ease-out);border:0;flex:auto;padding:0 28px;font-weight:600}.pill:hover:not([aria-disabled=true]){box-shadow:0 2px 10px #0f172a40}.pill:active:not([aria-disabled=true]){transform:scale(.98)}.pill[aria-disabled=true]{opacity:.4;cursor:default}.choices{gap:var(--gap);flex-direction:column;display:flex}.choice{border:1.5px solid var(--c-line-strong);background:var(--c-panel);height:48px;line-height:1.25;font-size:var(--fs-chip);text-align:left;cursor:pointer;border-radius:12px;align-items:center;gap:10px;padding:4px 12px;display:flex}.choice:focus-visible{outline-offset:-3px}.choice:hover:not([aria-disabled=true]){border-color:var(--c-ink)}.choice:active:not([aria-disabled=true]){transform:scale(.99)}.choice[aria-checked=true]{border-color:var(--c-ink);box-shadow:inset 0 0 0 1.5px var(--c-ink)}.choice[aria-disabled=true]{cursor:default}.choice[aria-disabled=true]:not([aria-checked=true]){opacity:.7}.choice-dot{border:2px solid var(--c-line-strong);border-radius:50%;flex:0 0 18px;height:18px}.choice[aria-checked=true] .choice-dot{border-color:var(--c-ink);background:radial-gradient(circle, var(--c-ink) 0 40%, transparent 45%)}.choice-text{flex:1}.choice-result{font-weight:700}.choice-result-right{color:var(--c-holds)}.choice-result-missed{color:var(--c-muted)}.dock-result{position:absolute;top:0;left:0;right:0}.choice-results{flex-wrap:wrap;align-items:center;gap:4px 12px;display:flex}.choice-row{font-size:var(--fs-chip);align-items:baseline;gap:8px;margin:0;padding:1px 8px 1px 10px;line-height:1.3;display:flex}.choice-row[data-result=right]{box-shadow:inset 3px 0 0 var(--c-ink);font-weight:600}.choice-row[data-result=missed]{color:var(--c-muted)}.feedback-body{text-wrap:pretty;flex:1;display:block}.links--corner{float:right;height:calc(2 * var(--lh));align-items:flex-start;margin:0 -6px 0 8px}.links--corner .link{margin-top:max(calc((var(--lh) - var(--target)) / 2), -10px)}.recap{flex-direction:column;gap:4px;display:flex}.recap-line,.recap .link-next{margin:0;font-size:16px;line-height:1.3}.sheet-layer{z-index:10;position:absolute;inset:0}.sheet-backdrop{background:var(--c-backdrop);animation:fade var(--motion-sheet) var(--ease-out);position:absolute;inset:0}.sheet{background:var(--c-panel);max-height:80%;color:var(--c-ink);animation:rise var(--motion-sheet) var(--ease-out);border-radius:18px 18px 0 0;flex-direction:column;display:flex;position:absolute;bottom:0;left:0;right:0;box-shadow:0 -8px 30px #0f172a33}.sheet:focus{outline:none}.sheet-head{padding:8px 8px 0 var(--gutter);justify-content:space-between;align-items:center;display:flex}.sheet-title{font-size:var(--fs-label);margin:0}.sheet-close{min-height:var(--target);min-width:var(--target);cursor:pointer;background:0 0;border:0;border-radius:10px;padding:0 12px;font-weight:600}.sheet-close:hover{background:var(--c-pill-off)}.sheet-close:active{transform:scale(.97)}.sheet-body{padding:4px var(--gutter) 24px;overflow:auto}.sheet-text{margin:0 0 8px;font-size:16px}.sheet-action{width:100%;min-height:var(--target);border:1.5px solid var(--c-line-strong);cursor:pointer;background:0 0;border-radius:12px;font-weight:600}.sheet-action:hover{border-color:var(--c-ink)}.sheet-action:active{transform:scale(.98)}.menu{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.sheet-action--close{margin-top:8px}.sheet-action--switch{justify-content:center;align-items:center;gap:12px;display:flex}.switch{background:var(--c-line-strong);width:36px;height:20px;transition:background var(--motion-snap) var(--ease-out);border-radius:10px;flex:none;position:relative}.switch[data-on=true]{background:var(--c-holds)}.switch-knob{background:var(--c-panel);width:16px;height:16px;transition:transform var(--motion-snap) var(--ease-out);border-radius:50%;position:absolute;top:2px;left:2px}.switch[data-on=true] .switch-knob{transform:translate(16px)}.sources{flex-direction:column;gap:14px;margin:0;padding:0;list-style:none;display:flex}.source-title{margin:0 0 4px;font-size:16px}.source-links{flex-wrap:wrap;gap:0 16px;margin:0;display:flex}.source-links a{min-height:var(--target);color:var(--c-private);text-underline-offset:3px;align-items:center;display:inline-flex}@keyframes rise{0%{transform:translateY(100%)}}@keyframes fade{0%{opacity:0}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}:root{--up-private:#2563eb;--up-outside:#b45309;--up-acts:#be185d;--up-holds:#15803d;--up-notyet:#b45309;--up-leak:#b91c1c;--up-surface:#f8fafc;--up-panel:#fff;--up-ink:#0f172a;--up-ink-muted:#475569;--up-ink-faint:#64748b;--up-block-fill:#fff;--up-block-stroke:#94a3b8;--up-lane-fill:#f1f5f9;--up-slot-stroke:#64748b;--up-target:#0f766e;--up-target-fill:#0f766e14;--up-focus:#1d4ed8;--up-model-glow:#2563eb1f;--up-callout-fill:#fff;--up-callout-stroke:#cbd5e1;--up-edge-lit-width:3.5px;--up-edge-width:2px;--up-font-ui:"Inter", "IBM Plex Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--up-font-mono:"IBM Plex Mono", "JetBrains Mono", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;--up-size-label:16px;--up-size-chip:16px;--up-size-stream:16px;--up-weight-label:600;--up-dur-snap:.16s;--up-dur-gate:.2s;--up-dur-merge:.24s;--up-dur-leg:.28s;--up-dur-hold:.18s;--up-ease-out:cubic-bezier(.22, 1, .36, 1);--up-ease-snap:cubic-bezier(.34, 1.56, .64, 1);--up-radius:10px;--up-target-min:44px}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--up-private:#60a5fa;--up-outside:#f59e0b;--up-acts:#f472b6;--up-holds:#4ade80;--up-notyet:#f59e0b;--up-leak:#f87171;--up-surface:#0b1220;--up-panel:#111a2e;--up-ink:#e2e8f0;--up-ink-muted:#cbd5e1;--up-ink-faint:#94a3b8;--up-block-fill:#17223b;--up-block-stroke:#475569;--up-lane-fill:#ffffff0d;--up-slot-stroke:#94a3b8;--up-target:#2dd4bf;--up-target-fill:#2dd4bf1a;--up-focus:#93c5fd;--up-model-glow:#60a5fa29;--up-callout-fill:#17223b;--up-callout-stroke:#334155}}:root[data-theme=dark]{--up-private:#60a5fa;--up-outside:#f59e0b;--up-acts:#f472b6;--up-holds:#4ade80;--up-notyet:#f59e0b;--up-leak:#f87171;--up-surface:#0b1220;--up-panel:#111a2e;--up-ink:#e2e8f0;--up-ink-muted:#cbd5e1;--up-ink-faint:#94a3b8;--up-block-fill:#17223b;--up-block-stroke:#475569;--up-lane-fill:#ffffff0d;--up-slot-stroke:#94a3b8;--up-target:#2dd4bf;--up-target-fill:#2dd4bf1a;--up-focus:#93c5fd;--up-model-glow:#60a5fa29;--up-callout-fill:#17223b;--up-callout-stroke:#334155}@media (prefers-reduced-motion:reduce){:root{--up-dur-snap:0s;--up-dur-gate:0s;--up-dur-merge:0s;--up-dur-leg:0s;--up-dur-hold:0s}}.up-nowrap{white-space:nowrap}.up-sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.up-canvas{background:var(--up-panel);width:100%;height:100%;min-height:320px;color:var(--up-ink);font-family:var(--up-font-ui);font-size:var(--up-size-label);touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;border-radius:14px;position:relative;overflow:hidden}.up-scene{transform-origin:0 0;position:relative}.up-stage{display:block;overflow:visible}.up-canvas.has-sources,.up-canvas.has-sources .up-stage{touch-action:none}.up-stage text{font-family:var(--up-font-ui);font-size:var(--up-size-label);fill:var(--up-ink)}.up-lanes.is-hidden{opacity:0}.up-lane--one{fill:var(--up-lane-fill);transition:opacity var(--up-dur-merge) var(--up-ease-out)}.up-lane--one.is-hidden{opacity:0}.up-stage .up-boundary-holds{stroke:var(--up-holds);stroke-width:4px;stroke-linecap:round;opacity:0;animation:up-holds-flash var(--up-dur-gate) var(--up-ease-out) 1}@keyframes up-holds-flash{0%{opacity:0}40%{opacity:1}to{opacity:0}}.up-lanes{transition:opacity var(--up-dur-merge) var(--up-ease-out)}.up-lane--reader{fill:var(--up-lane-fill);stroke:#0000;stroke-width:2px;transition:opacity var(--up-dur-snap) var(--up-ease-out)}.up-lane--reader.is-target{cursor:pointer;pointer-events:all;fill:var(--up-target-fill);stroke:var(--up-target);stroke-dasharray:6 5}.up-lane--reader.is-hover{stroke-width:3px;stroke-dasharray:none}.up-boundary{transform-box:view-box}.up-lanes.is-shown .up-boundary{animation:up-draw-in var(--up-dur-merge) var(--up-ease-out) both}.up-boundary line{stroke:var(--up-ink);stroke-width:2px;stroke-linecap:round;transition:opacity var(--up-dur-merge) var(--up-ease-out)}.up-boundary-dotted{stroke-dasharray:0 8}.up-lanes.is-dotted .up-boundary-solid,.up-lanes.is-solid .up-boundary-dotted{opacity:0}.up-stage .up-lane-label{pointer-events:none;font-size:var(--up-size-chip);fill:var(--up-ink-muted);transition:opacity var(--up-dur-merge) var(--up-ease-out);font-weight:500}.up-stage .up-lane-label.is-covered{opacity:0}@keyframes up-draw-in{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.up-edge-line,.up-edge-glow,.up-edge-leak,.up-edge-hit{fill:none;stroke-linecap:round;stroke-linejoin:round}.up-edge-line{stroke-width:var(--up-edge-width)}.up-edge--private .up-edge-line,.up-edge--private .up-edge-glow{stroke:var(--up-private)}.up-edge--outside .up-edge-line,.up-edge--outside .up-edge-glow{stroke:var(--up-outside);stroke-dasharray:6 5}.up-edge--private .up-edge-arrow{fill:var(--up-private)}.up-edge--outside .up-edge-arrow{fill:var(--up-outside)}.up-edge--act .up-edge-line{stroke-width:2.5px}.up-edge-glow{stroke-width:var(--up-edge-lit-width);opacity:0;transition:opacity var(--up-dur-leg) var(--up-ease-out)}.up-edge.is-lit .up-edge-glow,.up-edge.is-traveling .up-edge-glow{opacity:1}.up-edge.is-traveling .up-edge-glow{transition-duration:var(--up-trace-ms,var(--up-dur-leg))}.up-edge.is-merging .up-edge-line{animation:up-merge-in var(--up-dur-merge) var(--up-ease-out)}.up-edge-leak{stroke:var(--up-leak);stroke-width:5px;opacity:0;animation:up-leak-pulse .56s linear var(--up-arrive-delay,0s) 1 both}.is-reduced .up-edge-leak{opacity:1;animation:none}@keyframes up-leak-pulse{0%{opacity:0}21.4%{opacity:1}to{opacity:0}}@keyframes up-merge-in{50%{opacity:.4}}.up-edge-hit{stroke:#0000;stroke-width:44px;pointer-events:none}.up-edge.is-movable .up-edge-hit,.up-edge.is-target .up-edge-hit{pointer-events:stroke;cursor:pointer}.up-edge.is-movable{cursor:grab;touch-action:none}.up-edge.is-target .up-edge-line{stroke:var(--up-target);stroke-width:3px}.up-edge.is-target .up-edge-arrow{fill:var(--up-target)}.up-edge.is-hover .up-edge-line{stroke-width:5px}.up-edge.is-held{opacity:.35}.up-edge.is-fresh .up-edge-line{animation:up-snap-fade var(--up-dur-snap) var(--up-ease-out)}.up-edge-handle-hit{fill:#0000}.up-edge-handle-dot{fill:var(--up-panel);stroke:var(--up-outside);stroke-width:3px}.up-edge.is-movable:focus-visible .up-edge-handle-dot,.up-edge.is-target:focus-visible .up-edge-line{stroke:var(--up-focus);stroke-width:4px}.up-edge:focus{outline:none}.up-block{transition:transform var(--up-dur-snap) var(--up-ease-snap);outline:none}.up-block-body{transform-box:fill-box;transform-origin:50%}.up-block-hit{fill:#0000}.up-block-rect{fill:var(--up-block-fill);stroke:var(--up-block-stroke);stroke-width:1.5px;transition:stroke var(--up-dur-snap) var(--up-ease-out)}.up-block--model .up-block-rect{stroke:var(--up-ink-muted)}.up-block-glow{fill:var(--up-model-glow);stroke:none}.up-block--you .up-block-rect{stroke:var(--up-ink);stroke-width:2px}.up-block--send .up-block-rect,.up-block--delete .up-block-rect{stroke:var(--up-acts);stroke-width:2px}.up-block-label{font-weight:var(--up-weight-label)}.up-stage .up-block-sub{font-size:var(--up-size-chip);fill:var(--up-ink-muted);font-weight:500}.up-stage .up-block-chip{font-size:var(--up-size-chip);font-weight:500}.up-block-chip--private{fill:var(--up-private)!important}.up-block-chip--outside{fill:var(--up-outside)!important}.up-block-chip--acts{fill:var(--up-acts)!important}.up-person{fill:var(--up-ink)}.up-block-focus{fill:none;stroke:var(--up-focus);stroke-width:3px;opacity:0}.up-block:focus-visible .up-block-focus,.up-slot:focus-visible .up-block-focus{opacity:1}.up-block.is-target:focus-visible .up-block-focus,.up-slot.is-target:focus-visible .up-block-focus{opacity:0}.up-block.is-target:focus-visible .up-block-rect,.up-slot.is-target:focus-visible .up-slot-rect{stroke-width:4px;stroke-dasharray:none}.up-block[role=button]{cursor:pointer}.up-block[data-up-source]{cursor:grab;touch-action:none}.up-block.is-target .up-block-rect{stroke:var(--up-target);stroke-width:2.5px;stroke-dasharray:6 4;fill:var(--up-target-fill)}.up-block.is-hover .up-block-rect{stroke-width:4px;stroke-dasharray:none}.up-block.is-held{opacity:.35}.up-block[data-up-toggle]:not(.is-selected) .up-block-rect{stroke-width:3px}.up-block.is-selected .up-block-rect{stroke:var(--up-ink);stroke-width:3.5px}.up-block.is-fresh .up-block-body{animation:up-snap var(--up-dur-snap) var(--up-ease-snap)}.up-block.is-read .up-block-body,.up-block.is-deliver .up-block-body{animation:up-pulse var(--up-trace-ms,var(--up-dur-snap)) var(--up-ease-out)}.up-block.is-merge .up-block-glow{animation:up-glow var(--up-trace-ms,var(--up-dur-merge)) var(--up-ease-out)}.up-block.is-act .up-block-rect{stroke:var(--up-acts);stroke-width:2.5px}.up-block.is-noPower .up-block-body{animation:up-shrug var(--up-trace-ms,var(--up-dur-snap)) var(--up-ease-out)}.up-glyph-halo{fill:var(--up-panel)}.up-glyph--private .up-glyph-fill{fill:var(--up-private)}.up-glyph--outside .up-glyph-ring{fill:var(--up-panel);stroke:var(--up-outside)}.up-glyph--acts .up-glyph-fill{fill:var(--up-acts)}.up-glyph-ray{stroke:var(--up-acts);stroke-width:1.5px;stroke-linecap:round;fill:none}.up-slot{outline:none}.up-slot-rect{fill:#0000;stroke:var(--up-slot-stroke);stroke-width:2px;stroke-dasharray:6 5}.up-slot.is-hint .up-slot-rect{stroke:var(--up-target);stroke-width:2.5px;transform-box:fill-box;transform-origin:50%;animation:up-pulse-ring calc(var(--up-dur-leg) + var(--up-dur-snap)) var(--up-ease-out) 2}.up-slot.is-target .up-slot-rect{stroke:var(--up-target);fill:var(--up-target-fill);stroke-width:2.5px}.up-slot.is-target{cursor:pointer}.up-slot.is-hover .up-slot-rect{stroke-width:4px;stroke-dasharray:none}.up-gate-body{transform-box:fill-box}.up-gate.is-fresh .up-gate-body{animation:up-snap var(--up-dur-snap) var(--up-ease-snap)}.up-gate-plate{fill:var(--up-block-fill)}.up-gate-window{fill:var(--up-panel);stroke:var(--up-acts);stroke-width:2px;transition:fill var(--up-dur-gate) var(--up-ease-out)}.up-gate.is-holding .up-gate-window{fill:var(--up-acts)}.up-gate.is-stopped .up-gate-window{opacity:.4}.up-gate.is-approved .up-gate-window{fill:var(--up-panel)}.up-gate-post,.up-gate-bar{fill:var(--up-acts)}.up-gate-arm{transform-box:view-box;transform-origin:-16px 0;transition:transform var(--up-dur-gate) var(--up-ease-out)}.up-gate.is-approved .up-gate-arm{transform:scaleX(.35)}.up-dot{fill:var(--up-private);stroke:var(--up-panel);stroke-width:2px}.up-dot--outside{fill:var(--up-outside)}.up-hold-stub{stroke:var(--up-outside);stroke-width:2px;stroke-dasharray:4 3;stroke-linejoin:round;fill:none}.up-hold-tip{stroke:var(--up-outside);stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;fill:none}.up-hold.is-active .up-hold-tip{transform-box:fill-box;animation:up-bounce var(--up-dur-hold) var(--up-ease-snap)}.up-hold-bar{stroke:var(--up-holds);stroke-width:4px;stroke-linecap:round;animation:up-fade-in var(--up-dur-snap) var(--up-ease-out) both}@keyframes up-bounce{0%{transform:translateY(8px)}60%{transform:translateY(-3px)}to{transform:translateY(0)}}@keyframes up-fade-in{0%{opacity:0}to{opacity:1}}.up-page-link{fill:none;stroke:var(--up-outside);stroke-width:2px;stroke-linecap:round;stroke-dasharray:0 6}.up-connector{animation:up-fade-in var(--up-dur-gate) var(--up-ease-out) var(--up-arrive-delay,0s) both}.up-connector-line{fill:none;stroke-width:2px;stroke-linecap:round}.up-connector--private .up-connector-line{stroke:var(--up-private)}.up-connector--outside .up-connector-line{stroke:var(--up-outside);stroke-dasharray:6 5}.up-connector--private .up-connector-arrow{fill:var(--up-private)}.up-connector--outside .up-connector-arrow{fill:var(--up-outside)}.up-mark{fill:none;pointer-events:none;stroke:var(--up-notyet);stroke-width:3px}.up-mark--outline{stroke-width:3.5px}.up-mark--answer{stroke:var(--up-holds);stroke-width:3.5px}.up-cross-halo{fill:var(--up-panel)}.up-cross-lines{fill:none;stroke:var(--up-notyet);stroke-width:2.5px;stroke-linecap:round}.up-mark--pulse{stroke:var(--up-target);transform-box:fill-box;transform-origin:50%;animation:up-pulse-ring calc(var(--up-dur-leg) + var(--up-dur-snap)) var(--up-ease-out) 2}.up-mark--flash{stroke-width:6px;animation:up-flash calc(var(--up-dur-leg) * 2) linear 1 both}@keyframes up-pulse-ring{0%{opacity:1;transform:scale(1)}60%{opacity:.6;transform:scale(1.08)}to{opacity:1;transform:scale(1)}}@keyframes up-flash{0%,50%,to{opacity:1}25%,75%{opacity:.15}}@keyframes up-snap{0%{transform:scale(.92)}70%{transform:scale(1.03)}to{transform:scale(1)}}@keyframes up-snap-fade{0%{opacity:.2}to{opacity:1}}@keyframes up-pulse{50%{transform:scale(1.04)}}@keyframes up-glow{50%{opacity:.2}}@keyframes up-shrug{25%{transform:translate(-2px)}75%{transform:translate(2px)}}.up-callouts{pointer-events:none;position:absolute;inset:0}.up-callout{box-sizing:border-box;background:var(--up-callout-fill);border:1.5px solid var(--up-callout-stroke);font-size:var(--up-size-stream);pointer-events:auto;border-radius:10px;line-height:1.25;position:absolute;overflow:hidden}.up-callout--ledge{font-family:var(--up-font-mono);flex-direction:column;justify-content:center;padding:4px 10px;display:flex}.up-callout--ledge.is-arriving{animation:up-ledge-in var(--up-dur-gate) var(--up-ease-out) var(--up-arrive-delay,0s) both}.up-callout--ledge.is-leaving{animation:up-ledge-out var(--up-dur-gate) var(--up-ease-out) var(--up-arrive-delay,0s) both}@keyframes up-ledge-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes up-ledge-out{0%{opacity:1}to{opacity:0}}.up-callout-text,.up-out{font-family:var(--up-font-mono);overflow-wrap:normal;word-break:keep-all;margin:0}.up-callout-to{font-family:var(--up-font-ui);font-weight:600}.up-callout-text .up-chip{font-family:var(--up-font-ui);vertical-align:-3px}.up-callout--outside{border-color:var(--up-outside);border-style:dashed}.up-callout--private,.up-callout--outbox{border-color:var(--up-private)}.up-callout--outbox.is-leak{border-color:var(--up-leak)}.up-out.is-leak{color:var(--up-leak)}.up-out .up-icon{vertical-align:-3px}.up-out-address{white-space:nowrap;font-weight:600}.up-out.is-leak .up-out-address{animation:up-flash .56s linear var(--up-arrive-delay,0s) 1 both}.up-out-file{font-family:var(--up-font-mono);white-space:nowrap;border:1.5px solid;border-radius:6px;padding:0 6px;display:inline-block}.up-callout--reworded{border:1.5px dashed var(--up-outside)}.up-callout--preview{border:2px solid var(--up-acts);font-family:var(--up-font-ui);transform-origin:0 100%;animation:up-card-in var(--up-dur-gate) var(--up-ease-out) both;flex-direction:column;gap:2px;padding:7px 5px;display:flex;overflow:visible}.up-callout--preview:after{content:"";background:inherit;border:inherit;border-top:none;border-right:none;width:10px;height:10px;position:absolute;bottom:8px;left:-7px;transform:rotate(45deg)}.up-preview-body{flex:auto;min-height:0;margin:0;overflow:hidden}@keyframes up-card-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.up-callout--sent{border:2px solid var(--up-acts);font-family:var(--up-font-mono);transform-origin:50% 100%;animation:up-collapse var(--up-dur-gate) var(--up-ease-out) both;align-items:center;gap:4px;padding:0 10px;display:flex}@keyframes up-collapse{0%{opacity:.4;transform:scaleY(var(--up-collapse-from,2))}to{opacity:1;transform:scaleY(1)}}.up-callout--page{border:1.5px dashed var(--up-outside);font-family:var(--up-font-ui);padding:8px 10px}.up-callout--page.is-target{border-color:var(--up-target);background:var(--up-target-fill);cursor:pointer;border-style:solid;outline:none}.up-callout--page.is-hover{border-width:3px}.up-callout--page:focus-visible{box-shadow:0 0 0 3px var(--up-focus)}.up-page-line{margin:0;line-height:1.25}.up-page-line.is-planted{font-family:var(--up-font-mono);color:var(--up-ink-faint);animation:up-ledge-in var(--up-dur-snap) var(--up-ease-out) both;font-style:italic}.up-callout--page-band,.up-callout--page-ledge{pointer-events:none;flex-direction:column;justify-content:center;padding:6px 10px;display:flex}.up-callout--page-band .up-page-line.is-planted,.up-callout--page-ledge .up-page-line.is-planted{transform-origin:0;animation:none}.up-callout--page-band .up-page-line.is-planted.is-read,.up-callout--page-ledge .up-page-line.is-planted.is-read{animation:up-pulse var(--up-dur-snap) var(--up-ease-out)}.up-callout--page-ledge.is-leaving,.up-page-link.is-leaving{animation:up-ledge-out var(--up-dur-gate) var(--up-ease-out) var(--up-arrive-delay,0s) both}.up-chip{font-size:var(--up-size-chip);align-items:center;gap:3px;display:inline-flex}.up-chip--private{color:var(--up-private)}.up-chip--outside{color:var(--up-outside)}.up-chip--acts{color:var(--up-acts);font-weight:600}.up-icon{flex:none}.up-icon--gate .up-gate-bar,.up-icon--gate .up-gate-post{fill:var(--up-acts);stroke:var(--up-acts);stroke-width:2px}.up-icon--gate .up-gate-window{fill:var(--up-panel);stroke:var(--up-acts);stroke-width:1.5px}.up-stream{box-sizing:border-box;height:100%;font-family:var(--up-font-mono);font-size:var(--up-size-stream);flex-direction:column;gap:2px;padding:6px 8px;line-height:1.25;display:flex;overflow:hidden}.up-stream-line{min-height:var(--up-target-min);width:100%;color:var(--up-ink);font:inherit;text-align:left;overflow-wrap:normal;word-break:keep-all;animation:up-merge-line var(--up-dur-merge) var(--up-ease-out) var(--up-merge-delay,0s) both;background:0 0;border:0;border-radius:6px;flex:none;align-items:center;margin:0;padding:4px 8px;display:flex}button.up-stream-line{cursor:pointer;touch-action:manipulation;background:var(--up-lane-fill)}button.up-stream-line:hover{background:var(--up-target-fill)}button.up-stream-line:active{transform:scale(.99)}button.up-stream-line:focus-visible{outline:3px solid var(--up-focus);outline-offset:-3px}.up-stream-line.is-selected{background:var(--up-target-fill);box-shadow:inset 3px 0 0 var(--up-ink)}.up-stream-line.mark-outline,.up-stream-line.is-selected.mark-outline{box-shadow:inset 3px 0 0 var(--up-ink), inset 0 0 0 3px var(--up-notyet)}.up-stream-line.mark-answer,.up-stream-line.is-selected.mark-answer{box-shadow:inset 0 0 0 3px var(--up-holds)}.up-stream-line.mark-cross .up-stream-text{color:var(--up-ink-muted)}.up-line-cross{color:var(--up-notyet);font-family:var(--up-font-ui);flex:none;margin-left:auto;padding-left:8px;font-weight:700}.up-stream-line.mark-pulse{animation:up-pulse calc(var(--up-dur-leg) + var(--up-dur-snap)) var(--up-ease-out) 2}.up-stream-line.mark-flash{animation:up-flash calc(var(--up-dur-leg) * 2) linear 1}@keyframes up-merge-line{0%{opacity:0;transform:translateX(var(--up-merge-from,0px))}to{opacity:1;transform:translate(0)}}.up-tray{flex-wrap:wrap;justify-content:center;align-items:stretch;gap:10px;display:flex}.up-tray-item{min-height:var(--up-target-min);min-width:var(--up-target-min);border-radius:var(--up-radius);border:1.5px solid var(--up-block-stroke);background:var(--up-block-fill);color:var(--up-ink);font-family:var(--up-font-ui);font-size:var(--up-size-label);cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;transition:transform var(--up-dur-snap) var(--up-ease-out), box-shadow var(--up-dur-snap) var(--up-ease-out);align-items:center;gap:8px;padding:8px 14px;display:inline-flex}.up-tray-item:hover:not(:disabled){box-shadow:0 2px 8px #0f172a1f}.up-tray-item:active:not(:disabled){transform:scale(.98)}.up-tray-item:focus-visible{outline:3px solid var(--up-focus);outline-offset:2px}.up-tray-item:disabled{cursor:default;opacity:.4}.up-tray-item.is-used{visibility:hidden}.up-tray-item.is-held{border-color:var(--up-target);box-shadow:0 0 0 3px var(--up-target-fill), 0 0 0 1.5px var(--up-target)}.up-tray-item.mark-pulse{border-color:var(--up-target);box-shadow:inset 0 0 0 1.5px var(--up-target);animation:up-pulse calc(var(--up-dur-leg) + var(--up-dur-snap)) var(--up-ease-out) 2}.up-tray-item.mark-outline{border-color:var(--up-notyet);box-shadow:0 0 0 2px var(--up-notyet)}.up-tray-label{font-weight:var(--up-weight-label)}.up-tray-item--send,.up-tray-item--delete,.up-tray-item--gate{border-color:var(--up-acts)}.up-tray-item--line{text-align:left;border-style:dashed;border-color:var(--up-outside);max-width:100%}.up-tray-line{font-family:var(--up-font-mono);overflow-wrap:normal}.up-ghost{z-index:1000;box-sizing:border-box;border-radius:var(--up-radius);border:2px solid var(--up-target);background:var(--up-block-fill);color:var(--up-ink);font-family:var(--up-font-ui);font-size:var(--up-size-label);font-weight:var(--up-weight-label);pointer-events:none;opacity:.95;justify-content:center;align-items:center;gap:6px;padding:4px 10px;display:flex;position:fixed;top:0;left:0;overflow:hidden;box-shadow:0 8px 20px #0f172a33}.up-ghost--line span{font-family:var(--up-font-mono);font-weight:400}.up-ghost.is-returning{transition:transform var(--up-dur-snap) var(--up-ease-snap), opacity var(--up-dur-snap) var(--up-ease-out);opacity:.6}.up-ghost.is-landing{opacity:.4}.up-ghost-line{z-index:1000;pointer-events:none;position:fixed;inset:0;overflow:visible}.up-ghost-line line{stroke:var(--up-outside);stroke-width:2.5px;stroke-dasharray:6 5}.up-ghost-line circle{fill:var(--up-panel);stroke:var(--up-target);stroke-width:3px}.up-ghost-line.is-returning{opacity:0;transition:opacity var(--up-dur-snap) var(--up-ease-out)}@media (prefers-reduced-motion:reduce){.up-canvas *,.up-tray *,.up-tray,.up-ghost{transition-duration:0s!important;animation-duration:0s!important;animation-delay:0s!important}}.is-reduced *,.is-reduced{--up-arrive-delay:0s}.up-block--filter.is-ghost{opacity:.5}.up-block--filter .up-block-rect{fill:var(--up-block-fill);stroke:var(--up-ink-muted);stroke-width:1.5px}.up-edge-anchor{fill:#0000;pointer-events:none}.up-edge.is-movable .up-edge-anchor,.up-edge.is-target .up-edge-anchor{pointer-events:all}.up-edge.mark-trace .up-edge-glow{opacity:1}
