@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:400;src:url(../fonts/montserrat-latin-400.woff2) format("woff2");unicode-range:u+0020-007e}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:600;src:url(../fonts/montserrat-latin-600.woff2) format("woff2");unicode-range:u+0020-007e}@font-face{font-display:swap;font-family:Montserrat;font-style:normal;font-weight:800;src:url(../fonts/montserrat-latin-800.woff2) format("woff2");unicode-range:u+0020-007e}@font-face{font-display:swap;font-family:Noto Sans JP;font-style:normal;font-weight:400;src:url(../fonts/noto-sans-jp-subset-400.woff2) format("woff2")}@font-face{font-display:swap;font-family:Noto Sans JP;font-style:normal;font-weight:600;src:url(../fonts/noto-sans-jp-subset-600.woff2) format("woff2")}@font-face{font-display:swap;font-family:Noto Sans JP;font-style:normal;font-weight:800;src:url(../fonts/noto-sans-jp-subset-800.woff2) format("woff2")}html.fonts-loaded body{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}html.fonts-heavy body{font-kerning:normal}body{font-family:Noto Sans JP,Helvetica Neue,Arial,sans-serif}.hero-title .title-text,h1,h2,h3{font-family:Montserrat,Noto Sans JP,sans-serif}.loading-overlay{align-items:center;background-color:var(--bg-color);display:flex;height:100vh;justify-content:center;left:0;position:fixed;top:0;transition:all .3s ease;width:100vw;z-index:9999}.loading-content{animation:fadeInUp .8s ease .2s forwards,fadeOutContent .3s ease 1.5s forwards;opacity:0;text-align:center}.loading-spinner{display:inline-block;margin-bottom:1rem;position:relative}.spinner-circle{animation:spin 1.5s cubic-bezier(.68,-.55,.265,1.55) infinite;border-top:6px solid var(--border-color);border:6px solid var(--border-color);border-radius:50%;border-top-color:var(--accent-color);height:120px;width:120px}.spinner-circle.small{border-width:4px;height:50px;width:50px}.page-transition-overlay{align-items:center;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);background:linear-gradient(135deg,rgba(var(--surface-rgb),.85),rgba(var(--surface-rgb),.95));display:flex;height:100vh;justify-content:center;left:0;position:fixed;top:0;width:100vw;z-index:9998}.page-transition-spinner{animation:fadeIn .3s ease forwards;opacity:0;text-align:center}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(1turn)}}@keyframes pulse{0%,to{opacity:1;transform:translate(-50%,-50%) scale(1)}50%{opacity:.7;transform:translate(-50%,-50%) scale(1.05)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeOutContent{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.95)}}.loading-fade-enter-active{transition:opacity .3s ease-in}.loading-fade-leave-active{transition:opacity .4s ease-out .5s}.loading-fade-enter-from,.loading-fade-leave-to{opacity:0}.page-transition-fade-enter-active,.page-transition-fade-leave-active{transition:all .4s cubic-bezier(.25,.46,.45,.94)}.page-transition-fade-enter-from,.page-transition-fade-leave-to{opacity:0}.page-enter-active,.page-leave-active{transition:all .4s cubic-bezier(.25,.46,.45,.94)}.page-enter-from{opacity:0;transform:translateY(30px) scale(.98)}.page-leave-to{opacity:0;transform:translateY(-20px) scale(.98)}.dark-mode .loading-overlay{background-color:var(--bg-color)}.dark-mode .page-transition-overlay{background:linear-gradient(135deg,rgba(var(--surface-rgb),.85),rgba(var(--surface-rgb),.95))}.dark-mode .spinner-circle{border-color:var(--border-color);border-top-color:var(--accent-color)}@media (max-width:768px){.spinner-circle{border-width:4px;height:80px;width:80px}.spinner-circle.small{border-width:3px;height:40px;width:40px}}
