*,:after,:before{box-sizing:border-box}body{color:#111;font-family:Roboto,sans-serif;margin:0}[hidden]{display:none!important}@font-face{font-display:swap;font-family:Big John;font-style:normal;font-weight:400;src:url(/static/vendor/fonts/big-john.woff2) format("woff2")}h1,h2,h3,h4,h5,h6{font-family:Big John,sans-serif}body{background-color:#fff;display:flex;flex-direction:column;min-height:100dvh}a{color:#0057c2}.draft-notice{background:#c0392b;color:#fff;flex:none;font-family:Roboto Mono,monospace;font-size:.8rem;margin-bottom:2rem;padding:.75rem 1rem;text-align:center;width:100%}main{flex:1 0 auto;font-size:1.05rem;line-height:1.3;margin:0 auto;max-width:62rem;padding:0 1.5rem;width:100%}footer{background:#f5f4ed;border-top:1px solid #eee;color:#999;flex:none;font-family:Roboto Mono,monospace;font-size:.75rem;margin:1rem auto 0;padding:1.5rem;width:100%}.site-footer{text-align:center}.site-footer p{line-height:1.8;margin:0}.site-footer .footer-item{display:inline-block}.site-footer .footer-sep{color:#d1cfc5;display:inline-block;margin:0 .5rem}.site-footer a{border-bottom:1px solid #d1cfc5;color:inherit;text-decoration:none}.site-footer a:focus,.site-footer a:hover{border-bottom-color:#111;color:#111}.topnav{flex:none;height:56px;padding:0 1.5rem;position:sticky;top:0;z-index:100}.topnav:before{backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);background:hsla(0,0%,100%,.82);border-bottom:1px solid #eee;content:"";inset:0;position:absolute;z-index:-1}.topnav-inner{align-items:center;display:flex;gap:1rem;height:100%;margin:0 auto;max-width:62rem;padding:0 1.5rem;width:100%}.brand{align-items:center;display:inline-flex;flex:none;text-decoration:none}.brand svg{display:block;height:40px;width:auto}#navlinks{align-items:center;display:flex;gap:4px;margin-left:auto;overflow-x:auto;scrollbar-width:none}#navlinks::-webkit-scrollbar{display:none}#navlinks a{border-radius:4px;color:#666;font-family:Roboto Mono,monospace;font-family:Big John,sans-serif;font-size:.8rem;letter-spacing:1px;padding:8px 10px;text-decoration:none;text-transform:uppercase;transition:color .12s ease,background-color .12s ease;white-space:nowrap}#navlinks a:hover{background:#f5f4ed;color:#111}.nav-toggle{align-items:center;background:transparent;border:0;color:#666;cursor:pointer;display:none;flex:none;flex-direction:column;gap:4px;height:36px;justify-content:center;margin-left:auto;padding:0;transition:color .12s ease;width:36px}.nav-toggle:hover{color:#007bff}.nav-toggle-bar{background:currentColor;display:block;height:2px;transition:transform .18s ease,opacity .18s ease;width:16px}.topnav.open .nav-toggle-bar:first-child{transform:translateY(6px) rotate(45deg)}.topnav.open .nav-toggle-bar:nth-child(2){opacity:0}.topnav.open .nav-toggle-bar:nth-child(3){transform:translateY(-6px) rotate(-45deg)}.nav-overlay{display:none}html{overflow-x:hidden;scrollbar-gutter:stable}html:has(.topnav.open){overflow:hidden}html.nav-resizing #navlinks,html.nav-resizing .nav-overlay,html.nav-resizing .nav-toggle-bar{transition:none}@media (max-width:48rem){.topnav-inner{gap:8px}.nav-toggle{display:inline-flex;position:relative;z-index:210}.nav-overlay{background:rgba(17,17,17,.32);display:block;inset:0;opacity:0;pointer-events:none;position:fixed;transition:opacity .24s ease;z-index:150}#navlinks{align-items:stretch;background:#f5f4ed;border-left:1px solid #eee;bottom:0;box-shadow:-16px 0 40px rgba(17,17,17,.12);flex-direction:column;gap:2px;margin-left:0;overflow-y:auto;overscroll-behavior:contain;padding:72px 0 calc(1.5rem + env(safe-area-inset-bottom));position:fixed;right:0;top:0;transform:translateX(100%);transition:transform .26s cubic-bezier(.4,0,.2,1);width:min(74vw,306px);z-index:200}#navlinks a{border-radius:0;display:block;font-size:1rem;padding:16px 1.5rem;width:100%}#navlinks a:hover{background:#eee;color:#111}.topnav.open #navlinks{transform:translateX(0)}.topnav.open .nav-overlay{opacity:1;pointer-events:auto}}body.auth{align-items:center;background-color:#f4f7f6;display:grid;grid-template-rows:1fr auto 1fr;justify-items:center;min-height:100vh}.auth-box{background:#fff;border-radius:12px;box-shadow:0 10px 25px rgba(0,0,0,.05);grid-row:2;max-width:360px;padding:2.5rem;width:100%}.auth-box fieldset{border:none;margin-bottom:1.5rem;padding:0}.auth-box label{color:#666;display:block;font-size:.8rem;letter-spacing:1px;margin-bottom:8px;text-transform:uppercase}.auth-box input,.auth-box label{font-family:Roboto Mono,monospace}.auth-box input{background:#fff;border:2px solid #eee;border-radius:6px;padding:12px;transition:border-color .2s;width:100%}.auth-box input:focus{border-color:#007bff;outline:none}.auth-box .form-buttons{display:block;margin-top:2.5rem}.auth-box .form-buttons button{background-color:#000;border:none;border-radius:6px;color:#fff;cursor:pointer;font-family:Roboto Mono,monospace;font-weight:600;padding:14px;transition:opacity .2s,transform .1s;width:100%}.auth-box .form-buttons button:hover{opacity:.85}.auth-box .form-buttons button:active{transform:scale(.98)}.auth-box .form-buttons button:disabled{cursor:default;opacity:.5}.auth-error{background-color:#c0392b;border-radius:6px;color:#fff;grid-row:1;margin:1rem;max-width:360px;padding:.75rem 1.5rem}.auth-box .links,.auth-error{font-size:.9rem;text-align:center}.auth-box .links{margin-top:2rem}.auth-intro{color:#666;font-size:.9rem;margin:0 0 1.5rem}.auth-box .field-note{color:#888;display:block;font-size:.8rem;margin-top:.4rem}.auth-box .save-message{color:#666;display:block;font-size:.85rem;margin-top:1rem;text-align:center}.auth-box .save-message-error{color:#c0392b}.hero{background:#fff;border-radius:6px;margin-top:2rem;overflow:hidden;position:relative}.hero h1{color:#42322b;font-size:clamp(2rem,5.5vw,3.7rem);font-weight:900;line-height:1.2;margin:0 0 1.25rem;text-transform:uppercase}.hero-art{inset:0;position:absolute}.hero-art svg{display:block;height:100%;width:100%}.hero-content{align-items:flex-end;display:flex;gap:2rem;padding:3.5rem clamp(1.5rem,4vw,2.5rem) 0;position:relative}.hero-copy{flex:1 1 auto;padding-bottom:6rem}.hero-mascot{display:block;flex:none;height:auto;margin-bottom:2.5rem;width:clamp(12rem,39%,22.3rem)}.hero-lede{color:#506e40;font-size:1rem;line-height:1.55;margin:0 0 2.5rem;max-width:30rem}.hero-cta{background-color:#000;background-color:#f3722d;border:none;border-radius:6px;border-radius:60px;color:#fff;color:#ffffd5;cursor:pointer;display:inline-block;font-family:Roboto Mono,monospace;font-size:1.1rem;font-weight:600;padding:17px 34px;text-decoration:none;transition:opacity .2s,transform .1s}.hero-cta:hover{opacity:.85}.hero-cta:active{transform:scale(.98)}.hero-cta:disabled{cursor:default;opacity:.5}@media (max-width:40rem){.hero-content{align-items:flex-start;flex-direction:column;gap:1rem}.hero-copy{padding-bottom:0}.hero-mascot{align-self:center;width:min(60%,16rem)}}.materials-summary,.services{border-bottom:1px solid #eee;padding:2.5rem 0}.materials-summary h2,.services h2{color:#888;font-family:Roboto Mono,monospace;font-size:.8rem;letter-spacing:1px;margin:0 0 1.5rem;text-transform:uppercase}p.softer{color:#666;font-size:.95rem;line-height:1.45}.service-list{display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(max(16rem,40%),1fr));list-style:none;margin:0;padding:0}.service-list li{background:#fff;border-radius:12px;box-shadow:0 10px 25px rgba(0,0,0,.05);padding:1.5rem}.service-list h3{font-size:1.05rem;margin:0 0 .5rem}.service-list p{color:#666;font-size:.95rem;line-height:1.45;margin:0}.material-chips{display:flex;flex-wrap:wrap;gap:.5rem;list-style:none;margin:0 0 1rem;padding:0}.material-chips li{background:#fff;border:1px solid #e2e2e2;border-radius:6px;cursor:help;font-family:Roboto Mono,monospace;font-size:.8rem;padding:.4rem .75rem}.materials-note{color:#666;font-size:.9rem;margin:1rem 0 0;text-align:center}.webpage>h1{font-size:2.25rem;line-height:1.2;margin:0 0 2.5rem}.webpage>h2,.webpage>h3,.webpage>h4,.webpage>h5,.webpage>h6{line-height:1.3;margin:2.5rem 0 1rem}.webpage>p{margin:0 0 1.25rem}.webpage>ol,.webpage>ol ol,.webpage>ol ul,.webpage>ul,.webpage>ul ol,.webpage>ul ul{margin:0 0 1.25rem;padding-left:1.5rem}.webpage>ol li,.webpage>ul li{margin-bottom:.35rem}.webpage>blockquote{border-left:3px solid #e2e2e2;color:#444;margin:2rem 0;padding:.25rem 0 .25rem 1.25rem}.webpage>blockquote cite{color:#888;display:block;font-size:.85rem;font-style:normal;margin-top:.5rem}.webpage>pre{background:#f5f5f5;border-radius:8px;margin:0 0 1.25rem;overflow-x:auto;padding:1rem 1.25rem}.webpage code{font-family:Roboto Mono,monospace;font-size:.875em}.webpage mark{background:#fff2a8;padding:0 .15em}.webpage li>code,.webpage p>code{background:#f0f0f0;border-radius:4px;padding:.15em .35em}.webpage>hr{border:none;border-top:2px solid #e2e2e2;margin:3rem auto;width:6rem}.webpage>table{border-collapse:collapse;font-size:.95rem;margin:0 0 1.5rem;width:100%}.webpage>table td,.webpage>table th{border:1px solid #e2e2e2;padding:.6rem .75rem;text-align:left}.webpage>table th{background:#fafafa;font-weight:600}.webpage>.checklist{list-style:none;margin:0 0 1.25rem;padding-left:0}.webpage>.checklist li{margin-bottom:.35rem}.webpage .checklist-item:before{content:"\2610";margin-right:.5rem}.webpage .checklist-item-checked:before{content:"\2611"}.contact-form{margin:2.5rem 0 3rem}.contact-fields{display:flex;flex-direction:column;gap:1.25rem}.contact-name-group{border:none;margin:0;padding:0}.contact-name-group legend{color:#666;display:block;font-family:Roboto Mono,monospace;font-size:.8rem;letter-spacing:1px;margin-bottom:8px;padding:0;text-transform:uppercase}.contact-row{display:flex;flex-wrap:wrap;gap:1.25rem}.contact-row .contact-field{flex:1 1 240px}.contact-field{min-width:0}.contact-field>label{color:#666;display:block;font-family:Roboto Mono,monospace;font-size:.75rem;letter-spacing:1px;margin-bottom:8px;text-transform:uppercase}.contact-required{color:#888;letter-spacing:0;text-transform:none}.contact-input{background:#fff;border:2px solid #eee;border-radius:6px;font-family:Roboto Mono,monospace;padding:10px;transition:border-color .2s;width:100%}.contact-input:focus{border-color:#007bff;outline:none}.contact-input[aria-invalid=true]{border-color:#c0392b}.contact-field-error{color:#c0392b;font-size:.85rem;line-height:1.4;margin:.4rem 0 0}.contact-captcha+.contact-field-error{text-align:center}.contact-message{display:block;min-height:8rem;resize:vertical}.contact-news{align-items:center;color:#666;cursor:pointer;display:flex;font-size:.85rem;gap:.5rem;margin-top:.5rem}.contact-news input{margin:0}.contact-actions{display:flex;justify-content:center}.contact-actions .button{background-color:#000;border:none;border-radius:6px;color:#fff;cursor:pointer;display:inline-block;font-family:Roboto Mono,monospace;font-size:.85rem;font-weight:600;padding:12px 32px;transition:opacity .2s,transform .1s}.contact-actions .button:hover{opacity:.85}.contact-actions .button:active{transform:scale(.98)}.contact-actions .button:disabled{cursor:default;opacity:.5}.contact-captcha{display:flex;justify-content:center;min-height:65px}.contact-errors{background:rgba(192,57,43,.06);border-left:3px solid #c0392b;border-radius:6px;color:#c0392b;font-size:.9rem;margin:0;padding:.75rem 1rem .75rem 2rem}.contact-errors li+li{margin-top:.25rem}.contact-sent{background:rgba(46,125,50,.06);border-left:3px solid #2e7d32;border-radius:6px;font-size:.9rem;line-height:1.5;padding:1rem 1.25rem}.contact-sent h3{font-size:1rem;margin:0 0 .5rem}.contact-sent p{margin:0}.contact-noscript{background:rgba(192,57,43,.06);border-left:3px solid #c0392b;border-radius:6px;font-size:.9rem;margin-bottom:1.5rem;padding:1rem 1.25rem}.contact-noscript p{margin:0}.faq{margin:2.5rem 0 3rem}.faq-heading{font-size:1.5rem;line-height:1.3;margin:0 0 1.25rem}.faq-items{border-top:1px solid #e2e2e2}.faq-item{border-bottom:1px solid #e2e2e2}.faq-question{align-items:baseline;cursor:pointer;display:flex;font-weight:600;gap:1rem;line-height:1.4;list-style:none;padding:.9rem .5rem}.faq-question::-webkit-details-marker{display:none}.faq-question:after{color:#888;content:"+";flex:none;font-family:Roboto Mono,monospace;font-size:1.1rem;margin-left:auto}.faq-question:hover:after{color:#111}.faq-item[open]>.faq-question:after{content:"\2212"}.faq-answer{line-height:1.6;padding:.5rem .5rem 1.1rem}.faq-answer p{margin:0 0 .6em}.faq-answer p:last-child{margin-bottom:0}.hero-video{background:#000;border-radius:8px;margin:2.5rem 0;overflow:hidden;position:relative}.hero-video-stretch{border-radius:0;margin-left:calc(50% - min(640px, 50vw));margin-right:calc(50% - min(640px, 50vw));width:min(1280px,100vw)}.hero-video-full{border-radius:0;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);width:100vw}.hero-video-frame{aspect-ratio:16/9;overflow:hidden;position:relative}.hero-video-frame iframe{border:0;height:100%;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:100%}.hero-video-inert .hero-video-frame iframe{pointer-events:none}.hero-video-ratio-21x9 .hero-video-frame{aspect-ratio:21/9}.hero-video-ratio-4x3 .hero-video-frame{aspect-ratio:4/3}.hero-video-ratio-1x1 .hero-video-frame{aspect-ratio:1/1}.hero-video-ratio-9x16 .hero-video-frame{aspect-ratio:9/16}.hero-video-overlay{align-items:center;background:rgba(0,0,0,.4);display:flex;flex-direction:column;gap:.5rem;inset:0;justify-content:center;padding:1.5rem;pointer-events:none;position:absolute;text-align:center}.hero-video-heading{color:#fff;font-size:clamp(1.5rem,4vw,2.5rem);letter-spacing:-.02em;line-height:1.15}.hero-video-heading,.hero-video-subheading{margin:0;text-shadow:0 1px 3px rgba(0,0,0,.4)}.hero-video-subheading{color:hsla(0,0%,100%,.9);font-size:clamp(1rem,2vw,1.2rem);line-height:1.5;max-width:34rem}.hero-video-cta{background-color:#000;border:none;border:1px solid hsla(0,0%,100%,.5);border-radius:6px;color:#fff;cursor:pointer;display:inline-block;font-family:Roboto Mono,monospace;font-size:.9rem;font-weight:600;margin-top:1rem;padding:14px 28px;pointer-events:auto;text-decoration:none;transition:opacity .2s,transform .1s}.hero-video-cta:hover{opacity:.85}.hero-video-cta:active{transform:scale(.98)}.hero-video-cta:disabled{cursor:default;opacity:.5}figure.image{margin-bottom:2rem;margin-top:2rem}figure.image img{display:block;height:auto;width:100%}figure.image figcaption{color:#888;font-size:.85rem;margin-top:.5rem;text-align:center}.image-bordered img{border:1px solid #e2e2e2}.image-background{background:#f5f5f5;border-radius:8px;padding:1.5rem}.image-background img{margin:0 auto;width:92%}.image-stretched{margin-left:calc(50% - min(640px, 50vw));margin-right:calc(50% - min(640px, 50vw));width:min(1280px,100vw)}.image-stretched img{border-radius:0}.markdown>h2,.markdown>h3,.markdown>h4,.markdown>h5,.markdown>h6{line-height:1.3;margin:2.5rem 0 1rem}.markdown>p{margin:0 0 1.25rem}.markdown>ol,.markdown>ol ol,.markdown>ol ul,.markdown>ul,.markdown>ul ol,.markdown>ul ul{margin:0 0 1.25rem;padding-left:1.5rem}.markdown>ol li,.markdown>ul li{margin-bottom:.35rem}.markdown>blockquote{border-left:3px solid #e2e2e2;color:#444;margin:2rem 0;padding:.25rem 0 .25rem 1.25rem}.markdown>blockquote cite{color:#888;display:block;font-size:.85rem;font-style:normal;margin-top:.5rem}.markdown>pre{background:#f5f5f5;border-radius:8px;margin:0 0 1.25rem;overflow-x:auto;padding:1rem 1.25rem}.markdown code{font-family:Roboto Mono,monospace;font-size:.875em}.markdown mark{background:#fff2a8;padding:0 .15em}.markdown li>code,.markdown p>code{background:#f0f0f0;border-radius:4px;padding:.15em .35em}.markdown>hr{border:none;border-top:2px solid #e2e2e2;margin:3rem auto;width:6rem}.markdown>table{border-collapse:collapse;font-size:.95rem;margin:0 0 1.5rem;width:100%}.markdown>table td,.markdown>table th{border:1px solid #e2e2e2;padding:.6rem .75rem;text-align:left}.markdown>table th{background:#fafafa;font-weight:600}.markdown blockquote>p,.markdown li>p{margin:0 0 .6rem}.markdown blockquote>:last-child,.markdown li>:last-child{margin-bottom:0}.markdown td[align=center],.markdown th[align=center]{text-align:center}.markdown td[align=right],.markdown th[align=right]{text-align:right}.quote{background:#fff;border-radius:12px;box-shadow:0 10px 25px rgba(0,0,0,.05);box-shadow:none;margin:2.5rem 0 3rem;padding:0 2rem 2rem;scroll-margin-top:5rem}.quote h2{font-size:1.4rem;margin:0}.quote-header{align-items:center;display:flex;flex-wrap:wrap;gap:.5rem 1rem;margin-bottom:1.5rem}.units-toggle{border:1px solid #e2e2e2;border-radius:6px;display:inline-flex;margin-left:auto;overflow:hidden}.units-choice{background:transparent;border:none;color:#666;cursor:pointer;font-family:Roboto Mono,monospace;font-size:.75rem;padding:.35rem .65rem;transition:color .15s}.units-choice:hover{color:#111}.units-choice+.units-choice{border-left:1px solid #e2e2e2}.units-choice[aria-pressed=true]{background:#000;color:#fff;cursor:default}.panel-lede{color:#666;font-size:.95rem;margin:0 0 1rem}.dropzone{background:#f4f7f6;border:2px dashed #e2e2e2;border-radius:8px;cursor:pointer;padding:2.5rem 1.5rem;text-align:center;transition:border-color .15s,background .15s}.dropzone:hover{border-color:#007bff}.dropzone-compact{align-items:center;display:flex;flex-wrap:wrap;gap:.75rem;justify-content:center;padding:1rem 1.5rem}.dropzone-compact .dropzone-hint,.dropzone-compact .dropzone-title{margin:0}.dropzone-compact .dropzone-note{display:none}.dropzone-over{background:rgba(0,123,255,.06);border-color:#007bff}.dropzone-title{font-family:Roboto Mono,monospace;font-size:1rem;font-weight:600;margin:0 0 .5rem}.dropzone-hint{color:#888;font-size:.85rem;margin:0 0 .75rem}.dropzone-note{color:#666;font-size:.8rem;line-height:1.4;margin:1rem auto 0;max-width:26rem}.drawing-status{background:#f4f7f6;border-radius:6px;color:#666;font-family:Roboto Mono,monospace;font-size:.8rem;margin-top:1rem;padding:.75rem 1rem}.drawing-status-error{background:rgba(192,57,43,.08);color:#c0392b}.quote-confirm{background:#fff;border:none;border-radius:12px;box-shadow:0 10px 35px rgba(0,0,0,.2);color:#111;padding:1.5rem;width:min(30rem,92vw)}.quote-confirm::backdrop{background:rgba(0,0,0,.4)}.quote-confirm-measuring{align-items:center;display:flex;flex-direction:column;gap:1rem;padding:1.5rem 0}.quote-confirm-spinner{animation:quote-confirm-spin .8s linear infinite;border:3px solid #eee;border-radius:50%;border-top-color:#007bff;height:2.25rem;width:2.25rem}@keyframes quote-confirm-spin{to{transform:rotate(1turn)}}.quote-confirm-status{color:#666;font-size:.85rem;margin:0;text-align:center}.quote-confirm-name,.quote-confirm-status{font-family:Roboto Mono,monospace;word-break:break-all}.quote-confirm-name{font-size:1rem;font-weight:600;margin:0 0 1rem}.quote-confirm-size{margin:1rem 0 0}.quote-confirm-size-row{align-items:baseline;display:flex;flex-wrap:wrap;gap:.25rem .75rem}.quote-confirm-swap{background:transparent;border:1px solid #e2e2e2;border-radius:6px;color:#666;cursor:pointer;font-family:Roboto Mono,monospace;font-size:.7rem;font-weight:600;padding:.2rem .5rem;transition:color .15s,border-color .15s}.quote-confirm-swap:hover{border-color:#666;color:#111}.quote-confirm-units{background:rgba(0,123,255,.05);border-left:3px solid #007bff;margin:1rem 0 0;padding:.75rem 1rem}.quote-confirm-units-text{font-size:.85rem;line-height:1.45;margin:0 0 .6rem}.quote-confirm-units-choices{display:flex;flex-wrap:wrap;gap:.5rem}.quote-confirm-units-choice{background:#fff;border:1px solid #e2e2e2;border-radius:6px;color:#111;cursor:pointer;flex:1 1 auto;font-family:Roboto Mono,monospace;font-size:.85rem;font-weight:600;padding:.6rem 1rem;transition:border-color .15s}.quote-confirm-units-choice:hover{border-color:#111}.quote-confirm-units:focus{outline:none}.quote-confirm-note{color:#666;font-size:.8rem;line-height:1.4;margin:.75rem 0 0}.quote-confirm-refusal{background:rgba(192,57,43,.05);border-left:3px solid #c0392b}.measurement-check,.quote-confirm-refusal{font-size:.85rem;line-height:1.45;margin:1rem 0 0;padding:.75rem 1rem}.measurement-check{background:rgba(0,123,255,.05);border-left:3px solid #007bff}.quote-confirm-actions{display:flex;gap:.75rem;justify-content:flex-end;margin-top:1.25rem}.quote-confirm-cancel{background:transparent;border:1px solid #e2e2e2;border-radius:6px;color:#666;cursor:pointer;font-family:Roboto Mono,monospace;font-size:.85rem;font-weight:600;padding:12px 20px;transition:color .15s,border-color .15s}.quote-confirm-cancel:hover{border-color:#666;color:#111}.drawing-list{display:grid;gap:1rem;grid-template-columns:minmax(0,1fr);margin-bottom:1rem}.drawing-list:empty{display:none}.drawing{border:1px solid #eee;border-radius:8px;padding:1rem 1.25rem}.drawing-header{align-items:center;border-bottom:1px solid #eee;cursor:pointer;display:flex;flex-wrap:nowrap;gap:.5rem 1.25rem;margin-bottom:1.25rem;padding-bottom:.75rem}@media (max-width:48rem){.drawing-header{flex-wrap:wrap}}.drawing-heading{align-items:center;display:flex;flex:1 1 auto;gap:1.25rem;min-width:0}@media (max-width:48rem){.drawing-heading{flex-basis:100%}}.drawing-collapsed .drawing-header{border-bottom:none;margin-bottom:0;padding-bottom:0}.drawing-collapsed .drawing-details{display:none}.drawing-collapsed .drawing-toggle svg{transform:rotate(-90deg)}.drawing-toggle{align-items:center;background:transparent;border:none;color:#666;cursor:pointer;display:inline-flex;flex-shrink:0;justify-content:center;margin-left:-.25rem;padding:.25rem;transition:color .15s}.drawing-toggle:hover{color:#111}.drawing-toggle svg{display:block;transition:transform .15s}.drawing-title{align-items:center;display:flex;flex:1 1 auto;gap:.5rem;min-width:0}.drawing-name{font-family:Roboto Mono,monospace;font-size:1rem;font-weight:600;margin:0;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.drawing-warning{color:#b45309;display:inline-flex;flex-shrink:0}.drawing-warning svg{display:block}.drawing-fact{font-size:.8rem;white-space:nowrap}.drawing-fact,.drawing-qty{color:#666;flex-shrink:0;font-family:Roboto Mono,monospace}.drawing-qty{align-items:center;cursor:default;display:inline-flex;font-size:.75rem;gap:.4rem}.drawing-qty input{background:#fff;border:2px solid #eee;border-radius:6px;font-family:Roboto Mono,monospace;padding:8px;text-align:right;transition:border-color .2s;width:100%;width:4.25rem}.drawing-qty input:focus{border-color:#007bff;outline:none}.drawing-remove{align-items:center;background:transparent;border:1px solid #e2e2e2;border-radius:6px;color:#666;cursor:pointer;display:inline-flex;flex-shrink:0;justify-content:center;padding:.45rem;transition:color .15s,border-color .15s}.drawing-remove:hover{border-color:#c0392b;color:#c0392b}.drawing-remove svg{display:block}.drawing-body{align-items:start;display:grid;gap:1.5rem;grid-template-columns:minmax(0,50%) minmax(0,1fr)}@media (max-width:40rem){.drawing-body{grid-template-columns:1fr}}.drawing-visual{position:sticky;text-align:center;top:calc(56px + 1rem)}@media (max-width:40rem){.drawing-visual{position:static}}.drawing-preview{align-items:center;aspect-ratio:1;background:#fff;border:1px solid #eee;border-radius:8px;color:#3d3d3a;display:flex;justify-content:center;padding:1rem}.preview-stack{aspect-ratio:1;position:relative;width:100%}.preview-stack img{display:block;height:100%;width:100%}.preview-shapes{height:100%;inset:0;position:absolute;width:100%}.preview-shape{cursor:pointer;fill:transparent;stroke:transparent;stroke-linejoin:round;stroke-width:6}.preview-shape-hot,.preview-shape:hover{fill:rgba(192,57,43,.12);stroke:#c0392b}.preview-shape-selected{fill:rgba(0,123,255,.15);stroke:#007bff}.preview-missing{color:#888;font-family:Roboto Mono,monospace;font-size:.75rem;margin:0}.drawing-model{aspect-ratio:1;background:#fff;border:1px solid #eee;border-radius:8px;overflow:hidden;position:relative}.model-canvas{inset:0;position:absolute}.model-canvas canvas{display:block;touch-action:none}.model-status{background:hsla(0,0%,100%,.9);color:#666;font-family:Roboto Mono,monospace;font-size:.75rem;inset:auto 0 0 0;margin:0;padding:.5rem .75rem;position:absolute;text-align:center}.model-status-rendering{background:none;inset:auto auto 0 0;text-align:left}.visual-bar{align-items:center;display:flex;gap:.5rem;justify-content:center}.visual-bar-selecting{justify-content:space-between}.visual-toggle{border:1px solid #e2e2e2;border-radius:6px;display:inline-flex;margin-top:.5rem;overflow:hidden}.visual-choice{background:transparent;border:none;color:#666;cursor:pointer;font-family:Roboto Mono,monospace;font-size:.75rem;padding:.35rem .65rem;transition:color .15s}.visual-choice:hover{color:#111}.visual-choice+.visual-choice{border-left:1px solid #e2e2e2}.visual-choice[aria-pressed=true]{background:#000;color:#fff;cursor:default}.preview-selection{align-items:center;background:#fff;border:1px solid #e2e2e2;border-radius:6px;color:#666;display:inline-flex;gap:.5rem;margin-top:.5rem;padding:.25rem .3rem .25rem .65rem}.preview-selection,.selection-clear{font-family:Roboto Mono,monospace;font-size:.75rem}.selection-clear{background:transparent;border:1px solid #e2e2e2;border-radius:4px;color:#111;cursor:pointer;padding:.15rem .5rem}.selection-clear:hover{background:#f4f7f6}.operations-placeholder{align-items:center;background:#f4f7f6;border-radius:8px;color:#888;display:flex;font-family:Roboto Mono,monospace;font-size:.85rem;justify-content:center;margin-top:1.25rem;min-height:10rem;padding:1rem;text-align:center}.drawing-size{margin:0 0 1rem}.drawing-size-label{display:block;font-size:.75rem;letter-spacing:1px;margin-bottom:8px;text-transform:uppercase}.drawing-size-label,.drawing-size-value{color:#666;font-family:Roboto Mono,monospace}.drawing-size-value{font-size:.9rem;font-weight:700}.field-row{display:flex;flex-wrap:wrap;gap:1rem}.field{flex:1 1 12rem;min-width:0}.field label{color:#666;display:block;font-family:Roboto Mono,monospace;font-size:.75rem;letter-spacing:1px;margin-bottom:8px;text-transform:uppercase}.field input[type=number],.field select{background:#fff;border:2px solid #eee;border-radius:6px;font-family:Roboto Mono,monospace;padding:10px;transition:border-color .2s;width:100%}.field input[type=number]:focus,.field select:focus{border-color:#007bff;outline:none}.field-narrow{flex:0 1 9rem}.field-hint{color:#888;font-size:.8rem;line-height:1.4;margin:.4rem 0 0}.material-hint:empty{display:none}.field-hint-blocking{color:#c0392b}.corner-note{border-radius:8px;padding:.6rem .8rem}.operations{border:1px solid #eee;border-radius:8px;margin:1.25rem 0 0;padding:1.25rem}.operations legend{color:#666;font-family:Roboto Mono,monospace;font-size:.75rem;letter-spacing:1px;padding:0 .5rem;text-transform:uppercase}.operations .field-hint{margin:0}.operations .corner-note{background:#fff;color:#000;margin-top:.75rem}.shape-list{display:grid;margin-top:.75rem}.shape{border-bottom:1px solid #f0f0f0;border-radius:4px;display:grid;gap:.4rem;padding:.5rem;scroll-margin-top:calc(56px + 1rem)}.shape:last-child{border-bottom:none}.shape-hot{background:rgba(192,57,43,.06)}.shape-selected{background:rgba(0,123,255,.07);box-shadow:inset 3px 0 0 #007bff}.shape-label{align-items:baseline;cursor:default;display:flex;flex-wrap:wrap;font-family:Roboto Mono,monospace;font-size:.85rem;font-weight:600;gap:.25rem .5rem;justify-content:space-between}.shape-dims{color:#666;font-weight:400;text-align:right}.shape-controls{align-items:center;display:flex;flex-wrap:wrap;gap:.4rem}.shape-op{background:#fff;border:2px solid #eee;border-radius:6px;font-family:Roboto Mono,monospace;padding:8px;transition:border-color .2s;width:100%;width:auto}.shape-op:focus{border-color:#007bff;outline:none}.shape-param{align-items:center;display:inline-flex;gap:.3rem}.shape-dimension{background:#fff;border:2px solid #eee;border-radius:6px;font-family:Roboto Mono,monospace;padding:8px;transition:border-color .2s;width:100%;width:5.5rem}.shape-dimension:focus{border-color:#007bff;outline:none}.shape-units{color:#888;font-family:Roboto Mono,monospace;font-size:.75rem}.drawing-estimate{border:1px solid #eee;border-radius:6px;margin-top:1rem;padding:.75rem 1rem}.estimate-status{color:#666;font-family:Roboto Mono,monospace;font-size:.8rem;margin:0}.estimate-total{align-items:baseline;display:flex;gap:1rem;justify-content:space-between;margin:0}.estimate-total-value{font-family:Roboto Mono,monospace;font-size:1.1rem}.estimate-each{color:#666;font-family:Roboto Mono,monospace;font-size:.8rem;margin:.15rem 0 0;text-align:right}.estimate-lines{color:#666;display:grid;font-size:.85rem;gap:.2rem 1rem;grid-template-columns:1fr auto;margin:.5rem 0 0}.estimate-lines dd{font-family:Roboto Mono,monospace;font-size:.8rem;margin:0;text-align:right}.estimate-warnings{color:#c0392b;font-size:.8rem;list-style:none;margin:.5rem 0 0;padding:0}.estimate-service-response{color:#666;font-size:.8rem;margin-top:.5rem}.estimate-service-response summary{cursor:pointer}.estimate-service-response pre{background:#f4f7f6;border-radius:6px;color:#111;font-family:Roboto Mono,monospace;font-size:.75rem;margin:.5rem 0 0;max-height:20rem;overflow:auto;padding:.5rem}.part-save{display:flex;justify-content:flex-end;margin-top:.75rem;min-height:1.5rem}.part-status{color:#666;font-family:Roboto Mono,monospace;font-size:.8rem}.quote-errors{background:rgba(192,57,43,.07);border-left:3px solid #c0392b;border-radius:6px;color:#c0392b;font-size:.85rem;line-height:1.45;list-style:none;margin:1rem 0 0;padding:.75rem 1rem}.quote-errors li+li{margin-top:.4rem}.part-errors{margin-bottom:1rem}.quote-footer{align-items:start;border-top:1px solid #eee;display:grid;gap:1.5rem 2rem;grid-template-columns:minmax(0,1fr) minmax(0,20rem);margin-top:1.5rem;padding-top:1.25rem}@media (max-width:40rem){.quote-footer{grid-template-columns:1fr}}.quote-footer-lines{min-width:0}.quote-breakdown{color:#666;display:grid;font-size:.85rem;gap:.2rem 1rem;grid-template-columns:minmax(0,1fr) auto auto;margin:0 0 1rem;max-width:24rem}.quote-breakdown dt{display:contents}.quote-breakdown dd{font-family:Roboto Mono,monospace;font-size:.8rem;margin:0;text-align:right}.quote-line-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.quote-line-detail{font-family:Roboto Mono,monospace;font-size:.8rem;text-align:right}.quote-line-pending{font-style:italic}.quote-totals{flex-wrap:wrap;gap:.5rem 1rem;justify-content:space-between;max-width:24rem}.quote-total,.quote-totals{align-items:baseline;display:flex}.quote-total{gap:.5rem}.quote-total-label{color:#666;font-size:.85rem}.quote-parts-total,.quote-total-value{font-family:Roboto Mono,monospace;font-size:1.1rem}.quote-parts-total{color:#666}.quote-footer-submit{display:flex;flex-direction:column;gap:1rem}.quote-footer-submit .button{width:100%}.quote-contact{display:flex;flex-direction:column;gap:.75rem}.quote-contact-field{min-width:0}.quote-contact-field label{color:#666;display:block;font-family:Roboto Mono,monospace;font-size:.75rem;letter-spacing:1px;margin-bottom:8px;text-transform:uppercase}.quote-contact-input{background:#fff;border:2px solid #eee;border-radius:6px;font-family:Roboto Mono,monospace;padding:10px;transition:border-color .2s;width:100%}.quote-contact-input:focus{border-color:#007bff;outline:none}.quote-contact-notes{display:block;min-height:4.5rem;resize:vertical}.quote-submit-errors{margin-top:0}.quote-submitted{background:rgba(46,125,50,.06);border-left:3px solid #2e7d32;border-radius:6px;font-size:.9rem;line-height:1.5;margin-top:1.5rem;padding:1rem 1.25rem}.quote-submitted h3{font-size:1rem;margin:0 0 .5rem}.quote-submitted p{margin:0}.button,.quote-submitted-reference{font-family:Roboto Mono,monospace;font-size:.85rem}.button{background-color:#000;border:none;border-radius:6px;color:#fff;cursor:pointer;display:inline-block;font-weight:600;padding:12px 20px;text-decoration:none;transition:opacity .2s,transform .1s}.button:hover{opacity:.85}.button:active{transform:scale(.98)}.button:disabled{cursor:default;opacity:.5}.quote-noscript{background:rgba(192,57,43,.06);border-left:3px solid #c0392b;border-radius:6px;font-size:.9rem;line-height:1.5;margin-bottom:1.5rem;padding:1rem 1.25rem}.quote-noscript p{margin:0}.quote-noscript p+p{margin-top:.5rem}