@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Noto+Sans+JP:wght@400;500;700&display=swap";
:root{--color-primary:#6c63ff;--color-primary-light:#8b83ff;--color-primary-dark:#5a52e0;--color-accent:#ff6b6b;--color-accent-light:#ff8e8e;--color-success:#4ecdc4;--color-warning:#ffe66d;--color-bg-primary:#0d1117;--color-bg-secondary:#161b22;--color-bg-tertiary:#21262d;--color-surface:#ffffff0d;--color-surface-hover:#ffffff14;--color-border:#ffffff1a;--color-text-primary:#e6edf3;--color-text-secondary:#8b949e;--color-text-muted:#484f58;--font-base:"Inter", "Noto Sans JP", sans-serif;--spacing-xs:.25rem;--spacing-sm:.5rem;--spacing-md:1rem;--spacing-lg:1.5rem;--spacing-xl:2rem;--spacing-xxl:3rem;--radius-sm:.25rem;--radius-md:.5rem;--radius-lg:1rem;--radius-xl:1.5rem;--shadow-sm:0 2px 4px #0003;--shadow-md:0 4px 8px #0000004d;--shadow-lg:0 8px 16px #0006;--shadow-glow:0 0 15px #6c63ff4d}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--color-bg-primary);color:var(--color-text-primary);font-family:var(--font-base);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.6;overflow-x:hidden}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--color-bg-primary)}::-webkit-scrollbar-thumb{background:var(--color-bg-tertiary);border-radius:var(--radius-lg)}::-webkit-scrollbar-thumb:hover{background:var(--color-text-muted)}::selection{background-color:var(--color-primary);color:#fff}:focus-visible{outline:2px solid var(--color-primary-light);outline-offset:2px}h1,h2,h3,h4,h5,h6{color:var(--color-text-primary);margin-bottom:var(--spacing-md);font-weight:700;line-height:1.2}p{margin-bottom:var(--spacing-md);color:var(--color-text-secondary)}a{color:var(--color-primary-light);text-decoration:none;transition:color .3s}a:hover{color:var(--color-primary)}.glass{background:var(--color-surface);-webkit-backdrop-filter:blur(10px);border:1px solid var(--color-border);box-shadow:var(--shadow-md)}.glass-strong{-webkit-backdrop-filter:blur(20px);box-shadow:var(--shadow-lg);background:#ffffff14;border:1px solid #ffffff26}.btn{font-family:var(--font-base);border-radius:var(--radius-md);cursor:pointer;white-space:nowrap;border:none;justify-content:center;align-items:center;padding:.5rem 1.25rem;font-weight:600;transition:all .3s;display:inline-flex}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-dark) 100%);color:#fff;box-shadow:0 4px 15px #6c63ff4d}.btn-primary:hover:not(:disabled){background:linear-gradient(135deg, var(--color-primary-light) 0%, var(--color-primary) 100%);transform:translateY(-1px);box-shadow:0 6px 20px #6c63ff66}.btn-accent{background:linear-gradient(135deg, var(--color-accent) 0%, #d83a3a 100%);color:#fff;box-shadow:0 4px 15px #ff6b6b4d}.btn-accent:hover:not(:disabled){background:linear-gradient(135deg, var(--color-accent-light) 0%, var(--color-accent) 100%);transform:translateY(-1px);box-shadow:0 6px 20px #ff6b6b66}.btn-ghost{color:var(--color-text-primary);border:1px solid var(--color-border);background:0 0}.btn-ghost:hover:not(:disabled){background:var(--color-surface);border-color:var(--color-primary);color:var(--color-primary-light)}.btn-sm{padding:.25rem .75rem;font-size:.875rem}.btn-lg{border-radius:var(--radius-lg);padding:.75rem 2rem;font-size:1.125rem}.card{background:var(--color-surface);-webkit-backdrop-filter:blur(10px);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--spacing-lg);box-shadow:var(--shadow-sm);transition:transform .3s,box-shadow .3s,border-color .3s}.card-hover:hover{box-shadow:var(--shadow-md);border-color:#fff3;transform:translateY(-4px)}.label{margin-bottom:var(--spacing-sm);color:var(--color-text-secondary);font-size:.875rem;font-weight:500;display:block}.input,.select{background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);width:100%;color:var(--color-text-primary);font-family:var(--font-base);padding:.75rem 1rem;font-size:1rem;transition:all .3s}.input:focus,.select:focus{border-color:var(--color-primary);background:var(--color-bg-tertiary);outline:none;box-shadow:0 0 0 3px #6c63ff33}.input::placeholder{color:var(--color-text-muted)}.container{width:100%;max-width:1200px;padding:0 var(--spacing-md);margin:0 auto}@media (min-width:768px){.container{padding:0 var(--spacing-xl)}}.grid{gap:var(--spacing-md);display:grid}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideIn{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes pulse{0%{opacity:1}50%{opacity:.7}to{opacity:1}}@keyframes glow{0%{box-shadow:0 0 5px var(--color-primary-dark)}50%{box-shadow:0 0 20px var(--color-primary), 0 0 30px var(--color-primary-light)}to{box-shadow:0 0 5px var(--color-primary-dark)}}@keyframes float{0%{transform:translateY(0)}50%{transform:translateY(-10px)}to{transform:translateY(0)}}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}.animate-fade-in{animation:.6s forwards fadeIn}.animate-slide-up{animation:.6s cubic-bezier(.16,1,.3,1) forwards slideUp}.animate-slide-in{animation:.5s forwards slideIn}.animate-pulse{animation:2s infinite pulse}.animate-glow{animation:2s infinite alternate glow}.animate-float{animation:6s ease-in-out infinite float}.animate-shimmer{background:linear-gradient(90deg, var(--color-bg-secondary) 25%, var(--color-bg-tertiary) 50%, var(--color-bg-secondary) 75%);background-size:1000px 100%;animation:2s linear infinite shimmer}
