:root {
  --twp-accent: #f2a984;
  --twp-accent-rgb: 242, 169, 132;
  --twp-room: #201817;
  --twp-ink: #f8f4ec;
  --twp-muted: rgba(248, 244, 236, 0.66);
  --twp-speed: 1120ms;
}

* { box-sizing: border-box; }
html, body.twp-page { min-height: 100%; margin: 0; background: #07090d; color: var(--twp-ink); overflow: hidden; }
body.twp-page { font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
body.twp-page.is-departing { pointer-events: none; }
.twp-skip { position: fixed; z-index: 200; top: 10px; left: 10px; padding: 12px 18px; color: #090a0d; background: #fff; transform: translateY(-160%); transition: transform 180ms ease; }
.twp-skip:focus { transform: translateY(0); }

.twp-gallery {
  --pointer-x: 0;
  --pointer-y: 0;
  --corridor-shift: 0%;
  position: relative;
  isolation: isolate;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto auto;
  width: 100%;
  height: 100svh;
  min-height: 650px;
  padding: max(20px, env(safe-area-inset-top)) max(24px, env(safe-area-inset-right)) max(18px, env(safe-area-inset-bottom)) max(24px, env(safe-area-inset-left));
  background: radial-gradient(circle at 50% 19%,rgba(var(--twp-accent-rgb),.13),transparent 34%),linear-gradient(180deg,rgba(3,4,6,.18),rgba(3,4,6,.6) 78%);
  transition: background 850ms ease;
  overflow: hidden;
}
.twp-gallery::before {
  content:"";
  position:absolute;
  z-index:-4;
  inset:-3%;
  background-image:url("./assets/portal-gallery/twenree-gallery-corridor.webp?v=1");
  background-repeat:no-repeat;
  background-position:calc(50% + var(--corridor-shift)) 50%;
  background-size:132% 100%;
  filter:brightness(.66) saturate(.8) contrast(1.08);
  transform:scale(1.035);
  transition:background-position var(--twp-speed) cubic-bezier(.18,.78,.2,1),filter 900ms ease;
}
.twp-gallery::after {
  content:"";
  position:absolute;
  z-index:13;
  inset:-34%;
  pointer-events:none;
  opacity:0;
  background:
    conic-gradient(from 0deg at 50% 50%,transparent 0 8%,rgba(var(--twp-accent-rgb),.22) 10%,transparent 13% 29%,rgba(255,255,255,.12) 31%,transparent 34% 56%,rgba(var(--twp-accent-rgb),.16) 58%,transparent 61% 100%);
  filter:blur(28px) saturate(1.3);
  mix-blend-mode:screen;
  transform:scale(1.1);
}

.twp-ambient, .twp-grain, .twp-light, .twp-floor-line, .twp-ceiling-rail, .twp-floor-reflection, .twp-atmosphere, .twp-depth-horizon, .twp-aurora, .twp-architectural-shadow { position: absolute; pointer-events: none; }
.twp-ambient { inset: 0; z-index: -2; overflow: hidden; }
.twp-grain {
  inset: -80px;
  opacity: 0.11;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.86' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.7'/%3E%3C/svg%3E");
  animation: twp-grain 0.28s steps(2) infinite;
}
.twp-light {
  top: -18%; width: 22vw; height: 82vh;
  background: linear-gradient(180deg, rgba(var(--twp-accent-rgb), 0.18), transparent 70%);
  filter: blur(34px); transform: skewX(-9deg); opacity: 0.5;
  animation: twp-breathe 5.8s ease-in-out infinite alternate;
}
.twp-light-a { left: 14%; }
.twp-light-b { right: 11%; animation-delay: -2.9s; }
.twp-floor-line { bottom: -14vh; width: 1px; height: 56vh; background: linear-gradient(180deg, transparent, rgba(var(--twp-accent-rgb), 0.25), transparent); transform-origin: bottom; opacity: 0.54; }
.twp-floor-line-a { left: 22%; transform: rotate(52deg); }
.twp-floor-line-b { right: 22%; transform: rotate(-52deg); }
.twp-floor-line,.twp-ceiling-rail { display:none; }
.twp-depth-horizon {
  z-index: 0;
  right: -12vw;
  bottom: -19vh;
  left: -12vw;
  height: 67vh;
  opacity: .1;
  background:
    linear-gradient(rgba(var(--twp-accent-rgb),.09) 1px,transparent 1px),
    linear-gradient(90deg,rgba(var(--twp-accent-rgb),.09) 1px,transparent 1px);
  background-size: 66px 48px;
  mask-image: linear-gradient(180deg,transparent 2%,#000 34%,#000 72%,transparent 100%);
  transform: perspective(560px) rotateX(67deg) translate3d(0,7%,0) scale(1.28);
  transform-origin: 50% 100%;
  animation: twp-horizon-travel 8.6s linear infinite;
}
.twp-aurora {
  z-index: 0;
  top: -24%;
  left: 50%;
  width: min(1160px,92vw);
  height: 62vh;
  opacity: .2;
  background: conic-gradient(from 220deg at 50% 0%,transparent 0 22%,rgba(var(--twp-accent-rgb),.28) 32%,transparent 45% 64%,rgba(255,255,255,.1) 72%,transparent 83%);
  filter: blur(44px) saturate(1.25);
  mix-blend-mode: screen;
  transform: translateX(-50%) rotate(-2deg) scaleX(1.12);
  animation: twp-aurora-drift 7.4s ease-in-out infinite alternate;
}
.twp-architectural-shadow {
  z-index: 1;
  inset: 0;
  opacity: .24;
  background:
    linear-gradient(116deg,transparent 0 19%,rgba(0,0,0,.5) 19.2% 20.6%,transparent 20.8% 79%,rgba(0,0,0,.5) 79.2% 80.5%,transparent 80.7%),
    linear-gradient(180deg,rgba(0,0,0,.26),transparent 18% 74%,rgba(0,0,0,.46));
  transform: scale(1.08);
  animation: twp-shadow-drift 12s ease-in-out infinite alternate;
}

.twp-header { position: relative; z-index: 20; display: flex; align-items: center; justify-content: space-between; min-height: 42px; }
.twp-logo { display: inline-flex; align-items: center; gap: 11px; color: var(--twp-ink); text-decoration: none; font-size: 0.82rem; font-weight: 800; letter-spacing: 0.18em; }
.twp-logo img { width: 32px; height: 32px; object-fit: contain; }
.twp-gallery-title { display: flex; align-items: center; gap: 24px; min-width: 248px; color: var(--twp-muted); font-size: 0.7rem; letter-spacing: 0.2em; text-transform: uppercase; }
.twp-counter b { color: var(--twp-ink); font-size: 0.94rem; }

.twp-stage { position: relative; min-height: 0; perspective: 1450px; perspective-origin: 50% 44%; }
.twp-room { position: absolute; inset: 0; transform-style: preserve-3d; transform-origin: 50% 48%; will-change: transform; animation: twp-gallery-drift 11s cubic-bezier(.45,.05,.55,.95) infinite alternate; }
.twp-gallery.is-storm-tour { --twp-speed:var(--storm-step,180ms); }
.twp-gallery.is-storm-tour::after { opacity:.42;animation:twp-storm-vortex 680ms linear infinite; }
.twp-gallery.is-storm-tour .twp-room { animation:twp-storm-room 620ms linear infinite; }
.twp-gallery.is-storm-tour .twp-world {
  transition:transform 64ms linear,opacity 70ms linear,filter 90ms linear;
}
.twp-gallery.is-storm-tour .twp-world.is-active { opacity:1; }
.twp-gallery.is-storm-tour .twp-world.is-near { opacity:.56;filter:brightness(.76) saturate(.92) blur(1px); }
.twp-gallery.is-storm-tour .twp-world:not(.is-active):not(.is-near) { filter:brightness(.26) saturate(.55) blur(5px); }
.twp-gallery.is-storm-tour .twp-world.is-storm-entering .twp-frame { animation:twp-storm-focus var(--storm-step,180ms) cubic-bezier(.16,.84,.24,1) both; }
.twp-gallery.is-storm-tour .twp-world.is-storm-leaving .twp-frame { animation:twp-storm-release var(--storm-step,180ms) ease-in both; }
.twp-gallery.is-storm-tour .twp-info-copy,
.twp-gallery.is-storm-tour .twp-enter { animation-duration:var(--storm-step,180ms); }
.twp-gallery.is-storm-tour .twp-frame,
.twp-gallery.is-storm-tour .twp-enter,
.twp-gallery.is-storm-tour .twp-rail,
.twp-gallery.is-storm-tour .twp-arrow { pointer-events:none; }
.twp-gallery.is-storm-tour .twp-auto-progress i { animation:none;transform:scaleX(0); }
.twp-gallery.is-storm-tour .twp-transition-veil { opacity:.12; }
.twp-gallery.is-storm-tour .twp-transition-veil > span {
  width:18vw;
  opacity:.16;
  animation:twp-storm-slice 720ms linear infinite;
  filter:blur(5px);
}
.twp-gallery.is-storm-tour .twp-transition-veil > span:nth-child(2) { animation-delay:-240ms; }
.twp-gallery.is-storm-tour .twp-transition-veil > span:nth-child(3) { animation-delay:-480ms; }
.twp-gallery.is-storm-settling .twp-room { animation:twp-storm-settle 760ms cubic-bezier(.12,.84,.18,1) both; }
.twp-gallery.is-storm-settling .twp-world.is-active .twp-frame { animation:twp-storm-lock 760ms cubic-bezier(.12,.84,.18,1) both; }
.twp-gallery.is-transitioning[data-direction="next"] .twp-room { animation: twp-camera-next var(--twp-speed) cubic-bezier(0.18,0.78,0.2,1); }
.twp-gallery.is-transitioning[data-direction="prev"] .twp-room { animation: twp-camera-prev var(--twp-speed) cubic-bezier(0.18,0.78,0.2,1); }
.twp-gallery.is-scene-live:not(.is-transitioning) .twp-world.is-active .twp-wall {
  animation: twp-live-room 5.1s cubic-bezier(.42,0,.22,1) both;
}
.twp-gallery.is-scene-live:not(.is-transitioning) .twp-world.is-active .twp-frame {
  animation: twp-live-frame 5.1s cubic-bezier(.42,0,.22,1) both;
}
.twp-gallery.is-scene-closing:not(.is-transitioning) .twp-world.is-active .twp-wall {
  animation: twp-room-pre-exit 900ms cubic-bezier(.42,0,.58,1) both;
}
.twp-world {
  --offset: 0;
  position: absolute; z-index: 1; top: 4%; bottom: 2%; left: 50%;
  width: min(66vw, 1080px); opacity: 0; pointer-events: none; transform-style: preserve-3d;
  transform: translateX(calc(-50% + (var(--offset) * 64vw))) translateZ(-230px) rotateY(calc(var(--offset) * -18deg)) scale(.84);
  transition: transform var(--twp-speed) cubic-bezier(0.2, 0.76, 0.18, 1), opacity 540ms ease, filter 620ms ease;
  filter: brightness(0.42) saturate(0.65); will-change: transform, opacity;
}
.twp-world.is-near { opacity: .36; z-index: 2; cursor: pointer; pointer-events: auto;filter:brightness(.5) saturate(.66); }
.twp-world.is-active { z-index: 5; opacity: 1; pointer-events: auto; transform: translateX(-50%) translateZ(0) rotateY(0deg) scale(1); filter: none; }
.twp-world.is-entering .twp-wall { animation: twp-room-settle var(--twp-speed) cubic-bezier(0.16,0.8,0.2,1); }
.twp-wall {
  position: absolute; inset: 0; display: grid; place-items: center; overflow: visible;
  isolation: isolate;
  border: 0;
  background: transparent!important;
  box-shadow: none;
}
.twp-wall::before { content:"";position:absolute;z-index:0;inset:4% 7% 2%;background:radial-gradient(ellipse at 50% 38%,rgba(var(--twp-accent-rgb),.12),transparent 52%);filter:blur(28px);animation:twp-wall-light 6.4s ease-in-out infinite alternate; }
.twp-wall::after { content:"";position:absolute;z-index:0;right:6%;bottom:2%;left:6%;height:9%;background:radial-gradient(ellipse,rgba(var(--twp-accent-rgb),.15),transparent 68%);filter:blur(18px);transform:perspective(500px) rotateX(62deg);transform-origin:bottom; }

.twp-frame {
  position: relative; z-index: 3; display: block; width: min(73%, 820px); aspect-ratio: 16/9;
  border: clamp(10px,.9vw,15px) solid #111313; outline:1px solid rgba(185,151,102,.48);
  background: #0a0b0e; color: var(--twp-ink); overflow: hidden; transform: translate3d(calc(var(--pointer-x) * -5px), calc(var(--pointer-y) * -3px), 34px); will-change: transform;
  box-shadow:0 34px 62px rgba(0,0,0,.64),0 0 0 3px #050606,0 0 0 5px rgba(166,134,91,.24),0 0 56px rgba(var(--twp-accent-rgb),.11);
  transition: transform 620ms cubic-bezier(0.2,0.8,0.2,1), box-shadow 620ms ease;
}
.twp-exhibit-plaque {
  position:absolute;
  z-index:7;
  top:50%;
  right:1.8%;
  width:12.5%;
  padding:13px 12px 12px;
  border-left:2px solid rgba(185,151,102,.72);
  color:rgba(255,255,255,.78);
  background:linear-gradient(100deg,rgba(10,10,10,.9),rgba(20,19,17,.72));
  box-shadow:0 14px 28px rgba(0,0,0,.38),inset 0 0 0 1px rgba(255,255,255,.06);
  opacity:0;
  transform:translate3d(18px,-50%,18px);
  transition:opacity 460ms ease,transform 620ms cubic-bezier(.2,.8,.2,1);
}
.twp-world.is-active .twp-exhibit-plaque { opacity:1;transform:translate3d(0,-50%,18px); }
.twp-exhibit-plaque b,.twp-exhibit-plaque span { display:block; }
.twp-exhibit-plaque b { font-size:clamp(.52rem,.58vw,.65rem);line-height:1.25;letter-spacing:.11em; }
.twp-exhibit-plaque span { margin-top:7px;color:rgba(255,255,255,.46);font-size:clamp(.42rem,.46vw,.52rem);line-height:1.4;letter-spacing:.07em; }
.twp-sconce,.twp-world::before,.twp-world::after { display:none; }
.twp-world.is-active .twp-frame:hover, .twp-world.is-active .twp-frame:focus-visible { transform: translate3d(calc(var(--pointer-x) * -7px), calc(var(--pointer-y) * -5px), 54px) scale(1.018); box-shadow: 0 42px 90px rgba(0,0,0,0.72), 0 0 86px rgba(var(--twp-accent-rgb),0.24); }
.twp-frame::before {
  content: "";
  position: absolute;
  z-index: 4;
  inset: 0;
  border: 1px solid rgba(255,255,255,0.17);
  box-shadow: inset 0 0 24px rgba(0,0,0,0.62), inset 0 0 0 5px rgba(0,0,0,0.16);
  pointer-events: none;
}
.twp-frame img { width: 100%; height: 100%; object-fit: cover; display: block; transform: scale(1.025); filter: saturate(1.04) contrast(1.035); }
.twp-world.is-active .twp-frame img { animation: twp-art-alive 9s cubic-bezier(0.37,0,0.16,1) infinite alternate; }
.theme-peel .twp-frame img { transform-origin: 51% 57%; }
.theme-firewall .twp-frame img { transform-origin: 50% 42%; }
.theme-varrow .twp-frame img { transform-origin: 55% 47%; }
.theme-cup .twp-frame img { transform-origin: 50% 54%; object-position: center; }
.theme-ludivara .twp-frame img { transform-origin: 52% 46%; object-position: center; }
.theme-studio .twp-frame img { transform-origin: 50% 48%; }
.twp-glass { position: absolute; z-index: 4; inset: 0; pointer-events: none; background: linear-gradient(110deg,rgba(255,255,255,.16),transparent 18% 72%,rgba(255,255,255,.07)),linear-gradient(180deg,rgba(0,0,0,.05) 52%,rgba(0,0,0,.72)); }
.twp-frame-label { position: absolute; z-index: 7; right: 18px; bottom: 15px; left: 18px; padding-top: 11px; border-top: 1px solid rgba(255,255,255,.2); color: rgba(255,255,255,0.82); font-size: clamp(0.65rem,0.75vw,0.78rem); font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; }

.twp-sconce { position: absolute; z-index: 2; top: 4%; width: 82px; height: 12px; border-radius: 999px; background: #1e2024; box-shadow: 0 11px 27px rgba(var(--twp-accent-rgb),0.4); }
.twp-sconce::after { content: ""; position: absolute; top: 10px; left: 12px; width: 58px; height: 34vh; background: linear-gradient(180deg,rgba(var(--twp-accent-rgb),0.22),transparent 80%); clip-path: polygon(39% 0,61% 0,100% 100%,0 100%); filter: blur(7px); }
.twp-sconce-left { left: 9%; }
.twp-sconce-right { right: 9%; }
.twp-motif { position: absolute; inset: 0; z-index: 2; pointer-events: none; overflow: hidden; }

.twp-petals i { position: absolute; width: 12px; height: 18px; border-radius: 80% 20% 70% 30%; background: rgba(var(--twp-accent-rgb),0.55); animation: twp-fall 7s linear infinite; }
.twp-petals i:nth-child(1) { left: 7%; animation-delay: -1s; }
.twp-petals i:nth-child(2) { left: 18%; animation-delay: -4.4s; transform: scale(0.7); }
.twp-petals i:nth-child(3) { right: 12%; animation-delay: -2.6s; }
.twp-petals i:nth-child(4) { right: 25%; animation-delay: -6s; transform: scale(0.6); }
.twp-radar i { position: absolute; left: 50%; top: 50%; width: 80%; aspect-ratio: 1; border: 1px solid rgba(var(--twp-accent-rgb),0.18); border-radius: 50%; transform: translate(-50%,-50%); animation: twp-radar 5s linear infinite; }
.twp-radar i::after { content: ""; position: absolute; inset: 50% 50% 0 0; background: conic-gradient(from 45deg,rgba(var(--twp-accent-rgb),0.28),transparent 28%); transform-origin: 100% 0; }
.twp-shelf-scan i { position: absolute; left: 9%; right: 9%; height: 1px; background: linear-gradient(90deg,transparent,rgba(var(--twp-accent-rgb),0.75),transparent); animation: twp-scan 4.8s ease-in-out infinite; }
.twp-shelf-scan i:nth-child(2) { animation-delay: -1.6s; opacity: 0.55; }
.twp-shelf-scan i:nth-child(3) { animation-delay: -3.2s; opacity: 0.3; }
.twp-score-pulse i { position: absolute; border: 1px solid rgba(var(--twp-accent-rgb),0.48); border-radius: 50%; width: 18px; height: 18px; animation: twp-score 3s ease-out infinite; }
.twp-score-pulse i:nth-child(1) { left: 9%; top: 28%; }
.twp-score-pulse i:nth-child(2) { right: 10%; top: 21%; animation-delay: -1s; }
.twp-score-pulse i:nth-child(3) { right: 7%; bottom: 20%; animation-delay: -2s; }

.twp-art-card { display: flex; flex-direction: column; align-items: center; justify-content: center; text-decoration: none; background: radial-gradient(circle at 50% 48%,rgba(var(--twp-accent-rgb),0.24),transparent 34%), linear-gradient(145deg,#0b1020,#10192f 48%,#070a12); }
.twp-art-word { position: relative; z-index: 2; font-size: clamp(2.25rem,6vw,5.8rem); font-weight: 760; letter-spacing: 0.08em; line-height: 0.9; text-shadow: 0 0 34px rgba(var(--twp-accent-rgb),0.38); }
.twp-art-sub { position: relative; z-index: 2; margin-top: 22px; color: var(--twp-muted); font-size: 1rem; letter-spacing: 0.12em; }
.twp-art-orbit { position: absolute; width: 62%; aspect-ratio: 1; border: 1px solid rgba(var(--twp-accent-rgb),0.4); border-radius: 50%; transform: rotateX(68deg) rotateZ(7deg); animation: twp-orbit 9s linear infinite; }
.twp-art-orbit-b { width: 42%; animation-direction: reverse; animation-duration: 6.5s; }
.twp-constellation i, .twp-data-orbit i { position: absolute; width: 5px; height: 5px; border-radius: 50%; background: rgb(var(--twp-accent-rgb)); box-shadow: 0 0 18px rgb(var(--twp-accent-rgb)); animation: twp-blink 2.8s ease-in-out infinite; }
.twp-constellation i:nth-child(1), .twp-data-orbit i:nth-child(1) { left: 13%; top: 20%; }
.twp-constellation i:nth-child(2), .twp-data-orbit i:nth-child(2) { right: 16%; top: 32%; animation-delay: -0.9s; }
.twp-constellation i:nth-child(3), .twp-data-orbit i:nth-child(3) { left: 20%; bottom: 19%; animation-delay: -1.7s; }
.twp-constellation i:nth-child(4) { right: 11%; bottom: 13%; animation-delay: -2.2s; }
.twp-studio-mark { position: relative; z-index: 2; display: grid; place-items: center; width: clamp(78px,9vw,128px); aspect-ratio: 1; margin-bottom: 24px; border: 1px solid rgba(var(--twp-accent-rgb),0.58); border-radius: 28%; color: rgb(var(--twp-accent-rgb)); font-size: clamp(2.5rem,5vw,4.5rem); font-weight: 300; box-shadow: inset 0 0 34px rgba(var(--twp-accent-rgb),0.15),0 0 38px rgba(var(--twp-accent-rgb),0.12); animation: twp-studio 5s ease-in-out infinite; }
.theme-studio .twp-art-word { font-size: clamp(1.8rem,4vw,4rem); }

.twp-occluder {
  position: fixed; z-index: 30; top: -14vh; bottom: -14vh; left: -42vw; width: 28vw;
  border-radius: 0 12px 12px 0;
  background: repeating-linear-gradient(90deg,transparent 0 18%,rgba(255,255,255,.025) 18% 18.5%,transparent 18.5% 36%), radial-gradient(ellipse at 85% 50%,rgba(var(--twp-accent-rgb),0.18),transparent 42%), linear-gradient(90deg,#050609,#17191e 52%,#08090c);
  box-shadow: 40px 0 80px rgba(0,0,0,0.82), inset -2px 0 rgba(255,255,255,0.08);
  transform: perspective(900px) rotateY(12deg) skewX(-3deg);
  pointer-events: none; opacity: 0;
}
.twp-occluder::after {
  content: "";
  position: absolute;
  top: 0; right: 12%; bottom: 0;
  width: 1px;
  background: linear-gradient(transparent,rgba(var(--twp-accent-rgb),0.7),transparent);
  box-shadow: 0 0 22px rgba(var(--twp-accent-rgb),0.46);
}
.twp-gallery.is-transitioning .twp-occluder { animation: twp-occlude var(--twp-speed) cubic-bezier(0.62,0.05,0.18,1); }
.twp-transition-veil {
  position: fixed;
  z-index: 31;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
  opacity: 0;
}
.twp-transition-veil > span {
  position: absolute;
  top: -18%;
  bottom: -18%;
  width: 52vw;
  opacity: 0;
  background:
    linear-gradient(110deg,transparent 0 14%,rgba(255,255,255,.13) 14.5% 15%,transparent 15.5% 78%,rgba(var(--twp-accent-rgb),.28) 78.5% 79%,transparent 79.5%),
    linear-gradient(90deg,#050609,color-mix(in srgb,rgb(var(--twp-accent-rgb)) 20%,#11151a) 58%,#06070a);
  box-shadow: 0 0 90px rgba(0,0,0,.88),inset 0 0 0 1px rgba(255,255,255,.08);
  transform: translateX(-125%) skewX(-8deg);
}
.twp-transition-veil > span:nth-child(1) { left: -9%; }
.twp-transition-veil > span:nth-child(2) { left: 24%; }
.twp-transition-veil > span:nth-child(3) { left: 57%; }
.twp-gallery.is-transitioning .twp-transition-veil { animation: twp-veil-visible var(--twp-speed) linear; }
.twp-gallery.is-transitioning .twp-transition-veil > span { animation: twp-veil-travel var(--twp-speed) cubic-bezier(.6,.02,.16,.98); }
.twp-gallery.is-transitioning .twp-transition-veil > span:nth-child(2) { animation-delay: 70ms; }
.twp-gallery.is-transitioning .twp-transition-veil > span:nth-child(3) { animation-delay: 140ms; }
.twp-gallery[data-transition-theme="peel"] .twp-transition-veil > span { border-radius: 2% 18% 4% 16%; background: linear-gradient(104deg,#120d0d,#5d352b 48%,#f2a984 49% 49.4%,#1b1111 50%); }
.twp-gallery[data-transition-theme="firewall"] .twp-transition-veil > span { background: repeating-linear-gradient(90deg,#08090c 0 28px,#211315 28px 54px,#ff5d35 55px 56px); }
.twp-gallery[data-transition-theme="varrow"] .twp-transition-veil > span { background: repeating-linear-gradient(90deg,#070b0b 0 18%,#3b2a1e 18.5% 31%,#82e8c5 31.5% 32%,#0d1715 32.5% 49%); }
.twp-gallery[data-transition-theme="cup"] .twp-transition-veil > span { background: linear-gradient(105deg,#071008,#223818 46%,#d9ff9a 49%,#10160d 52%); filter: drop-shadow(0 0 22px rgba(167,255,54,.38)); }
.twp-gallery[data-transition-theme="ludivara"] .twp-transition-veil > span { border-radius: 48% 8% 48% 8%; background: conic-gradient(from 35deg,#090b19,#394180,#10142c,#8d9cff,#090b19); }
.twp-gallery[data-transition-theme="studio"] .twp-transition-veil > span { background: repeating-linear-gradient(0deg,#07101c 0 32px,#19324b 32px 33px,#07101c 33px 64px); }
.twp-arrow { position: absolute; z-index: 14; top: 50%; display: grid; place-items: center; width: 52px; height: 52px; padding: 0; border: 1px solid rgba(255,255,255,0.2); border-radius: 50%; color: #fff; background: rgba(5,7,10,0.46); backdrop-filter: blur(16px); cursor: pointer; opacity: .42; transform: translateY(-50%); transition: opacity 220ms ease, border-color 220ms ease, background 220ms ease; }
.twp-arrow:hover, .twp-arrow:focus-visible { border-color: rgb(var(--twp-accent-rgb)); background: rgba(var(--twp-accent-rgb),0.16); opacity: 1; }
.twp-arrow-prev { left: 2.5%; } .twp-arrow-next { right: 2.5%; } .twp-arrow span { font-size: 1.2rem; }

.twp-info { position: relative; z-index: 18; display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: end; gap: 38px; width: min(1160px,88vw); margin: 0 auto; padding: 4px 0 14px; }
.twp-kicker { margin: 0 0 8px; color: rgb(var(--twp-accent-rgb)); font-size: 0.67rem; font-weight: 800; letter-spacing: 0.2em; }
.twp-info h1 { margin: 0; font-size: clamp(2.15rem,4.1vw,4.7rem); line-height: 0.92; letter-spacing: -0.055em; }
.twp-description { max-width: 650px; margin: 12px 0 0; color: var(--twp-muted); font-size: clamp(0.92rem,1vw,1.05rem); line-height: 1.5; }
.twp-enter { display: inline-flex; align-items: center; gap: 24px; min-height: 54px; padding: 0 10px 0 22px; border: 1px solid rgba(var(--twp-accent-rgb),0.55); border-radius: 999px; color: var(--twp-ink); background: rgba(var(--twp-accent-rgb),0.1); text-decoration: none; font-size: 0.82rem; font-weight: 760; transition: background 220ms ease, transform 220ms ease; }
.twp-enter i { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; color: #08090b; background: rgb(var(--twp-accent-rgb)); font-style: normal; }
.twp-enter:hover, .twp-enter:focus-visible { background: rgba(var(--twp-accent-rgb),0.2); transform: translateY(-2px); }
.twp-rail { position: relative; z-index: 18; display: grid; grid-template-columns: repeat(6,minmax(0,1fr)); gap: 2px; width: min(1160px,88vw); margin: 0 auto; border-top: 1px solid rgba(255,255,255,0.11); }
.twp-rail button { position: relative; min-width: 0; padding: 13px 6px 3px; border: 0; color: rgba(255,255,255,0.38); background: transparent; text-align: left; cursor: pointer; }
.twp-rail button::before { content: ""; position: absolute; top: -1px; left: 0; width: 0; height: 2px; background: rgb(var(--twp-accent-rgb)); transition: width 520ms ease; }
.twp-rail button.is-active { color: var(--twp-ink); }
.twp-rail button.is-active::before { width: 100%; }
.twp-rail span { display: block; margin-bottom: 3px; font-size: 0.58rem; font-variant-numeric: tabular-nums; }
.twp-rail b { display: block; overflow: hidden; font-size: 0.68rem; letter-spacing: 0.04em; text-overflow: ellipsis; white-space: nowrap; }
.twp-hint { position: absolute; right: max(24px,env(safe-area-inset-right)); bottom: max(18px,env(safe-area-inset-bottom)); z-index: 17; margin: 0; color: rgba(255,255,255,0.33); font-size: 0.56rem; letter-spacing: 0.12em; text-transform: uppercase; writing-mode: vertical-rl; }

.twp-gallery.is-copy-changing .twp-info-copy,
.twp-gallery.is-copy-changing .twp-enter { animation: twp-copy-settle 620ms cubic-bezier(0.16,0.82,0.24,1); }

.twp-page-transition {
  --exit-image: none;
  position: fixed;
  z-index: 500;
  inset: 0;
  display: grid;
  place-items: center;
  background: #06070a;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  overflow: hidden;
}
.twp-page-transition::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 50% 50%,rgba(var(--twp-accent-rgb),0.2),transparent 38%);
  transform: scale(0.35);
  opacity: 0;
}
.twp-page-transition-art {
  position: absolute;
  width: min(72vw,1040px);
  aspect-ratio: 16/9;
  border: 1px solid rgba(var(--twp-accent-rgb),0.58);
  background-image: linear-gradient(180deg,transparent 45%,rgba(0,0,0,0.64)), var(--exit-image);
  background-position: center;
  background-size: cover;
  box-shadow: 0 0 100px rgba(var(--twp-accent-rgb),0.18);
  transform: perspective(1200px) translateZ(-500px) rotateY(-12deg) scale(0.62);
  filter: brightness(0.72) saturate(0.8);
}
.twp-page-transition-ring {
  position: absolute;
  width: 22vmin;
  aspect-ratio: 1;
  border: 1px solid rgba(var(--twp-accent-rgb),0.8);
  border-radius: 50%;
  box-shadow: 0 0 45px rgba(var(--twp-accent-rgb),0.34), inset 0 0 45px rgba(var(--twp-accent-rgb),0.16);
  transform: scale(0);
}
.twp-page-transition-word {
  position: absolute;
  bottom: 10vh;
  color: rgba(255,255,255,0.75);
  font-size: 0.66rem;
  font-weight: 760;
  letter-spacing: 0.28em;
  transform: translateY(18px);
  opacity: 0;
}
body.is-departing .twp-page-transition { visibility: visible; animation: twp-depart-layer 1120ms ease forwards; }
body.is-departing .twp-page-transition::before { animation: twp-depart-glow 1120ms ease forwards; }
body.is-departing .twp-page-transition-art { animation: twp-depart-art 1120ms cubic-bezier(0.18,0.78,0.16,1) forwards; }
body.is-departing .twp-page-transition-ring { animation: twp-depart-ring 1120ms cubic-bezier(0.14,0.72,0.16,1) forwards; }
body.is-departing .twp-page-transition-word { animation: twp-depart-word 1120ms ease forwards; }

.theme-peel { --twp-accent-rgb: 242,169,132; --twp-room: #281a19; }
.theme-firewall { --twp-accent-rgb: 255,93,53; --twp-room: #25100f; }
.theme-varrow { --twp-accent-rgb: 130,232,197; --twp-room: #0d211d; }
.theme-cup { --twp-accent-rgb: 167,255,54; --twp-room: #12210f; }
.theme-ludivara { --twp-accent-rgb: 141,156,255; --twp-room: #10152b; }
.theme-studio { --twp-accent-rgb: 98,215,255; --twp-room: #0b162b; }

/* Gallery motion system v2: one continuously moving architectural corridor. */
.twp-ceiling-rail {
  z-index: 1;
  top: -6vh;
  width: 2px;
  height: 56vh;
  background: linear-gradient(180deg, rgba(255,255,255,.02), rgba(var(--twp-accent-rgb),.42), transparent 82%);
  filter: drop-shadow(0 0 14px rgba(var(--twp-accent-rgb),.34));
  transform-origin: top;
  animation: twp-rail-drift 8s ease-in-out infinite alternate;
}
.twp-ceiling-rail::before,
.twp-ceiling-rail::after {
  content: "";
  position: absolute;
  top: 0;
  width: 1px;
  height: 100%;
  background: inherit;
}
.twp-ceiling-rail::before { left: -18vw; }
.twp-ceiling-rail::after { right: -18vw; }
.twp-ceiling-rail-a { left: 23%; transform: rotate(-58deg); }
.twp-ceiling-rail-b { right: 23%; transform: rotate(58deg); animation-delay: -4s; }
.twp-floor-reflection {
  z-index: 0;
  left: 50%;
  bottom: -36vh;
  width: 94vw;
  height: 58vh;
  border-radius: 50%;
  background:
    repeating-radial-gradient(ellipse at center, rgba(var(--twp-accent-rgb),.1) 0 1px, transparent 1px 42px),
    radial-gradient(ellipse at center, rgba(var(--twp-accent-rgb),.16), transparent 63%);
  transform: translateX(-50%) perspective(580px) rotateX(66deg);
  filter: blur(.3px);
  animation: twp-floor-pulse 5.8s ease-in-out infinite alternate;
}
.twp-atmosphere {
  z-index: 2;
  inset: 0;
  opacity: .28;
  background:
    radial-gradient(circle at 14% 32%, rgba(var(--twp-accent-rgb),.22) 0 1px, transparent 2px),
    radial-gradient(circle at 78% 45%, rgba(255,255,255,.16) 0 1px, transparent 2px),
    radial-gradient(circle at 61% 17%, rgba(var(--twp-accent-rgb),.18) 0 1px, transparent 2px);
  background-size: 170px 210px, 230px 190px, 190px 260px;
  animation: twp-dust 18s linear infinite;
}
.twp-auto-progress {
  position: relative;
  width: 90px;
  height: 2px;
  overflow: hidden;
  border-radius: 99px;
  background: rgba(255,255,255,.12);
}
.twp-auto-progress i {
  display: block;
  width: 100%;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, rgb(var(--twp-accent-rgb)), rgba(255,255,255,.96));
  transform-origin: left;
  animation: twp-auto-progress var(--twp-cycle, 5800ms) linear infinite;
}
.twp-auto-progress.is-resetting i { animation: none; transform: scaleX(0); }
.twp-stage::before,
.twp-stage::after {
  content: "";
  position: absolute;
  z-index: 12;
  top: -3%;
  bottom: -5%;
  width: clamp(38px,5vw,86px);
  pointer-events: none;
  background:
    linear-gradient(90deg, rgba(255,255,255,.08), transparent 18% 82%, rgba(0,0,0,.66)),
    linear-gradient(180deg, color-mix(in srgb, var(--twp-room) 82%, #242830), #07090d 74%);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.06), 0 0 44px rgba(0,0,0,.55);
  transform: perspective(900px) rotateY(var(--portal-angle));
  transition: background 800ms ease;
}
.twp-stage::before { --portal-angle: 18deg; left: -2.5%; border-right: 1px solid rgba(var(--twp-accent-rgb),.24); }
.twp-stage::after { --portal-angle: -18deg; right: -2.5%; border-left: 1px solid rgba(var(--twp-accent-rgb),.24); }
.twp-world::before,
.twp-world::after {
  content: "";
  position: absolute;
  z-index: 8;
  top: -2%;
  bottom: -3%;
  width: 5.5%;
  pointer-events: none;
  background:
    linear-gradient(90deg, rgba(255,255,255,.08), transparent 24%, rgba(0,0,0,.4)),
    color-mix(in srgb, var(--twp-room) 76%, #14171d);
  box-shadow: 0 0 38px rgba(0,0,0,.48), inset 0 0 0 1px rgba(255,255,255,.05);
}
.twp-world::before { left: 0; transform: translateX(-42%) perspective(800px) rotateY(24deg); }
.twp-world::after { right: 0; transform: translateX(42%) perspective(800px) rotateY(-24deg); }
.theme-peel .twp-wall { background: linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px) 0 0/82px 100%, linear-gradient(180deg,#39251f,#140f10 78%); }
.theme-firewall .twp-wall { background: repeating-linear-gradient(90deg,rgba(255,255,255,.025) 0 1px,transparent 1px 64px), linear-gradient(180deg,#241719,#090b0f 76%); }
.theme-varrow .twp-wall { background: repeating-linear-gradient(90deg,rgba(154,112,68,.12) 0 3px,transparent 3px 44px), linear-gradient(180deg,#192825,#080c0c 76%); }
.theme-cup .twp-wall { background: linear-gradient(112deg,transparent 0 18%,rgba(167,255,54,.07) 18% 18.4%,transparent 18.4% 81.6%,rgba(167,255,54,.07) 81.6% 82%,transparent 82%), linear-gradient(180deg,#162019,#080b09 78%); }
.theme-ludivara .twp-wall { background: linear-gradient(rgba(141,156,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(141,156,255,.035) 1px,transparent 1px),linear-gradient(180deg,#11192a,#07090f 78%); background-size:48px 48px,48px 48px,auto; }
.theme-studio .twp-wall { background: radial-gradient(circle at 50% 30%,rgba(98,215,255,.1),transparent 34%),repeating-linear-gradient(90deg,rgba(255,255,255,.025) 0 1px,transparent 1px 86px),linear-gradient(180deg,#121c2d,#07090f 78%); }

/* Authored gallery environments: each painting sits inside its own world. */
.twp-scene { position:absolute; z-index:1; inset:0; pointer-events:none; overflow:hidden; opacity:.18;mix-blend-mode:screen;transform-style:preserve-3d; }
.twp-scene > span { position:absolute; display:block; }
.twp-world:not(.is-active) .twp-scene > span { animation-play-state:paused!important; }

/* Peel Tales — tactile paper theatre. */
.twp-scene-peel { background:linear-gradient(104deg,rgba(248,213,183,.055),transparent 31% 69%,rgba(248,213,183,.055)); }
.twp-paper-stack { left:1.8%; bottom:5%; width:17%; height:30%; border:1px solid rgba(255,225,198,.19); border-radius:2px 12px 2px 4px; background:linear-gradient(145deg,#7b4d3c,#2f1b1a 78%); box-shadow:7px -7px 0 #b47b5e,14px -14px 0 #604035,0 24px 32px rgba(0,0,0,.46); transform:perspective(480px) rotateY(24deg) rotateZ(-3deg); }
.twp-paper-stack::before { content:"FIELD NOTES"; position:absolute; inset:18px 10px auto; color:rgba(255,239,220,.74); font-size:.5rem; font-weight:780; letter-spacing:.16em; }
.twp-paper-strip { top:-14%; right:3%; width:21%; height:122%; background:linear-gradient(90deg,transparent,rgba(249,220,190,.16) 11% 88%,transparent),repeating-linear-gradient(180deg,transparent 0 28px,rgba(255,255,255,.055) 29px 30px); transform:rotate(5deg); filter:drop-shadow(-14px 0 20px rgba(0,0,0,.46)); animation:twp-paper-breathe 6.6s ease-in-out infinite alternate; }
.twp-thread-path { left:7%; right:7%; bottom:10%; height:34%; border:2px solid rgba(246,174,139,.36); border-color:transparent rgba(246,174,139,.45) rgba(246,174,139,.42) transparent; border-radius:50%; transform:rotate(-7deg); filter:drop-shadow(0 0 9px rgba(246,174,139,.28)); }
.twp-thread-path::before,.twp-thread-path::after { content:""; position:absolute; width:8px; height:8px; border-radius:50%; background:#f4b18f; box-shadow:0 0 18px rgba(244,177,143,.75); animation:twp-story-dot 4.8s ease-in-out infinite alternate; }
.twp-thread-path::before { left:11%; bottom:7%; }.twp-thread-path::after { right:13%; top:9%; animation-delay:-2.4s; }
.twp-lamp-pool { left:0; top:0; width:42%; height:72%; background:radial-gradient(ellipse at 18% 10%,rgba(255,212,166,.28),transparent 67%); mix-blend-mode:screen; animation:twp-lamp-warmth 5s ease-in-out infinite alternate; }
.twp-chapter { left:3.8%; top:10%; padding:8px 12px; border-top:1px solid rgba(255,219,188,.38); border-bottom:1px solid rgba(255,219,188,.16); color:rgba(255,233,215,.67); font-size:.49rem; font-weight:800; letter-spacing:.22em; writing-mode:vertical-rl; }

/* Last Firewall — an industrial defense bay. */
.twp-scene-firewall { background:radial-gradient(circle at 50% 48%,rgba(255,69,37,.08),transparent 39%); }
.twp-defense-grid { inset:6% 4% 12%; background:linear-gradient(rgba(255,92,53,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(255,92,53,.08) 1px,transparent 1px); background-size:34px 34px; clip-path:polygon(0 0,100% 0,100% 100%,0 100%); transform:perspective(700px) rotateX(4deg); animation:twp-grid-shift 7s linear infinite; }
.twp-defense-shutter { top:-5%; bottom:0; width:13%; background:repeating-linear-gradient(90deg,#17191e 0 7px,#292c33 7px 10px,#0c0e12 10px 17px); border-inline:1px solid rgba(255,101,65,.3); box-shadow:0 0 30px rgba(0,0,0,.72),inset 0 0 24px rgba(255,80,45,.08); }
.twp-defense-shutter-a { left:0; transform:perspective(540px) rotateY(17deg); transform-origin:left; }.twp-defense-shutter-b { right:0; transform:perspective(540px) rotateY(-17deg); transform-origin:right; }
.twp-defense-beacon { left:50%; top:8%; width:7px; height:7px; border-radius:50%; background:#ff5d35; box-shadow:0 0 0 7px rgba(255,93,53,.08),0 0 36px 8px rgba(255,93,53,.7); animation:twp-defense-pulse 1.8s ease-in-out infinite; }
.twp-defense-readout { right:2.6%; bottom:8%; color:rgba(255,157,127,.75); font:750 .49rem/1 ui-monospace,SFMono-Regular,monospace; letter-spacing:.13em; transform:rotate(-90deg) translateX(100%); transform-origin:right bottom; }

/* VARROW — real retail architecture rather than a floating frame. */
.twp-retail-track { left:17%; right:17%; top:2.5%; height:9px; border-radius:999px; background:#151b1a; box-shadow:0 10px 26px rgba(130,232,197,.28); }
.twp-retail-track::before { content:""; position:absolute; inset:7px 2% auto; height:15vh; background:repeating-linear-gradient(90deg,transparent 0 15%,rgba(130,232,197,.18) 15.2% 15.7%,transparent 16% 33%); filter:blur(3px); clip-path:polygon(5% 0,95% 0,100% 100%,0 100%); }
.twp-retail-shelf { bottom:7%; width:11%; height:59%; border:1px solid rgba(255,255,255,.1); background:repeating-linear-gradient(180deg,#202725 0 4px,transparent 4px 21%,rgba(120,87,56,.85) 21% 24%,transparent 24% 34%),linear-gradient(90deg,#111715,#27312e,#111715); box-shadow:0 22px 32px rgba(0,0,0,.52),inset 0 0 18px rgba(130,232,197,.05); }
.twp-retail-shelf::after { content:""; position:absolute; inset:9% 12%; background:repeating-linear-gradient(180deg,transparent 0 17%,rgba(130,232,197,.44) 17.5% 18%,transparent 18.5% 32%); animation:twp-merch-glint 4.6s ease-in-out infinite; }
.twp-retail-shelf-a { left:1.8%; transform:perspective(520px) rotateY(18deg); }.twp-retail-shelf-b { right:1.8%; transform:perspective(520px) rotateY(-18deg); }
.twp-price-tag { bottom:9%; min-width:48px; padding:7px 8px; border:1px solid rgba(130,232,197,.43); border-radius:4px; color:#bffff0; background:rgba(4,18,15,.86); font-size:.47rem; font-weight:850; letter-spacing:.16em; text-align:center; box-shadow:0 0 18px rgba(130,232,197,.12); }
.twp-price-tag-a { left:4%; }.twp-price-tag-b { right:4%; animation:twp-tag-pulse 3.4s ease-in-out infinite alternate; }
.twp-store-glow { left:15%; right:15%; bottom:2%; height:3px; background:linear-gradient(90deg,transparent,#82e8c5,transparent); box-shadow:0 0 18px rgba(130,232,197,.68); animation:twp-store-scan 4.8s ease-in-out infinite; }

/* EksiBir — stadium tunnel, scoreboard and floodlights. */
.twp-tunnel-ribs { inset:0; background:repeating-linear-gradient(104deg,transparent 0 9%,rgba(255,255,255,.055) 9.2% 9.8%,transparent 10% 18%); clip-path:polygon(0 0,100% 0,91% 100%,9% 100%); }
.twp-pitch-lines { left:13%; right:13%; bottom:-23%; height:42%; border:1px solid rgba(181,255,72,.42); border-radius:50% 50% 0 0; background:repeating-linear-gradient(90deg,rgba(125,196,46,.09) 0 7%,rgba(20,54,21,.05) 7% 14%); transform:perspective(460px) rotateX(64deg); box-shadow:0 -12px 38px rgba(166,255,54,.16); }
.twp-stadium-light { top:3%; width:24%; height:54%; background:linear-gradient(180deg,rgba(230,255,204,.25),transparent 78%); clip-path:polygon(45% 0,55% 0,100% 100%,0 100%); filter:blur(4px); animation:twp-floodlight 5.8s ease-in-out infinite alternate; }
.twp-stadium-light-a { left:1%; transform:rotate(-18deg); }.twp-stadium-light-b { right:1%; transform:rotate(18deg); animation-delay:-2.9s; }
.twp-scoreboard { right:2.7%; top:8%; display:grid!important; place-items:center; width:66px; padding:9px 7px; border:1px solid rgba(167,255,54,.38); background:#0b130d; box-shadow:0 0 24px rgba(167,255,54,.13); }
.twp-scoreboard b { color:#ddffaf; font-size:1.28rem; line-height:1; }.twp-scoreboard i { margin-top:5px; color:#a7ff36; font-style:normal; font-size:.43rem; font-weight:850; letter-spacing:.18em; animation:twp-live 1.4s ease-in-out infinite; }

/* Ludivara — decision orbit and product intelligence cards. */
.twp-scene-ludivara { background:radial-gradient(circle at 50% 48%,rgba(141,156,255,.12),transparent 38%); }
.twp-orbit { left:50%; top:50%; aspect-ratio:1; border:1px solid rgba(141,156,255,.24); border-radius:50%; transform:translate(-50%,-50%) rotateX(68deg); }
.twp-orbit::after { content:""; position:absolute; left:8%; top:18%; width:8px; height:8px; border-radius:50%; background:#a5b1ff; box-shadow:0 0 21px #8d9cff; }
.twp-orbit-a { width:88%; animation:twp-intel-orbit 10s linear infinite; }.twp-orbit-b { width:62%; animation:twp-intel-orbit 7s linear infinite reverse; }
.twp-node { width:6px; height:6px; border-radius:50%; background:#8d9cff; box-shadow:0 0 22px #8d9cff; animation:twp-node-ping 2.8s ease-in-out infinite; }
.twp-node-a{left:7%;top:27%}.twp-node-b{right:8%;top:38%;animation-delay:-.9s}.twp-node-c{left:12%;bottom:18%;animation-delay:-1.8s}
.twp-roadmap-card { min-width:82px; padding:8px 10px; border:1px solid rgba(141,156,255,.32); border-radius:7px; color:rgba(222,226,255,.72); background:rgba(9,12,29,.76); font-size:.45rem; font-weight:780; letter-spacing:.14em; box-shadow:0 14px 26px rgba(0,0,0,.36); animation:twp-card-float 5.2s ease-in-out infinite alternate; }
.twp-roadmap-card-a{left:2.8%;bottom:8%}.twp-roadmap-card-b{right:2.8%;bottom:8%;animation-delay:-2.6s}

/* Studio — a living orchestration wall. */
.twp-scene-studio { background:linear-gradient(90deg,transparent 0 8%,rgba(98,215,255,.045) 8% 8.2%,transparent 8.2% 91.8%,rgba(98,215,255,.045) 91.8% 92%,transparent 92%); }
.twp-ops-column { top:8%; bottom:9%; width:10%; border:1px solid rgba(98,215,255,.12); background:repeating-linear-gradient(180deg,rgba(98,215,255,.11) 0 2px,transparent 2px 18px),linear-gradient(180deg,rgba(13,31,53,.76),rgba(4,9,17,.88)); box-shadow:inset 0 0 24px rgba(98,215,255,.06); }
.twp-ops-column-a{left:2.5%;transform:perspective(520px) rotateY(15deg)}.twp-ops-column-b{right:2.5%;transform:perspective(520px) rotateY(-15deg)}
.twp-ops-line { left:11%; right:11%; height:1px; background:linear-gradient(90deg,transparent,rgba(98,215,255,.76),transparent); box-shadow:0 0 13px rgba(98,215,255,.5); animation:twp-ops-scan 5.4s ease-in-out infinite; }
.twp-ops-line-a{top:18%}.twp-ops-line-b{bottom:18%;animation-delay:-2.7s}
.twp-ops-status { left:2.7%; bottom:8%; display:grid!important; grid-template-columns:auto 1fr; gap:4px 7px; align-items:center; min-width:100px; padding:9px 10px; border:1px solid rgba(98,215,255,.24); background:rgba(4,10,19,.86); }
.twp-ops-status i{grid-row:1/3;width:7px;height:7px;border-radius:50%;background:#62d7ff;box-shadow:0 0 14px #62d7ff;animation:twp-live 1.55s ease-in-out infinite}.twp-ops-status b{font-size:.45rem;letter-spacing:.12em}.twp-ops-status em{color:rgba(197,240,255,.5);font-size:.38rem;font-style:normal;letter-spacing:.11em}
.twp-ops-pulse { left:50%; top:50%; width:66%; aspect-ratio:1; border:1px solid rgba(98,215,255,.13); border-radius:50%; transform:translate(-50%,-50%); animation:twp-studio-pulse 4.5s ease-out infinite; }

.theme-peel.is-entering .twp-scene { animation:twp-scene-page-enter var(--twp-speed) cubic-bezier(.16,.78,.2,1); }
.theme-firewall.is-entering .twp-scene { animation:twp-scene-shutter-enter var(--twp-speed) cubic-bezier(.16,.78,.2,1); }
.theme-varrow.is-entering .twp-scene { animation:twp-scene-retail-enter var(--twp-speed) cubic-bezier(.16,.78,.2,1); }
.theme-cup.is-entering .twp-scene { animation:twp-scene-stadium-enter var(--twp-speed) cubic-bezier(.16,.78,.2,1); }
.theme-ludivara.is-entering .twp-scene { animation:twp-scene-orbit-enter var(--twp-speed) cubic-bezier(.16,.78,.2,1); }
.theme-studio.is-entering .twp-scene { animation:twp-scene-studio-enter var(--twp-speed) cubic-bezier(.16,.78,.2,1); }
.twp-frame::after {
  content: "";
  position: absolute;
  z-index: 5;
  top: -35%;
  bottom: -35%;
  width: 20%;
  left: -34%;
  pointer-events: none;
  background: linear-gradient(90deg,transparent,rgba(255,255,255,.17),transparent);
  transform: skewX(-15deg);
  animation: twp-glass-sweep 5.6s ease-in-out infinite;
}
.twp-frame-brand,
.twp-frame-live {
  position: absolute;
  z-index: 7;
  top: 17px;
  color: #fff;
  text-shadow: 0 2px 12px rgba(0,0,0,.82);
  letter-spacing: .16em;
}
.twp-frame-brand { left: 18px; font-size: clamp(.68rem,.9vw,.9rem); font-weight: 860; }
.twp-frame-live { right: 18px; display:flex;align-items:center;gap:7px;font-size:clamp(.48rem,.6vw,.62rem);font-weight:720;color:rgba(255,255,255,.76); }
.twp-frame-live i { width:6px;height:6px;border-radius:50%;background:rgb(var(--twp-accent-rgb));box-shadow:0 0 12px rgb(var(--twp-accent-rgb));animation:twp-live 1.55s ease-in-out infinite; }
.twp-gallery.is-transitioning .twp-stage::before,
.twp-gallery.is-transitioning .twp-stage::after { animation: twp-portal-react var(--twp-speed) cubic-bezier(.16,.78,.2,1); }
.twp-gallery.is-transitioning .twp-floor-reflection { animation: twp-floor-travel var(--twp-speed) cubic-bezier(.18,.78,.2,1); }
.twp-gallery[data-direction="next"].is-transitioning .twp-world.is-entering .twp-frame { animation: twp-frame-enter-next var(--twp-speed) cubic-bezier(.14,.78,.16,1); }
.twp-gallery[data-direction="prev"].is-transitioning .twp-world.is-entering .twp-frame { animation: twp-frame-enter-prev var(--twp-speed) cubic-bezier(.14,.78,.16,1); }
.twp-gallery[data-direction="next"].is-transitioning .twp-world.is-leaving .twp-frame { animation: twp-frame-leave-next var(--twp-speed) cubic-bezier(.5,.04,.52,.96); }
.twp-gallery[data-direction="prev"].is-transitioning .twp-world.is-leaving .twp-frame { animation: twp-frame-leave-prev var(--twp-speed) cubic-bezier(.5,.04,.52,.96); }
.twp-flow-signal {
  position: absolute;
  z-index: 40;
  top: 48%;
  left: 50%;
  display: grid;
  grid-template-columns: auto auto;
  align-items: baseline;
  gap: 13px;
  min-width: 230px;
  padding: 14px 18px 18px;
  color: #fff;
  background: linear-gradient(110deg,rgba(6,8,11,.9),rgba(6,8,11,.48));
  border: 1px solid rgba(var(--twp-accent-rgb),.5);
  box-shadow: 0 18px 60px rgba(0,0,0,.52),0 0 44px rgba(var(--twp-accent-rgb),.13);
  backdrop-filter: blur(18px);
  opacity: 0;
  pointer-events: none;
  transform: translate(-50%,-50%) perspective(700px) rotateY(-16deg) translateZ(-80px) scale(.86);
}
.twp-flow-signal span { color:rgb(var(--twp-accent-rgb));font-size:.62rem;font-weight:820;letter-spacing:.22em; }
.twp-flow-signal b { font-size:clamp(.95rem,1.4vw,1.28rem);letter-spacing:-.025em;white-space:nowrap; }
.twp-flow-signal i { grid-column:1/-1;height:2px;background:linear-gradient(90deg,rgb(var(--twp-accent-rgb)),transparent);transform-origin:left; }
.twp-gallery.is-transitioning .twp-flow-signal { animation:twp-flow-signal var(--twp-speed) cubic-bezier(.16,.76,.2,1); }

body[data-exit-theme="peel"] .twp-page-transition-art { clip-path: polygon(0 7%,93% 0,100% 88%,8% 100%); }
body[data-exit-theme="firewall"] .twp-page-transition-art { clip-path: polygon(4% 0,96% 0,100% 100%,0 92%); }
body[data-exit-theme="varrow"] .twp-page-transition-art { border-radius: 2px 34px 2px 34px; }
body[data-exit-theme="cup"] .twp-page-transition-art { clip-path: polygon(7% 0,100% 0,93% 100%,0 100%); }
body[data-exit-theme="ludivara"] .twp-page-transition-art { border-radius: 42% 10% 42% 10%; }
body[data-exit-theme="studio"] .twp-page-transition-art { clip-path: polygon(8% 0,92% 0,100% 14%,100% 86%,92% 100%,8% 100%,0 86%,0 14%); }

@keyframes twp-paper-breathe { from{transform:rotate(4deg) translateY(-1%)} to{transform:rotate(6deg) translateY(1.5%)} }
@keyframes twp-story-dot { from{opacity:.42;transform:scale(.72)} to{opacity:1;transform:scale(1.45)} }
@keyframes twp-lamp-warmth { from{opacity:.55} to{opacity:1} }
@keyframes twp-grid-shift { to{background-position:34px 34px} }
@keyframes twp-defense-pulse { 0%,100%{opacity:.38;transform:scale(.72)} 50%{opacity:1;transform:scale(1.45)} }
@keyframes twp-merch-glint { 0%,100%{opacity:.35;filter:brightness(.8)} 52%{opacity:1;filter:brightness(1.7)} }
@keyframes twp-tag-pulse { from{box-shadow:0 0 8px rgba(130,232,197,.08)} to{box-shadow:0 0 24px rgba(130,232,197,.3)} }
@keyframes twp-store-scan { 0%,100%{opacity:.32;transform:scaleX(.72)} 50%{opacity:1;transform:scaleX(1)} }
@keyframes twp-floodlight { from{opacity:.35;filter:blur(6px)} to{opacity:.92;filter:blur(2px)} }
@keyframes twp-intel-orbit { to{transform:translate(-50%,-50%) rotateX(68deg) rotateZ(360deg)} }
@keyframes twp-node-ping { 0%,100%{opacity:.35;transform:scale(.7)} 50%{opacity:1;transform:scale(1.6)} }
@keyframes twp-card-float { from{transform:translateY(5px) rotate(-1deg)} to{transform:translateY(-5px) rotate(1deg)} }
@keyframes twp-ops-scan { 0%,100%{opacity:.22;transform:scaleX(.64)} 50%{opacity:1;transform:scaleX(1)} }
@keyframes twp-studio-pulse { 0%{opacity:.7;transform:translate(-50%,-50%) scale(.45)} 100%{opacity:0;transform:translate(-50%,-50%) scale(1.28)} }

@keyframes twp-scene-page-enter { 0%{opacity:0;transform:perspective(700px) rotateY(12deg) translateX(7%)} 100%{opacity:1;transform:none} }
@keyframes twp-scene-shutter-enter { 0%{opacity:0;clip-path:inset(0 44%)} 48%{opacity:1} 100%{clip-path:inset(0)} }
@keyframes twp-scene-retail-enter { 0%{opacity:0;filter:brightness(.3);transform:translateY(-4%)} 65%{filter:brightness(1.35)} 100%{opacity:1;filter:none;transform:none} }
@keyframes twp-scene-stadium-enter { 0%{opacity:0;filter:brightness(2.4);transform:scale(1.08)} 45%{opacity:1} 100%{filter:none;transform:none} }
@keyframes twp-scene-orbit-enter { 0%{opacity:0;transform:scale(.62) rotate(-18deg)} 100%{opacity:1;transform:none} }
@keyframes twp-scene-studio-enter { 0%{opacity:0;clip-path:inset(48% 0)} 100%{opacity:1;clip-path:inset(0)} }

@keyframes twp-gallery-drift {
  0% { transform: translate3d(calc((var(--pointer-x) * 12px) - 15px),calc((var(--pointer-y) * 8px) - 6px),0) rotateY(-.65deg) scale(1.012); }
  100% { transform: translate3d(calc((var(--pointer-x) * 12px) + 15px),calc((var(--pointer-y) * 8px) + 6px),0) rotateY(.65deg) scale(1.032); }
}
@keyframes twp-storm-vortex {
  from { transform:scale(1.1) rotate(0deg); }
  to { transform:scale(1.16) rotate(360deg); }
}
@keyframes twp-storm-room {
  0% { transform:perspective(1200px) translate3d(-1.5%,0,-20px) rotateY(-1.5deg) scale(.99); }
  50% { transform:perspective(1200px) translate3d(1.5%,-.5%,34px) rotateY(1.5deg) scale(1.025); }
  100% { transform:perspective(1200px) translate3d(-1.5%,0,-20px) rotateY(-1.5deg) scale(.99); }
}
@keyframes twp-storm-focus {
  0% { opacity:.72;transform:translate3d(7%,1%,-42px) rotateY(-4deg) scale(.94);filter:blur(2px) brightness(.78); }
  58% { opacity:1;filter:blur(0) brightness(1.18); }
  100% { opacity:1;transform:translate3d(calc(var(--pointer-x) * -5px),calc(var(--pointer-y) * -3px),34px) rotateY(0) scale(1);filter:none; }
}
@keyframes twp-storm-release {
  from { opacity:1;transform:translateZ(34px) scale(1);filter:none; }
  to { opacity:.18;transform:translate3d(-9%,0,-54px) rotateY(5deg) scale(.9);filter:blur(3px) brightness(.64); }
}
@keyframes twp-storm-slice {
  0% { opacity:0;transform:translateX(-180%) skewX(-10deg); }
  12%,62% { opacity:.38; }
  100% { opacity:0;transform:translateX(680%) skewX(8deg); }
}
@keyframes twp-storm-settle {
  0% { transform:perspective(1200px) translateZ(56px) rotateY(2.2deg) scale(1.035);filter:brightness(1.16); }
  62% { transform:perspective(1200px) translateZ(-10px) rotateY(-.5deg) scale(.992); }
  100% { transform:translateZ(0) rotateY(0) scale(1.012);filter:none; }
}
@keyframes twp-storm-lock {
  0% { transform:translate3d(2%,-1%,62px) scale(1.045);filter:brightness(1.18); }
  100% { transform:translate3d(calc(var(--pointer-x) * -5px),calc(var(--pointer-y) * -3px),34px) scale(1);filter:none; }
}
@keyframes twp-horizon-travel { from{background-position:0 0,0 0} to{background-position:0 48px,66px 0} }
@keyframes twp-aurora-drift { from{opacity:.44;transform:translateX(-51%) rotate(-4deg) scaleX(1.03)} to{opacity:.88;transform:translateX(-49%) rotate(4deg) scaleX(1.2)} }
@keyframes twp-shadow-drift { from{transform:translateX(-1.2%) scale(1.08)} to{transform:translateX(1.2%) scale(1.11)} }
@keyframes twp-live-room { 0%{transform:perspective(1200px) rotateY(-.35deg) scale(1.006);filter:brightness(.94)} 55%{filter:brightness(1.07)} 100%{transform:perspective(1200px) rotateY(.45deg) scale(1.026);filter:brightness(1)} }
@keyframes twp-live-frame { 0%{transform:translate3d(-7px,4px,34px) scale(.996)} 100%{transform:translate3d(9px,-5px,48px) scale(1.017)} }
@keyframes twp-room-pre-exit { from{transform:scale(1.026);filter:brightness(1)} to{transform:scale(1.012);filter:brightness(.82) saturate(.88)} }
@keyframes twp-veil-visible { 0%,100%{opacity:0} 9%,82%{opacity:1} }
@keyframes twp-veil-travel { 0%{opacity:0;transform:translateX(-125%) skewX(-8deg) rotateY(10deg)} 15%{opacity:1} 53%{opacity:1;transform:translateX(40%) skewX(-2deg) rotateY(0)} 100%{opacity:0;transform:translateX(245%) skewX(8deg) rotateY(-10deg)} }
@keyframes twp-auto-progress { from { transform:scaleX(0); } to { transform:scaleX(1); } }
@keyframes twp-rail-drift { from { opacity:.18;filter:drop-shadow(0 0 7px rgba(var(--twp-accent-rgb),.15)); } to { opacity:.72;filter:drop-shadow(0 0 22px rgba(var(--twp-accent-rgb),.44)); } }
@keyframes twp-floor-pulse { from { opacity:.34;transform:translateX(-50%) perspective(580px) rotateX(66deg) scale(.94); } to { opacity:.7;transform:translateX(-50%) perspective(580px) rotateX(66deg) scale(1.05); } }
@keyframes twp-floor-travel { 0% { opacity:.3;transform:translateX(-53%) perspective(580px) rotateX(66deg) scale(.94); } 45% { opacity:.9;transform:translateX(-47%) perspective(580px) rotateX(66deg) scale(1.08); } 100% { opacity:.46;transform:translateX(-50%) perspective(580px) rotateX(66deg) scale(1); } }
@keyframes twp-dust { from { transform:translate3d(0,0,0); } to { transform:translate3d(-60px,34px,0); } }
@keyframes twp-wall-light { from { opacity:.58;transform:translateX(-1.5%); } to { opacity:1;transform:translateX(1.5%); } }
@keyframes twp-glass-sweep { 0%,54% { left:-34%;opacity:0; } 66% { opacity:.74; } 84%,100% { left:118%;opacity:0; } }
@keyframes twp-live { 0%,100% { opacity:.45;transform:scale(.78); } 50% { opacity:1;transform:scale(1.3); } }
@keyframes twp-portal-react { 0%,100% { filter:brightness(1); } 42% { filter:brightness(1.55);box-shadow:0 0 70px rgba(var(--twp-accent-rgb),.24); } }
@keyframes twp-frame-enter-next { 0% { opacity:.05;transform:translate3d(18%,2%,-120px) rotateY(-9deg) scale(.86);filter:blur(9px) brightness(.55); } 62% { opacity:1;filter:blur(0) brightness(1.12); } 100% { transform:translate3d(calc(var(--pointer-x) * -5px),calc(var(--pointer-y) * -3px),34px) rotateY(0) scale(1);filter:saturate(1.04); } }
@keyframes twp-frame-enter-prev { 0% { opacity:.05;transform:translate3d(-18%,2%,-120px) rotateY(9deg) scale(.86);filter:blur(9px) brightness(.55); } 62% { opacity:1;filter:blur(0) brightness(1.12); } 100% { transform:translate3d(calc(var(--pointer-x) * -5px),calc(var(--pointer-y) * -3px),34px) rotateY(0) scale(1);filter:saturate(1.04); } }
@keyframes twp-frame-leave-next { 0% { opacity:1;transform:translateZ(34px) scale(1); } 100% { opacity:0;transform:translate3d(-22%,0,-120px) rotateY(10deg) scale(.82);filter:blur(8px); } }
@keyframes twp-frame-leave-prev { 0% { opacity:1;transform:translateZ(34px) scale(1); } 100% { opacity:0;transform:translate3d(22%,0,-120px) rotateY(-10deg) scale(.82);filter:blur(8px); } }
@keyframes twp-flow-signal { 0%,15% { opacity:0;transform:translate(-50%,-50%) perspective(700px) rotateY(-16deg) translateZ(-80px) scale(.86); } 34%,63% { opacity:1;transform:translate(-50%,-50%) perspective(700px) rotateY(0) translateZ(0) scale(1); } 100% { opacity:0;transform:translate(-50%,-53%) perspective(700px) rotateY(12deg) translateZ(70px) scale(1.08); } }

@keyframes twp-grain { 0%{transform:translate(0)} 25%{transform:translate(2%,-1%)} 50%{transform:translate(-1%,2%)} 75%{transform:translate(1%,1%)} }
@keyframes twp-breathe { from{opacity:.32;transform:skewX(-9deg) translateY(-2%)} to{opacity:.66;transform:skewX(-5deg) translateY(3%)} }
@keyframes twp-fall { from{top:-6%;transform:rotate(0) translateX(0)} to{top:106%;transform:rotate(500deg) translateX(80px)} }
@keyframes twp-radar { to{transform:translate(-50%,-50%) rotate(360deg)} }
@keyframes twp-scan { 0%{top:18%;opacity:0} 18%{opacity:1} 82%{opacity:1} 100%{top:82%;opacity:0} }
@keyframes twp-score { from{transform:scale(.4);opacity:.9} to{transform:scale(7);opacity:0} }
@keyframes twp-orbit { to{transform:rotateX(68deg) rotateZ(367deg)} }
@keyframes twp-blink { 0%,100%{opacity:.3;transform:scale(.7)} 50%{opacity:1;transform:scale(1.5)} }
@keyframes twp-studio { 0%,100%{transform:rotate(0) scale(1)} 50%{transform:rotate(4deg) scale(1.04)} }
@keyframes twp-occlude { 0%{left:-34vw;opacity:0;transform:perspective(900px) rotateY(26deg) skewX(-2deg) scaleX(.78)} 12%{opacity:1} 50%{left:38vw;opacity:1;transform:perspective(900px) rotateY(-2deg) skewX(0) scaleX(1.08)} 100%{left:112vw;opacity:0;transform:perspective(900px) rotateY(-24deg) skewX(2deg) scaleX(.82)} }
@keyframes twp-camera-next { 0%{transform:translateX(0) translateZ(0) rotateY(0) scale(1)} 46%{transform:translateX(-7%) translateZ(54px) rotateY(3.8deg) scale(.965)} 100%{transform:translateX(0) translateZ(0) rotateY(0) scale(1.012)} }
@keyframes twp-camera-prev { 0%{transform:translateX(0) translateZ(0) rotateY(0) scale(1)} 46%{transform:translateX(7%) translateZ(54px) rotateY(-3.8deg) scale(.965)} 100%{transform:translateX(0) translateZ(0) rotateY(0) scale(1.012)} }
@keyframes twp-room-settle { 0%{filter:brightness(.56) blur(7px);transform:scale(.96)} 58%{filter:brightness(1.12) blur(0);transform:scale(1.015)} 100%{filter:brightness(1);transform:scale(1)} }
@keyframes twp-art-alive { 0%{transform:scale(1.045) translate3d(-.7%,.3%,0)} 100%{transform:scale(1.105) translate3d(.75%,-.55%,0)} }
@keyframes twp-copy-settle { 0%{opacity:.15;transform:translateY(14px)} 100%{opacity:1;transform:translateY(0)} }
@keyframes twp-depart-layer { 0%{opacity:0} 14%,100%{opacity:1} }
@keyframes twp-depart-glow { 0%{opacity:0;transform:scale(.35)} 62%{opacity:1} 100%{opacity:.3;transform:scale(3.2)} }
@keyframes twp-depart-art { 0%{transform:perspective(1200px) translateZ(-500px) rotateY(-12deg) scale(.62);filter:brightness(.72) saturate(.8)} 58%{transform:perspective(1200px) translateZ(80px) rotateY(0) scale(1.04);filter:brightness(1.1) saturate(1.05)} 100%{transform:perspective(1200px) translateZ(620px) rotateY(0) scale(1.9);filter:brightness(.2) blur(7px);opacity:0} }
@keyframes twp-depart-ring { 0%{transform:scale(0);opacity:0} 28%{opacity:1} 100%{transform:scale(8);opacity:0} }
@keyframes twp-depart-word { 0%,38%{opacity:0;transform:translateY(18px)} 58%,84%{opacity:1;transform:translateY(0)} 100%{opacity:0;transform:translateY(-6px)} }

@media (max-width:900px) {
  .twp-gallery { min-height:580px; padding-inline:max(14px,env(safe-area-inset-left)); }
  .twp-gallery::before { background-size:auto 104%; }
  .twp-gallery-title>span:first-child { display:none; }
  .twp-gallery-title { min-width: 0; gap: 13px; }
  .twp-auto-progress { width: 58px; }
  .twp-stage { perspective:980px; }
  .twp-world { top:6%; bottom:5%; width:min(88vw,740px); transform:translateX(calc(-50% + (var(--offset) * 84vw))) translateZ(-180px) rotateY(calc(var(--offset) * -16deg)) scale(.8); }
  .twp-world.is-near { opacity:.24; }
  .twp-frame { width:88%; }
  .twp-sconce { transform:scale(.76); }
  .twp-arrow { top:53%; width:46px; height:46px; }
  .twp-arrow-prev { left:0; } .twp-arrow-next { right:0; }
  .twp-info { width:92vw; gap:18px; }
  .twp-description { max-width:62vw; }
  .twp-enter { gap:8px; padding-left:15px; }
  .twp-enter span { max-width:94px; line-height:1.2; }
  .twp-rail { width:92vw; }
  .twp-rail b { font-size:.6rem; }
  .twp-hint { display:none; }
}
@media (max-width:620px) {
  .twp-gallery { min-height:530px; padding-top:max(14px,env(safe-area-inset-top)); padding-bottom:max(12px,env(safe-area-inset-bottom)); }
  .twp-logo { font-size:.7rem; } .twp-logo img { width:27px;height:27px; }
  .twp-stage { margin-inline:-14px; }
  .twp-stage::before,.twp-stage::after { width:30px;opacity:.76; }
  .twp-gallery::before { inset:-1%;background-size:auto 100%;filter:brightness(.6) saturate(.76) contrast(1.08); }
  .twp-gallery.is-storm-tour::after { opacity:.2;filter:blur(36px) saturate(1.15); }
  .twp-gallery.is-storm-tour .twp-room { animation-duration:900ms; }
  .twp-gallery.is-storm-tour .twp-transition-veil { opacity:.07; }
  .twp-gallery.is-storm-tour .twp-transition-veil > span { width:28vw;filter:blur(7px); }
  .twp-world { top:4%;bottom:3%;width:94vw; }
  .twp-world.is-near { opacity:.1;pointer-events:none; }
  .twp-wall { place-items:start center;border-inline:0;padding-top:14%; } .twp-wall::after { height:12%; }
  .twp-frame { width:91%;aspect-ratio:16/9;border-width:8px; }
  .twp-frame img { object-fit:contain;background:#050606; }
  .twp-exhibit-plaque { top:52%;right:5%;bottom:auto;width:auto;max-width:150px;padding:8px 9px;transform:translate3d(10px,0,18px); }
  .twp-world.is-active .twp-exhibit-plaque { transform:translate3d(0,0,18px); }
  .twp-exhibit-plaque span { display:none; }
  .twp-scene { opacity:.08; }
  .twp-sconce { top:2%; } .twp-sconce-left{left:3%}.twp-sconce-right{right:3%}
  .twp-arrow { top:51%;width:42px;height:42px;background:rgba(5,7,10,.7); }
  .twp-arrow-prev{left:8px}.twp-arrow-next{right:8px}
  .twp-info { grid-template-columns:minmax(0,1fr) auto;width:100%;padding-bottom:10px; }
  .twp-kicker { margin-bottom:5px;font-size:.57rem; }
  .twp-info h1 { font-size:clamp(1.85rem,9vw,2.65rem); }
  .twp-description { display:none; }
  .twp-enter { min-height:46px;padding-left:14px;font-size:.7rem; }
  .twp-enter i { width:34px;height:34px; }
  .twp-rail { width:100%;gap:0; }
  .twp-rail button { padding-top:11px;text-align:center; }
  .twp-rail b { display:none; } .twp-rail span { font-size:.65rem; }
  .twp-art-sub { display:none; }
  .twp-frame-label { right:10px;bottom:9px;left:10px;font-size:.54rem; }
  .twp-frame-brand { top:10px;left:10px;font-size:.57rem; }
  .twp-frame-live { top:10px;right:10px;font-size:.42rem;letter-spacing:.1em; }
  .twp-frame-live i { width:5px;height:5px; }
  .twp-auto-progress { width:42px; }
  .twp-flow-signal { top:47%;min-width:190px;padding:11px 14px 14px;gap:9px; }
  .twp-flow-signal b { font-size:.85rem; }
  .twp-occluder { width:44vw; }
  .twp-paper-stack,.twp-defense-readout,.twp-retail-shelf,.twp-roadmap-card,.twp-ops-column { opacity:.58; }
  .twp-paper-stack { width:20%;height:23%; }
  .twp-retail-shelf { width:12%;height:49%; }
  .twp-price-tag,.twp-scoreboard,.twp-ops-status { transform:scale(.76);transform-origin:bottom center; }
  .twp-roadmap-card { min-width:64px;padding:6px;font-size:.36rem; }
}
@media (max-height:720px) and (min-width:700px) {
  .twp-gallery { min-height:540px;padding-top:14px;padding-bottom:12px; }
  .twp-stage { min-height:300px; }
  .twp-world { top:2%;bottom:1%;width:min(60vw,860px); }
  .twp-info { padding-bottom:8px; } .twp-description { margin-top:6px; } .twp-rail button { padding-top:9px; }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto!important; }
  .twp-gallery { --twp-speed: 620ms; }
  .twp-room { animation-duration:18s; }
  .twp-world { transition-duration:620ms,420ms,420ms; }
  .twp-world.is-active .twp-frame img { animation-duration:16s; }
  .twp-light,.twp-aurora,.twp-architectural-shadow,.twp-ceiling-rail,.twp-floor-reflection { animation-duration:14s; }
  .twp-depth-horizon { animation-duration:16s;opacity:.46; }
  .twp-grain,.twp-motif { opacity:.05; }
  .twp-occluder { display:none; }
  .twp-gallery.is-scene-live:not(.is-transitioning) .twp-world.is-active .twp-wall,
  .twp-gallery.is-scene-live:not(.is-transitioning) .twp-world.is-active .twp-frame { animation-duration:7s; }
  .twp-gallery.is-transitioning .twp-transition-veil > span { animation-duration:620ms; }
  .twp-flow-signal { display:none; }
  .twp-gallery.is-storm-tour::after { opacity:.16; }
}
