:root{--navy:#04192b;--navy2:#082c42;--teal:#008c8d;--ink:#0a213c;--line:#d9e2e8;--paper:#f8f9fa}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#f6f8fa;color:var(--ink);font:15px Inter,Arial,sans-serif}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button{cursor:pointer}h1,h2,h3,.btn,nav,.service-strip strong,.eyebrow{font-family:'Barlow Condensed','Arial Narrow',Arial,sans-serif}h1,h2,h3{margin:0;font-weight:800}h2{font-size:35px;line-height:1.04;text-transform:uppercase}h3{font-size:23px}p{line-height:1.55}.header{background:#041829;color:white;position:relative;z-index:2;border-bottom:1px solid #147b86}.header-inner{max-width:1440px;margin:auto;min-height:78px;padding:0 4%;display:flex;align-items:center;justify-content:space-between;gap:30px}.brand{display:flex;align-items:center;gap:12px;flex-shrink:0;letter-spacing:2px;font-family:'Barlow Condensed',sans-serif;font-size:27px;font-weight:700;line-height:.8}.brand svg{width:55px;height:55px}.brand small{display:block;font:600 11px Inter,sans-serif;letter-spacing:4px;margin-top:8px}.header nav{display:flex;align-items:center;gap:24px;font-size:15px;font-weight:600;white-space:nowrap}.header nav a:not(.btn){padding:26px 0 21px;border-bottom:3px solid transparent}.header nav a.active{border-color:#08c0ba}.btn{display:inline-flex;justify-content:center;align-items:center;background:var(--teal);border:1px solid #39b5b0;color:white;padding:12px 28px;font-size:16px;font-weight:700;letter-spacing:.5px;border-radius:3px;text-transform:uppercase}.btn:hover{background:#087678}.btn.outline{background:#071b2ab8;border-color:white}.btn.dark{background:#072a40}.menu-button{display:none}.hero{min-height:510px;background-color:#06182a;background-image:linear-gradient(90deg,rgba(3,14,25,.78),rgba(3,14,25,.42) 45%,transparent 75%),url('assets/hero.webp');background-position:center;background-size:cover;background-repeat:no-repeat;color:white;display:flex;align-items:center}.hero-inner{width:min(1340px,92%);margin:auto;padding:46px 0}.hero-copy{width:min(600px,55%);text-align:center}.hero-star{height:100px;display:block;margin:auto}.hero h1{font-size:clamp(52px,6vw,94px);line-height:.88;letter-spacing:3px}.hero h1 span{display:block;color:#4bb3bd;font-size:.62em;letter-spacing:.21em;margin-top:12px}.hero .strap{letter-spacing:.17em;font-size:13px}.hero p{max-width:450px;margin:14px auto}.hero-buttons{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}.service-strip{background:#062438;color:white;display:grid;grid-template-columns:repeat(6,1fr);padding:24px max(4%,calc((100% - 1320px)/2))}.service-strip a{text-align:center;padding:2px 10px;border-right:1px solid #167383}.service-strip a:last-child{border:0}.service-strip span{display:block;height:38px;margin-bottom:8px}.service-strip svg{height:36px;width:36px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.service-strip strong{font-size:15px}.split{display:grid;grid-template-columns:1fr 1fr;min-height:360px}.card-photo{background-image:url('assets/projects.webp');background-size:200% 200%;background-repeat:no-repeat}.split-photo{background-image:url('assets/kitchen.webp');background-size:100% 100%;background-repeat:no-repeat;background-position:left top;min-height:350px}.split-copy{padding:45px clamp(28px,5vw,85px);background:#f7f8fa}.split-copy h2 span{display:block;color:var(--teal)}.checks{list-style:none;padding:0;line-height:2}.checks li:before{content:'✓';color:var(--teal);font-weight:bold;margin-right:10px}.wrap{max-width:1320px;margin:auto;padding:42px 4%}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:20px}.section-heading p,.lead{margin:5px 0 0}.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.card-photo{height:165px;border-radius:3px}.kitchen{background-position:left top}.bathroom{background-position:right top}.deck{background-position:left bottom}.home-photo{background-position:right bottom}.project-card strong{display:block;margin-top:10px}.muted{color:#5b6c78;font-size:13px}.concept{font-size:12px;color:#5f6b74;margin-top:14px}.page{min-height:65vh}.page-header{margin-bottom:24px}.filterbar,.actions{display:flex;gap:8px;flex-wrap:wrap}.filterbar button,.tabs button,.small-btn{background:#e7edf0;color:var(--ink);border:1px solid #d7e0e5;border-radius:3px;padding:9px 16px;font-weight:700}.filterbar button.active,.tabs button.active{background:var(--teal);border-color:var(--teal);color:white}.gallery-grid{margin-top:20px}.gallery-grid .card-photo{height:230px}.panel{background:white;border:1px solid var(--line);border-radius:4px;padding:24px}.bid-layout{display:grid;grid-template-columns:1fr 280px;gap:24px}.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:3px}.step{background:#f0f3f5;padding:24px 15px;text-align:center}.num{background:var(--navy2);color:white;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:20px;width:44px;height:44px;margin:0 auto 12px}.step strong{display:block}.step small{display:block;margin-top:6px;line-height:1.4}.bid-cta{background:#07304a;color:white;text-align:center;display:grid;place-content:center;gap:18px}.big-icon{font-size:46px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}label{font-weight:600;display:grid;gap:7px;font-size:14px}input,textarea,select{width:100%;border:1px solid #c4d2dc;border-radius:3px;padding:12px;background:white;color:var(--ink)}textarea{min-height:110px;resize:vertical}.full{grid-column:1/-1}.notice{background:#ecf7f6;border-left:3px solid var(--teal);padding:12px 14px;line-height:1.5}.calendar-head{display:flex;justify-content:space-between;align-items:center;gap:10px}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}.day,.dow{min-height:90px;padding:8px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:white}.dow{min-height:0;text-align:center;font-weight:700;background:#f6f8f9}.event{background:#008f98;color:white;border-radius:3px;padding:4px;margin-top:5px;font-size:11px;overflow-wrap:anywhere}.stages{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-bottom:20px}.stage{padding:14px;background:#eef2f4;border:1px solid var(--line);font-weight:700}.stage.done{background:#e4f5f0;color:#087d6a}.stage.current{border-color:#0ba1b6;color:#007b91}.progress{height:10px;border-radius:20px;background:#dbe2e6;overflow:hidden}.progress span{height:100%;display:block;background:var(--teal)}.hub-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.stack{display:grid;gap:14px}.record{border-bottom:1px solid var(--line);padding:10px 0}.record:last-child{border:0}.status{min-height:22px}.status.error{color:#a63428}.empty{color:#667a87}.inline-form{margin-top:16px}.hidden{display:none!important}footer{background:#072034;color:white;text-align:center;padding:32px 20px;letter-spacing:.1em;font-size:12px}footer a{color:#8ccbd0;text-decoration:underline}.footer-mark{font-size:20px}.footer-mark b{font-family:'Barlow Condensed',sans-serif;letter-spacing:.2em}
@media(max-width:1000px){.header-inner{flex-wrap:wrap;padding:12px 4%}.menu-button{display:block;margin-left:auto;background:#0c3448;color:white;border:1px solid #46818b;border-radius:4px;padding:9px 12px}.header nav{display:none;flex-basis:100%;flex-wrap:wrap;gap:4px 18px;padding-bottom:12px}.header nav.open{display:flex}.header nav a:not(.btn){padding:8px 0}.hero-copy{width:min(530px,75%)}.grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:600px){h2{font-size:29px}.hero{min-height:520px;background-position:60% center}.hero-inner{padding:38px 0}.hero-copy{width:100%;text-align:left}.hero-star{height:76px;margin:0 0 12px}.hero h1{font-size:55px}.hero .strap{font-size:10px}.hero p{margin-left:0}.hero-buttons{justify-content:flex-start}.hero-buttons .btn{padding:11px 17px}.service-strip{grid-template-columns:repeat(3,1fr);gap:15px 0;padding:20px 4%}.service-strip a:nth-child(3){border-right:0}.service-strip span{font-size:26px}.service-strip strong{font-size:12px}.split{grid-template-columns:1fr}.split-photo{min-height:260px}.split-copy{padding:32px 6%}.wrap{padding:32px 5%}.section-heading{align-items:flex-start;flex-direction:column}.grid{gap:12px}.card-photo{height:115px}.gallery-grid .card-photo{height:145px}.bid-layout{grid-template-columns:1fr}.steps{grid-template-columns:repeat(2,1fr)}.bid-cta{padding:24px}.form-grid,.hub-grid{grid-template-columns:1fr}.full{grid-column:auto}.stages{grid-template-columns:1fr}.calendar-grid{font-size:10px}.day{min-height:60px;padding:3px}.dow{padding:4px 0}.event{font-size:9px;padding:3px}.calendar-head{flex-wrap:wrap}.panel{padding:18px}}
.task-list{margin:16px 0}.task-row{display:flex;align-items:flex-start;gap:8px;margin:10px 0;font-weight:400}.task-row input{width:auto;margin:2px 0}.record form{margin:14px 0}.record details{margin:14px 0}#tracker-project{max-width:360px;margin:8px 0 18px}
.bid-line{display:grid;grid-template-columns:minmax(150px,3fr) minmax(80px,1fr) minmax(90px,1fr) auto;gap:8px;align-items:end;margin:8px 0}.bid-preview-overlay{position:fixed;inset:0;z-index:50;background:#031522d9;overflow:auto;padding:24px}.bid-document{max-width:850px;margin:auto;padding:42px;background:white;color:#102a40;box-shadow:0 12px 50px #0008}.bid-document header{border-bottom:2px solid #008c8d;margin-bottom:24px}.bid-document h1{font-size:30px}.bid-document h2{font-size:28px}.bid-document h3{margin-top:25px}.bid-document table{border-collapse:collapse;width:100%}.bid-document th,.bid-document td{padding:10px;border-bottom:1px solid #d9e2e8;text-align:left}.bid-sums{text-align:right}.preserve{white-space:pre-wrap}.bid-toolbar{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:16px}@media(max-width:600px){.bid-line{grid-template-columns:1fr 1fr}.bid-line label:first-child{grid-column:1/-1}.bid-document{padding:20px}.bid-preview-overlay{padding:10px}}@media print{body>*:not(.bid-preview-overlay){display:none!important}.bid-preview-overlay{position:static;background:none;overflow:visible;padding:0}.bid-document{box-shadow:none;max-width:none;padding:0}.bid-toolbar{display:none!important}}
.mobile-schedule{display:none}
@media(max-width:600px){body{padding-bottom:env(safe-area-inset-bottom)}.header-inner{padding-left:max(4%,env(safe-area-inset-left));padding-right:max(4%,env(safe-area-inset-right))}.brand{font-size:23px;min-width:0}.brand svg{width:46px;height:46px}.brand small{font-size:9px;letter-spacing:2.5px}.btn,.small-btn,.menu-button,.filterbar button,nav a{min-height:44px}input,select,textarea{font-size:16px;min-height:44px;min-width:0}.hub-grid,.form-grid,.bid-line{min-width:0}.panel,.record{min-width:0;overflow-wrap:anywhere}.calendar-grid{display:none}.mobile-schedule{display:block;margin-top:20px}.bid-document table{table-layout:fixed;font-size:12px;overflow-wrap:anywhere}.bid-document th,.bid-document td{padding:7px 3px}.bid-toolbar .btn,.bid-toolbar .small-btn{flex:1 1 auto}.step{padding:16px 8px}}

/* NorthStar finish: the compass, mountain mark, and panoramic landscape. */
.compass-rose{display:block;width:100%;height:100%;color:inherit;flex:none}.brand>.compass-rose{width:59px;height:59px}.hero .compass-rose.hero-star{width:112px;height:112px;color:#fff;filter:drop-shadow(0 2px 4px #001727bb)}
.hero h1{text-shadow:0 2px 14px #00121b99}.hero h1 span{text-shadow:0 2px 12px #001c25cc}.hero .strap{color:#cfebed}.hero .btn{min-height:46px}
.service-strip{border-top:1px solid #28a4aa;border-bottom:1px solid #174352}.service-strip a{transition:background .18s,color .18s}.service-strip a:hover,.service-strip a:focus-visible{background:#0c3d50;color:#9de9e6;outline-offset:3px}
.split-copy{position:relative;overflow:hidden;isolation:isolate}.craft-content{position:relative;z-index:1;max-width:590px}.mountain-mark{position:absolute;right:-1%;bottom:-4px;width:min(55%,380px);height:60%;background: url('assets/mountain.svg') right bottom / contain no-repeat;opacity:.72;pointer-events:none;z-index:0}.split-copy p{max-width:440px}.split-copy h2{position:relative}.checks{position:relative}
.project-card .card-photo{box-shadow:0 5px 14px #06263b18}.project-card strong{font-weight:700}.section-heading h2,.page-header h2{letter-spacing:-.02em}.filterbar button:hover,.small-btn:hover{border-color:#008c8d;color:#006a70}
.site-footer{padding:0;background:#061d2a;letter-spacing:normal}.footer-landscape{min-height:174px;display:flex;align-items:center;background-image:linear-gradient(90deg,#031724b8,#041c2a9c),url('assets/footer.webp');background-size:cover;background-position:center 53%;border-top:1px solid #2f9da2}.footer-inner{width:min(1100px,92%);margin:auto;display:flex;align-items:center;justify-content:center;gap:clamp(24px,7vw,100px);padding:22px 0}.footer-compass{width:98px;height:98px;color:#fff;flex:none;filter:drop-shadow(0 2px 5px #001524)}.footer-message{text-align:left;color:#fff}.footer-message strong{display:block;font-family:'Barlow Condensed','Arial Narrow',Arial,sans-serif;font-size:clamp(18px,2vw,25px);letter-spacing:.16em;line-height:1.25}.footer-rule{width:38px;height:2px;background:#3cbac1;margin-bottom:12px}.footer-message p{font-size:10px;letter-spacing:.15em;font-weight:700;margin:10px 0 0;line-height:1.8;color:#e1f1f2}.footer-message p span{margin:0 .5em;color:#4ec9c7}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #16a8ad;outline-offset:3px}
@media(max-width:600px){.brand>.compass-rose{width:46px;height:46px}.hero .compass-rose.hero-star{width:82px;height:82px;margin:0 0 12px}.mountain-mark{width:65%;height:45%;opacity:.48}.craft-content{max-width:none}.site-footer .footer-landscape{min-height:205px;background-position:56% center}.footer-inner{justify-content:flex-start;gap:20px}.footer-compass{width:68px;height:68px}.footer-message strong{font-size:17px;letter-spacing:.1em}.footer-message p{font-size:9px;letter-spacing:.08em}.footer-message p span{margin:0 .22em}}
.hero h1{text-transform:uppercase}.hero .strap{white-space:nowrap;font-size:clamp(10px,.9vw,12px)}
@media(max-width:600px){.hero{background-image:linear-gradient(90deg,rgba(3,14,25,.83),rgba(3,14,25,.60) 58%,rgba(3,14,25,.30)),url('assets/hero.webp')}.hero h1{font-size:clamp(34px,13vw,55px);overflow-wrap:anywhere}.hero .strap{white-space:normal;font-size:10px}.split-copy h2{font-size:clamp(24px,7vw,29px);overflow-wrap:anywhere}}
@media(min-width:601px) and (max-width:900px){.service-strip{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px 0}.service-strip a:nth-child(3){border-right:0}.hero .strap{white-space:normal}.split{grid-template-columns:1fr}.split-copy h2{font-size:clamp(27px,4vw,35px)}}
@media(max-width:340px){.hero h1 span{font-size:.55em;letter-spacing:.11em}.brand{font-size:19px}.footer-inner{gap:12px}.footer-compass{width:50px;height:50px}.footer-message strong{font-size:14px;overflow-wrap:anywhere}.footer-message p{overflow-wrap:anywhere}}
[hidden]{display:none!important}.project-card img{display:block;width:100%;height:200px;object-fit:cover;border-radius:4px}.service-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px}.service-cards h3{font-size:24px}.service-cards p{margin-bottom:0}#preview-bar{position:sticky;top:0;z-index:30;background:#fff0c7;color:#533b04;padding:12px;text-align:center;font-weight:700}#preview-bar a{text-decoration:underline}.quote-note{max-width:650px}.privacy{font-size:13px;color:#536773}.site-notice{padding:15px;background:#fff4d9}.status{white-space:pre-wrap}.gallery-grid .grid{grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}

.footer-compass:focus-visible{outline:3px solid #fff;outline-offset:8px;border-radius:4px}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
