/* about / contact / privacy — page-only styles */

/* ---- Two companies, one campus ---- */
.duo{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,1.25fr) minmax(0,1fr);gap:clamp(12px,2vw,28px);align-items:center}
.co{border:1px solid var(--line);border-radius:18px;background:var(--surface-2);padding:clamp(20px,2.4vw,32px);display:flex;flex-direction:column;gap:8px;min-width:0}
.co-us{border-color:rgba(216,190,133,.5);background:radial-gradient(80% 60% at 70% 0%,rgba(201,138,58,.14),transparent 70%),var(--surface-2)}
.co-art{width:clamp(120px,12vw,160px);height:auto;color:var(--muted);margin-bottom:8px}
.co-drop{fill:var(--copper)}
.co-tower{stroke:var(--gold-d)}
.co-spark{fill:var(--cream);animation:twinkle 2.4s ease-in-out infinite}
.co-spark:nth-of-type(2){animation-delay:.8s}.co-spark:nth-of-type(3){animation-delay:1.6s}
@keyframes twinkle{0%,100%{opacity:.25}50%{opacity:1}}
.co-yr{font:500 12px var(--f-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--acc)}
.co h3{font-size:clamp(22px,2.2vw,30px)}
.co p:last-child{color:var(--muted)}
.cflow svg{display:block;width:100%;height:auto;overflow:visible}
.flow-v{display:none!important}
.fl-lbl{font:500 12px var(--f-mono);letter-spacing:.14em;fill:var(--muted)}
.fl-line{fill:none;stroke:var(--line-2);stroke-width:2;stroke-dasharray:2 7;stroke-linecap:round}
.fl-head{fill:none;stroke:var(--gold-d);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.fl-dot circle{fill:var(--gold-d)}
.fl-heat{fill:rgba(201,138,58,.22);stroke:var(--copper);stroke-width:1.5}
.fl-ring{fill:none;stroke:var(--copper);stroke-width:1.5}
.liq{fill:var(--copper)}
.pow circle{fill:var(--cream)}
.campus-note{margin-top:22px;font:500 12px var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
@media (max-width:860px){
  .duo{grid-template-columns:1fr;gap:6px}
  .flow-h{display:none!important}
  .flow-v{display:block!important;max-width:340px;margin:0 auto}
}

/* ---- timeline ---- */
.tl-sec h2{margin-bottom:clamp(36px,5vw,64px)}
.tl{list-style:none;margin:0;padding:0;position:relative;display:flex;justify-content:space-between;gap:24px;padding-top:44px}
.tl::before,.tl::after{content:"";position:absolute;left:0;right:0;top:15px;height:2px;border-radius:2px}
.tl::before{background:var(--line-2)}
.tl::after{background:linear-gradient(90deg,var(--gold-l),var(--green));transform-origin:left;transition:transform 1.2s cubic-bezier(.6,0,.2,1)}
.tl-pt{position:relative;display:flex;flex-direction:column;gap:6px;max-width:26ch}
.tl-pt::before{content:"";position:absolute;top:-38px;left:0;width:18px;height:18px;border-radius:50%;background:var(--bg);border:2px solid var(--gold-l);transition:transform .4s,background .4s}
.tl-pt.now{text-align:right;align-items:flex-end}
.tl-pt.now::before{left:auto;right:0;background:var(--green);border-color:var(--green);box-shadow:0 0 0 6px rgba(1,62,31,.12)}
.tl-yr{font:800 clamp(48px,7vw,96px)/1 var(--f-display);letter-spacing:-.04em;color:var(--green)}
.tl-pt:first-child .tl-yr{color:var(--acc)}
.tl-tx{color:var(--muted);font-size:clamp(16px,1.3vw,18px)}
.tl.anim::after{transform:scaleX(0)}
.tl.anim .tl-pt.now::before{transform:scale(0)}
.tl.anim.in::after{transform:scaleX(1)}
.tl.anim.in .tl-pt.now::before{transform:scale(1);transition-delay:1.05s}
@media (max-width:560px){
  .tl{flex-direction:column;gap:40px;padding:0 0 0 38px}
  .tl::before,.tl::after{left:8px;right:auto;top:6px;bottom:6px;width:2px;height:auto}
  .tl::after{transform-origin:top;background:linear-gradient(180deg,var(--gold-l),var(--green))}
  .tl.anim::after{transform:scaleY(0)}
  .tl.anim.in::after{transform:scaleY(1)}
  .tl-pt::before,.tl-pt.now::before{top:4px;left:-38px;right:auto}
  .tl-pt.now{text-align:left;align-items:flex-start}
}

/* ---- processes + names ---- */
.proc{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.proc figure{margin:0;position:relative;overflow:hidden;border-radius:10px;aspect-ratio:3/4;background:var(--surface-2)}
.proc img{width:100%;height:100%;object-fit:cover;transition:transform .8s}
.proc figure:hover img{transform:scale(1.04)}
.proc figcaption{position:absolute;left:10px;bottom:10px;font:500 12px var(--f-mono);letter-spacing:.06em;text-transform:uppercase;background:rgba(250,247,240,.94);color:var(--green);padding:6px 9px;border-radius:4px}
.names{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:clamp(20px,3vw,32px) 0 0}
.names div{border-top:1px solid var(--line-2);padding-top:16px}
.names dt{font:800 clamp(26px,3vw,40px)/1.05 var(--f-display);letter-spacing:-.02em;color:var(--gold-d)}
.names dd{margin:6px 0 0;color:var(--muted)}
@media (max-width:760px){.proc{grid-template-columns:1fr 1fr}.proc figure{aspect-ratio:1}}
@media (max-width:480px){.names{grid-template-columns:1fr;gap:18px}}

/* ---- team ---- */
.team-sec{padding-top:0}
.split figure.team-fig{aspect-ratio:8/5;max-width:640px}

/* ---- contact ---- */
.samples .cta-row{margin-top:26px}

/* ---- privacy ---- */
.pv-date{font:500 12px var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--acc)}
.pv-sec .prose h2:first-of-type{margin-top:28px}
.pv-sec .prose b{color:var(--text)}
