/* Layout: one deep-space stage (hero) -> 2-up collection grid -> quiet about/support strip. Product = split view, sticky art + purchase column. */
:root {
  --bg: #050507;
  --bg-2: #0a0a10;
  --ink: #eeedf5;
  --mute: #8d8a9e;
  --faint: #55526a;
  --line: rgba(176, 160, 255, 0.10);
  --violet: #8b5cff;
  --violet-hi: #b8a0ff;
  --blue: #2335ff;
  --deep: #0b1166;
  --f-display: "Michroma", "Eurostile", "Arial Black", system-ui, sans-serif;
  --f-body: "Geist", "Geist Sans", "Helvetica Neue", Arial, system-ui, sans-serif;
  --f-mono: "Geist Mono", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;
  --f-pixel: "Silkscreen", "Geist Mono", ui-monospace, monospace;
  --gut: max(16px, env(safe-area-inset-left, 0px));
  --gut-r: max(16px, env(safe-area-inset-right, 0px));
  --wrap: 1240px;
  --ease: cubic-bezier(.2, .7, .2, 1);
  color-scheme: dark;
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }
html { scroll-behavior: smooth; background: var(--bg); }
body {
  margin: 0;
  background: transparent;
  color: var(--ink);
  font: 400 15px/1.6 var(--f-body);
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
body::before { content: ""; position: fixed; inset: 0 0 auto; height: env(safe-area-inset-top, 0px); z-index: 60; background: var(--bg); }
/* film grain */
body::after {
  content: ""; position: fixed; inset: -50%; z-index: 80; pointer-events: none; opacity: .09; mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  animation: grain 1.2s steps(3) infinite;
}
@keyframes grain { 0% { transform: translate(0, 0) } 33% { transform: translate(-3%, 2%) } 66% { transform: translate(2%, -3%) } }

a { color: inherit; text-decoration: none; }
img, video { display: block; max-width: 100%; }
button { font: inherit; color: inherit; background: none; border: 0; cursor: pointer; padding: 0; }
:focus-visible { outline: 1px solid var(--violet-hi); outline-offset: 3px; }
.mono { font-family: var(--f-mono); font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--mute); }
.wrap { max-width: var(--wrap); margin: 0 auto; padding-left: var(--gut); padding-right: var(--gut-r); }

/* ---------- NAV ---------- */
.nav {
  position: fixed; top: env(safe-area-inset-top, 0px); left: 0; right: 0; z-index: 50;
  transition: background .4s, border-color .4s, backdrop-filter .4s;
  border-bottom: 1px solid transparent;
}
.nav.scrolled { background: rgba(5, 5, 7, .72); backdrop-filter: blur(14px) saturate(140%); -webkit-backdrop-filter: blur(14px) saturate(140%); border-bottom-color: var(--line); }
.nav-in { display: flex; align-items: center; justify-content: space-between; height: 64px; gap: 16px; }
.logo { font-family: var(--f-display); font-size: 13px; letter-spacing: .16em; display: flex; align-items: center; gap: 10px; white-space: nowrap; }
.logo i { width: 7px; height: 7px; background: var(--violet); box-shadow: 0 0 12px var(--violet); border-radius: 50%; display: block; }
.logo b { font-weight: 400; color: var(--mute); }
.nav-links { display: flex; align-items: center; gap: 0; font-family: var(--f-mono); font-size: 11px; letter-spacing: .16em; }
.nav-links a { color: var(--mute); padding: 8px 14px; transition: color .25s; }
.nav-links a:hover, .nav-links a[aria-current="true"] { color: var(--ink); }
.nav-links span { color: var(--faint); }

/* ---------- HERO ---------- */
.hero { position: relative; min-height: clamp(640px, 94svh, 960px); display: grid; place-items: end center; overflow: clip; overflow-clip-margin: 0; isolation: isolate; }
.stage { position: absolute; inset: 0; z-index: -1; pointer-events: none; }
.layer { position: absolute; inset: 0; will-change: transform; }
.halo-blue { background: radial-gradient(40% 40% at 50% 40%, rgba(35, 53, 255, .24), transparent 70%); }
.halo-violet { background: radial-gradient(26% 30% at 52% 44%, rgba(139, 92, 255, .38), transparent 70%); }
.horizon { display: none; }
.cup-layer { display: grid; place-items: start center; padding-top: clamp(70px, 9vh, 110px); }
.cup-tilt { perspective: 1200px; }
.cup {
  position: relative; width: min(64vh, 640px, 92vw); aspect-ratio: 1;
  animation: float 7s ease-in-out infinite;
  filter: drop-shadow(0 30px 60px rgba(60, 30, 200, .45)) drop-shadow(0 0 40px rgba(139, 92, 255, .25));
}
.cup video, .cup img { width: 100%; height: 100%; object-fit: contain; }
.cup-shadow { position: absolute; left: 22%; right: 22%; bottom: 1%; height: 7%; border-radius: 50%; background: radial-gradient(closest-side, rgba(0, 0, 0, .8), transparent); filter: blur(8px); animation: shadow 7s ease-in-out infinite; z-index: -1; }
@keyframes float { 0%, 100% { transform: translateY(0) } 50% { transform: translateY(-14px) } }
@keyframes shadow { 0%, 100% { transform: scaleX(1); opacity: .9 } 50% { transform: scaleX(.86); opacity: .6 } }
.brackets { position: absolute; inset: 8%; }
.brackets i { position: absolute; width: 14px; height: 14px; border-color: rgba(184, 160, 255, .35); border-style: solid; border-width: 0; }
.brackets i:nth-child(1) { left: 0; top: 0; border-left-width: 1px; border-top-width: 1px; }
.brackets i:nth-child(2) { right: 0; top: 0; border-right-width: 1px; border-top-width: 1px; }
.brackets i:nth-child(3) { left: 0; bottom: 0; border-left-width: 1px; border-bottom-width: 1px; }
.brackets i:nth-child(4) { right: 0; bottom: 0; border-right-width: 1px; border-bottom-width: 1px; }

.hero-copy { position: relative; text-align: center; padding: 0 var(--gut-r) clamp(56px, 9vh, 96px) var(--gut); display: grid; justify-items: center; gap: 22px; max-width: 1200px; }
.hero-copy::before { content: ""; position: absolute; inset: -10% -6% 0; z-index: -1; background: radial-gradient(50% 55% at 50% 60%, rgba(5, 5, 7, .78), transparent 75%); }
.hero h1 {
  font-family: var(--f-display); font-weight: 400; margin: 0;
  font-size: clamp(20px, 2.95vw, 48px); line-height: 1.18; letter-spacing: .02em; text-wrap: balance;
  text-shadow: 0 0 30px rgba(5, 5, 7, .9), 0 0 2px rgba(5, 5, 7, .8);
}
.hero h1 .l1, .hero h1 .l2 { display: block; }
@media (min-width: 700px) { .hero h1 .l1, .hero h1 .l2 { white-space: nowrap; } }
.hero h1 .l2 { color: transparent; background: linear-gradient(90deg, #d9ceff, var(--violet-hi) 40%, #8f9bff); -webkit-background-clip: text; background-clip: text; text-shadow: none; filter: drop-shadow(0 0 24px rgba(139, 92, 255, .35)); }
.lede { margin: 0; max-width: 46ch; color: #b6b3c6; font-size: clamp(14px, 1.3vw, 17px); text-wrap: balance; }
.hud { position: absolute; bottom: 28px; font-family: var(--f-mono); font-size: 10px; letter-spacing: .18em; color: var(--faint); text-transform: uppercase; }
.hud-l { left: max(28px, env(safe-area-inset-left, 0px)); }
.hud-r { right: max(28px, env(safe-area-inset-right, 0px)); text-align: right; }

/* ---------- BUTTONS ---------- */
.btn {
  --bc: var(--violet);
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  height: 48px; padding: 0 26px; font-family: var(--f-mono); font-size: 12px; letter-spacing: .18em; text-transform: uppercase;
  border: 1px solid var(--bc); color: var(--ink); border-radius: 2px; position: relative;
  transition: background .3s, box-shadow .3s, color .3s, border-color .3s;
}
.btn.primary { background: linear-gradient(180deg, rgba(139, 92, 255, .28), rgba(139, 92, 255, .10)); box-shadow: 0 0 0 0 rgba(139, 92, 255, 0), inset 0 1px 0 rgba(255, 255, 255, .12); }
.btn.primary:hover { background: var(--violet); box-shadow: 0 0 40px -6px rgba(139, 92, 255, .8); }
.btn.solid { background: var(--ink); color: #08070c; border-color: var(--ink); font-weight: 500; }
.btn.solid:hover { background: #fff; box-shadow: 0 0 36px -4px var(--p, var(--violet)); }
.btn[disabled] { opacity: .6; cursor: progress; }
.btn .arr { transition: transform .3s var(--ease); }
.btn:hover .arr { transform: translateY(2px); }

/* ---------- COLLECTION ---------- */
.collection { padding-block: clamp(72px, 10vw, 128px) clamp(64px, 8vw, 110px); scroll-margin-top: 40px; }
.sec-head { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; flex-wrap: wrap; padding-bottom: 22px; border-bottom: 1px solid var(--line); margin-bottom: clamp(28px, 4vw, 48px); }
.sec-head h2 { font-family: var(--f-display); font-weight: 400; font-size: clamp(18px, 2.2vw, 28px); letter-spacing: .08em; margin: 0; }
.grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(28px, 4vw, 56px) clamp(20px, 3vw, 40px); }

.card { --p: var(--violet); display: grid; gap: 22px; min-width: 0; }
.art {
  position: relative; display: block; overflow: hidden; aspect-ratio: 1 / 1; max-width: 100%;
  background: var(--bg-2); border-radius: 2px; outline: 1px solid var(--line); outline-offset: -1px;
  transition: box-shadow .5s var(--ease), outline-color .5s;
}
.art img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.1s var(--ease), filter .6s; }
.art .scan { position: absolute; inset: 0; z-index: 3; pointer-events: none; background: repeating-linear-gradient(0deg, rgba(0, 0, 0, .18) 0 1px, transparent 1px 3px); opacity: .35; mix-blend-mode: multiply; }
.art .code { position: absolute; left: 14px; top: 12px; z-index: 4; font-family: var(--f-mono); font-size: 10px; letter-spacing: .2em; color: rgba(255, 255, 255, .7); }
.art .tagchip { position: absolute; right: 14px; top: 12px; z-index: 4; font-family: var(--f-mono); font-size: 10px; letter-spacing: .16em; text-transform: uppercase; color: rgba(255, 255, 255, .7); }
.card:hover .art, .p-art .art:hover { outline-color: color-mix(in srgb, var(--p) 60%, transparent); box-shadow: 0 30px 90px -30px var(--p), 0 0 0 1px color-mix(in srgb, var(--p) 30%, transparent); }
.card:hover .art img, .p-art .art:hover img { transform: scale(1.035); filter: saturate(1.15) brightness(1.06); }
@keyframes glitchA {
  0% { opacity: .85; transform: translateX(-10px); clip-path: inset(12% 0 70% 0); }
  18% { transform: translateX(8px); clip-path: inset(58% 0 22% 0); }
  36% { transform: translateX(-4px); clip-path: inset(32% 0 50% 0); }
  54% { transform: translateX(12px); clip-path: inset(80% 0 6% 0); }
  72% { transform: translateX(-6px); clip-path: inset(4% 0 88% 0); opacity: .5; }
  100% { opacity: 0; clip-path: inset(0); transform: none; }
}
@keyframes glitchB {
  0% { opacity: .7; transform: translateX(9px); clip-path: inset(44% 0 38% 0); }
  20% { transform: translateX(-11px); clip-path: inset(8% 0 76% 0); }
  42% { transform: translateX(6px); clip-path: inset(66% 0 12% 0); }
  64% { transform: translateX(-3px); clip-path: inset(22% 0 64% 0); opacity: .4; }
  100% { opacity: 0; clip-path: inset(0); transform: none; }
}
@keyframes jitter { 0% { transform: scale(1.035) skewX(-1.5deg) } 25% { transform: scale(1.035) translateX(3px) } 50% { transform: scale(1.035) skewX(1deg) } 75%, 100% { transform: scale(1.035) } }

.card-body { display: grid; gap: 14px; min-width: 0; }
.row1 { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.card h3, .p-name { font-family: var(--f-display); font-weight: 400; margin: 0; letter-spacing: .06em; }
.card h3 { font-size: clamp(18px, 1.8vw, 24px); }
.price { font-family: var(--f-mono); font-size: 15px; letter-spacing: .04em; font-variant-numeric: tabular-nums; }
.price small { color: var(--faint); font-size: 10px; letter-spacing: .14em; margin-left: 6px; }
.desc { margin: -4px 0 0; color: var(--mute); max-width: 52ch; }
.tagline { color: var(--p); filter: brightness(1.15); }
.actions { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; }
.actions .btn { flex: 1 1 auto; max-width: 260px; }
.more { font-family: var(--f-mono); font-size: 11px; letter-spacing: .16em; color: var(--mute); text-transform: uppercase; display: inline-flex; gap: 8px; align-items: center; transition: color .25s; }
.more:hover { color: var(--ink); }

/* ---------- PLAYER ---------- */
.player { display: grid; grid-template-columns: 40px minmax(0, 1fr) auto; align-items: center; gap: 14px; padding: 10px 14px 10px 10px; border: 1px solid var(--line); border-radius: 2px; background: rgba(255, 255, 255, .015); }
.play {
  width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; border: 1px solid color-mix(in srgb, var(--p) 55%, transparent);
  transition: background .25s, box-shadow .25s;
}
.play:hover { box-shadow: 0 0 20px -4px var(--p); }
.play svg { width: 12px; height: 12px; fill: var(--ink); }
.play .i-pause { display: none; }
.playing .play { background: var(--p); box-shadow: 0 0 26px -4px var(--p); }
.playing .play svg { fill: #07060b; }
.playing .play .i-play { display: none; }
.playing .play .i-pause { display: block; }
.wave { position: relative; height: 34px; cursor: pointer; min-width: 0; overflow: hidden; }
.bars { position: absolute; inset: 0; display: flex; align-items: center; gap: 2px; }
.ab .bars { gap: 1px; }
.bars i { flex: 1 1 0; min-width: 0; background: rgba(238, 237, 245, .18); border-radius: 1px; }
.bars.on { clip-path: inset(0 calc(100% - var(--prog, 0%)) 0 0); }
.bars.on i { background: var(--p); box-shadow: 0 0 6px color-mix(in srgb, var(--p) 60%, transparent); }
.time { font-family: var(--f-mono); font-size: 11px; color: var(--mute); font-variant-numeric: tabular-nums; min-width: 34px; text-align: right; }
.player.loading .play { animation: pulse 1s ease-in-out infinite; }
@keyframes pulse { 50% { box-shadow: 0 0 22px -2px var(--p); } }

/* ---------- ABOUT / SUPPORT ---------- */
.info { border-top: 0; padding-block: clamp(56px, 8vw, 100px); }
.info-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr); gap: clamp(40px, 7vw, 120px); }
.info h2 { font-family: var(--f-display); font-weight: 400; font-size: 14px; letter-spacing: .16em; margin: 0 0 20px; }
.info p { color: var(--mute); margin: 0 0 14px; max-width: 54ch; }
.info p strong { color: var(--ink); font-weight: 500; }
#about, #support { scroll-margin-top: 90px; }
.faq { border-top: 1px solid var(--line); }
.faq details { border-bottom: 1px solid var(--line); }
.faq summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; gap: 16px; padding: 16px 0; font-size: 15px; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: "+"; font-family: var(--f-mono); color: var(--mute); transition: transform .3s; }
.faq details[open] summary::after { transform: rotate(45deg); color: var(--violet-hi); }
.faq details p { margin: 0 0 18px; }
.contact { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-top: 22px; }
.contact code { font-family: var(--f-mono); font-size: 13px; color: var(--ink); user-select: all; }
.copy { font-family: var(--f-mono); font-size: 10px; letter-spacing: .16em; color: var(--mute); border: 1px solid var(--line); padding: 6px 10px; border-radius: 2px; text-transform: uppercase; }
.copy:hover { color: var(--ink); border-color: var(--violet); }

footer { border-top: 1px solid var(--line); padding-block: 28px calc(28px + env(safe-area-inset-bottom, 0px)); }
.foot { display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; }

/* ---------- PRODUCT VIEW ---------- */
.product { padding-block: 104px clamp(80px, 10vw, 140px); }
.back { display: inline-flex; gap: 10px; margin-bottom: 28px; }
.pgrid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(32px, 5vw, 80px); align-items: start; }
.p-art { position: sticky; top: 88px; }
.p-art .art { box-shadow: 0 40px 120px -50px var(--p); }
.p-info { display: grid; gap: 30px; min-width: 0; }
.p-head { display: grid; gap: 14px; }
.p-name { font-size: clamp(32px, 4.6vw, 64px); line-height: 1; }
.p-long { color: #b3b0c3; margin: 0; max-width: 58ch; }
.buybox { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 18px 18px 18px 22px; border: 1px solid color-mix(in srgb, var(--p) 40%, transparent); background: linear-gradient(90deg, color-mix(in srgb, var(--p) 10%, transparent), transparent 70%); border-radius: 2px; flex-wrap: wrap; }
.buybox .price { font-size: 26px; }
.buybox .btn { min-width: 220px; height: 54px; }
.buynote { margin-top: -18px; }
.block h4 { font-family: var(--f-mono); font-weight: 400; font-size: 11px; letter-spacing: .18em; text-transform: uppercase; color: var(--mute); margin: 0 0 14px; display: flex; justify-content: space-between; gap: 12px; }
.ab { display: grid; gap: 12px; }
.seg { display: inline-grid; grid-template-columns: 1fr 1fr; border: 1px solid var(--line); border-radius: 2px; padding: 3px; gap: 3px; width: max-content; max-width: 100%; }
.seg button { font-family: var(--f-mono); font-size: 11px; letter-spacing: .16em; padding: 9px 16px; color: var(--mute); border-radius: 1px; transition: background .25s, color .25s; }
.seg button[aria-pressed="true"] { background: var(--p); color: #07060b; }
.ab .player { padding: 14px 18px 14px 14px; grid-template-columns: 48px minmax(0, 1fr) auto; }
.ab .play { width: 48px; height: 48px; }
.ab .wave { height: 52px; }
.hint { color: var(--faint); font-size: 13px; margin: 0; }
.chain { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; font-family: var(--f-mono); font-size: 11px; letter-spacing: .08em; }
.chain span { padding: 6px 9px; border: 1px solid var(--line); border-radius: 2px; color: #c9c6d8; white-space: nowrap; }
.chain em { font-style: normal; color: var(--faint); }
.list { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--line); }
.list li { padding: 11px 0; border-bottom: 1px solid var(--line); display: flex; gap: 14px; color: #c9c6d8; }
.list li::before { content: "◇"; color: var(--p); font-size: 11px; line-height: 2.1; }
.compat { width: 100%; border-collapse: collapse; font-size: 14px; }
.compat td { padding: 11px 0; border-bottom: 1px solid var(--line); color: #c9c6d8; }
.compat tr:first-child td { border-top: 1px solid var(--line); }
.compat td:nth-child(2) { font-family: var(--f-mono); font-size: 12px; color: var(--ink); }
.compat td:last-child { text-align: right; color: var(--mute); font-family: var(--f-mono); font-size: 11px; }
.req { color: var(--mute); font-size: 13px; margin: 14px 0 0; }
.next { display: flex; justify-content: space-between; align-items: center; gap: 16px; padding-top: 22px; border-top: 1px solid var(--line); }
.next a { display: flex; align-items: center; gap: 14px; }
.next img { width: 52px; height: 52px; object-fit: cover; border-radius: 2px; }
.next strong { font-family: var(--f-display); font-weight: 400; font-size: 14px; letter-spacing: .08em; display: block; }

.mbar { display: none; }

/* ---------- MODAL ---------- */
.modal { position: fixed; inset: 0; z-index: 90; display: grid; place-items: center; padding: 24px var(--gut-r) 24px var(--gut); background: rgba(3, 3, 5, .72); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); }
.modal-box { width: min(440px, 100%); background: #0c0b12; border: 1px solid rgba(139, 92, 255, .35); box-shadow: 0 30px 100px -30px rgba(139, 92, 255, .6); padding: 28px; border-radius: 2px; display: grid; gap: 16px; }
.modal-box h3 { font-family: var(--f-display); font-weight: 400; font-size: 15px; letter-spacing: .1em; margin: 0; }
.modal-box p { margin: 0; color: var(--mute); }
.modal-row { display: flex; justify-content: space-between; align-items: center; padding: 14px 0; border-block: 1px solid var(--line); }

/* ---------- REVEAL ---------- */
.js .reveal { opacity: 0; transform: translateY(18px); transition: opacity .9s var(--ease), transform .9s var(--ease); transition-delay: var(--d, 0s); }
.js .reveal.in { opacity: 1; transform: none; }
.intro > * { animation: rise 1.1s var(--ease) both; }
.intro > :nth-child(2) { animation-delay: .12s; }
.intro > :nth-child(3) { animation-delay: .24s; }
@keyframes rise { from { opacity: 0; transform: translateY(16px); filter: blur(4px); } to { opacity: 1; transform: none; filter: none; } }

/* ---------- RESPONSIVE ---------- */
@media (max-width: 900px) {
  .grid { grid-template-columns: minmax(0, 1fr); max-width: 620px; margin: 0 auto; }
  .pgrid { grid-template-columns: minmax(0, 1fr); }
  .p-art { position: relative; top: 0; max-width: 560px; }
  .info-grid { grid-template-columns: minmax(0, 1fr); }
  .hud { display: none; }
}
@media (max-width: 640px) {
  .nav-in { height: 56px; }
  .logo { font-size: 11px; letter-spacing: .12em; gap: 8px; }
  .nav-links { font-size: 10px; letter-spacing: .1em; }
  .nav-links a { padding: 8px 6px; }
  .nav-links span { display: none; }
  .hero { min-height: clamp(560px, 88svh, 760px); }
  .cup { width: min(108vw, 520px); }
  .cup-layer { padding-top: 64px; }
  .brackets { display: none; }
  .hero-copy { gap: 18px; }
  .actions .btn { max-width: none; width: 100%; }
  .product { padding-top: 84px; padding-bottom: calc(110px + env(safe-area-inset-bottom, 0px)); }
  .buybox .btn { width: 100%; }
  .mbar {
    display: flex; position: fixed; left: 0; right: 0; bottom: 0; z-index: 55; align-items: center; justify-content: space-between; gap: 14px;
    padding: 12px var(--gut-r) calc(12px + env(safe-area-inset-bottom, 0px)) var(--gut);
    background: rgba(8, 7, 12, .9); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); border-top: 1px solid var(--line);
    transform: translateY(110%); transition: transform .4s var(--ease);
  }
  .mbar.show { transform: none; }
  .mbar .btn { height: 46px; flex: 1; max-width: 220px; }
  .mbar strong { font-family: var(--f-display); font-weight: 400; font-size: 13px; letter-spacing: .08em; display: block; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .js .reveal { opacity: 1; transform: none; }
  html { scroll-behavior: auto; }
}

/* ---------- SPACE LAYER ---------- */
.sky { position: fixed; inset: 0; width: 100vw; height: 100vh; z-index: 0; pointer-events: none; image-rendering: pixelated; image-rendering: crisp-edges; }
.nebula { position: fixed; inset: 0; z-index: 0; pointer-events: none;
  background:
    radial-gradient(40% 30% at 12% 70%, rgba(80, 40, 200, .10), transparent 70%),
    radial-gradient(35% 28% at 88% 30%, rgba(35, 53, 255, .09), transparent 70%),
    radial-gradient(30% 22% at 70% 92%, rgba(160, 60, 255, .07), transparent 70%);
  animation: drift 40s ease-in-out infinite alternate; }
@keyframes drift { to { transform: translate3d(-2%, 1.5%, 0) scale(1.05); } }
.nav, main, footer, .mbar, .modal { position: relative; z-index: 1; }
.nav, .mbar { position: fixed; z-index: 50; }
.modal { position: fixed; z-index: 90; }
.mbar { z-index: 55; }


/* ---------- TYPE UPGRADES ---------- */
.kicker { margin: 0; font-family: var(--f-pixel); font-size: 11px; letter-spacing: .14em; color: var(--violet-hi); display: inline-flex; align-items: center; gap: 10px; padding: 7px 12px; border: 1px solid rgba(139, 92, 255, .35); background: rgba(9, 7, 18, .88); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); box-shadow: 0 0 24px -6px rgba(139, 92, 255, .5); }
.blip { width: 6px; height: 6px; background: #ff4fd8; box-shadow: 0 0 10px #ff4fd8; animation: blink 1.1s steps(2, jump-none) infinite; }
@keyframes blink { 50% { opacity: .15; } }
.hero h1 .l1 { text-shadow: -1.5px 0 rgba(255, 60, 210, .45), 1.5px 0 rgba(40, 200, 255, .45), 0 0 30px rgba(5, 5, 7, .9); }
.lede em { font-style: normal; color: var(--ink); border-bottom: 1px solid var(--violet); }
.hud { font-family: var(--f-pixel); font-size: 10px; letter-spacing: .14em; color: #6d6990; }
.cur { animation: blink 1s steps(2, jump-none) infinite; color: var(--violet-hi); }
.sec-head h2 { text-shadow: -1px 0 rgba(255, 60, 210, .35), 1px 0 rgba(40, 200, 255, .35); }
.sec-head .mono, .art .code, .art .tagchip, .tagline, .buynote { font-family: var(--f-pixel); letter-spacing: .12em; }
.info h2 { font-family: var(--f-pixel); font-size: 12px; color: var(--violet-hi); letter-spacing: .2em; }
.info p.big { font-family: var(--f-display); font-size: clamp(18px, 2vw, 24px); line-height: 1.35; color: var(--ink); letter-spacing: .02em; text-wrap: balance; }
.info p.big span { color: var(--violet-hi); }
.card .art, .p-art .art { background: #07070c; }
.player { background: rgba(8, 7, 14, .85); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); }

@media (max-width: 640px) { .kicker { font-size: 9px; padding: 6px 10px; } }

/* live object readout (hero, bottom right) */
.hud-read { font-family: var(--f-mono); font-size: 11px; letter-spacing: .18em; line-height: 2.1; color: #6a6784; bottom: 22px; }
.hud-read b { color: var(--ink); font-weight: 500; }
#rot { display: inline-block; min-width: 6.2ch; text-align: right; font-variant-numeric: tabular-nums; }

/* ---------- FEATURED (live) PRODUCT ---------- */
.feat { grid-template-columns: minmax(0, 1.45fr) minmax(0, 1fr); align-items: center; gap: clamp(24px, 4vw, 56px); margin-bottom: clamp(56px, 8vw, 96px); }
.feat .art { aspect-ratio: 16 / 10; }
.feat h3 { font-size: clamp(22px, 2.4vw, 32px); }
.feat .actions .btn { max-width: none; flex: 0 1 220px; }
.badge { justify-self: start; font-family: var(--f-pixel); font-size: 10px; letter-spacing: .16em; text-transform: uppercase; color: #7dffb3; border: 1px solid rgba(125, 255, 179, .3); background: rgba(125, 255, 179, .06); padding: 6px 10px; }
.art.ui img { object-fit: contain; background: #07050f; }
.card:hover .art.ui img, .p-art .art.ui:hover img { transform: scale(1.015); }
.soon-head { padding-bottom: 18px; margin-bottom: 28px; border-bottom: 1px solid var(--line); }
.soon .art { filter: grayscale(.55) brightness(.6); transition: filter .6s var(--ease), box-shadow .5s, outline-color .5s; }
.soon:hover .art { filter: grayscale(.2) brightness(.8); }
.soonchip { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); z-index: 4; font-family: var(--f-pixel); font-size: 11px; letter-spacing: .2em; color: var(--ink); padding: 8px 14px; background: rgba(5, 5, 7, .7); border: 1px solid rgba(255, 255, 255, .15); text-transform: uppercase; }
.soon h3 { color: var(--mute); }
.p-art .art.ui { aspect-ratio: 16 / 10; }
@media (min-width: 901px) { .p-art .art.ui { width: 100%; } }
@media (max-width: 900px) { .feat { grid-template-columns: minmax(0, 1fr); max-width: 680px; margin-left: auto; margin-right: auto; } }
/* compact "incoming" row so the live product leads */
#grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px 20px; max-width: none; }
#grid .card { gap: 14px; }
#grid .card h3 { font-size: 15px; }
#grid .row1 .mono { font-size: 9px; }
#grid .desc { font-size: 13px; line-height: 1.5; }
#grid .art .code, #grid .art .tagchip { display: none; }
#grid .soonchip { font-size: 9px; padding: 6px 10px; }
@media (max-width: 900px) { #grid { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 680px; } }
@media (max-width: 640px) { .feat .actions .btn { flex: 1 1 100%; } #grid .desc { display: none; } #grid .row1 { flex-direction: column; gap: 2px; } }

/* ---------- BUY BUTTON ---------- */
.btn.solid {
  position: relative; overflow: hidden; isolation: isolate;
  color: #fff; font-weight: 600; letter-spacing: .22em; border: 1px solid rgba(214, 196, 255, .55); border-radius: 3px;
  background: linear-gradient(180deg, #a982ff 0%, #8452ff 48%, #6331f0 100%);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .45), inset 0 -2px 0 rgba(40, 10, 120, .45), 0 0 0 1px rgba(139, 92, 255, .25), 0 12px 36px -12px rgba(139, 92, 255, .95);
  text-shadow: 0 1px 1px rgba(30, 0, 90, .45);
  transition: transform .2s var(--ease), box-shadow .3s, filter .3s;
}
.btn.solid::after {
  content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background: linear-gradient(105deg, transparent 30%, rgba(255, 255, 255, .45) 48%, transparent 66%);
  transform: translateX(-120%); transition: transform .7s var(--ease);
}
.btn.solid:hover { background: linear-gradient(180deg, #b896ff 0%, #9161ff 48%, #6c3bff 100%); filter: brightness(1.06); transform: translateY(-1px);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .55), inset 0 -2px 0 rgba(40, 10, 120, .45), 0 0 0 1px rgba(184, 160, 255, .5), 0 16px 48px -10px rgba(139, 92, 255, 1); }
.btn.solid:hover::after { transform: translateX(120%); }
.btn.solid:active { transform: translateY(0) scale(.98); }
.btn.solid .arr { display: inline-block; transition: transform .3s var(--ease); }
.btn.solid:hover .arr { transform: translateX(4px); }
.btn.solid[disabled] { filter: saturate(.6); transform: none; }

/* sale pricing */
.price .was { color: var(--faint); text-decoration: line-through; text-decoration-color: rgba(255, 79, 216, .8); text-decoration-thickness: 1.5px; margin-right: 8px; font-size: .78em; }
.badge { color: #ff8be8; border-color: rgba(255, 79, 216, .35); background: rgba(255, 79, 216, .07); }
#grid:empty { display: none; }
.feat { margin-bottom: 0; }

/* ---------- INTRO GATE ---------- */
body:has(#gate:not([hidden])) { overflow: hidden; }
body:has(#gate:not([hidden]):not(.out)) > header,
body:has(#gate:not([hidden]):not(.out)) > main,
body:has(#gate:not([hidden]):not(.out)) > footer { visibility: hidden; }
.gate {
  position: fixed; inset: 0; z-index: 95; display: grid; place-items: center; overflow: auto;
  padding: max(24px, env(safe-area-inset-top, 0px)) max(16px, env(safe-area-inset-right, 0px)) max(24px, env(safe-area-inset-bottom, 0px)) max(16px, env(safe-area-inset-left, 0px));
  background: radial-gradient(60% 55% at 50% 45%, rgba(40, 20, 110, .28), transparent 70%);
  transition: opacity .9s var(--ease);
}
.gate-in { display: grid; justify-items: center; gap: 18px; text-align: center; width: min(520px, 100%); transition: transform 1s var(--ease), opacity .7s var(--ease), filter .7s; }
.radar { position: relative; width: min(240px, 58vw); aspect-ratio: 1; border-radius: 50%; margin-bottom: 6px;
  background: radial-gradient(circle, rgba(139, 92, 255, .14), rgba(5, 5, 7, .6) 70%); box-shadow: 0 0 0 1px rgba(184, 160, 255, .35), 0 0 60px -10px rgba(139, 92, 255, .6), inset 0 0 40px rgba(139, 92, 255, .15);
  transition: transform 1s var(--ease), opacity .8s; }
.radar .ring { position: absolute; border-radius: 50%; border: 1px dashed rgba(184, 160, 255, .25); }
.radar .r1 { inset: 16%; } .radar .r2 { inset: 32%; } .radar .r3 { inset: 46%; border-style: solid; border-color: rgba(184, 160, 255, .4); }
.radar .cross { position: absolute; inset: 0; background: linear-gradient(rgba(184,160,255,.18), rgba(184,160,255,.18)) center / 1px 100% no-repeat, linear-gradient(rgba(184,160,255,.18), rgba(184,160,255,.18)) center / 100% 1px no-repeat; }
.radar .sweep { position: absolute; inset: 0; border-radius: 50%; background: conic-gradient(from 0deg, rgba(139, 92, 255, .55), rgba(139, 92, 255, .08) 50deg, transparent 90deg); animation: sweep 2.2s linear infinite; mix-blend-mode: screen; }
@keyframes sweep { to { transform: rotate(360deg); } }
.radar .target { position: absolute; left: 64%; top: 30%; width: 8px; height: 8px; margin: -4px; background: #fff; box-shadow: 0 0 12px #b8a0ff, 0 0 24px #8b5cff; opacity: 0; animation: ping 1.1s steps(2, jump-none) infinite; }
@keyframes ping { 50% { opacity: .2; } }
.radar .sig { position: absolute; inset: 0; border-radius: 50%; border: 1px solid rgba(184, 160, 255, .6); opacity: 0; }
.locked .radar .target { opacity: 1; left: 50%; top: 50%; transition: left .6s var(--ease), top .6s var(--ease); animation: none; }
.locked .radar .sweep { animation-duration: 6s; opacity: .5; }
.locked .radar .sig { animation: sigwave 2.4s var(--ease) infinite; }
.locked .radar .w2 { animation-delay: .8s; } .locked .radar .w3 { animation-delay: 1.6s; }
@keyframes sigwave { from { transform: scale(.2); opacity: .9; } to { transform: scale(1.9); opacity: 0; } }
.gate-logo { margin: 0; font-family: var(--f-display); font-weight: 400; font-size: clamp(22px, 5vw, 36px); letter-spacing: .14em; text-shadow: -1.5px 0 rgba(255, 60, 210, .45), 1.5px 0 rgba(40, 200, 255, .45); }
.gate-logo b { font-weight: 400; color: var(--violet-hi); }
.gate-log { min-height: calc(5 * 1.9em); font-family: var(--f-pixel); font-size: 10px; letter-spacing: .14em; line-height: 1.9; color: #8c88ad; text-align: left; justify-self: center; }
.gate-log div { animation: typein .35s steps(8, end) both; overflow: hidden; white-space: nowrap; }
@keyframes typein { from { clip-path: inset(0 100% 0 0); } to { clip-path: inset(0 0 0 0); } }
.gate-meter { display: flex; align-items: flex-end; gap: 4px; height: 22px; }
.gate-meter i { width: 6px; background: rgba(184, 160, 255, .15); transition: background .3s, box-shadow .3s; }
.gate-meter i:nth-child(1) { height: 20%; } .gate-meter i:nth-child(2) { height: 28%; } .gate-meter i:nth-child(3) { height: 36%; } .gate-meter i:nth-child(4) { height: 44%; } .gate-meter i:nth-child(5) { height: 52%; }
.gate-meter i:nth-child(6) { height: 60%; } .gate-meter i:nth-child(7) { height: 68%; } .gate-meter i:nth-child(8) { height: 78%; } .gate-meter i:nth-child(9) { height: 88%; } .gate-meter i:nth-child(10) { height: 100%; }
.gate-meter i.on { background: var(--violet-hi); box-shadow: 0 0 8px rgba(139, 92, 255, .8); }
.gate-status { margin: 0; font-family: var(--f-pixel); font-size: 12px; letter-spacing: .2em; color: var(--ink); }
.gate-status .dots::after { content: ""; animation: dots 1.2s steps(4, end) infinite; }
@keyframes dots { 0% { content: ""; } 25% { content: "."; } 50% { content: ".."; } 75% { content: "..."; } }
.gate-status .ok { color: #ff6be6; text-shadow: 0 0 10px #ff4fd8; animation: blink 1.1s steps(2, jump-none) infinite; }
.gate-enter { height: 54px; min-width: 220px; margin-top: 6px; font-size: 13px; }
.gate-enter[disabled] { opacity: .35; filter: grayscale(.6); cursor: default; box-shadow: none; }
.locked .gate-enter { animation: glowpulse 2s ease-in-out infinite; }
@keyframes glowpulse { 50% { box-shadow: inset 0 1px 0 rgba(255,255,255,.45), 0 0 0 1px rgba(184,160,255,.5), 0 0 50px -4px rgba(139,92,255,1); } }
.gate-hint { margin: -4px 0 0; font-size: 10px; opacity: 0; transition: opacity .6s; }
.locked .gate-hint { opacity: .8; }
.gate-flash { position: fixed; inset: 0; pointer-events: none; opacity: 0; background: radial-gradient(circle at 50% 45%, rgba(220, 205, 255, .9), rgba(139, 92, 255, .35) 30%, transparent 65%); }
.gate.out { opacity: 0; pointer-events: none; }
.gate.out .gate-in { transform: scale(1.12); opacity: 0; filter: blur(6px); }
.gate.out .radar { transform: scale(4); opacity: 0; }
.gate.out .gate-flash { animation: flash .9s var(--ease) both; }
@keyframes flash { 0% { opacity: 0; } 25% { opacity: 1; } 100% { opacity: 0; } }

/* gate typography */
.gate-logo { font-family: "Syncopate", var(--f-display); font-weight: 700; font-size: clamp(24px, 6.4vw, 54px); letter-spacing: .08em; line-height: 1; color: #f3f0ff;
  text-shadow: -2px 0 rgba(255, 60, 210, .5), 2px 0 rgba(40, 200, 255, .5), 0 0 40px rgba(139, 92, 255, .55); }
.gate-logo b { font-weight: 400; color: var(--violet-hi); letter-spacing: .12em; }
.gate-log { font-family: "VT323", var(--f-mono); font-size: clamp(17px, 2.2vw, 20px); letter-spacing: .08em; line-height: 1.35; color: #a7a2cc; min-height: calc(5 * 1.35em); text-shadow: 0 0 8px rgba(139, 92, 255, .45); }
.gate-status { font-family: "VT323", var(--f-mono); font-size: clamp(22px, 3vw, 28px); letter-spacing: .14em; text-shadow: 0 0 12px rgba(184, 160, 255, .6); }
.gate-enter { font-family: "Syncopate", var(--f-mono); font-weight: 700; letter-spacing: .3em; font-size: 13px; }
.gate-hint { font-family: "VT323", var(--f-mono); font-size: 16px; letter-spacing: .2em; }
@media (hover: none) { .gate-hint { display: none; } }

/* discord help */
.help { margin-top: 26px; display: flex; align-items: center; justify-content: space-between; gap: 18px; flex-wrap: wrap; padding: 18px 18px 18px 20px; border: 1px solid rgba(139, 92, 255, .3); background: linear-gradient(90deg, rgba(139, 92, 255, .1), rgba(10, 9, 18, .6)); }
.help > div { display: grid; gap: 4px; min-width: 0; flex: 1 1 240px; }
.help strong { font-family: var(--f-display); font-weight: 400; font-size: 14px; letter-spacing: .08em; }
.help span { color: var(--mute); font-size: 14px; }
.help .btn { flex: 0 0 auto; }
.foot-link { color: var(--violet-hi); }
.foot-link:hover { color: var(--ink); }

/* ---------- INSTALL GUIDE ---------- */
.install { padding-block: clamp(40px, 6vw, 80px) clamp(24px, 4vw, 48px); scroll-margin-top: 40px; }
.install-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(20px, 3vw, 32px); align-items: start; }
.inst-card { border: 1px solid var(--line); background: rgba(10, 9, 18, .7); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); padding: clamp(20px, 3vw, 30px); display: grid; gap: 14px; min-width: 0; }
.inst-k { font-family: var(--f-pixel); font-size: 10px; letter-spacing: .2em; color: var(--violet-hi); text-transform: uppercase; }
.inst-card h3 { margin: 0; font-family: var(--f-display); font-weight: 400; font-size: clamp(16px, 1.6vw, 20px); letter-spacing: .06em; }
.steps { margin: 0; padding: 0; list-style: none; counter-reset: st; display: grid; gap: 12px; }
.steps li { counter-increment: st; position: relative; display: block; padding-left: 40px; min-height: 26px; color: #c9c6d8; font-size: 15px; line-height: 1.6; }
.steps li::before { content: counter(st); position: absolute; left: 0; top: 0; width: 26px; height: 26px; display: grid; place-items: center; font-family: var(--f-mono); font-size: 12px; color: var(--ink); border: 1px solid rgba(139, 92, 255, .5); background: rgba(139, 92, 255, .12); }
.steps b { color: var(--ink); font-weight: 500; }
.steps a, .inst-note a { color: var(--violet-hi); text-decoration: underline; text-underline-offset: 3px; }
.install code { font-family: var(--f-mono); font-size: 12.5px; color: var(--ink); background: rgba(255, 255, 255, .06); padding: 2px 6px; overflow-wrap: anywhere; }
.inst-note { margin: 2px 0 0; color: var(--mute); font-size: 13.5px; padding-top: 14px; border-top: 1px solid var(--line); }
.inst-note b { color: var(--ink); font-weight: 500; }
.tabs { display: flex; gap: 3px; padding: 3px; border: 1px solid var(--line); width: max-content; max-width: 100%; flex-wrap: wrap; }
.tabs button { font-family: var(--f-mono); font-size: 11px; letter-spacing: .16em; padding: 9px 14px; color: var(--mute); transition: background .25s, color .25s; }
.tabs button:hover { color: var(--ink); }
.tabs button[aria-selected="true"] { background: var(--violet); color: #fff; }
.inst-link { margin-top: 12px; }
@media (max-width: 900px) { .install-grid { grid-template-columns: minmax(0, 1fr); } }

.from { margin: -6px 0 0; font-size: 11px; letter-spacing: .18em; color: var(--mute); }
.from b { color: var(--ink); font-weight: 500; font-size: 13px; }
.from s { color: var(--faint); text-decoration-color: rgba(255, 79, 216, .8); }

/* ---------- BUY SHEET ---------- */
.modal-box { position: relative; }
.modal-x { position: absolute; top: 10px; right: 12px; width: 32px; height: 32px; font-size: 22px; line-height: 1; color: var(--mute); }
.modal-x:hover { color: var(--ink); }
.choice { display: grid; gap: 12px; }
.choice .btn { width: 100%; }
.or { display: flex; align-items: center; gap: 12px; color: var(--faint); font-family: var(--f-mono); font-size: 10px; letter-spacing: .2em; text-transform: uppercase; }
.or::before, .or::after { content: ""; flex: 1; height: 1px; background: var(--line); }
.fine { margin: 2px 0 0; font-size: 12.5px; line-height: 1.55; color: var(--faint) !important; }
@media (max-width: 640px) { .nav-links a { padding: 8px 5px; } .nav-links { letter-spacing: .08em; } }

/* ---------- ACCOUNT ---------- */
.acct { min-height: 100svh; padding-block: 120px 80px; display: grid; align-content: start; gap: 24px; }
.acct-view[hidden] { display: none; }
.acct-card { max-width: 620px; margin: 0 auto; border: 1px solid rgba(139, 92, 255, .3); background: rgba(10, 9, 18, .78); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); padding: clamp(24px, 4vw, 40px); display: grid; gap: 18px; box-shadow: 0 30px 100px -40px rgba(139, 92, 255, .6); }
.acct-h { margin: 0; font-family: var(--f-display); font-weight: 400; font-size: clamp(20px, 3vw, 30px); letter-spacing: .05em; line-height: 1.2; text-wrap: balance; }
.acct-p { margin: 0; color: #b3b0c3; max-width: 52ch; }
.acct-p b { color: var(--ink); font-weight: 500; }
#loginForm { display: grid; gap: 8px; }
.field { display: flex; gap: 10px; flex-wrap: wrap; }
.field input { flex: 1 1 220px; min-width: 0; height: 52px; padding: 0 16px; font: 400 16px var(--f-body); color: var(--ink); background: rgba(255, 255, 255, .04); border: 1px solid var(--line); border-radius: 3px; outline: none; transition: border-color .25s, box-shadow .25s; }
.field input:focus { border-color: var(--violet); box-shadow: 0 0 0 3px rgba(139, 92, 255, .2); }
.field .btn { height: 52px; flex: 0 0 auto; }
.err { margin: 0; color: #ff8be8; font-size: 13px; }
.perks { list-style: none; margin: 4px 0 0; padding: 16px 0 0; border-top: 1px solid var(--line); display: grid; gap: 8px; color: var(--mute); font-size: 14px; }
.perks li::before { content: "◇"; color: var(--violet-hi); margin-right: 10px; font-size: 11px; }
.acct-actions { display: flex; gap: 18px; align-items: center; flex-wrap: wrap; }
.acct-notice { max-width: 620px; width: 100%; margin: 0 auto; padding: 12px 16px; font-size: 14px; border: 1px solid rgba(139, 92, 255, .35); background: rgba(139, 92, 255, .1); color: var(--ink); }
.acct-notice.warn { border-color: rgba(255, 79, 216, .4); background: rgba(255, 79, 216, .08); }
#vAccount .acct-notice, #vAccount { max-width: 1000px; width: 100%; margin: 0 auto; }
#vAccount { display: grid; gap: 26px; }
#vAccount[hidden] { display: none; }
body:has(#vAccount:not([hidden])) .acct-notice { max-width: 1000px; }
.acct-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; flex-wrap: wrap; padding-bottom: 20px; border-bottom: 1px solid var(--line); }
.acct-head > div { display: grid; gap: 8px; }
.acct-head .mono { text-transform: none; letter-spacing: .06em; }
.next-banner { display: flex; align-items: center; justify-content: space-between; gap: 14px; flex-wrap: wrap; padding: 14px 16px; border: 1px solid rgba(139, 92, 255, .4); background: linear-gradient(90deg, rgba(139, 92, 255, .14), rgba(10, 9, 18, .5)); }
.next-banner[hidden] { display: none; }
.next-banner b { color: var(--ink); font-weight: 500; }
.next-banner span { color: #c9c6d8; }
.owned { display: grid; gap: 16px; }
.own { --p: var(--violet); display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 22px; align-items: center; padding: 16px; border: 1px solid var(--line); background: rgba(10, 9, 18, .75); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); }
.own-art { display: block; aspect-ratio: 1; overflow: hidden; background: #07050f; outline: 1px solid var(--line); }
.own-art.ui { aspect-ratio: 16 / 10; }
.own-art img { width: 100%; height: 100%; object-fit: cover; }
.own-art.ui img { object-fit: contain; }
.own-body { display: grid; gap: 10px; min-width: 0; }
.own-top { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.own h3 { margin: 0; font-family: var(--f-display); font-weight: 400; font-size: clamp(17px, 2vw, 22px); letter-spacing: .06em; }
.ver { font-family: var(--f-mono); font-size: 11px; letter-spacing: .1em; color: #7dffb3; border: 1px solid rgba(125, 255, 179, .3); padding: 4px 8px; }
.own-body .mono { text-transform: none; letter-spacing: .06em; }
.own-actions { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; margin-top: 4px; }
.own-actions .btn { height: 44px; }
.empty { border: 1px dashed rgba(139, 92, 255, .35); padding: clamp(22px, 4vw, 36px); display: grid; gap: 12px; justify-items: start; background: rgba(10, 9, 18, .6); }
.empty h3 { margin: 0; font-family: var(--f-display); font-weight: 400; letter-spacing: .06em; }
.empty p { margin: 0; color: var(--mute); max-width: 60ch; }
.empty b { color: var(--ink); font-weight: 500; }
.orders h2 { margin: 0 0 12px; }
.table-wrap { overflow-x: auto; }
.otable { width: 100%; border-collapse: collapse; font-size: 14px; min-width: 460px; }
.otable th { text-align: left; font-family: var(--f-mono); font-weight: 400; font-size: 10px; letter-spacing: .16em; text-transform: uppercase; color: var(--faint); padding: 10px 0; border-bottom: 1px solid var(--line); }
.otable td { padding: 12px 12px 12px 0; border-bottom: 1px solid var(--line); color: #c9c6d8; }
.otable td.mono { text-transform: none; }
.otable .num, .otable th:last-child { text-align: right; font-variant-numeric: tabular-nums; }
.loading { text-align: center; padding-top: 80px; }
.loading .dots::after { content: ""; animation: dots 1.2s steps(4, end) infinite; }
@media (max-width: 700px) {
  .own { grid-template-columns: minmax(0, 1fr); }
  .own-art.ui, .own-art { max-width: 420px; }
  .field .btn { width: 100%; }
  .acct { padding-top: 90px; }
}

/* ---------- UNDERGROUND showcase card (scoped to .ug) ---------- */
.ug { --accent: 155, 77, 255; --hot: 0; position: relative; display: block; width: 100%; aspect-ratio: 16 / 10; overflow: hidden; border-radius: 14px; background: #050407; color: #f3eefc;
  font-family: "Inter Tight", var(--f-body); container-type: inline-size; isolation: isolate; border: 1px solid #16121d; text-decoration: none; }
.ug *, .ug *::before, .ug *::after { box-sizing: border-box; }
.ug-bubbles { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 0; pointer-events: none; }
.ug-glow { position: absolute; left: 50%; top: 62%; width: 95%; height: 95%; z-index: 0; pointer-events: none; transform: translate(-50%, -50%) scale(calc(0.85 + 0.25 * var(--hot)));
  background: radial-gradient(closest-side, rgba(var(--accent), calc(0.16 + 0.22 * var(--hot))), rgba(5, 4, 7, 0) 70%); transition: transform .6s cubic-bezier(.2, .8, .2, 1); }
.ug-head { position: absolute; left: 0; right: 0; top: 6.2%; z-index: 2; text-align: center; display: flex; flex-direction: column; align-items: center; gap: 1.1cqi; }
.ug-brand { margin: 0; font-family: "JetBrains Mono", var(--f-mono); font-weight: 700; font-size: max(9px, 0.95cqi); letter-spacing: .45em; color: #a39bb5; }
.ug-title { display: block; margin: 0; font-weight: 800; font-size: 7cqi; line-height: .95; letter-spacing: -.015em; white-space: nowrap; }
.ug-title span { display: inline-block; }
.ug-tag { margin: .3cqi 0 0; font-weight: 500; font-size: max(12px, 1.65cqi); color: #cfc8dc; }
.ug-stage { position: absolute; left: 50%; top: 33%; width: 65%; z-index: 1; transform: translateX(-50%); perspective: 1800px; }
.ug-card { position: relative; width: 100%; aspect-ratio: 16 / 10; border-radius: 1.1cqi; overflow: hidden; transform-origin: 50% 80%; will-change: transform; border: 1px solid #2a2333;
  box-shadow: 0 4cqi 9cqi rgba(0, 0, 0, .85), 0 0 calc(6cqi + 6cqi * var(--hot)) rgba(var(--accent), calc(.12 + .28 * var(--hot))); }
.ug-card img { display: block; width: 100%; height: 100%; object-fit: cover; user-select: none; -webkit-user-drag: none; filter: brightness(calc(.82 + .18 * var(--hot))); transition: filter .5s ease; }
.ug-glare { position: absolute; inset: 0; pointer-events: none; mix-blend-mode: screen; background: radial-gradient(circle at var(--gx, 50%) var(--gy, 30%), rgba(255, 255, 255, .22), rgba(255, 255, 255, 0) 38%); opacity: var(--hot); transition: opacity .4s ease; }
.ug-sweep { position: absolute; top: -10%; bottom: -10%; width: 35%; left: -60%; pointer-events: none; background: linear-gradient(100deg, rgba(255, 255, 255, 0), rgba(var(--accent), .25), rgba(255, 255, 255, .18), rgba(255, 255, 255, 0)); transform: skewX(-12deg); }
.ug.is-entering .ug-sweep { animation: ug-sweep .9s cubic-bezier(.3, .7, .2, 1) forwards; }
@keyframes ug-sweep { to { left: 130%; } }
.ug-fade { position: absolute; left: 0; right: 0; bottom: 0; height: 13%; z-index: 2; pointer-events: none; background: linear-gradient(to bottom, rgba(5, 4, 7, 0), #050407); }
.ug-foot { position: absolute; left: 4%; right: 4%; bottom: 3.6%; z-index: 3; display: flex; justify-content: space-between; align-items: center; gap: 8px;
  font-family: "JetBrains Mono", var(--f-mono); font-weight: 500; font-size: max(8px, .88cqi); letter-spacing: .18em; color: #8a829d; }
.ug-foot .ug-dot { display: inline-block; width: .55em; height: .55em; border-radius: 50%; margin-right: .8em; vertical-align: .05em; background: rgb(var(--accent)); box-shadow: 0 0 calc(.8em * var(--hot)) rgb(var(--accent)); }
.ug.is-entering .ug-title span { animation: ug-glitch .55s steps(2, end) both; animation-delay: calc(var(--i) * 28ms); }
@keyframes ug-glitch {
  0% { transform: translate(0, 0); text-shadow: none; opacity: 1; }
  20% { transform: translate(-.04em, .02em); text-shadow: .06em 0 rgba(var(--accent), .9), -.05em 0 rgba(255, 255, 255, .5); opacity: .7; }
  45% { transform: translate(.03em, -.02em); text-shadow: -.06em 0 rgba(var(--accent), .9), .04em 0 rgba(255, 255, 255, .4); opacity: 1; }
  70% { transform: translate(0, .01em); text-shadow: .02em 0 rgba(var(--accent), .6); }
  100% { transform: translate(0, 0); text-shadow: 0 0 .35em rgba(var(--accent), .35); }
}
.ug.is-hot .ug-title span { text-shadow: 0 0 .35em rgba(var(--accent), .35); transition: text-shadow .4s ease; }
@media (prefers-reduced-motion: reduce) { .ug.is-entering .ug-title span, .ug.is-entering .ug-sweep { animation: none; } .ug-glow { transition: none; } }
/* featured rows: alternate sides, space between products */
#featured { display: grid; gap: clamp(56px, 8vw, 104px); }
@media (min-width: 901px) { .feat.flip { grid-template-columns: minmax(0, 1fr) minmax(0, 1.45fr); } .feat.flip > :first-child { order: 2; } }
.p-art .ug { box-shadow: 0 40px 120px -50px rgba(var(--accent), .9); }

/* ---------- APOLLO showcase card (scoped to .ap) ---------- */
.ap { --accent: 255, 90, 31; --hot: 0; position: relative; display: block; width: 100%; aspect-ratio: 16 / 10; overflow: hidden; border-radius: 14px; background: #04050a; color: #f4f2ee;
  font-family: "Inter Tight", var(--f-body); container-type: inline-size; isolation: isolate; border: 1px solid #141722; text-decoration: none; }
.ap *, .ap *::before, .ap *::after { box-sizing: border-box; }
.ap-stars { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 0; pointer-events: none; }
.ap-glow { position: absolute; left: 50%; top: 100%; width: 110%; height: 90%; z-index: 0; pointer-events: none; transform: translate(-50%, -50%) scale(calc(0.7 + 0.45 * var(--hot)));
  background: radial-gradient(closest-side, rgba(var(--accent), calc(0.14 + 0.30 * var(--hot))), rgba(255, 170, 60, calc(0.05 + 0.10 * var(--hot))) 45%, rgba(4, 5, 10, 0) 75%); transition: transform .6s cubic-bezier(.2, .8, .2, 1); }
.ap-head { position: absolute; left: 0; right: 0; top: 6.2%; z-index: 2; text-align: center; display: flex; flex-direction: column; align-items: center; gap: 1.1cqi; }
.ap-brand { margin: 0; font-family: "JetBrains Mono", var(--f-mono); font-weight: 700; font-size: max(9px, 0.95cqi); letter-spacing: .45em; color: #9ea3b3; }
.ap-title { display: block; margin: 0; font-weight: 800; font-size: 7.4cqi; line-height: .95; letter-spacing: .06em; white-space: nowrap; }
.ap-title span { display: inline-block; }
.ap-tag { margin: .3cqi 0 0; padding: 0 4%; font-weight: 500; font-size: max(12px, 1.65cqi); color: #cdd0da; }
.ap-stage { position: absolute; left: 50%; top: 33%; width: 63%; z-index: 1; transform: translateX(-50%); perspective: 1800px; }
.ap-card { position: relative; width: 100%; border-radius: 1.1cqi; overflow: hidden; transform-origin: 50% 80%; will-change: transform; border: 1px solid #2b2f3a;
  box-shadow: 0 4cqi 9cqi rgba(0, 0, 0, .85), 0 0 calc(5cqi + 7cqi * var(--hot)) rgba(var(--accent), calc(.10 + .30 * var(--hot))); }
.ap-card img { display: block; width: 100%; height: 100%; object-fit: cover; user-select: none; -webkit-user-drag: none; filter: brightness(calc(.84 + .16 * var(--hot))); transition: filter .5s ease; }
.ap-glare { position: absolute; inset: 0; pointer-events: none; mix-blend-mode: soft-light; background: radial-gradient(circle at var(--gx, 50%) var(--gy, 30%), rgba(255, 255, 255, .55), rgba(255, 255, 255, 0) 40%); opacity: var(--hot); transition: opacity .4s ease; }
.ap-sweep { position: absolute; top: -10%; bottom: -10%; width: 35%; left: -60%; pointer-events: none; background: linear-gradient(100deg, rgba(255, 255, 255, 0), rgba(var(--accent), .22), rgba(255, 255, 255, .22), rgba(255, 255, 255, 0)); transform: skewX(-12deg); }
.ap.is-entering .ap-sweep { animation: ap-sweep .9s cubic-bezier(.3, .7, .2, 1) forwards; }
@keyframes ap-sweep { to { left: 130%; } }
.ap-fade { position: absolute; left: 0; right: 0; bottom: 0; height: 13%; z-index: 2; pointer-events: none; background: linear-gradient(to bottom, rgba(4, 5, 10, 0), #04050a); }
.ap-foot { position: absolute; left: 4%; right: 4%; bottom: 3.6%; z-index: 3; display: flex; justify-content: space-between; align-items: center; gap: 12px;
  font-family: "JetBrains Mono", var(--f-mono); font-weight: 500; font-size: max(8px, .88cqi); letter-spacing: .18em; color: #868b9b; }
.ap-foot .ap-dot { display: inline-block; width: .55em; height: .55em; border-radius: 50%; margin-right: .8em; vertical-align: .05em; background: rgb(var(--accent)); box-shadow: 0 0 calc(.9em * var(--hot)) rgb(var(--accent)); }
.ap.is-entering .ap-title span { animation: ap-lift .7s cubic-bezier(.2, .8, .2, 1) both; animation-delay: calc(var(--i) * 45ms); }
@keyframes ap-lift {
  0% { transform: translate(0, 0); text-shadow: none; }
  12% { transform: translate(-.02em, .01em); }
  24% { transform: translate(.02em, -.01em); }
  36% { transform: translate(0, .02em); text-shadow: 0 .12em .2em rgba(var(--accent), .9); }
  60% { transform: translate(0, -.12em); text-shadow: 0 .25em .35em rgba(var(--accent), .8), 0 .1em .1em rgba(255, 200, 120, .7); }
  100% { transform: translate(0, 0); text-shadow: 0 0 .35em rgba(var(--accent), .35); }
}
.ap.is-hot .ap-title span { text-shadow: 0 0 .35em rgba(var(--accent), .35); transition: text-shadow .4s ease; }
@media (max-width: 640px) {
  .ap { aspect-ratio: 4 / 5; }
  .ap-head { top: 7%; gap: 8px; }
  .ap-title { font-size: 15cqi; }
  .ap-tag { padding: 0 16px; font-size: 13px; line-height: 1.35; }
  .ap-stage { top: 36%; width: 94%; }
  .ap-fade { height: 22%; }
  .ap-foot { flex-direction: column; align-items: center; gap: 6px; bottom: 4%; font-size: 9px; letter-spacing: .14em; text-align: center; }
}
@media (prefers-reduced-motion: reduce) { .ap.is-entering .ap-title span, .ap.is-entering .ap-sweep { animation: none; } .ap-glow { transition: none; } }
.p-art .ap { box-shadow: 0 40px 120px -50px rgba(var(--accent), .9); }

/* ---------- PHANTOM VOCALS showcase card (scoped to .pv) ---------- */
.pv { --accent: 178, 92, 255; --hot: 0; position: relative; display: block; width: 100%; aspect-ratio: 16 / 10; overflow: hidden; border-radius: 14px; background: #050407; color: #f3eefc;
  font-family: "Inter Tight", var(--f-body); container-type: inline-size; isolation: isolate; border: 1px solid #16121d; text-decoration: none; }
.pv *, .pv *::before, .pv *::after { box-sizing: border-box; }
.pv-embers { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 0; pointer-events: none; }
.pv-glow { position: absolute; left: 50%; top: 62%; width: 95%; height: 95%; z-index: 0; pointer-events: none; transform: translate(-50%, -50%) scale(calc(0.85 + 0.25 * var(--hot)));
  background: radial-gradient(closest-side, rgba(var(--accent), calc(0.16 + 0.24 * var(--hot))), rgba(5, 4, 7, 0) 70%); transition: transform .6s cubic-bezier(.2, .8, .2, 1); }
.pv-head { position: absolute; left: 0; right: 0; top: 6.2%; z-index: 2; text-align: center; display: flex; flex-direction: column; align-items: center; gap: 1.1cqi; }
.pv-brand { margin: 0; font-family: "JetBrains Mono", var(--f-mono); font-weight: 700; font-size: max(9px, 0.95cqi); letter-spacing: .45em; color: #a39bb5; }
.pv-title { display: block; margin: 0; font-weight: 800; font-size: 6.2cqi; line-height: .95; letter-spacing: -.015em; white-space: nowrap; }
.pv-title span { display: inline-block; }
.pv-title .pv-space { width: .28em; }
.pv-tag { margin: .3cqi 0 0; font-weight: 500; font-size: max(12px, 1.65cqi); color: #cfc8dc; }
.pv-stage { position: absolute; left: 50%; top: 33%; width: 65%; z-index: 1; transform: translateX(-50%); perspective: 1800px; }
.pv-card, .pv-double { position: relative; width: 100%; aspect-ratio: 1440 / 900; border-radius: 1.1cqi; overflow: hidden; transform-origin: 50% 80%; will-change: transform; }
.pv-card { border: 1px solid #2a2333; box-shadow: 0 4cqi 9cqi rgba(0, 0, 0, .85), 0 0 calc(6cqi + 6cqi * var(--hot)) rgba(var(--accent), calc(.12 + .30 * var(--hot))); }
.pv-double { position: absolute; inset: 0; pointer-events: none; opacity: calc(.55 * var(--hot)); filter: blur(calc(.25cqi + .4cqi * var(--hot))) saturate(1.6); mix-blend-mode: screen; }
.pv-double img { opacity: .8; filter: hue-rotate(-12deg) brightness(1.1); }
.pv-card img, .pv-double img { display: block; width: 100%; height: 100%; object-fit: cover; user-select: none; -webkit-user-drag: none; }
.pv-card img { filter: brightness(calc(.82 + .18 * var(--hot))); transition: filter .5s ease; }
.pv-glare { position: absolute; inset: 0; pointer-events: none; mix-blend-mode: screen; background: radial-gradient(circle at var(--gx, 50%) var(--gy, 30%), rgba(255, 255, 255, .2), rgba(255, 255, 255, 0) 38%); opacity: var(--hot); transition: opacity .4s ease; }
.pv-sweep { position: absolute; top: -10%; bottom: -10%; width: 35%; left: -60%; pointer-events: none; background: linear-gradient(100deg, rgba(255, 255, 255, 0), rgba(var(--accent), .28), rgba(255, 255, 255, .16), rgba(255, 255, 255, 0)); transform: skewX(-12deg); }
.pv.is-entering .pv-sweep { animation: pv-sweep .9s cubic-bezier(.3, .7, .2, 1) forwards; }
@keyframes pv-sweep { to { left: 130%; } }
.pv-fade { position: absolute; left: 0; right: 0; bottom: 0; height: 13%; z-index: 2; pointer-events: none; background: linear-gradient(to bottom, rgba(5, 4, 7, 0), #050407); }
.pv-foot { position: absolute; left: 4%; right: 4%; bottom: 3.6%; z-index: 3; display: flex; justify-content: space-between; align-items: center; gap: 8px;
  font-family: "JetBrains Mono", var(--f-mono); font-weight: 500; font-size: max(8px, .88cqi); letter-spacing: .18em; color: #8a829d; }
.pv-foot .pv-dot { display: inline-block; width: .55em; height: .55em; border-radius: 50%; margin-right: .8em; vertical-align: .05em; background: rgb(var(--accent)); box-shadow: 0 0 calc(.8em * var(--hot)) rgb(var(--accent)); }
.pv.is-entering .pv-title span { animation: pv-haunt .7s cubic-bezier(.3, .6, .2, 1) both; animation-delay: calc(var(--i) * 32ms); }
@keyframes pv-haunt {
  0% { opacity: .15; filter: blur(.08em); transform: translateY(.12em); text-shadow: 0 -.25em .3em rgba(var(--accent), .9); }
  25% { opacity: .85; filter: blur(0); transform: translateY(0); text-shadow: 0 -.12em .2em rgba(var(--accent), .8); }
  40% { opacity: .35; }
  60% { opacity: 1; text-shadow: 0 0 .5em rgba(var(--accent), .7); }
  100% { opacity: 1; filter: blur(0); transform: none; text-shadow: 0 0 .35em rgba(var(--accent), .4); }
}
.pv.is-hot .pv-title span { text-shadow: 0 0 .35em rgba(var(--accent), .4); transition: text-shadow .4s ease; }
@media (prefers-reduced-motion: reduce) { .pv.is-entering .pv-title span, .pv.is-entering .pv-sweep { animation: none; } .pv-glow { transition: none; } .pv-double { display: none; } }
.p-art .pv { box-shadow: 0 40px 120px -50px rgba(var(--accent), .9); }

.nowrap { white-space: nowrap; }
/* phones: give the PHANTOM and DE-ESSER cards the same tall layout as APOLLO */
@media (max-width: 640px) {
  .ug, .pv { aspect-ratio: 4 / 5; }
  .ug-head, .pv-head { top: 7%; gap: 8px; }
  .ug-title { font-size: 7.2cqi; }
  .pv-title { font-size: 11cqi; }
  .ug-tag, .pv-tag { padding: 0 16px; font-size: 13px; line-height: 1.35; }
  .ug-stage, .pv-stage { top: 33%; width: 94%; }
  .ug-fade, .pv-fade { height: 22%; }
  .ug-foot, .pv-foot { flex-direction: column; align-items: center; gap: 6px; bottom: 4%; font-size: 9px; letter-spacing: .14em; text-align: center; }
}

/* ---------- PRICING ---------- */
.pstack { display: grid; justify-items: end; gap: 0; line-height: 1; flex: 0 0 auto; }
.pstack .was, .deal-was { font-family: var(--f-mono); font-size: 13px; color: var(--faint); text-decoration: line-through; text-decoration-color: rgba(255, 79, 216, .85); text-decoration-thickness: 1.5px; }
.now { font-family: var(--f-display); font-size: 34px; letter-spacing: .01em; color: #fff; display: inline-flex; align-items: flex-start; line-height: 1; text-shadow: 0 0 24px color-mix(in srgb, var(--p) 55%, transparent); }
.now sup { font-size: .45em; margin: .12em .08em 0 0; color: color-mix(in srgb, var(--p) 40%, #fff); }
.now .cents { font-size: .45em; margin-top: .12em; color: color-mix(in srgb, var(--p) 40%, #fff); }
.chips { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.badge { display: inline-flex; align-items: center; gap: 8px; }
.badge i, .deal-live i { width: 6px; height: 6px; border-radius: 50%; background: #ff4fd8; box-shadow: 0 0 10px #ff4fd8; animation: blink 1.4s steps(2, jump-none) infinite; display: inline-block; }
.deal-save { font-family: var(--f-pixel); font-size: 10px; letter-spacing: .14em; text-transform: uppercase; color: #0b0610; background: linear-gradient(90deg, #ff6be6, #b38cff); padding: 6px 10px; font-weight: 700; box-shadow: 0 0 18px -4px rgba(255, 79, 216, .8); }
.deal-save.sm { padding: 6px 9px; }
.deal {
  --p: var(--violet); position: relative; isolation: isolate; display: grid; gap: 18px; padding: 22px 24px; border-radius: 14px; overflow: hidden;
  background: radial-gradient(120% 140% at 0% 0%, color-mix(in srgb, var(--p) 22%, transparent), transparent 55%), linear-gradient(180deg, rgba(16, 12, 26, .92), rgba(8, 7, 14, .92));
  box-shadow: 0 30px 80px -40px color-mix(in srgb, var(--p) 80%, transparent), inset 0 1px 0 rgba(255, 255, 255, .06);
}
.deal::before { content: ""; position: absolute; inset: 0; z-index: -1; padding: 1px; border-radius: inherit; pointer-events: none;
  background: conic-gradient(from var(--ang, 0deg), color-mix(in srgb, var(--p) 90%, #fff), transparent 25%, rgba(255, 107, 230, .7) 50%, transparent 75%, color-mix(in srgb, var(--p) 90%, #fff));
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask-composite: exclude; animation: dealspin 6s linear infinite; }
@property --ang { syntax: "<angle>"; inherits: false; initial-value: 0deg; }
@keyframes dealspin { to { --ang: 360deg; } }
.deal-top { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; }
.deal-live { display: inline-flex; align-items: center; gap: 8px; font-family: var(--f-pixel); font-size: 10px; letter-spacing: .16em; text-transform: uppercase; color: #ff9cec; }
.deal-main { display: flex; align-items: center; justify-content: space-between; gap: 20px; flex-wrap: wrap; }
.deal-price { display: grid; gap: 6px; }
.deal-price .now { font-size: clamp(48px, 6vw, 64px); }
.deal-note { font-family: var(--f-mono); font-size: 11px; letter-spacing: .1em; color: var(--mute); text-transform: uppercase; }
.deal-btn { height: 60px; min-width: 240px; font-size: 13px; letter-spacing: .24em; flex: 1 1 240px; max-width: 320px; }
.deal-perks { list-style: none; margin: 0; padding: 14px 0 0; border-top: 1px solid rgba(255, 255, 255, .08); display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 16px; }
.deal-perks li { font-size: 13px; color: #c9c6d8; display: flex; align-items: center; gap: 8px; min-width: 0; }
.deal-perks li::before { content: "✓"; display: grid; place-items: center; width: 18px; height: 18px; flex: 0 0 18px; border-radius: 50%; font-size: 11px; color: #fff; background: color-mix(in srgb, var(--p) 70%, transparent); }
.feat .row1 { align-items: flex-end; }
@media (max-width: 640px) {
  .deal { padding: 18px; }
  .deal-btn { max-width: none; width: 100%; }
  .deal-perks { grid-template-columns: minmax(0, 1fr); }
  .now { font-size: 28px; }
  .deal-price .now { font-size: 52px; }
}
@media (prefers-reduced-motion: reduce) { .deal::before { animation: none; } }

.deal-was { font-size: 18px; letter-spacing: .02em; color: #a9a5bb; text-decoration-thickness: 2px; }
.pstack .was { font-size: 16px; color: #a9a5bb; text-decoration-thickness: 2px; }
@media (max-width: 640px) { .deal-was { font-size: 17px; } .pstack .was { font-size: 15px; } }

/* product page proportions: bigger showcase, calmer info column */
@media (min-width: 901px) {
  .pgrid { grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: clamp(28px, 3.5vw, 56px); }
  .p-name { font-size: clamp(30px, 3.4vw, 48px); }
  .p-info { gap: 24px; }
  .deal { padding: 18px 20px; gap: 14px; }
  .deal-main { flex-direction: column; align-items: stretch; gap: 14px; }
  .deal-price .now { font-size: clamp(38px, 3.6vw, 48px); }
  .deal-btn { max-width: none; width: 100%; height: 54px; flex: 0 0 auto; }
  .deal-perks { gap: 6px 12px; }
  .deal-perks li { font-size: 12.5px; }
}
