/* PAGES (pg-*) - tokens only, no raw colours. */
.pg-root{color:var(--ink);font-family:var(--font-body);overflow-x:clip}
.pg-root *{box-sizing:border-box}
.pg-wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--gutter)}
.pg-root svg{width:20px;height:20px;flex:none}

/* ---------- 3D hero ---------- */
.pg-hero{position:relative;isolation:isolate;overflow:hidden;color:var(--accent-ink);perspective:var(--persp);min-height:clamp(260px,38vw,400px);display:flex;align-items:flex-end;padding:var(--s8) 0 var(--s7)}
.pg-hero__stage{position:absolute;inset:0;transform-style:preserve-3d;z-index:-1}
.pg-layer{position:absolute;display:block;will-change:transform;transform:translate3d(calc(var(--mx,0)*var(--d,0)*1px),calc(var(--my,0)*var(--d,0)*1px + var(--sy,0)*var(--d,0)*.12px),0)}
.pg-hero__bg{inset:-40px;background:var(--grad-hero)}
.pg-hero__grid{inset:-20% -10% -10%;background-image:linear-gradient(var(--glass-edge) 1px,transparent 1px),linear-gradient(90deg,var(--glass-edge) 1px,transparent 1px);background-size:56px 56px;opacity:.12;transform:translate3d(calc(var(--mx,0)*8px),calc(var(--my,0)*8px),0) rotateX(62deg) translateY(30%);transform-origin:50% 100%;-webkit-mask-image:linear-gradient(to top,var(--ink),transparent 85%);mask-image:linear-gradient(to top,var(--ink),transparent 85%)}
.pg-hero__orb{border-radius:50%;filter:blur(30px)}
.pg-hero__orb--a{width:360px;height:360px;right:6%;top:-80px;background:radial-gradient(circle,var(--accent),transparent 68%);opacity:.5}
.pg-hero__orb--b{width:240px;height:240px;left:-60px;bottom:-60px;background:radial-gradient(circle,var(--accent-2),transparent 68%);opacity:.3}
.pg-hero__rings{right:8%;top:50%;width:220px;height:220px;margin-top:-110px;transform-style:preserve-3d;transform:translate3d(calc(var(--mx,0)*46px),calc(var(--my,0)*46px),0) rotateX(58deg) rotateZ(calc(var(--sy,0)*.08deg))}
.pg-hero__rings i{position:absolute;inset:0;border-radius:50%;border:2px solid var(--steel);opacity:.55;transform:translateZ(0);animation:pg-spin 14s linear infinite}
.pg-hero__rings i:nth-child(2){inset:26px;border-color:var(--accent);opacity:.8;transform:translateZ(36px);animation-duration:9s;animation-direction:reverse}
.pg-hero__rings i:nth-child(3){inset:58px;border:6px solid var(--accent-2);transform:translateZ(72px);animation-duration:6s}
@keyframes pg-spin{to{rotate:360deg}}
.pg-hero__bar{left:0;right:0;bottom:0;height:6px;background:linear-gradient(90deg,var(--accent),var(--accent-2),transparent)}
.pg-hero__in{width:100%}
.pg-hero__plate{max-width:760px;padding:var(--s5) var(--s6);border-radius:var(--r-lg);background:var(--grad-hero);border:1px solid var(--glass-edge);box-shadow:var(--sh-3),var(--sh-glow);transform:translate3d(calc(var(--mx,0)*14px),calc(var(--my,0)*8px),0) rotateY(calc(var(--mx,0)*-3deg)) rotateX(calc(var(--my,0)*3deg));transition:transform .2s var(--ease);color:var(--accent-ink)}
.pg-hero__title{font-family:var(--font-head);font-size:var(--fs-hero);line-height:1.04;margin:var(--s3) 0 0;font-weight:700;letter-spacing:-.02em;overflow-wrap:anywhere}
.pg-kicker{display:inline-block;font-size:var(--fs-xs);letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--accent-2)}
.pg-kicker--ink{color:var(--accent)}
.pg-crumbs{display:flex;flex-wrap:wrap;gap:var(--s2);font-size:var(--fs-sm);margin-bottom:var(--s3);color:var(--steel)}
.pg-crumbs a{color:var(--accent-ink);text-decoration:none;min-height:24px;display:inline-flex;align-items:center}
.pg-crumbs a:hover{text-decoration:underline}

/* ---------- body ---------- */
.pg-sec{padding:var(--s7) 0 var(--s8);background:var(--bg)}
.pg-panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-2);padding:var(--s5);margin-top:calc(var(--s8)*-1);position:relative;z-index:1;transform-style:preserve-3d;transition:transform .25s var(--ease),box-shadow .25s var(--ease)}
.pg-panel[data-tilt-soft]{transform:perspective(var(--persp)) rotateX(calc(var(--ty,0)*1deg)) rotateY(calc(var(--tx,0)*1deg))}
.pg-prose{font-size:var(--fs-md);line-height:1.75;color:var(--ink-2);overflow-wrap:anywhere}
.pg-prose h1,.pg-prose h2,.pg-prose h3,.pg-prose h4,.pg-prose h5,.pg-prose h6{font-family:var(--font-head);color:var(--ink);line-height:1.2;margin:1.6em 0 .5em;scroll-margin-top:96px}
.pg-prose>:first-child{margin-top:0}
.pg-prose h1{font-size:var(--fs-2xl)}.pg-prose h2{font-size:var(--fs-xl)}.pg-prose h3{font-size:var(--fs-lg)}
.pg-prose a{color:var(--accent);text-underline-offset:3px}
.pg-prose img{max-width:100%;height:auto;border-radius:var(--r-md);box-shadow:var(--sh-2);display:block;margin:var(--s4) 0}
.pg-prose ul,.pg-prose ol{padding-left:1.3em}
.pg-prose li{margin:.3em 0}
.pg-prose table{border-collapse:collapse;width:100%}
.pg-prose td,.pg-prose th{border:1px solid var(--line);padding:var(--s2) var(--s3);text-align:left}
.pg-tw{overflow-x:auto;max-width:100%}
.pg-prose i:empty{display:none}
.pg-prose--feature>img:first-child{width:100%;max-height:460px;object-fit:cover}
/* industries: image + heading pairs become depth cards */
.pg-prose--industries{display:grid;gap:var(--s4);grid-template-columns:1fr;max-width:900px;margin:0 auto}
.pg-prose--industries>img{margin:0;aspect-ratio:21/9;width:100%;max-height:340px;object-fit:cover;transform:perspective(900px) rotateX(2deg);transition:transform var(--dur) var(--ease)}
.pg-prose--industries>img:hover{transform:perspective(900px) rotateX(0) translateY(-4px);box-shadow:var(--sh-3)}
.pg-prose--industries>h2{margin:calc(var(--s3)*-1) 0 var(--s3);font-size:var(--fs-lg)}
.pg-prose--industries>h2 a{color:inherit;text-decoration:none}
/* portfolio: figures as plates */
.pg-prose--gallery{display:grid;gap:var(--s4);grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}
.pg-prose--gallery figure{margin:0;padding:var(--s5);border-radius:var(--r-md);background:var(--grad-metal);border:1px solid var(--line);min-height:140px;display:flex;align-items:flex-end;box-shadow:var(--sh-1);transition:transform var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}
.pg-prose--gallery figure:hover{transform:translateY(-4px) rotateX(4deg);box-shadow:var(--sh-3)}
.pg-prose--gallery figcaption{font-family:var(--font-head);font-weight:600;color:var(--ink)}

/* ---------- long read (policies) ---------- */
.pg-progress{position:fixed;left:0;right:0;top:0;height:3px;z-index:60;background:transparent}
.pg-progress i{display:block;height:100%;width:100%;background:linear-gradient(90deg,var(--accent),var(--accent-2));transform-origin:0 50%;transform:scaleX(var(--p,0))}
.pg-long{display:grid;gap:var(--s5);grid-template-columns:minmax(0,1fr)}
.pg-prose--long{width:100%;max-width:74ch;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh-2);padding:var(--s5);margin-top:calc(var(--s8)*-1);position:relative;z-index:1;font-size:1.0625rem;line-height:1.85}
.pg-prose--long h1{font-size:var(--fs-xl)}
.pg-prose--long h2{font-size:var(--fs-lg);padding-top:var(--s4);border-top:1px solid var(--line)}
.pg-prose--long h1+p::first-letter,.pg-prose--long>h2:first-child+p::first-letter{font-family:var(--font-head);font-weight:700;color:var(--accent)}
.pg-toc{display:none}
.pg-toc[data-ready]{display:block}
.pg-toc__t{font-family:var(--font-head);font-weight:700;margin:0 0 var(--s3);font-size:var(--fs-sm);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.pg-toc ol{list-style:none;margin:0;padding:0;border-left:2px solid var(--line)}
.pg-toc a{display:block;padding:var(--s2) var(--s3);margin-left:-2px;border-left:2px solid transparent;color:var(--ink-2);text-decoration:none;font-size:var(--fs-sm);line-height:1.35;min-height:44px;display:flex;align-items:center}
.pg-toc a:hover{color:var(--accent)}
.pg-toc a[aria-current=true]{border-left-color:var(--accent);color:var(--accent);font-weight:600}
@media (min-width:980px){
 .pg-long.has-toc{grid-template-columns:260px minmax(0,1fr);gap:var(--s7);align-items:start}
 .pg-long:not(.has-toc){justify-items:center}
 .pg-toc{position:sticky;top:96px;margin-top:var(--s5);max-height:calc(100vh - 120px);overflow:auto}
 .pg-prose--long{padding:var(--s7)}
 .pg-panel{padding:var(--s7)}
}
@media (max-width:979px){.pg-toc[data-ready]{order:-1;margin-top:calc(var(--s8)*-1);position:relative;z-index:1;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--s4);box-shadow:var(--sh-2)}.pg-toc[data-ready]+.pg-prose--long{margin-top:0}.pg-toc ol{max-height:220px;overflow:auto}}

/* ---------- CTA ---------- */
.pg-cta-sec{padding:0 0 var(--s8);background:var(--bg)}
.pg-cta{display:grid;gap:var(--s5);padding:var(--s6);border-radius:var(--r-xl);background:var(--grad-hero);color:var(--accent-ink);box-shadow:var(--sh-3);transform:perspective(var(--persp)) rotateX(calc(var(--ty,0)*1deg)) rotateY(calc(var(--tx,0)*1deg));transition:transform .25s var(--ease)}
.pg-cta h2{font-family:var(--font-head);font-size:var(--fs-xl);margin:0 0 var(--s2);line-height:1.15}
.pg-cta p{margin:0;color:var(--steel)}
.pg-cta__acts{display:flex;flex-wrap:wrap;gap:var(--s3);align-items:center}
@media (min-width:860px){.pg-cta{grid-template-columns:1fr auto;align-items:center;padding:var(--s7)}}
.pg-btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s2);min-height:48px;padding:0 var(--s5);border-radius:var(--r-md);border:0;background:linear-gradient(135deg,var(--accent),var(--accent-2));color:var(--accent-ink);font:600 var(--fs-md) var(--font-head);text-decoration:none;cursor:pointer;box-shadow:var(--sh-glow);transition:transform var(--dur) var(--ease)}
.pg-btn:hover{transform:translateY(-2px)}
.pg-btn:disabled{opacity:.6;cursor:progress;transform:none}
.pg-btn--ghost{background:var(--glass);border:1px solid var(--glass-edge);box-shadow:none;color:var(--accent-ink)}

/* ---------- contact ---------- */
.pg-contact .pg-sec{padding-top:var(--s6)}
.pg-intro{margin:0 0 var(--s6);max-width:70ch;line-height:1.7;color:var(--ink-2)}
.pg-intro h3{font-family:var(--font-head);font-size:var(--fs-xl);color:var(--ink);margin:0 0 var(--s3)}
.pg-cards{display:grid;gap:var(--s5);grid-template-columns:1fr;perspective:var(--persp)}
@media (min-width:700px){.pg-cards{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1040px){.pg-cards{grid-template-columns:repeat(3,1fr)}}
.pg-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--s5);box-shadow:var(--sh-2);transform-style:preserve-3d;transform:rotateX(calc(var(--ty,0)*1deg)) rotateY(calc(var(--tx,0)*1deg));transition:transform .2s var(--ease),box-shadow .2s var(--ease);position:relative;overflow:hidden}
.pg-card::before{content:"";position:absolute;inset:0 0 auto 0;height:4px;background:linear-gradient(90deg,var(--accent),var(--accent-2))}
.pg-card:hover{box-shadow:var(--sh-3)}
.pg-card h2{font-family:var(--font-head);font-size:var(--fs-lg);margin:0 0 var(--s3);transform:translateZ(24px)}
.pg-card h2:not(:first-child){margin-top:var(--s5)}
.pg-card p{margin:0 0 var(--s2);color:var(--ink-2);line-height:1.55;overflow-wrap:anywhere}
.pg-list{list-style:none;margin:0;padding:0}
.pg-list a,.pg-link{display:inline-flex;align-items:center;gap:var(--s3);min-height:44px;color:var(--ink);text-decoration:none;font-weight:500;overflow-wrap:anywhere}
.pg-list a:hover,.pg-link:hover{color:var(--accent)}
.pg-link{color:var(--accent);margin-top:var(--s2)}
.pg-list small{color:var(--muted);font-size:var(--fs-sm)}
.pg-enq{margin-top:var(--s7);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-xl);box-shadow:var(--sh-3);padding:var(--s5);scroll-margin-top:96px}
.pg-enq__head h2{font-family:var(--font-head);font-size:var(--fs-2xl);margin:var(--s2) 0 var(--s5)}
.pg-form__grid{display:grid;gap:var(--s4);grid-template-columns:1fr}
@media (min-width:700px){.pg-form__grid{grid-template-columns:repeat(2,1fr)}.pg-enq{padding:var(--s7)}.pg-f--wide{grid-column:1/-1}}
.pg-f{display:flex;flex-direction:column;gap:var(--s2);font-size:var(--fs-sm);font-weight:600;color:var(--ink-2)}
.pg-f b{color:var(--accent)}
.pg-f input,.pg-f select,.pg-f textarea{width:100%;min-height:48px;padding:var(--s3) var(--s4);border-radius:var(--r-md);border:1px solid var(--steel);background:var(--bg);color:var(--ink);font:400 var(--fs-md) var(--font-body);transition:border-color .2s,box-shadow .2s}
.pg-f textarea{resize:vertical;min-height:130px}
.pg-f input:focus,.pg-f select:focus,.pg-f textarea:focus{outline:0;border-color:var(--accent);box-shadow:var(--sh-glow)}
.pg-f [aria-invalid=true]{border-color:var(--bad)}
.pg-f .pg-err{color:var(--bad);font-weight:500;font-size:var(--fs-sm)}
.pg-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.pg-form__foot{display:flex;flex-wrap:wrap;gap:var(--s4);align-items:center;margin-top:var(--s5)}
.pg-form__msg{margin:0;flex:1 1 260px;font-weight:500;line-height:1.5}
.pg-form__msg.is-ok{color:var(--ok)}.pg-form__msg.is-err{color:var(--bad)}
.pg-form__msg a{color:inherit;text-decoration:underline}
.pg-dir{margin-top:var(--s7);padding:var(--s5);border-radius:var(--r-lg);background:var(--bg-2)}

@media (max-width:600px){.pg-hero{padding:var(--s7) 0 var(--s6)}.pg-hero__plate{padding:var(--s4)}.pg-hero__rings{width:140px;height:140px;margin-top:-70px;right:-20px}.pg-hero__rings i:nth-child(2){inset:16px}.pg-hero__rings i:nth-child(3){inset:36px}}
@media (prefers-reduced-motion:reduce){.pg-hero__rings i{animation:none}.pg-layer,.pg-hero__plate,.pg-card,.pg-cta,.pg-panel{transition:none;transform:none!important}.pg-hero__grid{transform:rotateX(62deg) translateY(30%)!important}}
