:root{--paper:#f5f7fa;--card:#fff;--ink:#14181d;--ink-2:#49525d;--ink-3:#7f8892;--rule:#dfe4ea;--rule-soft:#eceff3;--track:#004990;--track-deep:#003469;--track-bg:#e6edf7;--progress:#12924a;--progress-deep:#0c6f38;--fast:#5a4bc4;--fast-deep:#463a9c;--fast-bg:#eeecfa;--warn:#9a5b06;--good:#15803d;--on-accent:#fff;--display:"Archivo", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--body:"Archivo", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--r:12px}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--paper:#0f1318;--card:#171c22;--ink:#e8edf3;--ink-2:#a5aeb9;--ink-3:#78828d;--rule:#262d35;--rule-soft:#1d232a;--track:#6aa9e8;--track-deep:#92c3f0;--track-bg:#111e2e;--progress:#45c47c;--progress-deep:#6fd89a;--fast:#9b8cf0;--fast-deep:#b6abf6;--fast-bg:#1a1730;--warn:#e0a35c;--good:#6cc08a;--on-accent:#0f1318}}:root[data-theme=dark]{--paper:#0f1318;--card:#171c22;--ink:#e8edf3;--ink-2:#a5aeb9;--ink-3:#78828d;--rule:#262d35;--rule-soft:#1d232a;--track:#6aa9e8;--track-deep:#92c3f0;--track-bg:#111e2e;--progress:#45c47c;--progress-deep:#6fd89a;--fast:#9b8cf0;--fast-deep:#b6abf6;--fast-bg:#1a1730;--warn:#e0a35c;--good:#6cc08a;--on-accent:#0f1318}*{box-sizing:border-box}html,body,#root{height:100%}body{padding-top:env(safe-area-inset-top,0px);background:var(--paper);color:var(--ink);font-family:var(--body);-webkit-font-smoothing:antialiased;margin:0;font-size:16px;line-height:1.55}img{max-width:100%}button,input,select{font:inherit}.wrap{max-width:720px;padding-inline:18px;padding-bottom:calc(78px + env(safe-area-inset-bottom,0px));margin:0 auto}.tabbar{z-index:40;background:color-mix(in srgb, var(--card) 92%, transparent);-webkit-backdrop-filter:saturate(160%)blur(12px);backdrop-filter:saturate(160%)blur(12px);border-top:1px solid var(--rule);padding-bottom:env(safe-area-inset-bottom,0px);grid-template-columns:repeat(4,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.tab{appearance:none;cursor:pointer;color:var(--ink-3);font:500 11px/1 var(--display), system-ui, sans-serif;letter-spacing:.02em;background:0 0;border:0;flex-direction:column;align-items:center;gap:4px;min-height:54px;padding:9px 4px 8px;display:flex}.tab.on{color:var(--track)}.tab:focus-visible{outline:3px solid var(--track);outline-offset:-3px;border-radius:8px}.tab svg{transition:transform .12s}.tab.on svg{transform:translateY(-1px)}@media (prefers-reduced-motion:reduce){.tab svg{transition:none}}.numbers{gap:0;margin:0;display:grid}.numbers>div{border-top:1px solid var(--rule-soft);justify-content:space-between;align-items:baseline;gap:14px;padding:10px 0;display:flex}.numbers>div:first-child{border-top:0}.numbers dt{color:var(--ink-2);font-size:14px}.numbers dd{font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--ink);margin:0;font-size:14.5px;font-weight:500}.edit-times{border:1px solid var(--rule);border-left:3px solid var(--fast);border-radius:var(--r);padding:15px}.setting{justify-content:space-between;align-items:center;gap:16px;padding:4px 0;display:flex}.setting>div:first-child{min-width:0}.setting b{font-size:15px;display:block}.setting input[type=checkbox]{width:20px;height:20px;accent-color:var(--track);flex:none}label.setting{cursor:pointer}.segmented{border:1px solid var(--rule);background:var(--paper);border-radius:9px;flex:none;display:inline-flex;overflow:hidden}.segmented button{appearance:none;cursor:pointer;min-height:40px;font:500 14px/1 var(--mono);color:var(--ink-2);background:0 0;border:0;padding:8px 15px}.segmented button+button{border-left:1px solid var(--rule)}.segmented button.on{background:var(--track);color:#fff}.segmented button:focus-visible{outline:3px solid var(--track);outline-offset:-3px}hr.rule{border:0;border-top:1px solid var(--rule-soft);margin:2px 0}.btn.danger{color:var(--danger,#b3261e);border-color:color-mix(in srgb, var(--danger,#b3261e) 40%, var(--rule))}.btn-danger{background:var(--danger,#b3261e);color:#fff;border:1px solid #0000}.btn-danger:disabled{opacity:.45}.danger-box{border:1px solid color-mix(in srgb, var(--danger,#b3261e) 35%, var(--rule));border-left:3px solid var(--danger,#b3261e);border-radius:var(--r);background:color-mix(in srgb, var(--danger,#b3261e) 4%, transparent);padding:15px}.danger-box p{color:var(--ink-2);font-size:14.5px;line-height:1.5}.sheet-backdrop{z-index:60;padding:16px;padding-bottom:calc(16px + env(safe-area-inset-bottom,0px));background:#16181d75;justify-content:center;align-items:flex-end;animation:.16s fade;display:flex;position:fixed;inset:0}.sheet{background:var(--card);border:1px solid var(--rule);border-radius:18px;gap:14px;width:100%;max-width:480px;max-height:calc(100dvh - 32px);padding:22px 20px 20px;animation:.2s cubic-bezier(.2,.8,.2,1) rise;display:grid;overflow-y:auto;box-shadow:0 -8px 40px #16181d2e}.sheet h2{letter-spacing:-.01em;margin:2px 0 0;font-size:22px}@keyframes fade{0%{opacity:0}}@keyframes rise{0%{opacity:0;transform:translateY(14px)}}@media (prefers-reduced-motion:reduce){.sheet-backdrop,.sheet{animation:none}}@media (width>=560px){.sheet-backdrop{align-items:center}}.mapping{gap:0;margin:4px 0 0;display:grid}.mapping>div{border-top:1px solid var(--rule-soft);grid-template-columns:96px 1fr;align-items:baseline;gap:14px;padding:9px 0;display:grid}.mapping>div:first-child{border-top:0;padding-top:0}.mapping dt{font-family:var(--mono);color:var(--track);letter-spacing:.01em;font-size:12.5px;font-weight:500}.mapping dd{color:var(--ink-2);margin:0;font-size:14.5px;line-height:1.45}.checkline{color:var(--ink-2);cursor:pointer;align-items:center;gap:10px;padding:2px 0;font-size:14px;display:flex}.checkline input{width:18px;height:18px;accent-color:var(--track)}.tight{font-size:13.5px}.how-steps{counter-reset:step;gap:12px;margin:0;padding:0;list-style:none;display:grid}.how-steps li{counter-increment:step;color:var(--ink-2);padding-left:34px;font-size:15px;line-height:1.5;position:relative}.how-steps li:before{content:counter(step);font-family:var(--mono);color:var(--track);background:color-mix(in srgb, var(--track) 12%, transparent);border-radius:50%;place-items:center;width:22px;height:22px;font-size:12px;font-weight:500;display:grid;position:absolute;top:1px;left:0}.how-steps b{color:var(--ink)}.how-eg{background:color-mix(in srgb, var(--track) 7%, transparent);border-radius:var(--r);color:var(--ink-2);margin:0;padding:13px 15px;font-size:14.5px;line-height:1.55}.at-start{font-family:var(--display);font-size:17px;font-weight:700}.stack{gap:18px;display:grid}h1,h2,h3{font-family:var(--display);letter-spacing:-.012em;text-wrap:balance;margin:0;line-height:1.15}h1{font-size:clamp(27px,6vw,38px);font-weight:650}h2{font-size:clamp(20px,4vw,25px);font-weight:700}h3{font-size:17px;font-weight:700}p{margin:0}.muted{color:var(--ink-2)}.tiny{color:var(--ink-3);font-size:13px}.eyebrow{font-family:var(--display);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);font-size:11px;font-weight:600}.num{font-family:var(--display);font-variant-numeric:tabular-nums;letter-spacing:-.03em;font-weight:700}.card{background:var(--card);border:1px solid var(--rule);border-radius:var(--r);padding:18px}.card.flush{padding:0;overflow:hidden}.btn{cursor:pointer;border:1px solid #0000;border-radius:9px;justify-content:center;align-items:center;gap:8px;min-height:46px;padding:11px 18px;font-size:15px;font-weight:700;text-decoration:none;transition:transform .1s,background-color .15s,border-color .15s;display:inline-flex}.btn:active{transform:translateY(1px)}.btn:focus-visible{outline:3px solid var(--track);outline-offset:2px}.btn[disabled]{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--track);color:var(--on-accent)}.btn-primary:hover:not([disabled]){background:var(--track-deep)}.btn-fast{background:var(--fast);color:var(--on-accent)}.btn-fast:hover:not([disabled]){background:var(--fast-deep)}.btn-line{background:var(--card);border-color:var(--rule);color:var(--ink)}.btn-line:hover:not([disabled]){border-color:var(--ink-3)}.btn-ghost{color:var(--ink-2);background:0 0;min-height:38px;padding:6px 10px;font-size:14px;font-weight:600}.btn-ghost:hover{color:var(--ink)}.btn-inline{min-height:0;font:inherit;color:var(--track);cursor:pointer;text-underline-offset:3px;background:0 0;border:0;padding:3px 0;text-decoration:underline;text-decoration-thickness:1px}.btn-inline:hover{color:var(--track-deep);text-decoration-thickness:2px}.btn-inline:focus-visible{outline:3px solid var(--track);outline-offset:2px;border-radius:3px}.btn-sm{min-height:40px;padding:9px 14px;font-size:14px}.btn-block{width:100%}label.field{gap:6px;display:grid}label.field>span{color:var(--ink-2);font-size:13.5px;font-weight:600}input[type=text],input[type=number],input[type=date]{border:1px solid var(--rule);background:var(--card);width:100%;min-height:46px;color:var(--ink);border-radius:9px;padding:10px 13px}input:focus{outline:2px solid var(--track);outline-offset:1px;border-color:var(--track)}.row{gap:12px;display:grid}@media (width>=520px){.row.two{grid-template-columns:1fr 1fr}}.runner+.runner{border-top:1px solid var(--rule-soft)}.runner{padding:16px 18px}.runner-head{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.runner-name{font-family:var(--display);flex:0 auto;align-items:baseline;gap:8px;min-width:0;font-size:17px;font-weight:650;display:flex}.runner-name .who{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.runner-name .you,.runner-miles{flex:none}.runner-name .you{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--track);background:var(--track-bg);vertical-align:2px;border-radius:999px;margin-left:7px;padding:2px 6px;font-size:10px}.runner-miles{font-family:var(--display);font-variant-numeric:tabular-nums;letter-spacing:-.03em;font-size:19px;font-weight:700}.runner-miles small{color:var(--ink-3);letter-spacing:0;margin-left:3px;font-size:12px;font-weight:600}.course{background:var(--rule-soft);border-radius:999px;height:10px;margin:12px 0 0;position:relative}.course-fill{background:var(--track);border-radius:999px;transition:width .5s,background-color .3s;position:absolute;inset:0 auto 0 0}.course-fill.leading{background:var(--progress)}.course-tick{background:var(--rule);border-radius:1px;width:2px;height:18px;position:absolute;top:-4px}.course-tick.wall{background:var(--warn)}.course-tick.passed{background:var(--track-deep)}.runner-foot{flex-wrap:wrap;gap:6px 14px;margin-top:10px;display:flex}.runner-foot span{color:var(--ink-2);font-size:13px}.runner-foot b{font-variant-numeric:tabular-nums;color:var(--ink)}.fasting-now{color:var(--fast);font-weight:700}.milestone{border-left:3px solid var(--track);background:var(--track-bg);border-radius:0 9px 9px 0;padding:12px 14px}.milestone.wall{border-left-color:var(--warn);background:color-mix(in srgb, var(--warn) 9%, var(--card))}.milestone b{font-family:var(--display);font-weight:650}.clock{flex-wrap:wrap;align-items:center;gap:18px;display:flex}.clock-time{font-family:var(--mono);letter-spacing:-.02em;color:var(--fast);font-variant-numeric:tabular-nums;font-size:clamp(30px,8vw,42px);font-weight:500}.stage-name{font-family:var(--display);font-size:19px;font-weight:650}.stage-bar{background:var(--rule-soft);border-radius:999px;height:8px;margin-top:12px;position:relative}.stage-bar>i{background:var(--fast);border-radius:999px;transition:width .6s;position:absolute;inset:0 auto 0 0}.stage-list{gap:0;margin-top:14px;display:grid}.stage-row{border-top:1px solid var(--rule-soft);grid-template-columns:62px 1fr;align-items:baseline;gap:12px;padding:9px 0;display:grid}.stage-row .h{font-family:var(--mono);color:var(--ink-3);font-size:12.5px}.stage-row.now .h,.stage-row.now .n{color:var(--fast);font-weight:700}.stage-row .n{font-size:14.5px;font-weight:600}.stage-row .d{color:var(--ink-2);grid-column:2;font-size:13.5px}.race-name{font-family:var(--display);color:var(--ink-2);flex-wrap:wrap;align-items:center;gap:10px;margin:0;padding:14px 16px 0;font-size:15px;font-weight:650;display:flex}.race-name .btn-inline{font-size:13px;font-weight:500}.rename{flex-wrap:wrap;align-items:center;gap:8px;width:100%;display:flex}.rename input{min-width:0;font:inherit;color:var(--ink);background:var(--card);border:1px solid var(--rule);border-radius:8px;flex:150px;min-height:42px;padding:9px 11px}.rename input:focus-visible{outline:3px solid var(--track);outline-offset:1px}.leading{font:500 10px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--progress-deep);background:color-mix(in srgb, var(--progress) 14%, transparent);white-space:nowrap;border-radius:999px;flex:none;margin-inline:auto;padding:4px 7px}.theme-btn{min-height:38px;color:var(--ink-2);padding:6px 8px}.theme-btn:hover{color:var(--track)}.quiet-row{margin-top:10px}.quiet-row .btn-ghost{color:var(--ink-3);font-size:13px;font-weight:500}.quiet-row .btn-ghost:hover{color:var(--track)}details.sect{padding:0;overflow:hidden}details.sect>summary{cursor:pointer;justify-content:space-between;align-items:center;gap:14px;padding:16px 18px;list-style:none;display:flex}details.sect>summary::-webkit-details-marker{display:none}details.sect>summary h2{margin-top:4px;font-size:18px}details.sect>summary .count{background:var(--rule-soft);min-width:26px;height:26px;color:var(--ink-2);font:500 12.5px/1 var(--mono);font-variant-numeric:tabular-nums;border-radius:999px;flex:none;place-items:center;padding:0 7px;display:grid}details.sect[open]>summary .count{background:var(--track-bg);color:var(--track-deep)}details.sect>summary:after{content:"";border-right:2px solid var(--ink-3);border-bottom:2px solid var(--ink-3);flex:none;width:9px;height:9px;margin-left:-4px;transition:transform .15s;transform:rotate(45deg)translate(-2px,-2px)}details.sect[open]>summary:after{transform:rotate(-135deg)translate(-2px,-2px)}@media (prefers-reduced-motion:reduce){details.sect>summary:after{transition:none}}.sect-body{padding:0 18px 16px}details.art{border-top:1px solid var(--rule-soft)}details.art:first-of-type{border-top:0}details.art>summary{cursor:pointer;justify-content:space-between;align-items:baseline;gap:12px;padding:13px 0;list-style:none;display:flex}details.art>summary::-webkit-details-marker{display:none}details.art>summary:after{content:"+";font-family:var(--mono);color:var(--ink-3);font-size:18px;line-height:1}details.art[open]>summary:after{content:"–"}details.art .sum{color:var(--ink-3);margin-top:2px;font-size:13.5px;font-weight:400;display:block}details.art .t{font-weight:700;font-family:var(--display)}details.art .body{gap:11px;padding:0 0 16px;display:grid}details.art .body p{color:var(--ink-2);font-size:15px}details.art .body h4{font-family:var(--display);letter-spacing:.01em;color:var(--ink);margin-top:7px;margin-bottom:-5px;font-size:14px;font-weight:700}details.art .body h4:first-child{margin-top:0}details.art .src{font-family:var(--mono);color:var(--ink-3);font-size:11.5px}details.art .body ul{color:var(--ink-2);margin:0;padding-left:20px;font-size:15px}details.art .body li{margin:6px 0}details.art .body a.btn{margin-top:4px;text-decoration:none}details.art .t .n{font-family:var(--mono);color:var(--ink-3);font-variant-numeric:tabular-nums;margin-right:9px;font-size:11.5px;font-weight:500}details.art[open] .t .n{color:var(--track)}.waiting{gap:10px;margin-top:14px;display:grid}.waiting>div{border-top:1px solid var(--rule-soft);grid-template-columns:auto 1fr;align-items:baseline;gap:12px;padding-top:10px;display:grid}.waiting dt{font-family:var(--display);color:var(--track);font-variant-numeric:tabular-nums;font-size:22px;font-weight:700}.waiting dd{color:var(--ink-2);margin:0;font-size:14px}.daily{text-wrap:pretty;margin-top:8px;font-size:17px;line-height:1.45}.attrib{gap:3px;margin-top:12px;display:grid}.attrib .who{color:var(--ink-2);font-size:13.5px;font-weight:600}.attrib .cite{font-family:var(--mono);color:var(--ink-3);font-size:11px;line-height:1.45}.daily{text-wrap:pretty;font-size:17.5px;line-height:1.45}.card .daily+.attrib{border-top:1px solid var(--rule-soft);padding-top:11px}.banner{background:var(--card);border:1px solid var(--rule);border-left:3px solid var(--track);border-radius:0 var(--r) var(--r) 0;padding:14px 16px}.check-in p{color:var(--ink-2);font-size:15px}.check-in strong{color:var(--ink)}.banner.warn{border-left-color:var(--warn)}.code{font-family:var(--mono);letter-spacing:.18em;background:var(--track-bg);color:var(--track-deep);border-radius:9px;padding:10px 16px;font-size:25px;font-weight:500;display:inline-block}.err{color:#b91c1c;font-size:14px}.topbar{justify-content:space-between;align-items:center;gap:12px;padding-block:18px 0;display:flex}.brand{font-family:var(--display);letter-spacing:-.03em;font-size:19px;font-weight:700}.brand span{color:var(--track)}footer.legal{border-top:1px solid var(--rule);margin-top:34px;padding-block:18px 40px}footer.legal p{color:var(--ink-3);max-width:60ch;margin:0 0 6px;font-size:12.5px}footer.legal details>summary{color:var(--ink-3);cursor:pointer;align-items:center;gap:6px;padding:4px 0;font-size:12.5px;list-style:none;display:inline-flex}footer.legal details>summary::-webkit-details-marker{display:none}footer.legal details>summary:after{content:"";border-bottom:1.5px solid;border-right:1.5px solid;width:6px;height:6px;transform:rotate(45deg)translate(-1px,-1px)}footer.legal details[open]>summary:after{transform:rotate(-135deg)}footer.legal details>summary:hover{color:var(--ink-2)}footer.legal details p{margin-top:8px}footer.legal .by{opacity:.8;margin-top:10px}footer.legal p+p{margin-top:8px}@media (prefers-reduced-motion:reduce){*{transition:none!important}}.or{color:var(--ink-3);align-items:center;gap:12px;display:flex}.or:before,.or:after{content:"";background:var(--rule);flex:1;height:1px}.or span{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;font-size:11px}
