body {
    font-family: 'Noto Sans JP', sans-serif;
    color: #334155;
    line-height: 1.8;
}
.hero-gradient {
    background: radial-gradient(circle at 70% 30%, #1e40af 0%, #0f172a 60%, #020617 100%);
}
.chart-bar {
    transition: width 1.5s ease-out;
    width: 0;
}
/* Animation Utility */
.fade-in-up {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.8s ease-out, transform 0.8s ease-out;
}
.fade-in-up.visible {
    opacity: 1;
    transform: translateY(0);
}

/* Accordion Styles */
.accordion-content {
    transition: max-height 0.3s ease-out, opacity 0.3s ease-out;
    max-height: 0;
    overflow: hidden;
    opacity: 0;
}
.accordion-content.active {
    opacity: 1;
}

/* 3D Transform for FV visual */
.perspective-container {
    perspective: 1000px;
}
.card-3d-left {
    transform: rotateY(10deg) rotateX(5deg) translateZ(-20px);
    box-shadow: -20px 20px 60px rgba(0,0,0,0.5);
}
.card-3d-right {
    transform: rotateY(-10deg) rotateX(5deg) translateZ(20px);
    box-shadow: 20px 20px 60px rgba(0,0,0,0.5);
}
