body.aura-photo-preview {
  --photo-ink: #161b23;
  --photo-muted: #414b57;
  --photo-surface: #d4dfe4;
  --photo-on-ink: #f3f4fa;
  --photo-accent: #2637c7;
  position: relative;
  isolation: isolate;
  display: flex;
  flex-direction: column;
}

.studio-cursor-trail {
  position: fixed;
  z-index: -1;
  inset: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
}

/* A short, centered page indicator; native scrolling remains the source of truth. */
html.has-page-scrollbar { scrollbar-width: none; }
html.has-page-scrollbar::-webkit-scrollbar { display: none; }
.page-scrollbar {
  position: fixed;
  z-index: 95;
  top: 50%;
  right: 0;
  width: 44px;
  height: 20vh;
  min-height: 100px;
  max-height: 200px;
  transform: translateY(-50%);
  opacity: 0;
  color: var(--foreground);
  cursor: pointer;
  touch-action: none;
  user-select: none;
  transition: opacity 500ms ease;
}
.page-scrollbar[hidden] { display: none; }
.page-scrollbar-track {
  position: absolute;
  top: 0;
  right: 16px;
  width: 6px;
  height: 100%;
  border-radius: 3px;
  background: color-mix(in srgb, currentColor 12%, transparent);
}
.page-scrollbar-thumb {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  border-radius: inherit;
  background: currentColor;
}
.page-scrollbar.is-active, .page-scrollbar:hover, .page-scrollbar:focus-visible:not(.is-pointer-focus), .page-scrollbar.is-dragging { opacity: 1; }
.page-scrollbar:focus-visible { outline-offset: -2px; border-radius: 8px; }
.page-scrollbar.is-pointer-focus:focus-visible { outline: none; }
.page-scrollbar.is-dragging { cursor: grabbing; }
body:has(.studio-menu[open]) .page-scrollbar { opacity: 0; pointer-events: none; }

:root[data-theme="light"] body.aura-photo-preview {
  --photo-ink: #f3f4fa;
  --photo-muted: #cbd3df;
  --photo-surface: #1d2329;
  --photo-on-ink: #171b23;
  --photo-accent: #a1adff;
}

.aura-photo-preview .studio-header {
  position: relative;
  flex-shrink: 0;
  z-index: 1;
}

.aura-photo-main {
  flex: 1;
  min-width: 0;
  overflow-x: clip;
  padding: 0 var(--page-gutter) 28px;
}

.aura-photo-stage {
  position: relative;
  isolation: isolate;
  width: 100%;
  aspect-ratio: 33 / 14;
  overflow: clip;
  border-radius: 20px;
  background: var(--photo-surface);
}

.aura-photo-media {
  position: relative;
  width: 100%;
  height: 100%;
  isolation: isolate;
}

.aura-hero-photo, .aura-device-foreground {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}

.aura-device-foreground {
  position: absolute;
  z-index: 2;
  inset: 0;
  mask-image: url('assets/media/optimized/aura-mask.png');
  mask-size: cover;
  mask-position: center;
  mask-repeat: no-repeat;
  mask-mode: alpha;
  pointer-events: none;
}

.aura-air-wave {
  position: absolute;
  z-index: 1;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  pointer-events: none;
}

.aura-hero-copy {
  position: absolute;
  z-index: 3;
  top: 50%;
  left: 4.5%;
  width: 44%;
  transform: translateY(-50%);
  color: var(--photo-ink);
}

.aura-project-label {
  display: flex;
  align-items: center;
  gap: 9px;
  margin: 0 0 clamp(16px, 2vw, 32px);
  font-size: 11px;
  font-weight: 500;
  line-height: 1.2;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.aura-project-label::before {
  content: "";
  width: 5px;
  height: 5px;
  flex: 0 0 5px;
  border-radius: 50%;
  background: var(--photo-accent);
}

.aura-project-title {
  margin: 0 0 clamp(16px, 2vw, 30px);
  font-size: clamp(64px, 9vw, 172px);
  font-weight: 400;
  line-height: .92;
  letter-spacing: -.075em;
  white-space: nowrap;
}

.aura-project-summary {
  margin: 0;
  color: var(--photo-muted);
  font-size: clamp(14px, 1.25vw, 20px);
  font-weight: 400;
  line-height: 1.45;
  letter-spacing: -.015em;
}

.aura-project-link {
  display: inline-flex;
  align-items: center;
  gap: 20px;
  min-height: 44px;
  margin-top: clamp(20px, 2.5vw, 40px);
  border-radius: 24px;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.1;
}

.aura-link-icon {
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  flex: 0 0 44px;
  border-radius: 50%;
  background: var(--photo-ink);
  color: var(--photo-on-ink);
  transition: background-color 200ms ease, color 200ms ease;
}

.aura-link-icon svg {
  width: 21px;
  height: 21px;
  transition: transform 250ms ease;
}

.aura-project-link:focus-visible { outline-color: var(--photo-accent); }
.aura-project-link:focus-visible .aura-link-icon { background: var(--photo-accent); color: var(--photo-on-ink); }
.aura-project-link:focus-visible svg { transform: rotate(45deg); }

@media (hover: hover) {
  .aura-project-link:hover .aura-link-icon { background: var(--photo-accent); color: var(--photo-on-ink); }
  .aura-project-link:hover svg { transform: rotate(45deg); }
}

.aura-scroll-cue {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 52px;
  color: var(--foreground);
}

.scroll-arrow {
  display: block;
  flex: 0 0 20px;
  width: 20px;
  height: 20px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.5;
}

.scroll-cue-label {
  position: absolute;
  top: 50%;
  left: 50%;
  margin: 0;
  transform: translate(-50%, -50%);
  font-size: 14px;
  font-weight: 500;
  line-height: 1;
  white-space: nowrap;
}

.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}

@media (max-width: 760px) {
  .aura-photo-stage { display: flex; flex-direction: column; aspect-ratio: auto; border-radius: 16px; }
  .aura-hero-copy { position: relative; top: auto; left: auto; order: -1; width: auto; padding: 30px 26px 0; transform: none; }
  .aura-project-label { margin-bottom: 20px; font-size: 10px; }
  .aura-project-title { margin-bottom: 18px; font-size: clamp(62px, 18vw, 98px); }
  .aura-project-summary { font-size: 15px; }
  .aura-project-link { margin-top: 20px; }
  .aura-photo-media { height: auto; aspect-ratio: 4 / 3; flex-shrink: 0; mask-image: linear-gradient(transparent, #000 14%); }
  .aura-hero-photo, .aura-device-foreground { object-position: right center; }
  .aura-device-foreground { mask-position: right center; }
}

@media (max-width: 600px) {
  .aura-scroll-cue { height: 48px; }
  .scroll-arrow--inner { display: none; }
  .scroll-cue-label { font-size: 12px; }
}

@media (prefers-reduced-motion: reduce) {
  .aura-link-icon svg { transform: none !important; }
}

/* Keep the accepted 90vw composition up to 1440px of useful content.
   Shared body/background/cursor still cover the viewport. Scope this trial
   to the homepage; inner-page layouts and mobile breakpoints are unchanged. */
@media (min-width: 1600px) {
  body.aura-photo-preview {
    --home-content-max: 1440px;
    --home-design-vw: calc(var(--home-content-max) / 90);
    --home-frame-bleed: calc(var(--home-design-vw) * 5);
    --page-gutter: calc((100vw - var(--home-content-max)) / 2);
  }

  .aura-photo-preview .studio-header {
    grid-template-columns: calc(var(--home-design-vw) * 23) minmax(0, 1fr) auto;
  }

  .aura-photo-preview .studio-intro {
    font-size: calc(var(--home-design-vw) * 2.5);
  }

  .aura-photo-preview .aura-project-title {
    font-size: calc(var(--home-design-vw) * 9);
  }

  .aura-photo-preview .studio-making {
    margin-top: calc(var(--home-design-vw) * 10);
  }

  .aura-photo-preview .making-title {
    font-size: calc(var(--home-design-vw) * 10.6);
  }

  .aura-photo-preview .making-copy p {
    font-size: calc(var(--home-design-vw) * 1.8);
  }

  .aura-photo-preview .selected-projects-title {
    font-size: calc(var(--home-design-vw) * 8.5);
  }

  .aura-photo-preview .selected-projects-grid {
    column-gap: calc(var(--home-design-vw) * 2.2);
  }

  .aura-photo-preview .studio-story-title {
    font-size: calc(var(--home-design-vw) * 8);
  }

  .aura-photo-preview .studio-story-copy {
    font-size: calc(var(--home-design-vw) * 1.65);
  }

  .aura-photo-preview .footer-link-list a {
    font-size: calc(var(--home-design-vw) * 1.55);
  }

  /* Bleed relative to the capped design frame, not the empty outer margins.
     The existing Garden stage/track use the new shared page gutter. */
  .aura-photo-preview .making-thread {
    left: calc(-1 * var(--home-frame-bleed));
    width: calc(100% + 2 * var(--home-frame-bleed));
  }
}
