/* ===== SORD motion layer — slideshow, gallery, lightbox, reveal (2026-10-14) ===== */

/* ---------- Hero slideshow (home) ---------- */
.hero .bg.slides{background-image:none!important}
.hero .bg .slide{position:absolute;inset:0;background-size:cover;background-position:center 35%;opacity:0;transform:scale(1.02);transition:opacity 1.6s ease;will-change:opacity,transform}
.hero .bg .slide.on{opacity:1;animation:kb-a 9s ease-out forwards}
.hero .bg .slide.on.alt{animation-name:kb-b}
@keyframes kb-a{from{transform:scale(1.02) translate(0,0)}to{transform:scale(1.13) translate(-1.5%,-1%)}}
@keyframes kb-b{from{transform:scale(1.13) translate(1.5%,0)}to{transform:scale(1.03) translate(0,0)}}
.hero .bg:after{z-index:1}
.hero-dock{position:absolute;right:28px;bottom:86px;z-index:4;display:flex;flex-direction:column;align-items:flex-end;gap:12px;color:#fff}
.hero-cap{font-family:var(--head);font-size:13px;font-weight:600;letter-spacing:.03em;background:rgba(18,52,25,.55);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.18);padding:8px 14px 8px 12px;border-radius:30px;display:flex;align-items:center;gap:8px;transition:opacity .5s}
.hero-cap:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--orange);box-shadow:0 0 0 4px rgba(235,124,35,.25)}
.hero-cap.fade{opacity:0}
.hero-bars{display:flex;gap:6px}
.hero-bars button{width:34px;height:4px;border:0;padding:0;border-radius:3px;background:rgba(255,255,255,.3);cursor:pointer;position:relative;overflow:hidden}
.hero-bars button i{position:absolute;inset:0;background:#fff;transform:scaleX(0);transform-origin:left}
.hero-bars button.done i{transform:scaleX(1)}
.hero-bars button.on i{animation:bar var(--dur,7s) linear forwards}
.hero.paused .hero-bars button.on i{animation-play-state:paused}
@keyframes bar{to{transform:scaleX(1)}}

/* ---------- Page heads & bands: slow living background ---------- */
.page-head:not(.painting) .bg,.join .bg{animation:drift 22s ease-in-out infinite alternate;will-change:transform}
@keyframes drift{from{transform:scale(1.04) translate(0,0)}to{transform:scale(1.14) translate(-1.2%,-1.2%)}}
.page-head .bg.slides .slide{position:absolute;inset:0;background-size:cover;background-position:center 30%;opacity:0;transition:opacity 1.8s ease}
.page-head .bg.slides .slide.on{opacity:1}
.page-head .bg.slides:after{z-index:1}

/* ---------- Cards & photos ---------- */
.card .ph{overflow:hidden;aspect-ratio:16/10;position:relative}
.card .ph img{aspect-ratio:auto;height:100%;transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}
.card:hover .ph img{transform:scale(1.07)}
.split .photo img{transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}
.split .photo .frame{overflow:hidden;border-radius:10px}
.split .photo:hover img{transform:scale(1.05)}

/* ---------- Reveal on scroll ---------- */
.rv-on .rv{opacity:0;transform:translateY(26px);transition:opacity .9s ease,transform .9s cubic-bezier(.2,.7,.2,1)}
.rv-on .rv.in{opacity:1;transform:none}
.rv-on .cards .rv:nth-child(2){transition-delay:.12s}.rv-on .cards .rv:nth-child(3){transition-delay:.24s}

/* ---------- Field gallery (filmstrip) ---------- */
.fieldwork{background:var(--green-deep);color:#fff;padding:90px 0 80px;overflow:hidden;position:relative}
.fieldwork:before{content:"";position:absolute;inset:0;background:radial-gradient(1000px 400px at 85% 0%,rgba(235,124,35,.22),transparent 60%),radial-gradient(800px 380px at 0% 100%,rgba(56,158,73,.35),transparent 60%);pointer-events:none}
.fieldwork .wrap{position:relative}
.fieldwork h2{color:#fff}
.fieldwork .lead{color:#d9eadb;max-width:640px}
.fieldwork .head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap;margin-bottom:40px}
.fieldwork .legend{display:flex;gap:16px;flex-wrap:wrap;font-size:13px;font-family:var(--head);font-weight:600;color:#cfe3d2}
.fieldwork .legend span{display:flex;align-items:center;gap:7px}
.fieldwork .legend i{width:10px;height:10px;border-radius:50%;display:inline-block}
.strip{position:relative;margin-top:18px;-webkit-mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.strip .track{display:flex;gap:16px;width:max-content;animation:slide-l var(--speed,70s) linear infinite}
.strip.rev .track{animation-name:slide-r}
.strip:hover .track{animation-play-state:paused}
@keyframes slide-l{to{transform:translateX(-50%)}}
@keyframes slide-r{from{transform:translateX(-50%)}to{transform:translateX(0)}}
.shot{position:relative;height:230px;border-radius:12px;overflow:hidden;flex:none;cursor:zoom-in;background:#174520;border:0;padding:0;display:block}
.shot img{height:100%;width:auto;display:block;transition:transform .9s cubic-bezier(.2,.7,.2,1),filter .5s}
.shot:hover img,.shot:focus-visible img{transform:scale(1.08)}
.shot .cap{position:absolute;left:0;right:0;bottom:0;padding:34px 14px 12px;background:linear-gradient(transparent,rgba(0,0,0,.75));color:#fff;font-family:var(--head);font-size:13.5px;font-weight:600;text-align:left;transform:translateY(8px);opacity:0;transition:.4s}
.shot:hover .cap,.shot:focus-visible .cap{opacity:1;transform:none}
.shot .t{position:absolute;top:10px;left:10px;width:10px;height:10px;border-radius:50%;box-shadow:0 0 0 3px rgba(255,255,255,.75)}
.t-inc{background:var(--orange)}.t-acc{background:#6CC07A}.t-cap{background:#fff}.t-hum{background:#F2C14E}
.fieldwork .hint .m{display:none}
.fieldwork .hint{margin-top:26px;font-size:14px;color:#a9cbb0;text-align:center}

/* ---------- Lightbox ---------- */
.lb{position:fixed;inset:0;z-index:9999;background:rgba(10,22,12,.94);display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:.35s}
.lb.open{opacity:1;visibility:visible}
.lb figure{margin:0;max-width:min(1200px,92vw);text-align:center}
.lb img{max-width:100%;max-height:78vh;border-radius:8px;box-shadow:0 30px 80px rgba(0,0,0,.5);transition:opacity .25s}
.lb img.swap{opacity:0}
.lb figcaption{color:#fff;font-family:var(--head);font-size:16px;margin-top:16px}
.lb figcaption small{display:block;color:#9fc5a6;font-size:13px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;margin-bottom:4px}
.lb button{position:absolute;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);color:#fff;width:52px;height:52px;border-radius:50%;font-size:24px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:.2s}
.lb button:hover{background:var(--orange);border-color:var(--orange)}
.lb .x{top:22px;right:22px}.lb .pv{left:22px;top:50%;margin-top:-26px}.lb .nx{right:22px;top:50%;margin-top:-26px}
.lb .count{position:absolute;top:34px;left:30px;color:#9fc5a6;font-family:var(--head);font-size:14px}

@media (max-width:760px){
  .hero-dock{right:auto;left:18px;bottom:76px}
  .hero-cap{display:none}
  .fieldwork .hint .d{display:none}
  .shot{height:170px}
  .lb .pv,.lb .nx{top:auto;bottom:22px;margin:0}
  .lb .pv{left:calc(50% - 64px)}.lb .nx{right:calc(50% - 64px)}
  .fieldwork{padding:70px 0 60px}
  .fieldwork .hint .m{display:inline}
}

/* ---------- Respect reduced motion ---------- */
@media (prefers-reduced-motion:reduce){
  .hero .bg .slide.on,.page-head .bg,.join .bg{animation:none!important}
  .strip .track{animation:none;width:auto;overflow-x:auto}
  .strip{-webkit-mask-image:none;mask-image:none;overflow-x:auto}
  .rv-on .rv{opacity:1;transform:none}
}
/* About SORD (home): text left, photo right — 2026-10-15 */
.split.rev{grid-template-columns:1fr 1.05fr}
.split.rev .photo{order:2}
.split.rev .photo:before{left:auto;right:-18px}
@media (max-width:900px){.split.rev{grid-template-columns:1fr}.split.rev .photo{order:0}.split.rev .photo:before{right:-8px}}