:root{--red:#d9382b;--paper:#fffefa;--ink:#26231f;--muted:#6c6761;--line:#dedbd5;--gutter:3.65vw;--mono:'IBM Plex Mono',monospace;--sans:'DM Sans',Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:2rem}body{margin:0;background:var(--paper);color:var(--red);font-family:var(--sans);font-size:1rem}a{color:inherit;text-decoration:none}button{font:inherit}a:focus-visible,button:focus-visible{outline:2px solid currentColor;outline-offset:6px}::selection{background:var(--red);color:var(--paper)}.skip-link{position:fixed;left:1rem;top:-6rem;background:var(--red);color:white;padding:1rem;z-index:10}.skip-link:focus{top:1rem}.site-header{padding:1.7rem var(--gutter) 0;display:flex;align-items:flex-start;justify-content:space-between;gap:1.5rem;font:500 .75rem/1.4 var(--mono);letter-spacing:.025em}.descriptor{flex:1}.edition{flex:1;text-align:center;padding-top:.15rem;white-space:nowrap}nav{flex:1;display:flex;justify-content:flex-end;gap:1.5rem;white-space:nowrap}nav a{font-size:.875rem}nav a:hover,.explore:hover{text-decoration:underline;text-underline-offset:5px}.hero{padding:2.65rem var(--gutter) 0}.wordmark{display:flex;justify-content:space-between;position:relative;font-family:'Anton','Arial Black',sans-serif;font-weight:400;font-size:30.5vw;line-height:.93;margin:0;letter-spacing:-.03em;padding-right:1.8vw}.wordmark span{display:block}.wordmark sup{position:absolute;right:0;top:.5rem;font:500 1.4rem/1 var(--sans);letter-spacing:0}.hero-caption{position:relative;display:flex;align-items:center;justify-content:center;margin:3.4rem 0 3.7rem}.hero-caption p{font:400 clamp(1rem,1.7vw,1.5rem)/1.35 var(--mono);text-align:center;margin:0;letter-spacing:-.04em}.explore{position:absolute;right:0;bottom:.2rem;font:500 .75rem/1.3 var(--mono);display:flex;align-items:center;gap:1.6rem}.explore span{font:400 1.7rem/1 var(--sans)}.portraits{padding:0 var(--gutter)}.gallery-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--gutter)}figure{margin:0}.image-wrap{overflow:hidden;aspect-ratio:4/5;border-radius:3px}.image-wrap img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .7s cubic-bezier(.2,.65,.3,1)}.portrait-card:hover img{transform:scale(1.025)}.red{background:#b82824}.grey{background:#e1e2e4}figcaption{display:flex;justify-content:space-between;gap:1rem;padding-top:1rem;font:500 .75rem/1.5 var(--mono);letter-spacing:.01em}.concept-note{font:400 .75rem/1.5 var(--mono);color:var(--muted);text-align:right;margin:1.5rem 0 0}@media(min-width:1600px){.site-header{padding-top:2rem}.hero{padding-top:3.7rem}.hero-caption{margin:4rem 0 4.5rem}}@media(max-width:760px){:root{--gutter:5vw}.site-header{padding-top:1.25rem;gap:1rem}.edition{display:none}nav{gap:1rem;align-items:flex-start}nav a{font-size:.75rem}nav a:nth-child(2){display:none}.hero{padding-top:2.75rem}.wordmark{font-size:29vw;line-height:1}.wordmark sup{font-size:.9rem;top:.1rem}.hero-caption{margin:2.4rem 0 2.7rem}.hero-caption p{font-size:1rem}.explore{display:none}.gallery-grid{gap:2rem;grid-template-columns:1fr}.image-wrap{aspect-ratio:4/5}figcaption{font-size:.75rem;padding-top:.8rem}.concept-note{text-align:left;margin-top:1.5rem}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
.studio{padding:7rem var(--gutter);display:grid;grid-template-columns:1fr 2fr;gap:var(--gutter);margin-top:3rem;border-top:1px solid var(--line)}.section-label{display:flex;justify-content:space-between;gap:2rem;font:500 .875rem/1.5 var(--mono)}.studio>.section-label{justify-content:flex-start;gap:2.5rem;padding-top:.5rem}.studio>.section-label span:last-child{font-family:var(--sans);font-size:1.8rem;line-height:1}.studio h2{font-weight:500;font-size:clamp(2.5rem,5.4vw,5.5rem);line-height:1.06;letter-spacing:-.065em;margin:0 0 2rem}.studio-content>p{max-width:35rem;font-size:clamp(1.125rem,1.55vw,1.45rem);line-height:1.55;letter-spacing:-.02em;color:var(--ink);margin:0}.studio-details{display:grid;grid-template-columns:1fr 1fr;gap:2rem;margin-top:3rem}.studio-details h3{font:500 .875rem/1.5 var(--mono);margin:0 0 1rem}.studio-details p{font:400 1rem/1.6 var(--sans);color:var(--ink);margin:0}.feature-portrait{padding:0 var(--gutter) 6rem}.image-wrap.wide{aspect-ratio:3/2;background:#c8c9ca}.pop-ups{padding:3rem var(--gutter) 4.5rem;background:var(--red);color:var(--paper)}.popup-content{display:grid;grid-template-columns:2fr 1fr;gap:4rem;align-items:end;margin-top:4.5rem}.popup-content h2{font:400 clamp(3rem,7.8vw,8.5rem)/1.05 var(--sans);letter-spacing:-.075em;margin:0}.popup-info{max-width:23rem}.popup-info p{font-size:1.125rem;line-height:1.5;margin:0 0 1rem}.launch-label{display:block;font:400 .75rem/1.5 var(--mono);margin-top:3rem}footer{padding:2.5rem var(--gutter);display:flex;align-items:center;justify-content:space-between;gap:2rem}.footer-brand{font:400 3.5rem/1 'Anton',sans-serif;letter-spacing:-.025em}footer p{font:400 .75rem/1.5 var(--mono);margin:0 auto 0 0}footer p span{color:var(--muted)}.back-top{display:flex;gap:2.5rem;font:500 .875rem/1.4 var(--mono)}.back-top span{font-family:var(--sans);font-size:1.4rem}.back-top:hover{text-decoration:underline;text-underline-offset:5px}@media(max-width:760px){.studio{grid-template-columns:1fr;padding-top:3rem;padding-bottom:3.5rem;gap:2.5rem;margin-top:2.5rem}.studio>.section-label{justify-content:space-between}.studio h2{font-size:2.7rem;margin-bottom:1.5rem}.studio-content>p{font-size:1.125rem}.studio-details{margin-top:2.5rem;gap:1.5rem}.feature-portrait{padding-bottom:3rem}.image-wrap.wide{aspect-ratio:4/3}.image-wrap.wide img{object-position:50% 50%}.pop-ups{padding-top:1.7rem;padding-bottom:2.75rem}.pop-ups .section-label{font-size:.75rem}.popup-content{grid-template-columns:1fr;gap:2rem;margin-top:3rem}.popup-content h2{font-size:clamp(3.3rem,12vw,5.5rem);letter-spacing:-.07em}.popup-info{max-width:24rem}.launch-label{margin-top:2rem}footer{padding-top:2rem;padding-bottom:2rem;gap:1.25rem;flex-wrap:wrap}.footer-brand{font-size:3rem}footer p{font-size:.75rem}.back-top{font-size:.75rem;gap:1rem;margin-left:auto}.concept-note{font-size:.75rem}.wordmark{padding-right:0}}@media(max-width:380px){figcaption{gap:.5rem;flex-wrap:wrap}.section-label{gap:1rem}.back-top{margin-left:0}}
.gallery-grid {
  --gallery-gap: clamp(1rem, 2.4vw, 2.5rem);
  /* Fit readable portraits into the available space, up to four across. */
  grid-template-columns: repeat(auto-fit, minmax(min(100%, max(15rem, calc((100% - 3 * var(--gallery-gap)) / 4))), 1fr));
  column-gap: var(--gallery-gap);
  row-gap: clamp(2rem, 3vw, 2.5rem);
}

.gallery-grid .portrait-card {
  min-width: 0;
}

.gallery-grid figcaption {
  flex-direction: column;
  gap: .25rem;
  overflow-wrap: anywhere;
}

.cobalt { background: #0862d7; }
.tangerine { background: #ff8b0a; }
.fuchsia { background: #f90a82; }
.lemon { background: #ffe632; }
.emerald { background: #24c94a; }
.noir { background: #050505; }

.request-popup { display:grid; grid-template-columns:minmax(0, 1fr) minmax(0, 1.3fr); gap:clamp(2rem,6vw,7rem); padding:6rem var(--gutter); border-bottom:1px solid var(--line); }
.request-eyebrow { font:500 .8rem/1.5 var(--mono); margin:0 0 2rem; }
.request-intro h2 { font-weight:500; font-size:clamp(2.8rem,4.8vw,5.5rem); line-height:1.06; letter-spacing:-.06em; margin:0 0 2rem; }
.request-intro>p:not(.request-eyebrow) { max-width:30rem; color:var(--ink); font-size:1.125rem; line-height:1.65; }
.request-intro .request-note { margin-top:2rem; }
.request-form { min-width:0; color:var(--ink); }
.request-form h3 { color:var(--red); font-size:clamp(1.8rem,2.6vw,2.5rem); font-weight:500; letter-spacing:-.04em; margin:0 0 .5rem; }
.request-form-note { color:var(--muted); font-size:.8rem; line-height:1.6; margin:.75rem 0 1.5rem; }
.request-form fieldset { border:0; padding:0; margin:0; min-width:0; }
.request-fields { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:1.4rem 1.2rem; }
.request-full { grid-column:1/-1; }
.request-fields label { display:block; margin-bottom:.6rem; font-size:.85rem; font-weight:600; line-height:1.5; }
.request-fields label span { color:var(--muted); font-weight:400; }
.request-fields input, .request-fields select, .request-fields textarea { width:100%; min-width:0; min-height:48px; border:1px solid #c9c5bd; background:transparent; border-radius:0; color:var(--ink); padding:.85rem .8rem; font:400 1rem/1.45 var(--sans); }
.request-fields textarea { resize:vertical; }
.request-fields input:focus, .request-fields select:focus, .request-fields textarea:focus { outline:2px solid var(--red); outline-offset:2px; }
.request-fields ::placeholder { color:#79746c; opacity:1; }
.request-fields select { accent-color:var(--red); }
.request-fields select option { background:var(--paper); color:var(--ink); }
.request-fields select option:checked,.request-fields select option:hover,.request-fields select option:focus { background:var(--red); color:var(--paper); }
@supports (appearance:base-select) {
  .request-fields select,.request-fields select::picker(select) { appearance:base-select; }
  .request-fields select { cursor:pointer; align-items:center; gap:.75rem; }
  .request-fields select::picker-icon { color:var(--red); }
  .request-fields select::picker(select) { margin-block:.3rem; padding:.25rem; max-height:min(22rem,60vh); background:var(--paper); color:var(--ink); border:1px solid var(--line); border-radius:3px; box-shadow:0 8px 28px #26231f24; font:400 1rem/1.45 var(--sans); }
  .request-fields select option { min-height:44px; padding:.65rem .8rem; border-radius:2px; cursor:pointer; }
  .request-fields select option::checkmark { color:inherit; }
  .request-fields select option:focus-visible { outline:2px solid var(--paper); outline-offset:-4px; }
}
.request-fields .pupps-date-input { cursor:pointer; padding-right:3rem; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23d9382b' stroke-width='1.7'%3E%3Crect x='3' y='5' width='18' height='16' rx='1'/%3E%3Cpath d='M7 2v6m10-6v6M3 11h18'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right .85rem center; background-size:20px; }
.pupps-calendar.flatpickr-calendar { width:min(20rem,calc(100vw - 1.5rem)); background:var(--paper); color:var(--ink); border:1px solid var(--line); border-radius:4px; box-shadow:0 8px 28px #26231f24; font-family:var(--sans); }
.pupps-calendar .flatpickr-months { padding:.35rem 0; background:var(--red); border-radius:3px 3px 0 0; }
.pupps-calendar .flatpickr-months .flatpickr-month { background:transparent; color:var(--paper); fill:var(--paper); }
.pupps-calendar .flatpickr-current-month { font-size:1rem; }
.pupps-calendar .flatpickr-current-month .cur-month { font-weight:600; }
.pupps-calendar .flatpickr-current-month .numInputWrapper:hover { background:#ffffff20; }
.pupps-calendar .flatpickr-current-month .numInputWrapper span.arrowUp:after { border-bottom-color:var(--paper); }
.pupps-calendar .flatpickr-current-month .numInputWrapper span.arrowDown:after { border-top-color:var(--paper); }
.pupps-calendar .flatpickr-months .flatpickr-prev-month,.pupps-calendar .flatpickr-months .flatpickr-next-month { height:44px; width:40px; color:var(--paper); fill:var(--paper); }
.pupps-calendar .flatpickr-months .flatpickr-prev-month:hover svg,.pupps-calendar .flatpickr-months .flatpickr-next-month:hover svg { fill:var(--paper); }
.pupps-calendar .flatpickr-months [role="button"]:hover { background:#ffffff20; }
.pupps-calendar .flatpickr-months [role="button"]:focus-visible { outline:2px solid var(--paper); outline-offset:-5px; }
.pupps-calendar .flatpickr-innerContainer,.pupps-calendar .flatpickr-rContainer,.pupps-calendar .flatpickr-days { width:100%; }
.pupps-calendar .flatpickr-weekdays { padding-top:.3rem; height:2rem; }
.pupps-calendar span.flatpickr-weekday { color:var(--muted); font:500 .8125rem/1.4 var(--mono); }
.pupps-calendar .dayContainer { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); width:100%; min-width:0; max-width:none; padding:.25rem; }
.pupps-calendar .flatpickr-day { width:100%; max-width:none; height:40px; line-height:40px; border-radius:3px; color:var(--ink); font-size:.875rem; }
.pupps-calendar .flatpickr-day.prevMonthDay,.pupps-calendar .flatpickr-day.nextMonthDay { color:var(--muted); }
.pupps-calendar .flatpickr-day:hover,.pupps-calendar .flatpickr-day:focus { background:#fbe6e3; border-color:#fbe6e3; color:var(--red); }
.pupps-calendar .flatpickr-day.today { border-color:var(--red); color:var(--red); }
.pupps-calendar .flatpickr-day.today:hover,.pupps-calendar .flatpickr-day.today:focus { background:#fbe6e3; color:var(--red); }
.pupps-calendar .flatpickr-day.selected,.pupps-calendar .flatpickr-day.selected:hover,.pupps-calendar .flatpickr-day.selected:focus { background:var(--red); border-color:var(--red); color:var(--paper); }
.pupps-calendar .flatpickr-day:focus-visible { outline:2px solid var(--red); outline-offset:-3px; }
.pupps-calendar .flatpickr-day.selected:focus-visible { outline-color:var(--paper); }
.pupps-calendar.arrowTop:before,.pupps-calendar.arrowTop:after { border-bottom-color:var(--red); }
.pupps-calendar.arrowBottom:before,.pupps-calendar.arrowBottom:after { border-top-color:var(--paper); }
.request-consent { display:flex; align-items:flex-start; gap:.8rem; font-size:.82rem; line-height:1.6; margin:1.6rem 0; cursor:pointer; }
.request-consent input { flex:none; width:18px; height:18px; margin:3px 0 0; accent-color:var(--red); }
.request-submit { display:flex; justify-content:space-between; align-items:center; width:100%; min-height:58px; border:1px solid var(--red); padding:1rem 1.4rem; background:var(--red); color:var(--paper); cursor:pointer; font:500 .875rem/1.4 var(--mono); }
.request-submit:hover { background:#b92d22; }
.request-submit span { font-size:1.4rem; }
.request-form fieldset:disabled { opacity:.55; }
.request-status { line-height:1.65; margin:1rem 0 0; overflow-wrap:anywhere; }
.request-status:empty { display:none; }
.request-status.error { color:#a12c24; }
.request-status.success { padding:2rem; border:1px solid var(--line); background:#f2f1e9; }
.request-trap, .visually-hidden { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
@media(max-width:1050px) { .request-popup { grid-template-columns:1fr; gap:2rem; padding-top:3.5rem; padding-bottom:3.5rem; } .request-intro>p:not(.request-eyebrow) { max-width:42rem; } }
@media(max-width:540px) { .request-fields { grid-template-columns:1fr; } .request-eyebrow { margin-bottom:1.4rem; } }

.partners {
  display: grid;
  grid-template-columns: 1fr 2fr;
  gap: var(--gutter);
  padding: 5.5rem var(--gutter);
  border-bottom: 1px solid var(--line);
}

.partners h2 {
  margin: 0;
  font-size: clamp(2rem, 3.5vw, 3.5rem);
  font-weight: 500;
  line-height: 1.08;
  letter-spacing: -.045em;
}

.partner-list {
  list-style: none;
  margin: 0;
  padding: 0;
  border-top: 1px solid var(--line);
}

.partner-list li {
  border-bottom: 1px solid var(--line);
}

.partner-link {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 1.5rem;
  padding: 1.75rem 0;
}

.partner-name {
  display: block;
  font-size: clamp(1.375rem, 2.2vw, 2rem);
  line-height: 1.25;
  letter-spacing: -.025em;
}

.partner-domain {
  display: block;
  margin-top: .65rem;
  color: var(--muted);
  font: 400 .875rem/1.5 var(--mono);
}

.partner-arrow {
  font-size: 2rem;
}

.partner-link:hover .partner-name,
.partner-link:focus-visible .partner-name {
  text-decoration: underline;
  text-underline-offset: .2em;
  text-decoration-thickness: 1px;
}

@media (max-width: 760px) {
  .partners {
    grid-template-columns: 1fr;
    gap: 2rem;
    padding-top: 3rem;
    padding-bottom: 3rem;
  }
}

html {
  scroll-padding-top: calc(var(--header-height, 6rem) + 1rem);
}

[data-copy] { overflow-wrap: anywhere; }
.explore [data-copy], .back-top [data-copy] { font: inherit; }
footer p .footer-description { color: inherit; }
.site-header nav { flex-wrap: wrap; row-gap: 24px; }

.site-header {
  position: sticky;
  top: 0;
  z-index: 5;
  padding-bottom: 1.25rem;
  background: rgba(255, 254, 250, .96);
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
}

/* Large display-font text can hit-test outside its visible letters. */
.wordmark {
  pointer-events: none;
}

.site-header nav a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 12px 6px;
  margin: -12px -6px;
}

@media (min-width: 761px) {
  .site-header { display:grid; grid-template-columns:auto minmax(0,1fr) auto; }
}
@media (min-width: 761px) and (max-width: 1150px) {
  .site-header { grid-template-columns:auto minmax(0,1fr); }
  .site-header .edition { display:none; }
}

@media (max-width: 760px) {
  .site-header {
    display: grid;
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .site-header .descriptor {
    display: inline-flex;
    align-items: center;
    justify-self: start;
    min-height: 44px;
  }

  .site-header nav {
    justify-content: space-between;
    flex-wrap: wrap;
    column-gap: 16px;
    row-gap: 24px;
  }

  .site-header nav a,
  .site-header nav a:nth-child(2) {
    display: inline-flex;
    font-size: .8125rem;
  }
}

@media (min-width: 761px) and (max-width: 900px) {
  .site-header .edition {
    display: none;
  }
}

@media (max-width: 380px) {
  .site-header nav {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .site-header nav a {
    justify-self: start;
  }
}
