:root{--bg:#080808;--fg:#f3f2ee;--muted:#9a9a96;--accent:#cdfc45;--line:rgba(255,255,255,.2);--ease:cubic-bezier(.16,1,.3,1)}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;background:var(--bg);color:var(--fg);font-family:Arial,Helvetica,sans-serif}body{overflow:hidden}button{font:inherit;color:inherit}button,a{cursor:pointer}.grain{position:fixed;inset:0;z-index:90;pointer-events:none;opacity:.055;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.8'/%3E%3C/svg%3E")}
.loader{position:fixed;inset:0;z-index:200;background:#050505;display:grid;place-items:center;transition:clip-path .5s var(--ease),visibility 0s linear .55s;clip-path:inset(0);animation:loaderFailsafe .5s var(--ease) 1.2s forwards}.loader.done{clip-path:inset(0 0 100% 0);visibility:hidden;pointer-events:none}.loader.skip{display:none}.loader-word{display:flex;gap:.18em;font-size:clamp(1.3rem,3vw,3rem);font-weight:700;letter-spacing:.18em;overflow:hidden}.loader-word span{transform:translateY(120%);animation:letterIn .65s var(--ease) forwards}.loader-word span:nth-child(2){animation-delay:.06s}.loader-word span:nth-child(3){animation-delay:.12s}.loader-word span:nth-child(4){animation-delay:.18s}.loader-word span:nth-child(5){animation-delay:.24s}.loader-word span:nth-child(6){animation-delay:.3s}.loader-word span:nth-child(7){animation-delay:.36s}.loader-track{position:absolute;width:min(360px,55vw);height:3px;background:#242424}.loader-track i{display:block;width:0;height:100%;background:var(--fg)}.loader-count{position:absolute;bottom:7vh;right:7vw;font:12px monospace;letter-spacing:.15em}
.rotate-lock{display:none;position:fixed;inset:0;z-index:300;background:#080808;place-items:center;text-align:center;padding:40px}.rotate-lock .phone-icon{font-size:3rem}.rotate-lock p{letter-spacing:.15em}.rotate-lock small{color:var(--muted)}
.cursor,.cursor-label{display:none}
.header{position:fixed;inset:0 0 auto;height:104px;z-index:60;display:flex;align-items:center;justify-content:space-between;padding:0 4vw}.header::after{content:"";position:absolute;left:4vw;right:4vw;bottom:0;height:1px;background:rgba(255,255,255,.2);pointer-events:none;transition:background-color .2s ease}.identity{border:0;background:none;display:flex;align-items:center;gap:clamp(9px,1vw,15px);width:auto;height:76px;padding:0;overflow:visible;isolation:isolate}.identity-logo,.identity-monogram{display:block;flex:0 0 auto;width:auto;object-fit:contain;mix-blend-mode:normal;transition:filter .25s ease,opacity .25s ease}.identity-logo{height:100%;object-position:left center;filter:drop-shadow(0 1px 2px rgba(0,0,0,.9)) drop-shadow(0 0 8px rgba(0,0,0,.34))}.identity-monogram{height:74%;object-position:center;filter:drop-shadow(0 1px 2px rgba(0,0,0,.9))}.header-back{position:absolute;right:calc(4vw + 190px);height:38px!important;padding:0 17px!important;display:flex;align-items:center;gap:8px;color:#fff!important;border-color:rgba(255,255,255,.58)!important;background:rgba(0,0,0,.08)!important;white-space:nowrap}.header-back[hidden]{display:none}.header-index{position:absolute;left:50%;transform:translateX(-50%);font:10px monospace;letter-spacing:.14em}.header-contact{position:absolute;right:calc(4vw + 80px);height:38px;min-width:98px;padding:0 15px;display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid #f5c400;background:#f5c400;color:#080808;text-decoration:none;font:700 10px monospace;letter-spacing:.13em;transition:background-color .2s ease,color .2s ease,border-color .2s ease}.header-contact:hover,.header-contact:focus-visible{background:#fff;border-color:#fff}.header-contact:focus-visible{outline:2px solid currentColor;outline-offset:3px}.menu-button{width:66px;height:66px;border:1px solid rgba(255,255,255,.5);background:none;border-radius:50%;display:grid;place-content:center;gap:4px}.menu-button i{display:block;width:18px;height:1px;background:#fff;transition:.4s var(--ease)}.header.on-light::after{background:rgba(0,0,0,.2)}.header.on-light .identity-logo{filter:brightness(1.32) contrast(.92) saturate(1.08) drop-shadow(0 0 1px rgba(0,0,0,.95)) drop-shadow(0 1px 4px rgba(0,0,0,.55))}.header.on-light .identity-monogram{filter:brightness(0) drop-shadow(0 1px 1px rgba(255,255,255,.8))}.header.on-light .header-back{color:#090909!important;border-color:rgba(0,0,0,.5)!important;background:rgba(255,255,255,.12)!important}.header.on-light .menu-button{border-color:rgba(0,0,0,.48);color:#090909}.header.on-light .menu-button i{background:#090909}.menu-button[aria-expanded=true] i:first-child{transform:translateY(5px) rotate(45deg)}.menu-button[aria-expanded=true] i:nth-child(2){opacity:0}.menu-button[aria-expanded=true] i:last-child{transform:translateY(-5px) rotate(-45deg)}
.mobile-nav{position:fixed;inset:0;z-index:50;background:rgba(5,5,5,.97);padding:130px 9vw 40px;display:flex;flex-direction:column;visibility:hidden;opacity:0;transition:.5s var(--ease)}.mobile-nav.open{visibility:visible;opacity:1}.mobile-nav p{font:10px monospace;color:var(--accent);letter-spacing:.2em}.mobile-nav a{border:0;border-bottom:1px solid var(--line);background:none;color:inherit;text-decoration:none;text-align:left;padding:15px 0;font-size:clamp(2.3rem,6vw,5rem);letter-spacing:-.05em}.mobile-nav .nav-number{font:10px monospace;color:var(--muted);display:inline-block;width:60px;letter-spacing:0}
.app,.home-view,.menu-view,.detail-view{position:absolute;inset:0}.home-view,.menu-view,.detail-view{visibility:hidden;pointer-events:none}.is-active{visibility:visible;pointer-events:auto}.home-view{overflow:hidden;background:#0b0b0b}.parallax-scene,.layer{position:absolute;inset:-8%}.layer{will-change:transform;transition:transform .12s linear}.layer-back{background:url("assets/noizy-ghost-street-background.webp") center center/cover no-repeat}.layer-glow{background:linear-gradient(90deg,rgba(0,0,0,.72),rgba(0,0,0,.34) 44%,rgba(0,0,0,.08) 78%),linear-gradient(0deg,rgba(5,5,5,.78),transparent 38%,rgba(5,5,5,.08));filter:none}.layer-grid,.layer-object{display:none}.object-placeholder{width:min(34vw,520px);aspect-ratio:.72;background:linear-gradient(145deg,#d6d6d0,#41413e 60%,#111);border-radius:46% 46% 25% 25%;display:flex;flex-direction:column;justify-content:center;align-items:center;color:#111;box-shadow:0 50px 80px rgba(0,0,0,.5),0 0 80px rgba(205,252,69,.12);clip-path:polygon(8% 0,92% 0,100% 82%,83% 100%,66% 88%,50% 100%,34% 88%,17% 100%,0 82%);font-weight:700;letter-spacing:.08em}.object-placeholder small{font:9px monospace;margin-top:8px}.layer-front{background:linear-gradient(90deg,rgba(0,0,0,.45),transparent 55%),linear-gradient(0deg,#050505 0,transparent 24%)}
.home-content{position:absolute;z-index:5;left:8vw;top:50%;width:47vw;transform:translateY(-45%)}.rotating-role{height:26px;width:180px;background:#fff;color:#111;border-radius:4px;position:relative;overflow:hidden;margin-bottom:30px;font:bold 12px monospace}.rotating-role span{position:absolute;left:12px;top:7px;transform:translateY(35px);animation:role 9s infinite}.rotating-role span:nth-child(2){animation-delay:3s}.rotating-role span:nth-child(3){animation-delay:6s}.split-title{font-size:clamp(4rem,8.2vw,9rem);line-height:.8;margin:0 0 35px;letter-spacing:-.07em}.split-title em{font-style:normal;color:transparent;-webkit-text-stroke:1px #fff}.intro{max-width:500px;color:#c0c0bc;line-height:1.5}.home-actions{display:flex;gap:12px;margin-top:42px}.scroll-hint,.enter-button{height:48px;border-radius:999px}.scroll-hint{width:260px;border:0;background:#fff;color:#111;display:flex;align-items:center;padding:0 22px;font:11px monospace;letter-spacing:.15em}.scroll-hint i{height:1px;width:70px;background:#111;margin-right:18px;animation:scrollLine 1.8s infinite;transform-origin:left}.enter-button{min-width:130px;border:0;background:#fff;color:#111;padding:0 22px;display:flex;justify-content:space-between;align-items:center;font:11px monospace;letter-spacing:.15em}.coordinates{position:absolute;z-index:5;right:4vw;bottom:4vh;font:9px monospace;line-height:1.7;color:#999;letter-spacing:.12em;text-align:right}.side-tag{position:absolute;z-index:5;right:0;top:52%;height:120px;width:38px;background:#050505;display:flex;align-items:center;justify-content:center;gap:18px;flex-direction:column}.side-tag span{font:8px monospace;writing-mode:vertical-rl;letter-spacing:.12em}
.home-symbol{
  position:absolute;
  z-index:5;
  left:auto;
  right:clamp(13vw,16vw,19vw);
  top:56%;
  width:clamp(82px,8vw,138px);
  height:auto;
  transform:translate3d(0,-50%,0);
  filter:drop-shadow(0 22px 34px rgba(0,0,0,.55)) drop-shadow(0 0 26px rgba(255,255,255,.08));
  pointer-events:none;
}
.menu-view{background:radial-gradient(circle at 50% 46%,#242424,#080808 65%);padding:122px 0 42px;opacity:0;transform:scale(1.06);transition:opacity .75s var(--ease),transform .75s var(--ease)}.menu-view.is-active{opacity:1;transform:scale(1)}.menu-heading{height:115px;display:flex;align-items:center;padding:0 8vw;gap:24px}.back-home,.back-menu{border:1px solid var(--line);background:rgba(255,255,255,.07);height:48px;border-radius:999px;padding:0 22px;font:10px monospace;letter-spacing:.13em}.menu-section-number{font:10px monospace;color:var(--accent);margin-left:auto}.menu-title{font-size:clamp(2rem,4vw,4.3rem);letter-spacing:-.055em;margin:0;min-width:280px}.carousel-shell{position:relative;height:calc(100vh - 370px);min-height:360px}.carousel{height:100%;display:flex;align-items:center;gap:30px;overflow-x:auto;padding:10px calc(50vw - 240px) 20px;scroll-snap-type:none;scrollbar-width:none;overscroll-behavior-x:contain}.carousel::-webkit-scrollbar{display:none}.menu-card{position:relative;z-index:1;flex:0 0 480px;opacity:.3;transform:scale(.84);transition:opacity .55s var(--ease),transform .55s var(--ease);cursor:pointer;outline:none}.menu-card.is-selected{z-index:2;opacity:1;transform:scale(1)}.menu-card:focus-visible .card-image{outline:2px solid #fff;outline-offset:4px}.card-image{height:min(43vh,450px);min-height:300px;border-radius:18px;position:relative;overflow:hidden;display:grid;place-items:center;border:1px solid rgba(255,255,255,.3);box-shadow:0 30px 70px rgba(0,0,0,.5)}.card-image::before,.card-image::after{content:"";position:absolute;border-radius:50%;border:1px solid rgba(255,255,255,.35)}.card-image::before{width:65%;aspect-ratio:1}.card-image::after{width:38%;aspect-ratio:1}.card-image span{position:absolute;top:20px;left:22px;font:10px monospace;letter-spacing:.15em}.card-image b{font-size:2rem;letter-spacing:.14em}.art-one{background:linear-gradient(140deg,#77951f,#10120c)}.art-two{background:linear-gradient(140deg,#8e2b1c,#160c0a)}.art-three{background:linear-gradient(140deg,#392b80,#0e0b17)}.art-four{background:linear-gradient(140deg,#17647a,#081216)}.art-five{background:linear-gradient(140deg,#79256d,#150b14)}.menu-card h3{font-size:1.1rem;letter-spacing:.06em;margin:18px 0 6px}.menu-card p{font-size:.85rem;color:#aaa;max-width:390px;line-height:1.45;margin:0}.carousel-arrow{position:absolute;z-index:4;top:50%;width:50px;height:50px;border-radius:50%;border:0;background:#fff;color:#111}.previous{left:calc(50% - 290px)}.next{right:calc(50% - 290px)}.menu-footer{height:105px;margin:10px 8vw 0;display:grid;grid-template-columns:1fr 340px 1fr;align-items:center;gap:30px}.carousel-progress{height:1px;background:var(--line);position:relative}.carousel-progress i{display:block;width:20%;height:1px;background:#fff;transition:width .45s var(--ease)}.open-page{height:50px;border:0;border-radius:999px;background:#fff;color:#111;display:flex;align-items:center;justify-content:space-between;padding:0 25px;font:11px monospace;letter-spacing:.14em}.menu-counter{text-align:right;font:10px monospace;color:#777}.menu-counter span{color:#fff}
.detail-view{background:#0a0a0a;opacity:0;transform:translateY(100%);transition:opacity .75s var(--ease),transform .9s var(--ease)}.detail-view.is-active{opacity:1;transform:translateY(0)}.detail-nav{position:absolute;z-index:4;top:118px;left:5vw;right:5vw;display:flex;justify-content:space-between;align-items:center}.detail-number{font:10px monospace;color:var(--accent)}.detail-scroll{position:absolute;inset:0;overflow-y:auto;overflow-x:hidden;scroll-behavior:smooth;overscroll-behavior:contain}.detail-hero{min-height:100vh;padding:210px 8vw 80px;position:relative;background:radial-gradient(circle at 78% 45%,color-mix(in srgb,var(--accent) 20%,transparent),transparent 34%)}.detail-kicker,.label{font:10px monospace;color:var(--accent);letter-spacing:.16em}.detail-hero h2{font-size:clamp(4rem,11vw,12rem);letter-spacing:-.08em;line-height:.8;margin:40px 0 25px}.detail-hero>p{max-width:520px;color:#aaa;line-height:1.55}.detail-visual{position:absolute;right:8vw;bottom:10vh;width:38vw;height:48vh;border:1px solid var(--line);display:grid;place-items:center;overflow:hidden;background:#080808}.detail-visual img{width:100%;height:100%;display:block;object-fit:cover;object-position:center}.continue-scroll{position:absolute;bottom:5vh;left:8vw;font:9px monospace;color:#777;letter-spacing:.15em}.continue-scroll i{display:inline-block;width:70px;height:1px;background:#777;margin-right:15px}.content-block{min-height:80vh;padding:14vh 10vw;display:grid;grid-template-columns:1fr 2fr;gap:8vw;align-items:start;background:#eee;color:#0a0a0a}.content-number{font:10px monospace}.content-block h3,.media-copy h3{font-size:clamp(2.8rem,6vw,7rem);line-height:.9;letter-spacing:-.06em;margin:30px 0}.body-copy{max-width:600px;line-height:1.65;color:#555}.media-grid{padding:15vh 8vw;display:grid;grid-template-columns:1fr 1fr;gap:8vw 5vw;align-items:center}.media-placeholder{border:1px solid var(--line);display:grid;place-items:center;background:#151515;font:10px monospace;color:#777;letter-spacing:.15em}.media-placeholder.tall{height:75vh}.media-placeholder.wide{height:55vh;grid-column:1/-1}.next-section{padding:12vh 8vw;background:var(--accent);color:#0a0a0a}.next-section>p{font:10px monospace;letter-spacing:.15em}.next-page{width:100%;border:0;border-top:1px solid rgba(0,0,0,.3);border-bottom:1px solid rgba(0,0,0,.3);background:none;color:inherit;text-decoration:none;padding:25px 0;display:grid;grid-template-columns:100px 1fr auto;text-align:left;align-items:center}.next-page span{font:10px monospace}.next-page b{font-size:clamp(3rem,8vw,8rem);letter-spacing:-.07em}.next-page i{font-size:3rem}footer{height:120px;padding:0 8vw;display:flex;align-items:center;justify-content:space-between;font:9px monospace;color:#777;letter-spacing:.12em}
.detail-view{background:#0a0a0a;opacity:0;transform:translateY(100%);transition:opacity .75s var(--ease),transform .9s var(--ease)}.detail-view.is-active{opacity:1;transform:translateY(0)}.detail-nav{position:absolute;z-index:4;top:118px;left:5vw;right:5vw;display:flex;justify-content:space-between;align-items:center}.detail-number{font:10px monospace;color:var(--accent)}.detail-scroll{position:absolute;inset:0;overflow-y:auto;overflow-x:hidden;scroll-behavior:smooth;overscroll-behavior:contain}.detail-hero{min-height:100vh;padding:210px 8vw 80px;position:relative;background:radial-gradient(circle at 78% 45%,color-mix(in srgb,var(--accent) 20%,transparent),transparent 34%)}.detail-kicker,.label{font:10px monospace;color:var(--accent);letter-spacing:.16em}.detail-hero h2{font-size:clamp(4rem,11vw,12rem);letter-spacing:-.08em;line-height:.8;margin:40px 0 25px}.detail-hero>p{max-width:520px;color:#aaa;line-height:1.55}.detail-visual{position:absolute;right:8vw;bottom:10vh;width:38vw;height:48vh;border:1px solid var(--line);display:grid;place-items:center;overflow:hidden;background:#080808}.detail-visual img{width:100%;height:100%;display:block;object-fit:cover;object-position:center}.continue-scroll{position:absolute;bottom:5vh;left:8vw;font:9px monospace;color:#777;letter-spacing:.15em}.continue-scroll i{display:inline-block;width:70px;height:1px;background:#777;margin-right:15px}.content-block{min-height:80vh;padding:14vh 10vw;display:grid;grid-template-columns:1fr 2fr;gap:8vw;align-items:start;background:#eee;color:#0a0a0a}.content-number{font:10px monospace}.content-block h3,.media-copy h3{font-size:clamp(2.8rem,6vw,7rem);line-height:.9;letter-spacing:-.06em;margin:30px 0}.body-copy{max-width:600px;line-height:1.65;color:#555}.media-grid{padding:15vh 8vw;display:grid;grid-template-columns:1fr 1fr;gap:8vw 5vw;align-items:center}.media-placeholder{border:1px solid var(--line);display:grid;place-items:center;background:#151515;font:10px monospace;color:#777;letter-spacing:.15em}.media-placeholder.tall{height:75vh}.media-placeholder.wide{height:55vh;grid-column:1/-1}.next-section{padding:12vh 8vw;background:var(--accent);color:#0a0a0a}.next-section>p{font:10px monospace;letter-spacing:.15em}.next-page{width:100%;border:0;border-top:1px solid rgba(0,0,0,.3);border-bottom:1px solid rgba(0,0,0,.3);background:none;padding:25px 0;display:grid;grid-template-columns:100px 1fr auto;text-align:left;align-items:center}.next-page span{font:10px monospace}.next-page b{font-size:clamp(3rem,8vw,8rem);letter-spacing:-.07em}.next-page i{font-size:3rem}footer{height:120px;padding:0 8vw;display:flex;align-items:center;justify-content:space-between;font:9px monospace;color:#777;letter-spacing:.12em}.detail-view.is-portfolio .detail-kicker,.detail-view.is-portfolio .content-number,.detail-view.is-portfolio .next-page span{display:none}.detail-view.is-portfolio .content-block{grid-template-columns:1fr}.detail-view.is-portfolio .next-page{grid-template-columns:1fr auto}
@keyframes letterIn{to{transform:translateY(0)}}@keyframes loaderFailsafe{to{clip-path:inset(0 0 100% 0);visibility:hidden;pointer-events:none}}@keyframes role{0%{transform:translateY(35px)}8%,28%{transform:translateY(0)}34%,100%{transform:translateY(-35px)}}@keyframes scrollLine{0%,100%{transform:scaleX(.15)}50%{transform:scaleX(1)}}
@media(max-width:800px){.cursor,.cursor-label,.header-index,.coordinates,.side-tag{display:none}.header{height:84px;padding:0 20px}.header::after{left:20px;right:20px}.identity{gap:7px;width:auto;height:50px}.identity-logo{max-width:130px}.identity-monogram{display:none}.header-back{left:auto;right:162px;transform:none;width:34px;height:34px!important;padding:0!important;justify-content:center}.header-back span{display:none}.header-contact{right:82px;height:34px;min-width:72px;padding:0 10px;gap:0}.header-contact span{display:none}.menu-button{width:54px;height:54px}.home-content{left:24px;right:24px;top:120px;width:auto;transform:none}.split-title{font-size:18vw}.intro{font-size:.9rem;max-width:85%}.home-actions{flex-wrap:wrap}.scroll-hint{width:190px}.layer-object{padding:42vh 0 0}.object-placeholder{width:68vw}.menu-view{padding-top:90px}.menu-heading{height:100px;padding:0 22px}.menu-heading .back-home span{display:none}.menu-title{min-width:0;font-size:1.8rem}.carousel-shell{height:calc(100vh - 315px)}.carousel{gap:15px;padding-left:10vw;padding-right:10vw;scroll-padding:0 10vw}.menu-card{flex-basis:80vw}.card-image{height:40vh;min-height:260px}.carousel-arrow{display:none}.menu-footer{height:90px;margin:0 22px;grid-template-columns:1fr 2fr}.menu-counter{display:none}.detail-hero{padding:180px 24px 70px;min-height:900px}.detail-visual{position:relative;right:auto;bottom:auto;width:100%;height:42vh;margin-top:60px}.continue-scroll{left:24px}.content-block{grid-template-columns:1fr;padding:100px 24px}.media-grid{grid-template-columns:1fr;padding:100px 24px}.media-placeholder.tall{height:65vh}.next-section{padding:80px 24px}.next-page{grid-template-columns:50px 1fr auto}footer{padding:0 24px;gap:20px}}

.detail-view.is-portfolio .content-block{
  grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr);
  gap:clamp(32px,6vw,100px);
  align-items:center;
}

.origin-ghost{
  display:block;
  width:min(100%,520px);
  height:auto;
  justify-self:center;
  align-self:center;
  filter:drop-shadow(0 22px 28px rgba(0,0,0,.16));
}

.media-placeholder.media-video{
  display:block;
  overflow:hidden;
  padding:0;
  background:#050505;
}

.media-video video{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
}

.loader-word{
  max-width:min(920px,84vw);
  flex-wrap:wrap;
  justify-content:center;
  gap:.18em .48em;
  font-size:clamp(1.05rem,2.35vw,2.35rem);
}

.loader-content{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:clamp(28px,4vh,46px);
  padding:0 24px;
  transform:translateY(-2vh);
}

.loader-track{
  display:none;
}

.loader-symbol{
  display:block;
  width:clamp(72px,9vw,132px);
  height:auto;
  opacity:0;
  transform:translate3d(0,14px,0) scale(.94);
  filter:drop-shadow(0 16px 28px rgba(255,255,255,.08));
  animation:loaderSymbolIn .72s var(--ease) .34s forwards;
}

@keyframes loaderSymbolIn{
  to{
    opacity:.96;
    transform:translate3d(0,0,0) scale(1);
  }
}

.media-copy .body-copy{
  color:#f5f5f2;
}

@media(max-width:800px){
  .detail-view.is-portfolio .content-block{
    grid-template-columns:1fr;
  }

  .origin-ghost{
    width:min(88vw,440px);
    margin:18px auto 0;
  }
}
@media(max-width:1000px) and (orientation:landscape) and (max-height:600px){.rotate-lock{display:none!important}}
@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.detail-scroll{scroll-behavior:auto}}

.card-image .card-art{position:relative!important;z-index:1!important;display:block!important;width:auto!important;height:auto!important;max-width:72%!important;max-height:84%!important;object-fit:contain!important;object-position:center!important;margin:auto!important;filter:none!important}
.logo-card{background:#000;display:grid;place-items:center}
.logo-card::before,.logo-card::after{display:none}
.logo-card .card-art{position:relative;z-index:1;display:block;width:auto;height:auto;max-width:74%;max-height:86%;object-fit:contain;object-position:center;margin:auto;filter:none}
.remix-card{background:#000;display:grid;place-items:center}
.remix-card::before,.remix-card::after{display:none}
.remix-card .card-art{position:relative;z-index:1;display:block;width:auto;height:auto;max-width:72%;max-height:84%;object-fit:contain;object-position:center;margin:auto;filter:none}
.studio-card{background:#000;display:grid;place-items:center}
.studio-card::before,.studio-card::after{display:none}
.studio-card .card-art{position:relative;z-index:1;display:block;width:auto;height:auto;max-width:72%;max-height:84%;object-fit:contain;object-position:center;margin:auto;filter:none}
.ghost-cast-card{background:#000;display:grid;place-items:center}
.ghost-cast-card::before,.ghost-cast-card::after{display:none}
.ghost-cast-card .card-art{position:relative;z-index:1;display:block;width:auto;height:auto;max-width:72%;max-height:84%;object-fit:contain;object-position:center;margin:auto;filter:none}
.paratrippin-card{background:#000;display:grid;place-items:center}
.paratrippin-card::before,.paratrippin-card::after{display:none}
.paratrippin-card .card-art{max-width:72%!important;max-height:84%!important}

.liquid-gallery{
  grid-column:1/-1;
  width:calc(100% + 16vw);
  margin-left:-8vw;
  margin-right:-8vw;
  height:82vh;
  min-height:640px;
  max-height:900px;
  position:relative;
  overflow:hidden;
  background:#eef3ed;
  color:#060706;
  border:0;
}
.liquid-filter{
  position:absolute;
  left:0;
  top:0;
  width:1px;
  height:1px;
  overflow:visible;
  opacity:0;
  pointer-events:none;
}
.liquid-gallery-heading{
  position:absolute;
  z-index:6;
  top:clamp(80px,11vh,132px);
  left:50%;
  width:92vw;
  margin:0;
  transform:translateX(-50%);
  color:#090909;
  font-size:clamp(2.8rem,4.25vw,4.8rem);
  font-weight:700;
  line-height:.9;
  letter-spacing:-.06em;
  text-align:center;
  pointer-events:none;
}
.liquid-track{
  height:100%;
  position:relative;
  display:block;
  overflow:hidden;
  overflow-y:hidden;
  scrollbar-width:none;
  cursor:default;
  padding:0;
}
.liquid-track::-webkit-scrollbar{display:none}
.liquid-track.dragging{cursor:grabbing}
.liquid-nav{
  position:absolute;
  z-index:7;
  top:58%;
  width:64px;
  height:64px;
  border:1px solid rgba(0,0,0,.22);
  border-radius:50%;
  background:rgba(255,255,255,.94);
  color:#090909;
  display:grid;
  place-items:center;
  font-size:1.35rem;
  transform:translateY(-50%);
  cursor:pointer;
  transition:background-color .25s ease,border-color .25s ease;
}
.liquid-nav:hover,
.liquid-nav:focus-visible{background:#fff;border-color:#090909}
.liquid-nav--previous{left:max(18px,2vw)}
.liquid-nav--next{right:max(18px,2vw)}
.liquid-slide{
  --mx:50%;
  --my:50%;
  --image:none;
  --gallery-x:0px;
  --gallery-w:110px;
  --gallery-h:420px;
  --gallery-y:0px;
  --gallery-opacity:1;
  position:absolute;
  left:50%;
  top:50%;
  width:var(--gallery-w);
  height:var(--gallery-h);
  border:0;
  background:transparent;
  overflow:hidden;
  padding:0;
  isolation:isolate;
  opacity:var(--gallery-opacity);
  touch-action:pan-x;
  transform:translate3d(calc(-50% + var(--gallery-x)),calc(-50% + var(--gallery-y)),0);
  cursor:pointer;
  transition:transform 1.05s cubic-bezier(.19,1,.22,1),width 1.05s cubic-bezier(.19,1,.22,1),opacity .45s ease,filter .45s ease;
}
.liquid-slide.is-active{filter:none;cursor:default}
.liquid-slide::before,
.liquid-slide::after{
  content:"";
  position:absolute;
  inset:0;
  background-repeat:no-repeat;
  will-change:transform,opacity,clip-path;
}
.liquid-slide::before{
  z-index:1;
  background-color:transparent;
  background-image:var(--image);
  background-position:center;
  background-size:cover;
  opacity:0;
  transform:scale(1.02);
  transition:opacity .62s ease .12s,transform 1.05s cubic-bezier(.19,1,.22,1);
}
.liquid-slide.is-active::before{opacity:1;transform:scale(1)}
.liquid-slide::after{
  z-index:2;
  background:#030303;
  opacity:1;
  transition:clip-path 1.05s cubic-bezier(.19,1,.22,1),opacity .42s ease .18s,transform 1.05s cubic-bezier(.19,1,.22,1);
}
.liquid-slide:hover::after,
.liquid-slide.rippling::after{opacity:.92}
.liquid-slide.is-active::after{
  opacity:0;
  clip-path:inset(0 50% 0 50%);
  transform:scaleX(.82);
}
.liquid-slide.is-active.is-revealing::after{
  animation:liquidReveal .98s cubic-bezier(.19,1,.22,1) both;
}
.liquid-ink{
  position:absolute;
  inset:0;
  z-index:3;
  width:100%;
  height:100%;
  opacity:1;
  pointer-events:none;
  transition:opacity .42s ease .18s,clip-path 1.05s cubic-bezier(.19,1,.22,1),transform 1.05s cubic-bezier(.19,1,.22,1);
  clip-path:inset(0 0 0 0);
}
.liquid-slide.is-active .liquid-ink{
  opacity:0;
  clip-path:inset(0 50% 0 50%);
  transform:scaleX(.82);
}
.liquid-slide.is-active.is-revealing .liquid-ink{
  animation:liquidReveal .98s cubic-bezier(.19,1,.22,1) both;
}
.liquid-slide span{
  display:none;
}
.liquid-hover{
  position:absolute;
  inset:-5%;
  z-index:3;
  display:block;
  pointer-events:none;
  background-image:var(--image);
  background-position:center;
  background-repeat:no-repeat;
  background-size:cover;
  opacity:0;
  transform:scale(1.025);
  filter:url("#liquid-distort");
  clip-path:circle(0 at var(--mx) var(--my));
  -webkit-mask-image:radial-gradient(circle 118px at var(--mx) var(--my),#000 0 32%,rgba(0,0,0,.86) 50%,transparent 78%);
  mask-image:radial-gradient(circle 118px at var(--mx) var(--my),#000 0 32%,rgba(0,0,0,.86) 50%,transparent 78%);
  transition:opacity .18s ease,clip-path .24s ease,transform .24s ease;
}
.liquid-gallery:not(.webgl-ready) .liquid-slide.is-active:hover .liquid-hover{
  opacity:1;
  clip-path:circle(128px at var(--mx) var(--my));
  transform:scale(1.055);
}
.liquid-gallery:not(.webgl-ready) .liquid-slide.is-active:focus-visible .liquid-hover{
  opacity:1;
  clip-path:circle(128px at var(--mx) var(--my));
  transform:scale(1.055);
}
.liquid-gallery.fallback-ready .liquid-slide.is-active::before,
.liquid-gallery:not(.webgl-ready) .liquid-slide.is-active::before{
  opacity:1;
  animation:liquidFallbackImage 7.5s ease-in-out infinite alternate;
}
.liquid-gallery.fallback-ready .liquid-slide.is-active.rippling .liquid-hover,
.liquid-gallery:not(.webgl-ready) .liquid-slide.is-active.rippling .liquid-hover{
  opacity:.88;
  clip-path:circle(152px at var(--mx) var(--my));
  transform:scale(1.07);
  animation:liquidFallbackRipple .78s ease-in-out infinite alternate;
}
.liquid-gallery.webgl-ready .liquid-hover{
  display:none;
}
.liquid-slide.is-active span{color:#111;text-shadow:none;mix-blend-mode:difference}
.liquid-slide::selection{background:transparent}
.liquid-gallery-ui{
  position:absolute;
  left:max(6vw,42px);
  right:max(6vw,42px);
  bottom:18px;
  z-index:4;
  display:grid;
  grid-template-columns:auto minmax(160px,1fr);
  gap:24px;
  align-items:center;
  pointer-events:none;
}
.liquid-gallery-title{font:10px monospace;letter-spacing:.18em;text-transform:uppercase;color:#111}
.liquid-gallery-progress{height:1px;background:rgba(0,0,0,.18);display:block}
.liquid-gallery-progress i{display:block;width:16.666%;height:100%;background:#111;transition:width .45s var(--ease)}
@keyframes liquidReveal{
  0%{opacity:1;clip-path:inset(0 0 0 0);transform:scaleX(1)}
  58%{opacity:1}
  100%{opacity:0;clip-path:inset(0 50% 0 50%);transform:scaleX(.82)}
}
@keyframes liquidFallbackRipple{
  0%{filter:contrast(1.04) saturate(1.04) blur(0);transform:scale(1.035) translate3d(-2px,1px,0)}
  100%{filter:contrast(1.12) saturate(1.1) blur(.45px);transform:scale(1.065) translate3d(2px,-1px,0)}
}
@keyframes liquidFallbackImage{
  0%{filter:saturate(1.03) contrast(1.02);transform:scale(1.012) translate3d(-.45%,.25%,0)}
  50%{filter:saturate(1.08) contrast(1.05);transform:scale(1.024) translate3d(.35%,-.2%,0)}
  100%{filter:saturate(1.04) contrast(1.03);transform:scale(1.016) translate3d(.2%,.35%,0)}
}
@keyframes liquidFirefoxReveal{
  0%{
    opacity:.28;
    clip-path:ellipse(4% 12% at 50% 50%);
    transform:scale(1.08);
    filter:saturate(1.28) contrast(1.18) blur(2px);
  }
  54%{
    opacity:1;
    clip-path:ellipse(76% 112% at 50% 50%);
    transform:scale(1.025);
    filter:saturate(1.12) contrast(1.08) blur(.35px);
  }
  100%{
    opacity:1;
    clip-path:inset(0);
    transform:scale(1);
    filter:none;
  }
}
@supports (-moz-appearance:none){
  .liquid-hover{
    filter:contrast(1.1) saturate(1.12);
    -webkit-mask-image:none;
    mask-image:none;
  }
  .liquid-gallery:not(.webgl-ready) .liquid-slide.is-active:hover .liquid-hover,
  .liquid-gallery:not(.webgl-ready) .liquid-slide.is-active:focus-visible .liquid-hover{
    animation:liquidFallbackRipple .72s ease-in-out infinite alternate;
  }
}
.firefox-browser .liquid-gallery.fallback-ready .liquid-slide.is-active.is-revealing::before{
  animation:liquidFirefoxReveal 1.08s cubic-bezier(.19,1,.22,1) both;
}
.firefox-browser .liquid-gallery.fallback-ready .liquid-slide.is-active::before{
  opacity:1;
}
@media(max-width:800px){
  .liquid-gallery{width:calc(100% + 48px);height:58vh;min-height:340px;max-height:none;margin-left:-24px;margin-right:-24px}
  .liquid-gallery-heading{top:70px;width:calc(100% - 48px);font-size:clamp(2rem,9vw,3.4rem);line-height:.92}
  .liquid-gallery-ui{left:24px;right:24px;grid-template-columns:1fr;gap:12px}
  .liquid-nav{width:50px;height:50px;font-size:1.1rem}
  .liquid-nav--previous{left:12px}
  .liquid-nav--next{right:12px}
}

.liquid-stage{
  position:absolute;
  inset:0;
  z-index:4;
  width:100%;
  height:100%;
  display:block;
  pointer-events:none;
}
.liquid-gallery.webgl-ready .liquid-stage{
  z-index:6;
}
.liquid-gallery.fallback-ready .liquid-stage{
  opacity:0;
}
.liquid-track{
  z-index:5;
  pointer-events:auto;
}
.liquid-gallery.webgl-ready .liquid-track{
  z-index:7;
}
.liquid-gallery.webgl-ready .liquid-gallery-heading,
.liquid-gallery.webgl-ready .liquid-nav,
.liquid-gallery.webgl-ready .liquid-gallery-ui{
  z-index:8;
}
.liquid-slide{
  background:transparent!important;
  color:#fff;
}
.liquid-gallery.webgl-ready .liquid-slide{
  background-image:none!important;
  filter:none!important;
}
.liquid-gallery.webgl-ready .liquid-slide::before,
.liquid-gallery.webgl-ready .liquid-ink{
  display:none!important;
}
.liquid-gallery.webgl-ready .liquid-slide::after{
  display:none!important;
}
.liquid-gallery.webgl-ready .liquid-slide.is-active:not(.texture-ready)::before{
  display:block!important;
  opacity:1;
}
.liquid-slide:not(.texture-ready),
.liquid-gallery:not(.webgl-ready) .liquid-slide{
  background-image:linear-gradient(rgba(0,0,0,.45),rgba(0,0,0,.45)),var(--image)!important;
  background-position:center!important;
  background-size:cover!important;
}
.liquid-slide:not(.texture-ready):not(.is-active),
.liquid-gallery:not(.webgl-ready) .liquid-slide:not(.is-active){
  background-image:
    radial-gradient(circle at 22% 18%,rgba(255,255,255,.08),transparent 30%),
    linear-gradient(115deg,rgba(255,255,255,.035),transparent 38%,rgba(255,255,255,.025)),
    var(--image)!important;
  background-blend-mode:screen,normal,luminosity;
  filter:grayscale(1) brightness(.2) contrast(1.25);
}
.liquid-slide:not(.texture-ready).is-active,
.liquid-gallery:not(.webgl-ready) .liquid-slide.is-active{
  filter:none;
}

.collection-detail{
  width:100%;
  margin:0;
  background:#000;
  color:#f5f5f2;
  padding:clamp(145px,13vw,215px) 0 clamp(80px,11vw,170px);
  border-top:1px solid rgba(255,255,255,.12);
}
.collection-detail[hidden]{display:none}
.collection-detail-inner{
  width:min(100%,1800px);
  margin:0 auto;
  padding:0 clamp(14px,2.5vw,44px);
}
.collection-meta{
  display:grid;
  grid-template-columns:auto 1fr auto;
  gap:clamp(16px,3vw,42px);
  align-items:end;
  margin:0 auto clamp(54px,7vw,110px);
  max-width:1600px;
  border-bottom:1px solid rgba(255,255,255,.22);
  padding-bottom:18px;
}
.collection-number,
.collection-count{
  font:10px monospace;
  letter-spacing:.18em;
  color:#858585;
  text-transform:uppercase;
}
.collection-title{
  margin:0;
  font-size:clamp(2.6rem,8vw,8.5rem);
  line-height:.82;
  letter-spacing:-.06em;
  text-transform:uppercase;
}
.collection-stack{
  display:block;
  column-count:4;
  column-gap:10px;
}
.collection-photo{
  display:block;
  width:100%;
  margin:0 0 10px;
  padding:0;
  border:0;
  break-inside:avoid;
  background:#080808;
  cursor:zoom-in;
  overflow:hidden;
}
.collection-photo img{
  display:block;
  width:100%;
  height:auto;
  object-fit:cover;
}
.collection-photo:focus-visible{
  outline:2px solid #fff;
  outline-offset:-2px;
}
.detail-scroll.lightbox-open{
  overflow:hidden;
}
.photo-lightbox{
  position:fixed;
  inset:0;
  z-index:220;
  display:grid;
  grid-template-columns:72px minmax(0,1fr) 72px;
  align-items:center;
  gap:18px;
  padding:28px;
  background:rgba(0,0,0,.97);
  color:#fff;
  opacity:0;
  transition:opacity .2s ease;
}
.photo-lightbox[hidden]{display:none}
.photo-lightbox.is-open{opacity:1}
.lightbox-figure{
  min-width:0;
  margin:0;
  display:grid;
  place-items:center;
  gap:14px;
}
.lightbox-image{
  display:block;
  width:auto;
  height:auto;
  max-width:100%;
  max-height:calc(100dvh - 130px);
  object-fit:contain;
}
.lightbox-caption{
  min-height:12px;
  font:10px monospace;
  letter-spacing:.16em;
  color:#aaa;
}
.lightbox-footer{display:flex;align-items:center;justify-content:center;gap:20px;flex-wrap:wrap}
.lightbox-print-link{display:inline-flex;align-items:center;min-height:44px;padding:0 16px;border:1px solid #777;border-radius:3px;color:#fff;font:12px monospace;letter-spacing:.06em;text-decoration:none}
.lightbox-print-link[hidden]{display:none}
.lightbox-print-link:hover{border-color:#fff;background:#222}
.lightbox-print-link:focus-visible{outline:2px solid #fff;outline-offset:4px}
.lightbox-close,
.lightbox-nav{
  width:54px;
  height:54px;
  border:1px solid rgba(255,255,255,.55);
  border-radius:50%;
  background:rgba(0,0,0,.35);
  color:#fff;
  display:grid;
  place-items:center;
  padding:0;
  font-size:22px;
}
.lightbox-close{
  position:absolute;
  top:24px;
  right:24px;
  z-index:2;
}
.lightbox-nav{justify-self:center}
.lightbox-close:focus-visible,
.lightbox-nav:focus-visible{
  outline:2px solid #fff;
  outline-offset:3px;
}
.back-menu{
  color:#fff;
  background:transparent;
  border-color:rgba(255,255,255,.72);
  transition:color .2s ease,border-color .2s ease,background-color .2s ease;
}
.back-menu.on-light{
  color:#090909;
  border-color:rgba(0,0,0,.62);
  background:rgba(255,255,255,.08);
}
.back-menu:focus-visible{
  outline:2px solid currentColor;
  outline-offset:3px;
}
@media(max-width:800px){
  .collection-detail{padding:120px 0 90px}
  .collection-detail-inner{padding:0 18px}
  .collection-meta{grid-template-columns:1fr;align-items:start;gap:12px;margin-bottom:48px}
  .collection-title{font-size:clamp(2.4rem,15vw,5rem)}
  .collection-stack{column-count:2;column-gap:8px}
  .collection-photo{margin-bottom:8px}
  .photo-lightbox{grid-template-columns:44px minmax(0,1fr) 44px;gap:8px;padding:18px 8px}
  .lightbox-close{top:14px;right:14px}
  .lightbox-close,.lightbox-nav{width:42px;height:42px;font-size:18px}
  .lightbox-image{max-height:calc(100vh - 76px)}
}
@media(min-width:1600px){
  .collection-stack{column-count:5}
}
@media(max-width:1100px) and (min-width:801px){
  .collection-stack{column-count:3}
}
@media(max-width:520px){
  .collection-stack{column-count:1}
}

/* Full-bleed mural for the portfolio index. */
body[data-view="menu"] .menu-view{
  background-color:#080808;
  background-image:
    linear-gradient(rgba(0,0,0,.66),rgba(0,0,0,.72)),
    url("assets/menu-mural-background.jpg");
  background-position:center center;
  background-size:cover;
  background-repeat:no-repeat;
}

/* Keep the completed Portfolio page isolated from the four empty page shells. */
.non-portfolio-only{
  display:none;
}
.detail-view:not(.is-portfolio) .portfolio-only{
  display:none !important;
}
.detail-view:not(.is-portfolio) .non-portfolio-only{
  display:block;
}
.detail-view.is-portfolio .non-portfolio-only{
  display:none !important;
}
.detail-view.is-portfolio .detail-hero h2{
  position:relative;
  z-index:2;
}
.detail-view.is-portfolio .detail-visual{
  z-index:1;
}
.detail-view.is-portfolio .detail-hero{
  background:#0a0a0a;
}
.portfolio-hero-portrait{
  --portfolio-hero-progress:0;
  border:0;
  overflow:visible;
  background:transparent;
  pointer-events:none;
  opacity:calc(1 - (var(--portfolio-hero-progress) * .82));
  transform:translate3d(calc(var(--portfolio-hero-progress) * 18vw),0,0);
  transition:opacity .12s linear,transform .12s linear;
  will-change:opacity,transform;
}
.portfolio-hero-portrait img{
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center;
  filter:drop-shadow(0 28px 44px rgba(0,0,0,.5));
}
.portfolio-hero-symbol{
  --portfolio-hero-progress:0;
  position:relative;
  z-index:2;
  display:block;
  width:clamp(62px,7vw,112px);
  height:auto;
  margin:clamp(30px,5vh,48px) 0 0;
  margin-left:calc((min(39vw,660px) - clamp(62px,7vw,112px)) / 2);
  opacity:calc(1 - (var(--portfolio-hero-progress) * .9));
  transform:translate3d(0,clamp(-42px,-5vh,-24px),0);
  transition:opacity .12s linear;
  will-change:opacity,transform;
}
.detail-outline-visual{
  background:rgba(255,255,255,.015);
}
.nft-only{
  display:none !important;
}
.detail-view.is-nft .generic-outline-visual{
  display:none !important;
}
.detail-view.is-nft .nft-only{
  display:block !important;
}
.detail-view.is-nft .detail-hero h2{
  position:relative;
  z-index:2;
  pointer-events:none;
}
.detail-view.is-nft .nft-hero-copy{
  position:relative;
  z-index:2;
  width:min(42vw,620px);
  max-width:620px;
  margin:34px 0 0;
}
.detail-view.is-nft .nft-hero-copy > p{
  margin:0;
  color:#b0b0ac;
  font-size:17px;
  line-height:1.65;
}
.detail-view.is-nft .nft-hero-copy blockquote{
  margin:34px 0 0;
  padding:18px 0 18px 24px;
  border-left:2px solid var(--accent);
  color:#f3f2ee;
  font-size:clamp(1.2rem,2vw,1.8rem);
  line-height:1.25;
}
.nft-comparison{
  width:38vw;
  height:auto;
  aspect-ratio:1/1;
}
.nft-comparison .remix-comparison-edited{
  transform:scale(.965);
  transform-origin:center bottom;
}
.remix-only{
  display:none !important;
}
.detail-view.is-remix .generic-outline-visual{
  display:none !important;
}
.detail-view.is-remix .remix-only{
  display:block !important;
}
.detail-view.is-remix .detail-hero h2{
  position:relative;
  z-index:2;
  pointer-events:none;
}
.detail-view.is-remix .remix-intro{
  position:relative;
  z-index:2;
  width:min(42vw,620px);
  max-width:620px;
  margin:38px 0 0;
  color:#b0b0ac;
  font-size:17px;
  line-height:1.65;
}
.remix-comparison{
  --comparison-position:0%;
  display:none;
  padding:0;
  touch-action:pan-y;
  user-select:none;
  isolation:isolate;
  cursor:ew-resize;
  pointer-events:auto;
  background:#050505;
  z-index:1;
}
.remix-comparison-image{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  object-position:center;
  pointer-events:none;
}
.remix-comparison-reveal{
  position:absolute;
  inset:0;
  z-index:1;
  clip-path:inset(0 calc(100% - var(--comparison-position)) 0 0);
  will-change:clip-path;
  pointer-events:none;
}
.remix-comparison-divider{
  position:absolute;
  z-index:2;
  top:0;
  bottom:0;
  left:var(--comparison-position);
  width:2px;
  opacity:0;
  transform:translateX(-1px);
  background:rgba(255,255,255,.96);
  box-shadow:0 0 18px rgba(0,0,0,.55);
  pointer-events:none;
  will-change:left;
}
.remix-comparison-divider i{
  position:absolute;
  top:50%;
  left:50%;
  width:34px;
  height:34px;
  transform:translate(-50%,-50%);
  border:1px solid rgba(255,255,255,.96);
  border-radius:50%;
  background:rgba(5,5,5,.58);
  box-shadow:0 4px 18px rgba(0,0,0,.38);
}
.remix-comparison-divider i::before,
.remix-comparison-divider i::after{
  content:"";
  position:absolute;
  top:50%;
  width:6px;
  height:6px;
  border-top:1px solid #fff;
  border-left:1px solid #fff;
}
.remix-comparison-divider i::before{
  left:8px;
  transform:translateY(-50%) rotate(-45deg);
}
.remix-comparison-divider i::after{
  right:8px;
  transform:translateY(-50%) rotate(135deg);
}
.remix-comparison.is-active .remix-comparison-divider,
.remix-comparison:focus-visible .remix-comparison-divider{
  opacity:1;
}
.remix-comparison:focus-visible{
  outline:2px solid #fff;
  outline-offset:4px;
}
.detail-hero > .remix-comparison-caption{
  position:absolute;
  right:8vw;
  bottom:calc(10vh - 32px);
  width:38vw;
  max-width:none;
  margin:0;
  color:rgba(255,255,255,.72);
  text-align:center;
  font:10px monospace;
  letter-spacing:.16em;
}
@media(max-width:800px){
  .nft-comparison{
    width:100%;
    height:auto;
    aspect-ratio:1/1;
  }
  .detail-hero > .remix-comparison-caption{
    position:relative;
    right:auto;
    bottom:auto;
    width:100%;
    margin:14px 0 0;
  }
}
.detail-outline{
  min-height:145vh;
  padding:14vh 8vw;
  background:#0a0a0a;
  border-top:1px solid var(--line);
}
.outline-row{
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);
  gap:5vw;
  margin:5vw 0;
}
.outline-panel{
  border:1px solid var(--line);
  background:rgba(255,255,255,.015);
}
.outline-panel-wide{
  width:100%;
  min-height:42vh;
}
.outline-panel-tall{
  min-height:70vh;
}
.outline-panel-copy{
  min-height:48vh;
  align-self:center;
}
.outline-panel-short{
  min-height:28vh;
}

/* Remix Arena physical edition system. */
.detail-view.is-remix .remix-editions{
  display:block !important;
}
.remix-editions{
  min-height:100%;
  color:#f3f2ee;
}
.remix-section-heading{
  display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);
  gap:32px;
  align-items:end;
  padding:38px 42px 36px;
  border-bottom:1px solid var(--line);
}
.remix-section-heading > span{
  grid-column:1/-1;
  color:var(--accent);
  font:11px monospace;
  letter-spacing:.18em;
}
.remix-section-heading h3{
  margin:0;
  font-size:52px;
  line-height:.9;
  letter-spacing:0;
}
.remix-section-heading p{
  max-width:480px;
  margin:0;
  color:#9a9a96;
  font-size:15px;
  line-height:1.6;
}
.remix-edition-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
}
.remix-edition{
  min-width:0;
  padding:30px 24px 26px;
  display:flex;
  flex-direction:column;
  border-left:1px solid var(--line);
}
.remix-edition:first-child{
  border-left:0;
}
.edition-media{
  position:relative;
  aspect-ratio:4/3;
  overflow:hidden;
  display:grid;
  place-items:center;
  margin-bottom:30px;
  background:#050505;
}
.edition-media > span{
  position:absolute;
  z-index:3;
  top:12px;
  left:12px;
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  background:#050505;
  color:#fff;
  font:bold 11px monospace;
  letter-spacing:.08em;
}
.edition-media img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
}
.edition-media-framed{
  padding:18px;
  background:#080808;
}
.edition-media-framed > div{
  width:100%;
  height:100%;
  padding:13px;
  background:#efeee8;
  box-shadow:0 0 0 10px #141414;
}
.edition-media-framed img{
  object-fit:cover;
}
.edition-media-canvas img{
  width:94%;
  height:94%;
  box-shadow:10px 10px 0 rgba(255,89,61,.15);
}
.edition-media-metal{
  border:1px solid rgba(255,255,255,.48);
  box-shadow:inset 0 0 28px rgba(255,255,255,.08);
}
.edition-media-metal img{
  filter:saturate(1.08) contrast(1.06);
}
.edition-count{
  margin:0 0 18px;
  color:var(--accent);
  font:bold 11px monospace;
  letter-spacing:.16em;
}
.remix-edition h4{
  min-height:76px;
  margin:0 0 22px;
  font-size:30px;
  line-height:.9;
  letter-spacing:0;
}
.edition-description{
  min-height:96px;
  margin:0 0 24px;
  color:#aaa;
  font-size:14px;
  line-height:1.55;
}
.edition-spec{
  display:flex;
  justify-content:space-between;
  gap:14px;
  margin-top:auto;
  padding:16px 0;
  border-top:1px solid var(--line);
  font:bold 10px monospace;
  letter-spacing:.12em;
}
.edition-spec span{
  color:var(--accent);
}
.edition-spec b{
  color:#f3f2ee;
}
.edition-status{
  min-height:54px;
  display:grid;
  place-items:center;
  padding:12px;
  border:1px solid rgba(255,255,255,.22);
  color:#8c8c88;
  text-align:center;
  font:bold 10px monospace;
  letter-spacing:.14em;
}
.detail-view.is-remix .remix-certificate{
  display:flex !important;
}
.remix-certificate-panel{
  align-self:start;
  min-height:0;
  background:
    linear-gradient(145deg,rgba(255,89,61,.1),transparent 48%),
    rgba(255,255,255,.015);
}
@media(min-width:801px){
  .detail-view.is-remix .remix-certificate-panel{
    position:sticky;
    top:120px;
  }
}
.remix-certificate{
  min-height:0;
  padding:42px;
  flex-direction:column;
  color:#f3f2ee;
}
.certificate-label{
  display:flex;
  align-items:center;
  gap:12px;
  margin:0 0 52px;
  color:var(--accent);
  font:bold 11px monospace;
  letter-spacing:.18em;
}
.certificate-label i{
  width:16px;
  height:4px;
  background:var(--accent);
}
.remix-certificate h3{
  margin:0 0 42px;
  font-size:54px;
  line-height:.82;
  letter-spacing:0;
  text-shadow:8px 8px 0 rgba(255,89,61,.16);
}
.certificate-copy{
  max-width:620px;
  margin:0 0 46px;
  color:#b0b0ac;
  font-size:17px;
  line-height:1.65;
}
.certificate-ledger{
  margin:0;
  border-top:1px solid var(--line);
}
.certificate-ledger > div{
  display:flex;
  justify-content:space-between;
  gap:24px;
  padding:15px 0;
  border-bottom:1px solid var(--line);
  font:bold 11px monospace;
  letter-spacing:.14em;
}
.certificate-ledger dt{
  color:#8c8c88;
}
.certificate-ledger dd{
  margin:0;
  color:var(--accent);
}
.remix-painter-panel{
  min-height:0;
  overflow:hidden;
  background:#050505;
}
.detail-view.is-remix .remix-painter-stack{
  display:grid !important;
}
.detail-view.is-remix .nft-only{
  display:none !important;
}
.remix-painter-stack{
  display:none;
  width:100%;
  grid-template-columns:1fr;
  gap:1px;
  background:var(--line);
}
.remix-painter-stack > *{
  min-width:0;
  width:100%;
  aspect-ratio:1/1;
}
.remix-painter-showcase{
  width:100%;
  margin:0;
  display:grid;
  place-items:center;
  background:#000;
}
.remix-painter-showcase img{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center;
}
.remix-painter-comparison{
  position:relative;
  display:block !important;
  height:auto;
  border:0;
}
.remix-painter-comparison .remix-comparison-image{
  object-fit:cover;
}
.remix-comparison.is-complete .remix-comparison-divider{
  opacity:0;
}
.remix-coa-panel{
  min-height:0;
  overflow:hidden;
  background:#050505;
}
.detail-view.is-remix .remix-coa-showcase{
  display:grid !important;
}
.remix-coa-showcase{
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1px;
  background:var(--line);
}
.remix-coa-showcase figure{
  min-width:0;
  aspect-ratio:2/1;
  margin:0;
  overflow:hidden;
  background:#050505;
}
.remix-coa-showcase img{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center;
}

/* NFT Drop manifestation archive. */
.detail-view.is-nft .nft-registry,
.detail-view.is-nft .nft-collector-guide,
.detail-view.is-nft .nft-feature-ghost,
.detail-view.is-nft .nft-roadmap{
  display:grid !important;
}
.nft-registry,
.nft-collector-guide,
.nft-roadmap{
  color:#f3f2ee;
}
.nft-section-heading{
  display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);
  gap:32px;
  align-items:end;
  padding:42px;
  border-bottom:1px solid var(--line);
}
.nft-section-heading > span,
.nft-section-label,
.nft-roadmap-copy > span{
  color:var(--accent);
  font:bold 11px monospace;
  letter-spacing:.18em;
}
.nft-section-heading > span{
  grid-column:1/-1;
}
.nft-section-heading h3,
.nft-collector-guide > h3,
.nft-roadmap h3{
  margin:0;
  font-size:clamp(3rem,6vw,7.2rem);
  line-height:.82;
  letter-spacing:0;
}
.nft-section-heading p{
  max-width:520px;
  margin:0;
  color:#9a9a96;
  font-size:16px;
  line-height:1.65;
}
.nft-status-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  border-bottom:1px solid var(--line);
}
.nft-status-grid > div{
  min-height:150px;
  padding:28px;
  display:flex;
  flex-direction:column;
  gap:25px;
  border-left:1px solid var(--line);
}
.nft-status-grid > div:first-child{
  border-left:0;
}
.nft-status-grid span,
.nft-specimen > p:first-of-type{
  color:var(--accent);
  font:bold 10px monospace;
  letter-spacing:.16em;
}
.nft-status-grid b{
  max-width:100%;
  font-size:clamp(1.25rem,1.75vw,2rem);
  line-height:.9;
  overflow-wrap:anywhere;
}
.nft-specimen-grid{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
}
.nft-specimen{
  min-width:0;
  padding:24px;
  display:flex;
  flex-direction:column;
  border-left:1px solid var(--line);
}
.nft-specimen:first-child{
  border-left:0;
}
.nft-signal{
  position:relative;
  aspect-ratio:1/1;
  overflow:hidden;
  margin-bottom:32px;
  border:1px solid rgba(255,255,255,.16);
  background:
    linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px),
    #070707;
  background-size:16px 16px;
}
.nft-signal::before,
.nft-signal::after,
.nft-signal i{
  content:"";
  position:absolute;
  inset:50% auto auto 50%;
  transform:translate(-50%,-50%);
  border:1px solid color-mix(in srgb,var(--accent) 80%,white);
  border-radius:50%;
  box-shadow:0 0 24px color-mix(in srgb,var(--accent) 48%,transparent);
}
.nft-signal::before{
  width:54%;
  aspect-ratio:1;
}
.nft-signal::after{
  width:30%;
  aspect-ratio:1;
}
.nft-signal i{
  width:8%;
  aspect-ratio:1;
  background:var(--accent);
}
.nft-signal > span{
  position:absolute;
  z-index:2;
  top:12px;
  left:12px;
  color:#fff;
  font:bold 11px monospace;
}
.nft-signal-art{
  background:#050505;
}
.nft-signal-art::before,
.nft-signal-art::after,
.nft-signal-art > i{
  display:none;
}
.nft-specimen-art{
  --sprite-x:-2.35%;
  position:absolute;
  top:0;
  left:0;
  width:654%;
  max-width:none;
  height:auto;
  display:block;
  transform:translate(var(--sprite-x),-11.15%);
  transform-origin:top left;
  pointer-events:none;
}
.nft-specimen-art-008{
  --sprite-x:-22.33%;
}
.nft-specimen-art-009{
  --sprite-x:-42.31%;
}
.nft-specimen-art-011{
  --sprite-x:-62.34%;
}
.nft-specimen-art-012{
  --sprite-x:-82.36%;
}
.nft-specimen-chrome .nft-signal{
  filter:none;
}
.nft-specimen-glitch .nft-signal::before{
  border-radius:0;
  transform:translate(-50%,-50%) skewX(-14deg);
}
.nft-specimen-glitch .nft-signal::after{
  border-radius:0;
  transform:translate(-50%,-50%) skewX(14deg);
}
.nft-specimen-royal .nft-signal::before{
  clip-path:polygon(50% 0,62% 31%,100% 19%,79% 100%,21% 100%,0 19%,38% 31%);
  border-radius:0;
  background:color-mix(in srgb,var(--accent) 15%,transparent);
}
.nft-specimen-light .nft-signal::before{
  width:64%;
  height:18%;
  border-radius:50%;
}
.nft-specimen h4{
  margin:14px 0 20px;
  font-size:clamp(1.7rem,2.2vw,2.6rem);
  line-height:.9;
}
.nft-specimen-copy{
  min-height:132px;
  margin:0 0 28px;
  color:#aaa;
  font-size:14px;
  line-height:1.6;
}
.nft-specimen dl{
  margin:auto 0 0;
  padding-top:16px;
  display:flex;
  justify-content:space-between;
  gap:16px;
  border-top:1px solid var(--line);
  font:bold 10px monospace;
  letter-spacing:.12em;
}
.nft-specimen dt{
  color:var(--accent);
}
.nft-specimen dd{
  margin:0;
  color:#f3f2ee;
  text-align:right;
}
.detail-view.is-nft .remix-certificate-panel{
  background:
    linear-gradient(145deg,color-mix(in srgb,var(--accent) 12%,transparent),transparent 48%),
    rgba(255,255,255,.015);
}
.nft-collector-guide{
  display:flex !important;
  flex-direction:column;
  min-height:70vh;
  padding:42px;
}
.nft-section-label{
  display:flex;
  align-items:center;
  gap:12px;
  margin:0 0 46px;
}
.nft-section-label i{
  width:16px;
  height:4px;
  background:var(--accent);
}
.nft-guide-intro{
  max-width:620px;
  margin:0 0 46px;
  color:#b0b0ac;
  font-size:17px;
  line-height:1.65;
}
.nft-collector-guide > h3{
  margin:0 0 42px;
  max-width:760px;
  font-size:54px;
  line-height:.82;
  text-shadow:8px 8px 0 color-mix(in srgb,var(--accent) 16%,transparent);
}
.nft-guide-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  margin:auto -42px -42px;
  border-top:1px solid var(--line);
}
.nft-guide-grid article{
  min-height:180px;
  padding:24px;
  border-left:1px solid var(--line);
}
.nft-guide-grid article:nth-child(odd){
  border-left:0;
}
.nft-guide-grid article:nth-child(n+3){
  border-top:1px solid var(--line);
}
.nft-guide-grid span{
  color:var(--accent);
  font:bold 10px monospace;
}
.nft-guide-grid h4{
  margin:30px 0 20px;
  font-size:28px;
}
.nft-guide-grid p{
  margin:0;
  color:#aaa;
  font-size:14px;
  line-height:1.6;
}
.detail-view.is-nft .remix-painter-panel{
  min-height:0;
  aspect-ratio:1/1;
  align-self:center;
  background:#050505;
}
.nft-feature-ghost{
  position:relative;
  width:100%;
  height:100%;
  margin:0;
  overflow:hidden;
  background:
    radial-gradient(circle at 50% 42%,color-mix(in srgb,var(--accent) 18%,transparent),transparent 42%),
    #020202;
}
.nft-feature-ghost img{
  width:100%;
  height:100%;
  display:block;
  object-fit:contain;
  object-position:center;
}
.nft-feature-ghost figcaption{
  position:absolute;
  left:24px;
  right:24px;
  bottom:24px;
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:20px;
}
.nft-feature-ghost figcaption span{
  color:var(--accent);
  font:bold 10px monospace;
  letter-spacing:.14em;
}
.nft-feature-ghost figcaption b{
  color:#fff;
  font-size:clamp(1.4rem,2.2vw,2.4rem);
}
.detail-view.is-nft .remix-coa-panel{
  background:#070707;
}
.nft-roadmap{
  min-height:58vh;
  grid-template-rows:auto minmax(130px,1fr);
}
.nft-roadmap-copy{
  display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr);
  gap:34px;
  align-items:end;
  padding:48px 42px;
}
.nft-roadmap-copy > span{
  grid-column:1/-1;
}
.nft-roadmap-copy p{
  max-width:620px;
  margin:0;
  color:#aaa;
  font-size:17px;
  line-height:1.65;
}
.nft-roadmap-stages{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  margin:0;
  padding:0;
  list-style:none;
  border-top:1px solid var(--line);
  align-self:stretch;
}
.nft-roadmap-stages li{
  min-height:100%;
  height:100%;
  padding:24px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  border-left:1px solid var(--line);
}
.nft-roadmap-stages li:first-child{
  border-left:0;
}
.nft-roadmap-stages span{
  color:var(--accent);
  font:bold 10px monospace;
}
.nft-roadmap-stages b{
  font-size:clamp(1.25rem,2vw,2rem);
}
@media(max-width:1180px){
  .remix-edition-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .remix-edition:nth-child(3){
    border-left:0;
  }
  .remix-edition:nth-child(n+3){
    border-top:1px solid var(--line);
  }
  .edition-description{
    min-height:72px;
  }
  .nft-specimen-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .nft-specimen:nth-child(odd){
    border-left:0;
  }
  .nft-specimen:nth-child(n+3){
    border-top:1px solid var(--line);
  }
  .nft-specimen:last-child{
    grid-column:1/-1;
  }
  .nft-specimen-copy{
    min-height:0;
  }
}
@media(max-width:800px){
  .detail-view.is-nft .nft-hero-copy{
    width:100%;
    margin-top:28px;
  }
  .detail-view.is-nft .nft-hero-copy > p{
    font-size:15px;
  }
  .detail-view.is-nft .nft-hero-copy blockquote{
    margin-top:24px;
  }
  .detail-view.is-remix .remix-intro{
    width:100%;
    margin-top:28px;
    font-size:15px;
  }
  .detail-outline{
    padding:100px 24px;
  }
  .outline-row{
    grid-template-columns:1fr;
    gap:24px;
    margin:24px 0;
  }
  .outline-panel-wide,
  .outline-panel-tall,
  .outline-panel-copy{
    min-height:42vh;
  }
  .outline-panel-short{
    min-height:24vh;
  }
  .remix-section-heading{
    grid-template-columns:1fr;
    gap:18px;
    padding:28px 22px;
  }
  .remix-section-heading > span{
    grid-column:auto;
  }
  .remix-section-heading h3{
    font-size:36px;
  }
  .remix-edition-grid{
    grid-template-columns:1fr;
  }
  .remix-edition,
  .remix-edition:nth-child(3){
    padding:22px;
    border-left:0;
    border-top:1px solid var(--line);
  }
  .remix-edition:first-child{
    border-top:0;
  }
  .remix-edition h4,
  .edition-description{
    min-height:0;
  }
  .remix-certificate{
    min-height:0;
    padding:32px 22px;
  }
  .detail-view.is-remix .remix-certificate-panel{
    position:static;
  }
  .certificate-label{
    margin-bottom:38px;
  }
  .remix-certificate h3{
    font-size:42px;
    margin-bottom:32px;
  }
  .certificate-copy{
    font-size:15px;
  }
  .remix-coa-showcase{
    grid-template-columns:1fr;
  }
  .nft-section-heading,
  .nft-roadmap-copy{
    grid-template-columns:1fr;
    gap:22px;
    padding:30px 22px;
  }
  .nft-section-heading > span,
  .nft-roadmap-copy > span{
    grid-column:auto;
  }
  .nft-section-heading h3,
  .nft-collector-guide > h3,
  .nft-roadmap h3{
    font-size:clamp(2.8rem,14vw,5rem);
  }
  .nft-status-grid,
  .nft-specimen-grid,
  .nft-roadmap-stages{
    grid-template-columns:1fr;
  }
  .nft-status-grid > div,
  .nft-specimen,
  .nft-specimen:nth-child(odd),
  .nft-roadmap-stages li{
    min-height:auto;
    border-left:0;
    border-top:1px solid var(--line);
  }
  .nft-status-grid > div:first-child,
  .nft-specimen:first-child,
  .nft-roadmap-stages li:first-child{
    border-top:0;
  }
  .nft-specimen:last-child{
    grid-column:auto;
  }
  .nft-signal{
    aspect-ratio:16/9;
  }
  .nft-signal-art{
    aspect-ratio:1/1;
  }
  .nft-collector-guide{
    display:flex !important;
    min-height:0;
    padding:32px 22px;
  }
  .nft-collector-guide > h3{
    margin-bottom:32px;
    font-size:42px;
  }
  .nft-guide-intro{
    font-size:15px;
  }
  .nft-guide-grid{
    grid-template-columns:1fr;
    margin:auto -22px -32px;
  }
  .nft-guide-grid article{
    min-height:0;
    border-left:0;
    border-top:1px solid var(--line);
  }
  .nft-guide-grid article:first-child{
    border-top:0;
  }
  .nft-feature-ghost{
    min-height:70vh;
  }
}

/* Scroll entrances for page content only. Gallery systems are intentionally excluded. */
.scroll-reveal{
  opacity:0;
  transform:translate3d(-64px,28px,0);
  transition:
    opacity .72s var(--ease),
    transform .95s var(--ease);
  will-change:opacity,transform;
}
.scroll-reveal[data-reveal-side="right"]{
  transform:translate3d(64px,28px,0);
}
.scroll-reveal.is-visible{
  opacity:1;
  transform:translate3d(0,0,0);
}
@media(max-width:800px){
  .scroll-reveal,
  .scroll-reveal[data-reveal-side="right"]{
    transform:translate3d(0,44px,0);
  }
  .scroll-reveal.is-visible{
    transform:translate3d(0,0,0);
  }
}
@media(prefers-reduced-motion:reduce){
  .scroll-reveal,
  .scroll-reveal[data-reveal-side="right"]{
    opacity:1;
    transform:none;
  }
}

.origin-story-title{
  opacity:var(--origin-parallax-opacity,0);
  transform:translate3d(0,var(--origin-title-y,48px),0);
  transition:opacity .08s linear,transform .08s linear;
  will-change:opacity,transform;
}

.origin-ghost,
.origin-ghost.scroll-reveal,
.origin-ghost.scroll-reveal.is-visible{
  opacity:var(--origin-parallax-opacity,0);
  transform:translate3d(0,var(--origin-ghost-y,66px),0) scale(var(--origin-ghost-scale,.94));
  transition:opacity .08s linear,transform .08s linear;
  will-change:opacity,transform;
}

.origin-story-copy{
  will-change:opacity,transform;
}

.origin-story-copy .body-copy{
  color:#000;
}

.origin-story-copy .body-copy:first-of-type{
  margin-top:clamp(34px,4.8vh,64px);
}

.origin-measure-word{
  display:inline;
}

.origin-copy-line{
  display:block;
  opacity:var(--origin-line-opacity,0);
  transform:
    translate3d(var(--origin-line-x,172px),0,0)
    skewX(var(--origin-line-skew,-9deg))
    scaleX(var(--origin-line-scale-x,1));
  transform-origin:right center;
  transition:
    opacity .18s linear,
    transform .46s cubic-bezier(.12,.96,.18,1.08);
  will-change:opacity,transform;
}

.fast-smear-word{
  --fast-smear-progress:0;
  display:inline-block;
  position:relative;
  transform:
    translate3d(calc(var(--fast-smear-progress) * 34vw),0,0)
    skewX(calc(var(--fast-smear-progress) * -14deg))
    scaleX(calc(1 + var(--fast-smear-progress) * .34));
  transform-origin:left center;
  opacity:calc(1 - var(--fast-smear-progress) * 1.05);
  filter:blur(calc(var(--fast-smear-progress) * 2.2px));
  text-shadow:
    calc(var(--fast-smear-progress) * -18px) 0 rgba(255,255,255,.48),
    calc(var(--fast-smear-progress) * -44px) 0 rgba(255,255,255,.28),
    calc(var(--fast-smear-progress) * -82px) 0 rgba(255,255,255,.12);
  transition:
    opacity .08s linear,
    filter .08s linear,
    text-shadow .08s linear,
    transform .08s linear;
  will-change:opacity,filter,text-shadow,transform;
}

.fast-smear-word::after{
  content:"FAST";
  position:absolute;
  inset:0;
  pointer-events:none;
  transform:
    translate3d(calc(var(--fast-smear-progress) * -12px),0,0)
    scaleX(calc(1 + var(--fast-smear-progress) * 1.8));
  transform-origin:left center;
  opacity:calc(var(--fast-smear-progress) * .24);
  filter:blur(calc(var(--fast-smear-progress) * 5px));
}

@media(prefers-reduced-motion:reduce){
  .origin-story-title,
  .origin-ghost,
  .origin-copy-line,
  .fast-smear-word{
    opacity:1;
    transform:none;
    filter:none;
    text-shadow:none;
    transition:none;
  }
  .fast-smear-word::after{
    display:none;
  }
}

/* Route ownership guard: Ghost Cast and Paratrippin retain blank outline shells. */
.detail-view:not(.is-nft) .nft-only{
  display:none !important;
}
.detail-view:not(.is-remix) .remix-only{
  display:none !important;
}

/* Paratrippin uses a full-image hero and keeps only the handoff back to Portfolio. */
.detail-view.is-paratrippin .ghost-cast-video-stage,
.detail-view.is-paratrippin .content-block,
.detail-view.is-paratrippin .media-grid,
.detail-view.is-paratrippin .collection-detail,
.detail-view.is-paratrippin .detail-outline,
.detail-view.is-paratrippin .detail-hero > p,
.detail-view.is-paratrippin .detail-hero > .detail-visual,
.detail-view.is-paratrippin .detail-hero > .continue-scroll{
  display:none !important;
}
.detail-view.is-paratrippin .detail-hero{
  min-height:calc(100dvh - 104px);
  margin-top:104px;
  padding:0;
  overflow:hidden;
  background:#000;
}
.detail-view.is-paratrippin .detail-hero h2{
  opacity:0;
  pointer-events:none;
}
.paratrippin-neon-title{
  display:none;
}
.detail-view.is-paratrippin .paratrippin-neon-title{
  position:absolute;
  z-index:5;
  left:5.5vw;
  top:clamp(54px,8vh,90px);
  display:block;
  width:min(86vw,860px);
  height:auto;
  overflow:visible;
  pointer-events:none;
  filter:
    drop-shadow(0 0 1.5px rgba(255,255,255,.72))
    drop-shadow(0 0 4px rgba(31,244,255,.42))
    drop-shadow(0 0 6px rgba(255,43,214,.34));
}
.detail-view.is-paratrippin .paratrippin-neon-title text{
  fill:none;
  stroke:url(#paratrippinTitleNeon);
  stroke-width:6.25;
  stroke-linejoin:round;
  stroke-linecap:round;
  paint-order:stroke;
  font-family:Arial,Helvetica,sans-serif;
  font-size:174px;
  font-weight:950;
  letter-spacing:0;
  filter:url(#paratrippinTitleGlow);
}
.paratrippin-hero-frame{
  display:none;
}
.detail-view.is-paratrippin .paratrippin-hero-frame{
  position:absolute;
  left:50%;
  top:50%;
  display:block;
  width:max(100vw,calc((100dvh - 104px) * 1672 / 941));
  aspect-ratio:1672 / 941;
  overflow:hidden;
  background:url("assets/paratrippin-hero-mushrooms.png") center center / 100% 100% no-repeat;
  contain:layout paint;
  transform:translate(-50%,-50%);
}
.detail-view.is-paratrippin .paratrippin-hero-frame::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:4;
  pointer-events:none;
  background:
    linear-gradient(90deg,rgba(0,0,0,.56),rgba(0,0,0,.12) 46%,rgba(0,0,0,.24)),
    linear-gradient(0deg,rgba(0,0,0,.58),transparent 26%,rgba(0,0,0,.16));
}
.paratrippin-hero-foreground{
  position:absolute;
  inset:0;
  z-index:3;
  background:url("assets/paratrippin-hero-tv-cutout.png") center center / 100% 100% no-repeat;
  pointer-events:none;
}
.paratrippin-tv-screen{
  display:none;
}
.detail-view.is-paratrippin .paratrippin-tv-screen{
  position:absolute;
  z-index:2;
  left:51.44%;
  top:41.23%;
  display:block;
  width:29.07%;
  height:35.49%;
  overflow:hidden;
  border-radius:8.8% / 12.4%;
  clip-path:polygon(2.2% 7.6%,4.4% 3.6%,8.9% 1.4%,91.5% .8%,96.8% 4.4%,99.2% 10.8%,99% 87.4%,96.6% 94%,91.4% 97.8%,8.8% 97.4%,3.5% 94.2%,1.1% 87.8%,1% 12.2%);
  background:transparent;
  box-shadow:none;
  transform:perspective(900px) rotateY(-.72deg) rotateZ(.08deg);
  transform-origin:center;
  pointer-events:none;
  isolation:isolate;
}
.detail-view.is-paratrippin .next-section{
  display:block;
}
.detail-view.is-paratrippin footer{
  display:flex;
}

/* Ghost Cast opens with a full video viewport, then continues into its page. */
.ghost-cast-video-stage{
  display:none;
}
.detail-view.is-ghost-cast .ghost-cast-video-stage{
  position:relative;
  display:grid;
  width:100%;
  height:calc(100dvh - 104px);
  margin-top:104px;
  place-items:center;
  overflow:hidden;
  background:#000;
}
.detail-view.is-ghost-cast .detail-hero,
.detail-view.is-ghost-cast .content-block,
.detail-view.is-ghost-cast .media-grid,
.detail-view.is-ghost-cast .collection-detail,
.detail-view.is-ghost-cast .detail-outline{
  display:none !important;
}
.ghost-cast-stage-title{
  position:absolute;
  z-index:5;
  left:4vw;
  top:clamp(54px,8vh,90px);
  max-width:90vw;
  margin:0;
  color:#f5f2ea;
  font-size:clamp(4rem,11vw,12rem);
  font-weight:800;
  line-height:.8;
  letter-spacing:-.08em;
  text-transform:uppercase;
  text-shadow:
    0 .08em .18em rgba(0,0,0,.5),
    0 0 1.6vw rgba(255,255,255,.08);
  pointer-events:none;
}
.ghost-cast-stage-callout{
  position:absolute;
  z-index:6;
  left:4vw;
  top:clamp(216px,32vh,350px);
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:18px;
  max-width:min(430px,42vw);
  color:#f5f2ea;
  text-shadow:0 2px 16px rgba(0,0,0,.72);
}
.ghost-cast-stage-callout p{
  margin:0;
  max-width:420px;
  font-size:clamp(1.04rem,1.35vw,1.45rem);
  line-height:1.12;
  font-weight:800;
  letter-spacing:.02em;
  text-transform:uppercase;
}
.ghost-cast-youtube-link{
  --button-red:#f71919;
  position:relative;
  display:inline-flex;
  align-items:center;
  gap:14px;
  min-height:60px;
  padding:0 30px 0 22px;
  color:#fff;
  background:
    linear-gradient(180deg,rgba(255,255,255,.42) 0%,rgba(255,255,255,.18) 13%,transparent 32%),
    linear-gradient(180deg,#ff4545 0%,var(--button-red) 48%,#bd0707 74%,#7d0000 100%);
  border:1px solid rgba(255,255,255,.42);
  border-radius:16px;
  text-decoration:none;
  font:900 .95rem/1 monospace;
  letter-spacing:.16em;
  text-transform:uppercase;
  isolation:isolate;
  box-shadow:
    0 12px 24px rgba(0,0,0,.48),
    0 0 34px rgba(255,0,0,.38),
    inset 0 2px 0 rgba(255,255,255,.5),
    inset 0 -10px 0 rgba(102,0,0,.58),
    inset 0 -20px 22px rgba(68,0,0,.36);
  transform:perspective(520px) rotateX(5deg) rotateY(-7deg) translateZ(0);
  transform-origin:left center;
  transition:transform .18s ease,box-shadow .18s ease,filter .18s ease;
}
.ghost-cast-youtube-link::before{
  content:"";
  position:absolute;
  inset:7px 11px auto 11px;
  height:20px;
  border-radius:13px 13px 18px 18px;
  background:linear-gradient(180deg,rgba(255,255,255,.38),rgba(255,255,255,.1) 54%,transparent);
  opacity:.9;
  pointer-events:none;
}
.ghost-cast-youtube-link::after{
  display:none;
}
.ghost-cast-youtube-link:hover,
.ghost-cast-youtube-link:focus-visible{
  filter:saturate(1.2) brightness(1.08);
  transform:perspective(520px) rotateX(4deg) rotateY(-5deg) translate3d(0,-4px,0);
  box-shadow:
    0 18px 32px rgba(0,0,0,.54),
    0 0 48px rgba(255,0,0,.54),
    inset 0 1px 0 rgba(255,255,255,.64),
    inset 0 -10px 0 rgba(102,0,0,.5),
    inset 0 -20px 20px rgba(68,0,0,.28);
}
.ghost-cast-youtube-link:focus-visible{
  outline:2px solid #fff;
  outline-offset:6px;
}
.ghost-cast-youtube-icon{
  position:relative;
  width:34px;
  height:24px;
  flex:0 0 auto;
  border-radius:7px;
  background:#fff;
  box-shadow:inset 0 -3px 0 rgba(0,0,0,.2);
}
.ghost-cast-youtube-icon::before{
  content:"";
  position:absolute;
  left:13px;
  top:6px;
  width:0;
  height:0;
  border-top:6px solid transparent;
  border-bottom:6px solid transparent;
  border-left:10px solid #f01414;
}
.detail-view.is-ghost-cast .next-section > *,
.detail-view.is-ghost-cast footer > *{
  opacity:1;
  transform:none;
}
.ghost-cast-tv-frame{
  position:absolute;
  left:50%;
  top:50%;
  width:max(100vw,calc((100dvh - 104px) * 1672 / 941));
  aspect-ratio:1672 / 941;
  overflow:hidden;
  background:#000;
  contain:layout paint;
  flex:none;
  transform:translate(-50%,-50%);
}
.ghost-cast-tv-image{
  position:absolute;
  inset:0;
  z-index:3;
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center;
  transform:translateZ(0);
}
.ghost-cast-tv-screen{
  position:absolute;
  z-index:2;
  left:51.675%;
  top:42.827%;
  width:28.529%;
  height:35.813%;
  overflow:hidden;
  border-radius:8.5% / 12%;
  clip-path:none;
  background:#111414;
  box-shadow:
    inset 0 0 .45vw rgba(0,0,0,.92),
    inset 0 0 1.35vw rgba(0,0,0,.72),
    inset 0 0 3vw rgba(0,0,0,.45);
  transform:perspective(900px) rotateY(-.8deg) rotateZ(.12deg);
  transform-origin:center;
  pointer-events:none;
  isolation:isolate;
}
.paratrippin-screen-loop{
  position:absolute;
  inset:0;
  z-index:3;
  display:grid;
  grid-template-columns:auto auto auto;
  justify-content:center;
  align-items:center;
  justify-items:center;
  gap:min(2.1vw,28px);
  overflow:hidden;
  padding:0 18%;
  background:transparent;
  color:rgba(206,255,239,.88);
  font-family:"Courier New",monospace;
  font-size:clamp(.5rem,.92vw,1.2rem);
  font-weight:900;
  line-height:1;
  letter-spacing:.1em;
  text-align:center;
  text-transform:uppercase;
  text-shadow:
    0 0 .18em rgba(193,255,240,.85),
    0 0 .58em rgba(86,255,219,.48),
    .05em 0 rgba(255,45,118,.22),
    -.05em 0 rgba(52,190,255,.22);
  transform-origin:center;
  filter:none;
}
.paratrippin-screen-word,
.paratrippin-screen-symbol{
  position:relative;
  z-index:2;
}
.paratrippin-screen-word{
  max-width:100%;
  color:rgba(213,255,244,.92);
  white-space:nowrap;
  text-shadow:
    .08em 0 rgba(255,35,205,.42),
    -.08em 0 rgba(43,239,255,.44),
    0 0 .2em rgba(210,255,244,.72),
    0 0 .58em rgba(78,255,226,.42);
  animation:paratrippinTextGlitch 2.9s infinite steps(1,end);
}
.paratrippin-screen-word::before,
.paratrippin-screen-word::after{
  content:attr(data-text);
  position:absolute;
  inset:0;
  opacity:0;
  pointer-events:none;
}
.paratrippin-screen-word::before{
  color:#ff2bd6;
  transform:translateX(-.08em);
}
.paratrippin-screen-word::after{
  color:#22f6ff;
  transform:translateX(.08em);
}
.paratrippin-screen-symbol{
  display:block;
  width:auto;
  height:46%;
  max-width:13%;
  object-fit:contain;
  opacity:.92;
  filter:
    drop-shadow(.08em 0 rgba(255,35,205,.62))
    drop-shadow(-.08em 0 rgba(43,239,255,.6))
    drop-shadow(0 0 .26em rgba(255,255,255,.72))
    drop-shadow(0 0 .64em rgba(85,255,221,.38));
  animation:paratrippinSymbolGlitch 2.45s infinite steps(1,end);
}
.ghost-cast-tv-screen::before,
.ghost-cast-tv-screen::after{
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  pointer-events:none;
}
.ghost-cast-tv-screen::before{
  z-index:3;
  background:
    radial-gradient(ellipse at 50% 50%,rgba(255,255,255,.13) 0%,rgba(255,255,255,.055) 38%,rgba(0,0,0,.14) 68%,rgba(0,0,0,.48) 100%),
    linear-gradient(112deg,rgba(255,255,255,.16) 0%,rgba(255,255,255,.055) 11%,transparent 32%,transparent 74%,rgba(255,255,255,.08) 100%),
    linear-gradient(to bottom,rgba(255,255,255,.035) 50%,rgba(0,0,0,.115) 50%);
  background-size:auto,auto,100% 4px;
  mix-blend-mode:overlay;
}
.ghost-cast-tv-screen::after{
  z-index:4;
  background:
    radial-gradient(ellipse at 50% -4%,rgba(203,255,242,.58) 0%,rgba(203,255,242,.38) 22%,rgba(203,255,242,.18) 46%,rgba(203,255,242,.065) 70%,transparent 86%),
    radial-gradient(ellipse at 50% 104%,rgba(203,255,242,.54) 0%,rgba(203,255,242,.34) 24%,rgba(203,255,242,.16) 48%,rgba(203,255,242,.058) 72%,transparent 88%),
    linear-gradient(to right,rgba(181,255,236,.46) 0%,rgba(181,255,236,.31) 10%,rgba(181,255,236,.15) 23%,rgba(181,255,236,.045) 39%,transparent 50%,rgba(181,255,236,.045) 61%,rgba(181,255,236,.15) 78%,rgba(181,255,236,.3) 91%,rgba(181,255,236,.44) 100%),
    radial-gradient(ellipse at 18% 28%,rgba(178,143,72,.16) 0%,rgba(114,99,51,.08) 24%,transparent 52%),
    radial-gradient(ellipse at 84% 74%,rgba(117,126,70,.13) 0%,rgba(82,88,50,.07) 26%,transparent 56%),
    linear-gradient(118deg,rgba(151,111,48,.1) 0%,transparent 31%,rgba(103,115,61,.08) 62%,transparent 100%),
    linear-gradient(to bottom,rgba(255,255,255,.28) 0%,rgba(255,255,255,.155) 20%,rgba(255,255,255,.052) 40%,transparent 50%,rgba(255,255,255,.048) 60%,rgba(255,255,255,.145) 80%,rgba(255,255,255,.26) 100%);
  mix-blend-mode:screen;
  box-shadow:
    inset 0 0 0 .16vw rgba(7,8,8,.62),
    inset 0 .12vw .38vw rgba(0,0,0,.32),
    inset 0 -.16vw .44vw rgba(0,0,0,.34),
    inset .34vw 0 .72vw rgba(0,0,0,.48),
    inset -.34vw 0 .72vw rgba(0,0,0,.44),
    inset 0 0 3vw rgba(214,255,244,.52),
    inset 0 0 5.2vw rgba(180,255,236,.38),
    inset 0 0 7.2vw rgba(160,255,232,.22),
    inset 0 0 4.2vw rgba(132,104,47,.1),
    inset 0 0 1.8vw rgba(0,0,0,.28);
}
.ghost-cast-video{
  position:absolute;
  left:0;
  top:0;
  z-index:1;
  display:block;
  width:100%;
  height:100%;
  opacity:0;
  object-position:center;
  background:transparent;
  transform:perspective(760px) rotateY(-1.1deg) rotateZ(-.18deg) skewY(-.08deg);
  transform-origin:48% 50%;
  transition:opacity .75s ease,filter .75s ease;
}
.ghost-cast-video--fill{
  object-fit:cover;
  filter:brightness(.76) contrast(1.04) saturate(.88) sepia(.05) blur(1.2px);
  transform:perspective(760px) rotateY(-1.1deg) rotateZ(-.18deg) skewY(-.08deg) scale(1.018);
}
.ghost-cast-video--content{
  z-index:2;
  object-fit:contain;
  filter:brightness(.72) contrast(1.14) saturate(.86) sepia(.08);
  -webkit-mask-image:linear-gradient(to bottom,transparent 0%,rgba(0,0,0,.18) 7%,#000 19%,#000 81%,rgba(0,0,0,.18) 93%,transparent 100%);
  mask-image:linear-gradient(to bottom,transparent 0%,rgba(0,0,0,.18) 7%,#000 19%,#000 81%,rgba(0,0,0,.18) 93%,transparent 100%);
}
.ghost-cast-video--fill.is-ready{
  opacity:.96;
}
.ghost-cast-video--content.is-ready{
  opacity:.9;
}
@keyframes ghostCastMessageCycle{
  0%,42%{
    opacity:0;
    transform:translate(-50%,-50%) translateX(-1.4%) skewX(-4deg) scaleX(1.02);
    filter:blur(1.1px);
  }
  7%,35%{
    opacity:1;
    transform:translate(-50%,-50%) translateX(0) skewX(-1.4deg) scaleX(1);
    filter:blur(.12px);
  }
  48%,100%{
    opacity:0;
    transform:translate(-50%,-50%) translateX(1.8%) skewX(4deg) scaleX(.98);
    filter:blur(1.4px);
  }
}
@keyframes ghostCastScreenWobble{
  0%{transform:translate3d(0,0,0) skewY(.12deg) scale(1.008)}
  16%{transform:translate3d(-.35%,.08%,0) skewY(-.18deg) scale(1.012)}
  33%{transform:translate3d(.22%,-.06%,0) skewY(.26deg) scale(1.009)}
  50%{transform:translate3d(-.16%,.05%,0) skewY(-.12deg) scale(1.013)}
  67%{transform:translate3d(.34%,-.04%,0) skewY(.2deg) scale(1.01)}
  84%{transform:translate3d(-.24%,.03%,0) skewY(-.24deg) scale(1.012)}
  100%{transform:translate3d(0,0,0) skewY(.12deg) scale(1.008)}
}
@keyframes paratrippinScreenPulse{
  0%,100%{filter:brightness(.68) contrast(1.28) saturate(.78)}
  36%{filter:brightness(.84) contrast(1.36) saturate(.9)}
  50%{filter:brightness(.58) contrast(1.24) saturate(.72)}
  72%{filter:brightness(.8) contrast(1.34) saturate(.88)}
}
@keyframes paratrippinScreenGlitch{
  0%,72%,100%{clip-path:none}
  74%{clip-path:polygon(0 0,100% 0,100% 26%,0 22%)}
  76%{clip-path:polygon(0 31%,100% 28%,100% 56%,0 59%)}
  78%{clip-path:polygon(0 64%,100% 60%,100% 100%,0 100%)}
  80%{clip-path:none}
  91%{opacity:.78}
  92%{opacity:.96}
  93%,100%{opacity:1}
}
@keyframes paratrippinTextGlitch{
  0%,70%,100%{transform:none;opacity:1}
  72%{transform:translateX(-.16em) skewX(-8deg);opacity:.86}
  73%{transform:translateX(.12em) skewX(7deg);opacity:1}
  74%{transform:none;opacity:.62}
  75%{transform:translateX(.08em);opacity:1}
  76%{transform:none;opacity:1}
  88%{letter-spacing:.2em}
  89%,100%{letter-spacing:.14em}
}
@keyframes paratrippinSymbolGlitch{
  0%,68%,100%{transform:none;opacity:.92}
  70%{transform:translateX(-4%) scaleX(1.08);opacity:.62}
  71%{transform:translateX(5%) scaleX(.94);opacity:1}
  72%{transform:translateY(-2%) skewX(-7deg);opacity:.78}
  73%{transform:none;opacity:.94}
  86%{transform:translateX(3%);opacity:.74}
  87%{transform:translateX(-2%);opacity:1}
}
@keyframes ghostCastScanlineDrift{
  0%{background-position:0 0,0 0}
  100%{background-position:0 40px,100% 0}
}
@media(max-width:800px){
  .detail-view.is-ghost-cast .ghost-cast-video-stage{
    height:calc(100dvh - 84px);
    margin-top:84px;
  }
  .ghost-cast-stage-title{
    left:24px;
    top:42px;
    max-width:calc(100vw - 48px);
    font-size:clamp(3.4rem,17vw,6.2rem);
  }
  .ghost-cast-stage-callout{
    left:24px;
    top:clamp(190px,32vh,280px);
    max-width:min(330px,calc(100vw - 48px));
    gap:14px;
  }
  .ghost-cast-stage-callout p{
    font-size:clamp(.86rem,4vw,1.06rem);
  }
  .ghost-cast-youtube-link{
    min-height:54px;
    padding:0 22px 0 18px;
    gap:11px;
    font-size:.82rem;
  }
  .ghost-cast-tv-frame{
    width:max(100vw,calc((100dvh - 84px) * 1672 / 941));
  }
}

/* Six-row navigation: keep every destination inside the visible viewport. */
.mobile-nav{
  padding:124px 6.5vw 12px;
  overflow:hidden;
}
.mobile-nav p{
  position:absolute;
  top:104px;
  left:6.5vw;
  margin:0;
}
.mobile-nav a{
  display:flex;
  align-items:center;
  flex:1 1 0;
  min-height:0;
  padding:0;
  font-size:clamp(2.5rem,5.5vw,6.5rem);
  line-height:.82;
  position:relative;
  overflow:hidden;
  isolation:isolate;
}
.mobile-nav a[hidden]{
  display:none;
}
.mobile-nav .nav-number,
.mobile-nav .nav-label{
  position:relative;
  z-index:2;
}
.nav-hover-ghost{
  position:absolute;
  z-index:1;
  left:var(--ghost-start,50%);
  top:50%;
  width:clamp(64px,7vw,126px);
  max-height:92%;
  object-fit:contain;
  opacity:0;
  pointer-events:none;
  transform:translate3d(0,-50%,0) scale(.82);
  transform-origin:center;
  filter:drop-shadow(0 10px 14px rgba(0,0,0,.45)) drop-shadow(0 0 14px rgba(255,48,36,.2));
  will-change:transform,opacity;
}
.mobile-nav a.is-ghost-active .nav-hover-ghost{
  opacity:.96;
  animation:navGhostTraverse 2.35s cubic-bezier(.22,.61,.36,1) both;
}
.mobile-nav a:hover .nav-label,
.mobile-nav a:focus-visible .nav-label{
  color:#fff;
}
@keyframes navGhostTraverse{
  0%{transform:translate3d(0,-50%,0) scale(.82);opacity:0}
  12%{transform:translate3d(0,-50%,0) scale(1);opacity:.96}
  82%{opacity:.96}
  100%{transform:translate3d(var(--ghost-travel,28vw),-50%,0) scale(.92);opacity:0}
}
@media(max-width:800px){
  .mobile-nav{
    padding:92px 22px 8px;
  }
  .mobile-nav p{
    top:76px;
    left:22px;
  }
  .mobile-nav a{
    font-size:clamp(2rem,10vw,4rem);
  }
  .mobile-nav .nav-number{
    width:42px;
  }
  .nav-hover-ghost{
    width:clamp(54px,16vw,88px);
  }
}
@media(prefers-reduced-motion:reduce){
  .mobile-nav a.is-ghost-active .nav-hover-ghost{
    animation:none;
    opacity:.9;
    transform:translate3d(0,-50%,0) scale(.92);
  }
}

/* Index carousel: every input resolves to one crisp, centered card. */
.carousel{
  scroll-snap-type:none;
  scroll-behavior:auto;
}
.menu-card{
  opacity:1;
  transform:none;
  filter:none;
  transition:none;
}
.menu-card .card-image,
.menu-card .card-art{
  filter:none!important;
}
.menu-card.is-selected{
  opacity:1;
  transform:none;
}

/* Compact site rhythm. Portfolio gallery rendering and interaction stay isolated. */
.detail-hero{
  min-height:clamp(620px,78vh,820px);
  padding:clamp(142px,17vh,174px) 8vw clamp(54px,7vh,72px);
}
.detail-hero h2{
  margin-top:clamp(18px,3vh,32px);
}
.detail-visual{
  bottom:clamp(46px,7vh,68px);
  height:min(46vh,520px);
}
.continue-scroll{
  bottom:clamp(56px,7vh,78px);
}
.content-block{
  min-height:0;
  padding:clamp(64px,8vh,92px) 10vw;
}
.media-grid{
  padding:clamp(62px,8vh,92px) 8vw;
  gap:clamp(48px,7vh,76px) 5vw;
}
.media-placeholder.tall{
  height:min(62vh,650px);
  min-height:460px;
}
.next-section{
  padding:clamp(52px,7vh,78px) 8vw;
}
footer{
  height:84px;
}
.detail-outline{
  min-height:0;
  padding:clamp(64px,8vh,92px) 8vw;
}
.outline-row{
  margin:clamp(32px,4vw,58px) 0;
}
.outline-panel-wide{
  min-height:clamp(240px,30vh,360px);
}
.outline-panel-tall{
  min-height:clamp(360px,48vh,560px);
}
.outline-panel-copy{
  min-height:clamp(280px,36vh,440px);
}
.outline-panel-short{
  min-height:clamp(180px,22vh,260px);
}
.nft-collector-guide,
.nft-roadmap{
  min-height:0;
}

@media(max-width:800px){
  .detail-hero{
    min-height:0;
    padding:124px 24px 64px;
  }
  .detail-visual{
    height:min(54vh,520px);
    min-height:340px;
    margin-top:38px;
  }
  .content-block,
  .media-grid,
  .detail-outline{
    padding:64px 24px;
  }
  .media-placeholder.tall{
    height:min(58vh,560px);
    min-height:380px;
  }
  .next-section{
    padding:54px 24px;
  }
  .outline-panel-wide,
  .outline-panel-tall,
  .outline-panel-copy{
    min-height:300px;
  }
  .outline-panel-short{
    min-height:180px;
  }
  footer{
    height:72px;
  }
}

/* NFT hero proportions: preserve the complete square artwork beside the title. */
.detail-view.is-nft .detail-hero h2{
  width:48vw;
  max-width:700px;
  font-size:clamp(4.25rem,7.5vw,8.5rem);
  letter-spacing:-.06em;
}
.detail-view.is-nft .nft-comparison{
  right:6vw;
  bottom:clamp(54px,7vh,72px);
  width:min(34vw,520px);
  height:auto;
  aspect-ratio:1 / 1;
}
.detail-view.is-nft .nft-comparison .remix-comparison-image{
  object-fit:contain;
  object-position:center;
}
.detail-view.is-nft .nft-comparison .remix-comparison-edited{
  transform:none;
}

@media(max-width:800px){
  .detail-view.is-nft .detail-hero h2{
    width:100%;
    max-width:none;
    font-size:clamp(3.2rem,15vw,5.5rem);
  }
  .detail-view.is-nft .nft-comparison{
    right:auto;
    bottom:auto;
    width:min(100%,520px);
    height:auto;
    margin:38px auto 0;
  }
}

/* Viewport-safe detail heroes and a clear, textured frosted header. */
.header{
  isolation:isolate;
  background:
    radial-gradient(circle at 18% -30%,rgba(255,255,255,.13),transparent 42%),
    radial-gradient(circle at 78% 135%,rgba(255,255,255,.07),transparent 44%),
    repeating-linear-gradient(115deg,rgba(255,255,255,.018) 0 1px,rgba(0,0,0,.025) 1px 4px),
    rgba(10,10,12,.58);
  -webkit-backdrop-filter:blur(22px) saturate(145%) contrast(105%);
  backdrop-filter:blur(22px) saturate(145%) contrast(105%);
  box-shadow:0 10px 34px rgba(0,0,0,.16),inset 0 -1px rgba(255,255,255,.045);
}
.header::after,
.header.on-light::after{
  background:rgba(255,255,255,.2);
}
.header.on-light .identity-logo{
  filter:drop-shadow(0 1px 2px rgba(0,0,0,.9)) drop-shadow(0 0 8px rgba(0,0,0,.34));
}
.header.on-light .identity-monogram{
  filter:drop-shadow(0 1px 2px rgba(0,0,0,.9));
}
.header.on-light .header-back{
  color:#fff!important;
  border-color:rgba(255,255,255,.58)!important;
  background:rgba(0,0,0,.12)!important;
}
.header.on-light .menu-button{
  border-color:rgba(255,255,255,.5);
  color:#fff;
}
.header.on-light .menu-button i{
  background:#fff;
}

@media(min-width:801px){
  .detail-hero{
    min-height:100vh;
    min-height:100dvh;
    overflow:hidden;
  }
  .detail-visual{
    height:min(46vh,calc(100dvh - 220px),520px);
  }
  .detail-view.is-nft .nft-comparison{
    width:min(34vw,calc(100dvh - 220px),520px);
  }
}

/* Shared opening layout for every detail page. Keep gallery and slider behavior separate. */
@media(min-width:801px){
  .detail-hero{
    --detail-media-top:clamp(286px,30vh,330px);
    box-sizing:border-box;
    min-height:100vh;
    min-height:100dvh;
    padding:clamp(145px,16vh,180px) 5.5vw clamp(54px,7vh,74px);
    overflow:hidden;
  }
  .detail-hero h2,
  .detail-view.is-nft .detail-hero h2{
    width:auto;
    max-width:none;
    margin:clamp(24px,3vh,36px) 0 28px;
    font-size:clamp(7rem,10vw,12rem);
    line-height:.82;
    letter-spacing:-.06em;
    position:relative;
    z-index:3;
  }
  .detail-hero > p.portfolio-only,
  .detail-hero > p.remix-intro,
  .detail-hero > .nft-hero-copy{
    position:relative;
    z-index:2;
    box-sizing:border-box;
    width:min(39vw,660px);
    max-width:39vw;
    margin-right:auto;
  }
  .detail-hero > p.portfolio-only,
  .detail-hero > p.remix-intro,
  .detail-hero > .nft-hero-copy > p{
    line-height:1.55;
  }
  .detail-view.is-portfolio .detail-visual.portfolio-only,
  .detail-view.is-nft .nft-comparison,
  .detail-view.is-remix .detail-hero > .remix-comparison,
  .detail-hero > .detail-outline-visual{
    right:5.5vw;
    top:var(--detail-media-top);
    bottom:auto;
    width:min(46vw,820px);
    height:auto;
    min-height:0;
    aspect-ratio:3 / 2;
    margin:0;
    z-index:1;
  }
  .detail-view.is-nft .nft-comparison,
  .detail-view.is-remix .detail-hero > .remix-comparison{
    top:calc(var(--detail-media-top) + clamp(24px,3vh,34px));
  }
  .detail-view.is-portfolio .detail-visual.portfolio-hero-portrait.portfolio-only{
    right:0;
    top:clamp(116px,12vh,150px);
    width:min(44vw,640px);
    height:min(86vh,820px);
    aspect-ratio:auto;
  }
  .detail-view.is-portfolio .detail-visual.portfolio-only img{
    object-fit:contain;
    object-position:center;
  }
  .detail-view.is-nft .nft-comparison .remix-comparison-image,
  .detail-view.is-remix .detail-hero > .remix-comparison .remix-comparison-image{
    object-fit:contain;
    object-position:center;
    background:#020202;
  }
  .detail-view.is-nft .nft-comparison .remix-comparison-edited{
    transform:none;
  }
  .detail-view.is-remix .detail-hero > .remix-comparison{
    bottom:auto;
  }
  .detail-view.is-remix .detail-hero > .remix-comparison-caption{
    right:5.5vw;
    top:calc(var(--detail-media-top) + clamp(24px,3vh,34px) + min(30.6667vw,546.667px) + 16px);
    bottom:auto;
    width:min(46vw,820px);
    margin:0;
    line-height:1.2;
  }
}

@media(max-width:800px){
  .detail-hero{
    min-height:0;
    padding:124px 24px 64px;
    overflow:visible;
  }
  .detail-hero h2,
  .detail-view.is-nft .detail-hero h2{
    width:100%;
    max-width:none;
    margin:24px 0;
    font-size:clamp(3.8rem,17vw,6rem);
    line-height:.86;
    letter-spacing:-.055em;
    position:relative;
    z-index:3;
  }
  .detail-hero > p.portfolio-only,
  .detail-hero > p.remix-intro,
  .detail-hero > .nft-hero-copy{
    width:100%;
    max-width:none;
  }
  .portfolio-hero-symbol{
    width:clamp(58px,16vw,92px);
    margin:30px auto 0;
  }
  .detail-view.is-portfolio .detail-visual.portfolio-only,
  .detail-view.is-nft .nft-comparison,
  .detail-view.is-remix .detail-hero > .remix-comparison,
  .detail-hero > .detail-outline-visual{
    position:relative;
    inset:auto;
    width:100%;
    height:auto;
    min-height:0;
    aspect-ratio:3 / 2;
    margin:34px 0 0;
  }
  .detail-view.is-portfolio .detail-visual.portfolio-hero-portrait.portfolio-only{
    width:min(92vw,430px);
    height:auto;
    aspect-ratio:971 / 1619;
    margin:30px auto 0;
  }
  .detail-view.is-portfolio .detail-visual.portfolio-only img{
    object-fit:contain;
    object-position:center;
  }
  .detail-view.is-nft .nft-comparison .remix-comparison-image,
  .detail-view.is-remix .detail-hero > .remix-comparison .remix-comparison-image{
    object-fit:contain;
    object-position:center;
    background:#020202;
  }
  .detail-view.is-remix .detail-hero > .remix-comparison-caption{
    position:relative;
    inset:auto;
    width:100%;
    margin:16px 0 0;
    text-align:center;
  }
}

/* Mobile stabilization pass: preserve desktop motion while giving phones their own layout. */
@media(max-width:760px){
  html,
  body{
    width:100%;
    min-width:320px;
    overscroll-behavior-y:none;
  }

  .app,
  .home-view,
  .menu-view,
  .detail-view{
    min-width:0;
    max-width:100vw;
  }

  .home-view:not(.is-active),
  .menu-view:not(.is-active),
  .detail-view:not(.is-active){
    overflow:hidden;
    transform:none;
    contain:layout paint;
  }

  .loader-content{
    width:100%;
    padding:0 18px;
  }

  .loader-word{
    max-width:92vw;
    overflow:visible;
    flex-wrap:wrap;
    gap:.08em .36em;
    font-size:clamp(.78rem,4.2vw,1.08rem);
    line-height:1.45;
    text-align:center;
  }

  .loader-symbol{
    width:clamp(56px,17vw,76px);
  }

  .menu-view{
    width:100vw;
    overflow:hidden;
  }

  .grain{
    opacity:.038;
  }

  .header{
    height:72px;
    padding:0 max(14px,env(safe-area-inset-left)) 0 max(14px,env(safe-area-inset-right));
  }

  .header::after{
    left:14px;
    right:14px;
  }

  .identity{
    height:42px;
  }

  .identity-logo{
    max-width:112px;
  }

  .header-contact{
    right:68px;
    min-width:74px;
    width:74px;
    height:42px;
    padding:0 10px;
    justify-content:center;
    gap:6px;
    overflow:visible;
    color:#080808;
    font-size:9px;
  }

  .header-contact::before{
    content:none;
  }

  .header-contact span{
    display:inline-block;
  }

  .header-back{
    right:150px;
    width:42px;
    height:42px!important;
  }

  .menu-button{
    width:48px;
    height:48px;
    gap:4px;
  }

  .mobile-nav{
    padding:96px 18px max(20px,env(safe-area-inset-bottom));
    overflow-y:auto;
    -webkit-overflow-scrolling:touch;
  }

  .mobile-nav p{
    position:static;
    margin:0 0 10px;
  }

  .mobile-nav a{
    min-height:58px;
    padding:9px 0;
    display:flex;
    align-items:center;
    font-size:clamp(2rem,11vw,3.6rem);
    line-height:.9;
    letter-spacing:-.045em;
  }

  .mobile-nav .nav-number{
    width:42px;
    flex:0 0 42px;
  }

  .nav-hover-ghost{
    max-width:36vw;
    max-height:72px;
  }

  .home-view{
    min-height:100dvh;
  }

  .parallax-scene,
  .layer{
    inset:0;
  }

  .layer-back{
    background-position:58% center;
  }

  .layer-glow{
    background:
      linear-gradient(180deg,rgba(0,0,0,.72),rgba(0,0,0,.22) 42%,rgba(0,0,0,.88)),
      linear-gradient(90deg,rgba(0,0,0,.52),rgba(0,0,0,.12) 58%,rgba(0,0,0,.36));
  }

  .home-symbol{
    right:9vw;
    top:84px;
    width:clamp(62px,19vw,92px);
    opacity:.94;
    transform:none;
  }

  .home-content{
    left:20px;
    right:20px;
    top:auto;
    bottom:max(34px,env(safe-area-inset-bottom));
    width:auto;
    transform:none;
  }

  .home-heading{
    position:fixed;
    z-index:6;
    top:84px;
    left:20px;
    right:clamp(96px,29vw,132px);
    pointer-events:none;
  }

  .rotating-role{
    height:22px;
    width:150px;
    margin-bottom:18px;
    font-size:10px;
  }

  .rotating-role span{
    top:6px;
  }

  .split-title{
    font-size:clamp(3.8rem,21vw,6.2rem);
    line-height:.78;
    margin-bottom:20px;
  }

  .intro{
    max-width:100%;
    font-size:.88rem;
    line-height:1.42;
  }

  .home-actions{
    margin-top:24px;
    gap:10px;
  }

  .scroll-hint{
    width:min(52vw,190px);
    min-width:146px;
    height:44px;
    padding:0 16px;
  }

  .scroll-hint i{
    width:44px;
    margin-right:12px;
  }

  .enter-button{
    height:44px;
    min-width:112px;
    padding:0 16px;
  }

  .menu-view{
    padding:76px 0 max(20px,env(safe-area-inset-bottom));
  }

  .menu-heading{
    height:82px;
    padding:0 18px;
    gap:12px;
  }

  .back-home{
    width:38px;
    height:38px;
    padding:0;
    display:grid;
    place-items:center;
  }

  .menu-section-number{
    margin-left:0;
  }

  .menu-title{
    flex:1 1 auto;
    min-width:0;
    font-size:clamp(1.9rem,10vw,3.4rem);
    line-height:.88;
    text-align:right;
  }

  .carousel-shell{
    height:calc(100dvh - 250px);
    min-height:0;
  }

  .carousel{
    align-items:flex-start;
    gap:10vw;
    padding:8px 10vw 12px;
    overflow-y:hidden;
    scroll-snap-type:x mandatory;
    scroll-padding-inline:10vw;
    overscroll-behavior-x:contain;
    overscroll-behavior-y:none;
    touch-action:pan-x;
  }

  .menu-card{
    flex:0 0 80vw;
    width:80vw;
    max-width:80vw;
    scroll-snap-align:center;
    scroll-snap-stop:always;
  }

  .card-image{
    height:clamp(190px,38dvh,340px);
    min-height:190px;
    border-radius:14px;
  }

  .card-image .card-art{
    position:absolute!important;
    top:50%!important;
    right:auto!important;
    bottom:auto!important;
    left:50%!important;
    margin:0!important;
    transform:translate(-50%,-50%)!important;
  }

  .menu-card h3{
    font-size:1rem;
    margin-top:14px;
  }

  .menu-card p{
    max-width:100%;
    font-size:.82rem;
  }

  .menu-footer{
    height:72px;
    margin:0 18px;
    grid-template-columns:1fr minmax(160px,58vw);
    gap:14px;
  }

  .open-page{
    height:46px;
    padding:0 18px;
  }

  .detail-scroll{
    -webkit-overflow-scrolling:touch;
    overscroll-behavior-x:none;
    touch-action:pan-y;
  }

  .detail-hero{
    padding:96px 20px 56px;
  }

  .detail-hero h2,
  .detail-view.is-nft .detail-hero h2{
    font-size:clamp(3.1rem,15vw,5.4rem);
    line-height:.86;
    margin:18px 0 18px;
  }

  .detail-hero > p,
  .detail-hero > p.portfolio-only,
  .detail-hero > p.remix-intro,
  .detail-view.is-nft .nft-hero-copy > p{
    font-size:.96rem;
    line-height:1.5;
  }

  .detail-view.is-portfolio .detail-visual.portfolio-hero-portrait.portfolio-only{
    width:min(74vw,320px);
    margin-top:22px;
  }

  .portfolio-hero-symbol{
    width:clamp(52px,15vw,76px);
    margin-top:22px;
  }

  .content-block,
  .media-grid,
  .detail-outline{
    padding:54px 20px;
  }

  .detail-view.is-portfolio .content-block{
    grid-template-columns:1fr;
    gap:26px;
    overflow:hidden;
  }

  .origin-story-title{
    font-size:clamp(3.2rem,14vw,5.6rem);
    transition:opacity .16s linear,transform .16s linear;
  }

  .origin-copy-line{
    display:inline;
    opacity:1;
    transform:none;
    transition:none;
    will-change:auto;
  }

  .body-copy{
    max-width:none;
    font-size:1rem;
    line-height:1.58;
  }

  .origin-ghost{
    width:min(78vw,330px);
    transition:opacity .16s linear,transform .16s linear;
  }

  .portfolio-hero-portrait{
    transform:
      translate3d(0,calc(var(--portfolio-hero-progress) * -18px),0)
      scale(calc(1 - var(--portfolio-hero-progress) * .04));
    transform-origin:center bottom;
  }

  .media-grid{
    gap:28px;
  }

  .media-placeholder.tall{
    height:auto;
    min-height:0;
    aspect-ratio:4 / 5;
  }

  .media-copy h3{
    font-size:clamp(3rem,14vw,5.2rem);
    line-height:.92;
    margin:0 0 22px;
  }

  .liquid-gallery{
    width:calc(100% + 40px);
    height:64dvh;
    min-height:430px;
    margin-left:-20px;
    margin-right:-20px;
  }

  .liquid-gallery-heading{
    top:52px;
    width:calc(100% - 40px);
    font-size:clamp(1.85rem,9vw,3rem);
  }

  .liquid-gallery-ui{
    left:20px;
    right:20px;
    bottom:24px;
  }

  .liquid-nav{
    width:46px;
    height:46px;
  }

  .collection-detail-inner{
    padding:74px 18px 44px;
  }

  .collection-meta{
    position:relative;
    top:auto;
    left:auto;
    right:auto;
    margin-bottom:20px;
  }

  .collection-title{
    font-size:clamp(2.4rem,13vw,4.8rem);
  }

  .collection-photo{
    width:100%;
    margin:0 0 18px;
  }

  .collection-photo img{
    max-height:none;
  }

  .detail-view.is-ghost-cast .ghost-cast-video-stage,
  .detail-view.is-paratrippin .detail-hero{
    height:calc(100dvh - 72px);
    min-height:calc(100dvh - 72px);
    margin-top:72px;
  }

  .ghost-cast-tv-frame,
  .detail-view.is-paratrippin .paratrippin-hero-frame{
    width:max(100vw,calc((100dvh - 72px) * 1672 / 941));
  }

  .ghost-cast-stage-title{
    left:18px;
    top:28px;
    font-size:clamp(3rem,16vw,5.7rem);
  }

  .ghost-cast-stage-callout{
    left:18px;
    top:clamp(160px,28dvh,240px);
    max-width:min(300px,calc(100vw - 36px));
  }

  .detail-view.is-paratrippin .paratrippin-neon-title{
    left:18px;
    top:28px;
    width:min(92vw,520px);
  }

  .detail-view.is-paratrippin .next-section{
    padding:54px 20px;
  }

  .next-section{
    padding:48px 20px;
  }

  .next-page{
    grid-template-columns:40px minmax(0,1fr) 32px;
    gap:10px;
  }

  .next-page b{
    font-size:clamp(2.6rem,13vw,4.8rem);
    line-height:.9;
  }

  footer{
    min-height:74px;
    height:auto;
    padding:22px 20px max(22px,env(safe-area-inset-bottom));
    flex-direction:column;
    align-items:flex-start;
    justify-content:center;
    gap:8px;
  }
}

@media(max-width:420px){
  .loader-word{
    font-size:clamp(.86rem,5vw,1.15rem);
    max-width:88vw;
  }

  .loader-symbol{
    width:clamp(58px,18vw,78px);
  }

  .home-content{
    left:16px;
    right:16px;
  }

  .home-heading{
    left:16px;
    right:clamp(88px,27vw,112px);
  }

  .intro{
    font-size:.82rem;
  }

  .menu-card{
    flex-basis:84vw;
  }

  .card-image{
    min-height:270px;
  }

  .detail-hero{
    padding-left:16px;
    padding-right:16px;
  }

  .content-block,
  .media-grid,
  .detail-outline,
  .next-section,
  .detail-view.is-paratrippin .next-section{
    padding-left:16px;
    padding-right:16px;
  }

  .liquid-gallery{
    width:calc(100% + 32px);
    margin-left:-16px;
    margin-right:-16px;
  }
}

@media(max-width:760px) and (max-height:700px){
  .home-symbol{
    top:80px;
    width:clamp(54px,16vw,78px);
  }

  .split-title{
    font-size:clamp(3.3rem,18vw,5rem);
    margin-bottom:14px;
  }

  .intro{
    display:-webkit-box;
    -webkit-line-clamp:3;
    -webkit-box-orient:vertical;
    overflow:hidden;
  }

  .home-actions{
    margin-top:18px;
  }

  .carousel-shell{
    min-height:0;
  }

  .card-image{
    height:clamp(190px,38dvh,266px);
    min-height:190px;
  }
}

/* Phone portrait hardening: the cinematic desktop layouts need tighter, stacked rules on iPhone. */
@media(max-width:760px) and (orientation:portrait){
  .rotate-lock{
    display:none !important;
  }

  .header{
    height:64px;
    padding:0 10px;
  }

  .header::after{
    left:10px;
    right:10px;
  }

  .identity{
    height:38px;
    min-width:0;
    flex:0 1 auto;
  }

  .identity-logo{
    max-width:94px;
    height:38px;
  }

  .header-back{
    right:148px;
    width:44px;
    height:44px!important;
    font-size:12px;
  }

  .header-contact{
    right:64px;
    width:76px;
    min-width:76px;
    height:44px;
    padding:0 9px;
    gap:5px;
    color:#080808;
    font-size:8.5px;
  }

  .menu-button{
    width:44px;
    height:44px;
    border-color:rgba(255,255,255,.42);
  }

  .menu-button i{
    width:16px;
  }

  .mobile-nav{
    padding-top:76px;
  }

  .detail-scroll{
    scroll-padding-top:74px;
  }

  .detail-hero{
    padding:84px 16px 44px;
  }

  .detail-hero h2,
  .detail-view.is-nft .detail-hero h2{
    max-width:100%;
    font-size:clamp(2.85rem,14vw,4.8rem);
    line-height:.88;
    letter-spacing:-.045em;
    overflow-wrap:anywhere;
  }

  .detail-hero > p,
  .detail-hero > p.portfolio-only,
  .detail-hero > p.remix-intro,
  .detail-view.is-nft .nft-hero-copy > p,
  .body-copy{
    max-width:100%;
    font-size:clamp(.9rem,4vw,1rem);
    line-height:1.48;
  }

  .content-block,
  .media-grid,
  .detail-outline{
    padding:44px 16px;
  }

  .continue-scroll{
    display:none;
  }

  .detail-view.is-remix .detail-hero > .remix-comparison-caption,
  .remix-comparison-caption{
    position:relative;
    inset:auto;
    display:block;
    width:100%;
    margin:12px 0 0;
    padding:0;
    text-align:center;
    font-size:9px;
    line-height:1.25;
    letter-spacing:.18em;
    white-space:normal;
  }

  .detail-view.is-remix .detail-hero > .remix-comparison{
    margin-top:24px;
  }

  .detail-view.is-remix .detail-hero > .remix-comparison,
  .detail-view.is-nft .nft-comparison,
  .detail-hero > .detail-outline-visual{
    width:100%;
    aspect-ratio:4 / 3;
    margin-top:24px;
  }

  .detail-view.is-remix .detail-hero > .remix-comparison .remix-comparison-image{
    object-fit:cover;
  }

  .detail-view.is-nft .nft-comparison{
    aspect-ratio:1 / 1;
    margin-left:auto;
    margin-right:auto;
  }

  .detail-view.is-nft .nft-comparison .remix-comparison-image{
    object-fit:contain;
    object-position:50% 50%;
    transform:none;
  }

  .detail-view.is-nft .nft-feature-ghost{
    min-height:0;
    aspect-ratio:1 / 1;
  }

  .detail-view.is-nft .nft-feature-ghost img{
    object-fit:contain;
    object-position:50% 50%;
  }

  .detail-view.is-portfolio .detail-visual.portfolio-hero-portrait.portfolio-only{
    grid-area:portrait;
    width:100%;
    max-width:290px;
    margin:0 0 0 auto;
  }

  .detail-view.is-portfolio .detail-hero{
    display:grid;
    grid-template-columns:minmax(64px,24%) minmax(0,1fr);
    grid-template-areas:
      "title title"
      "symbol portrait"
      "copy copy";
    column-gap:14px;
    row-gap:18px;
    align-items:center;
  }

  .detail-view.is-portfolio .detail-hero h2{
    grid-area:title;
    margin-bottom:0;
  }

  .detail-view.is-portfolio .portfolio-hero-symbol{
    grid-area:symbol;
    width:clamp(54px,18vw,78px);
    margin:0 auto;
    transform:none;
    align-self:center;
  }

  .detail-view.is-portfolio .detail-hero > p.portfolio-only{
    grid-area:copy;
    width:100%;
    margin:0;
  }

  .origin-story-title{
    font-size:clamp(2.8rem,13vw,4.8rem);
    line-height:.9;
  }

  .origin-story-copy{
    min-width:0;
  }

  .origin-copy-line{
    white-space:normal;
  }

  .media-copy h3{
    font-size:clamp(2.4rem,13vw,4.6rem);
    overflow-wrap:anywhere;
  }

  .liquid-gallery{
    height:48dvh;
    min-height:360px;
  }

  .liquid-gallery-heading{
    top:38px;
    width:calc(100% - 20px);
    font-size:clamp(.75rem,4vw,1.2rem);
    line-height:1;
    letter-spacing:-.045em;
    white-space:nowrap;
  }

  .liquid-nav{
    top:52%;
  }

  .collection-stack{
    column-count:1;
  }

  .detail-view.is-ghost-cast .ghost-cast-video-stage,
  .detail-view.is-paratrippin .detail-hero{
    height:calc(100dvh - 64px);
    min-height:calc(100dvh - 64px);
    margin-top:64px;
  }

  .ghost-cast-tv-frame,
  .detail-view.is-paratrippin .paratrippin-hero-frame{
    width:calc(100vw - 24px);
    max-width:640px;
  }

  .ghost-cast-stage-title{
    left:16px;
    top:22px;
    max-width:58vw;
    font-size:clamp(2.85rem,14vw,4.9rem);
  }

  .ghost-cast-stage-callout{
    left:16px;
    top:clamp(142px,25dvh,202px);
    max-width:min(285px,calc(100vw - 32px));
    gap:10px;
  }

  .ghost-cast-stage-callout p{
    max-width:285px;
    font-size:clamp(.86rem,4.2vw,1.05rem);
    line-height:1.06;
  }

  .ghost-cast-youtube-link{
    min-height:46px;
    padding:0 18px 0 14px;
    gap:10px;
    border-radius:12px;
    font-size:.78rem;
    letter-spacing:.12em;
    transform:none;
  }

  .ghost-cast-youtube-icon{
    width:28px;
    height:20px;
  }

  .ghost-cast-youtube-icon::before{
    left:11px;
    top:5px;
    border-top-width:5px;
    border-bottom-width:5px;
    border-left-width:8px;
  }

  .detail-view.is-paratrippin .paratrippin-neon-title{
    left:16px;
    top:24px;
    width:min(90vw,430px);
    max-width:calc(100vw - 32px);
  }

  .detail-view.is-paratrippin .paratrippin-neon-title text{
    stroke-width:5.2;
  }

  .paratrippin-screen-loop{
    gap:10px;
    padding:0 10%;
    font-size:clamp(.42rem,1.85vw,.78rem);
  }

  .paratrippin-screen-symbol{
    height:40%;
    max-width:12%;
  }

  .next-section,
  .detail-view.is-paratrippin .next-section{
    padding:30px 16px;
    overflow:hidden;
  }

  .next-section > p{
    margin:0 0 14px;
    font-size:9px;
  }

  .next-page{
    display:grid;
    grid-template-columns:auto minmax(0,1fr) auto;
    grid-template-areas:"num title arrow";
    align-items:center;
    gap:10px;
    padding:16px 0;
    min-width:0;
  }

  .next-page span{
    grid-area:num;
    align-self:center;
    font-size:10px;
  }

  .next-page b{
    grid-area:title;
    min-width:0;
    max-width:100%;
    font-size:clamp(2.15rem,12vw,4rem);
    line-height:.92;
    letter-spacing:-.055em;
    overflow-wrap:anywhere;
    word-break:normal;
  }

  .next-page i{
    grid-area:arrow;
    justify-self:end;
    align-self:center;
    font-size:2.1rem;
    line-height:1;
  }

  footer{
    min-height:96px;
    padding:20px 16px max(20px,env(safe-area-inset-bottom));
    gap:10px;
    font-size:9px;
    line-height:1.5;
  }
}

@media(max-width:390px) and (orientation:portrait){
  .identity-logo{
    max-width:86px;
  }

  .header-back{
    right:144px;
  }

  .header-contact{
    right:62px;
  }

  .menu-button{
    width:44px;
    height:44px;
  }

  .ghost-cast-stage-title{
    font-size:clamp(2.6rem,13.5vw,4.4rem);
  }

  .ghost-cast-stage-callout{
    top:clamp(132px,24dvh,184px);
  }

  .next-page b{
    font-size:clamp(2rem,11vw,3.45rem);
  }
}

/* Cycle card uses the existing protected Index geometry. */
.cycle-index-card {background:#000;}
.cycle-index-card::before,.cycle-index-card::after {display:none;}
.cycle-index-card .card-art {object-fit:contain;}
