:root{color:#202522;font-synthesis:none;--paper:#f3f0e7;--ink:#202522;--blue:#1557b0;--red:#e24a35;--tape:#e8d46a;--fog:#d7d4c9;background:#f3f0e7;font-family:Verdana,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--paper);background-image:radial-gradient(#20252212 .7px,#0000 .7px);background-size:7px 7px;min-width:320px;min-height:100vh;margin:0}button,input{font:inherit}.skip-link{z-index:20;background:var(--ink);color:#fff;padding:12px 16px;position:fixed;top:10px;left:16px;transform:translateY(-150%)}.skip-link:focus{transform:none}.masthead{border-bottom:2px solid var(--ink);grid-template-columns:1fr auto 1fr;align-items:center;gap:20px;height:68px;padding:0 28px;display:grid}.wordmark{color:var(--ink);letter-spacing:-1px;font-family:Arial Black,Arial Narrow,sans-serif;font-size:25px;font-weight:800;text-decoration:none}.wordmark span{color:var(--red);font-style:italic}.masthead p,.masthead>a:last-child{text-transform:uppercase;letter-spacing:.08em;font:500 11px Courier New,monospace}.masthead>a:last-child{color:var(--blue);text-underline-offset:4px;justify-self:end}.workspace{border-bottom:2px solid var(--ink);grid-template-columns:minmax(245px,1fr) minmax(420px,2.2fr) minmax(260px,1fr);min-height:calc(100vh - 68px);display:grid}.intro,.docket{padding:34px 28px}.intro{border-right:1px solid var(--ink);flex-direction:column;display:flex}.eyebrow{text-transform:uppercase;letter-spacing:.1em;color:var(--blue);margin:0 0 24px;font:500 10px Courier New,monospace}.intro h1{letter-spacing:-.055em;max-width:8ch;margin:0;font:800 clamp(40px,4vw,72px)/.92 Arial Black,Arial Narrow,sans-serif}.intro h1 em{color:var(--red);font-style:italic}.lede{max-width:36ch;margin:30px 0;font-size:17px;line-height:1.45}.input-actions{flex-wrap:wrap;gap:10px;margin-top:auto;display:flex}.file-button,.input-actions button,.save,.camera-actions button{border:2px solid var(--ink);cursor:pointer;background:var(--ink);color:#fff;justify-content:center;align-items:center;min-height:48px;padding:12px 15px;font-weight:700;display:inline-flex}.file-button input{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.secondary{color:var(--ink)!important;background:0 0!important}.file-button:hover,.save:hover,.camera-actions button:hover{background:var(--blue)}button:focus-visible,input:focus-visible,.file-button:focus-within,.live-node:focus-visible{outline:4px solid var(--tape);outline-offset:3px}.limits{color:#535b56;font:500 10px/1.5 Courier New,monospace}.error{border-top:2px solid var(--red);color:#a12616;padding-top:12px;font-weight:700}.stage{background:#dedbd1;place-items:center;min-width:0;display:grid;position:relative;overflow:hidden}.empty-stage{aspect-ratio:4/3;background:#fffef8;place-items:center;width:70%;display:grid;position:relative;transform:rotate(-1.4deg);box-shadow:8px 12px #20252222}.empty-stage p{color:#767b77;align-self:end;margin-bottom:26px;font:500 11px Courier New,monospace}.paper-sketch{grid-template-columns:1fr 1fr;gap:16px;display:grid;position:absolute;inset:22%}.paper-sketch span{border:3px solid #9a9d99}.paper-sketch span:last-child{grid-column:1/-1;justify-self:center;width:55%}.tape{background:#e8d46abb;width:90px;height:22px;position:absolute}.tape.top{top:-9px;left:38%;transform:rotate(3deg)}.tape.bottom{bottom:-8px;right:8%;transform:rotate(-5deg)}.source-image,.diagram-layer{object-fit:contain;width:92%;height:88%;position:absolute}.source-image{filter:grayscale();opacity:.2}.diagram-layer{touch-action:pan-y}.diagram-layer line{stroke:var(--red);stroke-width:4px;stroke-dasharray:9 6;marker-end:url(#live-arrow)}.diagram-layer marker path{fill:var(--red)}.live-node{cursor:grab;touch-action:none}.live-node:active{cursor:grabbing}.live-node rect{fill:#f8f6eeeb;stroke:var(--blue);stroke-width:5px;vector-effect:non-scaling-stroke}.live-node text{fill:var(--ink);dominant-baseline:middle;pointer-events:none;font:700 22px Verdana,sans-serif}.scan-curtain{background:var(--red);pointer-events:none;width:4px;animation:1.25s cubic-bezier(.2,.7,.2,1) both scan;position:absolute;top:6%;bottom:6%;left:4%;box-shadow:0 0 0 1px #fff,15px 0 35px #e24a3544}.scan-curtain:after{content:"LOCAL SCAN";white-space:nowrap;color:var(--red);font:500 9px Courier New,monospace;position:absolute;top:4px;left:8px}@keyframes scan{0%{transform:translate(0)}to{opacity:0;transform:translate(calc(23*min(4vw,50px)))}}.docket{border-left:1px solid var(--ink);background:#f8f6ee;flex-direction:column;display:flex}.docket-head{border-bottom:2px solid var(--ink);text-transform:uppercase;justify-content:space-between;padding-bottom:12px;font:500 11px Courier New,monospace;display:flex}.docket-head p{margin:0}.docket-head span{color:var(--blue)}.docket-empty{color:#5c625e;margin:auto 0;line-height:1.5}.title-field{text-transform:uppercase;gap:7px;margin:22px 0;font:500 10px Courier New,monospace;display:grid}.title-field input,.node-row input{border:1px solid var(--ink);background:#fff;width:100%;min-height:44px;padding:10px}.node-list{gap:8px;max-height:43vh;display:grid;overflow:auto}.node-row{grid-template-columns:28px 1fr 44px;align-items:center;gap:7px;display:grid}.node-row>span{color:var(--red);font:500 10px Courier New,monospace}.node-row button{border:1px solid var(--ink);cursor:pointer;background:0 0;height:44px;font-size:24px}.add-node{border:1px dashed var(--blue);min-height:44px;color:var(--blue);cursor:pointer;background:0 0;margin-top:12px;font-weight:700}.save{width:100%;margin-top:auto}.save:disabled,.add-node:disabled{opacity:.45;cursor:not-allowed}.status{color:#4d5550;min-height:34px;margin:14px 0 0;font:500 10px/1.5 Courier New,monospace}.privacy-note{border-bottom:2px solid var(--ink);background:var(--tape);grid-template-columns:1fr 2fr;gap:30px;padding:34px max(28px,8vw);display:grid}.privacy-note strong{font:800 34px Arial Black,Arial Narrow,sans-serif}.privacy-note p{max-width:70ch;margin:0;line-height:1.55}.camera-modal{z-index:10;background:#202522e8;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.camera-modal>div{background:var(--paper);width:100%;max-width:760px;padding:20px}.camera-modal h2{font:800 30px Arial Black,Arial Narrow,sans-serif}.camera-modal video{background:#000;width:100%;max-height:62vh}.camera-actions{gap:10px;margin-top:15px;display:flex}.no-script{padding:10vw}.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}@media (width<=960px){.masthead{grid-template-columns:1fr auto}.masthead p{display:none}.workspace{grid-template-columns:1fr 1.6fr}.intro{border-right:0;border-bottom:1px solid var(--ink);grid-column:1/-1;min-height:480px}.stage{min-height:600px}.docket{border-left:1px solid var(--ink)}.intro h1{max-width:12ch}.input-actions{margin-top:10px}}@media (width<=680px){.masthead{padding:0 16px}.masthead>a:last-child{display:none}.workspace{flex-direction:column;display:flex}.intro{min-height:auto;padding:30px 20px}.intro h1{font-size:50px}.stage{border-block:1px solid var(--ink);min-height:430px}.docket{border-left:0;min-height:430px;padding:26px 20px}.source-image,.diagram-layer{width:96%;height:92%}.privacy-note{grid-template-columns:1fr;padding:28px 20px}.camera-actions{flex-direction:column}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.scan-curtain{animation:none;display:none}}@media (forced-colors:active){.intro h1 em{color:canvastext;text-decoration:underline}.scan-curtain{background:canvastext}.live-node rect{fill:canvas;stroke:canvastext}}
