:root {
  --ink:#11110f;
  --ink-soft:#181815;
  --ivory:#f0ede5;
  --paper:#e8e3d8;
  --warm:#d6ccbc;
  --brass:#a78a56;
  --sage:#656b5a;
  --line:rgba(17,17,15,.18);
  --line-light:rgba(240,237,229,.22);
  --serif:"Playfair Display", Georgia, serif;
  --sans:"Manrope","DM Sans",Arial,sans-serif;
  --frame:calc(100vw - 8rem);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--ink);color:var(--ink);font-family:var(--sans);font-weight:400;overflow-x:hidden}
a{color:inherit;text-decoration:none}
.noise{position:fixed;inset:0;pointer-events:none;z-index:100;opacity:.035;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.9'/%3E%3C/svg%3E")}
.site-header{position:fixed;z-index:50;left:0;right:0;top:0;height:92px;padding:0 4rem;display:flex;align-items:center;justify-content:space-between;color:var(--ivory);transition:background .35s,border-color .35s,transform .35s;border-bottom:1px solid transparent}
.site-header.scrolled{background:rgba(17,17,15,.92);backdrop-filter:blur(18px);border-color:rgba(255,255,255,.08)}
.brand{display:flex;align-items:center;gap:14px}
.brand>span{font-family:"Cormorant Garamond",Georgia,serif;font-size:18px;font-weight:600;line-height:1;letter-spacing:.22em}
.brand-mark{width:29px;height:29px;fill:none;stroke:currentColor;stroke-width:1.3}.brand-mark-accent{stroke:var(--brass)}
.desktop-nav{display:flex;gap:34px;font-size:11px;text-transform:uppercase;letter-spacing:.18em}.desktop-nav a{opacity:.72;transition:opacity .25s}.desktop-nav a:hover{opacity:1}
.menu-toggle{display:none;background:none;border:0;width:38px;height:38px;padding:0;color:var(--ivory);align-items:center;justify-content:center;cursor:pointer}.menu-toggle i{font-size:28px;line-height:1;transition:transform .28s ease,opacity .2s ease}.menu-toggle:hover i{transform:scale(1.05)}
.mobile-menu{display:none}
.hero{height:100vh;min-height:760px;position:relative;color:var(--ivory);overflow:hidden;background:var(--ink)}
.hero-image{position:absolute;inset:0;background:url('assets/hero-infrastructure.png') center 48%/cover no-repeat;transform:scale(1.02);animation:heroDrift 18s ease-out forwards}
@keyframes heroDrift{to{transform:scale(1.08)}}
.hero-scrim{position:absolute;inset:0;background:linear-gradient(90deg,rgba(9,9,8,.92) 0%,rgba(10,10,9,.68) 43%,rgba(10,10,9,.12) 78%),linear-gradient(0deg,rgba(7,7,6,.88) 0%,transparent 42%)}
.hero-grid{position:relative;height:100%;padding:150px 4rem 74px;display:grid;grid-template-columns:1fr 1fr 1fr 1fr;grid-template-rows:auto 1fr auto;column-gap:24px}
.eyebrow{grid-column:1/3;font-size:10px;letter-spacing:.25em;text-transform:uppercase;color:rgba(240,237,229,.72);align-self:start}
.hero-side{grid-column:4;justify-self:end;display:flex;gap:22px;font-size:9px;letter-spacing:.2em;color:rgba(240,237,229,.62)}
.hero h1{grid-column:1/4;align-self:center;margin:0;max-width:1060px;font-family:var(--serif);font-weight:500;line-height:.92;letter-spacing:-.055em;font-size:clamp(64px,7.3vw,122px)}
.hero h1 span,.hero h1 em{display:block}.hero h1 em{font-weight:500;color:#c2ae89}
.hero-copy{grid-column:1/2;align-self:end;margin:0 0 3px;max-width:370px;font-size:14px;line-height:1.72;color:rgba(240,237,229,.72)}
.hero-cta{grid-column:3/4;align-self:end;display:flex;align-items:center;justify-content:space-between;border-top:1px solid rgba(240,237,229,.45);padding:17px 0 0;font-size:11px;text-transform:uppercase;letter-spacing:.19em}.cta-arrow{font-size:19px;color:var(--brass);transition:transform .28s ease}.hero-cta:hover .cta-arrow{transform:translate(4px,-4px)}
.hero-index{grid-column:4;align-self:end;justify-self:end;display:flex;gap:9px;font-size:10px;letter-spacing:.15em;color:rgba(240,237,229,.62)}
.scroll-cue{position:absolute;right:4rem;bottom:74px;display:flex;align-items:center;gap:11px;transform:rotate(90deg);transform-origin:right bottom}.scroll-cue span{width:46px;height:1px;background:var(--brass)}.scroll-cue small{font-size:8px;letter-spacing:.25em;color:rgba(240,237,229,.48)}
.reveal{opacity:0;transform:translateY(16px);animation:reveal .9s cubic-bezier(.23,.83,.35,1) forwards}.delay-1{animation-delay:.15s}.delay-2{animation-delay:.32s}.delay-3{animation-delay:.5s}@keyframes reveal{to{opacity:1;transform:none}}
.section-frame{width:var(--frame);max-width:1520px;margin:0 auto;padding:132px 0}
.section-light{background:var(--ivory)}.section-warm{background:var(--warm)}.section-ink{background:var(--ink);color:var(--ivory)}
.section-kicker{font-size:10px;letter-spacing:.24em;text-transform:uppercase;margin-bottom:72px;color:rgba(17,17,15,.62)}.section-kicker.inverted{color:rgba(240,237,229,.55)}
h2{font-family:var(--serif);font-weight:500;font-size:clamp(46px,5.4vw,84px);line-height:1.02;letter-spacing:-.045em;margin:0}h2 em{font-weight:500;color:var(--brass)}
.thesis-grid{display:grid;grid-template-columns:1.6fr .8fr;gap:90px;align-items:end}.thesis-copy{font-size:17px;line-height:1.72;color:#4c4b46}.thesis-copy p{margin:0 0 24px}.principle-strip{margin-top:110px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:24px 0;font-size:9px;letter-spacing:.24em}.principle-strip i{width:4px;height:4px;border-radius:50%;background:var(--brass)}
.section-heading-row{display:grid;grid-template-columns:1.7fr .7fr;gap:100px;align-items:end;margin-bottom:92px}.section-heading-row p,.method-head p,.journal-head p,.engagements-head p{font-size:15px;line-height:1.75;color:rgba(240,237,229,.58);margin:0}
.sectors{position:relative}.sector-list{position:relative;z-index:2}.sector-row{border-top:1px solid var(--line-light);display:grid;grid-template-columns:70px 1.15fr 1fr 30px;gap:28px;align-items:center;padding:34px 0;position:relative;cursor:pointer}.sector-row:last-child{border-bottom:1px solid var(--line-light)}.sector-number{font-size:9px;letter-spacing:.18em;color:var(--brass)}.sector-row h3{font-family:var(--serif);font-size:44px;font-weight:500;margin:0;letter-spacing:-.025em}.sector-row p{font-size:13px;line-height:1.62;color:rgba(240,237,229,.54);max-width:500px;margin:0}.sector-arrow{justify-self:end;color:var(--brass);font-size:20px;transition:transform .3s}.sector-row:hover .sector-arrow{transform:translate(5px,-5px)}
.sector-preview{position:absolute;width:360px;height:470px;right:6vw;top:38%;z-index:3;pointer-events:none;overflow:hidden;opacity:0;transform:translateY(20px) rotate(2deg);transition:opacity .25s,transform .35s cubic-bezier(.2,.7,.2,1);box-shadow:0 20px 70px rgba(0,0,0,.45)}.sector-preview.visible{opacity:1;transform:translateY(0) rotate(2deg)}.sector-preview>div{width:100%;height:100%;background-size:cover;background-position:center;filter:grayscale(1) sepia(.15);transition:background-image .25s}
.method-head{display:grid;grid-template-columns:1.5fr .6fr;gap:110px;align-items:end;margin-bottom:90px}.method-head p{color:rgba(17,17,15,.62)}.method-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.method-grid article{padding:30px 30px 52px;border-right:1px solid var(--line);min-height:340px;display:flex;flex-direction:column}.method-grid article:first-child{padding-left:0}.method-grid article:last-child{border-right:0}.method-grid span{font-size:9px;color:#7d6b4d;letter-spacing:.2em}.method-grid h3{font-family:var(--serif);font-size:36px;font-weight:500;margin:76px 0 16px}.method-grid p{font-size:13px;line-height:1.65;color:#514f48;margin:0}
.engagements-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:70px}.engagements-head p{color:#66625a;max-width:300px}.engagement-grid{display:grid;grid-template-columns:1.15fr .85fr;grid-template-rows:auto auto;gap:34px}.engagement-card{border-top:1px solid var(--line);padding-top:16px}.engagement-card.large{grid-row:1/3}.engagement-image{height:370px;background-size:cover;background-position:center;filter:grayscale(1) contrast(1.02)}.large .engagement-image{height:700px}.image-energy{background-image:url('assets/city-grid.png')}.image-sport{background-image:url('assets/stadium-tunnel.png')}.image-realestate{background-image:url('assets/architecture.png')}.engagement-meta{display:flex;justify-content:space-between;margin:16px 0;font-size:8px;letter-spacing:.18em;color:#766e60}.engagement-card h3{font-family:var(--serif);font-size:28px;line-height:1.17;font-weight:500;margin:0;letter-spacing:-.018em}
.philosophy{min-height:860px;display:grid;grid-template-columns:1.12fr .88fr;background:var(--ink);color:var(--ivory)}.philosophy-image{background:url('assets/architecture.png') center/cover no-repeat;filter:grayscale(.3) sepia(.22) contrast(.95)}.philosophy-panel{padding:115px 8vw;display:flex;flex-direction:column;justify-content:center}.philosophy-panel blockquote{font-family:var(--serif);font-size:clamp(56px,6vw,96px);line-height:.94;letter-spacing:-.05em;margin:0 0 70px;color:#d1c0a1}.philosophy-panel p{font-size:15px;line-height:1.8;color:rgba(240,237,229,.62);max-width:560px;margin:0 0 22px}.philosophy-panel p em{color:var(--ivory)}

.journal-head{display:grid;grid-template-columns:1.6fr .6fr;gap:100px;align-items:end;margin-bottom:85px}.journal-head p{color:#656159}.journal-list{border-top:1px solid var(--line)}.journal-list a{display:grid;grid-template-columns:70px 1fr 160px 30px;align-items:center;border-bottom:1px solid var(--line);padding:26px 0}.journal-list span,.journal-list small{font-size:9px;letter-spacing:.18em;color:#756c5e}.journal-list h3{font-family:var(--serif);font-size:28px;font-weight:500;margin:0}.journal-list i{justify-self:end;color:var(--brass);font-size:19px;transition:transform .25s}.journal-list a:hover i{transform:translate(5px,-5px)}
.contact-grid{min-height:760px;display:grid;grid-template-columns:1.4fr .6fr;grid-template-rows:1fr auto;gap:100px;align-items:center}.contact-actions{display:flex;flex-direction:column}.contact-actions a{border-top:1px solid var(--line-light);padding:20px 0;display:flex;justify-content:space-between;font-size:11px;letter-spacing:.14em;text-transform:uppercase}.contact-actions a:last-child{border-bottom:1px solid var(--line-light)}.contact-actions i{color:var(--brass);font-size:18px;transition:transform .25s}.contact-actions a:hover i{transform:translate(4px,-4px)}.contact-footer{grid-column:1/3;border-top:1px solid var(--line-light);padding-top:22px;display:flex;justify-content:space-between;font-size:8px;letter-spacing:.2em;color:rgba(240,237,229,.45)}
.footer-wordmark{font-family:"Cormorant Garamond",Georgia,serif;font-size:12px;font-weight:600;letter-spacing:.18em}
@media (max-width:1100px){:root{--frame:calc(100vw - 4rem)}.site-header{padding:0 2rem}.desktop-nav{display:none}.menu-toggle{display:flex}.hero-grid{padding-left:2rem;padding-right:2rem;grid-template-columns:1fr 1fr}.hero h1{grid-column:1/3}.hero-copy{grid-column:1}.hero-cta{grid-column:2}.hero-side{grid-column:2}.hero-index{display:none}.scroll-cue{right:2rem}.thesis-grid,.section-heading-row,.method-head,.journal-head{grid-template-columns:1fr;gap:44px}.method-grid{grid-template-columns:1fr 1fr}.method-grid article:nth-child(2){border-right:0}.method-grid article:first-child{padding-left:30px}.engagement-grid{grid-template-columns:1fr}.engagement-card.large{grid-row:auto}.large .engagement-image{height:520px}.philosophy{grid-template-columns:1fr}.philosophy-image{min-height:560px}.contact-grid{grid-template-columns:1fr;gap:60px}.contact-footer{grid-column:1}.sector-preview{display:none}}
@media (max-width:720px){:root{--frame:calc(100vw - 2.4rem)}.site-header{height:74px;padding:0 1.2rem}.brand>span{font-size:16px;letter-spacing:.18em}.brand-mark{width:25px}.mobile-menu{display:flex;position:fixed;z-index:45;inset:0;background:var(--ink);color:var(--ivory);padding:120px 2rem 50px;flex-direction:column;gap:26px;transform:translateY(-100%);transition:transform .45s cubic-bezier(.8,0,.2,1)}.mobile-menu.open{transform:none}.mobile-menu a{font-family:var(--serif);font-size:42px}.hero{min-height:700px}.hero-grid{padding:120px 1.2rem 46px;display:flex;flex-direction:column}.hero-side{display:none}.hero h1{margin-top:auto;font-size:17vw}.hero-copy{font-size:12px;margin-top:35px;max-width:88%}.hero-cta{margin-top:30px;width:100%}.scroll-cue{display:none}.section-frame{padding:90px 0}.section-kicker{margin-bottom:46px}.thesis-grid{display:block}.thesis-copy{margin-top:40px;font-size:15px}.principle-strip{margin-top:70px;flex-wrap:wrap;gap:14px;justify-content:flex-start}.principle-strip i{display:none}.section-heading-row{display:block;margin-bottom:55px}.section-heading-row p{margin-top:30px}.sector-row{grid-template-columns:35px 1fr 20px;padding:24px 0}.sector-row h3{font-size:31px}.sector-row p{grid-column:2/4;margin-top:8px}.method-head{display:block}.method-head p{margin-top:30px}.method-grid{grid-template-columns:1fr}.method-grid article,.method-grid article:first-child{border-right:0;border-bottom:1px solid var(--line);padding:25px 0 35px;min-height:auto}.method-grid article:last-child{border-bottom:0}.method-grid h3{margin:35px 0 12px}.engagements-head{display:block}.engagements-head p{margin-top:25px}.engagement-image,.large .engagement-image{height:360px}.engagement-card h3{font-size:23px}.philosophy-image{min-height:400px}.philosophy-panel{padding:85px 1.2rem}.philosophy-panel blockquote{font-size:60px;margin-bottom:48px}.journal-head{display:block}.journal-head p{margin-top:25px}.journal-list a{grid-template-columns:35px 1fr 20px}.journal-list small{display:none}.journal-list h3{font-size:22px}.contact-grid{min-height:650px;display:flex;flex-direction:column;justify-content:center;align-items:stretch}.contact-footer{flex-direction:column;gap:11px;margin-top:80px}}

/* Semantic Phosphor icon system */
.method-top{display:flex;align-items:center;justify-content:space-between;gap:20px}
.method-icon{font-size:28px;color:var(--brass);line-height:1;transition:transform .3s ease,color .3s ease}
.method-grid article:hover .method-icon{transform:translateY(-3px);color:var(--ink)}
.sector-arrow{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border:1px solid rgba(183,151,103,.45);border-radius:50%;font-size:15px}
.sector-row:hover .sector-arrow{transform:translateY(-3px);background:var(--brass);color:var(--ink)}
.text-link{display:inline-flex;align-items:center;gap:12px}
.text-link i{font-size:19px;color:var(--brass);transition:transform .25s ease}
.text-link:hover i{transform:translateX(3px)}
.journal-icon{font-size:20px;color:var(--brass);transition:transform .25s ease}
.journal-list a:hover .journal-icon{transform:translateY(-3px)}
.contact-actions a{display:flex;align-items:center;justify-content:space-between;gap:24px}
.contact-actions a i{font-size:23px;color:var(--brass);transition:transform .25s ease}
.contact-actions a:hover i{transform:translateY(-3px) scale(1.05)}
@media (max-width:720px){.method-icon{font-size:24px}.sector-arrow{width:25px;height:25px;font-size:14px}.contact-actions a i{font-size:21px}}
