html body{margin:0;padding:0;box-sizing:border-box}body{font-family:Noto Sans JP,Droid Sans,Helvetica,YuGothic,Yu Gothic,游ゴシック体,游ゴシック,ヒラギノ角ゴ ProN W3,Hiragino Kaku Gothic ProN,メイリオ,Meiryo,Arial,sans-serif}.navbar{height:60px}.top-container{min-height:100vh;display:flex;flex-direction:column;background-color:#f8f9fa}.top-main{flex:1 0 auto;padding:40px 20px;max-width:1200px;width:100%;margin:0 auto}.top-title{font-size:2.5rem;font-weight:700;margin-bottom:10px;color:#212529;text-align:center}.top-subtitle{font-size:1.1rem;color:#6c757d;text-align:center;margin-bottom:50px}.top-products-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:24px;margin-bottom:60px}.top-product-card{display:block;text-decoration:none;color:inherit;background-color:#fff;border:1px solid #dee2e6;padding:24px;transition:all .2s ease;cursor:pointer}.top-product-card:hover{border-color:#007bff;box-shadow:0 4px 8px #0000001a;transform:translateY(-2px)}.top-product-image-container{width:100%;height:200px;background-color:#f8f9fa;margin-bottom:16px;display:flex;align-items:center;justify-content:center;overflow:hidden;border:1px solid #e9ecef}.top-product-image{max-width:100%;max-height:100%;object-fit:contain}.top-product-name{font-size:1.5rem;font-weight:600;margin-bottom:8px;color:#212529}.top-product-outline{font-size:.95rem;color:#6c757d;margin-bottom:12px;line-height:1.5}.top-product-version{font-size:.85rem;color:#adb5bd}.footer{flex-shrink:0;background-color:#fff;border-top:1px solid #dee2e6;padding:30px 20px}.footer-container{max-width:1200px;margin:0 auto;text-align:center}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;background-color:#f8f9fa;gap:24px}.loading-spinner{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;width:64px;height:64px}.loading-spinner-square{width:28px;height:28px;background-color:#007bff;animation:loading-pulse 1.4s ease-in-out infinite}.loading-spinner-square:nth-child(1){animation-delay:0s}.loading-spinner-square:nth-child(2){animation-delay:.2s}.loading-spinner-square:nth-child(3){animation-delay:.4s}.loading-spinner-square:nth-child(4){animation-delay:.6s}@keyframes loading-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.3;transform:scale(.8)}}.loading-text{font-size:1rem;color:#6c757d;font-weight:500;letter-spacing:.05em}
