:root{--blue:#0069d9;--deep:#004eb5;--ink:#123567;--muted:#586c84;--pale:#edf5fc;--line:#d7e3f0}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:105px}body{margin:0;font-family:"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;color:var(--ink);background:white;line-height:1.95;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit}img{display:block;width:100%;height:100%;object-fit:cover}a:focus-visible,button:focus-visible{outline:3px solid #e8b94f;outline-offset:5px}.preview{background:#064b9e;color:#fff;padding:4px 15px;text-align:center;font:9px/1.8 Arial,sans-serif;letter-spacing:.16em}.preview span{font-family:inherit;font-size:calc(9px * var(--text-scale,1));margin-left:15px;letter-spacing:.04em}.header{display:flex;justify-content:space-between;align-items:center;gap:25px;padding:24px 4.5%;position:sticky;top:0;z-index:20;background:rgba(255,255,255,.97)}.brand{display:flex;align-items:center;gap:18px}.brand-mark{position:relative;font:800 46px/1 Arial,sans-serif;letter-spacing:-3px;color:var(--blue)}.brand-mark span{font-size:calc(31px * var(--text-scale,1))}.brand-mark i{display:block;position:absolute;bottom:-7px;right:0;width:27px;height:3px;background:#58b7f6;transform:skewX(-35deg)}.brand-name{font-size:calc(12px * var(--text-scale,1));font-weight:700;white-space:nowrap;line-height:1.6}.brand-name small{display:block;font:9px/1.8 Arial,sans-serif;letter-spacing:.17em;color:var(--blue)}nav{display:flex;align-items:center;gap:28px;font-size:calc(12px * var(--text-scale,1));font-weight:700}.nav-contact{display:flex;gap:30px;align-items:center;color:var(--blue);padding:11px 0 11px 26px;border-left:1px solid var(--line)}.nav-contact span{display:grid;place-items:center;border-radius:50%;background:var(--blue);color:#fff;width:37px;height:37px;font-size:calc(20px * var(--text-scale,1))}nav>a:hover{color:var(--blue)}.menu{display:none}.hero{position:relative;min-height:750px;height:calc(100svh - 118px);max-height:1000px;background:var(--blue);color:white;isolation:isolate;overflow:hidden}.hero-copy{position:relative;z-index:4;padding:95px 0 0 7%}.eyebrow{font:600 13px/1.7 Arial,sans-serif;letter-spacing:.07em;margin:0 0 30px;color:var(--blue)}.eyebrow span{display:block;font:500 11px/1.8 "Hiragino Kaku Gothic ProN",sans-serif;letter-spacing:.08em;margin-top:6px}.hero .eyebrow{color:#c0e3ff;font-size:calc(10px * var(--text-scale,1));letter-spacing:.19em}h1{font-size:clamp(44px,5.2vw,84px);line-height:1.55;letter-spacing:.035em;font-weight:700;margin:0;text-shadow:0 2px 30px #00469d22}h2{font-size:clamp(30px,3.5vw,48px);font-weight:600;line-height:1.75;letter-spacing:.05em;margin:0}h2 em{font-style:normal;color:var(--blue)}.hero-sub{font-size:calc(15px * var(--text-scale,1));line-height:2.15;letter-spacing:.08em;margin:26px 0 0}.hero-meta{display:flex;gap:18px;font-size:calc(10px * var(--text-scale,1));margin-top:28px;color:#d3eaff}.hero-meta span{border-top:1px solid #ffffff66;padding-top:10px}.hero-photo{position:absolute;z-index:2;right:6%;top:15%;width:39%;height:73%;border-radius:47% 47% 42% 42% / 31% 31% 28% 28%;overflow:hidden;transform:rotate(6deg);box-shadow:25px 20px 0 #ffffff12}.hero-photo:after{content:"";position:absolute;inset:50% 0 0;background:linear-gradient(transparent,#00275880);pointer-events:none}.hero-photo img{position:absolute;inset:0;transform:scale(1.12) rotate(-6deg);object-position:56% 42%}.hero-photo img.hero-slide{opacity:0;transition:opacity 1.6s}.hero-photo img.hero-slide.is-active{opacity:1;animation:photo-drift 9s ease-out both}.hero-side{position:absolute;right:22px;top:30%;writing-mode:vertical-rl;font:10px/1 Arial,sans-serif;letter-spacing:.22em;color:#b4d9ff}.hero-word{position:absolute;bottom:-18px;left:-15px;font:bold clamp(80px,11.8vw,200px)/1.15 Arial,sans-serif;letter-spacing:-.055em;white-space:nowrap;color:transparent;-webkit-text-stroke:1px #ffffff3b;z-index:1}.hero-scroll{position:absolute;bottom:70px;left:7%;display:flex;align-items:center;gap:22px;font:10px/1 Arial,sans-serif;letter-spacing:.15em;z-index:4}.hero-scroll span{display:grid;place-items:center;width:48px;height:48px;border:1px solid #ffffff66;border-radius:50%;font-size:calc(18px * var(--text-scale,1))}.wind{position:absolute;z-index:0;width:1100px;height:650px;border:1px solid #ffffff24;border-radius:50%;pointer-events:none;transform:rotate(-30deg)}.wind-one{left:-420px;top:180px;box-shadow:0 0 0 32px #ffffff06,0 0 0 65px #ffffff05}.wind-two{right:-400px;top:-370px;box-shadow:0 0 0 40px #ffffff07,0 0 0 80px #ffffff04}.photo-caption{position:absolute;bottom:85px;left:30px;right:30px;text-align:center;color:white;font-size:calc(10px * var(--text-scale,1));letter-spacing:.16em;z-index:3;transform:rotate(-6deg)}.slideshow-controls{position:absolute;bottom:42px;left:25px;right:25px;z-index:4;display:flex;justify-content:center;gap:15px;align-items:center;color:white;font-size:calc(10px * var(--text-scale,1));transform:rotate(-6deg)}.slideshow-controls[hidden]{display:none}.slide-toggle{font-size:calc(9px * var(--text-scale,1));cursor:pointer;color:#fff;background:#00326488;border:1px solid #ffffff90;padding:5px 11px;border-radius:20px}.hero-photo.is-paused img{animation-play-state:paused}.section{padding:130px 7%;max-width:1440px;margin:auto}.about{display:grid;grid-template-columns:1.1fr 1fr;gap:12%;padding-top:150px;padding-bottom:150px}.about h2{font-size:clamp(32px,3.4vw,49px);line-height:1.85}.about-body{padding-top:75px}.small-index{font:10px/1.8 Arial,sans-serif;letter-spacing:.12em;color:#7b93ad}.about-body .lead{font-size:calc(27px * var(--text-scale,1));line-height:1.9;letter-spacing:.07em;color:var(--ink);font-weight:600;margin:30px 0}.about-body>p:not(.lead){font-size:calc(14px * var(--text-scale,1));line-height:2.4;color:var(--muted);margin:0 0 23px}.about-mini{position:relative;width:77%;height:280px;margin-top:55px}.about-mini img{border-radius:4px 65px 4px 4px;object-position:50% 50%}.about-mini span{position:absolute;bottom:20px;right:-45px;background:white;padding:12px 20px;font-size:calc(11px * var(--text-scale,1));box-shadow:0 6px 25px #0034670d}.round-link{display:flex;justify-content:space-between;align-items:center;gap:35px;font-size:calc(13px * var(--text-scale,1));font-weight:700;max-width:350px;margin-top:32px;padding:16px 0;border-bottom:1px solid var(--line)}.round-link span{display:grid;place-items:center;width:48px;height:48px;border:1px solid var(--blue);color:var(--blue);border-radius:50%;font-size:calc(20px * var(--text-scale,1));transition:color .3s,background .3s,transform .3s}.round-link:hover span{color:#fff;background:var(--blue);transform:rotate(45deg)}.service-section{background:var(--pale);border-radius:100px 0 0 0}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:40px;margin-bottom:65px}.section-heading>p{font-size:calc(13px * var(--text-scale,1));color:var(--muted);line-height:2.1}.display-word{font:500 clamp(60px,8vw,112px)/1.05 Arial,sans-serif;letter-spacing:-.055em;margin:0;color:var(--blue)}.display-word span{font:600 13px/1.8 "Hiragino Kaku Gothic ProN",sans-serif;letter-spacing:.1em;display:block;margin-top:18px}.service-feature{display:grid;grid-template-columns:1.12fr 1fr;gap:8%;align-items:center}.service-image{height:660px;position:relative}.service-image img{border-radius:4px 90px 4px 4px;object-position:center 40%}.image-tag{position:absolute;bottom:35px;left:-20px;background:var(--blue);padding:12px 28px;color:#fff;font:11px/1.8 Arial,sans-serif;letter-spacing:.14em}.service-copy h2{font-size:calc(36px * var(--text-scale,1))}.service-copy h3{font-size:calc(19px * var(--text-scale,1));margin:32px 0 15px}.service-copy>p:not(.eyebrow){font-size:calc(13px * var(--text-scale,1));color:var(--muted);line-height:2.3}.service-details{font-size:calc(12px * var(--text-scale,1));margin:25px 0}.service-details div{display:flex;gap:30px;border-bottom:1px solid #cedce9;padding:12px 0}.service-details dt{color:var(--muted);width:80px}.service-details dd{margin:0}.work .section-heading h2{font-size:calc(39px * var(--text-scale,1))}.work-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:30px;align-items:start}.work-grid figure{margin:0}.work-grid figure:nth-child(2){margin-top:95px}.work-grid figure:nth-child(3){margin-top:35px}.work-photo{height:420px;overflow:hidden;border-radius:4px 55px 4px 4px;background:var(--pale)}.work-photo img{transition:transform .7s}.work-photo:hover img{transform:scale(1.045)}.work-photo .exterior{height:123%;transform:translateY(-9%);object-position:center 35%}.work-photo:hover .exterior{transform:translateY(-9%) scale(1.045)}figcaption{font-size:calc(11px * var(--text-scale,1));margin-top:20px}figcaption span{font:11px/1 Arial,sans-serif;color:var(--blue);margin-right:12px}.people{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:9%;align-items:center;background:#f0f6fb;margin:20px 0 0;padding:85px 9% 145px 7%;overflow:hidden;isolation:isolate}.people-photo{height:650px;max-width:520px;position:relative;z-index:1}.people-photo img{object-position:center 28%;border-radius:220px 220px 12px 12px}.people-copy{position:relative;z-index:1}.people-copy h2{font-size:calc(48px * var(--text-scale,1));line-height:1.7}.people-copy>p:not(.eyebrow){font-size:calc(13px * var(--text-scale,1));line-height:2.25;color:var(--muted);margin-top:27px}.people-word{position:absolute;bottom:-25px;right:-20px;z-index:0;white-space:nowrap;font:bold 12vw/1.2 Arial,sans-serif;letter-spacing:-.055em;color:#e0ebf5}.company{display:grid;grid-template-columns:1fr 1.2fr;gap:10%;padding-top:140px;padding-bottom:140px}.company-title>p:not(.display-word){font-size:calc(15px * var(--text-scale,1));line-height:2.2;margin:35px 0}.company-table{margin:0;padding-top:5px;font-size:calc(13px * var(--text-scale,1))}.company-table div{display:grid;grid-template-columns:95px 1fr;gap:20px;padding:22px 0;border-bottom:1px solid var(--line)}.company-table div:first-child{border-top:1px solid var(--line)}.company-table dt{color:var(--muted)}.company-table dd{margin:0;overflow-wrap:anywhere}.company-table a:hover{text-decoration:underline}.contact{position:relative;padding:100px 9%;background:var(--blue);color:white;border-radius:90px 90px 0 0}.contact-top{display:flex;align-items:center;justify-content:space-between;gap:40px}.contact .display-word{color:white}.contact h2{font-size:calc(36px * var(--text-scale,1))}.contact-intro{font-size:calc(13px * var(--text-scale,1));line-height:2.2;margin-top:35px;color:#e0efff}.contact-methods{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin-top:45px}.contact-methods a{display:block;padding:22px 0;border-top:1px solid #ffffff66;border-bottom:1px solid #ffffff66}.contact-methods span{font-size:calc(11px * var(--text-scale,1));display:block;color:#d5e9ff}.contact-methods strong{font:400 36px/1.8 Arial,sans-serif;letter-spacing:.015em;display:block}.contact-methods .email strong{font-size:calc(23px * var(--text-scale,1));margin:10px 0;overflow-wrap:anywhere}.contact-methods small{font-size:calc(10px * var(--text-scale,1));display:block;color:#d5e9ff}.contact-methods b{float:right;font-size:calc(24px * var(--text-scale,1));font-weight:400;transition:transform .3s}.contact-methods a:hover b{transform:translate(3px,-3px)}footer{padding:55px 7% 30px;background:var(--deep);color:#fff}.footer-top{display:flex;justify-content:space-between;align-items:center}.footer-brand{font:bold 45px/1.5 Arial,sans-serif}.footer-brand span{display:inline-block;font:600 13px/1.7 "Hiragino Kaku Gothic ProN",sans-serif;margin-left:25px}.to-top{border:1px solid #ffffff66;border-radius:50%;width:50px;height:50px;display:grid;place-items:center;font-size:calc(24px * var(--text-scale,1))}footer>p{font-size:calc(11px * var(--text-scale,1));color:#c8e0ff}.footer-bottom{display:flex;justify-content:space-between;padding-top:30px;margin-top:30px;border-top:1px solid #ffffff30;font:10px/1.5 Arial,sans-serif;letter-spacing:.1em;color:#c8e0ff}
@keyframes photo-drift{from{transform:scale(1.12) rotate(-6deg)}to{transform:scale(1.2) rotate(-6deg)}}@keyframes enter-up{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}.motion-enter{animation:enter-up 1.15s cubic-bezier(.2,.65,.3,1) both}.hero-copy h1.motion-enter{animation-delay:.15s}.hero-sub.motion-enter{animation-delay:.35s}.reveal-pending{opacity:0;transform:translateY(32px);transition:opacity 1s ease,transform 1s cubic-bezier(.2,.65,.3,1);transition-delay:var(--reveal-delay,0ms)}.reveal-pending.is-visible{opacity:1;transform:translateY(0)}
@media(min-width:1600px){.hero-copy{padding-left:calc((100vw - 1400px)/2)}.hero-photo{right:10%;width:35%}}
@media(max-width:1100px){nav{gap:17px;font-size:calc(11px * var(--text-scale,1))}.brand-name{font-size:calc(10px * var(--text-scale,1))}.brand{gap:12px}.nav-contact{gap:15px;padding-left:15px}.hero{height:750px;min-height:0}.hero-copy{padding-top:100px}h1{font-size:calc(54px * var(--text-scale,1))}.hero-photo{right:6%;width:40%;height:68%;top:20%}.section{padding:95px 7%}.about{gap:8%}.service-image{height:560px}.service-copy h2{font-size:calc(30px * var(--text-scale,1))}.work-photo{height:350px}.people{gap:7%;padding-right:7%;padding-bottom:120px}.people-photo{height:570px}.people-copy h2{font-size:calc(39px * var(--text-scale,1))}.contact{padding:85px 7%}.contact-methods strong{font-size:calc(30px * var(--text-scale,1))}.contact-methods .email strong{font-size:calc(21px * var(--text-scale,1))}}
@media(max-width:800px){html{scroll-padding-top:85px}.header{padding:20px 6%;gap:12px}.brand-mark{font-size:calc(36px * var(--text-scale,1))}.brand-mark span{font-size:calc(25px * var(--text-scale,1))}.brand-name{font-size:calc(10px * var(--text-scale,1))}.brand-name small{font-size:calc(7px * var(--text-scale,1))}.menu{display:flex;align-items:center;gap:10px;border:0;background:none;color:var(--blue);font:10px Arial,sans-serif}.menu span{font-size:calc(24px * var(--text-scale,1))}nav{display:none;position:absolute;top:100%;left:0;right:0;padding:20px 7%;background:#fff;border-bottom:1px solid var(--line);box-shadow:0 16px 25px #12356712}nav.open{display:flex;flex-direction:column;align-items:stretch;gap:0}nav>a{padding:13px 0;font-size:calc(13px * var(--text-scale,1))}.nav-contact{border-left:0;justify-content:space-between}.hero{height:880px;max-height:none;min-height:0}.hero-copy{padding:45px 7% 0}.hero .eyebrow{font-size:calc(9px * var(--text-scale,1));margin-bottom:22px}h1{font-size:clamp(34px,7.7vw,57px);line-height:1.65}.hero-sub{font-size:calc(12px * var(--text-scale,1));line-height:2.1;margin-top:20px}.hero-meta{font-size:calc(9px * var(--text-scale,1));margin-top:20px;gap:15px}.hero-photo{top:auto;bottom:78px;right:10%;width:62%;height:390px;max-width:340px;border-radius:45% 45% 40% 40% / 29% 29% 25% 25%;box-shadow:17px 15px 0 #ffffff15}.hero-side{right:16px;top:auto;bottom:220px;font-size:calc(8px * var(--text-scale,1))}.hero-word{font-size:calc(76px * var(--text-scale,1));bottom:-4px;left:-8px}.hero-scroll{bottom:135px;left:7%;writing-mode:vertical-rl;gap:15px;font-size:calc(8px * var(--text-scale,1))}.hero-scroll span{width:32px;height:32px;writing-mode:horizontal-tb;font-size:calc(14px * var(--text-scale,1))}.photo-caption{font-size:calc(8px * var(--text-scale,1));bottom:70px}.slideshow-controls{bottom:35px}.wind-one{width:700px;height:450px;left:-420px;top:160px}.wind-two{right:-600px}.section{padding:80px 7%}.about{grid-template-columns:1fr;gap:45px;padding-top:85px;padding-bottom:85px}.eyebrow{font-size:calc(14px * var(--text-scale,1));margin-bottom:25px}.eyebrow span{font-size:calc(10px * var(--text-scale,1))}.about h2{font-size:calc(34px * var(--text-scale,1));line-height:1.85}.about-mini{width:85%;height:290px;margin-top:35px}.about-mini span{font-size:calc(10px * var(--text-scale,1));right:-20px;padding:10px 15px}.about-body{padding-top:0;padding-left:10%}.about-body .lead{font-size:calc(24px * var(--text-scale,1));margin-top:20px}.about-body>p:not(.lead){font-size:calc(13px * var(--text-scale,1))}.round-link{font-size:calc(12px * var(--text-scale,1))}.round-link span{width:43px;height:43px}.service-section{border-radius:55px 0 0 0}.section-heading{align-items:start;gap:20px;margin-bottom:35px}.display-word{font-size:calc(64px * var(--text-scale,1))}.display-word span{font-size:calc(11px * var(--text-scale,1));margin-top:15px}.section-heading>.small-index{font-size:calc(8px * var(--text-scale,1));padding-top:12px}.service-feature{grid-template-columns:1fr;gap:38px}.service-image{height:460px;margin-right:7%}.service-image img{border-radius:4px 65px 4px 4px}.image-tag{left:-12px;bottom:25px;font-size:calc(9px * var(--text-scale,1));padding:10px 20px}.service-copy{padding-left:5%}.service-copy h2{font-size:calc(32px * var(--text-scale,1))}.service-copy .eyebrow{font-size:calc(11px * var(--text-scale,1));margin-bottom:15px}.service-copy h3{font-size:calc(18px * var(--text-scale,1));margin-top:25px}.work .section-heading{display:block}.work .section-heading h2{font-size:calc(28px * var(--text-scale,1))}.section-heading>p{font-size:calc(12px * var(--text-scale,1));margin-top:25px}.work-grid{grid-template-columns:1fr;gap:35px}.work-grid figure:nth-child(n){margin-top:0}.work-grid figure:nth-child(2){margin-left:13%}.work-grid figure:nth-child(3){margin-right:13%}.work-photo{height:410px}.work-grid figure:nth-child(1){margin-right:8%}.work-grid figure:nth-child(2) .work-photo{height:360px}.work-grid figure:nth-child(3) .work-photo{height:380px}figcaption{font-size:calc(10px * var(--text-scale,1));margin-top:15px}.people{grid-template-columns:1fr;gap:40px;margin-top:0;padding:60px 7% 100px}.people-photo{height:480px;margin:0 12% 0 0}.people-photo img{border-radius:170px 170px 8px 8px}.people-copy{padding-left:10%}.people-copy h2{font-size:calc(36px * var(--text-scale,1))}.people-copy>p:not(.eyebrow){font-size:calc(12px * var(--text-scale,1))}.people-word{font-size:18vw;bottom:-3px;right:-5px}.company{grid-template-columns:1fr;gap:35px}.company-title>p:not(.display-word){font-size:calc(13px * var(--text-scale,1));margin:25px 0}.company-table{font-size:calc(12px * var(--text-scale,1))}.company-table div{grid-template-columns:75px 1fr;gap:15px;padding:18px 0}.contact{padding:65px 7%;border-radius:45px 45px 0 0}.contact-top{display:block}.contact h2{font-size:calc(29px * var(--text-scale,1));margin-top:35px}.contact-intro{font-size:calc(12px * var(--text-scale,1));margin-top:25px}.contact-methods{grid-template-columns:1fr;gap:25px;margin-top:30px}.contact-methods strong{font-size:calc(31px * var(--text-scale,1))}.contact-methods .email strong{font-size:calc(21px * var(--text-scale,1))}.contact-methods a{padding:20px 0}.footer-brand{font-size:calc(37px * var(--text-scale,1))}.footer-brand span{display:block;font-size:calc(10px * var(--text-scale,1));margin-left:0}.footer-bottom{font-size:calc(8px * var(--text-scale,1));gap:15px}.preview{font-size:calc(8px * var(--text-scale,1))}.preview span{font-size:calc(8px * var(--text-scale,1))}.hero-photo img{object-position:center 40%}}
@media(max-width:370px){.hero{height:850px}h1{font-size:calc(31px * var(--text-scale,1))}.hero-photo{height:350px}.brand-name{font-size:calc(9px * var(--text-scale,1))}.contact-methods .email strong{font-size:calc(18px * var(--text-scale,1))}.about h2{font-size:calc(30px * var(--text-scale,1))}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.reveal-pending{opacity:1;transform:none}}
/* Photo-led entrance: the blue is an accent, rather than a backdrop. */
:root{--blue:#397da2;--deep:#203d50;--ink:#203947;--muted:#637580;--pale:#f3f6f7;--line:#dce4e8}
.preview{background:#edf1f3;color:#5f707c}.hero{height:calc(100svh - 125px);min-height:620px;max-height:820px;background:#43515b;display:flex;align-items:center}.hero-photo{inset:0;top:0;bottom:0;right:0;width:100%;max-width:none;height:100%;border-radius:0;transform:none;box-shadow:none;z-index:0}.hero-photo img,.hero-photo img.hero-slide{transform:scale(1.02);object-position:50% 42%;width:100%;height:100%}.hero-photo img.hero-slide.is-active{animation:photo-drift 9s ease-out both}.hero-photo:after{inset:0;background:linear-gradient(90deg,rgba(13,28,39,.72) 0%,rgba(13,28,39,.48) 42%,rgba(13,28,39,.1) 78%),linear-gradient(0deg,rgba(13,28,39,.35),transparent 45%);z-index:1}.hero-copy{padding:0 7%;width:100%;margin-top:-35px;pointer-events:none}.hero .eyebrow{color:#fff;font-family:inherit;font-size:calc(13px * var(--text-scale,1));letter-spacing:.17em;margin-bottom:24px;text-shadow:0 1px 10px #0005}h1{font-size:clamp(40px,4.8vw,72px);line-height:1.65;letter-spacing:.08em;text-shadow:0 2px 18px #0003}.hero-sub{font-size:calc(15px * var(--text-scale,1));line-height:2.2;margin-top:25px;letter-spacing:.07em;text-shadow:0 1px 12px #0005}.hero-meta{color:#fff;font-size:calc(11px * var(--text-scale,1));margin-top:32px;gap:24px}.hero-meta span{border-top:1px solid #ffffff70;padding-top:12px}.hero-scroll{left:7%;bottom:32px;font-size:calc(10px * var(--text-scale,1));letter-spacing:.08em;gap:18px}.hero-scroll span{width:38px;height:38px;font-size:calc(16px * var(--text-scale,1))}.photo-caption{left:auto;right:6%;bottom:88px;transform:none;text-align:right;font-size:calc(10px * var(--text-scale,1))}.slideshow-controls{left:auto;right:6%;bottom:39px;transform:none;gap:18px}.slide-toggle{background:#17324355;border-color:#ffffff80;padding:7px 15px}.nav-contact span{background:var(--blue)}.brand-mark i{background:#9cbdcb}.service-section{border-radius:55px 0 0 0}.contact{background:#edf3f5;color:var(--ink);border-radius:55px 55px 0 0}.contact .display-word{color:var(--blue)}.contact-intro,.contact-methods span,.contact-methods small{color:var(--muted)}.contact-methods a{border-color:#c8d8df}.contact-methods b{color:var(--blue)}footer{background:#243e4c}footer>p,.footer-bottom{color:#cedbe2}.people-word{color:#e4ebef}
@keyframes photo-drift{from{transform:scale(1.02)}to{transform:scale(1.09)}}
@media(min-width:1600px){.hero-copy{padding-left:calc((100vw - 1400px)/2)}.hero-photo{right:0;width:100%}}
@media(max-width:1100px){.hero{height:690px;min-height:0}.hero-copy{padding:0 7%}.hero-photo{top:0;right:0;width:100%;height:100%}.hero h1{font-size:calc(54px * var(--text-scale,1))}}
@media(max-width:800px){.hero{height:690px;min-height:0;max-height:none;align-items:center}.hero-copy{padding:0 7%;margin-top:-30px}.hero .eyebrow{font-size:calc(10px * var(--text-scale,1));margin-bottom:22px}.hero h1{font-size:clamp(32px,7.5vw,50px);line-height:1.75;letter-spacing:.035em}.hero-sub{font-size:calc(12px * var(--text-scale,1));line-height:2.3;margin-top:23px}.hero-meta{font-size:calc(9px * var(--text-scale,1));margin-top:25px;gap:17px}.hero-photo{inset:0;max-width:none;width:100%;height:100%;border-radius:0;transform:none;box-shadow:none}.hero-photo img{object-position:55% 43%}.hero-photo:after{background:linear-gradient(90deg,#0d1c27b8,#0d1c2750),linear-gradient(0deg,#0d1c2766,transparent 50%)}.hero-scroll{writing-mode:horizontal-tb;left:7%;bottom:25px;gap:12px;font-size:calc(8px * var(--text-scale,1))}.hero-scroll span{width:32px;height:32px}.photo-caption{right:7%;bottom:80px;left:auto;font-size:calc(9px * var(--text-scale,1))}.slideshow-controls{right:7%;bottom:26px;left:auto;transform:none;gap:12px}.contact{border-radius:35px 35px 0 0}}
@media(max-width:370px){.hero{height:650px}.hero h1{font-size:calc(30px * var(--text-scale,1))}}

/* Portrait gallery: preserve the new on-site photograph's full scene. */
@media(min-width:801px){.work-grid{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:65px;row-gap:55px;max-width:1020px;margin-inline:auto}.work-photo{height:500px}.work-grid figure:nth-child(2){margin-top:85px}.work-grid figure:nth-child(3){margin-top:0}.work-grid figure:nth-child(4){margin-top:85px}.carry-work .work-photo{height:600px}}
.carry-work .work-photo{border-radius:4px 55px 4px 4px}.carry-work .work-photo img{object-fit:contain;background:#edf1f2}
@media(max-width:800px){.work-grid figure.carry-work{margin-left:9%;margin-right:0}.carry-work .work-photo{height:auto;aspect-ratio:957/1668}.carry-work .work-photo img{height:100%}}

/* Supplied company logo; original image is preserved. */
.company-logo{position:relative;display:block;width:112px;height:60px;overflow:hidden;flex-shrink:0;background:white}.company-logo img{position:absolute;left:50%;top:50%;width:150%;height:auto;max-width:none;transform:translate(-50%,-50%);object-fit:contain}.footer-brand{display:flex;align-items:center;gap:22px}.footer-brand .footer-logo{display:block;width:142px;height:78px;margin:0;border-radius:3px}.footer-brand>span:not(.company-logo){margin:0}.footer-logo img{display:block}
@media(max-width:800px){.company-logo{width:84px;height:46px}.brand{gap:10px}.footer-brand{align-items:flex-start;flex-direction:column;gap:14px}.footer-brand .footer-logo{width:126px;height:70px}}

.completed-work .work-photo{height:auto;overflow:hidden;background:#edf1f2}.completed-work .work-photo img{height:auto;object-fit:contain}.rooftop-work .work-photo{aspect-ratio:1108/1477}.indoor-work .work-photo{aspect-ratio:1477/1108}.completed-work .work-photo img{width:100%;height:100%}
@media(min-width:801px){.work-grid figure:nth-child(5){margin-top:0}.work-grid figure:nth-child(6){margin-top:85px}}
@media(max-width:800px){.work-grid figure.completed-work{margin-top:0}.work-grid figure.rooftop-work{margin-right:8%}.work-grid figure.indoor-work{margin-left:8%;margin-right:0}}

.service-list{list-style:none;padding:0;margin:22px 0;display:flex;flex-wrap:wrap;gap:8px}.service-list li{font-size:calc(12px * var(--text-scale,1));color:var(--ink);padding:7px 12px;border:1px solid #cad9df;background:#fff;border-radius:3px}.service-copy .estimate-note{font-size:calc(20px * var(--text-scale,1));font-weight:700;color:var(--blue);margin:22px 0 12px}.hero-meta{flex-wrap:wrap}
/* Line reveals, photographic depth, and restrained pointer response. */
.motion-heading .line-mask{display:block;overflow:hidden;padding-bottom:.12em;margin-bottom:-.12em}.motion-heading .line-text{display:block;transform:translateY(112%);opacity:0;transition:transform 1.15s cubic-bezier(.16,1,.3,1),opacity .7s ease;transition-delay:calc(var(--line-index,0)*140ms)}.motion-heading.motion-visible .line-text{transform:translateY(0);opacity:1}.motion-item{opacity:0;transform:translateY(28px);transition:opacity 1s ease,transform 1.1s cubic-bezier(.16,1,.3,1);transition-delay:var(--item-delay,0ms)}.motion-item.motion-visible{opacity:1;transform:translateY(0)}
.service-image,.people-photo{overflow:hidden}.service-image{border-radius:4px 90px 4px 4px}.people-photo{border-radius:220px 220px 12px 12px}.service-image img,.people-photo img{scale:1.065;translate:0 var(--photo-shift,0px)}
.round-link span,.nav-contact span,.to-top{translate:var(--magnet-x,0px) var(--magnet-y,0px);transition:translate .45s cubic-bezier(.16,1,.3,1),background .3s,color .3s,transform .3s}.round-link:hover span{transform:rotate(0deg)}
.work-photo{position:relative}.work-photo:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(145deg,#ffffff10,transparent 55%);opacity:0;transition:opacity .7s}.work-photo:hover:after{opacity:1}
@media(max-width:800px){.motion-heading .line-text{transition-duration:.85s;transition-delay:calc(var(--line-index,0)*100ms)}.motion-item{transform:translateY(16px);transition-duration:.75s}.service-image{border-radius:4px 65px 4px 4px}.people-photo{border-radius:170px 170px 8px 8px}.service-image img,.people-photo img{scale:1.025}}
@media(prefers-reduced-motion:reduce){.motion-heading .line-text,.motion-item{opacity:1!important;transform:none!important}.service-image img,.people-photo img{scale:1;translate:none}.round-link span,.nav-contact span,.to-top{translate:none}}
@media print{.motion-heading .line-text,.motion-item{opacity:1!important;transform:none!important}}

.company-film{padding-top:85px;padding-bottom:30px}.film-heading{display:flex;justify-content:space-between;align-items:end;gap:25px;margin-bottom:30px}.film-heading .eyebrow{font-family:inherit;font-size:calc(12px * var(--text-scale,1));margin-bottom:12px}.film-heading h2{font-size:calc(34px * var(--text-scale,1))}.film-heading>p{font-size:calc(13px * var(--text-scale,1));color:var(--muted)}.company-video{display:block;width:100%;max-height:75vh;aspect-ratio:16/9;object-fit:contain;background:#f4f6f7;border:1px solid var(--line);border-radius:8px}.company-video:focus-visible{outline:3px solid var(--blue);outline-offset:5px}@media(max-width:800px){.company-film{padding-top:55px;padding-bottom:0}.film-heading{display:block;margin-bottom:22px}.film-heading h2{font-size:calc(28px * var(--text-scale,1))}.film-heading>p{font-size:calc(12px * var(--text-scale,1));margin-top:15px}.company-video{border-radius:5px}}

.service-copy .annual-work{margin:22px 0;padding:18px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);color:var(--ink);font-size:calc(13px * var(--text-scale,1))}.annual-work strong{display:block;color:var(--blue);font:600 42px/1.4 Arial,sans-serif;letter-spacing:.02em}.annual-work strong span{font:600 16px/1.4 "Hiragino Kaku Gothic ProN",sans-serif;margin-left:8px}@media(max-width:800px){.annual-work strong{font-size:calc(36px * var(--text-scale,1))}}

/* Navigation and reading tools */
.header{position:sticky;top:0;box-shadow:0 2px 18px #243e4c10;flex-wrap:wrap}.menu{display:flex;align-items:center;gap:12px;background:white;color:var(--ink);border:1px solid var(--line);border-radius:30px;padding:10px 18px;font-size:13px;cursor:pointer}.menu span{font-size:20px}#navigation{display:none;position:absolute;top:100%;left:0;right:0;background:#fff;padding:30px 7%;border-top:1px solid var(--line);border-bottom:1px solid var(--line);box-shadow:0 20px 28px #243e4c16;max-height:calc(100dvh - 110px);overflow:auto;overscroll-behavior:contain}#navigation.open{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:25px}.mega-group p{font-size:16px;margin:0 0 12px;padding-bottom:12px;border-bottom:1px solid var(--line)}.mega-group a{display:block;padding:8px 0;font-size:calc(14px * var(--text-scale,1));font-weight:500}.mega-group a:hover{text-decoration:underline}.text-size{grid-column:1/-1;display:flex;align-items:center;gap:10px;padding-top:18px;border-top:1px solid var(--line);font-size:14px}.text-size button{border:1px solid var(--line);border-radius:5px;background:white;padding:6px 14px;cursor:pointer}.text-size button[aria-pressed=true]{background:var(--ink);color:white}.page-guide{padding:12px 7%;display:flex;justify-content:space-between;gap:16px;align-items:start;background:#f6f8f9;position:relative;z-index:10}.breadcrumbs{display:flex;flex-wrap:wrap;gap:10px;font-size:calc(12px * var(--text-scale,1));font-weight:400}.breadcrumbs a{text-decoration:underline}.page-toc{font-size:calc(12px * var(--text-scale,1));min-width:160px}.page-toc summary{cursor:pointer;padding:0 8px}.page-toc nav{display:flex;flex-direction:column;align-items:stretch;gap:0;position:absolute;right:7%;background:white;border:1px solid var(--line);box-shadow:0 10px 20px #243e4c16;padding:12px 20px;min-width:220px}.page-toc a{padding:8px 0;font-size:inherit;font-weight:500}.fixed-actions{position:fixed;right:24px;bottom:24px;display:flex;gap:10px;align-items:center;z-index:18}.fixed-contact{background:#243e4c;color:white;border-radius:32px;padding:15px 22px;box-shadow:0 4px 20px #12356730;font-size:calc(13px * var(--text-scale,1));font-weight:700}.fixed-contact span{margin-left:12px}.fixed-top{width:48px;height:48px;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;background:white;font-size:24px;box-shadow:0 4px 20px #12356716}footer{padding-bottom:110px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}html{scroll-padding-top:130px}.header .brand-name{white-space:normal}body.text-enlarged .hero{height:auto;min-height:740px;padding:70px 0 140px}body.text-enlarged .hero-copy{margin-top:0}body.text-enlarged .service-image,body.text-enlarged .people-photo{align-self:start}body.text-enlarged .brand-name{font-size:13px}.fixed-contact:hover{background:#365a6c}
@media(max-width:800px){.header{padding:12px 5%;gap:8px}.header .company-logo{width:75px;height:44px}.header .brand{gap:8px;flex:1;min-width:0}.header .brand-name{font-size:10px}.header .brand-name small{display:none}.menu{padding:7px 12px;font-size:11px}.page-guide{padding:12px 5%;flex-direction:column;gap:6px}.page-toc nav{left:5%;right:5%;min-width:0}.page-toc{width:100%}#navigation{max-height:calc(100dvh - 85px);padding:20px 6%}#navigation.open{grid-template-columns:1fr;gap:16px}.mega-group p{font-size:14px;margin-bottom:5px;padding-bottom:7px}.mega-group a{padding:8px 0}.text-size{flex-wrap:wrap;padding-top:12px}.fixed-actions{left:14px;right:14px;bottom:calc(12px + env(safe-area-inset-bottom));gap:8px}.fixed-contact{flex:1;text-align:center;padding:13px 10px;font-size:calc(12px * var(--text-scale,1))}.fixed-top{flex-shrink:0;width:44px;height:44px}footer{padding-bottom:120px}html{scroll-padding-top:100px}.hero-meta{gap:14px}.contact-methods strong{overflow-wrap:anywhere}body.text-enlarged .hero{min-height:800px}body.text-enlarged .hero h1{font-size:36px}.brand-name{overflow-wrap:anywhere}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.business{background:#f5f8f9}
.business>p:not(.eyebrow){max-width:48em;margin:18px 0 24px;font-size:calc(16px * var(--text-scale,1))}
.business h3{margin:30px 0 12px;font-size:calc(20px * var(--text-scale,1))}
.business-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;list-style:none;counter-reset:estimate;padding:0;margin:0 0 24px}
.business-steps li{counter-increment:estimate;padding:18px;background:white;border:1px solid var(--line);border-radius:6px;font-size:calc(15px * var(--text-scale,1))}
.business-steps li::before{content:"0" counter(estimate);display:block;color:var(--blue);font-weight:700}
.business-steps span{display:block;margin-top:6px}
@media(max-width:800px){.business-steps{grid-template-columns:1fr}}
