:root{--bg-0: #060a18;--bg-1: #0c1330;--panel: rgba(255, 255, 255, .055);--line: rgba(255, 255, 255, .1);--ink: #eef1fb;--ink-soft: #a6b0d2;--ink-faint: #6e79a3;--moon: #f3d998;--sky: #93b8f8;--good: #8be3ae;--bar: 58px;--tabs: calc(60px + env(safe-area-inset-bottom, 0px)) }*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{height:100%}body{margin:0;color:var(--ink);background:radial-gradient(900px 600px at 50% -200px,#24336b,#24336b00 62%),linear-gradient(180deg,var(--bg-1),var(--bg-0) 72%);background-attachment:fixed;font-family:Segoe UI,system-ui,-apple-system,sans-serif;font-weight:350;line-height:1.5;overscroll-behavior:none}#app{display:flex;flex-direction:column;height:100dvh}.bar{flex:none;height:calc(var(--bar) + env(safe-area-inset-top,0px));padding:env(safe-area-inset-top,0px) 18px 0;display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line)}.brand{font-size:.68rem;letter-spacing:.26em;text-transform:uppercase;color:var(--ink-faint)}.brand b{color:var(--sky);font-weight:600}.place{font-size:.78rem;color:var(--ink-soft);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.view{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch}.view.find{overflow:hidden;display:flex;flex-direction:column}.pad{padding:22px 18px 28px}h2{font-size:1.32rem;font-weight:300;letter-spacing:.01em;margin:0 0 10px}h3{font-size:.66rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-faint);margin:0 0 12px}p{margin:0 0 12px}.lead{color:var(--ink-soft)}.lead b,.big b{color:var(--moon);font-weight:600}.big{font-size:1.7rem;font-weight:300;margin:0 0 6px}.muted{color:var(--ink-faint);font-size:.86rem}.card{background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:20px 18px;margin:0 0 18px;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.trow{display:grid;grid-template-columns:1fr auto;gap:2px 12px;padding:11px 0;border-bottom:1px solid var(--line)}.trow:last-child{border-bottom:0}.trow span{color:var(--ink-soft);font-size:.9rem}.trow b{font-weight:500;text-align:right;font-variant-numeric:tabular-nums}.trow i{grid-column:1 / -1;font-style:normal;font-size:.74rem;color:var(--ink-faint)}button.primary{font:inherit;font-size:1rem;font-weight:600;width:100%;padding:15px 20px;margin-top:4px;border:none;border-radius:14px;background:var(--moon);color:#241c05;cursor:pointer}button.primary:active{filter:brightness(.92)}.findrow{display:flex;gap:8px;margin:14px 0 10px}.findrow input{flex:1;min-width:0;font:inherit;font-size:1rem;padding:13px 14px;border-radius:12px;border:1px solid var(--line);background:#ffffff0d;color:var(--ink)}.findrow button,.result{font:inherit;font-size:.95rem;padding:13px 16px;border-radius:12px;background:transparent;color:var(--sky);border:1px solid rgba(147,184,248,.42);cursor:pointer}.result{display:block;width:100%;text-align:left;margin-bottom:7px}:focus-visible{outline:2px solid var(--sky);outline-offset:2px}.pitch{padding:26px 18px;text-align:center}.dial{max-width:270px;margin:0 auto 20px}.dial svg{width:100%;height:auto;display:block}.dial .ring{fill:#ffffff08;stroke:var(--line)}.dial .rose{fill:var(--ink-faint);font:600 11px Segoe UI,sans-serif;letter-spacing:.1em}.dial .needle{stroke:#f3d99880;stroke-width:2}.dial .disc{fill:var(--moon)}.dial .alt{fill:var(--ink-faint);font:400 13px Segoe UI,sans-serif}.stage{position:relative;flex:1;min-height:0;overflow:hidden;touch-action:none;cursor:grab}.stage:active{cursor:grabbing}.stage canvas{position:absolute;inset:0}.hud{position:absolute;inset:0;z-index:2;pointer-events:none}.sheet{flex:none;margin:0 14px 14px;padding:14px 16px;background:#0a0f24c7;border:1px solid var(--line);border-radius:16px;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);text-align:center}.sheet p{color:var(--ink-soft);font-size:.9rem;margin:0 0 10px}.sheet button.primary{margin:0}.sky{position:absolute;inset:0;width:100%;height:100%}.sky .horizon{stroke:#93b8f84d;stroke-width:1;stroke-dasharray:6 7}.sky .bearing{fill:var(--ink-faint);font:600 12px Segoe UI,sans-serif;letter-spacing:.12em}.sky .cross circle{fill:none;stroke:#ffffff4d;stroke-width:1.5}.sky .cross line{stroke:#ffffff73;stroke-width:1.5}.sky .moon .halo{fill:#f3d99824}.sky .moon .disc{fill:var(--moon)}.sky .moon.near .halo{fill:#8be3ae38}.sky .moon.near .disc{fill:var(--good)}.sky .arrow path{fill:var(--moon);opacity:.9}.marker{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none;overflow:visible}.marker .ret circle{fill:none;stroke:#fff3;stroke-width:1.4}.marker .ret path{fill:none;stroke:#ffffff52;stroke-width:1.7;stroke-linecap:round}.marker .ring{fill:none;stroke:#f3d998cc;stroke-width:2.2;filter:drop-shadow(0 0 7px rgba(243,217,152,.4))}.marker .ring.near{stroke:var(--good);stroke-width:3;filter:drop-shadow(0 0 9px rgba(139,227,174,.55))}.marker .arrow path{fill:var(--moon);stroke:#080c1e8c;stroke-width:1;filter:drop-shadow(0 0 8px rgba(243,217,152,.35))}.guide{position:absolute;left:0;right:0;bottom:92px;text-align:center;font-size:1.1rem;font-weight:300;color:var(--ink-soft);padding:0 18px;pointer-events:none}.guide b{color:var(--moon);font-weight:600;margin:0 6px}.guide.found,.guide.found b{color:var(--good)}.readout{position:absolute;left:14px;right:14px;bottom:14px;display:flex;gap:10px;justify-content:space-between;background:#0a0f24b3;border:1px solid var(--line);border-radius:14px;padding:11px 14px;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.readout div{display:flex;flex-direction:column;gap:1px;min-width:0}.readout span{font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-faint)}.readout b{font-weight:500;font-variant-numeric:tabular-nums;white-space:nowrap}.belowline{padding:0 18px 14px;color:var(--ink-faint);font-size:.86rem;text-align:center}.tabs{flex:none;height:var(--tabs);padding-bottom:env(safe-area-inset-bottom,0px);display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);background:#080c1ed1;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}.tabs button{font:inherit;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border:none;background:none;color:var(--ink-faint);cursor:pointer;padding:0}.tabs button svg{width:22px;height:22px}.tabs button span{font-size:.66rem;letter-spacing:.04em}.tabs button.on{color:var(--moon)}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
