.page-enter-active,.page-leave-active{transition:opacity .25s ease,transform .25s ease}.page-enter{opacity:0;transform:translateY(8px)}.page-leave-to{opacity:0}@media (prefers-reduced-motion:reduce){.page-enter-active,.page-leave-active{transition:none}}:root{--ink:#0b1b2b;--ink-2:#13283d;--ink-3:#1c3550;--text:#0f1f30;--muted:#5b6b7c;--line:#e4e9f0;--paper:#fff;--cloud:#f5f7fb;--bus:#ffb703;--bus-2:#ffd166;--bus-pale:#fff6dc;--teal:#14b8a6;--teal-pale:#e3f8f5;--sky:#3b82f6;--grape:#8b5cf6;--stop:#e5484d;--asphalt:#273444;--radius:22px;--shadow-sm:0 1px 2px rgba(11,27,43,.06),0 2px 8px rgba(11,27,43,.05);--shadow:0 2px 4px rgba(11,27,43,.04),0 12px 32px rgba(11,27,43,.08);--shadow-lg:0 30px 80px rgba(11,27,43,.18);--display:"Plus Jakarta Sans","Inter",system-ui,sans-serif}html{scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}.v-application{font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif!important;color:var(--text)!important;background:var(--paper)!important}.v-application .text-h1,.v-application .text-h2,.v-application .text-h3,.v-application .text-h4,.v-application .text-h5,.v-application .text-h6,.v-application h1,.v-application h2,.v-application h3{font-family:var(--display)!important;letter-spacing:-.02em!important}.v-application a{color:inherit}.v-btn{text-transform:none!important;letter-spacing:0!important;font-weight:700!important}.v-card{border-radius:var(--radius)!important}.wrap{width:100%;max-width:1200px;margin:0 auto;padding:0 24px}.wrap-narrow{max-width:820px}.section{padding:clamp(72px,9vw,128px) 0;position:relative}.section-tight{padding:clamp(48px,6vw,80px) 0}.bg-cloud{background:var(--cloud)}.bg-ink{background:var(--ink);color:#fff}.eyebrow{display:inline-flex;align-items:center;gap:8px;font:700 .78rem/1 Inter,sans-serif;letter-spacing:.14em;text-transform:uppercase;color:#b07a00;margin-bottom:18px}.eyebrow:before{content:"";width:22px;height:3px;border-radius:3px;background:var(--bus)}.on-dark .eyebrow{color:var(--bus-2)}.h-display{letter-spacing:-.035em;line-height:1.02;font-size:clamp(2.6rem,6.4vw,5.2rem);margin:0 0 22px}.h-display,.h-section{font-family:var(--display);font-weight:800}.h-section{letter-spacing:-.03em;line-height:1.08;font-size:clamp(2rem,4.2vw,3.3rem);margin:0 0 18px}.h-card{font-family:var(--display);font-weight:700;letter-spacing:-.015em;font-size:1.25rem;line-height:1.25;margin:0 0 8px}.lead{font-size:clamp(1.05rem,1.5vw,1.25rem);line-height:1.65;color:var(--muted);max-width:40em}.on-dark .lead{color:hsla(0,0%,100%,.72)}.muted{color:var(--muted)}.grad-text{background:linear-gradient(100deg,var(--bus) 0,#ffd166 45%,#5eead4 100%);-webkit-background-clip:text;background-clip:text;color:transparent}.center{text-align:center}.center .lead{margin-left:auto;margin-right:auto}.btn-bus.v-btn{background:var(--bus)!important;color:var(--ink)!important;box-shadow:0 8px 24px rgba(255,183,3,.35)!important}.btn-bus.v-btn:hover{box-shadow:0 12px 30px rgba(255,183,3,.5)!important;transform:translateY(-1px)}.btn-ink.v-btn{background:var(--ink)!important;color:#fff!important}.btn-ghost.v-btn{border:1.5px solid rgba(11,27,43,.18)!important;background:transparent!important}.on-dark .btn-ghost.v-btn{border-color:hsla(0,0%,100%,.28)!important;color:#fff!important}.v-btn.btn-bus,.v-btn.btn-ghost,.v-btn.btn-ink{transition:transform .2s,box-shadow .2s}.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:28px;position:relative;overflow:hidden;transition:transform .25s ease,box-shadow .25s ease,border-color .25s}.card.lift:hover{transform:translateY(-4px);box-shadow:var(--shadow);border-color:#d5dde8}.card-dark{background:linear-gradient(160deg,var(--ink-2),var(--ink));color:#fff;border-color:hsla(0,0%,100%,.08)}.card-dark .muted{color:hsla(0,0%,100%,.65)}.glass{background:hsla(0,0%,100%,.08);border:1px solid hsla(0,0%,100%,.14);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-radius:18px}.icon-chip{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;flex:none;background:var(--bus-pale);color:#9a6a00;margin-bottom:18px}.icon-chip.teal{background:var(--teal-pale)!important;border-color:transparent!important;color:#0f766e}.icon-chip.sky{background:#e6efff;color:#1d4ed8}.icon-chip.grape{background:#f0eaff;color:#6d28d9}.icon-chip.coral{background:#ffe9e7;color:#c2410c}.icon-chip .v-icon{color:inherit!important}.bt-spot:after{content:"";position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .3s;background:radial-gradient(420px circle at var(--mx,50%) var(--my,50%),rgba(255,183,3,.12),transparent 40%)}.bt-spot:hover:after{opacity:1}.grid{display:grid;gap:22px}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}@media (max-width:960px){.grid-3,.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:640px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}}.pill{display:inline-flex;align-items:center;gap:8px;padding:7px 14px;border-radius:999px;font-weight:600;font-size:.85rem;background:var(--cloud);border:1px solid var(--line)}.on-dark .pill{background:hsla(0,0%,100%,.08);border-color:hsla(0,0%,100%,.16);color:#fff}.live-dot{width:8px;height:8px;border-radius:50%;background:#22c55e;box-shadow:0 0 0 0 rgba(34,197,94,.6);animation:live 1.8s infinite}@keyframes live{70%{box-shadow:0 0 0 9px rgba(34,197,94,0)}to{box-shadow:0 0 0 0 rgba(34,197,94,0)}}.check-list{list-style:none;padding:0!important;margin:0}.check-list li{display:flex;gap:10px;align-items:flex-start;padding:6px 0}.check-list li:before{content:"✓";flex:none;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-size:.75rem;font-weight:900;background:var(--teal-pale);color:#0f766e;margin-top:2px}.rv{opacity:0;transform:translateY(26px);transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1)}.rv.rv-left{transform:translateX(-36px)}.rv.rv-right{transform:translateX(36px)}.rv.rv-zoom{transform:scale(.94)}.rv.is-in{opacity:1;transform:none}.page-hero{position:relative;overflow:hidden;background:var(--ink);color:#fff;padding:clamp(140px,16vw,190px) 0 clamp(70px,8vw,110px)}.page-hero .lead{color:hsla(0,0%,100%,.72)}.glow{position:absolute;border-radius:50%;filter:blur(80px);pointer-events:none}.glow.y{background:rgba(255,183,3,.35)}@media (max-width:700px){.glow{transform:scale(.55);opacity:.7}}.glow.t{background:rgba(20,184,166,.3)}.glow.b{background:rgba(59,130,246,.3)}.grid-lines{position:absolute;inset:0;pointer-events:none;opacity:.5;background-image:linear-gradient(hsla(0,0%,100%,.05) 1px,transparent 0),linear-gradient(90deg,hsla(0,0%,100%,.05) 1px,transparent 0);background-size:56px 56px;mask-image:radial-gradient(ellipse at 50% 30%,#000 30%,transparent 75%);-webkit-mask-image:radial-gradient(ellipse at 50% 30%,#000 30%,transparent 75%)}.form-card{background:var(--paper);border:1px solid var(--line);border-radius:26px;box-shadow:var(--shadow);padding:clamp(24px,4vw,40px)}.v-application .v-text-field--outlined fieldset{border-color:#d6dde7}.v-application .v-text-field--outlined.v-input--is-focused fieldset{border-width:2px}.prose{font-size:1.06rem;line-height:1.8;color:#243445}.prose h2{font-size:1.6rem;letter-spacing:-.02em;margin:2em 0 .5em}.prose h2,.prose h3{font-family:var(--display);color:var(--text)}.prose h3{font-size:1.2rem;margin:1.6em 0 .4em}.prose ol,.prose p,.prose ul{margin-bottom:1.1em}.prose a{color:#1d4ed8;text-decoration:underline;text-underline-offset:3px}.prose blockquote{border-left:4px solid var(--bus);padding:4px 0 4px 18px;color:var(--muted);margin:1.4em 0}.cta-band{position:relative;overflow:hidden;border-radius:32px;background:var(--ink);color:#fff;padding:clamp(40px,6vw,72px)}.portal-bg{background:var(--cloud);min-height:100vh}.stat{padding:22px}.stat .num{font-family:var(--display);font-weight:800;font-size:2rem;letter-spacing:-.03em;line-height:1.1}.stat .lbl{color:var(--muted);font-weight:600;font-size:.85rem}.table-card .v-data-table{background:transparent!important}.table-card .v-data-table th{font-weight:700!important;text-transform:uppercase;font-size:.72rem!important;letter-spacing:.06em}.status-chip{text-transform:capitalize;font-weight:700!important}.street{position:relative;height:clamp(230px,20vw,280px);flex:none;z-index:2}.street .sidewalk{bottom:92px;height:22px;background:#2b3b4f;border-top:3px solid #3a4d63}.street .road,.street .sidewalk{position:absolute;left:0;right:0}.street .road{bottom:0;height:92px;background:#1a2533}.street .road:after{content:"";position:absolute;left:0;right:0;top:50%;height:5px;transform:translateY(-50%);background:repeating-linear-gradient(90deg,var(--bus) 0 48px,transparent 48px 96px);opacity:.85}.street .stop-sign{position:absolute;bottom:112px;left:clamp(40px,12vw,180px);width:66px}.street .kid{position:absolute;bottom:110px;left:calc(clamp(40px, 12vw, 180px) + 62px);width:44px}.street .hero-bus{position:absolute;bottom:30px;left:0;width:clamp(360px,42vw,560px);transform:translateX(110vw)}.street .ping{position:absolute;right:clamp(16px,5vw,80px);bottom:150px;max-width:320px;display:flex;gap:12px;align-items:center;padding:14px 16px;color:#fff;opacity:0;transform:translateY(14px) scale(.96);transition:opacity .5s,transform .5s cubic-bezier(.3,1.4,.5,1)}.street .ping .ico{width:40px;height:40px;border-radius:12px;background:var(--bus);display:grid;place-items:center;flex:none}.street .ping b{display:block;font-size:.95rem}.street .ping span{color:hsla(0,0%,100%,.7);font-size:.82rem}.hero.arrived .street .ping{opacity:1;transform:none;transition-delay:.5s}.hero.go .hero-bus{animation:pull-up 2.6s cubic-bezier(.22,.9,.3,1) forwards}@keyframes pull-up{0%{transform:translateX(110vw)}to{transform:translateX(var(--bus-stop-x,30vw))}}.hero-bus .wheel{transform-box:fill-box;transform-origin:center}.hero.go .hero-bus .wheel{animation:spin .5s linear 5.2 forwards}@keyframes spin{to{transform:rotate(-1turn)}}.hero-bus .arm{transform-box:fill-box;transform-origin:right center;transform:scaleX(.08);transition:transform .45s cubic-bezier(.3,1.5,.5,1)}.hero.arrived .hero-bus .arm{transform:scaleX(1)}.flash{opacity:.25}.hero.arrived .hero-bus .flash,.ride-bus.stopped .flash{animation:flash .9s steps(1) infinite}.hero.arrived .hero-bus .flash.b,.ride-bus.stopped .flash.b{animation-delay:.45s}@keyframes flash{0%{opacity:1}50%{opacity:.25}}.exhaust{opacity:0}.hero.arrived .exhaust{animation:puff 2.4s ease-out infinite}.hero.arrived .exhaust.b{animation-delay:1.2s}@keyframes puff{0%{opacity:.6;transform:translate(0) scale(.6)}to{opacity:0;transform:translate(26px,-18px) scale(1.6)}}.route{position:relative;overflow:hidden;background:linear-gradient(180deg,#eef6ea,#e7f2e2)}.route-map{position:relative;height:520vh;min-height:3600px}.route-map svg.road{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.road-edge{fill:none;stroke:#cfe0c5;stroke-linecap:round;stroke-linejoin:round}.road-body{fill:none;stroke:var(--asphalt);stroke-linecap:round;stroke-linejoin:round}.road-lane{fill:none;stroke:var(--bus);stroke-dasharray:26 26;stroke-linecap:butt}.road-done{fill:none;stroke:var(--teal);stroke-linecap:round;opacity:.7}.ride-bus{position:absolute;left:0;top:0;width:84px;z-index:4;will-change:transform;pointer-events:none}.ride-bus .arm{transform-box:fill-box;transform-origin:100% 50%;transform:rotate(-90deg);transition:transform .35s cubic-bezier(.3,1.6,.5,1)}.ride-bus.stopped .arm{transform:rotate(0deg)}.ride-bus .beam{opacity:.55}.ride-bus.stopped .beam{opacity:.15}.route .tree{width:64px}.route .house,.route .tree{position:absolute;z-index:1;pointer-events:none}.route .house{width:92px}.route-map .school{position:absolute;z-index:2;width:300px;pointer-events:none}.stop-marker{position:absolute;z-index:2;width:44px;height:44px;transform:translate(-50%,-50%)}.stop{position:absolute;z-index:3;width:min(430px,40vw);transform:translateY(-50%);background:hsla(0,0%,100%,.92);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(11,27,43,.08);border-radius:24px;padding:26px;box-shadow:var(--shadow);transition:box-shadow .35s,transform .35s,border-color .35s}.stop.here{border-color:rgba(229,72,77,.5);box-shadow:0 0 0 4px rgba(229,72,77,.12),var(--shadow-lg)}.stop .stop-no{display:flex;align-items:center;gap:10px;font-weight:700;font-size:.85rem;color:var(--stop);margin-bottom:10px;letter-spacing:.02em}.stop .stop-no svg{width:30px;height:30px}.stop h3{font-family:var(--display);font-size:1.35rem;letter-spacing:-.02em;line-height:1.2;margin:0 0 8px}.stop p{color:var(--muted);margin-bottom:14px;line-height:1.6}.stop .demo-ui{background:var(--cloud);border-radius:16px;padding:12px;font-size:.92rem}.kid-row{display:flex;align-items:center;gap:10px;background:#fff;border-radius:12px;padding:10px 12px;box-shadow:var(--shadow-sm)}.kid-row+.kid-row{margin-top:8px}.kid-row .who{flex:1;font-weight:700;line-height:1.2}.kid-row .who small{display:block;font-weight:400;color:var(--muted)}.chip{font:inherit;font-weight:700;font-size:.8rem;border-radius:999px;padding:7px 12px;border:1.5px solid var(--line);background:#fff;cursor:pointer;line-height:1}.chip.on{background:#16a34a;border-color:#16a34a;color:#fff}.chip.warn{border-color:#f59e0b;color:#b45309}.chip.done{background:#16a34a;border-color:#16a34a}.chip.away,.chip.done{color:#fff;cursor:default}.chip.away{background:#f59e0b;border-color:#f59e0b}.note{display:flex;gap:10px;align-items:flex-start;background:#fff;border-radius:12px;padding:10px 12px;line-height:1.3;box-shadow:var(--shadow-sm);transition:opacity .35s,transform .35s}.note+.note{margin-top:8px}.note.hidden{opacity:0;transform:translateY(8px)}.note .dot{width:30px;height:30px;flex:none;border-radius:10px;display:grid;place-items:center;font-weight:800;color:#fff;font-size:.75rem}.note small{display:block;color:var(--muted)}.mini-map{height:150px;border-radius:12px;position:relative;overflow:hidden;background:#e3eedc}.mini-map svg{width:100%;height:100%}.eta{position:absolute;right:10px;top:10px;background:var(--ink);color:#fff;font-weight:700;border-radius:999px;padding:6px 12px;font-size:.8rem}.seat-grid{display:grid;grid-template-columns:repeat(2,1fr) 14px repeat(2,1fr);gap:6px}.seat{height:22px;border-radius:6px;background:#d5dde6;transition:background .2s}.seat.checked{background:#16a34a}.seat-aisle{background:none!important}.check-line{margin:10px 0 0!important;font-weight:700;color:#15803d!important}@media (max-width:760px){.route-map{height:640vh}.stop{width:auto;left:92px!important;right:14px;padding:20px 18px}.ride-bus{width:60px}.route .house,.route .tree{display:none}.route-map .school{width:180px}.street .hero-bus{width:300px}.street .kid{display:none}.street .stop-sign{left:12px;width:54px}.street .ping{left:16px;right:16px;bottom:auto;top:-8px;max-width:none}}@media print{.no-print,.v-app-bar,.v-navigation-drawer,footer.site-footer,header.site-nav{display:none!important}.v-main{padding:0!important}}