@import url('/fonts/fonts.css');
:root{color-scheme:dark;--bg:#101214;--panel:#191d20;--text:#f4f1e9;--muted:#a8afb3;--orange:#ff823c;--line:#34393e}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;background:var(--bg);color:var(--text);font:15px/1.65 Inter,system-ui,sans-serif}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}button,a{ -webkit-tap-highlight-color:transparent}button{cursor:pointer}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid var(--orange);outline-offset:5px}.header,main,footer{max-width:1280px;margin:auto}.header{height:100px;padding:0 56px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{font:800 30px Barlow Condensed,Impact,sans-serif;letter-spacing:-.5px}.brand span{color:var(--orange)}.brand b{color:var(--orange);margin-left:10px}.header nav{display:flex;gap:30px;font-size:13px}.header nav a:hover{color:var(--orange)}.hero{padding:70px 56px 60px;display:grid;grid-template-columns:1.1fr 1fr;gap:26px;align-items:center}.eyebrow{font-size:11px;font-weight:700;letter-spacing:2px;color:var(--orange);margin:0 0 20px}.dot{display:inline-block;width:7px;height:7px;background:var(--orange);border-radius:50%;margin-right:8px}h1,h2,h3{font-family:Barlow Condensed,Impact,sans-serif;line-height:1.02;letter-spacing:-1px;margin:0}h1{font-size:clamp(56px,6.8vw,92px);font-weight:800}h1 em{font-style:normal;color:var(--orange)}.intro{color:var(--muted);margin:28px 0;font-size:16px}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:24px;background:var(--orange);color:#17130f;border:0;padding:15px 24px;font-weight:700;border-radius:3px}.button:hover{background:#ff995f}.hero-note{margin-top:44px;font-size:10px;color:var(--muted);letter-spacing:2px}.hero-route{position:relative;transform:rotate(-3deg);border:1px solid var(--line);background:#11191d;box-shadow:18px 18px 0 #1a1e21;overflow:hidden}.hero-route img{width:100%;display:block;min-height:320px;object-fit:cover}.map-caption{display:flex;justify-content:space-between;align-items:center;padding:18px 22px;border-top:1px solid var(--line)}.map-caption span{font-size:10px;letter-spacing:2px;color:var(--muted)}.map-caption strong{font:700 45px Barlow Condensed,sans-serif}.map-caption small{font-size:18px;color:var(--orange)}.routes{padding:42px 56px 80px}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:30px}h2{font-size:42px}.count{font-size:12px;color:var(--muted)}.route-card{display:grid;grid-template-columns:1.13fr 1fr;background:var(--panel);border:1px solid var(--line)}.map-wrap{position:relative;min-width:0;background:#11191d;display:flex;flex-direction:column}#map{height:420px;width:100%;z-index:1}#map>img{width:100%;height:100%;object-fit:contain}.map-button{background:#262d31;color:var(--text);border:1px solid #566067;padding:10px 15px;margin:0 22px 10px;align-self:start;border-radius:3px}.map-privacy{color:var(--muted);font-size:11px;margin:0 22px 18px}.route-info{padding:34px}h3{font-size:48px}.towns{color:var(--muted);font-size:14px}.metrics{display:flex;gap:30px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:18px 0;margin:24px 0}.metrics strong{display:block;font:600 28px Barlow Condensed,sans-serif}.metrics small{font-size:18px;color:var(--orange)}.metrics span{color:var(--muted);font-size:11px}.description{font-size:13px;color:var(--muted)}.download{width:100%;margin-top:10px}.free{font-size:11px;color:var(--muted);text-align:center;margin:8px 0 18px}.suggest-link{border:0;border-top:1px solid var(--line);padding:16px 0 0;background:transparent;color:var(--text);font-size:12px;text-align:left;width:100%}.about{margin:0 56px;padding:54px 0;display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);gap:20px 50px}.about>.eyebrow{grid-column:1/-1;margin:0}.about h2{font-size:54px}.about div p{color:var(--muted);margin:0 0 16px;font-size:14px}.contact{margin:24px 56px 65px;padding:32px;border-left:3px solid var(--orange);background:var(--panel);display:flex;align-items:center;justify-content:space-between;gap:25px}.contact h2{font-size:34px}.contact p:not(.eyebrow){font-size:13px;color:var(--muted);margin-bottom:0}footer{border-top:1px solid var(--line);padding:32px 56px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:20px}.legal-links{display:flex;gap:20px;flex-wrap:wrap}.legal-links button{background:none;border:0;color:var(--muted);font-size:12px;padding:4px 0}footer>p{width:100%;color:var(--muted);font-size:11px;margin:0}dialog{color:var(--text);background:var(--panel);border:1px solid var(--line);border-radius:6px;max-width:580px;width:calc(100% - 32px);padding:28px}dialog::backdrop{background:#000b}.dialog-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:20px}.dialog-heading h2{font-size:32px}.close{background:none;border:0;color:var(--text);font-size:28px;padding:0 8px}.notice{background:#30251d;color:#ffc49f;padding:14px;font-size:13px}label{display:block;margin:18px 0;font-size:13px}input,textarea{width:100%;margin-top:8px;padding:12px;background:var(--bg);color:var(--text);border:1px solid var(--line);border-radius:3px;font-size:16px}textarea{resize:vertical}#saved{font-size:13px;color:var(--orange)}#legal-body{font-size:14px;color:var(--muted)}@media(max-width:850px){.header{padding:0 24px;height:80px}.hero{padding:44px 24px;grid-template-columns:1fr;gap:40px}.hero-route{transform:none}.hero-route img{min-height:0;max-height:330px}.hero-note{margin-top:24px}.routes{padding:30px 24px 50px}.route-card{grid-template-columns:1fr}.about{margin:0 24px}.contact{margin:20px 24px 40px;flex-direction:column;align-items:start}footer{padding:28px 24px}.section-heading{align-items:start}.count{white-space:nowrap}}@media(max-width:480px){.header nav{gap:14px;font-size:11px}.brand{font-size:25px}.brand b{display:none}h2{font-size:32px}.section-heading{flex-direction:column}h3{font-size:40px}.route-info{padding:24px}.about{grid-template-columns:1fr}.about h2{font-size:44px}.metrics{gap:20px}#map{height:300px}.contact{padding:24px}.contact .button{width:100%}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
.admin-main{padding:45px 56px 70px}.admin-main h1{font-size:70px}.admin-grid{display:grid;grid-template-columns:1.6fr 1fr;gap:28px;align-items:start}.editor,.saved-route{padding:26px;background:var(--panel);border:1px solid var(--line)}.editor h2,.route-list h2{font-size:30px}.secondary{border:1px solid var(--line);background:#262d31;color:var(--text);padding:10px 16px;border-radius:3px}.gpx-preview{background:#11191d;border:1px solid var(--line)}.gpx-preview svg{width:100%;display:block}.gpx-preview p{padding:0 15px;font-size:12px;color:var(--muted)}.check-label{display:flex;align-items:center;gap:12px}.check-label input{width:18px;height:18px;margin:0}.photo-preview{max-width:100%;max-height:220px;object-fit:contain}.save-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:25px}.admin-note{font-size:12px;color:var(--muted)}.error{color:#ff9c91}.success{color:#b0d7ab}.saved-route{margin:20px 0}.saved-route h3{font-size:28px}.saved-route p{color:var(--muted);font-size:13px}.saved-route a{color:var(--orange)}button:disabled{opacity:.55;cursor:wait}.added-routes{display:grid;gap:26px;margin-top:26px}.uploaded-route{padding:26px;background:var(--panel);border:1px solid var(--line)}.uploaded-route h3{font-size:36px}.uploaded-route .route-art{width:100%;max-height:320px;object-fit:contain;background:#11191d}.uploaded-route .route-photo{width:100%;max-height:300px;object-fit:cover}.uploaded-route .description{white-space:pre-wrap}.uploaded-route svg{width:100%;max-height:300px;background:#11191d}@media(max-width:850px){.admin-main{padding:30px 24px}.admin-grid{grid-template-columns:1fr}}@media(max-width:480px){.editor{padding:18px}.editor .section-heading{gap:14px}}
.header nav .admin-nav{color:var(--orange);font-weight:700}.manage-link{margin:18px 0 0;font-size:13px;color:var(--orange)}@media(max-width:600px){.header{height:auto;min-height:80px;padding-top:18px;padding-bottom:18px;gap:16px;flex-wrap:wrap}.header nav{flex-wrap:wrap;gap:14px 20px}}
.header nav a[aria-current=page]{color:var(--orange)}.catalog-intro{padding:62px 56px 32px;border-bottom:1px solid var(--line)}.catalog-intro h1{font-size:clamp(54px,6vw,82px)}.catalog-intro .intro{max-width:650px;margin-bottom:12px}.catalog-section{padding:30px 56px 70px}.collection-tabs{display:flex;gap:10px;flex-wrap:wrap}.collection-tabs button{padding:10px 17px;border:1px solid var(--line);border-radius:4px;background:var(--panel);color:var(--text);font-size:13px}.collection-tabs button.selected{color:#17130f;background:var(--orange);border-color:var(--orange)}.route-filters{display:grid;grid-template-columns:1fr 1fr 1.5fr;gap:18px;margin-top:20px}.route-filters label{margin:0}.route-filters select,.editor select{display:block;width:100%;padding:12px;margin-top:8px;background:var(--panel);border:1px solid var(--line);color:var(--text);font:inherit;border-radius:3px}.route-filters input{background:var(--panel)}.catalog-count{color:var(--muted);font-size:12px;margin:22px 0}.catalog-list{display:grid;gap:28px}.route-visual{min-width:0;background:#11191d}.catalog-map{position:relative;height:365px}.map-canvas,.map-schematic{position:absolute;left:0;top:0;width:100%;height:300px}.map-canvas{z-index:1}.map-schematic{pointer-events:none;z-index:2;background:#11191d}.map-bottom{position:absolute;bottom:0;left:0;right:0;min-height:65px;padding:8px 18px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}.map-bottom button{font-size:11px}.map-bottom span{font-size:10px;color:var(--muted)}.catalog-photo{display:block;width:100%;max-height:260px;object-fit:cover}.route-info h2{font-size:42px}.route-info .description{white-space:pre-wrap}.download-options{display:grid;gap:12px;margin-top:22px}.download-options .button,.inverse-button{width:100%;font-size:13px;display:flex;justify-content:center;padding:13px}.download-options p{font-size:11px;color:var(--muted);margin:5px 0 0;overflow-wrap:anywhere}.download-options small{font-size:10px;color:var(--muted);line-height:1.5}.route-info .suggest-link{margin-top:18px}.empty-state{padding:35px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.empty-state p{color:var(--muted)}.text-page{padding:70px 56px;min-height:70vh}.text-page h1{font-size:clamp(55px,6.5vw,85px)}.about-story{max-width:710px;font-size:16px;color:var(--muted);margin-top:32px}.about-story p{margin:0 0 22px}.about-story .button{margin-top:16px}.contact-placeholder{padding:24px;background:var(--panel);border:1px solid var(--line)}.contact-placeholder strong{color:var(--text)}.contact-placeholder p{font-size:13px;margin:12px 0}.classification{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}.classification .wide-field{grid-column:1/-1}@media(max-width:850px){.catalog-intro{padding:42px 24px 28px}.catalog-section{padding:24px 24px 50px}.text-page{padding:45px 24px}.route-filters{grid-template-columns:1fr 1fr}.route-filters label:last-child{grid-column:1/-1}}@media(max-width:480px){.route-filters,.classification{grid-template-columns:1fr}.route-filters label:last-child{grid-column:auto}.route-info h2{font-size:35px}.collection-tabs button{flex:1 1 auto}.download-options .button,.inverse-button{font-size:12px}}
.inverse-upload{margin:20px 0;padding:18px;border:1px solid var(--line);background:#14191c}.inverse-upload label{margin-top:0}.inverse-upload a{color:var(--orange)}.inverse-pending{padding:10px 0;color:var(--muted);font-size:12px}
.install-nav{border:1px solid var(--orange);background:transparent;color:var(--orange);border-radius:4px;padding:7px 11px;font-size:12px;white-space:nowrap}.header nav{align-items:center;flex-wrap:wrap;gap:18px}.install-identity{display:flex;align-items:center;gap:16px;margin:20px 0}.install-identity img{width:72px;height:72px;border-radius:15px}.install-identity strong{font-size:20px}.install-identity p{margin:2px 0;color:var(--muted);font-size:13px}.install-steps h3{font-family:Inter,system-ui,sans-serif;font-size:15px;letter-spacing:0;margin-top:22px;line-height:1.4}.install-steps p{font-size:13px;color:var(--muted)}.pwa-status{padding:10px 24px;background:#30251d;color:#ffc49f;font-size:13px;text-align:center}.pwa-status button{border:1px solid var(--orange);background:transparent;color:var(--orange);padding:5px 10px;border-radius:4px;margin-left:10px}@media(display-mode:standalone){body{padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}.header{padding-left:max(24px,env(safe-area-inset-left));padding-right:max(24px,env(safe-area-inset-right))}}@media(max-width:850px){.header{height:auto;min-height:80px;padding-top:16px;padding-bottom:16px;gap:14px;flex-wrap:wrap}}
.home-install{display:flex;align-items:center;gap:18px;padding:20px;margin:26px 0 0;background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--orange)}.home-install img{width:68px;height:68px;border-radius:14px;flex-shrink:0}.home-install>div{flex:1;min-width:0}.home-install strong{font-size:17px}.home-install p{font-size:13px;color:var(--muted);margin:3px 0}.home-install small{font-size:11px;color:var(--muted)}.home-install .button{font-size:13px;white-space:nowrap;padding:13px 18px;justify-content:center}.home-install .secondary{white-space:nowrap}@media(max-width:600px){.home-install{display:grid;grid-template-columns:52px 1fr;gap:14px;padding:16px;margin-top:20px}.home-install img{width:52px;height:52px;border-radius:11px}.home-install strong{font-size:15px}.home-install .button,.home-install .secondary{grid-column:1/-1;width:100%;text-align:center}.catalog-intro{padding-top:28px}.catalog-intro h1{font-size:48px}.catalog-intro .intro{font-size:14px;margin:18px 0 10px}}
.route-filters{grid-template-columns:1fr 1fr 1fr 1.35fr}@media(max-width:850px){.route-filters{grid-template-columns:1fr 1fr}.route-filters label:last-child{grid-column:auto}}@media(max-width:480px){.route-filters{grid-template-columns:1fr}}
.route-title{display:flex;align-items:flex-start;gap:16px;justify-content:space-between}.route-title h2{flex:1;min-width:0}.popes-badge{display:flex;align-items:center;gap:7px;flex-shrink:0;color:var(--orange);font-size:11px;line-height:1.4}.popes-badge img{width:43px;height:43px;border-radius:8px}.badge-legend{display:flex;align-items:center;gap:9px;color:var(--muted);font-size:12px;margin:0 0 22px}.badge-legend img{width:50px;height:50px;flex-shrink:0;border-radius:6px}.editor-pr{width:30px;height:30px;border-radius:6px}.download-summary{padding:24px;background:var(--panel);border:1px solid var(--line);margin-bottom:26px}.download-summary>strong{display:block;font:700 48px Barlow Condensed,system-ui;color:var(--orange);margin-top:12px}.download-summary p:not(.eyebrow){font-size:12px;color:var(--muted)}.route-download-count{padding-top:12px;border-top:1px solid var(--line)}@media(max-width:480px){.route-title{flex-wrap:wrap}.popes-badge{font-size:12px}}
.collection-tabs .share-route-button{border:1px solid var(--orange);color:var(--orange);background:transparent}.share-intro{font-size:14px;color:var(--muted)}.share-dialog small{display:block;color:var(--muted);font-size:11px;margin-top:5px}.consent-label{align-items:flex-start;font-size:12px;line-height:1.6}.consent-label input{flex-shrink:0;margin-top:3px}.contribution-inbox{padding:24px;border:1px solid var(--line);background:var(--panel);margin-bottom:26px}.contribution-inbox .section-heading{flex-wrap:wrap}.contribution-inbox h2{font-size:30px}.received-route{border-top:1px solid var(--line);padding:20px 0}.received-route h3{font-size:25px}.received-route p{font-size:13px;color:var(--muted);overflow-wrap:anywhere}.submission-comment{white-space:pre-wrap}.received-route .save-actions a,.received-route .save-actions button{font-size:12px}.route-credit{font-size:12px;color:var(--muted);margin-top:-5px}
.gpx-file-status{padding:16px;margin:18px 0 10px;border:1px solid var(--line);border-left:3px solid var(--line);background:#14191c}.gpx-file-status.stored{border-left-color:#9cc693}.gpx-file-status.pending,.gpx-file-status.removing{border-left-color:var(--orange)}.gpx-state-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:13px}.gpx-state-heading span{font-size:11px;color:var(--muted)}.stored .gpx-state-heading span{color:#b0d7ab}.pending .gpx-state-heading span,.removing .gpx-state-heading span{color:var(--orange)}.gpx-file-status p{font-size:13px;color:var(--muted);margin:8px 0 0}.gpx-file-status .gpx-name{color:var(--text);overflow-wrap:anywhere}.gpx-file-status small{font-size:11px;color:var(--muted);display:block;margin-top:4px}.gpx-file-status a{display:inline-block;color:var(--orange);font-size:12px;margin-top:10px}

.place-address{padding:24px}.place-address h3{margin-top:0}.place-address p{overflow-wrap:anywhere}.short-rides{padding:20px 0}.short-rides p{max-width:760px;line-height:1.65}.metrics{flex-wrap:wrap;gap:24px}.route-visual .catalog-photo{max-width:100%;object-fit:cover}

.route-visual .catalog-photo.place-photo{height:320px;max-height:none;object-fit:contain;object-position:center;background:#11191d}

.catalog-list{gap:64px}.catalog-list>.route-card{position:relative}.catalog-list>.route-card+.route-card::before{content:"";position:absolute;top:-33px;left:0;right:0;height:6px;background:rgba(255,130,60,.45)}
.map-schematic{background:#eeeae2}.map-canvas{background:#eeeae2}

.legal-links a{color:var(--muted);font-size:12px}.legal-links a:hover{color:var(--orange)}.legal-page{max-width:900px}.legal-page h1{font-size:48px}.legal-page section{margin:30px 0}.legal-page h2{font-size:26px}.legal-page p{overflow-wrap:anywhere}.legal-page a,.admin-note a{text-decoration:underline}.route-visual{grid-column:1;grid-row:1 / span 2}.route-info{grid-column:2;grid-row:1;padding-bottom:0}.route-feedback{grid-column:2;grid-row:2;padding:0 34px 24px}.suggestion-contact .suggest-link{display:block}.spam-field{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}@media(max-width:850px){.route-info{grid-column:1;grid-row:1;padding-bottom:24px}.route-visual{grid-column:1;grid-row:2}.route-feedback{grid-column:1;grid-row:3;padding:0 24px 24px}}
