:root{--navy: #0e2c63;--navy-deep: #081f47;--navy-line: #24437e;--powder: #d3e0f2;--powder-dim: #b9cbe4;--copper: #bd7333;--copper-deep: #8f551f;--copper-soft: #f0dcc6;--ink: #15233d;--ink-soft: #59667e;--bg: #eef1f7;--panel: #ffffff;--good: #2f7d5b;--warn: #b5852a;--radius: 13px;--tile-radius: 16px;--serif: "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;--sans: "Segoe UI", system-ui, -apple-system, sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--sans);line-height:1.5;-webkit-font-smoothing:antialiased}.masthead{background:var(--navy);color:#fff;border-bottom:5px solid var(--copper);box-shadow:0 4px 0 var(--navy-deep)}.masthead-in{max-width:1120px;margin:0 auto;padding:14px 20px;display:flex;align-items:center;gap:16px;flex-wrap:wrap}.wordmark{font-family:var(--serif);font-size:clamp(1.3rem,3vw,1.8rem);letter-spacing:.3px;margin:0}.wordmark .four{color:var(--copper-soft)}.masthead-spacer{flex:1}.page{max-width:1120px;margin:0 auto;padding:18px 20px 60px}.section{margin:26px 0}.section-head{margin:0 0 14px 2px;font-family:var(--serif);font-weight:700;font-size:1.55rem;line-height:1.1;letter-spacing:0;color:var(--navy);display:flex;align-items:center;gap:10px}.section-num{color:var(--copper);font-variant-numeric:tabular-nums}.section-toggle{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;padding:0;border:1.5px solid var(--copper);border-radius:50%;background:transparent;color:var(--copper);cursor:pointer;flex:none;transition:transform .14s ease,background .14s ease,color .14s ease}.section-toggle:hover{background:var(--copper);color:#fff}.section-toggle:focus-visible{outline:2px solid var(--copper);outline-offset:2px}.section-toggle[aria-expanded=true] svg{transform:rotate(180deg)}.section-toggle svg{transition:transform .16s ease}@media(prefers-reduced-motion:reduce){.section-toggle,.section-toggle svg{transition:none}}.tiles{display:flex;gap:16px;flex-wrap:wrap}.tiles-collapsed{display:none}.tile{background:var(--navy);color:#eaf1fb;border-radius:var(--tile-radius);padding:16px 18px;box-shadow:0 4px 0 var(--navy-deep);flex:1 1 260px;min-width:0}.tile.grow2{flex:2 1 440px}.tile.full{flex:1 1 100%}.tile.plain{background:var(--panel);color:var(--ink);box-shadow:0 3px #d7ddea;border:1px solid #e4e8f1}.tile-title{font-family:var(--serif);font-size:1.15rem;margin:0 0 12px;color:#fff}.tile.plain .tile-title{color:var(--navy)}.btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;cursor:pointer;font-family:var(--sans);font-weight:600;color:var(--ink);background:var(--powder);border-radius:var(--radius);box-shadow:0 3px 0 var(--powder-dim);padding:12px 8px;width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-height:64px;transition:transform .05s,background .12s,box-shadow .12s}.btn .ico{display:block}.btn .ico svg{display:block;width:34px;height:34px}.btn .lbl{font-size:.82rem;line-height:1.15;text-align:center;overflow-wrap:break-word}.btn:hover{background:#e2ecf9}.btn:active{transform:translateY(3px);box-shadow:0 0 0 var(--powder-dim)}.btn:focus-visible{outline:3px solid var(--copper);outline-offset:2px}.btn.selected{background:var(--copper);color:#fff;box-shadow:0 3px 0 var(--copper-deep)}.btn.selected .ico svg{stroke:#fff}.btn.selected:after{content:"✓";position:absolute}.btn{position:relative}.btn.selected:after{content:"✓";top:5px;right:8px;font-size:.8rem;font-weight:800;color:#fff}.btn.soon{background:#c8cfdb;color:#7b8498;box-shadow:0 3px #b3bccb;cursor:not-allowed}.btn.soon:hover{background:#c8cfdb}.btn.soon .badge{position:absolute;top:4px;right:7px;font-size:.62rem;letter-spacing:.04em;opacity:.8}.btn.blocked{background:#d8cfca;color:#9a8b82;box-shadow:0 3px #c6bcb5;cursor:help}.btn.blocked:hover{background:#e0d6d0}.btn.blocked .badge.info{position:absolute;top:4px;right:7px;width:15px;height:15px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.68rem;font-weight:700;line-height:1;background:#9a8b82;color:#f3ede9}.btn-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:10px;align-items:stretch}.seg{display:inline-flex;gap:6px;background:#ffffff1f;padding:5px;border-radius:12px}.masthead .seg{background:#ffffff24}.seg .pill{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;cursor:pointer;font:inherit;font-weight:700;color:#dce7f6;background:transparent;padding:7px 14px;border-radius:8px}.seg .pill.on{background:var(--copper);color:#fff;box-shadow:0 2px 0 var(--copper-deep)}.seg .pill:focus-visible{outline:2px solid #fff;outline-offset:1px}.ghost-btn{-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:pointer;font:inherit;font-weight:600;color:#fff;background:#0000002e;border:2px solid var(--powder);border-radius:10px;padding:8px 14px}.ghost-btn:hover{background:#0000004d;border-color:var(--copper)}.sizepick{display:flex;flex-direction:column;gap:14px}.slider-wrap{display:flex;align-items:center;gap:14px}.slider-wrap input[type=range]{flex:1;accent-color:var(--copper);height:26px;cursor:pointer}.size-read{font-family:var(--serif);font-size:1.5rem;color:#fff;min-width:5.5ch;text-align:center}.size-read small{display:block;font-family:var(--sans);font-size:.8rem;color:#b9cbe4}.swatch{font-size:1.02rem;color:#eaf1fb;line-height:2.1}.numfield{display:inline-flex;align-items:center;background:var(--panel);color:var(--ink);border-radius:9px;box-shadow:0 2px #c3cbdb;overflow:hidden;vertical-align:middle;margin:0 3px}.numfield input{width:3.4rem;border:none;font:inherit;font-weight:700;text-align:right;padding:6px 4px;color:var(--ink)}.numfield.count input{text-align:center}.numfield.inch input.whole{width:2.4rem}.numfield input:focus{outline:none}.numfield input[type=number]{-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}.numfield input::-webkit-outer-spin-button,.numfield input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.numfield .unit{padding:0 8px 0 2px;color:var(--ink-soft);font-size:.82rem}.eighths{display:inline-flex;align-items:center;border-left:1px solid #e0e4ee;padding:0 2px 0 8px}.frac{font-weight:800;font-size:.95rem;color:var(--ink)}.frac .over{color:var(--ink-soft);font-size:.8rem}.stepper{display:inline-flex;flex-direction:column;border-left:1px solid #e0e4ee;margin-left:6px}.stepper button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;background:#eef1f7;cursor:pointer;width:22px;height:17px;line-height:1;font-size:.7rem;color:var(--navy)}.stepper button:hover{background:var(--copper-soft)}.help-link{background:none;border:none;color:var(--copper-soft);cursor:pointer;font:inherit;text-decoration:underline;padding:0}.output-cols{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media(max-width:820px){.output-cols{grid-template-columns:1fr}.tiles{gap:12px}}.pattern{background:var(--panel);color:var(--ink);border-radius:var(--tile-radius);border:1px solid #e4e8f1;box-shadow:0 3px #d7ddea;padding:18px 20px;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:13px;line-height:1.55;white-space:pre-wrap;max-height:70vh;overflow:auto}.pattern h2{font-family:var(--serif);font-size:1.1rem;margin:18px 0 6px;color:var(--navy)}.pattern h2:first-child{margin-top:0}.diagram{background:var(--panel);border:1px solid #e4e8f1;border-radius:var(--tile-radius);box-shadow:0 3px #d7ddea;padding:14px;max-height:70vh;overflow:auto;display:grid;place-items:start center}.diagram svg{max-width:100%;height:auto}.piece-tabs{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:10px;align-items:stretch}.notice{border-radius:10px;padding:10px 14px;font-size:.9rem;margin-top:10px}.notice.warn{background:#fbf1da;color:#7a5c14;border:1px solid #ecd9a6}.notice.err{background:#fbe3e3;color:#8a2b2b;border:1px solid #efc0c0}footer.foot{text-align:center;color:var(--ink-soft);font-size:.8rem;padding:24px 0 8px}.printdoc{display:none}@media print{.masthead,.page{display:none!important}.printdoc{display:block}@page{margin:14mm}html,body{background:#fff;color:#000}.print-sheet{break-before:page;page-break-before:always}.print-sheet:first-of-type{break-before:avoid;page-break-before:avoid}.print-head{margin-bottom:5mm;border-bottom:1pt solid #000;padding-bottom:2.5mm}.print-head h1{font-family:var(--serif);font-size:18pt;margin:0;line-height:1.1}.print-style{font-size:12pt;margin:1.5mm 0 0;color:#222}.print-piece{margin:0}.print-piece+.print-piece,.print-piece:not(:first-child){margin-top:6mm}.print-piece-title{font-family:var(--serif);font-size:15pt;margin:0 0 4mm;break-after:avoid;page-break-after:avoid}.print-prose p.lead{break-after:avoid;page-break-after:avoid}.print-diagram{display:flex;justify-content:center;margin:0;break-inside:avoid;page-break-inside:avoid}.print-diagram svg{max-width:100%;height:auto}.print-diagram.big svg{width:auto;height:auto}.print-prose{font-size:10pt;line-height:1.45}.print-prose p{margin:0 0 1.8mm;break-inside:avoid;page-break-inside:avoid}.print-flow.two-col{columns:2;column-gap:10mm;column-fill:auto}.print-flow.two-col .print-head{column-span:all}.print-flow .print-piece-title{margin-top:3mm}.print-flow>.print-head+.print-piece-title,.print-flow .print-piece-title:first-of-type{margin-top:0}.print-chart{display:flex;justify-content:center;break-inside:avoid;page-break-inside:avoid}.print-sheet.chart-sheet{height:calc(var(--page-h, 269mm) - 2mm);display:flex;flex-direction:column;overflow:hidden}.print-sheet.chart-sheet .print-chart{flex:1 1 0;min-height:0}.print-sheet.chart-sheet .print-chart svg{width:100%;height:100%;object-fit:contain;max-height:none}.print-chart svg{max-width:100%;width:auto;height:auto}.printdoc.templates .tile-head{height:12mm;overflow:hidden;font-size:9pt;line-height:1.25;margin:0}.printdoc.templates .tile-head strong{font-family:var(--serif);font-size:11pt}.printdoc.templates .tile-meta{font-size:8pt;color:#444}.printdoc .tile-head{height:12mm;overflow:hidden;font-size:9pt;line-height:1.25;margin:0 0 2mm}.printdoc .tile-head strong{font-family:var(--serif);font-size:11pt}.printdoc .tile-meta{font-size:8pt;color:#444}.band-window{position:relative;overflow:hidden;outline:.3pt solid #999}.band-shift{position:absolute;left:0}.band-shift svg{display:block;width:100%;height:auto}.cover-list{font-size:10pt;line-height:1.5;margin:0 0 6mm;padding-left:5mm}.cover-list li{margin-bottom:1.5mm}.tile-window{position:relative;overflow:hidden;outline:.3pt solid #999}.tile-shift{position:absolute}.tile-shift svg{display:block;max-width:none;width:auto;height:auto}.tile-overlap{position:absolute;background:#0000000d;pointer-events:none}.tile-overlap.right{top:0;bottom:0;right:0;width:10mm;border-left:.3pt dashed #888}.tile-overlap.bottom{left:0;right:0;bottom:0;height:10mm;border-top:.3pt dashed #888}.crop{position:absolute;width:4mm;height:4mm}.crop.tl{top:0;left:0;border-top:.5pt solid #000;border-left:.5pt solid #000}.crop.tr{top:0;right:0;border-top:.5pt solid #000;border-right:.5pt solid #000}.crop.bl{bottom:0;left:0;border-bottom:.5pt solid #000;border-left:.5pt solid #000}.crop.br{bottom:0;right:0;border-bottom:.5pt solid #000;border-right:.5pt solid #000}.print-note{font-size:9pt;margin:0 0 4mm}}.fronts-pair{display:flex;gap:18px;align-items:flex-start;flex-wrap:wrap}.fronts-pair .front-figure{flex:1 1 200px}.front-figure{margin:0;flex:1 1 0;min-width:0}.front-figure .diagram{width:100%}.front-figure figcaption{margin-top:6px;font-size:.85rem;color:var(--ink-soft);text-align:center}.fronts-stack{display:flex;flex-direction:column;gap:22px;min-width:0}.fronts-stack .front-figure{flex:none;width:100%}
