@font-face{font-family:"Source Serif 4";font-style:italic;font-weight:200 900;font-display:swap;src:url(/_next/static/media/3cc72ebdb4333575-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:"Source Serif 4";font-style:italic;font-weight:200 900;font-display:swap;src:url(/_next/static/media/cc48ae4900a0ef8a-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:"Source Serif 4";font-style:italic;font-weight:200 900;font-display:swap;src:url(/_next/static/media/5b187f1b07b443b9-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:"Source Serif 4";font-style:italic;font-weight:200 900;font-display:swap;src:url(/_next/static/media/8b06267f36c612cb-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:"Source Serif 4";font-style:italic;font-weight:200 900;font-display:swap;src:url(/_next/static/media/6d252fd236ac2e88-s.p.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:"Source Serif 4";font-style:italic;font-weight:200 900;font-display:swap;src:url(/_next/static/media/f35bab321b697722-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:200 900;font-display:swap;src:url(/_next/static/media/fa20d3c920a61e0f-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:200 900;font-display:swap;src:url(/_next/static/media/b811bb48e9860189-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:200 900;font-display:swap;src:url(/_next/static/media/897bedb07e9f6a6b-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:200 900;font-display:swap;src:url(/_next/static/media/6e40d8da2e831d20-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:200 900;font-display:swap;src:url(/_next/static/media/0c8fa18c75a2b5a0-s.p.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:200 900;font-display:swap;src:url(/_next/static/media/0289ba911e8000e3-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:"Source Serif 4 Fallback";src:local("Times New Roman");ascent-override:87.87%;descent-override:28.41%;line-gap-override:0.00%;size-adjust:117.91%}.__className_c5f6ad{font-family:"Source Serif 4","Source Serif 4 Fallback"}.__variable_c5f6ad{--font-serif:"Source Serif 4","Source Serif 4 Fallback"}@font-face{font-family:Source Sans\ 3;font-style:italic;font-weight:200 900;font-display:swap;src:url(/_next/static/media/b47a6e1a7df2429a-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Source Sans\ 3;font-style:italic;font-weight:200 900;font-display:swap;src:url(/_next/static/media/6f51bd087744144e-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Source Sans\ 3;font-style:italic;font-weight:200 900;font-display:swap;src:url(/_next/static/media/64e516921a58cd01-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:Source Sans\ 3;font-style:italic;font-weight:200 900;font-display:swap;src:url(/_next/static/media/6ce9361eb58cd86f-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Source Sans\ 3;font-style:italic;font-weight:200 900;font-display:swap;src:url(/_next/static/media/746c13565172880d-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Source Sans\ 3;font-style:italic;font-weight:200 900;font-display:swap;src:url(/_next/static/media/f1f13f4234669585-s.p.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Source Sans\ 3;font-style:italic;font-weight:200 900;font-display:swap;src:url(/_next/static/media/eaba214112ad5aba-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Source Sans\ 3;font-style:normal;font-weight:200 900;font-display:swap;src:url(/_next/static/media/084282eba306c257-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Source Sans\ 3;font-style:normal;font-weight:200 900;font-display:swap;src:url(/_next/static/media/1e377d93cbdd6b44-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Source Sans\ 3;font-style:normal;font-weight:200 900;font-display:swap;src:url(/_next/static/media/ec1d0aa2d2fbc083-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:Source Sans\ 3;font-style:normal;font-weight:200 900;font-display:swap;src:url(/_next/static/media/f1dd23950e6cd390-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Source Sans\ 3;font-style:normal;font-weight:200 900;font-display:swap;src:url(/_next/static/media/0c7826ffb3acea36-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Source Sans\ 3;font-style:normal;font-weight:200 900;font-display:swap;src:url(/_next/static/media/b6a6f0b43d027304-s.p.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Source Sans\ 3;font-style:normal;font-weight:200 900;font-display:swap;src:url(/_next/static/media/692df4da22e71021-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Source Sans\ 3 Fallback;src:local("Arial");ascent-override:109.21%;descent-override:42.66%;line-gap-override:0.00%;size-adjust:93.76%}.__className_80a105{font-family:Source Sans\ 3,Source Sans\ 3 Fallback}.__variable_80a105{--font-sans:"Source Sans 3","Source Sans 3 Fallback"}:root{--paper:#f3f0e8;--paper-2:#ebe6da;--sheet:#fbfaf6;--ink:#15171a;--muted:#5d5a53;--faint:#8a857a;--rule:#d7d0c1;--rule-2:#c4bcab;--green:#1d4a36;--green-dark:#163a2a;--green-light:#e1e8de;--error:#a33a1f;--error-light:#f5e4dc;--warn:#7a5410;--warn-light:#f3ead3;--serif:var(--font-serif),"Iowan Old Style","Palatino Linotype",Palatino,Georgia,"Noto Serif",serif;--sans:var(--font-sans),system-ui,-apple-system,"Segoe UI",Roboto,"Noto Sans","Helvetica Neue",Arial,sans-serif;--gutter:clamp(16px,4vw,40px);--col-gap:clamp(28px,4.5vw,64px);--ease:cubic-bezier(0.2,0.7,0.2,1)}*,:after,:before{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:17px/1.6 var(--sans);font-feature-settings:"kern";font-kerning:normal;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}::selection{background:var(--green);color:var(--paper)}a{color:inherit}h1,h2,h3{font-family:var(--serif);font-optical-sizing:auto;font-weight:600;letter-spacing:-.012em;line-height:1.06;margin:0;text-wrap:balance}p{margin:0;text-wrap:pretty}img,svg{display:block;max-width:100%}[id]{scroll-margin-top:24px}.container{max-width:1160px;margin:0 auto;padding:0 var(--gutter)}.comparison,.dims dd,.product-price,.tabular,.titleblock dd{font-feature-settings:tabular-nums lining-nums;font-variant-numeric:tabular-nums lining-nums}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}:focus-visible{outline:2px solid var(--green);outline-offset:3px}.skip-link{position:absolute;left:var(--gutter);top:-100px;z-index:10;background:var(--ink);color:var(--paper);padding:10px 16px;font-weight:600;text-decoration:none}.skip-link:focus{top:12px}.eyebrow,.field-label,.panel-title,.section-label{font-size:.8rem;font-weight:600;letter-spacing:.13em;text-transform:uppercase;color:var(--muted)}.topbar{border-bottom:1px solid var(--ink);background:var(--paper)}.topbar-inner{display:flex;align-items:baseline;justify-content:space-between;gap:20px;padding-top:22px;padding-bottom:18px}.wordmark{font-family:var(--serif);font-optical-sizing:auto;font-size:1.62rem;font-weight:700;line-height:1;text-decoration:none;letter-spacing:-.02em}.wordmark span{font-family:var(--sans);font-size:.78rem;font-weight:600;letter-spacing:.06em;color:var(--muted);margin-left:5px}.menu{display:flex;gap:28px;font-size:.96rem}.menu a{position:relative;text-decoration:none;color:var(--muted);padding:4px 0;transition:color .2s}.menu a:after{content:"";position:absolute;left:0;right:0;bottom:0;border-bottom:1px solid;transform:scaleX(0);transform-origin:left;transition:transform .25s var(--ease)}.menu a:hover{color:var(--ink)}.menu a:hover:after{transform:scaleX(1)}@media (max-width:640px){.menu{gap:18px}.menu .wide-only{display:none}}.hero{padding:clamp(52px,9vw,112px) 0 clamp(36px,6vw,64px)}.hero h1{text-wrap:wrap;font-size:clamp(2.75rem,7.6vw,6.1rem);font-weight:600;line-height:.98;letter-spacing:-.024em}.hero h1 em{display:block;font-style:italic;font-weight:500;color:var(--green)}.lead{color:var(--muted);font-size:clamp(1.06rem,1.5vw,1.2rem);line-height:1.6;max-width:60ch;margin-top:22px}.hero-lead{margin-top:clamp(24px,3.4vw,36px);max-width:50ch}.index{margin-top:clamp(40px,6vw,72px);border-top:1px solid var(--ink)}.index a{display:grid;grid-template-columns:2.4rem minmax(0,1fr);align-items:baseline;grid-column-gap:12px;column-gap:12px;padding:22px 0;border-bottom:1px solid var(--rule-2);text-decoration:none;transition:background-color .25s var(--ease)}.index .row-main{display:flex;flex-wrap:wrap;align-items:baseline;column-gap:16px;row-gap:4px;min-width:0}.index a:hover{background-color:var(--paper-2)}@media (min-width:960px){.index a{grid-template-columns:minmax(0,3fr) minmax(0,9fr);column-gap:var(--col-gap)}.index .number{padding-left:2px}}.index .number{font-family:var(--serif);font-style:italic;color:var(--green);font-size:1.1rem}.index .name{flex:1 1 auto;font-family:var(--serif);font-optical-sizing:auto;font-size:clamp(1.35rem,2.6vw,1.95rem);line-height:1.2}.index .price{color:var(--muted);white-space:nowrap}.index .arrow{color:var(--green);font-size:1.3rem;transition:transform .25s var(--ease)}.index a:hover .arrow{transform:translateX(5px)}@media (max-width:640px){.index .name{flex-basis:calc(100% - 2.6rem)}.index .price{order:3;font-size:.95rem}}.section{padding:clamp(64px,9vw,120px) 0}.section.tinted{background:var(--paper-2);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}.section-label{display:flex;align-items:baseline;gap:12px;margin:0 0 18px}.section-label .number{font-family:var(--serif);font-style:italic;font-weight:400;letter-spacing:0;text-transform:none;font-size:1.2rem;color:var(--green)}.section h2{font-size:clamp(2.15rem,5vw,3.9rem);max-width:17ch}.accounting,.request,.section-head,.websites{display:grid;grid-template-columns:minmax(0,1fr)}@media (min-width:960px){.accounting,.request,.section-head,.websites{grid-template-columns:minmax(0,3fr) minmax(0,9fr);column-gap:var(--col-gap)}.section-head .section-label{margin-top:.95rem}.hero-lead,.phones{margin-left:calc(25% + var(--col-gap) * .75)}}.accounting{margin-top:clamp(40px,5vw,64px);row-gap:48px;align-items:start}.contact-block{border-top:1px solid var(--ink);padding-top:18px}.contact-block a{display:block;width:-moz-fit-content;width:fit-content;text-decoration:none;font-family:var(--serif);font-optical-sizing:auto;font-size:clamp(1.45rem,2.2vw,1.7rem);line-height:1.25;margin-top:12px;border-bottom:1px solid transparent;transition:border-color .2s}.contact-block a:hover{border-bottom-color:var(--ink)}.contact-block .small{margin-top:16px}.contact-block .small,.terms{color:var(--muted);font-size:.92rem}.terms{margin-top:28px;border-left:2px solid var(--green);padding-left:16px}.comparison-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap;border-top:1px solid var(--ink);padding-top:18px;margin-bottom:6px}.comparison-head h3{font-size:1.55rem}.stamp{font-size:.76rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--green);border:1px solid var(--green);outline:1px solid var(--green);outline-offset:2px;margin-right:3px;padding:3px 9px;white-space:nowrap}.comparison-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}.comparison{width:100%;border-collapse:collapse;font-size:.96rem}.comparison td,.comparison th{padding:11px 12px;text-align:right;border-bottom:1px solid var(--rule);white-space:nowrap}.comparison th:first-child{text-align:left;padding-left:0;white-space:normal}.comparison thead th{font-size:.74rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);vertical-align:bottom;white-space:normal;padding-top:14px}.comparison thead th.own{color:var(--green);border-top:3px solid var(--green)}.comparison .own{background:var(--green-light)}.comparison tbody th{font-weight:400;color:var(--ink)}.comparison tbody td{color:var(--muted)}.comparison tbody td.own{color:var(--ink);font-weight:600}.comparison tbody tr:hover td,.comparison tbody tr:hover th{background-color:rgba(21,23,26,.035)}.comparison tbody tr:hover td.own{background-color:#d8e2d4}.comparison tr.total td,.comparison tr.total th{border-top:3px double var(--ink);border-bottom:1px solid var(--ink);font-weight:700;color:var(--ink);padding-top:14px;padding-bottom:14px}.comparison tr.total td.own{color:var(--green)}.footnotes{color:var(--muted);font-size:.8rem;line-height:1.55;margin-top:14px;display:grid;grid-gap:5px;gap:5px;max-width:72ch}.footnotes a{color:var(--ink);text-underline-offset:2px;-webkit-text-decoration-color:var(--rule-2);text-decoration-color:var(--rule-2)}.footnotes a:hover{-webkit-text-decoration-color:var(--ink);text-decoration-color:var(--ink)}@media (max-width:560px){.comparison{font-size:.8rem}.comparison td,.comparison th{padding:9px 4px}.comparison thead th{font-size:.64rem;letter-spacing:.04em}.comparison th:first-child{min-width:6.4em}.comparison tbody td.own,.comparison thead th.own,.comparison tr.total td.own{padding-left:6px;padding-right:6px}}@media (max-width:360px){.comparison{font-size:.75rem}.comparison td,.comparison th{padding-left:3px;padding-right:3px}.comparison tbody td.own,.comparison thead th.own,.comparison tr.total td.own{padding-left:4px;padding-right:4px}}.websites{margin-top:clamp(40px,5vw,64px);row-gap:48px}@media (min-width:960px){.websites>.pricing{grid-column:2;grid-row:1}.websites>.steps-block{grid-column:1;grid-row:1}}.price-list{border-top:1px solid var(--ink)}.product{padding:22px 0 20px;border-bottom:1px solid var(--rule-2)}.product-row{display:flex;align-items:baseline;gap:10px}.product-name,.product-price{font-family:var(--serif);font-optical-sizing:auto;font-size:clamp(1.35rem,2.2vw,1.6rem);line-height:1.2}.product-price{white-space:nowrap}.product-price small{font-family:var(--sans);font-size:.8rem;color:var(--muted);margin-left:5px}.leader{flex:1 1;min-width:24px;border-bottom:2px dotted var(--rule-2);transform:translateY(-6px)}.badge{font-family:var(--sans);font-size:.68rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;background:var(--green);color:var(--paper);padding:3px 8px;margin-left:10px;vertical-align:.3em}.product-text{color:var(--muted);font-size:.97rem;margin-top:6px;max-width:56ch}.note{color:var(--muted);font-size:.92rem;margin-top:18px;max-width:64ch}.steps-block{border-top:1px solid var(--ink)}.steps-label{padding-top:16px}.steps{list-style:none;margin:0;padding:0;counter-reset:step}.steps li{display:grid;grid-template-columns:2.4rem minmax(0,1fr);grid-gap:4px;gap:4px;padding:18px 0;border-bottom:1px solid var(--rule-2)}.steps li:before{counter-increment:step;content:counter(step,decimal-leading-zero);font-family:var(--serif);font-style:italic;color:var(--green);font-size:1.1rem;line-height:1.5}.steps strong{display:block;font-weight:600}.steps span{display:block;color:var(--muted);font-size:.94rem;margin-top:2px}.phones{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:clamp(16px,3vw,40px);gap:clamp(16px,3vw,40px);margin-top:clamp(56px,8vw,104px)}.phones figure{margin:0}.phones figure:nth-child(2){transform:translateY(-28px)}.phone-frame{background:var(--ink);border-radius:clamp(24px,3.4vw,38px);padding:clamp(7px,.8vw,10px);box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 26px 40px -26px rgba(21,23,26,.55)}.phone-frame img{width:100%;height:auto;aspect-ratio:390/720;object-fit:cover;object-position:top;border-radius:clamp(17px,2.6vw,29px);background:var(--paper-2)}.phones figcaption{margin-top:16px;text-align:center;font-size:.84rem;color:var(--muted)}.phones figcaption em{display:block;font-family:var(--serif);font-size:1.08rem;color:var(--ink)}@media (max-width:720px){.phones{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;margin-left:calc(var(--gutter) * -1);margin-right:calc(var(--gutter) * -1);padding:4px var(--gutter) 22px;scroll-padding:0 var(--gutter);scrollbar-width:none}.phones::-webkit-scrollbar{display:none}.phones figure{flex:0 0 68%;scroll-snap-align:start}.phones figure:nth-child(2){transform:none}}.request{margin-top:clamp(64px,9vw,120px);border-top:1px solid var(--ink);padding-top:clamp(26px,4vw,40px);row-gap:28px}.request h3{font-size:clamp(1.8rem,3.2vw,2.4rem)}.request-lead{color:var(--muted);margin-top:14px;max-width:42ch}.request form{display:grid;grid-gap:18px;gap:18px}.request .two{display:grid;grid-template-columns:1fr 1fr;grid-gap:18px;gap:18px}@media (max-width:560px){.request .two{grid-template-columns:1fr}}.request label{display:grid;grid-gap:7px;gap:7px;font-size:.9rem;font-weight:600}.input,.request input,.request textarea{width:100%;font:inherit;font-size:1rem;font-weight:400;color:var(--ink);background:var(--sheet);border:1px solid var(--rule-2);border-radius:2px;padding:12px 14px;outline:none;transition:border-color .15s,box-shadow .15s}.input:hover,.request input:hover,.request textarea:hover{border-color:var(--muted)}.input:focus,.request input:focus,.request textarea:focus{border-color:var(--green);box-shadow:0 0 0 3px rgba(29,74,54,.16)}.request textarea{min-height:176px;resize:vertical;line-height:1.55}.input::placeholder,.request ::placeholder{color:#9a9488}.recipient{font-size:.92rem;color:var(--muted)}.recipient a{color:var(--green);font-weight:600;text-decoration:none;border-bottom:1px solid}.honeypot{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.submit-row{display:flex;align-items:center;gap:18px;flex-wrap:wrap}.privacy{color:var(--muted);font-size:.84rem}.form-status{font-size:.96rem;min-height:1.5em;color:var(--error)}.form-status.is-ok{color:var(--green);font-weight:600}.btn,.request button[type=submit]{display:inline-flex;align-items:center;justify-content:center;gap:8px;font:inherit;font-weight:600;font-size:.98rem;line-height:1.2;border-radius:2px;padding:12px 20px;cursor:pointer;border:1px solid var(--ink);background:transparent;color:var(--ink);text-decoration:none;transition:background-color .15s,color .15s,border-color .15s}.btn:hover{background:var(--ink);color:var(--paper)}.btn-primary,.request button[type=submit]{background:var(--green);border-color:var(--green);color:var(--paper)}.btn-primary:hover,.request button[type=submit]:hover{background:var(--green-dark);border-color:var(--green-dark);color:var(--paper)}.request button[type=submit]{padding:15px 26px;font-size:1rem}.btn-quiet{border-color:transparent;padding-left:8px;padding-right:8px;color:var(--ink);text-decoration:underline;-webkit-text-decoration-color:var(--rule-2);text-decoration-color:var(--rule-2);text-underline-offset:3px}.btn-quiet:hover{background:var(--paper-2);color:var(--ink);-webkit-text-decoration-color:var(--ink);text-decoration-color:var(--ink)}.btn-small{font-size:.86rem;padding:7px 12px}.btn:disabled,.request button[type=submit]:disabled{opacity:.5;cursor:not-allowed}.request button[type=submit]:disabled{cursor:wait}.footer{background:var(--ink);color:#d9d4c8;padding:clamp(52px,7vw,88px) 0 36px}.footer-mark{font-family:var(--serif);font-optical-sizing:auto;font-weight:700;font-size:clamp(3.2rem,11vw,7.4rem);letter-spacing:-.035em;line-height:.95;color:var(--paper)}.footer-columns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:28px;gap:28px;margin-top:44px;font-size:.96rem}@media (max-width:720px){.footer-columns{grid-template-columns:minmax(0,1fr)}}.footer .eyebrow{font-size:.74rem;color:#a39e92;margin-bottom:8px}.footer-columns a{text-decoration:none;border-bottom:1px solid #55534d;transition:border-color .2s}.footer-columns a:hover{border-bottom-color:#d9d4c8}.footer-base{margin-top:48px;padding-top:18px;border-top:1px solid #34342f;color:#a39e92;font-size:.84rem}.not-found{padding:clamp(80px,14vw,160px) 0}.not-found h1{font-size:clamp(2.4rem,6vw,4.2rem);margin-bottom:28px}.not-found a{color:var(--green);font-weight:600}.tool-head{padding-top:clamp(44px,7vw,88px);padding-bottom:clamp(28px,4vw,44px)}.tool-head h1{font-size:clamp(2.4rem,6.2vw,4.6rem);line-height:1;letter-spacing:-.02em;max-width:15ch}.tool-head .lead{margin-top:18px}.panel{border-top:1px solid var(--ink);padding-top:16px}.panel+.panel{margin-top:40px}.panel-head{justify-content:space-between;gap:12px;margin-bottom:18px}.panel-head,.panel-title{display:flex;align-items:baseline}.panel-title{gap:10px;margin:0;color:var(--ink)}.panel-title .number{font-family:var(--serif);font-style:italic;font-weight:400;letter-spacing:0;text-transform:none;font-size:1.15rem;color:var(--green)}.panel-heading{font-size:clamp(1.5rem,2.4vw,1.85rem)}.panel-heading-small{font-size:1.3rem}.fieldset{border:0;margin:0;padding:0;min-width:0}.fieldset.panel{border-top:1px solid var(--ink);padding-top:16px}.fieldset+.fieldset{margin-top:36px}.fieldset>legend{float:left;width:100%;padding:0;margin-bottom:16px}.fieldset>legend+*{clear:left}.field-after-control{margin-top:18px}.field{display:grid;grid-gap:6px;gap:6px}.field+.field{margin-top:16px}.field-label{display:block;color:var(--ink);font-size:.74rem}.field-hint{font-size:.86rem;line-height:1.45;color:var(--muted)}.input-wrap{position:relative;display:flex;align-items:center}.input-wrap .input{padding-right:52px}.input-wrap.has-prefix .input{padding-left:46px}.affix{position:absolute;right:14px;color:var(--muted);font-size:.92rem;pointer-events:none}.affix-prefix{left:14px;right:auto;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.input[aria-invalid=true]{border-color:var(--error);background:#fdf7f4}.input[aria-invalid=true]:focus{box-shadow:0 0 0 3px rgba(163,58,31,.15)}.segmented{display:flex;flex-wrap:wrap;border:1px solid var(--ink);border-radius:2px;width:-moz-fit-content;width:fit-content;max-width:100%}.segmented button{font:inherit;font-size:.92rem;font-weight:500;padding:9px 14px;border:0;border-left:1px solid var(--ink);background:transparent;color:var(--ink);cursor:pointer;transition:background-color .15s,color .15s}.segmented button:first-child{border-left:0}.segmented button:hover{background:var(--paper-2)}.segmented button[aria-pressed=true]{background:var(--ink);color:var(--paper)}.segmented-wide{width:100%}.segmented-wide button{flex:1 1}.segment-stacked{display:grid;grid-gap:1px;gap:1px;text-align:left;line-height:1.25}.segment-stacked small{font-size:.78rem;color:var(--muted)}.segmented button[aria-pressed=true] small{color:#c9c4b8}.alert{font-size:.94rem;line-height:1.5;padding:12px 14px;border-left:3px solid}.alert-error{background:var(--error-light);border-color:var(--error);color:#6f2410}.alert-warn{background:var(--warn-light);border-color:#b7862c;color:var(--warn)}.alert-info{background:var(--sheet);border-color:var(--green);color:var(--ink)}.alerts{display:grid;grid-gap:10px;gap:10px}.alerts:empty{display:none}.actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}.piippu{display:grid;grid-template-columns:minmax(0,1fr);grid-row-gap:48px;row-gap:48px;padding-bottom:clamp(64px,9vw,112px)}@media (min-width:1000px){.piippu{grid-template-columns:minmax(300px,3.4fr) minmax(0,8.6fr);grid-template-rows:auto 1fr;grid-template-areas:"inputs output" "library output";column-gap:var(--col-gap);align-items:start}.piippu-inputs{grid-area:inputs}.piippu-output{grid-area:output}.piippu-library{grid-area:library}}.piippu-output{display:grid;grid-gap:48px;gap:48px;min-width:0}.piippu-output>.panel{margin-top:0}.piippu-output .alerts{margin-bottom:16px}.export-error{margin-top:18px}.pitch-summary{font-family:var(--serif);font-size:1.3rem;margin-top:14px}.pitch-summary span{color:var(--muted);font-family:var(--sans);font-size:.95rem}.presets{display:grid;grid-template-columns:repeat(auto-fill,minmax(76px,1fr));grid-gap:6px;gap:6px;margin-top:10px}.preset{font:inherit;display:grid;grid-gap:1px;gap:1px;text-align:left;padding:7px 10px;border:1px solid var(--rule-2);border-radius:2px;background:var(--sheet);color:var(--ink);cursor:pointer;transition:border-color .15s,background-color .15s}.preset strong{font-weight:600;font-size:.95rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.preset span{font-size:.78rem;color:var(--muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.preset:hover{border-color:var(--ink)}.preset[aria-pressed=true]{border-color:var(--green);background:var(--green-light);box-shadow:inset 0 0 0 1px var(--green)}.drawing{margin:0}.sheet{background:var(--sheet);border:1px solid var(--ink);padding:clamp(8px,2vw,22px);position:relative}.sheet:after{content:"";position:absolute;inset:5px;border:1px solid var(--rule);pointer-events:none}.sheet-empty{min-height:260px;display:grid;place-items:center;text-align:center;color:var(--muted);padding:32px}.drawing-svg{width:100%;height:auto;max-height:72vh;margin:0 auto;overflow:visible}.drawing-grid line{stroke:#e3ddcf;stroke-width:1}.drawing-grid line.major{stroke:#d6cfbe}.cut-line{fill:rgba(29,74,54,.05);stroke:var(--ink);stroke-width:1.8;stroke-linejoin:round}.seam-line{stroke:var(--green);stroke-width:1.6;stroke-dasharray:7 4}.seam-allowance{fill:url(#piippu-hatch);stroke:var(--green);stroke-width:1.1;stroke-dasharray:4 3}.hatch-line{stroke:var(--green);opacity:.55}.dim-ext,.dim-line{stroke:var(--muted);stroke-width:1}.dim-ext{stroke:#9b958a}.dim-arrow{fill:var(--muted)}.dim-text{fill:var(--ink);font-family:var(--sans);font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.legend{display:flex;flex-wrap:wrap;gap:8px 22px;list-style:none;margin:14px 0 0;padding:0;font-size:.86rem;color:var(--muted)}.legend li{display:inline-flex;align-items:center;gap:8px}.swatch{flex:none;width:28px;height:12px;overflow:visible}.titleblock{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:16px 0 0;border:1px solid var(--ink)}.titleblock div{padding:9px 12px 10px;border-left:1px solid var(--rule-2);min-width:0}.titleblock div:first-child{border-left:0}.titleblock dt{font-size:.66rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.titleblock dd{margin:3px 0 0;font-family:var(--serif);font-size:1.04rem;line-height:1.3}@media (max-width:640px){.titleblock{grid-template-columns:repeat(2,minmax(0,1fr))}.titleblock div:nth-child(3){border-left:0}.titleblock div:nth-child(n+3){border-top:1px solid var(--rule-2)}}.dims{margin:0;border-top:1px solid var(--ink)}.dims div{padding:10px 0;border-bottom:1px solid var(--rule)}.dims div,.dims dt{display:flex;align-items:baseline;gap:10px}.dims dt{flex:1 1;color:var(--ink)}.dims dt:after{content:"";flex:1 1;min-width:16px;border-bottom:1px dotted var(--rule-2);transform:translateY(-5px)}.dims .hint{display:block;font-size:.82rem;color:var(--muted);margin-top:2px}.dims dd{margin:0;font-weight:600;white-space:nowrap}.dims-columns{display:grid;grid-gap:0 var(--col-gap);gap:0 var(--col-gap)}.dims-columns .dims+.dims{border-top:0}@media (min-width:760px){.dims-columns{grid-template-columns:repeat(2,minmax(0,1fr))}.dims-columns .dims+.dims{border-top:1px solid var(--ink)}}.export-options{display:grid;grid-gap:20px;gap:20px}@media (min-width:760px){.export-options{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:28px}}.export-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:10px;gap:10px;margin-top:22px}.export-actions .btn-primary{grid-column:1/-1}@media (min-width:760px){.export-actions{grid-template-columns:1.4fr repeat(4,minmax(0,1fr))}.export-actions .btn-primary{grid-column:auto}}.export-actions .btn{padding-left:10px;padding-right:10px}.sheet-count{margin-top:8px}.preview-layout{display:grid;grid-gap:18px;gap:18px;align-items:center}@media (min-width:760px){.preview-layout{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:var(--col-gap)}}.preview-svg{width:100%;height:auto;max-height:340px;background:var(--sheet);border:1px solid var(--rule-2)}.preview-roof{stroke:var(--muted);stroke-width:1.6}.preview-pipe{stroke:var(--muted);stroke-width:1.4;stroke-dasharray:5 4}.preview-piece{fill:rgba(29,74,54,.1);stroke:var(--green);stroke-width:1.8;stroke-linejoin:round}.preview-label{fill:var(--muted);font-family:var(--sans)}.library-list{list-style:none;margin:18px 0 0;padding:0;border-top:1px solid var(--rule-2)}.library-item{display:grid;grid-template-columns:auto minmax(0,1fr);grid-gap:4px 12px;gap:4px 12px;padding:12px 0;border-bottom:1px solid var(--rule-2)}.library-item.is-current{background:var(--green-light);box-shadow:-10px 0 0 var(--green-light),10px 0 0 var(--green-light)}.library-item input[type=checkbox]{width:18px;height:18px;margin:3px 0 0;accent-color:var(--green)}.library-body{display:grid;grid-gap:1px;gap:1px;min-width:0}.library-body strong{font-family:var(--serif);font-size:1.12rem;font-weight:600;overflow-wrap:anywhere}.library-meta{font-size:.84rem;color:var(--muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.library-actions{grid-column:2;display:flex;flex-wrap:wrap;gap:4px;margin-left:-8px}.library-count{margin-top:26px}.library-notice{margin-top:14px}.library-device{margin-top:12px}.library-transfer{margin-top:8px}.dialog{margin-top:16px;background:var(--sheet);border:1px solid var(--ink);box-shadow:6px 6px 0 var(--paper-2);padding:18px}.dialog:focus{outline:2px solid var(--green);outline-offset:3px}.dialog-title{font-family:var(--serif);font-size:1.25rem;font-weight:600;margin-bottom:6px}.conflict-list{list-style:none;margin:14px 0 0;padding:0;display:grid;grid-gap:14px;gap:14px}.conflict-list strong{display:block;margin-bottom:6px}.file-input{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.tool-page{padding-bottom:clamp(64px,9vw,112px)}.tool-page>.lead{margin-top:0;margin-bottom:18px}.admin-panel{margin-top:28px}.admin-error{margin-top:16px}.admin-results{margin-top:48px}.admin-search{display:grid;grid-gap:16px;gap:16px}@media (min-width:720px){.admin-search{grid-template-columns:repeat(2,minmax(0,1fr)) auto;align-items:end}}.result-list{list-style:none;margin:18px 0 0;padding:0;border-top:1px solid var(--ink)}.result{display:grid;grid-gap:14px;gap:14px;padding:18px 0;border-bottom:1px solid var(--rule-2)}@media (min-width:900px){.result{grid-template-columns:minmax(0,1.2fr) minmax(0,1.4fr) auto;align-items:end}}.result-name{font-family:var(--serif);font-size:1.2rem;font-weight:600}.result-name a{-webkit-text-decoration-color:var(--rule-2);text-decoration-color:var(--rule-2);text-underline-offset:3px}.result-meta{font-size:.88rem;color:var(--muted);overflow-wrap:anywhere}.result-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:10px;gap:10px}@media (max-width:480px){.result-fields{grid-template-columns:minmax(0,1fr)}}.signin{display:grid;grid-gap:10px;gap:10px;max-width:360px;margin-top:22px}.signin .btn{justify-content:flex-start;background:var(--sheet)}.signin .btn:hover{background:var(--paper-2);color:var(--ink)}.account{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;font-size:.9rem;color:var(--muted)}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:after,:before{transition-duration:.01ms!important}}@media print{.alerts,.footer,.piippu-export,.piippu-inputs,.piippu-library,.skip-link,.tool-head .lead,.topbar{display:none!important}body{background:#fff}.piippu{display:block}.sheet{background:#fff;border-color:#000}.drawing-svg{max-height:none}.cut-line{fill:none}.cut-line,.seam-allowance,.seam-line{stroke:#000}}