/* Pauze cinematic motion layer */
.site-loader{
  position:fixed;inset:0;z-index:200;background:#050505;color:#f5f5f2;
  display:grid;place-items:center;transition:clip-path 1.1s cubic-bezier(.76,0,.24,1);
  clip-path:inset(0 0 0 0);pointer-events:auto
}
.site-loader.is-done{clip-path:inset(0 0 100% 0);pointer-events:none}
.loader-inner{width:min(86vw,720px);position:relative}
.loader-top{display:flex;justify-content:space-between;align-items:center;font:10px 'DM Mono',monospace;letter-spacing:.15em;color:#666}
.loader-word{font-family:'Space Grotesk',sans-serif;font-size:clamp(100px,20vw,250px);font-weight:700;letter-spacing:-.11em;line-height:.72;margin:32px 0;overflow:hidden}
.loader-word span{display:inline-block;transform:translateY(105%);animation:loaderIn 1s cubic-bezier(.76,0,.24,1) .15s forwards}
.loader-line{height:1px;background:#232323;position:relative;overflow:hidden}
.loader-line i{display:block;width:0;height:100%;background:#fff;animation:loaderLine 1.35s cubic-bezier(.76,0,.24,1) .2s forwards}
.loader-bottom{display:flex;justify-content:space-between;margin-top:12px;font:9px 'DM Mono',monospace;color:#4f4f4f;letter-spacing:.12em}
.scroll-progress{position:fixed;right:0;top:0;width:2px;height:100vh;background:#151515;z-index:80}
.scroll-progress i{display:block;width:100%;height:0;background:#fff;transform-origin:top}
.hero::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;opacity:0;background:radial-gradient(circle at var(--mx,70%) var(--my,48%),#fff1,transparent 28%);transition:opacity .25s}
.hero.is-active::after{opacity:.9}
.hero-copy,.hero-product,.hero-status{will-change:transform}
.product-stage{transition:transform .25s cubic-bezier(.2,.8,.2,1)}
.product-can{filter:contrast(1.05) brightness(1.02)}
.product-can::after{
  content:"";position:absolute;inset:-10%;border-radius:inherit;
  background:linear-gradient(115deg,transparent 25%,#fff0 35%,#fff9 48%,#fff0 57%,transparent 70%);
  transform:translateX(-130%);mix-blend-mode:screen;animation:metalSweep 6.5s ease-in-out infinite
}
.project{overflow:hidden}
.project h3{transition:transform .45s cubic-bezier(.2,.8,.2,1),letter-spacing .45s}
.project:hover h3{transform:translateX(10px);letter-spacing:-.04em}
.project-copy{transition:transform .45s,opacity .45s}
.project:hover .project-copy{transform:translateX(5px);opacity:.75}
.playlist{position:relative;overflow:hidden}
.playlist::before,.social-link::before{
  content:"";position:absolute;left:0;bottom:0;height:1px;width:100%;background:#fff;
  transform:scaleX(0);transform-origin:right;transition:transform .55s cubic-bezier(.76,0,.24,1)
}
.playlist:hover::before,.social-link:hover::before{transform:scaleX(1);transform-origin:left}
.music-visual{transform-style:preserve-3d}
.disc{transition:transform .15s linear}
.endcap{overflow:hidden}
.endcap h2{animation:breath 5s ease-in-out infinite}
@keyframes loaderIn{to{transform:translateY(0)}} 
@keyframes loaderLine{to{width:100%}}
@keyframes metalSweep{0%,45%{transform:translateX(-130%)}65%,100%{transform:translateX(130%)}}
@keyframes breath{50%{transform:scale(.985)}}
@media(max-width:820px){.scroll-progress{width:1px}.site-loader .loader-word{font-size:26vw}.hero::after{display:none}}
@media(prefers-reduced-motion:reduce){.loader-word span,.loader-line i{animation:none}.loader-word span{transform:none}.loader-line i{width:100%}.endcap h2{animation:none}.product-can::after{animation:none}}

.start-button{
  appearance:none;border:1px solid #363636;background:transparent;color:#f5f5f2;
  display:flex;align-items:center;justify-content:center;gap:18px;width:230px;height:56px;
  margin:28px auto 0;cursor:pointer;font:10px 'DM Mono',monospace;letter-spacing:.16em;
  transition:background .35s,color .35s,border-color .35s,transform .35s;
}
.start-button b{font-size:17px;font-weight:400}
.start-button:hover{background:#fff;color:#050505;border-color:#fff}
.start-hint{text-align:center;margin:12px 0 0;font:8px 'DM Mono',monospace;letter-spacing:.18em;color:#424242}
.site-loader.ready .loader-word span{animation-delay:0s}
.site-loader.entering .loader-inner{transform:translateY(-8px) scale(.985);opacity:0;transition:transform .65s cubic-bezier(.76,0,.24,1),opacity .5s ease}
.site-loader.entering{clip-path:inset(0 0 100% 0);pointer-events:none}
body.locked{overflow:hidden}
body.scene-started .hero .hero-copy{animation:heroCopyIn 1.1s cubic-bezier(.16,1,.3,1) .12s both}
body.scene-started .hero-product{animation:heroProductIn 1.25s cubic-bezier(.16,1,.3,1) both}
body.scene-started .hero-status{animation:heroStatusIn 1s cubic-bezier(.16,1,.3,1) .35s both}
body.scene-started .manifesto{transition:background-color 1s}
.manifesto,.projects,.music,.social,.endcap{position:relative}
.manifesto::before,.projects::before,.music::before,.social::before{
  content:"";position:absolute;left:7vw;right:7vw;top:0;height:1px;background:#151515;transform:scaleX(0);transform-origin:left;
  transition:transform 1.3s cubic-bezier(.16,1,.3,1)
}
.reveal.visible::before{transform:scaleX(1)}
.ticker-track{will-change:transform}
@keyframes heroCopyIn{from{opacity:0;transform:translateY(45px)}to{opacity:1;transform:none}}
@keyframes heroProductIn{from{opacity:0;transform:translateY(-50%) translate3d(70px,25px,0) scale(.86) rotate(-10deg)}to{opacity:1;transform:translateY(-50%) scale(1) rotate(0)}}
@keyframes heroStatusIn{from{opacity:0;transform:translateY(15px)}to{opacity:1;transform:none}}
@media(max-width:820px){
 .start-button{width:210px;height:52px;margin-top:24px}
}

.manifesto-main h2{
  transform:translate3d(calc((1 - var(--scene-progress,0)) * 34px),calc((1 - var(--scene-progress,0)) * 24px),0) scale(calc(.96 + var(--scene-progress,0) * .04));
  transition:transform .2s linear;
}
.manifesto-main>p{
  transform:translateY(calc((1 - var(--scene-progress,0)) * 20px));
  opacity:calc(.45 + var(--scene-progress,0) * .55);
  transition:transform .2s linear,opacity .2s linear;
}
.ticker-track{transform:translate3d(var(--ticker-drift,0px),0,0)}
.hero-status{transition:opacity .2s linear}
@media(prefers-reduced-motion:reduce){
  .manifesto-main h2,.manifesto-main>p{transform:none;opacity:1}
  .ticker-track{transform:none}
}

/* Reel-inspired constellation, reveal system and full-width hover previews */
.question-grid{display:grid;grid-template-columns:repeat(2,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}
.question{min-height:420px;padding:30px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end;transition:background .45s ease,color .45s ease,transform .45s cubic-bezier(.2,.8,.2,1)}
.question:nth-child(odd){border-right-color:var(--line)}
.question>span{position:absolute;top:28px;left:30px;color:#5d5d5d;font:10px 'DM Mono',monospace;letter-spacing:.12em}
.question h3{font-family:'Space Grotesk',sans-serif;font-size:clamp(46px,6.5vw,88px);line-height:.82;letter-spacing:-.09em;margin:0 0 20px}
.question h3 em{font-style:normal;color:transparent;-webkit-text-stroke:1px #eee}
.question p{max-width:300px;color:#727272;font-size:13px;line-height:1.65;margin:0}
.question::before{content:"";position:absolute;inset:0;background:linear-gradient(130deg,#fff,transparent 46%);opacity:0;transform:translate(-25%,25%);transition:opacity .45s,transform .65s cubic-bezier(.2,.8,.2,1)}
.question:hover{background:#fff;color:#050505;transform:translateY(-5px)}
.question:hover::before{opacity:.08;transform:translate(0,0)}
.question:hover h3 em{color:#050505;-webkit-text-stroke:1px #050505}
.question:hover p,.question:hover>span{color:#555}

.project{isolation:isolate}
.project-preview{position:absolute;inset:0;display:flex;align-items:center;justify-content:space-between;padding:0 30px;background:#fff;color:#050505;opacity:0;transform:translateY(100%);transition:transform .65s cubic-bezier(.76,0,.24,1),opacity .35s ease;z-index:4;pointer-events:none}
.project-preview span,.project-preview small{font:9px 'DM Mono',monospace;letter-spacing:.15em;color:#555}.project-preview strong{font:clamp(80px,15vw,210px);font-family:'Space Grotesk',sans-serif;letter-spacing:-.11em;line-height:.7}
.project-preview::after{content:"";position:absolute;left:30px;right:30px;bottom:18px;height:1px;background:#d0d0d0}
.project:hover .project-preview{opacity:1;transform:translateY(0)}
.project:hover{color:#050505;z-index:5}
.project:hover::before{transform:scaleY(0)}
.project:hover .project-arrow,.project:hover .project-copy,.project:hover .project-no,.project:hover .project-type,.project:hover h3{opacity:0}

.journey{min-height:90vh;display:grid;grid-template-columns:1fr 1fr;gap:10vw;align-items:center;overflow:hidden}
.journey-copy h2{font-family:'Space Grotesk',sans-serif;font-size:clamp(60px,9vw,145px);line-height:.82;letter-spacing:-.09em;margin:36px 0 40px}
.journey-copy h2 em{font-style:normal;color:transparent;-webkit-text-stroke:1px #eee}
.journey-copy p{max-width:440px;color:#777;line-height:1.8;font-size:14px}
.journey-track{display:flex;align-items:center;gap:20px;white-space:nowrap;transform:rotate(-11deg) translateX(-8%);font:clamp(18px,2vw,28px) 'DM Mono',monospace;color:#6e6e6e}
.journey-track span{transition:color .3s,transform .3s}.journey-track i{width:90px;height:1px;background:#313131}.journey:hover .journey-track span{color:#fff;transform:translateY(-5px)}
.journey::after{content:"";position:absolute;right:-15vw;width:60vw;height:60vw;border:1px solid #181818;border-radius:50%;z-index:-1;transform:rotate(25deg) scaleY(.3);animation:slowOrbit 18s linear infinite}

.floating-can{position:absolute;width:88px;height:210px;border-radius:24px;background:linear-gradient(90deg,#050505,#333 15%,#f5f5f2 42%,#777 58%,#111 82%,#050505);box-shadow:inset 8px 0 10px #fff5,inset -12px 0 16px #000,0 25px 30px #000;transform-style:preserve-3d;filter:grayscale(1)}
.floating-can::before{content:"";position:absolute;left:6px;right:6px;top:-8px;height:18px;border-radius:50%;background:radial-gradient(ellipse,#eee 0 42%,#666 47%,#111 70%,#aaa 76%);box-shadow:inset 0 -5px 8px #0006}
.floating-can::after{content:"";position:absolute;inset:8px 10px;border-radius:inherit;background:linear-gradient(100deg,transparent 20%,#fff8 48%,transparent 58%);transform:translateX(-110%);animation:floatShine 5.5s ease-in-out infinite}
.can-face{position:absolute;inset:35px 0;display:grid;place-items:center;font-family:'Space Grotesk',sans-serif;font-size:70px;font-weight:700;color:#080808;letter-spacing:-.1em}
.can-left{left:12%;top:30%;transform:rotate(-20deg) scale(.82);animation:floatLeft 6s ease-in-out infinite}
.can-back{left:41%;top:4%;transform:rotate(6deg) scale(.55);opacity:.7;animation:floatBack 8s ease-in-out infinite}
.can-right{right:8%;top:32%;transform:rotate(22deg) scale(.76);animation:floatRight 7s ease-in-out infinite}
.product-can{position:relative;z-index:3}
.hero-product{transform-style:preserve-3d}
.reveal-stagger{opacity:0;transform:translateY(45px);transition:opacity .85s cubic-bezier(.16,1,.3,1),transform .85s cubic-bezier(.16,1,.3,1)}
.reveal-stagger.visible{opacity:1;transform:none}
.reveal-stagger:nth-child(2){transition-delay:.09s}.reveal-stagger:nth-child(3){transition-delay:.16s}.reveal-stagger:nth-child(4){transition-delay:.23s}
.playlist.reveal-stagger:nth-child(2){transition-delay:.11s}
.social-link.reveal-stagger:nth-child(2){transition-delay:.11s}.social-link.reveal-stagger:nth-child(3){transition-delay:.18s}
@keyframes floatLeft{50%{transform:rotate(-13deg) translate3d(-12px,-28px,35px) scale(.88)}}@keyframes floatBack{50%{transform:rotate(14deg) translate3d(5px,-20px,-10px) scale(.58)}}@keyframes floatRight{50%{transform:rotate(13deg) translate3d(13px,-34px,20px) scale(.8)}}@keyframes floatShine{0%,40%{transform:translateX(-110%)}68%,100%{transform:translateX(120%)}}@keyframes slowOrbit{to{transform:rotate(385deg) scaleY(.3)}}
@media(max-width:820px){
 .question-grid{grid-template-columns:1fr}.question{min-height:340px}.project-preview{display:none}
 .journey{grid-template-columns:1fr;gap:45px}.journey-track{transform:rotate(-8deg) translateX(-18%);font-size:17px}.journey::after{right:-30vw;width:100vw;height:100vw}.floating-can{width:60px;height:150px;border-radius:18px}.can-face{font-size:46px}.can-left{left:8%}.can-back{left:42%}.can-right{right:4%}
}
@media(prefers-reduced-motion:reduce){
 .question,.project,.journey-track,.floating-can{transform:none}.floating-can::after,.journey::after{animation:none}.reveal-stagger{opacity:1;transform:none}
}

/* Sticky product-story sequence */
.story{
  min-height:200vh;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);
  gap:6vw;padding:0 7vw;position:relative;align-items:start;overflow:hidden
}
.story-visual{
  position:sticky;top:0;height:100vh;display:grid;place-items:center;overflow:hidden
}
.story-orbit{position:absolute;border:1px solid #202020;border-radius:50%;pointer-events:none;transform:rotate(28deg) scaleY(.28)}
.story-orbit-a{width:min(55vw,680px);height:min(55vw,680px);animation:storyOrbit 18s linear infinite}
.story-orbit-b{width:min(42vw,520px);height:min(42vw,520px);transform:rotate(-35deg) scaleY(.32);animation:storyOrbitReverse 13s linear infinite}
.story-product{position:relative;width:min(34vw,420px);height:min(60vw,560px);display:grid;place-items:center;transition:transform .35s cubic-bezier(.16,1,.3,1),filter .35s}
.story-can{
  width:180px;height:390px;border-radius:48px 48px 42px 42px;position:relative;display:flex;
  flex-direction:column;justify-content:center;align-items:center;overflow:hidden;
  background:linear-gradient(90deg,#050505 0,#252525 10%,#f8f8f6 31%,#b7b7b4 48%,#3b3b3b 62%,#090909 88%,#050505 100%);
  box-shadow:inset 13px 0 16px #fff6,inset -18px 0 25px #000,0 40px 80px #000;
  transform:rotate(9deg);transition:transform .55s cubic-bezier(.16,1,.3,1)
}
.story-can::before,.story-can::after{
  content:"";position:absolute;left:8px;right:8px;height:30px;border-radius:50%;
  background:radial-gradient(ellipse,#f4f4f2 0 40%,#777 44%,#111 72%,#c4c4c0 78%,#555 88%);
  box-shadow:inset 0 -7px 10px #0007
}
.story-can::before{top:-10px}.story-can::after{bottom:-10px}
.story-can::selection{background:none}
.story-mark{font:700 135px 'Space Grotesk',sans-serif;line-height:.7;letter-spacing:-.15em;color:#050505;text-shadow:0 8px 15px #fff5}
.story-word{font:800 22px Manrope,sans-serif;letter-spacing:-.08em;margin-top:28px;color:#050505}
.story-can small{font:8px 'DM Mono',monospace;letter-spacing:.18em;margin-top:9px;color:#202020}
.story-glow{position:absolute;width:240px;height:55px;border-radius:50%;background:#fff;filter:blur(38px);opacity:.08;bottom:15%}
.story-counter{position:absolute;left:0;right:0;bottom:9vh;display:flex;align-items:center;justify-content:center;gap:10px;font:9px 'DM Mono',monospace;color:#555;letter-spacing:.15em}
.story-counter i{width:74px;height:1px;background:#333;position:relative;overflow:hidden}
.story-counter i::after{content:"";position:absolute;left:0;top:0;bottom:0;width:25%;background:#fff;transition:transform .5s cubic-bezier(.16,1,.3,1)}
.story-copy{padding:17vh 0 18vh;position:relative}
.story-copy h2{font:700 clamp(65px,9.7vw,145px)/.8 'Space Grotesk',sans-serif;letter-spacing:-.1em;margin:35px 0 32px}
.story-copy h2 em{font-style:normal;color:transparent;-webkit-text-stroke:1px #eee}
.story-intro{max-width:410px;color:#777;font-size:14px;line-height:1.8;margin-bottom:70px}
.story-steps{border-top:1px solid #191919}
.story-step{
  display:grid;grid-template-columns:45px 1fr;gap:16px;align-items:start;padding:32px 0;
  border-bottom:1px solid #191919;color:#5c5c5c;position:relative;transition:color .35s,padding .35s,opacity .35s
}
.story-step::before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:#fff;transform:scaleY(0);transform-origin:top;transition:transform .5s cubic-bezier(.16,1,.3,1)}
.story-step>span{font:10px 'DM Mono',monospace;color:#555}
.story-step strong{font:700 clamp(26px,3vw,45px)/.9 'Space Grotesk',sans-serif;letter-spacing:-.06em;color:#777;display:block;transition:color .35s,transform .35s}
.story-step p{max-width:340px;color:#555;font-size:12px;line-height:1.6;margin:12px 0 0;transition:color .35s}
.story-step.is-active{color:#eee;padding-left:16px}
.story-step.is-active::before{transform:scaleY(1)}
.story-step.is-active>span{color:#eee}
.story-step.is-active strong{color:#fff;transform:translateX(4px)}
.story-step.is-active p{color:#777}
.story-step:nth-child(2) strong{transition-delay:.02s}
.story-step:nth-child(3) strong{transition-delay:.04s}
.story-step:nth-child(4) strong{transition-delay:.06s}
.story.is-visible .story-product{animation:storyProductIn 1s cubic-bezier(.16,1,.3,1) both}
@keyframes storyOrbit{to{transform:rotate(388deg) scaleY(.28)}}@keyframes storyOrbitReverse{to{transform:rotate(-395deg) scaleY(.32)}}
@keyframes storyProductIn{from{opacity:0;transform:translateY(45px) rotate(-8deg) scale(.88)}to{opacity:1;transform:none}}
@media(max-width:820px){
 .story{min-height:auto;display:block;padding:22vw 7vw 25vw}
 .story-visual{position:relative;height:72vh;top:auto;margin-bottom:3vw}
 .story-product{width:85vw;height:80vh}.story-can{width:145px;height:315px}.story-mark{font-size:110px}
 .story-orbit-a{width:90vw;height:90vw}.story-orbit-b{width:72vw;height:72vw}
 .story-copy{padding:8vw 0 4vw}.story-copy h2{font-size:22vw}.story-intro{margin-bottom:42px}.story-step{padding:25px 0}
}
@media(prefers-reduced-motion:reduce){
 .story-orbit,.story-product{animation:none}.story-can{transform:none}.story-step,.story-step.is-active{padding-left:0}
}

.story-counter i::after{width:var(--story-progress,25%)}

.music-scene{min-height:220vh;position:relative;background:#050505;color:#f5f5f2;overflow:clip}
.music-sticky{position:sticky;top:0;height:100vh;min-height:680px;padding:7vh 7vw;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto 1fr auto;gap:0 8vw;align-items:center}
.music-top{grid-column:1/-1;align-self:start;display:flex;justify-content:space-between;align-items:center}
.record-wrap{position:relative;height:min(68vh,690px);display:grid;place-items:center;perspective:1200px}
.record-orbit{position:absolute;border:1px solid #1d1d1d;border-radius:50%;pointer-events:none;transform:rotate(28deg) scaleY(.28)}
.record-orbit-a{width:94%;aspect-ratio:1;animation:recordOrbit 19s linear infinite}
.record-orbit-b{width:72%;aspect-ratio:1;transform:rotate(-36deg) scaleY(.31);animation:recordOrbitReverse 14s linear infinite}
.disc{width:min(34vw,500px);aspect-ratio:1;border-radius:50%;position:relative;display:grid;place-items:center;background:#0a0a0a;border:1px solid #2b2b2b;box-shadow:0 45px 100px #000,inset 0 0 80px #000;animation:spin 18s linear infinite;overflow:visible}
.disc-grooves{position:absolute;inset:1%;border-radius:50%;background:repeating-radial-gradient(circle,#0a0a0a 0 2px,#1b1b1b 3px 4px,#090909 5px 6px);opacity:.9}
.disc::before{content:"";position:absolute;inset:-10%;border-radius:50%;background:conic-gradient(from 180deg,transparent,#fff1,transparent 18%,#fff0,transparent 58%);animation:recordLight 5s linear infinite;z-index:1}
.disc-center{position:absolute;width:27%;aspect-ratio:1;border-radius:50%;display:grid;place-items:center;background:#ededeb;color:#050505;z-index:3;box-shadow:0 0 0 10px #101010,0 0 40px #fff1}
.disc-center span{font:800 clamp(35px,6vw,80px) 'Space Grotesk',sans-serif;letter-spacing:-.12em}
.needle{position:absolute;right:10%;top:9%;width:34%;height:58%;z-index:5;transform:rotate(23deg);transform-origin:top center;filter:drop-shadow(0 12px 20px #000)}
.needle::before{content:"";position:absolute;top:0;right:0;width:8px;height:78%;background:linear-gradient(90deg,#555,#eee 48%,#444);border-radius:8px}
.needle i{position:absolute;right:-5px;bottom:17%;width:15px;height:15px;border-radius:50%;background:#f4f4f2;border:3px solid #111}
.record-caption{position:absolute;left:0;right:0;bottom:1%;display:flex;justify-content:space-between;font:9px 'DM Mono',monospace;color:#565656;letter-spacing:.16em}
.music-panel{align-self:center}
.music-copy h2{font-size:clamp(72px,9.6vw,145px);line-height:.78;letter-spacing:-.1em;margin:28px 0 30px;font-family:'Space Grotesk',sans-serif}
.music-copy h2 em{font-style:normal;color:transparent;-webkit-text-stroke:1px #eee}
.music-copy>p:not(.eyebrow){max-width:360px;color:#747474;line-height:1.7;font-size:14px;margin:0 0 28px}
.listen-button{display:inline-flex;align-items:center;gap:18px;padding:15px 19px;border:1px solid #353535;text-decoration:none;font:10px 'DM Mono',monospace;letter-spacing:.14em;transition:background .35s,color .35s,border-color .35s,transform .35s}
.listen-button b{font-size:16px;font-weight:400}.listen-button:hover{background:#fff;color:#050505;border-color:#fff}
.playlist-selector{margin-top:45px;border-top:1px solid #1b1b1b;position:relative}
.playlist-choice{appearance:none;background:none;border:0;border-bottom:1px solid #1b1b1b;color:#575757;width:100%;padding:23px 0;display:flex;justify-content:space-between;align-items:center;text-align:left;cursor:pointer;font:700 14px Manrope;transition:color .35s,padding .35s}
.playlist-choice span{display:flex;align-items:center;gap:17px}.playlist-choice small{font:9px 'DM Mono',monospace;color:#444}.playlist-choice b{font-size:17px;font-weight:400;color:#444;transition:transform .35s,color .35s}
.playlist-choice.is-active{color:#fff;padding-left:14px}.playlist-choice.is-active small{color:#aaa}.playlist-choice.is-active b{color:#fff;transform:translate(4px,-4px)}
.playlist-choice:hover{color:#fff;padding-left:8px}
.selector-line{height:1px;background:#262626;position:relative;overflow:hidden}.selector-line i{display:block;height:100%;width:50%;background:#fff;transition:transform .55s cubic-bezier(.76,0,.24,1)}
.music-signal{grid-column:1/-1;align-self:end;display:grid;grid-template-columns:auto 1fr auto;gap:18px;align-items:center;font:9px 'DM Mono',monospace;color:#4b4b4b;letter-spacing:.14em}
.signal-bars{height:20px;display:flex;align-items:center;justify-content:center;gap:3px;overflow:hidden}
.signal-bars i{display:block;width:2px;height:var(--h);background:#777;transform-origin:center;animation:signalPulse 1s ease-in-out infinite alternate}
.music-scene.is-muted .signal-bars i{animation-play-state:paused}
@keyframes recordOrbit{to{transform:rotate(388deg) scaleY(.28)}}@keyframes recordOrbitReverse{to{transform:rotate(-396deg) scaleY(.31)}}@keyframes recordLight{to{transform:rotate(360deg)}}@keyframes signalPulse{from{transform:scaleY(.3)}to{transform:scaleY(1)}} 
@media(max-width:820px){
 .music-scene{min-height:auto}.music-sticky{position:relative;height:auto;min-height:0;padding:22vw 7vw 24vw;display:block}
 .music-top{margin-bottom:12vw}.record-wrap{height:72vh;min-height:480px}.disc{width:82vw;max-width:520px}.needle{right:4%;top:8%;width:31%}
 .record-caption{bottom:0}.music-panel{padding-top:18vw}.music-copy h2{font-size:21vw}.playlist-selector{margin-top:38px}.music-signal{display:none}
 .record-orbit-a{width:112vw}.record-orbit-b{width:85vw}
}
@media(prefers-reduced-motion:reduce){
 .record-orbit,.disc,.disc::before,.signal-bars i{animation:none}.selector-line i{transition:none}
}


/* Final cinematic pass: scene wipes, case-study detail layer, end scene */
.scene-wash{
  position:fixed;left:0;top:0;width:100%;height:3px;z-index:89;
  background:#fff;pointer-events:none;transform:scaleX(0);transform-origin:left;
}
.scene-wash.playing{animation:sceneWipe .82s cubic-bezier(.76,0,.24,1) both}
@keyframes sceneWipe{
  0%{transform:scaleX(0);opacity:0}
  12%{transform:scaleX(.18);opacity:1}
  52%{transform:scaleX(1);opacity:1}
  100%{transform:scaleX(1);opacity:0}
}

.site-loader::before{
  content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,#fff1,transparent);
  transform:translateX(-120%);pointer-events:none;
}
.site-loader.entering::before{animation:loaderFlash .8s cubic-bezier(.76,0,.24,1) both}
.site-loader.entering .loader-word span{
  transform:translateY(-8px) scale(1.12);
  opacity:.18;
  letter-spacing:-.16em;
  transition:transform .65s cubic-bezier(.76,0,.24,1),opacity .35s ease,letter-spacing .65s cubic-bezier(.76,0,.24,1)
}
.site-loader.entering .loader-line i{transform:scaleY(7);transition:transform .5s cubic-bezier(.76,0,.24,1)}
@keyframes loaderFlash{
  0%{transform:translateX(-120%);opacity:0}
  35%{opacity:1}
  100%{transform:translateX(120%);opacity:0}
}

/* Case triggers */
.case-trigger{cursor:pointer}
.case-trigger:focus-visible{outline:1px solid #fff;outline-offset:8px}
.case-art.case-trigger::after{
  content:"OPEN ↗";position:absolute;right:24px;top:24px;z-index:4;
  font:8px 'DM Mono',monospace;letter-spacing:.15em;color:#333;opacity:0;
  transform:translateY(-6px);transition:opacity .35s,transform .45s cubic-bezier(.16,1,.3,1)
}
.case-art.case-trigger:hover::after,.case-art.case-trigger:focus-visible::after{opacity:1;transform:none}
.case-copy.case-trigger{cursor:pointer}
.case-copy.case-trigger::after{
  content:"OPEN CASE ↗";position:absolute;right:0;top:0;
  font:8px 'DM Mono',monospace;letter-spacing:.15em;color:#555;opacity:0;
  transform:translateX(8px);transition:opacity .35s,transform .45s
}
.case-copy.case-trigger:hover::after,.case-copy.case-trigger:focus-visible::after{opacity:1;transform:none}

.case-modal{
  position:fixed;inset:0;z-index:160;display:grid;place-items:center;padding:7vw;
  background:#050505;opacity:0;visibility:hidden;pointer-events:none;
  transition:opacity .45s ease,visibility 0s linear .45s;
}
.case-modal.is-open{opacity:1;visibility:visible;pointer-events:auto;transition-delay:0s}
.case-modal-backdrop{position:absolute;inset:0;background:radial-gradient(circle at 50% 45%,#fff0 0 16%,#000 74%);cursor:crosshair}
.case-modal-card{
  width:min(1080px,100%);min-height:min(680px,82vh);position:relative;z-index:1;
  border:1px solid #252525;padding:clamp(28px,5vw,72px);
  display:flex;flex-direction:column;justify-content:space-between;overflow:hidden;
  background:linear-gradient(145deg,#090909,#050505 58%,#0c0c0c);
  transform:translateY(35px) scale(.97);
  transition:transform .7s cubic-bezier(.16,1,.3,1)
}
.case-modal.is-open .case-modal-card{transform:none}
.case-modal-card::before{
  content:"";position:absolute;width:52vw;height:52vw;right:-25vw;top:-25vw;
  border:1px solid #171717;border-radius:50%;transform:rotate(28deg) scaleY(.28);
  animation:modalOrbit 16s linear infinite;pointer-events:none
}
.case-modal-close{
  appearance:none;border:1px solid #292929;background:transparent;color:#f5f5f2;
  align-self:flex-end;padding:11px 14px;cursor:pointer;
  font:9px 'DM Mono',monospace;letter-spacing:.15em;transition:background .3s,color .3s
}
.case-modal-close:hover{background:#fff;color:#050505}
.case-modal-close b{font-size:16px;font-weight:400;margin-left:8px}
.case-modal-index{font:9px 'DM Mono',monospace;letter-spacing:.16em;color:#4e4e4e;margin-top:30px}
.case-modal-card .eyebrow{margin:55px 0 18px}
.case-modal-card h2{
  font:800 clamp(88px,13vw,190px)/.72 'Space Grotesk',sans-serif;
  letter-spacing:-.115em;margin:0
}
.case-modal-card h2 span{color:transparent;-webkit-text-stroke:1px #eee}
.case-modal-copy{max-width:620px;color:#777;line-height:1.8;font-size:14px;margin:35px 0 0}
.case-modal-meta{
  display:grid;grid-template-columns:repeat(3,1fr);gap:20px;
  border-top:1px solid #1b1b1b;margin-top:70px;padding-top:20px
}
.case-modal-meta div{display:flex;flex-direction:column;gap:9px}
.case-modal-meta small,.case-modal-cta span{font:8px 'DM Mono',monospace;letter-spacing:.16em;color:#4c4c4c}
.case-modal-meta strong{font:10px 'DM Mono',monospace;font-weight:400;letter-spacing:.1em;color:#d8d8d6}
.case-modal-cta{
  display:flex;justify-content:space-between;gap:20px;border-top:1px solid #1b1b1b;
  margin-top:24px;padding-top:15px
}
@keyframes modalOrbit{to{transform:rotate(388deg) scaleY(.28)}}

/* Higher-impact end scene */
.endcap{
  min-height:100vh;position:relative;padding:7vw;justify-content:space-between;
  isolation:isolate;background:#050505;overflow:hidden
}
.endcap-bg{
  position:absolute;inset:auto -7vw -8vw;
  font:800 34vw/.72 'Space Grotesk',sans-serif;letter-spacing:-.13em;
  white-space:nowrap;color:transparent;-webkit-text-stroke:1px #171717;
  z-index:-1;transform:translateX(-5%);animation:endFloat 12s ease-in-out infinite
}
.endcap-top,.endcap-bottom{display:flex;justify-content:space-between;align-items:center}
.endcap-top,.endcap-bottom{font:9px 'DM Mono',monospace;letter-spacing:.15em;color:#565656}
.endcap-main{align-self:center;width:100%}
.endcap-main .eyebrow{margin-bottom:28px}
.endcap-main h2{margin:0}
.endcap-bottom .back-top{margin:0;color:#f5f5f2}
@keyframes endFloat{50%{transform:translateX(2%) translateY(-2%)}}
body.modal-open{overflow:hidden}
html.modal-lock{scroll-behavior:auto;overflow:hidden}

@media(max-width:820px){
  .scene-wash{height:2px}
  .case-modal{padding:6vw}
  .case-modal-card{min-height:min(760px,88vh);padding:24px;justify-content:flex-start}
  .case-modal-card .eyebrow{margin:42px 0 16px}
  .case-modal-card h2{font-size:24vw}
  .case-modal-copy{font-size:12px;line-height:1.7;margin-top:25px}
  .case-modal-meta{grid-template-columns:1fr;margin-top:45px;gap:18px}
  .case-modal-cta{margin-top:auto;padding-top:14px}
  .endcap{min-height:88vh;padding:12vw 7vw 9vw}
  .endcap-bg{font-size:48vw;bottom:3vw}
  .endcap-top,.endcap-bottom{align-items:flex-start}
  .endcap-top span:last-child,.endcap-bottom>span{max-width:145px;text-align:right;line-height:1.5}
  .endcap-main h2{font-size:22vw}
  .endcap-main .eyebrow{font-size:8px;max-width:220px;line-height:1.5}
}

@media(prefers-reduced-motion:reduce){
  .scene-wash,.site-loader.entering::before,.case-modal-card::before,.endcap-bg{animation:none}
  .site-loader.entering .loader-word span{transform:none;opacity:.8;letter-spacing:-.11em}
  .case-modal-card{transition:none}
}


/* Mobile choreography + render containment */
@media(max-width:820px){
  body.scene-started .hero h1 span{animation:mobileHeroLine .8s cubic-bezier(.16,1,.3,1) both}
  body.scene-started .hero h1 span:nth-child(1){animation-delay:.1s}
  body.scene-started .hero h1 span:nth-child(2){animation-delay:.18s}
  body.scene-started .hero h1 span:nth-child(3){animation-delay:.26s}
  body.scene-started .hero-bottom{animation:mobileHeroMeta .75s cubic-bezier(.16,1,.3,1) .42s both}
  .question.reveal-stagger.visible{animation:mobileCardSettle .65s cubic-bezier(.16,1,.3,1) both}
  .story-step.is-active strong{transform:translateX(2px)}
}
@keyframes mobileHeroLine{
  from{opacity:0;transform:translate3d(0,24px,0) skewX(2deg)}
  to{opacity:1;transform:none}
}
@keyframes mobileHeroMeta{
  from{opacity:0;transform:translateY(14px)}
  to{opacity:1;transform:none}
}
@keyframes mobileCardSettle{
  from{transform:translateY(10px)}
  to{transform:none}
}

.questions,.journey,.social,.endcap{contain:layout paint}
.case-studies,.story,.music-scene{contain:layout}


/* Responsive motion calibration */
@media(min-width:821px) and (max-width:1199px){
  .music-sticky,.case-sticky{min-height:620px}
  .record-wrap,.case-stage,.case-copy-wrap{min-height:410px}
  .music-copy h2{font-size:clamp(64px,8.6vw,108px)}
  .case-copy h2{font-size:clamp(70px,10vw,125px)}
  .story-copy{padding-top:13vh}
}
@media(max-width:820px){
  .site-loader{padding:max(18px,env(safe-area-inset-top)) 0 max(18px,env(safe-area-inset-bottom))}
  .loader-inner{width:86vw}
  .loader-top,.loader-bottom{font-size:8px}
  .loader-word{margin:26px 0;font-size:clamp(72px,24vw,126px)}
  .loader-bottom span:first-child{max-width:170px;line-height:1.4}
  .start-button{min-width:210px;min-height:52px}

  .hero-copy,.hero-product,.hero-status{will-change:auto}
  .product-orbit-a,.product-orbit-b{animation-duration:22s}
  .floating-can::after{animation-duration:7s}

  .question::before{display:none}
  .question{transition:background .3s ease,transform .3s ease}
  .question:active{transform:scale(.985)}

  .case-modal-card{overflow:auto;-webkit-overflow-scrolling:touch}
  .case-modal-close{min-height:var(--tap);min-width:86px}
  .case-modal-card h2{line-height:.78}
  .case-modal-meta strong{line-height:1.45}

  .disc{box-shadow:0 30px 70px #000,inset 0 0 60px #000}
  .record-orbit-a,.record-orbit-b{animation-duration:24s}
  .signal-bars i{animation-duration:1.4s}

  .endcap-bg{animation-duration:18s}
}

@media(max-width:430px){
  .loader-word{font-size:22vw}
  .case-modal{padding:4vw}
  .case-modal-card{padding:20px}
  .case-modal-card .eyebrow{margin-top:30px}
  .case-modal-cta{font-size:7px}
}

@media(prefers-reduced-motion:reduce){
  .hero-copy,.hero-product,.hero-status{animation:none!important}
}
