:root{--paper:#f7f4ed;--ink:#173f35;--muted:#54675c;--sage:#c8d4bf;--clay:#b65c43;--line:#dcded0;--white:#fffef9;--serif:Georgia,'Times New Roman',serif;--sans:Inter,'Segoe UI',Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased}a{color:inherit;text-underline-offset:4px}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--clay);outline-offset:4px}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-weight:400}h1,h2{font-family:var(--serif);letter-spacing:-.045em;line-height:1.1}h1{font-size:clamp(40px,5vw,72px)}h2{font-size:clamp(30px,3.2vw,44px)}h3{line-height:1.25}.wrap{width:min(1200px,calc(100% - 80px));margin-inline:auto}.narrow{width:min(760px,100%);margin-inline:auto}.eyebrow{font-size:10px;font-weight:650;letter-spacing:.17em;line-height:1.6;text-transform:uppercase}.skip-link{position:absolute;left:20px;top:-80px;background:var(--ink);color:white;padding:12px 20px;z-index:99}.skip-link:focus{top:10px}.site-header{min-height:112px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:32px}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;flex-shrink:0}.brand svg{width:42px;height:42px}.brand>span{font-family:var(--serif);font-size:29px;letter-spacing:-.04em;line-height:1.2}.brand i{font-size:23px;font-weight:400}.brand-sub{display:block;font:7px var(--sans);letter-spacing:.2em;margin-top:7px}.site-header nav{display:flex;gap:33px}.site-header nav a{text-decoration:none;font-size:12px}.site-header nav a:hover,.site-header nav a[aria-current]{text-decoration:underline}.hero{display:grid;grid-template-columns:1.06fr 1fr;gap:64px;align-items:center;padding-block:74px 80px}.hero-copy h1{font-size:clamp(46px,5.2vw,76px);margin:22px 0 28px}.hero h1 em,.method-band em{font-weight:400;color:var(--clay)}.tiny-star{color:var(--clay);font-size:20px;vertical-align:middle;margin-right:8px}.hero-description{font-size:16px;line-height:1.85;color:var(--muted);margin-bottom:32px}.button{display:inline-flex;gap:32px;align-items:center;justify-content:center;min-height:49px;padding:12px 23px;border:1px solid var(--ink);border-radius:3px;text-decoration:none;font-size:12px;font-weight:600;line-height:1.5;background:transparent;color:var(--ink);transition:background .15s,transform .15s}.button:hover{background:#e4e9dc;transform:translateY(-1px)}.button.primary{background:var(--ink);color:var(--white)}.button.primary:hover{background:#2b5545}.hero-secondary{display:inline-block;font-size:11px;margin-left:20px}.hero-trust{display:flex;gap:20px;margin-top:27px;font-size:9px;color:var(--muted)}.hero-trust span:before{content:'·';margin-right:9px;color:var(--clay)}.hero-art{height:465px;position:relative;background:#e8eadc;border-radius:48% 48% 8px 8px;isolation:isolate}.art-label{position:absolute;right:35px;top:26px;font-size:8px;letter-spacing:.15em;line-height:1.8;transform:rotate(6deg)}.hero-quilt{position:absolute;left:42px;right:36px;top:67px;bottom:28px;display:grid;grid-template-columns:repeat(4,1fr);gap:4px;padding:8px;background:#f1ead7;box-shadow:9px 14px 24px #173f3518;transform:rotate(-7deg);border-radius:2px}.patch{position:relative;display:grid;place-items:center;background:#e7dfc8;border:1px dashed #fff9;overflow:hidden}.patch:before{content:'';position:absolute;width:68%;height:68%;background:var(--clay);transform:rotate(45deg)}.patch i{display:block;width:48%;height:48%;z-index:1;border:10px double #e9dfc7;transform:rotate(45deg)}.patch-1{background:#758d6e}.patch-1:before{background:#d8ddc7}.patch-1 i{border-color:#385747}.patch-2{background:#e6c6b0}.patch-2:before{background:#a5533b}.patch-2 i{border-color:#eadbc2}.patch-3{background:#d4d9c2}.patch-3:before{background:#45664f}.patch-3 i{border-color:#f1e7cd}.paper-note{position:absolute;z-index:2;right:-17px;bottom:1px;transform:rotate(5deg);width:211px;background:#fffdf4;box-shadow:2px 5px 14px #173f3510;padding:24px 23px 11px}.paper-note:before{content:'';position:absolute;width:62px;height:22px;background:#c7b99088;top:-10px;left:70px;transform:rotate(-11deg)}.paper-note>span{font-family:var(--serif);font-size:18px;font-style:italic}.paper-note b{display:block;margin-top:8px;font-size:17px;font-weight:500}.paper-note p{font-size:10px;margin:7px 0}.paper-note svg{width:100px;color:var(--clay)}.art-flower{position:absolute;font-size:74px;left:-19px;bottom:-18px;color:var(--clay)}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:30px}.section-heading h2{margin-bottom:0}.section-heading>p{font-size:12px;color:var(--muted);margin-bottom:2px}.tools-section{padding:35px 0 85px;border-top:1px solid var(--line)}.tool-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.tool-card{display:block;border:1px solid var(--line);padding:27px 27px 30px;text-decoration:none;border-radius:5px;background:#fbfaf4;transition:transform .2s,background .2s}.tool-card:hover{transform:translateY(-4px);background:var(--white)}.card-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:26px}.tool-icon{display:grid;place-items:center;width:49px;height:49px;border-radius:50%;background:#e1e7d7;font-family:var(--serif);font-size:32px}.icon-1{background:#f0dfce;color:#a4573e}.icon-2{background:#dce4d6}.card-arrow{font-size:21px}.tool-card .eyebrow{font-size:8px;margin-bottom:10px}.tool-card h3{font-family:var(--serif);font-size:26px;letter-spacing:-.02em;max-width:260px;margin:10px 0 16px}.tool-card p{font-size:12px;color:var(--muted);margin-bottom:27px;min-height:42px}.text-link{font-size:11px;font-weight:600;text-decoration:underline;text-underline-offset:5px}.method-band{background:#e8ecdf;padding:55px 0}.method-inner{display:grid;grid-template-columns:.65fr 1.6fr 1fr;align-items:start;gap:35px}.method-inner>.eyebrow{padding-top:8px;font-size:9px}.method-inner h2{margin:0;font-size:36px}.method-inner>div p{font-size:12px;color:var(--muted)}.notes-section{padding-block:66px 80px}.guide-row{border-top:1px solid var(--line);display:grid;grid-template-columns:155px 1fr 65px;gap:24px;padding:22px 0;align-items:start;text-decoration:none}.guide-row:last-child{border-bottom:1px solid var(--line)}.guide-row>.eyebrow{font-size:8px;padding-top:6px}.guide-row h3{font-family:var(--serif);font-size:23px;margin-bottom:8px}.guide-row:hover h3{text-decoration:underline;text-underline-offset:5px}.guide-row p{font-size:11px;color:var(--muted);max-width:640px;margin:0}.read-time{font-size:10px;padding-top:7px;white-space:nowrap}.site-footer{background:#173f35;color:#f1f1df;margin-top:60px}.footer-top{display:grid;grid-template-columns:1fr 1fr 1fr;gap:35px;padding-block:43px}.footer-top .brand{align-self:start}.footer-top p{font-family:var(--serif);font-size:23px;line-height:1.4;justify-self:center}.footer-top nav{display:flex;gap:5px;flex-direction:column;justify-self:end;font-size:10px}.footer-bottom{display:flex;justify-content:space-between;gap:20px;border-top:1px solid #ffffff26;font-size:8px;letter-spacing:.03em;padding:16px 0 23px;color:#d2dfcd}.breadcrumbs{margin-top:25px;font-size:10px;color:var(--muted)}.breadcrumbs ol{display:flex;flex-wrap:wrap;gap:9px;list-style:none;padding:0}.breadcrumbs li+li:before{content:'/';margin-right:9px;opacity:.6}.breadcrumbs a{text-decoration:none}.breadcrumbs a:hover{text-decoration:underline}.page-heading{padding-block:50px 65px;max-width:850px}.page-heading h1{margin-bottom:25px}.page-heading>p:last-of-type{font-size:15px;color:var(--muted);max-width:600px}.prose{font-size:15px;color:#374e40;overflow-wrap:anywhere}.prose h1,.prose h2,.prose h3{color:var(--ink)}.prose h2{font-size:30px;line-height:1.2;margin:42px 0 16px;letter-spacing:-.02em}.prose h3{font-family:var(--serif);font-size:23px;margin:28px 0 12px}.prose p{margin-bottom:20px;line-height:1.9}.prose .lead{font-size:20px;line-height:1.7;color:var(--ink)}.prose li{padding-left:5px;margin-bottom:10px}.prose ul,.prose ol{padding-left:24px}.prose table{border-collapse:collapse;width:100%;font-size:13px;margin-block:30px}.prose th,.prose td{text-align:left;border-bottom:1px solid var(--line);padding:12px 10px;vertical-align:top}.prose th{background:#e8ecdf}.prose .formula{padding:22px 25px;background:#e9eddf;border-left:3px solid #789075;font-size:13px;line-height:1.7;margin:28px 0}.prose .source-note{font-size:11px;color:var(--muted);border-top:1px solid var(--line);padding-top:20px;margin-top:38px}.article{padding-block:50px 60px}.article h1{font-size:clamp(38px,5vw,62px);margin-bottom:23px}.article header{margin-bottom:38px}.article-meta{font-size:11px;color:var(--muted)}.article-cta{background:#e8ecdf;padding:30px;margin-top:45px}.article-cta h2{font-size:32px;margin-bottom:22px}.tool-heading{padding-block:32px 35px;max-width:930px}.tool-heading h1{font-size:clamp(34px,4.3vw,54px);margin:10px 0 18px}.tool-heading>p:last-child{max-width:680px;color:var(--muted);font-size:14px}.planner-layout{display:grid;grid-template-columns:1.12fr 1fr;align-items:start;gap:35px}.form-panel{background:var(--white);border:1px solid var(--line);border-radius:6px;padding:30px}.unit-control{display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line);padding-bottom:20px;margin-bottom:16px}.unit-control>label{font-size:11px}.unit-control select{width:153px}.example-note{font-size:11px;color:var(--muted);margin:10px 0 25px}fieldset{border:0;padding:0;margin:0 0 30px;min-width:0}legend{display:flex;align-items:center;gap:10px;font-family:var(--serif);font-size:21px;margin-bottom:18px;padding:0}legend span{font:9px var(--sans);padding:5px 7px;background:#e9eddf;border-radius:50%}.fields{display:grid;grid-template-columns:1fr 1fr;gap:20px}.field{min-width:0}label{display:block;font-size:11px;font-weight:600;margin-bottom:7px}label>span{font-size:10px;font-weight:400;color:var(--muted)}input,select{border:1px solid #bcc8b7;border-radius:3px;padding:10px 11px;background:#fffefb;color:var(--ink);width:100%;min-height:44px;font-size:15px}input:hover,select:hover{border-color:var(--ink)}small{display:block;font-size:10px;line-height:1.6;color:var(--muted);margin-top:7px}.field-help{font-size:11px;color:var(--muted);line-height:1.8;margin:0}.calculate{width:100%;justify-content:space-between}.result-panel{background:#e7ecde;border:1px solid #cfd9c5;border-radius:6px;padding:32px;position:sticky;top:24px}.result-kicker{font-size:9px;font-weight:600;letter-spacing:.14em}.result-number{font-family:var(--serif);font-size:64px;margin:15px 0 2px;line-height:1.05}.result-number>span{font-size:28px;letter-spacing:-.03em}.result-sub{font-size:12px;color:var(--muted)}.blanket-demo{height:150px;margin:28px auto 15px;width:180px;background:repeating-linear-gradient(0deg,#e8dfc5 0 18px,#779071 18px 36px,#e8dfc5 36px 54px,#b7654b 54px 72px);transform:rotate(-5deg);box-shadow:5px 7px 0 #173f3510;position:relative;border:5px solid #d9c9a8;border-radius:2px}.blanket-demo:after{content:'';position:absolute;inset:0;background:repeating-linear-gradient(90deg,transparent 0 4px,#ffffff30 4px 5px);border:1px dashed #ffffffc7}.dimensions{text-align:center;font-size:14px;margin:23px 0}.dimensions>span{display:block;font-size:10px;color:var(--muted)}.breakdown{font-size:12px;margin:23px 0}.breakdown>div{display:flex;justify-content:space-between;gap:20px;border-bottom:1px solid #bfcdb44d;padding:10px 0}.breakdown dd{margin:0;text-align:right;font-weight:600}.breakdown dt{color:var(--muted)}.result-note{font-size:10px;line-height:1.8;color:var(--muted);margin-bottom:21px}.plan-actions{display:flex;flex-wrap:wrap;gap:8px;border-top:1px solid #bdcbb2;padding-top:20px}.button.small{min-height:38px;padding:8px 12px;font-size:10px;border-color:#afbea3}.text-button{font-size:10px;color:var(--muted);padding:10px 0;background:none;border:none;text-decoration:underline;text-underline-offset:4px;flex-basis:100%;text-align:left}.plan-status{font-size:11px;line-height:1.6;margin-top:12px;margin-bottom:0;min-height:17px}.form-error{color:#7e3027;background:#f7e3da;font-size:12px;border-left:3px solid var(--clay);padding:12px}.form-error[hidden]{display:none}.stale{opacity:.4;position:relative}.stale:before{content:'Previous result — check your inputs';position:absolute;inset:0 0 auto;z-index:2;background:#fff4e4;color:#752e21;padding:12px;font-size:13px;font-weight:bold}.yarn-illustration{display:flex;align-items:center;justify-content:center;margin:25px 0;line-height:1}.yarn-illustration span{font-size:85px;color:#76906c;letter-spacing:-20px}.yarn-illustration span:nth-child(2){color:var(--clay);transform:translateY(10px)}.yarn-illustration span:last-child{color:#b29f75}.square-preview{display:grid;grid-template-columns:repeat(var(--cols),minmax(0,1fr));gap:3px;padding:8px;background:#ede4cc;margin-top:25px;max-height:490px;overflow:auto;box-shadow:3px 4px 0 #173f3510}.motif{aspect-ratio:1;background:var(--c1,#7c9374);display:grid;place-items:center;padding:15%}.motif:before{content:'';display:block;width:100%;height:100%;background:var(--c2,#f0e6cc);border:4px double var(--c3,#ad6149);transform:rotate(45deg)}.motif-1{background:var(--c2,#f0e6cc)}.motif-1:before{background:var(--c3,#ad6149);border-color:var(--c1,#7c9374)}.motif-2{background:var(--c3,#ad6149)}.motif-2:before{background:var(--c1,#7c9374);border-color:var(--c2,#f0e6cc)}[data-palette=coast]{--c1:#527684;--c2:#e5d7b3;--c3:#91b5a9}[data-palette=berry]{--c1:#71516c;--c2:#ddb5af;--c3:#e4d8bc}.tool-method{padding-block:30px 10px}.related-tools{border-top:1px solid var(--line);margin-top:50px;padding-top:35px}.related-tools h2{font-size:33px}.related-tools .tool-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.mini-card{position:relative;display:block;padding:25px 55px 20px 25px;border:1px solid var(--line);text-decoration:none}.mini-card h3{font-family:var(--serif);font-size:24px;margin-bottom:12px}.mini-card p{font-size:12px;color:var(--muted)}.mini-card>span{position:absolute;top:25px;right:25px}.tool-grid+.prose{margin-top:65px}noscript p{padding:15px;background:#f3e6d0;font-size:13px}
@media(min-width:1450px){.hero{gap:100px}.hero-art{height:510px}.hero-quilt{left:40px;right:35px}.hero-copy h1{font-size:77px}}
@media(max-width:1000px){.wrap{width:calc(100% - 48px)}.hero{gap:35px;padding-top:50px}.hero-art{height:390px}.hero-quilt{left:22px;right:22px;top:65px}.paper-note{right:-6px;width:175px;padding:20px}.hero-secondary{display:block;margin:15px 0 0}.hero-trust{gap:10px;font-size:8px;flex-wrap:wrap}.tool-card{padding:22px}.method-inner{grid-template-columns:1fr 1fr}.method-inner>.eyebrow{grid-column:1/-1;margin-bottom:-12px}.planner-layout{gap:22px}.result-panel,.form-panel{padding:25px}.result-number{font-size:53px}.result-number>span{font-size:24px}.fields{gap:16px}.guide-row{grid-template-columns:120px 1fr 60px}}
@media(max-width:720px){.wrap{width:calc(100% - 36px)}.site-header{min-height:100px;flex-wrap:wrap;gap:13px;padding-block:17px 15px}.brand svg{width:34px;height:34px}.brand>span{font-size:25px}.brand-sub{font-size:6px}.site-header nav{gap:21px}.site-header nav a{font-size:10px}.hero{grid-template-columns:1fr;gap:40px;padding-block:42px 65px}.hero-copy h1{font-size:54px;margin:18px 0 22px}.hero-description{font-size:14px}.hero .eyebrow{font-size:8px}.hero-art{width:90%;max-width:430px;justify-self:center;height:380px}.hero-quilt{left:30px;right:28px;top:58px}.art-label{font-size:7px}.paper-note{right:-10px;bottom:-10px;width:183px}.art-flower{font-size:60px}.hero-secondary{display:inline-block;margin:0 0 0 13px;font-size:10px}.hero-trust{margin-top:23px;gap:12px}.section-heading{align-items:start;flex-direction:column;gap:18px}.section-heading>p{display:none}.section-heading h2{font-size:35px}.tool-grid{grid-template-columns:1fr;gap:14px}.tool-card{padding:24px}.card-top{margin-bottom:18px}.tool-card h3{max-width:none;font-size:29px}.tool-card p{min-height:0;margin-bottom:23px;max-width:320px;font-size:13px}.tools-section{padding-top:26px;padding-bottom:50px}.method-band{padding-block:37px}.method-inner{grid-template-columns:1fr;gap:21px}.method-inner h2{font-size:37px}.method-inner>div p{font-size:13px;max-width:400px}.notes-section{padding-block:40px}.guide-row{grid-template-columns:1fr 50px;gap:8px;padding:21px 0}.guide-row>.eyebrow{grid-column:1/-1;margin-bottom:2px;padding:0}.guide-row h3{font-size:23px}.guide-row p{font-size:12px}.read-time{text-align:right}.footer-top{grid-template-columns:1fr 1fr;gap:30px}.footer-top p{justify-self:start;font-size:24px;grid-row:2;margin-bottom:0}.footer-top nav{grid-column:2;grid-row:1/3;font-size:11px;gap:9px}.footer-bottom{flex-direction:column;gap:6px;font-size:9px}.page-heading{padding-block:35px 40px}.page-heading h1{font-size:48px}.planner-layout{grid-template-columns:1fr}.result-panel{position:static;padding:25px}.form-panel{padding:23px}.fields{gap:18px}.field-help{font-size:11px}.unit-control{gap:10px}.unit-control select{width:145px}.tool-heading{padding-block:22px 24px}.tool-heading h1{font-size:39px}.tool-heading>p:last-child{font-size:13px}.result-number{font-size:64px}.result-number>span{font-size:30px}.blanket-demo{height:150px}.square-preview{max-width:400px;margin-inline:auto}.prose{font-size:14px}.prose h2{font-size:28px}.prose .lead{font-size:18px}.article{padding-block:35px 25px}.article h1{font-size:42px}.prose table{font-size:11px}.prose th,.prose td{padding:10px 7px}.prose .formula{font-size:12px;padding:18px}.related-tools .tool-grid{grid-template-columns:1fr}.breadcrumbs{font-size:9px}.breadcrumbs li:last-child{max-width:100%}.hero .button{padding:12px 17px;gap:20px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
@media print{body{background:white;color:#111;font-size:11pt}.site-header,.site-footer,.breadcrumbs,.form-panel,.tool-method,.related-tools,.plan-actions,.skip-link{display:none!important}.wrap{width:100%;max-width:none}.tool-heading{padding:0 0 10px}.tool-heading h1{font-size:26pt}.planner-layout{display:block}.result-panel{position:static;border:1px solid #ccc;background:white;padding:20px;break-inside:avoid}.result-number{font-size:36pt}.result-number>span{font-size:18pt}.result-note{font-size:9pt}.breakdown{font-size:10pt}.square-preview{max-height:none;max-width:350px;print-color-adjust:exact}.blanket-demo{print-color-adjust:exact}.prose{font-size:11pt}.article{padding:0}.article-cta{display:none}}
