:root{color-scheme:light;--bp-bg: #e9e0c3;--bp-bg-2: #f1ead4;--bp-bg-deep: #e2d7b4;--bp-line: #5b4f3b;--bp-line-dim: #8a7c61;--bp-text: #3a3226;--bp-text-dim: #7d7158;--bp-grid: rgba(91, 79, 59, .14);--bp-grid-2: rgba(91, 79, 59, .06);--bp-accent: #8a3324;--bp-warn: #a8762a;--bp-error: #993322;--bp-ok: #58743f;--bp-serif: "EB Garamond", Georgia, "Iowan Old Style", "Palatino Linotype", "Book Antiqua", serif;--bp-mono: var(--bp-serif);--tp-base-background-color: rgba(241, 234, 212, .92);--tp-base-shadow-color: rgba(74, 66, 52, .25);--tp-blade-horizontal-padding: 8px;--tp-blade-value-width: 50%;--tp-button-background-color: rgba(91, 79, 59, .1);--tp-button-background-color-active: rgba(91, 79, 59, .26);--tp-button-background-color-focus: rgba(91, 79, 59, .2);--tp-button-background-color-hover: rgba(91, 79, 59, .16);--tp-button-foreground-color: #3a3226;--tp-container-background-color: rgba(91, 79, 59, .05);--tp-container-background-color-active: rgba(91, 79, 59, .12);--tp-container-background-color-focus: rgba(91, 79, 59, .08);--tp-container-background-color-hover: rgba(91, 79, 59, .08);--tp-container-foreground-color: #3a3226;--tp-groove-foreground-color: rgba(91, 79, 59, .28);--tp-input-background-color: rgba(255, 252, 240, .6);--tp-input-background-color-active: rgba(255, 252, 240, .95);--tp-input-background-color-focus: rgba(255, 252, 240, .95);--tp-input-background-color-hover: rgba(255, 252, 240, .8);--tp-input-foreground-color: #3a3226;--tp-label-foreground-color: rgba(125, 113, 88, .95);--tp-monitor-background-color: rgba(91, 79, 59, .08);--tp-monitor-foreground-color: #3a3226}*{box-sizing:border-box}html,body{margin:0;padding:0;height:100%;overflow:hidden;background:var(--bp-bg);color:var(--bp-text);font:13px/1.45 var(--bp-serif);letter-spacing:.01em}#stage{position:fixed;inset:0;width:100%;height:100%;display:block}#title-block{position:fixed;top:18px;left:24px;z-index:20;user-select:none;background:var(--bp-bg-2);border:1.5px solid var(--bp-line);outline:1px solid var(--bp-line);outline-offset:3px;padding:12px 18px 10px;box-shadow:2px 3px #4a423426}#title-block h1{margin:0;font:600 20px/1 var(--bp-serif);letter-spacing:.22em;color:var(--bp-text);text-transform:uppercase}#title-block h1:after{content:"ten metres of sky, sewn by hand";display:block;margin-top:5px;font:italic 400 11.5px/1 var(--bp-serif);letter-spacing:.04em;text-transform:none;color:var(--bp-text-dim)}#title-block .view-modes{display:flex;gap:18px;margin-top:12px;border-top:1px solid rgba(91,79,59,.35);padding-top:8px}#title-block .vm{font:500 11px/1 var(--bp-serif);letter-spacing:.18em;text-transform:uppercase;background:none;color:var(--bp-text-dim);border:none;border-bottom:3px double transparent;padding:3px 1px 4px;cursor:pointer;display:inline-flex;align-items:center;gap:7px;transition:color .12s,border-color .12s}#title-block .vm:hover{color:var(--bp-text)}#title-block .vm.active{color:var(--bp-accent);border-bottom-color:var(--bp-accent)}#title-block .vm .dot{width:9px;height:9px;border:1px solid var(--bp-line);background:var(--bp-bg);display:inline-block}#title-block .vm .dot.blue{background:#a9c2c4}#title-block .vm .dot.grey{background:#cdbf9a}#title-block .vm .dot.amber{background:#e8c4b8}#title-block .layer-toggles{display:flex;gap:4px;flex-wrap:wrap;margin-top:9px;border-top:1px solid rgba(91,79,59,.25);padding-top:8px;max-width:320px}#title-block .lt{font:500 9px/1 var(--bp-serif);letter-spacing:.14em;text-transform:uppercase;background:none;color:var(--bp-text-dim);border:1px solid rgba(91,79,59,.35);padding:4px 7px;cursor:pointer;opacity:.55}#title-block .lt:hover{color:var(--bp-text);opacity:.85}#title-block .lt.active{color:var(--bp-text);border-color:#5b4f3b99;background:#5b4f3b14;opacity:1}#stats{position:fixed;top:22px;right:28px;z-index:20;display:flex;gap:26px;user-select:none;background:var(--bp-bg-2);border:1px solid rgba(91,79,59,.5);padding:9px 16px}#stats span{display:flex;flex-direction:column;gap:4px;align-items:flex-end;min-width:58px}#stats label{font-size:9.5px;letter-spacing:.2em;color:var(--bp-text-dim);text-transform:uppercase}#stats b{font:600 14px/1 var(--bp-serif);letter-spacing:.03em;color:var(--bp-text);font-variant-numeric:tabular-nums}#stats b.warn{color:var(--bp-warn)}#stats b.error{color:var(--bp-error)}#stats b.ok{color:var(--bp-ok)}#topright-actions{position:fixed;top:86px;right:28px;z-index:20;display:flex;gap:6px}.bp-btn{font:500 10.5px/1 var(--bp-serif);letter-spacing:.16em;background:var(--bp-bg-2);color:var(--bp-text-dim);border:1px solid rgba(91,79,59,.5);padding:7px 12px;cursor:pointer;text-transform:uppercase}.bp-btn:hover{color:var(--bp-accent);border-color:var(--bp-accent)}.bp-btn.active{color:var(--bp-accent);border-color:var(--bp-accent);background:#8a332414}#labels3d{position:fixed;inset:0;pointer-events:none;z-index:7}#labels3d .leaders{position:absolute;inset:0;width:100%;height:100%}#labels3d .leaders line{stroke:#5b4f3b73;stroke-width:1}#labels3d .label3d{position:absolute;transform:translate(-50%,-50%);font:500 10px/1 var(--bp-serif);letter-spacing:.14em;text-transform:uppercase;color:var(--bp-text);background:#f1ead4f0;border:1px solid rgba(91,79,59,.6);padding:3px 7px;white-space:nowrap;pointer-events:auto;cursor:help}#labels3d .label3d:hover{border-color:var(--bp-accent);color:var(--bp-accent);z-index:10}#labels3d .label3d:after{content:attr(data-desc);display:none;position:absolute;top:calc(100% + 6px);left:50%;transform:translate(-50%);width:max-content;max-width:260px;white-space:normal;font:italic 400 11.5px/1.5 var(--bp-serif);letter-spacing:.02em;text-transform:none;color:var(--bp-text);background:var(--bp-bg-2);border:1px solid var(--bp-line);outline:1px solid var(--bp-line);outline-offset:2px;padding:7px 10px;box-shadow:2px 3px #4a423426}#labels3d .label3d:hover:after{display:block}#ui{position:fixed;top:132px;right:24px;width:290px;z-index:10}#ui .tp-rotv{border:1px solid rgba(91,79,59,.55);box-shadow:2px 3px #4a42341f}#ui .tp-rotv_t,#ui .tp-fldv_t{font:600 10.5px/1 var(--bp-serif)!important;letter-spacing:.18em!important;text-transform:uppercase!important}#ui .tp-lblv_l{font:400 11.5px/1 var(--bp-serif)!important;letter-spacing:.04em!important}#bottombar{position:fixed;left:0;right:0;bottom:0;z-index:8;display:flex;align-items:center;gap:32px;padding:9px 24px;background:var(--bp-bg-2);border-top:1.5px solid var(--bp-line);font:500 11.5px/1 var(--bp-serif);letter-spacing:.04em}#bottombar .bb-meta{display:flex;gap:8px;align-items:baseline}#bottombar .bb-meta label{color:var(--bp-text-dim);letter-spacing:.18em;text-transform:uppercase;font-size:9.5px}#bottombar .bb-meta b{color:var(--bp-text);font-weight:600;font-variant-numeric:tabular-nums}#bottombar .bb-meta b.ok{color:var(--bp-ok)}#bottombar .bb-meta b.warn{color:var(--bp-warn)}#bottombar .bb-meta b.error{color:var(--bp-error)}#bottombar .bb-spacer{flex:1}#ruler{position:fixed;left:0;top:130px;bottom:40px;width:56px;z-index:5;pointer-events:none;font:400 10px/1 var(--bp-serif);color:var(--bp-text-dim);letter-spacing:.04em}#ruler .tick{position:absolute;left:0;right:0;border-top:1px solid rgba(91,79,59,.25);padding:2px 8px 0;text-align:right}#ruler .tick.major{border-top-color:#5b4f3b80;color:var(--bp-text)}#bom-panel{position:fixed;left:24px;bottom:52px;z-index:9;width:calc(100% - 362px);max-height:42vh;background:#f1ead4f5;color:var(--bp-text);border:1px solid rgba(91,79,59,.55);box-shadow:2px 3px #4a42341f;display:flex;flex-direction:column;font:400 12px/1.35 var(--bp-serif);letter-spacing:.01em}#bom-panel.collapsed{max-height:32px;overflow:hidden}#bom-panel .bom-header{display:flex;justify-content:space-between;align-items:center;padding:6px 12px;border-bottom:1px solid rgba(91,79,59,.35)}#bom-panel h3{margin:0;font:600 10.5px/1 var(--bp-serif);letter-spacing:.22em;text-transform:uppercase;color:var(--bp-text)}#bom-panel .bom-actions{display:flex;gap:6px}#bom-panel button{font:500 10px/1 var(--bp-serif);letter-spacing:.14em;text-transform:uppercase;background:#5b4f3b0f;color:var(--bp-text-dim);border:1px solid rgba(91,79,59,.45);padding:4px 9px;cursor:pointer}#bom-panel button:hover{color:var(--bp-accent);border-color:var(--bp-accent)}#bom-panel .bom-settings{display:flex;gap:14px;padding:6px 12px;border-bottom:1px solid rgba(91,79,59,.2);color:var(--bp-text-dim);font-size:11.5px;font-style:italic}#bom-panel .bom-settings label{display:flex;align-items:center;gap:6px;letter-spacing:.03em}#bom-panel .bom-settings input{width:64px}#bom-panel .bom-table-wrap{flex:1;overflow:auto}#bom-panel table{border-collapse:collapse;width:100%}#bom-panel th,#bom-panel td{text-align:left;padding:4px 10px;border-bottom:1px solid rgba(91,79,59,.14)}#bom-panel th{position:sticky;top:0;background:var(--bp-bg-2);color:var(--bp-text-dim);font-weight:600;letter-spacing:.16em;text-transform:uppercase;font-size:9.5px;border-bottom:1.5px solid rgba(91,79,59,.5)}#bom-panel td.num,#bom-panel th.num{text-align:right;font-variant-numeric:tabular-nums}#bom-panel td.rm{width:22px;text-align:center;color:var(--bp-text-dim);cursor:pointer}#bom-panel td.rm:hover{color:var(--bp-error)}#bom-panel input[type=text],#bom-panel input[type=number]{background:transparent;color:inherit;border:1px solid transparent;padding:2px 4px;font:inherit;letter-spacing:.01em}#bom-panel input:hover{border-color:#5b4f3b66}#bom-panel input:focus{outline:none;border-color:var(--bp-accent);background:#fffcf0e6}#bom-panel tr.auto td{background:#8a33240d}#bom-panel .bom-totals{display:grid;grid-template-columns:repeat(4,1fr);gap:4px 16px;padding:8px 12px;border-top:1.5px solid rgba(91,79,59,.5);font-variant-numeric:tabular-nums}#bom-panel .bom-totals .t-label{color:var(--bp-text-dim);font-size:9.5px;letter-spacing:.16em;text-transform:uppercase}#bom-panel .bom-totals .t-value{color:var(--bp-text);font-weight:600}#pattern-modal{position:fixed;inset:0;z-index:100;display:none}#pattern-modal.open{display:block}#pattern-modal .pm-backdrop{position:absolute;inset:0;background:#3a32268c}#pattern-modal .pm-panel{position:absolute;inset:40px;background:var(--bp-bg-2);border:1.5px solid var(--bp-line);outline:1px solid var(--bp-line);outline-offset:3px;display:flex;flex-direction:column;color:var(--bp-text)}#pattern-modal header{display:flex;align-items:center;justify-content:space-between;padding:12px 18px;border-bottom:1.5px solid rgba(91,79,59,.55)}#pattern-modal h3{margin:0;font:600 13px/1 var(--bp-serif);letter-spacing:.24em;text-transform:uppercase}#pattern-modal .pm-actions{display:flex;gap:8px}#pattern-modal button{background:#5b4f3b14;color:var(--bp-text);border:1px solid rgba(91,79,59,.5);padding:6px 14px;font:500 10.5px/1 var(--bp-serif);letter-spacing:.16em;text-transform:uppercase;cursor:pointer}#pattern-modal button:hover{border-color:var(--bp-accent);color:var(--bp-accent)}#pattern-modal .pm-meta{padding:8px 18px;color:var(--bp-text-dim);font-size:11.5px;border-bottom:1px solid rgba(91,79,59,.25);max-height:32%;overflow:auto}#pattern-modal .pm-spec{width:100%;border-collapse:collapse;font:11.5px/1.5 var(--bp-serif)}#pattern-modal .pm-spec th,#pattern-modal .pm-spec td{padding:3px 8px;text-align:left;border-bottom:1px solid rgba(91,79,59,.18)}#pattern-modal .pm-spec th{color:var(--bp-text);letter-spacing:.12em;text-transform:uppercase;font-size:9.5px;border-bottom:1.5px solid rgba(91,79,59,.5)}#pattern-modal .pm-spec td.num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}#pattern-modal .pm-spec tfoot td{color:var(--bp-text);font-style:italic}#pattern-modal .pm-spec .pm-valve{color:var(--bp-accent)}#pattern-modal .pm-spec .pm-warn{color:var(--bp-warn)}#pattern-modal .pm-spec .pm-section td{font-weight:600;letter-spacing:.18em;color:var(--bp-accent);border-bottom:1.5px solid rgba(91,79,59,.5);padding-top:8px}#pattern-modal .pm-steps-title{margin:10px 0 4px;font:600 10.5px/1 var(--bp-serif);letter-spacing:.2em;text-transform:uppercase;color:var(--bp-text)}#pattern-modal .pm-steps{margin:0 0 6px;padding-left:22px;font-size:11.5px;line-height:1.55}#pattern-modal .pm-steps li{margin-bottom:2px}#pattern-modal .pm-body{flex:1;overflow:auto;padding:16px;background:var(--bp-bg);background-image:linear-gradient(var(--bp-grid) 1px,transparent 1px),linear-gradient(90deg,var(--bp-grid) 1px,transparent 1px),linear-gradient(var(--bp-grid-2) 1px,transparent 1px),linear-gradient(90deg,var(--bp-grid-2) 1px,transparent 1px);background-size:80px 80px,80px 80px,16px 16px,16px 16px}#pattern-modal .pm-body svg{display:block;max-width:100%;height:auto;margin:0 auto;background:transparent}#pattern-modal .pm-body svg .cut{stroke:#3a3226!important}#pattern-modal .pm-body svg .seam{stroke:var(--bp-accent)!important}#pattern-modal .pm-body svg .lbl{fill:#5b4f3b!important}#pattern-modal .pm-body svg .mark{stroke:#5b7a8a!important}#pattern-modal .pm-body svg .small{fill:#5b7a8a!important}#pattern-modal .pm-body svg .title{fill:#3a3226!important}#pattern-modal .pm-body svg .roll{stroke:#8a7c61!important}#mobile-actions{display:none}@media (max-width: 760px){#title-block{top:8px;left:8px;right:8px;padding:8px 12px 7px;outline-offset:2px}#title-block h1{font-size:15px}#title-block h1:after{font-size:10px;margin-top:3px}#title-block .view-modes{margin-top:8px;padding-top:6px;gap:14px}#title-block .layer-toggles{margin-top:7px;padding-top:6px;max-width:none}#stats{inset:auto 0 40px;gap:16px;padding:6px 12px;border-left:none;border-right:none;border-bottom:none;overflow-x:auto;-webkit-overflow-scrolling:touch}#stats span{min-width:auto;align-items:flex-start;gap:3px}#stats label{font-size:8.5px;white-space:nowrap}#stats b{font-size:12.5px;white-space:nowrap}#topright-actions{top:auto;right:8px;bottom:96px}#mobile-actions{display:flex;gap:6px;position:fixed;right:8px;bottom:130px;z-index:20}#ui{display:none;inset:auto 8px 164px;width:auto;max-height:48vh;overflow-y:auto;-webkit-overflow-scrolling:touch;z-index:15}body.m-controls-open #ui{display:block}#bom-panel{display:none;left:8px;right:8px;bottom:164px;width:auto;max-height:52vh;z-index:15}body.m-bom-open #bom-panel{display:flex}#bom-panel .bom-settings{flex-wrap:wrap;gap:8px 14px}#bom-panel .bom-totals{grid-template-columns:repeat(2,1fr)}#ruler{display:none}#bottombar{gap:16px;padding:8px 12px}#labels3d .label3d{font-size:9px;padding:2px 5px}#labels3d .label3d:after{max-width:190px;font-size:11px}#pattern-modal .pm-panel{inset:8px}#pattern-modal .pm-meta{max-height:40%}}
