@font-face{font-family:'Noto Sans Devanagari';src:url('./assets/devanagari.ttf') format('truetype');font-weight:100 900;font-display:swap}
:root{--ink:#343f36;--muted:#79715d;--paper:#fff7e8;--accent:#a34d36;--line:#daa343;--sans:'Noto Sans Devanagari',Arial,sans-serif;--intro-cream:#fff4dd;--intro-orange:#f1b58b}
*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:#e9dcc0;color:var(--ink);font-family:Arial,sans-serif}button,select{font:inherit}button{cursor:pointer}canvas#scene{position:fixed;inset:0;width:100%;height:100%;display:block;touch-action:none;outline:none}
/* The living street is the cover image. */
#intro{position:fixed;inset:0;z-index:5;padding:clamp(22px,3.4vw,56px);color:var(--intro-cream);background:#202720;transition:opacity .65s ease,visibility .65s ease,background .7s ease}
body.loaded #intro{background:linear-gradient(90deg,rgba(22,29,25,.94) 0%,rgba(22,29,25,.82) 29%,rgba(22,29,25,.42) 53%,rgba(22,29,25,.08) 100%),linear-gradient(0deg,rgba(17,23,21,.78),rgba(17,23,21,0) 26%)}
body.playing #intro{opacity:0;visibility:hidden;pointer-events:none}
.intro-shell{height:100%;width:min(100%,1680px);margin:auto;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) auto}
.intro-mast,.intro-brand,.intro-footer,.route{display:flex;align-items:center}
.intro-mast{justify-content:space-between;gap:24px;font:600 11px/1.3 Arial,sans-serif;letter-spacing:.18em}
.intro-brand{gap:18px;white-space:nowrap}.intro-mark{font:400 39px/.8 'Iowan Old Style',Baskerville,Georgia,serif;letter-spacing:-.09em}.intro-mark-dot{color:var(--intro-orange)}.intro-brand-rule{height:25px;width:1px;background:rgba(255,244,221,.45)}
.intro-location{color:rgba(255,244,221,.77);white-space:nowrap}.intro-location span{color:var(--intro-orange);padding:0 10px}
.intro-copy{align-self:center;max-width:min(740px,68vw);padding:5vh 0 8vh}
.eyebrow{display:flex;align-items:center;gap:14px;color:var(--intro-orange);font:700 11px/1.3 Arial,sans-serif;letter-spacing:.22em}.eyebrow-rule{width:34px;height:1px;background:currentColor}
.name{margin:34px 0 18px;color:var(--intro-orange);font:600 clamp(30px,3vw,44px)/1.3 var(--sans);letter-spacing:-.055em}
.intro-copy h1{margin:0;color:var(--intro-cream);font:400 clamp(78px,9.8vw,154px)/.83 'Iowan Old Style',Baskerville,'Palatino Linotype',Georgia,serif;letter-spacing:-.075em;text-wrap:nowrap}
.intro-copy h1 em{display:block;margin-left:.38em;font-weight:400;letter-spacing:-.09em}
.description{margin:38px 0 34px;max-width:510px;color:rgba(255,244,221,.91);font:400 clamp(17px,1.45vw,22px)/1.5 'Iowan Old Style',Baskerville,Georgia,serif;text-wrap:balance}
.entry{display:flex;align-items:center;gap:23px}
#go{min-width:235px;display:flex;align-items:center;justify-content:space-between;gap:28px;padding:17px 20px 18px 23px;border:1px solid var(--intro-cream);border-radius:1px;background:var(--intro-cream);color:#27332b;font:600 13px/1.2 Arial,sans-serif;transition:background .22s,color .22s,transform .22s,border-color .22s}
#go span{font:400 23px/1 Georgia,serif;transition:transform .22s}#go:enabled:hover{background:var(--intro-orange);border-color:var(--intro-orange);transform:translateY(-2px)}#go:enabled:hover span{transform:translate(2px,-2px)}#go:enabled:active{transform:translateY(1px)}#go:disabled{opacity:.55;cursor:wait}
.loading{min-width:165px;color:rgba(255,244,221,.72);font:11px/1.4 Arial,sans-serif}.stripe{height:2px;margin-top:11px;background:rgba(255,244,221,.25);overflow:hidden}#bar{height:100%;background:var(--intro-orange);transform:scaleX(0);transform-origin:left;transition:transform .2s}
.keys{display:flex;gap:19px;flex-wrap:wrap;margin-top:26px;color:rgba(255,244,221,.69);font:11px/1.4 Arial,sans-serif}
kbd{font:600 10px/1 Arial,sans-serif;letter-spacing:.08em;border:1px solid rgba(255,244,221,.42);border-radius:2px;padding:4px 5px;margin-right:4px;color:var(--intro-cream)}
.touch-intro{display:none;margin-top:18px;color:rgba(255,244,221,.72);font-size:11px}
.intro-footer{justify-content:space-between;gap:22px;border-top:1px solid rgba(255,244,221,.35);padding-top:19px;font:600 10px/1.3 Arial,sans-serif;letter-spacing:.13em;color:rgba(255,244,221,.82)}
.route{gap:19px;white-space:nowrap}.route-label{color:var(--intro-orange);font-size:9px;letter-spacing:.18em;margin-right:15px}.route-stop.current{color:var(--intro-cream)}
.route-track{position:relative;width:96px;height:1px;background:rgba(255,244,221,.55);display:flex;align-items:center;justify-content:space-between}.route-track i{display:block;width:5px;height:5px;border:1px solid var(--intro-cream);border-radius:50%;background:#26342a}.route-track i.current{width:9px;height:9px;border:2px solid var(--intro-orange);background:var(--intro-orange)}
.credit{color:rgba(255,244,221,.66);font:10px/1.3 Arial,sans-serif;letter-spacing:0;text-decoration:none;white-space:nowrap}.credit:hover{color:var(--intro-cream);text-decoration:underline;text-underline-offset:3px}

.hud{position:fixed;z-index:3;opacity:0;pointer-events:none;transition:opacity .4s}body.playing .hud{opacity:1}body.noui .hud,body.shot .hud,body.shot #intro{display:none!important}#identity{left:24px;top:24px;display:flex;gap:10px;align-items:center;text-shadow:0 1px 8px #fff8;font-size:13px;letter-spacing:1.8px;font-weight:bold}#identity small{display:block;font-size:8px;margin-top:6px;letter-spacing:1.4px;font-weight:normal}.identity-mark{background:var(--accent);color:var(--paper);padding:12px 9px;letter-spacing:0;border-radius:2px;font:19px Georgia,serif}#corner{top:24px;right:24px;display:flex;gap:7px;align-items:center;pointer-events:auto}#clock,.chip,#quality{background:#fff7e8eb;border:1px solid #eee3c9;border-radius:3px;padding:10px 12px;color:var(--ink);font-size:11px}#clock{font-variant-numeric:tabular-nums}.chip[aria-pressed=true]{background:var(--accent);color:white}#places{bottom:65px;left:50%;transform:translateX(-50%);display:flex;background:#fff7e8ed;border-radius:3px;pointer-events:auto;box-shadow:0 4px 20px #332d1718;padding:5px}#places button{border:0;background:transparent;padding:12px 16px;white-space:nowrap;color:var(--ink);font-size:11px}#places button span{font-size:9px;color:var(--accent);margin-right:7px}#places button:hover{background:#e9dac1}#help{bottom:24px;left:0;right:0;text-align:center;font-size:10px;color:var(--ink);text-shadow:0 1px 5px white}#help>span{padding:8px 12px;background:#fff7e8cc;border-radius:3px}#toast{top:86px;left:24px}.sign{font-size:11px;letter-spacing:.5px;background:#fff7e8eb;border-left:3px solid var(--accent);padding:10px 13px;opacity:0;transform:translateY(-5px);transition:opacity .4s,transform .4s}#toast.show .sign{opacity:1;transform:none}#cross{top:50%;left:50%;width:4px;height:4px;background:#fff9;border-radius:50%}#stats{position:fixed;bottom:8px;right:8px;z-index:4;background:#343f36;color:white;padding:6px;font-size:10px}button:focus-visible,select:focus-visible,a:focus-visible{outline:3px solid var(--line);outline-offset:3px}

@media(pointer:fine){.touch{display:none}}
@media(pointer:coarse){.desk,.keys{display:none}.touch-intro{display:block}}
@media(max-width:900px){.intro-copy{max-width:74vw}.intro-copy h1{font-size:clamp(72px,11vw,118px)}.intro-footer{align-items:flex-end}.route{gap:11px}.route-label{margin-right:3px}.route-track{width:55px}}
@media(max-width:650px){
#intro{padding:24px 22px 19px}body.loaded #intro{background:linear-gradient(90deg,rgba(22,29,25,.88),rgba(22,29,25,.36)),linear-gradient(0deg,rgba(17,23,21,.8),transparent 35%)}
.intro-mast{font-size:9px;letter-spacing:.13em}.intro-mark{font-size:31px}.intro-brand{gap:11px}.intro-brand-rule,.intro-brand>span:last-child{display:none}.intro-location{font-size:9px}.intro-location span{padding:0 3px}
.intro-copy{max-width:100%;padding:0 0 12px}.eyebrow{font-size:9px;letter-spacing:.16em}.eyebrow-rule{width:22px}.name{font-size:30px;margin:25px 0 15px}
.intro-copy h1{font-size:clamp(66px,17vw,100px);letter-spacing:-.075em}.intro-copy h1 em{margin-left:.2em}
.description{font-size:17px;line-height:1.45;margin:25px 0}.entry{display:block}#go{width:100%;min-width:0;padding:17px 18px}.loading{margin-top:14px;width:100%}.stripe{margin-top:7px}.touch-intro{font-size:11px}
.intro-footer{display:block;padding-top:13px}.route{justify-content:space-between;gap:6px;font-size:8px;letter-spacing:.06em}.route-label{display:none}.route-track{width:36px;flex:0 0 36px}.credit{display:block;margin-top:17px;font-size:9px}
#identity{left:14px;top:15px;font-size:10px}#identity small{font-size:7px}.identity-mark{font-size:15px;padding:9px 7px}#corner{top:68px;right:14px}#toast{top:70px;left:14px;max-width:45%}#clock{display:none}#quality,.chip{font-size:10px;padding:8px}#places{bottom:65px;max-width:calc(100vw - 20px)}#places button{padding:12px 9px;font-size:10px}#places button span{display:none}#help{bottom:25px;font-size:9px}
}
@media(max-height:680px){.intro-copy{padding:0}.name{margin-top:18px;margin-bottom:8px}.intro-copy h1{font-size:clamp(58px,9vw,110px)}.description{margin:20px 0}.keys{margin-top:16px}.intro-footer{padding-top:12px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
