/* Finish: the house look, applied over every page's own styles (loaded after them, before mobile.css).
   Print, not glow: paper, hairlines, exact corners, and three signature motions (see signature() in site.js). */

/* ===== the frame: two hairlines hold the page, a clear margin outside the content, and a hairline divides every section ===== */
main{position:relative;isolation:isolate}
main>section,main>div>section{position:relative}
.row-rule{display:none}
@media (min-width:900px){
  :root{--frame:min(calc(var(--content) + var(--gutter) * 2 - 32px),calc(100% - 32px))}
  main::before{content:"";position:absolute;top:0;bottom:0;left:50%;z-index:-1;pointer-events:none;width:var(--frame);transform:translateX(-50%);border-inline:1px solid var(--line)}
  .row-rule{display:block;position:absolute;top:0;left:50%;z-index:1;width:var(--frame);height:1px;transform:translateX(-50%);background:var(--line);pointer-events:none}
  .row-rule.end{top:auto;bottom:0}
  .stage-dark>.row-rule{background:#FFFFFF1A}
}

/* ===== exact corners and crisp shadows on the big surfaces ===== */
.pv-stage,.pb,.pv-dark,.oc-v,.cmp-wrap,.code,.gate-ev,.gate-tl,.chain2,.pw-card,.pw-jobs,.pw-doc,.pc,.sgc,.form,.ws,.slab,.gv,.tl,.fr-vis,.k-win,.cc-hero img,.cc-video video,.xp{border-radius:var(--r-lg)}
.pv-stage{box-shadow:0 1px 0 #01182F08,0 30px 60px -40px #01182F55,0 0 0 1px var(--line)}
.pv-dark,.slab{border-radius:var(--r-lg)}

/* ===== cards: no lift, no cursor light. The edge firms up and a trail line draws along the top ===== */
.cap,.reg,.pb,.sp,.gd,.gd2,.sgc,.pc,.sg,.stub-card,.cr-how>div,.pw-ask,.au,.bx,.fact,.tcol{position:relative;overflow:hidden;transform:none!important;transition:background var(--d-base) var(--ease),box-shadow var(--d-base) var(--ease)}
.cap::before,.reg::before,.pb::before,.sp::before,.gd::before,.gd2::before,.sgc::before{display:none}
.cap::after,.reg::after,.pb::after,.sp::after,.gd::after,.gd2::after,.sgc::after,.pc::after,.sg::after,.stub-card::after,.au::after{
  content:"";position:absolute;inset:0 0 auto 0;height:2px;padding:0;border-radius:0;opacity:1;background:var(--avus-blue);-webkit-mask:none;mask:none;
  transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ease);pointer-events:none;z-index:1}
:is(.cap,.reg,.pb,.sp,.gd,.gd2,.pc,.sg,.stub-card,.cr-how>div,.pw-ask,.au,.bx):hover{box-shadow:inset 0 0 0 1px var(--line-strong)!important;background:var(--paper)}
:is(.cap,.reg,.pb,.sp,.gd,.gd2,.sgc,.pc,.sg,.stub-card,.cr-how>div,.pw-ask,.au):hover::after,:is(.cap,.reg,.pb,.sp,.gd,.pc,.sg,.stub-card,.au):focus-visible::after{transform:scaleX(1)}
.sgc:hover{background:#FFFFFF12;box-shadow:inset 0 0 0 1px #FFFFFF40!important}
.sgc::after{background:#6FA0FF}
.pc:hover{box-shadow:0 0 0 1px var(--line-strong)!important}

/* ===== signature 1: the page headline rises line by line ===== */
h1.h-rise .w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.1em;margin-bottom:-.1em}
h1.h-rise .w>span{display:inline-block;transform:translateY(108%);transition:transform .95s cubic-bezier(.2,.8,.1,1);transition-delay:calc(var(--ln,0) * 110ms + 80ms)}
h1.h-rise.h-go .w>span{transform:none}

/* ===== signature 2: a proof trail draws above each section heading and lands on a node ===== */
.trail-rule{display:block;position:relative;height:8px;margin-bottom:4px;width:76px}
.trail-rule::before{content:"";position:absolute;left:0;top:0;width:8px;height:8px;border-radius:1px;background:var(--avus-blue);transform:scale(0);transition:transform .35s var(--ease-spring) .05s}
.trail-rule::after{content:"";position:absolute;left:14px;right:0;top:3.5px;height:1px;background:var(--avus-blue);transform:scaleX(0);transform-origin:left;transition:transform 1.1s var(--ease) .25s}
.drawn>.trail-rule::before{transform:scale(1)}
.drawn>.trail-rule::after{transform:scaleX(1)}
:is(.dark-glow,.stage-dark,.pv-dark,[data-dark]) .trail-rule::after{background:#6FA0FF}
:is(.dark-glow,.stage-dark,.pv-dark,[data-dark]) .trail-rule::before{background:#6FA0FF}
.sec-head[style*="text-align:center"] .trail-rule,.center .trail-rule{margin-inline:auto}

/* ===== signature 3: key phrases marked the way a reviewer marks a document ===== */
mark.sweep{color:inherit;background:linear-gradient(transparent 58%,var(--marker) 58% 92%,transparent 92%) no-repeat 0 0/0% 100%;transition:background-size 1.1s cubic-bezier(.6,0,.2,1) .35s;-webkit-box-decoration-break:clone;box-decoration-break:clone;padding:0 .06em}
mark.sweep.drawn{background-size:100% 100%}
:is(.dark-glow,.stage-dark,[data-dark]) mark.sweep{background-image:linear-gradient(transparent 60%,#0266FC99 60% 92%,transparent 92%)}

@media (prefers-reduced-motion:reduce){
  .trail-rule::before,.trail-rule::after{transform:none;transition:none}
  mark.sweep{background-size:100% 100%;transition:none}
}

/* ===== home: hero ===== */
.hero .h-display-xl{max-width:17ch}
.hero-sub{max-width:54ch;font:400 clamp(17px,1.4vw,19px)/1.55 var(--sans);color:var(--ink-2);text-wrap:pretty}
.hero-regs{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:10px 22px;margin-top:34px;padding-top:22px;border-top:1px solid var(--line);font:500 12px/1 var(--mono);letter-spacing:.04em;color:var(--ink-muted);text-transform:uppercase}
.hero-regs b{font-weight:500;color:var(--ink)}
.hero-regs i{width:4px;height:4px;border-radius:50%;background:var(--line-strong)}
.hero .js-fade{opacity:0;transform:translateY(8px);animation:hero-in .8s var(--ease-enter) forwards;animation-delay:calc(var(--d,0) * 1ms)}
@keyframes hero-in{to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.hero .js-fade{opacity:1;transform:none;animation:none}}

/* ===== testimonial ===== */
.quote{margin:0;display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:clamp(32px,6vw,96px);align-items:end;padding:clamp(32px,5vw,64px) 0;border-top:1px solid var(--ink);border-bottom:1px solid var(--line)}
.quote-mark{display:block;font:400 96px/.6 var(--serif);color:var(--avus-blue);height:40px}
.quote blockquote{margin:0;display:grid;gap:22px}
.quote blockquote p{font:400 clamp(26px,2.9vw,40px)/1.25 var(--serif);letter-spacing:-.005em;color:var(--ink);text-wrap:pretty}
.quote blockquote p+p{font:400 clamp(17px,1.35vw,19px)/1.6 var(--sans);letter-spacing:0;color:var(--ink-2);max-width:60ch}
.quote figcaption{display:grid;gap:16px;justify-items:start}
.quote figcaption img{width:112px;height:112px;border-radius:50%;object-fit:cover;background:var(--mist);filter:saturate(.9)}
.quote figcaption b{display:block;font:600 17px/22px var(--sans);color:var(--ink)}
.quote figcaption span{display:block;margin-top:4px;font-size:14px;line-height:20px;color:var(--ink-muted)}
.quote figcaption small{display:block;margin-top:10px;font:500 11px/1 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint)}
.quote.compact{grid-template-columns:auto minmax(0,1fr);align-items:start;gap:28px;padding:32px 0}
.quote.compact figcaption{order:-1}
.quote.compact figcaption img{width:72px;height:72px}
.quote.compact blockquote p{font-size:clamp(21px,2vw,26px)}
@media (max-width:900px){.quote,.quote.compact{grid-template-columns:minmax(0,1fr);gap:24px}.quote figcaption{grid-template-columns:auto 1fr;align-items:center;order:-1}.quote figcaption img{width:72px;height:72px}}

/* ===== home: the company, in photographs ===== */
.field{display:grid;grid-template-columns:1.3fr 1fr 1fr;grid-template-rows:auto auto;gap:14px}
.field figure{position:relative;margin:0;overflow:hidden;border-radius:var(--r-md);background:var(--mist)}
.field figure:first-child{grid-row:1/3}
.field img{display:block;width:100%;height:100%;object-fit:cover;aspect-ratio:4/3;filter:grayscale(.15) contrast(1.02);transform:scale(1.04);transition:transform 1.4s cubic-bezier(.2,.8,.1,1),filter .6s var(--ease)}
.field figure:first-child img{aspect-ratio:auto;min-height:100%}
.field.in img{transform:none}
.field figure:hover img{filter:none}
.field figcaption{position:absolute;left:12px;bottom:12px;padding:6px 9px;border-radius:var(--r-xs);background:#01182FCC;color:#fff;font:500 11px/1 var(--mono);letter-spacing:.03em;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.field-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:20px 40px;margin-top:28px}
.faces{display:flex;align-items:center}
.faces img{width:44px;height:44px;border-radius:50%;object-fit:cover;box-shadow:0 0 0 3px var(--canvas);background:var(--mist)}
.faces img+img{margin-left:-10px}
.faces span{margin-left:16px;font-size:15px;line-height:21px;color:var(--ink-2);max-width:34ch}
@media (max-width:760px){
  .field{grid-template-columns:1fr 1fr}
  .field figure:first-child{grid-column:1/-1;grid-row:auto}
  .field figure:first-child img{aspect-ratio:16/10}
  .quote blockquote p{font-size:24px}
  .quote blockquote p+p{font-size:17px}
  .hero-regs{gap:10px 16px;font-size:11px}
  .faces{flex-wrap:wrap;row-gap:14px}
  .faces span{flex-basis:100%;margin-left:0}
}
@media (prefers-reduced-motion:reduce){.field img{transform:none;transition:none}}

/* ===== terrain: contour lines of a massif, drawn in from the valley to the summit ===== */
.topo{position:absolute;z-index:-1;pointer-events:none;color:var(--ink)}
.topo svg{display:block;width:100%;height:100%}
.topo path.c{stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 2.4s cubic-bezier(.3,.1,.1,1);transition-delay:calc(var(--k,0) * 55ms)}
.topo.drawn path.c{stroke-dashoffset:0}
.topo .summit{opacity:0;transition:opacity .8s var(--ease) 1.9s}
.topo.drawn .summit{opacity:1}
.topo .summit circle{transform-box:fill-box;transform-origin:center;animation:summit 2.8s var(--ease) 2.4s infinite}
@keyframes summit{0%,60%,100%{transform:scale(1)}30%{transform:scale(1.8)}}
.topo-hero{inset:auto 0 0 0;height:100%;will-change:transform;
  -webkit-mask-image:linear-gradient(180deg,transparent 0,#000 38%,#000 78%,transparent 100%),radial-gradient(38% 30% at 50% 44%,transparent 30%,#000 100%);mask-image:linear-gradient(180deg,transparent 0,#000 38%,#000 78%,transparent 100%),radial-gradient(38% 30% at 50% 44%,transparent 30%,#000 100%);-webkit-mask-composite:source-in;mask-composite:intersect}
.has-topo{isolation:isolate}
.topo-bg{top:0;right:0;bottom:0;width:min(62%,900px);-webkit-mask-image:linear-gradient(90deg,transparent,#000 45%),linear-gradient(180deg,#000 70%,transparent);mask-image:linear-gradient(90deg,transparent,#000 45%),linear-gradient(180deg,#000 70%,transparent);-webkit-mask-composite:source-in;mask-composite:intersect;opacity:.9}
.stage-dark .topo-bg{opacity:1}
@media (max-width:760px){.topo-bg{width:100%;opacity:.55}.topo-hero{height:70%}}
@media (prefers-reduced-motion:reduce){.topo path.c{stroke-dasharray:none;transition:none}.topo .summit{opacity:1;transition:none}.topo .summit circle{animation:none}}

/* dark panels: the same terrain, faint, instead of a grid */
.dark-glow::before{background:url("../assets/topo-dark.svg") right bottom/cover no-repeat;-webkit-mask-image:radial-gradient(110% 100% at 100% 100%,#000 20%,transparent 75%);mask-image:radial-gradient(110% 100% at 100% 100%,#000 20%,transparent 75%)}


/* ===== boxy: squarer corners everywhere, and card grids drawn as joined cells that share one hairline ===== */
.xp,.tool,.gx,.seg,.ox-i,.fx,.sgc-v,.pv-kpi,.vasp,.tx,.sc,.pt,.ret,.cv>div,.pl,.ub,.ub-top,.lm-p,.tp,.cr-empty,.soon,.lgl-id,.tip,.pc,.pc-cv,.code,.rp-go .btn,.release,.k-card,.k-kpi,.k-nar,.k-rec,.k-act,.k-issue,.k-restrict,.tm-ph img,.hub,.c-field,.ctype,.src,.act,.rec,.cn-lock,.demo,.card,.slab,.band,.cta,.form,.pv-dark,.oc-v,.cmp-wrap,.pw-ask,.pw-card,.pw-jobs,.pw-doc,.gate-ev,.gate-tl,.chain2,.ws,.tl,.fr-vis,.gv,.pb-v,.pv-stage,.k-win,.orb-hub,.cc-hero img,.cc-video video,.cc-gal img,.field figure,.sp li,.gd-r em,.chip,.int,.flt button,.sph-tabs button,.seat,.pill,.k-btn,.rb{border-radius:var(--r-md)!important}
.fx,.k-win,.pv-stage,.slab,.band,.cta,.pv-dark,.form,.cmp-wrap,.pw-jobs,.pw-doc,.xp,.gv,.code,.oc-v{border-radius:var(--r-lg)!important}
.tm-ph img,.tm-ph,.faces img,.quote figcaption img,.k-av,.live,.cn-av{border-radius:50%!important}

.regs4,.caps,.sph,.guards,.seatgrid,.gds,.aud,.cr-how,.trio3,.tm,.regs-ae,.dc-list,.bento,.pv-bento{gap:0!important;border-top:1px solid var(--line);border-left:1px solid var(--line)}
:is(.regs4,.caps,.sph,.guards,.seatgrid,.gds,.aud,.cr-how,.trio3,.tm,.regs-ae,.dc-list,.bento,.pv-bento)>*{border-radius:0!important;background:transparent;box-shadow:1px 0 0 var(--line),0 1px 0 var(--line)!important;min-width:0}
:is(.regs4,.caps,.sph,.guards,.seatgrid,.gds,.aud,.cr-how,.trio3,.tm,.regs-ae,.dc-list,.bento,.pv-bento)>*:hover{background:var(--paper);box-shadow:1px 0 0 var(--line),0 1px 0 var(--line)!important}
.pv-roles,.sgc-grid{gap:0!important;border-top:1px solid #FFFFFF1F;border-left:1px solid #FFFFFF1F}
:is(.pv-roles,.sgc-grid)>*{border-radius:0!important;background:transparent!important;box-shadow:1px 0 0 #FFFFFF1F,0 1px 0 #FFFFFF1F!important;-webkit-backdrop-filter:none;backdrop-filter:none}
:is(.pv-roles,.sgc-grid)>*:hover{background:#FFFFFF08!important}
.sgc-v{background:#FFFFFF08}

/* the open role card: flat blue, no glow */
.xp.on{box-shadow:none}

/* about: a real room, full width under the introduction */
.about-photo{position:relative;margin:clamp(32px,5vw,56px) 0 clamp(8px,2vw,16px)}
.about-photo img{aspect-ratio:21/9;object-position:50% 40%;box-shadow:none}
.about-photo figcaption{position:absolute;left:14px;bottom:14px;padding:6px 9px;border-radius:var(--r-xs);background:#01182FCC;color:#fff;font:500 11px/1 var(--mono);letter-spacing:.03em}
@media (max-width:760px){.about-photo img{aspect-ratio:4/3}}
.topo-bg .summit{display:none}

/* the short quote on inner pages: portrait, name and words; no rules, no marker */
.quote.compact{border:0;padding:clamp(8px,2vw,16px) 0;align-items:center;max-width:920px}
.quote.compact mark.sweep{background:none;padding:0}
.quote.compact .quote-mark{display:none}
.quote.compact blockquote p{font-size:clamp(22px,2.2vw,28px);line-height:1.3}

/* fewer lines: inside a joined cell, content is separated by space, not another rule */
:is(.sph,.caps,.gds,.guards)>* .ob-in{border-top:0;padding-top:4px}
/* closing panels span the frame like every other block */
.band{max-width:none}
/* the other seats sit on one row, no orphan cell */
@media (min-width:1001px){.seatgrid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}}
