/* sponsors.css */
.section{padding:clamp(26px,3.2vw,44px) 0}
.section.tight{padding:clamp(18px,2.4vw,36px) 0}
.hero-compact{display:flex;align-items:center;justify-content:space-between;gap:14px}
.hero-right{display:flex;align-items:center;gap:12px}
.badge3d-wrap{width:var(--badge-size,96px);height:var(--badge-size,96px);min-width:84px;min-height:84px;position:relative}
.badge3d .badge3d-core{position:absolute;inset:0}
.badge3d .badge3d-img{position:absolute;inset:10% 10% 10% 10%;width:80%;height:80%;object-fit:contain}

.s-intro{border:1px solid var(--edge);border-radius:var(--radius);padding:16px;background:linear-gradient(180deg,rgba(255,255,255,.03),rgba(255,255,255,.01));box-shadow:var(--shadow)}
.s-group{display:grid;gap:12px}
.s-head{display:flex;align-items:baseline;gap:10px}
.s-head h3{margin:.1rem 0}
.hint{color:var(--muted)}

.logo-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:14px}
.sponsor{grid-column:span 3;position:relative;border:1px solid var(--edge);border-radius:16px;background:linear-gradient(180deg,rgba(255,255,255,.03),rgba(255,255,255,.01));box-shadow:var(--shadow);text-decoration:none;color:inherit;overflow:hidden;isolation:isolate}
.sponsor.span-2{grid-column:span 6}
.sponsor figure{margin:0;position:relative}
.sponsor img{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:contain;padding:12%;filter:grayscale(100%) contrast(92%) opacity(.85);transition:filter .25s ease, transform .25s ease}
.sponsor::after{content:"";position:absolute;inset:-2px;background:radial-gradient(480px 240px at 80% -10%,rgba(255,138,92,.12),transparent 60%),radial-gradient(480px 240px at 20% 110%,rgba(180,60,30,.12),transparent 60%);z-index:-1}
.sponsor figcaption{position:absolute;left:0;right:0;bottom:10px;display:flex;align-items:center;justify-content:center;gap:8px;opacity:0;transform:translateY(6px);transition:opacity .2s ease, transform .2s ease;font-weight:900;letter-spacing:.03em;color:#ffd3c6;text-shadow:0 8px 30px rgba(0,0,0,.5)}
.sponsor figcaption span{opacity:.8;transition:transform .18s ease}
.sponsor:hover img{filter:grayscale(0%) contrast(100%) opacity(1);transform:scale(1.02)}
.sponsor:hover figcaption{opacity:1;transform:translateY(0)}
.sponsor:hover figcaption span{transform:translateX(2px)}
@media(max-width:1100px){.sponsor{grid-column:span 4}.sponsor.span-2{grid-column:span 8}}
@media(max-width:780px){.sponsor{grid-column:span 6}.sponsor.span-2{grid-column:span 12}}
@media(max-width:540px){.sponsor{grid-column:span 12}}

.cta-ribbon.alt{background:linear-gradient(180deg,rgba(255,255,255,.04),rgba(255,255,255,.02));border:1px solid var(--edge);border-radius:var(--radius);padding:16px;box-shadow:var(--shadow);display:flex;align-items:center;justify-content:space-between;gap:14px}
@media(max-width:720px){.cta-ribbon.alt{flex-direction:column;align-items:flex-start}}
.cta-line{font-weight:900;letter-spacing:.03em}
.cta-sub{color:var(--muted);margin-top:2px}
.text-cta{color:#ffd3c6;text-decoration:none;border-bottom:1px dotted rgba(255,138,92,.45);padding-bottom:2px;display:inline-flex;align-items:center;gap:8px;font-weight:900;letter-spacing:.03em}
.text-cta span{opacity:.8;transform:translateX(0);transition:transform .18s ease,opacity .18s ease}
.text-cta:hover{color:#fff;border-bottom-color:rgba(255,179,157,.8)}
.text-cta:hover span{transform:translateX(2px);opacity:1}
.text-cta.big{font-size:1.05rem}
