:root { --navy:#112d35; --green:#425d45; --olive:#708064; --ink:#173037; --cream:#f3f0e8; --khaki:#d5cbaa; --sand:#e5decf; --line:rgba(23,48,55,.18); --serif:"Playfair Display", Georgia, serif; --sans:"DM Sans", Arial, sans-serif; --mono:"DM Mono", monospace; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--cream); font-family:var(--sans); font-size:16px; line-height:1.55; }
img { max-width:100%; display:block; }
a { color:inherit; text-decoration:none; }
button, input, textarea, select { font:inherit; }
.container { width:min(1180px, calc(100% - 48px)); margin:auto; }
.skip-link { position:fixed; top:-50px; left:16px; z-index:99; background:var(--cream); padding:8px 12px; }.skip-link:focus { top:12px; }
.sr-only { position:absolute; height:1px; width:1px; overflow:hidden; clip:rect(1px,1px,1px,1px); }
.site-header { background:var(--cream); padding:23px 0; position:relative; z-index:5; }
.nav-wrap, .site-nav { display:flex; align-items:center; }.nav-wrap { justify-content:space-between; }.brand { display:flex; align-items:center; gap:10px; line-height:1; }.brand-mark { font:700 27px/1 var(--serif); letter-spacing:-2px; }.brand-name { text-transform:uppercase; font:500 9px/1.12 var(--mono); letter-spacing:1.35px; }.site-nav { gap:32px; font-size:14px; }.site-nav > a:not(.nav-cta) { border-bottom:1px solid transparent; }.site-nav > a:not(.nav-cta):hover { border-color:var(--ink); }.nav-cta { padding:10px 15px; border:1px solid var(--ink); font-weight:600; }.nav-cta span { padding-left:12px; }.menu-toggle { display:none; }
.hero { padding:42px 0 0; background:var(--cream); overflow:hidden; }.hero-grid { display:grid; grid-template-columns: .93fr 1.07fr; gap:75px; align-items:center; }.eyebrow, .section-label, .footer-label { text-transform:uppercase; letter-spacing:1.35px; font:500 10px/1.3 var(--mono); }.eyebrow { margin:0 0 21px; color:var(--green); }.hero h1, h2 { font-family:var(--serif); line-height:.99; letter-spacing:-2.5px; font-weight:600; }.hero h1 { font-size:clamp(52px, 6.3vw, 88px); margin:0; }.hero h1 em { color:var(--green); }.hero-intro { font-size:18px; max-width:430px; margin:30px 0 29px; }.hero-actions { display:flex; gap:29px; align-items:center; }.button { display:inline-flex; align-items:center; justify-content:center; gap:24px; padding:15px 19px; text-transform:uppercase; letter-spacing:1px; font:500 11px var(--mono); border:1px solid; cursor:pointer; transition:.25s ease; }.button-dark { color:white; background:var(--navy); border-color:var(--navy); }.button:hover { transform:translateY(-2px); }.text-link { display:inline-flex; align-items:center; gap:15px; font-size:13px; font-weight:600; border-bottom:1px solid var(--ink); padding-bottom:3px; }.hero-image-wrap { position:relative; }.hero-image { width:100%; height:570px; object-fit:cover; object-position:center; }.hero-note { position:absolute; left:-38px; bottom:26px; background:var(--khaki); display:flex; gap:16px; align-items:flex-start; padding:19px 23px; }.hero-note span { font:500 10px var(--mono); }.hero-note p { margin:0; font:600 13px/1.35 var(--serif); }
.intro-strip { padding:100px 0; }.intro-grid { display:grid; grid-template-columns:.8fr 1.7fr auto; align-items:start; gap:40px; }.section-label { margin:5px 0 0; color:var(--green); }.intro-statement { margin:0; font:600 clamp(25px, 3.3vw, 43px)/1.15 var(--serif); letter-spacing:-1px; max-width:760px; }.circle-link { width:54px; height:54px; border:1px solid var(--ink); border-radius:50%; display:grid; place-items:center; font-size:23px; transition:.25s; }.circle-link:hover { color:white; background:var(--navy); }
.section { padding:110px 0; }.services { background:var(--navy); color:var(--cream); }.section-heading h2, .gallery h2, .about h2, .service-area h2, .contact h2 { font-size:clamp(42px, 5.1vw, 66px); margin:0; }.services .eyebrow { color:var(--khaki); }.services-grid { display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:280px; gap:1px; margin-top:62px; background:rgba(255,255,255,.2); }.service-card { padding:28px; background:var(--navy); display:flex; flex-direction:column; }.service-card-featured { background:var(--green); }.service-number { font:400 10px var(--mono); color:var(--khaki); }.service-card h3 { font:600 29px var(--serif); margin:50px 0 11px; letter-spacing:-.8px; }.service-card p { margin:0; font-size:14px; line-height:1.45; }.service-tag { color:var(--khaki); text-transform:uppercase; letter-spacing:1px; font:500 9px var(--mono)!important; margin-top:auto!important; }.service-card-image { padding:0; overflow:hidden; }.service-card-image img { height:100%; width:100%; object-fit:cover; }
.project-feature { background:var(--sand); padding:120px 0; }.project-feature-grid { display:grid; grid-template-columns:1.05fr .95fr; gap:100px; align-items:center; }.project-image-outer { position:relative; }.project-image-outer > img { width:100%; height:470px; object-fit:cover; }.project-stamp { position:absolute; top:26px; right:-27px; color:var(--cream); background:var(--navy); padding:15px 14px; font:600 24px/.75 var(--serif); text-align:center; }.project-stamp span { font:400 8px var(--mono); letter-spacing:1px; }.project-copy h2 { font-size:clamp(44px, 4.8vw, 65px); margin:0 0 26px; }.project-copy > p:not(.eyebrow) { max-width:420px; margin:0 0 29px; }
.gallery { background:var(--cream); }.gallery-head { display:flex; justify-content:space-between; align-items:end; margin-bottom:55px; }.gallery-head > p { max-width:190px; font-size:13px; margin:0 6% 6px 0; }.gallery-grid { display:grid; grid-template-columns:1.1fr .9fr .9fr; grid-template-rows:315px 315px; gap:14px; }.gallery-item { position:relative; overflow:hidden; border:0; padding:0; cursor:zoom-in; text-align:left; color:white; background:var(--navy); }.gallery-item img { height:100%; width:100%; object-fit:cover; transition:transform .5s ease; }.gallery-item:hover img { transform:scale(1.045); }.gallery-item span { position:absolute; left:17px; bottom:15px; opacity:0; transform:translateY(6px); font:500 10px var(--mono); text-transform:uppercase; letter-spacing:.8px; transition:.25s; text-shadow:0 1px 8px #000; }.gallery-item:hover span { opacity:1; transform:none; }.gallery-large { grid-row:span 2; }.gallery-wide { grid-column:span 2; }.gallery-wide img { object-position:center 58%; }
.about { background:var(--olive); color:white; }.about-grid { display:grid; grid-template-columns:.72fr 1.3fr .7fr; gap:50px; }.about .section-label { color:var(--cream); }.about h2 { margin:0 0 28px; }.about p:not(.section-label) { max-width:590px; margin:0 0 19px; }.about-aside { border-left:1px solid rgba(255,255,255,.4); padding-left:28px; align-self:end; }.quote-mark { display:block; margin-bottom:-10px; color:var(--khaki); font:64px/1 var(--serif); }.about-aside p { font:600 22px/1.25 var(--serif); }
.reviews { background:var(--sand); }.reviews-grid { display:grid; grid-template-columns:.85fr 1.15fr; gap:80px; align-items:start; }.reviews-heading h2 { font-size:clamp(42px,5.1vw,66px); margin:0 0 25px; }.reviews-heading > p:not(.eyebrow) { max-width:360px; margin:0; }.review-list { display:grid; gap:20px; }.review-card { color:var(--cream); background:var(--navy); padding:37px 40px 32px; }.review-card-top { display:flex; justify-content:space-between; align-items:start; }.review-mark { color:var(--khaki); display:block; height:42px; font:68px/.82 var(--serif); }.review-source { color:var(--khaki); text-transform:uppercase; letter-spacing:1px; font:500 9px var(--mono); padding-top:5px; }.review-card blockquote { margin:34px 0 27px; font:600 clamp(20px,2vw,27px)/1.35 var(--serif); letter-spacing:-.4px; }.review-card footer { padding-top:18px; border-top:1px solid rgba(255,255,255,.25); display:flex; justify-content:space-between; align-items:center; gap:15px; }.review-card cite { font-style:normal; font-weight:600; }.review-card footer span { color:rgba(255,255,255,.75); font:400 10px var(--mono); letter-spacing:.5px; }
.service-area { background:var(--cream); padding:89px 0; }.area-grid { display:grid; grid-template-columns:1fr 1fr; align-items:end; gap:40px; }.area-grid h2 { margin:0; }.area-grid > p { border-top:1px solid var(--line); margin:0; padding-top:20px; font:500 17px/1.6 var(--serif); }
.contact { padding:100px 0; background:var(--khaki); }.contact-card { display:grid; grid-template-columns:1fr .9fr; gap:90px; background:var(--navy); color:var(--cream); padding:68px 72px; }.contact .eyebrow { color:var(--khaki); }.contact h2 { margin:0 0 23px; }.contact-copy > p:not(.eyebrow) { max-width:400px; font-size:15px; }.contact-form { display:grid; gap:18px; }.contact-form label { color:var(--cream); font:500 10px var(--mono); letter-spacing:.7px; text-transform:uppercase; }.contact-form input, .contact-form textarea, .contact-form select { color:var(--cream); display:block; width:100%; background:transparent; border:0; border-bottom:1px solid rgba(255,255,255,.62); border-radius:0; outline:none; padding:7px 0; resize:vertical; }.contact-form select { appearance:none; background-image:linear-gradient(45deg,transparent 50%,var(--cream) 50%),linear-gradient(135deg,var(--cream) 50%,transparent 50%); background-position:calc(100% - 13px) 14px,calc(100% - 8px) 14px; background-size:5px 5px,5px 5px; background-repeat:no-repeat; }.contact-form select option { color:var(--ink); }.contact-form input:focus, .contact-form textarea:focus, .contact-form select:focus { border-color:var(--khaki); }.contact-form input::placeholder, .contact-form textarea::placeholder { color:rgba(243,240,232,.75); opacity:1; }.honeypot { position:absolute; left:-10000px; height:1px; overflow:hidden; }.button-light { margin-top:7px; color:var(--navy); background:var(--cream); border-color:var(--cream); justify-self:start; }.form-note { color:rgba(243,240,232,.85); font-size:12px; margin:0; }.form-note a { color:var(--cream); border-bottom:1px solid; }
.site-footer { color:var(--cream); background:#0b2229; padding:52px 0 36px; }.footer-grid { display:grid; grid-template-columns:1.25fr 1.15fr .8fr 1fr; gap:25px; }.brand-footer { align-self:start; }.site-footer a:not(.brand) { display:block; font-size:12px; margin:0 0 7px; }.site-footer a:not(.brand):hover { color:var(--khaki); }.footer-label { color:var(--khaki); margin:0 0 16px; }.copyright { margin:0; align-self:end; font-size:11px; line-height:1.6; opacity:.78; }
.site-footer a.deck-daddy-card { grid-column:1 / -1; display:flex; align-items:center; justify-content:space-between; gap:28px; max-width:550px; margin:14px 0 0; padding-top:27px; border-top:1px solid rgba(255,255,255,.2); }.deck-daddy-card .footer-label { margin-bottom:8px; }.deck-daddy-card h2 { margin:0 0 7px; color:var(--cream); font:600 26px/1 var(--serif); letter-spacing:-.6px; }.deck-daddy-card p:not(.footer-label) { max-width:315px; margin:0; color:rgba(243,240,232,.74); font-size:12px; line-height:1.45; }.deck-daddy-card img { width:78px; height:78px; padding:5px; background:var(--cream); transition:transform .25s ease; }.deck-daddy-card:hover img { transform:scale(1.05); }
.lightbox { padding:0; border:0; width:min(1000px, 93vw); background:transparent; overflow:visible; }.lightbox::backdrop { background:rgba(8,21,24,.88); }.lightbox figure { margin:0; }.lightbox img { max-height:78vh; max-width:100%; margin:auto; }.lightbox figcaption { color:white; margin-top:10px; text-align:center; font-size:13px; }.lightbox-close { position:absolute; top:-37px; right:0; border:0; background:transparent; color:white; cursor:pointer; font-size:35px; line-height:1; }
.site-nav a:focus-visible, .button:focus-visible, .text-link:focus-visible, .gallery-item:focus-visible, .lightbox-close:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible, .brand:focus-visible, .deck-daddy-card:focus-visible { outline:2px solid var(--khaki); outline-offset:4px; }
.legal-page { min-height:100vh; background:var(--cream); padding:45px 0 90px; }.legal-content { max-width:720px; }.legal-content .brand { margin-bottom:110px; }.legal-content .eyebrow { margin-bottom:18px; }.legal-content h1 { font:600 clamp(48px,7vw,78px)/.98 var(--serif); letter-spacing:-2px; margin:0 0 29px; }.legal-content p:not(.eyebrow) { font-size:18px; max-width:620px; margin:0 0 20px; }.legal-content p a { border-bottom:1px solid; }.legal-content .text-link, .legal-content .button { margin-top:16px; }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior:auto!important; transition-duration:.01ms!important; animation-duration:.01ms!important; animation-iteration-count:1!important; } }
@media (max-width: 800px) { .container { width:min(100% - 36px, 650px); }.site-header { padding:18px 0; }.menu-toggle { display:grid; gap:4px; padding:6px 0 6px 10px; background:none; border:0; cursor:pointer; }.menu-toggle span:not(.sr-only) { display:block; width:24px; height:1px; background:var(--ink); }.site-nav { display:none; position:absolute; left:18px; right:18px; top:70px; background:var(--cream); padding:21px; align-items:start; flex-direction:column; gap:19px; border:1px solid var(--line); box-shadow:0 10px 20px rgba(0,0,0,.08); }.site-nav.open { display:flex; }.hero { padding:30px 0 0; }.hero-grid, .project-feature-grid, .contact-card, .reviews-grid { grid-template-columns:1fr; gap:42px; }.hero h1 { font-size:57px; }.hero-image { height:440px; }.hero-note { left:auto; right:12px; bottom:12px; }.intro-strip, .section { padding:76px 0; }.intro-grid, .about-grid, .area-grid { grid-template-columns:1fr; gap:24px; }.intro-grid { gap:23px; }.circle-link { display:none; }.services-grid { grid-template-columns:1fr 1fr; grid-auto-rows:245px; margin-top:43px; }.service-card h3 { margin-top:38px; }.project-feature { padding:78px 0; }.project-feature-grid { gap:50px; }.project-image-outer > img { height:370px; }.project-stamp { right:12px; }.gallery-head { display:block; margin-bottom:35px; }.gallery-head > p { margin:18px 0 0; }.gallery-grid { grid-template-columns:1fr 1fr; grid-template-rows:250px 250px 250px; }.gallery-large { grid-row:span 2; }.gallery-wide { grid-column:span 2; }.about-aside { border-left:0; border-top:1px solid rgba(255,255,255,.4); padding:20px 0 0; }.contact { padding:55px 0; }.contact-card { padding:45px 27px; }.footer-grid { grid-template-columns:1fr 1fr; gap:34px 20px; }.copyright { grid-column:span 2; } }
@media (max-width: 800px) { .deck-daddy-card { max-width:none; margin-top:0; }.deck-daddy-card img { width:72px; height:72px; } }
@media (max-width: 430px) { .hero h1 { font-size:48px; }.hero-actions { gap:16px; flex-wrap:wrap; }.hero-image { height:355px; }.intro-statement { font-size:27px; }.services-grid { grid-template-columns:1fr; }.service-card-image { min-height:245px; }.gallery-grid { grid-template-columns:1fr; grid-template-rows:310px repeat(4,220px); }.gallery-large, .gallery-wide { grid-row:auto; grid-column:auto; }.gallery-item span { opacity:1; transform:none; }.footer-grid { grid-template-columns:1fr; }.copyright { grid-column:auto; }.project-copy h2, .contact h2 { font-size:43px; } }
.site-footer a.site-credit { display:inline; margin:0; color:inherit; font-size:10px; text-decoration:underline; text-decoration-color:rgba(243,240,232,.45); text-underline-offset:3px; }.site-footer a.site-credit:hover { color:var(--khaki); text-decoration-color:currentColor; }
.site-nav a[aria-current="page"]:not(.nav-cta) { border-color:var(--ink); }
.page-hero { padding:102px 0 105px; background:var(--cream); }.page-hero-grid { display:grid; grid-template-columns:1.25fr .75fr; gap:80px; align-items:end; }.page-hero h1, .contact-page .contact-copy h1 { font-family:var(--serif); line-height:.99; letter-spacing:-2.5px; font-weight:600; }.page-hero h1 { margin:0; font-size:clamp(54px,6vw,86px); }.page-hero-grid > p { max-width:400px; margin:0 0 9px; font-size:18px; }.page-cta { text-align:center; padding:108px 0; background:var(--khaki); }.page-cta .eyebrow { color:var(--green); }.page-cta h2 { font-size:clamp(43px,5vw,68px); margin:0 0 28px; }.home-links { background:var(--navy); color:var(--cream); }.home-links .eyebrow { color:var(--khaki); }.home-link-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; margin-top:59px; background:rgba(255,255,255,.2); }.home-link-card { min-height:268px; background:var(--navy); padding:29px; display:flex; flex-direction:column; transition:background .25s; }.home-link-card:hover { background:var(--green); }.home-link-card > span { font:400 10px var(--mono); color:var(--khaki); }.home-link-card h3 { margin:38px 0 10px; font:600 31px var(--serif); letter-spacing:-1px; }.home-link-card p { max-width:275px; margin:0; font-size:14px; line-height:1.45; }.home-link-card b { margin-top:auto; color:var(--khaki); font:500 10px var(--mono); letter-spacing:.8px; text-transform:uppercase; }.home-link-card i { margin-left:12px; font-style:normal; }.home-story { padding:105px 0; background:var(--sand); }.home-story-grid { display:grid; grid-template-columns:1.05fr .95fr; align-items:center; gap:95px; }.home-story-grid img { width:100%; height:430px; object-fit:cover; }.home-story h2 { font-size:clamp(43px,5vw,65px); margin:0 0 24px; }.home-story p:not(.eyebrow) { max-width:400px; margin:0 0 28px; }.home-contact { padding:80px 0; background:var(--khaki); }.home-contact-card { padding:56px 65px; display:flex; align-items:center; justify-content:space-between; gap:40px; color:var(--cream); background:var(--navy); }.home-contact-card .eyebrow { color:var(--khaki); }.home-contact-card h2 { font-size:clamp(40px,4.5vw,60px); margin:0; }
.services-grid-expanded { margin-top:0; }.trailer-rental { padding:112px 0; background:var(--sand); }.trailer-grid { display:grid; grid-template-columns:1fr 1fr; gap:95px; align-items:center; }.trailer-art { aspect-ratio:3 / 2; display:grid; place-items:center; background:var(--khaki); overflow:hidden; }.trailer-art img { display:block; width:100%; height:100%; object-fit:contain; object-position:center; }.trailer-copy h2 { margin:0 0 25px; font-size:clamp(44px,5vw,66px); }.trailer-copy > p:not(.eyebrow) { max-width:420px; margin:0 0 17px; }.trailer-note { color:var(--green); font:500 12px var(--mono); letter-spacing:.4px; }
.reviews-page { padding-top:0; }.reviews-page .review-list { max-width:800px; margin:auto; }.contact-page { min-height:700px; padding:94px 0 105px; background:var(--khaki); }.contact-page-grid { display:grid; grid-template-columns:1fr .93fr; gap:88px; align-items:start; }.contact-page .contact-copy { color:var(--navy); }.contact-page .contact-copy h1 { margin:0 0 25px; font-size:clamp(49px,5.6vw,75px); }.contact-page .contact-copy > p:not(.eyebrow) { max-width:410px; font-size:17px; }.direct-contact { margin-top:45px; border-top:1px solid rgba(17,45,53,.25); max-width:415px; }.direct-contact p { display:grid; grid-template-columns:75px 1fr; gap:14px; padding:12px 0; margin:0; border-bottom:1px solid rgba(17,45,53,.25); }.direct-contact span { text-transform:uppercase; letter-spacing:.7px; font:500 9px var(--mono); }.direct-contact a { font-size:14px; }.contact-form-page { padding:38px 40px; background:var(--navy); }
@media (max-width:800px) { .page-hero { padding:70px 0 76px; }.page-hero-grid, .home-story-grid, .trailer-grid, .contact-page-grid { grid-template-columns:1fr; gap:42px; }.page-hero-grid > p { margin:0; }.home-link-grid { grid-template-columns:1fr; }.home-link-card { min-height:220px; }.home-story { padding:76px 0; }.home-story-grid img { height:350px; }.home-contact-card { padding:40px 28px; display:block; }.home-contact-card .button { margin-top:27px; }.services-grid-expanded { margin-top:0; }.trailer-rental { padding:76px 0; }.contact-page { padding:70px 0; }.contact-form-page { padding:34px 27px; } }
