
@font-face{font-family:'Blacker';font-weight:400;font-style:normal;src:url(fonts/blacker-regular.woff2) format('woff2');font-display:swap;}
@font-face{font-family:'Blacker';font-weight:400;font-style:italic;src:url(fonts/blacker-italic.woff2) format('woff2');font-display:swap;}
@font-face{font-family:'Blacker';font-weight:500;font-style:normal;src:url(fonts/blacker-medium.woff2) format('woff2');font-display:swap;}
@font-face{font-family:'PPN';font-weight:300;font-style:normal;src:url(fonts/ppneue-light.woff2) format('woff2');font-display:swap;}
@font-face{font-family:'PPN';font-weight:400;font-style:normal;src:url(fonts/ppneue-regular.woff2) format('woff2');font-display:swap;}
@font-face{font-family:'PPN';font-weight:500;font-style:normal;src:url(fonts/ppneue-medium.woff2) format('woff2');font-display:swap;}

@font-face{font-family:'Blacker';font-weight:400;font-style:normal;src:url(fonts/playfair-digits.woff2) format('woff2');unicode-range:U+0030-0039,U+0024,U+0025;}
@font-face{font-family:'Blacker';font-weight:400;font-style:italic;src:url(fonts/playfair-digits.woff2) format('woff2');unicode-range:U+0030-0039,U+0024,U+0025;}
@font-face{font-family:'Blacker';font-weight:500;font-style:normal;src:url(fonts/playfair-digits.woff2) format('woff2');unicode-range:U+0030-0039,U+0024,U+0025;}

:root{
  --ink:#151110;          /* warm near-black */
  --ink-2:#1c1715;
  --bone:#EDE6DC;         /* warm off-white text */
  --dim:rgba(237,230,220,.92);
  --faint:rgba(237,230,220,.6);
  --line:rgba(237,230,220,.12);
  --ember:linear-gradient(90deg,#FB953C 0%,#F3212C 52%,#7A2230 100%);
  --serif:'Blacker',Georgia,serif;
  --sans:'PPN',-apple-system,'Helvetica Neue',Arial,sans-serif;
  --wrap:1060px;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{background:var(--ink);color:var(--bone);font-family:var(--sans);font-weight:300;
  font-size:17px;line-height:1.7;-webkit-font-smoothing:antialiased;}
::selection{background:#F3212C;color:#fff;}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 28px;}
a{color:inherit;text-decoration:none;}

/* labels — engraved caps */
.lbl{font-weight:500;font-size:10.5px;letter-spacing:.42em;text-transform:uppercase;color:var(--dim);}

/* ember hairline */
.ember{display:block;width:56px;height:1px;background:var(--ember);border:none;}

/* slow reveals */
.rv{opacity:0;transform:translateY(14px);transition:opacity 1.25s cubic-bezier(.2,.6,.2,1),transform 1.25s cubic-bezier(.2,.6,.2,1);}
.rv.on{opacity:1;transform:none;}
.rv2{transition-delay:.18s;}
.rv3{transition-delay:.36s;}
@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto;}.rv{opacity:1;transform:none;transition:none;}}

/* ── top bar ── */
.bar{position:fixed;top:0;left:0;right:0;z-index:40;transition:background .5s,border-color .5s;
  border-bottom:1px solid transparent;}
.bar.solid{background:rgba(21,17,16,.82);backdrop-filter:blur(10px);border-color:var(--line);}
.bar .in{display:flex;align-items:center;justify-content:space-between;padding:22px 28px;}
.bar img{height:74px;width:auto;opacity:.95;}
.bar .right{display:flex;align-items:center;gap:30px;}
.bar .right .city{font-weight:500;font-size:10px;letter-spacing:.42em;text-transform:uppercase;color:var(--faint);}
.bar .right a.inq{font-weight:400;font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--bone);
  padding-bottom:4px;border-bottom:1px solid var(--line);transition:border-color .4s;}
.bar .right a.inq:hover{border-image:var(--ember) 1;border-bottom:1px solid;}

/* ── hero ── */
.hero{min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;position:relative;padding:0 24px;}
.hero .ember{margin:0 auto 42px;}
.hero h1{font-family:var(--serif);font-weight:400;font-size:clamp(34px,5.2vw,64px);line-height:1.14;
  letter-spacing:.005em;max-width:17ch;}
.hero h1 em{font-style:italic;}
.hero .sub{margin-top:44px;font-weight:500;font-size:10.5px;letter-spacing:.5em;text-transform:uppercase;color:var(--dim);}
.hero .wings{margin-top:40px;width:52px;height:auto;opacity:.9;}
.hero .hint{position:absolute;bottom:38px;left:50%;transform:translateX(-50%);
  font-weight:500;font-size:9.5px;letter-spacing:.4em;text-transform:uppercase;color:var(--faint);}
.hero .hint::after{content:'';display:block;width:1px;height:34px;background:var(--line);margin:14px auto 0;}

/* ── sections ── */
section{padding:clamp(70px,9vw,120px) 0;}
section + section{border-top:1px solid var(--line);}
.head{display:flex;align-items:baseline;justify-content:space-between;gap:24px;margin-bottom:clamp(36px,5vw,56px);}
.serifline{font-family:var(--serif);font-weight:400;font-size:clamp(24px,3.2vw,38px);line-height:1.4;
  letter-spacing:.002em;max-width:34ch;}
.serifline em{font-style:italic;}

/* capabilities rows */
.rows{border-top:1px solid var(--line);}
.row{display:grid;grid-template-columns:1fr 1.1fr;gap:16px 60px;align-items:baseline;
  padding:34px 0;border-bottom:1px solid var(--line);}
.row h3{font-family:var(--serif);font-weight:400;font-size:clamp(20px,2.4vw,27px);letter-spacing:.004em;}
.row p{font-size:15px;color:var(--dim);max-width:52ch;}

/* team list */
.tlist{border-top:1px solid var(--line);position:relative;}
.trow{display:flex;align-items:baseline;justify-content:space-between;gap:22px;
  padding:22px 0;border-bottom:1px solid var(--line);cursor:pointer;}
.trow .nm{font-family:var(--serif);font-weight:400;font-size:clamp(22px,2.9vw,33px);letter-spacing:.004em;
  transition:color .45s;}
.trow .rl{font-weight:400;font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--dim);text-align:right;}
.trow:hover .nm{color:transparent;background:var(--ember);-webkit-background-clip:text;background-clip:text;}


.head-team{align-items:flex-end;}
.teamline{font-family:var(--serif);font-weight:400;font-size:clamp(30px,4.4vw,54px);line-height:1.08;letter-spacing:.002em;margin-top:20px;max-width:14ch;}
.teamline em{font-style:italic;}
.teamside p{font-size:15px;color:var(--dim);max-width:36ch;}
.ghost{display:inline-block;margin-top:24px;font-weight:400;font-size:12px;letter-spacing:.28em;text-transform:uppercase;color:var(--bone);
  border:1px solid var(--faint);padding:15px 28px;transition:border-color .4s;}
.ghost .arr{display:inline-block;transition:transform .4s;}
.ghost:hover{border-color:var(--bone);}
.ghost:hover .arr{transform:translateX(4px);}

/* press ledger */
.press .prow{display:grid;grid-template-columns:120px 1fr auto;gap:14px 44px;align-items:baseline;
  padding:30px 0;border-bottom:1px solid var(--line);}
.press .rows{border-top:1px solid var(--line);}
.press .dt{font-weight:400;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--faint);}
.press h3{font-family:var(--serif);font-weight:400;font-size:clamp(18px,2.2vw,24px);line-height:1.35;
  letter-spacing:.004em;max-width:30ch;transition:color .45s;}
.press .out{font-weight:400;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--dim);white-space:nowrap;}
.press .out span{display:inline-block;transition:transform .4s;}
.press a.prow:hover h3{color:transparent;background:var(--ember);-webkit-background-clip:text;background-clip:text;}
.press a.prow:hover .out span{transform:translate(3px,-3px);}

/* contact */
.contact .grid{display:grid;grid-template-columns:1fr 1fr;gap:60px 90px;align-items:start;}
.contact .serifline{max-width:20ch;}
.contact .note{margin-top:26px;font-size:15px;color:var(--dim);max-width:38ch;}
.contact .coords{margin-top:44px;display:flex;flex-direction:column;gap:8px;
  font-weight:400;font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--dim);}
.contact .coords a{border-bottom:1px solid var(--line);width:max-content;padding-bottom:2px;transition:border-color .4s;}
.contact .coords a:hover{border-image:var(--ember) 1;border-bottom:1px solid;}
.f .fld{margin-bottom:34px;}
.f label{display:block;font-weight:500;font-size:10px;letter-spacing:.4em;text-transform:uppercase;color:var(--faint);margin-bottom:10px;}
.f input,.f textarea{width:100%;background:transparent;border:none;border-bottom:1px solid var(--line);
  font-family:var(--sans);font-weight:300;font-size:17px;color:var(--bone);padding:8px 0 12px;outline:none;
  transition:border-color .4s;border-radius:0;}
.f textarea{min-height:84px;resize:vertical;}
.f input:focus,.f textarea:focus{border-image:var(--ember) 1;border-bottom:1px solid;}
.f input.err,.f textarea.err{border-bottom-color:#F3212C;}
.f button{margin-top:8px;background:transparent;border:1px solid var(--faint);color:var(--bone);
  font-family:var(--sans);font-weight:400;font-size:12px;letter-spacing:.3em;text-transform:uppercase;
  padding:18px 38px;cursor:pointer;transition:border-color .4s,background .4s,color .4s;}
.f button:hover{border-color:var(--bone);}
.f button:disabled{opacity:.4;cursor:default;}
.status{display:none;margin-top:22px;font-size:14px;color:var(--dim);}
.status.on{display:block;}

/* footer */
.foot{border-top:1px solid var(--line);padding:34px 0 44px;}
.foot .legal{display:flex;gap:26px;}
.foot .legal a{border-bottom:1px solid transparent;transition:border-color .4s,color .4s;}
.foot .legal a:hover{color:var(--bone);border-color:var(--line);}
.foot .in{display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap;
  font-weight:400;font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--faint);}

@media (max-width:600px){ .bar .right{gap:18px;} .bar .right a.inq{font-size:11px;} }
@media (max-width:820px){
  .row{grid-template-columns:1fr;gap:8px;}
  .contact .grid{grid-template-columns:1fr;}
  .press .prow{grid-template-columns:1fr;gap:8px;}
  .head{flex-direction:column;gap:18px;}
  
}

/* ── team page ── */
.pagehead{padding:clamp(170px,20vw,240px) 0 clamp(50px,6vw,80px);}
.pagehead h1{font-family:var(--serif);font-weight:400;font-size:clamp(36px,5.6vw,72px);line-height:1.08;letter-spacing:.002em;margin-top:24px;max-width:16ch;}
.pagehead h1 em{font-style:italic;}
.pagehead .phrow{display:grid;grid-template-columns:1.1fr 1fr;gap:30px 80px;align-items:end;}
.pagehead .phlede{font-size:16px;line-height:1.7;color:var(--dim);max-width:44ch;padding-bottom:10px;}
@media (max-width:820px){.pagehead .phrow{grid-template-columns:1fr;}}
.teamgrid{padding:clamp(60px,8vw,100px) 0 clamp(90px,12vw,150px);}
.tgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:56px 34px;}
.tcard{background:none;border:none;padding:0;text-align:left;cursor:pointer;color:var(--bone);font-family:var(--sans);}
.tcard .ph{overflow:hidden;border:1px solid var(--line);aspect-ratio:4/5;}
.tcard .ph img{width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.02);
  transition:filter .6s ease,transform .6s ease;display:block;}
.tcard:hover .ph img{filter:grayscale(0);transform:scale(1.025);}
.tcard h3{font-family:var(--serif);font-weight:400;font-size:clamp(21px,2.3vw,27px);letter-spacing:.004em;margin-top:20px;transition:color .45s;}
.tcard:hover h3{color:transparent;background:var(--ember);-webkit-background-clip:text;background-clip:text;}
.tcard .rl{margin-top:7px;font-weight:400;font-size:10.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--dim);}
.tcard .bio-src{display:none;}

/* overlay */
.profile{position:fixed;inset:0;z-index:60;display:none;}
.profile.open{display:block;}
.profile .scrim{position:absolute;inset:0;background:rgba(10,8,7,.72);backdrop-filter:blur(6px);opacity:0;transition:opacity .5s;}
.profile.in .scrim{opacity:1;}
.profile .panel{position:absolute;inset:0;overflow-y:auto;display:flex;align-items:flex-start;justify-content:center;padding:clamp(14px,4vw,56px);}
.profile .sheet{position:relative;width:min(980px,100%);background:var(--ink-2);border:1px solid var(--line);
  display:grid;grid-template-columns:.8fr 1.2fr;opacity:0;transform:translateY(20px);
  transition:opacity .55s ease,transform .55s cubic-bezier(.2,.7,.2,1);}
.profile.in .sheet{opacity:1;transform:none;}
.profile .pic img{width:100%;height:100%;object-fit:cover;display:block;filter:grayscale(1);}
.profile .body{padding:clamp(30px,4vw,58px);}
.profile .body h3{font-family:var(--serif);font-weight:400;font-size:clamp(28px,3.4vw,42px);letter-spacing:.004em;}
.profile .pf-role{margin-top:12px;font-weight:400;font-size:11px;letter-spacing:.26em;text-transform:uppercase;color:rgba(237,230,220,.66);}
.profile .pf-bio p{font-size:15.5px;line-height:1.75;color:rgba(237,230,220,.82);}
.profile .pf-bio p + p{margin-top:14px;}
.profile .body .ghost{margin-top:34px;}
.profile .close{position:absolute;top:14px;right:14px;z-index:2;width:42px;height:42px;background:var(--ink);
  border:1px solid var(--line);color:var(--bone);font-size:14px;cursor:pointer;transition:border-color .4s;}
.profile .close:hover{border-color:var(--bone);}
@media (max-width:900px){
  .tgrid{grid-template-columns:repeat(2,1fr);gap:44px 22px;}
  .profile .sheet{grid-template-columns:1fr;}
  .profile .pic img{max-height:320px;}
}
@media (max-width:560px){ .tgrid{grid-template-columns:1fr;} }
.page[hidden]{display:none;}


.page[hidden]{display:none;}

/* legal docs */
.legalpage{padding:clamp(160px,18vw,220px) 0 clamp(90px,12vw,140px);}
.legalpage h1{font-family:var(--serif);font-weight:400;font-size:clamp(32px,4.6vw,56px);letter-spacing:.002em;margin-bottom:clamp(40px,6vw,64px);}
.doc{max-width:78ch;}
.doc h2,.doc h3{font-family:var(--serif);font-weight:400;font-size:22px;margin:38px 0 14px;color:var(--bone);}
.doc p,.doc li{font-size:15px;line-height:1.8;color:var(--dim);}
.doc p + p{margin-top:14px;}
.doc ul,.doc ol{margin:14px 0 14px 22px;}
.doc a{color:var(--bone);border-bottom:1px solid var(--line);}

/* ── mobile refinements ── */
@media (max-width:640px){
  .bar .in{padding:16px 20px;}
  .bar img{height:44px;}
  .bar.solid .bar img{height:40px;}
  .bar .right{gap:16px;}
  .bar .right a.inq{font-size:10.5px;letter-spacing:.1em;white-space:nowrap;}
  .trow{flex-direction:column;align-items:flex-start;gap:7px;padding:18px 0;}
  .trow .rl{text-align:left;}
  .hero .wings{width:44px;margin-top:32px;}
  .head-team{align-items:flex-start;}
}

/* homepage rows open bios in place */
button.trow{width:100%;background:none;border:none;border-bottom:1px solid var(--line);
  font-family:var(--sans);color:var(--bone);text-align:left;}
button.trow .nm{font-weight:400;}

/* overlay photo: smaller, never crops heads */
.profile .pic img{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;object-position:center top;display:block;}
.profile .pic .ghost{display:block;text-align:center;margin-top:16px;}
@media (min-width:901px){
  .profile .sheet{grid-template-columns:352px 1fr;}
  .profile .pic{align-self:start;margin:calc(clamp(30px,4vw,58px) + 80px) 0 clamp(30px,4vw,58px) clamp(30px,4vw,58px);}
}

@media (max-width:900px){
  .profile .pic img{max-height:none;}
  .profile .pic .ghost{margin:16px 20px 0;}
}

/* linkedin button: icon + under-photo placement on desktop */
#pf-li{display:inline-flex;align-items:center;justify-content:center;gap:10px;}
@media (min-width:901px){
  .profile .sheet{position:relative;min-height:calc(clamp(30px,4vw,58px)*2 + 80px + (352px - clamp(30px,4vw,58px))*1.25 + 92px);}
  #pf-li{position:absolute;left:clamp(30px,4vw,58px);top:calc(clamp(30px,4vw,58px) + 80px + (352px - clamp(30px,4vw,58px))*1.25 + 26px);
    width:calc(352px - clamp(30px,4vw,58px));margin-top:0;box-sizing:border-box;}
}
