.gallery-section{background:linear-gradient(#fff 0%,#fbfdff 18%,#f2f9fc 100%);padding:24px 0 96px}.gallery-intro{text-align:center;margin-bottom:38px}.gallery-intro p{color:var(--text-gray);max-width:720px;margin:0 auto;font-size:1rem}.bento-grid{grid-template-columns:repeat(4,1fr);grid-auto-rows:210px;gap:18px;display:grid}.bento-item{grid-area:span 1/span 1}.bento-item.wide{grid-column:span 2}.bento-item.tall{grid-row:span 2}.bento-item.large{grid-area:span 2/span 2}.bento-card{border-radius:var(--radius-lg);isolation:isolate;background:linear-gradient(135deg,#dceef6 0%,#eff8fb 100%);border:1px solid #b9dfecbf;height:100%;text-decoration:none;transition:transform .35s,box-shadow .35s,border-color .35s;display:block;position:relative;overflow:hidden;box-shadow:0 12px 28px #00648c1f}.bento-card:hover{z-index:2;border-color:#1da8c873;transform:translateY(-6px);box-shadow:0 22px 42px #20799a33}.bento-card:before{content:"";z-index:0;background:linear-gradient(110deg,#fff0 20%,#ffffff94 45%,#fff0 70%) 200% 0/220% 100%,linear-gradient(135deg,#b2ddecf2 0%,#e2f3f9fa 100%) 0 0/100% 100%;transition:opacity .35s;animation:1.6s ease-in-out infinite gallery-skeleton;position:absolute;inset:0}.bento-card img{object-fit:cover;opacity:0;z-index:1;width:100%;height:100%;transition:opacity .45s,transform .6s;display:block;position:relative;transform:scale(1.02)}.bento-card:after{content:"";opacity:.8;pointer-events:none;z-index:2;background:linear-gradient(#0000 52%,#072d3d47 100%);transition:opacity .35s;position:absolute;inset:0}.bento-card.is-loaded:before{opacity:0}.bento-card.is-loaded img,.bento-card:hover:after{opacity:1}.bento-card:hover img{transform:scale(1.05)}@keyframes gallery-skeleton{0%{background-position:200% 0,0 0}to{background-position:-30% 0,0 0}}@media (width<=960px){.bento-grid{grid-template-columns:repeat(3,1fr);grid-auto-rows:200px}}@media (width<=640px){.bento-grid{grid-template-columns:repeat(2,1fr);grid-auto-rows:180px}.bento-item.tall{grid-row:span 1}.bento-item.large{grid-area:span 1/span 2}}@media (width<=420px){.bento-grid{grid-template-columns:1fr;grid-auto-rows:180px}.bento-item.wide,.bento-item.large{grid-column:span 1}}
