/* Public website and responsive web client. No remote fonts or trackers. */
:root{color-scheme:light;--serif:-apple-system,BlinkMacSystemFont,"PingFang SC",sans-serif}
html{scroll-behavior:smooth;scroll-padding-top:90px}body{font-size:15px;line-height:1.6}button,a,input{touch-action:manipulation}button{min-height:44px}a{color:var(--brand)}button,a{ -webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid var(--brand);outline-offset:4px}h1,h2,h3,p{overflow-wrap:anywhere}h2{font-size:28px;line-height:1.3;font-weight:800}h3{font-weight:750}button:disabled{cursor:not-allowed}img{max-width:100%}[hidden]{display:none!important}
.skip-link{position:fixed;top:-100px;left:16px;z-index:3000;background:white;padding:12px;border-radius:12px}.skip-link:focus{top:12px}
.site-header{max-width:1280px;padding:24px 40px;min-height:88px;border:0}.brand{text-decoration:none;color:var(--ink);gap:11px;font-size:22px;font-weight:850}.brand img{border-radius:11px}.brand-caption{font-size:9px;letter-spacing:1.5px;align-self:end;padding-bottom:5px;margin-left:7px;color:var(--muted)}.site-header nav{display:flex;align-items:center;gap:28px}.site-header nav>a{text-decoration:none;font-size:13px;font-weight:650;color:var(--ink)}.nav-app{background:var(--ink);color:white;border:0;border-radius:99px;padding:10px 20px;font-size:13px;font-weight:700}.nav-app span{margin-left:12px;color:var(--lime)}
.site-main{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:70px;max-width:1200px;padding:40px 40px 80px;align-items:start}.intro{position:sticky;top:32px}.eyebrow{font-size:11px;font-weight:650;letter-spacing:1px;color:var(--muted)}.eyebrow i{display:inline-block;width:7px;height:7px;background:var(--brand);border-radius:50%;margin-right:8px}.intro h1{font-size:clamp(48px,5.6vw,76px);letter-spacing:-3px;line-height:1.13;margin:24px 0}.intro h1 em{font-style:normal}.lede{font-size:15px;line-height:1.9;color:var(--muted);margin:0 0 30px}.scene{height:auto;aspect-ratio:540/320;background:var(--soft);position:relative;overflow:hidden;border:0}.scene img{width:100%;height:100%;display:block;object-fit:cover}.scene-label{position:absolute;bottom:16px;left:22px;font-size:9px;letter-spacing:1.5px;color:var(--ink)}.scene-number{display:none}.manifest{display:flex;justify-content:space-between;gap:12px;margin-top:20px;font-size:10px;color:var(--muted)}.planner{min-width:0;scroll-margin-top:24px}.panel{padding:26px;border-radius:28px;border:1px solid var(--line);box-shadow:0 16px 60px #17284b06;background:white;min-height:400px}.panel:focus{outline:none}.mobile-intro{display:none}
.panel h2{font-weight:800;font-size:28px;margin-top:12px}.sub{font-size:14px;line-height:1.8;color:var(--muted)}.note{font-size:11px;line-height:1.8;color:var(--muted)}.pill{font-size:10px;padding:6px 10px;background:var(--lime);color:var(--ink);font-weight:750}.primary,.secondary{font-size:14px;font-weight:750;border-radius:16px;min-height:52px}.primary{background:var(--brand);color:white}.secondary{background:var(--soft);border:0;color:var(--brand)}.link-button{display:flex;justify-content:center;align-items:center;text-decoration:none;padding:13px 18px;width:100%;text-align:center}.textbtn,.back{font-size:13px;min-height:44px}.pair{gap:10px}.center{text-align:center}.stephead{font-size:11px}.home-controls{padding-bottom:18px;margin-bottom:24px}.home-controls .origin{padding:15px 12px;margin:18px 0;gap:10px;border:1px solid var(--line);background:var(--paper);border-radius:18px;text-align:left;width:100%;min-height:78px}.home-controls .origin strong{font-size:14px;line-height:1.5}.origin small{font-size:10px}.origin>span:first-child{font-size:25px;color:var(--brand)}.origin .change{font-size:11px}.field legend{font-size:12px;font-weight:650;margin-bottom:10px}.field legend span{font-size:10px;font-weight:400;float:none;margin-left:8px}.home-controls .time{gap:8px}.home-controls .time .option{flex-direction:column;gap:0;border:0;background:var(--paper);border-radius:18px;min-height:95px;padding:12px 5px;position:relative}.home-controls .time b{font-size:34px;line-height:1.15;letter-spacing:-1px}.home-controls .time small{font-size:10px}.home-controls .option[aria-pressed=true]{color:white;background:var(--brand)}.home-controls .option[aria-pressed=true]:after{content:"";position:absolute;top:11px;right:11px;width:6px;height:6px;background:var(--lime);border-radius:50%}.return-choice{font-size:13px;min-height:44px;margin:16px 0 0}.return-choice input{appearance:none;width:36px;height:22px;border-radius:20px;background:var(--line);position:relative;cursor:pointer;order:3;margin-left:auto}.return-choice input:before{content:"";position:absolute;width:16px;height:16px;border-radius:50%;background:white;top:3px;left:3px;transition:transform .15s}.return-choice input:checked{background:var(--brand)}.return-choice input:checked:before{transform:translateX(14px)}.return-choice small{font-size:10px;margin-left:0}.return-choice input:focus-visible{outline:3px solid var(--brand);outline-offset:3px}.history-link{font-size:11px;padding:9px 13px}.route-kicker{font-size:11px}.route-origin{font-size:11px;line-height:1.8}.real-map{height:310px;margin-top:20px;border-radius:20px}.map-legend{font-size:10px;gap:12px;flex-wrap:wrap}.stats{background:var(--paper);border-radius:18px;padding:16px 12px;border:0;margin:20px 0 10px}.stats div+div{border-left:1px solid var(--line);padding-left:12px}.stats strong{font-family:var(--serif);font-size:27px;font-weight:850;letter-spacing:-1px}.stats small{font-size:9px}.legend{font-size:10px}.alert{font-size:11px;line-height:1.7;background:var(--paper);border:0;border-radius:14px;padding:14px;color:var(--muted)}summary{font-size:13px;min-height:50px;font-weight:650}.timeline{font-size:12px}.timeline small{font-size:11px;line-height:1.8}.timeline .num{background:var(--soft);color:var(--brand)}.nav-links a{font-size:11px;border-radius:14px}.route-dock{position:sticky;bottom:0;background:#ffffffed;backdrop-filter:blur(16px);padding:14px 0 4px;z-index:12;border-top:1px solid var(--line);margin-top:20px}.route-dock .pair{margin:0!important}.route-connect{width:100%;display:flex;align-items:center;justify-content:center;gap:8px;font-size:12px;background:none;border:0;color:var(--brand);margin-top:5px}.location-panel,.prompt{background:var(--soft);border:0;border-radius:20px;padding:18px}.location-heading strong{font-weight:750}.location-warning{color:#8b381d}.prompt p{font-size:12px}.history-item{padding:20px}.history-open strong{font-size:20px;font-weight:750}.history-meta{font-size:11px}.history-actions{gap:10px}.history-empty{background:var(--paper);border-radius:20px}.memory-card h3{font-size:29px}.consent-art{font-size:42px;font-weight:900;color:var(--brand);margin:24px 0}.consent-card{background:var(--paper);border-radius:18px;padding:18px;margin:22px 0}.consent-card p{font-size:12px;color:var(--muted);line-height:1.8;margin:8px 0}.consent-card button{background:none;border:0;color:var(--brand);padding:0;font-size:12px}.incoming-notice{background:var(--soft);border-radius:16px;padding:15px;margin-bottom:18px;font-size:13px}.incoming-notice strong{display:block;margin-bottom:5px}.loading:before{content:"";display:block;width:24px;height:24px;border:3px solid var(--soft);border-top-color:var(--brand);border-radius:50%;animation:spin 1s linear infinite;margin-bottom:20px}@keyframes spin{to{transform:rotate(360deg)}}
.how-section,.faq,.app-band{max-width:1120px;margin:0 auto 80px;scroll-margin-top:30px}.section-title{margin-bottom:28px}.section-title h2{font-size:32px;margin:8px 0}.how-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.how-grid article{padding:28px;border-radius:24px;background:white;border:1px solid var(--line)}.feature-number{display:flex;align-items:center;justify-content:space-between;font-size:35px;font-weight:850;color:var(--brand)}.feature-number span{font-size:24px;color:var(--ink);background:var(--lime);border-radius:50%;width:44px;height:44px;text-align:center;line-height:44px}.how-grid h3{font-size:20px;margin:25px 0 8px}.how-grid p{font-size:13px;color:var(--muted);line-height:1.9;margin:0}.app-band{background:var(--brand);color:white;border-radius:32px;padding:48px 60px;display:flex;justify-content:space-between;gap:50px;overflow:hidden}.app-band .eyebrow{color:#ffffffb0;font-size:10px}.app-band h2{font-size:42px;letter-spacing:-1px;margin:20px 0}.app-band p{font-size:13px;color:#ffffffc9;line-height:1.9}.light-button{background:var(--lime);color:var(--ink);border:0;border-radius:14px;padding:13px 20px;font-weight:750;margin-top:12px}.light-button span{margin-left:30px}.mini-ticket{background:var(--lime);color:var(--ink);padding:30px;border-radius:24px;transform:rotate(6deg);width:320px;flex-shrink:0;align-self:center}.mini-ticket>span{font-size:10px;font-weight:700}.mini-ticket strong{display:block;font-size:55px;font-weight:900;line-height:1.04;letter-spacing:-3px;margin:35px 0}.mini-ticket div{font-size:10px;border-top:1px solid #171f2b40;padding-top:15px;display:flex;align-items:center;justify-content:space-between}.mini-ticket b{font-size:30px}.faq{max-width:800px}.faq h2{font-size:27px}.faq details{border-bottom:1px solid var(--line);border-top:0;margin:0}.faq summary{font-size:15px;min-height:65px}.faq p{font-size:14px;line-height:1.8;color:var(--muted);padding-bottom:18px;margin:0}.site-footer{max-width:1120px;margin:0 auto;padding:28px 0 36px;display:flex;align-items:center;gap:24px;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}.site-footer .brand{font-size:16px}.site-footer button{margin-left:auto;border:0;background:none;font-size:12px;color:var(--muted)}.site-footer small{font-size:10px}
dialog{border:0;border-radius:28px;max-width:490px;width:calc(100% - 32px);max-height:90dvh;overflow:auto;padding:26px;background:white;color:var(--ink);box-shadow:0 30px 90px #171f2b30}dialog::backdrop{background:#171f2b70;backdrop-filter:blur(5px)}.dialog-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.close-dialog{width:44px;border-radius:50%;background:var(--paper);border:0;font-size:24px;color:var(--ink)}dialog h2{font-size:32px;margin:20px 0}dialog h3{font-size:16px;margin:22px 0 8px}dialog p{font-size:13px;line-height:1.8;color:var(--muted)}dialog>.secondary{margin-top:10px;width:100%}.store-pending{padding:15px;border-radius:14px;background:var(--paper)}.progress-steps{display:flex;gap:6px;margin:20px 0}.progress-steps i{height:5px;background:var(--line);border-radius:10px;flex:1}.progress-steps .active{background:var(--brand)}
@media(min-width:1600px){.site-main{gap:100px}.intro h1{font-size:80px}}
@media(max-width:1000px){.site-main{gap:32px;padding:30px 24px 60px}.site-header{padding:22px 24px}.brand-caption{display:none}.how-section,.faq,.app-band,.site-footer{margin-left:24px;margin-right:24px}.how-grid article{padding:22px}.app-band{padding:38px}.mini-ticket{width:260px}.mini-ticket strong{font-size:46px}.panel{padding:22px}.intro h1{font-size:56px}.manifest{display:block}.manifest span{display:block;margin-bottom:5px}.site-footer{flex-wrap:wrap;gap:14px}.site-footer small{width:100%}}
@media(max-width:700px){.site-header{padding:16px 20px;min-height:75px}.brand{font-size:20px}.brandmark{width:34px;height:34px}.site-header nav{gap:14px}.site-header nav>a{font-size:12px}.nav-app{padding:9px 15px;font-size:12px}.site-main{display:block;max-width:520px;padding:0 16px 42px}.intro{display:none}.mobile-intro{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:16px 4px 24px;letter-spacing:0}.mobile-intro h1{font-size:34px;line-height:1.2;letter-spacing:-1px;margin:12px 0 0;max-width:230px}.mobile-intro em{display:block;color:var(--ink)}.mobile-intro small{font-size:11px;color:var(--muted);margin:0}.mobile-intro img{width:135px;height:115px;object-fit:cover;border-radius:50%}.panel{border:0;border-radius:24px;padding:22px 18px;box-shadow:none;min-height:350px}.panel h2{font-size:25px}.home-controls .origin{background:var(--paper);margin:18px 0}.home-controls .time .option{min-height:96px}.home-controls .time b{font-size:34px}.home-controls .origin strong{font-size:14px}.home-controls .time small{font-size:11px}.route-dock{bottom:0;margin-left:-18px;margin-right:-18px;padding:12px 18px max(8px,env(safe-area-inset-bottom));border-radius:0 0 20px 20px}.real-map{height:300px}.stats strong{font-size:25px}.route-origin{font-size:12px}.how-section,.app-band,.faq{margin:0 20px 44px}.section-title h2{font-size:27px}.how-grid{grid-template-columns:1fr;gap:12px}.how-grid article{padding:20px 22px;display:grid;grid-template-columns:62px 1fr;column-gap:20px}.feature-number{grid-row:1/3;font-size:29px;align-self:start}.feature-number span{display:none}.how-grid h3{margin:0 0 7px;font-size:18px}.how-grid p{font-size:12px}.app-band{border-radius:26px;padding:30px;gap:30px;display:block}.app-band h2{font-size:34px}.mini-ticket{width:100%;transform:rotate(3deg);margin-top:32px;padding:24px}.mini-ticket strong{font-size:45px;margin:20px 0}.faq h2{font-size:24px}.faq summary{font-size:14px}.site-footer{margin:0 20px;padding:22px 0 30px}.site-footer>span{display:none}.site-footer small{display:block!important}.site-footer .brand{font-size:17px}dialog{border-radius:24px;padding:22px}dialog h2{font-size:28px}.memory-card{padding:24px}.memory-card h3{font-size:27px}.memory-card .ticket-minutes{font-size:62px}}
@media(max-width:360px){.mobile-intro h1{font-size:30px}.mobile-intro img{width:105px;height:110px}.return-choice small{display:none}.brand{font-size:18px}.site-header nav{gap:9px}.nav-app{padding:9px 12px}.stats strong{font-size:22px}.route-kicker{font-size:10px}.panel{padding:20px 14px}.route-dock{margin-left:-14px;margin-right:-14px;padding-left:14px;padding-right:14px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before{animation:none!important;transition:none!important}}

.secondary{text-align:center}.home-controls .time .option{align-items:center}
.primary:hover{background:#1e3ed0}.secondary:hover{background:#dfe6ff}dialog .secondary{text-align:center}.intro .eyebrow:before{display:none}

.site-footer{flex-wrap:wrap}.site-footer .site-legal{width:100%;line-height:1.8}.site-legal a{color:inherit;text-decoration:none}.site-legal a:hover{text-decoration:underline}
