:root { --ink:#10232c; --navy:#0b202a; --red:#d51f2b; --cream:#f3f0e9; --line:#d8d8d3; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:#f8f8f5; font-family:"Avenir Next", "Helvetica Neue", Arial, sans-serif; }
a { color:inherit; text-decoration:none; }
.nav-shell { height:88px; padding:0 4.5vw; display:flex; align-items:center; gap:36px; position:absolute; z-index:20; width:100%; color:white; border-bottom:1px solid rgba(255,255,255,.22); }
.brand { display:flex; align-items:center; gap:11px; margin-right:auto; }
.brand img { width:218px; height:64px; object-fit:contain; filter:drop-shadow(0 3px 12px rgba(0,0,0,.22)); }
.nav-shell nav { display:flex; gap:32px; font-size:13px; letter-spacing:.04em; }
.nav-shell nav a { position:relative; padding:34px 0; }
.nav-shell nav a:after { content:""; position:absolute; left:0; bottom:25px; width:0; height:1px; background:var(--red); transition:.3s; }
.nav-shell nav a:hover:after { width:100%; }
.language { border:1px solid rgba(255,255,255,.35); background:rgba(10,28,35,.28); color:white; border-radius:30px; padding:8px 12px; font-size:11px; cursor:pointer; backdrop-filter:blur(10px); }
.language span { font-weight:700; } .language i { display:inline-block; height:11px; width:1px; background:#ffffff55; margin:0 7px -2px; }
.menu { display:none; }
.hero { height:min(860px, 100vh); min-height:690px; position:relative; color:white; overflow:hidden; background:var(--navy) url('../media/energy.jpg') center/cover no-repeat; }
.hero video { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transform:scale(1.02); animation:heroZoom 18s ease-in-out infinite alternate; }
@keyframes heroZoom { to { transform:scale(1.09); } }
.hero-wash { position:absolute; inset:0; background:linear-gradient(90deg,rgba(4,22,29,.93) 0%,rgba(4,22,29,.64) 47%,rgba(4,22,29,.18) 78%),linear-gradient(0deg,rgba(4,20,27,.65),transparent 48%); }
.hero-content { position:relative; z-index:2; padding:180px 8vw 100px; max-width:900px; }
.reveal { animation:reveal .9s ease-out both; } @keyframes reveal { from{opacity:0;transform:translateY(20px)} }
.eyebrow,.kicker { text-transform:uppercase; letter-spacing:.22em; font-weight:700; font-size:11px; display:flex; align-items:center; gap:12px; color:var(--red); }
.eyebrow span { width:34px; height:1px; background:var(--red); }
h1 { font-family:"Avenir Next", "Helvetica Neue", Arial, sans-serif; font-size:clamp(54px,5.8vw,88px); line-height:1; letter-spacing:-.045em; font-weight:600; margin:31px 0 30px; }
h1 em { color:#ef3843; font-weight:500; font-style:normal; }
.hero-intro { max-width:600px; font-size:18px; line-height:1.7; color:#e2e7e8; }
.actions { display:flex; gap:14px; margin-top:42px; }
.button { display:inline-flex; align-items:center; justify-content:space-between; gap:28px; padding:17px 22px; min-width:210px; text-transform:uppercase; letter-spacing:.11em; font-size:10px; font-weight:700; transition:.3s; }
.button-primary { background:var(--red); color:white; } .button-primary:hover { background:#aa1721; transform:translateY(-2px); }
.button-ghost { border:1px solid #ffffff66; color:white; } .button-ghost:hover { background:white; color:var(--ink); }
.scroll-mark { position:absolute; z-index:2; right:4.5vw; bottom:0; display:flex; flex-direction:column; align-items:center; gap:14px; font-size:8px; letter-spacing:.25em; }
.scroll-mark span { writing-mode:vertical-rl; }.scroll-mark i { width:1px;height:70px;background:linear-gradient(white,transparent); }
.credibility { background:var(--cream); min-height:205px; padding:46px 8vw; display:flex; align-items:center; gap:7vw; border-bottom:1px solid var(--line); }
.credibility>p { width:27%; font:500 23px/1.4 "Avenir Next", "Helvetica Neue", Arial, sans-serif; }
.stats { flex:1; display:grid; grid-template-columns:repeat(3,1fr); }
.stats div { border-left:1px solid #c9c6bf; padding:4px 30px; min-height:80px; display:flex; flex-direction:column; justify-content:center; }
.stats strong { color:var(--red); font:600 34px "Avenir Next", "Helvetica Neue", Arial, sans-serif; }.stats span { font-size:10px; text-transform:uppercase; letter-spacing:.11em; margin-top:8px; line-height:1.5; }
.section { padding:115px 8vw; }
.section-head { display:grid; grid-template-columns:1.3fr .7fr; gap:9vw; align-items:end; margin-bottom:70px; }
h2 { font:600 50px/1.08 "Avenir Next", "Helvetica Neue", Arial, sans-serif; letter-spacing:-.035em; margin:20px 0 0; }
.section-head>p,.team-copy>p { color:#617078; line-height:1.8; font-size:15px; }
.service-grid { display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--line); }
.service-grid button { min-height:360px; padding:26px 28px; border:0;border-right:1px solid var(--line);background:transparent;color:inherit;text-align:left;font:inherit;cursor:pointer;position:relative; transition:.35s; }
.service-grid button:first-child { border-left:1px solid var(--line); }
.service-grid button:hover { background:var(--navy); color:white; transform:translateY(-8px); }
.service-grid button:focus-visible{outline:3px solid var(--red);outline-offset:3px;z-index:2}
.card-line { height:1px;width:38px;background:var(--red);margin:18px 0 38px; }
.service-grid h3 { font:600 23px/1.18 "Avenir Next","Helvetica Neue",Arial,sans-serif; }.service-grid p { font-size:13px; line-height:1.7; color:#718087; }.service-grid button:hover p { color:#c3cdd0; }
.service-grid b { position:absolute; bottom:25px; right:27px; color:var(--red); }
.coverage-strip{margin-top:46px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:27px 0;display:grid;grid-template-columns:1fr 1.5fr;gap:40px;align-items:center}.coverage-strip .kicker{margin:0 0 8px}.coverage-strip h3{margin:0;font-size:20px}.coverage-strip>p{margin:0;color:#68767c;text-transform:uppercase;letter-spacing:.09em;font-size:10px;line-height:1.7}
.memory-section{background:#102832;color:white;padding:105px 8vw;display:grid;grid-template-columns:1fr 1fr;gap:10vw;position:relative;overflow:hidden}.memory-section:after{content:"";position:absolute;width:430px;height:430px;border:1px solid #ffffff12;border-radius:50%;right:-180px;top:-210px}.memory-heading h2{font-size:58px;max-width:600px}.memory-lead{font-size:19px;line-height:1.65;color:#e0e7e8;max-width:610px;margin-top:34px}.memory-body>p:first-child{color:#bdc8cb;font-size:15px;line-height:1.85;margin:5px 0 32px}.memory-body ul{list-style:none;margin:0;padding:0;border-top:1px solid #ffffff25}.memory-body li{padding:16px 5px 16px 26px;border-bottom:1px solid #ffffff25;font-size:11px;line-height:1.55;text-transform:uppercase;letter-spacing:.07em;position:relative}.memory-body li:before{content:"↗";position:absolute;left:0;color:var(--red)}.confidentiality{margin:30px 0 0;padding:20px;border-left:2px solid var(--red);background:#ffffff08;color:#9fb0b5;font-size:11px!important;line-height:1.7!important}
.approach { min-height:720px; display:grid; grid-template-columns:1fr 1fr; background:var(--navy); color:white; overflow:hidden; }
.moving-image { background:linear-gradient(#0b202a22,#0b202a22),url('../media/energy.jpg') center/cover; animation:drift 16s ease-in-out infinite alternate; min-height:650px; }
@keyframes drift { from{background-position:45% 50%} to{background-position:58% 50%} }
.approach-copy { padding:100px 8vw 90px 7vw; }.light { color:#f0444e; }.approach-copy h2 { font-size:58px; }.approach-copy>p:not(.kicker) { color:#b8c3c7; font-size:15px; line-height:1.85; margin:30px 0 38px; }
.approach ol { list-style:none;padding:0;margin:0;border-top:1px solid #ffffff2b; }.approach li { padding:18px 0;border-bottom:1px solid #ffffff2b;text-transform:uppercase;letter-spacing:.11em;font-size:10px; }.approach li span { color:var(--red);margin-right:22px; }
.team { display:block;position:relative;background:#f4f3ef; }.team-copy { max-width:850px;display:grid;grid-template-columns:1fr 1.25fr;gap:50px;align-items:end;margin-bottom:55px; }.team-copy .kicker { grid-column:1/-1;margin:0; }.team-copy h2 { font-size:54px;margin:0; }.team-copy>p:last-child { margin:0; }
.people-grid { display:grid;grid-template-columns:repeat(4,1fr);gap:16px; }.person { background:white;color:inherit;text-align:left;font:inherit;border:0;padding:0;width:100%;cursor:pointer;position:relative;overflow:hidden;transition:.35s;box-shadow:0 10px 30px rgba(7,25,32,.06); }.person:hover { transform:translateY(-8px);box-shadow:0 22px 45px rgba(7,25,32,.14); }.person:focus-visible{outline:3px solid var(--red);outline-offset:4px}.portrait { aspect-ratio:7/8;overflow:hidden;background:#e8e7e2; }.portrait img { width:100%;height:100%;object-fit:cover;object-position:center 24%;transition:transform .7s ease; }.person:first-child .portrait img { object-position:center 28%; }.person:hover .portrait img { transform:scale(1.035); }.person-copy { min-height:190px;padding:22px 22px 26px;position:relative;border-top:3px solid var(--red); }.person-copy h3 { font-size:18px;line-height:1.25;margin:6px 25px 9px 0;font-weight:600; }.person-copy p { margin:0;color:#6e7a80;font-size:10px;line-height:1.55;text-transform:uppercase;letter-spacing:.045em; }.person-copy b { position:absolute;right:20px;top:20px;color:var(--red); }.team-note { border-top:1px solid var(--line);padding-top:24px;margin-top:48px;color:#808b8f;font-size:11px;letter-spacing:.06em; }
.profile-modal{position:fixed;inset:0;z-index:100;background:rgba(4,19,25,.82);backdrop-filter:blur(9px);display:grid;place-items:center;padding:28px}.profile-modal[hidden]{display:none}.modal-open{overflow:hidden}.profile-dialog{width:min(1050px,96vw);max-height:90vh;overflow:auto;background:#f8f8f5;display:grid;grid-template-columns:minmax(280px,.78fr) 1.22fr;position:relative;box-shadow:0 30px 90px #0008;animation:profileIn .3s ease-out}.profile-close{position:absolute;right:18px;top:14px;z-index:2;width:42px;height:42px;border:1px solid #10232c33;background:#f8f8f5;color:var(--ink);font-size:27px;cursor:pointer}.profile-photo{min-height:610px;background:#e8e7e2;overflow:hidden}.profile-photo img{width:100%;height:100%;object-fit:cover;object-position:center 24%}.profile-content{padding:65px 62px 55px}.profile-content h2{font-size:45px;margin:18px 45px 20px 0}.profile-areas{color:var(--red);font-size:10px;line-height:1.65;text-transform:uppercase;letter-spacing:.09em;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:16px 0}.profile-bio{font-size:15px;line-height:1.85;color:#53646b;margin:28px 0}.profile-link{display:inline-flex;gap:22px;align-items:center;background:var(--red);color:white;padding:15px 19px;text-transform:uppercase;font-size:10px;font-weight:700;letter-spacing:.1em}.profile-link:hover{background:#aa1721}@keyframes profileIn{from{opacity:0;transform:translateY(18px)}}
.service-dialog{width:min(850px,95vw);max-height:90vh;overflow:auto;background:#f8f8f5;padding:65px 70px 58px;position:relative;box-shadow:0 30px 90px #0008;animation:profileIn .3s ease-out}.service-dialog h2{font-size:46px;max-width:700px;margin:18px 50px 22px 0}.service-summary{color:#65757c;font-size:15px;line-height:1.75;max-width:690px}.service-dialog ul{list-style:none;padding:0;margin:30px 0 0;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr}.service-dialog li{padding:17px 30px 17px 24px;border-bottom:1px solid var(--line);font-size:12px;line-height:1.5;position:relative}.service-dialog li:before{content:"↗";position:absolute;left:0;color:var(--red)}.service-note{font-size:11px;color:#79868b;line-height:1.65;border-left:2px solid var(--red);padding:13px 16px;margin:25px 0 0;background:#f0efea}
.contact { background:var(--red);color:white;padding:95px 8vw;display:grid;grid-template-columns:1.1fr .9fr;gap:8vw;align-items:end; }.contact h2 { max-width:760px;font-size:58px; }.contact>div:last-child>p:first-child { font-size:15px;line-height:1.8;color:#ffe4e6;margin:0 0 30px; }.contact-actions{display:flex;flex-wrap:wrap;gap:12px}.button-light { background:white;color:var(--red);min-width:290px; }.button-light:hover { transform:translateY(-3px);box-shadow:0 12px 30px #86121c44; }.button-contact-email{border:1px solid #ffffff99;color:white;min-width:210px}.button-contact-email:hover{background:#aa1721;transform:translateY(-3px)}.contact .contact-note{margin:18px 0 0!important;color:#ffd9dc!important;font-size:10px!important;line-height:1.6!important;letter-spacing:.04em}
footer { background:#071920;color:#a8b3b6;padding:55px 6vw;display:grid;grid-template-columns:1fr 1fr 1fr;align-items:end;font-size:10px;letter-spacing:.08em; }.footer-brand img { width:210px;filter:drop-shadow(0 3px 10px #0006); }.footer-brand p { max-width:230px;line-height:1.6; }.footer-brand+ p { text-align:center; }footer>div:last-child { display:flex;justify-content:flex-end;gap:22px; }
.standard-page{max-width:900px;margin:0 auto;padding:120px 25px 80px;min-height:70vh}.standard-page h1{color:var(--ink);font-size:48px}.standard-page article{font-size:16px;line-height:1.75}

@media(max-width:900px){
  .nav-shell { height:74px;padding:0 22px; }.brand span,.nav-shell nav { display:none; }.brand img{width:165px;height:54px}.menu{display:block;background:none;border:0;color:white;font-size:23px;order:2}.language{order:3}.nav-shell nav.open{display:flex;position:absolute;top:74px;left:0;right:0;background:#0b202af7;flex-direction:column;padding:25px 30px;gap:0}.nav-shell nav.open a{padding:15px;border-bottom:1px solid #ffffff22}
  .hero{min-height:760px}.hero-content{padding:150px 26px 80px}h1{font-size:54px}.hero-intro{font-size:16px}.actions{flex-direction:column;align-items:flex-start}.scroll-mark{display:none}
  .credibility{padding:45px 25px;display:block}.credibility>p{width:100%}.stats{grid-template-columns:1fr;margin-top:35px}.stats div{border-left:0;border-top:1px solid #ccc;padding:20px 0}
  .section{padding:85px 25px}.section-head{grid-template-columns:1fr;gap:20px}.section-head h2,h2{font-size:42px}.service-grid{grid-template-columns:1fr}.service-grid button,.service-grid button:first-child{border-left:1px solid var(--line);min-height:270px}.coverage-strip{grid-template-columns:1fr;gap:16px}.memory-section{grid-template-columns:1fr;gap:45px;padding:80px 25px}.memory-heading h2{font-size:45px}.approach{grid-template-columns:1fr}.moving-image{min-height:420px}.approach-copy{padding:70px 25px}.approach-copy h2,.team-copy h2,.contact h2{font-size:43px}
  .team-copy{display:block}.team-copy h2{margin:18px 0 25px}.people-grid{grid-template-columns:1fr 1fr}.team-note{margin-top:30px}.contact{grid-template-columns:1fr;padding:75px 25px;gap:40px}footer{grid-template-columns:1fr;gap:30px;text-align:left}.footer-brand+ p{text-align:left}footer>div:last-child{justify-content:flex-start}
}
@media(max-width:700px){.profile-modal{padding:12px}.profile-dialog{grid-template-columns:1fr;max-height:94vh}.profile-photo{min-height:360px;max-height:44vh}.profile-content{padding:36px 26px 38px}.profile-content h2{font-size:34px;margin-right:35px}.profile-close{right:10px;top:10px}.service-dialog{padding:48px 25px 35px}.service-dialog h2{font-size:34px}.service-dialog ul{grid-template-columns:1fr}.people-grid{grid-template-columns:1fr}.person-copy{min-height:150px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}.hero video{display:block;transform:none}.hero-wash{background:rgba(4,22,29,.72)}}
