:root{color:#19231f;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;background:#e7ede4;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:linear-gradient(135deg,#4978662e,#0000 32%),linear-gradient(225deg,#e8897629,#0000 36%),#e7ede4;min-height:100vh}button,input,textarea{font:inherit}button{-webkit-tap-highlight-color:transparent}.app{width:min(100%,480px);min-height:100vh;padding:env(safe-area-inset-top) 18px calc(22px + env(safe-area-inset-bottom));background:linear-gradient(#f2f5eff0,#e2eadffa),#f2f5ef;margin:0 auto;position:relative;overflow-x:hidden;box-shadow:0 0 70px #19231f38}.active-mode{padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom);background:linear-gradient(#e2ece8fa,#efefe4f5),#edf2e9}.status-bar{height:10px}.active-mode .status-bar{height:0}.topbar{justify-content:space-between;align-items:center;gap:16px;min-height:58px;margin-bottom:12px;display:flex}.topbar h1,.section-heading h2,.sheet-title h2{letter-spacing:0;margin:0}.topbar h1{font-size:1.48rem;line-height:1.05}.eyebrow{color:#6d746b;letter-spacing:0;text-transform:uppercase;margin:0 0 5px;font-size:.72rem;font-weight:760}.app-mark,.icon-button{color:#20342f;background:#ffffff94;border:1px solid #20342f24;border-radius:50%;justify-content:center;align-items:center;width:42px;height:42px;display:inline-flex}.icon-button{cursor:pointer}.install-button{color:#f2f5ef;background:#20342f}.home-scene{margin:6px 0 16px;position:relative}.journey-scene{--progress:0;--journey:#497866;--scene-zoom:1.03;--scene-y:0%;--mist-opacity:.76;--trail-lit:14%;isolation:isolate;background:#ead8bb;border:1px solid #20342f1a;border-radius:28px;height:clamp(240px,58vh,370px);position:relative;overflow:hidden;box-shadow:0 22px 50px #20342f24}.journey-scene:before{content:"";z-index:1;pointer-events:none;background:linear-gradient(#f7eace33 0%,#0000 32%),radial-gradient(at 50% 92%,#20342f2e,#0000 48%);position:absolute;inset:0}.journey-scene:after{content:"";z-index:5;pointer-events:none;background:linear-gradient(#fff5e01a,#0000 38%),radial-gradient(at 50% 105%,#16211e47,#0000 56%);position:absolute;inset:0}.scene-art{z-index:0;transform:translateY(var(--scene-y)) scale(var(--scene-zoom));transform-origin:50% 74%;filter:saturate(.96)contrast(.98);background-image:url(/journey-mountain-path.png);background-position:50% 72%;background-size:cover;transition:transform 1s,filter 1s;position:absolute;inset:-7% -4%}.walk-scene .scene-art{filter:saturate(.94)contrast()brightness(.96);background-position:50% 74%;inset:-2% -3%}.scene-warmth{z-index:2;mix-blend-mode:soft-light;pointer-events:none;background:radial-gradient(circle at 52% 18%,#ffe8b88a,#0000 34%),linear-gradient(#ffeed147,#0000 45%);position:absolute;inset:0}.scene-vignette{z-index:4;pointer-events:none;background:radial-gradient(at 50% 60%,#0000 44%,#14201c33 100%),linear-gradient(#fffbf229,#0000 24%,#18231f24);position:absolute;inset:0}.path-energy{z-index:3;width:24%;height:var(--trail-lit);transform-origin:50% 100%;clip-path:polygon(43% 0,57% 0,70% 100%,30% 100%);opacity:.42;mix-blend-mode:screen;pointer-events:none;min-height:44px;max-height:78%;transition:height 1s;position:absolute;bottom:3%;left:50%;transform:translate(-50%)}.path-energy span:first-child{filter:blur(6px);background:linear-gradient(#f4d48700,#f4d4873d 58%,#fff6db75),linear-gradient(90deg,#0000,#ffffff47,#0000);position:absolute;inset:0}.path-energy span:last-child{background:#f4d487;border-radius:50%;width:14px;height:14px;animation:2.8s ease-in-out infinite path-pulse;position:absolute;top:4%;left:50%;transform:translate(-50%);box-shadow:0 0 22px #f4d487f2}.scene-mist{z-index:6;pointer-events:none;filter:blur(18px);opacity:var(--mist-opacity);transform:translateX(calc(var(--progress) * -0.12%));background:#f9f1e2b3;transition:opacity 1s,transform 1s;position:absolute}.walk-scene .scene-mist{animation:8s ease-in-out infinite mist-drift}.mist-back{border-radius:999px;height:22%;top:20%;left:-18%;right:-18%}.mist-front{height:20%;opacity:calc(var(--mist-opacity) * .52);border-radius:999px;bottom:13%;left:-22%;right:-10%}.research-orbit{z-index:7;pointer-events:none;position:absolute;inset:0}.walk-scene .research-orbit{display:none}.research-orbit span{opacity:.28;background:#f4d487;border-radius:50%;width:9px;height:9px;animation:3.2s ease-in-out infinite clue-glow;position:absolute;transform:scale(.8);box-shadow:0 0 18px #f4d487e0}.research-orbit span:first-child{top:68%;left:41%}.research-orbit span:nth-child(2){animation-delay:.55s;top:54%;left:56%}.research-orbit span:nth-child(3){animation-delay:1.1s;top:39%;left:61%}.journey-scene.middle .research-orbit span:first-child,.journey-scene.far .research-orbit span{opacity:.9}.skyline{z-index:0;opacity:.82;height:82px;position:absolute;inset:36px 16px auto}.skyline span{background:#49786626;border-radius:56% 44% 0 0;width:43%;height:62px;position:absolute;bottom:0}.skyline span:first-child{height:48px;left:-8%}.skyline span:nth-child(2){background:#496f8f21;width:50%;height:82px;left:28%}.skyline span:nth-child(3){background:#8d6c3f1f;height:58px;right:-8%}.mist-horizon{z-index:2;pointer-events:none;height:30%;position:absolute;inset:20% -12% auto}.mist-horizon span{left:calc(12% + var(--i,0) * 14%);top:calc(var(--i,0) * 18px);filter:blur(16px);width:70%;height:46px;opacity:calc(.75 - (var(--progress) / 170));background:#f4f8f180;border-radius:999px;position:absolute}.mist-horizon span:first-child{--i:0}.mist-horizon span:nth-child(2){--i:1;width:82%;left:-6%}.mist-horizon span:nth-child(3){--i:2;width:72%;left:36%}.journey-depth{z-index:3;perspective:520px;position:absolute;inset:17% 0 8%;overflow:hidden}.road-plane{transform-origin:50% 100%;opacity:.95;background:radial-gradient(at 50% 100%,#20342f33,#0000 34%),linear-gradient(90deg,#0000 0 36%,#ffffff42 40%,#ffffff2e 50%,#ffffff42 60%,#0000 64%);border-radius:52% 52% 14% 14%;width:118%;height:106%;position:absolute;bottom:-10%;left:50%;transform:translate(-50%)rotateX(63deg)}.road-surface,.road-lit{clip-path:polygon(45% 0,55% 0,76% 100%,24% 100%);position:absolute;bottom:0;left:50%;transform:translate(-50%)}.road-surface{background:linear-gradient(90deg,#ffffff29,#ffffffc2 45% 55%,#ffffff2e),linear-gradient(#f2f5ef7a,#e1e7dbeb);width:72%;height:100%;box-shadow:inset 0 0 30px #20342f21}.road-lit{width:68%;height:calc(var(--progress) * 1%);filter:blur(1px);background:linear-gradient(#f4d48724,#4978668f);max-height:100%;transition:height .9s}.road-rune{opacity:.25;background:#f4d487;border-radius:50%;width:9px;height:9px;position:absolute;left:50%;transform:translate(-50%);box-shadow:0 0 18px #f4d487bf}.rune-one{bottom:20%}.rune-two{bottom:45%}.rune-three{bottom:72%}.journey-scene.middle .rune-one,.journey-scene.far .rune-one,.journey-scene.far .rune-two,.journey-scene.far .rune-three{opacity:.86}.distance-lights{z-index:3;height:96px;position:absolute;inset:16% 14% auto}.distance-lights span{opacity:.32;background:#20342f42;border-radius:999px;width:7px;height:48px;position:absolute;bottom:0}.distance-lights span:after{content:"";background:#f4d487;border-radius:50%;width:19px;height:19px;position:absolute;top:-9px;left:50%;transform:translate(-50%);box-shadow:0 0 18px #f4d487c7}.distance-lights span:first-child{left:17%;transform:scale(.72)}.distance-lights span:nth-child(2){left:50%;transform:scale(.55)}.distance-lights span:nth-child(3){right:18%;transform:scale(.66)}.journey-scene.middle .distance-lights span:first-child,.journey-scene.far .distance-lights span{opacity:.86}.traveler{--traveler-forward:calc(var(--progress) * 0.34%);left:calc(50% + (var(--progress) * 0.05%));bottom:calc(10% + var(--traveler-forward));z-index:5;width:clamp(48px,16vw,72px);height:clamp(72px,23vw,104px);transform:translateX(-50%) scale(calc(1 - (var(--progress) * .003)));transform-origin:50% 100%;transition:left .9s,bottom .9s,transform .9s;position:absolute}.traveler span{display:block;position:absolute}.traveler-shadow{filter:blur(3px);background:#141c1938;border-radius:50%;height:13px;bottom:-5px;left:9%;right:9%}.traveler-body{background:linear-gradient(#f4d487fa 0 18%,#20342f 19% 100%);border:2px solid #ffffffad;border-radius:18px 18px 13px 13px;height:43%;animation:2.2s ease-in-out infinite traveler-breathe;bottom:24%;left:20%;right:20%;box-shadow:0 12px 22px #19231f42}.traveler-pack{background:var(--journey);opacity:.95;border-radius:10px;height:27%;animation:2.2s ease-in-out infinite traveler-breathe;bottom:30%;left:27%;right:27%;box-shadow:inset 0 0 0 2px #ffffff2e}.traveler-head{background:#f4d487;border:2px solid #ffffffb3;border-radius:50% 50% 42% 42%;height:23%;animation:2.2s ease-in-out infinite traveler-breathe;top:8%;left:30%;right:30%;box-shadow:0 5px 16px #19231f33}.traveler-leg{transform-origin:50% 0;background:#20342f;border-radius:999px;width:16%;height:25%;animation:1.4s ease-in-out infinite walk-left;bottom:7%}.traveler-leg.left{left:30%}.traveler-leg.right{animation-name:walk-right;right:30%}.traveler-lamp{background:#f4d487;border-radius:50%;width:12px;height:12px;top:44%;right:5%;box-shadow:0 0 22px #f4d487e6}.is-paused .traveler-body,.is-paused .traveler-pack,.is-paused .traveler-head,.is-paused .traveler-leg,.is-paused .path-energy span:last-child,.is-paused .research-orbit span{animation-play-state:paused}.fog{filter:blur(16px);z-index:5;height:38%;opacity:calc(.86 - (var(--progress) / 135));pointer-events:none;background:#f4f7f1bd;border-radius:999px;transition:opacity .9s;position:absolute;left:42%;right:-20%}.fog-a{top:16%}.fog-b{opacity:calc(.72 - (var(--progress) / 150));top:42%;left:34%}.fog-c{height:28%;opacity:calc(.46 - (var(--progress) / 190));top:58%;left:-20%;right:22%}.scene-badge{z-index:9;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);color:#20342f;background:#f2f5efc2;border:1px solid #20342f1a;border-radius:18px;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex;position:absolute;inset:14px 16px auto}.scene-badge span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.scene-badge strong{font-size:.9rem}.scene-caption{justify-content:space-between;align-items:flex-end;gap:14px;padding:12px 4px 0;display:flex}.scene-caption p{color:#687166;margin:0;font-size:.9rem}.scene-caption strong{text-align:right;font-size:1rem;line-height:1.3}.metrics-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:14px 0;display:grid}.metric{color:#20342f;background:#ffffff94;border:1px solid #20342f17;border-radius:18px;flex-direction:column;justify-content:center;align-items:center;gap:5px;min-width:0;min-height:86px;padding:11px 7px;display:flex}.metric span{color:#687166;text-align:center;white-space:nowrap;width:100%;font-size:clamp(.64rem,2.8vw,.75rem)}.metric strong{text-overflow:ellipsis;max-width:100%;font-size:clamp(.92rem,4vw,1.12rem);overflow:hidden}.signpost-panel,.route-pocket,.logbook{background:#ffffff9e;border:1px solid #20342f17;border-radius:22px;margin:16px 0;padding:16px}.signpost-panel label,.camp-sheet label{color:#3e4c45;gap:8px;font-size:.86rem;font-weight:760;display:grid}textarea,input{color:#1c2723;resize:none;background:#f8faf5e6;border:1px solid #20342f21;border-radius:16px;outline:none;width:100%}textarea{padding:13px 14px;line-height:1.55}input{min-height:48px;padding:0 14px}textarea:focus,input:focus{border-color:#4978669e;box-shadow:0 0 0 4px #4978661a}.journey-picker{gap:10px;margin:14px 0;display:grid}.journey-card{color:#20342f;text-align:left;cursor:pointer;background:#ffffff94;border:1px solid #20342f17;border-radius:20px;grid-template-columns:42px 1fr 22px;align-items:center;gap:12px;min-height:74px;padding:12px;display:grid}.journey-card.selected{background:#ffffffe0;border-color:#20342f47;box-shadow:0 14px 32px #20342f17}.journey-icon{color:#fff;border-radius:16px;justify-content:center;align-items:center;width:42px;height:42px;display:inline-flex}.journey-card strong,.journey-card small{min-width:0;display:block}.journey-card strong{margin-bottom:4px}.journey-card small{color:#687166;line-height:1.35}.start-journey,.primary-action{color:#f7f9f3;cursor:pointer;background:#20342f;border:0;border-radius:18px;justify-content:center;align-items:center;gap:10px;width:100%;min-height:56px;font-weight:800;display:inline-flex;box-shadow:0 18px 36px #20342f38}.start-journey{justify-content:space-between;margin:4px 0 18px;padding:0 18px}.section-heading{justify-content:space-between;align-items:flex-end;gap:12px;margin-bottom:12px;display:flex}.section-heading.compact{margin-bottom:8px}.section-heading h2{font-size:1.08rem}.log-entry{border-top:1px solid #20342f17;justify-content:space-between;align-items:flex-start;gap:12px;padding:11px 0;display:flex}.log-entry:first-of-type{border-top:0}.log-entry p{color:#687166;margin:4px 0 0;line-height:1.4}.log-entry span{color:#497866;flex:none;font-weight:800}.active-journey{gap:14px;display:grid}.walk-mode{--route-progress:0;min-height:calc(100vh - env(safe-area-inset-top) - env(safe-area-inset-bottom));display:block;position:relative}.active-journey .journey-scene{height:clamp(280px,39vh,390px)}.walk-mode .journey-scene{width:100%;height:calc(100vh - env(safe-area-inset-top) - env(safe-area-inset-bottom));min-height:100svh;box-shadow:none;border:0;border-radius:0}.walk-mode .journey-scene:before{background:linear-gradient(#f9efda14 0%,#0000 30%),radial-gradient(at 50% 93%,#141e1b2e,#0000 46%)}.walk-mode .journey-scene:after{background:linear-gradient(#fff6e414,#0000 35%),radial-gradient(at 50% 103%,#0e181557,#0000 58%)}.walk-mode .path-energy{opacity:.18}.walk-hud{top:calc(16px + env(safe-area-inset-top));z-index:12;pointer-events:none;justify-items:center;gap:4px;width:min(78%,340px);display:grid;position:absolute;left:50%;transform:translate(-50%)}.route-map{filter:drop-shadow(0 8px 18px #252f2829);width:100%;height:54px;overflow:visible}.route-map-base,.route-map-progress{fill:none;stroke-linecap:round;stroke-linejoin:round}.route-map-base{stroke:#fffaec85;stroke-width:9px}.route-map-progress{stroke:#f4d487f2;stroke-width:7px;stroke-dasharray:100;stroke-dashoffset:calc(100 - (var(--route-progress) * 1));transition:stroke-dashoffset .9s}.route-stop{fill:#fffaecb8;stroke:#2330293d;stroke-width:1.2px}.walk-timer{color:#212d27e6;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);text-align:center;letter-spacing:0;font-variant-numeric:tabular-nums;background:#f9f4e56b;border:1px solid #ffffff38;border-radius:999px;min-width:132px;padding:5px 18px 7px;font-size:clamp(1.7rem,8vw,2.4rem);font-weight:840;line-height:1;box-shadow:0 12px 28px #1c251f21}.walk-controls{left:50%;bottom:calc(18px + env(safe-area-inset-bottom));z-index:12;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#f2f5ef33;border:1px solid #ffffff3d;border-radius:999px;grid-template-columns:repeat(3,48px);gap:14px;padding:8px;display:grid;position:absolute;transform:translate(-50%)}.walk-control{color:#faf9efeb;cursor:pointer;background:#121d1957;border:0;border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;display:inline-flex;box-shadow:0 10px 24px #131c192e}.walk-control:active{transform:scale(.96)}.focus-readout{justify-content:space-between;align-items:center;gap:14px;padding:8px 2px 4px;display:flex}.focus-readout p,.focus-readout h2,.focus-readout span{margin:0}.focus-readout p{color:#657268;font-weight:780}.focus-readout h2{letter-spacing:0;font-size:clamp(2.5rem,17vw,4.7rem);line-height:.94}.focus-readout span{color:#69736b;margin-top:8px;display:block}.depth-token{color:#20342f;background:#f3d78c;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;gap:4px;min-width:72px;height:72px;font-weight:900;display:inline-flex;box-shadow:0 12px 28px #8d6c3f33}.signpost-strip,.buff-strip{color:#20342f;background:#ffffff9e;border:1px solid #20342f17;border-radius:18px;align-items:flex-start;gap:10px;padding:13px 14px;display:flex}.signpost-strip p,.buff-strip span{margin:0;line-height:1.45}.active-controls{grid-template-columns:repeat(3,1fr);gap:13px;margin:2px 0;display:grid}.round-control{color:#f7f9f3;cursor:pointer;background:#20342f;border:0;border-radius:50%;justify-content:center;justify-self:center;align-items:center;width:min(100%,92px);height:clamp(78px,24vw,92px);display:inline-flex;box-shadow:0 15px 30px #20342f33}.round-control.side{color:#20342f;background:#f3d78c}.round-control.camp{background:#9d654f}.empty-pocket{color:#687166;margin:0}.pocket-item{color:#34443e;border-top:1px solid #20342f14;align-items:center;gap:8px;padding:9px 0;display:flex}.pocket-item:first-of-type{border-top:0}.pocket-item span{overflow-wrap:anywhere;min-width:0}.sheet-backdrop{z-index:20;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#141a1759;justify-content:center;align-items:flex-end;padding:18px;display:flex;position:fixed;inset:0}.sheet{color:#1d2824;background:#f2f5ef;border-radius:28px 28px 22px 22px;width:min(100%,464px);max-height:min(82vh,680px);padding:10px 16px 18px;overflow:auto;box-shadow:0 -18px 50px #141a1747}.mist-warning-backdrop{z-index:24;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:radial-gradient(at 50% 28%,#f6ebd538,#0000 40%),#161d196b;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.mist-warning{color:#1d2824;background:#f4f6eee0;border:1px solid #ffffff6b;border-radius:24px;width:min(100%,360px);padding:20px;box-shadow:0 22px 56px #121b184d}.mist-warning h2{letter-spacing:0;margin:0;font-size:1.32rem}.mist-warning p:not(.eyebrow){color:#4c5a52;margin:12px 0 18px;line-height:1.65}.sheet-handle{background:#20342f33;border-radius:999px;width:44px;height:5px;margin:2px auto 14px}.sheet-title{justify-content:space-between;align-items:center;gap:14px;margin-bottom:14px;display:flex}.sheet-title h2{font-size:1.25rem}.quick-paths{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:12px 0;display:grid}.quick-paths button{color:#20342f;background:#ffffffb8;border:1px solid #20342f1a;border-radius:14px;justify-content:center;align-items:center;gap:6px;min-height:42px;display:inline-flex}.camp-sheet{gap:13px;display:grid}.range{accent-color:#497866;box-shadow:none;background:0 0;border:0;padding:0}@keyframes traveler-breathe{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}@keyframes path-pulse{0%,to{opacity:.36;transform:translate(-50%)scale(.78)}50%{opacity:1;transform:translate(-50%)scale(1.18)}}@keyframes clue-glow{0%,to{opacity:.26;transform:scale(.74)}50%{opacity:.95;transform:scale(1.08)}}@keyframes mist-drift{0%,to{transform:translateX(calc(var(--progress) * -0.12%))}50%{transform:translateX(calc((var(--progress) * -0.12%) + 18px))}}@keyframes walk-left{0%,to{transform:rotate(-8deg)}50%{transform:rotate(10deg)}}@keyframes walk-right{0%,to{transform:rotate(10deg)}50%{transform:rotate(-8deg)}}@media (width<=360px){.app{padding-left:12px;padding-right:12px}.app.active-mode{padding-left:0;padding-right:0}.metrics-grid{gap:6px}.journey-card{grid-template-columns:38px 1fr 20px;gap:9px;padding:10px}.quick-paths{grid-template-columns:1fr}}@media (width>=760px){.app{border-radius:32px;min-height:calc(100vh - 36px);margin-top:18px;margin-bottom:18px}}
