/* ASIA — UGC DOSSIER */
:root{
  /* palette: paper, ink, one cobalt */
  --paper:#E9E5DB;
  --paper-2:#DFDACE;
  --card:#F7F5F0;
  --ink:#15140F;
  --ink-60:#5E594E;
  --ink-30:#A9A296;
  --rule:#C7C0B2;
  --cobalt:#001F93;
  --cobalt-ink:#001770;
  --cobalt-wash:#DDE1F7;
  --manila:#C6B593;
  --sans:"Inter Tight", system-ui, -apple-system, sans-serif;
  /* one pen for every drawn mark: the audience loops, the cobalt circles under
     the nav / portfolio tabs / media kit, their underlines and the ways dashes */
  --pen:calc(3 * var(--pu));
  --maxw:calc(1180 * var(--pu));
  /* Keep component inset, page frame, and wide editorial inset distinct. The
     frame interpolates between the full-width tablet layout and the centred
     desktop composition instead of jumping when --pu starts scaling. */
  --gutter:clamp(1.5rem, 4vw, 3rem);
  --page-frame:clamp(var(--gutter), calc(22.2vw - calc(139 * var(--pu))), 12.5vw);
  --wide-gutter:clamp(1.5rem, 5vw, 4.5rem);
  /* Above this width the mockup-scaled blocks (hero, portfolio) stop growing and
     centre, so 1440 is the widest rendering and 1920 repeats it. --capvw is the
     same ceiling for lengths that must stay in step with them but sit outside
     their containers (the drips, #proof's clearance). */
  --cap:calc(1440 * var(--pu));
  --capvw:min(100vw, var(--cap));
}
/* PROPORTIONAL DESKTOP: from 1024 up every length is a share of the screen,
   so each desktop width is an exact scaled copy of the 1440 layout.
   Below 1024 --pu is 1px and nothing changes. */
:root{--pu:1px}
@media(min-width:1024px){
  :root{--pu:calc(100vw / 1440)}
  html{font-size:calc(16 * var(--pu))}
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms !important;transition-duration:.01ms !important}
}
body{background:var(--paper);color:var(--ink);-webkit-font-smoothing:antialiased;overflow-x:hidden;background-image:
    radial-gradient(circle at 20% 30%, rgba(0,0,0,.018) 0 1px, transparent 1px),
    radial-gradient(circle at 70% 65%, rgba(0,0,0,.015) 0 1px, transparent 1px);background-size:calc(7 * var(--pu)) calc(7 * var(--pu)), calc(11 * var(--pu)) calc(11 * var(--pu));}
img,video{display:block;max-width:100%}
a{color:inherit}
:focus-visible{outline:calc(3 * var(--pu)) solid var(--cobalt);outline-offset:calc(3 * var(--pu));border-radius:2px}
/* layout helpers */
.wrap{width:100%;max-width:none;margin-inline:auto;padding-inline:var(--page-frame)}
.band{padding-block:clamp(3.5rem,8vw,6.5rem);position:relative}
.band--alt{background:var(--paper-2)}
.band--ink{background:var(--ink);color:var(--card)}
/* type system */
.it{font-style:italic;font-weight:400;text-transform:none;letter-spacing:-.005em}
.blue{color:var(--cobalt)}
.label{color:var(--ink-60);}
.meta{color:var(--ink-60);}
.lede{font-size:clamp(1.02rem,1.6vw,1.18rem);line-height:1.55;max-width:46ch}
/* buttons */
.btn{display:inline-flex;align-items:center;gap:.55em;cursor:pointer;text-decoration:none;padding:.85em 1.4em;border:1.6px solid var(--ink);background:transparent;color:var(--ink);transition:background .18s ease,color .18s ease,transform .18s ease;}
.btn:hover{background:var(--ink);color:var(--card);transform:translate(-2px,-2px)}
.btn--blue{background:var(--cobalt);border-color:var(--cobalt);color:#fff}
.btn--blue:hover{background:var(--cobalt-ink);border-color:var(--cobalt-ink);color:#fff}
.btn--light{border-color:var(--card);color:var(--card)}
.btn--light:hover{background:var(--card);color:var(--ink)}
/* top bar — sits on the hero plaster */
.topbar{
  position:absolute;top:0;left:0;right:0;z-index:60;
  display:flex;align-items:center;
  height:calc(88 * var(--px));padding-inline:calc(40 * var(--px));
}
.navlinks{gap:calc(37 * var(--px))}
.navlinks a{position:relative;isolation:isolate;display:inline-block;color:var(--ink);text-decoration:none;transition:color .18s ease,transform .18s ease,filter .18s ease}
.navlinks a:is(:hover,:focus-visible){color:#001F93;transform:translateY(calc(-3 * var(--pu)));filter:drop-shadow(0 0 .45em rgba(0,31,147,.32))}
.navlinks a:is(:hover,:focus-visible,[aria-current="location"])::before{
  content:"";position:absolute;z-index:-1;inset:-.42em -.72em;
  border:var(--pen) solid #001F93;
  border-radius:51% 49% 53% 47% / 47% 55% 45% 53%;
  transform:rotate(-6deg);
}
.navlinks a:is(:hover,:focus-visible,[aria-current="location"])::after{
  content:"";position:absolute;left:17%;right:18%;bottom:-.28em;height:var(--pen);
  background:#001F93;transform:rotate(-2deg);
}
/* HERO — plaster collage. From calc(768 * var(--pu)) up it is the calc(1831 * var(--pu)) desktop mockup scaled as one
   unit: every length is calc(<mockup px> * var(--px)). */
.hero{position:relative;overflow:hidden;padding:0;container-type:inline-size;width:min(100%, var(--cap));margin-inline:auto;--px:calc(100cqw / 1831);--hero-blue:#001F93}
.hero__stage{position:relative;height:calc(959 * var(--px))}
.hero__photo{display:contents}
.hero__title{margin:0}
.hero__person,.hero__asia,.hero__unfiltered{position:absolute;height:auto}
.hero__person{left:calc(622 * var(--px));top:calc(9 * var(--px));width:calc(718 * var(--px))}
.hero__asia{z-index:2;left:calc(-18 * var(--px));top:calc(355 * var(--px));width:calc(311 * var(--px))}
.hero__unfiltered{z-index:2;left:calc(1221 * var(--px));top:calc(494 * var(--px));width:calc(589 * var(--px))}
.bluecard{--u:var(--px);position:absolute;z-index:3;display:flex;flex-direction:column;width:calc(288 * var(--u));height:calc(455 * var(--u));background:var(--hero-blue);color:#fff;padding:0 calc(13 * var(--u)) calc(14 * var(--u))}
.bluecard--ugc{left:calc(317.5 * var(--px));top:calc(242 * var(--px))}
.bluecard--links{left:calc(1317.5 * var(--px));top:calc(90 * var(--px))}
.bluecard svg{fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex:none}
.bluecard svg .dot{fill:currentColor;stroke:none}
.bluecard__arrows{display:flex;flex:none;justify-content:space-between;align-items:center;height:calc(45 * var(--u))}
.bluecard__arrows svg{width:calc(25 * var(--u));height:calc(14 * var(--u))}
.bluecard__photo{flex:none;height:calc(224 * var(--u));width:100%;object-fit:cover}
.bluecard__title{position:relative;margin-top:calc(6 * var(--u));padding:0 0 0 calc(3 * var(--u))}
.bluecard--links .bluecard__title{margin-top:calc(8 * var(--u));padding-left:calc(1 * var(--u))}
.bluecard__list{list-style:none;margin-top:auto;padding-left:calc(8 * var(--u))}
.bluecard__list li{display:flex;align-items:center;gap:calc(12 * var(--u));height:calc(30.5 * var(--u))}
.bluecard__list li::before{content:"";flex:none;width:calc(19 * var(--u));height:calc(10 * var(--u));background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 13 10'%3E%3Cpath d='M1 5.2 4.6 8.6 12 1.2' fill='none' stroke='%23fff' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat}
.bluecard__links{list-style:none;margin-top:calc(10 * var(--u))}
.bluecard__links a{display:flex;align-items:center;white-space:nowrap;height:calc(30.5 * var(--u));padding-left:calc(8 * var(--u));color:#fff;text-decoration:none}
.bluecard__links svg{width:calc(19 * var(--u));height:calc(19 * var(--u));margin-right:calc(12 * var(--u));stroke-width:1.5}
.bluecard__links span{position:relative;isolation:isolate}
.bluecard__links a:is(:hover,:focus-visible) span::before{
  content:"";position:absolute;z-index:-1;inset:-.42em -.72em;
  border:var(--pen) solid #fff;
  border-radius:51% 49% 53% 47% / 47% 55% 45% 53%;
  transform:rotate(-6deg);
}
.bluecard__links a:is(:hover,:focus-visible) span::after{
  content:"";position:absolute;left:17%;right:18%;bottom:-.28em;height:var(--pen);
  background:#fff;transform:rotate(-2deg);
}
/* phone: photo full width with the lettering over it, cards stacked below */
/* Keep the desktop collage intact through compact laptops. The small-screen
   composition starts only once the scaled cards can no longer carry their
   minimum type comfortably. */
@media (max-width:960px){
  .hero{--px:1px}
  .topbar{position:relative;height:auto;padding:calc(14 * var(--pu)) var(--gutter)}
  /* bottom padding grows with width: the Portfolio tear rises ~9.4vw over the hero's foot and must stay clear of the cards */
  .hero__stage{height:auto;display:flex;flex-direction:column;align-items:center;gap:calc(22 * var(--pu));padding:0 var(--gutter) max(calc(56 * var(--pu)), calc(9.44vw + calc(17 * var(--pu))))}
  .hero__photo{display:block;position:relative;align-self:stretch;margin-inline:calc(-1 * var(--gutter));overflow:hidden}
  .hero__person{position:relative;left:-4%;top:0;width:122%;max-width:none}
  .hero__asia{left:1%;top:45%;width:36%}
  .hero__unfiltered{left:auto;right:1%;top:auto;bottom:12%;width:84%}
  .bluecard{position:relative;left:auto;top:auto;width:calc(242 * var(--u));--cw:min(100cqw - 2 * var(--gutter), calc(340 * var(--pu)));--u:calc(var(--cw) / 269)}
  .bluecard--ugc{margin-top:-18vw}
}
/* tablet: same stacked idea, but the two cards fit side by side */
@media (min-width:600px) and (max-width:960px){
  .hero__stage{flex-direction:row;flex-wrap:wrap;justify-content:center;align-items:flex-start}
  .hero__photo{flex:0 0 100%}
  .bluecard{--cw:min(calc((100cqw - 2 * var(--gutter) - calc(22 * var(--pu))) / 2), calc(380 * var(--pu)));margin-top:-6vw}
}
.page-kicker{font-family:var(--sans);font-size:clamp(.43rem,.65vw,.63rem);font-weight:700;letter-spacing:.13em;text-transform:uppercase;display:flex;justify-content:space-between;gap:.8rem;align-items:baseline}
.page-rule{height:2px;background:var(--ink);margin:.42rem 0 clamp(.75rem,1.7vw,1.2rem)}
.editorial-photo{position:relative;width:100%;height:57%;background:#D9D5CB;border:1px solid rgba(21,20,15,.35);overflow:hidden}
.editorial-photo::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 72% 28%,rgba(11,24,212,.26),transparent 24%),linear-gradient(145deg,#cec9be 0 38%,#efebe2 38% 58%,#bbb5aa 58% 100%)}
.editorial-photo::after{content:"PORTRAIT";position:absolute;right:-.05em;bottom:-.16em;font-family:var(--sans);font-size:clamp(2.4rem,6vw,5.8rem);font-weight:700;line-height:.8;letter-spacing:-.08em;color:rgba(21,20,15,.12);transform-origin:bottom right}
.editorial-photo .ph{position:absolute;z-index:2;left:.7rem;bottom:.65rem;font-family:var(--sans);font-size:clamp(.42rem,.65vw,.58rem);font-weight:700;letter-spacing:.12em;text-transform:uppercase;background:#F5F2EA;padding:.28em .5em;border:1px solid var(--ink)}
.editorial-photo figcaption{position:absolute;z-index:2;right:.55rem;top:.5rem;font-family:var(--sans);font-size:clamp(.38rem,.6vw,.54rem);font-weight:700;letter-spacing:.11em;text-transform:uppercase;color:#fff;background:var(--cobalt);padding:.25em .45em}
.rightmeta{display:grid;grid-template-columns:1fr auto;gap:.5rem;margin-top:clamp(.55rem,1.4vw,1rem);align-items:end}
.rightmeta__role em{font-family:var(--sans);font-weight:400;color:var(--cobalt);text-transform:none}
.rightmeta__small{font-family:var(--sans);font-size:clamp(.38rem,.6vw,.55rem);line-height:1.55;letter-spacing:.08em;text-transform:uppercase;text-align:right;color:var(--ink-60)}
.binder-tab{position:absolute;z-index:4;background:var(--cobalt);color:#fff;font-family:var(--sans);font-size:clamp(.42rem,.7vw,.62rem);font-weight:700;letter-spacing:.13em;text-transform:uppercase;padding:.5em .75em;}
.binder-tab--top{top:7%;right:12%;}
.binder-tab--side{left:4%;bottom:14%;transform-origin:left bottom;background:var(--ink)}
.iconbtn{display:inline-grid;place-items:center;width:calc(42 * var(--pu));height:calc(42 * var(--pu));border:1.5px solid var(--ink);color:var(--ink);transition:background .18s ease,color .18s ease,transform .18s ease}
.iconbtn:hover{background:var(--ink);color:var(--card);transform:translate(-2px,-2px)}
.iconbtn svg{width:calc(18 * var(--pu));height:calc(18 * var(--pu));stroke:currentColor;stroke-width:1.7;fill:none;stroke-linecap:round;stroke-linejoin:round}
.iconbtn svg .dot{fill:currentColor;stroke:none}
.socials{display:flex;gap:.5rem;margin-left:.3rem}
@media(max-width:760px){
  .editorial-photo{height:52%}
  .binder-tab--side{display:none}
}
@media(max-width:480px){
  .page-kicker span:last-child{display:none}
  .rightmeta{grid-template-columns:1fr}
  .rightmeta__small{text-align:left}
}
/* SECTION HEADS */
.head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:flex-start;gap:1rem 1.4rem;margin-bottom:2.2rem}
.head__l{max-width:none;min-width:0}
.head .label{display:block;margin-bottom:.6rem;}
/* WORK — looping decks, one row per category */
.sortswitch{display:inline-flex;align-items:baseline;gap:.55em;color:var(--ink-30);}
.sortswitch__label{color:var(--ink-60)}
.sortswitch button{
  background:none;border:0;padding:0 0 calc(3 * var(--pu));cursor:pointer;font:inherit;
  color:var(--ink-30);border-bottom:2px solid transparent;
  transition:color .18s ease,border-color .18s ease;
}
.sortswitch button:hover{color:var(--ink)}
.sortswitch button[aria-pressed="true"]{color:var(--ink);border-bottom-color:var(--cobalt)}
.sortswitch i{font-style:normal;color:var(--ink-30)}
/* one row per category */
.cat{--fpad:var(--gutter);padding-block:clamp(.5rem,1.4vw,1rem);position:relative;scroll-margin-top:calc(88 * var(--pu))}
.cat + .cat{border-top:1px solid var(--rule)}
.cat__head{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.cat__title{display:flex;align-items:baseline;gap:.6rem;flex-wrap:wrap;}
.cat__title .idx{font-family:var(--sans);font-size:.66rem;font-weight:700;letter-spacing:.14em;color:var(--cobalt)}
.cat__note{font-family:var(--sans);font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-60)}
.cat__ctrls{display:flex;align-items:center;gap:.4rem}
.draghint{
  display:inline-flex;align-items:center;gap:.5em;
  font-family:var(--sans);font-size:.6rem;font-weight:700;letter-spacing:.14em;
  text-transform:uppercase;color:var(--ink-30);
  transition:opacity .5s ease;
}
.draghint svg{width:calc(26 * var(--pu));height:calc(9 * var(--pu));stroke:currentColor;stroke-width:1.6;fill:none;overflow:visible}
.draghint svg g{animation:nudge 2.6s ease-in-out infinite}
@keyframes nudge{
  0%,100%{transform:translateX(-2px)}
  50%{transform:translateX(calc(3 * var(--pu)))}
}
body.has-scrolled-deck .draghint{opacity:0;pointer-events:none}
@media (prefers-reduced-motion:reduce){.draghint svg g{animation:none}}
/* the deck */
.deckwrap{position:relative}
.deckwrap::before,.deckwrap::after{
  content:"";position:absolute;top:0;bottom:0;width:clamp(1.5rem,5vw,4rem);z-index:6;pointer-events:none;
}
.deckwrap::before{left:0;background:linear-gradient(90deg,var(--paper),transparent)}
.deckwrap::after{right:0;background:linear-gradient(270deg,var(--paper),transparent)}
.deck{
  display:flex;align-items:flex-start;gap:clamp(.85rem,1.7vw,1.5rem);
  overflow-x:auto;overflow-y:hidden;
  padding:calc(48 * var(--pu)) var(--fpad);
  margin-inline:calc(var(--fpad) * -1);
  scrollbar-width:none;-ms-overflow-style:none;cursor:grab;
}
.deck::-webkit-scrollbar{display:none}
.deck.is-dragging{cursor:grabbing}
.deckcard{
  flex:0 0 auto;width:clamp(calc(168 * var(--pu)),18.5vw,calc(242 * var(--pu)));
  border:0;background:none;padding:0;font:inherit;color:inherit;text-align:left;cursor:pointer;
  position:relative;transform-origin:center center;
  transition:transform .38s cubic-bezier(.2,.8,.25,1),filter .38s ease,opacity .38s ease;
}.deckcard__frame{
  position:relative;aspect-ratio:9/16;overflow:hidden;
  background:var(--paper-2);border:1.5px solid var(--ink);
transition:box-shadow .3s ease;
}
.deckcard__frame video,.deckcard__frame img{width:100%;height:100%;object-fit:cover}
.deckcard__ph{position:absolute;inset:0;display:grid;place-items:center;text-align:center;padding:.7rem;color:var(--ink-30);}
.deckcard__cap{padding-top:.5rem;opacity:.72;transition:opacity .3s ease}
.deckcard__fmt{color:var(--cobalt);}
.deck:not(.is-focused) .deckcard:hover,
.deck:not(.is-focused) .deckcard:focus-visible{transform:translateY(calc(-12 * var(--pu))) scale(1.05);z-index:5}
.deck:not(.is-focused) .deckcard:hover .deckcard__cap,
.deck:not(.is-focused) .deckcard:focus-visible .deckcard__cap{opacity:1}
.deck.is-focused .deckcard{filter:brightness(.46) saturate(.4);opacity:.9}
.deck.is-focused .deckcard.is-open{
  filter:none;opacity:1;z-index:20;transform:scale(1.34);
}.deck.is-focused .deckcard.is-open .deckcard__cap{opacity:1}
.deckcard__badge{
  position:absolute;left:.45rem;bottom:.45rem;width:calc(25 * var(--pu));height:calc(25 * var(--pu));
  background:var(--card);border:1.5px solid var(--ink);display:grid;place-items:center;
}
.deckcard__badge::after{content:"";border-left:calc(8 * var(--pu)) solid var(--ink);border-top:calc(5 * var(--pu)) solid transparent;border-bottom:calc(5 * var(--pu)) solid transparent;margin-left:2px}
.deckcard.is-playing .deckcard__badge::after{border:0;width:calc(8 * var(--pu));height:calc(9 * var(--pu));border-left:calc(3 * var(--pu)) solid var(--ink);border-right:calc(3 * var(--pu)) solid var(--ink);margin:0}
.cat__close{position:absolute;right:0;top:1.6rem;z-index:30;background:var(--cobalt);color:#fff;border:0;padding:.45em .8em;cursor:pointer;opacity:0;pointer-events:none;transition:opacity .25s ease,background .18s ease,transform .18s ease,filter .18s ease;}
.cat.is-open .cat__close{opacity:1;pointer-events:auto}
.workfoot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.8rem;align-items:center;margin-top:2rem;border-top:1.5px solid var(--ink);padding-top:1.2rem}
/* SERVICES — numbered file rows */
.svc{border-top:1.5px solid var(--ink)}
.svc__row{
  display:grid;gap:.4rem 1.4rem;padding-block:1.5rem;border-bottom:1px solid var(--rule);
  transition:background .18s;
}
@media(min-width:820px){.svc__row{grid-template-columns:3.2rem 17.5rem 1fr;align-items:baseline}}
.svc__row:hover{background:var(--cobalt-wash)}
.svc__n{font-family:var(--sans);font-size:.7rem;font-weight:700;color:var(--cobalt);letter-spacing:.08em}
.svc__name{font-family:var(--sans);font-weight:700;font-size:1.28rem;text-transform:uppercase;line-height:1.05;text-wrap:balance}
.svc__desc{color:var(--ink-60);max-width:44ch}
.navtoggle{display:inline-flex;align-items:center;gap:.5em;background:transparent;border:1.5px solid var(--ink);padding:.55em .8em;cursor:pointer;color:var(--ink);transition:color .18s ease,background .18s ease,border-color .18s ease,transform .18s ease,filter .18s ease}
.navtoggle:is(:hover,:focus-visible){color:#001F93;border-color:#001F93;transform:translateY(calc(-3 * var(--pu)));filter:drop-shadow(0 0 .45em rgba(0,31,147,.32))}
@media(min-width:1024px){.navtoggle{display:none;}}
.navpanel{
  display:none;position:absolute;left:0;right:0;top:100%;
  background:var(--paper);border-bottom:1.5px solid var(--ink);border-top:1px solid var(--rule);
  padding:.6rem var(--gutter) 1rem;
}
.navpanel.is-open{display:block}
@media(min-width:1024px){.navpanel{display:none !important}}
.navpanel a{display:block;text-decoration:none;padding:.7rem 0;border-bottom:1px dashed var(--ink-30);transition:color .18s ease,transform .18s ease,filter .18s ease}
.navpanel a:is(:hover,:focus-visible){color:#001F93;transform:translateX(calc(4 * var(--pu)));filter:drop-shadow(0 0 .35em rgba(0,31,147,.3))}
.navpanel a:last-child{border-bottom:0}
.case{
  background:var(--card);border:1.5px solid var(--ink);padding:1.4rem;
}
.case__tag{color:var(--cobalt);}
.case h3{margin:.45rem 0 .6rem;}
.case p{color:var(--ink-60);font-size:.92rem;max-width:52ch}
.case__nums{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--rule);border:1px solid var(--rule);margin-top:1.1rem}
.case__nums div{background:var(--card);padding:.8rem .7rem}
.case__nums b{display:block;}
.case__nums span{color:var(--ink-60);}
.proofgrid{display:grid;gap:1.3rem;margin-top:1.6rem}
@media(min-width:900px){.proofgrid{grid-template-columns:1.15fr .85fr;align-items:start}}
.aud{display:grid;gap:1px;background:var(--rule);border:1.5px solid var(--ink)}
@media(min-width:640px){.aud{grid-template-columns:repeat(2,1fr)}}
@media(min-width:960px){.aud{grid-template-columns:repeat(4,1fr)}}
.aud__cell{background:var(--paper);padding:1.15rem 1.1rem}
.aud__k{color:var(--ink-60);}
.aud__v{margin-top:.4rem;}
.aud__n{color:var(--ink-60);margin-top:.35rem;}
.aud__cell--blue{background:var(--cobalt);color:#fff}
.aud__cell--blue .aud__k,.aud__cell--blue .aud__n{color:rgba(255,255,255,.78)}
.audsplit{display:grid;gap:1.4rem;margin-top:1.4rem}
@media(min-width:820px){.audsplit{grid-template-columns:1fr 1fr}}
.audlist{background:var(--card);border:1.5px solid var(--ink);padding:1.2rem 1.3rem}
.audlist h3{font-family:var(--sans);font-size:.62rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--ink-60);margin-bottom:.8rem}
.audrow{display:grid;grid-template-columns:1fr auto;gap:.8rem;align-items:center;padding-block:.42rem}
.audrow + .audrow{border-top:1px dashed var(--ink-30)}
.audrow span:first-child{font-size:.9rem}
.audrow span:last-child{font-family:var(--sans);font-size:.78rem;font-weight:700}
.audbar{grid-column:1/-1;height:calc(3 * var(--pu));background:var(--rule);margin-top:.3rem}
.audbar i{display:block;height:100%;background:var(--cobalt)}
.tracks{display:grid;gap:1.2rem;margin-bottom:2.8rem;align-items:stretch}
@media(min-width:820px){.tracks{grid-template-columns:1fr 1fr}}
.track{
  background:var(--card);border:1.5px solid var(--ink);padding:1.4rem;
position:relative;
}.track__tag{display:inline-block;color:#fff;background:var(--ink);padding:.35em .7em;margin-bottom:.9rem;}
.track--b .track__tag{background:var(--cobalt)}
.track h3{margin-bottom:.4rem;}
.track > p{color:var(--ink-60);font-size:.92rem;max-width:42ch}
.track ul{list-style:none;margin-top:1rem;border-top:1px dashed var(--ink-30);padding-top:.85rem;display:grid;gap:.4rem}
.track ul li{font-size:.9rem;display:flex;gap:.6rem;align-items:baseline}
.track ul li::before{content:"";flex:0 0 auto;width:calc(5 * var(--pu));height:calc(5 * var(--pu));background:var(--cobalt);transform:translateY(-2px)}
.why{border-top:1.5px solid var(--ink);border-bottom:1.5px solid var(--ink)}
.whyrow{
  display:grid;gap:.4rem 2rem;padding-block:clamp(1.5rem,3vw,2.2rem);
  border-bottom:1px solid var(--rule);
}
.whyrow:last-child{border-bottom:0}
@media(min-width:820px){.whyrow{grid-template-columns:3.5rem 1fr auto;align-items:baseline}}
.whyrow__n{font-family:var(--sans);font-size:.66rem;font-weight:700;letter-spacing:.14em;color:var(--cobalt)}
.whyrow__claim{
  font-family:var(--sans);font-weight:700;line-height:1;letter-spacing:-.02em;
  font-size:clamp(1.5rem,3.6vw,2.5rem);text-transform:uppercase;text-wrap:balance;
}
.whyrow__claim em{font-style:italic;font-weight:400;text-transform:none;color:var(--cobalt)}
.whyrow__sub{font-family:var(--sans);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-60)}
.track ol{list-style:none;margin-top:1rem;border-top:1px dashed var(--ink-30);padding-top:.2rem}
.track ol li{padding:.75rem 0;border-bottom:1px solid var(--rule)}
.track ol li:last-child{border-bottom:0}
.track ol b{display:block;}
.track ol span{display:block;font-size:.85rem;color:var(--ink-60);margin-top:.2rem}
.typeindex{margin-top:2.8rem}
.typeindex__head{
  display:flex;align-items:baseline;justify-content:space-between;gap:1rem;flex-wrap:wrap;
  border-bottom:1.5px solid var(--ink);padding-bottom:.6rem;margin-bottom:0;
}
.typeindex__grid{display:grid;grid-template-columns:repeat(2,1fr);column-gap:2rem}
@media(min-width:700px){.typeindex__grid{grid-template-columns:repeat(4,1fr)}}
.typeitem{
  display:flex;align-items:baseline;gap:.7rem;
  padding:.75rem 0;border-bottom:1px solid var(--rule);
  font-family:var(--sans);font-weight:600;font-size:.98rem;
  text-transform:uppercase;letter-spacing:.005em;line-height:1.1;
}
.typeitem i{
  flex:0 0 auto;width:calc(5 * var(--pu));height:calc(5 * var(--pu));background:var(--cobalt);
  transform:translateY(calc(-3 * var(--pu)));
}
.svcmore{
  margin-top:2.6rem;border:1.5px solid var(--ink);background:var(--card);
  padding:1.3rem 1.4rem;display:flex;flex-wrap:wrap;align-items:center;
  justify-content:space-between;gap:1rem;
}
.svcmore p{max-width:48ch}
.svcmore strong{display:block;margin-bottom:.2rem;}
/* PROCESS — 4 steps */
.steps{display:grid;gap:1px;background:var(--rule);border:1.5px solid var(--ink)}
@media(min-width:800px){.steps{grid-template-columns:repeat(4,1fr)}}
.step{background:var(--paper);padding:1.4rem 1.15rem}
.step__n{font-family:var(--sans);font-size:.62rem;font-weight:700;letter-spacing:.14em;color:var(--cobalt)}
.step h3{font-family:var(--sans);font-weight:700;font-size:1.2rem;text-transform:uppercase;margin:.5rem 0 .45rem;line-height:1.05}
.step p{font-size:.88rem;color:var(--ink-60)}
/* BRANDS + WORDS */
.brands{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--rule);border:1px solid var(--rule)}
@media(min-width:640px){.brands{grid-template-columns:repeat(3,1fr)}}
@media(min-width:960px){.brands{grid-template-columns:repeat(5,1fr)}}
.brands div{
  background:var(--paper);display:grid;place-items:center;padding:1.15rem .6rem;
  font-family:var(--sans);font-weight:600;font-size:1rem;letter-spacing:.02em;text-transform:uppercase;
}
.quotes{display:grid;gap:1.2rem}
@media(min-width:780px){.quotes{grid-template-columns:1fr 1fr}}
.quote{background:var(--card);border:1.5px solid var(--ink);padding:1.5rem;position:relative;}
.quote footer{margin-top:1rem;border-top:1px dashed var(--ink-30);padding-top:.7rem;display:flex;justify-content:space-between;gap:.8rem;flex-wrap:wrap}
.quote cite{font-style:normal;font-weight:700;font-size:.85rem}
/* CONTACT */
.contact__grid{display:grid;gap:2.4rem;margin-bottom:clamp(2.2rem,5vw,3.6rem)}
@media(min-width:700px){.contact__grid{grid-template-columns:1.1fr .9fr;align-items:start}
  .contact__grid > div{padding-top:1.4rem}}
.contact a.big{text-decoration:none;border-bottom:2px solid var(--cobalt);display:inline-block;word-break:break-word;}
.contact a.big:hover{color:var(--cobalt)}
.form{background:var(--card);border:1.5px solid var(--card);padding:1.4rem;color:var(--ink);}
.form label{display:block;margin-bottom:.9rem}
.form .label{display:block;margin-bottom:.3rem;color:var(--ink);}
.form input,.form select,.form textarea{width:100%;padding:.6rem .7rem;border:0;background:var(--paper-2);color:var(--ink);border-radius:0;}
.form textarea{min-height:calc(96 * var(--pu));resize:vertical;}
.form .btn{width:100%;justify-content:center;}
.sociallinks{display:flex;gap:1.2rem}
.sociallinks a{text-decoration:none;border-bottom:1.5px solid transparent;}
.sociallinks a:hover{border-color:var(--cobalt);color:var(--cobalt)}
#contact .sociallinks{margin-top:clamp(.9rem,1.8vw,1.4rem);gap:clamp(1rem,2.4vw,1.8rem);align-items:center}
#contact .sociallinks a{display:inline-flex;border-bottom:0;color:var(--card);transition:color .18s ease,transform .18s ease}
#contact .sociallinks svg{width:clamp(calc(51 * var(--pu)),7.5vw,calc(69 * var(--pu)));height:auto;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
#contact .sociallinks svg .dot{fill:currentColor;stroke:none}
#contact .sociallinks a:hover{color:var(--pink);transform:translate(-2px,-2px)}
.footer{border-top:1px solid var(--rule);padding-block:1.6rem;display:flex;flex-wrap:wrap;gap:1rem;justify-content:flex-end;align-items:center}
#contact .footer .meta{
  position:relative;
  z-index:4;
  /* steps down to calc(11 * var(--pu)) on narrow phones so both phrases fit beside the cutout */
  font-size:min(clamp(calc(12 * var(--pu)),1.1vw,calc(16 * var(--pu))), max(calc(11 * var(--pu)), (100vw - var(--fig-w) - 2rem) / 10.3));
  text-align:right;
  /* the text hangs just under the rule: from the flex-end spot, drop by its own height
     plus the section's bottom padding, then back up to the rule's height */
  transform:translateY(calc(100% + var(--pad-b) - var(--rule-b) + .35rem));
  /* keeps the text clear of the cutout (--fig-w wide, flush to the viewport's left) */
  max-width:calc(100% - max(0px, var(--fig-w) + .75rem - (100vw - 100%) / 2));
}
/* two phrases: breaks only between them when the space beside the cutout runs out */
#contact .footer .meta span{white-space:nowrap}
#contact .footer{
  position:relative;
  border-top:0;
  border-image:none;
  /* same total height as before, all of it above the text */
  align-items:flex-end;
  padding-top:3.2rem;
  padding-bottom:0;
}
/* The rule starts inside the figure, runs behind it and only shows where it comes out
   on the right. */
#contact .footer::after{
  content:"";
  position:absolute;
  z-index:-1;
  /* locked to the figure: level with her shoulder on the right of the picture,
     23.5% of the cutout's height up from the section's bottom */
  bottom:calc(var(--rule-b) - var(--pad-b));
  left:calc(50% - 50vw + var(--fig-w) * .5);
  right:calc(50% - 50vw);
  height:2px;
  background:#fff;
  pointer-events:none;
}
/* scroll reveal */
.rv{opacity:0;transform:translateY(calc(14 * var(--pu)));transition:opacity .5s ease,transform .5s ease}
.rv.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.rv{opacity:1;transform:none}}
/* CREATIVE PASS 02 — OUTSIDE HERO */
#proof,#audience,#ways{overflow:hidden;isolation:isolate}
#work::before,#proof::before,#audience::before,#ways::before{
  position:absolute;z-index:-1;pointer-events:none;font-family:var(--sans);font-weight:800;
  font-size:clamp(8rem,25vw,24rem);line-height:.7;letter-spacing:-.07em;text-transform:uppercase;
  opacity:.035;white-space:nowrap;
}
#work::before{content:"WORK";right:-.04em;top:.18em}
#proof::before{content:"PROOF";left:-.08em;top:.18em}
#audience::before{content:"PEOPLE";right:-.08em;bottom:.18em}
#ways::before{content:"BOOK ME";left:-.03em;bottom:.12em}
#work .head,#proof .head,#audience .head,#ways .head{position:relative;margin-bottom:clamp(2.8rem,6vw,5rem)}
#work .head::after,#proof .head::after,#audience .head::after,#ways .head::after{
  content:"";position:absolute;left:0;right:0;bottom:-1.15rem;height:1.5px;background:var(--ink);
}
/* PORTFOLIO — pink torn paper. From calc(768 * var(--pu)) up it is the calc(1024 * var(--pu)) mockup scaled as one unit
   (every length is calc(<mockup px> * var(--px))); the torn edge reaches up over the hero. */

#work{padding:0}
.work__top{position:relative;z-index:5;container-type:inline-size;width:min(100%, var(--cap));margin-inline:auto;--px:calc(100cqw / 1024)}
/* the tear's own flat pink is cut out (work-tear-cut.webp); .work__stage::before runs the paper up behind it */
.work__tear{position:relative;z-index:1;margin-top:calc(-92 * var(--px))}
.work__tearimg{width:100%;height:auto}
.work__stage{position:relative;padding:calc(124 * var(--px)) 0 calc(18 * var(--px));margin-top:calc(-120 * var(--px))}
.work__title{position:absolute;left:var(--wide-gutter);right:auto;top:calc(14 * var(--px));text-align:left;white-space:nowrap;margin:0}
.work__title .it{padding-left:.14em}
.work__tabs{position:absolute;left:calc(12 * var(--px));top:calc(132 * var(--px));display:flex;flex-direction:column;align-items:flex-start;gap:calc(2 * var(--px))}
.work__tab{position:relative;isolation:isolate;background:none;border:0;cursor:pointer;color:var(--ink);--tab-py:calc(14 * var(--px));--tab-px:calc(28 * var(--px));padding:var(--tab-py) var(--tab-px);white-space:nowrap;transition:color .18s ease,transform .18s ease,filter .18s ease}
.work__tab[aria-current="true"]:is(:hover,:focus-visible){color:var(--ink);transform:none;filter:none}
.work__tab:is(:hover,:focus-visible){color:#001F93;transform:translateY(calc(-3 * var(--pu)));filter:drop-shadow(0 0 .45em rgba(0,31,147,.32))}
.work__tab{text-decoration:none}
.work__tab[aria-current="true"]{cursor:default}
/* the same pen mark as the nav and media kit: loose oval + trailing underline, drawn
   around the text (not the tab's padding), so --tab-py/--tab-px are subtracted back out */
.work__tab[aria-current="true"]::before,
.work__tab:is(:hover,:focus-visible)::before{
  content:"";position:absolute;z-index:-1;inset:calc(var(--tab-py) - .8em) calc(var(--tab-px) - .95em);
  border:var(--pen) solid #001F93;
  border-radius:51% 49% 53% 47% / 47% 55% 45% 53%;
  transform:rotate(-3deg); /* a long label needs a gentler tilt than the nav's -6deg to stay clear of the letters */
}
.work__tab[aria-current="true"]::after,
.work__tab:is(:hover,:focus-visible)::after{
  content:"";position:absolute;z-index:-1;
  left:calc(var(--tab-px) + (100% - 2 * var(--tab-px)) * .17);
  right:calc(var(--tab-px) + (100% - 2 * var(--tab-px)) * .18);
  bottom:calc(var(--tab-py) - .62em);height:var(--pen);
  background:#001F93;transform:rotate(-2deg);
}
.sortbtn{
  border:0;background:none;cursor:pointer;color:var(--ink);
  transition:color .18s ease,transform .18s ease,filter .18s ease;
}
.sortbtn:is(:hover,:focus-visible),
#work .cat__close:is(:hover,:focus-visible){
  color:#001F93;
  transform:translateY(calc(-3 * var(--pu)));
  filter:drop-shadow(0 0 .45em rgba(0,31,147,.32));
}
#work .cat__close:is(:hover,:focus-visible){color:#fff;background:#001770}
.work__cards{list-style:none;display:grid;grid-template-columns:1.4fr 1fr 1.4fr 1fr;grid-template-rows:1fr 1fr;height:calc(50 * var(--px) + max(calc(260 * var(--px) + 9.1 * min(calc(18 * var(--pu)), max(calc(12.5 * var(--pu)), 12 * var(--px)))), calc(.5185 * (100cqw - 50 * var(--px) - max(170 * var(--px), calc(165 * var(--pu)))))));gap:calc(10 * var(--px));margin:0 calc(20 * var(--px)) 0 max(calc(170 * var(--px)), calc(165 * var(--pu)))}
.pcard{position:relative;min-height:0;transform:none;transition:filter .3s ease,transform .3s ease}
.pcard a{display:grid;grid-template-rows:1fr auto;position:relative;height:100%;padding:0;background:#001F93;overflow:hidden;color:#fff;text-decoration:none}
/* --zoom crops each photo above the category tape printed into the mockup JPEG;
   drop it back to 118% once the real video posters land. */
.pcard a::before{content:"";grid-column:1;grid-row:1;background:var(--pcard-photo) center top/var(--zoom,146%) auto no-repeat}
.pcard__photo{display:none}
/* category tab picked: the card shows that category's clip instead of the featured photo */
.pcard.is-clip a::before{display:none}
.pcard .deckcard__ph{position:relative;grid-column:1;grid-row:1;min-height:0}
.pcard.is-clip .pcard__ph{display:none}
.pcard .deckcard__ph video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.pcard__copy{grid-column:1;grid-row:2;display:flex;align-items:center;justify-content:space-between;gap:.6em;padding:clamp(calc(5 * var(--pu)),.62vw,calc(9 * var(--pu))) clamp(calc(6 * var(--pu)),.72vw,calc(11 * var(--pu)));color:#fff}
.pcard__copy strong{font-family:var(--druk);font-weight:400;font-size:clamp(calc(12 * var(--pu)),calc(17 * var(--px)),calc(20 * var(--pu)));line-height:.9;letter-spacing:var(--ls-druk);text-transform:uppercase}
.pcard__play{position:absolute;left:50%;top:calc(50% - .8rem);display:grid;width:clamp(calc(30 * var(--pu)),calc(40 * var(--px)),calc(42 * var(--pu)));height:clamp(calc(30 * var(--pu)),calc(40 * var(--px)),calc(42 * var(--pu)));place-items:center;border:1.5px solid rgba(255,255,255,.88);border-radius:50%;background:var(--cobalt);box-shadow:0 calc(3 * var(--pu)) calc(10 * var(--pu)) rgba(21,20,15,.28);transform:translate(-50%,-50%);transition:background .18s ease,color .18s ease,transform .18s ease}
.pcard__play span{width:0;height:0;margin-left:10%;border-top:clamp(calc(4 * var(--pu)),calc(5 * var(--px)),calc(6 * var(--pu))) solid transparent;border-bottom:clamp(calc(4 * var(--pu)),calc(5 * var(--px)),calc(6 * var(--pu))) solid transparent;border-left:clamp(calc(7 * var(--pu)),calc(9 * var(--px)),calc(10 * var(--pu))) solid currentColor}
.pcard:is(:hover,:focus-within){transform:translateY(calc(-6 * var(--px)));z-index:2}
.pcard a:is(:hover,:focus-visible) .pcard__play{background:#fff;color:var(--cobalt);transform:translate(-50%,-50%) scale(1.08)}
.pcard a:focus-visible{outline:calc(3 * var(--pu)) solid var(--ink);outline-offset:calc(3 * var(--pu))}
/* Six across the same 40→992 span of the 1024 mockup: 6 * 152 + 5 * 8 = 952. */
.pcard--1{--pcard-photo:url("../assets/work-photo-1.jpg");--tl:11%;--tb:8%;--tw:72%;--cap:15;--zoom:168%}
.pcard--2{--pcard-photo:url("../assets/work-photo-2.jpg");--tl:11%;--tb:8%;--tw:72%;--cap:21;--zoom:166%}
.pcard--3{--pcard-photo:url("../assets/work-photo-4.jpg");--tl:11%;--tb:8%;--tw:72%;--cap:7;--zoom:145%}
.pcard--4{--pcard-photo:url("../assets/work-photo-3.jpg");--tl:11%;--tb:8%;--tw:72%;--cap:4;--zoom:187%}
.pcard--5{--pcard-photo:url("../assets/work-photo-5.jpg");--tl:11%;--tb:8%;--tw:72%;--cap:10;--zoom:153%}
/* reference mosaic: tall | two stacked (split low) | tall | two stacked (split high) */
.pcard--1{grid-area:1/1/3/2}.pcard--2{grid-area:1/2/2/3}.pcard--4{grid-area:2/2/3/3}
.pcard--3{grid-area:1/3/3/4}.pcard--5{grid-area:1/4/2/5}.pcard--6{grid-area:2/4/3/5}
.work__more{position:absolute;z-index:0;isolation:isolate;left:calc(12 * var(--px));top:calc(132 * var(--px) + 7 * (30 * var(--px) + 1.3em) + 14 * var(--px));min-height:calc(44 * var(--pu));padding:calc(12 * var(--px)) calc(18 * var(--px));text-align:left;display:flex;align-items:center;justify-content:space-between;gap:calc(18 * var(--px));white-space:nowrap;border:1.5px solid var(--ink);background:var(--cobalt);color:#fff;cursor:pointer;text-decoration:none;box-shadow:calc(4 * var(--px)) calc(4 * var(--px)) 0 var(--ink);transition:background .18s ease,color .18s ease,transform .18s ease,box-shadow .18s ease}
.work__more:is(:hover,:focus-visible){
  background:#001770;
  color:#fff;
  transform:translate(calc(-2 * var(--pu)),calc(-2 * var(--pu)));
  box-shadow:calc(6 * var(--px)) calc(6 * var(--px)) 0 var(--ink);
}
.work__more:focus-visible{outline:calc(3 * var(--pu)) solid #fff;outline-offset:calc(-6 * var(--pu))}
.work__more [data-state="open"]{display:none}
.work__more[aria-expanded="true"]{background:var(--ink)}
.work__more[aria-expanded="true"] [data-state="closed"]{display:none}
.work__more[aria-expanded="true"] [data-state="open"]{display:inline}
.work__more svg{width:clamp(calc(14 * var(--pu)),calc(18 * var(--px)),calc(18 * var(--pu)));height:clamp(calc(14 * var(--pu)),calc(18 * var(--px)),calc(18 * var(--pu)));fill:none;stroke:currentColor;stroke-width:1.6;transition:transform .2s ease}
.work__more:is(:hover,:focus-visible) svg{transform:translateY(calc(3 * var(--pu)))}
.work__more[aria-expanded="true"] svg{transform:rotate(180deg)}
.work__more[aria-expanded="true"]:is(:hover,:focus-visible) svg{transform:rotate(180deg) translateY(calc(3 * var(--pu)))}
.work__swipe,.work__deckhint{display:none}
/* video card → pop-up viewer */
.viewer{position:fixed;inset:0;margin:auto;width:fit-content;height:fit-content;padding:0;border:0;background:none;overflow:visible;max-width:none;max-height:none}
.viewer::backdrop{background:rgba(21,20,15,.72);backdrop-filter:blur(calc(4 * var(--pu)))}
.viewer__media{position:relative;height:min(82vh, 150vw);aspect-ratio:9/16;background:#15140f;overflow:hidden}
.viewer__media > video{display:block;width:100%;height:100%;object-fit:cover}
/* same crop as the grid card (center top / --zoom wide) */
.viewer__media > img{display:block;width:var(--zoom,100%);max-width:none;height:auto;margin-left:calc((100% - var(--zoom,100%)) / 2)}
.viewer__media > .deckcard__ph{position:absolute;inset:0}
.viewer__cap{margin:.6rem 0 0;color:#fff;font-family:var(--druk);font-size:1.6rem;line-height:1;letter-spacing:var(--ls-druk);text-transform:uppercase}
.viewer__close{position:absolute;right:0;bottom:calc(100% + .6rem);border:0;background:none;color:#fff;cursor:pointer;font-family:var(--sans);font-weight:500;font-size:calc(14 * var(--pu));letter-spacing:.04em;text-transform:uppercase}
.work__decks{padding-block:clamp(2rem,4vw,3.5rem)}
/* phone: stacked, tabs and cards as swipe rows */
@media (max-width:640px){
  .work__stage{height:auto;margin-top:-1px;display:flex;flex-wrap:wrap;justify-content:center;align-items:flex-start;padding:calc(18 * var(--pu)) 0 calc(34 * var(--pu))}
  .work__stage > *{position:relative;left:auto;top:auto;right:auto}
  .work__title{order:2;width:100%;margin-top:2px;padding-inline:var(--wide-gutter);text-align:left}
  .work__tabs{order:5;width:100%;margin-top:calc(10 * var(--pu));padding:calc(6 * var(--pu)) var(--gutter);overflow-x:auto;scrollbar-width:none;scroll-snap-type:x proximity;scroll-padding-inline:var(--gutter);flex-direction:row;justify-content:flex-start;gap:2px}
  .work__tab{flex:0 0 auto;--tab-py:calc(10 * var(--pu));--tab-px:calc(16 * var(--pu));scroll-snap-align:start}
  .work__cards{order:7;width:100%;margin:0;height:auto;display:flex;align-items:flex-start;gap:calc(14 * var(--pu));overflow-x:auto;scroll-snap-type:x mandatory;padding:calc(16 * var(--pu)) var(--gutter) calc(30 * var(--pu));scrollbar-width:none}
  .pcard{position:relative;left:auto;top:auto;aspect-ratio:auto;flex:0 0 60%;width:auto;height:auto;scroll-snap-align:center}
  .pcard a{height:auto;aspect-ratio:.62}
  .pcard__photo{height:100%}
  .pcard:is(:hover,:focus-within){transform:translateY(calc(-4 * var(--pu)))}
  .work__swipe{order:6;width:100%;display:flex;align-items:center;justify-content:flex-end;gap:.55rem;margin:calc(8 * var(--pu)) 0 calc(-4 * var(--pu));padding-inline:var(--gutter);color:var(--cobalt);font-family:var(--sans);font-size:max(calc(12 * var(--pu)),var(--fs-label));font-weight:700;letter-spacing:.09em;text-transform:uppercase;transition:opacity .25s ease,transform .25s ease}
  .work__swipe svg{width:calc(34 * var(--pu));height:calc(12 * var(--pu));fill:none;stroke:currentColor;stroke-width:1.5}
  .work__swipe.is-hidden{opacity:0;transform:translateX(calc(8 * var(--pu)));pointer-events:none}
  .work__more{order:8;width:calc(272 * var(--pu));height:calc(78 * var(--pu))}
}
/* PORTFOLIO: creative-director contact sheet */
#work{background:#e8e3d8;}
#work .wrap{max-width:calc(1320 * var(--pu))}
#work .cat{padding-block:clamp(1.2rem,2.8vw,2.2rem)}
#work .cat + .cat{border-top:0}
#work .cat__head{position:relative;z-index:3;border-top:1.5px solid var(--ink);padding-top:.65rem}
#work .cat__note{background:var(--card);border:1px solid var(--ink);padding:.28em .55em;}
#work .deckwrap{margin-top:-.2rem}
#work .deck{gap:clamp(.6rem,1.3vw,1.1rem);padding:calc(132 * var(--pu)) var(--fpad) calc(140 * var(--pu));align-items:flex-start}
#work .deckwrap::before,#work .deckwrap::after{width:2rem;background:none}
#work .deckcard{width:clamp(calc(210 * var(--pu)),23vw,calc(310 * var(--pu)));transition:transform .38s cubic-bezier(.18,.9,.22,1),filter .3s,opacity .3s}
#work .deckcard:nth-child(4n+1){width:clamp(calc(210 * var(--pu)),23vw,calc(310 * var(--pu)))}
#work .deckcard:nth-child(4n+2){width:clamp(calc(210 * var(--pu)),23vw,calc(310 * var(--pu)))}
#work .deckcard:nth-child(4n+3){width:clamp(calc(210 * var(--pu)),23vw,calc(310 * var(--pu)))}
#work .deckcard:nth-child(4n){width:clamp(calc(210 * var(--pu)),23vw,calc(310 * var(--pu)))}
#work .deckcard__frame{border:calc(7 * var(--pu)) solid #f9f7f1;outline:1.5px solid var(--ink);background:#d6d0c4}
#work .deckcard__frame::before{content:"";position:absolute;z-index:4;width:44%;height:calc(13 * var(--pu));left:28%;top:calc(-8 * var(--pu));background:rgba(235,223,180,.78);}
#work .deckcard:nth-child(3n) .deckcard__frame::before{left:auto;right:calc(-12 * var(--pu));top:18%;width:calc(55 * var(--pu));height:calc(16 * var(--pu));transform:rotate(90deg)}
#work .deckcard__ph{inset:0;background:
  linear-gradient(135deg,transparent 0 44%,rgba(27,52,206,.13) 44% 56%,transparent 56%),
  repeating-linear-gradient(0deg,rgba(21,20,15,.035) 0 1px,transparent 1px calc(7 * var(--pu))),#dcd7cd;color:rgba(21,20,15,.48);}
#work .deckcard:nth-child(5n+2) .deckcard__ph{background:linear-gradient(145deg,#001F93 0 38%,#ddd7cc 38% 68%,#15140f 68%);color:white}
#work .deckcard:nth-child(5n+4) .deckcard__ph{background:repeating-linear-gradient(90deg,#ece7dc 0 calc(18 * var(--pu)),#ded8ca calc(18 * var(--pu)) calc(19 * var(--pu)));color:var(--ink)}
#work .deckcard__cap{background:var(--card);border:1.5px solid var(--ink);border-top:0;padding:.55rem .6rem .6rem;opacity:1;}
#work .deckcard__fmt{margin-top:.14rem;}
#work .deckcard__badge{left:auto;right:.48rem;bottom:.48rem;background:var(--cobalt);border-color:var(--cobalt)}
#work .deckcard__badge::after{border-left-color:#fff}
#work .deck:not(.is-focused) .deckcard:hover{transform:translateY(calc(-24 * var(--pu))) rotate(0) scale(1.08)!important;z-index:12}#work .workfoot{border:0;position:relative;margin-top:0;padding-top:1.5rem}
#work .workfoot::before{content:"";position:absolute;left:0;top:0;width:76%;height:1px;background:var(--ink)}
/* PROOF: campaign autopsy + receipts */
#proof{background:var(--ink);color:var(--card)}
#proof::before{color:#fff;opacity:.025}
#proof .label,#proof .meta{color:#aaa69c;}
#proof .head::after{background:var(--card)}
#proof .h-lg{color:var(--card);}
#proof .brands{background:transparent;border:0;gap:.55rem;}
#proof .brands div{background:transparent;color:var(--card);border:1px solid #69665f;min-height:calc(64 * var(--pu));position:relative;overflow:hidden;}#proof .brands div::after{content:"";position:absolute;inset:auto -10% calc(7 * var(--pu)) 10%;height:calc(3 * var(--pu));background:var(--cobalt);opacity:.8}
#proof .proofgrid{grid-template-columns:minmax(0,1.35fr) minmax(calc(260 * var(--pu)),.65fr);gap:clamp(1.5rem,3vw,3rem);margin-top:3rem}
#proof .case{background:#f1ede4;color:var(--ink);border:0;padding:clamp(1.5rem,4vw,3rem);position:relative}
#proof .case::before{content:"CAMPAIGN / AUTOPSY";position:absolute;right:1.2rem;top:calc(clamp(1.25rem,2.7vw,2.1rem) + calc(7.15 * var(--pu)));translate:0 -50%;background:var(--cobalt);color:white;font:700 .58rem var(--sans);letter-spacing:.16em;padding:.55em 1em;}
#proof .case h3{margin:.5rem 0 1.2rem;}
#proof .case p{font-size:1rem;max-width:48ch;color:#4f4b43}
#proof .case__nums{background:var(--ink);border:0;gap:1px;margin-top:2rem}
#proof .case__nums div{background:#f1ede4;padding:1.15rem .9rem}
#proof .quotes{gap:1.2rem!important;align-content:center}
#proof .quote{background:#fffdf8;color:var(--ink);border:0;padding:1.4rem 1.35rem 1.1rem;}
#proof .quote:nth-child(2){background:#dfe4ff}
#proof .quote::before{content:"";position:absolute;top:calc(-8 * var(--pu));left:23%;width:42%;height:calc(16 * var(--pu));background:rgba(232,218,169,.78);}
#proof .quote footer{border-color:#aaa59c}
/* AUDIENCE: visual flex, not dashboard */
#audience{background:#ebe7dd;color:var(--ink);padding-bottom:clamp(5rem,10vw,9rem)}
#audience .aud{border:0;background:transparent;gap:clamp(.6rem,1.4vw,1.1rem);grid-template-columns:repeat(12,1fr)!important;align-items:stretch}
#audience .aud__cell{border:1.5px solid var(--ink);background:#f8f5ed;padding:clamp(.85rem,1.6vw,1.35rem);min-height:calc(165 * var(--pu));display:flex;flex-direction:column;justify-content:flex-end;position:relative;overflow:hidden}
#audience .aud__cell:nth-child(1){grid-column:span 5;min-height:calc(235 * var(--pu));}
#audience .aud__cell:nth-child(2){grid-column:span 7;min-height:calc(235 * var(--pu));background:var(--cobalt);color:white;}
#audience .aud__cell:nth-child(3){grid-column:span 7;}
#audience .aud__cell:nth-child(4){grid-column:span 5;}
#audience .aud__cell::before{content:"0" counter(aud);counter-increment:aud;position:absolute;top:.8rem;right:1rem;font:700 .64rem var(--sans);letter-spacing:.12em}
#audience .aud{counter-reset:aud}
#audience .aud__v{margin-top:auto;}
#audience .aud__n{margin-top:.55rem;}
#audience .aud__cell--blue .aud__k,#audience .aud__cell--blue .aud__n{color:rgba(255,255,255,.78)}
#audience .audsplit{gap:clamp(1rem,2vw,2rem);margin-top:2.2rem}
#audience .audlist{background:transparent;border:0;border-top:calc(3 * var(--pu)) solid var(--ink);padding:1rem 0 0}
#audience .audlist:nth-child(2){border-top-color:var(--cobalt)}
#audience .audlist h3{font-size:.7rem;color:var(--ink);margin-bottom:1.1rem}
#audience .audrow{font-size:1rem;padding:.7rem .1rem}
#audience .audbar{height:calc(8 * var(--pu));background:#d1cbc0;overflow:visible}
#audience .audbar i{position:relative}
#audience .audbar i::after{content:"";position:absolute;right:calc(-4 * var(--pu));top:calc(-3 * var(--pu));width:calc(8 * var(--pu));height:calc(14 * var(--pu));background:var(--ink);}
#audience .svcmore{background:var(--ink);color:white;border:0;padding:1.6rem 1.7rem}
/* WAYS TO WORK: two doors / two visual worlds */
#ways{background:#d8d1c4;padding-top:clamp(5rem,10vw,9rem)}
#ways .tracks{gap:0;align-items:stretch;border:1.5px solid var(--ink);}
#ways .track{border:0;padding:clamp(1.5rem,3vw,2.4rem);min-height:calc(500 * var(--pu));display:flex;flex-direction:column;background:#f5f1e8;position:relative;overflow:hidden}
#ways .track:first-child{border-right:1.5px solid var(--ink)}
#ways .track--b{background:var(--cobalt);color:white}
#ways .track::before{content:"01";position:absolute;right:-.02em;top:-.08em;font-family:var(--sans);font-size:clamp(7rem,18vw,15rem);font-weight:800;line-height:1;color:rgba(21,20,15,.055);letter-spacing:-.08em}
#ways .track--b::before{content:"02";color:rgba(255,255,255,.10)}
#ways .track__tag{align-self:flex-start;background:var(--ink);position:relative;z-index:2;}
#ways .track--b .track__tag{background:white;color:var(--cobalt)}
#ways .track h3{margin:1.05rem 0 .8rem;max-width:13ch;min-height:2.85em;display:flex;align-items:flex-end;position:relative;z-index:2;}
#ways .track>p{font-size:.95rem;line-height:1.5;min-height:4.5em;position:relative;z-index:2}
#ways .track--b>p,#ways .track--b ol span{color:rgba(255,255,255,.86)}
#ways .track ol{margin-top:1.8rem;border-top:1px solid currentColor;padding-top:.6rem;position:relative;z-index:2}
#ways .track--b ol{border-color:rgba(255,255,255,.55)}
#ways .track ol li{padding:.78rem 0;border-bottom:1px solid rgba(21,20,15,.18)}
#ways .track--b ol li{border-color:rgba(255,255,255,.22)}
#ways .typeindex{margin-top:4rem;background:var(--card);border:1.5px solid var(--ink);padding:1.2rem 1.4rem;}
#ways .typeindex__grid{column-gap:1.3rem}
#ways .typeitem{font-size:clamp(1rem,1.8vw,1.35rem);transition:transform .2s,color .2s}
#ways .typeitem:hover{color:var(--cobalt);transform:translateX(calc(8 * var(--pu)))}
#ways .svcmore{border:2px dashed var(--ink);background:transparent;}
/* CONTACT: make the final brief feel like a signed-off production form */
#contact{position:relative;overflow:hidden}
#contact::before{content:"BRIEF";position:absolute;right:-.05em;bottom:-.08em;font-family:var(--sans);font-weight:800;font-size:clamp(10rem,30vw,28rem);line-height:.7;color:rgba(255,255,255,.025);letter-spacing:-.07em;pointer-events:none}
#contact .form{padding:clamp(1.4rem,3vw,2.2rem)}
#contact .form::before{display:none}
.rv{opacity:0;transform:translateY(calc(34 * var(--pu))) ;clip-path:inset(0 0 12% 0);transition:opacity .65s ease,transform .75s cubic-bezier(.16,1,.3,1),clip-path .75s cubic-bezier(.16,1,.3,1)}
.rv.in{opacity:1;transform:none;clip-path:inset(0)}@media(max-width:819px){
  #proof .proofgrid{grid-template-columns:1fr}
  #audience .aud{display:grid!important;grid-template-columns:1fr 1fr!important}
  #audience .aud__cell:nth-child(n){grid-column:span 1;min-height:calc(175 * var(--pu));transform:none}
  #audience .aud__cell:nth-child(1),#audience .aud__cell:nth-child(2){min-height:calc(205 * var(--pu))}
  #ways .track{min-height:auto}
  #ways .track h3,#ways .track>p{min-height:0}
}
@media(max-width:640px){
  #work .deckcard:nth-child(n){width:clamp(calc(190 * var(--pu)),62vw,calc(260 * var(--pu)))}
  #audience .aud{grid-template-columns:1fr!important}
  #audience .aud__cell:nth-child(n){grid-column:1!important;min-height:calc(165 * var(--pu))}
  #ways .tracks{display:block;}
  #ways .track:first-child{border-right:0;border-bottom:1.5px solid var(--ink)}
  #ways .track h3{max-width:none;}
}
@media(max-width:640px){
  .head{gap:.7rem;margin-bottom:1.7rem}
}
@media (prefers-reduced-motion:reduce){.rv{opacity:1;transform:none;clip-path:none}}
.topbar .navlinks{display:none}
.topbar .navtoggle{margin-left:auto}
@media(min-width:1024px){
  .topbar .navlinks{display:flex}
}
#work .head{margin-bottom:clamp(1.5rem,3vw,2.35rem)}
#work .head::after{display:none}
#work .cat{padding-block:clamp(.35rem,.8vw,.65rem)}
#work .deckwrap{margin-top:-.45rem}
#work .deck{padding:calc(132 * var(--pu)) var(--fpad) calc(140 * var(--pu))}
@media(max-width:640px){

  #work .head{margin-bottom:1.35rem}
  #work .cat{padding-block:.3rem}
  #work .deck{padding:calc(104 * var(--pu)) var(--fpad) calc(104 * var(--pu))}
}

#work .cat:last-child{padding-bottom:0}
#work .cat:last-child .deck{padding-bottom:calc(16 * var(--pu))}
#contact .contact__grid > div{padding-top:0}
#contact .form{transform:none;margin-top:0}
@media(max-width:640px){

  #work .cat:last-child .deck{padding-bottom:calc(10 * var(--pu))}
}
/* TYPOGRAPHY + PORTFOLIO RHYTHM PASS */
.h-lg{max-width:none;}
.head{
  align-items:baseline;
  margin-bottom:clamp(2rem,4.5vw,3.4rem);
}
.head .label{color:var(--cobalt);margin-bottom:.42rem;}
#work .head::after,
#proof .head::after,
#audience .head::after,
#ways .head::after{
  display:none;
}

#work .head{
  margin-bottom:clamp(1.4rem,3.4vw,2.5rem);
}
#work .h-lg{max-width:none;}
#work .cat{
  padding-block:clamp(.65rem,1.4vw,1.05rem);
}
#work .cat + .cat{
  border-top:0;
  margin-top:clamp(.45rem,1.2vw,.95rem);
}
#work .cat__head{
  border-top:0;
  padding-top:0;
  align-items:center;
  margin-bottom:.55rem;
}
#work .cat__title{gap:.48rem;}
#work .cat__title .idx{
  font-size:.63rem;
  letter-spacing:.08em;
}
#work .cat__note{
  background:transparent;
  border:0;
  padding:0;
  font-size:.56rem;
  letter-spacing:.06em;
  color:var(--ink-60);
}
#work .draghint{
  color:var(--ink-60);
}
#work .deckwrap{
  margin-top:0;
}
#work .deck{
  gap:clamp(.65rem,1.2vw,1rem);
  padding:calc(58 * var(--pu)) var(--fpad) calc(70 * var(--pu));
}
#work .deckcard,
#work .deckcard:nth-child(4n+1),
#work .deckcard:nth-child(4n+2),
#work .deckcard:nth-child(4n+3),
#work .deckcard:nth-child(4n){
  width:clamp(calc(188 * var(--pu)),19.5vw,calc(268 * var(--pu)));
}
#work .deckcard__frame{
  border-width:calc(5 * var(--pu));
}
#work .deckcard__cap{
  padding:.5rem .58rem .56rem;
}
#work .deck:not(.is-focused) .deckcard:hover,
#work .deck:not(.is-focused) .deckcard:focus-visible{
  transform:translateY(calc(-10 * var(--pu))) scale(1.03)!important;
}#work .deck.is-focused .deckcard.is-open{
  transform:translateY(calc(-4 * var(--pu))) scale(1.16)!important;
}@media(max-width:899px){
  .h-lg{max-width:none;}
}
@media(max-width:640px){
  #work .cat{
    padding-block:.55rem;
  }
  #work .cat__head{
    gap:.45rem;
    margin-bottom:.3rem;
  }
  #work .cat__note{
    display:block;
    width:100%;
    margin-left:1.62rem;
  }
  #work .deck{
    padding:calc(42 * var(--pu)) var(--fpad) calc(54 * var(--pu));
  }
  #work .deckcard:nth-child(n){
    width:clamp(calc(170 * var(--pu)),58vw,calc(235 * var(--pu)));
  }
}
/* DENSITY PASS: remove wasted vertical space */
.band{
  padding-block:clamp(2.25rem,5vw,4.2rem);
}

#work .wrap{
  max-width:calc(1280 * var(--pu));
}
#work .head{
  margin-bottom:clamp(1rem,2.4vw,1.7rem);
}
#work .cat{
  padding-block:0;
}
#work .cat + .cat{
  margin-top:.65rem;
}
#work .cat__head{
  margin-bottom:0;
}
#work .cat__ctrls{
  margin-top:.45rem;
}
#work .deckwrap{
  min-width:0;
}
#work .deckwrap::before,
#work .deckwrap::after{
  display:none;
}
#work .deck{
  padding:calc(14 * var(--pu)) 0 calc(20 * var(--pu));
  margin-inline:0;
}
#work .deckcard,
#work .deckcard:nth-child(4n+1),
#work .deckcard:nth-child(4n+2),
#work .deckcard:nth-child(4n+3),
#work .deckcard:nth-child(4n){
  width:clamp(calc(126 * var(--pu)),12vw,calc(156 * var(--pu)));
}
#work .deckcard__frame{
  border-width:calc(4 * var(--pu));
}
#work .deckcard__frame::before{
  height:calc(9 * var(--pu));
  top:calc(-6 * var(--pu));
}
#work .deckcard__cap{
  padding:.4rem .45rem .45rem;
}
#work .deckcard__badge{
  width:calc(20 * var(--pu));
  height:calc(20 * var(--pu));
  right:.34rem;
  bottom:.34rem;
}
#work .deckcard__badge::after{
  border-left-width:calc(6 * var(--pu));
  border-top-width:calc(4 * var(--pu));
  border-bottom-width:calc(4 * var(--pu));
}
#work .deck:not(.is-focused) .deckcard:hover,
#work .deck:not(.is-focused) .deckcard:focus-visible{
  transform:translateY(calc(-5 * var(--pu))) scale(1.02)!important;
  filter:drop-shadow(0 0 .45em rgba(0,31,147,.32));
}#work .deck.is-focused .deckcard.is-open{
  transform:translateY(-2px) scale(1.06)!important;
}#work .cat__close{top:.25rem;right:.25rem;}
@media(min-width:820px){
  #work .cat{
    display:grid;
    grid-template-columns:minmax(calc(142 * var(--pu)),calc(176 * var(--pu))) minmax(0,1fr);
    column-gap:clamp(.9rem,2vw,1.45rem);
    align-items:start;
    background:color-mix(in srgb, var(--card) 44%, transparent);
    border:1px solid color-mix(in srgb, var(--ink) 15%, transparent);
    padding:.65rem .75rem .45rem;
  }
  #work .cat__head{
    display:block;
    padding-top:.2rem;
  }
  #work .cat__title{display:block;}
  #work .cat__title .idx{
    display:block;
    margin-bottom:.32rem;
  }
  #work .cat__note{
    display:block;
    margin-top:.34rem;
    line-height:1.35;
  }
  #work .draghint{
    font-size:.52rem;
  }
}
#proof,
#audience,
#ways,
#contact{
  padding-block:clamp(2.3rem,5vw,4.2rem);
}
#proof .head,
#audience .head,
#ways .head,
#contact .head{
  margin-bottom:clamp(1.35rem,3vw,2.2rem);
}
#proof .proofgrid{
  margin-top:clamp(1.35rem,2.6vw,2rem);
}
#proof .brands div{min-height:calc(48 * var(--pu));padding-block:.75rem;}
#proof .case{
  padding:clamp(1.25rem,2.7vw,2.1rem);
}
#proof .case__nums{
  margin-top:1.15rem;
}
#audience{
  padding-bottom:clamp(2.6rem,5vw,4.4rem);
}
#audience .aud__cell{
  min-height:calc(132 * var(--pu));
}
#audience .aud__cell:nth-child(1),
#audience .aud__cell:nth-child(2){
  min-height:calc(175 * var(--pu));
}
#audience .audsplit{
  margin-top:1.25rem;
}
#audience .svcmore{
  margin-top:1.25rem!important;
  padding:1.15rem 1.3rem;
}
#ways{
  padding-top:clamp(2.6rem,5vw,4.6rem);
}
#ways .tracks{
  margin-bottom:1.55rem;
}
#ways .track{
  min-height:0;
  padding:clamp(1.2rem,2.4vw,1.75rem);
}
#ways .track h3{min-height:0;margin:.75rem 0 .55rem;}
#ways .track>p{
  min-height:0;
}
#ways .track ol{
  margin-top:1rem;
}
#ways .track ol li{
  padding:.55rem 0;
}
#ways .typeindex{
  margin-top:1.55rem;
  padding:.95rem 1.1rem;
}
#ways .svcmore{
  margin-top:1.35rem!important;
}
#contact .contact__grid{
  gap:clamp(1.4rem,3vw,2.1rem);
  margin-bottom:clamp(1rem,2vw,1.5rem);
}
#contact .form{
  padding:clamp(2.3rem,4.8vw,3.3rem);
}
#contact .form select{
  appearance:none;
  -webkit-appearance:none;
  padding-right:3rem;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 26'%3E%3Cpath d='M7 1v23M1.5 18 7 24l5.5-6' fill='none' stroke='%2315140F' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-position:calc(100% - 1.15rem) 50%;
  background-size:calc(10 * var(--pu)) calc(19 * var(--pu));
  background-repeat:no-repeat;
}
@media(max-width:819px){
  #work .cat{
    background:color-mix(in srgb, var(--card) 35%, transparent);
    border:1px solid color-mix(in srgb, var(--ink) 13%, transparent);
    padding:.7rem .75rem .45rem;
  }
  #work .deck{
    padding:calc(16 * var(--pu)) 0 calc(18 * var(--pu));
  }
}
@media(max-width:640px){
  .band,
  #proof,
  #audience,
  #ways,
  #contact{
    padding-block:2.2rem;
  }
  #work .cat + .cat{
    margin-top:.55rem;
  }
  #work .cat__note{
    margin-left:0;
  }
  #work .deckcard:nth-child(n){
    width:clamp(calc(132 * var(--pu)),42vw,calc(170 * var(--pu)));
  }
  #proof .case__nums{
    grid-template-columns:1fr;
  }
  #audience .aud__cell:nth-child(n){
    min-height:calc(125 * var(--pu));
  }
}
/* VISUAL COLLAGE PASS: reference-inspired, same content */
:root{
  --mint:#A9FFF0;
  /* Canonical pink sampled from the supplied collage paper. */
  --pink:#FCC1D6;
  --soft-pink:var(--pink);
  /* Supplied pink-paper image, lifted only slightly with a white wash. */
  --pink-paper:linear-gradient(rgb(255 255 255 / .055),rgb(255 255 255 / .055)),url("../assets/pink-paper-reference.png");
  --green:#145C35;
  --wood:#6F3F24;
  --cream:#F8F2E8;
}
body{background-color:#e8e1d5;background-image:
    radial-gradient(circle at 9% 13%, color-mix(in srgb, var(--pink) 26%, transparent) 0 1px, transparent 1.8px),
    radial-gradient(circle at 86% 18%, rgba(169,255,240,.32) 0 1.5px, transparent 2px),
    linear-gradient(90deg, rgba(21,20,15,.035) 1px, transparent 1px),
    linear-gradient(0deg, rgba(21,20,15,.025) 1px, transparent 1px);background-size:calc(29 * var(--pu)) calc(29 * var(--pu)), calc(37 * var(--pu)) calc(37 * var(--pu)), calc(42 * var(--pu)) calc(42 * var(--pu)), calc(42 * var(--pu)) calc(42 * var(--pu));}
.navtoggle{background:var(--mint);}
.binder-tab--top{
  background:var(--pink-paper) center/cover;
  color:var(--ink);
}
.binder-tab--side{
  background:var(--mint);
  color:var(--ink);
}
.editorial-photo::before{
  background:
    radial-gradient(circle at 75% 24%, color-mix(in srgb, var(--pink) 42%, transparent), transparent 24%),
    linear-gradient(135deg,#d9d5cb 0 34%,#f8f2e8 34% 58%,#b9afa0 58% 100%);
}
#work{
  background:
    linear-gradient(180deg,#f0eadf 0,#e6ded0 100%);
}
#work::after{
  content:"";
  position:absolute;
  right:-5vw;
  top:5.5rem;
  width:28vw;
  height:28vw;
  min-width:calc(220 * var(--pu));
  min-height:calc(220 * var(--pu));
  z-index:-1;
  pointer-events:none;
  background:
    radial-gradient(circle at 50% 50%, transparent 0 34%, color-mix(in srgb, var(--pink) 42%, transparent) 35% 36%, transparent 37%),
    conic-gradient(from 20deg, rgba(169,255,240,.45), color-mix(in srgb, var(--pink) 30%, transparent), transparent 56%);
  border-radius:50%;
  opacity:.8;
}
#work .sortswitch{background:var(--cream);border:1.5px solid var(--ink);padding:.48rem .65rem;}
#work .cat{
  overflow:hidden;
  position:relative;
  border:1.5px solid rgba(21,20,15,.32);
}
#work .cat:nth-of-type(5n+1){
  background:linear-gradient(90deg,rgba(169,255,240,.42),rgba(248,242,232,.72));
}
#work .cat:nth-of-type(5n+2){
  background:linear-gradient(90deg,color-mix(in srgb, var(--pink) 34%, transparent),rgba(248,242,232,.72));
}
#work .cat:nth-of-type(5n+3){
  background:linear-gradient(90deg,rgba(20,92,53,.18),rgba(248,242,232,.72));
}
#work .cat:nth-of-type(5n+4){
  background:linear-gradient(90deg,rgba(111,63,36,.17),rgba(248,242,232,.74));
}
#work .cat::before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:calc(7 * var(--pu));
  background:repeating-linear-gradient(0deg,var(--ink) 0 calc(7 * var(--pu)),transparent calc(7 * var(--pu)) calc(15 * var(--pu)));
  opacity:.72;
}
#work .cat::after{
  content:"";
  position:absolute;
  right:clamp(.65rem,1.5vw,1.1rem);
  top:.55rem;
  width:calc(44 * var(--pu));
  height:calc(12 * var(--pu));
  background:rgba(255,255,255,.48);
  border:1px solid rgba(21,20,15,.2);
  transform:rotate(-3deg);
  pointer-events:none;
}
#work .cat__title{color:var(--ink);}
#work .cat__title .idx{
  display:inline-grid;
  place-items:center;
  width:2.25em;
  height:2.25em;
  color:var(--ink);
  background:var(--pink-paper) center/cover;
  border:1.5px solid var(--ink);
  border-radius:50%;
}
#work .cat:nth-of-type(odd) .cat__title .idx{
  background:var(--mint);
}
#work .cat__note{
  color:rgba(21,20,15,.62);
}
#work .draghint{
  background:rgba(248,242,232,.62);
  border:1px solid rgba(21,20,15,.22);
  padding:.28rem .42rem;
}
#work .deckcard__frame{
  background:#ddd5c8;
  outline:1px solid rgba(21,20,15,.65);
}
#work .deckcard:nth-child(6n+1) .deckcard__frame{
  background:var(--mint);
}
#work .deckcard:nth-child(6n+2) .deckcard__frame{
  background:var(--pink-paper) center/cover;
}
#work .deckcard:nth-child(6n+3) .deckcard__frame{
  background:#d9e2cf;
}
#work .deckcard:nth-child(6n+4) .deckcard__frame{
  background:#efe2cf;
}
#work .deckcard:nth-child(6n+5) .deckcard__frame{
  background:#ded8f0;
}
#work .deckcard__ph{background:
    linear-gradient(135deg, transparent 0 43%, rgba(255,255,255,.38) 43% 57%, transparent 57%),
    radial-gradient(circle at 82% 18%, rgba(21,20,15,.22) 0 calc(8 * var(--pu)), transparent calc(9 * var(--pu))),
    repeating-linear-gradient(0deg,rgba(21,20,15,.045) 0 1px,transparent 1px calc(8 * var(--pu)));}
#work .deckcard:nth-child(4n+2) .deckcard__ph{
  background:
    radial-gradient(circle at 20% 22%, rgba(255,255,255,.75) 0 calc(12 * var(--pu)), transparent calc(13 * var(--pu))),
    linear-gradient(145deg,rgba(20,92,53,.72) 0 38%,rgba(248,242,232,.42) 38% 62%,color-mix(in srgb, var(--pink) 42%, transparent) 62%);
}
#work .deckcard:nth-child(4n+4) .deckcard__ph{
  background:
    repeating-linear-gradient(90deg,rgba(255,255,255,.42) 0 calc(17 * var(--pu)),rgba(21,20,15,.045) calc(17 * var(--pu)) calc(18 * var(--pu))),
    var(--mint);
}
#work .deckcard__cap{
  border-color:rgba(21,20,15,.78);
}
#work .deckcard:nth-child(even) .deckcard__cap{
  background:#fff8d8;
}
#work .deckcard:nth-child(3n) .deckcard__cap{
  background:var(--pink-paper) center/cover;
}
#work .deckcard:nth-child(5n) .deckcard__cap{
  background:#e5fff9;
}
#proof{
  background:
    radial-gradient(circle at 8% 12%, color-mix(in srgb, var(--pink) 18%, transparent) 0 calc(80 * var(--pu)), transparent calc(82 * var(--pu))),
    radial-gradient(circle at 92% 18%, rgba(169,255,240,.18) 0 calc(96 * var(--pu)), transparent calc(98 * var(--pu))),
    var(--ink);
}
#proof .brands{
  transform:none;
  background:none;
  border:0;
  overflow:visible;
}
#proof .brands div{
  min-height:clamp(calc(54 * var(--pu)),5vw,calc(70 * var(--pu)));
  padding:.9rem .65rem;
  border:0;
  overflow:visible;
  background-color:transparent;
  background-repeat:no-repeat;
  background-position:center;
  background-size:100% 100%;
  color:var(--ink);
  font-size:clamp(.76rem,1vw,.96rem);
  position:relative;
}
#proof .brands div:nth-child(1){background-image:url("../assets/brand-sticker-01.png");transform:rotate(-.35deg)}
#proof .brands div:nth-child(2){background-image:url("../assets/brand-sticker-02.png");color:#fff;transform:rotate(.4deg)}
#proof .brands div:nth-child(3){background-image:url("../assets/brand-sticker-03.png");transform:rotate(-.25deg)}
#proof .brands div:nth-child(4){background-image:url("../assets/brand-sticker-04.png");color:#fff;transform:rotate(.45deg)}
#proof .brands div:nth-child(5){background-image:url("../assets/brand-sticker-05.png");transform:rotate(-.3deg)}
#proof .brands div:nth-child(6){background-image:url("../assets/brand-sticker-06.png");color:#fff;transform:rotate(.35deg)}
#proof .brands div:nth-child(7){background-image:url("../assets/brand-sticker-07.png");color:var(--cobalt);transform:rotate(-.2deg)}
#proof .brands div:nth-child(8){background-image:url("../assets/brand-sticker-03.png");transform:rotate(.3deg)}
#proof .brands div:nth-child(9){background-image:url("../assets/brand-sticker-04.png");color:#fff;transform:rotate(-.4deg)}
#proof .brands div:nth-child(10){background-image:url("../assets/brand-sticker-01.png");transform:rotate(.25deg)}#proof .case::after,
#proof .quote::after,
.aud__cell::after,
#ways .track::after,
#contact .form::after{
  content:"";
  position:absolute;
  pointer-events:none;
  width:calc(62 * var(--pu));
  height:calc(15 * var(--pu));
  background:rgba(255,255,255,.5);
  border:1px solid rgba(21,20,15,.18);
  transform:rotate(-4deg);
}
#proof .case::after{
  left:2rem;
  top:calc(-8 * var(--pu));
}
#proof .quote{
  transform:rotate(.7deg);
}
#proof .quote:nth-child(2){
  transform:rotate(-.7deg);
}
#proof .quote::after{
  right:1.1rem;
  top:calc(-8 * var(--pu));
}
#audience{
  background:
    linear-gradient(180deg,var(--pink) 0 34%,#ece5d9 34% 100%);
}#audience .aud__cell:nth-child(1){
  background:#fff8ed;
}
#audience .aud__cell:nth-child(2){
  background:var(--pink-paper) center/cover;
  color:var(--ink);
}
#audience .aud__cell:nth-child(3){
  background:var(--mint);
}
#audience .aud__cell:nth-child(4){
  background:#f6efe3;
}
#audience .aud__cell--blue .aud__k,
#audience .aud__cell--blue .aud__n{
  color:rgba(21,20,15,.72);
}
.aud__cell::after{
  right:1.1rem;
  top:calc(-7 * var(--pu));
}
#audience .audlist{
  background:rgba(248,242,232,.64);
  border:1.5px solid var(--ink);
  padding:1rem 1.05rem;
}
#audience .audbar{
  background:rgba(21,20,15,.14);
}
#audience .svcmore{
  background:var(--green);
}
#ways{
  background:
    linear-gradient(90deg,#f1e7d9 0 50%,var(--pink) 50% 100%);
}
#ways .tracks{
  border-radius:0 calc(24 * var(--pu)) calc(24 * var(--pu)) 0;
  overflow:visible; /* the painted dashes hang outside the pair */
}
#ways .track{
  background:#f8f2e8;
}
#ways .track--b{
  background:var(--green);
  color:#fff;
}
#ways .track::after{
  right:1.6rem;
  top:.8rem;
  transform:rotate(5deg);
}
#ways .typeindex{
  background:#eafffb;
}
#ways .typeitem i{
  background:var(--pink-paper) center/cover;
}
#contact{
  background:
    radial-gradient(circle at 16% 22%, color-mix(in srgb, var(--pink) 20%, transparent) 0 calc(92 * var(--pu)), transparent calc(94 * var(--pu))),
    radial-gradient(circle at 88% 76%, rgba(169,255,240,.16) 0 calc(120 * var(--pu)), transparent calc(122 * var(--pu))),
    var(--ink);
}
/* The enquiry card keeps its field labels; no numbered step markers. */
#contact .form{
  position:relative;
  border-color:var(--ink);
}
#contact .form label{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  align-items:center;
  margin-bottom:clamp(.6rem,1.4vw,.95rem);
}
#contact .form label::before{
  content:none;
  display:none;
}
#contact .form .label{
  grid-column:1;
  grid-row:1;
  margin-bottom:.3rem;
}
#contact .form input,
#contact .form select,
#contact .form textarea{
  grid-column:1;
  grid-row:2;
  padding:.62rem .8rem;
}
#contact .form textarea{min-height:calc(72 * var(--pu))}
/* the "What are you after?" list is drawn in the page (site.js) so it tilts with the paper.
   The real <select> stays underneath for the form value and for touch screens. */
#contact .form label.has-pick{position:relative}
#contact .form .has-pick select{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
#contact .form .pick{
  grid-column:1;grid-row:2;
  display:block;width:100%;text-align:left;cursor:pointer;
  padding:.62rem 2.1rem .62rem .8rem;border:0;border-radius:0;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  background:var(--paper-2) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 26'%3E%3Cpath d='M7 1v23M1.5 18 7 24l5.5-6' fill='none' stroke='%2315140F' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") calc(100% - 1.15rem) 50%/calc(10 * var(--pu)) calc(19 * var(--pu)) no-repeat;
  color:var(--ink);font:inherit;
}
#contact .form .pick:focus-visible{outline:2px solid var(--cobalt);outline-offset:2px}
/* the open list hangs below the field, over the envelope's front pocket (z 3). It lives in
   .pick__layer — a box site.js lays exactly over the paper with the paper's own tilt — because
   anything inside the paper (z 2) can never rise above the pocket. */
#contact .pick__layer{position:absolute;z-index:4;pointer-events:none}
#contact .pick__list{
  position:absolute;pointer-events:auto;
  margin:0;padding:.25rem 0;list-style:none;font-size:var(--fs-body);line-height:1.4;
  background:#F7F5EF;border:1.5px solid var(--ink);
  box-shadow:0 calc(10 * var(--pu)) calc(24 * var(--pu)) rgba(21,20,15,.18);
}
#contact .pick__list[hidden]{display:none}
#contact .pick__list li{padding:.5rem .8rem;cursor:pointer;color:var(--ink)}
#contact .pick__list li[aria-selected="true"]{font-weight:700}
#contact .pick__list li.is-active{background:var(--cobalt);color:#fff}
#contact .form__spine{
  position:absolute;
  right:.5rem;
  /* the form is a grid, so the spine can run from the sheet's top edge to the
     end of the Details row (line 5), less that row's margin */
  grid-column:auto;
  grid-row:auto / 5;
  top:0;
  bottom:clamp(.6rem,1.4vw,.95rem);
  border-left:1px solid var(--ink);
  padding-left:.35rem;
  padding-top:clamp(.7rem,1.7vw,1.2rem);
  writing-mode:vertical-rl;
  font-size:var(--t-11);
  font-weight:600;
  letter-spacing:var(--ls-label);
  text-transform:uppercase;
}
#contact .form__send{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:1rem;
  margin-top:clamp(.5rem,1.4vw,1rem);
}
#contact .contact__tags{
  margin:clamp(.2rem,.5vw,.4rem) 0 clamp(.45rem,.9vw,.7rem);
  max-width:none;
  text-align:left;
  color:var(--ink);
}
#contact .form::after{
  left:1.4rem;
  top:calc(-8 * var(--pu));
}
#contact a.big{
  color:var(--mint)!important;
  border-bottom-color:transparent;
}
@media(max-width:760px){
  #work .cat::before{
    width:calc(5 * var(--pu));
  }
  #work .cat::after{
    width:calc(34 * var(--pu));
  }
  #ways{
    background:#f1e7d9;
  }
  #ways .tracks{
    border-radius:0 calc(18 * var(--pu)) calc(18 * var(--pu)) 0;
  }
}
/* AUDIENCE SIZE + LABEL PASS */
#audience .aud__cell::before{
  content:none !important;
  display:none !important;
  counter-increment:none !important;
}
#audience .aud{
  gap:clamp(.45rem,1vw,.75rem);
}
#audience .aud__cell{
  min-height:calc(112 * var(--pu)) !important;
  padding:clamp(.7rem,1.25vw,.95rem) clamp(.8rem,1.4vw,1.05rem);
}
#audience .aud__cell:nth-child(1),
#audience .aud__cell:nth-child(2){
  min-height:calc(138 * var(--pu)) !important;
}
#audience .aud__k,
#audience .audlist h3{
  line-height:1.05;
  letter-spacing:0;
}
#audience .aud__n{margin-top:.35rem;}
#audience .audlist{
  padding:.8rem .9rem;
}
#audience .audlist h3{
  margin-bottom:.75rem;
}
#audience .audrow{
  padding-block:.48rem;
}
@media(max-width:899px){
  #audience .aud__cell:nth-child(n){
    min-height:calc(118 * var(--pu)) !important;
  }
  #audience .aud__cell:nth-child(1),
  #audience .aud__cell:nth-child(2){
    min-height:calc(132 * var(--pu)) !important;
  }
}
@media(max-width:640px){
  #audience .aud__cell:nth-child(n){
    min-height:calc(108 * var(--pu)) !important;
  }}
/* PORTFOLIO ROW SCALE + CLICK SHADOW PASS */
#work .deck{
  padding:calc(24 * var(--pu)) 0 calc(34 * var(--pu));
}
#work .deckcard,
#work .deckcard:nth-child(4n+1),
#work .deckcard:nth-child(4n+2),
#work .deckcard:nth-child(4n+3),
#work .deckcard:nth-child(4n){
  width:clamp(calc(168 * var(--pu)),16vw,calc(228 * var(--pu))) !important;
}
#work .deck.is-focused .deckcard.is-open{
  transform:translateY(calc(-3 * var(--pu))) scale(1.05) !important;
}
#work .deck.is-focused .deckcard.is-open .deckcard__frame{
  box-shadow:calc(4 * var(--pu)) calc(5 * var(--pu)) 0 rgba(21,20,15,.28) !important;
}
#work .deck:not(.is-focused) .deckcard:hover .deckcard__frame,
#work .deck:not(.is-focused) .deckcard:focus-visible .deckcard__frame{
  box-shadow:calc(7 * var(--pu)) calc(8 * var(--pu)) 0 rgba(21,20,15,.2) !important;
}
@media(max-width:640px){
  #work .deck{
    padding:calc(20 * var(--pu)) 0 calc(28 * var(--pu));
  }
  #work .deckcard:nth-child(n){
    width:clamp(calc(154 * var(--pu)),48vw,calc(205 * var(--pu))) !important;
  }
}
/* REMOVE VISIBLE DRAG HINTS */
#work .cat__ctrls,
#work .draghint{
  display:none !important;
}
/* AUDIENCE EQUAL STAT BOXES */
#audience .aud{
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
}
#audience .aud__cell:nth-child(n){
  grid-column:auto !important;
  min-height:calc(132 * var(--pu)) !important;
}
#audience .aud__cell:nth-child(1),
#audience .aud__cell:nth-child(2),
#audience .aud__cell:nth-child(3),
#audience .aud__cell:nth-child(4){
  min-height:calc(132 * var(--pu)) !important;
}
@media(max-width:640px){
  #audience .aud{
    grid-template-columns:1fr !important;
  }
  #audience .aud__cell:nth-child(n){
    min-height:calc(118 * var(--pu)) !important;
  }
}
/* AUDIENCE SMALLER EQUAL STAT BOXES */
#audience .aud{
  gap:.55rem !important;
}
#audience .aud__cell:nth-child(n){
  min-height:calc(98 * var(--pu)) !important;
  padding:.58rem .72rem !important;
  justify-content:center !important;
}
#audience .aud__v{margin-top:.28rem !important;}
#audience .aud__n{margin-top:.22rem !important;}
@media(max-width:640px){
  #audience .aud__cell:nth-child(n){
    min-height:calc(92 * var(--pu)) !important;
    padding:.55rem .68rem !important;
  }
}
/* PORTFOLIO SCALE + EDGE ALIGNMENT */
#work .cat{
  width:100%;
  margin-left:0;
  position:relative;
  left:auto;
  transform:none;
}
#work .deckcard,
#work .deckcard:nth-child(4n+1),
#work .deckcard:nth-child(4n+2),
#work .deckcard:nth-child(4n+3),
#work .deckcard:nth-child(4n){
  width:clamp(calc(220 * var(--pu)),21vw,calc(300 * var(--pu))) !important;
}
@media(max-width:640px){
  #work .deckcard:nth-child(n){
    width:clamp(calc(184 * var(--pu)),58vw,calc(240 * var(--pu))) !important;
  }
}
/* SECTION TITLE TREATMENT */
.h-lg .it{color:var(--cobalt);}
@media(min-width:820px){
  #work .h-lg,
  #ways .h-lg,
  #audience .h-lg{max-width:none;}
  #work .head .sortswitch{margin-left:clamp(calc(57 * var(--pu)),4.48vw,calc(61 * var(--pu)))}
  #audience .head .meta{margin-left:clamp(calc(50 * var(--pu)),3.92vw,calc(53 * var(--pu)))}
}
/* GREY SCREENS + CLEANER SHAPES */
#work .deckcard__frame,
#work .deckcard__ph{
  background:
    repeating-linear-gradient(0deg,rgba(21,20,15,.045) 0 1px,transparent 1px calc(8 * var(--pu))),
    linear-gradient(135deg,#d2d1cc,#b8b7b2) !important;
}
#work .deckcard__ph{color:#66635b;}
#work::after,
#proof::after,
#contact::after{
  display:none;
}
#proof,
#contact{
  background:var(--ink);
}
#cat-fashion .deckwrap,
#cat-fashion .cat__head{
  position:relative;
}
#cat-fashion .cat__head{z-index:3}
#cat-fashion .deckwrap{z-index:2}
@media(max-width:640px){
  #work .h-lg{max-width:none;}
  #proof .h-lg,
  #audience .h-lg,
  #contact .h-lg{max-width:none;}
  #work,
  #proof,
  #audience,
  #ways,
  #contact{
    scroll-margin-top:calc(72 * var(--pu));
  }
}
/* ALTERNATING PORTFOLIO ROWS */
@media(min-width:820px){
  #work #byNiche > .cat:nth-child(even){
    grid-template-columns:minmax(0,1fr) minmax(calc(142 * var(--pu)),calc(176 * var(--pu)));
  }
  #work #byNiche > .cat:nth-child(even) .cat__head{
    grid-column:2;
    grid-row:1;
    text-align:right;
  }
  #work #byNiche > .cat:nth-child(even) .deckwrap{
    grid-column:1;
    grid-row:1;
  }
  #work #byNiche > .cat:nth-child(even)::before{
    left:auto;
    right:0;
  }
  #work #byNiche > .cat:nth-child(even)::after{
    left:clamp(.65rem,1.5vw,1.1rem);
    right:auto;
  }
}
/* NAVIGATION + LEGIBILITY PASS */
.deckarrow{position:absolute;top:38%;z-index:9;width:calc(38 * var(--pu));height:calc(38 * var(--pu));display:grid;place-items:center;border:1.5px solid var(--ink);background:var(--card);color:var(--ink);cursor:pointer;opacity:0;transition:opacity .2s ease,background .15s ease,color .15s ease;}
.deckwrap:hover .deckarrow,
.deckarrow:focus-visible{opacity:1}
.deckarrow:hover{background:var(--cobalt);border-color:var(--cobalt);color:#fff}
.deckarrow:active{background:var(--cobalt-ink);border-color:var(--cobalt-ink);color:#fff}
.deckarrow--prev{left:clamp(.35rem,1.2vw,.9rem)}
.deckarrow--next{right:clamp(.35rem,1.2vw,.9rem)}
@media(hover:none){
  .deckarrow{opacity:.92;}
}
/* FLAT PASS */
#work .cat::before{display:none}
#work .deckcard__frame,
#work .deckcard__ph{
  background:linear-gradient(135deg,#d2d1cc,#b8b7b2) !important;
}
/* WAYS TO WORK: torn-paper backdrop */
#ways .track,
#ways .track--b{
  background:transparent;
  color:var(--ink);
}
#ways .track:first-child{border-right:0}
#ways .track--b>p,
#ways .track--b ol span{color:var(--ink)}
#ways .track--b ol{border-color:rgba(21,20,15,.55)}
#ways .track--b ol li{border-color:rgba(21,20,15,.18)}
#ways .track--b .track__tag{background:var(--ink);color:#fff}
#ways .track--b::before{color:rgba(21,20,15,.055)}
#ways .tracks{
  border:0;
  padding-inline:0;
}
#ways .track{padding-inline:0}
@media(min-width:820px){
  #ways .tracks{
    background-image:
      linear-gradient(180deg,
        #f1e7d9 0%,
        rgba(241,231,217,.72) 1.2%,
        rgba(241,231,217,.28) 2.4%,
        rgba(241,231,217,0) 4%),
      url("../assets/ways-paper.png");
    background-size:auto, cover;
    background-position:top center, center;
    background-repeat:no-repeat, no-repeat;
  }
  #ways .track > *{max-width:64%}
  #ways .track--b > *{max-width:64%;margin-left:auto}
  #ways .track--b .track__tag{align-self:flex-end}
  #ways .track--b h3{margin-left:auto;justify-content:flex-end;text-align:right}
  #ways .track--b ol li{text-align:right}
}
#ways{padding-bottom:0}
#ways .tracks{margin-bottom:0}
#contact .contact__grid > div > .h-lg{
  margin:0 0 clamp(1rem,2vw,1.6rem);
}
#ways .track::before,
#ways .track--b::before{
  display:none;
}
#audience .svcmore p{
  max-width:none;
  font-size:clamp(.78rem,1.34vw,1.2rem);
  line-height:1.4;
}
@media(min-width:900px){
  #audience .svcmore strong{display:inline;margin:0 .35em 0 0;}
}
/* AUDIENCE: four organic blobs */
#audience .aud{
  grid-template-columns:repeat(4,1fr)!important;
  gap:clamp(1.3rem,2.8vw,2.6rem) !important;
  align-items:stretch;
  margin-bottom:clamp(2.2rem,4.5vw,3.8rem);
}
#audience .aud__cell,
#audience .aud__cell:nth-child(1),
#audience .aud__cell:nth-child(2),
#audience .aud__cell:nth-child(3),
#audience .aud__cell:nth-child(4){
  grid-column:auto;
  border:0;
  min-height:0;
  aspect-ratio:1;
  max-width:88%;
  margin-inline:auto;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:clamp(1rem,2.2vw,1.9rem);
  overflow:visible;
}
#audience .aud__cell{border-radius:0}
#audience .aud__cell:nth-child(1){background:#BBD8EA;-webkit-clip-path:url(#blobCloud);clip-path:url(#blobCloud)}
#audience .aud__cell:nth-child(2){background:#7B8AE8;color:#fff;-webkit-clip-path:url(#blobSquircle);clip-path:url(#blobSquircle)}
#audience .aud__cell:nth-child(3){background:var(--pink-paper) center/cover;color:var(--ink);-webkit-clip-path:url(#blobWavy);clip-path:url(#blobWavy)}
#audience .aud__cell:nth-child(4){background:#4EA96B;color:#fff;-webkit-clip-path:url(#blobEllipse);clip-path:url(#blobEllipse)}
#audience .aud__k{margin-bottom:.15rem;opacity:.85;}
#audience .aud__v{margin:.1rem 0 .3rem;}
#audience .aud__n{max-width:16ch;opacity:.8;}
#audience .aud__cell:nth-child(2) .aud__k,
#audience .aud__cell:nth-child(2) .aud__n,
#audience .aud__cell:nth-child(4) .aud__k,
#audience .aud__cell:nth-child(4) .aud__n{color:rgba(255,255,255,.9)}
@media(max-width:760px){
  #audience .aud{grid-template-columns:repeat(2,1fr)!important}
}
/* CONTENT PILLARS — CIRCLE */
.pillars{
  margin:0;
  display:flex;
  align-items:center;
  justify-content:center;
}
.pillars svg{width:100%;height:auto;overflow:visible}
.pillars__glow{fill:url(#pillarGlow)}
.pillars__ring{
  fill:none;
  stroke:var(--ink);
  stroke-width:1.1;
  opacity:.8;
}
.pillars__ray{stroke:var(--ink);stroke-width:1.1;opacity:.8}
.pillars__core{fill:#fff;}
.pillars__label{fill:var(--ink);}
#work .deckcard__frame{
  border:0;
  outline:0;
  border-radius:calc(14 * var(--pu)) calc(14 * var(--pu)) 0 0;
  overflow:hidden;
}
#work .deckcard__cap{
  border:0;
  border-radius:0 0 calc(14 * var(--pu)) calc(14 * var(--pu));
}
#work .deckcard__frame::before{display:none}
#proof .brands div::after{display:none}
#proof .brands{
  display:flex!important;
  flex-wrap:wrap;
  gap:clamp(.35rem,.8vw,.72rem);
  align-items:center;
}
#proof .brands div{flex:1 1 calc(130 * var(--pu));}
#proof .brands .brand--tablet{display:none;}
@media(min-width:601px) and (max-width:1023px){
  #proof .brands .brand--tablet{display:grid;}
  #proof .brands div{flex:0 0 calc((100% - clamp(1.4rem,3.2vw,2.88rem)) / 5);}
  #proof .brands div:nth-child(1){order:1;}
  #proof .brands div:nth-child(2){order:2;}
  #proof .brands div:nth-child(3){order:3;}
  #proof .brands div:nth-child(4){order:4;}
  #proof .brands div:nth-child(5){order:5;}
  #proof .brands div:nth-child(6){order:6;}
  #proof .brands div:nth-child(8){order:7;}
  #proof .brands div:nth-child(9){order:8;}
  #proof .brands div:nth-child(10){order:9;}
  #proof .brands div:nth-child(7){order:10;}
}
#work .sortswitch{display:inline-grid;grid-template-columns:auto auto auto;align-items:center;gap:0;background:none;border:0;padding:0;color:var(--ink)}
#work .sortswitch__label{margin-right:.75rem;color:var(--ink-60);font-size:max(calc(12 * var(--pu)),var(--fs-label));font-weight:700;letter-spacing:.09em}
#work .sortswitch i{display:none}
#work .sortswitch .sortbtn{min-height:calc(44 * var(--pu));padding:.68em 1em;border:1.5px solid var(--ink);background:var(--card);color:var(--ink);font-size:max(calc(14 * var(--pu)),var(--fs-ui));line-height:1;transition:background .18s ease,color .18s ease,transform .18s ease,box-shadow .18s ease}
#work .sortswitch .sortbtn + i + .sortbtn{margin-left:-1.5px}
#work .sortswitch .sortbtn:is(:hover,:focus-visible){position:relative;z-index:1;color:var(--cobalt);transform:translateY(calc(-2 * var(--pu)));box-shadow:0 calc(3 * var(--pu)) 0 rgba(21,20,15,.22)}
#work .sortswitch .sortbtn:focus-visible{outline:calc(3 * var(--pu)) solid var(--cobalt);outline-offset:calc(3 * var(--pu))}
#work .sortswitch .sortbtn[aria-pressed="true"]{position:relative;z-index:2;border-color:var(--cobalt);background:var(--cobalt);color:#fff}
@media(max-width:640px){
  #work .sortswitch{display:flex;flex-wrap:wrap;align-items:center;width:100%}
  #work .sortswitch__label{flex:0 0 100%;margin:0 0 .55rem}
  #work .sortswitch .sortbtn{flex:1 1 auto}
  #work .work__deckhint{display:flex;align-items:center;gap:.45rem;margin:.75rem 0 0 auto;color:var(--cobalt);font-family:var(--sans);font-size:max(calc(12 * var(--pu)),var(--fs-label));font-weight:700;letter-spacing:.09em;text-transform:uppercase;transition:opacity .25s ease}
  body.has-scrolled-deck #work .work__deckhint{opacity:0;pointer-events:none}
}
@media(prefers-reduced-motion:reduce){
  .pcard,.pcard__play,.work__more,.work__more svg,.work__swipe,#work .sortswitch .sortbtn,#work .work__deckhint{transition:none}
}
/* SMALL SCREENS */
.typewave__m{display:none;width:100%;height:auto;}
@media(max-width:600px){
  /* phones swap to the deeper two-line wave */
  .typewave .typewave__svg{display:none;}
  .typewave__m{display:block;}
  .typewave__m .typewave__text{font-size:calc(12.5 * var(--pu));}
  .typewave{margin-bottom:0}
  .typewave__box{margin-top:1.2rem}
  .deckarrow{display:none;}
  /* brand stickers two to a row, in a chessboard: 1 2 / 4 3 / 5 6, then "+ more" */
  #proof .brands div:nth-child(n){flex:1 1 calc(50% - .3rem);}
  #proof .brands div:nth-child(n+3){order:2;}
  #proof .brands div:nth-child(4){order:1;}
  #work .deckcard:nth-child(n){width:clamp(calc(150 * var(--pu)),44vw,calc(190 * var(--pu)))!important}
  #contact a[href^="mailto"]{font-size:clamp(1.15rem,6.4vw,1.6rem);word-break:normal}
}
/* CONTENT TYPES — WAVE BRIDGE */
.typewave{
  position:relative;
  --twh:calc(100vw * 300 / 1600);
  background:transparent;
  padding:0;
  margin-top:calc(var(--twh) * -0.26);
  margin-bottom:calc(var(--twh) * -0.26);
  z-index:6;
  overflow:visible;
  line-height:0;
}
.typewave__svg{
  display:block;
  width:100%;
  height:auto;
  aspect-ratio:1600/300;
}
.tw-blue{fill:#001F93} /* same blue as the hero cards (--hero-blue) */
.typewave__caption{fill:rgba(255,255,255,.75);font-size:16px}
.typewave__text{fill:#fff;}
.typewave{isolation:isolate; --boxw:clamp(calc(160 * var(--pu)),14.5vw,calc(280 * var(--pu)));}
.typewave__box{
  position:absolute;
  right:0;
  /* centred on the band where it meets the right edge, and 1.2x the band's height
     (the band is 12.3vw there): the lid pokes up and the base sits just below it */
  top:42%;
  transform:translateY(-50%);
  z-index:4;
  width:var(--boxw);
  aspect-ratio:620/632;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  margin:0;
  padding:0;
  background:url("../assets/box-cutout-2.png") center/contain no-repeat;
  border:0;
  text-align:center;
  line-height:1.3;
}
.typewave__boxface{
  position:absolute;
  /* the art's front face runs x 0-81%, from under the tape (25.5% down) to its base;
     the face's horizontals slope 3.4-4.3deg while its verticals stay upright, so the
     type is sheared (skewY) to sit in that plane rather than rotated */
  left:4%; right:23%; top:29%; bottom:10%;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:.5rem;
  text-align:center;
  transform:skewY(3.8deg);
}
.typewave__box p{margin:0;color:var(--ink)}
.typewave__box strong{display:block;margin-bottom:.25rem;white-space:nowrap}
.typewave__box .btn{padding:.5em .9em;}
@media(min-width:700px) and (max-width:930px){
  .typewave__text{transform:scaleX(.95);transform-origin:left center;}
}
/* 601-699 runs the desktop wave too, so the box sits on it as above; the line of types
   tightens a little more so it ends before the box */
@media(min-width:601px) and (max-width:699px){
  .typewave__text{transform:scaleX(.92);transform-origin:left center;}
}
/* phones (the two-line wave): the box sits under the band */
@media(max-width:600px){
  .typewave__box{
    position:relative;inset:auto;transform:none;
    width:clamp(calc(180 * var(--pu)),52vw,calc(240 * var(--pu)));
    margin:1.1rem 0 calc(4.875vw + 1rem) auto;
  }
}
body{background-color:#f1e7d9;}
/* ONE PAPER COLOUR ACROSS THE LIGHT SECTIONS */
#work,
#audience,
#ways{
  background-color:#f1e7d9;
  background-image:none;
}
#proof{
  background:#f1e7d9;
  background-image:linear-gradient(180deg,
    rgba(243,212,228,.9) 0%,
    rgba(243,212,228,.55) 18%,
    rgba(243,212,228,0) 46%);
  color:var(--ink);
}
#proof .h-lg{color:var(--card);}
#audience{
  background-image:linear-gradient(180deg,
    rgba(243,212,228,.9) 0%,
    rgba(243,212,228,.55) 18%,
    rgba(243,212,228,0) 46%);
}
/* SECTION HEADINGS IN DRUK */
@font-face{
  font-family:"Druk Cond";
  src:url("../assets/DrukCond-Super-Cy-Gr-Web.ttf") format("truetype");
  font-weight:400;font-style:normal;font-display:swap;
}
:root{--druk:"Druk Cond","Haettenschweiler","Arial Narrow",sans-serif}
.h-lg{transform:scaleX(1.15);transform-origin:left center;}
@font-face{
  font-family:"Bella Armanda";
  src:url("../assets/BellaArmanda.ttf") format("truetype");
  font-weight:400;font-style:normal;font-display:swap;
}
:root{--bella:"Bella Armanda","Snell Roundhand",cursive}
.h-lg .it{padding-right:.06em;}
#proof .h-lg .it,
#contact .h-lg .it{padding-left:.14em;}
/* SECTION HEADINGS ON ONE LEFT EDGE */
#work .wrap,
#proof .wrap,
#audience .wrap,
#ways .wrap,
#contact .wrap{
  max-width:none;
}
/* Track record, My audience, and Get in touch intentionally use a wider
   editorial container. It shares the same fluid floor as the page frame so
   its mobile breathing room does not collapse. */
#proof .wrap,
#audience .wrap,
#contact .wrap{
  padding-inline:var(--wide-gutter);
}
#contact{
  padding-top:calc(clamp(1.6rem,3vw,2.7rem) + 3.2vw);
  padding-bottom:clamp(1.4rem,2.6vw,2.2rem);
}
#contact .head{
  margin-bottom:clamp(1rem,2vw,1.5rem);
}
@media(min-width:700px){
  #contact .contact__grid{
    grid-template-columns:minmax(0,.9fr) minmax(0,1fr);
    gap:clamp(1.4rem,2.6vw,2.1rem);
  }
}
@media(min-width:900px){
  #contact .contact__grid{
    grid-template-columns:minmax(0,.78fr) minmax(0,1fr);
  }
}
/* CONTACT: pink backdrop, pinned to the bottom edge. The cutout is #contact::before at
   every width — see the --fig-w block below. */
#contact{
  background-image:var(--pink-paper);
  background-size:100% auto;
  background-position:top center;
  background-repeat:repeat-y;
  background-color:var(--pink);
}
#ways{
  background:#f1e7d9;
}
#ways .tracks{border-radius:0}
#ways .head{
  display:flex;
  align-items:center;
  justify-content:center;
  flex-wrap:wrap;
  gap:1rem 1.4rem;
  text-align:center;
}
#ways .head__l{display:flex;justify-content:center;flex:1 1 100%}
#ways .h-lg{margin-inline:auto;text-align:center;transform-origin:center}
/* sits right under WORK TOGETHER, so it pulls up through the head's row gap */
#ways .head .meta{flex:1 1 100%;margin:-.85rem 0 0;text-align:center}
#ways .head{z-index:2}
#ways .tracks{margin-top:0}
/* "Book" starts under the W in WORK, tight to its baseline — placed by site.js (Ways to work together block) */
#ways .head .meta{text-align:left}
/* headings hold to a single line; the chips above them carry more weight */
#ways .track__tag{padding:.6em 1.15em;margin-bottom:.95rem;}
#ways .track h3{max-width:none;min-height:0;margin:.15rem 0 1.35rem;}
/* the offering lists: number, then the name, nothing else */
#ways .track ol{
  counter-reset:ways;
  border-top:0;
  padding-top:0;
}
#ways .track ol li{
  counter-increment:ways;
  padding:1.05rem 0 .95rem;
  border-bottom:1px solid rgba(21,20,15,.4);
}
#ways .track ol li:first-child{border-top:0}
#ways .track ol li:last-child{border-bottom:0}
#ways .track ol li::before{
  content:counter(ways,decimal-leading-zero);
  display:block;
  font-family:var(--sans);
  font-weight:700;
  font-size:clamp(.86rem,1.25vw,1.1rem);
  line-height:1;
  letter-spacing:.01em;
  margin-bottom:1.15em;
  color:var(--ink);
}
#ways .track ol b{display:block;}
#work #byNiche > .cat{
  background:none !important;
  border:0 !important;
  margin-top:0 !important;
}
#work::before,
#proof::before,
#audience::before,
#ways::before,
#contact::before{
  display:none;
}
#work .cat::after,
#work .deckcard__frame::before,
#proof .quote::before,
#proof .case::after,
#proof .quote::after,
.aud__cell::after,
#ways .track::after,
#contact .form::after{
  display:none;
}
@media(max-width:560px){
  .deckarrow{width:calc(32 * var(--pu));height:calc(32 * var(--pu));}
}
/* ALIGNMENT + TYPE SCALE */
@media(min-width:820px){
  #work .cat__head{
    padding-left:calc(max(var(--gutter), calc((100vw - var(--maxw))/2 + var(--gutter))) - .75rem);
  }
}.mediakit{margin:clamp(1.4rem,2.6vw,2.2rem) 0 0}
.mediakit a{color:var(--cobalt);text-decoration:underline;text-underline-offset:.18em}
#proof .brands{transform:none}
#proof .quote,
#proof .quote:nth-child(2){transform:none}
/* TOP MARKETS — BAR + OVAL + ARROW */
#audience .audlist.mkt{background:none;border:0;padding:0}
#audience .mkt h3{margin-bottom:clamp(1rem,2vw,1.5rem)}
.mkt__row{
  display:flex;
  align-items:center;
  height:clamp(calc(24 * var(--pu)),2.3vw,calc(29 * var(--pu)));
  margin-bottom:clamp(.35rem,.7vw,.55rem);
  --mkt-gap:0px;
}
.mkt__bar{flex:0 1 var(--w,50%);height:100%;display:flex;align-items:center;padding-left:clamp(.6rem,1vw,.9rem);border-radius:calc(6 * var(--pu));background:var(--mkt-c,#BBD8EA);}
.mkt__val{flex:0 0 auto;margin-left:var(--mkt-gap);height:100%;min-width:clamp(calc(58 * var(--pu)),6vw,calc(74 * var(--pu)));display:grid;place-items:center;padding:0 .75em;border-radius:calc(999 * var(--pu));background:var(--mkt-c,#BBD8EA);}
.mkt__row:nth-of-type(1){--mkt-c:var(--cobalt)}
.mkt__row:nth-of-type(2){--mkt-c:var(--pink)}
.mkt__row:nth-of-type(3){--mkt-c:#BBD8EA}
.mkt__row:nth-of-type(4){--mkt-c:#EFE7D8}
.mkt__row:nth-of-type(1) .mkt__bar,.mkt__row:nth-of-type(1) .mkt__val{color:#fff}
.mkt__row:nth-of-type(2) .mkt__bar,.mkt__row:nth-of-type(2) .mkt__val,
.mkt__row:nth-of-type(3) .mkt__bar,.mkt__row:nth-of-type(3) .mkt__val,
.mkt__row:nth-of-type(4) .mkt__bar,.mkt__row:nth-of-type(4) .mkt__val{color:var(--ink)}
@media(min-width:820px){
  /* the two cards are staggered, so each one sets its own rhythm — no shared rows */
  #ways .tracks{
    display:grid;
    grid-template-columns:1fr 1fr;
    align-items:start;
  }
  #ways .track{
    padding-top:.4rem;
    padding-bottom:0;
  }
  #ways .track ol{
    margin-top:0;
  }
  #ways .track h3{margin-bottom:.7rem;}
}
@media(min-width:820px){
  #ways .track:first-child > *,
  #ways .track:first-child h3{margin-left:clamp(.5rem,1.5vw,1.25rem)}
  #ways .track--b > *,
  #ways .track--b h3{margin-right:clamp(.5rem,1.5vw,1.25rem)}
  #ways .track--b ol{width:64%}
}
#ways .track h3{color:var(--ink-60);}
#ways .track__tag,
#ways .track--b .track__tag{
  background:none;
  color:var(--ink);
  padding:0;
}
#ways{
  padding-top:clamp(1.25rem,2.5vw,2.5rem);
  padding-bottom:0;
}
@media(min-width:820px){
  #ways .tracks{
    min-height:56.25vw;
    background-position:top center, center bottom;
    align-content:start;
    padding-top:5.625vw;
    padding-bottom:calc(4.875vw + 1.5rem);
  }
}
@media(max-width:819px){
  #ways .track--b{padding-bottom:calc(4.875vw + 1.5rem)}
}
#ways .track .track__head{
  display:flex;
  align-items:baseline;
  gap:.35rem .7rem;
  max-width:none;
  margin-bottom:.95rem;
}
#ways .track .track__head h3{margin:0}
#ways .track .track__head .track__tag{margin-bottom:0;align-self:baseline}
/* RESPONSIVE PASS */
#ways .track__head{flex-wrap:wrap}
@media(max-width:760px){
  .head__l{flex:1 1 100%}
  .head .meta{flex:1 1 100%;}
}
@media(max-width:819px){
  #ways .tracks{
    display:grid;
    grid-template-columns:1fr 1fr;
    grid-template-rows:auto auto auto repeat(5, auto);
    align-items:start;
    align-content:start;
    min-height:56.25vw;
    background-image:
      linear-gradient(180deg,
        #f1e7d9 0%,
        rgba(241,231,217,.72) 1.2%,
        rgba(241,231,217,.28) 2.4%,
        rgba(241,231,217,0) 4%),
      url("../assets/ways-paper.png");
    background-size:auto, cover;
    background-position:top center, center bottom;
    background-repeat:no-repeat, no-repeat;
    padding-top:5.625vw;
    padding-bottom:calc(4.875vw + 1.5rem);
  }
  #ways .track{
    display:grid;
    grid-template-rows:subgrid;
    grid-row:span 8;
    align-content:start;
    padding:.4rem 0 0;
    min-height:0;
    border:0;
    background:none;
  }
  #ways .track:first-child{border-right:0;border-bottom:0}
  #ways .track ol{display:grid;grid-template-rows:subgrid;grid-row:span 5;margin-top:0}
  #ways .track > *{max-width:88%}
  #ways .track--b > *{max-width:88%;margin-left:auto}
  #ways .track--b .track__tag{align-self:flex-end}
  #ways .track--b h3{margin-left:auto;justify-content:flex-end;text-align:right}
  #ways .track--b ol li{text-align:right}
  #ways .track:first-child > *,
  #ways .track:first-child h3{margin-left:0}
  #ways .track--b > *,
  #ways .track--b h3{margin-right:0}
  #ways .track--b{padding-bottom:0}
}
@media(max-width:359px){
  #ways .track{overflow:visible}
}
/* CONTACT: paper + envelope are one illustration. The paper is the in-flow element,
   so its own height drives the wrapper; the envelope is pinned to the wrapper's bottom
   and the paper's padding-bottom fixes how deep the sheet tucks in. That depth is in
   cqw — a % of the WRAPPER's width. As a plain % it resolved against the grid cell
   instead, so the tuck ran from calc(80 * var(--pu)) to calc(226 * var(--pu)) across breakpoints and the sheet drifted
   off the flap. Stack: envelope back -> paper -> envelope front pocket. */
#contact .contact-envelope-composition{
  position:relative;
  isolation:isolate;
  container-type:inline-size;
  width:min(calc(564 * var(--pu)), calc(100% + var(--gutter)));
  margin-left:auto;
}
/* phones: inside the column, so the tilted sheet's top corner stays on screen */
@media(max-width:767px){
  #contact .contact-envelope-composition{ width:min(calc(564 * var(--pu)), 100%); }
}
/* Envelope and sheet move together, so the fit inside is untouched. Below calc(768 * var(--pu))
   the composition already sits flush against the left gutter, so shifting it
   there would cut the left wing off the screen. */
@media(min-width:768px){
  #contact .contact-envelope-composition{translate:-10% 5%;}
}
/* tablet (768-819, envelope under the text): flush right and pulled up into the empty
   space beside the social icons; a margin, not a translate, so the section closes up
   under it and the cutout keeps its overlap */
@media(min-width:768px) and (max-width:819px){
  #contact .contact-envelope-composition{translate:calc(20 * var(--pu)) 5%; margin-top:-14.3vw; margin-bottom:-7vw;}
}
#contact .contact-envelope{
  position:absolute;
  inset:auto 0 0;
  width:100%;
  aspect-ratio:1007 / 1052;
  pointer-events:none;
}
#contact .contact-envelope img{
  position:absolute;
  inset:0;
  display:block;
  width:100%;
  height:100%;
}
#contact .contact-envelope__back{z-index:1}
#contact .contact-envelope__front{z-index:3}
#contact .contact-paper{
  position:relative;
  z-index:2;
  width:83.6%;
  /* The opening in the envelope art sits right of centre, so the sheet is not
     centred in the wrapper — this offset balances the interior showing on each
     side of it. It is a % of the wrapper, so it holds at every width. */
  margin-left:auto;
  margin-right:5.5%;
  /* room for the tilt: the sheet's top-left corner rises 6.2cqw above its box, so
     this keeps it clear of whatever sits above the envelope at every width */
  padding-top:calc(6.2cqw + 1rem);
  padding-bottom:16cqw;
}
#contact .contact-paper .form{
  position:relative;
  width:100%;
  margin:0;
  border:0;
  /* Keep the field stack clear of the paper's top edge. */
  display:grid;
  padding-top:calc(4% + clamp(.4rem,.7vw,.5rem) + calc(7 * var(--pu)));
  padding-bottom:32.92%;   /* 23% + 8cqw expressed against the sheet's width */
  /* Rotating about the centre keeps the tilt from shifting the sheet sideways by
     an amount that depends on its height — that was what made the left and right
     clearances drift apart between breakpoints. translateY puts back the drop the
     origin change causes, so no field moves; it is in cqw, so it scales. */
  /* The envelope's top edge (its fold line, corners at 61,398 and 991,466 in the
     1007x1052 art) leans 4.2deg; the sheet leans with it so it stands square to it. */
  transform:translateY(-3.05cqw) rotate(4.2deg);
  /* pivots on that fold line, so where the sheet crosses it is fixed by the margins
     alone, whatever the sheet's height: equal gaps to both corners at every width */
  transform-origin:50% calc(100% - 48.55cqw);
  /* No cut. The sheet's bottom sits 16cqw above the envelope's bottom (see
     .contact-paper), well below the front flap's deepest fold, so the flap hides
     the whole bottom edge with ~calc(45 * var(--pu)) of overlap to spare at desktop. The extra
     8cqw of padding above trades with .contact-paper's, so the fields do not
     move. Cutting the sheet to a V only exposed the interior in a wedge at each
     fold; the three visible diagonals belong to the envelope art. */
}
#contact .contact-paper .form .btn{
  display:inline-flex;
  width:auto;
  margin-inline:auto;
  padding:.7em 1.5em;
}
#contact .contact-paper .form__send{
  justify-content:center;
  margin-top:clamp(.5rem,1.4vw,1rem);
  /* sits a fixed 4% of the envelope's width above the front pocket at every width:
     its in-flow spot is 24.5cqw - calc(66 * var(--pu)) above the pocket, so the drop is sized to match */
  transform:translateY(calc(20.5cqw - calc(66 * var(--pu))));
}
@media(max-width:560px){
  .mkt__val{min-width:calc(48 * var(--pu));}
}
/* VERTICAL CATEGORY NAMES */
@media(min-width:820px){
  #work .cat__head{
    padding-left:0;
    display:block;
  }
  #work .cat__title{display:block;}
  #work .cat__arc{
    display:block;
    width:100%;
    height:auto;
  }
  #work .cat__arc text{
    font-family:var(--sans);
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:-.01em;
    fill:var(--ink);
  }
  #work #byNiche > .cat:nth-child(even) .cat__head{text-align:right}
}
.cat__title-a11y{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);}
@media(max-width:819px){
  #work .cat__arc{display:none}
  #work .cat__title-a11y{position:static;width:auto;height:auto;overflow:visible;clip:auto;clip-path:none;}
}
/* CANONICAL TYPE SYSTEM  —  the single source of truth.
   11 roles, by strength:  H2 · H3 · Card title · H4 · Stat · Lead · Body · Meta · Label · UI
   Druk = H2 only. Bella = the accent inside H2 only. --voice (Unbounded, caps, drawn at
   85% width) = H3 + project/card titles. Inter Tight = everything else.
   Sizes live in role tokens — sections pick a role, never a size. */
:root{
  --voice:"Unbounded", "Inter Tight", sans-serif;
  --voice-squeeze:.85;  /* Unbounded only comes wide: every --voice line is drawn at 85% width */
  /* role sizes (desktop → mobile via clamp / breakpoints below) */
  --fs-h2:clamp(3.5rem, 9.4vw, 7rem);
  --fs-h3:clamp(1.375rem, 2.1vw, 1.875rem);
  --fs-card:.9375rem;
  --fs-h4:clamp(1.125rem, 1.4vw, 1.25rem);
  --fs-stat:clamp(2.5rem, 3.4vw, 3rem);
  --fs-lead:clamp(1.1875rem, 1.55vw, 1.375rem);
  --fs-body:1rem;
  --fs-meta:.8125rem;
  --fs-label:.6875rem;
  --fs-ui:.8125rem;
  /* line heights */
  --lh-h2:.88; --lh-h3:1; --lh-h4:1.2; --lh-stat:.9;
  --lh-lead:1.3; --lh-body:1.6; --lh-meta:1.5; --lh-label:1.3; --lh-ui:1.2;
  /* tracking — five values, no others */
  --ls-label:.14em; --ls-ui:.06em; --ls-druk:.02em; --ls-flat:0; --ls-tight:-.02em;
  /* heading spacing scale */
  --sp-eyebrow:.75rem;                      /* label → heading            */
  --sp-h2-lead:clamp(1.25rem, 2vw, 1.75rem); /* H2 → lead (clears Bella)   */
  --sp-h3:1rem;                             /* H3 → lead / body           */
  --sp-h3-list:1.5rem;                      /* H3 block → list            */
  --sp-h4:.75rem;                           /* H4 → its content           */
  --sp-stat:.375rem;                        /* stat → its note            */
  /* legacy aliases still referenced elsewhere */
  --t-11:calc(11 * var(--pu)); --t-12:calc(12 * var(--pu)); --t-14:calc(14 * var(--pu)); --t-16:calc(16 * var(--pu)); --t-18:calc(18 * var(--pu)); --t-20:calc(20 * var(--pu)); --t-26:calc(26 * var(--pu));
  --lh-display:.85; --lh-small:1.5; --ls-caption:.01em;
  --fs-quote:var(--fs-lead);
}
body{
  font-family:var(--sans); font-weight:500;
  font-size:var(--fs-body); line-height:var(--lh-body); letter-spacing:var(--ls-flat);
}

/* H2 — section title: Druk caps + Bella accent */
.h-lg,
.work__title{
  font-family:var(--druk); font-weight:400;
  font-size:var(--fs-h2); line-height:var(--lh-h2);
  letter-spacing:var(--ls-druk); text-transform:uppercase;
  white-space:nowrap;
}
.head .h-lg{ margin-inline-end:1.05em; }
.h-lg .it,
.work__title .it{
  font-family:var(--bella); font-weight:400; font-style:normal;
  font-size:1.1em; line-height:.8;
  letter-spacing:var(--ls-flat); text-transform:none;
}

/* H3 — subsection: Unbounded caps */
.case h3,
.cat__title,
#ways .track h3.track__tag,
#contact a.big{
  font-family:var(--voice); font-weight:700; font-style:normal;
  font-size:var(--fs-h3); line-height:var(--lh-h3);
  letter-spacing:-.01em; text-transform:uppercase;
}
.cat__title{ white-space:nowrap; }
#contact a.big{ font-size:clamp(1.75rem, 3vw, 2.75rem); line-height:1.05; text-transform:none } /* an email never goes in caps */

/* CARD TITLE — the H3 voice at card size */
.pcard__copy strong,
.deckcard__brand,
.viewer__cap{
  font-family:var(--voice); font-weight:700; font-style:normal;
  font-size:var(--fs-card); line-height:1.1;
  letter-spacing:.02em; text-transform:uppercase;
}
/* the 85% squeeze. The desktop category titles are SVG text on an arc and stay unsqueezed
   (scaling that box would squash the letters' height, not their width). */
.case h3,
#ways .track h3.track__tag,
#contact a.big,
.pcard__copy strong,
.deckcard__brand,
.viewer__cap{
  display:inline-block; transform:scaleX(var(--voice-squeeze)); transform-origin:left center;
}
.case h3,#ways .track h3.track__tag{ display:block }
@media (max-width:819px){
  #work .cat__title{ transform:scaleX(var(--voice-squeeze)); transform-origin:left center }
}

/* H4 — group heads + offering names: Inter, sentence case */
#audience .audlist h3,
#audience .pillars h3,
#ways .track ol b,
.svcmore strong{
  font-family:var(--sans); font-weight:700;
  font-size:var(--fs-h4); line-height:var(--lh-h4);
  letter-spacing:-.01em; text-transform:none;
}
.svcmore strong{ font-size:inherit; }
/* SUBTITLE — the grey line under a heading: one size everywhere, italic */
#ways .head .meta,
#ways .track__sub,
#audience .head .meta,
.quote footer .meta,
.case .case__nums span{ font-family:var(--sans); font-weight:500; font-style:italic; font-size:var(--t-14); line-height:1.4; letter-spacing:var(--ls-flat); text-transform:none }
#audience .audlist h3,#audience .pillars h3{ font-weight:800; letter-spacing:.01em; text-transform:uppercase }

/* STAT — one size everywhere */
#audience .aud .aud__v,
.case__nums b{
  font-family:var(--sans); font-weight:800;
  font-size:var(--fs-stat); line-height:var(--lh-stat);
  letter-spacing:var(--ls-tight); font-variant-numeric:tabular-nums;
}
.mkt__val{ font-family:var(--sans); font-weight:800; font-size:var(--fs-body); line-height:var(--lh-ui); letter-spacing:var(--ls-tight); font-variant-numeric:tabular-nums }

/* LEAD — the sentence that explains a heading; also quotes and the hero tagline (Inter) */
#contact .contact__tags,
.quote p,
.bluecard__title{
  font-family:var(--sans); font-weight:500; font-style:normal;
  font-size:var(--fs-lead); line-height:var(--lh-lead);
  letter-spacing:var(--ls-flat); text-transform:none;
}

/* BODY */
.case p,
#proof .case p,
.mkt__bar,
.typewave__box p,
.form input,.form select,.form textarea{
  font-family:var(--sans); font-weight:500;
  font-size:var(--fs-body); line-height:var(--lh-body); letter-spacing:var(--ls-flat); text-transform:none;
}
.mkt__bar{ line-height:var(--lh-meta) }
.form input,.form select,.form textarea{ line-height:1.4 }

/* META — attribution, dates, notes */
.meta,
.case__nums span,
.quote cite,
.deckcard__fmt,
#work .deckcard .deckcard__fmt,
.pillars__name,
#audience .aud .aud__n,
#audience .audrow span,
.deckarrow{
  font-family:var(--sans); font-weight:500; font-style:normal;
  font-size:var(--fs-meta); line-height:var(--lh-meta);
  letter-spacing:var(--ls-caption); text-transform:none;
}

/* LABEL / EYEBROW — tiny, heavy, wide */
.label,
.track__tag:not(h3),
#audience .aud .aud__k,
.case__tag,
.cat__close,
.deckcard__ph,
.form__spine,
.pillars__label,
.pillars svg .pillars__label{
  font-family:var(--sans); font-weight:700;
  font-size:var(--fs-label); line-height:var(--lh-label);
  letter-spacing:var(--ls-label); text-transform:uppercase;
}

/* UI — nav, buttons, tabs, chips, CTAs */
.navlinks a,
.work__tab,.work__more,
.btn,
.navtoggle,
.navpanel a,
.sociallinks a,
.sortswitch,
.mediakit,
#proof .brands div,
.brands div,
.pillars__core,
.bluecard__links a{
  font-family:var(--sans); font-weight:500;
  font-size:var(--fs-ui); line-height:var(--lh-ui);
  letter-spacing:var(--ls-ui); text-transform:uppercase;
}
.bluecard__links a{ text-transform:none; letter-spacing:var(--ls-flat) }

/* the hero cards are one scaled composition (--u): roles keep their voice, size follows the card */
.bluecard__title{ font-size:max(calc(13 * var(--pu)), calc(15 * var(--u))); line-height:1.15; text-transform:uppercase; letter-spacing:.01em }
.bluecard__list{ font-family:var(--sans); font-weight:500; font-size:max(calc(12 * var(--pu)), calc(13 * var(--u))); line-height:1.25 }
.bluecard__links a{ font-size:max(calc(12 * var(--pu)), calc(13 * var(--u))) }

/* content-types band (SVG text) */
.typewave__text{
  /* This SVG scales with its viewBox, so --pu made the label shrink twice at
     compact desktop widths. Fill the usable text path instead, capped before
     it reaches the scope box. */
  font-family:var(--sans); font-weight:800; font-size:clamp(20px,1.65vw,21px);
  letter-spacing:.06em; text-transform:uppercase;
}
.typewave__text--tablet{display:none}
/* desktop: one fixed size in viewBox units, so the wave scales as one piece */
@media(min-width:1024px){ .typewave__text{font-size:21px} }
@media(min-width:601px) and (max-width:1023px){
  .typewave__text--full{display:none}
  .typewave__text--tablet{
    display:block;
    /* Splitting the label uses the wave's open vertical space, keeping its
       rendered size near 17px instead of shrinking with the SVG. */
    font-size:clamp(21px,calc(60px - 3.2vw),36px);
    letter-spacing:.04em;
    transform:none;
  }
}

/* HEADING SPACING */
.case__tag{ display:block; margin-bottom:var(--sp-eyebrow) }
.case h3,#proof .case h3{ margin:0 0 var(--sp-h3) }
.case__nums span{ margin-top:var(--sp-stat) }
#audience .mkt h3,#audience .pillars h3{ margin:0 0 var(--sp-h3-list) }

/* BREAKPOINT — calc(900 * var(--pu)) */
@media (max-width:900px){
  :root{ --fs-h3:1.5rem; }
}
/* BREAKPOINT — calc(640 * var(--pu)) (mobile) */
@media (max-width:640px){
  :root{
    --fs-h2:clamp(3.25rem, 15vw, 4.5rem);
    --fs-h3:1.375rem; --fs-card:.875rem; --fs-h4:1.125rem;
    --fs-stat:2.25rem; --fs-lead:1.1875rem; --fs-ui:.875rem;
  }
  /* H2 holds one line on mobile */
  .h-lg{ transform:none; max-width:none; white-space:nowrap }
  .h-lg .it{ display:inline }
  /* the longest title steps down to fit the column */
  #ways .h-lg{ font-size:var(--fs-h2); white-space:normal; }
  #contact .h-lg{ transform:scaleX(1.15); transform-origin:left center; width:max-content }
  .head .h-lg{ margin-inline-end:0; }
  .head,
  #contact .contact__grid > div:first-child{ container-type:inline-size; }
  .cat__head{ container-type:inline-size; }
  .cat__title{ font-size:min(var(--fs-h3), 8cqi); }
  #contact .contact-paper .btn{ font-size:var(--fs-ui) }
}
/* SECTION BACKGROUNDS */
.hero{
  background:#EDECE8 url("../assets/hero-plaster.jpg?v=0912b") top center/100% auto no-repeat;
}
@media(max-width:960px){
  .hero{ background-image:url("../assets/hero-plaster-tall.jpg?v=0912b"); }
}
#work{
  /* the tile matches .work__stage's, so both stop at --cap and stay in register */
  background:var(--pink-paper) top center/min(100%, var(--cap)) auto repeat-y;
}
#proof{
  background:#1E1B1F url("../assets/proof-bg-dark2.jpg") top center/100% auto no-repeat;
}
/* SECTION SEAMS — generated strip straddling the boundary, top/bottom feathered */
.seam{position:relative;z-index:4;line-height:0;margin:calc(-1 * var(--seam-fade)) 0;pointer-events:none;--seam-fade:clamp(calc(28 * var(--pu)),4.5vw,calc(70 * var(--pu)))}
.seam img{display:block;width:100%;height:auto;
  -webkit-mask-image:linear-gradient(to bottom,transparent,#000 var(--seam-fade),#000 calc(100% - var(--seam-fade)),transparent);
          mask-image:linear-gradient(to bottom,transparent,#000 var(--seam-fade),#000 calc(100% - var(--seam-fade)),transparent)}
@media (max-width:767px){ .seam img{height:clamp(calc(130 * var(--pu)),38vw,calc(240 * var(--pu)));object-fit:cover} }
/* Portfolio → Track record: no strip — Portfolio's own pink paper runs down over #proof in drips
   (.work__top is z-index 5, so they paint above Track record). Mask 17.79vw tall, 16.125vw below the stage;
   #proof padding-top in LAYOUT QA clears them. */
.work__stage{ isolation:isolate; }
.work__stage::before{
  /* starts at the tear's top edge; mask-tear-fill.png (the tear's shape) lets the paper show
     only below the torn edge, then a plain block takes over from the tear's bottom to the drips */
  --tear-top:calc(-115 * var(--px));
  content:""; position:absolute; left:0; right:0; top:var(--tear-top); bottom:calc(-16.125 * var(--capvw) / 100); z-index:-1; pointer-events:none;
  background:var(--pink-paper) top center/100% auto repeat-y;
  -webkit-mask:url("../assets/mask-tear-fill.png") top/100% auto no-repeat,
               linear-gradient(#000 0 0) 0 calc(234 * var(--px))/100% calc(100% - 234 * var(--px) - 17.79 * var(--capvw) / 100 + 2px) no-repeat,
               url("../assets/mask-drips-v3.png") bottom/100% auto no-repeat;
          mask:url("../assets/mask-tear-fill.png") top/100% auto no-repeat,
               linear-gradient(#000 0 0) 0 calc(234 * var(--px))/100% calc(100% - 234 * var(--px) - 17.79 * var(--capvw) / 100 + 2px) no-repeat,
               url("../assets/mask-drips-v3.png") bottom/100% auto no-repeat;
}
.work__stage::after{
  content:""; position:absolute; left:0; right:0; bottom:calc(-16.125 * var(--capvw) / 100); height:calc(17.79 * var(--capvw) / 100); z-index:-1; pointer-events:none;
  background:url("../assets/shade-drips.png?v=3") bottom/100% auto no-repeat;
}
@media (max-width:640px){ .work__stage::before{ --tear-top:calc(1px - 235 * var(--px)); } }
.work__stage{
  background:var(--pink-paper) top center/100% auto repeat-y;
}
#ways{
  background:#EDE8E8 url("../assets/audience-bg.jpg?v=0912b") top center/cover no-repeat;
}
#audience{
  position:relative;
  aspect-ratio:auto;
  min-height:0;
  padding:clamp(2.8rem,5vw,5.3rem) 0 clamp(3.2rem,6vw,6rem);
  background:#f8f4ee;
}
#audience::before{content:none;display:none}
#audience .wrap{display:block;position:relative;z-index:1}
.seam--audience,.seam--after-audience{display:none}
#ways .tracks{
  background-image:none;
  min-height:0;
  padding-bottom:0;
}
/* AUDIENCE — REFERENCE COMPOSITION.
   Left column: the wordmark with its two captions. Right column: the drawn stat
   bubbles over one row that carries Top markets and the pillar folders + cutout,
   split by a single vertical rule. No horizontal rule — the reference has none. */
@media(min-width:1024px){
  #audience{
    padding-top:clamp(4.6rem,7vw,7.8rem);
    padding-bottom:4.2vw;
  }
  #audience .wrap{
    display:grid;
    grid-template-columns:minmax(calc(300 * var(--pu)),26%) minmax(0,17%) minmax(0,1fr);
    grid-template-rows:auto auto 1fr;
    column-gap:clamp(1rem,2vw,2rem);
    row-gap:0;
    align-items:start;
  }
  #audience .head{
    grid-column:1;grid-row:1;align-self:start;
    display:block;margin-bottom:0;
  }
  #audience .head::after{display:none}
  #audience .h-lg{white-space:normal;line-height:.9;font-size:var(--fs-h2)}
  #audience .h-lg .it{display:block;padding-right:0}
  #audience .head .meta{
    margin:1.2rem 0 0;max-width:none;white-space:nowrap;
    border-top:0;padding-top:0;
  }
  #audience .aud{
    grid-column:2/4;grid-row:1;
    margin:3.65vw 0 0;
  }
  /* markets and pillars join the section grid: markets under the wordmark,
     pillars across the right half, as in the reference */
  #audience .wrap > .audsplit{display:contents}
  #audience .audlist.mkt{
    grid-column:1/3;grid-row:2;
    margin-top:5vw;
    padding-right:clamp(1rem,4vw,4rem);
  }
  #audience .audlist.mkt h3{margin-bottom:3.5vw}
  #audience .mkt__row{margin-bottom:3.34vw}
  #audience .pillars{
    grid-column:3;grid-row:2/4;
    margin-top:2.06vw;
    min-height:0;aspect-ratio:759/520;
  }
  /* folders, rays and the photo slot, as fractions of the pillars box */
  #audience .pillars__item{width:14.5%;right:auto}
  /* the four folders on one arch: outer pair lower, inner pair higher */
  #audience .pillars__item--sun{left:4.9%;top:31.6%}
  #audience .pillars__item--sky{left:30.6%;top:14.3%}
  #audience .pillars__item--leaf{left:59.6%;top:14.3%}
  #audience .pillars__item--rose{left:85.2%;top:31.6%}
  #audience .pillars__item .pillars__name{width:250%;margin:.55em 0 0 -75%;text-align:center}
  #audience .pillars__item--rose .pillars__name{width:115%;margin-left:0;text-align:left}
  /* each dash sits off its own folder's corner, as in the reference: two left of
     yellow, one below-left of pink, one above and one right of green, one right of
     blue. Centres are box fractions; the box keeps its proportions (aspect-ratio). */
  #audience .pillars__ray{right:auto;translate:-50% -50%}
  #audience .pillars__ray--1{left:.26%;top:36.9%;transform:rotate(28deg)}
  #audience .pillars__ray--2{left:-1.45%;top:43.9%;transform:rotate(-14deg)}
  #audience .pillars__ray--3{left:66.4%;top:5.5%;transform:rotate(-63deg)}
  #audience .pillars__ray--4{left:77.9%;top:16.3%;transform:rotate(-28deg)}
  #audience .pillars__ray--5{left:48.6%;top:17.2%;transform:rotate(-25deg)}
  #audience .pillars__ray--6{left:81.4%;top:41.8%;transform:rotate(-21deg)}
  #audience .pillars__image{
    left:-8.8%;top:35.6%;bottom:auto;
    width:90.2%;height:63.5%;
    object-fit:contain;object-position:50% 100%;
  }
  #audience .wrap > .mediakit{
    grid-column:1/3;grid-row:3;align-self:start;justify-self:start;
    margin:0;
  }
}
/* MEDIA KIT — the same loose cobalt circle and trailing underline as the menu. */
#audience .mediakit{
  position:relative;
  isolation:isolate;
  display:inline-block;
  width:max-content;
  max-width:100%;
  margin-top:clamp(2.1rem,4vw,3.6rem);
  padding:.9em 2.2em 1em;
  color:var(--ink);
  line-height:1.35;
}
#audience .mediakit::before{
  content:"";
  position:absolute;
  z-index:-1;
  inset:.08em -.35em -.06em -.55em;
  border:var(--pen) solid #001F93;
  border-radius:51% 49% 53% 47% / 47% 55% 45% 53%;
  transform:rotate(-6deg);
  pointer-events:none;
}
#audience .mediakit::after{
  content:"";
  position:absolute;
  z-index:-1;
  left:17%;right:18%;bottom:-.12em;
  height:var(--pen);
  background:#001F93;
  transform:rotate(-2deg);
  pointer-events:none;
}
#audience .mediakit span{display:block;white-space:nowrap}
#audience .mediakit a{color:#001F93;text-decoration-thickness:1.5px;text-underline-offset:.14em}

/* The script and display words stay distinct: same treatment, intentional gap. */
#audience .h-lg{line-height:.92}
#audience .h-lg .it{
  margin:0 0 .12em;
  padding:0;
  line-height:.72;
  transform:translateX(-.025em);
}

/* ---- stat bubbles -------------------------------------------------------- */
#audience .aud{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr)) !important;
  gap:clamp(.2rem,.55vw,.55rem) !important;
  margin-bottom:clamp(.8rem,1.9vw,1.7rem);
  align-items:center;
}
#audience .aud__cell:nth-child(n){
  position:relative;
  clip-path:none;
  grid-column:span 1 !important;
  width:100%;max-width:none;margin:0;
  min-height:0 !important;height:auto;
  display:flex;flex-direction:column;
  align-items:center;justify-content:center;
  text-align:center;
  padding:5% 7% 8% !important;
  background:transparent;border:0;border-radius:0;
transform:none;overflow:visible;
  color:var(--ink);
}
/* The contours are raster brush drawings — each cell takes its own art's aspect
   ratio so the drawn ellipse fills the box and the figures sit inside it. */
/* Redrawn by tools/make-marks.py: two loose loops per cell, drawn as vector
   paths so the page can stroke them with the one --pen width; only the soft
   colour wash is still a raster. The viewBox is the loop body, so it lands on
   the cell box and the tails hang outside it, as drawn. */
#audience .aud__cell:nth-child(1){
  --aud-wash:url("../assets/audience-wash-one.png?v=0918a");
  --aud-ink:#146DF8;
  aspect-ratio:1.3605;
}
#audience .aud__cell:nth-child(2){
  --aud-wash:url("../assets/audience-wash-two.png?v=0918a");
  --aud-ink:var(--pink);
  aspect-ratio:1.3605;
}
#audience .aud__cell:nth-child(3){
  --aud-wash:none;
  --aud-ink:#7F7468;
  aspect-ratio:1.3605;
}
#audience .aud__cell:nth-child(4){
  --aud-wash:url("../assets/audience-wash-four.png?v=0918a");
  --aud-ink:#0A60F6;
  aspect-ratio:1.3605;
}
#audience .aud__cell::before{
  content:"" !important;
  display:block !important;
  position:absolute;z-index:0;inset:0;
  background:var(--aud-wash) 0 0/100% 100% no-repeat;
  pointer-events:none;
}
#audience .aud__loop{
  position:absolute;z-index:0;inset:0;
  width:100%;height:100%;overflow:visible;
  fill:none;
  stroke:var(--aud-ink);
  stroke-width:var(--pen);
  stroke-linecap:round;stroke-linejoin:round;
  pointer-events:none;
}
#audience .aud__loop path{ vector-effect:non-scaling-stroke; }
#audience .aud__cell::after{content:none;display:none}
#audience .aud__ring{display:none !important}
#audience .aud__cell > p{position:relative;z-index:1}
#audience .aud__k{margin:0 0 .22rem;max-width:13ch;opacity:.92}
#audience .aud__v{
  margin:.02em 0 !important;color:#143fae !important;
}
#audience .aud__n{margin-top:.12rem !important;max-width:none;white-space:nowrap;line-height:1.3;opacity:.86}
#audience .aud__cell:nth-child(n) .aud__k,
#audience .aud__cell:nth-child(n) .aud__n{color:var(--ink)}
/* The loops are drawn to the cell box, so the figures are sized to it too (cqw of the
   cell's inner width): the text keeps the same place inside its loop at every width. */
#audience .aud__cell:nth-child(n){container-type:inline-size}
#audience .aud .aud__k{font-size:5.4cqw}
#audience .aud .aud__v{font-size:24cqw}
#audience .aud .aud__n{font-size:6.4cqw}

/* ---- the lower row ------------------------------------------------------- */
#audience .audsplit{
  display:grid;
  grid-template-columns:minmax(0,.92fr) minmax(0,1.12fr);
  align-items:stretch;
  gap:clamp(1rem,2.2vw,2.1rem);
  margin-top:0;padding-top:0;border-top:0;
}
#audience .audlist.mkt{align-self:start}
#audience .mkt{--market-blue:#103aa8}
#audience .mkt h3,
#audience .pillars h3{
  font-size:var(--fs-h4);
  color:var(--market-blue,#103aa8);
  margin:0 0 clamp(.85rem,1.7vw,1.3rem);
}
/* Top markets — a grey track per row, a coloured fill inside it carrying the
   name, the percentage set outside the track in its own column. */
.mkt__row{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1fr) var(--mkt-val);
  align-items:center;
  column-gap:var(--mkt-gap);
  height:clamp(calc(18 * var(--pu)),1.65vw,calc(23 * var(--pu)));
  margin-bottom:clamp(.55rem,1.1vw,.92rem);
  --mkt-val:clamp(calc(32 * var(--pu)),3vw,calc(46 * var(--pu)));
  --mkt-gap:clamp(.6rem,1.25vw,1.1rem);
}
.mkt__row::before{
  content:"";position:absolute;z-index:0;
  left:0;top:0;height:100%;
  width:calc(100% - var(--mkt-val) - var(--mkt-gap));
  border-radius:calc(3 * var(--pu));background:#e9e4da;
}
.mkt__bar{
  position:relative;z-index:1;
  flex:none;width:var(--w,50%);min-width:max-content;height:100%;
  display:flex;align-items:center;
  padding-inline:clamp(.55rem,1vw,.85rem);
  white-space:nowrap;
  border-radius:calc(3 * var(--pu));background:var(--mkt-c,#BBD8EA);
}
.mkt__val{
  position:relative;z-index:1;
  margin:0;min-width:0;padding:0;height:auto;
  display:block;text-align:left;
  border-radius:0;background:none;color:var(--market-blue,#103aa8);
}
.mkt__row:nth-of-type(1){--mkt-c:var(--market-blue,#103aa8)}
.mkt__row:nth-of-type(2){--mkt-c:var(--pink)}
.mkt__row:nth-of-type(3){--mkt-c:#B9D6EA}
.mkt__row:nth-of-type(4){--mkt-c:#E2DAC9}
.mkt__row:nth-of-type(1) .mkt__bar{color:#fff}
.mkt__row:nth-of-type(2) .mkt__bar,
.mkt__row:nth-of-type(3) .mkt__bar,
.mkt__row:nth-of-type(4) .mkt__bar{color:var(--ink)}
.mkt__row:nth-of-type(n) .mkt__val{color:var(--market-blue,#103aa8)}

/* ---- content pillars ----------------------------------------------------
   Folder positions, sizes and the cutout are set as fractions of this box, read
   off the reference: yellow upper-left, rose lower-left, green top-right, blue
   mid-right, the cutout filling the middle. Accents are plain blue strokes. */
.pillars{
  position:relative;
  display:block;
  min-height:clamp(calc(225 * var(--pu)),22vw,calc(285 * var(--pu)));
  padding-left:clamp(1rem,2.4vw,2.2rem);
  isolation:isolate;
  overflow:visible;
}
#audience .pillars.rv.in,
#audience .audlist.rv.in{clip-path:none}
.pillars__list{list-style:none;margin:0;padding:0}
.pillars__item{
  position:absolute;
  width:18%;
  text-align:center;
}
.pillars__folder{
  position:relative;display:block;
  width:100%;aspect-ratio:1.2/.86;
  border-radius:calc(6 * var(--pu)) calc(8 * var(--pu)) calc(7 * var(--pu)) calc(7 * var(--pu));
  background:var(--pillar-c);
}
.pillars__folder::before{
  content:"";position:absolute;
  width:46%;height:17%;
  left:0;top:-13%;
  border-radius:calc(6 * var(--pu)) calc(6 * var(--pu)) 0 0;
  background:inherit;
}
.pillars__folder::after{
  content:"";position:absolute;
  inset:22% 6% 6%;
  border-radius:calc(4 * var(--pu));
  background:linear-gradient(150deg,rgba(255,255,255,.4),rgba(255,255,255,.04) 62%);
}
/* the name is wider than its folder, so it gets its own box centred on it */
.pillars__name{
  position:relative;z-index:2;
  display:block;width:250%;
  margin-top:.55em;
  color:#15305c;
  overflow-wrap:break-word;
}
.pillars__item--sun{--pillar-c:#F0C94B;left:11%;top:20%}
.pillars__item--rose{--pillar-c:var(--pink);left:3%;top:62%}
.pillars__item--leaf{--pillar-c:#8FAE7E;left:auto;right:5%;top:10%;text-align:right}
.pillars__item--sky{--pillar-c:#7FAFCE;left:auto;right:4%;top:53%;text-align:right}
.pillars__item--sun .pillars__name,
.pillars__item--rose .pillars__name{margin-inline:-75%}
.pillars__item--leaf .pillars__name{margin-left:-150%;margin-right:0}
/* the longest name wraps instead of reaching back across the cutout */
.pillars__item--sky .pillars__name{width:125%;margin-left:-25%;margin-right:0}
/* Short blue rays sit outside the folders; they never cross the composition. */
.pillars::before,.pillars::after,
.pillars__marks::before,.pillars__marks::after{content:none;display:none}
.pillars__marks{position:absolute;inset:0;z-index:4;pointer-events:none}
.pillars__ray{
  position:absolute;
  display:block;
  width:calc(22 * var(--pu));height:calc(8 * var(--pu));opacity:1;
  /* the #ways dash (path wd1) at a calc(3 * var(--pu)) pen: 96-unit box drawn calc(22 * var(--pu)) wide */
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 96 35'%3E%3Cpath d='M3 18.5C27 16.1 51 15.7 93 18.5' fill='none' stroke='%23001F93' stroke-width='13' stroke-linecap='round'/%3E%3C/svg%3E") center/100% 100% no-repeat;
}
/* Yellow folder rays, left-hand side. */
.pillars__ray--1{left:3%;top:25%;transform:rotate(-27deg)}
.pillars__ray--2{left:2%;top:35%;transform:rotate(25deg)}
/* Green folder rays, outside its top-right edge. */
.pillars__ray--3{right:1%;top:8%;transform:rotate(-29deg)}
.pillars__ray--4{right:0;top:18%;transform:rotate(27deg)}
/* Blue folder rays, outside its right edge. */
.pillars__ray--5{right:0;top:56%;transform:rotate(-27deg)}
.pillars__ray--6{right:1%;top:66%;transform:rotate(25deg)}
.pillars__image{
  position:absolute;z-index:1;
  left:31%;top:auto;bottom:-12%;
  display:block;
  width:62%;
  height:auto;
  filter:drop-shadow(calc(6 * var(--pu)) calc(8 * var(--pu)) calc(9 * var(--pu)) rgba(29,62,31,.16));
}

@media(max-width:1023px){
  #audience .head{margin-bottom:clamp(1.3rem,2.6vw,2rem)}
  #audience .aud{gap:clamp(.5rem,2vw,1.6rem) !important}
  #audience .audsplit{grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:clamp(1rem,2.4vw,1.8rem)}
  .pillars{--fw:clamp(calc(50 * var(--pu)),7vw,calc(80 * var(--pu)));min-height:clamp(calc(230 * var(--pu)),26vw,calc(285 * var(--pu)))}
  .pillars__item--sun{left:8%;top:12%}
  .pillars__item--rose{left:0;top:52%}
  .pillars__item--sky{top:52%}
  .pillars__image{width:66%;left:28%;right:auto;bottom:-10%}
  #audience .mediakit{margin-top:clamp(1.2rem,2.4vw,1.8rem)}
}
@media(max-width:899px){
  /* small screens: the wordmark holds one line */
  #audience .h-lg .it{margin:0;padding-right:.16em;transform:none}
}
@media(max-width:700px){
  /* phones: the four loops go 2-up (above this they hold one row) */
  #audience .aud{grid-template-columns:repeat(2,minmax(0,1fr)) !important;gap:.45rem !important;justify-items:center}
  #audience .aud__cell:nth-child(n){max-width:min(100%,calc(215 * var(--pu)))}
}
/* 701-1023: each pair of rays hangs off its own folder (offsets in % of the folder's
   width), so they point out of it at any size instead of landing on it */
@media(min-width:701px) and (max-width:1023px){
  /* markets + pillars sit a tenth of their height lower, clear of the loops above */
  #audience .audsplit{padding-top:3vw}
  .pillars__ray{display:none}
  .pillars__item--sun::before,.pillars__item--sun::after,
  .pillars__item--leaf::before,.pillars__item--leaf::after,
  .pillars__item--sky::before,.pillars__item--sky::after{
    content:"";position:absolute;top:0;z-index:4;
    width:calc(22 * var(--pu));height:calc(8 * var(--pu));pointer-events:none;
    background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 96 35'%3E%3Cpath d='M3 18.5C27 16.1 51 15.7 93 18.5' fill='none' stroke='%23001F93' stroke-width='13' stroke-linecap='round'/%3E%3C/svg%3E") center/100% 100% no-repeat;
  }
  .pillars__item--sun::before{left:calc(calc(-22 * var(--pu)) - 16%);margin-top:6%;transform:rotate(28deg)}
  .pillars__item--sun::after{left:calc(calc(-22 * var(--pu)) - 16%);margin-top:42%;transform:rotate(-20deg)}
  .pillars__item--leaf::before{left:calc(100% + 2px);margin-top:-16%;transform:rotate(-50deg)}
  .pillars__item--leaf::after{left:calc(100% + 12%);margin-top:16%;transform:rotate(-18deg)}
  .pillars__item--sky::before{left:calc(100% + 12%);margin-top:10%;transform:rotate(-22deg)}
  .pillars__item--sky::after{left:calc(100% + 12%);margin-top:46%;transform:rotate(20deg)}
}
@media(max-width:700px){
  #audience .audsplit{grid-template-columns:1fr;gap:1.6rem}
  .pillars{
    min-height:0;max-width:calc(340 * var(--pu));width:100%;
    border-left:0;padding-left:0;
    padding-top:1.2rem;border-top:1px solid rgba(21,20,15,.28);
    justify-self:center;
  }
  .pillars__list{
    display:grid;grid-template-columns:1fr 1fr;
    gap:.9rem 1.1rem;margin-top:.2rem;
  }
  .pillars__item{position:static;width:auto}
  .pillars__folder{width:calc(74 * var(--pu));margin-inline:auto}
  /* on a phone the cutout sits under the 2x2 rather than across its labels */
  .pillars__image{
    position:relative;z-index:1;
    inset:auto;
    display:block;width:62%;margin:.5rem -4% 0 auto;
  }
  .pillars__name,
  .pillars__item--sky .pillars__name{
    width:auto;
    margin:.5em 0 0;
    line-height:1.3;
  }
  .pillars__item--rose .pillars__name{position:relative;z-index:4;}
  .pillars__ray--1{left:3%;top:25%}
  .pillars__ray--2{left:4%;top:35%}
  .pillars__ray--3{right:4%;top:22%}
  .pillars__ray--4{right:2%;top:32%}
  .pillars__ray--5{right:2%;top:58%}
  .pillars__ray--6{right:4%;top:68%}
  #audience .mediakit{margin-top:1.6rem}
}
/* WAYS TO WORK TOGETHER — reference layout */
:root{ --pink-num:var(--pink); --pink-hot:var(--pink); }
#ways .tracks{
  position:relative;
  align-items:start; column-gap:clamp(1.2rem,3vw,calc(44 * var(--pu)));
  max-width:calc(840 * var(--pu)); margin-inline:auto;
}
#ways .track{
  background:#001F93; /* the hero card blue (--hero-blue) */
  color:#fff;
  min-width:0; /* the portrait must not set the column width */
  padding:clamp(1.1rem,2vw,1.7rem) clamp(1.3rem,2.2vw,2rem) clamp(.75rem,1.3vw,1.1rem);
}
#ways .track > *{ max-width:none; margin-left:0; margin-right:0; }
#ways .track--b > *{ max-width:none; margin-left:0; margin-right:0; }
/* the left card rides higher than the right one */
@media(min-width:1024px){
  #ways .tracks{transform:translateY(-5%)}
}
@media(min-width:1024px){
  #ways .track{ margin-top:calc(-1 * clamp(calc(10 * var(--pu)),1.2vw,calc(22 * var(--pu)))); }
  #ways .track--b{ margin-top:clamp(calc(10 * var(--pu)),1.2vw,calc(22 * var(--pu))); }
}
/* two-up on tablet: cards 10% narrower than their half of the row, equal height,
   left one raised and right one dropped like the desktop pair */
@media(min-width:701px) and (max-width:1023px){
  #ways .tracks{
    grid-template-columns:repeat(2, calc((100% - clamp(1.2rem,3vw,calc(44 * var(--pu)))) / 2 * .9));
    justify-content:center; align-items:stretch;
  }
  #ways .track{ translate:0 calc(-44 * var(--pu)); }
  #ways .track--b{ translate:0 calc(-12 * var(--pu)); }
}
/* the portrait that opens each card */
#ways .track__photo{
  display:block; width:100%; height:auto;
  aspect-ratio:4/3; object-fit:cover; object-position:50% 22%;
  margin:0 0 clamp(.9rem,1.7vw,1.4rem);
}
/* painted dashes flanking the pair */
#ways .ways__strokes{
  position:absolute; top:50%; translate:0 -50%;
  width:clamp(calc(96 * var(--pu)),11vw,calc(150 * var(--pu))); height:auto;
  overflow:visible;
  fill:none; stroke:var(--cobalt); stroke-width:var(--pen);
  stroke-linecap:round;
  pointer-events:none;
}
#ways .ways__strokes path{ vector-effect:non-scaling-stroke; }
#ways .ways__strokes--l{ right:calc(100% + clamp(calc(12 * var(--pu)),2.6vw,calc(52 * var(--pu)))); }
#ways .ways__strokes--r{ left:calc(100% + clamp(calc(12 * var(--pu)),2.6vw,calc(52 * var(--pu)))); scale:-1 1; }
/* per-card dashes, phones only (see the max-width:calc(700 * var(--pu)) block) */
#ways .track__strokes{
  display:none;
  position:absolute; top:50%; translate:0 -50%;
  width:var(--strk); height:auto;
  overflow:visible;
  fill:none; stroke:var(--cobalt); stroke-width:var(--pen);
  stroke-linecap:round;
  pointer-events:none;
}
#ways .track__strokes path{ vector-effect:non-scaling-stroke; }
#ways .track__strokes--l{ right:calc(100% + calc(8 * var(--pu))); }
#ways .track__strokes--r{ left:calc(100% + calc(8 * var(--pu))); scale:-1 1; }
/* 701-1199: the pair's dashes on the outer sides only, sized to the room beside the cards
   (about 8.5vw next to the inset tablet cards, (100vw - calc(840 * var(--pu)))/2 once they fill the row) */
@media(min-width:701px) and (max-width:1023px){
  #ways .tracks{ --strk:max(5.5vw, min(calc(150 * var(--pu)), (100vw - calc(840 * var(--pu))) / 2 - calc(30 * var(--pu)))); }
  #ways .track{ overflow:visible; }
  #ways .track:not(.track--b) .track__strokes--l,
  #ways .track--b .track__strokes--r{ display:block; }
}
@media(max-width:1023px){ /* below this the pair fills the wrap — no room beside it */
  #ways .ways__strokes{ display:none; }
}
/* this design runs both cards left-aligned — drop the older mirrored layout */
#ways .track--b h3.track__tag{ margin-left:0; justify-content:flex-start; text-align:left; }
#ways .track--b ol{ margin-left:0; width:auto; }
#ways .track__arrows{
  display:flex; justify-content:space-between; align-items:center;
  gap:1rem; margin:0 0 clamp(.7rem,1.4vw,1.1rem);
}
#ways .track__arrows svg{ width:clamp(calc(20 * var(--pu)),2vw,calc(28 * var(--pu))); height:auto; flex:0 0 auto;
  fill:none; stroke:#fff; stroke-width:1.6; }
#ways .track__head{
  display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between;
  gap:.5rem 1.2rem; margin-bottom:clamp(1.1rem,2.2vw,1.9rem);
}
/* the tag always takes its own row and never breaks: the card is ~calc(335 * var(--pu)) wide,
   and "creator partnerships" needs the lot at this size */
#ways .track h3.track__tag{
  display:block; flex:1 0 100%; max-width:none; text-wrap:balance;
  color:#fff;
  background:none; border:0; padding:0;
  margin:0;
}
#ways .track__sub{
  flex:0 1 auto; text-align:left;
  color:rgba(255,255,255,.8);
  margin:0;
}
#ways .track ol{ counter-reset:ways; list-style:none; margin:0; padding:0; border-top:0; }
#ways .track ol li{
  display:flex; align-items:center; gap:clamp(.9rem,1.8vw,1.6rem);
  padding:0 0 clamp(.6rem,1.1vw,.9rem);
  margin:0 0 clamp(.6rem,1.1vw,.9rem);
  border-bottom:1px solid rgba(255,255,255,.4);
}
#ways .track ol li:last-child{ margin-bottom:0; }
#ways .track ol li::before{
  content:counter(ways, decimal-leading-zero);
  flex:0 0 auto;
  font-family:var(--sans); font-weight:700;
  font-size:var(--t-14); line-height:1.2; letter-spacing:.12em;
  color:var(--pink-num);
  margin:0;
}
#ways .track ol b{
  flex:1 1 auto;
  color:#fff;
}
#ways .track ol .arr{
  flex:0 0 auto; width:clamp(calc(20 * var(--pu)),1.8vw,calc(26 * var(--pu))); height:auto;
  fill:none; stroke:#fff; stroke-width:1.6;
}
#ways .track--b ol li{ text-align:left; }
/* TYPOGRAPHY CONSISTENCY */
/* The box is sized to the wave (--boxw), so its type is sized to the box (cqw of its width). */
.typewave__box{ container-type:inline-size; }
.typewave__box p{
  font-family:var(--sans); font-weight:500;
  font-size:7.4cqw; line-height:1.2; letter-spacing:var(--ls-flat);
}
/* the type fills the front: heading under the tape, button at the base, body between.
   "Send me your scope." holds one line and sets the body size (about the front's width);
   "Custom projects are welcome." wraps balanced under it */
.typewave__box p span{ display:block; white-space:nowrap; }
.typewave__box p span + span{ white-space:normal; text-wrap:balance; }
.typewave__box strong{ font-size:9.1cqw; line-height:1.1; margin-bottom:.3em; }
.typewave__box .btn{ font-size:7.6cqw; padding:.5em .9em; flex-shrink:0; white-space:nowrap; }
/* the box art's lower-right corner is cut away by its perspective, so the wave showed
   through it as a blue sliver at the screen edge; that corner is filled with the pink
   paper the box stands on (the art's edge runs from 79.6% down its right side to 81.4%
   along its base) */
@media(min-width:601px){
  .typewave__box::after{
    content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
    background:var(--pink-paper) var(--pink);background-size:calc(900 * var(--pu)) auto;
    clip-path:polygon(99.4% 79.6%,100% 79.6%,100% 100%,81.4% 100%);
  }
}
/* the button sits low on the face, where the box's horizontals run steeper: 1.5deg more */
.typewave__box .btn{ transform:skewY(1.5deg); }
.typewave__box .btn:hover{ transform:skewY(1.5deg) translate(-2px,-2px); }
.typewave__boxface{ justify-content:space-between; gap:0; }
#audience .aud .aud__k{ line-height:1.15; }
@media(max-width:819px){
  #work .cat{ padding-inline:clamp(.75rem,1.5vw,1rem); }
}
@media(max-width:1023px){
  #ways .track > *,
  #ways .track--b > *{ max-width:100%; }
}
@media(max-width:700px){
  #ways .tracks{
    grid-template-columns:1fr;
    row-gap:clamp(1.5rem, 5vw, 2.2rem);
  }
  /* that gap is for between the cards; the cards' subgrid rows would inherit it */
  #ways .track{ row-gap:0; }
  /* phones: each card narrows to leave room for its own painted dashes either side */
  #ways .tracks{ --strk:clamp(calc(32 * var(--pu)),10vw,calc(56 * var(--pu))); grid-template-columns:min(100vw - 2 * (var(--strk) + calc(12 * var(--pu))), calc(420 * var(--pu))); justify-content:center; }
  #ways .track{ overflow:visible; }
  #ways .track__strokes{ display:block; }
  #ways .track h3.track__tag{ font-size:1.125rem; }
  #ways .track ol li{ gap:.7rem; }
  #ways .track ol b{ font-size:.9375rem; }
  #ways .track--b > *{ margin-left:0; }
  #ways .track--b h3,
  #ways .track--b .track__sub{ text-align:left; justify-content:flex-start; }
  #ways .track--b .track__tag{ align-self:flex-start; }
  #ways .track--b ol li{ text-align:left; }
}
@media(max-width:819px){
  #contact .contact__grid{ grid-template-columns:1fr; }
}
/* The halftone cutout — one placement at every width. contact-figure.png is already
   trimmed the way the artwork crops it (flush to its left and bottom edges), so it sits at
   left:0/bottom:0 and bleeds off both. --fig-w also sets where the footer rule starts. */
#contact{
  --fig-w:clamp(calc(230 * var(--pu)), 38vw, calc(720 * var(--pu)));
  --rule-b:calc((var(--fig-w) + 2px) * 1099 / 1200 * .235 - 1px);
  --pad-b:clamp(1.4rem,2.6vw,2.2rem);
  isolation:isolate;
}
#contact::before{
  content:"";
  display:block;
  position:absolute;
  z-index:1;
  left:-1px;
  bottom:-1px;
  width:calc(var(--fig-w) + 2px);
  aspect-ratio:1200/1099;
  background:url("../assets/contact-figure.png?v=2") 0 0/100% 100% no-repeat;
  pointer-events:none;
}
/* Full desktop needs more breathing room around the envelope composition. */
@media(min-width:1024px){
  #contact{--fig-w:clamp(calc(360 * var(--pu)),30vw,calc(600 * var(--pu)));}
}
@media(max-width:819px){
  #contact{ background-image:var(--pink-paper); background-size:100% auto; background-position:top center; background-repeat:repeat-y; }
  #contact .contact__grid{ margin-bottom:0; }
  /* the rule sits 1.25rem under the envelope's visible bottom (--env-over = how far the
     envelope hangs below the grid) */
  #contact .footer{ justify-content:flex-end; padding-top:0; min-height:calc(var(--env-over, 0px) + 1.25rem + var(--rule-b) - var(--pad-b) + 2px); }
}
@media(min-width:768px) and (max-width:819px){
  /* margin-bottom:-7vw plus the 5% translate on .contact-envelope-composition */
  #contact{ --env-over:calc(7vw + calc(35 * var(--pu))); }
}
@media(max-width:640px){
  #contact .contact__grid{ row-gap:calc(7 * var(--pu)); margin-bottom:max(0px, var(--fig-w) * .61 - clamp(2.3rem,5vw,4.2rem) - 3.3rem); }
  #contact .footer{ padding-top:3.2rem; min-height:0; }
  #contact .contact__grid > div > .h-lg{ margin-bottom:1px; }
  #contact a.big{ border-bottom-color:transparent; }
  #contact .sociallinks{ gap:1.5rem; margin-top:1.125rem; }
  #contact .contact-paper .form .btn{ padding-inline:1em; }
  #contact .contact-paper select{
    font-size:clamp(calc(14 * var(--pu)),3.6vw,var(--t-16));
    padding-right:1.5rem;
  }
  #contact .contact-paper .pick{ font-size:clamp(calc(14 * var(--pu)),3.6vw,var(--t-16)); }
  #contact .contact-paper .btn{ white-space:nowrap; }
}
/* LAYOUT QA */
#proof{
  padding-block:clamp(2.3rem, 5vw, 4.2rem);
}
#proof{ padding-top:calc(10.5 * var(--capvw) / 100); }
@media(max-width:640px){
  #proof{ padding-block:2.2rem; }
}
/* WAYS — one breathing gap (--air) above the title, between title and cards, and between
   the cards and the wave. Each regime subtracts what its own layout already puts there
   (the tracks' top padding, the card stagger, the wave's overlap), measured in vw + px. */
#ways{ --air:clamp(3rem, 5vw, 4.5rem); padding-top:var(--air); }
@media(max-width:700px){
  #ways .head{ margin-bottom:max(0px, var(--air) - 8.3vw); }
}
@media(max-width:600px){
  #ways{ padding-bottom:max(0px, var(--air) - 2.6vw); }
}
@media(min-width:601px) and (max-width:700px){
  #ways{ padding-bottom:calc(var(--air) + 3.3vw); }
}
@media(min-width:701px) and (max-width:1023px){
  #ways .head{ margin-bottom:max(0px, var(--air) - 8.3vw + calc(48 * var(--pu))); }
  #ways{ padding-bottom:calc(var(--air) + 3.1vw - calc(11 * var(--pu))); }
}
@media(min-width:1024px){
  #ways .head{ margin-bottom:max(0px, var(--air) - 3.6vw); }
  #ways{ padding-bottom:calc(var(--air) + 2.45vw - calc(26 * var(--pu))); }
}
@media(max-width:767px){
  #proof{ padding-top:calc(9vw + calc(18 * var(--pu))); }
}
#contact{ overflow-x:clip; }
@media(max-width:1023px){
  #ways{ background-size:cover; }
}
#ways .track{
  background-size:cover;
}
