/* Prototype shell: phone on desktop, full screen on mobile */
body { min-height:100vh; display:flex; align-items:center; justify-content:center; gap:70px; padding:40px 24px; overflow-x:hidden;
  background:radial-gradient(900px 600px at 15% 20%, rgba(179,186,124,.12), transparent 60%), radial-gradient(800px 600px at 90% 90%, rgba(196,165,116,.1), transparent 60%), #1a1814; }
button { font:inherit; color:inherit; background:none; border:0; cursor:pointer; text-align:inherit; }

.side { width:360px; }
.side-logo { width:140px; }
.side h1 { font-size:48px; margin-top:28px; }
.side h1 .serif { color:var(--lima); }
.side p { color:var(--text-soft); margin-top:14px; font-size:15.5px; }
.jumps { display:grid; gap:4px; margin-top:12px; }
.jumps button { padding:8px 12px; border-radius:10px; font-size:14px; color:var(--text-soft); }
.jumps button:hover, .jumps button.on { background:rgba(239,232,218,.08); color:var(--hueso); }
.side-foot { font-size:12.5px !important; margin-top:26px !important; }
.side-foot a { color:var(--hueso); }

.device .phone { position:relative; }
.device .phone > .island { z-index:20; }
.scr { position:absolute; inset:12px; border-radius:44px; overflow:hidden; background-size:cover; background-position:center; opacity:0; visibility:hidden; transform:translateX(24px); transition:opacity .35s ease, transform .45s cubic-bezier(.2,.8,.2,1), visibility 0s .45s; }
.scr.active { opacity:1; visibility:visible; transform:none; transition:opacity .35s ease, transform .45s cubic-bezier(.2,.8,.2,1); z-index:2; }
.scr.back { transform:translateX(-24px); }
.scr::after { content:""; position:absolute; inset:0; background-image:var(--noise); opacity:.12; mix-blend-mode:overlay; pointer-events:none; }
.scr .sbar { color:var(--hueso); }
.overlay { position:absolute; left:0; top:0; width:100%; height:100%; z-index:1; pointer-events:none; }
.hero { position:absolute; left:0; right:0; top:0; height:400px; }
.s-in { padding-bottom:22px; }

.between { display:flex; justify-content:space-between; align-items:center; gap:10px; }
.soft { color:var(--text-soft); }
.c { justify-content:center; }
.big { font-size:52px; margin-top:12px; font-weight:600; letter-spacing:-.035em; line-height:.98; }
.h-title { font-size:34px; font-weight:600; letter-spacing:-.04em; line-height:.95; }
.data { font-family:"JetBrains Mono"; font-size:11.5px; color:var(--text-soft); display:flex; }
.roundbtn { width:42px; height:42px; border-radius:50%; display:grid; place-items:center; }
.link { color:var(--text-mute); }
.search { padding:13px 16px; border-radius:100px; color:var(--text-soft); font-size:14px; width:100%; text-align:left; }
.tap { cursor:pointer; transition:transform .2s; } .tap:active { transform:scale(.98); }
.btn { cursor:pointer; transition:transform .15s, filter .2s; } .btn:active { transform:scale(.97); }
.btn.sos { background:#8a5a3b; color:#fff4ec; }
.chip { cursor:pointer; color:var(--hueso); }
.stat { padding:12px; } .stat .v { font-size:23px; }
.tabbar-space { height:70px; flex:none; }

.next-hike { padding:12px 14px; border-radius:18px; display:flex; justify-content:space-between; align-items:center; gap:10px; border-color:rgba(179,186,124,.5); cursor:pointer; }
.next-hike[hidden] { display:none; }

.steps-bar { display:grid; grid-template-columns:repeat(3,1fr); gap:6px; } .steps-bar i { height:3px; border-radius:3px; background:rgba(239,232,218,.18); } .steps-bar i.on { background:var(--lima); }
.opts { display:grid; gap:10px; }
.opt { padding:16px; border-radius:18px; display:grid; gap:3px; text-align:left; transition:border-color .2s; }
.opt b { font-size:17px; } .opt span { font-size:13px; color:var(--text-soft); }
.opt.on { border-color:rgba(179,186,124,.7); background:rgba(179,186,124,.14); }

.pin { position:absolute; z-index:3; transform:translate(-50%, -50%); width:16px; height:16px; border-radius:50%; background:#1a1814; border:2px solid var(--hueso); }
.pin span { position:absolute; left:20px; top:50%; transform:translateY(-50%); white-space:nowrap; font-family:"JetBrains Mono"; font-size:9.5px; letter-spacing:.12em; text-transform:uppercase; background:rgba(26,24,20,.55); backdrop-filter:blur(8px); padding:4px 8px; border-radius:8px; }
.pin.on { background:var(--lima); border-color:var(--lima); box-shadow:0 0 0 6px rgba(179,186,124,.25); }
.sheet { border-radius:30px 30px 0 0; margin:0 -20px -22px; padding:18px 20px 26px; }
.grab { width:40px; height:4px; border-radius:4px; background:rgba(239,232,218,.35); margin:0 auto 14px; }
.list { display:grid; gap:8px; margin-top:12px; }
.item { display:grid; grid-template-columns:52px 1fr auto; gap:12px; align-items:center; padding:8px; border-radius:16px; background:rgba(239,232,218,.06); }
.item i { width:52px; height:52px; border-radius:12px; background-size:cover; background-position:center; }
.item b { display:block; font-size:15px; } .item em { font-style:normal; color:var(--lima); font-size:10px; }
.item:hover { background:rgba(239,232,218,.1); }

.fav.on { color:var(--lima); }
.modal { position:absolute; inset:0; z-index:30; background:rgba(10,9,7,.5); display:flex; align-items:flex-end; opacity:0; visibility:hidden; transition:opacity .25s, visibility 0s .25s; }
.modal .sheet { margin:0; width:100%; transform:translateY(40px); transition:transform .35s cubic-bezier(.2,.8,.2,1); background:rgba(36,32,26,.82); }
.modal.open { opacity:1; visibility:visible; transition:opacity .25s; }
.modal.open .sheet { transform:none; }
.fit-row { display:flex; gap:10px; align-items:flex-start; font-size:14px; padding:9px 0; border-top:1px solid var(--line); }
.fit-row span { width:20px; height:20px; border-radius:50%; flex:none; display:grid; place-items:center; font-size:11px; font-weight:700; background:rgba(179,186,124,.2); color:var(--lima); }
.fit-row:first-of-type { margin-top:12px; }

.days .day { padding:10px 0; border-radius:16px; text-align:center; flex:1; font-size:11px; color:var(--text-soft); }
.days .day .mono { font-size:8.5px; } .days .day b { display:block; font-size:17px; margin:2px 0; color:var(--hueso); }
.days .day.on { background:var(--hueso); color:#1a1814; } .days .day.on b, .days .day.on .mono { color:#1a1814; }
.check { display:flex; align-items:center; gap:12px; padding:10px 0; border-top:1px solid var(--line); font-size:14px; width:100%; }
.box { width:20px; height:20px; border-radius:6px; border:1.5px solid rgba(239,232,218,.45); display:grid; place-items:center; flex:none; font-size:12px; }
.box.on { background:var(--lima); border-color:var(--lima); color:#1e2010; font-weight:700; }

.alert { padding:13px 15px; border-radius:20px; border-color:rgba(160,110,72,.7) !important; background:rgba(58,38,24,.55) !important; transition:opacity .3s, transform .3s; }
.alert.hide { opacity:0; transform:translateY(-10px); pointer-events:none; }
.bang { width:34px; height:34px; border-radius:50%; background:#8a5a3b; display:grid; place-items:center; font-weight:700; color:#fff4ec; flex:none; }
.kpi { font-size:24px; font-weight:600; } .kpi small { font-size:12px; color:var(--text-soft); font-weight:500; }
.daylight { margin-top:14px; padding:12px; border-radius:16px; background:rgba(239,232,218,.07); font-size:13px; color:var(--text-soft); }
.offpath, .me { transition:transform .6s ease, opacity .4s; }
#nav.ontrail .offpath { opacity:0; } #nav.ontrail .me { transform:translate(46px, 20px); }

.hold { position:relative; width:120px; height:120px; border-radius:50%; margin:18px auto 12px; display:grid; place-items:center; background:#8a5a3b; color:#fff4ec; font-weight:700; }
.hold svg { position:absolute; inset:0; transform:rotate(-90deg); }
.hold circle { fill:none; stroke:#fff4ec; stroke-width:4; stroke-dasharray:340; stroke-dashoffset:340; transition:stroke-dashoffset .3s; }
.hold.holding circle { stroke-dashoffset:0; transition:stroke-dashoffset 3s linear; }
.hold.sent { background:var(--lima); color:#1e2010; }

.ring { width:190px; height:190px; border-radius:50%; display:grid; place-items:center; margin:14px auto 0; background:radial-gradient(circle, rgba(179,186,124,.28), rgba(179,186,124,.05) 65%, transparent 70%); }
.ring span { width:140px; height:140px; border-radius:50%; background:var(--lima); color:#1e2010; display:grid; place-items:center; text-align:center; font-weight:700; font-size:18px; line-height:1.15; box-shadow:0 0 60px rgba(179,186,124,.45); animation:breathe 2.6s ease-in-out infinite; }
@keyframes breathe { 50% { transform:scale(1.05); box-shadow:0 0 80px rgba(179,186,124,.6); } }
.pop { animation:pop .7s cubic-bezier(.2,1.4,.4,1) both .15s; }
@keyframes pop { from { opacity:0; transform:rotate(-14deg) scale(.6); } }

.avatar { width:64px; height:64px; border-radius:50%; display:grid; place-items:center; font-size:26px; font-weight:600; background:radial-gradient(circle at 30% 20%, #4a4035, #2a251f); border:1px solid var(--line); }
.stamp-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; }
.stamp.mini { padding:5px; background:radial-gradient(circle, transparent 3.5px, var(--hueso) 4px) -4px -4px / 9px 9px; }
.stamp.mini .in { aspect-ratio:4/5; padding:8px; }
.stamp.mini h4 { font-size:13px; letter-spacing:-.02em; line-height:1; }
.stamp.mini .mono { font-size:7.5px; }
.stamp.mini.locked .in { background:#2a251f; color:var(--text-mute); display:grid; place-items:center; text-align:center; }

.rise > * { animation:rise .7s cubic-bezier(.2,.8,.2,1) both; }
.rise > *:nth-child(2) { animation-delay:.08s } .rise > *:nth-child(3) { animation-delay:.16s } .rise > *:nth-child(4) { animation-delay:.24s }
@keyframes rise { from { opacity:0; transform:translateY(16px); } }
.draw { stroke-dashoffset:0; animation:dash 2.4s ease both; }
@keyframes dash { from { opacity:0; } }

.tabbar { position:absolute; left:32px; right:32px; bottom:34px; z-index:10; display:flex; justify-content:space-between; align-items:center; padding:10px; border-radius:100px; transition:opacity .3s, transform .3s; }
.tabbar button { width:48px; height:48px; border-radius:50%; display:grid; place-items:center; color:var(--text-soft); }
.tabbar button.on { color:var(--hueso); background:rgba(239,232,218,.08); }
.tabbar .walk { width:62px; height:62px; background:var(--lima); }
.tabbar.hide { opacity:0; transform:translateY(20px); pointer-events:none; }

.toast { position:absolute; left:50%; top:66px; z-index:40; transform:translate(-50%, -12px); opacity:0; padding:10px 16px; border-radius:100px; font-size:13px; background:rgba(36,32,26,.9); border:1px solid var(--line); backdrop-filter:blur(14px); white-space:nowrap; transition:opacity .3s, transform .3s; pointer-events:none; }
.toast.show { opacity:1; transform:translate(-50%, 0); }

/* Mobile: the app fills the screen */
@media (max-width: 760px) {
  html, body { overflow-x:hidden; }
  body { padding:0; display:block; }
  .device .phone { overflow:hidden; }
  .side { display:none; }
  .device .phone { width:100vw; height:100vh; height:100dvh; border-radius:0; padding:0; box-shadow:none; }
  .device .phone > .island { display:none; }
  .scr { inset:0; border-radius:0; }
  .scr .sbar { display:none; }
  .s-in { padding-top:calc(env(safe-area-inset-top, 0px) + 18px); padding-bottom:calc(env(safe-area-inset-bottom, 0px) + 18px); }
  .tabbar { bottom:calc(env(safe-area-inset-bottom, 0px) + 16px); left:18px; right:18px; }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation:none !important; transition:none !important; } }

/* --- More flows --- */
.jumps .grp { font-family:"JetBrains Mono"; font-size:10px; letter-spacing:.14em; text-transform:uppercase; color:var(--text-mute); margin:12px 0 2px 12px; }
.jumps button { padding:6px 12px; font-size:13.5px; }
.caret { display:inline-block; width:1.5px; height:15px; background:var(--lima); margin-left:2px; vertical-align:-2px; animation:blink 1s steps(1) infinite; }
@keyframes blink { 50% { opacity:0; } }
.range { position:relative; height:24px; margin-top:6px; }
.range::before { content:""; position:absolute; left:0; right:0; top:11px; height:3px; border-radius:3px; background:rgba(239,232,218,.15); }
.range i { position:absolute; top:11px; height:3px; border-radius:3px; background:var(--lima); }
.range b { position:absolute; top:3px; width:19px; height:19px; margin-left:-9px; border-radius:50%; background:var(--hueso); box-shadow:0 2px 8px rgba(0,0,0,.4); }
.toggle-row { display:flex; justify-content:space-between; align-items:center; gap:12px; font-size:14.5px; padding:6px 0; }
.toggle-row small { display:block; font-size:12px; color:var(--text-mute); margin-top:1px; }
.glass .toggle-row + .toggle-row { border-top:1px solid var(--line); padding-top:10px; }
.tg { width:44px; height:26px; border-radius:100px; background:rgba(239,232,218,.18); position:relative; flex:none; transition:background .2s; }
.tg::after { content:""; position:absolute; left:3px; top:3px; width:20px; height:20px; border-radius:50%; background:var(--hueso); transition:transform .25s cubic-bezier(.2,.8,.2,1); }
.tg.on { background:var(--lima); } .tg.on::after { transform:translateX(18px); background:#1e2010; }
.seg { display:grid; grid-auto-flow:column; grid-auto-columns:1fr; padding:4px; border-radius:100px; background:rgba(239,232,218,.07); border:1px solid var(--line); }
.seg button { padding:9px 0; border-radius:100px; text-align:center; font-size:13.5px; color:var(--text-soft); }
.seg button.on { background:var(--hueso); color:#1a1814; font-weight:600; }
.pane { display:none !important; } .pane.on { display:grid !important; }
.feed { display:grid; gap:10px; overflow:auto; margin-right:-6px; padding-right:6px; scrollbar-width:none; }
.feed::-webkit-scrollbar { display:none; }
.post { padding:14px; border-radius:20px; display:grid; gap:10px; }
.post p { font-size:13.5px; color:var(--text-soft); }
.post .ph { height:110px; border-radius:14px; background-size:cover; background-position:center; }
.av { width:34px; height:34px; border-radius:50%; display:grid; place-items:center; font-weight:600; font-size:14px; background:#3a332a; border:1px solid var(--line); flex:none; }
.report { position:absolute; left:20px; right:20px; bottom:112px; z-index:5; box-shadow:0 14px 30px -10px rgba(0,0,0,.6); }
.contact { display:grid; grid-template-columns:34px 1fr auto; gap:12px; align-items:center; padding:10px 0; border-top:1px solid var(--line); width:100%; }
.contact b { display:block; font-size:15px; }
.alert-soft { padding:13px 15px; border-radius:18px; border-color:rgba(212,162,76,.55) !important; }
#community .s-in { padding-bottom:0; }

.lostbtn { padding:7px 14px; border-radius:100px; font-size:12.5px; font-weight:600; color:#f3d9c4; border-color:rgba(160,110,72,.7) !important; background:rgba(58,38,24,.55) !important; }

.dots { display:flex; gap:6px; } .dots i { width:7px; height:7px; border-radius:7px; background:rgba(239,232,218,.3); transition:width .3s; } .dots i.on { width:22px; background:var(--lima); }
.field-in { display:flex; justify-content:space-between; align-items:center; padding:10px 0; border-bottom:1px solid var(--line); font-size:15px; } .field-in .mono { font-size:9px; }
.link-in { color:inherit; } .link-in:hover b { text-decoration:underline; }
