*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#152126;color:#e5e9de;font-family:system-ui,-apple-system,'Malgun Gothic',sans-serif}button,input{font:inherit}button{cursor:pointer;color:inherit;border:0}button:focus-visible,input:focus-visible{outline:3px solid #f5c473;outline-offset:4px}[hidden]{display:none!important}#scene{position:fixed;inset:0;touch-action:none}#scene canvas{display:block;width:100%;height:100%}.vignette{position:fixed;inset:0;pointer-events:none;background:radial-gradient(ellipse at center,transparent 45%,#06101166);z-index:1}header{position:fixed;top:28px;left:30px;right:30px;z-index:4;display:flex;justify-content:space-between;align-items:start;pointer-events:none}.route-badge{display:flex;gap:12px;align-items:center;padding:12px 16px;background:#142529cc;backdrop-filter:blur(10px);border:1px solid #bacac22b;border-radius:4px;box-shadow:0 3px 15px #0002}.route-badge b{font:700 25px monospace;color:#e6bd70;border-right:1px solid #adc4b633;padding-right:12px}.route-badge>span{font-size:12px;letter-spacing:1px}.route-badge small{display:block;font-size:9px;margin-top:5px;color:#9eb3ad;letter-spacing:.4px}#help{pointer-events:auto;background:#142529bb;border:1px solid #bacac22b;padding:12px 15px;border-radius:4px;font-size:11px}#help span{padding-left:10px;color:#d8be84}#loading,#entry{position:fixed;inset:0;z-index:20;display:grid;place-content:center;background:#101b22dd;backdrop-filter:blur(5px)}#loading{background:#152126}.loading-sign{font:700 60px monospace;color:#e6bd70;text-align:center}#loading p{font-size:12px;color:#a6b5ac;margin-top:24px;text-align:center}#entry{background:linear-gradient(90deg,#071316a3,#07131650);backdrop-filter:blur(2px)}.boarding-pass{width:330px;max-width:calc(100vw - 40px);background:#e1e4d8;color:#233e38;padding:27px;box-shadow:0 15px 100px #0007;border-radius:3px}.pass-head{display:flex;align-items:center;justify-content:space-between;font-size:10px;letter-spacing:2px}.pass-head b{font:700 20px monospace;color:#426550}.boarding-pass h1{font-size:55px;letter-spacing:9px;margin:30px 0 18px;font-weight:500}.pass-route{display:flex;align-items:center;justify-content:space-between;font-size:11px;padding-bottom:24px;border-bottom:1px dashed #516d6155}.pass-route span{color:#9ca898}.boarding-pass p{font-size:12px;line-height:1.9;color:#5d7167;margin:22px 0}.boarding-pass #enter{background:#294e43;color:#e4e9d8;padding:16px;width:100%;display:flex;justify-content:space-between;border-radius:2px;font-size:13px}.boarding-pass #enter:hover{background:#3b6353}.sound-choice{display:flex;align-items:center;gap:7px;margin:18px 0;font-size:10px;cursor:pointer}.sound-choice input{accent-color:#315d49}.sound-choice span{margin-left:auto;font-size:9px;color:#7b8b7e}.boarding-pass>small{font-size:8px;color:#849085;display:block;line-height:1.6}#location{position:fixed;left:32px;top:113px;z-index:3;display:flex;gap:10px;align-items:center;font-size:10px;text-shadow:0 1px 5px #000;color:#d1dacf}.separator{opacity:.3}#movingDot{width:4px;height:4px;background:#d8b775;border-radius:50%;box-shadow:0 0 7px #e4b462}.look-help{position:fixed;left:50%;bottom:122px;transform:translateX(-50%);z-index:4;background:#101d239c;padding:9px 15px;border-radius:20px;font-size:11px;color:#bacdc4;white-space:nowrap;pointer-events:none;transition:opacity 1s}.look-help span{padding:0 10px;opacity:.5}nav{position:fixed;left:50%;bottom:30px;transform:translateX(-50%);z-index:5;display:flex;align-items:center;background:#122328e6;backdrop-filter:blur(18px);border:1px solid #b5c4ab36;border-radius:9px;padding:7px 12px;box-shadow:0 10px 40px #0005;gap:5px}nav button{display:flex;flex-direction:column;align-items:center;gap:9px;white-space:nowrap;font-size:10px;min-width:78px;padding:9px 11px;background:transparent;border-radius:4px;color:#c1d0c5;transition:background .2s}nav button:hover,nav button[aria-pressed=true],nav button[aria-expanded=true]{background:#b4c6b11c;color:#fff2cd}.nav-icon{font-size:24px;height:27px;line-height:27px;color:#d4dec9;font-family:Arial,sans-serif}.bell-dot{color:#d37c61;font-size:20px}#bell.requested{background:#9c3c283b;color:#ffd6b8}.pause{position:fixed;right:30px;bottom:49px;z-index:6;background:#15272bba;width:38px;height:38px;border:1px solid #b5c4ab36;border-radius:50%;color:#c0cec0;font-size:14px}.panel{position:fixed;z-index:10;bottom:128px;left:50%;transform:translateX(-50%);background:#192c30f5;backdrop-filter:blur(18px);border:1px solid #bed0b63d;padding:22px;width:300px;max-height:calc(100svh - 170px);overflow-y:auto;border-radius:7px;box-shadow:0 10px 50px #0006}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:15px}.panel h2{font-size:14px;font-weight:500;letter-spacing:.5px;margin:0}.panel-heading>button{background:transparent;font-size:24px;line-height:22px;padding:4px;color:#a9bfb3}.panel p{font-size:10px;line-height:2;color:#a0b6ab}.bus-map{border:1px solid #acc7b133;border-radius:20px 20px 8px 8px;padding:12px 16px;background:#0c1b2022}.map-front,.map-back{text-align:center;font-size:8px;color:#8ba797;margin:4px 0 12px;letter-spacing:1px}.map-back{margin:12px 0 0}.seat-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 35px}.seat-grid button{background:#48645955;border:1px solid #90b39b44;padding:9px 3px;border-radius:5px 5px 3px 3px;font-size:10px;color:#bed4c4}.seat-grid button[aria-pressed=true]{background:#c0cfa3;color:#203b2f;border-color:#e6eecb}#soundPanel label{display:flex;justify-content:space-between;align-items:center;font-size:12px;margin:26px 0;color:#bfd0c4}#soundPanel input{width:125px;accent-color:#c6d5b1}#mute{width:100%;border:1px solid #92af9633;padding:12px;background:#afc1a517;border-radius:3px;font-size:11px}.help-panel{right:30px;left:auto;transform:none;top:90px;bottom:auto;width:310px}#aimLabel{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:3;padding:7px 11px;border-radius:4px;background:#0c1e23bb;border:1px solid #b3ccb444;color:#dce8d2;pointer-events:none;font-size:11px}#drawHint{position:fixed;top:100px;left:50%;transform:translateX(-50%);z-index:7;text-align:center;background:#14282dd4;padding:15px 22px;border:1px solid #b5c4ab36;border-radius:6px;min-width:260px}#drawHint b{font-size:12px;font-weight:500;display:block}#drawHint>span{display:block;font-size:10px;margin:8px 0 12px;color:#aac4b5}#finishDraw{background:#bdd0b5;color:#244237;padding:9px 14px;border-radius:3px;font-size:10px}body.drawing nav{opacity:.25;pointer-events:none}body.drawing #scene{cursor:crosshair}#toast{position:fixed;z-index:30;bottom:145px;left:50%;transform:translate(-50%,8px);opacity:0;pointer-events:none;background:#172c30e8;border:1px solid #c5d4b84d;border-radius:5px;color:#e0e7ce;padding:12px 20px;font-size:12px;white-space:nowrap;transition:opacity .3s,transform .3s}#toast.show{opacity:1;transform:translate(-50%,0)}@media(max-width:640px){header{left:15px;right:15px;top:18px}.route-badge{padding:10px 12px;gap:9px}.route-badge b{font-size:22px}.route-badge>span{font-size:10px}.route-badge small{font-size:8px}#help{font-size:0;padding:11px}#help span{font-size:13px;padding:0}#location{left:18px;top:95px;font-size:9px}nav{bottom:max(16px,env(safe-area-inset-bottom));width:calc(100% - 24px);justify-content:space-between;padding:7px 5px;gap:0}nav button{min-width:0;padding:7px 6px;font-size:9px;gap:6px}.nav-icon{font-size:22px}.pause{right:17px;bottom:107px;width:31px;height:31px;font-size:11px}.look-help{bottom:110px;font-size:9px;padding:8px 12px;max-width:calc(100% - 95px);white-space:normal;text-align:center;line-height:1.8}.look-help span{padding:0 3px}.panel{bottom:110px;max-height:calc(100svh - 225px)}.help-panel{right:15px;top:80px;bottom:auto;max-width:calc(100% - 30px)}#toast{bottom:165px;max-width:90%;white-space:normal;text-align:center;font-size:11px}#drawHint{top:113px;padding:12px 16px}body.drawing .pause{display:none}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}
#entry.station{display:flex;align-items:center;justify-content:flex-start;padding:36px 6vw;background:linear-gradient(90deg,#071418ef 0%,#071418a8 48%,#07141810 100%);backdrop-filter:none;overflow-y:auto}.station-board{width:570px;max-width:100%;padding:28px;background:#14272be8;border:1px solid #b5c4ab40;border-radius:8px;box-shadow:0 25px 80px #0005}.station-heading>span{font:11px monospace;letter-spacing:2px;color:#c9b67e}.station-heading h1{font-size:29px;font-weight:500;letter-spacing:-1px;margin:15px 0 10px}.station-heading p{font-size:11px;line-height:1.8;color:#acc0b7;margin:0 0 20px}#routeChoices{display:grid;gap:8px}.route-choice{display:flex;align-items:center;text-align:left;gap:20px;padding:15px;background:#20373a;border:1px solid #9fb9b322;border-radius:4px}.route-choice:hover{background:#2d494a}.route-choice[aria-pressed=true]{border-color:#d1bb7e;background:#39483f;box-shadow:inset 3px 0 #d1bb7e}.route-choice>b{font:25px monospace;color:#d9c186;width:55px}.route-choice strong{display:block;font-size:14px;font-weight:500}.route-choice small{display:block;font-size:10px;color:#b3c8c2;margin-top:7px}.route-choice em{display:block;font-size:10px;color:#8da9a1;margin-top:5px;font-style:normal}.departure{padding-top:20px;margin-top:18px;border-top:1px dashed #adc4ad44}.departure>strong{display:block;font-size:12px;font-weight:500}.departure>span{display:block;color:#99b2aa;font-size:10px;margin:7px 0 16px}.departure #enter{width:100%;padding:15px;background:#ccd8bb;border-radius:3px;color:#213d34;text-align:left;font-size:13px}.departure>small{font-size:9px;color:#8ca89f}.departure .sound-choice{margin:13px 0}.departure .sound-choice span{color:#a7b9ac}#changeRoute{position:fixed;right:30px;top:88px;z-index:5;background:#142529cc;border:1px solid #bacac22b;padding:10px 12px;border-radius:4px;font-size:10px;color:#b6c9bb}body.drawing #changeRoute{display:none}@media(max-width:640px){#entry.station{padding:14px;align-items:safe center}.station-board{padding:20px}.station-heading h1{font-size:25px;margin:12px 0}.station-heading p{margin-bottom:15px}.route-choice{gap:12px;padding:12px}.route-choice>b{font-size:22px;width:45px}.route-choice strong{font-size:13px}.route-choice small{font-size:9px}.route-choice em{font-size:9px}.departure{margin-top:12px;padding-top:14px}.departure>span{display:none}.departure>strong{margin-bottom:12px}#changeRoute{right:15px;top:123px;font-size:9px;padding:8px}.route-badge small{max-width:210px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}@media(max-height:720px){#entry.station{align-items:flex-start;padding-top:16px;padding-bottom:16px}.station-board{padding:18px}.station-heading h1{font-size:23px;margin:10px 0}.route-choice{padding:10px}.route-choice em{display:none}.departure{margin-top:12px;padding-top:12px}}
#routeProgress{width:64px;height:3px;accent-color:#c9b67e;border:0;opacity:.7}#routeProgress::-webkit-progress-bar{background:#c3d7cc33}#routeProgress::-webkit-progress-value{background:#c9b67e}#segmentLabel{color:#b8caba;margin-left:5px}@media(max-width:640px){#location{flex-wrap:wrap;max-width:calc(100% - 30px);gap:6px}#segmentLabel{margin-left:0}#routeProgress{width:38px}}
@media(max-width:380px){.route-badge small{max-width:155px}.route-badge>span{font-size:9px}.route-choice{gap:9px;padding:11px}.station-heading h1{font-size:22px}.station-heading p{font-size:10px}}
@media(max-height:500px) and (min-width:641px){header{top:12px;left:16px;right:16px}.route-badge{padding:8px 12px}.route-badge b{font-size:20px}#help{padding:10px}#location{top:76px;left:18px;font-size:9px}#changeRoute{top:63px;right:16px;padding:8px;font-size:9px}nav{bottom:max(10px,env(safe-area-inset-bottom));padding:3px 8px}nav button{padding:6px 10px;gap:3px;font-size:9px}.nav-icon{font-size:20px;height:23px;line-height:23px}.pause{right:18px;bottom:25px;width:32px;height:32px}.panel{bottom:87px;max-height:calc(100svh - 135px);padding:14px}.panel-heading h2{font-size:12px}.panel p{margin:8px 0;font-size:9px}#soundPanel label{margin:14px 0;font-size:11px}#mute{padding:9px}.help-panel{top:62px;bottom:auto;right:16px;max-height:calc(100svh - 145px)}.look-help{bottom:86px}#drawHint{top:65px;padding:9px 14px}#drawHint>span{margin:5px 0 8px}#toast{bottom:91px;font-size:10px;padding:9px 14px}#entry.station{justify-content:center;padding:12px}.station-board{width:740px;padding:16px}.station-heading h1{font-size:21px;margin:8px 0 12px}.station-heading p{display:none}#routeChoices{grid-template-columns:1fr 1fr}.route-choice{padding:10px}.route-choice strong{font-size:12px}.route-choice small{font-size:9px}.route-choice em{display:none}.departure{display:grid;grid-template-columns:1fr 1fr;gap:8px 20px;align-items:center;margin-top:12px;padding-top:12px}.departure>span,.departure>small{display:none}.departure>strong{font-size:11px}.departure #enter{grid-column:2;grid-row:1/3;padding:13px}.departure .sound-choice{margin:0;font-size:9px}.departure .sound-choice span{display:none}}
#location{background:#142529bc;border:1px solid #bacac21a;padding:6px 8px;border-radius:4px;text-shadow:none}
#preferences{position:fixed;right:30px;top:131px;z-index:5;background:#14252999;border:1px solid #bacac226;color:#aabeb3;padding:9px 12px;border-radius:4px;font-size:10px}.preferences-panel{z-index:12;right:30px;left:auto;transform:none;width:340px;max-width:calc(100vw - 30px);bottom:125px;max-height:calc(100svh - 155px)}.preferences-panel details{border-top:1px solid #abc3b52b;padding:13px 0}.preferences-panel summary{cursor:pointer;font-size:12px;color:#d8e2cc;min-height:24px}.preferences-panel label{display:flex;justify-content:space-between;font-size:11px;margin:15px 0 8px;color:#b9cdc0}.preferences-panel select{width:100%;padding:10px;background:#243d3d;color:#e0e8d7;border:1px solid #a8c1b344;border-radius:4px;font:inherit;font-size:12px}.preferences-panel input[type=range]{width:100%;accent-color:#c6d5b1}.setting-action{width:100%;padding:11px;margin-top:12px;background:#b2c5ac20;border:1px solid #a8c1b344;border-radius:4px;font-size:11px}.setting-action[aria-pressed=true]{background:#c6d5b1;color:#244238}.radio-links{margin-top:20px}.radio-links>b{font-size:11px;font-weight:500}.radio-links a{display:block;padding:12px 0;border-bottom:1px solid #a8c1b322;color:#d0dfbd;font-size:12px;text-decoration:none}.radio-links a small{display:block;font-size:10px;color:#97b4a3;margin-top:6px}body.drawing #preferences{display:none}@media(max-width:640px){#preferences{top:161px;right:15px;padding:8px;font-size:9px}.preferences-panel{right:15px;bottom:108px;max-height:calc(100svh - 135px);padding:18px}}@media(max-height:500px) and (min-width:641px){#preferences{top:100px;right:16px;padding:7px}.preferences-panel{right:16px;bottom:85px;max-height:calc(100svh - 110px);padding:14px}}
.route-badge{pointer-events:auto;text-align:left}.route-badge:hover{border-color:#d5c49188}.route-panel{left:30px;right:auto;top:95px;bottom:auto;transform:none;width:340px;max-width:calc(100vw - 30px)}#stopList{list-style:none;padding:0;margin:16px 0;border-left:2px solid #91a89444}#stopList li{font-size:12px;padding:13px 12px;margin-left:10px;border-radius:4px;color:#a8bfb1}#stopList .current{background:#bfd0ac24;color:#e1e6c9}#stopList .next{border:1px solid #cfb87777;color:#e5c991}@media(max-width:640px){.route-panel{left:15px;top:85px;max-height:calc(100svh - 190px)}#location{max-width:calc(100vw - 36px)}#segmentLabel{display:none}}@media(max-height:500px) and (min-width:641px){.route-panel{left:16px;top:68px;max-height:calc(100svh - 153px)}}
#stopList li small{display:block;font-size:10px;line-height:1.6;color:#91ac9e;margin-top:5px}.route-panel{max-height:calc(100svh - 230px)}.route-panel .panel-heading{position:sticky;top:-22px;background:#192c30;padding:8px 0;z-index:1}.route-badge small{max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:640px){.route-panel{max-height:calc(100svh - 190px)}.route-badge small{max-width:200px}}@media(max-width:380px){.route-badge small{max-width:155px}}@media(max-height:500px) and (min-width:641px){.route-panel{max-height:calc(100svh - 153px)}.route-panel .panel-heading{top:-14px}}
.arrival-box{position:fixed;z-index:14;left:50%;bottom:125px;transform:translateX(-50%);width:360px;max-width:calc(100vw - 32px);padding:20px;background:#172d30ed;border:1px solid #bdcbaa55;border-radius:8px;box-shadow:0 12px 45px #0004}.arrival-box strong{font-size:15px;font-weight:500}.arrival-box p{font-size:12px;line-height:1.7;color:#b5c8b9}.arrival-box small{display:block;font-size:10px;color:#92ad9d}.arrival-box div{display:flex;gap:8px;margin-top:16px}.arrival-box button,.outside-actions button{padding:12px;border:1px solid #b7c6ad44;border-radius:5px;background:#263f3d;color:#dce4cc;font-size:12px}.arrival-box #alight,.outside-actions #reboard{background:#c5d2b4;color:#223d33}.arrival-box #arrivalTag{background:none;border:0;padding:10px 0 0;font-size:10px;color:#a5bda9}#outsideUI{position:fixed;inset:0;pointer-events:none;z-index:6}.outside-caption{position:absolute;left:30px;bottom:110px;max-width:calc(100vw - 60px);padding:20px;background:#10262bd9;border-radius:6px}.outside-caption h1{font-size:23px;font-weight:500;margin:10px 0}.outside-caption p{font-size:12px;color:#b8cbbd;line-height:1.7}.outside-caption small{font-size:10px;color:#a9bfae}.outside-actions{position:absolute;left:30px;bottom:30px;display:flex;gap:8px;pointer-events:auto;flex-wrap:wrap}.outside-actions button{min-height:44px}@media(max-width:640px){.arrival-box{bottom:110px;padding:16px}.outside-caption{left:16px;bottom:145px;max-width:calc(100vw - 32px);padding:16px}.outside-actions{left:16px;right:16px;bottom:20px;display:grid;grid-template-columns:1fr 1fr;gap:6px}.outside-caption h1{font-size:20px}}@media(max-height:500px){.arrival-box{bottom:85px;padding:12px;max-height:calc(100svh - 160px);overflow:auto}.arrival-box p{margin:6px 0}.arrival-box div{margin-top:8px}.outside-caption{bottom:85px;padding:12px}.outside-caption h1{margin:6px 0}.outside-actions{bottom:16px;display:flex}.outside-caption p{margin:6px 0}}
header,#rideUI nav,#location,#changeRoute,#preferences,#pause,.outside-actions,.outside-caption,.look-help{transition:opacity 1.4s ease}
body.quiet-ui header,body.quiet-ui #rideUI nav,body.quiet-ui #location,body.quiet-ui #changeRoute,body.quiet-ui #preferences,body.quiet-ui #pause,body.quiet-ui .outside-actions,body.quiet-ui .outside-caption,body.quiet-ui .look-help{opacity:0;pointer-events:none}

@media(prefers-reduced-motion:reduce){header,#rideUI nav,#location,.outside-actions,.outside-caption{transition:none}}

@media(max-width:640px){.outside-caption{bottom:195px}.outside-actions #shopWindow:not([hidden]){grid-column:1/-1}}
@media(max-width:640px){.outside-actions #shopWindow:not([hidden]){order:-1}}
.rest-start{border-bottom:1px solid #b7c6ad33;padding-bottom:14px;margin-bottom:16px}.rest-start h2,.journey-heading{font-size:12px;font-weight:500;color:#cbd9bd;margin:10px 0}.rest-start>div{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.rest-start button{padding:12px 8px;text-align:left;background:#344b42;border:1px solid #b7c6ad44;border-radius:5px;font-size:13px}.rest-start small{display:block;font-size:9px;color:#abc2af;margin-top:6px}.rest-start p{font-size:10px;color:#9eb5a7;margin-bottom:0}.outside-tools{position:absolute;right:20px;top:100px;display:flex;gap:8px;pointer-events:auto;transition:opacity 1.4s}.outside-tools button{background:#18302ce8;border:1px solid #b7c6ad44;border-radius:4px;padding:10px;color:#d4dfc8;font-size:11px}body.quiet-ui .outside-tools{opacity:0;pointer-events:none}@media(max-width:640px){.rest-start>div{grid-template-columns:1fr 1fr}.outside-tools{right:16px;top:90px}.rest-start button{padding:10px}.station-heading p{margin-bottom:10px}}@media(max-height:500px){.rest-start>div{grid-template-columns:repeat(4,1fr)}.rest-start{padding-bottom:8px;margin-bottom:8px}}
