.product-universe { color: var(--studio-ink); font-family: var(--studio-sans); }
.product-opening { width: min(1200px, calc(100% - 112px)); margin: 0 auto; padding: 58px 0 44px; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.08fr); align-items: center; gap: 56px; }
.product-intro { min-width: 0; max-width: 550px; text-align: left; container-type: inline-size; container-name: product-copy; }
.product-intro h1 { font: 400 58px/1.08 var(--studio-serif); margin: 0 0 24px; }
.product-intro p { font-size: 16px; line-height: 1.8; color: #52616b; max-width: 470px; margin: 0; }
.product-galaxy { position: relative; min-width: 0; width: 100%; height: 440px; isolation: isolate; }
.product-galaxy-stage { position: absolute; inset: 0; pointer-events: none; }
.product-galaxy-stage canvas { display: block; width: 100%; height: 100%; }
.product-galaxy:not(.has-webgl) .product-galaxy-stage canvas { visibility: hidden; }
.product-galaxy:not(.has-webgl)::before {
    position: absolute; content: ""; inset: 0; pointer-events: none;
    background: url("../assets/images/home/product-galaxy.png") center / contain no-repeat;
    mask-image: linear-gradient(transparent, black 16%, black 78%, transparent);
}
@media (min-width: 901px) {
    .product-galaxy:not(.has-webgl)::before {
        background-size: cover;
        mask-image: linear-gradient(90deg, transparent, black 12%, black 88%, transparent), linear-gradient(transparent, black 16%, black 78%, transparent);
        mask-composite: intersect;
    }
}
.product-stars { position: absolute; inset: 0; pointer-events: none; }
.product-star {
    --star-color: #0a8dd3;
    position: absolute; left: 32%; top: 40%; transform: translateY(-18px);
    display: grid; grid-template-columns: 16px minmax(0, 1fr) 14px; gap: 12px;
    align-items: start; width: max-content; max-width: calc(100% - 40px); padding: 12px;
    color: var(--studio-ink); text-decoration: none; border-radius: 6px;
    opacity: 0; pointer-events: none;
}
.product-star--gameguard { --star-color: #385a73; left: 56%; top: 58%; }
.product-star.is-flying, .product-star.is-still { pointer-events: auto; }
.product-star-light { position: relative; width: 16px; height: 16px; margin-top: 5px; }
.product-star-light::before, .product-star-light::after { position: absolute; content: ""; left: 50%; top: 50%; background: var(--star-color); transform: translate(-50%, -50%); }
.product-star-light::before { width: 3px; height: 3px; border-radius: 50%; box-shadow: 0 0 5px rgba(10, 141, 211, 0.5); }
.product-star-light::after { width: 15px; height: 15px; background: var(--star-color); clip-path: polygon(50% 0, 56% 44%, 100% 50%, 56% 56%, 50% 100%, 44% 56%, 0 50%, 44% 44%); opacity: .75; }
.product-star-copy { display: grid; gap: 5px; text-shadow: 0 0 5px #f7f9fa, 0 0 10px #f7f9fa, 0 0 15px #f7f9fa; }
.product-star-copy strong { font: 400 27px/1.15 var(--studio-serif); }
.product-star-copy > span { font-size: 11px; line-height: 1.55; color: #52616b; }
.product-star-arrow { font-size: 13px; margin-top: 7px; color: var(--star-color); opacity: .6; }
.product-star:hover, .product-star:focus-visible { background: rgba(247, 249, 250, .8); }
.product-star:hover .product-star-arrow, .product-star:focus-visible .product-star-arrow { opacity: 1; }
.product-partnership { width: min(1200px, calc(100% - 112px)); margin: 0 auto; padding: 32px 0 76px; display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(0, 1fr); align-items: center; gap: 56px; }
.product-film { min-width: 0; margin: 0; }
.product-film video { display: block; width: 100%; height: 100%; object-fit: contain; }
.product-film .studio-film-player { isolation: isolate; }
.product-film .studio-film-play { cursor: pointer; }
.product-film .studio-film-play:disabled { cursor: progress; }
.product-film .studio-film-play.is-loading i { margin: 0; animation: product-film-loading 1s linear infinite; }
.product-partnership-copy { min-width: 0; }
.product-partnership h2 { font: 400 48px/1.1 var(--studio-serif); margin: 0 0 24px; }
.product-partnership-invitation { max-width: 470px; }
.product-partnership-invitation p { font-size: 16px; line-height: 1.8; color: #52616b; margin: 0 0 24px; }
.partnership-apply { display: inline-flex; align-items: center; gap: 24px; padding: 8px 0; border: 0; background: transparent; color: var(--studio-ink); font: 600 14px/1.6 var(--studio-sans); cursor: pointer; }
.partnership-apply i { color: var(--studio-blue); transition: transform 160ms ease; }
.partnership-apply:hover { color: var(--studio-blue); }
.partnership-apply:hover i { transform: translate(2px, -2px); }
.partnership-dialog { width: min(640px, calc(100% - 40px)); max-height: calc(100dvh - 64px); margin: auto; padding: 38px 40px 28px; border: 1px solid rgba(255,255,255,.85); border-radius: 8px; background: #f7f9fa; color: var(--studio-ink); font-family: var(--studio-sans); box-shadow: 0 20px 80px rgba(37,46,51,.15); overflow-y: auto; overscroll-behavior: contain; }
.partnership-dialog::backdrop { background: rgba(37,46,51,.22); backdrop-filter: blur(9px); -webkit-backdrop-filter: blur(9px); }
body.has-partnership-dialog { overflow: hidden; }
.partnership-dialog-heading { display: flex; gap: 20px; align-items: center; justify-content: space-between; margin-bottom: 15px; }
.partnership-dialog-heading h2 { font: 400 37px/1.15 var(--studio-serif); margin: 0; outline: none; }
.partnership-close { width: 36px; height: 36px; flex: none; display: grid; place-items: center; color: var(--studio-muted); background: transparent; border: 0; border-radius: 4px; font-size: 17px; cursor: pointer; }
.partnership-close:hover { background: #eaf0f3; color: var(--studio-ink); }
#partnership-dialog-description { font-size: 13px; line-height: 1.75; color: var(--studio-muted); margin: 0 0 30px; }
.partnership-form { min-width: 0; }
.partnership-fields { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 24px 26px; margin-bottom: 24px; }
.partnership-field { min-width: 0; }
.partnership-field label { display: block; font-size: 12px; font-weight: 600; margin-bottom: 5px; color: #485a65; }
.partnership-field label span { font-weight: 400; color: var(--studio-muted); }
.partnership-field input, .partnership-field select, .partnership-field textarea { width: 100%; min-width: 0; border: 0; border-bottom: 1px solid #c6d3db; border-radius: 0; background: transparent; color: var(--studio-ink); font: 400 14px/1.6 var(--studio-sans); padding: 10px 0; outline-offset: 3px; }
.partnership-field input, .partnership-field select { height: 43px; }
.partnership-field textarea { min-height: 95px; resize: vertical; }
.partnership-field input:focus, .partnership-field select:focus, .partnership-field textarea:focus { border-color: var(--studio-blue); }
.partnership-honeypot { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.partnership-consent { display: flex; align-items: flex-start; gap: 10px; font-size: 12px; line-height: 1.7; color: #52616b; margin: 20px 0; }
.partnership-consent input { margin: 3px 0 0; width: 16px; height: 16px; flex: none; accent-color: var(--studio-blue); }
.partnership-actions { display: flex; align-items: center; gap: 22px; }
.partnership-submit { display: inline-flex; align-items: center; justify-content: space-between; gap: 24px; flex: none; min-width: 166px; min-height: 44px; padding: 11px 16px; border-radius: 6px; border: 1px solid #c6dbe7; color: #166b91; background: rgba(231,242,249,.6); font: 600 13px/1.6 var(--studio-sans); cursor: pointer; }
.partnership-submit:hover { background: #e1eef6; }
.partnership-submit:disabled { opacity: .6; cursor: wait; }
.partnership-privacy { max-width: 240px; font-size: 10px; line-height: 1.7; color: var(--studio-muted); }
.partnership-status { font-size: 12px; line-height: 1.7; margin: 16px 0 0; color: var(--studio-muted); }
.partnership-status:empty { display: none; }
.partnership-status.is-error { color: #a23949; }
.partnership-status.is-success { color: #22795e; }
@media (max-width: 1024px) {
    .product-opening { width: calc(100% - 80px); padding: 44px 0 36px; gap: 40px; }
    .product-intro h1 { font-size: 50px; }
    .product-galaxy { height: 420px; }
    .product-partnership { width: calc(100% - 80px); gap: 46px; }
    .product-partnership h2 { font-size: 42px; }
}
@media (max-width: 900px) {
    .product-opening { grid-template-columns: minmax(0, 1fr); gap: 24px; }
    .product-galaxy { height: 430px; }
    .product-partnership { grid-template-columns: minmax(0, 1fr); gap: 30px; }
    .product-partnership-copy { max-width: 560px; }
}
@media (max-width: 720px) {
    .product-opening { width: calc(100% - 40px); padding: 34px 0; gap: 0; }
    .product-intro h1 { font-size: 37px; line-height: 1.12; margin-bottom: 20px; }
    .product-intro p { font-size: 14px; line-height: 1.8; max-width: 400px; }
    .product-galaxy { width: calc(100% + 40px); height: 350px; margin-left: -20px; }
    .product-star { gap: 8px; max-width: calc(100% - 28px); padding: 10px; }
    .product-star-copy strong { font-size: 24px; }
    .product-star-copy > span { font-size: 10px; }
    .product-partnership { width: calc(100% - 40px); padding: 0 0 44px; gap: 26px; }
    .product-partnership h2 { font-size: 38px; margin-bottom: 20px; }
    .product-partnership-invitation p { font-size: 15px; margin-bottom: 16px; }
    .partnership-dialog { width: calc(100% - 28px); max-height: calc(100dvh - 32px); padding: 27px 22px 24px; }
    .partnership-dialog-heading { gap: 10px; }
    .partnership-dialog-heading h2 { font-size: 30px; }
    .partnership-fields { grid-template-columns: 1fr; gap: 21px; }
    .partnership-actions { align-items: flex-start; flex-direction: column; gap: 12px; }
    .partnership-privacy { max-width: none; }
}
@media (max-width: 360px) { .product-intro h1 { font-size: 33px; } .partnership-dialog-heading h2 { font-size: 27px; } }
@keyframes product-film-loading { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .partnership-apply i { transition: none; } .product-film .studio-film-play.is-loading i { animation: none; } }
@container product-copy (max-width: 510px) { .product-intro h1 { font-size: 50px; } }
@container product-copy (max-width: 440px) { .product-intro h1 { font-size: 46px; } }
@container product-copy (max-width: 405px) { .product-intro h1 { font-size: 42px; } }
@container product-copy (max-width: 370px) { .product-intro h1 { font-size: 37px; } }
@container product-copy (max-width: 325px) { .product-intro h1 { font-size: 33px; } }
@container product-copy (max-width: 290px) { .product-intro h1 { font-size: 31px; } }
