@font-face{font-family:Barlow Condensed;src:url(/colligate/assets/BarlowCondensed-Regular-u9oSiJc6.ttf) format("truetype");font-style:normal;font-weight:400;font-display:swap}:root{font-family:Barlow Condensed,sans-serif;font-synthesis:none;color:var(--ink);background:var(--paper);--paper:#EDE4D2;--paper-aged:#E3D8C2;--paper-edge:#D6C8AE;--vermillion:#C4441C;--vermillion-d:#9C3415;--ink:#201C18;--ink-soft:#5A5148;--muted:var(--ink-soft);--line:var(--ink-soft)}*{box-sizing:border-box;border-radius:0!important;box-shadow:none!important}body{margin:0;min-width:320px;height:100%}html,body,#root{height:100%}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;color:var(--ink-soft);opacity:.6}button:focus-visible,input:focus-visible,textarea:focus-visible,[role=button]:focus-visible{outline:3px solid var(--vermillion);outline-offset:2px}h1,h2,h3,h4,p{margin:0;font-weight:400}strong,b{font-weight:400}button{text-transform:uppercase;letter-spacing:.1em}input{border:0;border-bottom:1px solid var(--ink);padding:7px 0;background:transparent;min-width:0;outline:none}input:focus{border-bottom:3px solid var(--vermillion);padding-bottom:5px}input::placeholder{color:var(--ink-soft)}.shell{min-height:100dvh;height:100dvh;overflow:hidden;display:flex;flex-direction:column}.shell.textured:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;pointer-events:none;opacity:.04;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.7' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23201C18' filter='url(%23n)' opacity='.8' d='M0 0h240v240H0z'/%3E%3C/svg%3E")}.projector{--paper-aged:var(--paper);--ink-soft:var(--ink);font-size:17px}.projector:after{display:none}.topbar{background:var(--paper-aged);border-bottom:3px solid var(--vermillion);padding:18px 26px 12px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:14px 28px;flex-shrink:0}.brand{text-align:center;color:var(--vermillion);font-size:42px;line-height:1;letter-spacing:.06em;grid-column:2;grid-row:1}.brand small{display:block;font-size:11px;letter-spacing:.22em;color:var(--ink);margin-bottom:9px}.app-mark{grid-column:1;grid-row:1}.monogram{width:38px;height:38px;color:var(--vermillion);display:block}.identity{grid-column:1/-1;display:flex;flex-direction:column;gap:8px;max-width:740px;width:100%;margin:2px auto 0}.focus{display:flex;align-items:center;justify-content:center;gap:16px;width:100%;margin:0}.focus label,.eyebrow,.pill,.meta-line,.footer,.bank-heading,.timeline-entry time{font-size:11px;letter-spacing:.14em;text-transform:uppercase}.focus label{min-width:9.5em;text-align:right}.focus input{flex:1;font-size:15px}.toolbar{grid-column:1/-1;display:flex;justify-content:center;gap:7px;flex-wrap:wrap;padding-top:4px}.btn{background:none;border:1px solid var(--ink-soft);padding:7px 11px;font-size:11px;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:33px}.btn:hover,.chip:hover,.actions button:hover{color:var(--vermillion-d);border-color:var(--vermillion-d)}.btn.primary{border:3px solid var(--vermillion);padding:5px 9px}.btn[aria-pressed=true]{border-bottom:3px solid var(--vermillion)}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 290px;grid-template-rows:auto;flex:1;min-height:0;overflow:auto;align-items:stretch}.pane{min-width:0}.canvas-pane{grid-column:1;grid-row:1;position:sticky;top:0;display:flex;flex-direction:column;border-right:1px solid var(--ink-soft);min-height:620px;height:auto;max-height:none;overflow:auto}.canvas-tools{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:13px 20px;border-bottom:1px solid var(--ink-soft);position:sticky;top:0;z-index:3;background:var(--paper)}.canvas-tools .eyebrow{font-size:15px;letter-spacing:.14em}.canvas{position:relative;flex:1;min-height:620px;height:max(100%,620px);overflow:hidden;background:var(--paper)}.canvas>svg{width:100%;height:100%;position:absolute}.edge{stroke:var(--ink);stroke-width:1}.edge-highlight{stroke:var(--vermillion);stroke-width:3}.edge-label{font:10px Barlow Condensed,sans-serif;letter-spacing:.16em;text-transform:uppercase;fill:var(--ink-soft);paint-order:stroke;stroke:var(--paper);stroke-width:8px;stroke-linejoin:miter}.node{position:absolute;min-width:104px;max-width:160px;padding:11px 14px;background:var(--paper);border:1px solid var(--ink);-webkit-user-select:none;user-select:none;touch-action:none;transform:translate(-50%,-50%);font-size:15px;line-height:1.25;letter-spacing:.08em;text-transform:uppercase;overflow-wrap:anywhere}.node.selected{border:3px solid var(--vermillion);padding:9px 12px}.empty{position:absolute;top:26px;right:26px;bottom:26px;left:26px;display:grid;place-items:center;pointer-events:none}.empty-inner{position:relative;width:min(100%,520px);min-height:370px;border:3px solid var(--vermillion);outline:1px solid var(--vermillion);outline-offset:-8px;padding:58px 28px;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:space-between;gap:24px}.empty-inner h1{font-size:36px;letter-spacing:.08em;line-height:1.15;text-transform:uppercase;color:var(--vermillion)}.empty-inner h1 small{font-size:.62em}.empty-inner p{font-size:11px;letter-spacing:.16em;text-transform:uppercase}.corner{position:absolute;width:25px;height:25px;background:var(--paper)}.corner:nth-child(1){left:-3px;top:-3px}.corner:nth-child(2){right:-3px;top:-3px}.corner:nth-child(3){left:-3px;bottom:-3px}.corner:nth-child(4){right:-3px;bottom:-3px}.corner .monogram{width:25px;height:25px}.side-column{grid-column:2;grid-row:1;min-height:0;overflow:visible;display:flex;flex-direction:column;background:var(--paper-aged)}.authoring{flex:0 0 auto;overflow:visible;padding:20px 18px;border-bottom:3px solid var(--vermillion)}.side-scroll{flex:0 0 auto;min-height:0;overflow:visible}.proposition-pane{background:transparent;display:flex;flex-direction:column;overflow:visible;min-height:auto}.authoring>.eyebrow{text-align:center;font-size:20px;letter-spacing:.14em}.authoring-form{margin-top:18px}.authoring-form label{display:block;font-size:13px;letter-spacing:.08em;margin-bottom:4px}.form-row{display:flex;gap:8px}.form-row input{width:0;flex:1;font-size:15px}.btn.small{padding:6px;font-size:10px}.bank-inline{margin-top:16px}.bank-heading{display:flex;justify-content:space-between;gap:6px;align-items:baseline}.bank-heading .eyebrow{font-size:9px}.subtle,.bank-empty{font-size:12px;color:var(--ink-soft);line-height:1.5}.search{width:100%;font-size:13px;margin:4px 0 10px}.chips{display:flex;gap:5px;flex-wrap:wrap}.chip{background:transparent;border:1px solid var(--ink-soft);padding:5px 7px;font-size:11px;letter-spacing:.08em}.relation-chip{cursor:default;text-transform:uppercase}.relation-bank{margin-top:16px}.relation-bank>.eyebrow{display:block;margin-bottom:8px;font-size:9px}.pane-head{padding:18px 18px 10px;display:flex;justify-content:space-between;gap:6px;align-items:center}.pill{font-size:9px}.proposition-list{padding:0 18px 12px;max-height:none;overflow:visible}.proposition{border-top:1px solid var(--ink-soft);padding:9px 0;font-size:15px;line-height:1.5}.proposition-index{display:block;font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft)}.proposition-empty{font-size:13px;color:var(--ink-soft)}.meta-line{padding:12px 18px;border-top:1px solid var(--ink-soft);font-size:9px;line-height:1.7}.right-pane{background:transparent;border-top:1px solid var(--ink-soft);overflow:visible;min-height:auto}.panel{padding:18px;border-bottom:1px solid var(--ink-soft)}.panel-title{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:12px}h2{font-size:20px;letter-spacing:.14em;text-transform:uppercase}.metric-grid{display:grid;grid-template-columns:repeat(2,1fr);border-top:1px solid var(--ink-soft)}.metric{padding:8px 0;border-bottom:1px solid var(--ink-soft)}.metric strong{display:block;font-size:24px}.metric span{font-size:11px;letter-spacing:.08em;text-transform:uppercase}.work{background:none;border:0;padding:0;text-decoration:underline;font-size:10px}.observation{font-size:14px;line-height:1.55;margin-top:12px}.derivation{padding-top:10px;font-size:13px;white-space:pre-wrap}.timeline-list{max-height:none;overflow:visible}.timeline-entry{display:flex;flex-direction:column;border-top:1px solid var(--ink-soft);padding:9px 0;gap:4px;font-size:14px}.timeline-entry time{font-size:9px;color:var(--ink-soft)}.timeline-empty{font-size:13px;color:var(--ink-soft)}.footer{border-top:3px solid var(--vermillion);padding:12px 20px;text-align:center;font-size:9px;background:var(--paper-aged);flex-shrink:0}.storage-notice{padding:12px 18px;font-size:13px}.picker{position:fixed;z-index:40;background:var(--paper-aged);border:3px solid var(--vermillion);padding:14px 14px 8px;width:min(280px,calc(100vw - 24px));overflow:hidden;display:flex;flex-direction:column;transform:translate(-50%)}.picker.picker-above{transform:translate(-50%,-100%)}.picker h4{font-size:13px;letter-spacing:.1em;text-transform:uppercase;margin-bottom:8px;flex:0 0 auto}.picker-list{overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;min-height:0;flex:1 1 auto;padding-bottom:6px}.picker button{display:block;width:100%;text-align:left;border:0;border-top:1px solid var(--ink-soft);background:none;padding:9px 0;font-size:13px}.picker-empty{font-size:13px}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#e3d8c2e8;z-index:60;display:grid;place-items:center;padding:24px}.modal{position:relative;background:var(--paper);border:3px solid var(--vermillion);outline:1px solid var(--vermillion);outline-offset:-8px;max-width:740px;width:100%;max-height:85dvh;overflow:auto;padding:26px}.modal h1{text-align:center;text-transform:uppercase;letter-spacing:.14em;font-size:32px;margin:20px}.modal pre{font:15px/1.55 Barlow Condensed,sans-serif;white-space:pre-wrap}.modal-tabs{display:flex;justify-content:center;gap:16px;border-bottom:1px solid var(--ink);margin-bottom:20px}.modal-tabs button{background:none;border:0;padding:10px;font-size:12px}.modal-tabs button.active{border-bottom:3px solid var(--vermillion)}.inspector-toggle,.inspector-close,.print-caption{display:none}.edge-hit-target{fill:none;stroke:transparent;stroke-width:22;pointer-events:stroke;cursor:pointer}.edge,.edge-label{pointer-events:none}.print-corners{display:none}.edition small{font-size:.62em}.timeline-entry time{font-size:11px}@media (min-width:1500px){.workspace{grid-template-columns:minmax(0,1fr) 340px}.authoring{padding:24px}}@media (max-width:767px){.topbar{padding:15px 14px 12px;gap:12px}.brand{font-size:32px}.edition{font-size:9px}.app-mark .monogram{width:30px;height:30px}.focus{gap:10px}.focus label{font-size:10px}.toolbar{gap:5px}.btn{font-size:10px;padding:7px}.workspace{display:flex;flex-direction:column}.canvas-pane{width:100%;position:relative;min-height:560px;height:70dvh;border-right:0}.canvas{min-height:460px}.canvas-tools{padding:12px}.empty{top:20px;right:20px;bottom:20px;left:20px}.empty-inner{min-height:330px;padding:45px 22px}.empty-inner h1{font-size:30px}.side-column{display:none}.inspector-toggle{display:inline-flex}.inspector-open .side-column{display:flex;position:fixed;inset:auto 0 0;max-height:78dvh;overflow:auto;z-index:30;border-top:3px solid var(--vermillion);padding-top:44px}.inspector-open .proposition-pane,.inspector-open .right-pane{display:flex;width:100%}.inspector-close{display:block;position:absolute;right:16px;top:8px}.inspector-open:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;background:#e3d8c2b8;z-index:20;pointer-events:none}.footer{padding-bottom:20px}.picker{position:fixed;left:50%!important;top:auto!important;bottom:24px;z-index:40}.projector .canvas-pane{min-height:620px}}@media print{@page{size:landscape;margin:12mm}*{-webkit-print-color-adjust:exact;print-color-adjust:exact}.shell{min-height:0}.shell:after,.shell:before,.topbar,.assignment-bar,.side-column,.proposition-pane,.right-pane,.footer,.canvas-tools,.picker,.overlay{display:none!important}.workspace{display:block}.canvas-pane{position:relative;display:block;height:170mm;width:100%;border:3px solid var(--vermillion);outline:1px solid var(--vermillion);outline-offset:-8px;min-height:0;overflow:hidden;break-inside:avoid}.canvas{height:145mm;min-height:0;margin:6mm}.node.selected{border:1px solid var(--ink);padding:11px 14px}.print-caption{display:flex;align-items:center;justify-content:center;gap:20px;text-align:center;position:absolute;bottom:4mm;left:10mm;right:10mm;border-top:1px solid var(--vermillion);padding-top:3mm;font-size:11px;letter-spacing:.14em;text-transform:uppercase}.print-caption .monogram{width:20px;height:20px}.print-corners{display:block}.empty-inner{border:0;outline:0}}a.btn{text-decoration:none;color:inherit}.export-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.export-sheet p{font-size:14px;color:var(--ink-soft);text-align:center;line-height:1.45}.export-sheet .plate{width:100%;max-height:48dvh;object-fit:contain;background:#ede4d2;border:1px solid var(--ink);margin-top:8px}.assignment-bar{background:var(--paper);border-bottom:1px solid var(--ink-soft);padding:12px 26px 14px;flex-shrink:0;max-height:32dvh;overflow:auto}.assignment-entry{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px 12px;max-width:960px;margin:0 auto}.assignment-entry label{font-size:11px;letter-spacing:.14em;text-transform:uppercase}.assignment-entry input{min-width:180px;flex:1;max-width:280px}.assignment-error{width:100%;text-align:center;color:var(--vermillion);font-size:13px;margin:0}.assignment-card{max-width:960px;margin:0 auto;border:1px solid var(--ink-soft);padding:14px 16px}.assignment-card.pass{border-color:#2c5a3c}.assignment-card.fail{border-color:var(--vermillion)}.assignment-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;flex-wrap:wrap}.assignment-head strong{display:block;font-size:18px;letter-spacing:.04em;margin-top:2px}.assignment-timer{margin-left:auto;text-align:right;font-variant-numeric:tabular-nums;letter-spacing:.08em;line-height:1}.assignment-timer span{display:block;font-size:28px}.assignment-timer small{display:block;margin-top:4px;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft)}.assignment-timer.expired,.assignment-timer.expired small{color:var(--vermillion)}.assignment-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.assignment-mark{font-size:11px;letter-spacing:.12em;text-transform:uppercase;padding:6px 8px;border:1px solid currentColor}.assignment-mark.pass{color:#2c5a3c}.assignment-mark.fail{color:var(--vermillion)}.requirement-list{list-style:none;margin:12px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:6px 16px}.requirement-list li{display:flex;gap:8px;font-size:14px;line-height:1.35}.requirement-list li.ok{color:#2c5a3c}.requirement-list li.miss{color:var(--vermillion)}.requirement-list em{font-style:normal;color:var(--ink-soft);padding-left:4px}.export-status{border:3px solid var(--ink);padding:12px 14px;margin:0 0 16px;text-align:left}.export-status.pass{border-color:#2c5a3c}.export-status.fail{border-color:var(--vermillion)}.export-status strong{display:block;letter-spacing:.08em;text-transform:uppercase;font-size:13px;margin-bottom:8px}.export-status ul{margin:0;padding-left:18px;font-size:14px}.export-status.pass strong{color:#2c5a3c}.export-status.fail strong{color:var(--vermillion)}.composer-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px 16px;margin:18px 0}.composer-grid label{display:flex;flex-direction:column;gap:4px;font-size:11px;letter-spacing:.12em;text-transform:uppercase}.composer-grid .wide,.composer-grid .check{grid-column:1/-1}.composer-grid .check{flex-direction:row;align-items:center;gap:8px;text-transform:none;letter-spacing:.04em;font-size:14px}.composer-note,.composer-ticket{font-size:13px;line-height:1.5;white-space:pre-wrap;word-break:break-all}.composer-ticket{border-top:1px solid var(--ink-soft);padding-top:10px;color:var(--ink-soft)}input:read-only{border-bottom-style:dashed}@media print{.assignment-bar{display:none!important}}
