@font-face{font-family:Bitter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/bitter-cyrillic-ext-wght-normal-sLcV1o1_.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Bitter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/bitter-cyrillic-wght-normal-7PAZDwbd.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Bitter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/bitter-vietnamese-wght-normal-Bb7JIhFz.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Bitter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/bitter-latin-ext-wght-normal-BaDBgC7F.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Bitter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/bitter-latin-wght-normal-C8X_T8j_.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:PT Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/pt-sans-cyrillic-ext-400-normal-DrEt_GuY.woff2)format("woff2"),url(/assets/pt-sans-cyrillic-ext-400-normal-BWlWxBBJ.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:PT Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/pt-sans-cyrillic-400-normal-BgFH0IXl.woff2)format("woff2"),url(/assets/pt-sans-cyrillic-400-normal-DR9of8nb.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:PT Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/pt-sans-latin-ext-400-normal-DA27ETQX.woff2)format("woff2"),url(/assets/pt-sans-latin-ext-400-normal-Dgusqyff.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:PT Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/pt-sans-latin-400-normal-Cwy9XeGQ.woff2)format("woff2"),url(/assets/pt-sans-latin-400-normal-v0jdzXSm.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:PT Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/pt-sans-cyrillic-ext-700-normal-XWuytqPM.woff2)format("woff2"),url(/assets/pt-sans-cyrillic-ext-700-normal-DtKE9zI9.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:PT Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/pt-sans-cyrillic-700-normal-TNhnPAH_.woff2)format("woff2"),url(/assets/pt-sans-cyrillic-700-normal-DzVkanQm.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:PT Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/pt-sans-latin-ext-700-normal-B72N01jW.woff2)format("woff2"),url(/assets/pt-sans-latin-ext-700-normal-B4THBQu1.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:PT Sans;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/pt-sans-latin-700-normal-DmHhLLdt.woff2)format("woff2"),url(/assets/pt-sans-latin-700-normal-CyjbL83V.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--paper:#efe6d1;--paper-dot:#4a3a2421;--sheet:#fbf6ea;--sheet-2:#f4ead5;--ink:#2a221c;--ink-2:#574a3d;--line:#c9b994;--line-soft:#e0d3b6;--accent:#2b4f86;--accent-2:#223f6d;--accent-ink:#fffaf0;--accent-soft:#dfe6f1;--rose:#a3354c;--rose-soft:#f3dfe0;--ok:#2f6b3c;--warn-bg:#fbecc8;--warn-ink:#5c4207;--fabric:#e8dcc0;--fabric-edge:#b7a57c;--piece:#fffaf0;--band:#f6e3b4;--shadow:0 1px 0 #42301814, 0 6px 18px -10px #42301873;--radius:4px;--font-display:"Bitter Variable", "Bitter", Georgia, serif;--font-body:"PT Sans", "Trebuchet MS", system-ui, sans-serif;--wrap:1180px;--fibres:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='f'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9 .045' numOctaves='2' seed='7'/%3E%3CfeColorMatrix values='0 0 0 0 .35 0 0 0 0 .27 0 0 0 0 .16 0 0 0 .07 0'/%3E%3C/filter%3E%3Crect width='240' height='240' filter='url(%23f)'/%3E%3C/svg%3E");--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--paper:#1c1915;--paper-dot:#efe2c812;--sheet:#26221c;--sheet-2:#2e2921;--ink:#f1e7d3;--ink-2:#c9bba3;--line:#574d3d;--line-soft:#3a342a;--accent:#a4c0ee;--accent-2:#c3d6f5;--accent-ink:#13203a;--accent-soft:#283550;--rose:#f29aac;--rose-soft:#43262c;--ok:#9fd3a8;--warn-bg:#3d3115;--warn-ink:#f6dc9c;--fabric:#34302a;--fabric-edge:#6d614c;--piece:#1f1c17;--band:#4a3f22;--shadow:0 1px 0 #0000004d, 0 8px 22px -12px #000c;--fibres:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='f'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9 .045' numOctaves='2' seed='7'/%3E%3CfeColorMatrix values='0 0 0 0 .95 0 0 0 0 .9 0 0 0 0 .8 0 0 0 .05 0'/%3E%3C/filter%3E%3Crect width='240' height='240' filter='url(%23f)'/%3E%3C/svg%3E");--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--paper:#1c1915;--paper-dot:#efe2c812;--sheet:#26221c;--sheet-2:#2e2921;--ink:#f1e7d3;--ink-2:#c9bba3;--line:#574d3d;--line-soft:#3a342a;--accent:#a4c0ee;--accent-2:#c3d6f5;--accent-ink:#13203a;--accent-soft:#283550;--rose:#f29aac;--rose-soft:#43262c;--ok:#9fd3a8;--warn-bg:#3d3115;--warn-ink:#f6dc9c;--fabric:#34302a;--fabric-edge:#6d614c;--piece:#1f1c17;--band:#4a3f22;--shadow:0 1px 0 #0000004d, 0 8px 22px -12px #000c;--fibres:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='f'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9 .045' numOctaves='2' seed='7'/%3E%3CfeColorMatrix values='0 0 0 0 .95 0 0 0 0 .9 0 0 0 0 .8 0 0 0 .05 0'/%3E%3C/filter%3E%3Crect width='240' height='240' filter='url(%23f)'/%3E%3C/svg%3E");--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:1rem}body{background-color:var(--paper);background-image:var(--fibres), radial-gradient(circle at 1px 1px, var(--paper-dot) 1.2px, transparent 1.6px);color:var(--ink);font-family:var(--font-body);background-size:240px 240px,24px 24px;flex-direction:column;min-height:100vh;margin:0;font-size:1.0625rem;line-height:1.55;display:flex}main{flex:1}h1,h2,h3{font-family:var(--font-display);letter-spacing:-.01em;margin:0 0 .5em;line-height:1.15}h1{font-size:clamp(1.9rem,1.2rem + 2.6vw,2.9rem);font-weight:800}h2{font-size:clamp(1.35rem,1.1rem + .9vw,1.75rem);font-weight:750}h3{font-size:1.15rem;font-weight:700}p{margin:0 0 .85em}a{color:var(--accent);text-underline-offset:.18em;text-decoration-thickness:1px}a:hover{text-decoration-thickness:2px}:focus-visible{outline:3px solid var(--rose);outline-offset:2px;border-radius:2px}small{font-size:.85em}.wrap{width:100%;max-width:var(--wrap);margin-inline:auto;padding-inline:16px}@media (width>=720px){.wrap{padding-inline:28px}}.icon{vertical-align:-.2em;flex:none;width:1.15em;height:1.15em}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.skip-link{z-index:50;background:var(--ink);color:var(--paper);border-radius:var(--radius);padding:10px 14px;position:absolute;top:-60px;left:12px}.skip-link:focus{top:12px}.masthead{background:var(--sheet);border-bottom:2px solid var(--ink);box-shadow:0 3px 0 -1px var(--sheet), 0 4px 0 -1px var(--ink);margin-bottom:6px}.masthead__bar{align-items:center;gap:16px;min-height:72px;padding-block:10px;display:flex}.brand{color:var(--ink);align-items:center;gap:12px;min-height:44px;margin-right:auto;text-decoration:none;display:inline-flex}.brand__mark{flex:none;width:44px;height:44px}.mark-piece{fill:var(--accent)}.mark-seam{fill:none;stroke:var(--sheet);stroke-width:1.8px;stroke-dasharray:3.2 2.6;stroke-linecap:round}.mark-grain{fill:none;stroke:var(--sheet);stroke-width:1.8px;stroke-linecap:round}.brand__text{flex-direction:column;line-height:1.1;display:flex}.brand__name{font-family:var(--font-display);letter-spacing:-.01em;font-size:1.5rem;font-weight:800}.brand__tag{letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2);margin-top:3px;font-size:.82rem}.theme-toggle{border:1.5px dashed var(--ink-2);min-width:44px;min-height:44px;color:var(--ink);font:inherit;cursor:pointer;background:0 0;border-radius:999px;align-items:center;gap:6px;padding:0 14px;font-size:.95rem;display:inline-flex}.theme-toggle:hover{border-style:solid}.tt{align-items:center;gap:6px;display:none}:root:not([data-theme]) .tt--system,:root[data-theme=light] .tt--light,:root[data-theme=dark] .tt--dark{display:inline-flex}.site-nav{border-top:1px solid var(--line)}.site-nav ul{scrollbar-width:thin;gap:4px;margin:0;padding:0;list-style:none;display:flex;overflow-x:auto}.site-nav a{min-height:44px;color:var(--ink);white-space:nowrap;border-bottom:3px solid #0000;align-items:center;padding:0 12px;font-size:.97rem;font-weight:700;text-decoration:none;display:inline-flex}.site-nav a:hover{border-bottom-color:var(--line)}.site-nav a[aria-current=page]{color:var(--accent);border-bottom:3px solid var(--accent)}@media (width<=520px){.brand__tag,.theme-toggle span span{display:none}.theme-toggle{padding:0 11px}}.page-head{gap:6px 28px;padding-block:26px 10px;display:grid}.page-head .lead{color:var(--ink-2);max-width:62ch;margin:0;font-size:1.12rem}.kicker{font-family:var(--font-display);letter-spacing:.16em;text-transform:uppercase;color:var(--rose);align-items:center;gap:10px;margin:0;font-size:.8rem;font-weight:700;display:flex}.kicker:after{content:"";opacity:.6;border-top:2px dashed;flex:0 120px}.piece{background:var(--sheet);border:2px solid var(--ink);box-shadow:var(--shadow);border-radius:2px;margin-block:14px 26px;padding:26px 18px 22px;position:relative}.piece:before{content:"";border:1.5px dashed var(--rose);opacity:.55;pointer-events:none;position:absolute;inset:9px}.piece:after{content:"";background:linear-gradient(to bottom right, transparent 49%, var(--ink) 50%) left / 9px 50% no-repeat, linear-gradient(to top right, transparent 49%, var(--ink) 50%) left bottom / 9px 50% no-repeat, linear-gradient(to bottom left, transparent 49%, var(--ink) 50%) right / 9px 50% no-repeat, linear-gradient(to top left, transparent 49%, var(--ink) 50%) right bottom / 9px 50% no-repeat;pointer-events:none;opacity:.9;height:14px;margin-top:-7px;position:absolute;top:50%;left:-2px;right:-2px}.piece__label{background:var(--sheet);font-family:var(--font-display);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-2);padding:0 8px;font-size:.78rem;font-weight:700;position:absolute;top:-.8em;left:22px}@media (width>=720px){.piece{padding:32px 30px 28px}}.tool-grid{z-index:1;gap:22px;display:grid;position:relative}@media (width>=980px){.tool-grid{grid-template-columns:minmax(300px,380px) minmax(0,1fr);align-items:start;gap:34px}.tool-grid--wide-form{grid-template-columns:minmax(320px,440px) minmax(0,1fr)}}.calc{gap:14px;min-width:0;display:grid}.calc fieldset{border:0;min-width:0;margin:0;padding:0}.calc legend,.field>label,.label{margin-bottom:5px;padding:0;font-size:.97rem;font-weight:700;display:block}.row2{grid-template-columns:1fr 1fr;gap:12px;display:grid}.row3{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.field{min-width:0}.input-unit{display:flex;position:relative}.input,.select{border:1.5px solid var(--line);border-bottom:2px solid var(--ink-2);background:var(--piece);width:100%;min-height:44px;color:var(--ink);font:inherit;border-radius:3px;padding:8px 11px;font-size:1.05rem}.input-unit .input{padding-right:3.1em}.unit{color:var(--ink-2);pointer-events:none;font-size:.92rem;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.input:focus,.select:focus{border-color:var(--accent);outline:3px solid color-mix(in srgb, var(--accent) 35%, transparent);outline-offset:0}.input[aria-invalid=true]{border-color:var(--rose);background:var(--rose-soft)}.hint{color:var(--ink-2);margin:4px 0 0;font-size:.88rem}.field-error{color:var(--rose);min-height:0;margin:4px 0 0;font-size:.9rem;font-weight:700}.field-error:empty{display:none}.seg{flex-wrap:wrap;gap:6px;display:flex}.seg label{cursor:pointer;position:relative}.seg input{opacity:0;cursor:pointer;width:100%;height:100%;margin:0;position:absolute;inset:0}.seg span{border:1.5px dashed var(--ink-2);background:var(--piece);border-radius:3px;align-items:center;gap:6px;min-height:42px;padding:0 14px;font-size:.95rem;font-weight:700;display:inline-flex}.seg input:checked+span{border-style:solid;border-color:var(--accent);background:var(--accent);color:var(--accent-ink)}.seg input:focus-visible+span{outline:3px solid var(--rose);outline-offset:2px}.shapes{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;display:grid}.shape{cursor:pointer;position:relative}.shape input{opacity:0;cursor:pointer;width:100%;height:100%;margin:0;position:absolute;inset:0}.shape span{border:1.5px dashed var(--ink-2);background:var(--piece);text-align:center;border-radius:3px;flex-direction:column;align-items:center;gap:4px;min-height:44px;padding:8px 4px 7px;font-size:.84rem;font-weight:700;line-height:1.1;display:flex}.shape svg{width:40px;height:40px}.shape .sh-fill{fill:var(--accent-soft);stroke:var(--ink);stroke-width:1.6px}.shape .sh-hole{fill:var(--piece);stroke:var(--ink);stroke-width:1.6px}.shape input:checked+span{border-style:solid;border-color:var(--accent);box-shadow:inset 0 0 0 1.5px var(--accent);background:var(--sheet-2)}.shape input:checked+span .sh-fill{fill:var(--accent)}.shape input:focus-visible+span{outline:3px solid var(--rose);outline-offset:2px}.check{cursor:pointer;align-items:flex-start;gap:10px;min-height:40px;font-size:.98rem;display:flex}.check input{width:22px;height:22px;accent-color:var(--accent);flex:none;margin:2px 0 0}.check small{color:var(--ink-2);display:block}.chips{flex-wrap:wrap;gap:6px;margin-top:6px;display:flex}.chip{border:1.5px dashed var(--line);min-height:40px;color:var(--ink);font:inherit;cursor:pointer;background:0 0;border-radius:999px;padding:0 12px;font-size:.9rem}.chip:hover,.chip[aria-pressed=true]{border-style:solid;border-color:var(--accent);color:var(--accent)}details.more{border-top:1.5px dashed var(--line);padding-top:10px}details.more>summary{cursor:pointer;align-items:center;gap:8px;min-height:40px;font-weight:700;list-style:none;display:flex}details.more>summary::-webkit-details-marker{display:none}details.more>summary:before{content:"+";border:1.5px solid var(--ink-2);border-radius:50%;place-items:center;width:22px;height:22px;font-size:.95rem;line-height:1;display:inline-grid}details.more[open]>summary:before{content:"–"}details.more>div{gap:14px;padding-top:8px;display:grid}.btn{border:2px solid var(--accent);min-height:44px;color:var(--accent);font:inherit;cursor:pointer;background:0 0;border-radius:3px;justify-content:center;align-items:center;gap:8px;padding:0 16px;font-size:.97rem;font-weight:700;text-decoration:none;display:inline-flex}.btn:hover{background:var(--accent-soft)}.btn--primary{background:var(--accent);color:var(--accent-ink)}.btn--primary:hover{background:var(--accent-2);border-color:var(--accent-2)}.btn--quiet{border:1.5px dashed var(--ink-2);color:var(--ink)}.btn--quiet:hover{background:var(--sheet-2);border-style:solid}.actions{flex-wrap:wrap;gap:8px;display:flex}.result{min-width:0}.figures{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0 0 14px;display:grid}@media (width>=640px){.figures--4{grid-template-columns:repeat(4,minmax(0,1fr))}.figures--3{grid-template-columns:repeat(3,minmax(0,1fr))}}.figure{background:var(--piece);border:1.5px solid var(--line);border-left:4px solid var(--accent);border-radius:3px;min-width:0;margin:0;padding:10px 12px 11px}.figure--rose{border-left-color:var(--rose)}.figure dt{letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2);font-size:.82rem;font-weight:700}.figure dd{margin:2px 0 0}.figure .big{font-family:var(--font-display);font-variant-numeric:tabular-nums;font-size:1.55rem;font-weight:800;line-height:1.15;display:block}.figure .sub{color:var(--ink-2);font-size:.88rem;display:block}.notice{border:1.5px dashed var(--rose);background:var(--rose-soft);border-radius:3px;margin:0 0 12px;padding:12px 14px}.notice p:last-child{margin-bottom:0}.notice__title{margin-bottom:4px;font-weight:700}.tip{background:var(--warn-bg);color:var(--warn-ink);border-radius:3px;align-items:flex-start;gap:10px;margin:0 0 12px;padding:10px 12px;font-size:.95rem;display:flex}.tip .icon{margin-top:3px}.tip p{margin:0}.result-text{margin:0 0 12px}.tbl-wrap{border:1.5px solid var(--line);background:var(--piece);border-radius:3px;margin:0 0 14px;overflow-x:auto}table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:.95rem}caption{text-align:left;caption-side:top;padding:9px 12px 4px;font-weight:700}th,td{text-align:left;border-bottom:1px solid var(--line-soft);vertical-align:top;padding:8px 12px}thead th{font-family:var(--font-display);letter-spacing:.04em;border-bottom:2px solid var(--line);background:var(--sheet-2);white-space:nowrap;font-size:.85rem}tbody tr:last-child>*{border-bottom:0}td.num,th.num{text-align:right;white-space:nowrap}tr.is-chosen{background:var(--accent-soft)}.opt-label{cursor:pointer;align-items:center;gap:10px;min-height:40px;font-weight:700;display:flex}.opt-label input{width:20px;height:20px;accent-color:var(--accent);flex:none;margin:0}.tag{letter-spacing:.06em;text-transform:uppercase;background:var(--accent);color:var(--accent-ink);vertical-align:1px;border-radius:999px;margin-left:6px;padding:1px 7px;font-size:.75rem;font-weight:700;display:inline-block}.tag--muted{background:var(--line-soft);color:var(--ink-2)}.diagram{margin:0 0 14px}.diagram svg{width:100%;height:auto;max-height:520px;display:block}.diagram figcaption{color:var(--ink-2);flex-wrap:wrap;gap:6px 16px;margin-top:6px;font-size:.86rem;display:flex}.key{align-items:center;gap:6px;display:inline-flex}.key:before{content:"";border-top:2px solid var(--ink);width:22px;height:0}.key--seam:before{border-top:2px dashed var(--rose)}.key--grain:before{border-top-color:var(--accent)}.key--fold:before{border-top:2px solid var(--accent)}.key--place:before{border-top:2px dashed var(--rose)}.d-fabric{fill:var(--fabric);stroke:var(--fabric-edge);stroke-width:1px}.d-selvage{stroke:var(--fabric-edge);stroke-width:3px;stroke-dasharray:1 5;stroke-linecap:round}.d-piece{fill:var(--piece);stroke:var(--ink);stroke-width:1.6px;stroke-linejoin:round}.d-band{fill:var(--band);stroke:var(--ink);stroke-width:1.6px}.d-seam{fill:none;stroke:var(--rose);stroke-width:1.3px;stroke-dasharray:5 4}.d-grain{fill:none;stroke:var(--accent);stroke-width:1.4px;stroke-linecap:round;stroke-linejoin:round}.d-text{fill:var(--ink);font-family:var(--font-body)}.d-label{fill:var(--ink);font-family:var(--font-display);font-weight:800}.d-muted{fill:var(--ink-2);font-family:var(--font-body)}.d-dim{stroke:var(--ink-2);stroke-width:1px;fill:none}.d-fold{stroke:var(--accent);stroke-width:1.8px}.d-place{stroke:var(--rose);stroke-width:1.8px;stroke-dasharray:5 4}.d-arrow{fill:none;stroke:var(--accent);stroke-width:1.4px}.d-arrowhead{fill:var(--accent)}.d-cloth{fill:none;stroke:var(--ink);stroke-width:2px;stroke-linejoin:round}.d-garment{fill:var(--piece);stroke:var(--ink);stroke-width:1.6px}.d-cf{stroke:var(--accent);stroke-width:1.3px;stroke-dasharray:8 3 2 3}.d-hole{fill:var(--sheet-2);stroke:var(--rose);stroke-width:2px}.d-button{fill:none;stroke:var(--ink-2);stroke-width:1.2px;stroke-dasharray:2 2}.content{padding-block:6px 10px}.prose{max-width:72ch}.prose h2{margin-top:1.2em}.prose ul,.prose ol{margin:0 0 1em;padding-left:1.3em}.prose li{margin-bottom:.35em}.section{padding-block:18px}.section-head{margin-bottom:14px}.section-head p{color:var(--ink-2);margin:0}.section-head h2{align-items:center;gap:10px;display:flex}.section-head h2:before{content:"";background:var(--rose);flex:none;width:12px;height:12px;transform:rotate(45deg)}.cutline{border-top:2px dashed var(--ink-2);opacity:.85;height:0;margin:20px 0 22px;position:relative}.cutline .icon{background:var(--paper);width:24px;height:24px;color:var(--ink-2);padding:0 2px;position:absolute;top:-13px;left:18px;transform:rotate(-90deg)}.sources ul{margin:0;padding-left:1.2em;font-size:.95rem}.sources li{margin-bottom:.5em}.callout{background:var(--sheet);border:1.5px dashed var(--accent);border-radius:3px;align-items:flex-start;gap:12px;max-width:72ch;margin:18px 0;padding:14px 16px;display:flex}.callout .icon{color:var(--accent);margin-top:3px}.callout p{margin:0}.toolgrid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px;margin:0;padding:0;list-style:none;display:grid}.toolgrid a{background:var(--sheet);border:2px solid var(--ink);height:100%;color:var(--ink);box-shadow:var(--shadow);border-radius:2px;grid-template-columns:56px 1fr;gap:4px 14px;padding:18px 16px 16px;text-decoration:none;display:grid;position:relative}.toolgrid a:before{content:"";border:1.2px dashed var(--rose);opacity:.45;pointer-events:none;position:absolute;inset:6px}.toolgrid a:hover{border-color:var(--accent)}.toolgrid a:hover h3{color:var(--accent)}.toolgrid .glyph{grid-row:span 2;width:56px;height:56px}.toolgrid h3{margin:2px 0 0;font-size:1.08rem}.toolgrid p{color:var(--ink-2);margin:0;font-size:.93rem}.g-fill{fill:var(--accent-soft);stroke:var(--ink);stroke-width:1.6px}.g-line{fill:none;stroke:var(--ink);stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round}.g-seam{fill:none;stroke:var(--rose);stroke-width:1.4px;stroke-dasharray:3 2.5}.g-accent{fill:var(--accent)}.recs{gap:16px;display:grid}@media (width>=760px){.recs{grid-template-columns:1fr 1fr}}.rec{background:var(--sheet);border:2px solid var(--ink);box-shadow:var(--shadow);border-radius:2px;flex-direction:column;align-items:flex-start;padding:22px 20px 20px;display:flex;position:relative}.rec__label{letter-spacing:.12em;text-transform:uppercase;color:var(--rose);margin-bottom:6px;font-size:.78rem;font-weight:700}.rec h3{font-size:1.3rem}.rec .btn{margin-top:auto}.faq{gap:10px;max-width:80ch;display:grid}.faq details{background:var(--sheet);border:1.5px solid var(--line);border-left:4px solid var(--accent);border-radius:3px}.faq summary{cursor:pointer;justify-content:space-between;align-items:center;gap:12px;min-height:48px;padding:10px 14px;font-weight:700;list-style:none;display:flex}.faq summary::-webkit-details-marker{display:none}.faq summary .icon{transition:transform .2s}.faq details[open] summary .icon{transform:rotate(180deg)}.faq details>div{padding:0 14px 4px}.site-footer{background:var(--sheet);border-top:2px solid var(--ink);margin-top:36px;padding-bottom:20px}.site-footer .cutline{margin:18px 0 22px}.site-footer .cutline .icon{background:var(--sheet)}.footer-grid{gap:22px;display:grid}@media (width>=760px){.footer-grid{grid-template-columns:1.3fr 1fr 1.2fr 1.2fr}}.footer-col h2{letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2);margin-bottom:8px;font-size:.85rem}.footer-col ul{gap:2px;margin:0;padding:0;list-style:none;display:grid}.footer-col li{flex-direction:column;justify-content:center;min-height:40px;display:flex}.footer-col a{color:var(--ink);align-items:center;min-height:32px;font-weight:700;display:inline-flex}.footer-col .desc{color:var(--ink-2);margin-bottom:4px;font-size:.86rem;display:block}.brand--footer{margin-bottom:8px}.brand--footer .brand__mark{width:36px;height:36px}.brand--footer .brand__name{font-size:1.25rem}.footer-about p{color:var(--ink-2);font-size:.95rem}.footer-bottom{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-top:22px;padding-top:14px;font-size:.93rem;display:flex}.footer-bottom p{margin:0}.footer-bottom ul{gap:6px;margin:0;padding:0;list-style:none;display:flex}.footer-bottom a{color:var(--ink);align-items:center;min-height:44px;padding:0 8px;display:inline-flex}.toast-region{z-index:60;pointer-events:none;position:fixed;bottom:20px;left:50%;transform:translate(-50%)}.toast{background:var(--ink);color:var(--paper);opacity:0;border-radius:3px;padding:10px 16px;font-weight:700;transition:opacity .2s,transform .2s;transform:translateY(8px)}.toast.is-visible{opacity:1;transform:none}.filters{gap:12px;display:grid}@media (width>=760px){.filters{grid-template-columns:minmax(220px,1.2fr) 1fr 1fr;align-items:end}}.search{position:relative}.search .icon{color:var(--ink-2);pointer-events:none;position:absolute;top:50%;left:11px;transform:translateY(-50%)}.search .input{padding-left:38px}.count-line{color:var(--ink-2);margin:12px 0 8px;font-size:.95rem}.chart td:first-child{min-width:9em;font-weight:700}.chart td small{color:var(--ink-2);font-weight:400;display:block}.wclass{white-space:nowrap;border:1.5px solid;border-radius:999px;padding:1px 8px;font-size:.8rem;font-weight:700;display:inline-block}.wclass--light{color:var(--accent)}.wclass--medium{color:var(--ink-2)}.wclass--heavy{color:var(--rose)}.wclass--stretch{color:var(--ok)}.named{color:var(--ok);font-weight:700}.edge-rows{gap:10px;display:grid}.edge-row{grid-template-columns:minmax(0,1fr) 84px 84px 44px;align-items:end;gap:8px;display:grid}.edge-row .input{padding-inline:9px}.icon-btn{border:1.5px dashed var(--ink-2);min-width:44px;min-height:44px;color:var(--ink);cursor:pointer;background:0 0;border-radius:3px;place-items:center;display:inline-grid}.icon-btn:hover{color:var(--rose);border-style:solid}@media (width<=420px){.edge-row{grid-template-columns:minmax(0,1fr) 70px 70px 44px;gap:6px}}.edge-head{color:var(--ink-2);grid-template-columns:minmax(0,1fr) 84px 84px 44px;gap:8px;font-size:.85rem;font-weight:700;display:grid}@media (width<=420px){.edge-head{grid-template-columns:minmax(0,1fr) 70px 70px 44px;gap:6px}}.act-add{color:var(--ok);font-weight:700}.act-trim{color:var(--rose);font-weight:700}.act-none{color:var(--ink-2)}.print-only{display:none}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}@media print{:root{--paper:#fff;--sheet:#fff;--sheet-2:#f3f3f3;--ink:#000;--ink-2:#333;--line:#999;--line-soft:#ccc;--accent:#000;--rose:#000;--accent-soft:#eee;--piece:#fff;--fabric:#f1f1f1;--fabric-edge:#777;--band:#e5e5e5}body{color:#000;background:#fff;font-size:11pt}.masthead,.site-footer,.skip-link,.calc,.actions,.no-print,#tools,#recommended,#faq,.callout,.cutline,[data-help],.sources{display:none!important}.piece{box-shadow:none;border:0;margin:0;padding:0}.piece:before,.piece:after,.piece__label{display:none}.tool-grid,.print-only{display:block}.figure,.diagram{break-inside:avoid}a{color:#000;text-decoration:none}}.result-h{border-top:1.5px dashed var(--line);margin:18px 0 6px;padding-top:12px;font-size:1.05rem}.sub-inline{color:var(--ink-2);font-weight:400}.diagram--small svg{max-width:420px}.page-head h1{margin-bottom:.15em}.placket-grid{gap:16px;display:grid}@media (width>=1100px){.placket-grid{grid-template-columns:minmax(0,1fr) 250px;align-items:start}}.diagram--placket svg{max-width:280px;max-height:480px;margin-inline:auto}.guide-head{margin:0 0 4mm;font-size:9pt}@media print{@page{margin:12mm}.diagram--placket{display:none}.guide-page{break-before:page}.guide svg{display:block}}@media (width>=980px){.tool-grid--split{grid-template-columns:1fr 1fr}}.input:disabled{opacity:.5;cursor:not-allowed}.field:has(.input:disabled)>label{color:var(--ink-2)}@media (width<=719px){.chart thead{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.chart tr{border-bottom:1px solid var(--line-soft);padding:10px 12px;display:block}.chart td{border:0;padding:2px 0;display:block}.chart td[data-label]:before{content:attr(data-label) ": ";color:var(--ink-2);font-size:.85rem;font-weight:700}}
