*,:after,:before{box-sizing:border-box;margin:0;padding:0}:root{--color-primary:#1a365d;--color-primary-light:#2a4a7f;--color-primary-dark:#0f2440;--color-accent:#c53030;--color-accent-light:#e53e3e;--color-gold:#d69e2e;--color-gold-light:#ecc94b;--color-white:#ffffff;--color-gray-50:#f7fafc;--color-gray-100:#edf2f7;--color-gray-200:#e2e8f0;--color-gray-300:#cbd5e0;--color-gray-400:#a0aec0;--color-gray-500:#718096;--color-gray-600:#4a5568;--color-gray-700:#2d3748;--color-gray-800:#1a202c;--color-gray-900:#171923;--font-sans:var(--font-sans),"Inter",system-ui,-apple-system,sans-serif;--font-heading:var(--font-heading),"Noto Sans JP","Inter",system-ui,sans-serif;--container-max:1280px;--container-padding:1.5rem;--transition-fast:150ms ease;--transition-normal:250ms ease;--transition-slow:350ms ease;--shadow-sm:0 1px 2px rgba(0,0,0,0.05);--shadow-md:0 4px 6px -1px rgba(0,0,0,0.1),0 2px 4px -1px rgba(0,0,0,0.06);--shadow-lg:0 10px 15px -3px rgba(0,0,0,0.1),0 4px 6px -2px rgba(0,0,0,0.05);--shadow-xl:0 20px 25px -5px rgba(0,0,0,0.1),0 10px 10px -5px rgba(0,0,0,0.04);--radius-sm:0.375rem;--radius-md:0.5rem;--radius-lg:0.75rem;--radius-xl:1rem}html{scroll-behavior:smooth}body{font-family:var(--font-sans);color:var(--color-gray-800);background-color:var(--color-white);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:inherit;text-decoration:none}img{max-width:100%;height:auto;display:block}button{cursor:pointer;font-family:inherit}.container{max-width:var(--container-max);margin:0 auto;padding-left:var(--container-padding);padding-right:var(--container-padding)}.section{padding:4rem 0}.section--alt{background-color:var(--color-gray-50)}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);font-weight:700;line-height:1.2;color:var(--color-gray-900)}h1{font-size:2.5rem}h2{font-size:2rem}h3{font-size:1.5rem}h4{font-size:1.25rem}@media (max-width:768px){h1{font-size:1.875rem}h2{font-size:1.5rem}h3{font-size:1.25rem}.section{padding:2.5rem 0}}.text-center{text-align:center}.text-primary{color:var(--color-primary)}.text-accent{color:var(--color-accent)}.text-muted{color:var(--color-gray-500)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}