/* Shared Vishnu / AI no Gakusha / Matataki character identity. */
img.vishnu-mascot{height:auto;object-fit:contain;mix-blend-mode:multiply;filter:none!important;background:transparent!important}
.vm-brand-team{width:min(1280px,calc(100% - 80px));margin:0 auto;padding:80px 0;font-family:'Noto Sans JP','Hiragino Kaku Gothic ProN',sans-serif;color:inherit}
.vm-team-heading{max-width:760px;margin-bottom:32px}
.vm-team-heading>p:first-child{font-size:14px;font-weight:800;letter-spacing:.1em;color:#846117;margin:0 0 16px}
.vm-team-heading h2{font-size:clamp(30px,3.1vw,46px);font-weight:900;line-height:1.5;margin:0 0 20px}
.vm-team-heading>p:last-child{font-size:18px;font-weight:600;line-height:1.9;margin:0}
.vm-character-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.vm-character{min-width:0;overflow:hidden;background:#f8f4eb;color:#202831;border:1px solid #e5dcc6;border-radius:16px;padding:24px}
.vm-character-art{display:flex;justify-content:center;align-items:flex-end;height:240px;padding:8px 16px 16px;background:#f8f4eb;isolation:isolate}
.vm-character-art img.vishnu-mascot{width:100%;height:100%;max-width:225px;display:block}
.vm-character-copy h3{font-size:22px;line-height:1.5;font-weight:900;margin:16px 0 12px}
.vm-character-copy h4{font-size:19px;line-height:1.6;margin:10px 0;font-weight:800}
.vm-character-copy p{font-size:17px;line-height:1.9;margin:0;font-weight:600;color:#3e4950}
.vm-character-copy .vm-quote{color:#876019;font-size:17px;font-weight:800;margin-bottom:12px}
.vm-character-copy>a{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:48px;margin-top:20px;color:#202831;font-size:16px;font-weight:800;text-decoration:none;border-bottom:2px solid #b78b22;padding:10px 0}
.vm-character-copy>a:hover{color:#795b12}
.vm-return-links{display:flex;align-items:center;flex-wrap:wrap;gap:10px 24px}
.vm-return-links a{min-height:44px;display:inline-flex;align-items:center;font-size:15px;font-weight:800;line-height:1.6}
.vm-gallery-guide .vm-character-grid{padding:10px 0 32px}
.vm-gallery-guide .vm-character-art{height:200px}
.gallery26 .vm-gallery-guide summary{color:inherit}
.gallery26 .vm-gallery-guide summary>span:first-child{color:#c0ac6f;font-size:13px}
.gallery26 .vm-gallery-guide summary>strong{font-size:20px}
.gallery26 .vm-gallery-guide[open] summary>span:last-child{transform:rotate(45deg)}
.vm-creator-art{position:relative;overflow:hidden;border-radius:12px;border:1px solid #51452a;aspect-ratio:3/2}
.vm-creator-art img{display:block;width:100%;height:100%;object-fit:cover}
.vm-creator-art>span{position:absolute;left:20px;bottom:16px;background:#13161be6;padding:8px 12px;font-size:12px;font-weight:800;letter-spacing:.08em;color:#f3c24a}
.gallery26 .creator{gap:48px}
.gallery26 .creator-copy .vm-return-links{margin-top:20px;align-items:flex-start;flex-direction:column;gap:6px}
.gallery26 .creator-copy .vm-return-links a{font-size:17px;margin:0}
.gallery26 .invitation-art>img{object-fit:contain;object-position:center;height:100%;top:0;background:#10151d}
.gallery26 .invitation-art:after{background:linear-gradient(180deg,#090d1359,transparent 27%,transparent 74%,#090d13a6)}
.gallery26 .invitation-caption p{font-weight:800}
.gallery26 .invitation-top{align-items:flex-start;flex-wrap:wrap;gap:12px}
.gallery26 .invitation-top .vm-return-links{gap:4px 18px}
.gallery26 .invitation-top .vm-return-links a{font-size:15px;min-height:44px}
.gallery26 .gallery-toolbar nav{flex-wrap:wrap}
.vm-brand-team a:focus-visible,.vm-gallery-guide summary:focus-visible,.vm-gallery-guide a:focus-visible,.vm-return-links a:focus-visible{outline:3px solid #e2ac18;outline-offset:5px}
.vm-tools{background:#f8f4eb;border:3px solid #2d2b26;border-radius:24px;overflow:hidden;color:#292824;font-family:'Noto Sans JP','Hiragino Kaku Gothic ProN',sans-serif}
.vm-tools-heading{background:#ffcf4c;padding:32px 24px;text-align:center}
.vm-tools-heading>p{font-size:18px;font-weight:800;margin:0 0 14px}
.vm-tools-heading h2{font-size:clamp(28px,3vw,42px);font-weight:900;line-height:1.5;margin:0}
.vm-tools ul{list-style:none;padding:24px;margin:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.vm-tools li{background:#fff;padding:24px 14px;border:2px solid #d3cbb9;border-radius:12px;text-align:center}
.vm-tools li h3{font-size:19px;line-height:1.5;font-weight:900;margin:0 0 10px}
.vm-tools li p{font-size:16px;line-height:1.7;font-weight:600;margin:0;color:#53544e}
.vm-tools-note{display:flex;gap:24px;align-items:center;padding:4px 28px 24px;background:#f8f4eb;isolation:isolate}
.vm-tools-note img{width:120px;height:160px;flex-shrink:0}
.vm-tools-note p{font-size:19px;font-weight:800;line-height:1.9;margin:0}
.vm-tools-note strong{color:#876019}
@media(max-width:800px){.vm-tools ul{grid-template-columns:repeat(2,minmax(0,1fr));padding:16px;gap:10px}.vm-tools li{padding:18px 8px}.vm-tools li h3{font-size:17px}.vm-tools li p{font-size:16px}.vm-tools-note{padding:0 16px 20px;gap:14px}.vm-tools-note img{width:80px;height:120px}.vm-tools-note p{font-size:17px}.vm-tools-heading{padding:26px 16px}}
@media(max-width:800px){
 .vm-brand-team{width:calc(100% - 40px);padding:52px 0}
 .vm-team-heading>p:last-child{font-size:17px}
 .vm-character-grid{grid-template-columns:1fr;gap:16px}
 .vm-character{display:grid;grid-template-columns:100px minmax(0,1fr);gap:18px;padding:20px 16px;align-items:start}
 .vm-character-art,.vm-gallery-guide .vm-character-art{height:148px;padding:4px 0;position:sticky;top:90px}
 .vm-character-copy h3{font-size:20px;margin:0 0 10px}
 .vm-character-copy h4{font-size:18px}
 .vm-character-copy p,.vm-character-copy .vm-quote{font-size:16px;line-height:1.85}
 .vm-character-copy>a{font-size:16px;margin-top:12px}
 .gallery26 .creator{gap:28px}
 .gallery26 .invitation-art{min-height:220px}
 .gallery26 .invitation-art>img{object-fit:contain;height:100%;top:0;object-position:center}
 .gallery26 .invitation-caption{left:20px;bottom:12px}
 .gallery26 .invitation-caption>span{display:none}
 .gallery26 .invitation-caption p{font-size:17px;padding:5px 10px;background:#10151dcc;border-radius:4px}
 .gallery26 .invitation-art .gate-brand{top:14px;left:20px;font-size:24px}
 .gallery26 .invitation-art .gate-brand small{font-size:9px}
 .gallery26 .vm-gallery-guide summary>strong{font-size:19px}
}
@media(max-width:380px){.vm-character{grid-template-columns:78px minmax(0,1fr);gap:12px;padding:18px 12px}.vm-character-art,.vm-gallery-guide .vm-character-art{height:118px}.vm-character-copy h3{font-size:18px}.vm-return-links{gap:8px 14px}}
