@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Outfit:wght@300;400;500;600;700;800;900&display=swap";::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#05070a}::-webkit-scrollbar-thumb{background:linear-gradient(#8b5cf6,#3b82f6);border-radius:10px}::-webkit-scrollbar-thumb:hover{background:#22d3ee}*{scrollbar-width:thin;scrollbar-color:#8b5cf6 transparent}:root{--primary:#8b5cf6;--primary-rgb:139, 92, 246;--secondary:#3b82f6;--accent:#22d3ee;--bg-dark:#05070a;--card-bg:#0f141cb3;--text-main:#fff;--text-dim:#94a3b8;--glass:#ffffff05;--glass-border:#ffffff14;--transition:all .6s cubic-bezier(.16, 1, .3, 1);--font-heading:"Outfit", sans-serif;--font-body:"Inter", sans-serif}*{box-sizing:border-box;margin:0;padding:0}body{color:#fff;min-height:100vh;font-family:var(--font-body);background-color:#050608;margin:0;padding:0;position:relative;overflow-x:hidden}.bg-mesh{z-index:-2;background-color:var(--bg-dark);background-image:radial-gradient(at 0 0,#8b5cf61f 0,#0000 50%),radial-gradient(at 50% 0,#3b82f614 0,#0000 50%),radial-gradient(at 100% 0,#22d3ee1a 0,#0000 50%),radial-gradient(at 100% 100%,#8b5cf614 0,#0000 50%),radial-gradient(at 50% 100%,#3b82f61a 0,#0000 50%),radial-gradient(at 0 100%,#22d3ee0d 0,#0000 50%);width:100%;height:100%;position:fixed;top:0;left:0}.bg-stars{z-index:-1;opacity:.25;background:0 0;width:100%;height:100%;position:fixed;top:0;left:0}.star{opacity:0;animation:twinkle var(--duration) infinite ease-in-out var(--delay);background:#fff;border-radius:50%;position:absolute}@keyframes twinkle{0%,to{opacity:0;transform:scale(.5)}50%{opacity:.8;transform:scale(1)}}.bg-grid{z-index:-1;background-image:linear-gradient(#ffffff08 1px,#0000 1px),linear-gradient(90deg,#ffffff08 1px,#0000 1px);background-size:60px 60px;width:100%;height:100%;position:fixed;top:0;left:0;-webkit-mask-image:radial-gradient(circle,#000,#0000 85%);mask-image:radial-gradient(circle,#000,#0000 85%)}.blob{filter:blur(100px);z-index:-1;opacity:.15;border-radius:50%;animation:30s ease-in-out infinite alternate floatBlobs;position:fixed}.blob-1{background:var(--primary);width:500px;height:500px;top:-200px;left:-100px}.blob-2{background:var(--secondary);width:400px;height:400px;animation-delay:-5s;bottom:-100px;right:10%}@keyframes floatBlobs{0%{transform:translate(0)scale(1)}50%{transform:translate(60px,40px)scale(1.1)}to{transform:translate(-30px,80px)scale(1)}}#root{flex-direction:column;min-height:100vh;display:flex}.app-container{z-index:5;flex-direction:column;max-width:1400px;min-height:100vh;margin:0 auto;padding:4rem 2rem;display:flex;position:relative}main{z-index:100;flex-direction:column;gap:3rem;display:flex;position:relative}.search-section{z-index:500;position:relative}.results-container{z-index:10;position:relative}.text-gradient{background:linear-gradient(135deg,#fff 0%,#a0aec0 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.title-main{font-family:var(--font-heading);letter-spacing:-3px;text-align:center;background:linear-gradient(135deg,#fff 0%,#cbd5e1 50%,#fff 100%);-webkit-text-fill-color:transparent;filter:drop-shadow(0 0 15px #fff3) drop-shadow(0 0 30px rgba(var(--primary-rgb), .1));-webkit-background-clip:text;background-clip:text;margin-bottom:1.5rem;font-size:6.5rem;font-weight:700;line-height:1;animation:.8s cubic-bezier(.16,1,.3,1) fadeInUp}.title-glow{position:relative}.title-glow:after{content:"MAHTO RailMap";z-index:-1;filter:blur(20px);opacity:.2;background:inherit;-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;position:absolute;inset:0}.subtitle{color:var(--text-dim);text-align:center;max-width:800px;margin:0 auto 5rem;font-size:1.4rem;font-weight:400;line-height:1.6;animation:1s cubic-bezier(.16,1,.3,1) .2s both fadeInUp}.glass-card{background:var(--card-bg);-webkit-backdrop-filter:blur(24px);border:1px solid var(--glass-border);transition:var(--transition);border-radius:32px;padding:1.5rem 2.5rem;animation:1.2s cubic-bezier(.16,1,.3,1) .4s both fadeInUp;box-shadow:0 40px 80px #0009}.glass-card:hover{border-color:rgba(var(--primary-rgb), .4);box-shadow:0 0 50px rgba(var(--primary-rgb), .15), 0 40px 80px #000000b3;transform:translateY(-8px)}.input-group{flex-direction:column;flex:1;gap:1rem;display:flex}label{color:var(--text-dim);text-transform:uppercase;letter-spacing:.15em;padding-left:.5rem;font-size:.8rem;font-weight:600}.input-premium{border:1px solid var(--glass-border);color:#fff;background:#0006;border-radius:20px;outline:none;width:100%;padding:1.25rem 1.5rem;font-size:1.1rem;transition:all .3s}.input-premium:focus{border-color:var(--primary);box-shadow:0 0 0 4px rgba(var(--primary-rgb), .2);background:#0009}.button-primary{background:linear-gradient(135deg, var(--primary) 0%, var(--secondary) 100%);color:#fff;text-transform:uppercase;letter-spacing:1px;cursor:pointer;transition:var(--transition);box-shadow:0 10px 25px rgba(var(--primary-rgb), .3);border:none;border-radius:20px;justify-content:center;align-items:center;gap:.75rem;padding:1.25rem 2.5rem;font-size:1.1rem;font-weight:600;display:flex}.button-primary:hover{box-shadow:0 20px 40px rgba(var(--primary-rgb), .5);transform:scale(1.05)translateY(-2px)}.searchable-select{position:relative}.searchable-select:after{content:"↓";color:var(--text-dim);pointer-events:none;font-size:1.2rem;transition:all .3s;position:absolute;top:50%;right:1.5rem;transform:translateY(-50%)}.searchable-select:focus-within:after{color:var(--primary);transform:translateY(-50%)rotate(180deg)}.search-results{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid var(--glass-border);z-index:1000;background:#0d1117fa;border-radius:16px;max-height:400px;margin-top:.5rem;animation:.3s ease-out slideInUp;position:absolute;top:100%;left:0;right:0;overflow-y:auto;box-shadow:0 20px 50px #00000080}.search-item{cursor:pointer;border-bottom:1px solid #ffffff08;flex-direction:column;gap:.4rem;padding:1.25rem 1.5rem;transition:all .2s;display:flex}.search-item:last-child{border-bottom:none}.search-item:hover{background:rgba(var(--primary-rgb), .1);padding-left:2rem}.station-name{color:#fff;font-size:1.1rem;font-weight:600;display:block}.station-details{align-items:center;gap:.8rem;font-size:.85rem;display:flex}.station-code-badge{background:rgba(var(--primary-rgb), .2);color:var(--primary);border:1px solid rgba(var(--primary-rgb), .2);border-radius:6px;padding:.1rem .5rem;font-family:monospace;font-weight:700}.station-location{color:var(--text-dim);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.search-item mark{background:var(--primary);color:#fff;border-radius:4px;padding:0 4px}.results-container{flex-direction:column;gap:2rem;margin-top:5rem;animation:1s cubic-bezier(.16,1,.3,1) both fadeInUp;display:flex}.stats-grid{grid-template-columns:repeat(4,1fr);gap:1.5rem;width:100%;display:grid}.stat-item{text-align:center;border:1px solid var(--glass-border);background:linear-gradient(#ffffff0d 0%,#0000 100%);border-radius:20px;flex-direction:column;justify-content:center;align-items:center;padding:1.2rem;display:flex}.stat-label{color:var(--text-dim);letter-spacing:1px;text-transform:uppercase;margin-bottom:.5rem;font-size:.7rem;font-weight:600}.stat-value{color:var(--primary);font-size:1.8rem;font-weight:700;font-family:var(--font-heading);line-height:1.2}.timeline-premium{padding-left:3rem;position:relative}.timeline-premium:before{content:"";background:linear-gradient(to bottom, var(--primary), var(--secondary), var(--accent));opacity:.3;width:2px;position:absolute;top:10px;bottom:0;left:1.5rem;transform:translate(-1px)}.stop-item{margin-bottom:4rem;animation:.5s both slideInRight;position:relative}.stop-item:after{content:"";background:var(--bg-dark);border:4px solid var(--primary);width:12px;height:12px;box-shadow:0 0 15px rgba(var(--primary-rgb), .5);z-index:2;border-radius:50%;position:absolute;top:8px;left:-1.5rem;transform:translate(-6px)}.stop-item.minor:after{border-color:var(--text-dim);width:8px;height:8px;box-shadow:none;transform:translate(-4px)}@keyframes fadeInUp{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInRight{0%{opacity:0;transform:translate(-30px)}to{opacity:1;transform:translate(0)}}@media (width<=900px){.results-container{grid-template-columns:1fr}.title-main{font-size:3.5rem}.input-row{flex-direction:column}}.state-switcher{justify-content:center;gap:1rem;margin-bottom:3rem;animation:.8s cubic-bezier(.16,1,.3,1) both fadeInDown;display:flex}.state-btn{border:1px solid var(--glass-border);color:var(--text-dim);cursor:pointer;transition:var(--transition);text-transform:uppercase;letter-spacing:1px;background:#ffffff0d;border-radius:100px;padding:.6rem 1.5rem;font-size:.8rem;font-weight:500}.state-btn:hover{color:#fff;border-color:var(--primary);background:#ffffff1a}.state-btn.active{background:var(--primary);color:#fff;border-color:var(--primary);box-shadow:0 0 15px rgba(var(--primary-rgb), .4)}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.stat-icon{width:48px;height:48px;color:var(--primary);transition:var(--transition);background:#ffffff0d;border:1px solid #ffffff1a;border-radius:12px;justify-content:center;align-items:center;margin-bottom:1rem;display:flex}.stat-icon-img{width:110px;height:110px;transition:var(--transition);background:0 0;justify-content:center;align-items:center;margin:0 auto .5rem;display:flex}.stat-icon-img img{object-fit:contain;width:100%;height:100%}.stat-item:hover .stat-icon{background:var(--primary);color:#fff;box-shadow:0 0 20px rgba(var(--primary-rgb), .4);transform:scale(1.1)rotate(5deg)}.icon-rail{color:#00f2ff}.icon-road{color:#7000ff}.top-nav{z-index:5000;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);align-items:center;gap:1.5rem;display:flex;position:fixed;top:2rem;right:3rem}.nav-left{display:none}.nav-left,.nav-right{align-items:center;gap:1.5rem;display:flex}.btn-login{color:#12151c;cursor:pointer;transition:var(--transition);background:#fff;border:none;border-radius:12px;align-items:center;gap:.8rem;padding:.8rem 1.5rem;font-weight:600;display:flex;box-shadow:0 10px 20px #0000004d}.btn-login:hover{transform:translateY(-3px);box-shadow:0 15px 30px #0006}.user-profile{background:var(--card-bg);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--glass-border);border-radius:100px;align-items:center;gap:1rem;padding:.5rem .5rem .5rem 1.2rem;display:flex}.user-name{font-size:.9rem;font-weight:500}.user-avatar{border:2px solid var(--primary);border-radius:50%;width:32px;height:32px}.btn-logout{color:#ff6b6b;cursor:pointer;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ff6b6b1a;border:1px solid #ff6b6b33;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;transition:all .3s;display:flex}.btn-logout:hover{color:#fff;background:#ff6b6b;transform:rotate(12deg)scale(1.1);box-shadow:0 0 20px #ff6b6b66}.login-prompt-card{text-align:center;border-color:rgba(var(--primary-rgb), .3);max-width:600px;margin:3rem auto;padding:4rem;position:relative;overflow:hidden}.badge-premium{background:var(--primary);color:#fff;letter-spacing:2px;box-shadow:0 0 20px rgba(var(--primary-rgb), .3);border-radius:100px;margin-bottom:2rem;padding:.4rem 1rem;font-size:.7rem;font-weight:700;display:inline-block}.prompt-title{font-size:2.5rem;font-family:var(--font-heading);background:linear-gradient(to right, #fff, var(--primary));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-bottom:1.5rem}.prompt-text{color:var(--text-dim);margin-bottom:3rem;font-size:1.1rem;line-height:1.8}.btn-login-large{color:#12151c;cursor:pointer;transition:var(--transition);background:#fff;border:none;border-radius:16px;align-items:center;gap:1.2rem;margin:0 auto 2rem;padding:1.2rem 3rem;font-size:1.1rem;font-weight:700;display:flex;box-shadow:0 20px 40px #0006}.btn-login-large:hover{transform:translateY(-5px);box-shadow:0 30px 60px #0009}.prompt-footer{opacity:.4;letter-spacing:1px;font-size:.7rem}.animate-in{animation:.8s cubic-bezier(.16,1,.3,1) both scaleFadeIn}@keyframes scaleFadeIn{0%{opacity:0;transform:scale(.9)translateY(30px)}to{opacity:1;transform:scale(1)translateY(0)}}.modal-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:2000;background:#000c;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.logout-modal{text-align:center;border-color:#ffffff1a;width:90%;max-width:450px;padding:3rem}.btn-confirm-yes{color:#fff;cursor:pointer;transition:var(--transition);background:#ff6b6b;border:none;border-radius:12px;padding:.8rem 1.5rem;font-weight:600}.btn-confirm-yes:hover{background:#ff4b4b;transform:translateY(-2px);box-shadow:0 10px 20px #ff6b6b4d}.btn-confirm-no{color:#fff;cursor:pointer;transition:var(--transition);background:#ffffff0d;border:1px solid #ffffff1a;border-radius:12px;padding:.8rem 1.5rem;font-weight:600}.btn-confirm-no:hover{background:#ffffff1a;transform:translateY(-2px)}.icon-distance{width:110px;height:110px}.icon-rail-large,.icon-road-large,.icon-halt-large{width:140px;height:140px}.brand-logo{z-index:2000;pointer-events:none;position:fixed;top:1rem;left:4rem}.brand-logo img{height:120px;filter:drop-shadow(0 0 20px rgba(var(--primary-rgb), .3));transition:var(--transition)}@media (width<=768px){.brand-logo img{height:50px}.brand-logo{top:1rem;left:1rem}}.india-crossroads-container{perspective:1000px;justify-content:center;align-items:center;padding:4rem 0;display:flex}.crossroads-visual{flex-direction:column;align-items:center;width:100%;max-width:900px;display:flex;position:relative}.map-3d-base{filter:drop-shadow(0 50px 80px #000c)brightness(.9);opacity:.9;width:100%;height:auto;transform:rotateX(10deg)}.crossroads-svg{pointer-events:none;z-index:2;width:100%;height:100%;position:absolute;top:0;left:0;transform:rotateX(10deg)}.pin-glow-large{animation:3s ease-in-out infinite pulseGlow}@keyframes pulseGlow{0%,to{opacity:.2;transform:scale(1)}50%{opacity:.05;transform:scale(3)}}.crossroads-label{color:var(--primary);letter-spacing:6px;text-transform:uppercase;opacity:.6;text-align:center;margin-top:3rem;font-size:.9rem;font-weight:700}.station-details{align-items:center;gap:.8rem;margin-top:.3rem;display:flex}.station-code-badge{background:rgba(var(--primary-rgb), .15);color:var(--primary);letter-spacing:.5px;border-radius:4px;padding:.1rem .5rem;font-size:.75rem;font-weight:700}.station-location{color:var(--text-dim);white-space:nowrap;text-overflow:ellipsis;font-size:.85rem;overflow:hidden}.timeline-card-wrapper{align-items:flex-start;gap:3rem;display:flex}.timeline-main{flex:1}.journey-visual-container{background:0 0;flex-direction:column;width:320px;height:480px;padding:1rem;display:flex;position:sticky;top:100px;overflow:visible}.map-illustration{flex:1;justify-content:center;align-items:center;display:flex;position:relative}.map-base{opacity:.15;filter:brightness(.4)contrast(1.8)grayscale();pointer-events:none;width:100%;height:100%}.node-pulse{transform-origin:50%;animation:2s cubic-bezier(.455,.03,.515,.955) infinite pulse-ring}@keyframes pulse-ring{0%{opacity:.8;transform:scale(.95)}50%{opacity:.4;transform:scale(1.4)}to{opacity:.8;transform:scale(.95)}}.route-overlay{width:100%;height:100%;position:absolute;top:0;left:0}.node{background:var(--primary);width:12px;height:12px;box-shadow:0 0 15px var(--primary);z-index:2;border-radius:50%;position:absolute}.node:after{content:"";border:2px solid var(--primary);border-radius:50%;animation:2s infinite pulse;position:absolute;inset:-4px}.node-label{white-space:nowrap;color:#fff;background:#000c;border:1px solid #ffffff1a;border-radius:4px;padding:2px 8px;font-size:.7rem;position:absolute;top:-25px;left:50%;transform:translate(-50%)}.route-line-svg{z-index:1;width:100%;height:100%;position:absolute;top:0;left:0}.animated-path{stroke-dasharray:8;animation:20s linear infinite dashmove}@keyframes dashmove{to{stroke-dashoffset:-200px}}.visual-footer{text-align:center;border-top:1px solid #ffffff0d;margin-top:1.5rem;padding-top:1rem}.visual-type-badge{text-transform:uppercase;letter-spacing:1px;color:var(--primary);background:rgba(var(--primary-rgb), .1);border-radius:100px;padding:4px 12px;font-size:.7rem;font-weight:600}.modal-footer-brand{opacity:.3;letter-spacing:1px;margin-top:2rem;font-size:.75rem}
