:root{
  --green:#12332f; --green-2:#0d2724; --ochre:#8a6a1f; --accent:#f2552c; --accent-ink:#d9431d;
  --ink:#151816; --muted:#5d625f; --paper:#f4f3ef; --white:#fff; --line:#dedcd5;
  --serif:'Zodiak', Georgia, serif; --sans:'Switzer', 'Helvetica Neue', Arial, sans-serif;
  --gut:clamp(20px,6vw,96px); --pad:clamp(72px,10vw,150px);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--sans);font-size:16px;line-height:1.65;color:var(--ink);background:var(--white);-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{display:block;max-width:100%;height:auto}
a{color:inherit}
h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.08;letter-spacing:-.01em}
em{font-style:normal;color:var(--accent)}
.skip{position:absolute;left:-999px;top:0;background:var(--accent);color:#fff;padding:10px 16px;z-index:200}
.skip:focus{left:10px}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.wrap{max-width:1240px;margin:0 auto;padding:0 var(--gut)}
.eyebrow{font-size:12px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);margin-bottom:18px}
.eyebrow.light{color:#ffb79c}
.eyebrow.center{text-align:center}
.ghost-num{font-family:var(--sans);font-weight:600;font-size:clamp(90px,14vw,200px);line-height:.8;color:rgba(0,0,0,.05);position:absolute;pointer-events:none;user-select:none}
.ghost-num.light{color:rgba(255,255,255,.06)}
.topo{background-color:var(--green);background-image:url(assets/topo.svg);background-size:cover;color:#fff}
.topo-ochre{background-color:var(--ochre)}

/* header */
.site-header{position:fixed;inset:0 0 auto 0;z-index:60;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:22px var(--gut);color:#fff;transition:background .3s, padding .3s, color .3s}
.site-header.scrolled{background:rgba(255,255,255,.96);color:var(--ink);padding-top:14px;padding-bottom:14px;box-shadow:0 1px 0 var(--line)}
.site-header.menu-open{background:transparent;color:#fff;box-shadow:none}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none}
.brand-mark{font-family:var(--serif);font-weight:700;font-size:30px;color:var(--accent);letter-spacing:-.02em;line-height:1}
.brand-sub{font-size:11px;line-height:1.3;letter-spacing:.02em;opacity:.85}
.header-meta{font-size:12px;letter-spacing:.06em;opacity:.8;margin-right:auto;margin-left:clamp(16px,5vw,80px)}
.menu-btn{background:none;border:0;color:inherit;font:600 12px var(--sans);letter-spacing:.18em;text-transform:uppercase;display:flex;align-items:center;gap:12px;cursor:pointer;min-height:44px;padding:0 4px}
.menu-btn i{width:22px;height:10px;border-top:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transition:transform .3s}
.menu-btn[aria-expanded=true] i{transform:scaleX(.6)}

/* menu overlay */
.menu{position:fixed;inset:0;z-index:55;background:var(--green-2) url(assets/topo.svg) center/cover;color:#fff;display:flex;flex-direction:column;justify-content:center;padding:100px var(--gut) 40px;opacity:0;transition:opacity .35s}
.menu[hidden]{display:none}
.menu.open{opacity:1}
.menu ol{list-style:none}
.menu li a{display:flex;align-items:baseline;gap:20px;font-family:var(--serif);font-size:clamp(36px,6vw,72px);line-height:1.2;text-decoration:none;transition:color .2s, transform .3s}
.menu li a:hover{color:var(--accent);transform:translateX(8px)}
.menu small{font:600 12px var(--sans);letter-spacing:.1em;opacity:.6}
.menu-foot{margin-top:48px;font-size:14px;opacity:.7;max-width:420px}

/* rail + dots */
.rail{position:fixed;left:calc(var(--gut) / 2 - 8px);top:50%;transform:translate(-50%,-50%) rotate(-90deg);font-size:10px;letter-spacing:.24em;text-transform:uppercase;z-index:40;color:#fff;mix-blend-mode:difference;white-space:nowrap;opacity:.7}
.dots{position:fixed;right:calc(var(--gut) / 2 - 3px);top:50%;transform:translateY(-50%);list-style:none;display:flex;flex-direction:column;gap:12px;z-index:40;mix-blend-mode:difference}
.dots li{width:6px;height:6px;border-radius:50%;background:#fff;opacity:.4;transition:opacity .3s, transform .3s}
.dots li.on{opacity:1;transform:scale(1.4)}

/* hero */
.hero{position:relative;min-height:100vh;min-height:100svh;display:flex;flex-direction:column;justify-content:center;overflow:hidden}
.hero-inner{position:relative;max-width:1240px;margin:0 auto;width:100%;padding:120px var(--gut) 90px;display:grid;grid-template-columns:1.1fr .9fr;align-items:center;gap:40px}
.hero .ghost-num{top:110px;left:calc(var(--gut) - 10px);font-size:14px;color:#fff;font-weight:600;letter-spacing:.1em}
.hero h1{font-size:clamp(42px,6.2vw,92px);line-height:1.02}
.kicker{margin-top:28px;font-size:12px;font-weight:600;letter-spacing:.18em;text-transform:uppercase}
.hero-text{margin-top:14px;max-width:440px;font-size:15px;opacity:.78}
.circle-btn{margin-top:36px;display:inline-grid;place-items:center;width:52px;height:52px;border:1.5px solid var(--accent);border-radius:50%;color:var(--accent);transition:background .25s,color .25s}
.circle-btn:hover{background:var(--accent);color:#fff}
.hero-figure{position:relative;justify-self:center}
.hero-figure img{position:relative;width:min(520px,100%);filter:drop-shadow(0 40px 60px rgba(0,0,0,.45));animation:float 7s ease-in-out infinite}
.hero-ring{position:absolute;inset:8% 4%;border:1px solid rgba(255,255,255,.14);border-radius:50%}
@keyframes float{50%{transform:translateY(-14px) rotate(-1.5deg)}}
.hero-foot{position:absolute;left:0;right:0;bottom:28px;padding:0 var(--gut);display:flex;align-items:center;gap:20px;font-size:11px;letter-spacing:.16em;text-transform:uppercase;opacity:.7;max-width:1240px;margin:0 auto}
.hero-line{flex:1;max-width:220px;height:1px;background:rgba(255,255,255,.25);position:relative;overflow:hidden}
.hero-line i{position:absolute;inset:0;width:30%;background:var(--accent);animation:line 2.6s ease-in-out infinite}
@keyframes line{0%{transform:translateX(-100%)}100%{transform:translateX(340%)}}
.hero-foot span:last-child{margin-left:auto}

/* about */
.about{padding:var(--pad) 0;background:var(--white)}
.about-head{max-width:760px;margin:0 auto var(--pad);text-align:center}
.about-head h2{font-size:clamp(32px,4vw,52px)}
.lede{margin:24px auto 0;color:var(--muted);max-width:600px}
.letter-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(24px,3vw,48px);margin-top:28px}
.letter-card{text-align:center}
.big-letter{display:block;font-family:var(--serif);font-weight:700;font-size:clamp(110px,12vw,170px);line-height:1;background:var(--img) center/cover, var(--ink);-webkit-background-clip:text;background-clip:text;color:transparent;transition:transform .5s}
.letter-card:hover .big-letter{transform:translateY(-6px)}
.letter-card h3{font-family:var(--sans);font-weight:600;font-size:15px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin:14px 0 10px}
.letter-card p{font-size:15px;color:var(--muted);max-width:260px;margin:0 auto}

/* bleed */
.bleed{position:relative;height:clamp(420px,70vh,720px);overflow:hidden;background:var(--green-2)}
.bleed img{width:100%;height:120%;object-fit:cover;position:absolute;top:-10%;will-change:transform}
.bleed-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(10,22,20,.82) 0%,rgba(10,22,20,.35) 65%,rgba(10,22,20,.1));display:flex;align-items:center;padding:0 var(--gut);color:#fff}
.bleed .ghost-num{top:40px;left:var(--gut)}
.bleed blockquote{max-width:620px;position:relative}
.bleed blockquote p{font-family:var(--serif);font-size:clamp(28px,3.6vw,48px);line-height:1.15}
.bleed cite{display:block;margin-top:20px;font-style:normal;font-size:12px;letter-spacing:.16em;text-transform:uppercase;opacity:.75}

/* finds */
.finds{position:relative;padding:var(--pad) 0}
.finds-head{max-width:560px;margin-bottom:56px}
.finds-head h2{font-size:clamp(32px,4vw,52px)}
.finds-head p:last-child{margin-top:16px;opacity:.9}
.finds .eyebrow{color:#fff}
.find-list{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:44px 40px}
.find-list a{display:block;text-decoration:none}
.find-name{font-family:var(--serif);font-size:clamp(30px,3.4vw,46px);line-height:1.1;text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:8px;text-decoration-color:rgba(255,255,255,.0);transition:text-decoration-color .3s}
.find-list a:hover .find-name,.find-list a:focus-visible .find-name{text-decoration-color:#fff}
.find-meta{display:block;margin-top:10px;font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;opacity:.85}
.find-list img{display:none}
.more-link{display:inline-block;margin-top:64px;font-size:12px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;text-decoration:none;border-bottom:1px solid currentColor;padding-bottom:4px}
.cursor-img{position:fixed;left:0;top:0;width:300px;height:220px;pointer-events:none;z-index:30;opacity:0;transform:translate(-50%,-50%) scale(.9);transition:opacity .25s, transform .25s;overflow:hidden;box-shadow:0 30px 60px rgba(0,0,0,.35)}
.cursor-img.show{opacity:1;transform:translate(-50%,-50%) scale(1)}
.cursor-img img{width:100%;height:100%;object-fit:cover}

/* regions */
.regions{padding:var(--pad) 0;background:var(--paper)}
.regions-head{display:flex;justify-content:space-between;align-items:end;gap:24px;margin-bottom:56px}
.regions-head h2{font-size:clamp(32px,4vw,52px);max-width:560px}
.region-list{list-style:none;display:grid;grid-template-columns:repeat(5,1fr);border-top:1px solid var(--line)}
.region-list li{padding:28px 22px 8px 0;border-right:1px solid var(--line);margin-right:22px}
.region-list li:last-child{border-right:0;margin-right:0}
.r-num{display:block;font-weight:600;font-size:56px;line-height:1;color:rgba(0,0,0,.07);margin-bottom:18px}
.region-list h3{font-size:24px;margin-bottom:10px}
.region-list p{font-size:14px;color:var(--muted)}

/* split */
.split{display:grid;grid-template-columns:1fr 1fr;min-height:620px;background:var(--white)}
.split-img img{width:100%;height:100%;object-fit:cover}
.split-copy{position:relative;padding:var(--pad) var(--gut);display:flex;flex-direction:column;justify-content:center}
.split-copy .ghost-num{top:40px;right:var(--gut)}
.split-copy h2{font-size:clamp(32px,4vw,52px);margin-bottom:18px}
.split-copy>p:not(.eyebrow):not(.ghost-num){color:var(--muted);max-width:440px}
.ticks{list-style:none;margin-top:28px;border-top:1px solid var(--line);max-width:440px}
.ticks li{padding:14px 0 14px 30px;border-bottom:1px solid var(--line);position:relative;font-size:15px}
.ticks li::before{content:"";position:absolute;left:0;top:50%;width:16px;height:1.5px;background:var(--accent)}

/* who */
.who{padding:var(--pad) 0;background:var(--white);border-top:1px solid var(--line)}
.who-grid{display:grid;grid-template-columns:1fr 1fr;gap:0}
.who-grid article{padding:0 clamp(24px,4vw,64px)}
.who-grid article:first-child{padding-left:0;border-right:1px solid var(--line)}
.who-grid h3{font-size:clamp(26px,2.8vw,36px);margin-bottom:14px}
.who-grid p:last-child{color:var(--muted)}

/* contact */
.contact{position:relative;padding:var(--pad) 0}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,6vw,100px);align-items:start;position:relative}
.contact .ghost-num{top:-60px;left:-10px}
.contact h2{font-size:clamp(34px,4.4vw,58px)}
.contact-text{margin-top:20px;opacity:.8;max-width:420px}
.form{display:grid;gap:22px}
.field{display:grid;gap:6px}
.field label{font-size:11px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;opacity:.8}
.field input,.field select,.field textarea{font:inherit;color:#fff;background:transparent;border:0;border-bottom:1px solid rgba(255,255,255,.35);padding:10px 0;min-height:44px;border-radius:0;transition:border-color .2s}
.field select option{color:var(--ink)}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-bottom-color:var(--accent)}
.field.err input,.field.err textarea{border-bottom-color:#ff8a6b}
.btn{justify-self:start;background:var(--accent);color:#fff;border:0;font:600 12px var(--sans);letter-spacing:.16em;text-transform:uppercase;padding:18px 34px;min-height:44px;cursor:pointer;transition:background .2s}
.btn:hover{background:var(--accent-ink)}
.form-status{font-size:14px;min-height:1.4em;color:#ffcfbd}

/* footer */
.footer{background:var(--green-2);color:#fff;padding:48px 0}
.footer-grid{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:24px;font-size:13px}
.footer nav{display:flex;flex-wrap:wrap;gap:8px 26px}
.footer nav a{text-decoration:none;opacity:.8}
.footer nav a:hover{opacity:1;color:var(--accent)}
.footer p{opacity:.6}

/* reveal */
.reveal{opacity:0;transform:translateY(28px);transition:opacity .8s ease, transform .8s ease}
.reveal.in{opacity:1;transform:none}


/* lifecycle */
.lifecycle{padding:var(--pad) 0;background:var(--paper)}
.life-head{max-width:820px;margin:0 auto 64px;text-align:center}
.life-head h2{font-size:clamp(32px,4vw,52px)}
.life-head .lede{max-width:680px}
.life-steps{list-style:none;display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--ink)}
.life-steps li{padding:28px 24px 8px 0;margin-right:24px;border-right:1px solid var(--line);position:relative}
.life-steps li:last-child{border-right:0;margin-right:0}
.life-steps li::before{content:"";position:absolute;top:-5px;left:0;width:9px;height:9px;border-radius:50%;background:var(--accent)}
.life-num{display:block;font-size:12px;font-weight:600;letter-spacing:.14em;color:var(--accent);margin-bottom:14px}
.life-steps h3{font-size:clamp(22px,2vw,27px);margin-bottom:10px}
.life-steps p{font-size:15px;color:var(--muted)}
@media (max-width:1000px){.life-steps{grid-template-columns:repeat(2,1fr);row-gap:32px}.life-steps li:nth-child(2){border-right:0;margin-right:0}}
@media (max-width:760px){.life-steps{grid-template-columns:1fr;border-top:0}.life-steps li{border-right:0;margin-right:0;border-top:1px solid var(--ink);padding-top:24px}}


/* track record */
.work{padding:var(--pad) 0;background:var(--white);border-top:1px solid var(--line)}
.work-head{display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:end;margin-bottom:56px}
.work-head h2{font-size:clamp(32px,4vw,52px)}
.work-head > p{color:var(--muted)}
.work-grid{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:48px clamp(20px,2.6vw,36px)}
.work-card h3{font-size:clamp(22px,2vw,27px);margin:6px 0 10px}
.work-card > p:not(.work-tag){font-size:15px;color:var(--muted)}
.work-img{aspect-ratio:4/3;background:#fff;border:1px solid var(--line);overflow:hidden;margin-bottom:20px}
.work-img img{width:100%;height:100%;transition:transform .6s ease}
.work-img.contain img{object-fit:contain;padding:6%}
.work-img.cover img{object-fit:cover}
.work-card:hover .work-img img{transform:scale(1.04)}
.work-tag{font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}
.work-specs{list-style:none;margin-top:14px;border-top:1px solid var(--line)}
.work-specs li{font-size:13px;padding:8px 0;border-bottom:1px solid var(--line);color:var(--ink)}
.floor{margin-top:var(--pad);padding-top:48px;border-top:1px solid var(--line)}
.floor-head{display:flex;justify-content:space-between;align-items:baseline;gap:24px;margin-bottom:24px}
.floor-head .eyebrow{margin:0}
.floor-head p:last-child{color:var(--muted);font-size:15px}
.floor-strip{list-style:none;display:grid;grid-template-columns:repeat(5,1fr);gap:16px}
.floor-strip img{width:100%;aspect-ratio:3/4;object-fit:cover;filter:saturate(.9)}
.floor-strip figcaption{font-size:13px;margin-top:10px;color:var(--muted)}
@media (max-width:1000px){.work-grid{grid-template-columns:repeat(2,1fr)}.floor-strip{grid-template-columns:repeat(3,1fr)}.work-head{grid-template-columns:1fr}}
@media (max-width:760px){.work-grid{grid-template-columns:1fr}.floor-strip{grid-template-columns:repeat(2,1fr)}.floor-head{flex-direction:column}}

@media (max-width:1000px){
  .letter-grid{grid-template-columns:repeat(2,1fr);row-gap:56px}
  .find-list{grid-template-columns:repeat(2,1fr)}
  .region-list{grid-template-columns:repeat(2,1fr)}
  .region-list li{border-right:0;margin-right:0;border-bottom:1px solid var(--line);padding-right:16px}
  .split{grid-template-columns:1fr}
  .split-img{height:360px}
}
@media (max-width:760px){
  .header-meta,.rail,.dots{display:none}
  .hero-inner{grid-template-columns:1fr;padding-top:110px;padding-bottom:110px;gap:10px}
  .hero-figure{order:-1;max-width:260px}
  .hero .ghost-num{display:none}
  .hero-foot span:last-child{display:none}
  .letter-grid{grid-template-columns:1fr 1fr;gap:40px 18px}
  .letter-card p{font-size:14px}
  .find-list{grid-template-columns:1fr;gap:32px}
  .find-list img{display:block;margin-top:16px;width:100%;aspect-ratio:16/10;object-fit:cover}
  .cursor-img{display:none}
  .bleed-overlay{background:rgba(10,22,20,.68)}
  .regions-head{display:block}
  .region-list{grid-template-columns:1fr}
  .who-grid{grid-template-columns:1fr;gap:48px}
  .who-grid article{padding:0}
  .who-grid article:first-child{border-right:0;border-bottom:1px solid var(--line);padding-bottom:48px}
  .contact-grid{grid-template-columns:1fr}
  .footer-grid{flex-direction:column;align-items:flex-start}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .reveal{opacity:1;transform:none}
}

/* product cards + modal */
.work-open{all:unset;display:block;width:100%;cursor:pointer;box-sizing:border-box}
.work-open:focus-visible{outline:2px solid var(--accent);outline-offset:6px}
.work-open > p:not(.work-tag){font-size:15px;color:var(--muted)}
.work-open h3{font-size:clamp(22px,2vw,27px);margin:6px 0 10px}
.work-open:hover .work-img img{transform:scale(1.04)}
.work-img{position:relative}
.work-year{position:absolute;left:0;top:0;background:var(--accent);color:#fff;font:600 11px var(--sans);letter-spacing:.14em;text-transform:uppercase;padding:8px 12px}
.work-count{position:absolute;right:10px;bottom:10px;background:rgba(13,39,36,.82);color:#fff;font:500 11px var(--sans);letter-spacing:.08em;padding:5px 9px}
.work-more{display:inline-block;margin-top:16px;font:600 12px var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--ink);border-bottom:1px solid var(--accent);padding-bottom:3px}
.work-open:hover .work-more{color:var(--accent)}
.floor-year{display:inline-block;background:var(--accent);color:#fff;font-weight:600;font-size:11px;letter-spacing:.1em;padding:2px 7px;margin-right:8px}
.pmodal{border:0;padding:0;width:min(1180px,94vw);max-height:92vh;margin:auto;background:var(--paper,#f4f3ef);color:var(--ink);overflow:auto}
.pmodal::backdrop{background:rgba(13,39,36,.78)}
body.modal-open{overflow:hidden}
.pm-close{position:absolute;right:12px;top:10px;z-index:3;width:44px;height:44px;border:0;background:#12332f;color:#fff;font-size:26px;line-height:1;cursor:pointer}
.pm-grid{display:grid;grid-template-columns:1.25fr 1fr}
.pm-gallery{background:#fff;padding:24px;display:flex;flex-direction:column;gap:14px;min-width:0}
.pm-stage{position:relative;height:min(62vh,600px);display:flex;align-items:center;justify-content:center;background:#fff}
.pm-main{max-width:100%;max-height:100%;object-fit:contain}
.pm-video{width:100%;height:100%;max-height:100%;object-fit:contain;background:#000}
.pm-main[hidden],.pm-video[hidden]{display:none!important}
.pm-thumbs button.pm-thumb-video{position:relative}
.pm-thumbs button.pm-thumb-video::after{content:"";position:absolute;left:50%;top:50%;width:0;height:0;margin:-9px 0 0 -6px;border-left:16px solid #fff;border-top:9px solid transparent;border-bottom:9px solid transparent;filter:drop-shadow(0 1px 3px rgba(0,0,0,.6))}
.pm-nav{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;border:0;background:rgba(18,51,47,.88);color:#fff;font-size:20px;cursor:pointer}
.pm-nav:hover{background:var(--accent)}
.pm-prev{left:0}.pm-next{right:0}
.pm-counter{position:absolute;bottom:0;right:0;font-size:12px;color:var(--muted);background:#fff;padding:4px 8px}
.pm-thumbs{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px}
.pm-thumbs button{flex:0 0 72px;height:72px;padding:0;border:2px solid transparent;background:#f4f3ef;cursor:pointer;opacity:.7}
.pm-thumbs button[aria-current="true"]{border-color:var(--accent);opacity:1}
.pm-thumbs img{width:100%;height:100%;object-fit:cover}
.pm-info{padding:56px 40px 40px}
.pm-year{display:inline-block;background:var(--accent);color:#fff;font:600 12px var(--sans);letter-spacing:.14em;text-transform:uppercase;padding:8px 14px;margin-bottom:18px}
.pm-info h2{font-size:clamp(28px,3vw,40px);margin:6px 0 16px}
.pm-more{color:var(--muted);font-size:16px;margin-bottom:24px}
.pm-details{border-top:1px solid var(--line);margin-bottom:28px}
.pm-details div{display:grid;grid-template-columns:38% 1fr;gap:14px;padding:11px 0;border-bottom:1px solid var(--line);font-size:14px}
.pm-details dt{font-weight:600}
.pm-details dd{margin:0;color:var(--ink)}
@media (max-width:860px){.pm-grid{grid-template-columns:1fr}.pm-stage{height:46vh}.pm-info{padding:28px 22px 32px}.pm-gallery{padding:56px 14px 14px}.pmodal{width:100vw;max-width:100vw;max-height:100dvh;height:100dvh}.pm-details div{grid-template-columns:1fr;gap:2px}.pm-close{position:fixed}}

/* how we work */
.models{padding:var(--pad) 0;background:#12332f;color:#fff}
.models-head{max-width:820px;margin-bottom:56px}
.models-head h2{font-size:clamp(32px,4vw,52px);color:#fff}
.models-head h2 em{color:#f2552c}
.models-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid rgba(255,255,255,.35)}
.models-grid article{padding:32px clamp(20px,2.4vw,36px) 8px 0;margin-right:clamp(20px,2.4vw,36px);border-right:1px solid rgba(255,255,255,.18)}
.models-grid article:last-child{border-right:0;margin-right:0}
.models-num{display:block;font-size:12px;font-weight:600;letter-spacing:.14em;color:#f2552c;margin-bottom:14px}
.models-grid h3{font-size:clamp(22px,2vw,28px);color:#fff;margin-bottom:12px}
.models-grid p{font-size:15px;color:rgba(255,255,255,.78)}
.models-grid ul{list-style:none;margin-top:18px;border-top:1px solid rgba(255,255,255,.18)}
.models-grid li{font-size:14px;padding:9px 0;border-bottom:1px solid rgba(255,255,255,.18);color:#fff}
.letter-grid{grid-template-columns:repeat(5,1fr)}
.life-steps{grid-template-columns:repeat(5,1fr)}
.life-steps h3{font-size:clamp(20px,1.7vw,25px)}
@media (max-width:1000px){.models-grid{grid-template-columns:1fr}.models-grid article{border-right:0;margin-right:0;padding-right:0;border-bottom:1px solid rgba(255,255,255,.18);padding-bottom:28px}.letter-grid{grid-template-columns:repeat(3,1fr)}.life-steps{grid-template-columns:repeat(2,1fr)}.life-steps li:nth-child(2n){border-right:0;margin-right:0}.life-steps li:nth-child(3){border-right:1px solid var(--line);margin-right:24px}}
@media (max-width:760px){.letter-grid{grid-template-columns:1fr 1fr}.life-steps{grid-template-columns:1fr}.life-steps li,.life-steps li:nth-child(3){border-right:0;margin-right:0}}

/* behind the scenes */
.quiet{padding:var(--pad) 0;background:var(--paper);border-top:1px solid var(--line)}
.quiet-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(32px,6vw,96px);align-items:start}
.quiet h2{font-size:clamp(32px,4vw,52px)}
.quiet .lede{margin:0;max-width:none;font-size:17px}
.quiet-list{list-style:none;margin-top:28px;border-top:1px solid var(--ink)}
.quiet-list li{padding:16px 0 16px 28px;border-bottom:1px solid var(--line);position:relative;font-size:15px;color:var(--muted)}
.quiet-list li::before{content:"";position:absolute;left:0;top:24px;width:9px;height:9px;border-radius:50%;background:var(--accent)}
.quiet-list strong{color:var(--ink);font-weight:600}
.quiet-note{margin-top:22px;font-size:14px;color:var(--muted);font-style:normal;border-left:3px solid var(--accent);padding-left:14px}
@media (max-width:860px){.quiet-grid{grid-template-columns:1fr}}

.contact-addr{font-style:normal;margin-top:36px;padding-top:24px;border-top:1px solid rgba(255,255,255,.2)}
.contact-addr .eyebrow{display:block;margin-bottom:10px}
.contact-addr a{color:#fff;text-decoration:none;font-size:17px;line-height:1.6}
.contact-addr a:hover{color:var(--accent)}
.footer-addr{font-style:normal;font-size:13px;opacity:.8}

.brand .logo{height:46px;width:auto;display:block}
.brand .logo-on-light{display:none}
.site-header.scrolled .logo-on-dark{display:none}
.site-header.scrolled .logo-on-light{display:block}
.site-header.menu-open .logo-on-dark{display:block}
.site-header.menu-open .logo-on-light{display:none}
.logo-foot{height:62px;width:auto;display:block}
.contact-email{display:block;font-size:20px !important;margin-bottom:4px}
.footer-addr a{color:inherit}
@media (max-width:760px){.brand .logo{height:38px}}

/* client portal (home) */
.portal-link{white-space:nowrap;font:600 12px var(--sans);letter-spacing:.16em;text-transform:uppercase;text-decoration:none;border:1px solid currentColor;padding:10px 16px;min-height:40px;display:inline-flex;align-items:center;transition:background .2s,color .2s,border-color .2s}
.portal-link:hover{background:var(--accent);border-color:var(--accent);color:#fff}
.site-header.menu-open .portal-link{visibility:hidden}
.portal-home{padding:var(--pad) 0;background:var(--paper);border-top:1px solid var(--line)}
.portal-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(40px,6vw,100px);align-items:center}
.portal-copy h2{font-size:clamp(34px,4.4vw,58px)}
.portal-lead{margin-top:20px;color:var(--muted);max-width:520px}
.portal-feats{list-style:none;margin-top:40px;display:grid;gap:26px}
.portal-feats li{display:grid;grid-template-columns:48px 1fr;gap:14px;border-top:1px solid var(--line);padding-top:22px}
.portal-feats span{font:600 12px var(--sans);letter-spacing:.12em;color:var(--accent);padding-top:4px}
.portal-feats h3{font-family:var(--sans);font-weight:600;font-size:17px;margin-bottom:6px;letter-spacing:0}
.portal-feats p{color:var(--muted);font-size:15px;max-width:480px}
.portal-card{background:var(--white);border:1px solid var(--line);padding:clamp(28px,4vw,48px);display:grid;gap:20px;box-shadow:0 30px 60px -30px rgba(18,51,47,.25)}
.portal-card-logo{width:150px;height:auto}
.portal-card h3{font-size:28px}
.pfield{display:grid;gap:6px}
.pfield label{font-size:11px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.pfield input,.pfield select,.pfield textarea{font:inherit;color:var(--ink);background:var(--white);border:1px solid var(--line);padding:11px 14px;min-height:46px;border-radius:2px;transition:border-color .2s}
.pfield input:focus,.pfield select:focus,.pfield textarea:focus{outline:none;border-color:var(--green)}
.pfield.err input{border-color:var(--accent)}
.pc-row{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:14px;flex-wrap:wrap}
.pc-row a,.pc-new a{color:var(--green);font-weight:600}
.pc-check{display:flex;align-items:center;gap:8px;color:var(--muted)}
.pc-check input{accent-color:var(--accent);width:16px;height:16px}
.pc-btn{width:100%;justify-self:stretch}
.pc-status{color:var(--accent-ink);min-height:0}
.pc-status:empty{display:none}
.pc-new{font-size:14px;color:var(--muted);border-top:1px solid var(--line);padding-top:18px}
@media (max-width:1000px){.portal-grid{grid-template-columns:1fr}}
@media (max-width:560px){.site-header{gap:14px}.portal-link{margin-left:auto;padding:8px 10px;font-size:11px;letter-spacing:.1em}.header-meta{display:none}}

/* news */
.news{padding:var(--pad) 0;background:var(--green-2) url(assets/topo.svg) center/cover;color:#fff}
.news-head{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,6vw,100px);align-items:end;margin-bottom:56px}
.news h2{font-size:clamp(34px,4.4vw,58px)}
.news-intro{opacity:.82;max-width:480px}
.news-updated{display:block;margin-top:14px;font:600 11px var(--sans);letter-spacing:.16em;text-transform:uppercase;color:#ffb79c}
.news-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.14)}
.news-card{background:var(--green-2);padding:30px 28px 28px;display:flex;flex-direction:column;gap:14px;transition:background .25s}
.news-card:hover{background:#123a35}
.news-feature{grid-column:span 2;background:var(--green)}
.news-feature h3{font-size:clamp(26px,2.6vw,36px)}
.news-meta{display:flex;justify-content:space-between;gap:12px;font-size:12px;opacity:.75}
.news-cat{font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:#ffb79c;opacity:1}
.news-card h3{font-size:22px;line-height:1.2}
.news-card h3 a{text-decoration:none}
.news-card h3 a:hover{color:#ffb79c}
.news-sum{font-size:15px;opacity:.8}
.news-why{font-size:14px;border-left:2px solid var(--accent);padding-left:14px;opacity:.92}
.news-why b{display:block;font-size:11px;letter-spacing:.14em;text-transform:uppercase;margin-bottom:4px;color:#fff}
.news-src{margin-top:auto;font:600 12px var(--sans);letter-spacing:.12em;text-transform:uppercase;text-decoration:none;padding-top:10px;color:#fff}
.news-src:hover{color:#ffb79c}
.news-note{margin-top:22px;font-size:12.5px;opacity:.6}
@media (max-width:1000px){.news-head{grid-template-columns:1fr}.news-grid{grid-template-columns:1fr 1fr}.news-feature{grid-column:1/-1}}
@media (max-width:640px){.news-grid{grid-template-columns:1fr}.news-card{padding:26px 22px}}
.news-cta{grid-column:span 2;background:var(--accent);justify-content:center}
.news-cta:hover{background:var(--accent-ink)}
.news-cta .news-cat{color:#fff;opacity:.85;font-size:12px}
.news-cta h3{font-size:clamp(24px,2.4vw,32px)}
.news-cta .news-sum{opacity:.92;max-width:520px}
.news-cta .btn{background:#fff;color:var(--ink);margin-top:8px}
.news-cta .btn:hover{background:var(--green-2);color:#fff}
@media (max-width:1000px){.news-cta{grid-column:auto}}
@media (max-width:640px){.news-cta{grid-column:auto}}
/* hero CTAs */
.hero-ctas{margin-top:34px;display:flex;flex-wrap:wrap;gap:12px}
.hero-ctas .btn{text-decoration:none;display:inline-flex;align-items:center}
.btn-ghost{background:transparent;color:#fff;box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.55)}
.btn-ghost:hover{background:#fff;color:var(--ink)}
.about{padding-bottom:calc(var(--pad) * .8)}
/* FAQ */
.faq{padding:var(--pad) 0;background:var(--paper);border-top:1px solid var(--line)}
.faq-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:64px;align-items:start}
.faq-head{position:sticky;top:110px}
.faq-head h2{font-size:clamp(34px,4vw,54px);line-height:1.06;margin:14px 0 18px}
.faq-head h2 em{font-style:normal;color:var(--accent)}
.faq-head p:last-child{color:var(--muted);max-width:340px}
.faq-head a{color:var(--ink);text-decoration:underline;text-underline-offset:3px}
.faq-list{border-top:1px solid var(--ink)}
.faq-item{border-bottom:1px solid var(--line)}
.faq-item summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:24px;align-items:center;padding:22px 0;font-family:var(--serif);font-size:clamp(19px,1.6vw,22px);line-height:1.3}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary i{flex:none;position:relative;width:14px;height:14px}
.faq-item summary i::before,.faq-item summary i::after{content:"";position:absolute;left:0;top:6px;width:14px;height:1.6px;background:var(--accent);transition:transform .25s}
.faq-item summary i::after{transform:rotate(90deg)}
.faq-item[open] summary i::after{transform:rotate(0)}
.faq-item summary:hover{color:var(--accent)}
.faq-item summary:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
.faq-item p{color:var(--muted);max-width:620px;padding:0 0 24px}
@media (max-width:900px){.faq-grid{grid-template-columns:1fr;gap:28px}.faq-head{position:static}}
/* form extras */
.hp{position:absolute!important;left:-9999px;width:1px;height:1px;opacity:0}
.form-legal{font-size:12px;opacity:.7}
.form-legal a,.form-status a{color:inherit;text-decoration:underline}
.footer a[href$=".html"]{text-decoration:underline;text-underline-offset:2px}
.work-img.clean img{object-fit:cover}
/* department directory */
.dept{display:grid;grid-template-columns:1fr 1fr;gap:14px 28px;margin:10px 0 4px;font-style:normal}
.dept dt{font-size:11px;letter-spacing:.12em;text-transform:uppercase;opacity:.6;margin-bottom:2px}
.dept dd{margin:0;font-size:15px;overflow-wrap:anywhere}
.dept a{font-size:15px;line-height:1.4;color:#fff;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.25)}
.dept a:hover{color:var(--accent-lt,#ffb79c);border-color:currentColor}
.who-grid a,.faq-item p a{color:inherit;text-decoration:underline;text-underline-offset:3px}
.footer-addr a{overflow-wrap:anywhere}
@media (max-width:640px){.dept{grid-template-columns:1fr}}

/* Product line review band */
.lineup{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(28px,4vw,64px);margin-top:56px;padding:clamp(28px,3.4vw,48px);background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.22);border-top:3px solid #f2552c}
.lineup h3{font-size:clamp(26px,2.6vw,36px);color:#fff;margin-bottom:14px;line-height:1.1}
.lineup-intro p{font-size:15.5px;color:rgba(255,255,255,.8)}
.lineup-ctas{margin:24px 0 12px}
.lineup .lineup-fine{font-size:13px;color:rgba(255,255,255,.6)}
.lineup-steps{list-style:none;counter-reset:ls;margin:0;padding:0;border-top:1px solid rgba(255,255,255,.18)}
.lineup-steps li{counter-increment:ls;display:grid;grid-template-columns:44px minmax(0,1fr);column-gap:8px;padding:16px 0;border-bottom:1px solid rgba(255,255,255,.18)}
.lineup-steps li::before{content:counter(ls,decimal-leading-zero);grid-row:span 2;font-size:12px;font-weight:600;letter-spacing:.14em;color:#f2552c;padding-top:4px}
.lineup-steps b{color:#fff;font-weight:600;font-size:16px}
.lineup-steps span{font-size:14px;color:rgba(255,255,255,.72);margin-top:4px}
@media (max-width:1000px){.lineup{grid-template-columns:1fr}}
.lineup .btn{display:inline-flex;align-items:center;justify-content:center;text-align:center;text-decoration:none;line-height:1.3;max-width:100%;white-space:normal}
@media (max-width:560px){.lineup .btn{display:flex;width:100%;padding-left:16px;padding-right:16px;letter-spacing:.1em}}

/* Role in the market: rotating photo background */
.lifecycle.has-slides{position:relative;overflow:hidden;background:#0d2724;color:#fff;isolation:isolate}
.life-bg{position:absolute;inset:0;z-index:-1}
.life-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(9,28,26,.72) 0%,rgba(9,28,26,.5) 36%,rgba(9,28,26,.8) 70%,rgba(9,28,26,.9) 100%)}
.life-slide{position:absolute;inset:0;opacity:0;transition:opacity 1.6s ease}
.life-slide.is-on{opacity:1}
.life-slide img{width:100%;height:100%;object-fit:cover;transform:scale(1.04);transition:transform 9s linear}
.life-slide.is-on img{transform:scale(1.12)}
.has-slides .eyebrow{color:#ff8a66}
.has-slides .life-head h2,.has-slides .life-steps h3{color:#fff}
.has-slides .life-head h2 em{color:#ffd9cc}
.has-slides .life-head .lede{color:rgba(255,255,255,.86)}
.has-slides .life-steps{border-top-color:rgba(255,255,255,.55)}
.has-slides .life-steps li{border-right-color:rgba(255,255,255,.2);transition:opacity .5s}
.has-slides .life-steps li::before{background:#f2552c;transition:transform .5s,box-shadow .5s}
.has-slides .life-steps li.is-active::before{transform:scale(1.5);box-shadow:0 0 0 6px rgba(242,85,44,.25)}
.has-slides .life-num{color:#ff8a66}
.has-slides .life-steps p{color:rgba(255,255,255,.78)}
.life-ctrl{display:flex;align-items:center;gap:20px;margin-top:44px;padding-top:18px;border-top:1px solid rgba(255,255,255,.18)}
.life-caption{flex:1;min-width:0;margin:0;font-size:13px;color:rgba(255,255,255,.66);letter-spacing:.02em}
.life-dots{display:flex;gap:4px}
.life-dots button{width:34px;height:44px;border:0;background:none;cursor:pointer;position:relative;padding:0}
.life-dots button::after{content:"";position:absolute;left:4px;right:4px;top:50%;height:3px;background:rgba(255,255,255,.35);transition:background .3s}
.life-dots button[aria-pressed=true]::after{background:#f2552c}
.life-dots button:focus-visible,.life-pause:focus-visible{outline:2px solid #fff;outline-offset:2px}
.life-pause{display:inline-flex;align-items:center;gap:8px;background:none;border:1px solid rgba(255,255,255,.45);color:#fff;font:600 11px var(--sans);letter-spacing:.14em;text-transform:uppercase;padding:0 14px;min-height:44px;cursor:pointer}
.lp-ico{width:10px;height:12px;border-left:3px solid #fff;border-right:3px solid #fff}
.life-pause[aria-pressed=true] .lp-ico{border:0;width:0;height:0;border-left:10px solid #fff;border-top:6px solid transparent;border-bottom:6px solid transparent}
@media (max-width:760px){.has-slides .life-steps li{border-top-color:rgba(255,255,255,.4)}.life-ctrl{flex-wrap:wrap;gap:10px}.life-caption{flex-basis:100%}}
@media (prefers-reduced-motion:reduce){.life-slide,.life-slide img{transition:none}.life-slide.is-on img,.life-slide img{transform:none}}
/* Highlight the step matching the current slide */
.has-slides .life-steps li{transition:opacity .6s ease}
.has-slides .life-steps li h3,.has-slides .life-steps li p{transition:color .6s ease}
.has-slides .life-steps li::after{content:"";position:absolute;z-index:-1;top:0;bottom:0;left:-16px;right:0;background:linear-gradient(180deg,rgba(242,85,44,.2),rgba(242,85,44,.05) 70%,rgba(242,85,44,0));box-shadow:inset 0 3px 0 #f2552c;opacity:0;transition:opacity .6s ease;pointer-events:none}
.has-slides .life-steps li.is-active::after{opacity:1}
.has-slides .life-steps:has(li.is-active) li:not(.is-active){opacity:.7}
.has-slides .life-steps li.is-active h3{color:#ffd9cc}
.has-slides .life-steps li.is-active p{color:#fff}
@media (max-width:760px){.has-slides .life-steps li::after{left:-12px;right:-12px}}
@media (prefers-reduced-motion:reduce){.has-slides .life-steps li,.has-slides .life-steps li::after{transition:none}}

/* ESPi wordmark in body text: lowercase blue i, matching the logo */
.espi{white-space:nowrap;font:inherit}
.espi>span{color:var(--espi-i,#0075ef)}
.models,.lifecycle.has-slides,.quiet,.topo,.site-footer,footer,.news-cta,.pp-q,.dark,.split-dark,#pp-toast{--espi-i:#3d9bff}
.topo .pc-card,.topo [class*="card"]{--espi-i:#0075ef}

/* Behind the scenes: moving microscope background */
.quiet.has-video{position:relative;overflow:hidden;isolation:isolate;background:#0d2724;color:#fff;border-top:0}
.quiet-bg{position:absolute;inset:0;z-index:-1;background:#0d2724 url(assets/quiet/team2-poster.webp) center/cover no-repeat}
.quiet-video{width:100%;height:100%;object-fit:cover;object-position:60% 35%;display:block}
.quiet-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(9,28,26,.86) 0%,rgba(9,28,26,.55) 46%,rgba(9,28,26,.68) 100%)}
.has-video .eyebrow{color:#ff8a66}
.has-video h2{color:#fff}
.has-video h2 em{color:#ffd9cc}
.has-video .lede{color:rgba(255,255,255,.9)}
.has-video .quiet-list{border-top-color:rgba(255,255,255,.55)}
.has-video .quiet-list li{color:rgba(255,255,255,.78);border-bottom-color:rgba(255,255,255,.18)}
.has-video .quiet-list strong{color:#fff}
.has-video .quiet-note{color:rgba(255,255,255,.75)}
.quiet-pause{position:absolute;right:var(--gut,24px);bottom:24px;z-index:2;background:rgba(9,28,26,.35)}
@media (max-width:860px){.quiet-bg::after{background:linear-gradient(180deg,rgba(9,28,26,.8),rgba(9,28,26,.88))}.has-video .wrap{padding-bottom:56px}.quiet-video{object-position:72% 50%}}
