:root{color-scheme:dark;--bg:#101720;--panel:#192431;--raised:#203140;--text:#f6f8fb;--muted:#b5c1ce;--accent:#90c9e8;--line:#344758;font:16px/1.5 system-ui,-apple-system,BlinkMacSystemFont,sans-serif}
*{box-sizing:border-box}
html{scroll-padding-top:1rem}
body{margin:0;background:var(--bg);color:var(--text)}
a{color:var(--accent);text-underline-offset:4px}
button,select{font:inherit;color:var(--text);background:var(--panel);border:1px solid #61768a;border-radius:.65rem;min-height:44px;padding:.6rem .85rem}
button,summary{cursor:pointer}
@media (hover: hover) and (pointer: fine) {
button:hover,select:hover{border-color:var(--accent)}
}
button:disabled{opacity:.5;cursor:default}
:focus-visible{outline:3px solid var(--accent);outline-offset:4px}
.hero .journey-invitation{display:block;width:100%;margin:1.25rem 0 1rem;padding:1rem 1.1rem;text-align:left;line-height:1.5;background:#90c9e810;border:1px solid #90c9e840;border-left:3px solid var(--accent);border-radius:.8rem;color:var(--accent)}
.journey-invitation strong{display:block;color:var(--text);font-size:.95rem;font-weight:750}
.journey-invitation span{display:block;margin-top:.3rem;font-size:.85rem;text-decoration:underline;text-underline-offset:4px}
@media (hover: hover) and (pointer: fine) {
.hero .journey-invitation:hover{background:#90c9e81a;border-color:var(--accent)}
}
.journey-dialog{position:fixed;width:min(420px,calc(100% - 2rem));max-height:calc(100dvh - 2rem);overflow:auto;margin:auto;padding:2.2rem 1.5rem 1.5rem;background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:1.5rem;box-shadow:0 1rem 3rem #0007}
.journey-dialog::backdrop{background:#000b;backdrop-filter:blur(3px)}
.journey-dialog h2{font-size:1.7rem;margin:0 0 1.2rem;padding-right:1.5rem}
.journey-dialog h2:focus{outline:none}
.journey-dialog p{font-size:.95rem;line-height:1.65;color:var(--muted);margin:0 0 1rem}
.journey-dialog strong{color:var(--text);font-weight:750}
.journey-dialog .journey-close{position:absolute;right:.5rem;top:.4rem;width:44px;height:44px;min-width:44px;background:transparent;border:0;border-radius:50%;box-shadow:none;padding:.3rem;font-size:1.6rem;color:var(--muted);appearance:none}
.journey-dialog .journey-close:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.journey-dialog .app-cta{width:100%;margin-top:.5rem}
html:has(.journey-dialog[open]){overflow:hidden}
[hidden]{display:none!important}
h1,h2,h3,p,a,summary{overflow-wrap:anywhere}
h1,h2,h3{line-height:1.2;letter-spacing:-.025em}
h1{font-size:clamp(1.7rem,4vw,2.3rem);margin:0}
h2{font-size:1.35rem}
h3{font-size:1.05rem}
p{margin:.6rem 0}
main,.site-header,footer,.join-inner{max-width:800px;margin:auto;padding-left:1.25rem;padding-right:1.25rem}
.site-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-top:1rem;padding-bottom:1rem;border-bottom:1px solid var(--line)}
.brand{font-size:1.4rem;line-height:1.15;font-weight:780;letter-spacing:-.045em;text-decoration:none;flex-shrink:0}
.brand span{display:block;margin-top:.25rem;font-size:.72rem;font-weight:550;letter-spacing:.02em;color:var(--muted)}
.help-link{font-size:.85rem;min-height:44px;display:flex;align-items:center}
.hero{padding:1.5rem 0 1.25rem}
.hero p{color:var(--muted);font-size:.95rem;max-width:34rem;margin-bottom:0}
.board{padding:0 0 2rem}
.section-heading{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem;flex-wrap:wrap;margin-bottom:.7rem}
.section-heading h2{margin:0}
.meta,.board-note{font-size:.82rem;color:var(--muted)}
.board-note{margin:1rem 0 0;max-width:36rem}
.section-heading .meta{font-size:.8rem}
.filter-disclosure{border:1px solid var(--line);border-radius:.8rem;background:var(--panel);margin:.75rem 0 1rem}
.filter-disclosure>summary{display:flex;align-items:center;gap:.65rem;padding:.75rem .9rem;min-height:48px;list-style:none;font-size:.85rem}
.filter-icon{font-size:1.25rem;color:var(--accent);line-height:1}
.chevron{margin-left:auto;color:var(--accent);font-size:1.1rem;line-height:1;transition:transform .15s}
details[open]>summary>.chevron{transform:rotate(180deg)}
summary::-webkit-details-marker{display:none}
.filters{display:grid;grid-template-columns:1fr 1fr;gap:.8rem;padding:0 .9rem 1rem}
.filter:first-child{grid-column:1/-1}
label{display:block;font-size:.75rem;font-weight:650;color:var(--muted);margin-bottom:.3rem}
select{width:100%;min-width:0}
.filter{min-width:0}
.quiet-button{align-self:end;border-color:var(--line);font-size:.85rem}
#status{font-size:.85rem;color:var(--muted);margin:.6rem 0}
#status:empty{display:none}
.score-card{background:var(--panel);border:1px solid var(--line);border-radius:1rem;overflow:hidden;margin:0 0 1rem;padding:1rem 1.1rem;scroll-margin-top:1rem}
.card-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem}
.card-heading h3{font-size:1.1rem;margin:0}
.card-heading h3 a{color:var(--text);text-decoration:none;display:inline-block;min-height:32px;padding:.2rem 0}
@media (hover: hover) and (pointer: fine) {
.card-heading h3 a:hover{text-decoration:underline}
}
.rank{color:var(--accent);font-weight:650;font-variant-numeric:tabular-nums;font-size:.95rem;white-space:nowrap}
.rank small{font-size:.7rem;margin-right:.4rem;color:var(--muted)}
.score{font-size:1rem;line-height:1.35;margin:.25rem 0 .45rem;font-weight:550}
.score strong{font-size:1.9rem;letter-spacing:-.045em;font-variant-numeric:tabular-nums;margin-right:.15rem}
.score-card>.meta{margin:.3rem 0 .85rem}
.score-card>.meta a{color:var(--muted);text-decoration:none}
@media (hover: hover) and (pointer: fine) {
.score-card>.meta a:hover{color:var(--accent);text-decoration:underline}
}
.video-tile{display:flex;position:relative;align-items:center;gap:.8rem;min-height:78px;padding:1rem;background:linear-gradient(115deg,#223c50,#162532);border:1px solid #38566b;border-radius:.65rem;text-decoration:none;overflow:hidden;color:var(--text)}
@media (hover: hover) and (pointer: fine) {
.video-tile:hover{border-color:var(--accent)}
}
.video-tile.has-thumbnail{aspect-ratio:16/7;min-height:0;align-items:end}
.video-tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.video-tile.has-thumbnail:after{content:'';position:absolute;inset:0;background:linear-gradient(transparent 25%,#07111cdd)}
.play-icon{display:grid;place-items:center;width:40px;height:40px;flex-shrink:0;background:#90c9e825;border:1px solid #90c9e877;border-radius:50%;font-size:.85rem;padding-left:2px;position:relative;z-index:1}
.has-thumbnail .play-icon{background:#101720bb;color:white;border-color:#ffffff88}
.video-label{position:relative;z-index:1;font-size:.85rem;font-weight:600}
.result-details{margin-top:.75rem;border-top:1px solid var(--line)}
.result-details>summary{list-style:none;display:flex;align-items:center;gap:.5rem;min-height:48px;font-size:.87rem;color:var(--accent);font-weight:600}
.result-content{padding-bottom:.5rem}
.metric-chart{margin:1.1rem 0 1.5rem}
.metric-chart h3{margin:0 0 .25rem}
.chart-summary{color:var(--muted);font-size:.82rem;margin:.25rem 0 .6rem}
.metric-chart svg,.progress-card>svg{display:block;width:100%;height:auto;background:#101b26;border:1px solid #2a3f51;border-radius:.6rem}
.grid-line{stroke:#344758;stroke-width:1}
.metric-chart svg text,.progress-card svg text{font:20px system-ui,sans-serif;fill:var(--muted)}
polyline{fill:none;stroke:var(--accent);stroke-width:2;vector-effect:non-scaling-stroke;stroke-linejoin:round}
.chart-dot{fill:var(--accent)}
.card-actions{display:flex;align-items:center;justify-content:space-between;gap:.5rem;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:.55rem}
.profile-link{font-size:.85rem;display:inline-flex;align-items:center;min-height:44px;text-decoration:none}
@media (hover: hover) and (pointer: fine) {
.profile-link:hover{text-decoration:underline}
}
.share-button{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;font-size:.85rem;border-color:var(--line);background:transparent}
.card-actions>.share-button{margin-left:auto}
.icon{display:inline-block;width:19px;height:19px;flex-shrink:0;background:none;border-radius:0;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.share-fallback{font-size:.8rem;flex-basis:100%;overflow-wrap:anywhere}
.back-link{display:inline-flex;align-items:center;min-height:44px;font-size:.85rem;text-decoration:none;margin:.6rem 0}
.profile-heading{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap}
.profile-heading h1{flex:1;min-width:0}
.profile-heading+.meta{margin:.3rem 0 1rem}
.tabs{display:flex;gap:1.5rem;border-bottom:1px solid var(--line);margin:1rem 0}
.tabs a{display:flex;align-items:center;min-height:44px;padding:.25rem .25rem .6rem;color:var(--muted);text-decoration:none;font-weight:650;font-size:.9rem;border-bottom:2px solid transparent}
.tabs a[aria-current]{color:var(--accent);border-color:var(--accent)}
.progress-card{background:var(--panel);border:1px solid var(--line);border-radius:1rem;padding:1.1rem;margin:0 0 1rem}
.progress-card h3{margin:0 0 .9rem}
.progress-best{font-size:1.6rem;font-weight:700;letter-spacing:-.025em;margin:0}
.progress-best+.meta{margin:.1rem 0 1rem}
.progress-card>svg{margin-top:1rem}
.first-score{background:#90c9e810;border-left:3px solid var(--accent);padding:.75rem 1rem;margin-top:1rem;font-size:.9rem}
.empty-state{border:1px dashed #526a7e;border-radius:.8rem;padding:1.25rem;margin:1rem 0;background:var(--panel)}
.empty-state h3{margin-top:0}
.empty-state button{margin-top:.5rem}
#more{display:block;margin:1rem auto}
.join-section{background:#1c2d3b;border-top:1px solid #527088;margin-top:1rem;padding:2rem 0}
.join-inner{max-width:800px}
.eyebrow{letter-spacing:.13em;color:var(--accent);font-size:.7rem;font-weight:750;margin:0 0 .75rem}
.join-section h2{margin:.5rem 0 .75rem;font-size:1.5rem}
.join-inner>p:not(.eyebrow){color:var(--muted);font-size:.9rem;max-width:35rem}
.how-to-enter{margin-top:1.25rem;border-top:1px solid #3b5265}
.how-to-enter>summary{min-height:48px;padding:.75rem 0;display:flex;justify-content:space-between;font-weight:650;font-size:.9rem;list-style:none;color:var(--accent)}
.steps{display:grid;grid-template-columns:repeat(3,1fr);list-style:none;padding:0;gap:1.5rem;margin:1rem 0}
.steps h3{margin:.4rem 0}
.steps p{color:var(--muted);font-size:.85rem;margin:.3rem 0}
.step-number{font-size:.75rem;font-weight:750;color:var(--accent)}
footer{font-size:.8rem;padding-top:1.25rem;padding-bottom:2rem}
.scoring-note{color:var(--muted);font-size:.8rem}
.scoring-note summary{min-height:44px;display:flex;align-items:center}
.scoring-note summary:after{content:'+';margin-left:.5rem;color:var(--accent)}
.scoring-note[open] summary:after{content:'−'}
.footer-links{border-top:1px solid var(--line);margin-top:.75rem;padding-top:.8rem;display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}
.footer-links nav{display:flex;gap:1rem;flex-wrap:wrap}
.footer-links a{display:inline-flex;align-items:center;min-height:44px}
.skip-link{position:absolute;left:1rem;top:-10rem;background:var(--accent);color:var(--bg);padding:.75rem;z-index:5}
.skip-link:focus{top:1rem}
/* The help/privacy/removal pages share this stylesheet. */
body>main>h1{margin-top:1.5rem}
body>main>section:not(.board){margin:2rem 0}
body>main>form{margin:1.5rem 0}
input,textarea{font:inherit;max-width:100%;background:var(--panel);color:var(--text);border:1px solid var(--line);padding:.6rem;border-radius:.4rem}
body>header:not(.site-header){max-width:800px;margin:auto;padding:1.25rem}
body>footer>a{display:inline-block;margin:1rem 1rem 0 0}
body>main>p{max-width:42rem}
@media(min-width:650px){.filters{grid-template-columns:1fr 1fr 1fr auto}
.filter:first-child{grid-column:auto}
.video-tile.has-thumbnail{aspect-ratio:16/6}
.score-card{padding:1.25rem 1.5rem}
.hero{padding:2rem 0 1.5rem}
.site-header{padding-top:1.25rem;padding-bottom:1.25rem}
}
@media(max-width:420px){main,.site-header,footer,.join-inner{padding-left:1rem;padding-right:1rem}
.score-card{padding:.9rem}
.section-heading .meta{font-size:.75rem}
.profile-heading>.share-button{font-size:.8rem}
.steps{grid-template-columns:1fr;gap:1rem}
.filters{grid-template-columns:1fr}
.filter:first-child{grid-column:auto}
.score strong{font-size:1.7rem}
}
@media(prefers-reduced-motion:reduce){*{transition:none!important}
}
.preview-notice{background:#2d493c;color:#d2f4df;text-align:center;margin:0;padding:.4rem;font-size:.75rem}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}

.review-notice {padding:1rem; margin:1rem 0; border:1px solid #b57a30; border-radius:12px; background:#2d271c; color:#f5dfba;}
.review-notice h4 {margin:0 0 .6rem; font-size:1rem;}
.review-notice p {line-height:1.6;}
.admin-controls {display:flex; flex-wrap:wrap; gap:1rem; align-items:end; margin:1.5rem 0;}
.admin-controls label {display:grid; gap:.4rem;}
.admin-controls input, .admin-controls select {max-width:100%; padding:.7rem; font:inherit;}
.admin-card {padding:1rem; border:1px solid #ccc; border-radius:12px; margin:1rem 0; overflow-wrap:anywhere;}
.admin-card h2 {font-size:1.25rem;}

.review-notice a {color:#a9dcfa;}
.admin-controls input {width:100%; min-width:0; color:var(--text); background:var(--panel); border:1px solid #61768a; border-radius:.65rem;}
.admin-controls label {max-width:100%; min-width:0;}
/* Competition page: charcoal panels, blue accents and flat standings. */
/* Shared competition colours and common components live in speed-theme.css. */
html{scroll-behavior:smooth;scroll-padding-bottom:8rem}
.speed-page main,.speed-page .site-header,.speed-page footer{max-width:860px}
.site-header{border:0;padding-top:1rem;padding-bottom:1rem}
.brand{font-weight:700;letter-spacing:-.025em}
.brand span{font-weight:450}
main>.hero{margin:0 0 1.25rem;padding:1.35rem;background:var(--panel);border-radius:1.25rem}
.hero h1{font-size:clamp(1.7rem,4.6vw,3rem);line-height:1.14;letter-spacing:-.03em;max-width:none}
.hero .hero-copy{font-size:1rem;line-height:1.55;margin:1rem 0;max-width:none;color:#ced0d6}
.hero-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem;margin:1rem 0}
.hero-stats>div{background:#233443;border-radius:.85rem;padding:.8rem .3rem;text-align:center}
.hero-stats strong{display:block;font-size:clamp(1.65rem,5.5vw,2.6rem);font-weight:550;line-height:1.2;font-variant-numeric:tabular-nums}
.hero-stats span{display:block;color:#bdcbd6;font-size:.7rem;line-height:1.3;margin-top:.4rem}
.app-cta{display:inline-flex;align-items:center;justify-content:center;gap:1rem;padding:.8rem 1rem;min-height:48px;border:1px solid var(--accent);background:var(--accent);border-radius:.85rem;color:#101720;text-decoration:none;font-size:.95rem;font-weight:650}
@media (hover: hover) and (pointer: fine) {
.app-cta:hover{background:#b3def5}
}
.hero>.app-cta{display:flex;width:100%}
.hero .purchase-note{font-size:.75rem;line-height:1.5;text-align:center;margin:.8rem 0 .2rem;color:var(--muted)}
.hero #record-note{font-size:.68rem;text-align:center;margin:.4rem 0 0}
main>.featured{margin:0 0 1.25rem;padding:1.1rem;background:var(--panel);border-radius:1.25rem;border:0}
.featured-heading{display:flex;justify-content:space-between;align-items:center;gap:.5rem;margin:0 0 .8rem}
.featured-heading .eyebrow{font-size:.68rem;font-weight:550;letter-spacing:.025em;margin:0}
.challenge-pill{background:#3c3e40;border-radius:2rem;padding:.25rem .6rem;color:#dedee0;font-size:.68rem;white-space:nowrap}
.video-tile.has-thumbnail{aspect-ratio:16/9}
.featured .video-tile{border:0;border-radius:.8rem;background:#17191c}
.featured .video-label{display:none}
.featured .play-icon{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:44px;height:44px;background:#08090baa;border:1px solid #ffffff99}
.video-player{position:absolute;bottom:.6rem;left:.6rem;z-index:1;background:#303235e6;border-radius:2rem;padding:.35rem .7rem;font-size:.8rem;font-weight:650;max-width:calc(100% - 1.2rem)}
.featured h2{font-size:clamp(1.65rem,4vw,2.5rem);line-height:1.2;letter-spacing:-.02em;margin:.9rem 0 .8rem}
.featured>p{color:#ced0d6;font-size:1rem;line-height:1.5;margin:.5rem 0 1rem}
.featured-actions{display:flex;flex-direction:column;gap:.25rem}
.featured-watch{display:flex;align-items:center;justify-content:space-between;gap:1rem;font-size:1.1rem;font-weight:600;text-decoration:none;min-height:44px}
.watch-play{display:grid;place-items:center;background:var(--accent);color:#182129;border-radius:50%;width:24px;height:24px;font-size:.65rem;flex-shrink:0;padding-left:2px}
.featured-result{font-size:.75rem;color:var(--muted);align-self:start;min-height:44px;display:flex;align-items:center}
main>.board{border:1px solid var(--line);border-radius:1.25rem;padding:1.1rem;margin:0 0 1.25rem}
.section-heading{align-items:center;margin-bottom:1rem;gap:.5rem}
.section-heading h2{font-size:clamp(1.4rem,3.5vw,2rem)}
.section-heading .meta{font-size:.75rem}
.segmented{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.3rem;margin:.75rem 0 1rem}
.segmented button{border:1px solid transparent;min-height:44px;font-size:.9rem;padding:.45rem .3rem;background:transparent;color:var(--muted);border-radius:2rem}
.segmented button[aria-pressed=true]{background:#292b2d;color:var(--text)}
@media (hover: hover) and (pointer: fine) {
.segmented button:hover{border-color:#555b60}
}
.filter-disclosure{background:transparent;border-color:var(--line);border-radius:.65rem;margin:.5rem 0}
.filter-disclosure>summary{font-size:.75rem;padding:.55rem .65rem;min-height:44px}
.filters{grid-template-columns:1fr 1fr}
.filter:first-child{grid-column:auto}
.entry-details{margin:0;border:0;border-bottom:1px solid var(--line);background:transparent;scroll-margin-top:1rem}
.entry-details:last-child{border-bottom:0}
.compact-row{display:flex;align-items:center;gap:.75rem;padding:.9rem 0;min-height:90px;list-style:none}
@media (hover: hover) and (pointer: fine) {
.compact-row:hover{background:#ffffff05}
}
.compact-rank{display:grid;place-items:center;flex-shrink:0;width:40px;min-height:40px;border-radius:.65rem;background:var(--panel);color:var(--muted);font-size:.95rem;font-weight:650;font-variant-numeric:tabular-nums}
.place-1{color:#dfba64}.place-2{color:#c4cedb}.place-3{color:#c49983}
.row-identity{flex:1;min-width:0}
.row-identity strong{display:block;overflow-wrap:anywhere;font-size:.98rem;font-weight:550;line-height:1.3}
.row-identity small,.row-count small{display:block;font-size:.7rem;color:var(--muted);margin-top:.4rem;font-weight:400;line-height:1.3}
.row-count{text-align:right;flex-shrink:0}
.row-count strong{display:block;font-size:1.55rem;line-height:1.1;font-weight:550;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.compact-row .chevron{margin-left:.1rem;font-size:0;color:#9fa2a6;width:8px;height:8px;flex-shrink:0;border-right:2px solid currentColor;border-top:2px solid currentColor;transform:rotate(45deg)}
.entry-details[open]>.compact-row .chevron{transform:rotate(135deg)}
.entry-details[open]>.compact-row{border-bottom:1px solid var(--line)}
.entry-details>.score-card{border:0;border-radius:0;margin:0;padding:1rem .2rem;background:transparent}
.board-note{font-size:.72rem;line-height:1.5;margin:1rem 0 .2rem}
#more{border:0;background:none;color:var(--accent);font-weight:550;font-size:1rem;margin:.5rem auto 0}
main>.rank-section,main>.entry-section,main>.about-app{padding:1.3rem;margin:0 0 1.25rem;border:1px solid var(--line);border-radius:1.25rem}
.rank-section h2,.entry-section h2,.about-app h2{font-size:clamp(1.5rem,3.5vw,2rem);margin:0 0 1rem;line-height:1.2}
.rank-section>p,.about-app>p{color:var(--muted);line-height:1.5}
#rank-challenge{margin:0;font-size:.75rem}
.slider-score{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;font-size:3rem;line-height:1.2;color:var(--text);font-weight:550;letter-spacing:-.03em;margin:1rem 0 .8rem}
.slider-score span{font-size:.9rem;letter-spacing:0;color:var(--muted);font-weight:400;text-align:right}
#rank-slider{width:100%;min-height:44px;margin:.5rem 0 1rem;padding:0;border:0;background:transparent;cursor:pointer;appearance:none;-webkit-appearance:none;accent-color:white}
#rank-slider::-webkit-slider-runnable-track{height:6px;background:#202123;border-radius:5px}
#rank-slider::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:30px;height:22px;margin-top:-8px;background:#fff;border:0;border-radius:20px}
#rank-slider::-moz-range-track{height:6px;background:#202123;border-radius:5px}
#rank-slider::-moz-range-thumb{width:30px;height:22px;background:#fff;border:0;border-radius:20px}
.rank-response{padding:1rem;background:var(--panel);border-radius:.85rem}
.rank-section .rank-feedback{font-size:1.1rem;font-weight:550;color:var(--text);margin:0 0 .5rem}
#rank-comparison{font-size:.95rem;line-height:1.5;color:var(--muted);margin:0;min-height:3rem}
.rank-section .ready{color:var(--text);font-size:.9rem;margin-top:1.25rem}
.steps{gap:1rem;margin:1.5rem 0}
.steps li{min-width:0}.steps h3{font-size:1.05rem}
.feature-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.7rem;margin:1.4rem 0}
.feature-grid article{background:var(--panel);border:1px solid var(--line);border-radius:.8rem;padding:1rem}
.feature-grid h3{color:var(--accent);margin:0 0 .65rem}.feature-grid p{font-size:.85rem;color:var(--muted)}
.app-preview{display:flex;align-items:center;justify-content:center;gap:1.5rem;margin:1.5rem 0;padding:1rem;background:var(--panel);border-radius:.8rem}
.app-preview img{width:110px;height:185px;object-fit:contain;flex-shrink:0}
.app-preview p{font-size:clamp(.95rem,3vw,1.3rem);font-weight:550;line-height:1.5;max-width:18rem}
.sticky-cta{position:fixed;z-index:4;left:max(.65rem,env(safe-area-inset-left));right:max(.65rem,env(safe-area-inset-right));bottom:calc(.65rem + env(safe-area-inset-bottom));display:flex;align-items:center;gap:.65rem;padding:.7rem;background:#252628;border:1px solid #414346;border-radius:1rem}
.sticky-cta img{width:42px;height:42px;flex-shrink:0;border-radius:.65rem}
.sticky-cta>div{flex:1;min-width:0}
.sticky-cta strong{display:block;font-size:.77rem;line-height:1.3;font-weight:600}
.sticky-cta span{display:block;font-size:.64rem;line-height:1.4;color:var(--muted);margin-top:.3rem}
.sticky-cta .app-cta{font-size:.9rem;font-weight:550;min-height:44px;padding:.6rem .75rem;flex-shrink:0;background:#2e3b45;color:#94ccef;border:0;border-radius:.7rem}
@media (hover: hover) and (pointer: fine) {
.sticky-cta .app-cta:hover{background:#3a4a56}
}
/* Resolve the optional spotlight before revealing standings to avoid a visible jump. */
.spotlight-pending .board,.spotlight-pending #rank-section,.spotlight-pending #how-to-enter,.spotlight-pending #about-app,.spotlight-pending footer{visibility:hidden}
@media(min-width:650px){main>.hero{padding:2rem}.hero .hero-copy{font-size:1.15rem}.hero-stats{gap:1rem;margin:1.4rem 0}.hero-stats>div{padding:1rem}.hero-stats span{font-size:.9rem}.hero>.app-cta{font-size:1.15rem;min-height:58px}.hero .purchase-note{font-size:.85rem}main>.featured,main>.board,main>.rank-section,main>.entry-section,main>.about-app{padding:1.5rem}.featured-heading .eyebrow,.challenge-pill{font-size:.85rem}.compact-row{min-height:100px}.compact-rank{width:48px;min-height:48px;font-size:1.1rem}.row-identity strong{font-size:1.1rem}.row-identity small,.row-count small{font-size:.85rem}.row-count strong{font-size:1.9rem}.section-heading .meta{font-size:.95rem}.slider-score{font-size:3.5rem}.slider-score span{font-size:1.1rem}.sticky-cta{display:none}}
@media(max-width:649px){.speed-page{padding-bottom:calc(116px + env(safe-area-inset-bottom))}.steps,.feature-grid{grid-template-columns:1fr}.steps{gap:1.25rem}.feature-grid article{padding:1rem}.feature-grid h3{margin-bottom:.35rem}.feature-grid p{margin:0}.rank-section>.app-cta,.entry-section>.app-cta,.about-app>.app-cta{width:100%}}
@media(max-width:360px){main>.hero,main>.featured,main>.board,main>.rank-section,main>.entry-section,main>.about-app{padding:1rem}.hero h1{font-size:1.6rem}.hero-stats span{font-size:.65rem}.hero .purchase-note{font-size:.7rem}.featured-heading{flex-wrap:wrap}.compact-row{gap:.5rem}.compact-rank{width:32px;min-height:36px;font-size:.8rem}.row-identity strong{font-size:.9rem}.row-count strong{font-size:1.4rem}.row-identity small,.row-count small{font-size:.64rem}.sticky-cta{gap:.45rem;padding:.6rem}.sticky-cta img{width:34px;height:34px}.sticky-cta strong{font-size:.68rem}.sticky-cta span{font-size:.58rem}.sticky-cta .app-cta{font-size:.8rem;padding:.5rem .6rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
/* Editable hypothetical score and locally calculated comparisons. */
.slider-score #rank-score-input{font:inherit;letter-spacing:inherit;color:var(--text);padding:0 .1rem;min-width:0;width:4.2ch;max-width:55%;background:transparent;border:0;border-bottom:1px dashed #687682;border-radius:0}
.slider-score{gap:.6rem;margin-bottom:.5rem}
#rank-input-hint{margin:.2rem 0 .4rem;font-size:.72rem}
.input-error{color:#ffd0bd;font-size:.8rem;min-height:0;margin:.3rem 0}
.input-error:empty{display:none}
#rank-score-input[aria-invalid=true]{border-color:#ffd0bd}
#rank-slider{touch-action:pan-y}
#rank-slider::-webkit-slider-runnable-track{height:8px;background:linear-gradient(to right,var(--accent) 0 var(--range-progress,40%),#454b51 var(--range-progress,40%) 100%)}
#rank-slider::-webkit-slider-thumb{width:30px;height:30px;margin-top:-11px;background:var(--accent);border:3px solid #f6f8fb}
#rank-slider::-moz-range-track{height:8px;background:#454b51}
#rank-slider::-moz-range-progress{height:8px;background:var(--accent)}
#rank-slider::-moz-range-thumb{width:24px;height:24px;background:var(--accent);border:3px solid #f6f8fb}
.rank-response{border:1px solid transparent;transition:border-color .15s,color .15s}
.rank-leading .rank-response{border-color:#90c9e877}
.rank-response>.eyebrow{font-size:.65rem;margin:0 0 .65rem;letter-spacing:.06em}
.rank-section .rank-feedback{font-size:1.4rem;line-height:1.3;font-weight:700;letter-spacing:-.02em}
#rank-percent{color:var(--accent);font-size:1rem;font-weight:600;margin:.6rem 0}
#rank-percent:empty,#rank-encouragement:empty{display:none}
#rank-comparison{font-size:.85rem;min-height:0}
#rank-encouragement{font-size:.85rem;margin:.7rem 0 0}
#rank-basis{font-size:.7rem;margin:.8rem 0 0;color:var(--muted)}
.rank-section .purchase-note{font-size:.72rem;line-height:1.5;color:var(--muted);margin:.75rem 0 0}
.rank-distribution{margin:1.25rem 0;padding-top:1rem;border-top:1px solid var(--line)}
.rank-distribution h3{font-size:.9rem;margin:0 0 .4rem}
.rank-distribution .meta{font-size:.7rem;margin:.2rem 0}
.rank-distribution svg{width:100%;height:auto;display:block;margin-top:.3rem}
.distribution-bin{fill:#566978}
.distribution-baseline{stroke:#69737b;stroke-width:1}
.distribution-median{stroke:#d8d9df;stroke-width:1;stroke-dasharray:2 2}
.distribution-record{stroke:#d9b97b;stroke-width:2}
#rank-marker{stroke:var(--accent);fill:var(--accent);stroke-width:2}
.distribution-axis,.distribution-legend{display:flex;justify-content:space-between;gap:.75rem;color:var(--muted);font-size:.7rem}
.distribution-legend{margin-top:.6rem;flex-wrap:wrap}
#distribution-record{color:#dfc590}
.distribution-you{color:var(--accent);font-size:.72rem;margin:.6rem 0 0}
.featured-actions>.featured-result{align-self:stretch;display:block;font-size:inherit;min-height:0}
.featured-result>summary{color:var(--accent);font-size:.85rem;min-height:44px}
.featured-result .result-content{padding:.2rem 0}
@media(prefers-reduced-motion:reduce){.rank-response{transition:none}}

.rank-long-score #rank-score-input{font-size:.65em;width:6.5ch}

/* A score row opens once: video, charts, then a reachable action bar. */
.entry-details[open]>.compact-row { border-bottom:0; }
.entry-details>.score-card { padding-top:0; }
.entry-details>.score-card>.video-tile { aspect-ratio:16/9; }
.score-card>.attempt-date { margin:.6rem 0 0; font-size:.75rem; }
.row-results { padding:0; }
.row-actions { gap:.6rem; padding-top:.85rem; flex-wrap:wrap; }
.row-actions .profile-link, .row-actions .collapse-row {
  display:inline-flex; align-items:center; justify-content:center;
  min-height:44px; padding:.6rem .85rem; border:1px solid var(--speed-field-line,var(--line));
  border-radius:.65rem; color:var(--accent); background:transparent;
  font-size:.85rem; font-weight:600; line-height:1.4; text-decoration:none;
}
.row-actions .profile-link { background:var(--raised); border-color:var(--line); }
@media (hover: hover) and (pointer: fine) {
.row-actions .profile-link:hover { border-color:var(--accent); }
}
.row-actions>.share-button { margin-left:auto; min-width:44px; min-height:44px; padding:.6rem; }
.row-actions .collapse-row { margin-left:0; }
.compact-row:focus-visible { outline:3px solid var(--accent); outline-offset:3px; }

/* Public player journeys have their own hierarchy, not leaderboard rankings. */
.player-page .board { background:transparent!important; border:0!important; padding:0!important; }
.player-hero,.player-invitation { padding:1.4rem; background:var(--panel); border:1px solid var(--line); border-radius:var(--speed-radius-card); margin-bottom:1.1rem; }
.player-hero .back-link { margin:0 0 1rem; font-size:.8rem; }
.player-hero .eyebrow,.player-invitation .eyebrow { font-size:.65rem; letter-spacing:.11em; color:var(--accent); }
.player-hero h1 { font-size:clamp(2rem,5vw,3rem); line-height:1.12; margin:.75rem 0; max-width:19ch; }
.player-intro { color:var(--muted); font-size:.95rem; line-height:1.6; margin:.8rem 0 1.1rem; }
.share-progress { background:var(--accent); color:var(--speed-on-accent); border:0; font-weight:650; min-height:48px; }
.player-socials { display:flex; align-items:center; flex-wrap:wrap; gap:.5rem; margin:1rem 0; }
.social-caption { flex-basis:100%; font-size:.7rem; color:var(--muted); }
.social-link { display:inline-flex; align-items:center; gap:.4rem; min-height:44px; padding:.4rem .7rem; border:1px solid var(--line); border-radius:.65rem; color:var(--text); text-decoration:none; font-size:.8rem; }
.social-icon { width:20px; height:20px; fill:currentColor; }
.player-page .filter-disclosure { margin:0 0 1.4rem; background:var(--panel); }
.player-section-title,.attempt-history-heading { font-size:1.5rem; margin:1.3rem 0 1rem; }
.player-stats { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.65rem; margin:.5rem 0 1rem; }
.player-stats>div,.player-stats>a { display:flex; flex-direction:column; padding:1rem .7rem; background:var(--panel); border:1px solid var(--line); border-radius:.85rem; }
.player-stats span,.player-stats small { display:block; font-size:.7rem; line-height:1.4; color:var(--muted); }
.player-stats span { flex:1; }
.player-stats strong { display:block; font-size:2rem; margin:.35rem 0 .1rem; font-variant-numeric:tabular-nums; }
.player-page .progress-card { background:var(--panel); border:1px solid var(--line); border-radius:1rem; padding:1rem; margin:0 0 1.5rem; }
.player-page .progress-card h3 { margin:0 0 1rem; font-size:.85rem; color:var(--muted); }
.chart-plot svg { display:block; width:100%; height:auto; background:#101b26; border:1px solid #2a3f51; border-radius:.6rem; touch-action:pan-y; }
.chart-scale-note { font-size:.68rem; color:var(--muted); margin:.4rem 0 .6rem; }
.chart-point-value { font-weight:700!important; fill:var(--text)!important; }
.player-page .entry-details { padding:0; overflow:hidden; background:rgba(19,20,23,.9); border:1px solid var(--line); border-radius:1rem; margin-bottom:.8rem; }
.player-page .compact-row { gap:.6rem; padding-left:1rem; padding-right:1rem; }
.player-page .row-identity strong { font-weight:650; }
.player-page .row-identity small { font-size:.7rem; }
.attempt-badges { display:flex; flex-wrap:wrap; gap:.35rem; margin-top:.5rem; }
.attempt-badge { font-size:.6rem; border:1px solid var(--line); border-radius:1rem; padding:.15rem .45rem; color:var(--muted); white-space:nowrap; }
.best-badge { color:var(--accent); border-color:var(--accent); }
.player-invitation { margin:1.5rem 0 0; }
.player-invitation h2 { margin:.7rem 0; font-size:1.7rem; }
.player-invitation p { color:var(--muted); line-height:1.6; }
.player-invitation .app-cta { margin:.9rem 0 .6rem; }
@media(max-width:649px) {
 .player-stats { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .player-hero { padding:1.2rem; }
 .share-progress,.player-invitation .app-cta { display:flex; width:100%; }
 .player-page .row-count strong { font-size:1.6rem; }
 .player-page .row-identity small { font-size:.65rem; }
}

/* Weekly competition controls use the existing palette and responsive layout. */
.weekly-panel{margin:.35rem 0 .6rem}
.week-controls>summary{display:flex;align-items:center;justify-content:space-between;gap:.6rem;min-height:44px;padding:.35rem 0;color:var(--muted);font-size:.8rem;list-style:none}
.week-controls>summary::-webkit-details-marker{display:none}
.week-change{color:var(--accent);font-weight:600;white-space:nowrap}
.week-controls[open] .week-change>span{display:inline-block;transform:rotate(180deg)}
.week-options{margin:.25rem 0 .8rem;padding:.8rem;border:1px solid var(--line);border-radius:.8rem;background:var(--panel)}
.week-options>.meta{font-size:.8rem}
.week-actions{display:flex;align-items:center;flex-wrap:wrap;gap:.7rem;margin-top:.8rem}
.week-actions select{min-width:0;max-width:100%;flex:1 1 220px}
.week-actions button{min-height:44px}.week-actions label{font-weight:600}
#week-feedback:empty,#last-week:empty{display:none}
#roundup-fallback{width:100%;min-height:220px;margin-top:1rem;box-sizing:border-box;font:inherit}
#last-week{padding-top:1rem;border-top:1px solid var(--line);margin-top:1rem}
.record-note{text-align:center;color:var(--muted);font-size:.85rem;margin:.4rem 0 1rem}
@media(max-width:420px){.week-actions{align-items:stretch}.week-actions label{width:100%}.week-actions button{flex:1 1 auto}}

.player-stats>a { color:var(--text); text-decoration:none; }
@media (hover: hover) and (pointer: fine) {
.player-stats>a:hover { border-color:var(--accent); }
}
.player-socials { padding:1rem 0; }
.player-page .entry-details[open]>.compact-row { background:rgba(117,202,255,.06); }
.player-page .entry-details>.score-card { margin:0; padding:0 1rem 1rem; }
.attempt-comparison { margin:0 0 1.5rem; padding:1rem; border:1px solid var(--line); border-radius:1rem; background:var(--panel); }
.attempt-comparison>summary { min-height:44px; color:var(--accent); font-weight:650; }
.comparison-options { border:0; margin:1rem 0; padding:0; }
.comparison-options legend { font-size:.85rem; color:var(--muted); }
.comparison-options label { display:flex; align-items:center; gap:.6rem; min-height:44px; margin:0; font-size:.8rem; color:var(--text); }
.comparison-options input { width:20px; height:20px; flex-shrink:0; }
.comparison-swatch { display:inline-block; width:1rem; height:.25rem;  flex-shrink:0; }
.comparison-legend { display:flex; flex-wrap:wrap; gap:.5rem 1rem; padding:0; list-style:none; font-size:.75rem; }
.comparison-legend li { display:flex; align-items:center; gap:.4rem; }
.comparison-chart svg { display:block; width:100%; height:auto; }

.comparison-options { max-height:17rem; overflow-y:auto; }

.comparison-chart polyline { stroke-width:3; }
.comparison-chart .comparison-line-0 { stroke:#75caff; }
.comparison-chart .comparison-line-1 { stroke:#ffbd69; }
.comparison-chart .comparison-line-2 { stroke:#caabff; }
.comparison-chart .comparison-line-3 { stroke:#79e0b0; }
.comparison-swatch-0 { background:#75caff; }
.comparison-swatch-1 { background:#ffbd69; }
.comparison-swatch-2 { background:#caabff; }
.comparison-swatch-3 { background:#79e0b0; }

/* Optional reflections live inside expanded attempts, never in compact rankings. */
.public-attempt-note { padding:1rem; margin-bottom:1rem; border-radius:12px; background:var(--raised); }
.public-attempt-note h4 { margin:0 0 .5rem; font-size:.85rem; color:var(--muted); }
.public-attempt-note p { margin:0; white-space:pre-wrap; overflow-wrap:anywhere; }

/* Player pages start with the person and their scores, without introductory copy. */
.player-hero h1{font-size:clamp(1.7rem,4vw,2.4rem);margin:.35rem 0 .65rem;max-width:22ch}
.player-hero .back-link{margin-bottom:.65rem}
.player-hero .share-progress{display:inline-flex;align-items:center;justify-content:center;width:auto;min-height:44px;padding:.55rem .9rem;font-size:.85rem;margin-top:.25rem}
