#home {
  --ap-bg: #0d0d0c;
  --ap-ink: #f4f1e8;
  --ap-muted: #aaa99f;
  --ap-scroll-span: 1450px;
  position: relative;
  background: var(--ap-bg);
  color: var(--ap-ink);
}

#home .ap-scene { position: relative; isolation: isolate; container-type: inline-size; }
#home .ap-invitation { display: none; }
#home .ap-invitation-arrow { display: block; font: 400 27px/1 var(--sans); animation: ap-invitation-drift 1.9s cubic-bezier(.4, 0, .2, 1) infinite; }
@keyframes ap-invitation-drift {
  0% { opacity: 0; transform: translateY(-8px); }
  22%, 72% { opacity: 1; }
  100% { opacity: 0; transform: translateY(8px); }
}
#home .ap-field { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 40px 24px; padding: 110px 24px 40px; }
#home .ap-card { display: block; margin: 0; color: inherit; text-decoration: none; -webkit-tap-highlight-color: transparent; }
#home .ap-card:focus-visible { outline: 2px solid var(--ap-ink); outline-offset: 6px; border-radius: 12px; }
#home .ap-photo { position: relative; display: block; width: 100%; aspect-ratio: .75; overflow: hidden; border-radius: 12px; background: #24241f; transition: transform .6s cubic-bezier(.22, 1, .36, 1); }
#home .ap-photo img { display: block; width: 100%; height: 100%; object-fit: cover; pointer-events: none; user-select: none; transform: scale(1.01); transition: transform .65s cubic-bezier(.22, 1, .36, 1); }
#home .ap-card:hover .ap-photo, #home .ap-card:focus-visible .ap-photo { transform: translateY(-5px); }
#home .ap-card:hover img, #home .ap-card:focus-visible img { transform: scale(1.045); }
#home .ap-caption { display: flex; justify-content: space-between; gap: 8px; padding-top: 9px; font: 400 10px/1.35 var(--mono); text-transform: uppercase; white-space: nowrap; }
#home .ap-name { position: relative; width: 100%; height: 20cqw; color: #42423e; pointer-events: none; }
#home .ap-title { position: absolute; top: 0; left: 50%; height: 100%; margin: 0; transform: translateX(-50%); font: 400 17.6cqw/.905 var(--sans); letter-spacing: -.05em; white-space: nowrap; user-select: none; }
#home .ap-title-sharp, #home .ap-title-soft { display: flex; align-items: center; height: 100%; }
#home .ap-title-lens { position: absolute; inset: 0; overflow: hidden; background: var(--ap-bg); opacity: 0; -webkit-mask-image: radial-gradient(ellipse 80px 65px at var(--ap-lens-x, 50%) var(--ap-lens-y, 50%), #000 10%, transparent 100%); mask-image: radial-gradient(ellipse 80px 65px at var(--ap-lens-x, 50%) var(--ap-lens-y, 50%), #000 10%, transparent 100%); transition: opacity .4s; pointer-events: none; }
#home .ap-title.is-interacting .ap-title-lens { opacity: 1; transition-duration: .15s; }
#home .ap-title-soft { filter: blur(5px); text-shadow: 3px 0 3px currentColor, -3px 0 3px currentColor; }
#home .ap-about { display: flex; flex-direction: column; align-items: center; width: min(460px, 80%); margin: 80px auto; text-align: center; }
#home .ap-portrait { display: block; width: clamp(172.8px, 33.6svh, 268.8px); aspect-ratio: 132 / 178; height: auto; object-fit: cover; border-radius: 12px; background: #24241f; }
#home .ap-manifesto { display: flex; flex-direction: column; align-items: center; width: 100%; }
#home .ap-manifesto h2 { margin: 24px 0 0; font: 400 42px/.98 var(--sans); letter-spacing: -.05em; }
#home .ap-manifesto p { max-width: 390px; margin: 20px 0 0; color: #b0b0a5; font: 400 13px/1.6 var(--mono); letter-spacing: -.015em; }
#home .ap-manifesto em { font-style: normal; }
#home .ap-manifesto a { display: block; min-height: 44px; margin-top: 18px; padding: 10px 0 6px; border-bottom: 1px solid currentColor; color: inherit; font: 400 10px/1.4 var(--mono); letter-spacing: .025em; text-transform: uppercase; }
#home .ap-footer { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; padding: 24px; }
#home .ap-meta { margin: 0; color: var(--ap-muted); font: 400 10px/1.65 var(--mono); letter-spacing: .01em; text-transform: uppercase; }
#home .ap-explore { display: flex; align-items: center; gap: 20px; min-height: 44px; padding: 8px 0; border-bottom: 1px solid currentColor; color: inherit; font: 400 10px/1.4 var(--mono); letter-spacing: .02em; text-transform: uppercase; }
#home .ap-arrow { font: 400 21px/1 var(--sans); transition: transform .3s; }
#home .ap-explore:hover .ap-arrow { transform: translateY(3px); }

#home.is-enhanced { height: calc(100svh + var(--ap-scroll-span)); }
#home.is-enhanced .ap-scene { position: sticky; top: 0; height: 100svh; overflow: clip; }
#home.is-enhanced .ap-invitation { position: absolute; top: 50%; left: 50%; z-index: 15; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 18px; min-width: 190px; min-height: 112px; margin: 0; padding: 18px 24px; border: 0; background: transparent; color: var(--ap-ink); font: 400 11px/1.5 var(--mono); letter-spacing: .035em; text-transform: uppercase; transform: translate(-50%, -50%); will-change: opacity, filter; }
#home.is-enhanced .ap-scene::after { content: ''; position: absolute; right: 0; bottom: 0; left: 0; z-index: 30; height: 110px; background: linear-gradient(transparent, var(--ap-bg) 72%); pointer-events: none; }
#home.is-enhanced .ap-field { position: absolute; inset: 0; z-index: 2; display: block; padding: 0; perspective: 1200px; pointer-events: none; }
#home.is-enhanced .ap-card { position: absolute; top: 0; left: 0; transform-style: preserve-3d; will-change: transform, opacity; pointer-events: auto; }
#home.is-enhanced .ap-caption { position: absolute; top: 100%; right: 0; left: 0; opacity: 0; transform: translateY(4px); transition: opacity .25s, transform .35s; }
#home.is-enhanced .ap-card:hover .ap-caption, #home.is-enhanced .ap-card:focus-visible .ap-caption { opacity: 1; transform: none; }
#home.is-enhanced .ap-name { position: absolute; top: 50%; left: 0; z-index: 1; opacity: 0; transform: translateY(-50%) scale(.96); filter: blur(16px); will-change: transform, opacity, filter; }
#home.is-enhanced .ap-title { pointer-events: none; }
#home.is-enhanced .ap-about { position: absolute; top: calc(18.5% - clamp(38.84px, 7.5515svh, 60.41px)); left: 50%; z-index: 11; width: min(460px, 60%); margin: 0; transform: translateX(-50%); pointer-events: none; }
#home.is-enhanced .ap-portrait, #home.is-enhanced .ap-manifesto { opacity: 0; will-change: opacity, transform, filter; }
#home.is-enhanced .ap-manifesto { pointer-events: none; }
#home.is-enhanced .ap-footer { position: absolute; right: 24px; bottom: 24px; left: 24px; z-index: 35; padding: 0; pointer-events: none; }
#home.is-enhanced .ap-explore { pointer-events: auto; }

@media (max-width: 640px) {
  #home { --ap-scroll-span: 1250px; }
  #home .ap-field { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 16px; padding: 90px 16px 30px; }
  #home .ap-portrait { width: clamp(148.8px, 26.52svh, 201.6px); }
  #home.is-enhanced .ap-about { top: calc(20.5263% - clamp(33.44px, 5.9603svh, 45.31px)); width: 76%; }
  #home .ap-manifesto h2 { margin-top: 22px; font-size: 30px; }
  #home .ap-manifesto p { margin-top: 18px; font-size: 11px; }
  #home .ap-manifesto a { font-size: 9px; margin-top: 18px; }
  #home.is-enhanced .ap-footer { right: 16px; bottom: 18px; left: 16px; gap: 14px; }
  #home .ap-meta { max-width: 42%; font-size: 8px; }
  #home .ap-explore { gap: 12px; font-size: 8px; }
  #home .ap-caption { font-size: 8px; }
}

@media (max-height: 600px) {
  #home.is-enhanced .ap-about { top: max(68px, calc(16% - clamp(20.5px, 5.394svh, 32.36px))); width: min(520px, 76%); }
  #home .ap-portrait { width: clamp(91.2px, 24svh, 144px); }
  #home .ap-manifesto h2 { margin-top: 14px; font-size: 28px; }
  #home .ap-manifesto p { max-width: 520px; margin-top: 14px; font-size: 11px; line-height: 1.45; }
  #home .ap-manifesto a { min-height: 30px; margin-top: 12px; font-size: 9px; }
}

@media (max-height: 480px) {
  #home.is-enhanced .ap-about { top: 50%; flex-direction: row; align-items: center; gap: 20px; width: min(720px, 90%); transform: translate(-50%, -50%); }
  #home .ap-portrait { flex: 0 0 auto; }
  #home .ap-manifesto { min-width: 0; align-items: flex-start; text-align: left; }
  #home .ap-manifesto h2 { margin-top: 0; }
}

@media (hover: none) { #home.is-enhanced .ap-caption { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) {
  #home .ap-invitation-arrow { animation: none; }
  #home .ap-photo, #home .ap-photo img, #home .ap-caption, #home .ap-title-lens, #home .ap-arrow { transition: none; }
}
