:root{--window: #ffffff;--panel: #f5f5f7;--line: #d2d2d7;--line-soft: #e5e5ea;--row: #ffffff;--surface: #ffffff;--surface-raised: #f0f0f3;--surface-pressed: #e3e3e8;--ink: #1d1d1f;--ink-dim: #4f4f54;--ink-quiet: #86868b;--tint: #0071e3;--tint-pressed: #005fc2;--on-tint: #ffffff;--warn: #9a4a00;--warn-line: #f2b26b;--warn-bg: #fff4e5;--live-bg: #d70015;--live-ink: #ffffff;--live-line: #ff3b30;--modelled-bg: #7d3c98;--modelled-ink: #ffffff;--modelled-line: #af52de;--danger: #d70015;--danger-line: #b3000f;--danger-raised: #ee1a2d;--board: #e8e2d6;--paper: #ffffff;--scrim: #00000040;--shadow: #00000029;--glass: #ffffffb8;--glass-edge: #ffffffcc;--glass-line: #00000014;--card: #ffffff;--card-shadow: 0 10px 30px #00000024, 0 1px 3px #0000001a;--radius-card: 14px;--radius-button: 10px;--press: 90ms ease-out;--settle: .2s cubic-bezier(.2, .8, .2, 1);--enter: .24s cubic-bezier(.16, 1, .3, 1);--exit: .14s cubic-bezier(.4, 0, 1, 1);--slide: .26s cubic-bezier(.32, .72, 0, 1);--swap: .12s ease-out;--pulse: 2.4s ease-in-out;color-scheme:light}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font:14px/1.4 -apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;background:var(--window);color:var(--ink);overscroll-behavior:none;-webkit-user-select:none;user-select:none;touch-action:none}.app{display:grid;grid-template-rows:auto 1fr auto;grid-template-columns:1fr auto;grid-template-areas:"toolbar toolbar" "stage sheet" "timeline timeline";height:100%;overflow:hidden}.toolbar{grid-area:toolbar;display:flex;align-items:center;gap:8px;padding:6px 12px;background:var(--panel);border-bottom:1px solid var(--line)}.toolbar .name{margin-right:auto;margin-left:-8px;padding:4px 8px;border:0;background:none;box-shadow:none;text-align:left;font-weight:600;font-size:16px;line-height:1.2;letter-spacing:-.01em;border-radius:8px;min-width:0}.toolbar .name small{display:block;font-weight:400;font-size:12px;letter-spacing:0;color:var(--ink-dim)}.toolbar-group{display:flex;gap:4px}.stage{grid-area:stage;position:relative;overflow:hidden;min-width:0;min-height:0}.stage>.board{position:absolute;top:0;right:0;bottom:0;left:0}.board{position:relative;overflow:hidden;background:var(--board)}.timeline{grid-area:timeline;display:flex;align-items:center;gap:10px;padding:8px 12px;background:var(--panel);border-top:1px solid var(--line)}.rail{position:absolute;z-index:3;left:14px;top:14px;max-height:calc(100% - 28px);overflow-y:auto;display:flex;flex-direction:column;gap:1px;padding:5px;border-radius:16px;background:var(--glass);-webkit-backdrop-filter:blur(16px) saturate(140%);backdrop-filter:blur(16px) saturate(140%);border:1px solid var(--glass-line);box-shadow:var(--card-shadow);scrollbar-width:none}.rail::-webkit-scrollbar{display:none}.rail .tool{position:relative;flex:none;width:52px;height:52px;min-height:52px;padding:0;border:0;border-radius:12px;background:none;box-shadow:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:10.5px;line-height:1;color:var(--ink-dim)}.rail .tool:hover:not(:disabled){background:var(--surface-pressed);color:var(--ink)}.rail .tool.selected,.rail .tool.selected:hover:not(:disabled){background:var(--tint);color:var(--on-tint);font-weight:600}.rail .tool.group-end{margin-bottom:7px}.rail .tool.group-end:after{content:"";position:absolute;left:10px;right:10px;bottom:-4px;border-top:1px solid var(--line)}.card{position:absolute;z-index:4;width:300px;max-width:calc(100% - 28px);max-height:calc(100% - 28px);display:flex;flex-direction:column;overflow:hidden;background:var(--card);border:1px solid var(--line-soft);border-radius:var(--radius-card);box-shadow:var(--card-shadow);--from: translateY(6px);animation:card-in var(--enter) backwards}.card.beside-rail{left:86px;top:14px;--from: translateX(-10px);transform-origin:0 0}.card.top-right{right:104px;top:64px;max-height:calc(100% - 78px);--from: translateY(-6px);transform-origin:100% 0}.card-swap{animation:swap var(--swap) backwards}.card-head{flex:none;display:flex;align-items:center;gap:8px;padding:8px 8px 8px 14px;border-bottom:1px solid var(--line-soft)}.card-head h2{flex:1;margin:0;font-size:15px;font-weight:600;letter-spacing:-.01em}.card-body{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y}.card-body>section.panel:last-child{border-bottom:0}.card-foot{flex:none;display:flex;gap:6px;padding:8px 12px;border-top:1px solid var(--line-soft);background:var(--panel)}.card-foot .action{flex:1}.pills{position:absolute;z-index:3;right:14px;top:14px;display:flex;justify-content:flex-end;gap:6px}.pill{display:inline-flex;align-items:center;gap:8px;height:40px;min-height:40px;padding:0 14px 0 12px;border-radius:999px;background:var(--glass);-webkit-backdrop-filter:blur(16px) saturate(140%);backdrop-filter:blur(16px) saturate(140%);border:1px solid var(--glass-line);box-shadow:var(--card-shadow);font-size:13px;font-weight:600;white-space:nowrap}.pill small{font-size:11px;font-weight:600;padding:2px 8px;border-radius:999px;background:var(--warn-bg);color:var(--warn)}.pill.selected,.pill.selected:hover:not(:disabled){background:var(--tint);border-color:var(--tint);color:var(--on-tint)}.pill.modelled,.pill.modelled:hover:not(:disabled){background:var(--modelled-bg);border-color:var(--modelled-bg);color:var(--modelled-ink)}.stage .compass{top:64px}.stage .wind-dial{top:148px}.sheet.lists{grid-area:sheet;width:clamp(280px,26vw,340px);display:flex;flex-direction:column;min-height:0;border-left:1px solid var(--line);background:var(--panel);animation:lists-in var(--slide) backwards}.sheet-head{flex:none;display:flex;align-items:center;gap:4px;padding:6px 8px 6px 14px}.sheet-head h2{flex:1;margin:0;font-size:15px;font-weight:600;letter-spacing:-.01em}.sheet-tabs{position:relative;flex:none;display:grid;grid-template-columns:repeat(var(--tabs, 7),minmax(0,1fr));gap:2px;padding:0 6px 6px;border-bottom:1px solid var(--line)}.sheet-tabs .tab{position:relative;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:48px;padding:4px 2px;border:0;border-radius:10px;background:none;box-shadow:none;font-size:10px;line-height:1;color:var(--ink-dim)}.tab-thumb{position:absolute;left:6px;top:0;bottom:6px;width:calc((100% - 12px - (var(--tabs, 7) - 1) * 2px) / var(--tabs, 7));border-radius:10px;background:var(--tint);transform:translate(calc((100% + 2px) * var(--at, 0)));transition:transform var(--slide)}.sheet-tabs .tab.on,.sheet-tabs .tab.on:hover:not(:disabled),.sheet-tabs .tab.on:active:not(:disabled){background:none;color:var(--on-tint);font-weight:600}.sheet-body{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;touch-action:pan-y}.chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.chip{display:inline-flex;align-items:center;gap:6px;height:40px;min-height:40px;padding:0 14px;border-radius:999px;font-size:13px}.chip.selected{font-weight:600}.actions{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.actions .action{flex:1 1 auto}.action{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:40px;padding:0 12px;border-radius:var(--radius-button);white-space:nowrap}.action.primary,.action.primary:hover:not(:disabled){background:var(--ink);border-color:var(--ink);color:var(--window);font-weight:600}button.action.danger,button.action.danger:hover:not(:disabled){background:var(--surface);border-color:var(--line);color:var(--danger)}.icon-button{width:40px;height:40px;min-height:40px;padding:0;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--radius-button);flex:none}.bottom-sheet{position:absolute;z-index:6;left:80px;right:0;bottom:0;height:calc(100% - 14px);transform:translateY(calc(50% - 7px));display:flex;flex-direction:column;background:var(--card);border-top:1px solid var(--line-soft);border-radius:16px 16px 0 0;box-shadow:0 -8px 30px #00000024;transition:transform var(--slide);animation:sheet-up var(--slide) backwards}.bottom-sheet.full{transform:translateY(0)}.grabber{flex:none;display:flex;justify-content:center;padding:8px 0 4px;cursor:grab;touch-action:none}.grabber i{display:block;width:40px;height:5px;border-radius:3px;background:var(--line)}.grabber:focus-visible{outline:none}.grabber:focus-visible i{background:var(--tint)}.bottom-sheet-body{flex:1;min-height:0;display:flex;flex-direction:column;padding-bottom:var(--below, 0px)}.bottom-sheet .card,.bottom-sheet .sheet.lists{position:static;flex:1;width:auto;max-width:none;max-height:none;min-height:0;border:0;border-radius:0;box-shadow:none;animation:none;background:var(--card)}.bottom-sheet section.panel{max-width:520px}.inspector{position:absolute;z-index:5;width:260px;padding:8px 12px 12px;background:var(--card);border:1px solid var(--line-soft);border-radius:12px;box-shadow:var(--card-shadow);transform-origin:0 var(--tail);animation:inspector-in var(--enter) backwards}.inspector.left{transform-origin:100% var(--tail)}.inspector:before{content:"";position:absolute;top:calc(var(--tail) - 7px);width:14px;height:14px;background:var(--card);border:1px solid var(--line-soft);transform:rotate(45deg)}.inspector.right:before{left:-8px;border-right:0;border-top:0}.inspector.left:before{right:-8px;border-left:0;border-bottom:0}.inspector-head{display:flex;align-items:center;gap:8px;margin-bottom:6px}.inspector-head h2{flex:1;margin:0;font-size:14px;font-weight:600}.inspector-head .icon-button{width:32px;height:32px;min-height:32px;border:0;box-shadow:none;background:none}.inspector .field{grid-template-columns:1fr 104px}.inspector .field input,.inspector .field select{min-height:36px}.inspector .actions{margin:8px 0 0;align-items:center}.inspector .inject-text{margin-bottom:8px;min-height:72px}.inspector .hint{margin-bottom:8px}.inspector .inspector-head .inject-number{flex:none;width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;background:var(--tint);color:var(--on-tint)}.inspector .inspector-head .inject-number.delivered{background:var(--line);color:var(--ink)}.track{flex:1;min-width:0;height:48px;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;touch-action:pan-x}.track::-webkit-scrollbar{display:none}.track-inner{position:relative;height:48px}.track-line{position:absolute;top:13px;height:2px;background:var(--line)}.stop{position:absolute;top:0;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:4px;width:96px;min-height:48px;padding:6px 4px 0;border:0;border-radius:8px;background:none;box-shadow:none;font-size:11px;line-height:1.2;color:var(--ink-dim)}.stop:hover:not(:disabled){background:none;color:var(--ink)}.stop:active:not(:disabled){transform:translate(-50%) scale(.97)}.stop i{display:block;width:14px;height:14px;border-radius:50%;background:var(--surface);border:2px solid var(--ink-quiet);transition:transform var(--settle),background-color var(--settle),border-color var(--settle)}.stop span{max-width:96px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stop.selected,.stop.selected:hover:not(:disabled),.stop.selected:active:not(:disabled){background:none;color:var(--tint);font-weight:600}.stop.selected i{opacity:0}.stop.predicted i{border-style:dashed;border-color:var(--modelled-line)}.stop.predicted.selected{color:var(--modelled-bg)}.stop-marker{position:absolute;top:4px;left:-9px;width:18px;height:18px;border-radius:50%;background:var(--tint);box-shadow:0 0 0 4px #0071e324;pointer-events:none;transition:transform var(--slide),background-color var(--settle),box-shadow var(--settle)}.stop-marker.predicted{background:var(--modelled-bg);box-shadow:0 0 0 4px #7d3c9824}.step-menu{display:grid;gap:4px;min-width:200px;font-size:13px}.step-menu small{color:var(--ink-dim);margin-bottom:4px}.choices{display:grid;grid-template-columns:repeat(auto-fit,minmax(176px,1fr));gap:10px;margin-bottom:10px}.choice{display:grid;justify-items:start;gap:6px;padding:14px 16px;min-height:120px;text-align:left;border-radius:var(--radius-card);white-space:normal}.choice b{font-size:15px}.choice small{color:var(--ink-dim);line-height:1.4}.choice.selected small{color:inherit}.infotip-bubble[role=menu]{padding:6px}.menu{list-style:none;margin:0;padding:0;display:grid;min-width:220px}.menu-item{display:flex;align-items:center;gap:10px;width:100%;min-height:42px;padding:0 10px;border:0;border-radius:8px;background:none;box-shadow:none;text-align:left;font-size:14px}.menu-item>span{display:grid;gap:2px;text-align:left;padding:6px 0}.menu-note{font-size:12px;color:var(--ink-dim);white-space:normal}.menu-item.danger,.menu-item.danger:hover:not(:disabled){background:none;border-color:transparent;color:var(--danger)}.menu-item:hover:not(:disabled){background:var(--surface-raised)}button{font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-button);padding:6px 12px;cursor:pointer;min-height:40px;box-shadow:0 1px 1px #0000000a;-webkit-tap-highlight-color:transparent;transition:background-color var(--settle),border-color var(--settle),color var(--settle),transform var(--settle)}button:hover:not(:disabled):not([aria-disabled=true]){background:var(--surface-raised)}button:active:not(:disabled):not([aria-disabled=true]){transform:scale(.96);background:var(--surface-pressed);transition:transform var(--press),background-color var(--press)}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--tint);outline-offset:2px}button:disabled,button[aria-disabled=true]{opacity:.4;cursor:default}button.selected{background:var(--tint);border-color:var(--tint);color:var(--on-tint);font-weight:600}button.selected:hover:not(:disabled):not([aria-disabled=true]){background:var(--tint)}button.selected:active:not(:disabled){background:var(--tint-pressed)}section.panel{padding:12px;border-bottom:1px solid var(--line)}section.panel h2{margin:0 0 8px;font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-dim)}.piece-list{display:grid;gap:6px}.piece-list button{display:flex;align-items:center;gap:10px;text-align:left;padding:6px 10px;min-height:44px}.piece-list svg{flex:none;width:26px;height:26px}.piece-list button small{margin-left:auto;color:var(--ink-dim)}.piece-list button.selected small{color:inherit}.field{display:grid;grid-template-columns:1fr 110px;align-items:center;gap:6px;margin-bottom:6px}.field.long-label{grid-template-columns:1fr 84px}.field label{color:var(--ink)}.field input,.field select{font:inherit;width:100%;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:5px 8px;min-height:40px}.hint{color:var(--ink-dim);font-size:12px;margin:0}.compass{position:absolute;right:14px;top:14px;width:76px;height:76px;pointer-events:none}.tool-row{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.tool-row button{flex:1 1 auto;min-width:0}.tool-row.tabs button{padding:6px 0;font-size:12px}.list{list-style:none;margin:0 0 8px;padding:0;display:grid;gap:6px}.list li{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:6px 8px;background:var(--row);border:1px solid var(--line-soft);border-radius:6px}.list li span{flex:1 1 120px;min-width:0}.list li small{display:block;color:var(--ink-dim);font-size:12px}.list li button{flex:none;min-height:36px;padding:3px 10px;font-size:12px}h3.sub{margin:12px 0 8px;font-size:11px;letter-spacing:.08em;text-transform:uppercase;font-weight:600;color:var(--ink-dim)}.hint.warn{color:var(--warn);margin-top:6px}.list.injects li{align-items:flex-start}.list.injects li span{display:grid;gap:6px}.list.injects li .inject-number{flex:none;width:22px;min-width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;background:var(--tint);color:var(--on-tint)}.list.injects li .inject-number.delivered{background:var(--line);color:var(--ink)}.inject-text{font:inherit;width:100%;resize:vertical;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:5px 6px}.inject-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.inject-meta .inject-piece{flex:1 1 130px;min-width:110px}.inject-meta small{flex:1}.inject-tick{display:flex;align-items:center;gap:5px;color:var(--ink-dim);font-size:12px;white-space:nowrap}.inject-tick input[type=checkbox]{width:18px;min-height:18px;margin:0;accent-color:var(--tint)}.inject-piece{font:inherit;font-size:12px;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:3px 4px}.inject-add{display:flex;gap:6px;margin-bottom:8px}.inject-add input{font:inherit;flex:1;min-width:0;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:5px 6px;min-height:30px}button.as-text{padding:0;min-height:0;border:0;background:none;color:inherit;text-align:left;font:inherit}button.as-text:hover{background:none;text-decoration:underline}.field input[type=checkbox]{width:20px;min-height:20px;justify-self:start;accent-color:var(--tint)}.field input[type=range]{padding:0;border:0;background:none;accent-color:var(--tint)}.board-hint{position:absolute;left:50%;bottom:14px;transform:translate(-50%);margin:0;padding:6px 12px;border-radius:999px;background:var(--glass);-webkit-backdrop-filter:blur(12px) saturate(140%);backdrop-filter:blur(12px) saturate(140%);border:1px solid var(--glass-line);color:var(--ink);font-size:12px;pointer-events:none;animation:appear var(--enter) backwards}.board-hint-words{display:inline-block;animation:swap var(--swap) backwards}.mode-switch{position:relative;flex:none;display:grid;grid-template-columns:repeat(3,1fr);padding:2px;margin-right:4px;border-radius:999px;background:var(--surface-pressed)}.mode-thumb{position:absolute;left:2px;top:2px;bottom:2px;width:calc((100% - 4px) / 3);border-radius:999px;background:var(--surface);box-shadow:0 1px 3px #00000026,0 1px 1px #0000000f;transform:translate(calc(100% * var(--at, 0)));transition:transform var(--slide),background-color var(--settle)}.mode-switch.live .mode-thumb{background:var(--live-bg)}.mode-switch button,.mode-switch button:hover:not(:disabled):not([aria-disabled=true]),.mode-switch button:active:not(:disabled):not([aria-disabled=true]){position:relative;min-width:72px;padding:0 14px;border:0;border-radius:999px;background:none;box-shadow:none;color:var(--ink-dim)}.mode-switch button:hover:not(:disabled):not([aria-disabled=true]),.mode-switch button.on{color:var(--ink)}.mode-switch button.on{font-weight:600}.mode-switch.live button.on{color:var(--live-ink)}.live-badge{display:inline-flex;align-items:center;gap:7px;padding:4px 10px;border-radius:999px;background:var(--live-bg);color:var(--live-ink);font-size:12px;font-weight:600}.live-badge.modelled{background:var(--modelled-bg);color:var(--modelled-ink)}.pulse-dot{flex:none;display:block;width:8px;height:8px;border-radius:50%;background:currentColor;animation:pulse var(--pulse) infinite}.pill .pulse-dot{margin:0 5px}.timeline.live{border-top-color:var(--live-line)}.live-clock{font-variant-numeric:tabular-nums;font-weight:600;font-size:20px;letter-spacing:-.02em;line-height:1;padding-right:6px}.dialog-body.notice p{margin:0 0 10px;line-height:1.5}.save-note{color:var(--ink-dim);font-size:12px;margin-right:4px}.save-note.warn{color:var(--warn);font-weight:600}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10;display:grid;place-items:center;padding:24px;background:var(--scrim);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:scrim-in var(--settle) both}.dialog{display:flex;flex-direction:column;width:min(640px,100%);max-height:100%;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-card);overflow:hidden;box-shadow:0 18px 48px var(--shadow);animation:materialise var(--enter) backwards}.dialog header,.dialog footer{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:12px}.dialog header{border-bottom:1px solid var(--line)}.dialog header h2{flex:1;margin:0;font-size:17px;line-height:1.2;letter-spacing:-.01em}.dialog footer{border-top:1px solid var(--line)}.dialog footer .hint{flex-basis:100%}.dialog-body{overflow-y:auto;padding:12px;-webkit-overflow-scrolling:touch;touch-action:pan-y}.dialog-body .list{margin:0}.dialog-body .list li{flex-wrap:wrap}.dialog-body .list li input{font:inherit;flex:1;min-width:140px;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:5px 6px;min-height:30px}.warning{margin:12px 12px 0;padding:8px 10px;border:1px solid var(--warn-line);border-radius:6px;background:var(--warn-bg);color:var(--warn);font-size:12px}button.danger{background:var(--danger);border-color:var(--danger-line)}button.danger:hover:not(:disabled){background:var(--danger-raised)}.swatches{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.swatch{position:relative;flex:none;width:26px;height:26px;min-height:26px;padding:0;border:2px solid var(--line);border-radius:6px}.swatch:before{content:"";position:absolute;top:-3px;right:-3px;bottom:-3px;left:-3px}.swatch.picked{border-color:var(--ink);box-shadow:0 0 0 2px var(--panel) inset}.swatch:hover:not(:disabled){border-color:var(--ink-dim)}.list li span.swatch{width:14px;height:14px;min-height:14px;border-width:1px;border-radius:4px}.label-input{position:absolute;z-index:2;min-width:120px;padding:2px 4px;transform:translate(-6px,-4px);font-family:inherit;font-weight:600;line-height:1.2;background:color-mix(in srgb,var(--paper) 93%,transparent);border:2px solid var(--tint);border-radius:4px;outline:none}.label-input::placeholder{color:var(--ink-quiet);font-weight:400}.wind-dial{position:absolute;right:14px;top:98px;width:76px;display:flex;flex-direction:column;align-items:center;gap:2px}.wind-dial svg{width:76px;height:76px;cursor:grab;touch-action:none}.wind-dial svg:active{cursor:grabbing}.wind-dial svg:focus{outline:none}.wind-dial svg:focus-visible{outline:2px solid var(--tint);outline-offset:2px;border-radius:50%}.wind-dial-read{padding:1px 6px;border-radius:999px;background:var(--glass);-webkit-backdrop-filter:blur(12px) saturate(140%);backdrop-filter:blur(12px) saturate(140%);border:1px solid var(--glass-line);color:var(--ink);font-size:11px;font-weight:600;white-space:nowrap}.scale-bar{position:absolute;left:14px;bottom:14px;display:flex;align-items:center;gap:8px;padding:4px 8px;border-radius:6px;background:var(--glass);-webkit-backdrop-filter:blur(12px) saturate(140%);backdrop-filter:blur(12px) saturate(140%);border:1px solid var(--glass-line);pointer-events:none}.scale-bar-rule{display:flex;height:8px;border:1px solid var(--ink)}.scale-bar-rule span{flex:1}.scale-bar-rule span:first-child{background:var(--ink)}.scale-bar-read{color:var(--ink);font-size:11px;font-weight:600;white-space:nowrap}.smoke-swatch{display:inline-block;width:14px;height:14px;margin-left:6px;border-radius:3px;border:1px solid var(--line);vertical-align:-2px}.dialog-section{margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}.dialog-section h3{margin:0 0 4px;font-size:13px}.dialog-section .hint{margin-bottom:8px}.thumb{flex:none;width:22px;height:22px}.list li .thumb{align-self:flex-start;margin-top:1px}.list.readings li span{flex:1}.infotip{position:relative;display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;min-height:18px;padding:0;margin-left:6px;border-radius:50%;border:1px solid var(--line);background:var(--surface);color:var(--ink-dim);font-size:11px;font-style:italic;font-weight:600;line-height:1;vertical-align:middle;flex:none}.infotip:before{content:"";position:absolute;top:-10px;right:-10px;bottom:-10px;left:-10px}.infotip:hover:not(:disabled){background:var(--surface-raised);color:var(--ink)}.infotip.open{background:var(--tint);border-color:var(--tint);color:var(--on-tint)}section.panel h2 .infotip,.dialog-section h3 .infotip{margin-left:8px}.field label .infotip{width:16px;height:16px;min-height:16px;margin-left:3px;font-size:10px}.infotip-bubble{position:fixed;z-index:60;max-width:min(300px,calc(100vw - 24px));padding:10px 12px;border:1px solid var(--line);border-radius:8px;background:var(--window);border-color:var(--line-soft);color:var(--ink);font-size:12px;line-height:1.45;text-transform:none;letter-spacing:normal;font-weight:400;box-shadow:0 8px 24px var(--shadow);animation:bubble-in var(--enter) backwards}.infotip-bubble p{margin:0 0 8px}.infotip-bubble p:last-child{margin-bottom:0}.list li.picked{border-color:var(--tint)}.bal-swatch{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:6px;vertical-align:baseline}.list li small.lost{color:var(--warn)}.presence{display:contents}.presence[data-leaving]>.card{animation:card-out var(--exit) forwards}.presence[data-leaving]>.inspector{animation:inspector-out var(--exit) forwards}.presence[data-leaving]>.infotip-bubble{animation:bubble-out var(--exit) forwards}.presence[data-leaving]>.scrim{animation:scrim-out var(--exit) forwards}.presence[data-leaving] .dialog{animation:dialog-out var(--exit) forwards}.presence[data-leaving]>.sheet.lists{animation:lists-out var(--exit) forwards}.presence[data-leaving]>.bottom-sheet{animation:sheet-down var(--slide) forwards}@keyframes card-in{0%{opacity:0;transform:var(--from) scale(.97)}}@keyframes card-out{to{opacity:0;transform:var(--from) scale(.97)}}@keyframes inspector-in{0%{opacity:0;transform:scale(.94)}}@keyframes inspector-out{to{opacity:0;transform:scale(.96)}}@keyframes swap{0%{opacity:0}}@keyframes materialise{0%{opacity:0;transform:scale(.96) translateY(8px);filter:blur(3px)}}@keyframes dialog-out{to{opacity:0;transform:scale(.98) translateY(4px)}}@keyframes scrim-in{0%{opacity:0}}@keyframes scrim-out{to{opacity:0}}@keyframes bubble-in{0%{opacity:0;transform:scale(.92)}}@keyframes bubble-out{to{opacity:0;transform:scale(.95)}}@keyframes lists-in{0%{opacity:0;transform:translate(32px)}}@keyframes lists-out{to{opacity:0;transform:translate(24px)}}@keyframes sheet-up{0%{transform:translateY(100%)}}@keyframes sheet-down{to{transform:translateY(100%)}}@keyframes notice-in{0%{opacity:0;transform:translateY(8px)}}@keyframes notice-out{to{opacity:0;transform:translateY(8px)}}@keyframes pulse{50%{opacity:.35;transform:scale(.75)}}@keyframes appear{0%{opacity:0}}@keyframes disappear{to{opacity:0}}@media(prefers-reduced-motion:reduce){button,button:active:not(:disabled){transition:none;transform:none}.scrim,.dialog,.card,.inspector,.bottom-sheet,.infotip-bubble,.sheet.lists,.notice{animation:appear .15s ease-out backwards}.presence[data-leaving]>.card,.presence[data-leaving]>.inspector,.presence[data-leaving]>.infotip-bubble,.presence[data-leaving]>.scrim,.presence[data-leaving] .dialog,.presence[data-leaving]>.sheet.lists,.presence[data-leaving]>.bottom-sheet,.notice.leaving{animation:disappear .14s ease-in forwards}.bottom-sheet,.mode-thumb,.tab-thumb,.stop-marker{transition:none}.pulse-dot{animation:none}}@media(prefers-reduced-transparency:reduce){.board-hint,.wind-dial-read,.scale-bar,.rail,.pill,.scrim{-webkit-backdrop-filter:none;backdrop-filter:none}.board-hint,.wind-dial-read,.scale-bar,.rail,.pill{background:var(--window)}}@media(prefers-contrast:more){.board-hint,.wind-dial-read,.scale-bar,.rail,.pill,.card,.infotip-bubble{background:var(--window);border:1px solid var(--ink-dim)}}.crew-stage{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--board)}.crew-board{position:absolute;top:0;right:0;bottom:0;left:0}.crew-wind{pointer-events:none}.crew-stage.with-briefing .crew-board{right:min(40%,640px)}.crew-briefing{position:absolute;top:0;right:0;bottom:0;width:min(40%,640px);overflow-y:auto;padding:calc(20px + env(safe-area-inset-top)) calc(24px + env(safe-area-inset-right)) 24px 24px;background:var(--paper);border-left:1px solid var(--line);font-size:clamp(15px,1.35vw,21px);line-height:1.4}.crew-briefing h2{margin:0 0 8px;font-size:clamp(20px,2.2vw,32px);letter-spacing:-.01em}.crew-briefing h3{margin:16px 0 4px;font-size:.8em;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-dim)}.crew-briefing p{margin:0 0 4px}.crew-caption{position:absolute;left:16px;bottom:16px;max-width:min(720px,calc(100% - 32px));display:flex;flex-direction:column;gap:6px;padding:12px 16px;border-radius:14px;background:var(--glass);border:1px solid var(--glass-edge);-webkit-backdrop-filter:blur(16px) saturate(140%);backdrop-filter:blur(16px) saturate(140%);box-shadow:0 2px 12px var(--shadow);pointer-events:none}.crew-step{font-size:clamp(20px,2.4vw,34px);font-weight:600;letter-spacing:-.01em;line-height:1.15}.crew-step small{display:block;font-size:.45em;font-weight:400;letter-spacing:0;color:var(--ink-dim)}.crew-weather{font-size:clamp(14px,1.4vw,20px)}.crew-note{align-self:flex-start;padding:3px 10px;border-radius:999px;background:var(--modelled-bg);color:var(--modelled-ink);font-size:clamp(12px,1.1vw,16px)}.crew-banner{position:absolute;top:16px;left:50%;transform:translate(-50%);padding:6px 14px;border-radius:999px;background:var(--warn-bg);color:var(--warn);border:1px solid var(--warn-line)}.crew-fullscreen{position:absolute;top:16px;left:16px}.crew-waiting{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;background:var(--board);font-size:18px}.crew-waiting p{margin:0}.present-here{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50}.present-controls{position:absolute;top:16px;left:16px;display:flex;gap:6px;transition:opacity var(--settle)}.present-controls.away{opacity:0;pointer-events:none}.crew-board .scale-bar{left:auto;right:16px;bottom:16px}.three-d{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#c9d6e2}.three-d-stage{position:absolute;top:0;right:0;bottom:0;left:0}.three-d-stage canvas,.crew-three-d canvas{position:absolute;top:0;left:0;display:block}.crew-three-d{background:#c9d6e2}.crew-three-d.building{visibility:hidden}.three-d-top{position:absolute;top:14px;left:14px;right:14px;display:flex;justify-content:space-between;align-items:flex-start;gap:8px;flex-wrap:wrap;pointer-events:none}.three-d-group{display:flex;align-items:center;flex-wrap:wrap;gap:6px}.three-d-top>*>*{pointer-events:auto}.three-d-name{font-weight:600}.three-d-hint{position:absolute;left:50%;top:68px;transform:translate(-50%);margin:0;padding:6px 12px;border-radius:999px;background:var(--glass);-webkit-backdrop-filter:blur(16px) saturate(140%);backdrop-filter:blur(16px) saturate(140%);font-size:12px;max-width:calc(100% - 28px);text-align:center;pointer-events:none}.three-d-hint.error{color:var(--warn)}.walk-pad{position:absolute;left:24px;bottom:calc(150px + env(safe-area-inset-bottom));width:124px;height:124px;border-radius:50%;background:var(--glass);-webkit-backdrop-filter:blur(16px) saturate(140%);backdrop-filter:blur(16px) saturate(140%);border:1px solid var(--glass-line);box-shadow:var(--card-shadow);display:grid;place-items:center;touch-action:none;user-select:none;-webkit-user-select:none}.walk-pad-height{position:absolute;left:158px;bottom:calc(150px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:8px}.walk-pad-height .action{touch-action:none;user-select:none;-webkit-user-select:none}.walk-pad-knob{width:48px;height:48px;border-radius:50%;background:var(--card);border:1px solid var(--line);box-shadow:0 2px 6px var(--shadow);pointer-events:none}.three-d-bottom{position:absolute;left:14px;right:14px;bottom:14px;display:flex;flex-direction:column;gap:6px;padding:8px;border-radius:16px;background:var(--glass);-webkit-backdrop-filter:blur(16px) saturate(140%);backdrop-filter:blur(16px) saturate(140%);border:1px solid var(--glass-line);box-shadow:var(--card-shadow)}.three-d-track{display:flex;align-items:center;flex-wrap:wrap;gap:6px}.three-d-track input[type=range]{flex:1;min-width:120px;min-height:40px}.three-d-clock{font-size:13px;font-variant-numeric:tabular-nums;min-width:140px}.three-d-note{font-size:11px;color:var(--ink-dim);padding:0 4px}.three-d-heat{color:var(--ink)}.three-d-heat.past{color:var(--warn)}.three-d-credits{flex:1;min-width:0;font-size:10px;color:var(--ink-dim);text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.toolbar{padding-top:calc(8px + env(safe-area-inset-top));padding-left:calc(12px + env(safe-area-inset-left));padding-right:calc(12px + env(safe-area-inset-right))}.timeline{padding-bottom:calc(8px + env(safe-area-inset-bottom));padding-left:calc(12px + env(safe-area-inset-left));padding-right:calc(12px + env(safe-area-inset-right))}.rail{left:calc(14px + env(safe-area-inset-left))}.pills{right:calc(14px + env(safe-area-inset-right))}.crew-caption{bottom:calc(16px + env(safe-area-inset-bottom));left:calc(16px + env(safe-area-inset-left))}.present-controls,.crew-fullscreen{top:calc(16px + env(safe-area-inset-top))}.three-d-top{top:calc(14px + env(safe-area-inset-top))}.three-d-bottom{bottom:calc(14px + env(safe-area-inset-bottom))}.crew-board .scale-bar{bottom:calc(16px + env(safe-area-inset-bottom))}.notes-dialog{width:min(760px,100%)}.notes-field{display:flex;flex-direction:column;gap:4px;margin-bottom:10px}.notes-field label{display:flex;align-items:center;gap:4px;font-weight:600}.notes-dialog input,.notes-dialog textarea{font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:6px 8px;min-height:32px;min-width:0;-webkit-user-select:text;user-select:text}.notes-dialog textarea{resize:vertical;line-height:1.45}.notes-questions,.notes-attendance{margin:0 0 8px;padding:0;display:flex;flex-direction:column;gap:6px}.notes-number{min-width:18px;color:var(--ink-dim);text-align:right}.notes-questions li{display:flex;gap:6px;align-items:center}.notes-questions li input{flex:1}.notes-new{width:100%}.notes-attendance li{list-style:none;display:grid;grid-template-columns:1.3fr 1fr 1fr auto auto;gap:6px;align-items:center}@media(max-width:620px){.notes-attendance li{grid-template-columns:1fr 1fr}}.stages{list-style:none;display:flex;flex-wrap:wrap;gap:4px 14px;margin:0 0 12px;padding:0;font-size:12px;color:var(--ink-quiet)}.stages li.done{color:var(--ink-dim)}.stages li.now{color:var(--ink);font-weight:600}.dialog-body .field.wide{grid-template-columns:110px 1fr}.pull-steps{list-style:none;margin:0 0 8px;padding:0;display:grid;gap:6px}.pull-steps li{display:flex;gap:10px;align-items:baseline;padding:6px 8px;background:var(--row);border:1px solid var(--line-soft);border-radius:6px}.pull-steps .state{flex:none;width:56px;font-size:12px;color:var(--ink-dim)}.pull-steps li.done .state{color:var(--tint)}.pull-steps li.failed .state{color:var(--warn)}.pull-steps li.pulling .state{font-weight:600}.pull-steps small{display:block;color:var(--ink-dim);font-size:12px}.fire-sketch{position:relative;width:100%;margin:8px 0;border:1px solid var(--line);border-radius:6px;overflow:hidden;background:var(--surface-raised)}.fire-sketch img,.fire-sketch-bare,.fire-sketch svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.fire-sketch img{object-fit:fill;pointer-events:none;user-select:none;-webkit-user-select:none}.fire-sketch-bare{background-image:linear-gradient(var(--line-soft) 1px,transparent 1px),linear-gradient(90deg,var(--line-soft) 1px,transparent 1px);background-size:12.5% 12.5%}.fire-sketch svg{touch-action:none;cursor:crosshair}.fire-sketch .edge{fill:#dc3c1440;stroke:#d63a14;stroke-width:3px;stroke-linejoin:round}.fire-sketch .edge.tracing{fill:none;stroke-dasharray:6 4}.fire-sketch .spot{fill:#dc3c1480;stroke:#d63a14;stroke-width:2px}.burn-dialog{width:min(940px,100%);height:min(900px,calc(100dvh - 48px))}.burn-tabs{padding:10px 12px;margin-bottom:0;border-bottom:1px solid var(--line)}.burn-section{margin-bottom:18px}.burn-section+.burn-section{padding-top:14px;border-top:1px solid var(--line)}.burn-section h3{display:flex;align-items:center;margin:0 0 8px;font-size:15px}.burn-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px 12px}.burn-field{display:flex;flex-direction:column;gap:4px;min-width:0}.burn-field.wide,.burn-grid>.wide{grid-column:1 / -1}.burn-field label,.burn-label{display:flex;align-items:center;flex-wrap:wrap;gap:6px;font-weight:600;font-size:13px}.burn-field label small{font-weight:400;color:var(--ink-dim)}.from-board{padding:1px 8px;border-radius:999px;background:var(--surface-raised);color:var(--ink-dim);font-size:11px;font-weight:500}.burn-dialog input,.burn-dialog textarea,.burn-dialog select{font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:6px 8px;min-height:40px;min-width:0;width:100%;-webkit-user-select:text;user-select:text}.burn-dialog textarea{resize:vertical;line-height:1.45}.burn-dialog input::placeholder,.burn-dialog textarea::placeholder{color:var(--ink-quiet)}.burn-dialog .chips{margin-bottom:0}.burn-dialog .actions{margin:4px 0 0}.met-table{display:grid;grid-template-columns:minmax(90px,1fr) repeat(3,minmax(64px,1fr));gap:6px 8px;align-items:center}.met-table b{font-size:12px;color:var(--ink-dim)}.risk{margin-bottom:12px}.risk-line{margin-top:6px}.burn-check{display:flex;align-items:center;gap:10px;min-height:40px}.burn-dialog .burn-check input{width:22px;min-height:22px;height:22px;flex:none}.model-hints .list li{align-items:flex-start}.model-hints small{display:block;color:var(--ink-dim);line-height:1.4}.form-list li.form-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;padding:12px 0}.form-row>div:first-child{display:flex;flex-direction:column;gap:3px;flex:1 1 320px;min-width:0}.form-row small{color:var(--ink-dim);line-height:1.4}.form-row small.warn{color:var(--warn)}.smeac-part+.smeac-part{margin-top:12px}.share-status{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.share-status.warn{color:var(--warn);font-weight:600}.list.peers li{align-items:flex-start}.peer-dot{flex:none;width:12px;height:12px;margin-top:4px;border-radius:50%;border:2px solid var(--card);box-shadow:0 0 0 1px var(--line)}.made-link{display:flex;gap:6px;margin:8px 0}.made-link input{flex:1;min-width:0;font-size:12px}.group-detail{margin-top:8px}.join-code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.08em}.list.members select{width:auto}.stand-pick{position:absolute;top:calc(64px + env(safe-area-inset-top));left:50%;transform:translate(-50%);z-index:15;display:flex;align-items:center;flex-wrap:wrap;justify-content:center;gap:8px;width:max-content;max-width:calc(100% - 32px);padding:8px 8px 8px 14px;border-radius:var(--radius-card);background:var(--card);color:var(--ink);box-shadow:var(--card-shadow);animation:notice-in var(--enter) backwards}.notices{position:fixed;left:50%;bottom:84px;transform:translate(-50%);z-index:20;display:grid;gap:6px;width:min(460px,calc(100vw - 32px))}.notice{display:flex;align-items:center;gap:8px;margin:0;padding:8px 8px 8px 14px;border-radius:var(--radius-card);background:var(--warn-bg);border:1px solid var(--warn-line);color:var(--ink);box-shadow:var(--card-shadow);animation:notice-in var(--enter) backwards}.notice.leaving{animation:notice-out var(--exit) forwards}.notice button{margin-left:auto;flex:none}.crew-follow{position:absolute;top:calc(16px + env(safe-area-inset-top));right:16px;width:auto}
