@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600&display=swap");*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:Noto Sans JP,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}code,pre{font-family:JetBrains Mono,Fira Code,Consolas,monospace}a{color:inherit;text-decoration:none}canvas,img,picture,svg,video{display:block;max-width:100%}button,input,select,textarea{font:inherit}:focus-visible{outline:2px solid #3b82f6;outline-offset:2px}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:rgba(100,116,139,.4);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:rgba(100,116,139,.6)}@media (prefers-color-scheme:dark){::-webkit-scrollbar-thumb{background:rgba(148,163,184,.3)}::-webkit-scrollbar-thumb:hover{background:rgba(148,163,184,.5)}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}::selection{background:rgba(59,130,246,.3);color:inherit}.gradient-text{background:linear-gradient(135deg,#3b82f6,#8b5cf6);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.glass-effect{background:hsla(0,0%,100%,.1);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}canvas{display:block}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.spinner{animation:spin 1s linear infinite}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.05)}}@keyframes glow{0%,to{box-shadow:0 0 5px rgba(59,130,246,.5),0 0 10px rgba(59,130,246,.3),0 0 15px rgba(59,130,246,.1)}50%{box-shadow:0 0 10px rgba(59,130,246,.8),0 0 20px rgba(59,130,246,.5),0 0 30px rgba(59,130,246,.3)}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes gradientShift{0%{background-position:0 50%}50%{background-position:100% 50%}to{background-position:0 50%}}.animated-gradient{background-size:200% 200%;animation:gradientShift 3s ease infinite}