/* ===== v3 overrides ===== */

/* header right */
.header__right{display:flex;align-items:center;gap:28px}
.clock{display:flex;align-items:center;gap:10px;color:var(--mute)}
.clock b{color:#fff;font-weight:400;font-variant-numeric:tabular-nums}
.live{width:6px;height:6px;border-radius:50%;background:#3ddc84;box-shadow:0 0 0 0 rgba(61,220,132,.5);animation:live 2.2s infinite}
@keyframes live{70%{box-shadow:0 0 0 7px rgba(61,220,132,0)}100%{box-shadow:0 0 0 0 rgba(61,220,132,0)}}

/* hero with particle ampersand */
.hero--v3{overflow:hidden}
.amp-canvas{position:absolute;top:0;right:0;width:62%;height:100%;display:block;pointer-events:none}
.hero--v3 .wrap{z-index:2;pointer-events:none}
.hero--v3 .wrap a,.hero--v3 .wrap p{pointer-events:auto}
.hero__hint{color:rgba(255,255,255,.4)}
.hero--v3 .hero__title{max-width:13ch}
.hero--v3 .hero__bottom{border-top-color:rgba(255,255,255,.08)}
.hero__meta{align-items:flex-end}
.hero__meta b{font-size:22px;font-weight:500;letter-spacing:-.02em}
.hero__amp{font-size:22px;color:var(--y);line-height:1;padding-bottom:2px}

/* projects stack */
.projects--stack{padding-bottom:clamp(96px,9vw,150px);overflow:visible}
.stack{display:flex;flex-direction:column;gap:0}
.card{position:sticky;top:96px;display:grid;grid-template-columns:5fr 7fr;min-height:min(78vh,720px);background:var(--ink-3);border:1px solid var(--line);margin-bottom:40px;transform-origin:50% 0;overflow:hidden;will-change:transform}
.card:nth-child(2){top:112px;background:#161616}
.card:nth-child(3){top:128px;background:#121212}
.card__info{display:flex;flex-direction:column;justify-content:space-between;gap:40px;padding:clamp(24px,3vw,44px);border-right:1px solid var(--line)}
.card__top{display:flex;justify-content:space-between;color:var(--mute)}
.card__type{color:var(--mute);margin-bottom:14px}
.card__name{font-weight:500;font-size:clamp(36px,4.2vw,68px);letter-spacing:-.05em;line-height:1;margin-bottom:22px}
.card__text{color:rgba(255,255,255,.6);max-width:380px;margin-bottom:24px;text-wrap:pretty}
.card__link{display:inline-flex;align-items:center;gap:10px;font-family:var(--f-mono);font-size:12px;text-transform:uppercase;letter-spacing:.06em;padding-top:20px;border-top:1px solid var(--line);transition:color .3s}
.card__link:hover{color:var(--y)}
.card__link .arrow{transition:transform .4s var(--ease)}
.card__link:hover .arrow{transform:translate(3px,-3px)}
.card__vis{position:relative;display:block;overflow:hidden;background:#0e0e0e}
.card__vis img{position:relative;z-index:1;width:100%;height:100%;object-fit:cover;object-position:top;transition:transform 1.4s var(--ease-out)}
.card__vis:hover img{transform:scale(1.03)}
.card__shade{position:absolute;inset:0;background:#000;opacity:0;pointer-events:none;z-index:5}

/* services: number scramble col */
.srv__n{font-size:11.5px;white-space:nowrap}

/* process odometer + rail */
.odo{margin-top:64px;display:flex;align-items:flex-end;gap:20px}
.odo__win{height:clamp(110px,11vw,180px);overflow:hidden}
.odo__col{display:flex;flex-direction:column;transition:transform .9s var(--ease)}
.odo__col span{display:block;height:clamp(110px,11vw,180px);font-weight:300;font-size:clamp(110px,11vw,180px);line-height:1;letter-spacing:-.06em;font-variant-numeric:tabular-nums}
.odo__meta{display:flex;flex-direction:column;gap:6px;color:var(--mute);padding-bottom:14px}
.odo__name{color:#fff}
.process__r{position:relative;padding-left:40px}
.process__rail{position:absolute;left:0;top:0;bottom:0;width:1px;background:var(--line)}
.process__rail i{position:absolute;left:0;top:0;width:1px;height:100%;background:var(--y);transform-origin:top;transform:scaleY(0)}

/* contact dark */
.contact--v3{background:var(--ink);color:#fff}
.contact__top{position:relative;display:grid;grid-template-columns:repeat(12,1fr);gap:20px;align-items:center;min-height:420px}
.contact__head{grid-column:1/7;position:relative;z-index:2}
.contact__lead{color:rgba(255,255,255,.6);max-width:420px;margin-top:24px}
.amp-canvas--sm{position:relative;grid-column:7/13;width:100%;height:440px;pointer-events:auto}
.contact--v3 .contact__info{gap:40px}
.contact--v3 .contact__links a{background-image:linear-gradient(#fff,#fff);font-size:clamp(20px,1.8vw,28px)}
.contact__addr{color:var(--mute)}
.contact--v3 .form{background:var(--ink-3);border:1px solid var(--line)}
.contact--v3 .footer{border-top-color:var(--line)}
.contact--v3 .footer h4,.contact--v3 .footer__desc,.contact--v3 .footer__bot{color:var(--mute)}
.contact--v3 .footer__bot{border-top-color:var(--line)}
.contact--v3 .footer__links a:hover,.contact--v3 .to-top:hover{color:#fff}

@media (max-width:1100px){
  .clock{display:none}
  .amp-canvas{width:100%;opacity:.45}
  .card{grid-template-columns:1fr;min-height:auto}
  .card__info{border-right:0;border-bottom:1px solid var(--line)}
  .card__vis{aspect-ratio:16/10}
  .process__r{padding-left:24px}
  .contact__head{grid-column:1/13}
  .amp-canvas--sm{grid-column:1/13;height:300px}
}
@media (max-width:760px){
  .card{position:relative;top:0!important}
  .hero__meta{flex-direction:row!important}
}

/* shape legend */
.shapes{display:flex;gap:6px;align-items:stretch}
.shapes button{position:relative;background:none;border:0;border-top:1px solid var(--line);color:var(--mute);font:inherit;text-transform:inherit;letter-spacing:inherit;padding:12px 18px 0 0;text-align:left;cursor:pointer;min-width:110px;display:flex;flex-direction:column;gap:6px;transition:color .3s}
.shapes button i{font-style:normal;opacity:.6}
.shapes button::before{content:"";position:absolute;left:0;top:-1px;height:1px;width:100%;background:#fff;transform:scaleX(0);transform-origin:left}
.shapes button.on{color:#fff}
.shapes button.on::before{animation:shp var(--shp,4.2s) linear forwards}
.shapes button:hover{color:#fff}
@keyframes shp{to{transform:scaleX(1)}}

/* live brief (replaces bottom particles) */
.contact__top{align-items:end}
.brief{grid-column:7/13;background:#0f0f0f;border:1px solid var(--line);font-family:var(--f-mono);font-size:14px;line-height:1.75;position:relative;overflow:hidden}
.brief::after{content:"";position:absolute;left:0;right:0;top:0;height:100%;background:linear-gradient(180deg,transparent,rgba(255,194,71,.04) 50%,transparent);background-size:100% 6px;pointer-events:none;opacity:.6}
.brief__bar{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--line);color:var(--mute)}
.brief__bar span:first-child{display:flex;gap:6px}
.brief__bar i{width:8px;height:8px;border-radius:50%;background:#2a2a2a}
.brief__st{color:var(--mute)}
.brief__st.ok{color:var(--y)}
.brief__code{margin:0;padding:22px 20px 26px;min-height:300px;white-space:pre-wrap;word-break:break-word;color:rgba(255,255,255,.82)}
.brief__code .ln{display:block;counter-increment:l}
.brief__code{counter-reset:l}
.brief__code .ln::before{content:counter(l,decimal-leading-zero);color:#3a3a3a;margin-right:18px;display:inline-block;width:20px}
.brief .k{color:#8a877f}
.brief .s{color:var(--y)}
.brief .e{color:#555}
.brief .c{color:#4d4b47;font-style:normal}
.brief .caret{display:inline-block;width:8px;height:1.1em;background:var(--y);vertical-align:-3px;margin-left:2px;animation:caret 1s steps(1) infinite}
@keyframes caret{50%{opacity:0}}
.brief__foot{display:flex;justify-content:space-between;padding:12px 16px;border-top:1px solid var(--line);color:var(--mute)}
.brief__pct{color:#fff}
@media (max-width:1100px){.brief{grid-column:1/13;margin-top:40px}}

.brief-cta{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:32px;max-width:440px;padding:18px 20px;border:1px solid var(--line);transition:border-color .3s,background .3s}
.brief-cta b{display:block;font-weight:500;font-size:17px;margin-bottom:4px}
.brief-cta small{color:var(--mute)}
.brief-cta .arrow{width:20px;height:20px;color:var(--y);transition:transform .4s var(--ease)}
.brief-cta:hover{border-color:var(--y);background:rgba(255,194,71,.04)}
.brief-cta:hover .arrow{transform:translate(3px,-3px)}
