/* IBN-X — Impact Before Noise. Artist & media site.
   void #000 · coal #0D0D0E · charcoal #1C1C1C · concrete #3A3A3A · ash #8F8F8F · silver #C8C8C8 · bone #ECE9E3
   Display: Michroma. Text: Archivo (variable width). One signature: the light slit. */
:root {
  --void: #000; --coal: #0D0D0E; --char: #1C1C1C; --conc: #3A3A3A; --ash: #8F8F8F; --silver: #C8C8C8; --bone: #ECE9E3; --glow: #FFF6E6;
  --fd: "Michroma", "Archivo", "Inter", sans-serif; --f: "Archivo", "Inter", "Helvetica Neue", Arial, sans-serif;
  --gut: clamp(1.25rem, 5vw, 4.5rem); --max: 86rem; --sec: clamp(5.5rem, 13vw, 11rem);
  --ease: cubic-bezier(.16, 1, .3, 1); --io: cubic-bezier(.65, 0, .35, 1);
  color-scheme: dark;
}
*, *::before, *::after { box-sizing: border-box; }
html { background: var(--void); -webkit-text-size-adjust: 100%; scroll-padding-top: 5rem; }
body { margin: 0; background: var(--void); color: var(--silver); font: 400 1.0625rem/1.65 var(--f); font-variation-settings: "wdth" 100;
  -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; overflow-x: hidden; }
img { display: block; width: 100%; height: auto; }
picture { display: block; }
a { color: inherit; text-underline-offset: .22em; text-decoration-thickness: 1px; }
:focus-visible { outline: 2px solid var(--bone); outline-offset: 3px; }
::selection { background: var(--bone); color: var(--void); }
h1, h2, h3 { color: var(--bone); margin: 0 0 1rem; font-weight: 700; letter-spacing: -.02em; line-height: 1.02; text-wrap: balance; font-variation-settings: "wdth" 118; }
p { margin: 0 0 1rem; max-width: 36rem; }
.wrap { width: 100%; max-width: var(--max); margin: 0 auto; padding: 0 var(--gut); }
.label { font-family: var(--fd); font-size: .68rem; letter-spacing: .42em; text-transform: uppercase; color: var(--ash); margin: 0 0 1.75rem; }
.lead { font-size: clamp(1.1rem, 1.6vw, 1.3rem); line-height: 1.6; color: var(--silver); }
.small { font-size: .9rem; color: var(--ash); }
.skip { position: absolute; left: -999px; top: .5rem; z-index: 200; background: var(--bone); color: var(--void); padding: .6rem 1rem; }
.skip:focus { left: .5rem; }
.grain { position: fixed; inset: -50%; z-index: 150; pointer-events: none; opacity: .07; mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  animation: grain 1.2s steps(6) infinite; }
@keyframes grain { 0%,100% { transform: translate(0,0); } 20% { transform: translate(-3%,2%); } 40% { transform: translate(2%,-3%); } 60% { transform: translate(-2%,-1%); } 80% { transform: translate(3%,1%); } }

/* buttons */
.btn { position: relative; display: inline-flex; align-items: center; justify-content: center; gap: .8rem; min-height: 3.2rem; padding: .9rem 1.7rem;
  font: 400 .72rem/1 var(--fd); letter-spacing: .3em; text-transform: uppercase; text-decoration: none; color: var(--void); background: var(--bone);
  border: 1px solid var(--bone); cursor: pointer; overflow: hidden; isolation: isolate; transition: color .5s var(--ease), border-color .5s; }
.btn::before { content: ""; position: absolute; inset: 0; z-index: -1; background: var(--void); transform: scaleX(0); transform-origin: right; transition: transform .6s var(--ease); }
.btn:hover { color: var(--bone); }
.btn:hover::before { transform: scaleX(1); transform-origin: left; }
.btn-ghost { background: transparent; color: var(--bone); border-color: rgba(236,233,227,.4); }
.btn-ghost::before { background: var(--bone); }
.btn-ghost:hover { color: var(--void); border-color: var(--bone); }
.btn .arr { transition: transform .5s var(--ease); }
.btn:hover .arr { transform: translateX(4px); }
.actions { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 2.25rem; }
.tlink { font-family: var(--fd); font-size: .68rem; letter-spacing: .32em; text-transform: uppercase; text-decoration: none; color: var(--bone);
  display: inline-flex; gap: .8rem; align-items: center; padding-bottom: .5rem; background: linear-gradient(var(--bone), var(--bone)) left bottom / 100% 1px no-repeat; transition: background-size .6s var(--ease); }
.tlink:hover { background-size: 30% 1px; }

/* header */
.top { position: fixed; inset: 0 0 auto; z-index: 100; padding-top: env(safe-area-inset-top, 0px); transition: background .5s, transform .6s var(--ease); }
.top.scrolled { background: rgba(0,0,0,.6); backdrop-filter: blur(14px) saturate(1.2); -webkit-backdrop-filter: blur(14px) saturate(1.2); }
.top.hide { transform: translateY(-100%); }
.top-in { display: flex; align-items: center; gap: 2.5rem; height: 5rem; }
.sym { display: block; width: 1.9rem; flex: none; }
.sym img { width: 100%; filter: drop-shadow(0 0 8px rgba(255,246,230,.25)); }
.top-in nav { margin-left: auto; }
.top-in nav ul { display: flex; gap: 2.4rem; list-style: none; margin: 0; padding: 0; }
.top-in nav a { position: relative; font-family: var(--fd); font-size: .64rem; letter-spacing: .34em; text-transform: uppercase; text-decoration: none; color: var(--silver); transition: color .3s; }
.top-in nav a::after { content: ""; position: absolute; left: 0; right: .34em; bottom: -.6rem; height: 1px; background: var(--bone); transform: scaleX(0); transform-origin: left; transition: transform .5s var(--ease); }
.top-in nav a:hover, .top-in nav a[aria-current="page"] { color: var(--bone); }
.top-in nav a:hover::after, .top-in nav a[aria-current="page"]::after { transform: scaleX(1); }
.top .btn { min-height: 2.6rem; padding: .6rem 1.1rem; font-size: .6rem; }
.menu { display: none; margin-left: auto; background: none; border: 1px solid var(--conc); color: var(--bone); font: 400 .6rem var(--fd); letter-spacing: .3em; text-transform: uppercase; padding: .8rem 1rem; cursor: pointer; }
.mnav { background: var(--void); min-height: calc(100svh - 5rem); border-top: 1px solid var(--char); }
.mnav ul { list-style: none; margin: 0; padding: 1.5rem var(--gut); }
.mnav a { display: block; padding: 1.1rem 0; border-bottom: 1px solid var(--char); color: var(--bone); text-decoration: none; font: 400 1.25rem var(--fd); letter-spacing: .14em; text-transform: uppercase; }

/* ---------- hero ---------- */
.hero { position: relative; height: 100svh; min-height: 36rem; overflow: hidden; background: var(--void); display: grid; place-items: center; }
.hero-bg { position: absolute; inset: 0; }
.hero-bg img { height: 100%; object-fit: cover; object-position: 47% 50%; opacity: .62; filter: contrast(1.1) brightness(.85); transform: scale(1.14); animation: drift 26s var(--io) .3s both; }
@keyframes drift { from { transform: scale(1.16); } to { transform: scale(1.02); } }
.hero-bg::after { content: ""; position: absolute; inset: 0; background: radial-gradient(70% 60% at var(--mx,50%) var(--my,45%), transparent 0%, rgba(0,0,0,.55) 70%), linear-gradient(180deg, rgba(0,0,0,.5), transparent 30%, transparent 60%, #000 100%); }
.curtain { position: absolute; inset: 0; z-index: 2; background: #000; pointer-events: none; opacity: 0; }
.slit { position: absolute; z-index: 3; left: 50%; top: 0; width: 2px; height: 100%; margin-left: -1px; pointer-events: none; opacity: 0;
  background: linear-gradient(180deg, transparent, var(--glow) 25%, #fff 50%, var(--glow) 75%, transparent); box-shadow: 0 0 30px 6px rgba(255,246,230,.5); transform-origin: top; }
.hero-in { position: relative; z-index: 4; text-align: center; padding: 0 var(--gut); width: 100%; }
.hero h1 { margin: 0; }
.hero .mark { width: min(44rem, 82vw); margin: 0 auto; filter: drop-shadow(0 0 26px rgba(255,246,230,.18)); }
.tagline { margin: 2.2rem auto 0; max-width: none; font-family: var(--fd); font-size: clamp(.6rem, 1.1vw, .78rem); letter-spacing: .5em; text-transform: uppercase; color: var(--silver); }
.cue { position: absolute; z-index: 4; left: 50%; bottom: 2rem; transform: translateX(-50%); display: flex; flex-direction: column; align-items: center; gap: .8rem; font: 400 .55rem var(--fd); letter-spacing: .4em; text-transform: uppercase; color: var(--ash); text-decoration: none; }
.cue i { width: 1px; height: 3.5rem; background: linear-gradient(var(--bone), transparent); transform-origin: top; animation: cue 2.6s var(--io) infinite; }
@keyframes cue { 0% { transform: scaleY(0); } 50% { transform: scaleY(1); opacity: 1; } 100% { transform: scaleY(1); opacity: 0; } }

/* intro sequence: html.intro on first view of the session */
.js.intro .curtain { opacity: 1; animation: curtain 1.3s var(--ease) 1.25s forwards; }
.js.intro .slit { animation: slitIn 1.05s var(--io) .2s forwards, slitOut 1.3s var(--ease) 1.25s forwards; }
@keyframes curtain { to { opacity: 0; } }
@keyframes slitIn { from { opacity: 1; transform: scaleY(0); } to { opacity: 1; transform: scaleY(1); } }
@keyframes slitOut { from { opacity: 1; transform: scaleX(1); } to { opacity: 0; transform: scaleX(400); } }
.js .hero .mark, .js .hero .tagline, .js .cue, .js .top { opacity: 0; }
.js.ready .hero .mark { animation: strike 1.4s var(--ease) both; }
.js.ready .hero .tagline { opacity: 1; transition: opacity 1.4s .7s; }
.js.ready .cue { opacity: 1; transition: opacity 1s 1.3s; }
.js.ready .top { opacity: 1; transition: opacity 1s 1s, background .5s, transform .6s var(--ease); }
/* hold: the slit draws in and waits for the sound choice; go: the curtain opens */
.js.intro.hold .curtain { animation: none; }
.js.intro.hold .slit { animation: slitIn 1.05s var(--io) .2s forwards; }
.js.intro.hold.go .curtain { animation: curtain 1.3s var(--ease) forwards; }
.js.intro.hold.go .slit { animation: slitOut 1.3s var(--ease) forwards; }
.gate { position: absolute; z-index: 6; left: 50%; top: 50%; transform: translate(-50%, -50%); width: min(34rem, calc(100% - 2 * var(--gut)));
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: clamp(2.4rem, 7vw, 5rem); pointer-events: none; }
.gate-b { position: relative; background: none; border: 0; padding: 1.2rem 0; cursor: pointer; color: var(--silver);
  font: 400 clamp(.72rem, 1.2vw, .84rem)/1 var(--fd); letter-spacing: .38em; text-transform: uppercase; opacity: 0;
  transition: opacity 1.1s var(--ease), transform 1.3s var(--ease), color .4s, text-shadow .4s; }
.gate-b small { display: block; margin-bottom: .85rem; font-size: .7em; letter-spacing: .5em; color: var(--ash); }
.gate-off { text-align: right; margin-right: -.38em; transform: translateX(-18px); }
.gate-on { text-align: left; color: var(--bone); text-shadow: 0 0 18px rgba(255,246,230,.35); transform: translateX(18px); transition-delay: .15s; }
.gate-b::after { content: ""; position: absolute; bottom: .55rem; width: 2.6rem; height: 1px; background: currentColor; transform: scaleX(.35); transition: transform .6s var(--ease); }
.gate-off::after { right: .38em; transform-origin: right; opacity: .5; }
.gate-on::after { left: 0; transform-origin: left; }
.gate-b:hover, .gate-b:focus-visible { color: var(--glow); text-shadow: 0 0 22px rgba(255,246,230,.55); }
.gate-b:hover::after, .gate-b:focus-visible::after { transform: scaleX(1); }
.gate-in .gate { pointer-events: auto; }
.gate-in .gate-b { opacity: 1; transform: none; }
.js.go .gate { opacity: 0; visibility: hidden; transition: opacity .5s, visibility 0s .5s; }
@keyframes strike { 0% { opacity: 0; filter: blur(10px) brightness(4); transform: scale(1.04); } 25% { opacity: 1; filter: blur(0) brightness(2.2); } 45% { filter: brightness(.7); } 60% { filter: brightness(1.4); } 100% { opacity: 1; filter: none; transform: none; } }

/* ---------- sections ---------- */
.sec { position: relative; padding: var(--sec) 0; }
.bone { background: var(--bone); color: #2a2a2a; }
.bone h2, .bone h3 { color: #0b0b0b; }
.bone .label { color: #6b6b6b; }
.char { background: var(--char); }

/* manifesto */
.mani { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2.4fr); gap: 2rem 4rem; }
.mani-list { list-style: none; margin: 0; padding: 0; }
.mani-list li { margin: 0 0 clamp(2.5rem, 5vw, 4rem); font-size: clamp(1.7rem, 3.6vw, 3.3rem); line-height: 1.08; letter-spacing: -.025em; font-variation-settings: "wdth" 118; font-weight: 720; color: #0b0b0b; }
.mani-list li b { font-weight: inherit; }
.mani-list li span { display: block; font-weight: 340; color: #707070; }
.mani-list .w { font-style: normal; color: rgba(11,11,11,.13); transition: color .4s; }
.mani-list span .w { color: rgba(11,11,11,.1); }
.mani-list .w.on { color: #0b0b0b; }
.mani-list span .w.on { color: #707070; }
.mani h2 { font-size: clamp(1.6rem, 2.4vw, 2.1rem); }
.meaning { display: grid; grid-template-columns: auto 1fr; gap: 1rem 2rem; margin: 1rem 0 0; padding-top: 2rem; border-top: 1px solid #c9c5bd; max-width: 34rem; }
.meaning dt { font: 400 .9rem var(--fd); letter-spacing: .12em; color: #0b0b0b; }
.meaning dd { margin: 0; color: #4a4a4a; }

/* thunder */
.thunder { overflow: hidden; }
.thunder-bg { position: absolute; inset: 0; opacity: .35; }
.thunder-bg picture, .thunder-bg img { height: 100%; }
.thunder-bg img { object-fit: cover; }
.thunder-bg::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, #000 0%, rgba(0,0,0,.6) 45%, rgba(0,0,0,.2) 100%), linear-gradient(180deg, #000, transparent 20%, transparent 80%, #000); }
.thunder .wrap { position: relative; }
.big { font-family: var(--fd); font-weight: 400; font-size: clamp(2.6rem, 10vw, 9.5rem); line-height: .98; letter-spacing: -.02em; color: var(--bone); margin: 0 0 3rem; }
.big .ln { display: block; overflow: hidden; padding-bottom: .05em; }
.big .ln > span { display: inline-block; }
.js .big .ln > span { transform: translateY(110%); transition: transform 1.3s var(--ease); }
.js .big.in .ln > span { transform: none; }
.js .big.in .ln:nth-child(2) > span { transition-delay: .18s; }
.thunder-copy { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem 4rem; max-width: 60rem; }
.thunder-copy strong { color: var(--bone); font-weight: 600; }

/* split feature (music / film) */
.split { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: clamp(2.5rem, 6vw, 6rem); align-items: center; }
.split.rev > :first-child { order: 2; }
.frame { position: relative; overflow: hidden; background: var(--coal); }
.frame img { transform: scale(1.08); transition: transform 1.8s var(--ease); }
.frame:hover img { transform: scale(1.03); }
.frame .tag { position: absolute; left: 1rem; bottom: 1rem; font: 400 .58rem var(--fd); letter-spacing: .35em; text-transform: uppercase; color: var(--bone); background: rgba(0,0,0,.55); padding: .55rem .8rem; backdrop-filter: blur(6px); }
.release-meta { display: flex; flex-wrap: wrap; gap: .6rem; margin: 1.5rem 0 0; padding: 0; list-style: none; }
.release-meta li { font: 400 .58rem var(--fd); letter-spacing: .3em; text-transform: uppercase; color: var(--silver); border: 1px solid var(--conc); padding: .55rem .75rem; }
.h-xl { font-size: clamp(2.2rem, 5.5vw, 4.8rem); line-height: .98; letter-spacing: -.035em; font-variation-settings: "wdth" 120; }
.h-l { font-size: clamp(1.8rem, 3.6vw, 3rem); }

/* cinematic band */
.band { position: relative; height: min(92vh, 56rem); overflow: hidden; }
.band img { position: absolute; inset: -12% 0; height: 124%; object-fit: cover; will-change: transform; }
.band::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, #000 0%, transparent 22%, transparent 40%, rgba(0,0,0,.82) 72%, #000 100%), linear-gradient(90deg, rgba(0,0,0,.55), transparent 60%); }
.band-in { position: absolute; z-index: 2; left: 0; right: 0; bottom: clamp(2.5rem, 7vw, 6rem); }

/* marquee */
.marquee { border-top: 1px solid var(--char); border-bottom: 1px solid var(--char); overflow: hidden; background: var(--void); }
.mq { display: flex; width: max-content; animation: mq 40s linear infinite; }
.mq ul { display: flex; margin: 0; padding: 1.6rem 0; list-style: none; }
.mq li { display: flex; align-items: center; gap: 3rem; padding-right: 3rem; font: 400 clamp(.9rem, 1.6vw, 1.3rem) var(--fd); letter-spacing: .3em; text-transform: uppercase; color: var(--silver); white-space: nowrap; }
.mq li::after { content: "/"; color: var(--conc); }
@keyframes mq { to { transform: translateX(-50%); } }

/* list / forms */
.list-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 2rem 5rem; align-items: end; }
.signup { display: flex; gap: 0; border-bottom: 1px solid #0b0b0b; }
.signup input { flex: 1; min-width: 0; background: transparent; border: 0; padding: 1rem 0; font: 400 1.15rem var(--f); color: #0b0b0b; }
.signup input::placeholder { color: #8a8a8a; }
.signup input:focus { outline: none; }
.signup button { background: none; border: 0; cursor: pointer; font: 400 .66rem var(--fd); letter-spacing: .3em; text-transform: uppercase; color: #0b0b0b; padding: 0 0 0 1rem; display: inline-flex; gap: .6rem; align-items: center; }
.signup button:hover .arr { transform: translateX(4px); }
.signup .arr { transition: transform .4s var(--ease); }
.status { margin: 1rem 0 0; font-size: .95rem; min-height: 1.5em; }
.bone .status { color: #2a2a2a; }
.status.err { color: #b3261e; }
.form label { display: block; margin-bottom: 1.4rem; font: 400 .6rem var(--fd); letter-spacing: .3em; text-transform: uppercase; color: var(--ash); }
.form input, .form select, .form textarea { display: block; width: 100%; margin-top: .7rem; padding: .9rem 0; background: transparent; border: 0; border-bottom: 1px solid var(--conc);
  font: 400 1.05rem var(--f); color: var(--bone); letter-spacing: 0; text-transform: none; transition: border-color .4s; border-radius: 0; }
.form select option { background: var(--char); }
.form input:focus, .form select:focus, .form textarea:focus { outline: none; border-color: var(--bone); }
.form textarea { resize: vertical; }
.hp { position: absolute; left: -9999px; }

/* page hero (inner pages) */
.phero { position: relative; padding: calc(5rem + clamp(4rem, 10vw, 8rem)) 0 clamp(3rem, 7vw, 6rem); overflow: hidden; }
.phero h1 { font-size: clamp(2.6rem, 7vw, 6.2rem); line-height: .95; letter-spacing: -.035em; font-variation-settings: "wdth" 120; max-width: 18ch; }
.phero::after { content: ""; position: absolute; left: var(--gut); top: 5rem; width: 1px; height: clamp(3rem, 8vw, 6rem); background: linear-gradient(transparent, var(--glow)); box-shadow: 0 0 18px 2px rgba(255,246,230,.35); }
.crumbs { font: 400 .6rem var(--fd); letter-spacing: .3em; text-transform: uppercase; color: var(--ash); margin-bottom: 2rem; }
.crumbs a { text-decoration: none; }
.crumbs a:hover { color: var(--bone); }

/* cards */
.cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 22rem), 1fr)); gap: 2rem; }
.card { display: block; text-decoration: none; color: inherit; }
.card .frame { aspect-ratio: 1; }
.card .frame img { height: 100%; object-fit: cover; }
.card h3 { margin: 1.3rem 0 .4rem; font-size: 1.5rem; }
.card p { color: var(--ash); margin: 0; }
.soon { border: 1px dashed var(--conc); aspect-ratio: 1; display: grid; place-items: center; text-align: center; padding: 2rem; font: 400 .62rem var(--fd); letter-spacing: .3em; text-transform: uppercase; color: var(--ash); }

/* prose */
.prose { max-width: 42rem; }
.prose h2 { font-size: 1.5rem; margin-top: 2.6rem; }
.prose p { color: var(--silver); }
.values { display: flex; flex-wrap: wrap; gap: .6rem 1.4rem; list-style: none; padding: 0; margin: 2rem 0 0; font: 400 .62rem var(--fd); letter-spacing: .35em; text-transform: uppercase; color: var(--ash); }

/* footer */
.foot { padding: clamp(4rem, 9vw, 7rem) 0 2rem; border-top: 1px solid var(--char); background: var(--void); }
.foot-mark { width: min(30rem, 70vw); opacity: .9; margin-bottom: 1.5rem; }
.foot-tag { font: 400 .62rem var(--fd); letter-spacing: .45em; text-transform: uppercase; color: var(--ash); margin-bottom: 3rem; max-width: none; }
.foot-grid { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 1.5rem 3rem; border-top: 1px solid var(--char); padding-top: 1.6rem; font-size: .85rem; color: var(--ash); }
.foot-grid ul { display: flex; flex-wrap: wrap; gap: .5rem 1.8rem; list-style: none; margin: 0; padding: 0; }
.foot-grid a { text-decoration: none; }
.foot-grid a:hover { color: var(--bone); }
.foot-grid p { margin: 0; max-width: none; }

/* sound toggle */
.snd { position: fixed; z-index: 120; right: calc(1rem + env(safe-area-inset-right, 0px)); bottom: calc(1rem + env(safe-area-inset-bottom, 0px));
  display: inline-flex; align-items: center; gap: .8rem; height: 2.7rem; padding: 0 1.05rem; cursor: pointer; color: var(--silver);
  background: rgba(0,0,0,.6); border: 1px solid rgba(236,233,227,.16); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
  font: 400 .55rem/1 var(--fd); letter-spacing: .3em; text-transform: uppercase; transition: color .3s, border-color .3s; }
.snd:hover { color: var(--bone); border-color: rgba(236,233,227,.42); }
.snd.on { color: var(--bone); }
.snd.wait { color: var(--bone); animation: sndwait 2.2s ease-in-out infinite; }
@keyframes sndwait { 50% { border-color: rgba(255,246,230,.6); box-shadow: 0 0 18px rgba(255,246,230,.18); } }
.eq { display: flex; align-items: flex-end; gap: 2px; width: 14px; height: 12px; flex: none; }
.eq i { flex: 1; height: 100%; background: currentColor; transform: scaleY(.18); transform-origin: bottom; transition: transform .5s var(--ease); }
.snd.on .eq i { animation: eq 1.1s ease-in-out infinite alternate; }
.snd.on .eq i:nth-child(2) { animation-duration: .8s; animation-delay: -.4s; }
.snd.on .eq i:nth-child(3) { animation-duration: 1.3s; animation-delay: -.9s; }
.snd.on .eq i:nth-child(4) { animation-duration: .95s; animation-delay: -.25s; }
@keyframes eq { from { transform: scaleY(.2); } to { transform: scaleY(1); } }
.js .snd { opacity: 0; visibility: hidden; }
.js.ready .snd { opacity: 1; visibility: visible; transition: opacity 1s 1.4s, visibility 0s 1.4s, color .3s, border-color .3s; }

/* reveals */
.js [data-r] { opacity: 0; transform: translateY(36px); transition: opacity 1.2s var(--ease), transform 1.3s var(--ease); transition-delay: var(--d, 0s); }
.js [data-r].in { opacity: 1; transform: none; }
.js [data-r="img"] { opacity: 1; transform: none; }
.js [data-r="img"] img { clip-path: inset(0 0 100% 0); transform: scale(1.2); transition: clip-path 1.5s var(--ease), transform 2.4s var(--ease); }
.js [data-r="img"].in img { clip-path: inset(0); transform: scale(1.06); }

/* responsive */
@media (max-width: 980px) {
  .top-in nav, .top-in > .btn { display: none; }
  .menu { display: inline-block; }
  .mani, .split, .list-grid, .thunder-copy { grid-template-columns: minmax(0, 1fr); }
  .split.rev > :first-child { order: 0; }
}
@media (max-width: 640px) {
  .hero-bg img { object-position: 48% 50%; }
  .tagline { letter-spacing: .32em; line-height: 2; }
  .actions .btn { width: 100%; }
  .band { height: 70vh; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .001s !important; animation-delay: 0s !important; transition-duration: .001s !important; transition-delay: 0s !important; }
  .grain, .mq { animation: none !important; }
  .js .hero .mark, .js .hero .tagline, .js .cue, .js .top, .js [data-r], .js [data-r="img"] img { opacity: 1; transform: none; clip-path: none; filter: none; }
  .js .big .ln > span { transform: none; }
  .js.intro .curtain, .js.intro .slit { display: none; }
  .mani-list .w { color: inherit !important; }
  .snd.on .eq i, .snd.wait { animation: none !important; }
  .snd.on .eq i { transform: scaleY(.75); }
  .snd.on .eq i:nth-child(odd) { transform: scaleY(.45); }
}
