*{box-sizing:border-box}html,body{margin:0;height:100%}body{background:var(--paper, #f7f5ef);font-family:Instrument Sans,system-ui,sans-serif;color:var(--ink, #17242b);transition:background .55s ease}.app{position:relative;height:100dvh;max-width:430px;margin:0 auto;overflow:hidden;background:var(--paper);transition:all .55s ease;display:flex;flex-direction:column}.sky{position:absolute;top:0;left:0;right:0;height:190px;z-index:3;overflow:visible;background:linear-gradient(180deg,var(--sky1) 0%,var(--sky2) 58%,var(--sky3) 100%);transition:all .55s ease}.sky>:not(.perch){pointer-events:none}.stars{position:absolute;inset:0;opacity:var(--star-op, 0);background-image:radial-gradient(1.6px 1.6px at 12% 22%,#fff,transparent),radial-gradient(1.4px 1.4px at 28% 12%,#fff,transparent),radial-gradient(2px 2px at 44% 30%,#fff,transparent),radial-gradient(1.4px 1.4px at 58% 15%,#fff,transparent),radial-gradient(1.6px 1.6px at 72% 26%,#fff,transparent),radial-gradient(1.4px 1.4px at 86% 10%,#fff,transparent),radial-gradient(1.8px 1.8px at 20% 44%,#fff,transparent),radial-gradient(1.4px 1.4px at 66% 46%,#fff,transparent),radial-gradient(1.4px 1.4px at 92% 38%,#fff,transparent),radial-gradient(1.6px 1.6px at 36% 56%,#fff,transparent);animation:twinkle 5s ease-in-out infinite}.sun{position:absolute;border-radius:999px;transition:all .6s ease}.clouds{position:absolute;inset:0;opacity:var(--cloud-op, .3)}.cloud{position:absolute;left:0;border-radius:999px;background:var(--cloud, #fff)}.c1{top:14%;width:214px;height:54px;filter:blur(10px);opacity:.72;animation:cloudDrift 68s linear infinite}.c2{top:42%;width:152px;height:38px;filter:blur(12px);opacity:.58;animation:cloudDrift 94s linear -34s infinite}.fogwrap{position:absolute;inset:-10%;opacity:var(--fog-op, 0)}.fog{position:absolute;background:var(--fog, #fff)}.f1{inset:0;filter:blur(30px);opacity:.5;animation:fogA 26s ease-in-out infinite}.f2{top:30%;left:0;right:0;height:70%;filter:blur(24px);opacity:.6;animation:fogB 34s ease-in-out infinite}.rain{position:absolute;inset:0}.r1{opacity:var(--rain-op, 0);background-image:repeating-linear-gradient(102deg,rgba(210,235,255,.55) 0 1.5px,transparent 1.5px 9px);animation:rainfall .55s linear infinite}.r2{opacity:var(--rain2-op, 0);background-image:repeating-linear-gradient(96deg,rgba(180,215,245,.4) 0 2.5px,transparent 2.5px 22px);animation:rainfall .82s linear infinite}.sheen{position:absolute;left:0;right:0;bottom:0;height:46%;opacity:var(--sheen-op, 0);background:linear-gradient(180deg,transparent,var(--haze, rgba(255, 255, 255, .3)))}.lane{position:absolute;left:0;width:100%;animation:flyR var(--dur) linear var(--delay) infinite}.hop{position:relative;display:inline-block;animation:bob calc(var(--flap) * 2) ease-in-out infinite}.bird{height:auto;display:block;overflow:visible;cursor:pointer;pointer-events:auto;filter:drop-shadow(0 4px 7px rgba(0,0,0,.16))}.wingA,.wingB{transform-origin:46px 26px}.bird.mid .wingA{animation:flapUpMid var(--flap) ease-in-out infinite}.bird.mid .wingB{animation:flapDnMid var(--flap) ease-in-out infinite}.bird.fast .wingA{animation:flapUpFast var(--flap) ease-in-out infinite}.bird.fast .wingB{animation:flapDnFast var(--flap) ease-in-out infinite}.bird.soar .wingA{animation:flapUpSoar var(--flap) ease-in-out infinite}.bird.soar .wingB{animation:flapDnSoar var(--flap) ease-in-out infinite}.bird.blur .wingA{animation:flapUpBlur var(--flap) ease-in-out infinite;opacity:.5}.bird.blur .wingB{animation:flapDnBlur var(--flap) ease-in-out infinite;opacity:.5}.lane.hover{animation-timing-function:ease-in-out}.hop.undulate{animation-name:undulate;animation-duration:1.4s}.lane.startled{animation-duration:calc(var(--dur) / 2)}.lane.startled .hop{animation-duration:.7s}.lane.startled .wingA{animation:flapUpFast calc(var(--flap) * .4) ease-in-out infinite}.lane.startled .wingB{animation:flapDnFast calc(var(--flap) * .4) ease-in-out infinite}.bubble{position:absolute;left:50%;top:-14px;white-space:nowrap;transform:translate(-50%);padding:6px 11px;border-radius:999px;background:var(--panel);border:1px solid var(--panel-brd);color:var(--ink);font-size:12px;font-weight:600;backdrop-filter:blur(8px);opacity:0;transition:opacity .22s;pointer-events:none}.lane.startled .bubble{opacity:1}.perch{position:absolute;right:26%;bottom:0;z-index:5;animation:perchBob 4.6s ease-in-out infinite;transition:all .6s ease}.perch-svg{width:58px;height:auto;display:block;overflow:visible;cursor:pointer;filter:drop-shadow(0 4px 6px rgba(0,0,0,.22));transform-origin:50% 100%;animation:preen 7s ease-in-out infinite}.perch.away{transform:translate(70px,-90px) scale(.7);opacity:0}.map-wrap{position:relative;flex:1;min-height:120px;margin-top:166px;z-index:2;border-radius:26px 26px 0 0;overflow:hidden}.status{position:absolute;top:18px;left:16px;right:16px;z-index:7;display:flex;align-items:center;justify-content:space-between;gap:10px}.pill{display:flex;align-items:center;gap:8px;padding:8px 13px;border-radius:999px;background:var(--panel);border:1px solid var(--panel-brd);backdrop-filter:blur(10px);font-size:13px;color:var(--ink);transition:all .55s ease}.pill strong{font-weight:600}.pill .dim{color:var(--ink-2)}.livedot{width:8px;height:8px;border-radius:99px;background:var(--pin-hi);animation:pulse 2.2s ease-in-out infinite}.dock{position:relative;z-index:8;display:flex;flex-direction:column;min-height:0}.lens{position:absolute;left:16px;right:16px;top:-56px;z-index:9;display:flex;padding:4px;border-radius:999px;background:var(--panel);border:1px solid var(--panel-brd);backdrop-filter:blur(10px);transition:all .55s ease}.lens-btn{flex:1;text-align:center;padding:8px 4px;border-radius:999px;cursor:pointer;font-family:inherit;font-size:13px;font-weight:600;border:0;background:transparent;color:var(--ink-2);transition:all .25s ease}.lens-btn.on{background:var(--ink);color:var(--paper)}.sheet{max-height:min(392px,58dvh);overflow-y:auto;padding:12px 18px calc(14px + env(safe-area-inset-bottom));background:var(--panel);border-top:1px solid var(--panel-brd);border-radius:30px 30px 0 0;backdrop-filter:blur(18px);box-shadow:0 -18px 44px #0a141e29;display:flex;flex-direction:column;gap:11px;transition:all .55s ease}.sheet>*{flex:none}@media(max-width:767.98px){.sheet.collapsed{max-height:138px;overflow:hidden}}.handle-btn{display:block;width:100%;padding:6px 0 2px;margin:-6px 0 -2px;background:none;border:0;cursor:pointer;flex:none}.handle{display:block;width:46px;height:5px;border-radius:99px;background:var(--panel-brd);margin:0 auto}.hero-row{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.hero-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.eyebrow{font-size:11px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--pin-hi)}.spot-name{font-family:Bricolage Grotesque,system-ui,sans-serif;font-weight:800;font-size:27px;line-height:1.04;letter-spacing:-.9px;color:var(--ink);display:inline-block;align-self:flex-start;text-decoration:none}.spot-name:hover,.spot-name:focus-visible{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:4px}.reason{font-size:14px;line-height:1.35;color:var(--ink-2)}.score-block{text-align:right;flex:none}.big-score{font-family:Bricolage Grotesque,system-ui,sans-serif;font-weight:800;font-size:50px;line-height:.85;letter-spacing:-3px;color:var(--pin-hi)}.big-score .pm{font-size:20px;letter-spacing:0;vertical-align:super}.score-label{font-size:10px;font-weight:700;letter-spacing:1.6px;text-transform:uppercase;color:var(--ink-3);margin-top:6px}.chips{display:flex;gap:7px}.chip{flex:1;display:flex;flex-direction:column;gap:5px;padding:8px 10px;border-radius:13px;background:var(--chip)}.chip-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--ink-3)}.chip-val{font-size:14px;font-weight:700;color:var(--ink)}.chip-track{height:4px;border-radius:99px;background:var(--panel-brd);overflow:hidden}.chip-bar{height:100%;border-radius:99px;transition:width .5s ease}.chip.missing{opacity:.55}.chip.missing .chip-bar{width:100%!important;background:repeating-linear-gradient(115deg,var(--panel-brd) 0 4px,transparent 4px 8px)!important}.strip-label{font-size:10px;font-weight:700;letter-spacing:1.4px;text-transform:uppercase;color:var(--ink-3);margin-bottom:-5px}.strip{display:flex;gap:7px;overflow-x:auto;scrollbar-width:none;margin:0 -18px;padding:0 18px}.strip::-webkit-scrollbar{display:none}.card{flex:none;width:82px;padding:8px 10px;border-radius:14px;background:var(--chip);display:flex;flex-direction:column;gap:1px}.card-phase{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--ink-3)}.card-score{font-family:Bricolage Grotesque,system-ui,sans-serif;font-weight:800;font-size:21px;letter-spacing:-.5px;color:var(--pin-low)}.card-score[data-tier=prime]{color:var(--pin-hi)}.card-score[data-tier=good]{color:var(--pin-mid)}.card-spot{font-size:11px;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.card-time{font-size:10px;color:var(--ink-2)}.cta-row{display:flex;gap:10px;align-items:center}.go{flex:1;text-align:center;padding:14px;border-radius:16px;background:var(--pin-hi);color:var(--paper);font-size:16px;font-weight:700;text-decoration:none;transition:all .25s ease}.week{flex:none;font-size:14px;font-weight:600;color:var(--pin-hi);text-decoration:none;padding:10px 4px}.conf{font-size:11px;color:var(--ink-3);text-align:center}@keyframes flyR{0%{transform:translate(-16%)}to{transform:translate(116%)}}@keyframes flyL{0%{transform:translate(116%)}to{transform:translate(-16%)}}@keyframes flapUpFast{0%,to{transform:rotate(-40deg)}50%{transform:rotate(30deg)}}@keyframes flapDnFast{0%,to{transform:rotate(40deg)}50%{transform:rotate(-30deg)}}@keyframes flapUpMid{0%,to{transform:rotate(-26deg)}50%{transform:rotate(14deg)}}@keyframes flapDnMid{0%,to{transform:rotate(26deg)}50%{transform:rotate(-14deg)}}@keyframes flapUpSoar{0%,to{transform:rotate(-11deg)}50%{transform:rotate(4deg)}}@keyframes flapDnSoar{0%,to{transform:rotate(11deg)}50%{transform:rotate(-4deg)}}@keyframes flapUpBlur{0%,to{transform:rotate(-52deg)}50%{transform:rotate(44deg)}}@keyframes flapDnBlur{0%,to{transform:rotate(52deg)}50%{transform:rotate(-44deg)}}@keyframes undulate{0%,to{transform:translateY(-6px)}50%{transform:translateY(7px)}}@keyframes dart{0%,to{transform:translate(0)}14%{transform:translate(-16px,-9px)}28%{transform:translate(-14px,4px)}44%{transform:translate(6px,-6px)}58%{transform:translate(22px,2px)}74%{transform:translate(10px,-11px)}88%{transform:translate(-5px,5px)}}@keyframes bob{0%,to{transform:translateY(0)}50%{transform:translateY(-7px)}}@keyframes pulse{0%,to{opacity:.55;transform:scale(1)}50%{opacity:1;transform:scale(1.14)}}@keyframes rainfall{0%{background-position:0 0}to{background-position:-90px 520px}}@keyframes fogA{0%,to{transform:translate(-6%)}50%{transform:translate(10%)}}@keyframes fogB{0%,to{transform:translate(8%)}50%{transform:translate(-9%)}}@keyframes twinkle{0%,to{opacity:.35}50%{opacity:1}}@keyframes cloudDrift{0%{transform:translate(-12%)}to{transform:translate(112%)}}@keyframes perchBob{0%,to{transform:translateY(0)}50%{transform:translateY(-2px)}}@keyframes preen{0%,66%,to{transform:rotate(0)}74%{transform:rotate(-15deg)}82%{transform:rotate(7deg)}90%{transform:rotate(-4deg)}}@media(min-width:768px){.app{max-width:none;margin:0}.dock{position:absolute;left:24px;bottom:24px;width:400px;gap:12px;max-height:calc(100dvh - 230px)}.lens{position:static;order:-1}.sheet{border-radius:30px;border:1px solid var(--panel-brd);box-shadow:0 18px 44px #0a141e47;padding-bottom:16px;max-height:none;min-height:0}.handle{display:none}.status{left:24px;right:24px}}@media(prefers-reduced-motion:reduce){.lane,.hop,.wingA,.wingB,.stars,.cloud,.fog,.rain,.perch,.perch-svg,.livedot{animation:none!important}}
