@font-face{font-family:Garamond;src:url(fonts/eb-garamond-latin-400-normal.woff2)}
@font-face{font-family:Garamond;font-weight:500;src:url(fonts/eb-garamond-latin-500-normal.woff2)}
@font-face{font-family:Geist;font-weight:400;src:url(fonts/geist-sans-latin-400-normal.woff2)}
@font-face{font-family:Geist;font-weight:500;src:url(fonts/geist-sans-latin-500-normal.woff2)}
@font-face{font-family:Geist;font-weight:600;src:url(fonts/geist-sans-latin-600-normal.woff2)}
@font-face{font-family:Mono;font-weight:400;src:url(fonts/jetbrains-mono-latin-400-normal.woff2)}
@property --a{syntax:'<angle>';inherits:false;initial-value:0deg}
:root{
  --chrome:#F6F4EE;--canvas:#FDFCFA;--card:#FFFEFA;--paper:#FAF8F2;--active:#EFECE3;--rule:#D8D2C0;--rule2:#ECE7DA;--line:#ECE7DA;
  --ink:#191C22;--ink-2:#454036;--ink-3:#78715F;--ink-4:#9A9384;--ink-5:#BEB6A4;
  --signal:#8F5F07;--signal-tint:#F7EFDB;--signal-on-ink:#D9A441;
  --ok:#3F5B47;--ok-tint:#E7EDE8;--danger:#B43A2E;--error-tint:#F8E5E2;
  --serif:Garamond,serif;--sans:Geist,sans-serif;--mono:Mono,monospace;
  --z:1; /* scale for vertical */
}
*{box-sizing:border-box;margin:0;padding:0}
*,*::before,*::after{animation:none!important;transition:none!important}
body{overflow:hidden;background:var(--chrome);color:var(--ink);font-family:var(--sans)}
.full{position:absolute;inset:0}
.abs{position:absolute}
.center{display:flex;flex-direction:column;align-items:center;justify-content:center}
.label{font-family:var(--mono);font-size:calc(13px*var(--z));letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3)}

/* thinking / boot: paper on ink, the mark turning */
.think{position:absolute;inset:0;background:var(--ink);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:calc(20px*var(--z));opacity:0;z-index:50}
.think svg{width:calc(64px*var(--z));height:calc(64px*var(--z))}
.think .wm{font-family:var(--serif);font-weight:500;font-size:calc(38px*var(--z));color:#FAF8F2}

/* panes */
.pane{position:absolute;inset:0;border:1px solid var(--rule);background:var(--canvas);overflow:hidden}
.pane-head{height:calc(56px*var(--z));border-bottom:1px solid var(--rule2);display:flex;align-items:center;gap:14px;padding:0 calc(24px*var(--z));font-family:var(--mono);font-size:calc(15px*var(--z));letter-spacing:.08em;color:var(--ink-3)}
.pane-head .tag{margin-left:auto}
.term{background:var(--ink);border-color:var(--ink);color:#EDE9DE}
.term .pane-head{border-color:#2B2F37;color:#9A9384}
.tbody{padding:calc(28px*var(--z)) calc(30px*var(--z));font-family:var(--mono);font-size:calc(22px*var(--z));line-height:1.6}
.line{white-space:pre;overflow:hidden}
.prompt{color:var(--signal-on-ink)}
.typed{display:inline-block;overflow:hidden;vertical-align:bottom;white-space:pre;width:0}
.dim{color:#9A9384}
.okc{color:#9FC1A8}
.cbody{padding:calc(28px*var(--z));display:flex;flex-direction:column;gap:18px;font-size:calc(22px*var(--z));line-height:1.45}
.bub{max-width:84%;padding:16px 20px;border:1px solid var(--rule2)}
.bub.me{align-self:flex-end;background:var(--active);border-color:var(--active)}
.bub.ai{align-self:flex-start;background:#fff}
.bub .who{font-family:var(--mono);font-size:calc(13px*var(--z));letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);margin-bottom:6px}

/* orchestra screens */
.oscreen{position:absolute;inset:0;background:var(--chrome);border:1px solid var(--rule)}
.ohead{height:calc(56px*var(--z));border-bottom:1px solid var(--rule2);display:flex;align-items:center;gap:12px;padding:0 calc(24px*var(--z));font-size:calc(18px*var(--z));font-weight:500;background:var(--chrome)}
.ohead img{width:calc(26px*var(--z));height:calc(26px*var(--z))}
.ohead .crumb{color:var(--ink-3);font-weight:400}
.obody{padding:calc(32px*var(--z))}
.h1{font-family:var(--serif);font-size:calc(44px*var(--z));line-height:1.1;margin-bottom:8px}
.h1s{font-size:calc(19px*var(--z));font-weight:600}
.desc{font-size:calc(17px*var(--z));color:var(--ink-3)}
.panel{background:var(--canvas);border:1px solid var(--rule2)}
.row{display:flex;align-items:center;gap:18px;padding:18px 20px;border:1px solid var(--rule2);background:var(--canvas);margin-top:14px;font-size:calc(19px*var(--z))}
.chip{font-family:var(--mono);font-size:calc(13px*var(--z));letter-spacing:.1em;text-transform:uppercase;padding:5px 10px;border:1px solid var(--rule);white-space:nowrap}
.chip.ok{color:var(--ok);background:var(--ok-tint);border-color:var(--ok-tint)}
.chip.sig{color:var(--signal);background:var(--signal-tint);border-color:var(--signal-tint)}
.bar{height:6px;background:var(--rule2);position:relative}
.bar i{position:absolute;left:0;top:0;bottom:0;width:0;background:var(--ink)}

/* ── the chat's work card, as the portal draws it (WorkSurface.css) ── */
.wp{position:relative;background:var(--card);border:1px solid color-mix(in srgb,var(--ink) 18%,transparent);border-radius:calc(16px*var(--z));box-shadow:0 1px 2px rgba(0,0,0,.05),0 12px 28px -14px rgba(0,0,0,.3)}
.wp::before{content:'';position:absolute;inset:-1px;border-radius:inherit;padding:calc(1.5px*var(--z));pointer-events:none;
  background:conic-gradient(from var(--a),transparent 0deg,transparent 300deg,var(--glow,color-mix(in srgb,var(--ink) 55%,transparent)) 340deg,transparent 360deg);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;opacity:0}
.wp.running::before{opacity:.8}
.wp.you{border-color:var(--signal)}
.wp.you::before{--glow:var(--signal);opacity:1}
.wp-head{display:flex;align-items:flex-start;gap:calc(12px*var(--z));padding:calc(18px*var(--z)) calc(20px*var(--z)) 0}
.wp-glyph{flex:none;display:inline-flex;align-items:center;justify-content:center;width:calc(40px*var(--z));height:calc(40px*var(--z));border-radius:50%;background:color-mix(in srgb,var(--ink) 6%,transparent);color:var(--ink-3)}
.wp.you .wp-glyph{background:color-mix(in srgb,var(--signal) 14%,transparent);color:var(--signal)}
.wp.done .wp-glyph{background:color-mix(in srgb,var(--ok) 14%,transparent);color:var(--ok)}
.wp-glyph svg{width:calc(18px*var(--z));height:calc(18px*var(--z))}
.wp-heading{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}
.wp-eyebrow{font-size:calc(12px*var(--z));font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-4)}
.wp-eyebrow .n{font-family:var(--mono);font-weight:400;letter-spacing:0;text-transform:none;color:var(--ink-5)}
.wp-title{font-size:calc(19px*var(--z));font-weight:600;line-height:1.3}
.phase{flex:none;font-size:calc(12px*var(--z));font-weight:600;letter-spacing:.05em;text-transform:uppercase;padding:3px 9px;border-radius:999px;margin-top:4px;display:inline-flex;align-items:center;white-space:nowrap}
.phase.running{background:color-mix(in srgb,var(--signal) 18%,transparent);color:var(--signal)}
.phase.running .bd{display:inline-block;width:calc(7px*var(--z));height:calc(7px*var(--z));border-radius:50%;margin-right:7px;background:currentColor}
.phase.review{background:var(--signal);color:var(--card)}
.phase.done{background:color-mix(in srgb,var(--ok) 20%,transparent);color:var(--ok)}
.phase .bd{display:none}
.segs{display:flex;gap:5px;height:calc(7px*var(--z));margin:calc(14px*var(--z)) calc(20px*var(--z)) 0}
.segs i{flex:1;border-radius:4px;background:color-mix(in srgb,var(--ink) 9%,transparent)}
.segs i.done{background:var(--ink-3)}
.segs i.active{background:color-mix(in srgb,var(--ink) 30%,transparent)}
.segs i.review{background:var(--signal)}
.segs i.blocked{background:var(--danger)}
.wp-body{margin:calc(12px*var(--z)) calc(20px*var(--z)) 0;border-top:1px solid color-mix(in srgb,var(--ink) 8%,transparent);padding:calc(10px*var(--z)) 0 calc(16px*var(--z))}
.ws{display:flex;align-items:flex-start;gap:calc(10px*var(--z));padding:calc(6px*var(--z)) calc(8px*var(--z));border-radius:8px}
.ws.running{background:color-mix(in srgb,var(--signal) 7%,transparent)}
.ws.review{background:color-mix(in srgb,var(--signal) 12%,transparent)}
.ws.blocked{background:color-mix(in srgb,var(--danger) 8%,transparent)}
.wsg{flex:none;display:inline-flex;align-items:center;justify-content:center;width:calc(18px*var(--z));height:calc(24px*var(--z));color:var(--ink-4)}
.wsg svg{width:calc(15px*var(--z));height:calc(15px*var(--z));display:none}
.ws .g-circle{display:block}
.ws.done .g-circle,.ws.running .g-circle,.ws.review .g-circle,.ws.blocked .g-circle{display:none}
.ws.done .g-check{display:block}.ws.done .wsg{color:var(--ok)}
.ws.running .g-spin{display:block}.ws.running .wsg{color:var(--signal)}
.ws.review .g-gate{display:block}.ws.review .wsg{color:var(--signal)}
.ws.blocked .g-x{display:block}.ws.blocked .wsg{color:var(--danger)}
.ws-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}
.ws-line{display:flex;align-items:baseline;gap:calc(10px*var(--z))}
.ws-i{flex:none;font-family:var(--mono);font-size:calc(13px*var(--z));color:var(--ink-4)}
.ws-t{flex:1;font-size:calc(16px*var(--z));line-height:1.35;color:var(--ink-2)}
.ws.done .ws-t{color:var(--ink-4)}
.ws.running .ws-t,.ws.review .ws-t,.ws.blocked .ws-t{color:var(--ink);font-weight:500}
.ws-s{flex:none;font-size:calc(13px*var(--z));color:var(--ink-4)}
.ws.review .ws-s{color:var(--signal);font-weight:600}
.ws.blocked .ws-s{color:var(--danger);font-weight:600}
.ws-acts{position:relative;height:calc(20px*var(--z))}
.ws-act{position:absolute;left:0;top:0;font-size:calc(14px*var(--z));color:var(--ink-3);white-space:nowrap;opacity:0}
.ws-act b{font-size:calc(11px*var(--z));font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--signal);margin-right:6px}
.ws-act.err b{color:var(--danger)}

/* approval */
.gate{border-left:4px solid var(--signal);background:var(--signal-tint);padding:calc(24px*var(--z)) calc(26px*var(--z))}
.gate .q{font-size:calc(21px*var(--z));font-weight:600;margin:10px 0 12px}
.gate .draft{background:#fff;border:1px solid var(--rule2);padding:14px 16px;font-size:calc(17px*var(--z));line-height:1.5;color:var(--ink-2)}
.btns{display:flex;gap:12px;margin-top:16px}
.btn{font-size:calc(16px*var(--z));font-weight:500;padding:10px 18px;border:1px solid var(--rule);background:#fff}
.btn.pri{background:var(--ink);color:var(--canvas);border-color:var(--ink)}

/* team map */
.node{position:absolute;text-align:center;transform:translate(-50%,-50%)}
.node img{width:calc(96px*var(--z));height:calc(96px*var(--z))}
.node .nm{font-size:calc(18px*var(--z));font-weight:600;margin-top:8px}
.node .rl{font-family:var(--mono);font-size:calc(13px*var(--z));letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3)}
.node .ns{position:relative;height:calc(28px*var(--z));margin-top:8px}
.node .ns .chip{position:absolute;left:50%;transform:translateX(-50%);opacity:0}

#wm{right:40px;top:30px;font-family:var(--mono);font-size:14px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-4);z-index:60}

/* agent portrait: bare a3 face + ink ring + gold port composited (AgentPortrait) */
.pt{position:relative;display:inline-block;flex:none;color:var(--ink)}
.pt img{display:block;width:100%;height:100%}
.pt svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.pt.idle img{filter:saturate(.12) opacity(.72)}
.pt.idle{color:var(--ink-4)}

/* workflow builder (WorkflowBuilder.css) */
.wfb{position:absolute;inset:0;display:flex;flex-direction:column;background:var(--chrome)}
.wfb-head{padding:22px 26px 16px;display:flex;align-items:flex-end;gap:14px}
.wfb-name{font-size:24px;font-weight:600}
.wfb-desc{font-size:15px;color:var(--ink-3);margin-top:2px}
.wfb-btn{margin-left:auto;font-size:14px;font-weight:500;padding:8px 14px;background:var(--ink);color:var(--paper)}
.wfb-body{flex:1;display:flex;margin:0 26px 26px;border:1px solid var(--rule);background:var(--card);min-height:0}
.wfb-pal{width:150px;flex:none;border-right:1px solid var(--rule);background:#F2EFE4;padding:14px 10px;display:flex;flex-direction:column;gap:6px}
.wfb-pal .t{font-family:var(--mono);font-size:10px;letter-spacing:.11em;text-transform:uppercase;color:var(--ink-3);padding:0 4px 4px}
.wfb-pi{display:flex;align-items:center;gap:8px;background:var(--card);border:1px solid var(--rule);padding:8px 9px;font-size:13px;font-weight:500}
.wfb-pi svg{width:15px;height:15px;color:var(--nc)}
.wfb-canvas{flex:1;position:relative;background-color:var(--paper);background-image:radial-gradient(rgba(15,17,21,.13) 1.2px,transparent 1.3px);background-size:22px 22px;overflow:hidden}
.wfb-node{position:absolute;width:230px;background:var(--card);border:1px solid var(--rule);border-left:3px solid var(--nc);padding:8px 11px}
.wfb-node.sel{border-top-color:var(--ink);border-right-color:var(--ink);border-bottom-color:var(--ink);background:var(--active)}
.wfb-nh{display:flex;align-items:center;gap:6px;margin-bottom:3px}
.wfb-nh svg{width:14px;height:14px;color:var(--nc)}
.wfb-nk{font-size:12px;font-weight:600;color:var(--nc)}
.wfb-ni{margin-left:auto;font-family:var(--mono);font-size:11px;color:var(--ink-3)}
.wfb-nt{font-size:13.5px;font-weight:600;line-height:1.25}
.wfb-ns{font-size:12px;color:var(--ink-3);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wfb-se{position:absolute;width:220px;display:flex;align-items:center;gap:9px;padding:9px 12px;background:var(--ink);color:var(--paper)}
.wfb-se .ic{display:grid;place-items:center;width:24px;height:24px;background:var(--paper);color:var(--ink);flex:none}
.wfb-se .ic svg{width:14px;height:14px}
.wfb-se .tt{font-family:var(--mono);font-size:11px;letter-spacing:.11em;text-transform:uppercase}
.wfb-se .sb{font-size:11px;color:color-mix(in srgb,var(--paper) 72%,transparent)}
.wfb-drawer{width:250px;flex:none;border-left:1px solid var(--rule);background:var(--card);padding:14px}
.wfb-cfgh{display:flex;align-items:center;gap:8px;padding-bottom:10px;margin-bottom:10px;border-bottom:1px solid var(--rule);font-size:13px;font-weight:600}
.wfb-cfgh svg{width:15px;height:15px;color:var(--nc)}
.wfb-l{font-size:11px;font-weight:600;color:var(--ink-3);margin:10px 0 4px}
.wfb-in{border:1px solid var(--rule);background:var(--paper);padding:7px 9px;font-size:13px;line-height:1.4;color:var(--ink)}
.wfb-run{position:absolute;right:-8px;top:-8px;width:18px;height:18px;border-radius:50%;background:var(--card);display:grid;place-items:center;opacity:0}
.wfb-run svg{width:14px;height:14px}
