@import url('https://fonts.googleapis.com/css2?family=Barlow+Condensed:ital,wght@0,600;0,700;0,800;1,700;1,800&family=Inter:wght@400;500;600;700;800&display=swap');

:root { --ink:#111410; --muted:#666c64; --paper:#f1f0e9; --panel:#fbfaf5; --acid:#d9ff43; --line:#d4d3cb; --lift:#a8aaa4; font-family:Inter,ui-sans-serif,system-ui,sans-serif; color:var(--ink); background:var(--paper); }
* { box-sizing:border-box; }
[hidden] { display:none !important; }
body { margin:0; background:var(--paper); }
a { color:inherit; }
.shell { width:min(1240px,calc(100% - 80px)); margin:0 auto; padding:30px 0 90px; }
.topbar { display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid var(--line); padding-bottom:24px; }
.brand { font-family:"Barlow Condensed",sans-serif; font-size:1.7rem; font-weight:800; letter-spacing:-.02em; text-decoration:none; text-transform:uppercase; }
.brand-mark { color:#759000; margin-left:3px; }
.beta,.panel-kicker { font-size:.68rem; letter-spacing:.16em; font-weight:800; }
.beta { border:1px solid var(--ink); padding:7px 10px; }
.hero-grid { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(380px,.65fr); gap:76px; align-items:end; padding:90px 0 82px; }
.hero-copy { align-self:center; }
.eyebrow { font-size:.7rem; letter-spacing:.18em; font-weight:800; margin:0 0 20px; }
h1,h2 { font-family:"Barlow Condensed",sans-serif; text-transform:uppercase; }
h1 { font-size:clamp(4.6rem,7.3vw,7.4rem); line-height:.82; letter-spacing:-.045em; margin:0; font-weight:800; }
h1 em { color:#6d8500; font-style:italic; }
.lede { font-size:1.12rem; line-height:1.65; color:var(--muted); max-width:670px; margin:34px 0; }
.proof-row { display:flex; gap:30px; padding-top:24px; border-top:1px solid var(--line); font-size:.76rem; font-weight:700; text-transform:uppercase; letter-spacing:.04em; }
.proof-row b { color:#788b1a; margin-right:6px; }
.upload-panel { background:var(--ink); color:white; padding:34px; box-shadow:12px 12px 0 var(--acid); }
.upload-panel .panel-kicker { color:var(--acid); }
.upload-panel h2 { font-size:2.35rem; line-height:.95; margin:16px 0 12px; }
.upload-panel>p { color:#b8bcb6; line-height:1.55; font-size:.9rem; }
.upload-error { border:1px solid var(--acid); background:rgba(217,255,67,.08); padding:15px 16px; margin-top:20px; display:grid; gap:6px; }
.upload-error strong { color:var(--acid); font-size:.82rem; text-transform:uppercase; letter-spacing:.05em; }
.upload-error span { color:#d5d8d1; font-size:.82rem; line-height:1.5; }
form { display:grid; gap:14px; margin-top:25px; }
.drop { border:1px dashed #70746e; padding:26px; min-height:155px; display:flex; flex-direction:column; justify-content:center; align-items:center; cursor:pointer; text-align:center; position:relative; }
.drop:hover { border-color:var(--acid); }
.drop-icon { color:var(--acid); font-size:2rem; line-height:1; }
.drop-title { font-weight:800; margin-top:12px; }
.drop-sub { color:#8f948c; font-size:.76rem; margin-top:5px; }
.file-input { position:absolute; width:1px; height:1px; opacity:0; overflow:hidden; clip:rect(0 0 0 0); clip-path:inset(50%); white-space:nowrap; }
.file-picker { margin-top:15px; display:flex; align-items:center; justify-content:center; gap:8px; max-width:100%; min-width:0; }
.file-picker-button { background:#f3f5ef; color:var(--ink); border-radius:6px; padding:4px 10px; font-size:.78rem; line-height:1.2; white-space:nowrap; }
.selected-filename { color:#f3f5ef; font-size:.78rem; line-height:1.2; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; max-width:210px; }
button,.button { background:var(--acid); color:var(--ink); border:0; padding:16px 19px; font:inherit; font-weight:800; text-transform:uppercase; letter-spacing:.04em; cursor:pointer; text-decoration:none; display:flex; justify-content:space-between; align-items:center; }
.fine { font-size:.72rem!important; margin:16px 0 0!important; }
.why { border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:58px 0; display:grid; grid-template-columns:1fr 1fr; gap:100px; align-items:end; }
.why h2,.route-panel h2,.download-panel h2 { font-size:3.3rem; line-height:.9; margin:0; }
.why>p { color:var(--muted); line-height:1.75; max-width:570px; margin:0; }
.result-hero { display:grid; grid-template-columns:1fr 1fr; gap:80px; align-items:end; padding:75px 0 55px; }
.result-hero h1 { font-size:6.3rem; }
.file-meta { border-left:1px solid var(--line); padding:20px 0 20px 28px; display:grid; gap:7px; }
.file-meta span,.comparison-head { font-size:.68rem; font-weight:800; letter-spacing:.15em; }
.file-meta strong { font-size:1.05rem; }
.file-meta small { color:var(--muted); }
.comparison { border:1px solid var(--ink); background:var(--panel); }
.comparison-head { display:flex; justify-content:space-between; padding:14px 20px; border-bottom:1px solid var(--ink); }
.metric { display:grid; align-items:center; padding:26px 28px; }
.primary-metric { grid-template-columns:1fr 1.2fr 80px 1.2fr; }
.elevation-metric { border-top:1px solid var(--line); }
.metric-label { font-family:"Barlow Condensed",sans-serif; font-weight:700; font-size:1.5rem; text-transform:uppercase; }
.metric-before strong,.metric-after strong,.removed-value strong,.lift-count strong { font-family:"Barlow Condensed",sans-serif; font-size:4.3rem; line-height:.8; letter-spacing:-.035em; display:block; }
.metric-before span,.metric-after span,.removed-value span,.lift-count span { display:block; margin-top:10px; color:var(--muted); font-size:.75rem; text-transform:uppercase; letter-spacing:.08em; }
.metric-after strong { color:#708600; }
.metric-arrow { font-size:2rem; color:var(--muted); }
.removed-metric { grid-template-columns:1fr 1.2fr 1.28fr; border-top:1px solid var(--line); }
.removed-value strong { font-size:2.7rem; }
.lift-count strong { font-size:2.7rem; }
.route-panel { margin-top:26px; border:1px solid var(--ink); background:var(--panel); }
.route-copy { display:flex; justify-content:space-between; align-items:end; gap:60px; padding:32px 34px; border-bottom:1px solid var(--ink); }
.route-copy>div:first-child { max-width:650px; }
.map-legend { display:flex; gap:18px; flex-wrap:wrap; font-size:.76rem; font-weight:700; text-transform:uppercase; letter-spacing:.04em; }
.line { display:inline-block; width:28px; height:4px; margin-right:8px; vertical-align:middle; }
.line.kept { background:#718800; }
.line.removed { border-top:3px dashed #70736d; height:3px; }
.route-canvas { position:relative; background:#171b16; overflow:hidden; }
.map-canvas { min-height:500px; }
#route-map { width:100%; height:500px; background:#dfe5d8; }
.route-note { position:absolute; z-index:4; left:20px; bottom:18px; background:rgba(17,20,16,.9); color:#eef1e9; border:1px solid #555c52; padding:9px 11px; font-size:.68rem; text-transform:uppercase; letter-spacing:.07em; pointer-events:none; }
.route-unavailable { padding:55px 34px; color:var(--muted); }
.maplibregl-ctrl-group { border-radius:0!important; box-shadow:none!important; border:1px solid rgba(17,20,16,.35); }
.maplibregl-ctrl-group button { background-color:rgba(251,250,245,.94)!important; border-radius:0!important; }
.maplibregl-ctrl-attrib { font-size:10px!important; background:rgba(251,250,245,.88)!important; }
.download-panel { margin-top:26px; background:var(--ink); color:white; padding:38px 42px; display:grid; grid-template-columns:1fr 380px; gap:80px; align-items:center; }
.download-panel .eyebrow { color:var(--acid); }
.download-panel p:not(.eyebrow) { color:#b9bdb7; line-height:1.6; max-width:650px; }
.again { display:inline-block; margin-top:25px; font-size:.82rem; font-weight:700; text-decoration:none; }
@media(max-width:900px){.shell{width:min(100% - 36px,1240px)}.hero-grid,.result-hero,.why,.download-panel{grid-template-columns:1fr}.hero-grid{gap:45px}.hero-copy{align-self:auto}.proof-row{flex-wrap:wrap}.primary-metric{grid-template-columns:1fr 1fr}.metric-label{grid-column:1/-1;margin-bottom:20px}.metric-arrow{display:none}.removed-metric{grid-template-columns:1fr 1fr}.route-copy{flex-direction:column;align-items:flex-start}.download-panel{gap:30px}.result-hero h1{font-size:5rem}}

.donation-panel { margin-top:26px; border:1px solid var(--ink); background:var(--panel); padding:38px 42px; }
.donation-intro { display:flex; justify-content:space-between; align-items:start; gap:30px; }
.donation-panel h2 { font-size:3.3rem; line-height:.9; margin:0; }
.optional-badge { border:1px solid var(--ink); padding:7px 10px; font-size:.68rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase; }
.donation-lede { max-width:760px; color:var(--muted); line-height:1.65; }
.data-disclosure { border-top:1px solid var(--line); border-bottom:1px solid var(--line); margin:28px 0; padding:18px 0; }
.data-disclosure summary { cursor:pointer; font-weight:800; text-transform:uppercase; letter-spacing:.04em; }
.disclosure-grid { display:grid; grid-template-columns:1fr 1fr; gap:6px 32px; padding-top:12px; }
.disclosure-grid p { color:var(--muted); font-size:.84rem; line-height:1.55; }
.disclosure-grid strong { color:var(--ink); }
.donation-form { margin-top:0; }
.donation-form fieldset { border:0; padding:0; margin:0; }
.donation-form legend { font-family:"Barlow Condensed",sans-serif; font-size:1.6rem; font-weight:700; text-transform:uppercase; margin-bottom:15px; }
.field-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.field-grid label,.notes-label { display:grid; gap:7px; font-size:.78rem; font-weight:700; text-transform:uppercase; letter-spacing:.04em; }
.field-grid label span,.notes-label span { color:var(--muted); font-weight:500; text-transform:none; }
.donation-form input[type="text"],.donation-form input:not([type]),.donation-form select,.donation-form textarea { width:100%; border:1px solid var(--line); background:white; color:var(--ink); padding:12px; font:inherit; }
.donation-form input:focus,.donation-form select:focus,.donation-form textarea:focus,.donation-form button:focus,.data-disclosure summary:focus { outline:3px solid #759000; outline-offset:2px; }
.finding-options { display:grid; gap:10px; margin:20px 0; }
.finding-options label,.check-row { display:flex; align-items:flex-start; gap:10px; font-size:.86rem; line-height:1.45; }
.finding-options input,.check-row input { width:18px; height:18px; flex:0 0 auto; margin-top:1px; accent-color:#708600; }
.consent-fieldset { border-top:1px solid var(--line)!important; margin-top:24px!important; padding-top:24px!important; display:grid; gap:13px; }
.donation-actions { display:flex; gap:12px; align-items:stretch; margin-top:12px; }
.button-secondary { background:transparent; border:1px solid var(--ink); justify-content:center; }
button:disabled { cursor:not-allowed; opacity:.55; }
.form-note { color:var(--muted); font-size:.75rem; line-height:1.5; margin:0; }
.donation-status { min-height:1.5em; font-size:.82rem; font-weight:700; }
.donation-status.is-error { color:#9b2c20; }
.donation-success { border-top:1px solid var(--line); margin-top:26px; padding-top:26px; }
.donation-success h3 { font-family:"Barlow Condensed",sans-serif; font-size:2rem; text-transform:uppercase; margin:0 0 10px; }
.donation-success dl { display:grid; gap:10px; }
.donation-success dl div { display:grid; grid-template-columns:180px 1fr; gap:18px; border-top:1px solid var(--line); padding-top:10px; }
.donation-success dt { font-size:.75rem; font-weight:800; text-transform:uppercase; }
.donation-success dd { margin:0; overflow-wrap:anywhere; }
@media(max-width:900px){.donation-panel{padding:30px 24px}.disclosure-grid,.field-grid{grid-template-columns:1fr}.donation-actions{flex-direction:column}.donation-success dl div{grid-template-columns:1fr;gap:5px}}

.withdrawal-page { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(360px,.85fr); gap:72px; align-items:center; padding:75px 0 55px; }
.withdrawal-page h1 { font-size:clamp(4.2rem,7vw,6.5rem); }
.withdrawal-card { background:var(--panel); border:1px solid var(--ink); padding:34px; }
.withdrawal-card .donation-form { gap:18px; }
.withdrawal-card .notes-label { margin-bottom:16px; }
.withdrawal-result h2 { font-size:2.8rem; line-height:.95; margin:0 0 16px; }
.withdrawal-result p { color:var(--muted); line-height:1.65; }
.withdrawal-result.is-success { border-left:6px solid #708600; padding-left:22px; }
@media(max-width:900px){.withdrawal-page{grid-template-columns:1fr;gap:30px}.withdrawal-card{padding:26px}}


/* Owner beta review */
.review-body{background:#f5f2ea;color:var(--ink)}
.review-shell{width:min(1180px,calc(100% - 40px));margin:0 auto;padding:48px 0 80px}
.review-header{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;border-bottom:2px solid var(--ink);padding-bottom:24px;margin-bottom:36px}
.review-header h1{font-size:clamp(3rem,7vw,6rem);line-height:.85;margin:0}
.button-link{display:inline-block;background:var(--ink);color:#fff;padding:14px 18px;text-decoration:none;font-weight:700}
.review-boundaries{background:var(--panel);border:1px solid var(--ink);padding:26px;margin-bottom:36px}
.review-grid,.metric-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.review-grid article,.metric-grid article{border:1px solid #bbb5a8;padding:18px;background:#fff}
.review-grid p{color:var(--muted);line-height:1.5;margin-bottom:0}
.review-warning{font-weight:700;margin:22px 0 0}
.metric-grid{grid-template-columns:repeat(6,minmax(0,1fr));margin-bottom:42px}
.metric-grid span,.metric-grid small{display:block;color:var(--muted)}
.metric-grid strong{display:block;font-size:2rem;margin:8px 0}
.review-list{display:grid;gap:22px}
.review-card{background:var(--panel);border:1px solid var(--ink);padding:26px}
.review-card-heading{display:flex;justify-content:space-between;gap:20px;align-items:start}
.review-card h3{font-size:2rem;margin:0}
.review-details{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:24px 0}
.review-details div{border-top:1px solid #c8c2b5;padding-top:10px}
.review-details dt{color:var(--muted);font-size:.82rem;text-transform:uppercase;letter-spacing:.05em}
.review-details dd{margin:5px 0 0;overflow-wrap:anywhere}
.tester-notes{padding:16px;background:#fff;border-left:4px solid var(--ink)}
.review-form{display:grid;grid-template-columns:180px 1fr auto;align-items:end;gap:14px;margin-top:22px}
.review-form label{display:grid;gap:7px;font-weight:700}
.review-form select,.review-form textarea{font:inherit;border:1px solid var(--ink);background:#fff;padding:10px}
.review-form button{font:inherit;font-weight:700;border:0;background:var(--ink);color:#fff;padding:13px 18px;cursor:pointer}
@media(max-width:900px){.review-header{align-items:start;flex-direction:column}.review-grid,.metric-grid,.review-details{grid-template-columns:1fr 1fr}.review-form{grid-template-columns:1fr}.review-card-heading{flex-direction:column}}
@media(max-width:560px){.review-grid,.metric-grid,.review-details{grid-template-columns:1fr}.review-shell{width:min(100% - 24px,1180px)}}


/* Public instructions and Strava replacement safety */
.site-nav{display:flex;align-items:center;gap:18px;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em}
.site-nav a{text-decoration:none;border-bottom:1px solid transparent}
.site-nav a:hover,.site-nav a[aria-current="page"]{border-color:currentColor}
.upload-panel>p a{color:#fff;font-weight:700}
.instructions-shell{max-width:1060px}
.instructions-hero{padding:80px 0 54px;max-width:850px}
.instructions-hero h1{font-size:clamp(4.2rem,8vw,7rem)}
.safety-callout{background:var(--ink);color:#fff;border-left:10px solid var(--acid);padding:34px 38px;margin-bottom:28px}
.safety-callout .eyebrow{color:var(--acid)}
.safety-callout h2,.choice-panel h2,.strava-safety h2{font-size:2.8rem;line-height:.95;margin:0 0 16px}
.safety-callout p:not(.eyebrow){color:#c9cdc6;line-height:1.65;max-width:820px}
.instruction-steps{border:1px solid var(--ink);background:var(--panel)}
.instruction-steps article{display:grid;grid-template-columns:90px 1fr;gap:24px;padding:28px 32px;border-bottom:1px solid var(--line)}
.instruction-steps article:last-child{border-bottom:0}
.instruction-steps article>span{font-family:"Barlow Condensed",sans-serif;font-size:2.5rem;font-weight:800;color:#718800}
.instruction-steps h2{font-size:2rem;margin:0 0 8px}
.instruction-steps p{color:var(--muted);line-height:1.65;margin:0;max-width:760px}
.instruction-steps .danger-step{border-left:8px solid #9b2c20;background:#fff8f5}
.choice-panel{margin-top:28px;border:1px solid var(--ink);padding:34px;display:grid;grid-template-columns:1fr 280px;gap:50px;align-items:center}
.choice-panel p:not(.eyebrow){color:var(--muted);line-height:1.65}
.source-note{font-size:.75rem;color:var(--muted);line-height:1.6;margin-top:24px}
.strava-safety{margin-top:26px;border:2px solid #9b2c20;background:#fff8f5;padding:30px 34px;display:grid;grid-template-columns:54px 1fr;gap:22px}
.safety-number{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;background:#9b2c20;color:#fff;font-size:1.8rem;font-weight:800}
.strava-safety .eyebrow{color:#8a251c;margin-bottom:12px}
.strava-safety p{color:#574d48;line-height:1.6;max-width:900px}
.strava-safety a{font-weight:800}
@media(max-width:700px){.site-nav{gap:10px;flex-wrap:wrap;justify-content:flex-end}.site-nav .beta{display:none}.instruction-steps article{grid-template-columns:1fr;gap:4px}.choice-panel{grid-template-columns:1fr}.strava-safety{grid-template-columns:1fr}.safety-callout{padding:28px 24px}}
