/* Atlas of genres — cinematic slideshow. Loads after portfolio.css (shared header/footer/typography). */
:root{--stage:#15101a;--stage-2:#201a22;--soft:#ded1d8;--mute:#b9a8b1}
body.atlas-page{background:var(--stage);color:#fff7ee}
body.atlas-page header{position:absolute;top:0;left:0;right:0;z-index:6;color:#fff7ee;background:linear-gradient(180deg,#15101a 0%,#15101ab3 55%,transparent 100%);padding-bottom:34px}
body.atlas-page header nav a{opacity:.85}
body.atlas-page header nav a:hover{opacity:1}

/* ---------- stage ---------- */
.stage{position:relative;height:100svh;min-height:660px;max-height:1200px;overflow:hidden;background:var(--stage);color:#fff7ee;user-select:none}
.stage-backdrop{position:absolute;inset:0;overflow:hidden}
.stage-backdrop img{position:absolute;inset:-12%;width:124%;height:124%;object-fit:cover;filter:blur(42px) brightness(.42) saturate(1.25);opacity:0;transition:opacity 1.2s ease}
.stage-backdrop img.on{opacity:1}
.stage-backdrop::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#15101a80 0%,transparent 30%,transparent 55%,#15101ae6 100%)}
.stage-frame{position:absolute;left:12%;right:18%;top:96px;bottom:212px}
.stage-frame img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;opacity:0;transform:scale(1);transform-origin:50% 50%;transition:opacity .9s ease,transform 7.6s linear;filter:drop-shadow(0 30px 60px #00000080)}
.stage-frame img.on{opacity:1;transform:scale(1.045)}
.stage-frame img.reset{transition:none;transform:scale(1);opacity:0}
.zone{position:absolute;top:96px;bottom:212px;width:50%;border:0;background:none;padding:0;z-index:2;cursor:w-resize;opacity:0}
.zone.prev{left:0}.zone.next{right:0;cursor:e-resize}
.zone:focus-visible{opacity:1;outline-offset:-6px}
.stage-progress{position:absolute;top:0;left:0;right:0;height:3px;background:#ffffff1f;z-index:7}
#progress-fill{display:block;height:100%;width:0;background:var(--coral);transition:none}

/* copy, bottom-left */
.stage-copy{position:absolute;left:6%;bottom:46px;max-width:46%;z-index:3;transition:opacity .35s ease,transform .35s ease}
.stage-copy.swap{opacity:0;transform:translateY(8px)}
.stage-copy .eyebrow{display:block;color:var(--mute)}
.stage-copy .eyebrow b{color:var(--coral);font-weight:600}
.stage-copy h1{font-size:clamp(40px,4.6vw,72px);margin:14px 0 8px}
.stage-copy .subtitle{font-family:'DM Serif Display',Georgia,serif;font-style:italic;font-size:clamp(18px,1.6vw,24px);color:#fff1e6;line-height:1.25}
.stage-copy .rule{font-size:11px;letter-spacing:1.2px;text-transform:uppercase;color:var(--mute);margin-top:18px;line-height:1.7;max-width:520px}

/* caption + thumbs + controls, bottom-right */
.stage-caption{position:absolute;right:4%;bottom:46px;z-index:3;text-align:right;display:flex;flex-direction:column;align-items:flex-end;gap:14px}
.stage-caption .line{font-size:14px;display:flex;gap:18px;align-items:baseline}
.stage-caption .line span:last-child{font-size:11px;letter-spacing:1.2px;color:var(--mute)}
.shot-thumbs{display:flex;gap:8px}
.shot-thumbs button{border:1px solid transparent;background:none;padding:3px;opacity:.55;transition:opacity .25s}
.shot-thumbs button[aria-current=true]{border-color:var(--coral);opacity:1}
.shot-thumbs button:hover{opacity:1}
.shot-thumbs img{display:block;width:58px;height:58px;object-fit:cover}
.stage-controls{display:flex;gap:10px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.stage-controls button{border:1px solid #ffffff55;background:#15101a80;color:#fff7ee;font-size:12px;letter-spacing:.6px;padding:8px 14px;border-radius:30px;backdrop-filter:blur(6px)}
.stage-controls button:hover{border-color:#fff}
.stage-controls .keys{flex-basis:100%;font-size:10px;letter-spacing:1px;color:#8a7883;margin-top:2px}

/* genre rail, right edge */
.genre-rail{position:absolute;right:4%;top:110px;z-index:3;margin:0;padding:0;list-style:none;width:13%;min-width:150px;font-size:10.5px;letter-spacing:.5px;line-height:1.35}
.genre-rail button{display:flex;gap:10px;align-items:baseline;width:100%;border:0;background:none;text-align:left;padding:2px 0;color:var(--mute);transition:color .2s}
.genre-rail button b{font-weight:500;width:18px;flex:none;font-size:10px;color:#8a7883}
.genre-rail button:hover,.genre-rail button[aria-current=true]{color:#fff7ee}
.genre-rail button[aria-current=true] b{color:var(--coral)}
.genre-rail button[aria-current=true]::before{content:"";width:14px;height:1px;background:var(--coral);margin-right:-4px;align-self:center}

/* fullscreen */
.stage:fullscreen{max-height:none}
.stage:fullscreen .stage-frame,.stage:fullscreen .zone{top:40px}

/* ---------- index grid ---------- */
.atlas-index{background:var(--paper);color:var(--ink);padding:85px 6% 60px}
.atlas-index .intro{display:grid;grid-template-columns:1.05fr 1fr;gap:8%;margin-bottom:60px;align-items:end}
.atlas-index h2{font-size:clamp(45px,5.2vw,80px)}
.atlas-index h2 em{color:#885365}
.atlas-index .intro p{font-size:18px;line-height:1.6;max-width:560px}
.atlas-index .intro p+p{margin-top:18px}
.atlas-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:48px 34px}
.atlas-card{display:block}
.atlas-card .thumbs{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:6px}
.atlas-card .thumbs button{border:0;padding:0;background:none;display:block;overflow:hidden}
.atlas-card .thumbs button:nth-child(n+4){display:none}
.atlas-card .thumbs img{display:block;width:100%;aspect-ratio:1;object-fit:cover;transition:transform .5s ease,filter .3s}
.atlas-card .thumbs button:hover img{transform:scale(1.05);filter:brightness(1.06)}
.atlas-card .card-copy{display:flex;gap:14px;align-items:baseline;margin-top:14px}
.atlas-card .card-copy b{font-size:11px;letter-spacing:1px;color:#885365;font-weight:600}
.atlas-card .card-copy button{border:0;background:none;padding:0;text-align:left;font-family:'DM Serif Display',Georgia,serif;font-size:24px;letter-spacing:-.02em;line-height:1.15}
.atlas-card .card-copy button:hover{color:#885365}
.atlas-card .card-sub{display:block;font-size:14px;color:#6f6269;margin-top:6px;font-style:italic}
.atlas-note{font-size:13px;max-width:740px;color:#786d73;margin-top:60px}
.atlas-note span{display:block;margin-top:10px;font-size:10px;letter-spacing:1px;color:#a0929a}

/* ---------- responsive ---------- */
@media(max-height:799px){.genre-rail{display:none}}
@media(max-width:1200px){.genre-rail{display:none}.stage-frame,.zone{left:5%;right:5%}.stage-frame{bottom:230px}.zone{bottom:230px}.stage-copy{max-width:56%}}
@media(max-width:1050px){.atlas-index .intro{grid-template-columns:1fr;gap:26px}.atlas-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:720px){
  body.atlas-page header{padding-bottom:22px}
  .stage{min-height:0;height:100svh;max-height:none}
  .stage-frame,.zone{top:132px;bottom:262px;left:4%;right:4%}
  .stage-frame img{filter:none;object-position:50% 40%}
  .stage-copy{left:6%;right:6%;max-width:none;bottom:96px}
  .stage-copy h1{font-size:34px;margin:10px 0 4px}
  .stage-copy .subtitle{font-size:16px}
  .stage-copy .rule{display:none}
  .stage-caption{left:6%;right:6%;bottom:22px;flex-direction:row;justify-content:space-between;align-items:center;text-align:left}
  .stage-caption .line{flex-direction:column;gap:2px;font-size:13px}
  .shot-thumbs img{width:40px;height:40px}
  .stage-controls .keys,#fullscreen{display:none}
  .stage-controls button{padding:7px 11px;font-size:11px}
  .atlas-index{padding:55px 7% 40px}
  .atlas-grid{grid-template-columns:1fr;gap:38px}
}
@media(prefers-reduced-motion:reduce){.stage-frame img{transition:opacity .3s ease}.stage-frame img.on{transform:none}.atlas-card .thumbs img{transition:none}}
