:root{--ink:#13212E;--muted:#4A5866;--paper:#F3F5F0;--shade:#FFFFFF;--map:#A8E6A1;--park:#74C98B;--road:#F6F1DD;--azure:#0F6FC0;--field:#1E4D35;--black:#111519;--serif:"Crimson Pro","Iowan Old Style",Georgia,serif;}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{font-family:var(--serif);color:var(--ink);background:var(--field);-webkit-font-smoothing:antialiased;overflow-x:hidden;}.app{position:relative;display:flex;flex-direction:column;min-height:100dvh;max-width:440px;margin:0 auto;background:var(--paper);padding:max(12px,env(safe-area-inset-top)) 16px 0;overflow:hidden;}.bar{display:flex;align-items:center;gap:10px;height:44px}.bar img{width:40px;height:40px;border-radius:11px;display:block}.bar .name{font-weight:600;font-size:clamp(1.05rem,1rem + 0.3vw,1.2rem);letter-spacing:0.01em}h1{margin-top:10px;font-weight:600;font-size:clamp(2rem,1.5rem + 2.4vw,2.5rem);line-height:1.04;letter-spacing:-0.01em;text-wrap:balance;}h1 em{font-style:italic;font-weight:400}.lede{margin-top:8px;font-size:clamp(1.06rem,1rem + 0.35vw,1.18rem);line-height:1.32;color:var(--muted);max-width:34ch;}.stage{position:relative;flex:1 1 auto;min-height:300px;margin-top:14px;border-radius:24px;overflow:hidden;background:#C9D3C6;overscroll-behavior:contain;box-shadow:0 1px 2px rgba(19,33,46,0.08),0 8px 24px rgba(19,33,46,0.08);}.map{position:absolute;inset:0;width:100%;height:100%;display:block}.map.spoof{opacity:1;will-change:opacity}.pin{position:absolute;left:50%;bottom:34px;width:30px;height:40px;margin-left:-15px;will-change:transform;}.pin svg{display:block;width:100%;height:100%}.chip{position:absolute;left:50%;bottom:10px;transform:translateX(-50%);white-space:nowrap;font-size:0.95rem;font-weight:600;padding:3px 11px 4px;border-radius:999px;background:var(--shade);color:var(--ink);box-shadow:0 1px 2px rgba(19,33,46,0.12),0 4px 10px rgba(19,33,46,0.1);will-change:opacity;}.chip.home{color:var(--muted)}.shadeWrap{position:absolute;left:0;right:0;top:0}.shade{position:relative;background:var(--shade);border-radius:0 0 22px 22px;padding:12px 12px 0;touch-action:none;user-select:none;-webkit-user-select:none;will-change:transform;box-shadow:0 1px 1px rgba(19,33,46,0.06),0 6px 14px rgba(19,33,46,0.10),0 22px 40px rgba(19,33,46,0.14);cursor:grab;}.shade.dragging{cursor:grabbing}.shade.fade{animation:fade .18s ease-out}@keyframes fade{from{opacity:.55}to{opacity:1}}.srow{display:flex;justify-content:space-between;align-items:center;font-size:0.95rem;color:var(--muted);height:20px}.srow .live{display:flex;align-items:center;gap:6px;color:var(--ink);font-weight:600}.srow .live i{width:8px;height:8px;border-radius:50%;background:#2E9B57;display:block}.tiles{margin-top:10px;display:grid;grid-template-columns:1fr 1fr;gap:8px}.tile{-webkit-tap-highlight-color:transparent;appearance:none;border:0;font:inherit;color:var(--ink);text-align:left;background:#EEF1EC;border-radius:18px;padding:10px 12px;display:flex;flex-direction:column;justify-content:space-between;min-height:48px;cursor:pointer;transition:transform .12s cubic-bezier(.2,.8,.2,1),background-color .18s ease-out,color .18s ease-out;box-shadow:0 1px 1px rgba(19,33,46,0.05),0 2px 6px rgba(19,33,46,0.06);}.tile:active{transform:scale(0.97)}.tile[aria-pressed="true"]{background:var(--azure);color:#fff}.tile:focus-visible{outline:3px solid var(--ink);outline-offset:2px}.tile .t{font-weight:600;font-size:1.08rem;line-height:1.1}.tile .s{font-size:0.92rem;line-height:1.15;opacity:0.92}.loc{grid-column:1 / -1;flex-direction:row;align-items:center;justify-content:flex-start;gap:12px;min-height:58px}.loc .ic{flex:0 0 36px;height:36px;border-radius:50%;background:var(--azure);display:grid;place-items:center}.loc[aria-pressed="true"] .ic{background:#fff}.loc .tx{display:flex;flex-direction:column;gap:2px;min-width:0}.loc .t{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.joy{grid-row:span 2;min-height:104px}.pad{width:52px;height:52px;border-radius:50%;border:2px solid currentColor;opacity:.9;position:relative;margin:2px 0 6px}.pad span{position:absolute;left:50%;top:50%;width:20px;height:20px;margin:-10px 0 0 -10px;border-radius:50%;background:currentColor;animation:nub 3.2s cubic-bezier(.3,.7,.3,1) infinite}.rad{width:52px;height:52px;border-radius:50%;border:2px solid currentColor;position:relative;margin:2px 0 6px;overflow:hidden;opacity:.9}.rad::before{content:"";position:absolute;inset:12px;border-radius:50%;border:2px solid currentColor;opacity:.7}.rad span{position:absolute;left:50%;top:0;width:50%;height:50%;transform-origin:0 100%;background:linear-gradient(90deg,currentColor,transparent);opacity:.45;animation:sweep 2.6s linear infinite}@keyframes sweep{to{transform:rotate(360deg)}}@keyframes nub{0%,100%{transform:translate(0,0)}25%{transform:translate(9px,-7px)}55%{transform:translate(-8px,6px)}75%{transform:translate(4px,9px)}}.grab{-webkit-tap-highlight-color:transparent;appearance:none;border:0;background:transparent;display:flex;align-items:center;justify-content:center;width:100%;height:30px;margin-top:4px;cursor:inherit;}.grab i{display:block;width:40px;height:5px;border-radius:3px;background:#B9C1C8}.grab:focus-visible{outline:3px solid var(--ink);outline-offset:-3px;border-radius:12px}.action{padding:14px 0 max(12px,env(safe-area-inset-bottom));}.main-btn{-webkit-tap-highlight-color:transparent;display:flex;align-items:center;justify-content:center;width:100%;min-height:54px;border-radius:16px;background:var(--black);color:#fff;font-family:var(--serif);font-weight:600;font-size:clamp(1.18rem,1.1rem + 0.4vw,1.3rem);text-decoration:none;transition:transform .12s cubic-bezier(.2,.8,.2,1);box-shadow:0 1px 2px rgba(17,21,25,0.2),0 6px 16px rgba(17,21,25,0.18);}.main-btn:active{transform:scale(0.97)}.main-btn:focus-visible{outline:3px solid var(--azure);outline-offset:3px}footer{text-align:center;font-size:0.92rem;color:var(--muted);padding:10px 0 2px}@media (hover: hover){.main-btn:hover{background:#000}.tile:hover{filter:brightness(0.98)}}@media (min-width: 600px){body{display:flex;align-items:center;justify-content:center;min-height:100dvh;padding:24px}.app{width:430px;min-height:0;height:min(860px,calc(100dvh - 48px));border-radius:32px;padding-top:18px;box-shadow:0 2px 4px rgba(0,0,0,0.12),0 24px 60px rgba(0,0,0,0.28)}}@media (prefers-reduced-motion: reduce){.pad span,.rad span{animation:none}.tile,.main-btn{transition:none}}:is(html,body){max-inline-size:100%;overflow-x:clip;}