.page-top{padding-top:var(--space-7)}.page-top-lg{padding-top:var(--space-8)}.container.container-narrow{max-width:760px}.eyebrow{font:500 var(--text-xs) var(--font-mono);text-transform:uppercase;letter-spacing:.14em;color:var(--ink-faint);margin:0 0 var(--space-3)}.section-title{font-size:1.35rem}.skip-link{position:absolute;top:0;inset-inline-start:0;width:1px;height:1px;overflow:hidden;-webkit-clip-path:inset(50%);clip-path:inset(50%);white-space:nowrap;z-index:var(--z-toast);background:var(--surface);color:var(--ink);border:1px solid var(--ultramarine);border-radius:var(--radius);padding:10px 16px;font-size:var(--text-sm);text-decoration:none}.skip-link:focus{top:12px;inset-inline-start:12px;width:auto;height:auto;-webkit-clip-path:none;clip-path:none}.site-nav .container{gap:var(--space-4) var(--space-5)}.site-nav .nav-links{gap:var(--space-2) 18px}.site-nav .nav-links a{padding:6px 0}.site-nav .nav-links a:active{color:var(--ultramarine)}.site-nav .nav-links a.btn-primary{padding:8px 16px}@media (max-width:640px){.site-nav .container{row-gap:var(--space-1);padding-bottom:var(--space-3)}.site-nav .nav-links{margin-left:0;width:100%;gap:var(--space-1) var(--space-4);font-size:var(--text-sm)}.site-nav .nav-links .btn{min-height:34px;padding:6px 14px;font-size:var(--text-sm)}}.hero{max-width:760px}.hero .lede{margin:var(--space-4) 0 0}.hero-actions{display:flex;gap:var(--space-3);flex-wrap:wrap;margin-top:var(--space-6)}@media (max-width:560px){.br-wide{display:none}}.hero-map{margin-top:var(--space-7);max-width:880px}.hero-map svg{display:block;width:100%;height:auto;overflow:visible}.map-draw{stroke-dasharray:1;stroke-dashoffset:0;animation:map-draw .8s var(--ease-out) .35s both}@keyframes map-draw{0%{stroke-dashoffset:1}}.map-ahead,.map-labels{animation:map-fade .4s var(--ease-out) .95s both}@keyframes map-fade{0%{opacity:0}}.map-labels{animation-delay:1.1s}.map-labels text{fill:var(--ink-soft);font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-anchor:middle}.map-station{transform-box:fill-box;transform-origin:center;animation:station-in .3s var(--ease-out) both}@keyframes station-in{0%{opacity:0;transform:scale(.3)}}.map-station:first-child{animation-delay:.4s}.map-station:nth-child(2){animation-delay:.55s}.map-station:nth-child(3){animation-delay:.8s}.map-station:nth-child(4){animation-delay:1s}.map-station:nth-child(5){animation-delay:1.15s}.map-terminus-halo{opacity:.45;animation:terminus-breathe 4s ease-in-out 1.8s infinite}@keyframes terminus-breathe{0%,to{opacity:.45}50%{opacity:.85}}@media (max-width:560px){.map-labels{display:none}}.stage-chips{list-style:none;display:flex;flex-wrap:wrap;gap:var(--space-2);padding:0;margin:var(--space-4) 0 0}.stage-chip{display:inline-flex;align-items:center;gap:10px;padding:8px 16px 8px 12px;border:1px solid var(--hairline-strong);border-radius:999px;background:var(--surface);color:var(--ink);font-size:var(--text-sm);text-decoration:none;transition:border-color var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out)}.stage-chip:before{content:"";flex:none;width:8px;height:8px;border-radius:50%;border:2px solid var(--ultramarine);background:var(--paper);transition:background var(--dur-fast) var(--ease-out)}.stage-chip:focus-visible,.stage-chip:hover{border-color:var(--ultramarine);background:var(--ultramarine-wash);color:var(--ink)}.stage-chip:focus-visible:before,.stage-chip:hover:before{background:var(--ultramarine)}.stage-chip:active{transform:translateY(1px)}.how-grid{margin-top:var(--space-5)}.how-num{display:flex;align-items:center;gap:10px;font:500 var(--text-xs) var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ultramarine);margin:0 0 var(--space-3)}.how-num:after{content:"";flex:1 1;height:1px;background:var(--hairline)}.note-aside{border-left:3px solid var(--ultramarine);padding:var(--space-1) 0 var(--space-1) var(--space-5);max-width:640px}.auth .input,.filter-bar .input,.filter-bar .select,.ticket .input,.ticket .select{color-scheme:light dark}.ticket{padding:0;overflow:hidden;margin-top:var(--space-5)}.ticket-head{display:flex;justify-content:space-between;gap:var(--space-2) var(--space-4);flex-wrap:wrap;padding:10px var(--space-5);border-bottom:1px dashed var(--hairline-strong);background:var(--ink-wash);font:500 var(--text-xs) var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft)}.ticket-body{padding:var(--space-5)}.q-num{font:500 var(--text-xs) var(--font-mono);letter-spacing:.1em;color:var(--ultramarine);margin-right:var(--space-2)}.route-result-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3) var(--space-5);flex-wrap:wrap}.route-result-head h2{margin-bottom:0}.readiness{display:inline-flex;align-items:center;gap:var(--space-3);margin:0}.readiness-num{font:500 var(--text-lg) var(--font-mono);color:var(--ink)}.readiness-bar{position:relative;width:120px;height:6px;border-radius:999px;background:var(--hairline);overflow:hidden;flex:none}.readiness-bar>span{display:block;height:100%;border-radius:999px;background:var(--ultramarine)}.readiness-label{font:500 var(--text-xs) var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft)}.map-sheet{margin-top:var(--space-5);padding-top:var(--space-4)}.map-legend{display:flex;gap:var(--space-2) var(--space-5);flex-wrap:wrap;margin:0 0 var(--space-2);padding-bottom:var(--space-3);border-bottom:1px solid var(--hairline);font:500 var(--text-xs) var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft)}.map-legend>span{display:inline-flex;align-items:center;gap:8px}.legend-dot{display:inline-block;width:10px;height:10px;border-radius:50%;border:2px solid var(--hairline-strong);background:var(--paper)}.legend-dot.legend-done{border-color:var(--ok);background:var(--ok)}.legend-dot.legend-next{border-color:var(--ultramarine);background:var(--ultramarine);box-shadow:0 0 0 3px var(--ultramarine-wash)}.filter-bar{display:flex;gap:var(--space-3);align-items:end;flex-wrap:wrap;padding:var(--space-4);margin:var(--space-5) 0 var(--space-6)}.filter-bar .field{margin:0;flex:1 1 var(--filter-field-basis,160px)}.filter-field-lg{--filter-field-basis:220px;min-width:220px}.filter-field-sm{--filter-field-basis:160px;min-width:160px}.pro-card{display:flex;flex-direction:column;gap:var(--space-2);transition:border-color var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out)}.pro-card:focus-within,.pro-card:hover{border-color:var(--ink-faint);box-shadow:var(--shadow);transform:translateY(-2px)}.pro-head{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-1)}.pro-name{margin:0}.pro-card:focus-within .pro-name a,.pro-card:hover .pro-name a{text-decoration:underline;-webkit-text-decoration-color:var(--ultramarine);text-decoration-color:var(--ultramarine);text-underline-offset:3px}.pro-headline{color:var(--ink-soft);margin:0}.pro-tags{gap:6px;margin:0}.pro-meta,.pro-tags{display:flex;flex-wrap:wrap}.pro-meta{margin-top:auto;align-items:baseline;justify-content:space-between;gap:var(--space-2) var(--space-4);border-top:1px solid var(--hairline);padding-top:var(--space-3);font-size:var(--text-sm);color:var(--ink-soft)}.pro-price{font-family:var(--font-mono);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--ink);white-space:nowrap}.pro-cta{align-self:start;margin-top:var(--space-1)}.results-count{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.pagination{display:flex;gap:var(--space-2);flex-wrap:wrap;margin-top:var(--space-6)}.pagination a{min-width:40px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.pagination a[aria-current=page]{border-color:var(--ultramarine);color:var(--ultramarine);background:var(--ultramarine-wash)}.crumb{margin-bottom:var(--space-4)}.crumb a{font:400 var(--text-sm) var(--font-mono);letter-spacing:.04em;color:var(--ink-soft);text-decoration:none}.crumb a:hover{color:var(--ink);text-decoration:underline;-webkit-text-decoration-color:var(--ultramarine);text-decoration-color:var(--ultramarine)}.profile-title{display:flex;align-items:baseline;gap:var(--space-3);flex-wrap:wrap}.profile-title h1{margin-bottom:0}.profile-head .lede{margin:var(--space-2) 0 0}.profile-line{width:140px;margin:var(--space-4) 0}.profile-meta{display:flex;gap:var(--space-1) var(--space-4);flex-wrap:wrap;margin:var(--space-3) 0 0;font-family:var(--font-mono);font-size:var(--text-sm);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--ink-soft)}.profile-meta span+span:before{content:"· ";color:var(--ink-faint)}.profile-bio{white-space:pre-line;max-width:640px}.service-card{display:flex;flex-direction:column;gap:var(--space-1)}.service-card h3{margin:var(--space-2) 0 var(--space-1)}.service-card .badge{align-self:start}.service-price{margin:var(--space-3) 0 0;padding-top:var(--space-3);border-top:1px solid var(--hairline);margin-top:auto}.service-price strong{font-family:var(--font-mono);font-weight:500;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.auth{max-width:420px;margin:0 auto;padding-top:var(--space-8);text-align:center}.auth-line{width:72px;margin:0 auto var(--space-5)}.auth .card{margin-top:var(--space-5);padding:var(--space-6);text-align:left;border-top:2px solid var(--ultramarine)}.auth-alt{margin-top:var(--space-4)}.site-footer{margin-top:96px;padding:var(--space-7) 0}.footer-grid{display:flex;justify-content:space-between;gap:var(--space-5) var(--space-7);flex-wrap:wrap}.footer-brand{max-width:46ch}.footer-mark{font-family:var(--font-serif);font-size:1.2rem;color:var(--ink);margin:0 0 var(--space-2)}.footer-mark span{color:var(--ultramarine)}.footer-tag{font-family:var(--font-serif);font-style:italic;font-size:var(--text-lg);color:var(--ink-soft);margin:0}.footer-nav{display:flex;flex-direction:column;gap:var(--space-2);align-items:start}.footer-nav a{color:var(--ink-soft);text-decoration:none;font-size:var(--text-sm);padding:2px 0}.footer-nav a:hover{color:var(--ink);text-decoration:underline;-webkit-text-decoration-color:var(--ultramarine);text-decoration-color:var(--ultramarine);text-underline-offset:4px}.footer-note{margin:var(--space-6) 0 0;padding-top:var(--space-4);border-top:1px solid var(--hairline);font-size:var(--text-sm);color:var(--ink-faint)}