:root {
  --navy:#0b1325; --ink:#111c30; --blue:#2457d6; --blue-light:#8eafff;
  --paper:#ffffff; --soft:#f3f5f8; --muted:#657083; --line:#dce1e9;
  --ease:cubic-bezier(.22,1,.36,1);
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:105px; }
body { margin:0; color:var(--ink); background:white; font-family:-apple-system,BlinkMacSystemFont,'Helvetica Neue',Arial,sans-serif; font-size:15px; line-height:1.65; -webkit-font-smoothing:antialiased; }
a { color:inherit; text-decoration:none; }
button,input,select,textarea { font:inherit; }
button { cursor:pointer; }
img { max-width:100%; display:block; }
h1,h2,h3,p { margin:0; }
h1,h2,h3 { line-height:1.08; font-weight:500; letter-spacing:-.045em; }
h1 { font-size:clamp(54px,5.25vw,86px); }
h2 { font-size:clamp(36px,3.45vw,56px); }
h3 { font-size:25px; }
a,button { -webkit-tap-highlight-color:transparent; }
a:focus-visible,button:focus-visible,summary:focus-visible { outline:3px solid var(--blue-light); outline-offset:5px; }
::selection { background:#b8ccff; color:var(--navy); }
.skip { position:fixed; z-index:100; top:-100px; left:12px; background:white; padding:15px; }
.skip:focus { top:10px; }
.topline { display:flex; justify-content:space-between; gap:25px; padding:9px 5%; background:var(--navy); color:#d3daea; font-size:10px; letter-spacing:.035em; }
.topline a { color:white; }
header { position:sticky; top:0; z-index:20; display:flex; justify-content:space-between; align-items:center; gap:30px; padding:19px 5%; background:rgba(255,255,255,.97); border-bottom:1px solid #e6e9ef; }
header::after { content:''; position:absolute; bottom:-1px; left:0; height:2px; width:100%; background:var(--blue); transform:scaleX(var(--scroll-progress,0)); transform-origin:left; }
.brand { display:flex; gap:14px; align-items:center; flex-shrink:0; }
.brand img { width:56px; height:48px; flex-shrink:0; object-fit:contain; mix-blend-mode:multiply; }
.brand>span { display:block; font-size:17px; letter-spacing:.015em; font-weight:700; line-height:1.15; white-space:nowrap; }
.brand-small { display:block; font-size:10.5px; letter-spacing:.065em; font-weight:550; line-height:1.3; margin-top:6px; color:#344258; white-space:nowrap; }
nav { display:flex; align-items:center; gap:29px; font-size:12px; }
nav>a:not(.button) { position:relative; padding:10px 0; }
nav>a:not(.button)::after { content:''; position:absolute; bottom:3px; left:0; width:100%; height:1px; background:var(--blue); transform:scaleX(0); transform-origin:left; transition:transform .35s var(--ease); }
nav>a:hover::after { transform:scaleX(1); }
.home-link { color:var(--blue); }
.menu { display:none; }
.button { position:relative; display:inline-flex; align-items:center; justify-content:space-between; gap:35px; border:1px solid var(--blue); padding:17px 22px; font-size:12px; font-weight:550; line-height:1.3; color:white; background:var(--blue); overflow:hidden; transition:background .3s,box-shadow .3s,transform .3s var(--ease); }
.button::before { content:''; position:absolute; inset:0; background:linear-gradient(110deg,transparent 25%,#ffffff1f 50%,transparent 75%); transform:translateX(-140%); transition:transform .8s var(--ease); pointer-events:none; }
.button:hover::before { transform:translateX(140%); }
.button:hover { background:#1947bd; box-shadow:0 9px 24px #0c2f651c; transform:translateY(-2px); }
.button span { display:inline-block; font-size:20px; font-weight:400; transition:transform .35s var(--ease); }
.button:hover span { transform:translate(3px,-3px); }
.button.small { padding:13px 18px; gap:22px; }
.hero { position:relative; isolation:isolate; min-height:690px; height:calc(100svh - 130px); max-height:900px; background:var(--navy); color:white; overflow:hidden; }
.hero-photo { position:absolute; inset:0; z-index:-3; background:#182333; }
.hero-photo>img { width:100%; height:100%; object-fit:cover; object-position:70% 52%; animation:hero-settle 1.8s var(--ease) both; }
.hero::before { content:''; position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg,rgba(6,15,31,.96) 0%,rgba(6,15,31,.85) 31%,rgba(6,15,31,.35) 58%,rgba(6,15,31,.04) 80%),linear-gradient(0deg,#070e1dc7,transparent 35%); }
.hero-copy { padding:clamp(65px,7vh,110px) 6%; position:relative; max-width:940px; }
.eyebrow { display:flex; align-items:center; gap:15px; color:var(--blue); font-size:10px; font-weight:650; letter-spacing:.15em; line-height:1.6; margin-bottom:24px; }
.hero .eyebrow { color:#b2c8ff; }
.line { display:inline-block; height:1px; width:32px; background:var(--blue-light); }
.hero h1 { max-width:800px; margin-bottom:25px; }
.hero h1 span { color:#a9c0f5; }
.intro { color:#d0d7e3; font-size:15px; line-height:1.85; max-width:430px; }
.hero-actions { display:flex; flex-wrap:wrap; gap:14px; margin-top:32px; }
.hero-paths { display:flex; flex-wrap:wrap; gap:4px 22px; margin-top:14px; }
.hero-paths a { display:inline-flex; flex-direction:column; align-items:flex-start; justify-content:center; gap:4px; min-height:44px; padding:4px 0; color:#c4d5ff; font-size:12px; font-weight:600; }
.hero-path-title { text-decoration:underline; text-underline-offset:4px; }
.hero-path-title span { margin-left:4px; }
.hero-path-subtitle { color:#bcc8dd; font-size:11px; font-weight:500; line-height:1.35; }
.hero-paths a:hover { color:white; }
.hero-paths + .hero-proof { margin-top:23px; }
@media (min-width:761px) and (max-width:940px) { .hero-paths { max-width:42vw; } }
.button.outline { border-color:#ffffff55; background:#ffffff06; backdrop-filter:blur(4px); }
.button.outline:hover { background:#ffffff14; }
.hero-proof { display:flex; align-items:center; gap:25px; margin-top:38px; }
.hero-proof b { font-size:27px; font-weight:500; letter-spacing:-.025em; }
.stars { letter-spacing:2px; font-size:12px; }
.hero-proof .stars { color:#a6c0ff; margin-left:10px; }
.hero-proof small { display:block; font-size:10px; color:#c2ccdc; margin-top:2px; }
.proof-divider { width:1px; height:36px; background:#ffffff30; }
.hero-proof p { color:#c2ccdc; font-size:11px; line-height:1.7; }
.hero-side { position:absolute; right:35px; top:50%; writing-mode:vertical-rl; font-size:9px; letter-spacing:.2em; color:#fff; }
.scroll-cue { position:absolute; bottom:27px; left:6%; display:flex; align-items:center; gap:19px; font-size:8px; letter-spacing:.15em; }
.scroll-arrow { display:grid; place-items:center; width:36px; height:36px; border:1px solid #ffffff45; border-radius:50%; font-size:16px; transition:transform .4s var(--ease); }
.scroll-cue:hover .scroll-arrow { transform:translateY(4px); }
.hero-index { position:absolute; bottom:36px; right:6%; color:#f5f7ff; font-size:9px; letter-spacing:.08em; }
.hero-index span { color:#c0cadb; }
.hero-reveal { animation:hero-reveal 1.1s var(--ease) both; }
.hero-reveal:nth-child(2) { animation-delay:.12s; }
.hero-reveal:nth-child(3) { animation-delay:.22s; }
.hero-reveal:nth-child(4) { animation-delay:.32s; }
.hero-reveal:nth-child(5) { animation-delay:.42s; }
.hero-reveal:nth-child(6) { animation-delay:.5s; }
@keyframes hero-reveal { from{opacity:0;transform:translateY(25px)}to{opacity:1;transform:translateY(0)} }
@keyframes hero-settle { from{transform:scale(1.035)}to{transform:scale(1)} }
.trust-strip { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:29px 6%; background:#f5f6f9; border-bottom:1px solid var(--line); }
.trust-strip>span { color:var(--muted); font-size:8px; font-weight:550; letter-spacing:.12em; max-width:160px; }
.trust-strip>b { font-size:14px; font-weight:500; }
.trust-strip i { font-style:normal; font-size:16px; font-weight:300; color:#9ba9bf; }
.section { padding:100px 6%; }
.section-head { display:grid; grid-template-columns:1.25fr 1fr; gap:80px; align-items:end; margin-bottom:45px; }
.section-head>p,.section-head>div>p:not(.eyebrow) { color:var(--muted); font-size:14px; line-height:1.8; max-width:420px; }
.services-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:22px; }
.service { min-width:0; }
.service-photo { position:relative; overflow:hidden; height:200px; background:var(--soft); }
.service-photo img { width:100%; height:100%; object-fit:cover; transition:transform .9s var(--ease); }
.service:hover .service-photo img { transform:scale(1.045); }
.service-num { position:absolute; top:14px; left:14px; display:grid; place-items:center; width:31px; height:31px; background:white; color:var(--ink); font-size:10px; }
.service-body { display:flex; flex-direction:column; height:calc(100% - 200px); padding:24px 0 0; }
.service h3 { font-size:23px; line-height:1.2; margin-bottom:17px; letter-spacing:-.035em; }
.service p { color:var(--muted); font-size:12px; line-height:1.85; margin-bottom:22px; }
.service-tags { margin-top:auto; font-size:9px; color:#647187; margin-bottom:20px; line-height:1.7; }
.service a { display:flex; justify-content:space-between; gap:10px; font-size:11px; padding:15px 0; border-top:1px solid var(--line); color:var(--ink); }
.service a span { color:var(--blue); transition:transform .3s var(--ease); }
.service a:hover span { transform:translate(3px,-3px); }
.service-paths { display:flex; flex-wrap:wrap; gap:10px 15px; padding-bottom:16px; }
.service .service-paths a.service-details { justify-content:flex-start; gap:5px; padding:0; }
.work-section { background:var(--soft); }
.filters { display:flex; flex-wrap:wrap; gap:8px; margin-top:22px; }
.filters button { padding:9px 15px; font-size:10px; background:transparent; border:1px solid #c7cfdd; color:var(--muted); border-radius:2px; transition:color .25s,background .25s,border-color .25s; }
.filters .active { background:var(--navy); color:white; border-color:var(--navy); }
.filters button:hover:not(.active) { border-color:var(--blue); color:var(--blue); }
.projects { display:grid; grid-template-columns:repeat(2,1fr); gap:38px 28px; }
.project { padding:0; text-align:left; border:0; background:transparent; color:var(--ink); min-width:0; }
.project[hidden] { display:none!important; }
.project-image { position:relative; height:360px; overflow:hidden; background:#e0e5ec; }
.project-image>img { height:100%; width:100%; object-fit:cover; transition:transform 1.1s var(--ease),filter .7s; }
.project-comparison .project-image>img { object-fit:contain; }
.project:hover .project-image>img { transform:scale(1.035); }
.project-image>span { position:absolute; bottom:16px; right:16px; background:#ffffffed; padding:11px 15px; font-size:10px; transition:background .3s,color .3s,transform .4s var(--ease); }
.project:hover .project-image>span { background:var(--blue); color:white; transform:translateY(-3px); }
.project-before .project-image>img { object-fit:cover; }
.project-before .project-image>.project-after-preview { inset:12px 12px auto auto; width:clamp(68px,8vw,92px); aspect-ratio:1; overflow:hidden; border:2px solid white; border-radius:50%; background:var(--navy); padding:0; box-shadow:0 2px 12px #070e2066; transform:none; }
.project-after-preview img { width:100%; height:100%; object-fit:cover; }
.project-caption { margin-top:18px; }
.project-caption h3 { font-size:22px; letter-spacing:-.035em; }
.project-caption>span { display:block; font-size:10px; color:var(--muted); margin-top:8px; }
.about { display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:8%; }
.about-photo { position:relative; min-height:570px; height:100%; overflow:hidden; background:var(--soft); }
.about-photo img { position:absolute; width:100%; height:100%; object-fit:cover; }
.image-label { position:absolute; bottom:23px; left:23px; background:#fff; padding:15px 20px; color:var(--ink); font-size:9px; letter-spacing:.12em; }
.about-copy h2 { font-size:clamp(35px,3vw,46px); }
.about-copy>p:not(.eyebrow) { color:var(--muted); font-size:13px; line-height:1.85; margin-top:23px; }
.values { margin:28px 0; }
.values>div { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:17px 0; border-top:1px solid var(--line); font-size:11px; }
.values b { font-weight:550; }
.values p { font-size:10px; color:var(--muted); }
.text-link { display:inline-block; font-size:11px; padding-bottom:5px; border-bottom:1px solid #8392aa; transition:color .3s,border-color .3s; }
.text-link:hover { color:var(--blue); border-color:var(--blue); }
.review { overflow:hidden; position:relative; background:#edf2fc; display:grid; grid-template-columns:.85fr 1.15fr; gap:8%; align-items:center; padding-top:110px; padding-bottom:110px; }
.review::before { content:''; position:absolute; width:520px; height:520px; right:3%; top:5%; border:1px solid #d7e1f4; border-radius:50%; pointer-events:none; }
.review::after { content:''; position:absolute; width:620px; height:620px; right:-1%; top:-8%; border:1px solid #e0e7f6; border-radius:50%; pointer-events:none; }
.review-intro { position:relative; z-index:1; }
.review-intro h2 { font-size:clamp(35px,3.3vw,50px); }
.review-rating { display:flex; gap:18px; align-items:center; margin-top:30px; }
.rating { font-size:64px; font-weight:400; letter-spacing:-.06em; line-height:1; }
.review-rating>div { display:flex; flex-direction:column; gap:7px; }
.review-rating .stars { color:#3159aa; }
.review-rating a { font-size:10px; color:#4f6382; border-bottom:1px solid #a9b9d3; }
.review-cards { position:relative; z-index:1; display:flex; flex-direction:column; align-items:flex-start; gap:18px; padding:4px 0; }
.review-card { position:relative; background:#fff; width:86%; padding:25px 28px; border:1px solid #e5eaf4; box-shadow:0 15px 35px -20px #1e3a6240; border-radius:10px; }
.review-card:nth-child(even) { align-self:flex-end; }
.review-card:nth-child(3) { margin-left:8%; }
.review-stars { color:#315ab0; font-size:10px; letter-spacing:2px; }
.review-project { margin:8px 0 0; color:#3159aa; font-size:11px; font-weight:650; line-height:1.4; }
blockquote { margin:13px 0 20px; font-size:21px; font-weight:450; line-height:1.35; letter-spacing:-.025em; }
.review-project + blockquote { margin-top:8px; }
.review-person { display:flex; align-items:center; gap:11px; }
.avatar { background:#eff3fa; display:grid; place-items:center; width:32px; height:32px; font-size:9px; border-radius:50%; color:#577097; }
.review-person b { display:block; font-size:10px; font-weight:550; }
.review-person small { display:block; font-size:9px; color:var(--muted); }
.review-person a { text-decoration:underline; text-underline-offset:2px; }
.google-mark { margin-left:auto; width:20px; height:20px; flex:none; object-fit:contain; }
.review-card:focus-within { opacity:1; transform:none; }
@media (prefers-reduced-motion:no-preference) {
  .review .review-card { --review-entry-x:-25px; --review-entry-angle:-1.5deg; transition:opacity .65s var(--ease) var(--reveal-delay,0ms),transform .9s var(--ease) var(--reveal-delay,0ms),box-shadow .4s var(--ease),translate .4s var(--ease); }
  .review .review-card:nth-child(even) { --review-entry-x:25px; --review-entry-angle:1.5deg; }
  .review-card.reveal-ready:not(.in-view):not(:focus-within) { transform:translate(var(--review-entry-x),24px) rotate(var(--review-entry-angle)) scale(.97); }
  .review-card:hover { translate:0 -4px; box-shadow:0 25px 45px -20px #1e3a6250; }
}
@media (min-width:1101px) {
  .review-cards { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:stretch; }
  .review-cards>.review-card { display:flex; flex-direction:column; width:100%; margin:0; align-self:stretch; padding:22px; }
  .review-card blockquote { font-size:19px; }
  .review-card .review-person { margin-top:auto; }
}
.contact { display:grid; grid-template-columns:1fr 1fr; align-items:start; gap:9%; color:white; background:var(--navy); }
.contact .eyebrow { color:#99b7ff; }
.contact-info>p:not(.eyebrow) { color:#b8c4d8; font-size:13px; max-width:360px; margin:25px 0 32px; }
.contact-info>a { display:block; width:fit-content; font-size:13px; color:#d4dfef; }
.contact-info .phone { color:white; font-size:30px; letter-spacing:-.04em; margin-bottom:8px; }
.contact-details { display:grid; grid-template-columns:1fr 1fr; gap:25px; margin-top:40px; font-size:11px; }
.contact-details h3 { font-size:11px; font-weight:550; letter-spacing:0; margin-bottom:14px; }
.contact-details p { color:#acbbd1; line-height:1.8; }
.contact-details a { display:inline-block; border-bottom:1px solid #6c7d98; margin-top:12px; font-size:10px; }
.quote-panel { min-width:0; }
.quote-alternative { margin:0 0 10px; text-align:right; font-size:12px; }
.quote-fallback { color:#d4dfef; text-decoration:underline; text-underline-offset:4px; }
.quote-frame { display:block; width:100%; height:1060px; border:0; background:#edf2ff; border-radius:10px; }
@media (max-width:480px) { .quote-frame { height:1130px; } }
.faq { display:grid; grid-template-columns:1fr 1.2fr; gap:10%; }
details { border-top:1px solid var(--line); padding:20px 0; }
details:last-child { border-bottom:1px solid var(--line); }
summary { cursor:pointer; font-size:13px; font-weight:500; }
details p { color:var(--muted); font-size:12px; padding-top:15px; max-width:500px; line-height:1.8; }
footer { background:#f3f5f8; padding:45px 6% 23px; }
.footer-main { display:flex; justify-content:space-between; align-items:center; gap:30px; padding-bottom:35px; }
.footer-main p { color:var(--muted); font-size:11px; }
.footer-instagram { display:inline-flex; align-items:center; gap:7px; font-size:11px; }
.footer-instagram svg { flex-shrink:0; }
.footer-bottom { border-top:1px solid var(--line); display:flex; justify-content:space-between; gap:20px; padding-top:22px; color:var(--muted); font-size:9px; }
dialog { max-width:900px; width:90vw; max-height:92svh; border:0; background:white; color:var(--ink); padding:24px; }
dialog::backdrop { background:#070e20d9; backdrop-filter:blur(5px); }
.dialog-head { display:flex; justify-content:space-between; align-items:center; gap:20px; margin-bottom:20px; }
.dialog-head h2 { font-size:25px; }
.dialog-head button { padding:9px 12px; background:var(--soft); border:1px solid var(--line); font-size:11px; }
dialog img { max-height:72svh; object-fit:contain; margin:auto; }
.gallery-comparison { display:flex; justify-content:center; gap:8px; margin:0 0 16px; }
.gallery-comparison[hidden] { display:none; }
.gallery-comparison button { border:1px solid var(--line); background:white; color:var(--ink); padding:8px 17px; border-radius:99px; font-size:12px; }
.gallery-comparison button[aria-pressed="true"] { border-color:var(--blue); background:var(--blue); color:white; }
dialog>p { margin-top:15px; color:var(--muted); font-size:10px; }
.case-study { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; margin:22px 0 0; }
.case-study>div { border-top:1px solid var(--line); padding-top:12px; }
.case-study dt { color:var(--blue); font-size:11px; font-weight:650; }
.case-study dd { margin:4px 0 0; font-size:13px; line-height:1.65; }
@media(max-width:600px) { .case-study { grid-template-columns:1fr; gap:12px; } }
.reveal-ready { opacity:0; transform:translateY(28px); transition:opacity 1s var(--ease),transform 1s var(--ease); transition-delay:var(--reveal-delay,0ms); }
.reveal-ready.in-view { opacity:1; transform:translateY(0); }
@media(min-width:1700px) { .hero-copy{padding-top:110px}.section{padding-left:max(6%,calc((100vw - 1500px)/2));padding-right:max(6%,calc((100vw - 1500px)/2))} }
@media(max-width:1100px) { nav{gap:20px}.home-link{display:none}.brand>span{font-size:15px}.brand-small{font-size:9.5px}.brand img{width:52px;height:46px}.hero{min-height:660px;max-height:820px}.hero-copy{padding-top:70px}.hero h1{font-size:65px}.section{padding:75px 5%}.section-head{gap:40px}.services-grid{grid-template-columns:repeat(2,1fr);gap:35px 25px}.service-photo{height:250px}.service-body{height:calc(100% - 250px)}.service p{max-width:360px}.project-image{height:310px}.about{gap:5%}.about-photo{min-height:550px}.contact{gap:5%}.review{gap:5%}.review-card{width:94%}.review-card:nth-child(3){margin-left:0}.footer-main{gap:25px} }
@media(max-width:760px) {
  html{scroll-padding-top:85px}.topline{padding:8px 5%;font-size:8px}.topline span{max-width:170px}header{padding:15px 5%;gap:15px}.brand{gap:11px}.brand img{width:48px;height:44px}.brand>span{font-size:14px}.brand-small{font-size:9.5px;margin-top:5px}.menu{display:block;padding:8px 11px;font-size:10px;letter-spacing:.02em;border:1px solid var(--line);background:white;color:var(--ink)}nav{display:none;position:absolute;top:100%;left:0;right:0;padding:23px 6%;background:#fff;flex-direction:column;align-items:stretch;gap:15px;border-bottom:1px solid var(--line);box-shadow:0 15px 25px #0c1a3312}nav.open{display:flex}.home-link{display:block}
  h1{font-size:clamp(42px,10.5vw,72px)}h2{font-size:37px}.hero{height:auto;min-height:0;max-height:none;padding-bottom:300px}.hero-copy{padding:43px 6% 40px;max-width:none;background:var(--navy)}.hero-photo{top:auto;height:340px;bottom:0}.hero-photo>img{object-position:65% 55%;animation:none}.hero::before{background:linear-gradient(0deg,#07102160,transparent 35%);top:auto;height:340px}.hero h1{font-size:clamp(39px,10.5vw,68px);margin-bottom:22px}.hero .eyebrow{font-size:8px;margin-bottom:23px}.intro{font-size:13px;line-height:1.85}.hero-actions{gap:10px;margin-top:25px}.hero-actions .button{padding:14px 15px;font-size:10px;gap:18px}.hero-proof{margin-top:27px;gap:20px}.hero-proof b{font-size:24px}.hero-proof small,.hero-proof p{font-size:9px}.hero-side{writing-mode:initial;top:auto;right:6%;bottom:22px;font-size:8px;letter-spacing:.1em}.scroll-cue{display:none}.hero-index{left:6%;right:auto;bottom:47px;font-size:8px}.trust-strip{padding:24px 6%;justify-content:center;flex-wrap:wrap;gap:12px 15px}.trust-strip>span{max-width:none;flex-basis:100%;text-align:center;font-size:8px;margin-bottom:3px}.trust-strip b{font-size:11px}.trust-strip i{font-size:12px}.trust-strip i:last-of-type{display:none}
  .section{padding:57px 6%}.section-head{grid-template-columns:1fr;gap:22px;margin-bottom:30px}.section-head>p,.section-head>div>p:not(.eyebrow){font-size:13px;max-width:none}.eyebrow{font-size:8px;margin-bottom:18px}.services-grid{gap:28px 18px}.service-photo{height:170px}.service-body{height:calc(100% - 170px);padding-top:19px}.service h3{font-size:20px}.service p{font-size:11px;line-height:1.8;margin-bottom:17px}.service-tags{font-size:8px;margin-bottom:14px}.service a{font-size:9px;padding:13px 0}.service-num{width:25px;height:25px;top:10px;left:10px;font-size:8px}.filters{margin-top:20px;gap:6px}.filters button{padding:8px 11px;font-size:9px}.projects{grid-template-columns:1fr;gap:30px}.project-image{height:auto;aspect-ratio:1.35}.project-caption{margin-top:16px}.project-caption h3{font-size:21px}.project-caption>span{font-size:9px}.project-image>span{font-size:9px;padding:9px 13px}
  .about{grid-template-columns:1fr;gap:35px}.about-photo{min-height:350px}.about-copy h2{font-size:36px}.about-copy>p:not(.eyebrow){font-size:12px}.values>div{font-size:10px;gap:10px}.values p{font-size:9px}.image-label{font-size:8px;padding:12px 16px;bottom:17px;left:17px}
  .review{grid-template-columns:1fr;gap:35px}.review::before{width:400px;height:400px;top:43%;right:-70px}.review::after{width:470px;height:470px;top:40%;right:-105px}.review-intro h2{font-size:36px}.review-rating{margin-top:25px}.rating{font-size:55px}.review-cards{gap:15px}.review-card{width:93%;padding:22px 24px}.review-card:nth-child(3){margin-left:0}.review-card blockquote{font-size:21px}.review-person b{font-size:10px}.review-rating a{font-size:9px}
  .contact{grid-template-columns:1fr;gap:35px}.contact-info h2{font-size:39px}.contact-info>p:not(.eyebrow){font-size:12px;max-width:none}.contact-info .phone{font-size:28px}.contact-details{margin-top:30px}.contact-details h3{font-size:10px}.contact-details p{font-size:10px}.faq{grid-template-columns:1fr;gap:28px}.faq h2{font-size:35px}.footer-main{align-items:flex-start;flex-direction:column;gap:23px}.footer-bottom{flex-direction:column;gap:15px}.dialog-head h2{font-size:21px}dialog{padding:17px}
}
@media(max-width:380px) { .hero-actions{gap:9px}.hero-actions .button{padding:13px 12px;gap:11px;font-size:9px}.service h3{font-size:18px}.service-photo{height:150px}.service-body{height:calc(100% - 150px)} }

/* Two scales of service, brought together in the opening composition. */
.hero-photo { left:58%; right:0; top:0; bottom:0; z-index:-2; }
.hero-photo>img { object-position:54% 48%; }
.hero::before { z-index:-1; background:linear-gradient(90deg,var(--navy) 42%,#0b1325e6 49%,#0b132560 60%,transparent 72%); }
.hero-copy { max-width:60%; padding-right:0; z-index:3; }
.hero h1 { font-size:clamp(54px,4.8vw,82px); }
.hero-inset { position:absolute; right:23%; bottom:7%; width:29%; height:39%; z-index:2; padding:6px; background:white; box-shadow:0 25px 65px #02071455; animation:hero-reveal 1.2s .35s var(--ease) both; }
.hero-inset>img { width:100%; height:calc(100% - 49px); object-fit:cover; object-position:72% 65%; }
.hero-inset>div { display:flex; justify-content:space-between; align-items:center; gap:10px; color:var(--ink); padding:15px 11px 9px; line-height:1.3; }
.hero-inset span { font-size:8px; letter-spacing:.11em; font-weight:600; }
.hero-inset small { font-size:7px; color:var(--muted); }
.hero-image-label { position:absolute; right:24px; bottom:30px; text-align:right; color:white; z-index:2; text-shadow:0 2px 8px #051022c4; }
.hero-image-label span { display:block; font-size:9px; font-weight:600; letter-spacing:.13em; }
.hero-image-label small { font-size:9px; }
.hero-photo::after { content:''; position:absolute; inset:55% 0 0; background:linear-gradient(transparent,#081323a8); pointer-events:none; }
@media(max-width:1100px) and (min-width:761px) { .hero h1{font-size:clamp(46px,5.1vw,62px)}.hero-inset{right:18%;width:34%;height:35%}.hero-copy{max-width:63%}.hero .intro{font-size:13px} }
@media(max-width:760px) {
 .hero{padding-bottom:340px}.hero-copy{max-width:none;padding-right:6%;padding-bottom:35px}.hero h1{font-size:clamp(39px,10.2vw,68px)}
 .hero-photo{left:40%;right:0;top:auto;bottom:0;height:340px;z-index:-2}.hero-photo>img{object-position:52% 45%}
 .hero::before{height:340px;top:auto;bottom:0;background:linear-gradient(90deg,var(--navy) 5%,#0b132599 25%,transparent 55%)}
 .hero-inset{right:auto;left:6%;bottom:39px;width:55%;height:205px;padding:4px;animation:none}.hero-inset>img{height:calc(100% - 44px);object-position:73% center}.hero-inset>div{display:block;padding:8px 7px}.hero-inset span{display:block;font-size:7px}.hero-inset small{display:block;font-size:7px;margin-top:3px}
 .hero-image-label{right:16px;bottom:15px}.hero-image-label span{font-size:7px}.hero-image-label small{font-size:8px}
}

@media(prefers-reduced-motion:reduce) { html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.reveal-ready{opacity:1;transform:none} }

.credentials { padding:46px 6% 35px; border-bottom:1px solid var(--line); }
.credential-grid { display:grid; grid-template-columns:1fr 1fr 1fr; gap:30px; align-items:center; }
.credential-statement { display:flex; gap:20px; align-items:flex-start; }
.credential-check { color:var(--blue); border:1px solid #c9d7f9; width:35px; height:35px; display:grid; place-items:center; font-size:18px; margin-top:2px; }
.credential-statement h2 { font-size:26px; letter-spacing:-.03em; }
.credential-statement p { font-size:10px; color:var(--muted); margin-top:10px; line-height:1.7; }
.credential-item { display:flex; align-items:center; justify-content:center; gap:20px; padding:10px 20px; border-left:1px solid var(--line); }
.credential-item img { object-fit:contain; width:auto; max-width:150px; max-height:78px; }
.credential-item b { display:block; font-size:13px; font-weight:600; letter-spacing:.025em; }
.credential-item span { display:block; font-size:10px; color:var(--muted); margin-top:4px; white-space:nowrap; }
.partners { border-top:1px solid var(--line); margin-top:35px; padding-top:26px; display:flex; align-items:center; gap:60px; }
.partners>p { font-size:8px; letter-spacing:.12em; color:var(--muted); white-space:nowrap; }
.partner-logos { display:flex; align-items:center; justify-content:space-around; gap:50px; flex:1; }
.partner-logos>div { display:flex; align-items:center; justify-content:center; }
.partner-logos img { object-fit:contain; max-height:54px; max-width:160px; }
.cpm-partner { gap:10px; }
.cpm-partner img { max-width:38px; max-height:38px; }
.cpm-partner span { font-size:11px; line-height:1.3; font-weight:550; letter-spacing:-.01em; }
.footer-main address { font-style:normal; color:var(--muted); font-size:11px; line-height:1.8; }
.footer-main address span { display:block; font-size:9px; margin-top:8px; }
@media(max-width:1100px) { .credential-item { gap:12px;padding:10px }.credential-item img { max-width:110px;max-height:65px }.credential-statement h2{font-size:23px}.partners{gap:30px}.partner-logos{gap:25px} }
@media(max-width:760px) { .credentials{padding:35px 6% 30px}.credential-grid{grid-template-columns:1fr 1fr;gap:25px 15px}.credential-statement{grid-column:1/-1;gap:16px;border-bottom:1px solid var(--line);padding-bottom:25px}.credential-statement h2{font-size:26px}.credential-statement h2 br,.credential-statement p br{display:none}.credential-statement p{font-size:10px}.credential-item{border-left:0;flex-direction:column;gap:12px;text-align:center;padding:0}.credential-item img{height:62px;max-width:130px}.credential-item:first-of-type img{width:62px}.credential-item b{font-size:12px}.credential-item span{font-size:10px}.partners{display:block;margin-top:28px;padding-top:24px}.partners>p{text-align:center;font-size:7px;margin-bottom:24px}.partner-logos{display:grid;grid-template-columns:1fr 1fr;gap:23px}.partner-logos img{max-width:120px;max-height:45px}.cpm-partner{grid-column:1/-1}.cpm-partner img{max-width:32px;max-height:32px}.cpm-partner span{font-size:10px} }

.service a.service-details{border:0;padding:0 0 16px;color:var(--blue);font-size:10px}.footer-services{position:static;display:flex;flex-wrap:wrap;align-items:center;gap:10px 22px;font-size:10px;padding:0 0 25px;color:var(--muted)}
.detail-intro{background:var(--navy);color:white}.detail-intro .eyebrow{color:#abc3ff}.detail-intro h1{font-size:clamp(45px,4.8vw,72px);max-width:900px}.detail-intro>p:not(.eyebrow){max-width:650px;font-size:16px;color:#b9c6db;margin-top:25px}.detail-intro .button{margin-top:30px}.detail-body{display:grid;grid-template-columns:1fr 1fr;gap:7%;align-items:start}.detail-body>div>img{width:100%;max-height:620px;object-fit:cover}.detail-caption{font-size:9px;color:var(--muted);margin-top:12px}.detail-body h2{font-size:40px}.detail-body p:not(.eyebrow):not(.detail-caption){font-size:14px;line-height:1.9;color:var(--muted);margin:23px 0}.detail-body ul{padding:0 0 0 17px;color:var(--muted);font-size:14px;line-height:2}.detail-body h3{font-size:25px;margin-top:30px}.detail-cta{background:var(--soft)}.detail-cta p:not(.eyebrow){font-size:12px;color:var(--muted);margin:25px 0}.detail-cta>a{display:block;width:fit-content;margin-top:20px}.service-directory{display:grid;grid-template-columns:1fr 1fr;gap:50px}.service-directory article{border-top:1px solid var(--line);padding-top:25px}.service-directory h2{font-size:30px}.service-directory p{font-size:14px;color:var(--muted);margin:20px 0}
@media(max-width:760px){.footer-services{position:static;display:flex;padding:0 0 25px;background:transparent;box-shadow:none;border:0;gap:13px;font-size:10px}.detail-intro h1{font-size:42px}.detail-intro>p:not(.eyebrow){font-size:14px}.detail-body{grid-template-columns:1fr;gap:35px}.detail-body h2{font-size:34px}.detail-body p:not(.eyebrow):not(.detail-caption),.detail-body ul{font-size:13px}.service-directory{grid-template-columns:1fr;gap:35px}}

.about-copy h1{font-size:clamp(35px,3vw,46px)}.contact-info h1{font-size:clamp(36px,3.45vw,56px)}@media(max-width:760px){.about-copy h1{font-size:36px}.contact-info h1{font-size:39px}}

/* Keep the wordmark legible and balanced across the compact header sizes. */
@media (min-width:600px) and (max-width:760px) {
 .brand{gap:12px}.brand img{width:52px;height:46px}
 .brand>span{font-size:16px}.brand-small{font-size:10px}
}
@media (max-width:380px) {
 header{gap:12px}.brand{gap:10px}.brand img{width:44px;height:40px}
 .brand>span{font-size:13px}.brand-small{font-size:8.5px}
}
.menu{flex-shrink:0}

/* A featured kitchen photograph closes the project gallery. */
.project-featured { grid-column:1/-1; display:grid; grid-template-columns:1.6fr 1fr; align-items:stretch; background:#fff; }
.project-featured .project-image { height:auto; aspect-ratio:1900/1267; }
.project-featured .project-caption { display:flex; flex-direction:column; justify-content:center; margin:0; padding:40px; }
.project-featured .project-caption h3 { font-size:clamp(27px,2.7vw,38px); }
.project-featured .project-caption .eyebrow { font-size:8px; margin-bottom:18px; }
.featured-description { color:var(--muted); font-size:13px; line-height:1.8; margin-top:23px; max-width:270px; }
@media(max-width:1100px) { .project-featured .project-caption { padding:28px; }.featured-description{font-size:12px;margin-top:18px} }
@media(max-width:760px) { .project-featured { display:block; }.project-featured .project-image { height:auto; aspect-ratio:1900/1267; }.project-featured .project-caption { padding:26px 24px; }.project-featured .project-caption h3 { font-size:29px; }.project-featured .project-caption .eyebrow{margin-bottom:15px}.featured-description{max-width:none} }

dialog #gallery-image { width:auto; height:auto; max-width:100%; }
.service-photo-gallery { background:var(--soft); }
.service-photo-gallery + .service-photo-gallery { padding-top:0; }
.service-photo-gallery .projects { grid-template-columns:repeat(3,minmax(0,1fr)); }
.service-photo-gallery .project-image { height:auto; aspect-ratio:4/3; }
@media (max-width:1000px) { .service-photo-gallery .projects { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:600px) { .service-photo-gallery .projects { grid-template-columns:1fr; } }
