:root{--paper:#f5f2ec;--ink:#20201e;--muted:#716d65;--line:#d2cbc0;--accent:#d9573f;--accent-dark:#a83d2d;--blue:#27485b;--white:#fffdf9;--display:Georgia,"Times New Roman",serif;--body:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--body);line-height:1.6}a{color:inherit}.shell{width:min(1040px,calc(100% - 48px));margin:0 auto}.topbar .shell{width:min(1160px,calc(100% - 48px))}.topbar{position:sticky;top:0;z-index:20;border-bottom:1px solid rgba(210,203,192,.86);background:rgba(245,242,236,.92);backdrop-filter:blur(12px)}.topbar-inner{min-height:68px;display:flex;align-items:center;justify-content:space-between;gap:24px}.mark{font-size:.95rem;font-weight:800;letter-spacing:-.03em;text-decoration:none}nav{display:flex;gap:24px}nav a{color:var(--muted);font-size:.84rem;text-decoration:none}nav a:hover,nav a:focus-visible{color:var(--accent-dark)}.back{color:var(--accent-dark);font-size:.86rem;font-weight:800;text-decoration:none}.back:hover,.back:focus-visible{color:var(--ink)}main{padding:clamp(54px,8vw,94px) 0 90px}.eyebrow{margin:0 0 14px;color:var(--accent-dark);font-size:.72rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase}h1,h2,p{margin-top:0}h1{max-width:850px;margin-bottom:18px;font-family:var(--display);font-size:clamp(3rem,8vw,6.8rem);font-weight:500;letter-spacing:-.07em;line-height:.9}.lede{max-width:720px;margin-bottom:24px;color:var(--muted);font-size:clamp(1rem,2vw,1.22rem)}.meta{display:flex;flex-wrap:wrap;gap:8px}.pill{border:1px solid var(--line);border-radius:999px;padding:5px 11px;color:var(--muted);font-size:.74rem}.media{min-height:clamp(280px,52vw,570px);display:grid;place-items:center;margin:54px 0;border:1px solid var(--line);background:var(--blue);color:rgba(255,255,255,.72);text-align:center}.media strong{display:block;color:var(--white);font-family:var(--display);font-size:clamp(2rem,5vw,4rem);font-weight:500}.media span{font-size:.75rem;letter-spacing:.12em;text-transform:uppercase}.content-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,.55fr);gap:70px}.copy h2{margin:0 0 15px;font-size:1.4rem}.copy p,.copy li{color:var(--muted)}.copy ul{margin:0;padding-left:19px}.copy li+li{margin-top:8px}.side{border-top:2px solid var(--ink);padding-top:17px}.side-block+ .side-block{margin-top:25px}.side strong{display:block;margin-bottom:5px;font-size:.78rem}.side span{color:var(--muted);font-size:.88rem}.action-row{display:flex;flex-wrap:wrap;gap:18px;margin-top:30px}.action{display:inline-flex;min-height:42px;align-items:center;padding:9px 15px;border:1px solid var(--accent);border-radius:999px;background:var(--accent);color:var(--white);font-size:.84rem;font-weight:800;text-decoration:none}.action.secondary{min-height:38px;padding:7px 13px;border-color:var(--ink);background:transparent;color:var(--ink)}.action.secondary:hover,.action.secondary:focus-visible{border-color:var(--accent);color:var(--accent-dark)}footer{border-top:1px solid var(--line);padding:28px 0 40px;color:var(--muted);font-size:.8rem}@media(max-width:700px){.shell{width:min(100% - 32px,600px)}.topbar .shell{width:min(100% - 32px,600px)}.content-grid{grid-template-columns:1fr;gap:42px}.media{margin:38px 0}.topbar-inner{min-height:60px}}

.carousel{position:relative;margin:54px 0;overflow:hidden;border:1px solid var(--line);background:var(--blue);color:var(--white)}
.carousel-viewport{overflow:hidden}
.carousel-track{display:flex;transition:transform .42s cubic-bezier(.22,.61,.36,1);will-change:transform}
.carousel-slide{position:relative;flex:0 0 100%;min-width:0;margin:0}
.carousel-slide img,.carousel-slide video{display:block;width:100%;height:clamp(280px,52vw,570px);object-fit:cover;background:#19313e}
.media-slot{min-height:clamp(280px,52vw,570px);display:grid;place-items:center;padding:32px;background:linear-gradient(135deg,#27485b,#19313e);text-align:center}
.media-slot strong{display:block;font-family:var(--display);font-size:clamp(1.35rem,3vw,2.2rem);font-weight:500}
.media-slot span{display:block;margin-top:8px;color:rgba(255,255,255,.66);font-size:.82rem;letter-spacing:.06em;text-transform:uppercase}
.carousel-slide:nth-child(2) .media-slot{background:linear-gradient(135deg,#31596d,#1d3845)}
.carousel-slide:nth-child(3) .media-slot{background:linear-gradient(135deg,#213e4d,#132a35)}
.carousel-caption{position:absolute;right:0;bottom:0;left:0;margin:0;padding:42px 92px 22px 22px;background:linear-gradient(transparent,rgba(11,23,29,.82));color:rgba(255,255,255,.9);font-size:.82rem}
.carousel-button{position:absolute;z-index:2;top:50%;display:grid;width:48px;height:48px;place-items:center;transform:translateY(-50%);border:1px solid rgba(255,255,255,.65);border-radius:50%;background:rgba(20,35,43,.72);color:var(--white);font-size:1.65rem;line-height:1;cursor:pointer;backdrop-filter:blur(8px)}
.carousel-button:hover,.carousel-button:focus-visible{background:var(--white);color:var(--ink);outline:none}
.carousel-previous{left:18px}.carousel-next{right:18px}
.carousel-footer{position:absolute;z-index:2;right:20px;bottom:18px;display:flex;align-items:center;gap:12px}
.carousel-counter{min-width:36px;color:rgba(255,255,255,.84);font-size:.76rem;text-align:right}
.carousel-dots{display:flex;gap:7px}
.carousel-dot{width:8px;height:8px;padding:0;border:0;border-radius:50%;background:rgba(255,255,255,.42);cursor:pointer}
.carousel-dot[aria-current="true"]{background:var(--white);transform:scale(1.25)}
.carousel-dot:focus-visible{outline:2px solid var(--white);outline-offset:3px}
@media(max-width:700px){.carousel{margin:38px 0}.carousel-button{width:42px;height:42px}.carousel-previous{left:12px}.carousel-next{right:12px}.carousel-caption{padding-left:18px}.carousel-footer{right:16px}}
.carousel-populated .carousel-slide img,.carousel-populated .carousel-slide video{object-fit:contain;height:auto;aspect-ratio:16/9}
.carousel-populated .carousel-button{top:50%}
@media(prefers-reduced-motion:reduce){.carousel-track{transition:none}}

/* Match the homepage navigation without affecting project navigation. */
.topbar{line-height:1.55}
.topbar nav{align-items:center}
.topbar .nav-contact{padding:8px 15px;border:1px solid var(--accent-dark);border-radius:999px;color:var(--accent-dark);font-weight:700}
.topbar .nav-contact:hover,.topbar .nav-contact:focus-visible{background:var(--accent-dark);color:var(--white)}
@media(max-width:760px){
.topbar .shell{width:min(100% - 32px,600px)}
.topbar-inner{min-height:60px;flex-wrap:wrap;gap:8px 16px;padding-top:10px;padding-bottom:10px}
.topbar nav{flex-wrap:wrap;gap:8px 12px}
.topbar nav a{font-size:.76rem}
}
