/* Homepage art direction. Shared guide and application styles remain independent. */
.home{--paper:#faf9f6;--ink:#252923;--muted:#656961;--line:#e3e4dc;background:var(--paper);font-family:Inter,system-ui,sans-serif;-webkit-font-smoothing:antialiased}
.home *, .home *::before,.home *::after{animation:none!important}
.home .wrap{width:100%;max-width:1248px;margin-inline:auto;padding-inline:48px}
.home header{max-width:1440px;margin:auto;padding:28px 48px;border:0;gap:36px;align-items:center}
.home header .redline-logo{font-size:42px;letter-spacing:-.065em;font-weight:850;line-height:1}
.home header nav{gap:28px;margin-left:auto}.home header nav a{font-size:13px;font-weight:500}
.home .nav-cta{background:var(--ink);border-radius:7px;padding:14px 20px;font-size:13px;font-weight:600}
.home a:focus-visible,.home summary:focus-visible,.home input:focus-visible+label{outline:3px solid var(--red);outline-offset:5px}
.home .hero{padding-top:70px;padding-bottom:68px;text-align:center}
.home .eyebrow{font:600 11px/1.6 Inter,system-ui,sans-serif;letter-spacing:1.5px;color:var(--muted)}
.home .hero>.eyebrow{display:flex;justify-content:center;align-items:center;gap:9px}
.status-dot{width:7px;height:7px;flex:none;border-radius:50%;background:var(--red);box-shadow:0 0 0 4px #cc402b0b}
.home h1{width:auto;max-width:none;text-align:center;font-size:clamp(58px,6.5vw,92px);line-height:1.02;letter-spacing:-5px;font-weight:600;margin:26px 0 24px}
.home h1 em{font-style:normal;font-weight:600;color:var(--red)}
.home .hero-copy{font-size:18px;line-height:1.65;letter-spacing:-.2px;max-width:640px;margin:0 auto 28px;color:var(--muted)}
.hero-actions{display:flex;justify-content:center;gap:12px}.home .button{font-size:14px;font-weight:600;border-radius:7px;padding:17px 24px;min-height:54px;gap:25px;display:inline-flex;align-items:center;justify-content:center;text-decoration:none;transition:background .18s,box-shadow .18s}
.home .button.red{background:var(--red);color:white;box-shadow:0 4px 9px #cc402b18}.home .button.red:hover{background:#af3523;box-shadow:0 5px 15px #cc402b28}.home .button.secondary{background:#fff;border:1px solid var(--line);color:var(--ink);gap:10px}.home .button.secondary:hover{background:#f0efe9}.play-icon{font-size:22px;line-height:14px}
.trial-facts{font-size:12px;color:var(--muted);margin:17px 0 40px}.trial-facts span{padding:0 9px;color:#a9ada2}
.product-stage{padding:20px 25px 0;background:linear-gradient(130deg,#eee9e0,#eceee5);border:1px solid #e3e0d6;border-radius:16px;box-shadow:0 28px 70px -35px #353b3440;text-align:left}
.stage-heading,.stage-footer{display:flex;justify-content:space-between;align-items:center;gap:16px}.stage-heading{font-size:9px;font-weight:600;letter-spacing:1.1px;color:var(--muted);padding-bottom:18px}.stage-heading i{display:inline-block;background:var(--red);width:6px;height:6px;border-radius:50%;margin-right:8px}
.product-stage>a{display:block}.product-stage img{display:block;width:100%;height:auto;border:1px solid #d8dad0;border-radius:9px;box-shadow:0 3px 15px #25292312}
.stage-footer{font-size:12px;padding:17px 0;color:var(--muted)}.stage-footer a{color:var(--ink);text-decoration:none;font-weight:600}.stage-footer a span{margin-left:15px}.demo-note{font-size:11px;color:var(--muted);line-height:1.6;margin:18px auto 0;max-width:690px}
.home h2{font-size:clamp(32px,3.4vw,46px);font-weight:550;line-height:1.14;letter-spacing:-1.7px;margin:18px 0 22px}.home h3{font-weight:550;letter-spacing:-.6px}
.home .product-proof{border-top:1px solid var(--line);padding-block:80px;gap:90px;grid-template-columns:1fr 1fr}.home .product-proof p{font-size:15px;line-height:1.75;max-width:410px}.home .product-proof>div>a{font-size:13px;font-weight:600;text-decoration:none;display:inline-block;margin-top:8px}
.home .product-proof ol{list-style:none;counter-reset:review;margin:0;padding:0}.home .product-proof li{counter-increment:review;position:relative;padding:20px 0 20px 52px;border-bottom:1px solid var(--line);font-size:14px;color:var(--muted);line-height:1.7}.home .product-proof li:last-child{border:0}.home .product-proof li::before{content:'0' counter(review);position:absolute;left:0;top:22px;font-size:11px;color:var(--red);background:#cc402b09;border:1px solid #cc402b15;border-radius:50%;width:30px;height:30px;display:grid;place-items:center}.home .product-proof strong{display:block;font-size:17px;color:var(--ink);font-weight:600;margin-bottom:5px}
.home .product-fit{padding-block:70px;border-top:1px solid var(--line)}.home .fit-grid{gap:40px;margin:36px 0 28px}.home .fit-grid article{padding-top:22px;border-top:2px solid #daddd1}.home .fit-grid h3{font-size:19px;margin:0 0 14px}.home .fit-grid p{font-size:14px;line-height:1.8;margin:0}.home .product-fit>p:last-child{font-size:12px;color:var(--muted);margin:0}
.home .discipline{padding-block:30px 80px}.home .discipline .eyebrow-row{margin-bottom:24px}.home .edition{font:500 10px Inter,system-ui,sans-serif;color:var(--muted)}.home .features{gap:18px}.home .feature{border:1px solid var(--line);border-radius:12px;padding:30px;background:#f1f2ea}.home .architecture{background:#eeeee6}.home .engineering{background:#f4f2ed}.home .takeoff{background:#f1ede7}.home .feature-label{font:600 10px Inter,system-ui,sans-serif;letter-spacing:1px;color:var(--muted)}.home .feature h3{font-size:32px;line-height:1.15;margin:25px 0 16px}.home .feature p{font-size:14px;line-height:1.7}.home .quantity{margin-top:26px}.home .quantity i{transform:none}.home .quantity strong{font-size:36px}
.home .pricing{border-top:1px solid var(--line);padding-block:85px;gap:65px;grid-template-columns:.85fr 1.15fr;align-items:start}.home .pricing-intro{padding:12px 0 0}.home .pricing-intro>p:not(.eyebrow){font-size:15px;line-height:1.75}.home .pricing-note{color:var(--muted)}.home .pricing-links a{font-size:12px}.home .plans{gap:18px}.home .price-card{padding:32px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 8px 28px #25292305}.home .price-card:not(.free){border-top:3px solid var(--red)}.home .price-top h3{font-size:22px}.home .price-top>span{font-size:9px;letter-spacing:.8px;color:var(--red)}.home .price{font-size:60px;font-weight:550;letter-spacing:-3px}.home .price small{font-size:12px;letter-spacing:0;margin-left:8px}.home .price-card ul{font-size:14px;line-height:1.9}.home .price-card .button{display:flex;width:100%;justify-content:space-between}.home .micro{font-size:11px;line-height:1.7;color:var(--muted)}.home .free{background:#f1f2ed;box-shadow:none}.home .free .price{font-size:40px}.home .trial-note{font-size:12px;line-height:1.7}.home .billing label{border-radius:5px;font-size:12px}
.home .faq{padding-block:55px 90px;gap:80px;border-top:1px solid var(--line)}.home summary{font-size:15px;font-weight:500;padding:23px 0}.home .faq-list p{font-size:14px;line-height:1.8;color:var(--muted)}
.home .closing{padding:72px 0;background:#292f28;color:#faf9f6}.home .closing h2{font-size:clamp(42px,5vw,66px);letter-spacing:-2.5px;line-height:1.08;margin:22px 0 32px}.home .closing h2 span{color:#ec7964}.home .closing .eyebrow{color:#c2c9bd}.home .closing .button.light{background:#faf9f6;color:var(--ink)}.home .closing p:not(.eyebrow){font-size:15px;line-height:1.6;color:#c2c9bd}
.home .footer-top{padding-block:38px}.home footer .redline-logo{font-size:38px}.home .footer-top>a:last-child{font-size:13px}.home .footer-bottom{font-size:11px;line-height:1.9;padding-bottom:30px;gap:16px}.home .footer-bottom>span:last-child{display:flex;flex-wrap:wrap;gap:4px}
@media(min-width:1600px){.home .hero{padding-top:85px}}
@media(max-width:1000px){.home header{padding:24px 30px;gap:24px}.home header nav{gap:18px}.home header nav a{font-size:12px}.home header nav a[href='/whats-new']{display:none}.home .wrap{padding-inline:30px}.home .product-proof,.home .pricing,.home .faq{gap:40px}.home h1{font-size:72px}.home .fit-grid{gap:24px}}
@media(max-width:760px){.home header{padding:22px 24px;justify-content:space-between}.home header .redline-logo{font-size:36px}.home header nav{display:none}.home .nav-cta{padding:12px 16px;font-size:12px}.home .wrap{padding-inline:24px}.home .hero{padding-top:44px;padding-bottom:45px}.home .hero>.eyebrow{font-size:9px;letter-spacing:.9px;max-width:300px;margin:auto}.home h1{font-size:clamp(45px,9vw,66px);letter-spacing:-2.5px;line-height:1.07;margin:24px 0 20px}.home .hero-copy{font-size:16px;line-height:1.7;margin-bottom:24px}.hero-actions{gap:9px}.home .hero-actions .button{font-size:12px;padding:14px 15px;gap:10px;min-height:49px}.trial-facts{font-size:10px;margin:16px 0 28px}.trial-facts span{padding:0 4px}.product-stage{padding:12px 10px 0;border-radius:10px;margin-inline:-10px}.stage-heading{font-size:8px;letter-spacing:.4px;padding-bottom:10px}.stage-heading>span:last-child{display:none}.stage-footer{font-size:10px;padding:12px 0;gap:6px}.stage-footer>span{display:none}.stage-footer a{margin-left:auto}.demo-note{font-size:10px;max-width:310px}.home .product-proof{padding-block:45px;grid-template-columns:1fr;gap:20px}.home h2{font-size:32px;letter-spacing:-1.2px}.home .product-fit{padding-block:45px}.home .fit-grid{grid-template-columns:1fr;gap:25px;margin:26px 0}.home .fit-grid article{padding-top:18px}.home .discipline{padding-block:10px 45px}.home .features{grid-template-columns:1fr}.home .feature{padding:26px;min-height:0}.home .feature h3{font-size:30px}.home .architecture svg{max-height:180px;margin-top:10px}.home .engineering svg{max-height:80px;margin-top:20px}.home .pricing{padding-block:45px;grid-template-columns:1fr;gap:28px}.home .price-card{padding:26px}.home .faq{padding-block:45px;grid-template-columns:1fr;gap:20px}.home .closing{padding-block:45px}.home .closing h2{font-size:46px}.home .closing .button{margin-top:24px}.home .footer-top{gap:24px}.home footer .redline-logo{font-size:34px}.home .footer-bottom{font-size:10px}.home .footer-top>a:last-child{font-size:12px}}
@media(max-width:360px){.hero-actions{flex-direction:column}.home .hero-actions .button{width:100%}.home h1{font-size:43px}.trial-facts{font-size:9px}}

/* Second pass: shared alignment, readable details and direct plan comparison. */
.home header{max-width:1248px;background:transparent;padding-block:25px;gap:25px}
.home header .redline-logo{font-size:40px;letter-spacing:-.055em}
.home header nav{gap:24px}.home header nav a{font-size:14px}
.home .hero{padding-top:48px}.home h1{font-size:clamp(52px,5.7vw,82px);letter-spacing:-.055em;line-height:1.07;text-wrap:balance}
.home .hero-copy{max-width:690px;text-wrap:pretty}.home .hero-actions .button{min-width:190px;font-size:15px}
.home .trial-facts{font-size:13px;margin-bottom:32px}.home .demo-note{font-size:12px;max-width:760px}
.home .stage-heading{font-size:10px}.home .stage-footer{font-size:13px}.home .stage-footer a{padding-block:5px}
.home .product-proof p,.home .product-proof li,.home .fit-grid p,.home .feature p,.home .faq-list p{font-size:16px;line-height:1.75}
.home .product-proof>div>a{font-size:14px}.home .feature-label,.home .edition{font-size:11px}
.home .pricing{grid-template-columns:1fr;gap:32px}.home .pricing-intro{display:grid;grid-template-columns:1fr 1fr;column-gap:70px;padding:0;align-items:start}
.home .pricing-intro>.eyebrow{grid-column:1/-1;margin:0}.home .pricing-intro h2{grid-row:2/5;margin-bottom:0}
.home .pricing-intro>p:not(.eyebrow){grid-column:2;max-width:none;margin:16px 0 0;font-size:16px}
.home .pricing-intro .pricing-note{margin-top:12px!important;font-size:13px!important}.home .pricing-links{display:flex;flex-wrap:wrap;gap:8px 18px}.home .pricing-links a{font-size:12px}
.home .plans{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:stretch}.home .price-card{display:flex;flex-direction:column;padding:34px}.home .price-card .button{margin-top:auto}.home .price-card .micro{font-size:12px}.home .price-card ul{font-size:15px;margin-bottom:26px}.home .free .price{font-size:60px;margin-top:30px}.home .free .trial-note{margin-top:auto;font-size:13px}.home .price-top>span{font-size:10px}
.home .product-fit>p:last-child{font-size:13px}.home footer .footer-bottom{font-size:12px}.home .footer-bottom>span:last-child{gap:6px}.home .footer-bottom a{display:inline-block;padding-block:5px}.home .footer-top>a:last-child{font-size:14px}
.home .mobile-menu{display:none}
@media(max-width:1000px){.home header{gap:18px}.home header>nav{gap:16px}.home header>nav a{font-size:13px}.home .pricing-intro{gap:0 35px}}
@media(max-width:760px){
  .home header{position:relative;gap:12px;flex-wrap:wrap;padding:20px 24px}.home header .redline-logo{font-size:34px;margin-right:auto}.home .nav-cta{font-size:12px;padding:13px 14px}
  .home .mobile-menu{display:block;position:static}.home .mobile-menu>summary{list-style:none;border:1px solid var(--line);border-radius:7px;padding:12px;font-size:12px;line-height:18px;min-height:44px;cursor:pointer}.home .mobile-menu>summary::-webkit-details-marker{display:none}.home .mobile-menu>summary span{margin-left:5px}
  .home .mobile-menu[open]>nav{display:flex;position:absolute;z-index:5;left:24px;right:24px;top:calc(100% - 8px);margin:0;padding:12px;background:var(--paper);border:1px solid var(--line);border-radius:9px;box-shadow:0 12px 25px #25292312;flex-direction:column;gap:0;align-items:stretch}.home .mobile-menu nav a{display:block!important;padding:12px;font-size:15px;min-height:44px}
  .home .hero{padding-top:32px}.home h1{font-size:clamp(42px,8.7vw,62px);letter-spacing:-.055em;line-height:1.1}.home .hero>.eyebrow{font-size:10px;max-width:330px}.home .hero-actions .button{min-width:0;font-size:13px;padding:16px 14px}.home .trial-facts{font-size:11px;line-height:1.6;margin-bottom:26px}.home .demo-note{font-size:12px}.home .stage-heading{font-size:9px}.home .stage-footer{font-size:12px}
  .home .pricing-intro{display:block}.home .pricing-intro>p:not(.eyebrow){font-size:16px}.home .pricing-intro h2{margin-bottom:20px}.home .plans{grid-template-columns:1fr}.home .price-card{padding:26px}.home .price-card .button{margin-top:0}.home .free .price{font-size:48px;margin-top:22px}.home .footer-bottom{font-size:12px}.home .footer-top>a:last-child{font-size:13px}
}
@media(max-width:380px){.home header{padding-inline:18px;gap:8px}.home header .redline-logo{font-size:30px}.home .nav-cta{padding-inline:10px}.home .mobile-menu>summary{padding-inline:9px}.home h1{font-size:40px}}
@media(max-width:760px){.home header{display:grid;grid-template-columns:1fr auto auto;gap:10px}.home .mobile-menu{width:auto;min-width:0;margin:0}.home .mobile-menu>summary{display:flex;align-items:center;gap:5px;padding:11px 9px}.home .mobile-menu>summary span{font-size:12px;width:auto;margin:0}.home header .nav-cta{white-space:nowrap}.home header .redline-logo{font-size:32px}}
@media(max-width:360px){.home header{gap:7px}.home header .redline-logo{font-size:28px}.home .nav-cta{font-size:11px}.home .mobile-menu>summary{font-size:11px;padding-inline:8px}}
.apartment-showcase{text-align:left;margin-top:32px}.apartment-showcase .demo{border-radius:12px;box-shadow:0 20px 50px -30px #25292340;overflow:hidden}.apartment-showcase .demo-bar{background:#252d24;padding:20px;color:#f4f2ec}.apartment-showcase .file{color:#f4f2ec}.apartment-showcase .file small{color:#c2c9bd}.apartment-showcase .inspector{width:210px;padding:24px}.home .apartment-showcase .inspector .panel-heading{font-size:27px;line-height:1.1;letter-spacing:-1px}.home .apartment-showcase .inspector p:not(.panel-heading){font-size:13px;line-height:1.6}.apartment-showcase .demo-body{min-height:0}.home .demo-note a{color:var(--red);display:inline-block;padding:6px}.apartment-showcase .modes label{min-height:44px;display:inline-flex;align-items:center}
@media(max-width:760px){.apartment-showcase{margin-inline:-12px}.apartment-showcase .demo-bar{padding:14px}.apartment-showcase .inspector{width:100%;padding:18px}.apartment-showcase .demo-body{display:block}.apartment-showcase .plan{width:100%;aspect-ratio:1000/580}.home .apartment-showcase .inspector .panel-heading{font-size:22px;margin-bottom:8px}.apartment-showcase .file{font-size:12px}.apartment-showcase .file small{font-size:11px}.apartment-showcase .demo-status{font-size:8px}}

/* Hero backdrop. A faint drafting grid drifting slowly, and two review markups drawing themselves on the empty
   paper beside the headline: a revision cloud with its callout, and a dimension and a measured area traced by a
   cursor. Decorative (aria-hidden), no script, drawn only where there is room, and still for anyone who asks for
   reduced motion.
   Cost is kept low: the grid, each drawing's fade and the cursor move are opacity and transform on ordinary
   layers, which the compositor animates off the main thread; only the strokes being drawn and small fades inside
   the drawings are SVG work, and the whole backdrop stops rendering once it is scrolled out of view.
   The public pages switch animation off wholesale; these rules name the backdrop's own parts with a stronger
   selector, so nothing else on the page starts moving. */
.home .hero{position:relative;isolation:isolate}
.hero-backdrop{position:absolute;inset:0;z-index:-1;pointer-events:none;overflow:hidden}
.bd-grid{position:absolute;inset:0;-webkit-mask-image:linear-gradient(#0000,#000 150px),radial-gradient(ellipse 44% 40% at 50% 30%,#000 20%,#0000 100%);-webkit-mask-composite:source-in;mask-image:linear-gradient(#0000,#000 150px),radial-gradient(ellipse 44% 40% at 50% 30%,#000 20%,#0000 100%);mask-composite:intersect}
.bd-grid::before{content:"";position:absolute;inset:-120px 0 0 -120px;background-image:linear-gradient(#272c2415 1px,#0000 1px),linear-gradient(90deg,#272c2415 1px,#0000 1px),linear-gradient(#272c2409 1px,#0000 1px),linear-gradient(90deg,#272c2409 1px,#0000 1px);background-size:120px 120px,120px 120px,24px 24px,24px 24px;will-change:transform}
.home .bd-grid::before{animation:bd-pan 60s linear infinite!important}
@keyframes bd-pan{to{transform:translate3d(120px,120px,0)}}
.bd-left,.bd-right-wrap{position:absolute;width:clamp(180px,15vw,232px);aspect-ratio:250/300;will-change:opacity}
.bd-left{left:36px;top:118px;height:auto;overflow:visible;font-family:inherit}
.bd-right-wrap{right:36px;top:128px}
.bd-right{display:block;width:100%;height:100%;overflow:visible;font-family:inherit}
.bd-cursor{position:absolute;inset:0;transform:translate(13.6%,39.3%);opacity:0;will-change:transform,opacity}
.bd-cursor svg{position:absolute;left:-13px;top:-13px;width:26px;height:26px}
@media(max-width:1279px){.bd-left,.bd-right-wrap{display:none}}
@media(max-width:760px){.bd-grid{-webkit-mask-image:linear-gradient(#0000,#000 90px),radial-gradient(ellipse 80% 36% at 50% 24%,#000 15%,#0000 100%);mask-image:linear-gradient(#0000,#000 90px),radial-gradient(ellipse 80% 36% at 50% 24%,#000 15%,#0000 100%)}}
.bd-cloud,.bd-leader,.bd-dimline,.bd-area{stroke-dasharray:100}
.home .bd-left{animation:bd-show 20s cubic-bezier(.45,0,.25,1) 0s 1.82 both!important}
.home .bd-right-wrap{animation:bd-show 20s cubic-bezier(.45,0,.25,1) 5s 1.82 both!important}
@keyframes bd-show{0%{opacity:0}4%,82%{opacity:1}90%,100%{opacity:0}}
.home .bd-cloud{animation:bd-cloud 20s cubic-bezier(.45,0,.25,1) 0s 1.82 both!important}
@keyframes bd-cloud{0%,5%{stroke-dashoffset:100}17%,100%{stroke-dashoffset:0}}
.home .bd-pop{animation:bd-pop 20s cubic-bezier(.45,0,.25,1) 0s 1.82 both!important}
@keyframes bd-pop{0%,17%{opacity:0}20%,100%{opacity:1}}
.home .bd-leader{animation:bd-leader 20s cubic-bezier(.45,0,.25,1) 0s 1.82 both!important}
@keyframes bd-leader{0%,22%{stroke-dashoffset:100}27%,100%{stroke-dashoffset:0}}
.home .bd-note{animation:bd-note 20s cubic-bezier(.45,0,.25,1) 0s 1.82 both!important}
@keyframes bd-note{0%,26%{opacity:0}30%,100%{opacity:1}}
.home .bd-dimline{animation:bd-dimline 20s cubic-bezier(.45,0,.25,1) 5s 1.82 both!important}
@keyframes bd-dimline{0%,3%{stroke-dashoffset:100}11%,100%{stroke-dashoffset:0}}
.home .bd-ticks{animation:bd-ticks 20s cubic-bezier(.45,0,.25,1) 5s 1.82 both!important}
@keyframes bd-ticks{0%,10%{opacity:0}12%,100%{opacity:1}}
.home .bd-dimlabel{animation:bd-dimlabel 20s cubic-bezier(.45,0,.25,1) 5s 1.82 both!important}
@keyframes bd-dimlabel{0%,11%{opacity:0}14%,100%{opacity:1}}
.home .bd-area{animation:bd-area 20s linear 5s 1.82 both!important}
@keyframes bd-area{0%,18%{stroke-dashoffset:100}36%,100%{stroke-dashoffset:0}}
.home .bd-cursor{animation:bd-cursor 20s linear 5s 1.82 both!important}
@keyframes bd-cursor{0%,15%{opacity:0;transform:translate(13.6%,39.3%)}18%{transform:translate(13.6%,39.3%);opacity:1}23.2%{transform:translate(85.6%,39.3%);opacity:1}27%{transform:translate(85.6%,83.3%);opacity:1}29.5%{transform:translate(51.2%,83.3%);opacity:1}30.8%{transform:translate(51.2%,68%);opacity:1}33.5%{transform:translate(13.6%,68%);opacity:1}36%{transform:translate(13.6%,39.3%);opacity:1}40%,100%{opacity:0;transform:translate(13.6%,39.3%)}}
.home .bd-fill{animation:bd-fill 20s cubic-bezier(.45,0,.25,1) 5s 1.82 both!important}
@keyframes bd-fill{0%,36%{opacity:0}42%,100%{opacity:1}}
.home .bd-arealabel{animation:bd-arealabel 20s cubic-bezier(.45,0,.25,1) 5s 1.82 both!important}
@keyframes bd-arealabel{0%,40%{opacity:0}44%,100%{opacity:1}}
@media(prefers-reduced-motion:reduce){.home .hero-backdrop,.home .hero-backdrop *,.home .bd-grid::before{animation:none!important}.home .bd-left,.home .bd-right-wrap{opacity:1}}
/* The specification block, set the way the people reading it read one every working day: a schedule on a
   sheet, with a title block, a numbered row per line and hairline rules. Two columns, because twelve rows
   down one column was a quarter of the whole page and read like an appendix rather than a page. */
.home .specs{padding:100px 0 30px}
.home .specs-head{max-width:70ch}
.home .specs .eyebrow{margin-bottom:20px}
.home .specs h2{font-size:clamp(32px,4.6vw,56px);line-height:1.02;letter-spacing:-2.2px;margin:0 0 24px;font-weight:500}
.home h2 em{font-style:normal;color:var(--muted)}
.home .specs-lede{font-size:17px;line-height:1.75;color:var(--muted);max-width:66ch;margin:0 0 34px}
.home .specs-note{font-size:13px;line-height:1.7;color:var(--muted);max-width:74ch;margin:22px 0 0}
.home .compare-head{margin-top:88px}
.home .home-guides{padding-block:64px 24px;border-top:1px solid var(--line);display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:64px;align-items:start}
.home .home-guides h2{margin:0}
.home .home-guides ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:0 36px}
.home .home-guides li{border-top:1px solid var(--line)}
.home .home-guides li:last-child:nth-child(odd){grid-column:1/-1}
.home .home-guides a{display:block;padding:18px 0 20px;color:inherit;text-decoration:none}
.home .home-guides strong{display:block;font-size:17px;font-weight:600;letter-spacing:-.3px;margin-bottom:5px}
.home .home-guides span{display:block;font-size:14px;line-height:1.7;color:var(--muted)}
.home .home-guides a:hover strong,.home .home-guides a:focus-visible strong{color:var(--red)}
@media(max-width:1000px){.home .home-guides{grid-template-columns:1fr;gap:28px}}
@media(max-width:760px){.home .home-guides{padding-block:44px 8px}.home .home-guides ul{grid-template-columns:1fr}}
.home .specs h3{font-size:clamp(23px,2.7vw,32px);letter-spacing:-1.1px;margin:0 0 16px;font-weight:500;scroll-margin-top:90px}

/* The sheet. */
.home .schedule{border:1px solid var(--line);border-radius:10px;background:#fff;overflow:hidden;
  box-shadow:0 1px 2px #25292308,0 18px 40px #2529230a}
.home .sched-title{display:flex;align-items:center;gap:18px;padding:14px 22px;background:#f2f1ea;
  border-bottom:1px solid var(--line);font:10px/1.6 'Courier New',monospace;letter-spacing:1.6px;color:#5d6257}
.home .sched-title span:nth-child(2){flex:1;text-align:center;color:#a8301d;font-weight:700}
.home .sched-title span:last-child{color:#8b9081}
/* Down the first column, then down the second: a schedule is read in order, not across a gap. */
.home .sched-body{margin:0;padding:6px 22px 10px;columns:2;column-gap:56px;column-rule:1px solid var(--line)}
.home .sched-row{break-inside:avoid;display:grid;grid-template-columns:30px 1fr;gap:0 14px;
  padding:15px 0;border-bottom:1px solid var(--line)}
.home .sched-row:last-child,.home .sched-row:nth-child(6){border-bottom:0}
.home .sched-row b{grid-row:span 2;font:10px/2.1 'Courier New',monospace;letter-spacing:1px;color:#6b7063;font-weight:400}
.home .sched-row dt{font-size:14px;font-weight:600;letter-spacing:-.1px;margin-bottom:5px}
.home .sched-row dd{margin:0;font-size:14px;line-height:1.7;color:var(--muted)}

/* The comparison. Ours is the raised column; the alternatives are stated plainly beside it, not diminished. */
.home .matrix{max-width:100%;overflow:auto;border:1px solid var(--line);border-radius:10px;background:#fff}
.home .matrix table{width:100%;min-width:720px;border-collapse:collapse;font-size:14px;line-height:1.65;margin:0}
.home .matrix caption{text-align:left;font-size:13px;color:var(--muted);padding:18px 22px 0}
.home .matrix th,.home .matrix td{text-align:left;vertical-align:top;padding:15px 18px;border-bottom:1px solid var(--line)}
.home .matrix thead th{font:10px/1.7 'Courier New',monospace;letter-spacing:1.5px;color:#5d6257;text-transform:uppercase;
  border-bottom:1px solid #cdd2c2;white-space:nowrap}
.home .matrix th[scope=row]{width:21%;font-weight:600;color:var(--ink);padding-left:22px}
.home .matrix tbody tr:last-child th,.home .matrix tbody tr:last-child td{border-bottom:0}
.home .matrix .ours{background:#fbfaf5;box-shadow:inset 3px 0 0 var(--red),inset -1px 0 0 var(--line)}
.home .matrix thead .ours{color:#a8301d;font-weight:700;background:#f7f4ec;box-shadow:inset 3px 0 0 var(--red),inset -1px 0 0 var(--line)}
.home .matrix td.ours{color:var(--ink)}
.home .matrix:focus-visible{outline:2px solid var(--red);outline-offset:4px}

@media(max-width:900px){
 .home .sched-body{columns:1;column-rule:0}
 .home .sched-row:nth-child(6){border-bottom:1px solid var(--line)}
 .home .sched-row:last-child{border-bottom:0}
}
@media(max-width:760px){
 .home .specs{padding:64px 0 20px}
 .home .compare-head{margin-top:64px}
 .home .sched-title{padding:13px 16px;gap:10px;font-size:9px;letter-spacing:1.1px}
 .home .sched-body{padding:4px 16px 8px}
 .home .sched-row{grid-template-columns:24px 1fr;gap:0 10px;padding:14px 0}
 .home .matrix th[scope=row]{padding-left:16px}
}
/* Notes under the schedule, the way a note sits under a drawing: inside the sheet, below the rules, set
   smaller than the schedule itself so it reads as an aside rather than another table. */
.home .sched-notes{border-top:1px solid var(--line);background:#fbfaf6;padding:26px 22px 22px;
  display:grid;grid-template-columns:1fr 1fr;gap:26px 56px}
.home .sched-notes h3{font-size:14px;font-weight:600;letter-spacing:-.1px;margin:0 0 7px}
.home .sched-notes p{font-size:14px;line-height:1.7;color:var(--muted);margin:0}
.home .sched-privacy{grid-column:1/-1;padding-top:18px;border-top:1px solid var(--line);font-size:13px!important}
@media(max-width:760px){.home .sched-notes{grid-template-columns:1fr;gap:22px;padding:22px 16px 20px}}
/* The questions, numbered the way the schedule is. A list of eleven identical rows gives a reader no sense
   of how far through they are, and the page had already established that a row of facts carries an index. */
.home .faq-list{counter-reset:q}
.home .faq-list details{counter-increment:q;position:relative}
.home .faq-list summary{display:grid;grid-template-columns:34px 1fr auto;align-items:baseline;gap:0 4px}
.home .faq-list summary::before{content:counter(q,decimal-leading-zero);
  font:10px/2 'Courier New',monospace;letter-spacing:1px;color:#6b7063}
.home .faq-list details p{padding-left:34px;margin-top:-4px}
.home .faq-list details[open] summary{color:var(--red)}
.home .faq-list details[open] summary::before{color:var(--red)}
/* A question reads as something you can open, and says so on the way in. */
.home .faq-list summary:hover{color:var(--red)}
.home .faq-list summary span{transition:transform .25s cubic-bezier(.2,.7,.2,1),color .2s}
@media(max-width:760px){
 .home .faq-list summary{grid-template-columns:26px 1fr auto}
 .home .faq-list details p{padding-left:26px}
}
/* Under the FAQ heading the column ran two thirds empty while eleven questions filled the one beside it.
   A reader this far down is deciding, so the space holds the answer a list cannot give: try it. */
.home .faq-aside{margin-top:38px;max-width:34ch;border-top:1px solid var(--line);padding-top:26px}
.home .faq-aside p{font-size:15px;line-height:1.75;color:var(--muted);margin:0 0 18px}
.home .faq-aside strong{color:var(--ink);font-weight:600}
.home .faq-try{display:inline-flex;align-items:center;gap:10px;padding:13px 20px;border-radius:8px;
  background:var(--ink);color:var(--paper);font-size:14px;font-weight:600;text-decoration:none;min-height:46px}
.home .faq-try:hover{background:var(--red)}
.home .faq-try span{font-size:16px;font-weight:400}
.home .faq-ask{font-size:13px!important;margin-bottom:0}
.home .faq-ask a{color:var(--red);text-decoration:underline;text-underline-offset:3px}
@media(max-width:1000px){.home .faq-aside{max-width:none}}
@media(max-width:760px){.home .faq-aside{margin-top:24px;padding-top:20px}}

/* overflow:hidden on a card makes it a scroll container, and a view() timeline inside one is measured
   against a box that never scrolls — which left the illustrations frozen part-drawn. clip paints the same
   and creates no scroll container, so what is inside a card is timed against the page. */
.home .feature{overflow:clip}

/* A task choice leads to a matching first session; it never selects a paid plan. */
.home .plan-finder{min-width:0;margin:0;padding:26px;border:1px solid var(--line);border-radius:12px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;background:#f1f2ed;position:relative}
.home .plan-finder legend{padding:0 8px;font-size:21px;line-height:1.3;font-weight:600;letter-spacing:-.5px}
.home .plan-finder>p{grid-column:1/-1;margin:0 0 8px;color:var(--muted);font-size:14px;line-height:1.7}
.home .plan-finder>input{position:absolute;opacity:0;width:1px;height:1px}
.home .plan-finder>label{display:flex;gap:10px;align-items:center;border:1px solid #c9cec1;border-radius:7px;min-height:52px;padding:12px 16px;font-size:14px;font-weight:550;cursor:pointer;background:#faf9f6}
.home .plan-finder>label span{color:var(--muted);font:11px/1.5 monospace}
.home .plan-finder>input:checked+label{background:var(--ink);border-color:var(--ink);color:#fff}
.home .plan-finder>input:checked+label span{color:#e0e5d8}
.home .plan-finder>input:focus-visible+label{outline:3px solid var(--red);outline-offset:4px}
.home .plan-match{display:none;grid-column:1/-1;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:36px;padding:18px 0 0}
.home #start-review:checked~.match-review,.home #start-takeoff:checked~.match-takeoff,.home #start-edit:checked~.match-edit{display:grid}
.home .plan-match .match-tag{margin:0;color:#56634e;font:10px/1.7 monospace;letter-spacing:1px}
.home .plan-match h3{font-size:22px;letter-spacing:-.4px;font-weight:550;margin:9px 0}
.home .plan-match p:not(.match-tag){max-width:680px;margin:0;color:var(--muted);font-size:14px;line-height:1.7}
.home .plan-match .button{white-space:nowrap;font-size:13px;border:1px solid #b9c2af;background:#fff}
.home .free .button.secondary{border:1px solid #b9c2af;background:#faf9f6}
.home .trial-explainer{border:1px solid var(--line);border-radius:10px;padding-inline:26px}
.home .trial-explainer summary{font-size:16px;font-weight:550;min-height:64px;padding-block:18px}
.home .trial-explainer-body{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;padding:0 0 24px}
.home .trial-explainer-body p{margin:0;font-size:14px;line-height:1.75;color:var(--muted)}
.home .trial-explainer-body strong{display:block;color:var(--ink);margin-bottom:5px;font-weight:600}
@media(max-width:760px){.home .plan-finder{padding:20px;gap:10px;grid-template-columns:1fr}.home .plan-finder legend{font-size:20px}.home .plan-finder>label{min-height:48px}.home .plan-match{grid-template-columns:1fr;gap:18px;padding-top:14px}.home .plan-match .button{white-space:normal}.home .trial-explainer{padding-inline:20px}.home .trial-explainer-body{grid-template-columns:1fr;gap:18px}}

.home .plan-capacity{font-size:13px;line-height:1.75;color:var(--muted);margin:0}
/* The sheet beside "How drawing review works": one drawing, reviewed in the three steps listed next to it. */
.home .product-proof{align-items:start}
.home .proof-sheet{margin:0;position:sticky;top:96px}
.home .proof-sheet figcaption{margin-top:12px;font-size:12px;color:var(--muted)}
.home .sheet-plate{position:relative;isolation:isolate}
.home .sheet-plate::before{content:"";position:absolute;z-index:-1;inset:1.395% 1.071%;border-radius:6px;box-shadow:0 24px 30px rgba(37,41,35,.13),0 2px 3px rgba(37,41,35,.06);pointer-events:none}
.home .sheet-art{display:block;width:100%;height:auto}
.home .sheet-art text{font-family:inherit}
.home .sheet-art .paper{fill:#fffdf8;stroke:#e3e4dc}
.home .sheet-art .frame{fill:none;stroke:#252923;stroke-width:.8}
.home .sheet-art .grid line{stroke:#c9ccc2;stroke-width:.6;stroke-dasharray:6 4}
.home .sheet-art .grid circle{fill:#fffdf8;stroke:#252923;stroke-width:.8}
.home .sheet-art .grid text{font-size:10px;text-anchor:middle;fill:#252923}
.home .sheet-art .furniture *{fill:none;stroke:#d3d6cc;stroke-width:1}
.home .sheet-art .walls path{fill:none;stroke:#252923;stroke-width:6;stroke-linecap:butt;stroke-linejoin:miter}
.home .sheet-art .windows rect{fill:#fffdf8;stroke:#252923;stroke-width:.8}
.home .sheet-art .doors path{fill:none;stroke:#252923;stroke-width:1.2}
.home .sheet-art .doors .swing{stroke-width:.8;stroke-dasharray:3 3}
.home .sheet-art .rooms text{font-size:9px;letter-spacing:.14em;fill:#656961;text-anchor:middle}
.home .sheet-art .ext,.home .sheet-art .dim,.home .sheet-art .tick,.home .sheet-art .lead{fill:none;stroke:#cc402b;stroke-width:1}
.home .sheet-art .tick{stroke-width:1.5}
.home .sheet-art .dimbg{fill:#fffdf8}
.home .sheet-art .dimtext{font-size:10.5px;font-weight:600;fill:#cc402b;text-anchor:middle;font-variant-numeric:tabular-nums}
.home .sheet-art .cloud{fill:none;stroke:#cc402b;stroke-width:1.8;stroke-linejoin:round}
.home .sheet-art .dot,.home .sheet-art .callout,.home .sheet-art .areabg{fill:#cc402b}
.home .sheet-art .callouttext,.home .sheet-art .areatext{fill:#fff;text-anchor:middle;font-weight:600}
.home .sheet-art .callouttext{font-size:9.5px;letter-spacing:.08em}
.home .sheet-art .areatext{font-size:11px;font-weight:700;font-variant-numeric:tabular-nums}
.home .sheet-art .hatch{stroke:#cc402b;stroke-width:1;opacity:.3}
.home .sheet-art .area .fill{fill:url(#sheet-hatch)}
.home .sheet-art .area .flood{fill:#cc402b;fill-opacity:.07}
.home .sheet-art .edge{fill:none;stroke:#cc402b;stroke-width:1.2;stroke-linejoin:round}
.home .sheet-art .stamp rect{fill:rgba(255,253,248,.92);stroke:#cc402b;stroke-width:2}
.home .sheet-art .stamp .inner{fill:none;stroke-width:1}
.home .sheet-art .stamp text{font-size:15px;font-weight:800;letter-spacing:.18em;fill:#cc402b;text-anchor:middle}
.home .sheet-art .chip{fill:#252923}
.home .sheet-art .chiptext{font-size:9.5px;font-weight:600;fill:#fff;text-anchor:middle;letter-spacing:.06em}
.home .sheet-art .titleblock line{stroke:#252923;stroke-width:.8}
.home .sheet-art .tb-strong{font-size:10px;font-weight:600;fill:#252923;letter-spacing:.04em}
.home .sheet-art .tb-label{font-size:8px;fill:#656961;letter-spacing:.14em}
.home .sheet-art .tb-notset{font-size:8.5px;font-weight:700;fill:#cc402b;letter-spacing:.14em;opacity:0}
.home .sheet-art .count circle{fill:#cc402b}
.home .sheet-art .count text{font-size:9px;font-weight:700;fill:#fff;text-anchor:middle}
.home .sheet-art .cursor,.home .sheet-art .pulse{opacity:0}
.home .sheet-art .cursor *{fill:none;stroke:#252923;stroke-width:1.4}
.home .sheet-art .pulse{fill:none;stroke:#cc402b;stroke-width:1.5}
.home .sheet-list{position:relative;margin:14px 6px 0;border:1px solid var(--line);border-radius:8px;background:#fff;overflow:hidden}
.home .sheet-empty{position:absolute;inset:34px 0 0;display:grid;place-items:center;font-size:13px;color:#767a70;opacity:0;pointer-events:none}
.home .sheet-list-head{display:flex;justify-content:space-between;gap:12px;padding:8px 14px;background:#f2f1ea;border-bottom:1px solid var(--line);font:600 10px/1.6 Inter,system-ui,sans-serif;letter-spacing:1.4px;color:#5d6257}
.home .sheet-list-count{color:#a8301d;font-variant-numeric:tabular-nums}
.home .sheet-row{display:grid;grid-template-columns:78px minmax(0,1fr) auto;gap:12px;align-items:center;padding:7px 14px;border-top:1px solid #efeee7;font-size:13px;line-height:1.35}
.home .sheet-list-head+.sheet-row{border-top:0}
.home .sheet-kind{display:inline-flex;align-items:center;gap:8px;font-weight:600;color:var(--ink)}
.home .sheet-kind::before{content:"";flex:none;width:8px;height:8px;border-radius:2px;background:#cc402b}
.home .sheet-kind.is-cloud::before{background:none;border:1.5px solid #cc402b;border-radius:50%;width:6px;height:6px}
.home .sheet-kind.is-area::before{background:#f6dcd6;border:1px solid #cc402b;width:6px;height:6px}
.home .sheet-kind.is-count::before{border-radius:50%}
.home .sheet-subject{min-width:0;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.home .sheet-value{font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap}
@media(min-width:761px){.home .product-proof li{padding-block:30px}}
@media(max-width:760px){.home .proof-sheet{position:static}}
@media(min-width:1001px){.home .product-proof{grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr)}}
/* The header stays on screen (sticky, 98px tall), so the pinned sheet sits just below it at every window height. On a short
   window the sheet narrows, keeping its proportions, until it and its markups list fit under the header: 300px is the
   108px top, the list (180px with its margin) and a 12px foot; 1.3 is the sheet's width over its height. */
@media(min-width:761px){.home .proof-sheet{top:108px;width:100%;max-width:max(340px,calc((100vh - 300px) * 1.3));justify-self:end}}
@media(max-width:760px){.home .sheet-list{margin-inline:0}.home .sheet-row{grid-template-columns:70px minmax(0,1fr) auto;padding-inline:12px}}
/* Inter sets a little wider than the system font it replaced; on a phone the two hero buttons stack, one full-width line each, rather than wrapping their labels. */
@media(max-width:430px){.home .hero-actions{display:grid;grid-template-columns:1fr;gap:10px}.home .hero-actions .button{width:100%;white-space:nowrap;justify-content:center}}
/* The editor itself, right after the illustrative workspace: one screenshot of a calibrated, marked-up sheet, then the
   calibrate, measure, export sequence beside the three steps it shows. */
.home .real-editor{border-top:1px solid var(--line);padding-block:48px 72px}
.home .hero-showcase{border-top:1px solid var(--line);padding-block:72px 24px;text-align:center}
.home .real-editor h2{margin:18px 0 18px}
.home .real-lede{font-size:15px;line-height:1.75;color:var(--muted);max-width:660px;margin:0 0 36px}
.home .real-lede a{font-weight:600;color:var(--ink);text-decoration:none;white-space:nowrap}
.home .real-shot{margin:0}
.home .real-shot img{display:block;width:100%;height:auto;border:1px solid var(--line);border-radius:10px;background:#fff;box-shadow:0 18px 40px #272c2414}
.home .real-shot figcaption,.home .media-loop figcaption{font-size:12px;line-height:1.7;color:var(--muted);margin-top:12px}
.home .real-loop{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:56px;align-items:start;margin-top:72px}
.home .loop-steps{list-style:none;counter-reset:loop;margin:0;padding:0}
.home .loop-steps li{counter-increment:loop;position:relative;padding:20px 0 20px 52px;border-bottom:1px solid var(--line);font-size:15px;line-height:1.7;color:var(--muted)}
.home .loop-steps li:first-child{padding-top:0}.home .loop-steps li:first-child::before{top:2px}
.home .loop-steps li:last-child{border:0}
.home .loop-steps li::before{content:'0' counter(loop);position:absolute;left:0;top:22px;font-size:11px;color:var(--red);background:#cc402b09;border:1px solid #cc402b15;border-radius:50%;width:30px;height:30px;display:grid;place-items:center}
.home .loop-steps strong{display:block;font-size:17px;color:var(--ink);font-weight:600;margin-bottom:5px}
.home .loop-steps a{color:var(--ink);font-weight:600}
@media(max-width:1000px){.home .real-loop{gap:32px}}
@media(max-width:760px){.home .real-editor{padding-block:36px 48px}.home .real-loop{grid-template-columns:1fr;margin-top:48px;gap:28px}.home .real-shot img{border-radius:8px;box-shadow:none}.home .loop-steps li{font-size:16px}}
/* Three plans, 4 Oct 2026: Free, Plus and Pro side by side under one monthly/yearly bar (site.css switches the prices).
   Pro keeps the one red edge; Plus is edged in ink. With Plus off (plan-sale.mjs) the row closes to two. */
.home .pricing>.billing{margin:0;width:100%;max-width:340px}
.home .plans{grid-template-columns:repeat(3,minmax(0,1fr))}
.plus-off .home .plans{grid-template-columns:repeat(2,minmax(0,1fr))}
.home .price-card.plus{border-top-color:var(--ink)}
@media(max-width:1000px){.home .plans{gap:16px}.home .price-card{padding:26px}.home .price,.home .free .price{font-size:48px}}
@media(max-width:760px){.home .plans,.plus-off .home .plans{grid-template-columns:1fr}}
