.ph { padding: var(--frame); }
.ph .frame { min-height: clamp(470px, 68svh, 640px); display: flex; align-items: flex-end; }
.ph-content {
  position: relative; width: 100%; max-width: 1180px;
  padding: clamp(120px, 16vh, 170px) clamp(24px, 5vw, 84px) clamp(36px, 6vh, 72px);
}
.ph-kick { margin-bottom: clamp(16px, 3vh, 28px); }
.ph-kick b { color: var(--red); font-weight: 600; }
.ph-title {
  font-family: var(--font-display); font-weight: 400; text-transform: uppercase;
  font-size: clamp(28px, 6.4vw, 100px); line-height: 1.03; letter-spacing: .075em;
}
.ph-title .ln { display: block; overflow: hidden; padding-bottom: .1em; margin-bottom: -.1em; }
.ph-title .ln > span { display: inline-block; animation: rise 1.1s var(--ease) both; animation-delay: calc(.2s + var(--i, 0) * .12s); }
.ph-verb { margin-top: 18px; font-family: var(--font-display); font-weight: 600; font-size: clamp(18px, 2vw, 26px); color: var(--red); }
.ph-sub { margin-top: 16px; max-width: 600px; color: rgba(245,241,240,.86); font-size: clamp(15px, 1.3vw, 18px); animation: fade 1.2s .8s var(--ease) both; }

.art-prod, .art-dig, .art-exp, .art-vx { position: absolute; inset: 0; z-index: -3; overflow: hidden; }
.art-prod { background: radial-gradient(60% 70% at 84% 30%, rgba(240,68,82,.6), transparent 66%), linear-gradient(160deg, #230e15, #09080d 66%); }
.art-prod .strip {
  position: absolute; right: 12%; top: -8%; bottom: -8%; width: 20%;
  background: repeating-linear-gradient(180deg, rgba(245,241,240,.1) 0 46px, transparent 46px 60px);
  border-left: 1px solid rgba(245,241,240,.18); border-right: 1px solid rgba(245,241,240,.18);
  transform: rotate(9deg);
}
.art-prod .lens {
  position: absolute; right: 12%; bottom: 18%; width: min(30vw, 380px); aspect-ratio: 1; border-radius: 50%;
  border: 1px solid rgba(240,68,82,.7);
  background: radial-gradient(circle, rgba(255,226,226,.9) 0 5%, rgba(240,68,82,.5) 24%, transparent 62%);
  box-shadow: 0 0 90px rgba(240,68,82,.5), inset 0 0 60px rgba(240,68,82,.3);
  animation: breathe 6s ease-in-out infinite alternate;
}
@keyframes breathe { from { transform: scale(.94); opacity: .8; } to { transform: scale(1.04); opacity: 1; } }

.art-dig { background: radial-gradient(56% 64% at 20% 20%, rgba(150,105,173,.5), transparent 66%), linear-gradient(200deg, #1d1428, #09080d 66%); }
.art-dig .bars { position: absolute; right: 7%; bottom: 0; height: 66%; width: min(46%, 640px); display: flex; align-items: flex-end; gap: 12px; }
.art-dig .bars i {
  flex: 1; height: var(--h); border-radius: 5px 5px 0 0; transform-origin: bottom;
  background: linear-gradient(0deg, rgba(240,68,82,.9), rgba(150,105,173,.7)); opacity: .75;
  animation: grow 3.4s ease-in-out infinite alternate; animation-delay: var(--dl, 0s);
}
@keyframes grow { from { transform: scaleY(.72); } to { transform: scaleY(1.04); } }

.art-exp { background: radial-gradient(56% 64% at 76% 30%, rgba(150,105,173,.36), transparent 66%), linear-gradient(170deg, #1f1228, #09080d 66%); }
.art-exp .ring {
  position: absolute; right: -4%; top: 6%; width: min(52vw, 700px); aspect-ratio: 1; border-radius: 50%;
  background: conic-gradient(from 200deg, var(--red), var(--violet), transparent 58%, var(--red));
  -webkit-mask: radial-gradient(farthest-side, transparent calc(100% - 4px), #000 calc(100% - 3px));
  mask: radial-gradient(farthest-side, transparent calc(100% - 4px), #000 calc(100% - 3px));
  filter: drop-shadow(0 0 34px rgba(240,68,82,.6));
  animation: spin 60s linear infinite;
}
.art-exp .ring.r2 { width: min(34vw, 460px); right: 5%; top: 18%; animation-duration: 40s; animation-direction: reverse; opacity: .6; }
@keyframes spin { to { transform: rotate(360deg); } }

.sec { padding: clamp(80px, 11vw, 160px) var(--gut); position: relative; }
.sec-in { max-width: 1280px; margin: 0 auto; }
.sec-alt { background: var(--deep); }
.h2 { font-size: clamp(34px, 5.4vw, 84px); letter-spacing: -.04em; line-height: .95; margin-top: 22px; }
.h2 span { display: block; }
.lead { font-size: clamp(17px, 1.6vw, 22px); color: var(--muted); max-width: 640px; }
.lead + .lead { margin-top: 16px; }
.sec-head { margin-bottom: clamp(44px, 6vw, 84px); }

.cap-rows { border-bottom: 1px solid var(--border); }
.cr {
  display: grid; grid-template-columns: clamp(80px, 10vw, 150px) 1fr 1.1fr; gap: clamp(20px, 4vw, 64px); align-items: start;
  padding: clamp(28px, 4vw, 50px) 0; border-top: 1px solid var(--border);
  transition: background-color .4s, padding .5s var(--ease);
}
.cr:hover { background: linear-gradient(90deg, rgba(240,68,82,.08), transparent 70%); padding-left: 18px; }
.cr-n {
  font-family: var(--font-display); font-weight: 700; font-size: clamp(44px, 6vw, 92px); line-height: .85;
  letter-spacing: -.05em; color: transparent; -webkit-text-stroke: 1px rgba(240,68,82,.7);
}
.cr-t { font-family: var(--font-display); font-weight: 700; font-size: clamp(24px, 2.8vw, 40px); letter-spacing: -.03em; line-height: 1.05; }
.cr-d { color: var(--muted); }
.cr-e { margin-top: 16px; font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--faint); }
.cr-e b { display: block; color: var(--red); font-weight: 600; margin-bottom: 6px; letter-spacing: .22em; }

.pj-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 14px; }
.pj {
  display: flex; flex-direction: column; overflow: hidden;
  border: 1px solid var(--border); border-radius: var(--r-md); background: var(--deep);
  transition: border-color .4s, transform .5s var(--ease);
}
.pj:hover { border-color: rgba(240,68,82,.5); transform: translateY(-4px); }
.pj-img { position: relative; aspect-ratio: 16 / 10; display: grid; place-items: center; padding: 8%; overflow: hidden; }
.pj-img .mark { font-size: clamp(22px, 2.4vw, 34px); }
.pj-img.has-img .mark { display: none; }
.pj-body { padding: 22px 24px 26px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.pj-st { font-size: 10px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--red); }
.pj-n { font-family: var(--font-display); font-weight: 700; font-size: 24px; letter-spacing: -.02em; line-height: 1.1; }
.pj-d { color: var(--muted); font-size: 13.5px; flex: 1; }
.pj-go { margin-top: 10px; font-size: 10.5px; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; }

.dg { display: grid; grid-template-columns: 5fr 7fr; gap: clamp(32px, 6vw, 96px); align-items: start; }
.dg-side { position: sticky; top: 120px; }
.dg-list { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.dg-c {
  padding: 26px 26px 28px; border: 1px solid var(--border2); border-radius: var(--r-md);
  background: linear-gradient(160deg, rgba(150,105,173,.12), rgba(16,16,20,.6));
  transition: border-color .4s, transform .5s var(--ease);
}
.dg-c:first-child { grid-column: 1 / -1; }
.dg-c:hover { border-color: rgba(150,105,173,.7); transform: translateY(-3px); }
.dg-c .n { font-family: var(--font-mono); font-size: 11px; color: var(--violet); letter-spacing: .12em; }
.dg-c h3 { font-family: var(--font-display); font-weight: 700; font-size: clamp(20px, 2vw, 26px); letter-spacing: -.02em; line-height: 1.1; margin: 10px 0 10px; }
.dg-c p { color: var(--muted); font-size: 14px; }
.dg-c .e { display: block; margin-top: 14px; font-size: 10.5px; letter-spacing: .12em; text-transform: uppercase; color: var(--faint); }

.eng-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.eng {
  padding: clamp(26px, 3vw, 40px); border: 1px solid var(--border2); border-radius: var(--r-lg);
  display: flex; flex-direction: column; gap: 14px; min-height: 240px; background: var(--void);
}
.eng h3 { font-family: var(--font-display); font-weight: 700; font-size: clamp(26px, 2.8vw, 38px); letter-spacing: -.03em; }
.eng p { color: var(--muted); }
.eng.alt { background: linear-gradient(160deg, rgba(240,68,82,.14), rgba(150,105,173,.14)); border-color: rgba(240,68,82,.4); }
.eng .tlink { margin-top: auto; align-self: flex-start; }

.xp-grid { display: grid; grid-template-columns: repeat(12, 1fr); gap: 14px; }
.xp-c {
  position: relative; isolation: isolate; overflow: hidden;
  grid-column: span var(--s, 6); grid-row: span var(--r, 1);
  padding: clamp(28px, 3.4vw, 48px); min-height: 280px;
  display: flex; flex-direction: column; gap: 14px; justify-content: flex-end;
  border: 1px solid var(--border2); border-radius: var(--r-lg); background: var(--plum);
}
.xp-c::before {
  content: ''; position: absolute; inset: 0; z-index: -1; opacity: 0; transition: opacity .4s;
  background: radial-gradient(420px circle at var(--mx, 50%) var(--my, 50%), rgba(150,105,173,.36), transparent 62%);
}
.xp-c:hover::before { opacity: 1; }
.xp-c:hover { border-color: rgba(150,105,173,.7); }
.xp-c .n { font-family: var(--font-mono); font-size: 11px; color: var(--red); letter-spacing: .12em; margin-bottom: auto; }
.xp-c h3 { font-family: var(--font-display); font-weight: 700; font-size: clamp(24px, 2.6vw, 38px); letter-spacing: -.03em; line-height: 1.04; }
.xp-c.big h3 { font-size: clamp(34px, 4.6vw, 70px); }
.xp-c p { color: var(--muted); max-width: 440px; }
.xp-c .e { font-size: 10.5px; letter-spacing: .12em; text-transform: uppercase; color: var(--faint); }

.svb { padding: clamp(90px, 12vw, 170px) var(--gut); position: relative; overflow: hidden; }
.svb-in { max-width: 1280px; margin: 0 auto; position: relative; }
.svb-prod { background: var(--void); }
.svb-prod .svb-in { display: grid; grid-template-columns: 5fr 7fr; gap: clamp(32px, 6vw, 96px); }
.svb-dig { background: var(--deep); }
.svb-dig::before { content: ''; position: absolute; inset: 0; background: radial-gradient(50% 50% at 90% 20%, rgba(150,105,173,.22), transparent 70%); }
.svb-dig .svb-in { display: grid; grid-template-columns: 7fr 5fr; gap: clamp(32px, 6vw, 96px); }
.svb-dig .svb-head { order: 2; }
.svb-exp { background: var(--plum); }
.svb-exp::before { content: ''; position: absolute; inset: 0; background: radial-gradient(60% 50% at 50% 0%, rgba(240,68,82,.14), transparent 70%); }
.svb-exp .svb-head { text-align: center; max-width: 820px; margin: 0 auto clamp(44px, 6vw, 80px); display: flex; flex-direction: column; align-items: center; }
.svb-num {
  display: block; font-family: var(--font-display); font-weight: 700; line-height: .8; letter-spacing: -.05em;
  font-size: clamp(110px, 17vw, 260px); color: transparent; -webkit-text-stroke: 1px rgba(245,241,240,.2);
}
.svb-t { font-family: var(--font-display); font-weight: 400; text-transform: uppercase; letter-spacing: .1em; font-size: clamp(30px, 4.2vw, 66px); line-height: 1; margin-top: 8px; }
.svb-v { font-family: var(--font-display); font-weight: 600; color: var(--red); font-size: 18px; margin-top: 12px; }
.svb-tag { font-family: var(--font-display); font-weight: 600; font-size: clamp(19px, 1.9vw, 26px); margin-top: 22px; line-height: 1.25; }
.svb-p { color: var(--muted); margin-top: 16px; max-width: 520px; }
.svb-exp .svb-p { margin-left: auto; margin-right: auto; }
.svb-acts { display: flex; flex-wrap: wrap; align-items: center; gap: 20px 28px; margin-top: 34px; }
.svb-exp .svb-acts { justify-content: center; }
.svb-list { display: flex; flex-direction: column; }
.svb-list .it { padding: 22px 0; border-top: 1px solid var(--border); display: grid; grid-template-columns: 1fr; gap: 6px; }
.svb-list .it:last-child { border-bottom: 1px solid var(--border); }
.svb-list h3 { font-family: var(--font-display); font-weight: 700; font-size: clamp(20px, 2vw, 28px); letter-spacing: -.02em; }
.svb-list .ex { font-size: 12px; letter-spacing: .08em; color: var(--faint); }
.svb-label { font-size: 10.5px; font-weight: 600; letter-spacing: .26em; text-transform: uppercase; color: var(--red); margin-bottom: 18px; display: block; }
.svb-cards { display: grid; grid-template-columns: repeat(5, 1fr); gap: 12px; position: relative; }
.svb-cards .c { padding: 24px 20px; border: 1px solid var(--border2); border-radius: var(--r-md); background: rgba(16,16,20,.5); transition: border-color .4s, transform .5s var(--ease); }
.svb-cards .c:hover { border-color: var(--red); transform: translateY(-4px); }
.svb-cards h3 { font-family: var(--font-display); font-weight: 700; font-size: 18px; letter-spacing: -.01em; line-height: 1.15; }
.svb-cards .ex { display: block; margin-top: 12px; font-size: 11px; line-height: 1.6; color: var(--faint); }

.ab-two { display: grid; grid-template-columns: 4fr 8fr; gap: clamp(28px, 6vw, 96px); align-items: start; }
.ab-big { font-family: var(--font-display); font-weight: 600; font-size: clamp(26px, 3.4vw, 50px); letter-spacing: -.03em; line-height: 1.12; }
.ab-txt { color: var(--muted); font-size: clamp(16px, 1.3vw, 18px); margin-top: 28px; max-width: 640px; }
.ab-txt + .ab-txt { margin-top: 16px; }
.ab-quote { text-align: left; }
.ab-quote .s { font-family: var(--font-display); font-weight: 500; font-size: clamp(20px, 2.6vw, 36px); letter-spacing: -.02em; color: var(--muted); }
.ab-quote .b { display: block; font-family: var(--font-display); font-weight: 700; letter-spacing: -.05em; line-height: .92; font-size: clamp(48px, 10.6vw, 170px); margin-top: 18px; }
.ab-pr { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(20px, 3vw, 48px); margin-top: clamp(40px, 5vw, 70px); }
.ab-pr > div { padding-top: 24px; border-top: 1px solid var(--border2); }
.ab-pr .n { font-family: var(--font-mono); font-size: 11px; color: var(--red); letter-spacing: .12em; }
.ab-pr h3 { font-family: var(--font-display); font-weight: 700; font-size: clamp(24px, 2.4vw, 34px); letter-spacing: -.03em; margin: 12px 0 10px; }
.ab-pr p { color: var(--muted); font-size: 15px; }
.ab-band { background: linear-gradient(120deg, rgba(240,68,82,.12), rgba(150,105,173,.14)); border-top: 1px solid var(--border2); border-bottom: 1px solid var(--border2); }

.ct { display: grid; grid-template-columns: 7fr 5fr; gap: clamp(32px, 6vw, 96px); align-items: start; }
.fld { display: flex; flex-direction: column; gap: 8px; margin-bottom: 22px; }
.fld label, .fld .lb { font-size: 11px; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: var(--muted); }
.fld input, .fld textarea {
  width: 100%; font: inherit; font-size: 16px; color: var(--white);
  background: var(--deep); border: 1px solid var(--border2); border-radius: 14px; padding: 16px 18px;
  transition: border-color .25s, box-shadow .25s;
}
.fld textarea { min-height: 170px; resize: vertical; }
.fld [aria-invalid="true"] { border-color: var(--red); }
.fld input:focus, .fld textarea:focus { outline: none; border-color: var(--red); box-shadow: 0 0 0 4px rgba(240,68,82,.16); }
.fld ::placeholder { color: var(--faint); }
.f-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.chips { display: flex; flex-wrap: wrap; gap: 10px; }
.chips label { cursor: pointer; }
.chips label { position: relative; }
.chips .fld input, .chips input { position: absolute; left: 0; top: 0; width: 1px; height: 1px; padding: 0; border: 0; opacity: 0; pointer-events: none; }
.chips span {
  display: inline-block; padding: 12px 20px; border-radius: 999px; border: 1px solid var(--border2);
  font-size: 11px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--muted);
  transition: color .25s, border-color .25s, background-color .25s;
}
.chips label:hover span { color: var(--white); }
.chips input:checked + span { color: var(--white); border-color: var(--red); background: var(--red-dim); }
.chips input:focus-visible + span { outline: 2px solid var(--red); outline-offset: 3px; }
.f-acts { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 8px; }
.f-note { margin-top: 18px; font-size: 13px; color: var(--faint); max-width: 520px; }
.f-err { display: none; margin: 0 0 18px; padding: 14px 18px; border-radius: 12px; border: 1px solid rgba(240,68,82,.6); background: var(--red-dim); font-size: 14px; }
.f-err.show { display: block; }
.ct-side { display: flex; flex-direction: column; gap: 14px; }
.ct-side h3 { font-size: 11px; font-weight: 600; letter-spacing: .24em; text-transform: uppercase; color: var(--faint); margin-bottom: 6px; }
.ct-link {
  display: flex; align-items: center; gap: 18px; padding: 22px 24px;
  border: 1px solid var(--border2); border-radius: var(--r-md); background: var(--deep);
  transition: border-color .3s, background-color .3s;
}
.ct-link:hover { border-color: var(--red); background: var(--red-dim); }
.ct-link .ic { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--red); color: var(--red); flex-shrink: 0; }
.ct-link .ic svg { width: 18px; height: 18px; }
.ct-link .tx { display: flex; flex-direction: column; min-width: 0; }
.ct-link .lb { font-size: 10px; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: var(--faint); }
.ct-link .vl { font-size: 15px; font-weight: 500; overflow-wrap: anywhere; }
.ct-meta { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: var(--border); border: 1px solid var(--border); border-radius: var(--r-md); overflow: hidden; margin-top: 10px; }
.ct-meta div { background: var(--void); padding: 20px 22px; display: flex; flex-direction: column; gap: 6px; }
.ct-meta .lb { font-size: 10px; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: var(--faint); }
.ct-meta .vl { font-size: 14px; font-weight: 500; }

.vxp { min-height: 100svh; display: flex; flex-direction: column; justify-content: flex-end; padding-top: calc(var(--nav-h) + 80px); }
.vxp .vx-inner { width: 100%; }
.vc-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin-top: clamp(36px, 5vw, 64px); }
.vc { padding: 28px 24px 32px; border: 1px solid rgba(150,105,173,.35); border-radius: var(--r-md); background: rgba(150,105,173,.06); transition: border-color .4s, background-color .4s; }
.vc:hover { border-color: var(--violet); background: rgba(150,105,173,.14); }
.vc .n { font-family: var(--font-mono); font-size: 11px; color: var(--violet); letter-spacing: .14em; }
.vc h3 { font-family: var(--font-display); font-weight: 500; font-size: clamp(26px, 3vw, 42px); letter-spacing: .04em; margin: 20px 0 12px; }
.vc p { color: var(--muted); font-size: 14.5px; }
.vs-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-top: clamp(36px, 5vw, 64px); }
.vs { padding: clamp(26px, 3vw, 40px); border: 1px solid rgba(150,105,173,.4); border-radius: var(--r-lg); display: flex; flex-direction: column; gap: 16px; align-items: flex-start; }
.vs .vx-mono { margin-bottom: 4px; }
.vs p { color: var(--muted); max-width: 440px; }
.btn-off {
  display: inline-flex; align-items: center; padding: 14px 26px; border-radius: 999px;
  border: 1px dashed var(--border2); color: var(--faint);
  font-size: 11px; font-weight: 600; letter-spacing: .22em; text-transform: uppercase; cursor: not-allowed;
}

.wc-head { margin-bottom: clamp(40px, 5vw, 72px); }
.wc-head .lead { margin-top: 24px; }
.wc-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0 clamp(28px, 5vw, 80px); }
.wc-item {
  display: grid; grid-template-columns: 56px 1fr; gap: 12px; padding: clamp(24px, 3vw, 36px) 0;
  border-top: 1px solid var(--border2); transition: border-color .4s;
}
.wc-item:hover { border-top-color: var(--red); }
.wc-item .n { font-family: var(--font-mono); font-size: 11px; letter-spacing: .12em; color: var(--red); padding-top: 8px; }
.wc-item h3 { font-family: var(--font-display); font-weight: 700; font-size: clamp(22px, 2.4vw, 32px); letter-spacing: -.03em; line-height: 1.08; }
.wc-item p { margin-top: 10px; color: var(--muted); font-size: 15px; max-width: 460px; }

@media (max-width: 1100px) {
  .svb-cards { grid-template-columns: repeat(2, 1fr); }
  .vc-grid { grid-template-columns: repeat(2, 1fr); }
  .eng-grid { grid-template-columns: 1fr; }
  .eng { min-height: 0; }
}

@media (max-width: 900px) {
  .cr { grid-template-columns: 70px 1fr; }
  .cr > div:last-child { grid-column: 1 / -1; }
  .dg, .svb-prod .svb-in, .svb-dig .svb-in, .ab-two, .ct, .vs-grid { grid-template-columns: 1fr; }
  .dg-side { position: static; }
  .svb-dig .svb-head { order: 0; }
  .dg-list { grid-template-columns: 1fr; }
  .xp-c { grid-column: span 12; grid-row: span 1; min-height: 240px; }
  .ab-pr { grid-template-columns: 1fr; }
  .wc-grid { grid-template-columns: 1fr; }
  .f-row { grid-template-columns: 1fr; }
}

@media (max-width: 560px) {
  .svb-cards, .vc-grid { grid-template-columns: 1fr; }
  .ct-meta { grid-template-columns: 1fr; }
}
.ph-photo { position: absolute; inset: 0; z-index: -2; overflow: hidden; background: var(--night); }
.ph-photo .pi { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 40%; opacity: 0; transition: opacity .8s; }
.ph-photo.has-img .pi { opacity: 1; }
.ph-photo:not(.has-img) { display: none; }
.ph-photo .pi { object-position: 78% 40%; }
