@import url("https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&family=Noto+Sans+JP:wght@300;400;500;600;700;800&display=swap");:root{--primary:#6366f1;--primary-light:#818cf8;--primary-dark:#4f46e5;--accent:#f59e0b;--accent-light:#fbbf24;--success:#22c55e;--warning:#eab308;--danger:#ef4444;--info:#3b82f6;--bg-primary:#0a0a1a;--bg-secondary:#111128;--bg-card:rgba(17,17,40,0.8);--bg-glass:rgba(255,255,255,0.05);--border-color:rgba(255,255,255,0.08);--border-glow:rgba(99,102,241,0.3);--text-primary:#f0f0f5;--text-secondary:#a0a0c0;--text-muted:#6b6b8a;--shadow-sm:0 2px 8px rgba(0,0,0,0.3);--shadow-md:0 4px 20px rgba(0,0,0,0.4);--shadow-lg:0 8px 40px rgba(0,0,0,0.5);--shadow-glow:0 0 30px rgba(99,102,241,0.15);--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:24px;--transition-fast:150ms ease;--transition-normal:250ms ease;--transition-slow:400ms cubic-bezier(0.4,0,0.2,1);--font-sans:"Inter","Noto Sans JP",-apple-system,BlinkMacSystemFont,sans-serif}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:var(--font-sans);background:var(--bg-primary);color:var(--text-primary);line-height:1.7;min-height:100vh;overflow-x:hidden}.container{max-width:1200px;margin:0 auto;padding:0 24px}a{color:var(--primary-light);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--accent-light)}.glass-card{background:var(--bg-glass);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid var(--border-color);border-radius:var(--radius-lg);transition:all var(--transition-normal)}.glass-card:hover{border-color:var(--border-glow);box-shadow:var(--shadow-glow)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 28px;border-radius:var(--radius-md);font-family:var(--font-sans);font-size:15px;font-weight:600;cursor:pointer;border:none;transition:all var(--transition-normal);text-decoration:none}.btn-primary{background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:white;box-shadow:0 4px 15px rgba(99,102,241,.3)}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 6px 25px rgba(99,102,241,.5);color:white}.btn-secondary{background:var(--bg-glass);color:var(--text-primary);border:1px solid var(--border-color)}.btn-secondary:hover{border-color:var(--border-glow);background:rgba(99,102,241,.1);color:white}.btn-large{padding:16px 40px;font-size:17px;border-radius:var(--radius-lg)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none!important}.input-field{width:100%;padding:14px 20px;background:var(--bg-glass);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);font-family:var(--font-sans);font-size:16px;transition:all var(--transition-normal);outline:none}.input-field:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(99,102,241,.15)}.input-field::placeholder{color:var(--text-muted)}.badge{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:100px;font-size:13px;font-weight:600}.badge-success{background:rgba(34,197,94,.15);color:var(--success);border:1px solid rgba(34,197,94,.3)}.badge-warning{background:rgba(234,179,8,.15);color:var(--warning);border:1px solid rgba(234,179,8,.3)}.badge-danger{background:rgba(239,68,68,.15);color:var(--danger);border:1px solid rgba(239,68,68,.3)}.nav{position:fixed;top:0;left:0;right:0;z-index:1000;padding:16px 0;background:rgba(10,10,26,.85);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid var(--border-color)}.nav-inner{justify-content:space-between}.nav-inner,.nav-logo{display:flex;align-items:center}.nav-logo{font-size:20px;font-weight:800;color:var(--text-primary);gap:8px}.nav-logo span{background:linear-gradient(135deg,var(--primary-light),var(--accent));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.nav-links{display:flex;align-items:center;gap:8px;list-style:none}.nav-links a{color:var(--text-secondary);font-size:14px;font-weight:500;padding:8px 16px;border-radius:var(--radius-sm);transition:all var(--transition-fast)}.nav-links a:hover{color:var(--text-primary);background:var(--bg-glass)}@keyframes fadeInUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@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%}}.animate-fadeInUp{animation:fadeInUp .6s ease forwards}.animate-delay-1{animation-delay:.1s;opacity:0}.animate-delay-2{animation-delay:.2s;opacity:0}.animate-delay-3{animation-delay:.3s;opacity:0}.animate-delay-4{animation-delay:.4s;opacity:0}.spinner{width:24px;height:24px;border:3px solid var(--border-color);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.hero-bg{position:absolute;inset:0;overflow:hidden;z-index:0}.hero-bg:before{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(circle at 30% 30%,rgba(99,102,241,.08) 0,transparent 60%),radial-gradient(circle at 70% 70%,rgba(245,158,11,.05) 0,transparent 60%);animation:float 8s ease-in-out infinite}.hero-bg .orb{position:absolute;border-radius:50%;filter:blur(60px)}.hero-bg .orb-1{width:400px;height:400px;background:rgba(99,102,241,.12);top:10%;left:15%;animation:float 6s ease-in-out infinite}.hero-bg .orb-2{width:300px;height:300px;background:rgba(245,158,11,.08);bottom:20%;right:10%;animation:float 8s ease-in-out infinite reverse}@media (max-width:768px){.container{padding:0 16px}.nav-links{display:none}.btn-large{padding:14px 28px;font-size:15px}}.leaflet-container{border-radius:var(--radius-lg);border:1px solid var(--border-color)}