:root{color-scheme:light;--paper:#f3eedc;--paper-light:#fbf8ed;--ink:#18332a;--ink-soft:#52645b;--fern:#2f664d;--fern-dark:#214a38;--ochre:#a65d1d;--danger:#963329;--success:#2c6846;--rule:#aeb5a2;--shadow:6px 7px 0 rgba(24,51,42,.1);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:var(--ink);background:var(--paper);font-size:16px;font-synthesis:none}*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--paper)}body{margin:0;min-width:320px;background:var(--paper);line-height:1.5}body:before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.32;background-image:linear-gradient(rgba(47,102,77,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(47,102,77,.045) 1px,transparent 1px);background-size:24px 24px;z-index:-1}body[data-offline=true]:after{content:"Offline · your plan still works";position:fixed;right:16px;bottom:16px;padding:8px 12px;background:var(--ink);color:#fff;font-size:.85rem;z-index:20}button,input,select{font:inherit}button,a,input,select,summary{touch-action:manipulation}a{color:var(--fern-dark);text-decoration-thickness:1.5px;text-underline-offset:3px}a:hover{text-decoration-thickness:2.5px}button{cursor:pointer}svg{display:block;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.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}.skip-link{position:fixed;top:8px;left:8px;z-index:100;transform:translateY(-150%);padding:10px 14px;background:var(--ink);color:#fff}.skip-link:focus{transform:none}:focus-visible{outline:3px solid var(--ochre);outline-offset:3px}h1,h2,h3,h4,p{margin-top:0}h1,h2{font-family:Georgia,Times New Roman,serif;letter-spacing:-.025em;line-height:1.04}h1{font-size:clamp(2.6rem,6vw,5.25rem);max-width:12ch;margin-bottom:24px}h2{font-size:clamp(2rem,4vw,3.5rem);max-width:16ch;margin-bottom:24px}h3{line-height:1.2}.site-header{max-width:1440px;margin:auto;min-height:80px;padding:16px clamp(20px,5vw,72px);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--rule)}.wordmark{display:inline-flex;gap:10px;align-items:center;font-family:Georgia,Times New Roman,serif;font-weight:700;font-size:1.1rem;text-decoration:none;color:var(--ink)}.wordmark svg{width:34px;height:34px}.site-header nav{display:flex;gap:clamp(16px,3vw,40px)}.site-header nav a{min-height:44px;display:flex;align-items:center;font-weight:650;text-decoration:none;border-bottom:2px solid transparent}.site-header nav a:hover{border-bottom-color:var(--fern)}.demo-banner{background:var(--ink);color:#fff;min-height:44px;padding:8px clamp(20px,5vw,72px);display:flex;align-items:center;justify-content:center;gap:24px;font-size:.9rem}.demo-banner>span{display:flex;gap:16px}.text-button{border:0;padding:6px 0;min-height:32px;color:#fff;background:transparent;text-decoration:underline;text-underline-offset:3px}.hero{max-width:1440px;margin:auto;padding:clamp(48px,8vw,112px) clamp(20px,5vw,72px) 72px;display:grid;grid-template-columns:minmax(0,.9fr) minmax(380px,1.1fr);align-items:center;gap:clamp(40px,6vw,96px);min-height:720px}.specimen-label,.section-kicker,.eyebrow{text-transform:uppercase;letter-spacing:.13em;font-size:.75rem;font-weight:800;color:var(--fern);margin-bottom:16px}.lede{font-size:clamp(1.1rem,2vw,1.35rem);max-width:58ch;color:var(--ink-soft);line-height:1.55}.hero-actions{margin:32px 0;display:flex;align-items:center;gap:18px;flex-wrap:wrap}.hero-actions>span{color:var(--ink-soft);font-size:.9rem}.primary-button,.secondary-button{display:inline-flex;align-items:center;justify-content:center;gap:14px;min-height:48px;padding:12px 18px;border:1px solid var(--fern-dark);font-weight:800;text-decoration:none}.primary-button{background:var(--fern-dark);color:#fff}.primary-button:hover{background:var(--ink);text-decoration:none}.secondary-button{background:var(--paper-light);color:var(--ink)}.secondary-button:hover{background:#e9e4d4}.plain-facts{list-style:none;padding:0;margin:0;display:grid;gap:10px}.plain-facts li{display:flex;align-items:center;gap:10px;font-size:.95rem}.plain-facts svg{width:22px;height:22px;color:var(--fern)}.hero-art{position:relative;margin:0;transform:rotate(1.4deg);background:var(--paper-light);padding:12px 12px 38px;box-shadow:var(--shadow);border:1px solid var(--rule)}.hero-art:before{content:"";position:absolute;width:72px;height:24px;background:#b16b2447;top:-12px;left:44%;transform:rotate(-3deg)}.hero-art img{width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;display:block}.hero-art figcaption{position:absolute;bottom:10px;left:14px;font-family:Georgia,Times New Roman,serif;font-size:.82rem;font-style:italic}.safety-note{max-width:1296px;margin:0 auto 96px;padding:22px 26px;display:flex;gap:18px;border-block:2px solid var(--ochre);background:#a65d1d0f}.safety-note svg{width:34px;height:34px;flex:none;color:var(--ochre)}.safety-note p{margin:4px 0 0;color:var(--ink-soft)}.planner{max-width:1440px;margin:auto;padding:32px clamp(20px,5vw,72px) 112px}.planner-heading{display:flex;justify-content:space-between;align-items:end;gap:24px;margin-bottom:40px}.planner-heading h2{margin-bottom:8px}.planner-heading p{color:var(--ink-soft);margin:0}.unit-switch{display:grid;gap:6px;font-weight:700;min-width:190px}.planner-grid{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(360px,.92fr);gap:32px;align-items:start}.measure-form{background:var(--paper-light);border:1px solid var(--ink);box-shadow:var(--shadow);padding:clamp(20px,4vw,40px);clip-path:polygon(0 0,calc(100% - 22px) 0,100% 22px,100% 100%,0 100%)}fieldset{border:0;padding:0 0 36px;margin:0 0 36px;border-bottom:1px solid var(--rule)}fieldset:last-child{margin:0;padding:0;border:0}legend{width:100%;font-family:Georgia,Times New Roman,serif;font-size:1.35rem;font-weight:700;margin-bottom:22px}legend b{display:inline-grid;place-items:center;background:var(--fern);color:#fff;width:34px;height:34px;margin-right:10px;font:700 .8rem ui-sans-serif,system-ui}fieldset h3{font-size:.82rem;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-soft);margin:24px 0 12px}.three-col,.two-col,.clearance-grid{display:grid;gap:16px}.three-col{grid-template-columns:repeat(3,1fr)}.two-col{grid-template-columns:repeat(2,1fr)}.clearance-grid{grid-template-columns:repeat(5,1fr)}.field{display:grid;gap:6px;align-content:start;font-weight:700;font-size:.9rem}.field small{font-weight:400;color:var(--ink-soft);line-height:1.35}.number-wrap{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;border:1px solid var(--rule);background:#fff}.number-wrap:focus-within{outline:3px solid var(--ochre);outline-offset:2px}.number-wrap input{border:0;min-width:0}.number-wrap input:focus{outline:none}.number-wrap b{padding:0 10px;color:var(--ink-soft);font-size:.75rem}input,select{width:100%;min-height:46px;padding:10px 11px;color:var(--ink);background:#fff;border:1px solid var(--rule);border-radius:0;font-variant-numeric:tabular-nums}input:hover,select:hover{border-color:var(--fern)}.check-row{display:flex;align-items:center;gap:10px;margin:8px 0 18px}.check-row input{width:24px;height:24px;min-height:24px;accent-color:var(--fern)}.result-column{display:grid;gap:24px;position:sticky;top:16px}.cabinet-diagram{margin:0;background:var(--ink);color:#fff;padding:18px}.cabinet-diagram svg{width:100%;max-height:280px}.cabinet-diagram .space-box{stroke:#ffffff80;stroke-dasharray:5 5}.cabinet-diagram .build-box{stroke:#d7c978;fill:#d7c97824;stroke-width:3}.cabinet-diagram .build-box.has-conflict{stroke:#f5a59d}.cabinet-diagram line{stroke:#d7c978}.cabinet-diagram text{fill:#fff;stroke:none;font-size:11px}.cabinet-diagram .dimension{stroke:#fff}.cabinet-diagram figcaption{font-family:Georgia,Times New Roman,serif;font-style:italic;text-align:center;font-size:.82rem;color:#dde4dd}.result-slot{display:grid;gap:24px}.fit-verdict,.opening-note,.cut-list{background:var(--paper-light);border:1px solid var(--rule);padding:24px}.fit-verdict{border-top:5px solid var(--fern)}.fit-verdict.conflict{border-top-color:var(--danger)}.fit-verdict.check{border-top-color:var(--ochre)}.fit-verdict h3{font-family:Georgia,Times New Roman,serif;font-size:1.7rem;margin-bottom:18px}.fit-verdict ul{list-style:none;margin:0;padding:0;display:grid;gap:12px}.finding{display:grid;grid-template-columns:24px 1fr;gap:8px}.finding span{display:inline-grid;place-items:center;width:22px;height:22px;border:1px solid currentColor;font-weight:900}.finding.conflict{color:var(--danger)}.finding.check{color:#80501d}.finding.pass{color:var(--success)}.opening-note h3,.cut-list h3{font-size:1rem;text-transform:uppercase;letter-spacing:.08em}.opening-note dl{margin:0;display:grid;gap:12px}.opening-note dl div{display:flex;justify-content:space-between;gap:20px;border-bottom:1px dotted var(--rule);padding-bottom:7px}.opening-note dt{color:var(--ink-soft)}.opening-note dd{margin:0;text-align:right;font-weight:750;font-variant-numeric:tabular-nums}.result-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.table-wrap{overflow-x:auto;margin-inline:-8px}table{border-collapse:collapse;width:100%;font-size:.88rem;font-variant-numeric:tabular-nums}th,td{text-align:left;padding:11px 8px;border-bottom:1px solid var(--rule);vertical-align:top}tbody th{min-width:120px}tbody th small{display:block;color:var(--ink-soft);font-weight:400;max-width:25ch}.empty-cell{color:var(--ink-soft);padding:24px 8px}.stock-estimate{margin-top:24px;padding-top:20px;border-top:1px solid var(--ink)}.stock-estimate h4{margin-bottom:8px}.stock-estimate ul{margin:0;padding-left:20px}.stock-estimate p{font-size:.8rem;color:var(--ink-soft);margin:8px 0 0}.how,.limits,.paid{max-width:1296px;margin:0 auto;padding:112px clamp(20px,4vw,64px)}.how{border-top:1px solid var(--rule)}.how ol{list-style:none;padding:0;margin:48px 0 0;display:grid;grid-template-columns:repeat(3,1fr);gap:0}.how li{padding:28px;border-left:1px solid var(--rule)}.how li>span{font-family:Georgia,serif;font-size:2.5rem;color:var(--ochre)}.how h3{font-size:1.2rem;margin-top:24px}.how p{color:var(--ink-soft)}.limits{display:grid;grid-template-columns:1fr 1fr;gap:64px;background:var(--ink);color:#fff;position:relative}.limits:after{content:"";position:absolute;right:24px;bottom:12px;width:110px;height:110px;border:1px solid rgba(255,255,255,.18);border-radius:60% 10% 60% 20%;transform:rotate(-24deg)}.limits .section-kicker{color:#bdcfbd}.limits p{max-width:58ch;color:#e3e8e3;font-size:1.05rem}.paid{display:grid;grid-template-columns:1fr 1fr;gap:64px}.paid p,.paid li{color:var(--ink-soft)}.license-panel{background:var(--paper-light);border:1px solid var(--ink);box-shadow:var(--shadow);padding:32px;align-self:start}.license-panel .primary-button{width:100%}.license-panel details{margin-top:22px}.license-panel summary{min-height:44px;padding:10px 0;font-weight:700;text-decoration:underline;cursor:pointer}.license-form{display:grid;gap:10px;margin-top:12px}.form-status{min-height:24px;color:var(--danger);font-size:.9rem}.license-active{display:flex;align-items:center;gap:10px}.license-active span{display:grid;place-items:center;width:28px;height:28px;background:var(--success);color:#fff}.library-list{padding:0;list-style:none}.library-list button{width:100%;min-height:44px;background:transparent;border:0;border-bottom:1px solid var(--rule);text-align:left;color:var(--fern-dark);text-decoration:underline}.empty-note{font-size:.9rem;margin:18px 0 0}footer{max-width:1440px;margin:auto;border-top:1px solid var(--rule);padding:48px clamp(20px,5vw,72px);display:grid;grid-template-columns:1fr auto;gap:24px}footer p{color:var(--ink-soft);margin:8px 0 0}footer nav{display:flex;gap:24px;align-items:start}footer small{grid-column:1/-1;color:var(--ink-soft)}.footer-mark svg{width:28px;height:28px}.legal{max-width:820px;margin:auto;padding:96px 24px 120px;min-height:70vh}.legal h1{max-width:14ch;font-size:clamp(2.6rem,6vw,4.6rem)}.legal h2{font-family:Georgia,serif;font-size:1.6rem;margin-top:48px}.legal p{max-width:68ch}.legal code{background:#e6e0cc;padding:2px 5px}.not-found{max-width:1100px;margin:auto;min-height:70vh;padding:80px 24px;display:grid;grid-template-columns:300px 1fr;align-items:center;gap:64px}.not-found h1{font-size:clamp(2.8rem,6vw,4.8rem);max-width:12ch}.pressed-leaf{width:280px;height:340px;border:1px solid var(--rule);background:var(--paper-light);box-shadow:var(--shadow);display:grid;place-items:center;transform:rotate(-4deg)}.pressed-leaf svg{width:180px;height:180px;color:var(--fern)}@media(max-width:900px){.hero{grid-template-columns:1fr;min-height:auto}.hero-art{max-width:650px}.planner-grid{grid-template-columns:1fr}.result-column{position:static}.clearance-grid{grid-template-columns:repeat(3,1fr)}.how ol{grid-template-columns:1fr}.how li{border-left:0;border-top:1px solid var(--rule);display:grid;grid-template-columns:70px 1fr;gap:12px}.how h3{margin-top:0}.limits,.paid,.not-found{grid-template-columns:1fr}.pressed-leaf{width:180px;height:210px}.pressed-leaf svg{width:110px;height:110px}}@media(max-width:600px){.site-header{padding:12px 20px;align-items:flex-start}.site-header .wordmark span{max-width:70px;line-height:1.05}.site-header nav{gap:12px;font-size:.88rem}.demo-banner{align-items:flex-start;flex-direction:column;gap:2px}.hero{padding-top:56px}.hero-art{padding:8px 8px 34px}.safety-note{margin:0 20px 72px}.planner-heading{align-items:stretch;flex-direction:column}.unit-switch{min-width:0}.three-col,.two-col,.clearance-grid{grid-template-columns:1fr 1fr}.field small{grid-column:1/-1}.measure-form{padding:20px}.result-heading{align-items:stretch;flex-direction:column}.result-heading .secondary-button{width:100%}.opening-note dl div{display:grid;gap:2px}.opening-note dd{text-align:left}.how,.limits,.paid{padding-top:80px;padding-bottom:80px}.paid{gap:24px}footer{grid-template-columns:1fr}footer nav{flex-wrap:wrap}footer small{grid-column:auto}}@media(prefers-reduced-motion:no-preference){.hero-copy,.hero-art{animation:rise .5s ease-out both}.hero-art{animation-delay:.08s}.result-slot>*{animation:fade .16s ease-out}@keyframes rise{0%{transform:translateY(8px)}to{transform:translateY(0)}}@keyframes fade{0%{transform:translateY(2px)}to{transform:translateY(0)}}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media print{body:before,.site-header,.demo-banner,.hero,.safety-note,.how,.limits,.paid,footer,.diagram-slot,.measure-form,.section-kicker,.planner-heading p,.unit-switch,.secondary-button{display:none!important}.planner{padding:0}.planner-heading{display:block;margin:0}.planner-heading h2{font-size:28px;max-width:none}.planner-heading:after{content:"Verify all dimensions, joints, fixings, loads, clearances, and hardware before cutting.";display:block;border:2px solid var(--danger);padding:10px;margin:12px 0}.planner-grid,.result-column{display:block}.result-slot{gap:12px}.fit-verdict,.opening-note,.cut-list{break-inside:avoid;padding:12px;border-color:#555;background:#fff}.fit-verdict{border-top-width:4px}table{font-size:10pt}@page{margin:14mm}html,body{background:#fff;color:#111}}
