:root{--water:#eef4f6;--ink:#14303d;--muted:#4f6b78;--graticule:#9db9c7;--track:#b0106a;--fleet:#3d6475;--field:#fff;--sea:#d4e7ee;--land:#ecdfb4;--shore:#8a7a48;--area:#2c6a88;--heard:#3c8098;--gap:#14303d;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root{--water:#0c1c24;--ink:#dcebf1;--muted:#93b0bd;--graticule:#2c4d5c;--track:#ff5fae;--fleet:#a7c7d4;--field:#132a35;--sea:#0f2833;--land:#3a3522;--shore:#a2915a;--area:#7fc0dc;--heard:#5fa8c2;--gap:#dcebf1;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}*{box-sizing:border-box}body{background:var(--water);color:var(--ink);font-variant-numeric:tabular-nums;margin:0;font:17px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}.masthead,main{max-width:40rem;margin:0 auto;padding:1rem}.masthead{flex-wrap:wrap;align-items:baseline;gap:.25rem 1.5rem;display:flex}.masthead a{color:var(--ink);text-decoration:none}.masthead .home{font-weight:700}.masthead nav{gap:1.25rem;display:flex}.masthead nav a{color:var(--muted)}.masthead nav a:hover{color:var(--ink);text-underline-offset:3px;text-decoration:underline}h1{margin:.5rem 0 .25rem;font-size:1.6rem;line-height:1.2}.facts{color:var(--muted);margin:0 0 1.5rem}a{color:var(--ink)}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--track);outline-offset:2px}.races{margin:0;padding:0;list-style:none}.races li{border-bottom:1px solid var(--graticule);padding:.75rem 0}.event h2{margin:1.75rem 0 0;font-size:1.15rem}.event>.note{margin:0;font-size:.9rem}.races a{font-weight:600}.races .note{font-size:.9rem}.sailed{flex-wrap:wrap;gap:0 1rem;font-size:.9rem;display:flex}.sail{font-weight:600}.aside{color:var(--muted);margin-top:2rem}.recordings{margin:0;padding:0;list-style:none}.recording{border-bottom:1px solid var(--graticule);padding:1.25rem 0}.recording h2{margin:0;font-size:1.15rem}.recording>.note{margin:0 0 .6rem}.strip{background:var(--field);border:1px solid var(--graticule);border-radius:4px;height:1.75rem;position:relative;overflow:hidden}.strip>div{position:absolute;top:0;bottom:0}.strip .matched{background:var(--track);color:var(--water);box-shadow:inset 1px 0 0 var(--water)}.strip .matched span{white-space:nowrap;padding:0 .4rem;font-size:.8rem;font-weight:600;line-height:calc(1.75rem - 2px);display:block;overflow:hidden}.strip .unmatched{background:repeating-linear-gradient(-45deg, var(--graticule) 0 1px, transparent 1px 6px)}.stretches{margin:.6rem 0 0;padding:0;list-style:none}.stretches li{border-left:3px solid var(--track);flex-wrap:wrap;gap:0 .75rem;padding:.2rem 0 .2rem .75rem;display:flex}.stretches li+li{margin-top:.3rem}.stretches .unmatched{border-left:3px dashed var(--graticule)}.stretches .when{min-width:10.5rem}.stretches details{flex-basis:100%;font-size:.9rem}.stretches summary{width:fit-content;color:var(--muted);cursor:pointer}.stretches summary:hover{color:var(--ink)}.fix{flex-wrap:wrap;align-items:center;gap:.5rem 1rem;margin:.4rem 0 .2rem;font-size:.9rem;display:flex}.stretches li>.fix{flex-basis:100%}form.fix-form{flex-wrap:wrap;align-items:center;gap:.5rem;max-width:none;display:flex}.fix-form :is(select,button){padding:.35rem .6rem}select{font:inherit;border:1px solid var(--muted);background:var(--field);color:var(--ink);border-radius:6px}.corrections h3{margin:.9rem 0 .2rem;font-size:.95rem}.corrections ul{margin:0;padding:0;font-size:.9rem;list-style:none}.corrections li+li{margin-top:.2rem}.corrections .undone>span:first-child{color:var(--muted);text-decoration:line-through;-webkit-text-decoration-color:var(--graticule);text-decoration-color:var(--graticule)}form.undo{display:inline}.notice{border-left:3px solid var(--area);background:var(--field);flex-wrap:wrap;gap:.25rem 1rem;margin:0 0 1.25rem;padding:.6rem .8rem;display:flex}.notice.error{border-left-color:var(--track)}.wrong-race{max-width:40rem;margin-top:2rem}.wrong-race>.note{margin:0 0 .6rem}form{gap:.75rem;max-width:22rem;display:grid}input,button{font:inherit;border:1px solid var(--muted);background:var(--field);color:var(--ink);border-radius:6px;padding:.6rem .75rem}button{background:var(--ink);color:var(--water);border-color:var(--ink);cursor:pointer}h3{margin:1.25rem 0 .25rem;font-size:1.05rem}.note{color:var(--muted)}.error{color:var(--track)}.actions{flex-wrap:wrap;align-items:center;gap:.75rem 1rem;max-width:22rem;margin-top:1.5rem;display:flex}button.quiet{color:var(--ink);background:0 0}.hull-phones h2{margin:1.75rem 0 .5rem;font-size:1.15rem}.phones{margin:0;padding:0;list-style:none}.phone{border-left:3px solid var(--area);overflow-wrap:anywhere;padding:.35rem 0 .35rem .75rem}.phone+.phone{margin-top:.9rem}.phone h3{margin:0}.phone>.note{margin:0;font-size:.9rem}.phone.removed{border-left:3px dashed var(--graticule)}.phone.removed h3{color:var(--muted);text-decoration:line-through;-webkit-text-decoration-color:var(--graticule);text-decoration-color:var(--graticule)}.phone details{margin-top:.3rem;font-size:.9rem}.phone summary{width:fit-content;color:var(--muted);cursor:pointer}.phone summary:hover{color:var(--ink)}form.remove-phone{border-left:3px solid var(--track);background:var(--field);justify-items:start;gap:.5rem;max-width:28rem;margin:.4rem 0 .2rem;padding:.6rem .8rem}.remove-phone p{margin:0}form.open-hull{max-width:none;color:var(--muted);flex-wrap:wrap;align-items:end;gap:.5rem;margin-top:2.5rem;font-size:.9rem;display:flex}.open-hull label{gap:.25rem;display:grid}.open-hull :is(input,button){padding:.35rem .6rem}button.danger{background:var(--track);border-color:var(--track);color:var(--field);padding:.35rem .6rem}body:has(.race) :is(.masthead,main){max-width:76rem}.race h2{margin:0 0 .5rem;font-size:1.15rem}.stage{gap:1rem 1.5rem;min-width:0;display:grid}@media (min-width:60rem){.stage{grid-template-columns:minmax(0,3fr) minmax(17rem,2fr);align-items:start}}.chart-frame{min-width:0;margin:0}.chart-frame figcaption{color:var(--muted);margin-top:.35rem;font-size:.8rem}.chart{border:1px solid var(--graticule);border-radius:4px;width:100%;height:auto;display:block}.chart .sea{fill:var(--sea)}.chart .land{fill:var(--land);stroke:var(--shore);stroke-width:1px;vector-effect:non-scaling-stroke}.chart .course-area{fill:var(--area);fill-opacity:.06;stroke:var(--area);stroke-width:1.5px;stroke-dasharray:7 5;vector-effect:non-scaling-stroke}.chart .track,.chart .wake{fill:none;stroke:var(--track);stroke-linejoin:round;stroke-linecap:round;vector-effect:non-scaling-stroke}.chart .track{stroke-width:1.5px;stroke-opacity:.45}.chart .wake{stroke-width:3.5px}.chart .boat{fill:var(--track);stroke:var(--field);stroke-width:3px;vector-effect:non-scaling-stroke}.chart .fleet-boat .wake{stroke:var(--fleet);stroke-width:2.5px}.chart .fleet-boat .boat{fill:var(--fleet);stroke-width:2px}.chart .fleet-boat text{fill:var(--fleet);stroke:var(--sea);stroke-width:5px;paint-order:stroke;stroke-linejoin:round;font-size:28px}.chart .scale path{fill:none;stroke:var(--ink);stroke-width:2px;vector-effect:non-scaling-stroke}.chart text{fill:var(--ink);font-size:30px;font-weight:600}.chart .scale text{dominant-baseline:middle;transform:translateY(-6px)}.chart .north path{fill:var(--ink)}.chart .north text{text-anchor:middle}.panel{gap:1rem;min-width:0;display:grid}.clock time{font-size:2rem;font-weight:650;line-height:1.1;display:block}.transport{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.transport>button{min-width:5.5rem}.speeds{display:flex}.speeds button{border-radius:0;margin-left:-1px;padding-inline:.7rem}.speeds button:first-child{border-radius:6px 0 0 6px}.speeds button:last-child{border-radius:0 6px 6px 0}.speeds button[aria-pressed=true]{background:var(--ink);color:var(--water)}.readout{border-top:2px solid var(--ink);grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;padding-top:.75rem;display:grid}.readout h2,.readout .position{grid-column:1/-1;margin:0}.readout .position{min-height:1.5em}.reading{margin:0}.reading dt{color:var(--muted);font-size:.85rem}.reading dd{margin:0 0 .35rem}.reading .value{font-size:clamp(1.25rem,5vw,1.6rem);font-weight:650;line-height:1.2;display:block}.reading .value.none{color:var(--muted);padding-block:.3rem;font-size:1rem;font-weight:400}.reading .detail,.reading .device{font-size:.85rem;display:block}.reading .device{color:var(--muted)}.fleet{border-top:1px solid var(--graticule);padding-top:.75rem}.fleet h2{color:var(--muted);margin:0 0 .25rem;font-size:.85rem;font-weight:400}.fleet ul{margin:0;padding:0;list-style:none}.fleet li{padding-block:.15rem}.fleet li:before{content:"";background:var(--fleet);border-radius:50%;width:.6em;height:.6em;margin-right:.5em;display:inline-block}.fleet .sail{color:var(--muted);font-variant-numeric:tabular-nums}.fleet .off-chart .name{color:var(--muted)}.fleet .off-chart:before{box-shadow:inset 0 0 0 1.5px var(--muted);background:0 0}.timeline{min-width:0;margin-top:2rem}.scrub{--thumb:1.5rem;position:relative}.scrub input[type=range]{width:100%;height:var(--thumb);appearance:none;cursor:pointer;background:0 0;border:0;margin:0;padding:0;display:block}.scrub input[type=range]::-webkit-slider-runnable-track{background:var(--graticule);border-radius:2px;height:4px}.scrub input[type=range]::-moz-range-track{background:var(--graticule);border-radius:2px;height:4px}.scrub input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:var(--thumb);height:var(--thumb);margin-top:calc(2px - var(--thumb) / 2);background:var(--track);border:3px solid var(--field);border-radius:50%}.scrub input[type=range]::-moz-range-thumb{width:var(--thumb);height:var(--thumb);background:var(--track);border:3px solid var(--field);border-radius:50%}.lanes,.ends{margin-inline:calc(var(--thumb) / 2);position:relative}.ruler{height:1.2rem;position:relative}.ruler span{color:var(--muted);white-space:nowrap;font-size:.75rem;position:absolute;top:0;transform:translate(-50%)}.lane{padding:.3rem 0}.lane-name{overflow-wrap:anywhere;font-size:.85rem;line-height:1.3}.bar{background:var(--field);border-radius:2px;height:.7rem;margin-top:.2rem;position:relative}.heard,.gap,.warning,.playhead{position:absolute;top:0;bottom:0}.heard{background:var(--heard)}.gap{background:repeating-linear-gradient(-45deg, var(--gap) 0 2px, transparent 2px 6px);opacity:.8}.warning,.playhead{width:0;top:-.25rem;bottom:-.25rem}.warning{border-left:2px solid var(--ink);opacity:.5;margin-left:-1px}.playhead{border-left:2px solid var(--track);margin-left:-1px}.ends{justify-content:space-between;margin-top:.25rem;font-size:.8rem;display:flex}.gaps{padding:0;list-style:none}.gaps li+li{margin-top:.4rem}button.link{color:var(--ink);text-align:left;text-decoration:underline;-webkit-text-decoration-color:var(--graticule);text-decoration-color:var(--graticule);text-underline-offset:3px;background:0 0;border:0;padding:0}
