:root{--brand:#253f8e;--ink:#1c2942;--paper:#ffffff;--surface:#f2f4f7;--muted:#596579;--border:#dce1e9;--scroll-thumb:#7384ac;--scroll-track:#f3f5fa;--scroll-hover:#253f8e;--scroll-active:#253f8e;--navy:#172952;--accent:#e1c688;--on-brand-muted:#d4def4;--on-brand-border:#65779e;--z-skip:100;--z-dialog:600;}
*{box-sizing:border-box;scrollbar-color:var(--scroll-thumb) var(--scroll-track);scrollbar-width:thin}
::-webkit-scrollbar{width:12px;height:12px}::-webkit-scrollbar-track{background:var(--scroll-track)}::-webkit-scrollbar-thumb{background:var(--scroll-thumb);border:3px solid var(--scroll-track);border-radius:8px}::-webkit-scrollbar-thumb:hover{background:var(--scroll-hover)}::-webkit-scrollbar-thumb:active{background:var(--scroll-active)}
html{scrollbar-gutter:stable;scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:17px/1.7 Arial,Helvetica,sans-serif}a{color:var(--brand);text-underline-offset:5px;cursor:pointer}a:hover{color:var(--ink)}button{font:inherit;cursor:pointer}a,button,summary{touch-action:manipulation}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--brand);outline-offset:5px}img{max-width:100%;height:auto;vertical-align:middle}h1,h2,h3,h4{line-height:1.18;font-weight:400}h1,h2{font-family:Georgia,'Times New Roman',serif}h1{font-size:clamp(34px,4.5vw,60px);margin:28px 0 48px;overflow-wrap:anywhere}h2{font-size:clamp(32px,3.7vw,48px)}p{margin:0 0 22px}ul,ol{padding-left:24px}[hidden]{display:none!important}.wrap{width:min(1240px,calc(100% - 96px));margin:auto}.skip{position:absolute;left:12px;top:-100px;background:var(--paper);padding:10px;z-index:var(--z-skip)}.skip:focus{top:12px}.masthead{display:flex;align-items:center;gap:22px;padding:22px 0}.logo{width:74px;flex-shrink:0}.brand-name{display:block;font:27px/1.12 Georgia,serif;letter-spacing:.005em;text-decoration:none}.brand-copy{font-size:12px;letter-spacing:.035em;color:var(--muted);margin:7px 0 0}.header-contact{margin-left:auto;font-size:14px;display:grid;grid-template-columns:auto auto;gap:0 26px}.header-contact a{text-decoration:none}.header-contact a:first-child{font-size:19px;grid-column:1;grid-row:1/3;align-self:center}.header-contact a:hover{text-decoration:underline}.nav{border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.nav-list{list-style:none;margin:0;padding:0;display:flex;justify-content:space-between;gap:12px}.nav a,.nav summary{display:block;color:var(--ink);padding:15px 0;text-decoration:none;font-size:14px}.nav a{position:relative}.nav a:after{content:'';position:absolute;bottom:-1px;left:0;right:0;height:2px;background:var(--brand);transform:scaleX(0);transform-origin:left;transition:transform .22s}.nav a:hover,.nav a[aria-current=page]{color:var(--brand)}.nav a:hover:after,.nav a[aria-current=page]:after{transform:scaleX(1)}.mobile-nav{display:none}.mobile-nav summary{cursor:pointer;min-height:48px}.breadcrumbs{font-size:13px;color:var(--muted);padding-top:28px}.breadcrumbs a{margin-right:10px}main{padding-bottom:80px;min-height:45vh}.home-main{padding-bottom:0}.eyebrow{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin:0 0 18px}.hero{display:grid;grid-template-columns:44% 56%;background:var(--brand)}.hero-copy{padding:46px 42px 38px max(48px,calc((100vw - 1240px)/2));color:var(--paper)}.hero .eyebrow{color:var(--on-brand-muted);font-size:11px}.hero h1{font-size:clamp(48px,5.2vw,72px);line-height:1.04;letter-spacing:-.045em;margin:24px 0 22px;overflow-wrap:normal}.hero h1 em{font-weight:400;color:var(--accent)}.hero-intro{font-size:15px;line-height:1.7;color:var(--on-brand-muted);margin-bottom:24px}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:22px;min-height:50px;padding:12px 20px;text-decoration:none;font-size:14px}.button-light{background:var(--paper);color:var(--brand)}.button-light:hover{background:var(--surface);color:var(--brand)}.hero-contact{display:block;color:var(--paper);font-size:13px;width:fit-content;margin-top:18px;text-decoration:none;padding:8px 0}.hero-contact:hover{color:var(--accent)}.hero a:focus-visible,.hero button:focus-visible{outline-color:var(--accent)}.hero-slider{min-width:0;position:relative;background:var(--navy);display:flex;flex-direction:column}.hero-slide{margin:0;display:flex;flex-direction:column;flex:1;min-height:0}.hero-photo{position:relative;display:block;flex:1;min-height:390px;overflow:hidden}.hero-photo>img{position:absolute;width:100%;height:100%;object-fit:cover;object-position:48% 45%;transition:transform 1s}.hero-photo:hover>img{transform:scale(1.035)}.photo-expand{position:absolute;right:20px;top:20px;width:42px;height:42px;display:grid;place-items:center;background:var(--paper);color:var(--brand);font-size:21px;border-radius:50%}.hero-slide figcaption{background:var(--navy);color:var(--paper);padding:22px 150px 22px 32px;min-height:96px;display:flex;flex-direction:column;justify-content:center}.photo-label{font-size:10px;letter-spacing:.15em;text-transform:uppercase;color:var(--on-brand-muted);display:block;margin-bottom:4px}.hero-slide figcaption a{color:var(--paper);font-size:18px;text-decoration:none;line-height:1.5}.hero-slide figcaption a:hover{text-decoration:underline}.hero-controls{position:absolute;right:24px;bottom:24px;display:flex;align-items:center;gap:10px;color:var(--paper)}.hero-controls button{background:transparent;color:var(--paper);border:1px solid var(--on-brand-border);width:44px;height:44px;padding:0;border-radius:50%;transition:background .2s}.hero-controls button:hover{background:var(--brand)}.slide-count{font-size:11px;min-width:44px;text-align:center;font-variant-numeric:tabular-nums}.hero-slide.is-entering .hero-photo img{animation:photo-in .65s ease-out}.home-section{padding-top:76px;padding-bottom:76px}.section-top{display:flex;align-items:flex-end;justify-content:space-between;gap:32px;margin-bottom:36px}.section-top h2{margin:0}.section-top .eyebrow{margin-bottom:12px}.text-link{display:inline-flex;align-items:center;gap:24px;min-height:44px;font-size:14px;text-decoration:none;border-bottom:1px solid var(--brand);padding:8px 0}.text-link:hover{color:var(--brand);gap:30px}.featured-projects{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px}.project{display:block;text-decoration:none;color:var(--ink);min-width:0}.project figure{margin:0;overflow:hidden;background:var(--surface);position:relative}.project img{width:100%;aspect-ratio:4/5;object-fit:cover;transition:transform .65s}.project-open{position:absolute;right:12px;bottom:12px;display:grid;place-items:center;background:var(--paper);color:var(--brand);width:36px;height:36px;border-radius:50%;transition:transform .2s}.project-caption{display:flex;gap:14px;margin-top:20px}.project-number{font-size:11px;color:var(--muted);padding-top:4px}.project h2{font:17px/1.5 Arial,Helvetica,sans-serif;margin:0 0 8px}.project p{font-size:14px;color:var(--muted);margin:0 0 24px}.project:hover img{transform:scale(1.045)}.project:hover .project-open{transform:rotate(45deg)}.project:hover h2{color:var(--brand);text-decoration:underline;text-underline-offset:5px}.projects{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px 28px}.projects .project img{aspect-ratio:4/3}.projects .project-caption{margin-top:14px}.article-body{max-width:960px;margin:auto;overflow-wrap:anywhere}.article-body:has(.projects),.article-body:has(.license-grid){max-width:none}.article-body h4{font:19px/1.65 Arial,Helvetica,sans-serif;margin:0 0 28px}.article-body p:has(>img),.article-body p:has(>.article-photo){text-align:center;margin:32px 0}.article-body img{max-height:1100px;object-fit:contain}.article-photo{display:inline-block;cursor:zoom-in}.article-photo:focus-visible{outline-offset:8px}.article-body table{width:100%;display:block;overflow:auto}.article-body td{padding:8px}.about-section{padding:76px 0;background:var(--surface);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.about-grid{display:grid;grid-template-columns:1fr 1.35fr;gap:80px}.about-grid h2{margin:0 0 24px}.about-principle{font:italic 22px/1.4 Georgia,serif;color:var(--brand);margin:0 0 32px}.about-text{font-size:15px;line-height:1.85;color:var(--muted)}.about-text strong{font-size:19px;line-height:1.6;font-weight:400;color:var(--ink)}.about-text p:last-child{margin-bottom:0}.section-note{font-size:13px;color:var(--muted);margin:0;max-width:220px}.detail-gallery{display:grid;grid-template-columns:1fr 1.5fr 1.5fr;gap:24px}.detail-gallery figure{margin:0;min-width:0}.detail-gallery a{display:block;position:relative;overflow:hidden;cursor:zoom-in;background:var(--surface)}.detail-gallery img{width:100%;height:300px;object-fit:cover;transition:transform .65s}.detail-gallery a:hover img{transform:scale(1.035)}.detail-gallery figcaption{font-size:13px;color:var(--muted);line-height:1.5;margin-top:16px}.legacy-mosaic{margin-top:44px;border-top:1px solid var(--border);padding-top:20px}.legacy-mosaic summary{cursor:pointer;color:var(--brand);font-size:14px;min-height:44px;padding:8px 0}.legacy-mosaic-content{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-top:24px}.legacy-mosaic-content img{width:100%}.legacy-mosaic-content h1,.legacy-mosaic-content h2{font:24px/1.3 Georgia,serif}.contact-band{padding:56px 0;background:var(--brand);color:var(--paper)}.contact-band-inner{display:flex;justify-content:space-between;align-items:center;gap:32px}.contact-band .eyebrow{color:var(--on-brand-muted)}.contact-band h2{margin:0}.contact-band a{color:var(--paper);display:block;text-decoration:none;width:fit-content}.contact-band a:hover{text-decoration:underline}.contact-band a:focus-visible{outline-color:var(--accent)}.contact-phone{font-size:clamp(24px,2.8vw,34px);letter-spacing:-.02em}.contact-email{font-size:16px;margin-top:8px}.contact-panel{padding:32px;background:var(--surface);border-left:3px solid var(--brand);margin:32px 0}.contact-panel h2{font-size:30px;margin:0 0 20px}.contact-panel p:last-child{margin:0}.license-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px}.license-grid a{background:var(--surface);padding:14px;text-decoration:none}.license-grid a:hover{outline:1px solid var(--brand)}.license-grid img{width:100%;aspect-ratio:3/4;object-fit:contain}.license-grid span{display:block;font-size:13px;margin-top:14px}.vacancies article{border-top:1px solid var(--border);padding:20px 0}.vacancies h2{font-size:30px}.footer{background:var(--navy);color:var(--on-brand-muted);padding:38px 0}.footer-inner{display:flex;justify-content:space-between;gap:48px;font-size:12px}.footer-brand{font:21px/1.3 Georgia,serif;color:var(--paper);margin:0 0 10px!important}.footer p{margin:0}.footer address{font-style:normal;max-width:420px}.footer a{color:var(--paper);display:inline-block;margin-top:8px;min-height:32px}.empty-photo{aspect-ratio:4/3;background:var(--surface);display:grid;place-content:center;color:var(--muted)}
.lightbox{position:fixed;inset:0;width:min(1180px,calc(100vw - 48px));max-width:none;max-height:calc(100dvh - 48px);padding:0;border:0;background:var(--navy);color:var(--paper);z-index:var(--z-dialog)}.lightbox::backdrop{background:rgba(10,18,38,.87)}.lightbox-head{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px 20px;border-bottom:1px solid var(--on-brand-border)}.lightbox-title{font:14px/1.4 Arial,sans-serif;margin:0}.lightbox button{background:transparent;color:var(--paper);border:1px solid var(--on-brand-border);height:44px;min-width:44px;border-radius:50%;padding:0;font-size:22px}.lightbox button:hover{background:var(--brand)}.lightbox button:focus-visible{outline-color:var(--accent)}.lightbox-stage{height:min(68dvh,780px);display:grid;place-items:center;position:relative;padding:16px}.lightbox-stage img{width:100%;height:100%;object-fit:contain;min-height:0;max-height:100%}.lightbox-status{position:absolute;bottom:24px;margin:0;padding:6px 14px;background:var(--navy);font-size:13px}.lightbox-bottom{display:grid;grid-template-columns:44px 1fr 44px;align-items:center;gap:16px;padding:14px 20px}.lightbox-caption{margin:0;text-align:center;font-size:14px;line-height:1.5}.lightbox-caption span{display:block;font-size:11px;color:var(--on-brand-muted);margin-top:4px}.modal-open{overflow:hidden}.reveal{animation:content-in .7s ease-out both}.reveal:nth-child(2){animation-delay:.08s}.reveal:nth-child(3){animation-delay:.16s}.reveal:nth-child(4){animation-delay:.24s}@keyframes content-in{from{opacity:.5;transform:translateY(20px)}to{opacity:1;transform:none}}@keyframes photo-in{from{opacity:.6;transform:scale(1.035)}to{opacity:1;transform:none}}
@media(min-width:1600px){.hero-copy{padding-top:76px;padding-bottom:70px}.hero-photo{min-height:520px}}
@media(max-width:1000px){.wrap{width:calc(100% - 56px)}.hero-copy{padding:42px 28px}.hero h1{font-size:58px}.header-contact{display:block}.header-contact a{display:block}.header-contact a:first-child{font-size:16px}.header-contact a:nth-child(2){display:none}.featured-projects{gap:18px}.about-grid{gap:48px}.detail-gallery img{height:240px}.hero-slide figcaption{padding-left:24px}.hero-controls{right:14px}.hero-intro{font-size:14px}.button{gap:12px;font-size:13px;padding:12px 16px}}
@media(max-width:760px){.wrap{width:calc(100% - 40px)}.masthead{gap:14px;padding:18px 0}.logo{width:56px}.brand-name{font-size:23px}.brand-copy{font-size:10px;letter-spacing:0}.header-contact{font-size:12px}.header-contact a:first-child{font-size:14px}.desktop-nav{display:none}.mobile-nav{display:block}.mobile-nav summary{font-size:14px;list-style:none;display:flex;justify-content:space-between;align-items:center}.mobile-nav summary:after{content:'+';font-size:24px}.mobile-nav[open] summary:after{content:'−'}.mobile-nav .nav-list{display:block;padding-bottom:12px}.mobile-nav a{min-height:46px;padding:10px 0}.hero{grid-template-columns:1fr 1fr}.hero-copy{padding:38px 20px}.hero h1{font-size:48px}.hero .eyebrow{font-size:10px;letter-spacing:.1em}.hero-photo{min-height:360px}.hero-slide figcaption{min-height:160px;padding:20px 20px 72px}.hero-controls{right:20px;bottom:16px}.hero-intro br{display:none}.hero-contact{font-size:12px}.button{font-size:12px}.home-section{padding-top:52px;padding-bottom:52px}.section-top{margin-bottom:28px}.featured-projects,.projects{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 20px}.about-section{padding:52px 0}.about-grid{grid-template-columns:minmax(0,1fr);gap:36px}.about-grid h2 br{display:block}.about-principle{margin-bottom:16px}.detail-gallery{grid-template-columns:1fr 1fr;gap:20px}.detail-gallery figure:first-child{grid-row:span 2}.detail-gallery img{height:200px}.detail-gallery figure:first-child img{height:448px}.section-note{display:none}.contact-band-inner{align-items:flex-start;flex-direction:column;gap:24px}.contact-band{padding:44px 0}.license-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.footer-inner{flex-direction:column;gap:24px}.lightbox{width:calc(100vw - 24px);max-height:calc(100dvh - 24px)}.lightbox-stage{height:64dvh;padding:10px}.lightbox-bottom,.lightbox-head{padding:12px}.article-body h4{font-size:17px}.breadcrumbs{font-size:12px}.project h2{font-size:15px}.project-caption{gap:10px;margin-top:14px}}
@media(max-width:540px){body{font-size:16px}.masthead{gap:12px}.logo{width:50px}.brand-name{font-size:22px}.brand-copy{font-size:9px}.header-contact{display:none}.hero{grid-template-columns:1fr}.hero-copy{padding:38px 24px 34px}.hero h1{font-size:clamp(52px,13vw,66px);margin:22px 0;line-height:1.03}.hero-intro{font-size:14px;max-width:300px;margin-bottom:24px}.hero .eyebrow{font-size:10px;letter-spacing:.14em}.hero-contact{font-size:13px;margin-top:14px}.button{font-size:13px;min-height:48px}.hero-photo{min-height:320px}.hero-slide figcaption{min-height:98px;padding:18px 150px 18px 20px}.hero-slide figcaption a{font-size:16px}.hero-controls{right:14px;bottom:26px;gap:4px}.hero-controls button{width:42px;height:44px}.slide-count{min-width:38px;font-size:10px}.photo-expand{right:16px;top:16px}.section-top{align-items:flex-start;gap:16px}.section-top .eyebrow{font-size:10px;letter-spacing:.12em}.text-link{font-size:12px;gap:8px;white-space:nowrap}.section-top h2{font-size:34px}.project-number{display:none}.featured-projects{gap:24px 16px}.project img{aspect-ratio:3/4}.project-open{width:30px;height:30px;font-size:16px;right:8px;bottom:8px}.about-text{font-size:14px}.about-text strong{font-size:17px}.about-grid h2{font-size:36px}.detail-gallery{grid-template-columns:1fr;gap:28px}.detail-gallery figure:first-child{grid-row:auto}.detail-gallery img,.detail-gallery figure:first-child img{height:260px}.detail-gallery figure:first-child img{object-position:50% 35%}.legacy-mosaic-content{grid-template-columns:1fr}.contact-panel{padding:24px}.contact-band h2{font-size:34px}.contact-phone{font-size:26px}.footer{padding:32px 0}.lightbox-title{font-size:12px}.lightbox-caption{font-size:12px}.projects{gap:28px 16px}.license-grid{gap:16px}.license-grid a{padding:10px}.license-grid span{font-size:12px}main{padding-bottom:56px}.home-main{padding-bottom:0}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}
@media(forced-colors:active){*{scrollbar-color:auto}a:focus-visible,button:focus-visible,summary:focus-visible{outline-color:Highlight}.hero,.contact-panel,.lightbox,.nav,.contact-band{border:1px solid CanvasText}::-webkit-scrollbar-thumb{background:ButtonText}.photo-expand,.project-open{border:1px solid ButtonText}}
@media print{.nav,.skip,.header-contact,.hero-controls,.photo-expand,.project-open,.hero-contact,.lightbox{display:none!important}.wrap{width:100%}.hero{display:block}.hero-copy{padding:24px;color:var(--ink)}.hero-intro,.hero .eyebrow{color:var(--ink)}.hero-photo{height:340px}.hero-slide figcaption{color:var(--ink);background:none}.hero-slide figcaption a{color:var(--ink)}.footer{background:none;color:var(--ink)}.footer-brand,.footer a{color:var(--ink)}.project{break-inside:avoid}a{color:inherit}.home-section,.about-section{padding:32px 0}.contact-band,.hero{background:none}.contact-band,.contact-band a,.contact-band .eyebrow{color:var(--ink)}}
