@font-face{font-family:Inter;src:url(../brand/fonts/inter-400-latin.woff2)format("woff2");font-weight:400 600;font-display:swap}@font-face{font-family:IBM Plex Mono;src:url(../brand/fonts/ibm-plex-mono-500-latin.woff2)format("woff2");font-weight:500;font-display:swap}@font-face{font-family:"Source Serif 4";src:url(../brand/fonts/source-serif-4-600-latin.woff2)format("woff2");font-weight:600;font-display:swap}:root{--navy:#071b2c;--navy2:#0b263d;--navy3:#12324f;--oyster:#fbf8f1;--oyster2:#f4efe6;--bronze:#a8783f;--bronze-light:#c9a26b;--orange:#c9792b;--ink:#17212b;--muted:#66717b;--muted-text:#9aa5ae;--mist:#d8d5cd;--good:#3fae5a;--fair:#e0a020;--poor:#d8473b;--panel-width:320px;--text:"Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--num:"IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace;--serif:"Source Serif 4", Georgia, serif;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{height:100%;margin:0;overflow:hidden}body{background:var(--navy);color:var(--oyster);font:400 13px/1.35 var(--text);-webkit-font-smoothing:antialiased}#app{grid-template-columns:1fr var(--panel-width);height:100dvh;display:grid;position:relative}#view{min-width:0;min-height:0;position:relative;overflow:hidden}#canvas-host{position:absolute;inset:0}#canvas-host canvas{touch-action:none;display:block}#labels{pointer-events:none;position:absolute;inset:0;overflow:hidden}.arrow-label{white-space:nowrap;pointer-events:none;font:500 11px/1 var(--num);color:var(--oyster);border-left:3px solid var(--bronze);background:#071b2cc7;border-radius:3px;padding:3px 6px;position:absolute;top:0;left:0}.arrow-label.true{border-left-color:#8fb3d9}.arrow-label.small{opacity:.9;padding:2px 4px;font-size:10px}#readouts{pointer-events:none;background:#071b2cdb;border:1px solid #a8783f73;border-radius:6px;gap:8px;width:348px;max-width:min(360px,100% - 20px);padding:10px 12px;font-size:12px;display:grid;position:absolute;top:10px;left:10px}#readouts>*{min-width:0}.r-top{justify-content:space-between;align-items:center;gap:8px;display:flex}.r-title,.r-label{font:600 10px var(--text);letter-spacing:.08em;text-transform:uppercase;color:var(--bronze-light)}.r-label{color:var(--muted-text)}.r-details{gap:8px;display:grid}.r-more{display:none}.r-perf{gap:4px;display:grid}.r-score{align-items:baseline;gap:10px;display:flex}.r-pct{font:500 34px/1 var(--num);color:var(--poor);letter-spacing:-.02em}.r-pct[data-level=fair]{color:var(--fair)}.r-pct[data-level=good]{color:var(--good)}.r-pct-sub{color:var(--oyster2);font-size:11.5px;line-height:1.3}.r-tiles{grid-template-columns:1fr 1.25fr .8fr;gap:6px;display:grid}.r-tile{background:#fbf8f10f;border-radius:5px;gap:1px;min-width:0;padding:6px 8px;display:grid}.r-value{font:500 13.5px var(--num);color:var(--oyster);white-space:nowrap}.r-sub{color:var(--muted-text);white-space:nowrap;font-size:10.5px}.r-forces{gap:4px;display:grid}.r-force{grid-template-columns:38px 1fr 104px;align-items:center;gap:8px;display:grid}.r-force-track{background:#fbf8f11a;border-radius:4px;height:8px;overflow:hidden}.r-force-fill{background:var(--good);border-radius:4px;width:0;height:100%;transition:width .2s ease-out}.r-force.side .r-force-fill{background:#8fa3b5}.r-force-value{font:500 12px var(--num);color:var(--oyster2);text-align:right;white-space:nowrap}.r-coach{border-top:1px solid #a8783f59;gap:4px;padding-top:8px;display:grid}.r-tips{gap:5px;margin:0;padding:0;list-style:none;display:grid}.tip{color:var(--oyster);padding-left:16px;font-size:12.5px;line-height:1.35;position:relative}.tip:before{content:"";background:var(--fair);border-radius:50%;width:8px;height:8px;position:absolute;top:5px;left:2px}.tip.good:before{background:var(--good)}.tip.warn:before{background:var(--poor)}.perf{background:#fbf8f11f;border-radius:5px;height:12px;position:relative;overflow:hidden}.perf-fill{background:var(--poor);width:0;height:100%;transition:width .2s ease-out,background-color .2s}.perf[data-level=fair] .perf-fill{background:var(--fair)}.perf[data-level=good] .perf-fill{background:var(--good)}.perf-text{font:500 11px var(--num);color:var(--oyster2)}.r-trace{align-items:center;gap:8px;display:flex}.spark{display:block}.muted{color:var(--muted-text);font-size:11px}.r-chart{color:var(--muted-text);font-size:11.5px}.r-warn{color:#ffe3cc;border-left:3px solid var(--orange);background:#c9792b47;padding:3px 6px;font-weight:600}.r-honest{color:var(--bronze-light);font-size:11px;font-style:italic}.r-actions{flex-wrap:wrap;gap:6px;display:flex}.r-btn,.act{pointer-events:auto;cursor:pointer;background:var(--navy2);border:1px solid var(--bronze);min-height:28px;color:var(--oyster);font:500 12px var(--text);border-radius:4px;padding:3px 10px}.r-btn:hover:not(:disabled),.act:hover:not(:disabled){background:var(--navy3)}.r-btn[aria-pressed=true]{border-color:var(--good);background:#1f5a34}.r-btn:disabled,.act:disabled{opacity:.4;cursor:not-allowed}.r-btn[hidden]{display:none}#wind-dial{z-index:1;filter:drop-shadow(0 2px 6px #00000073);width:216px;height:216px;position:absolute;bottom:10px;right:10px}#wind-dial svg{cursor:grab;touch-action:none;border-radius:50%;width:100%;height:100%;display:block}#wind-dial.fixed svg{cursor:default}#wind-dial svg:focus-visible{outline:2px solid var(--bronze-light);outline-offset:2px}.wd-face{fill:#071b2ceb;stroke:var(--bronze);stroke-width:2.5px}.wd-tick{stroke:var(--muted-text);stroke-width:1px}.wd-tick.major{stroke:var(--oyster);stroke-width:1.6px}.wd-num{fill:var(--oyster2);font:500 9px var(--num)}.wd-sector{fill:none;stroke-width:5px}.wd-sector.stbd{stroke:#2f9d57}.wd-sector.port{stroke:#d8473b}.wd-bow{fill:var(--oyster)}.wd-hub{fill:var(--navy2);stroke:var(--navy3);stroke-width:1.5px}.wd-boat{fill:#fbf8f11a}.wd-tws{fill:var(--oyster);font:500 19px var(--num)}.wd-aws{fill:#9cc4e8;font:500 13px var(--num)}.wd-unit{fill:var(--muted-text);font:500 7.5px var(--text);letter-spacing:.04em;text-transform:uppercase}.wd-true path,.wd-true circle{fill:var(--bronze-light)}.wd-app path,.wd-app circle{fill:#9cc4e8}.wd-true text,.wd-app text{fill:var(--navy);font:700 9.5px var(--text)}#wind-dial.fixed .wd-true path{opacity:.7}#notes{justify-items:end;gap:6px;display:grid;position:absolute;top:10px;right:10px}.note{color:var(--muted-text);background:#071b2ccc;border-radius:4px;padding:4px 8px;font-size:11px}.error{color:var(--oyster);background:#5a1d1a;border-radius:6px;max-width:520px;padding:10px 14px;font-weight:500}#view>.error{position:absolute;top:40%;left:50%;transform:translate(-50%,-50%)}#legend{background:#071b2cc7;border-radius:4px;align-items:center;gap:6px;padding:4px 8px;font-size:11px;display:flex;position:absolute;bottom:10px;left:10px}#legend .ramp{background:linear-gradient(90deg,#1d3fd1 0%,#f4f4ee 55.5%,#ff8a2a 100%);border-radius:4px;width:90px;height:8px}#slice-inset{z-index:2;background:var(--navy2);border:1px solid #a8783f99;border-radius:6px;flex-direction:column;width:300px;height:260px;display:flex;position:absolute;bottom:40px;left:10px;overflow:hidden}#slice-inset[hidden]{display:none}.slice-head{background:var(--navy);border-bottom:1px solid var(--navy3);align-items:center;gap:6px;padding:2px 4px 2px 8px;display:flex}.slice-head .ctl{flex:1;grid-template-columns:auto auto 1fr;align-items:center;gap:6px;margin:0;display:grid}.slice-head .ctl input{grid-column:auto;height:18px;margin:0}.slice-head label{white-space:nowrap;font-size:11px}.slice-head .value{font-size:11px}.slice-close{width:28px;height:28px;color:var(--oyster);cursor:pointer;background:0 0;border:0;font-size:20px;line-height:1}.slice-canvas{flex:auto;width:100%;min-height:0;display:block}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}#lesson-list{z-index:3;overscroll-behavior:contain;background:#071b2cf2;border:1px solid #a8783f99;border-radius:8px;width:400px;padding:14px 14px 10px;position:absolute;top:10px;bottom:10px;left:10px;overflow-y:auto}#lesson-list[hidden],#lesson-card[hidden]{display:none}.ll-head h2{font:600 20px/1.2 var(--serif);color:var(--oyster);margin:0 0 4px}.ll-intro{color:var(--muted-text);margin:0 0 10px}.ll-head{padding-right:34px;position:relative}.ll-close{cursor:pointer;width:34px;height:34px;color:var(--oyster);background:0 0;border:1px solid #0000;border-radius:6px;font-size:24px;line-height:1;position:absolute;top:-6px;right:-6px}.ll-close:hover{border-color:var(--bronze)}.ll-cards{gap:6px;margin:0;padding:0;list-style:none;display:grid}.ll-card{text-align:left;cursor:pointer;background:var(--navy2);border:1px solid var(--navy3);width:100%;color:var(--oyster);font:400 12px/1.35 var(--text);border-radius:6px;gap:2px;padding:8px 10px;display:grid}.ll-card:hover{border-color:var(--bronze)}.ll-top{align-items:baseline;gap:8px;display:flex}.ll-num{font:600 13px var(--num);color:var(--bronze-light);min-width:1.2em}.ll-title{font:600 14px var(--text);flex:1}.ll-tick{color:var(--good);font-size:15px;font-weight:700}.ll-summary{color:var(--oyster2);padding-left:calc(1.2em + 8px)}.ll-min{color:var(--muted-text);padding-left:calc(1.2em + 8px);font-size:11px}#lesson-card{z-index:3;border:1px solid var(--bronze);background:#071b2ced;border-radius:8px;gap:6px;width:520px;max-height:calc(100% - 20px);padding:10px 12px;display:grid;position:absolute;top:10px;left:50%;overflow-y:auto}.lc-where{font:600 12px var(--text);color:var(--bronze-light);text-transform:uppercase;letter-spacing:.05em}.lc-step,.lc-done{gap:6px;display:grid}.lc-step[hidden],.lc-done[hidden],.lc-why[hidden],.lc-hint[hidden],.lc-btn[hidden]{display:none}.lc-prompt{color:var(--oyster);margin:0;font-size:14px;line-height:1.4}.lc-why{color:var(--muted-text);margin:0;font-size:12.5px}.lc-hint{color:#ffe3cc;border-left:3px solid var(--orange);margin:0;padding-left:8px;font-size:12.5px}.lc-hold{background:#fbf8f11f;border-radius:3px;height:5px;overflow:hidden}.lc-hold-fill{background:var(--good);width:0;height:100%}.lc-result{gap:6px;display:grid}.lc-success{color:#d6f5dd;margin:0;font-size:13px;line-height:1.4}.lc-success:empty{display:none}#lesson-card[data-phase=success] .lc-success{border-left:3px solid var(--good);padding-left:8px}.lc-tools{flex-wrap:wrap;gap:6px;display:flex}.lc-btn{cursor:pointer;background:var(--navy2);border:1px solid var(--navy3);min-height:30px;color:var(--oyster);font:500 12px var(--text);border-radius:4px;padding:4px 10px}.lc-btn:hover:not(:disabled){border-color:var(--bronze)}.lc-btn:disabled{opacity:.45;cursor:default}.lc-primary{background:var(--bronze);border-color:var(--bronze-light);color:var(--navy);justify-self:start;min-width:90px;font-weight:600}.lc-primary:hover:not(:disabled){background:var(--bronze-light)}body[data-mode=list] #readouts,body[data-mode=list] #legend,body[data-mode=list] #slice-inset{display:none}#panel{border-left:1px solid var(--navy3);overscroll-behavior:contain;background:#071b2cf5;min-height:0;overflow-y:auto}.brand{border-bottom:1px solid var(--bronze);background:var(--navy2);align-items:center;gap:10px;padding:12px 14px 10px;display:flex}.brand .logo img{width:auto;height:30px;display:block}.brand h1{font:600 15px var(--serif);color:var(--oyster);white-space:nowrap;margin:0}.brand{flex-wrap:wrap}.help-btn{cursor:pointer;white-space:nowrap;border:1px solid var(--bronze);min-height:26px;color:var(--bronze-light);font:500 11.5px var(--text);background:0 0;border-radius:999px;margin-left:auto;padding:4px 10px}.help-btn:hover{background:var(--navy3);color:var(--oyster)}.learn-more{color:var(--bronze-light);font:500 12px var(--text);text-decoration:none}.learn-more:hover{color:var(--oyster);text-decoration:underline}.brand .learn-more{flex-basis:100%}#quick-tips{background:var(--navy2);width:min(460px,100vw - 32px);max-height:calc(100dvh - 32px);color:var(--oyster);border:1px solid var(--bronze);border-radius:8px;padding:18px 20px 16px;overflow-y:auto}#quick-tips::backdrop{background:#040e188c}#quick-tips h2{font:600 17px var(--serif);margin:0 28px 12px 0}.qt-close{cursor:pointer;border:1px solid var(--navy3);width:28px;height:28px;color:var(--oyster);background:0 0;border-radius:4px;font-size:18px;line-height:1;position:absolute;top:10px;right:12px}.qt-close:hover{border-color:var(--bronze)}.qt-list{grid-template-columns:max-content 1fr;gap:7px 12px;margin:0;font-size:12.5px;display:grid}.qt-list dt{color:var(--bronze-light);font-weight:600}.qt-list dd{color:var(--oyster2);margin:0}.qt-basis{border-top:1px solid var(--navy3);margin:14px 0 12px;padding-top:12px;font-size:12.5px}.qt-foot{gap:6px;font-size:11px;display:grid}.sheet-handle,.tabs{display:none}.groups{gap:10px;padding:10px;display:grid}.group{--accent:var(--bronze-light);background:var(--navy2);border:1px solid var(--navy3);border-left:4px solid var(--accent);border-radius:6px;padding:0 12px 6px}.group[data-group=lessons]{--accent:#c9a26b}.group[data-group=wind]{--accent:#7fb6e6}.group[data-group=main]{--accent:#c9a26b}.group[data-group=genoa]{--accent:#e58a3a}.group[data-group=smoke]{--accent:#d5dbe0}.group[data-group=view]{--accent:#6cc0ad}.group h2{font:inherit;margin:0 -12px 2px}.group-head{cursor:pointer;text-align:left;background:color-mix(in srgb, var(--accent) 16%, transparent);width:100%;color:var(--accent);font:600 15px var(--serif);border:0;border-radius:0 5px 0 0;align-items:center;gap:8px;padding:8px 12px;display:flex}.group-head:hover{background:color-mix(in srgb, var(--accent) 26%, transparent)}.group-head svg{flex:none;width:18px;height:18px}.group-head svg path{fill:none;stroke:currentColor;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round}.group-head span:first-of-type{flex:1}.chevron{border-bottom:2px solid;border-right:2px solid;width:8px;height:8px;margin:-3px 2px 0 0;transition:transform .15s;transform:rotate(45deg)}.group.collapsed .chevron{margin-top:0;transform:rotate(-45deg)}@media (width>=800px){.group.collapsed{padding-bottom:0}.group.collapsed h2{margin-bottom:0}.group.collapsed .group-head{border-radius:0 5px 5px 0}.group.collapsed>:not(h2){display:none}}.ctl{margin:8px 0}.slider{grid-template-columns:1fr auto;align-items:baseline;gap:2px 8px;display:grid}.slider label{color:var(--oyster)}.slider .hint{color:var(--muted-text);margin-left:6px;font-size:11px}.slider .value{font:500 12px var(--num);color:var(--accent,var(--bronze-light))}.slider input{width:100%;accent-color:var(--accent,var(--bronze));grid-column:1/-1;height:22px;margin:2px 0 0}.toggle{align-items:center;gap:8px;display:flex}.ctl.locked{opacity:.38}.ctl.locked input,.ctl.locked button{cursor:not-allowed}.ctl.unlocked{box-shadow:inset 3px 0 0 var(--bronze-light);background:#a8783f29;border-radius:4px;margin-left:-6px;margin-right:-6px;padding:4px 6px}.lessons-intro,.lessons-done{color:var(--oyster2);margin:8px 0}.lessons-done{color:var(--muted-text);font-size:12px}.lessons-open{background:var(--bronze);border-color:var(--bronze-light);width:100%;min-height:38px;color:var(--navy);font:600 14px var(--text)}.lessons-open:hover:not(:disabled){background:var(--bronze-light)}.share{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.share-status{color:var(--good);font-size:12px}.share-url{width:100%;font:500 11px var(--num);background:var(--navy2);color:var(--oyster);border:1px solid var(--navy3);padding:4px}.toggle input{accent-color:var(--accent,var(--bronze));width:18px;height:18px;margin:0}.seg-label{margin-bottom:4px;display:block}.seg-row{flex-wrap:wrap;gap:4px;display:flex}.seg-row button{cursor:pointer;border:1px solid var(--navy3);background:var(--navy);min-height:32px;color:var(--oyster);font:500 12px var(--text);border-radius:4px;flex-direction:column;flex:auto;justify-content:center;align-items:center;padding:4px 8px;line-height:1.1;display:inline-flex}.seg-row button:hover{border-color:var(--accent,var(--bronze))}.seg-row button[aria-checked=true]{background:var(--accent,var(--bronze));border-color:var(--accent,var(--bronze));color:var(--navy);font-weight:600}.seg-row button .mark{text-transform:uppercase;letter-spacing:.06em;color:var(--accent,var(--bronze-light));font-size:9px}.seg-row button .mark:empty{display:none}.seg-row button[aria-checked=true] .mark{color:var(--navy)}.seg-row button.marked{border-style:dashed;border-color:var(--accent,var(--bronze-light))}button:focus-visible,input:focus-visible,a:focus-visible{outline:2px solid var(--bronze-light);outline-offset:2px}@media (width<=799px){#app{flex-direction:column;display:flex}#view{flex:auto;order:1}#lesson-list,#lesson-card{border-width:1px 0 0;border-radius:0;order:3;width:auto;position:static;top:auto;left:auto}#lesson-list{flex:0 auto;max-height:60dvh;padding:10px 12px}#lesson-card{flex:none;gap:4px;max-height:30dvh;padding:8px 10px}.ll-head h2{font-size:17px}.lc-prompt{font-size:13px}body[data-mode=list] #panel{display:none}body[data-mode=lesson] #panel[data-expanded=true]{height:34dvh}body[data-mode=lesson][data-slice=true] #panel[data-expanded=true]{height:22dvh}#slice-inset{border-width:1px 0 0;border-radius:0;flex:0 0 200px;order:2;width:100%;height:200px;position:static}#panel{border-left:0;border-top:1px solid var(--bronze);flex-direction:column;flex:none;order:4;display:flex;overflow:hidden}#panel[data-expanded=true]{height:46dvh}#panel[data-expanded=false] .brand{display:none}.brand{border-bottom:0;border-top:1px solid var(--navy3);order:3;padding:6px 14px}.brand .logo img{height:22px}.brand h1{font-size:13px}.sheet-handle{background:var(--navy2);cursor:grab;touch-action:none;border:0;justify-content:center;align-items:center;width:100%;height:22px;padding:0;display:flex}.sheet-handle .grip{background:var(--muted);border-radius:3px;width:44px;height:5px}.tabs{background:var(--navy2);border-bottom:1px solid var(--navy3);display:flex}.tabs button{min-height:40px;color:var(--oyster2);font:600 13px var(--text);background:0 0;border:0;border-bottom:2px solid #0000;flex:1}.tabs button[aria-selected=true]{color:var(--bronze-light);border-bottom-color:var(--bronze)}.groups{overscroll-behavior:contain;flex:auto;padding:0;display:block;overflow-y:auto}#panel[data-expanded=false] .groups{display:none}.group{background:0 0;border:0;border-radius:0;padding:10px 14px 12px;display:none}.group.active{display:block}.group h2{display:none}#readouts{gap:5px;width:auto;max-width:calc(100% - 12px);padding:6px 8px;font-size:11px;top:6px;left:6px}.r-pct{font-size:24px}#readouts:not(.open) .r-details{display:none}.r-more{pointer-events:auto;border:1px solid var(--navy3);color:var(--bronze-light);font:500 11px var(--text);background:0 0;border-radius:4px;min-height:26px;padding:3px 8px;display:block}#legend{bottom:6px;left:6px}#notes{top:auto;bottom:6px;right:6px}#wind-dial{pointer-events:none;width:148px;height:148px;bottom:6px;right:6px}.wd-tws{font-size:23px}.wd-aws{font-size:16px}.wd-num{font-size:11px}.wd-unit{font-size:8.5px}.tabs button{padding:0 2px;font-size:11.5px}}
