@font-face{font-family:"Navigation Sans";src:url("./navigation-demo-font.woff2?v=20261023-east-lift-1") format("woff2");font-style:normal;font-weight:100 900;font-display:swap}
:root{--ink:#3d443f;--muted:#798077;--gold:#94712f;--gold-soft:#f5efdf;--line:#e9e7df;--green:#15966c;--paper:#f6f6f1;font-family:"Navigation Sans","Noto Sans SC","Microsoft YaHei UI",sans-serif;font-weight:400;color:var(--ink);background:var(--paper);font-synthesis:none}
*{box-sizing:border-box}body{margin:0;background:linear-gradient(130deg,#fcfbf7 0%,#f4f5f0 75%);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
button,select,input{font:inherit}button{cursor:pointer}button:disabled{cursor:default;opacity:.42}button,a{touch-action:manipulation;-webkit-tap-highlight-color:transparent}
button:focus-visible,a:focus-visible,select:focus-visible{outline:3px solid #b99a5f;outline-offset:4px}
a{color:inherit;text-decoration:none}button svg,.direction-icon svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.icon-defs{position:absolute;width:0;height:0;overflow:hidden}[hidden]{display:none!important}
.site-header{height:74px;padding:0 max(36px,calc((100vw - 1728px)/2));display:flex;align-items:center;justify-content:space-between;gap:24px;background:#ffffffd6;border-bottom:1px solid #e9e8e1}
.brand{display:flex;align-items:center;gap:13px}.brand-mark{width:43px;height:43px;display:grid;place-items:center;background:#f5efe1;border:1px solid #e6d8b7;border-radius:10px;color:#977638}
.brand-mark svg{width:31px;height:31px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.brand b{display:block;font-size:18px;font-weight:550;letter-spacing:1px;color:#404b42}.brand small{display:block;margin-top:3px;font-size:11px;letter-spacing:1.5px;color:#93968b}
.header-actions{display:flex;align-items:center;gap:25px;font-size:13px}.sample-badge{display:flex;align-items:center;gap:7px;color:#a58b55;font-size:12px}
.sample-badge i{width:5px;height:5px;border-radius:50%;background:#b9a168}.back-link{display:flex;align-items:center;gap:10px;color:#7e8279}.back-link span{font-size:21px;color:#a19274}
main{max-width:1800px;margin:auto;padding:0 36px}.intro{display:flex;align-items:center;justify-content:space-between;gap:26px;padding:23px 0 22px}
.eyebrow{font-size:12px;font-weight:450;letter-spacing:1.2px;color:#93968c;margin:0 0 7px}.intro .eyebrow{font-size:11px;letter-spacing:2px;color:#a0957b;margin-bottom:5px}
.intro h1{font-size:31px;font-weight:480;letter-spacing:1px;line-height:1.3;margin:0;color:#3b433c}
.intro-caption{font-size:13px;line-height:1.6;margin:7px 0 0;color:#94968c}
.journey-summary{display:flex;align-items:center;gap:20px;padding:12px 0;background:none}
.journey-stop{display:flex;align-items:center;gap:11px;color:#5d665d;font-size:14px;font-weight:450}
.journey-stop i{font-style:normal;font-size:27px;font-weight:400;letter-spacing:-1px;color:#b9bdb0;padding-right:12px;border-right:1px solid #e0e1d7;line-height:1.45}
.journey-stop small{display:block;font-size:11px;font-weight:400;color:#a0a397;margin-top:4px;letter-spacing:.4px}
.journey-stop.active i{color:#9e7b38}.journey-link{font-size:22px;color:#c5c7bc;font-weight:300}
.journey-mid{display:flex;align-items:center;gap:8px;font-size:12px;color:#9ea592}.journey-mid svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.4}.journey-mid.active{color:#24946d}
.workspace{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:22px;height:calc(100dvh - 388px);min-height:500px;max-height:790px}
.map-card{display:flex;flex-direction:column;min-width:0;min-height:0;position:relative;overflow:hidden;border:1px solid #e6e8dd;border-radius:18px;background:radial-gradient(ellipse at 48% 35%,#fdfdf9,#f1f4e9 90%);box-shadow:0 7px 22px #384b2c04}
.map-topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:17px 23px 13px;z-index:1}
.origin{display:flex;align-items:center;gap:10px}.origin-dot{width:7px;height:7px;flex:none;border-radius:50%;background:#b39861;box-shadow:0 0 0 4px #b3986112}
.origin>span:last-child{font-size:11px;color:#939986;line-height:1.5}.origin b{display:block;font-size:15px;font-weight:450;color:#5b6554;letter-spacing:.2px;margin-top:2px}
.view-switch{display:flex;gap:0;padding:3px;border-radius:9px;background:#e8ecdf9c;border:1px solid #e2e8d8;flex:none}
.view-switch button{border:0;padding:7px 10px;border-radius:6px;color:#909983;background:none;font-size:12px;font-weight:400;transition:background .2s,color .2s}
.view-switch button.selected{background:#fffffa;color:#696b50;box-shadow:0 1px 4px #3c4c2612}
.scene-shell{position:relative;flex:1;min-height:0;overflow:hidden}
#mapScene{position:absolute;inset:0;width:100%;height:100%;cursor:grab;touch-action:none}#mapScene.dragging{cursor:grabbing}
.map-inspector{position:absolute;left:23px;right:23px;top:0;display:flex;align-items:center;justify-content:space-between;gap:12px;z-index:2;pointer-events:none}
.map-inspector>div{pointer-events:auto;display:flex;align-items:center;gap:3px;padding:3px;border:1px solid #e3e7d9;border-radius:9px;background:#fffffaed;box-shadow:0 3px 10px #4b5b2c05}
.map-inspector button{border:0;background:none;border-radius:6px;min-height:33px;padding:6px 10px;font-size:12px;color:#8b967c;font-weight:400}
.map-inspector button.selected{color:#8b713b;background:#f5efde;font-weight:500}.map-inspector button:hover{background:#f4f3e9}
#followWalker{margin-left:3px;border-left:1px solid #e6e8dc;border-radius:0 6px 6px 0}
.zoom-controls span{font-size:11px;min-width:38px;text-align:center;color:#9a9f8f;font-variant-numeric:tabular-nums}
.zoom-controls #zoomIn,.zoom-controls #zoomOut{font-size:18px;padding:3px 9px}
.map-key{position:absolute;left:24px;bottom:13px;display:flex;gap:17px;color:#8b977e;font-size:11px;z-index:1;pointer-events:none}
.map-key span{display:flex;align-items:center;gap:6px}.map-key i{width:6px;height:6px;border-radius:50%;display:inline-block}
.key-start{background:#bd9257}.key-route{background:#17aa74}.key-end{background:#2b8eda}
.floor-count{position:absolute;right:24px;bottom:12px;font-size:10px;letter-spacing:.2px;color:#a0aa91;pointer-events:none}
.route-panel{display:flex;flex-direction:column;min-height:0;overflow:auto;scrollbar-width:thin;border:1px solid #e9e7de;border-radius:18px;background:#fffffc;padding:22px;box-shadow:0 7px 22px #384b2c04}
.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:15px}
.panel-heading .eyebrow{font-size:18px;font-weight:500;letter-spacing:.5px;color:#535b50;margin:0}.count-note{font-size:11px;color:#a0a394}
.destinations{display:grid;gap:9px}.destination{width:100%;display:flex;align-items:center;gap:12px;min-height:68px;text-align:left;border:1px solid #e7e9df;border-radius:11px;background:#fffefb;padding:10px 12px;color:#616b5d;transition:border-color .2s,background .2s}
.destination:hover{border-color:#cdbb93}.destination.selected{background:#fbf7eb;border-color:#c9b17b;color:#665331}
.floor-token{flex:none;display:grid;place-items:center;width:39px;height:39px;border-radius:8px;background:#f2f4ed;color:#9ea88f;font-size:20px;font-weight:400}
.selected .floor-token{color:#9b7b3c;background:#eee4c9}.destination b{display:block;font-size:17px;font-weight:450;line-height:1.45;letter-spacing:0}
.destination small{display:block;font-size:11px;font-weight:400;color:#9da58f;margin-top:5px;line-height:1.4}.destination.selected small{color:#a08c62}
.choice-mark{font-size:15px;color:#ae8b47;margin-left:auto;visibility:hidden}.selected .choice-mark{visibility:visible}
.route-summary{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:17px;border-top:1px solid #ecece4;padding:15px 0 12px}
.route-summary .eyebrow{font-size:11px;letter-spacing:1px;margin:0 0 4px}.route-summary h2{font-size:19px;line-height:1.5;font-weight:450;margin:0;color:#555e51}
.route-chip{font-size:11px;color:#a09374;white-space:nowrap;padding:4px 7px;border-radius:5px;background:#f8f5eb}
.steps{list-style:none;display:flex;flex-direction:column;justify-content:space-between;flex:1;margin:0;padding:0;gap:4px}
.steps li{position:relative;min-height:46px}.steps li:not(:last-child):before{content:"";position:absolute;left:14px;top:30px;bottom:-12px;width:1px;background:#e4e8dc}
.step-button{display:flex;align-items:flex-start;gap:11px;width:100%;border:0;background:none;padding:4px 0;color:#89957c;text-align:left}
.step-number{position:relative;z-index:1;display:grid;place-items:center;flex:none;width:29px;height:29px;border-radius:50%;border:1px solid #dfe5d5;background:#fffffc;color:#a9b29c;font-size:12px;font-weight:400}
.step-button b{display:block;font-size:16px;font-weight:400;line-height:1.5}.step-button small{display:block;font-size:11px;color:#a2ac94;line-height:1.5;margin-top:2px}
.step-button.active{color:#7b6232}.step-button.active b{font-weight:500}.step-button.active .step-number{border-color:#b79a60;background:#b79a60;color:#fff;box-shadow:0 0 0 4px #f7f1e3}
.step-button.done .step-number{color:#79a07b;border-color:#d3e0c7;background:#f3f8ed}
.navigation-dock{display:grid;grid-template-columns:minmax(0,1fr) 500px;align-items:center;gap:27px;margin-top:18px;padding:20px 24px;border:1px solid #e9e5d8;border-radius:17px;background:#fffffbed;box-shadow:0 8px 24px #5b553509}
.direction-card{display:flex;align-items:center;gap:19px;min-width:0}
.direction-icon{flex:none;display:grid;place-items:center;width:62px;height:62px;border-radius:12px;background:#f6efdd;color:#b2955d;border:1px solid #efe3c6}
.direction-icon svg{width:31px;height:31px;stroke-width:1.55}.direction-copy{flex:1;min-width:0}
.direction-copy>span{display:block;font-size:11px;color:#a89875;font-weight:400;letter-spacing:1px;margin-bottom:5px}
.direction-copy strong{display:block;font-size:22px;font-weight:480;letter-spacing:.3px;line-height:1.4;color:#4c5548}
.direction-copy p{font-size:13px;color:#939b86;font-weight:400;line-height:1.7;margin:6px 0 0}
.direction-floor{font-size:30px;font-weight:350;letter-spacing:-1px;color:#c8c3ad;white-space:nowrap;flex:none}
.playback-area{min-width:0;padding-left:26px;border-left:1px solid #ece9dd}
.playback-details{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:25px}
.progress-meta{display:flex;align-items:center;gap:14px;font-size:11px;color:#a2a691;white-space:nowrap}
.progress-meta>span:first-child{color:#879879}#progressTime{font-variant-numeric:tabular-nums;color:#a1a58f;font-size:11px}
.progress-track{height:3px;border-radius:10px;overflow:hidden;background:#e9eddf;margin:7px 0 13px}
.progress-track span{display:block;height:100%;width:0;background:#b3985d;border-radius:10px}
.transport-row{display:flex;align-items:stretch;gap:10px}
.primary-button{display:flex;align-items:center;justify-content:center;gap:10px;flex:1;min-width:0;min-height:49px;border:1px solid #9e7e3e;border-radius:9px;background:#94712f;color:#fff;padding:12px 14px;font-size:16px;font-weight:450;letter-spacing:.3px;box-shadow:0 4px 10px #987b3512;transition:background .2s}
.primary-button:hover{background:#927132}.primary-button svg{width:18px;height:18px;stroke-width:1.6}
.secondary-controls{display:flex;gap:8px;flex:none}
.secondary-controls button{display:flex;align-items:center;justify-content:center;gap:6px;min-height:49px;border:1px solid #e3e6d7;border-radius:9px;background:#fffef9;color:#939c82;padding:10px 13px;font-size:13px;font-weight:400}
.secondary-controls button:hover{border-color:#bdc4ac}.secondary-controls svg{width:15px;height:15px}
.preferences{display:flex;align-items:center;gap:13px;font-size:11px;color:#8e987d;white-space:nowrap}
.preferences button{display:flex;align-items:center;gap:4px;border:0;background:none;padding:3px 0;color:#8f9a7d;font-size:11px}
.preferences button svg{width:14px;height:14px}.preferences button[aria-pressed=true]{color:#8e7133}
.preferences label{display:flex;align-items:center;gap:4px}.preferences select{font-size:11px;border:0;border-radius:5px;padding:3px;background:#f3f5e9;color:#859173}
.page-footer{display:flex;justify-content:space-between;gap:16px;padding:13px 2px 15px;font-size:10px;color:#a4aa96;line-height:1.6;letter-spacing:.3px}
.page-footer i{display:inline-block;width:4px;height:4px;border-radius:50%;background:#baa570;margin-right:5px}
.toast{position:fixed;z-index:10;bottom:25px;left:50%;transform:translateX(-50%);max-width:90vw;background:#4a5744;color:#fff;padding:14px 22px;border-radius:11px;box-shadow:0 5px 30px #173c4020;font-size:14px}
.noscript{padding:30px;background:#fff6df;border:1px solid #dbc69d}
@media(min-width:1700px){.workspace{grid-template-columns:minmax(0,1fr) 380px}.route-panel{padding:27px}.panel-heading .eyebrow{font-size:20px}.destination{min-height:76px}.destination b{font-size:17px}.destination small,.step-button small{font-size:12px}.step-button b{font-size:16px}.step-number{width:31px;height:31px}.steps li:not(:last-child):before{left:15px;top:32px}.route-summary h2{font-size:22px}.navigation-dock{grid-template-columns:minmax(0,1fr) 540px;padding:23px 28px}.direction-copy strong{font-size:25px}.direction-copy p{font-size:14px}.primary-button{font-size:17px}.journey-stop{font-size:16px}.journey-stop i{font-size:30px}}
@media(max-width:1200px){main{padding:0 24px}.site-header{padding:0 24px}.workspace{grid-template-columns:minmax(0,1fr) 325px;gap:17px}.route-panel{padding:20px}.destination b{font-size:15px}.step-button b{font-size:14px}.map-topbar{padding:16px}.origin b{font-size:13px}.view-switch button{padding:7px 8px;font-size:11px}.navigation-dock{grid-template-columns:minmax(0,1fr) 440px;gap:19px;padding:20px}.playback-area{padding-left:19px}.direction-card{gap:13px}.direction-icon{width:51px;height:56px}.direction-copy strong{font-size:19px}.direction-copy p{font-size:12px}.direction-floor{display:none}.journey-summary{gap:14px}.journey-stop{font-size:12px}.journey-mid{font-size:11px}.preferences{gap:8px}.progress-meta{gap:8px}}
@media(max-width:1050px){.journey-summary{display:none}.workspace{grid-template-columns:1fr;height:auto;max-height:none;min-height:0}.map-card{height:570px}.route-panel{overflow:visible;padding:25px}.destinations{grid-template-columns:1fr 1fr}.route-summary{margin-top:21px}.steps{display:grid;grid-template-columns:1fr 1fr;gap:17px}.steps li:before{display:none}.step-button b{font-size:16px}.step-button small{font-size:12px}.navigation-dock{grid-template-columns:1fr;gap:18px;padding:22px}.playback-area{border-left:0;border-top:1px solid #ece9dd;padding:15px 0 0}.direction-copy strong{font-size:23px}.direction-copy p{font-size:14px}.direction-floor{display:block}.transport-row .primary-button{flex:1}.secondary-controls button{padding:11px 20px}.playback-details{gap:20px}.progress-meta,.preferences,.preferences button,.preferences select{font-size:12px}.progress-meta{gap:20px}}
@media(max-width:600px){main{padding:0 16px}.site-header{height:68px;padding:0 17px}.brand-mark{width:36px;height:38px}.brand-mark svg{width:27px;height:27px}.brand{gap:10px}.brand b{font-size:16px}.brand small{font-size:9px;letter-spacing:.7px}.header-actions{gap:0}.sample-badge{display:none}.back-link{font-size:11px;gap:5px}.intro{padding:22px 0 20px}.intro h1{font-size:28px}.intro .eyebrow{font-size:10px;letter-spacing:1px}.intro-caption{font-size:12px}.map-card{height:420px;border-radius:15px}.map-topbar{padding:14px 12px;gap:8px}.origin>span:last-child{font-size:9px}.origin b{font-size:11px}.origin{gap:7px}.view-switch{padding:2px;border-radius:7px}.view-switch button{font-size:10px;padding:7px 6px}.map-inspector{left:10px;right:10px;gap:6px}.map-inspector>div{padding:2px;gap:0}.map-inspector button{font-size:10px;padding:5px 6px;min-height:31px}#followWalker{margin-left:1px}.zoom-controls #zoomIn,.zoom-controls #zoomOut{font-size:16px;padding:3px 7px}.zoom-controls span{font-size:10px;min-width:32px}.map-key{font-size:10px;gap:10px;left:13px;bottom:12px}.floor-count{display:none}.route-panel{padding:19px;border-radius:15px}.panel-heading .eyebrow{font-size:19px}.count-note{font-size:11px}.destinations{grid-template-columns:1fr;gap:9px}.destination{min-height:67px}.destination b{font-size:16px}.destination small{font-size:12px}.route-summary h2{font-size:20px}.steps{grid-template-columns:1fr;gap:12px}.steps li:not(:last-child):before{display:block;bottom:-18px}.navigation-dock{padding:18px 16px;border-radius:15px;margin-top:15px}.direction-icon{width:47px;height:52px}.direction-icon svg{width:27px;height:27px}.direction-copy strong{font-size:20px}.direction-copy>span{font-size:10px}.direction-copy p{font-size:12px}.direction-floor{display:none}.playback-details{gap:10px;flex-wrap:wrap}.progress-meta{font-size:11px;gap:10px}.preferences{gap:10px}.preferences,.preferences button,.preferences select{font-size:11px}.primary-button{font-size:15px;padding:11px 8px;gap:7px}.secondary-controls{gap:7px}.secondary-controls button{font-size:12px;padding:10px;gap:4px}.secondary-controls svg{width:13px;height:13px}.transport-row{gap:8px}.page-footer{font-size:9px;gap:10px;line-height:1.7}.page-footer span:last-child{white-space:nowrap}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important}}

@media(min-width:1051px) and (max-height:950px){
  .route-panel{padding:20px}
  .panel-heading{margin-bottom:13px}
  .route-summary{margin-top:13px;padding-top:13px;padding-bottom:12px}
  .route-summary .eyebrow{display:none}
}
