:root{--bg:#f6f1e7;--surface:#fffdf8;--ink:#1a1a17;--ink-55:rgba(26,26,23,0.55);--ink-75:rgba(26,26,23,0.75);--red:#d92b2b;--red-dark:#a31f1f;--yellow:#ffd23f;--gold:#c9932e;--blue:#7b93a8;--charcoal:#26221c;--green:#3d7a41;--tan1:#e9dcc3;--tan2:#e6cfae;--tan3:#e3d9b8;--radius-card:16px;--radius-ctl:12px;--border:2px solid var(--ink);--shadow-hard:4px 4px 0 rgba(26,26,23,0.13);--shadow-btn:3px 3px 0 var(--ink);--shadow-sm:2px 2px 0 rgba(26,26,23,0.15);--ease:cubic-bezier(0.2,0,0,1);--nav-h:calc(58px + env(safe-area-inset-bottom));--awning:repeating-linear-gradient(90deg,var(--red) 0 12px,var(--bg) 12px 24px);--font-display:"Titan One",Georgia,serif;--font-script:"Pacifico",cursive;--font-body:ui-serif,Georgia,"Times New Roman",serif;--font-sans:system-ui,sans-serif}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--bg);color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased}a{color:var(--red)}a:hover{color:var(--red-dark)}.wordmark{font-family:var(--font-script);color:var(--red);font-size:22px;line-height:1;text-decoration:none}.topnav{position:fixed;inset:auto 0 0 0;z-index:50;display:flex;height:var(--nav-h);padding:9px 6px calc(9px + env(safe-area-inset-bottom));background:rgba(246,241,231,.92);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-top:1.5px solid rgba(26,26,23,.15)}.topnav .brand{display:none}.topnav a{flex:1 1;display:flex;flex-direction:column;align-items:center;gap:3px;color:var(--ink-55);text-decoration:none;font-family:var(--font-sans);font-size:10px;font-weight:700;transition:color .15s var(--ease)}.topnav a svg{width:23px;height:23px}.topnav a.active{color:var(--red);font-weight:800}.topnav a:active{transform:scale(.94)}.card{background:var(--surface);border:var(--border);border-radius:var(--radius-card);box-shadow:var(--shadow-hard);padding:1.1rem 1.15rem 1rem;animation:rise .45s var(--ease) backwards;transition:transform .15s var(--ease)}.card:active{transform:scale(.985)}@keyframes rise{0%{opacity:0;transform:translateY(10px)}}.card-head{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem}.card h2,.curate-card h1{font-size:1.25rem;line-height:1.15;letter-spacing:.01em;text-wrap:balance}.card h1,.card h2,.curate-card h1{margin:0;font-family:var(--font-display);font-weight:400}.card h1{font-size:1.5rem}.meta{color:var(--ink-55);margin:.15rem 0;font-size:.92rem}.meta a{color:var(--red)}.chips{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.55rem}.chip{font-family:var(--font-sans);font-size:.75rem;font-weight:700;color:var(--ink-75);border:1.5px solid var(--ink);border-radius:999px;padding:.2rem .6rem;white-space:nowrap;background:transparent}.chip.est,.chip.tag{background:var(--yellow);color:var(--ink);border-color:var(--ink)}.vetted{flex:none;font-family:var(--font-sans);font-size:.68rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#fff6e8;background:var(--red);border:2px solid var(--ink);box-shadow:2px 2px 0 var(--yellow);border-radius:6px;padding:.2rem .5rem;transform:rotate(-2deg)}.badge{font-size:.8rem;font-weight:700;border:1.5px solid var(--ink);border-radius:999px;padding:.1rem .6rem;margin-top:.5rem}.badge,.detour,.pennant{display:inline-block;font-family:var(--font-sans);color:var(--ink)}.detour,.pennant{background:var(--yellow);font-weight:800;font-size:.72rem;padding:.3rem .9rem .3rem .6rem;-webkit-clip-path:polygon(0 0,100% 0,calc(100% - 9px) 50%,100% 100%,0 100%);clip-path:polygon(0 0,100% 0,calc(100% - 9px) 50%,100% 100%,0 100%);filter:drop-shadow(1.5px 1.5px 0 rgba(26,26,23,.85));white-space:nowrap;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.act.primary,.f-go,.go{display:inline-block;font-family:var(--font-display);font-weight:400;font-size:1rem;letter-spacing:.5px;color:#fff6e8;background:var(--red);border:var(--border);border-radius:11px;box-shadow:var(--shadow-btn);padding:.75rem 1.2rem;cursor:pointer;transform:skew(-2deg);transition:transform .15s var(--ease);text-align:center}.act.primary:active,.f-go:active,.go:active{transform:skew(-2deg) scale(.95)}.go:disabled{opacity:.55}.go{width:100%;font-size:1.1rem;padding:.85rem}.act{font-family:var(--font-sans);font-weight:800;font-size:.88rem;text-decoration:none;color:var(--ink);background:var(--surface);border:var(--border);border-radius:10px;box-shadow:var(--shadow-sm);padding:.5rem .9rem;cursor:pointer;transition:transform .15s var(--ease)}.act:active{transform:scale(.94)}.act.primary{font-size:.95rem;padding:.5rem 1.1rem}.card-actions{display:flex;gap:.5rem;margin-top:.85rem}.stars{color:var(--gold);font-size:.95rem;letter-spacing:.05em}.stars em{font-style:normal;color:var(--ink);font-weight:700;margin-left:.3rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.score{font-family:var(--font-sans);color:var(--ink-55);font-size:.82rem}.card-meta{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;margin-top:.7rem}.photos{display:flex;gap:6px;overflow-x:auto;-webkit-overflow-scrolling:touch;touch-action:pan-x pan-y;scroll-snap-type:x mandatory;margin:-.25rem -.25rem .7rem;padding:.25rem .25rem .35rem;scrollbar-width:none}.photos::-webkit-scrollbar{display:none}.photos img{height:132px;border-radius:8px;scroll-snap-align:start;box-shadow:inset 0 0 0 1px rgba(0,0,0,.08);outline:1px solid rgba(0,0,0,.08);outline-offset:-1px;flex:none;object-fit:cover;background:var(--tan1)}.photos.small img{height:84px}.desc{margin:.55rem 0 0;line-height:1.45;font-size:.95rem}.quote{margin:.5rem 0 0;padding-left:.7rem;border-left:3px solid var(--yellow);color:var(--ink-55);font-style:italic;font-size:.9rem;line-height:1.4;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.quotes .quote{margin-top:.6rem}.comments h2,.section-title{font-family:var(--font-script);color:var(--red);font-size:21px;font-weight:400;margin:0 0 .75rem}.route{max-width:34rem;margin:0 auto;padding:1rem 1rem calc(var(--nav-h) + 1.5rem)}.route-form{position:-webkit-sticky;position:sticky;top:0;z-index:10;margin:0 -1rem;padding:.75rem 1rem .9rem;background:rgba(246,241,231,.95);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);display:grid;grid-gap:.5rem;gap:.5rem}.field{display:flex;align-items:center;gap:.6rem;background:var(--surface);border:var(--border);border-radius:var(--radius-ctl);box-shadow:var(--shadow-sm);padding:0 .8rem}.field:focus-within{outline:2px solid var(--yellow);outline-offset:1px}.field-dot{width:9px;height:9px;border-radius:50%;flex:none}.field-dot.from{background:var(--red)}.field-dot.to{background:var(--ink)}.field input{flex:1 1;min-width:0;border:0;background:none;font:inherit;font-size:1rem;padding:.75rem 0;color:var(--ink)}.field input::placeholder{color:var(--ink-55)}.field input:focus{outline:none}.field .gps{border:0;background:none;font-size:1.2rem;color:var(--red);padding:.5rem .2rem;cursor:pointer;transition:transform .15s var(--ease)}.field .gps:active{transform:scale(.9)}.route-error{margin:.2rem 0 0;color:var(--red-dark);font-size:.9rem}.route-summary{color:var(--ink-55);font-size:.92rem;margin:1rem 0 .75rem;animation:rise .4s var(--ease) backwards}.route-summary strong{color:var(--red)}.cards{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:minmax(0,1fr);grid-gap:.9rem;gap:.9rem}.empty{padding:3.5rem 1rem 0;text-align:center}.empty-line{font-family:var(--font-display);font-size:1.3rem;line-height:1.3;margin:0;text-wrap:balance}.empty-sub{color:var(--ink-55);margin-top:.75rem;line-height:1.5}.feed{max-width:34rem;margin:0 auto;padding:.75rem .75rem calc(var(--nav-h) + 1.5rem);display:grid;grid-gap:1.25rem;gap:1.25rem}.feed-card{background:var(--surface);border:var(--border);border-radius:var(--radius-card);box-shadow:var(--shadow-hard);overflow:hidden;animation:rise .45s var(--ease) backwards}.feed-photos{display:flex;gap:4px;overflow-x:auto;-webkit-overflow-scrolling:touch;touch-action:pan-x pan-y;scroll-snap-type:x mandatory;scrollbar-width:none;border-bottom:var(--border)}.feed-photos::-webkit-scrollbar{display:none}.feed-photos img{height:230px;width:100%;object-fit:cover;flex:none;scroll-snap-align:start;background:var(--tan1)}.feed-body{padding:.9rem 1rem 1rem}.map-wrap{position:relative;height:calc(100dvh - var(--nav-h))}.maplibregl-popup-content{font-family:var(--font-body);padding:0;border:var(--border);border-radius:var(--radius-card);box-shadow:var(--shadow-hard);background:var(--surface)}.maplibregl-popup-tip{border-top-color:var(--ink)}.maplibregl-popup{z-index:10}.corridor-pill{position:absolute;top:.75rem;right:.75rem;z-index:5;background:var(--yellow);border:var(--border);border-radius:999px;box-shadow:var(--shadow-sm);padding:.35rem .8rem;font-family:var(--font-sans);font-weight:800;font-size:.78rem;color:var(--ink);cursor:pointer}.fp-popup-card{padding:.9rem 1rem .85rem;border-radius:var(--radius-card)}.fp-popup-card:before{content:"";display:block;height:10px;margin:-.9rem -1rem .6rem;background:repeating-linear-gradient(90deg,var(--red) 0 12px,var(--bg) 12px 24px);border-bottom:2px solid var(--ink);border-radius:13px 13px 0 0}.fp-popup-name{font-family:var(--font-display);font-size:1.05rem;line-height:1.2}.fp-popup-card .chips{margin-top:.4rem}.fp-popup-meta{margin-top:.45rem}.fp-popup-addr{color:var(--ink-55);font-size:.82rem;margin-top:.35rem}.fp-popup-card .card-actions{margin-top:.6rem}.fp-popup-card .act{font-size:.82rem;padding:.35rem .7rem}.fp-stars{color:var(--gold);font-size:.95rem;margin-top:.3rem;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.fp-stars b{font-weight:400}.fp-popup-meta2,.fp-stars span,.fp-stars.dim{color:var(--ink-55);font-size:.85rem}.fp-popup-meta2{margin-top:.2rem}.fp-popup-desc{font-size:.85rem;line-height:1.35;margin-top:.4rem}.fp-popup-quote{font-size:.8rem;color:var(--ink-55);font-style:italic;border-left:3px solid var(--yellow);padding-left:.5rem;margin-top:.4rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.fp-popup .maplibregl-popup-close-button{font-size:1.1rem;padding:.2rem .45rem;color:var(--ink-55)}.fp-popup .maplibregl-popup-content{max-height:60dvh;overflow-y:auto}.count-pill{position:absolute;top:.75rem;left:50%;transform:translateX(-50%);background:rgba(255,253,248,.94);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:var(--border);border-radius:999px;box-shadow:var(--shadow-sm);padding:.35rem .9rem;font-family:var(--font-sans);font-weight:700;font-size:.8rem;color:var(--ink-75);z-index:5}.count-pill:empty{display:none}.map-list{position:absolute;top:3rem;left:.6rem;bottom:1rem;width:min(250px,55vw);overflow-y:auto;z-index:5;display:flex;flex-direction:column;gap:5px;scrollbar-width:none}.map-list::-webkit-scrollbar{display:none}.map-list-item{text-align:left;font:inherit;background:rgba(255,253,248,.95);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:var(--border);border-radius:12px;box-shadow:var(--shadow-sm);padding:.55rem .7rem;cursor:pointer;transition:transform .12s var(--ease)}.map-list-item:active{transform:scale(.97)}.mli-name{display:block;font-weight:700;font-size:.9rem;line-height:1.2}.mli-meta{display:block;color:var(--ink-55);font-family:var(--font-sans);font-size:.78rem;margin-top:2px}.mli-name .vetted{font-size:.6rem;padding:.05rem .4rem;vertical-align:middle}.map-legend{position:absolute;left:.6rem;bottom:.8rem;z-index:5;display:flex;gap:.5rem;background:rgba(255,253,248,.94);border:var(--border);border-radius:999px;box-shadow:var(--shadow-sm);padding:.3rem .7rem;font-family:var(--font-sans);font-size:.75rem;font-weight:700;color:var(--ink-75)}.map-legend span{display:flex;align-items:center;gap:.3rem}.map-legend .dot{width:10px;height:10px;border-radius:50%;border:1.5px solid var(--ink);display:inline-block}.map-legend .dot.red{background:var(--red)}.map-legend .dot.yellow{background:var(--yellow)}.map-gps{position:absolute;right:.6rem;bottom:.8rem;z-index:5;width:44px;height:44px;border-radius:50%;background:var(--surface);border:var(--border);box-shadow:var(--shadow-sm);font-size:1.25rem;color:var(--red);cursor:pointer;transition:transform .15s var(--ease)}.map-gps:active{transform:scale(.9)}.curate,.curate2{max-width:34rem;margin:0 auto;padding:1rem 1rem calc(var(--nav-h) + 1.5rem)}.filterbar{position:-webkit-sticky;position:sticky;top:0;z-index:10;margin:0 -1rem;padding:.75rem 1rem .9rem;background:rgba(246,241,231,.95);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);display:grid;grid-gap:.5rem;gap:.5rem}.filterbar input,.filterbar select{font:inherit;font-size:1rem;color:var(--ink);background:var(--surface);border:var(--border);border-radius:var(--radius-ctl);box-shadow:var(--shadow-sm);padding:.65rem .8rem;min-width:0}.filterbar input:focus-visible,.filterbar select:focus-visible{outline:2px solid var(--yellow)}.f-row{display:flex;gap:.5rem;flex-wrap:wrap}.f-row input{flex:1 1 140px}.f-row select{flex:1 1 110px}.f-go{width:auto;padding:.65rem 1rem}.curate-card{background:var(--surface);border:var(--border);border-radius:var(--radius-card);box-shadow:var(--shadow-hard);padding:1.5rem}.curate-actions{display:flex;gap:.75rem;margin-top:1.5rem}.curate-actions button{flex:1 1;font:inherit;font-size:1.05rem;padding:.8rem 0;border-radius:var(--radius-ctl);border:var(--border);box-shadow:var(--shadow-sm);background:var(--surface);cursor:pointer;transition:transform .15s var(--ease)}.curate-actions button:active{transform:scale(.95)}.curate-actions .approve{background:var(--ink);color:var(--bg)}.curate-actions .reject,.curate-count{color:var(--ink-55)}.curate-count{font-family:var(--font-sans);font-size:.85rem;text-align:center;margin-top:1rem}.vote-row{display:flex;gap:.5rem;margin-top:.9rem}.vote{flex:1 1;font-family:var(--font-sans);font-size:.95rem;font-weight:800;padding:.65rem 0;border-radius:999px;border:var(--border);box-shadow:var(--shadow-sm);background:var(--surface);color:var(--ink-55);cursor:pointer;transition:transform .15s var(--ease)}.vote:active{transform:scale(.94)}.vote.maybe{background:var(--yellow);color:var(--ink)}.vote.in{background:var(--red);color:#fff6e8;font-family:var(--font-display);font-weight:400;letter-spacing:.5px;transform:skew(-2deg)}.vote.in:active{transform:skew(-2deg) scale(.94)}.upvote{font-family:var(--font-sans);font-weight:800;font-size:.9rem;color:var(--ink-55);background:var(--surface);border:var(--border);border-radius:999px;box-shadow:var(--shadow-sm);padding:.3rem .8rem;cursor:pointer;transition:transform .15s var(--ease)}.upvote:active{transform:scale(.92)}.upvote.on{color:var(--red);border-color:var(--red)}.enrich-btn{font-family:var(--font-sans);font-size:.85rem;font-weight:800;color:var(--ink);background:var(--yellow);border:var(--border);border-radius:999px;box-shadow:var(--shadow-sm);padding:.35rem .8rem;cursor:pointer;transition:transform .15s var(--ease)}.enrich-btn:active{transform:scale(.94)}.weblink{color:var(--red);font-size:.9rem}.loc-list{list-style:none;margin:1rem 0 0;padding:0}.loc-list li{padding:.35rem 0;border-bottom:1.5px dashed rgba(26,26,23,.2);font-size:.92rem}.loc-list li:last-child{border-bottom:0}.loc-list a{color:var(--red);text-decoration:none}.comments{margin-top:1.25rem}.comment-box{display:grid;grid-gap:.5rem;gap:.5rem;margin-bottom:1rem}.comment-box textarea,.submit-form input,.submit-form textarea{font:inherit;font-size:1rem;color:var(--ink);background:var(--surface);border:var(--border);border-radius:var(--radius-ctl);box-shadow:var(--shadow-sm);padding:.75rem .8rem;resize:vertical}.comment-box textarea:focus-visible,.submit-form :is(input,textarea):focus-visible{outline:2px solid var(--yellow)}.comment{background:var(--surface);border:var(--border);border-radius:var(--radius-ctl);box-shadow:var(--shadow-sm);padding:.75rem .9rem;margin-bottom:.6rem}.comment-head{display:flex;align-items:center;gap:.5rem;font-family:var(--font-sans)}.comment-head img{width:22px;height:22px;border-radius:50%;border:1.5px solid var(--ink)}.comment-when{color:var(--ink-55);font-size:.78rem;margin-left:auto}.comment p{margin:.4rem 0 0;line-height:1.45}.submit-form{display:grid;grid-gap:.9rem;gap:.9rem;margin-top:1rem}.submit-form .f-label{font-family:var(--font-sans);font-size:11px;font-weight:800;letter-spacing:.5px;color:var(--ink-55);text-transform:uppercase}.ask{max-width:34rem;margin:0 auto;height:calc(100dvh - var(--nav-h));display:flex;flex-direction:column}.ask-scroll{flex:1 1;overflow-y:auto;padding:1rem;display:flex;flex-direction:column;gap:.6rem}.bubble{max-width:85%;border-radius:16px;padding:.7rem .9rem;animation:rise .3s var(--ease) backwards}.bubble p{margin:0;line-height:1.45}.bubble.you{align-self:flex-end;background:var(--ink);color:var(--bg);border:var(--border);border-bottom-right-radius:4px}.bubble.guide{align-self:flex-start;background:var(--surface);border:var(--border);box-shadow:var(--shadow-sm);border-bottom-left-radius:4px}.bubble-meta{display:block;margin-top:.35rem;font-family:var(--font-sans);font-size:.75rem;color:var(--ink-55)}.ask-input{display:flex;gap:.5rem;padding:.75rem 1rem;background:rgba(246,241,231,.95);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.ask-input input{flex:1 1;font:inherit;font-size:1rem;color:var(--ink);background:var(--surface);border:var(--border);border-radius:var(--radius-ctl);box-shadow:var(--shadow-sm);padding:.75rem .8rem}.ask-input input:focus-visible{outline:2px solid var(--yellow)}.receipt{background:var(--surface);border:var(--border);border-radius:4px;box-shadow:var(--shadow-hard);padding:14px 15px 12px;margin-top:1rem}.receipt-head{text-align:center;font:10px ui-monospace,monospace;letter-spacing:2px;color:var(--ink-55);text-transform:uppercase}.receipt-sub{text-align:center;font:9px ui-monospace,monospace;color:rgba(26,26,23,.4);margin-top:2px}.receipt-dash{border-bottom:2px dashed rgba(26,26,23,.3);margin:10px 0}.receipt-month{font-family:var(--font-script);font-size:14px;color:var(--red);margin:2px 0 7px}.receipt-rows{display:flex;flex-direction:column;gap:8px;font-size:12.5px}.receipt-row{display:flex;align-items:baseline;gap:7px}.receipt-row .when{font:9.5px var(--font-sans);color:rgba(26,26,23,.45);width:38px;flex:none}.receipt-row .leader{flex:1 1;border-bottom:2px dotted rgba(26,26,23,.3);transform:translateY(-3px)}.receipt-row .amt{font-weight:800;color:var(--red);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.receipt-row .amt.pos{color:var(--ink)}.receipt-row .amt.refund{color:var(--green)}.receipt-row.buy{background:var(--bg);border-radius:6px;padding:3px 6px;margin:0 -6px}.receipt-row.buy .what{font-weight:700}.receipt-balance{display:flex;align-items:baseline;gap:7px;font-size:13px}.receipt-balance .amt{font-family:var(--font-display);font-size:16px}.receipt-foot{text-align:center;font:9.5px ui-monospace,monospace;letter-spacing:1.5px;color:rgba(26,26,23,.45);margin-top:12px}@media (min-width:900px){.curate,.curate2,.route{max-width:62rem}.curate2 .cards,.route .cards{grid-template-columns:repeat(2,minmax(0,1fr))}.filterbar,.route-form{max-width:34rem;margin:0 auto;left:0;right:0}.feed{max-width:62rem;grid-template-columns:repeat(2,minmax(0,1fr))}.feed-card{display:flex;flex-direction:column}.ask{max-width:44rem}.map-list{width:300px}}@media (prefers-reduced-motion:reduce){.bubble,.card,.feed-card,.route-summary{animation:none}*{transition:none!important}}