:root{color-scheme:light;--ink:#17243a;--muted:#516079;--nav:#11213a;--paper:#f4f6fa;--line:#dce3ed;--blue:#164fb7;--lightblue:#e7efff;--lime:#d9f781;--white:#fff;font:16px/1.55 "Segoe UI",system-ui,sans-serif}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink)}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #3b79ef;outline-offset:4px}svg{display:block} [data-icon] svg,.icon svg{width:1.25em;height:1.25em}.skip{position:fixed;top:8px;left:8px;z-index:10;background:white;padding:12px;transform:translateY(-150%)}.skip:focus{transform:none}.shell{display:grid;grid-template-columns:234px minmax(0,1fr);min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;background:var(--nav);color:#dbe5f5;padding:30px 17px 22px;display:flex;flex-direction:column;gap:42px}.brand{display:flex;align-items:center;gap:12px;color:#fff;font-size:.89rem;font-weight:800;letter-spacing:.1em;line-height:1.13;margin-left:9px;width:max-content}.brand-icon{display:grid;place-items:center;background:var(--lime);color:var(--nav);border-radius:13px;width:43px;height:43px;font-size:22px}.sidebar nav{display:grid;gap:6px}.nav-link{display:flex;align-items:center;gap:11px;min-height:46px;padding:8px 11px;border-radius:10px;font-size:.875rem;font-weight:600}.nav-link:hover,.nav-link[aria-current=page]{background:#253a59;color:white}.nav-link[aria-current=page] .icon{color:var(--lime)}.side-bottom{display:flex;align-items:flex-start;gap:10px;margin-top:auto;padding:12px 8px;border-top:1px solid #384a64;font-size:.78rem}.side-bottom small{display:block;color:#bccbe0}.dot{background:var(--lime);width:8px;height:8px;border-radius:50%;margin-top:7px;flex:none}.workspace{display:flex;flex-direction:column;min-width:0}.top{background:white;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;min-height:64px;padding:0 clamp(18px,4vw,54px);font-size:.875rem;font-weight:700;gap:12px}.city,.location{display:inline-flex;align-items:center;gap:7px}.city{color:var(--muted);font-weight:600}main{width:min(100%,1320px);margin:0 auto;padding:30px clamp(18px,4vw,54px) 42px;flex:1}footer{border-top:1px solid var(--line);padding:17px clamp(18px,4vw,54px);color:var(--muted);font-size:.75rem;display:flex;gap:8px 22px;justify-content:space-between;flex-wrap:wrap}footer span:first-child{font-weight:800;letter-spacing:.12em}h1,h2,h3,p{margin:0}h1{font-size:clamp(2rem,4.2vw,3.8rem);line-height:1.05;letter-spacing:-.055em}h2{font-size:clamp(1.3rem,2.3vw,1.65rem);letter-spacing:-.035em;line-height:1.2}h3{font-size:1.15rem;line-height:1.25;letter-spacing:-.018em}.hero{display:grid;grid-template-columns:1.16fr 1fr;overflow:hidden;border-radius:25px;background:#142a4a;color:white;min-height:340px}.hero-copy{padding:clamp(24px,3.7vw,48px);position:relative;z-index:1}.hero h1{margin:15px 0}.hero em{font-style:normal;color:var(--lime)}.hero p{color:#dbe7fb;max-width:42ch}.hero-art{position:relative;overflow:hidden;background:#192f51;min-height:190px}.hero-art svg{width:100%;height:100%;position:absolute;inset:0}.hero-art .map-caption{position:absolute;bottom:14px;right:14px;color:#e6efff;background:#11213a;padding:5px 9px;border-radius:7px;font-size:.72rem}.location{background:#253e60;border:1px solid #4a607c;color:white;border-radius:999px;padding:5px 10px;font-size:.76rem;font-weight:650}.location svg{color:var(--lime)}.label{font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:var(--blue)}.section-head{display:flex;align-items:end;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px}.section-head p,.muted{color:var(--muted)}.section{margin-top:26px}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.panel,.tile,.arrival{background:white;border:1px solid var(--line);border-radius:17px;padding:20px;min-width:0}.tile{display:flex;flex-direction:column;align-items:flex-start;gap:10px;min-height:173px;transition:border-color .18s,box-shadow .18s,transform .18s}.tile:hover{border-color:#799be0;box-shadow:0 8px 24px #1d376314;transform:translateY(-2px)}.tile.primary{background:#ebf2ff;border-color:#abc4f3}.tile p{font-size:.9rem;color:var(--muted)}.tile .action{margin-top:auto}.tile-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:var(--lightblue);color:var(--blue);font-size:18px}.primary .tile-icon{background:var(--blue);color:white}.tile-icon.green{background:#edf7d7;color:#36571c}.tile-icon.purple{background:#f1eafe;color:#613b99}.action{display:inline-flex;align-items:center;gap:7px;color:var(--blue);font-size:.875rem;font-weight:750}.notice{display:flex;align-items:flex-start;gap:9px;padding:13px 15px;border:1px solid var(--line);border-radius:12px;background:#eaf0f8;color:#354762;font-size:.85rem}.notice .icon{flex:none;margin-top:2px}.home-notice{margin-top:20px}.page-head{display:grid;gap:9px;margin-bottom:24px}.page-head p{max-width:65ch}.page-head h1{font-size:clamp(2.2rem,4vw,3.4rem)}.badge{display:inline-flex;align-items:center;gap:5px;background:#edf2fa;color:#384e71;border-radius:99px;padding:4px 9px;font-size:.75rem;font-weight:700;width:max-content;max-width:100%}.arrival{display:grid;gap:8px}.route-code{display:grid;place-items:center;width:42px;height:36px;background:var(--lightblue);color:var(--blue);border-radius:9px;font-weight:800}.eta{font-size:2rem;line-height:1.1;font-weight:800;letter-spacing:-.05em}.eta small{font-size:.9rem;letter-spacing:0}.arrival p{font-size:.88rem}.route-list{display:grid;gap:9px}.route-row{background:white;border:1px solid var(--line);border-radius:13px;padding:0 16px}.route-row summary{display:flex;align-items:center;gap:12px;min-height:62px;cursor:pointer;list-style:none}.route-row summary::-webkit-details-marker{display:none}.route-row summary:focus-visible{outline:3px solid #3b79ef;outline-offset:3px}.route-row summary .route-name{flex:1}.route-row summary .icon{transition:transform .2s}.route-row[open] summary .icon{transform:rotate(180deg)}.route-row p{margin:0 0 14px 54px}.map-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(210px,1fr);gap:16px}.map-canvas{position:relative;min-height:260px;aspect-ratio:1.5;border-radius:14px;background:#e9edf4;overflow:hidden}.map-canvas>svg{width:100%;height:100%;position:absolute;inset:0}.pin{position:absolute;transform:translate(-50%,-50%);width:44px;height:44px;display:grid;place-items:center;border:2px solid white;border-radius:50%;background:#fff;color:#1a4898;box-shadow:0 2px 9px #142a4a40}.pin[aria-pressed=true]{background:#164fb7;color:#fff;z-index:1}.pin:hover{box-shadow:0 0 0 4px #164fb750}.map-info{display:grid;align-content:start;gap:12px}.map-info p{color:var(--muted)}.map-key{display:flex;gap:13px;flex-wrap:wrap;font-size:.75rem;color:var(--muted);margin-top:10px}.line{display:inline-block;width:18px;vertical-align:middle;border-top:3px solid #2461c8;margin-right:5px}.line.alt{border-color:#7051a6;border-top-style:dashed}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 15px;min-height:44px;border:1px solid transparent;border-radius:10px;background:var(--blue);color:white;font-weight:700;font-size:.9rem;width:max-content;max-width:100%;text-align:center}.btn:hover{background:#113d8f}.btn.secondary{background:white;color:var(--blue);border-color:#b8c8e1}.btn.secondary:hover{background:#edf3ff}.buttons{display:flex;flex-wrap:wrap;gap:9px;margin-top:12px}.activity{display:grid;gap:10px}.minute-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.learn{grid-column:1/-1;background:#edf4ff;border-color:#b9cef5}.lesson{border-left:3px solid #4071c8;padding-left:14px;margin-top:5px;display:grid;gap:6px;max-width:70ch}.breath-visual{margin:4px auto;display:grid;place-items:center;width:112px;height:112px;border-radius:50%;background:#eaf4df;color:#355e34}.breath-visual span{width:65px;height:65px;border-radius:50%;background:#a7d98a;transition:transform 1s;transform:scale(.83)}.breath-visual.inhale span{transform:scale(1.36);transition-duration:4s}.breath-visual.exhale span{transition-duration:4s}.breath-status{text-align:center;font-weight:700}.quiz-options{display:grid;gap:7px}.quiz-options .btn{width:100%;justify-content:flex-start;text-align:left}.quiz-options .chosen{background:#e8f1ff;border-color:#4b76bf}.form-wrap{max-width:745px}.form-wrap .notice{margin-bottom:12px}.form{display:grid;gap:16px}.field{display:grid;gap:6px}.field label{font-weight:700}.field input,.field textarea,.field select{width:100%;border:1px solid #adbcd2;border-radius:9px;background:white;color:var(--ink);padding:10px 12px;min-height:44px}.field textarea{resize:vertical;min-height:110px}.field small{color:var(--muted)}.field [aria-invalid=true]{border-color:#a32833}.field .error{color:#a32833;font-weight:650}.privacy{font-size:.88rem;color:var(--muted)}.review{display:grid;gap:12px}.review dl,.confirmation dl{margin:0;display:grid;gap:4px}.review dt,.confirmation dt{font-size:.81rem;color:var(--muted);font-weight:700}.review dd,.confirmation dd{margin:0 0 8px;overflow-wrap:anywhere;white-space:pre-wrap}.confirmation{max-width:680px;display:grid;gap:15px}.confirmation .tile-icon{width:54px;height:54px;font-size:25px}
@media(max-width:1050px){.shell{grid-template-columns:190px minmax(0,1fr)}.sidebar{padding-inline:12px}.hero{grid-template-columns:1.3fr 1fr}}
@media(max-width:760px){.shell{display:block}.sidebar{position:static;height:auto;gap:12px;padding:13px 15px}.brand{margin:0}.sidebar nav{display:flex;flex-wrap:wrap;gap:3px 6px}.nav-link{padding:6px 8px;font-size:.78rem;gap:5px}.side-bottom{display:none}.top{min-height:44px}main{padding-top:18px}.hero{min-height:0}.hero-copy{padding:23px}.map-layout{grid-template-columns:1fr}}
@media(max-width:510px){.hero{grid-template-columns:1fr}.hero-art{min-height:180px}.grid,.minute-grid{grid-template-columns:1fr}.grid.arrivals{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.arrival,.tile,.panel{padding:15px}.tile{min-height:0}.hero h1{font-size:clamp(2.1rem,9vw,2.65rem)}.city{font-size:.75rem}.map-canvas{min-height:225px}.route-row{padding-inline:10px}.route-row summary{gap:8px}.route-row p{margin-left:0}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important}.tile:hover{transform:none}}
[hidden]{display:none!important}
.sim-panel{display:grid;grid-template-columns:minmax(0,1fr) minmax(130px,auto);gap:12px 18px;align-items:center;border:1px solid #b6caf0;border-radius:17px;padding:18px 20px;background:#eaf2ff}
.sim-panel h2{margin:4px 0 6px}.sim-panel p{font-size:.88rem;color:var(--muted)}.sim-controls{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.sim-controls button:disabled{opacity:.55;cursor:default;background:#f4f6fa}
.sim-clock{display:grid;align-content:center;min-height:105px;padding:10px 15px;background:#142a4a;border-radius:13px;color:#fff;font-size:.76rem}
.sim-clock strong{color:var(--lime);font-size:2.15rem;line-height:1.1;font-variant-numeric:tabular-nums}
.sim-event{grid-column:1/-1;border-top:1px solid #b6caf0;padding-top:9px;min-height:31px}
.route-progress{width:100%;height:8px;accent-color:var(--blue)}.eta{font-size:clamp(1.3rem,2.6vw,2rem);font-variant-numeric:tabular-nums}
.bus-layer{pointer-events:none}.sim-bus{transition:transform .72s linear,opacity .2s}.sim-bus rect,.bus-key{fill:#16396b;background:#16396b;stroke:#fff;stroke-width:2;color:#fff}.sim-bus text{fill:#fff;font:800 14px system-ui,sans-serif}.bus-key{display:inline-grid;place-items:center;border-radius:4px;width:17px;height:16px}
.map-arrivals{margin:0;padding:0;list-style:none;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:.84rem}.map-arrivals li{display:flex;justify-content:space-between;gap:8px;padding:5px 0}.map-arrivals li+li{border-top:1px solid #edf1f7}
@media(max-width:510px){.sim-panel{grid-template-columns:1fr;padding:14px}.sim-clock{grid-template-columns:auto 1fr;gap:3px 10px;align-items:center;min-height:0}.sim-clock strong{grid-column:2;grid-row:1/3;text-align:right}.route-row summary [data-eta]{font-size:.81rem;text-align:right}}
.hero-art{margin:0;isolation:isolate}
.hero-art img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 58%}
.hero-art .map-caption{z-index:1;bottom:12px;right:12px}
@media(max-width:510px){.hero-art{min-height:0;aspect-ratio:1.72}}
