/* BALLMATES only — original artwork is referenced without alteration. */
.ballmates-project { --blue:#647fde; --line:#273251; background:#080b14; color:#f1f1f5; font-family:'Times New Roman','Yu Mincho','Hiragino Mincho ProN',serif; }
.ballmates-project * { box-sizing:border-box; }
.ballmates-project figure { margin:0; min-width:0; }
.ballmates-project img { display:block; width:100%; height:auto; object-fit:contain; }
.ballmates-project a { color:inherit; text-decoration:none; }
.ballmates-project button { cursor:zoom-in; }
.ballmates-project a:focus-visible,.ballmates-project button:focus-visible { outline:2px solid var(--blue); outline-offset:5px; }
.ballmates-project .header { font-family:Arial,sans-serif; z-index:2; }
.ballmates-project p { font-size:1.08vw; line-height:1.95; margin:.8vw 0; }
.ballmates-hero { position:relative; display:grid; grid-template-columns:46% 50%; gap:4%; padding:9vw 4.8vw 3.4vw; align-items:center; }
.ballmates-hero-copy { position:relative; z-index:1; }
.ballmates-project .project-index { color:var(--blue); font-size:1vw; letter-spacing:.18em; margin:0 0 1.7vw; }
.ballmates-hero-copy h1 { font-weight:400; font-size:6.6vw; letter-spacing:.015em; line-height:1; margin:0; }
.ballmates-project .subtitle { font-size:1.3vw; margin:1.6vw 0; }
.blue-rule { display:block; width:4vw; height:1px; background:var(--blue); margin:1.8vw 0; }
.ballmates-hero-copy h2 { font-size:2.15vw; font-weight:400; line-height:1.55; margin:0 0 1.5vw; }
.motto { display:block; color:var(--blue); font-size:1.3vw; letter-spacing:.22em; line-height:1.75; margin-top:2.5vw; }
.ballmates-hero-art { padding:1.5vw 7vw; position:relative; background:linear-gradient(125deg,#0c1227,#141d45 60%,#11101f); border-top:1px solid #394975; border-bottom:1px solid #394975; }
.ballmates-hero-art::before { content:''; position:absolute; inset:0; background:linear-gradient(130deg,transparent 18%,#4761b433 18.1%,transparent 18.3%,transparent 80%,#706ad744 80.1%,transparent 80.3%); pointer-events:none; }
.image-enlarge { display:block; padding:0; border:0; background:none; width:100%; }
.ballmates-project figcaption { font: .8vw/1.6 Arial,sans-serif; letter-spacing:.1em; color:#95a3cf; margin-top:.8vw; }
.ballmates-section { margin:0 3vw; padding:3vw 1.8vw; border-top:1px solid var(--line); }
.section-label { color:#a0b3ed; font-weight:400; font-size:1.4vw; letter-spacing:.08em; margin:0 0 1.7vw; }
.section-copy h3 { font-weight:400; font-size:2vw; line-height:1.6; margin:0 0 1.5vw; }
.overview { display:grid; grid-template-columns:46% 50%; gap:4%; }
.challenge-grid { display:grid; grid-template-columns:1fr 1fr; gap:2vw; }
.challenge-grid article { border-left:1px solid var(--line); padding-left:1.4vw; }
.overview-details h3 { font-weight:400; font-size:1.15vw; letter-spacing:.07em; color:#9db1ec; margin:0 0 1vw; }
.overview-details .info-label { margin-top:2vw; }
.overview-details dl { font: .94vw/1.8 Arial,sans-serif; margin:0; }
.overview-details dl div { display:grid; grid-template-columns:30% 70%; padding:.35vw 0; }
.overview-details dd { margin:0; }
.overview-details dt { color:#94a0c2; }
.split { display:grid; grid-template-columns:34% 62%; gap:4%; align-items:start; }
.logo-pair { display:grid; grid-template-columns:70% 26%; gap:4%; align-items:center; margin-bottom:2vw; }
.identity-images > figure { width:82%; }
.lp-full { max-width:724px; margin-left:auto; width:100%; }
.view-lp { color:#b2c3f5; background:none; border:1px solid #647fde; border-radius:30px; padding:.8vw 1.8vw; font-size:1vw; margin-top:1.6vw; }
.promo-art { display:grid; grid-template-columns:66% 30%; gap:4%; align-items:center; }
.promo-art .motto { font-size:1.05vw; }
.approach-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); }
.approach-grid article { display:grid; grid-template-columns:3vw 1fr; gap:1vw; padding-right:2vw; }
.approach-grid article+article { border-left:1px solid var(--line); padding-left:2vw; }
.approach-grid article>span { font-size:2.5vw; color:var(--blue); }
.approach-grid h3 { font-weight:400; font-size:1.15vw; margin:.5vw 0 1vw; color:#a4b5e9; }
.next { display:flex; justify-content:space-between; align-items:center; gap:2vw; font-size:.9vw; letter-spacing:.1em; padding-bottom:3.5vw; }
.next>span { font-size:1.5vw; letter-spacing:.25em; }
.ballmates-project .image-viewer { width:min(96vw,1500px); max-width:96vw; max-height:96dvh; padding:12px 16px 20px; background:#080b14; color:#fff; border:1px solid var(--blue); overflow:auto; }
.image-viewer::backdrop { background:#000e; }
.viewer-toolbar { position:sticky; top:0; display:flex; justify-content:flex-end; padding-bottom:12px; z-index:1; }
.viewer-close { min-height:40px; background:#121b35; color:#fff; border:1px solid var(--blue); padding:8px 16px; font-size:14px; cursor:pointer!important; }
.ballmates-project .image-viewer img { width:auto; max-width:100%; max-height:calc(96dvh - 130px); margin:auto; }
.ballmates-project .image-viewer.is-long img { width:min(100%,1000px); max-height:none; }
.ballmates-project .viewer-caption { text-align:center; font:14px/1.6 Arial,sans-serif; }
html:has(.ballmates-project .image-viewer[open]) { overflow:hidden; }
@media(max-width:700px) {
 .ballmates-project .brand { top:20px; left:20px; }.ballmates-project .wordmark { font-size:22px; }.ballmates-project .brand-message { font-size:6px; margin-top:6px; }.ballmates-project .navigation { top:84px; left:20px; right:20px; justify-content:space-between; font-size:10px; }.ballmates-project .header-tools { top:22px; right:20px; gap:12px; }.ballmates-project .languages { gap:12px; font-size:8px; }.ballmates-project .menu-icon { width:32px; height:32px; gap:4px; }.ballmates-project .menu-icon i { width:14px; }
 .ballmates-hero { grid-template-columns:1fr; padding:118px 20px 28px; gap:24px; }.ballmates-project .project-index { font-size:12px; margin-bottom:18px; }.ballmates-hero-copy h1 { font-size:15vw; }.ballmates-project .subtitle { font-size:14px; margin:16px 0; }.blue-rule { width:36px; margin:20px 0; }.ballmates-hero-copy h2 { font-size:22px; margin-bottom:18px; }.ballmates-project p { font-size:14px; line-height:1.95; margin:12px 0; }.motto { font-size:12px; margin-top:20px; }.ballmates-hero-art { padding:16px 30px; }.ballmates-project figcaption { font-size:11px; margin-top:10px; }
 .ballmates-section { margin:0 20px; padding:30px 0; }.overview,.split { grid-template-columns:1fr; gap:24px; }.section-label { font-size:15px; margin-bottom:20px; }.section-copy h3 { font-size:21px; margin-bottom:18px; }.challenge-grid { grid-template-columns:1fr; gap:20px; }.challenge-grid article { padding-left:16px; }.overview-details h3 { font-size:14px; margin-bottom:12px; }.overview-details .info-label { margin-top:28px; }.overview-details dl { font-size:14px; }.overview-details dl div { grid-template-columns:1fr; gap:4px; padding:8px 0; }.logo-pair { grid-template-columns:66% 30%; gap:4%; margin-bottom:24px; }.identity-images>figure { width:100%; }.view-lp { font-size:14px; padding:12px 22px; margin-top:12px; }.promo-art { grid-template-columns:1fr; gap:12px; }.promo-art .motto { font-size:12px; margin:8px 0; }.approach-grid { grid-template-columns:1fr; }.approach-grid article,.approach-grid article+article { grid-template-columns:30px 1fr; gap:14px; padding:20px 0; border-left:0; }.approach-grid article+article { border-top:1px solid var(--line); }.approach-grid article>span { font-size:26px; }.approach-grid h3 { font-size:15px; line-height:1.5; margin:4px 0 12px; }.next { flex-wrap:wrap; gap:22px; font-size:11px; }.next>span { font-size:16px; }.ballmates-project .image-viewer { max-width:100vw; width:100vw; max-height:100dvh; padding:12px 8px 20px; }.ballmates-project .image-viewer img { max-height:calc(100dvh - 130px); }
}
@media(max-width:360px) { .ballmates-project .wordmark { font-size:18px; }.ballmates-project .brand-message { font-size:5px; }.ballmates-hero-copy h2 { font-size:20px; } }
/* Fit the complete supplied LP in the HERO display area. */
.ballmates-project .ballmates-hero-art img { width:auto; max-width:100%; max-height:48vw; margin:auto; }
@media(max-width:700px) { .ballmates-project .ballmates-hero-art img { max-height:560px; } }

/* Final adjustment: CSS viewport only; the source LP remains complete. */
@media(min-width:701px) {
 .ballmates-hero-art { padding:1.4vw; }
 .ballmates-hero-art .image-enlarge { height:31vw; overflow:hidden; }
 .ballmates-project .ballmates-hero-art img { width:100%; max-height:none; margin:0; }
}
.identity-images > figure { padding:1.4vw; border:1px solid var(--line); background:#0d1221; }
@media(max-width:700px) {
 .identity-images > figure { padding:14px; }
 .ballmates-project .section-copy p,.ballmates-project .challenge-grid p,.ballmates-project .ballmates-hero-copy > p:not(.project-index),.ballmates-project .approach-grid p { font-size:15px; line-height:1.95; }
 .overview-details dl { font-size:15px; line-height:1.85; }
 .overview-details dl div { gap:6px; padding:12px 0; }
 .overview-details dd { overflow-wrap:anywhere; }
 .approach-grid h3 { font-size:15px; line-height:1.6; overflow-wrap:anywhere; }
}
