/* Kelly's makeup edit: expressive photographs, soft pink paper, inky type. */
body { font-size: 18px; line-height: 1.65; }
::selection { background: var(--accent); color: #171217; }
h1,h2,h3 { font-weight: 400; }
h1 { font-size: clamp(3.4rem,7.5vw,7rem); line-height: .98; letter-spacing: -.065em; }
h2 { font-size: clamp(2.4rem,4.7vw,4.5rem); line-height: 1.06; letter-spacing: -.045em; }
h3 { font-size: 2rem; letter-spacing: -.035em; }
a,button { -webkit-tap-highlight-color: transparent; }
a:focus-visible,button:focus-visible { outline: 3px solid #171217; outline-offset: 5px; box-shadow: 0 0 0 8px #fff8f5; }
.section-copy,.section-inner,.card-copy,figure { min-width: 0; }
h1,h2,h3,.button,nav a,.brand,figcaption { overflow-wrap: anywhere; }
.site-header { background: var(--background); border: 0; padding: 24px 32px 0; }
.header-inner { max-width: 1200px; padding: 17px 24px 17px 30px; border: 1px solid #171217; border-radius: 60px; gap: 24px; }
.brand { font-family: var(--heading-font); font-style: italic; font-size: 1.55rem; letter-spacing: -.04em; }
.tagline { font-style: normal; font-size: .65rem; letter-spacing: .12em; text-transform: uppercase; margin-top: 7px; }
#site-nav { gap: 6px; }
#site-nav a { padding: 11px 22px; min-height: 44px; border-radius: 30px; font-size: .85rem; border: 1px solid transparent; }
#site-nav a:hover { border-color: #171217; }
#site-nav a[aria-current=page] { background: #171217; color: #fff8f5; border-color: #171217; }
.section { padding: 92px 44px; }
.section-inner { max-width: 1160px; }
.section-hero { padding-top: 62px; padding-bottom: 74px; background: radial-gradient(ellipse at 24% 90%,#f7c3e5 0,transparent 65%); }
.section-hero .section-inner { grid-template-columns: minmax(0,1.13fr) minmax(0,1fr); gap: 72px; }
.section-hero .section-copy { position: relative; }
.section-hero h1 { font-style: italic; margin-bottom: 26px; }
.section-hero .prose { max-width: 38ch; font-size: 1.03rem; }
.section-hero .prose p:has(>strong:only-child) { font-size: .68rem; letter-spacing: .17em; margin-bottom: 23px; }
.section-hero .section-image { width: 100%; aspect-ratio: 4/5; object-fit: cover; max-height: 600px; border: 10px solid var(--surface); border-radius: 48% 48% 10px 10px; box-shadow: 13px 15px 0 #171217; transform: rotate(3deg); }
.section-links { gap: 12px; margin-top: 29px; }
.button { color: #171217; background: var(--accent); border: 1px solid #171217; border-radius: 40px; min-height: 48px; padding: 13px 23px; line-height: 1.4; font-size: .84rem; font-weight: 600; text-align: center; transition: transform .2s,box-shadow .2s; }
.button:hover { filter: none; transform: translateY(-3px); box-shadow: 0 4px 0 #171217; }
.button:nth-child(even) { background: transparent; }
.layout-center .section-inner { display: block; max-width: 950px; }
.layout-center .prose { max-width: 55ch; }
.layout-center.section-hero h1 { max-width: 12ch; margin-inline: auto; }
#explore { padding-top: 12px; padding-bottom: 68px; }
#explore .card-grid { margin-top: 0; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 15px; }
#explore .content-card { background: var(--surface); border: 1px solid #171217; border-radius: 22px; padding: 25px 27px; }
#explore .content-card:nth-child(2) { background: #171217; color: #fff8f5; }
#explore .content-card:nth-child(3) { background: var(--accent); color: #171217; }
#explore .card-copy { padding: 0; }
#explore h3 { margin-bottom: 10px; }
#explore p { font-size: .86rem; margin-bottom: 21px; }
#explore .text-link { display: inline-flex; align-items: center; gap: 12px; min-height: 44px; font-size: .8rem; }
.section-gallery { background: #171217; color: #fff8f5; padding-block: 100px 110px; }
.section-gallery h2 { max-width: 14ch; font-style: italic; }
.section-gallery .prose { max-width: 55ch; font-size: .95rem; color: #dfd1dc; }
.gallery-grid { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 34px; margin: 64px 8px 50px; align-items: start; }
.gallery-grid figure { background: #f8d9ed; padding: 10px 10px 17px; color: #171217; transform: rotate(-4deg); }
.gallery-grid figure:nth-child(2) { transform: translateY(25px) rotate(3deg); background: #fff8f5; }
.gallery-grid figure:nth-child(3) { transform: rotate(-2deg); }
.gallery-grid a { display: block; }
.gallery-grid img { aspect-ratio: 4/5; object-fit: contain; background: #090709; }
.gallery-grid figcaption { font-family: var(--heading-font); color: #171217; padding: 16px 5px 0; font-size: 1.25rem; font-style: italic; }
.section-gallery .button { border-color: #f8d9ed; }
.section-gallery .button:nth-child(even) { color: #fff8f5; }
.section-gallery a:focus-visible { outline-color: #e614d4; box-shadow: 0 0 0 8px #171217; }
.section-text:has(.section-image) .section-inner { grid-template-columns: minmax(0,.85fr) minmax(0,1fr); gap: 95px; }
.section-text .section-image { aspect-ratio: 4/5; max-height: 500px; object-fit: cover; object-position: center 35%; border-radius: 180px 180px 8px 8px; }
.section-text h2 { white-space: pre-line; }
.tone-accent { color: #171217; }
.tone-accent .button { color: #171217; background: var(--background); border-color: #171217; }
.tone-surface { background: var(--surface); }
.section-text:not(:has(.section-image)) .section-inner { max-width: 850px; }
.site-footer { background: #171217; color: #fff8f5; padding: 38px 44px; border-top: 1px solid #53434d; }
.footer-inner { max-width: 1160px; align-items: center; font-size: .8rem; }
.preview-note { opacity: 1; color: #cdbec8; }
.page-heading { padding-top: 60px; }
.page-heading h1 { font-size: clamp(2.5rem,5vw,4.5rem); line-height: 1.1; }
.prose h2 { margin-top: 1.5em; font-size: 2.3rem; }
@media (max-width: 1000px) {
  .section { padding-inline: 32px; }
  .section-hero .section-inner { gap: 42px; }
  .header-inner { padding-inline: 24px; }
  #site-nav a { padding-inline: 16px; }
  .gallery-grid { gap: 22px; }
  #explore .content-card { padding: 20px; }
  .section-text:has(.section-image) .section-inner { gap: 45px; }
}
@media (max-width: 780px) {
  .site-header { padding: 16px 18px 0; }
  .header-inner { border-radius: 27px; padding: 18px 20px; gap: 15px; }
  .brand { font-size: 1.4rem; max-width: 100%; flex: 1; }
  .tagline { font-size: .57rem; line-height: 1.5; }
  .menu-toggle { display: none; width: 44px; height: 44px; border-radius: 50%; padding: 12px; border-color: #171217; }
  #site-nav { display: flex; flex-direction: row; flex-wrap: wrap; width: 100%; padding: 0; }
  #site-nav a { flex: 1 1 auto; text-align: center; }
  .nav-enhanced .menu-toggle { display: flex; }
  .nav-enhanced #site-nav:not(.is-open) { display: none; }
  .section { padding: 58px 24px; }
  .section-hero { padding-top: 48px; }
  .section-hero .section-inner,.section-text:has(.section-image) .section-inner { grid-template-columns: 1fr; gap: 44px; }
  .section-hero .section-copy { max-width: 580px; }
  .section-hero h1 { font-size: clamp(3.8rem,12vw,6rem); max-width: 10ch; }
  .section-hero .section-image { max-width: 460px; margin-inline: auto; width: calc(100% - 28px); box-shadow: 9px 10px 0 #171217; }
  .section-hero .prose { max-width: 45ch; }
  #explore { padding-block: 15px 50px; }
  #explore .card-grid { grid-template-columns: 1fr; gap: 12px; }
  #explore .card-copy { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 4px 15px; }
  #explore .card-copy h3 { margin: 0; }
  #explore .card-copy p { margin: 0; grid-column: 1; }
  #explore .text-link { grid-column: 2; grid-row: 1/3; max-width: 130px; }
  .gallery-grid { grid-template-columns: 1fr; gap: 35px; margin: 38px auto; max-width: 440px; padding-inline: 8px; }
  .gallery-grid figure,.gallery-grid figure:nth-child(2),.gallery-grid figure:nth-child(3) { transform: none; }
  .gallery-grid figure:nth-child(odd) { transform: rotate(-2deg); }
  .section-text .section-image { max-width: 440px; margin-inline: auto; }
  .section-text .section-copy { grid-row: 1; }
  .site-footer { padding: 30px 24px; }
  .footer-inner { display: block; }
}
@media (max-width: 390px) {
  #explore .card-copy { display: block; }
  #explore .card-copy p { margin-top: 8px; }
  #explore .text-link { margin-top: 10px; max-width: none; }
  .section-links { flex-direction: column; align-items: stretch; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *,*::before,*::after { transition: none !important; animation: none !important; }
  .gallery-grid figure,.gallery-grid figure:nth-child(n),.section-hero .section-image,.button:hover { transform: none; }
}

/* Shared portfolio: one large photo at a time on desktop and phone. */
.section-carousel { background: #171217; color: #fff8f5; }
.section-carousel h2 { max-width: 16ch; font-style: italic; }
.section-carousel .prose { max-width: 55ch; color: #dfd1dc; }
.portfolio-carousel { max-width: 700px; margin: 42px auto 0; }
.carousel-track { display: flex; gap: 24px; overflow-x: auto; scroll-snap-type: x mandatory; overscroll-behavior-x: contain; scrollbar-color: #e614d4 #302530; padding-bottom: 16px; }
.carousel-slide { position: relative; flex: 0 0 100%; scroll-snap-align: start; margin: 0; padding: 12px; background: #f8d9ed; color: #171217; }
.carousel-slide img { width: 100%; height: clamp(280px,55vw,530px); object-fit: contain; background: #090709; }
.carousel-slide figcaption { padding: 14px 8px 4px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 20px; }
.carousel-slide figcaption span { font-family: var(--heading-font); font-style: italic; font-size: 1.35rem; }
.carousel-slide a { display: inline-flex; align-items: center; min-height: 44px; font-size: .85rem; }
.carousel-toolbar { display: flex; justify-content: space-between; align-items: center; gap: 20px; margin-top: 12px; }
.carousel-toolbar [data-carousel-controls]:not([hidden]) { display: flex; gap: 12px; }
.carousel-toolbar button { min-height: 48px; padding: 8px 20px; border-radius: 30px; border: 1px solid #f8d9ed; background: #e614d4; color: #171217; cursor: pointer; }
.carousel-toolbar button:disabled { background: #302530; color: #cdbec8; cursor: default; }
.carousel-toolbar p { margin: 0; white-space: nowrap; }
.section-carousel .button { border-color: #f8d9ed; }
.section-carousel .button:nth-child(even) { color: #fff8f5; }
.section-carousel :focus-visible { outline: 3px solid #e614d4; outline-offset: 4px; box-shadow: 0 0 0 7px #171217; }
.carousel-slide a:focus-visible { outline-color: #171217; box-shadow: none; outline-offset: 2px; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
@media (max-width: 390px) { .carousel-toolbar button { padding-inline: 14px; } }
@media (prefers-reduced-motion: reduce) { .carousel-track { scroll-behavior: auto; } }
