*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-height:100vh;background:radial-gradient(circle at 15% 0%,rgba(94,234,212,.08),transparent 40%),radial-gradient(circle at 85% 15%,rgba(245,166,35,.06),transparent 45%),linear-gradient(180deg,#0a0e1b,#0d1226 40%,#0a0e1b);color:#eef1fb;font-family:Space Grotesk,sans-serif;-webkit-font-smoothing:antialiased}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;background-image:linear-gradient(rgba(94,234,212,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(94,234,212,.05) 1px,transparent 1px);background-size:42px 42px;-webkit-mask-image:radial-gradient(circle at 50% 0%,black,transparent 75%);mask-image:radial-gradient(circle at 50% 0%,black,transparent 75%);animation:gridDrift 60s linear infinite}@keyframes gridDrift{0%{background-position:0 0,0 0}to{background-position:420px 420px,420px 420px}}.app{position:relative;z-index:1;max-width:1140px;margin:0 auto;padding:0 24px 100px}.navbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;padding:20px 0;margin-bottom:8px;background:#0a0e1bb3;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid rgba(94,234,212,.1)}.navbar-logo{font-weight:700;font-size:20px;letter-spacing:-.02em;background:linear-gradient(90deg,#eef1fb,#5eead4);-webkit-background-clip:text;background-clip:text;color:transparent}.navbar-links{display:flex;gap:28px}.navbar-links a{color:#8b95b5;text-decoration:none;font-size:14px;transition:color .2s ease}.navbar-links a:hover{color:#5eead4}.hero{position:relative;padding:72px 0 56px;border-bottom:1px solid rgba(94,234,212,.12);animation:heroReveal .7s ease both}@keyframes heroReveal{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.hero-eyebrow{display:inline-flex;align-items:center;gap:8px;font-family:IBM Plex Mono,monospace;font-size:13px;color:#5eead4;margin:0 0 18px;padding:6px 14px;border:1px solid rgba(94,234,212,.25);border-radius:999px;background:#5eead40f}.hero h1{font-size:64px;line-height:1.02;margin:0 0 18px;letter-spacing:-.03em;background:linear-gradient(120deg,#eef1fb 30%,#5eead4 70%,#f5a623);-webkit-background-clip:text;background-clip:text;color:transparent}.hero-subtitle{font-size:18px;color:#a7b0cf;max-width:58ch;line-height:1.55;margin:0}.section{padding:60px 0;border-bottom:1px solid rgba(94,234,212,.1)}.section h2{font-size:27px;margin:0 0 26px;letter-spacing:-.01em}.navigation-section{display:grid;grid-template-columns:360px 1fr;gap:24px;align-items:start}@media (max-width: 820px){.navigation-section{grid-template-columns:1fr}}.panel{background:#161d338c;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid rgba(94,234,212,.16);border-radius:16px;padding:26px;box-shadow:0 20px 60px -30px #0009}.panel h2{font-size:20px;margin:0 0 8px}.panel-hint{color:#8b95b5;font-size:14px;margin:0 0 18px}.location-selector h2{font-size:23px;margin-bottom:4px}.field{display:block;margin-top:20px}.field span{display:block;font-size:13px;color:#8b95b5;margin-bottom:7px}.field select{width:100%;padding:12px 14px;border-radius:10px;border:1px solid rgba(94,234,212,.2);background:#0e1327;color:#eef1fb;font-family:inherit;font-size:15px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:linear-gradient(45deg,transparent 50%,#5eead4 50%),linear-gradient(135deg,#5eead4 50%,transparent 50%);background-position:calc(100% - 20px) center,calc(100% - 15px) center;background-size:5px 5px,5px 5px;background-repeat:no-repeat;transition:border-color .2s ease,box-shadow .2s ease}.field select:focus{outline:none;border-color:#5eead4;box-shadow:0 0 0 3px #5eead42e}.button-row{display:flex;gap:12px;margin-top:26px}.btn{flex:1;padding:12px 16px;border-radius:10px;border:none;font-family:inherit;font-size:14px;font-weight:600;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease,opacity .15s ease}.btn-primary{background:linear-gradient(120deg,#5eead4,#38bdf8);color:#0a0e1b;box-shadow:0 10px 30px -12px #5eead48c}.btn-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 14px 34px -12px #5eead4b3}.btn-primary:disabled{opacity:.35;cursor:not-allowed;box-shadow:none}.btn-secondary{background:#ffffff08;color:#eef1fb;border:1px solid rgba(94,234,212,.22)}.btn-secondary:hover:not(:disabled){border-color:#5eead4;color:#5eead4}.btn-secondary:disabled{opacity:.35;cursor:not-allowed}.route-info{margin-top:26px;padding-top:24px;border-top:1px solid rgba(94,234,212,.14);animation:heroReveal .4s ease both}.route-info h3{font-size:16px;margin:0 0 16px;color:#eef1fb}.route-info-empty{color:#8b95b5;font-size:14px}.route-path{display:flex;flex-direction:column;gap:2px;margin-bottom:20px}.route-step{font-family:IBM Plex Mono,monospace;font-size:14px}.route-arrow{display:block;color:#f5a623;padding-left:4px}.route-stats{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}.route-stats>div{display:flex;flex-direction:column;gap:5px;padding:12px;border-radius:10px;background:#5eead40d;border:1px solid rgba(94,234,212,.12)}.stat-label{font-size:11px;color:#8b95b5;text-transform:none}.stat-value{font-family:IBM Plex Mono,monospace;font-size:16px;color:#f5a623;font-weight:600}.graph-panel{overflow:hidden}.campus-graph{width:100%;height:460px;border-radius:12px;border:1px solid rgba(94,234,212,.14);background:radial-gradient(circle at 20% 20%,rgba(94,234,212,.05),transparent 55%),radial-gradient(circle at 80% 80%,rgba(245,166,35,.04),transparent 55%),#0a0e1b}.algorithm-steps{background:#161d338c;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid rgba(94,234,212,.16);border-radius:16px;padding:26px;box-shadow:0 20px 60px -30px #0009}.step-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.step-count{font-family:IBM Plex Mono,monospace;font-size:13px;color:#8b95b5}.step-buttons{display:flex;gap:10px}.step-buttons .btn{flex:none;padding:9px 18px}.step-description{font-size:15px;line-height:1.55;margin-bottom:22px;animation:heroReveal .3s ease both}.distance-table{width:100%;border-collapse:collapse;font-family:IBM Plex Mono,monospace;font-size:13px;animation:heroReveal .3s ease both}.distance-table th{text-align:left;color:#8b95b5;font-weight:500;padding:9px 14px;border-bottom:1px solid rgba(94,234,212,.14)}.distance-table td{padding:9px 14px;border-bottom:1px solid rgba(94,234,212,.06)}.distance-table tr:nth-child(2n) td{background:#ffffff04}.active-row td{background:#f5a6231a!important;color:#f5a623}.concept-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:16px}.concept-card{position:relative;background:#161d3380;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(94,234,212,.14);border-radius:14px;padding:22px;overflow:hidden;transition:transform .2s ease,border-color .2s ease}.concept-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,#5eead4,#38bdf8)}.concept-card:hover{transform:translateY(-3px);border-color:#5eead459}.concept-card h3{font-size:16px;margin:8px 0;color:#5eead4}.concept-card p{font-size:14px;color:#8b95b5;line-height:1.55;margin:0}.footer{padding:36px 0 0;text-align:center;color:#8b95b5;font-size:13px}
