:root{--primary-red:#CC3528;--primary-red-dark:#A82618;--primary-red-light:#E55A4D;--primary-gold:#FFBF00;--primary-gold-light:#FFE4B5;--primary-gold-dark:#E5AC00;--text-dark:#222222;--text-medium:#333333;--text-light:#FFFFFF;--text-muted:#777777;--background-light:#FFFFFF;--background-cream:#FFF8F0;--background-dark:#181818;--accent-green:#28A745;--accent-blue:#2D7DD2;--accent-yellow:#FFD700;--shadow-color:rgba(0,0,0,0.2);--shadow-light:rgba(0,0,0,0.1);--shadow-dark:rgba(0,0,0,0.3);--transparent-white:rgba(255,255,255,0.85);--transparent-cream:rgba(255,248,240,0.85);--transparent-red:rgba(204,53,40,0.85);--transparent-gold:rgba(255,191,0,0.2);--transition-fast:0.2s ease;--transition-medium:0.3s ease;--transition-slow:0.5s ease;--transition-bounce:0.5s cubic-bezier(0.68,-0.55,0.27,1.55);--spacing-xs:0.25rem;--spacing-sm:0.5rem;--spacing-md:1rem;--spacing-lg:2rem;--spacing-xl:3rem;--radius-sm:4px;--radius-md:8px;--radius-lg:16px;--radius-circle:50%}@font-face{font-family:LINESeedJP;src:url(/fonts/LINESeedJP_OTF_Th.woff2) format("woff2");font-weight:100;font-style:normal;font-display:swap}@font-face{font-family:LINESeedJP;src:url(/fonts/LINESeedJP_OTF_Rg.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:LINESeedJP;src:url(/fonts/LINESeedJP_OTF_Bd.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:LINESeedJP;src:url(/fonts/LINESeedJP_OTF_Eb.woff2) format("woff2");font-weight:800;font-style:normal;font-display:swap}body,html{color:var(--text-dark)}body,button,html,input,select,textarea{font-family:LINESeedJP,system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,Liberation Sans,Cantarell,Open Sans,ui-sans-serif,sans-serif}html{scroll-behavior:smooth}body,html{overflow-x:hidden;overscroll-behavior-x:none}body{margin:0;padding:0;box-sizing:border-box;line-height:1.6;color:var(--text-dark);background:var(--background-light);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,:after,:before{box-sizing:inherit}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:rgba(0,0,0,.05)}::-webkit-scrollbar-thumb{background:var(--primary-red-light);border-radius:5px}::-webkit-scrollbar-thumb:hover{background:var(--primary-red)}h1,h2,h3,h4,h5,h6{font-family:"Noto Serif JP",Noto Sans SC,serif;line-height:1.3;color:var(--text-dark);margin-top:0}h1{font-size:3rem}h1,h2{font-weight:700}h2{font-size:2.5rem}h3{font-size:1.75rem;font-weight:700}p{margin-bottom:1.2rem}a{color:var(--primary-red);text-decoration:none;transition:color var(--transition-medium)}a:hover{color:var(--primary-red-dark)}:focus-visible{outline:3px solid var(--primary-gold);outline-offset:2px}::selection{background-color:var(--primary-red);color:var(--text-light)}.fade-in{animation:fadeIn .8s ease forwards}.slide-up{animation:slideUp .8s ease forwards}.scale-in{animation:scaleIn .6s cubic-bezier(.25,.46,.45,.94) forwards}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(30px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes scaleIn{0%{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}@media (prefers-color-scheme:dark){:root{--background:var(--background-dark);--foreground:var(--text-light)}.invert-colors-in-dark{filter:invert(1) hue-rotate(180deg)}}@media (max-width:768px){h1{font-size:2.5rem}h2{font-size:2rem}h3{font-size:1.5rem}}.hide-on-mobile{display:block}.show-on-mobile{display:none}@media (max-width:768px){.hide-on-mobile{display:none}.show-on-mobile{display:block}}.ToTopButton_container__8Igtt{position:fixed;right:24px;bottom:24px;z-index:1000;transition:opacity .3s ease,transform .3s ease}.ToTopButton_hidden__52147{opacity:0;transform:translateY(20px);pointer-events:none}.ToTopButton_visible__la_CB{opacity:1;transform:translateY(0)}.ToTopButton_button__E2TqV{width:84px;height:84px;border-radius:50%;background:#ffffff00;display:flex;align-items:center;justify-content:center;cursor:pointer;border:none}.ToTopButton_buttonImage__H_Zmz{width:100%;height:100%;object-fit:contain}.ToTopButton_label__jnBKf{text-align:center;font-size:12px;font-weight:700;color:var(--primary-red);text-shadow:0 1px 2px rgba(0,0,0,.1)}@media (hover:hover) and (pointer:fine){.ToTopButton_button__E2TqV:hover{transform:translateY(-2px)}}@media (max-width:768px){.ToTopButton_container__8Igtt{right:12px;bottom:8px}}