html,body{color:#f6efd8;background:#143943;min-height:100%;margin:0;font-family:ui-rounded,Trebuchet MS,sans-serif}html{overflow-x:hidden}body{overflow:hidden auto}iframe{border:0}:root{--ink:#10366a;--panel:#12366a;--muted:#c5e9ff;--cyan:#2cd9ff;--lime:#b9f63a;--gold:#ffde45;--rim:#76dbff;--shadow:#082c5e}*{box-sizing:border-box}body{color:#fff;background:#24baff;margin:0;font-family:Arial,Helvetica,sans-serif}button,input{font:inherit}button,a{cursor:pointer}button{transition:transform .12s,background .12s}button:active{transform:translateY(2px)}button:disabled{opacity:.5;cursor:default}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid var(--gold);outline-offset:4px}main{min-height:100dvh;position:relative;overflow:hidden}canvas{pointer-events:none;width:100%;height:100dvh;position:fixed;inset:0}header{z-index:2;height:88px;padding:env(safe-area-inset-top) 5% 0;background:linear-gradient(#0867a8b0,#0000);justify-content:space-between;align-items:center;display:flex;position:relative}.brand{letter-spacing:1px;text-shadow:0 3px var(--ink);align-items:center;gap:12px;font-size:25px;font-weight:900;line-height:1;display:flex}.brand small{letter-spacing:4px;margin-top:8px;font-size:10px;display:block}.rune{color:var(--gold);font-size:46px}.edition{letter-spacing:2px;font-size:10px;font-weight:800}.quiet,.camera-mode{color:#fff;background:var(--panel);box-shadow:0 3px 0 var(--shadow);border:2px solid #9ae5ff;border-radius:14px;padding:11px 17px;font-size:12px;font-weight:800}.menu{z-index:1;background:linear-gradient(90deg,#075a9d35,#0000 65%);grid-template-columns:1fr 440px;gap:7%;min-height:calc(100dvh - 88px);padding:24px 7% 32px;display:grid;position:relative}.intro{align-self:center;margin-bottom:110px}.eyebrow{letter-spacing:2px;color:var(--gold);font-size:11px;font-weight:900}.intro h1{letter-spacing:-4px;color:#fff;text-shadow:0 5px #174d83,0 8px #174d8330;margin:22px 0;font-size:clamp(60px,7vw,110px);font-weight:900;line-height:1}.intro em{color:var(--gold);font-style:normal}.intro p{color:#fff;text-shadow:0 2px 3px var(--ink);font-size:17px;font-weight:700;line-height:1.6}.facts{gap:10px;margin-top:28px;font-size:11px;font-weight:800;display:flex}.facts span{background:var(--panel);border:1px solid var(--rim);border-radius:20px;padding:9px 12px}.panel{background:var(--panel);border:3px solid var(--rim);box-shadow:0 7px 0 var(--shadow);border-radius:25px;align-self:center;padding:23px}.sectiontop{justify-content:space-between;align-items:center;margin-bottom:17px;display:flex}.sectiontop h2{margin:0;font-size:21px;font-weight:900}.sectiontop>span{color:var(--muted);font-size:10px;font-weight:800}.courses{flex-direction:column;gap:8px;display:flex}.course{color:#fff;text-align:left;background:#204d81;border:2px solid #4878ad;border-radius:12px;align-items:center;gap:12px;width:100%;padding:11px;display:flex}.course:hover{background:#29649e}.course.selected{border-color:var(--lime);box-shadow:inset 4px 0 var(--lime);background:#20576b}.num{color:var(--cyan);font-size:21px;font-weight:900}.course b{font-size:13px}.course small{color:#e0f2ff;margin-top:5px;font-size:10px;display:block}.tag{white-space:nowrap;margin-left:auto;font-size:9px;font-weight:900}.primary{background:var(--gold);color:var(--ink);border:2px solid #fff18e;border-radius:14px;justify-content:space-between;width:100%;margin-top:18px;padding:15px 18px;font-size:16px;font-weight:900;display:flex;box-shadow:0 4px #c48416}.primary:hover{background:#ffed7a}.hint{text-align:center;color:var(--muted);font-size:11px;line-height:1.6}.multiplayer{border-top:1px solid #76dbff60;margin-top:20px;padding-top:15px}.multiplayer h3{margin:0 0 10px;font-size:13px;font-weight:800}.multiplayer input{color:#fff;background:#0a2b55;border:2px solid #5a93bd;border-radius:10px;width:100%;padding:11px;font-size:12px}.multiplayer input::placeholder{color:#bddef1}.roomrow{gap:8px;margin-top:8px;display:flex}.roomrow input{letter-spacing:1px;width:110px;min-width:60px;font-size:10px}.roomrow button{border:2px solid var(--rim);color:#fff;white-space:nowrap;background:#087dae;border-radius:10px;padding:10px;font-size:11px;font-weight:800}.multiplayer>small{color:var(--muted);margin-top:10px;font-size:10px;display:block}footer{letter-spacing:.4px;color:#fff;text-shadow:0 1px 3px var(--ink);grid-column:1/-1;justify-content:center;gap:22px;margin-top:5px;font-size:10px;display:flex}.modal{z-index:3;background:var(--panel);border:3px solid var(--rim);text-align:center;width:min(420px,90%);max-height:90dvh;box-shadow:0 7px 0 var(--shadow);border-radius:25px;padding:28px;position:fixed;top:50%;left:50%;overflow:auto;transform:translate(-50%,-50%)}.modal h2{margin:15px;font-size:40px;font-weight:900}.modal p{color:var(--muted);font-size:13px;line-height:1.6}.roomcode{letter-spacing:7px;color:var(--gold);font-size:35px;font-weight:900}.modal h3{font-size:20px;font-weight:800}.modal ul{text-align:left;padding:0;list-style:none}.modal li{background:#245184;border-radius:10px;margin:5px 0;padding:10px;font-size:13px}.modal li span{float:right}.hud{background:var(--panel);border:2px solid var(--rim);box-shadow:0 4px 0 var(--shadow);pointer-events:none;border-radius:19px;grid-template-columns:minmax(0,1fr) auto auto auto;align-items:center;gap:22px;padding:14px 20px;display:grid;position:absolute;top:100px;left:5%;right:5%}.hud small{letter-spacing:1.5px;color:var(--muted);margin-bottom:5px;font-size:9px;font-weight:800;display:block}.hud b{font-variant-numeric:tabular-nums;font-size:24px;font-weight:900}.hud>div:nth-child(3) b{color:var(--gold)}.hud i{font:700 10px Arial}.render-telemetry b{color:var(--lime);font-size:17px}.progress{background:var(--panel);border:2px solid var(--panel);pointer-events:none;border-radius:8px;width:90%;height:9px;position:absolute;top:182px;left:5%;overflow:hidden}.progress div{background:var(--lime);border-radius:8px;height:100%;transition:width .12s linear}.corner-callout{background:var(--gold);color:var(--ink);letter-spacing:.5px;pointer-events:none;border:2px solid #fff3ab;border-radius:13px;padding:10px 14px;font-size:10px;font-weight:900;position:absolute;top:204px;left:5%;box-shadow:0 3px #a3712350}.camera-mode{font-size:11px;position:absolute;top:204px;right:5%}.controls{left:5%;right:5%;bottom:max(24px,env(safe-area-inset-bottom));touch-action:none;pointer-events:none;align-items:flex-end;gap:12px;display:flex;position:absolute}.controls>div{pointer-events:auto}.actions{align-items:center;gap:12px;display:flex}.joystick-group{flex-direction:column;align-items:center;gap:10px;margin-left:auto;display:flex}.joystick-group>span{letter-spacing:.5px;color:#fff;background:var(--panel);pointer-events:none;border-radius:12px;padding:7px 10px;font-size:9px;font-weight:800}.joystick{width:150px;height:150px;box-shadow:inset 0 0 0 9px #20578e,0 5px 0 var(--shadow);touch-action:none;-webkit-user-select:none;user-select:none;cursor:grab;background:#14396ddb;border:3px solid #9ce9ff;border-radius:50%;position:relative}.joystick:active{cursor:grabbing;border-color:var(--gold)}.stick-knob{background:var(--gold);color:var(--ink);pointer-events:none;border:3px solid #fff7b8;border-radius:50%;justify-content:center;align-items:center;font-size:34px;display:flex;position:absolute;inset:29%;box-shadow:0 4px #af781d}.stick-axis{pointer-events:none;background:#a1e4ff45;position:absolute}.stick-axis.horizontal{height:2px;top:50%;left:16%;right:16%}.stick-axis.vertical{width:2px;top:16%;bottom:16%;left:50%}.controls .boost-shield{background:var(--panel);width:112px;min-width:112px;height:112px;box-shadow:0 5px 0 var(--shadow);touch-action:none;-webkit-user-select:none;user-select:none;border:0;border-radius:50%;place-items:center;padding:0;display:grid;position:relative}.boost-shield svg{width:100%;height:100%;position:absolute;inset:0}.boost-shield>span{color:#fff;text-shadow:0 2px #40220e;letter-spacing:1px;font-size:16px;font-weight:900;display:block;position:relative}.boost-shield small{letter-spacing:.2px;color:#c7ff8d;margin-top:6px;font-size:9px;display:block}.boost-shield:active{transform:scale(.95)}.countdown{color:var(--gold);text-shadow:0 6px 0 var(--ink);pointer-events:none;font-size:100px;font-weight:900;position:absolute;top:43%;left:50%;transform:translate(-50%,-50%)}.error{color:#ffdf8a;font-size:12px;line-height:1.6}.neterror{background:var(--panel);color:#ffdf8a;border-radius:10px;padding:10px;font-size:12px;position:absolute;top:252px;left:5%}.finishtime{font-weight:900;color:var(--gold)!important;font-size:50px!important}.finishtime small{font-size:13px}@media (width<=850px){header{height:78px}.brand{gap:8px;font-size:19px}.brand small{font-size:8px}.rune{font-size:37px}.edition{display:none}.menu{grid-template-columns:1fr;gap:22px;padding:10px 5% 25px}.intro{margin:5px 0 0}.intro h1{letter-spacing:-2px;margin:12px 0;font-size:57px}.intro h1 br{display:none}.intro p{margin:8px 0;font-size:13px}.intro p br{display:none}.facts{margin-top:14px;font-size:10px}.facts span{padding:7px 9px}.panel{justify-self:center;width:100%;max-width:500px;padding:18px}.course{padding:9px}footer{flex-wrap:wrap;gap:10px;font-size:9px}.hud{grid-template-columns:minmax(0,1fr) auto auto;gap:12px;padding:12px;top:90px}.hud b{font-size:17px}.hud small{letter-spacing:.6px;font-size:8px}.render-telemetry{display:none}.progress{top:160px}.corner-callout,.camera-mode{letter-spacing:0;padding:9px;font-size:9px;top:180px}.corner-callout{max-width:52%}.controls{gap:8px}.joystick{width:132px;height:132px}.joystick-group>span{letter-spacing:0;font-size:8px}.controls .boost-shield{width:94px;min-width:94px;height:94px}.boost-shield>span{font-size:13px}.boost-shield small{font-size:8px}header .quiet{padding:10px;font-size:10px}.neterror{top:226px}}@media (height<=500px){header{height:58px}.brand{font-size:17px}.rune{font-size:30px}.hud{border-radius:14px;padding:8px 12px;top:65px}.hud b{font-size:16px}.hud small{font-size:8px}.progress{height:7px;top:125px}.corner-callout,.camera-mode{padding:7px;font-size:9px;top:140px}.controls{bottom:max(12px,env(safe-area-inset-bottom))}.joystick{width:104px;height:104px}.joystick-group>span{display:none}.controls .boost-shield{width:82px;min-width:82px;height:82px}.neterror{top:183px}.countdown{font-size:65px}}@media (prefers-reduced-motion:reduce){button,.progress div{transition:none}}header{background:0 0}.brand,.edition{text-shadow:0 2px 3px #082c5e,0 1px #082c5e}.playing .hud{background:#10366a70;border-color:#b2edffb3;box-shadow:0 3px #082c5e40}.playing .hud b,.playing .hud small{text-shadow:0 2px 3px #082c5e}.playing header .quiet{background:#10366a9c}.playing .camera-mode{background:#10366aa6}.season-tabs{grid-template-columns:repeat(4,1fr);gap:5px;margin-bottom:12px;display:grid}.season-tabs button{color:#e0f2ff;background:#204d81;border:1px solid #76dbff77;border-radius:10px;padding:9px 3px;font-size:11px;font-weight:800}.season-tabs button[aria-pressed=true]{color:#10366a;background:#ffde45;border-color:#fff3ab}.courses{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#76dbff #12366a;max-height:365px;padding-right:4px;overflow-y:auto}.course{flex-shrink:0}.course .num{min-width:28px}.boost-shield.charge-empty{--shield-color:#ff5b58;--shield-face:#ac3f38;--shield-center:#632938}.boost-shield.charge-half{--shield-color:#ffde45;--shield-face:#c59528;--shield-center:#63501d}.boost-shield.charge-full{--shield-color:#8bf04d;--shield-face:#39a952;--shield-center:#185d3e}.boost-shield svg circle{transition:fill .2s,stroke .2s}.boost-shield small{color:#fff7db;font-size:8px}.boost-shield.charging{opacity:1}.boost-shield.firing{box-shadow:0 0 0 5px var(--shield-color),0 5px 0 var(--shadow)}.multiplayer .roomrow{grid-template-columns:1fr 1fr;display:grid}.multiplayer .roomrow button{white-space:normal;min-height:44px}.open-rooms{margin-top:18px}.open-rooms h3{justify-content:space-between;display:flex}.open-rooms h3>span{color:var(--cyan)}.open-rooms p{color:var(--muted);font-size:11px;line-height:1.6}.open-room{color:#fff;text-align:left;background:#204d81;border:1px solid #76dbff88;border-radius:12px;justify-content:space-between;align-items:center;gap:10px;width:100%;margin-top:7px;padding:11px;display:flex}.open-room b{font-size:12px}.open-room small{color:var(--muted);margin-top:5px;font-size:10px;display:block}.open-room>span:last-child{white-space:nowrap;font-size:10px}.open-room strong{color:var(--gold);margin-top:5px;font-size:12px;display:block}.open-room:hover{background:#29649e}.harbor{--ink:#332219;--muted:#63513b;--rim:#b79762;--shadow:#382218;color:#332219;isolation:isolate;background:#087d86;padding:12px}.harbor-backdrop,.timber-frame{display:none}.harbor .harbor-backdrop{z-index:-2;background:#21cbd1 url(/shared/harbor.webp) 50%/cover no-repeat;display:block;position:fixed;inset:0}.harbor .harbor-backdrop:after{content:"";background:linear-gradient(90deg,#063e4910,#0000 55%,#123b4228);position:absolute;inset:0}.harbor>canvas{visibility:hidden}.harbor .timber-frame{z-index:10;pointer-events:none;border:12px solid #805534;border-image:linear-gradient(125deg,#57331f,#c59a62 14%,#725032 26%,#b68b57 46%,#55301c 66%,#be925f 82%,#5d3b26) 1;display:block;position:fixed;inset:0;box-shadow:inset 0 0 0 3px #38291e,inset 0 0 0 5px #e1c39088,inset 0 0 24px #26372388}.harbor header{background:0 0;height:74px;padding:8px 4%}.harbor header .brand{color:#ffdea0;text-shadow:1px 2px #463122,0 3px 5px #173f45;font-family:Georgia,serif;font-size:22px}.harbor header .rune{color:#ffdc7d}.harbor header .edition{color:#f8edd2;text-shadow:0 2px 3px #133e48;letter-spacing:2px}.harbor header>.quiet{display:none}.harbor .menu{background:0 0;grid-template-columns:minmax(0,1fr) minmax(340px,430px);align-items:center;gap:5%;max-width:1500px;min-height:calc(100dvh - 98px);margin:auto;padding:25px 4% 24px}.harbor .intro{flex-direction:column;justify-content:center;align-self:start;min-height:610px;margin:0;padding-top:170px;display:flex;position:relative}.harbor .intro>.eyebrow{color:#fff3ce;letter-spacing:3px;text-shadow:0 2px 3px #155162;margin-bottom:4px}.harbor .intro h1{letter-spacing:.02em;color:#ffe1a0;-webkit-text-stroke:1.5px #855626;text-shadow:1px 1px #fff5ce,3px 4px #7c5129,5px 7px #422d20,7px 10px 9px #073e4b88;margin:14px 0 28px;font-family:Georgia,Times New Roman,serif;font-size:clamp(64px,7.3vw,112px);font-weight:900;line-height:1.06}.harbor .intro h1 em{color:#ffdfa0;white-space:nowrap;font-size:.64em;display:block}.harbor .parchment-scroll{color:#412b1a;text-shadow:0 1px #fff2d3;background:radial-gradient(at 30% 30%,#fff0c9,#0000 65%),linear-gradient(100deg,#c69148,#f3d699 7%,#f7e4b4 85%,#c48f43);border:2px solid #754c29;border-radius:9px 18px 12px 6px;width:fit-content;max-width:100%;margin:0;padding:20px 28px;font-family:Georgia,serif;font-size:clamp(16px,1.65vw,24px);font-weight:700;line-height:1.5;position:relative;transform:rotate(-1deg);box-shadow:0 5px #553b24,0 9px 18px #123f4c55}.harbor .facts{grid-template-columns:repeat(3,1fr);gap:12px;max-width:690px;margin-top:26px;display:grid}.harbor .facts span{color:#ffe4a7;text-align:center;text-transform:uppercase;text-shadow:1px 2px #3e3525,-1px -1px #5f5136;white-space:nowrap;background:linear-gradient(145deg,#e0e0cd,#9bafa9 20%,#758b87 65%,#acb8aa);border:3px solid #d9d8c5;border-radius:12px;padding:17px 8px;font-family:Georgia,serif;font-size:clamp(11px,1.2vw,18px);position:relative;box-shadow:inset 0 2px #f8f6dd,inset 0 -3px #586c67,0 5px #354344,0 8px 12px #093b4266}.harbor-crest{text-align:center;color:#ffe0a0;background:repeating-linear-gradient(90deg,#0000 0 34px,#5b351e 35px 38px),radial-gradient(circle at 35% 20%,#c78d56,#77452f 75%);border:10px solid #9bafb0;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;width:156px;height:156px;display:flex;position:absolute;top:0;right:6%;box-shadow:inset 0 0 0 3px #453424,0 0 0 3px #543928,0 6px 9px #153c4766}.harbor-crest b{text-shadow:1px 2px #382217;font:900 19px/1.1 Georgia,serif}.harbor-crest small{color:#fff0cd;background:linear-gradient(#a86637,#75401f);border:2px solid #4d2e1b;border-radius:4px;padding:7px 2px;font:700 10px Georgia,serif;position:absolute;bottom:7px;left:-18px;right:-18px;transform:rotate(-3deg);box-shadow:0 3px #493424}.crest-swords{z-index:-1;color:#d8c08c;text-shadow:0 3px #463127;font-size:170px;line-height:1;position:absolute;top:-22px}.harbor .panel{background:radial-gradient(at 15% 0,#fff0cd,#0000 60%),linear-gradient(110deg,#ecd19f,#f6e6c2 55%,#dec18e);border:5px solid #987448;border-radius:16px;align-self:center;max-width:none;padding:22px;box-shadow:inset 0 0 0 2px #ffe8b5,inset 0 0 25px #a6752830,0 0 0 2px #4b3624,0 8px #493425,0 15px 25px #083f4866}.harbor .sectiontop{gap:12px}.harbor .sectiontop h2{color:#432e21;font:900 23px Georgia,serif}.harbor .sectiontop>span{text-align:right;color:#786040;max-width:80px;font-size:10px;line-height:1.5}.harbor .season-tabs button{color:#fce6bb;text-shadow:0 1px #342417;background:linear-gradient(#987249,#66462d);border:2px solid #8c6841;min-height:44px;font-size:11px;box-shadow:inset 0 1px #ccaa71,0 2px #513d28}.harbor .season-tabs button[aria-pressed=true]{color:#3e2c1c;text-shadow:0 1px #ffe6b0;background:linear-gradient(#f2d389,#c69a48);border-color:#7e5b30}.harbor .courses{scrollbar-color:#987448 #e2c598;max-height:300px}.harbor .course{background:linear-gradient(135deg,#617b7a,#314c53);border:2px solid #a1b0a8;border-radius:9px;min-height:60px;padding:12px 10px;box-shadow:inset 0 1px #d7dfcd,0 2px #324446}.harbor .course.selected{background:linear-gradient(135deg,#496d59,#234843);border-color:#f6d189;box-shadow:inset 4px 0 #e4be72,inset 0 1px #c9d5b7,0 2px #324446}.harbor .course:hover{background:#486866}.harbor .num{color:#ffe0a0;text-shadow:1px 2px #28392e}.harbor .course b{color:#fff2d1;font-size:13px}.harbor .course small{color:#dbe7df;font-size:10px}.harbor .course .tag{color:#ffe0a0!important}.harbor .primary{color:#3c2b1d;text-shadow:0 1px #ffeabb;background:linear-gradient(#ffdc83,#dca748);border:2px solid #754f24;border-radius:9px;min-height:48px;font-family:Georgia,serif;font-size:19px;box-shadow:inset 0 2px #fff0b5,0 4px #754f2a}.harbor .primary:hover{background:linear-gradient(#ffe7a8,#e9ba5d)}.harbor .hint,.harbor .multiplayer>small,.harbor .open-rooms p{color:#675339}.harbor .multiplayer{border-top:2px solid #a8824b66}.harbor .multiplayer h3{color:#443023;font:700 16px Georgia,serif}.harbor .multiplayer input{color:#432e21;background:#fff2d8;border:2px solid #a2855c;min-height:46px;font-size:13px;box-shadow:inset 0 2px 5px #69462220}.harbor .roomrow button{color:#fff1d3;background:linear-gradient(#94704c,#63462f);border:2px solid #bb9968;min-height:48px;box-shadow:inset 0 1px #d4b17d,0 2px #463322}.harbor .open-room{color:#fff2d0;background:linear-gradient(#627975,#354e50);border:2px solid #a1b0a8}.harbor .open-room small{color:#d3e4dd}.harbor .open-room strong,.harbor .open-rooms h3>span{color:#aa7028}.harbor .open-room:hover{background:#476c67}.harbor footer{color:#fff1cd;text-shadow:0 2px 3px #063e49;flex-wrap:wrap;gap:12px;font-size:10px}.harbor .error{color:#9c3227}.harbor button:focus-visible,.harbor input:focus-visible{outline-color:#2d7275}@media (width<=850px){.harbor{padding:9px}.harbor .timber-frame{border-width:9px}.harbor header{height:58px;padding:5px 5%}.harbor header .brand{font-size:17px}.harbor header .rune{font-size:29px}.harbor .harbor-backdrop{background-position:65% 0}.harbor .menu{grid-template-columns:minmax(0,1fr);gap:28px;padding:0 4% 22px}.harbor .intro{justify-content:flex-end;min-height:400px;padding-top:125px}.harbor-crest{border-width:7px;width:110px;height:110px;right:4%}.harbor-crest b{font-size:14px}.harbor-crest small{padding:5px;font-size:8px;bottom:0;left:-12px;right:-12px}.crest-swords{font-size:128px;top:-19px}.harbor .intro>.eyebrow{letter-spacing:2px;font-size:9px}.harbor .intro h1{-webkit-text-stroke:1px #855626;margin:10px 0 22px;font-size:clamp(52px,13vw,94px);line-height:1.05}.harbor .intro h1 br{display:block}.harbor .intro h1 em{font-size:.62em}.harbor .parchment-scroll{width:100%;padding:15px 17px;font-size:15px}.harbor .intro p br{display:block}.harbor .facts{gap:7px;margin-top:20px}.harbor .facts span{border-width:2px;padding:13px 4px;font-size:10px}.harbor .panel{width:100%;max-width:520px;padding:17px}.harbor .sectiontop h2{font-size:22px}.harbor .courses{max-height:285px}.harbor .course{padding:11px 9px}.harbor footer{background:#0e5756c9;border-radius:9px;padding:12px;font-size:9px;line-height:1.5}}@media (prefers-reduced-motion:reduce){.harbor *{transition:none}}.harbor .menu{min-height:calc(100dvh - 24px);padding-top:30px}.harbor .intro h1{text-align:center;width:100%;margin-bottom:32px}.harbor-crest b{white-space:nowrap;font-size:18px;line-height:1.2}.harbor-crest b span{display:block}.harbor-crest b span:last-child{font-size:14px}.harbor .sectiontop>span{white-space:nowrap;max-width:none}@media (width<=850px){.harbor .menu{padding-top:22px}.harbor .intro{min-height:380px;padding-top:135px}.harbor .intro h1{margin:12px 0 28px}.harbor-crest b{font-size:16px}.harbor-crest b span:last-child{font-size:10px}.harbor .parchment-scroll{margin-top:0}}.harbor .harbor-sections{flex-direction:column;gap:22px;min-width:0;display:flex}.harbor .waters-heading{color:#fff0c8;text-shadow:0 2px 4px #17474b}.harbor .waters-heading h2{margin:0 0 8px;font:900 29px Georgia,serif}.harbor .waters-heading p{margin:0;font-size:12px;line-height:1.6}.harbor .harbor-sections .panel{align-self:stretch;width:100%;min-width:0;margin:0}.harbor .season-panel{padding:17px}.season-kicker{text-transform:uppercase;letter-spacing:1.5px;color:#80643d;margin-bottom:6px;font-size:9px;font-weight:900;display:block}.harbor .season-panel h3,.harbor .solo-launch h3{color:#432e21;margin:0;font:700 23px Georgia,serif}.harbor .season-panel .sectiontop{margin-bottom:10px}.slider-controls{justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;display:flex}.slider-controls>span{color:#735d40;font-size:10px}.slider-arrow{color:#fff2cc;background:linear-gradient(#b18a59,#775234);border:2px solid #a38152;border-radius:9px;width:38px;height:36px;font-size:19px;font-weight:700;box-shadow:0 2px #65482f}.course-slider{scroll-snap-type:x mandatory;overscroll-behavior-x:contain;scrollbar-width:thin;scrollbar-color:#987448 #e2c598;gap:12px;padding:2px 2px 12px;scroll-padding-left:2px;display:flex;overflow-x:auto}.course-slide{scroll-snap-align:start;text-align:left;color:#fff0cb;background:linear-gradient(#536e6e,#2b464b);border:3px solid #8ea5a0;border-radius:12px;flex:0 0 88%;min-width:0;max-width:290px;padding:0 0 13px;overflow:hidden;box-shadow:0 3px #354346}.course-slide.selected{border-color:#e8b950;box-shadow:0 0 0 2px #78552b,0 3px #354346}.course-slide.locked:disabled{opacity:1;cursor:not-allowed;background:#4a5553;border-color:#9b9b8b}.course-slide.locked .course-map{filter:saturate(.25);opacity:.72}.course-slide>b,.course-slide>small,.slide-action{margin:10px 13px 0;display:block}.course-slide>b{font-size:16px;line-height:1.25}.course-slide>small{color:#d7e6df;font-size:10px}.slide-action{color:#ffe2a2;font-size:11px;font-weight:700}.course-slide.locked .slide-action{color:#e7ded0}.course-map{border-bottom:2px solid #b8c4a2;height:102px;position:relative;overflow:hidden}.course-map svg{width:100%;height:100%;padding:9px 12px}.slide-number{color:#fff0ca;background:#183e43df;border-radius:7px;padding:4px 7px;font-size:15px;font-weight:900;position:absolute;top:7px;left:8px}.slide-state{color:#fff0ca;background:#183e43ed;border-radius:6px;padding:4px 6px;font-size:9px;font-weight:700;position:absolute;bottom:6px;right:7px}.harbor .solo-launch p{color:#675339;margin:8px 0;font-size:12px;line-height:1.5}.harbor .solo-launch .primary{margin-top:15px}.harbor .harbor-sections .multiplayer{border-top:5px solid #987448;padding-top:22px}.harbor .harbor-sections .open-rooms h3{color:#432e21;margin:0 0 12px;font:700 21px Georgia,serif}.harbor .harbor-sections .open-rooms h3>span{margin-left:auto}.harbor .menu{grid-template-columns:minmax(0,1fr) minmax(350px,470px);align-items:start}.harbor .intro{position:sticky;top:25px}@media (width<=850px){.harbor .menu{grid-template-columns:minmax(0,1fr)}.harbor .intro{position:relative;top:auto}.harbor .harbor-sections{gap:20px}.harbor .season-panel{padding:15px}.course-slide{flex-basis:86%;max-width:none}.harbor .waters-heading h2{font-size:26px}.harbor .harbor-sections .multiplayer{padding-top:17px}}.harbor{--menu-gold:#ffe19b;--menu-outline:#293d3e;padding:0}.harbor .timber-frame{display:none}.harbor .menu{max-width:1180px;min-height:100dvh;padding:34px 5% 40px;display:block}.harbor .intro{text-align:center;justify-content:flex-end;align-items:center;max-width:850px;min-height:580px;margin:0 auto 54px;padding-top:180px;position:relative;top:auto}.harbor .intro h1{letter-spacing:.025em;-webkit-text-stroke:1px #5f3823;color:#ffde81;text-shadow:2px 3px #ffd271,4px 6px #875024,6px 9px #412e28,7px 12px 8px #123a4b70;margin:15px 0 30px;font-family:Midgard Runes,fantasy;font-size:clamp(65px,8vw,112px);line-height:1.04}.harbor .intro h1 em{font-size:.59em}.harbor .harbor-crest{right:calc(50% - 78px);transform:rotate(5deg)}.harbor .harbor-crest b{letter-spacing:.035em;font-family:Midgard Runes,fantasy;font-weight:900;line-height:1.4}.harbor .parchment-scroll{box-shadow:none;color:#fff9de;text-shadow:0 2px #16434b,0 3px 5px #16434b;background:0 0;border:0;border-radius:0;padding:0 8px;font:700 22px/1.6 Arial,sans-serif;transform:none}.harbor .facts{flex-wrap:wrap;justify-content:center;gap:26px;margin-top:22px;display:flex}.harbor .facts span{box-shadow:none;color:#ffeba9;text-shadow:1px 2px #294b46;letter-spacing:.025em;background:0 0;border:0;border-radius:0;padding:3px 0;font-family:Midgard Runes,fantasy;font-size:18px}.harbor .facts span:before{content:"◆";color:#ffe187;margin-right:9px;font-family:Arial,sans-serif;font-size:11px}.harbor .harbor-sections{grid-template-columns:repeat(2,minmax(0,1fr));gap:44px 36px;display:grid}.harbor .waters-heading{text-align:center;grid-column:1/-1}.harbor .waters-heading h2,.harbor .season-panel h3,.harbor .solo-launch h3,.harbor .multiplayer h3,.harbor .harbor-sections .open-rooms h3{color:#ffe5a0;letter-spacing:.025em;text-shadow:1px 2px #183e43,0 3px 5px #183e43;margin:0 0 12px;font-family:Midgard Runes,fantasy;font-size:28px;line-height:1.35}.harbor .waters-heading p{color:#f3fff0;text-shadow:0 2px #1a474a;font-size:13px}.harbor .season-panel,.harbor .solo-launch,.harbor .multiplayer,.harbor .open-rooms{box-shadow:none;background:0 0;border:0;border-radius:0;width:100%;min-width:0;max-width:none;margin:0;padding:0}.harbor .season-panel .sectiontop{text-align:center;justify-content:center;margin-bottom:8px;position:relative}.harbor .season-panel .sectiontop>div{align-items:center;gap:13px;display:flex}.harbor .season-panel .sectiontop>span{color:#fff2c6;text-shadow:0 2px #143f47;font-size:10px;position:absolute;top:0;right:0}.season-emblem{color:#b6ffa6;filter:drop-shadow(0 3px #204644);place-items:center;width:44px;height:50px;font:700 35px Arial,sans-serif;display:grid}.season-summer .season-emblem{color:#ffe16b}.season-autumn .season-emblem{color:#ffb566}.season-winter .season-emblem{color:#c3f5ff}.harbor .season-panel h3{margin:0;font-size:26px}.harbor .slider-controls{margin:0 8px 10px}.harbor .slider-controls>span{color:#f4fff0;text-shadow:0 2px #19484a;font-size:11px}.harbor .slider-arrow{box-shadow:none;color:#ffecb2;filter:drop-shadow(0 3px 2px #14333b80);background:url(/shared/menu/wood.svg) 50%/100% 100% no-repeat;border:0;border-radius:0;width:48px;height:43px}.harbor .course-slider{scrollbar-color:#ffdda0 #14595b;scrollbar-width:thin;gap:18px;padding:8px 12px 18px;scroll-padding-left:12px}.harbor .course-slide,.harbor .course-slide.selected,.harbor .course-slide.locked:disabled{max-width:290px;box-shadow:none;text-align:center;color:#fff2cc;filter:drop-shadow(0 5px 3px #143a4a66);background:0 0;border:0;border-radius:0;flex:0 0 72%;padding:0 0 8px;position:relative;overflow:visible}.harbor .course-map{background:url(/shared/menu/shield.svg) 50%/100% 100% no-repeat;border:0;height:230px;overflow:visible}.harbor .course-map svg{background:var(--map-grass);clip-path:polygon(4% 10%,50% 0,96% 10%,90% 75%,50% 100%,10% 75%);width:68%;height:55%;padding:8px;position:absolute;top:15%;left:16%}.harbor .slide-number{text-align:center;color:#fff3c2;text-shadow:2px 2px #344c45;background:0 0;border-radius:0;width:50px;padding:6px 0;font-size:24px;top:0;left:calc(50% - 25px)}.harbor .slide-state{color:#fff3c3;text-shadow:0 2px #503a29;background:0 0;padding:0;font-size:11px;bottom:28px;left:0;right:0}.harbor .course-slide>b{color:#fff0bc;text-shadow:1px 2px #513126;background:url(/shared/menu/wood.svg) 50%/100% 100% no-repeat;justify-content:center;align-items:center;min-height:58px;margin:-14px 0 0;padding:13px 22px;font-family:Midgard Runes,fantasy;font-size:17px;line-height:1.3;display:flex;position:relative}.harbor .course-slide.selected>b{color:#3f3324;text-shadow:0 1px #fff3b9;background-image:url(/shared/menu/gold.svg)}.harbor .course-slide.selected .course-map{filter:drop-shadow(0 0 5px #ffe689)}.harbor .course-slide>small,.harbor .slide-action{color:#efffef;text-shadow:0 2px #1e4747;margin:9px 0 0;font-size:11px}.harbor .slide-action{color:#ffe99b;font-size:12px}.harbor .course-slide.locked .course-map{filter:saturate(.35);opacity:.8}.harbor .course-slide.locked>b{filter:saturate(.4)}.harbor .solo-launch,.harbor .multiplayer,.harbor .open-rooms{text-align:center;align-self:start}.harbor .solo-launch{grid-column:1/-1;justify-self:center;max-width:550px;margin-top:8px}.harbor .season-kicker{color:#d5f4ea;text-shadow:0 2px #1a4244;margin-bottom:10px}.harbor .solo-launch p,.harbor .hint,.harbor .multiplayer>small,.harbor .open-rooms p{color:#f5f8df;text-shadow:0 2px #174146;font-size:12px;line-height:1.6}.harbor .primary,.harbor .roomrow button,.harbor .open-room{box-shadow:none;filter:drop-shadow(0 5px 3px #12323d80);color:#fff0b8;text-shadow:1px 2px #523027;background:url(/shared/menu/wood.svg) 50%/100% 100% no-repeat;border:0;border-radius:0;min-height:78px;padding:20px 30px;font-family:Midgard Runes,fantasy;font-size:19px}.harbor .primary{color:#433421;text-shadow:0 1px #fff5c6;background-image:url(/shared/menu/gold.svg);justify-content:center;align-items:center;gap:20px;min-height:90px;font-size:26px}.harbor .primary:hover{filter:brightness(1.08)drop-shadow(0 6px 4px #12323d80);background:url(/shared/menu/gold.svg) 50%/100% 100% no-repeat}.harbor .roomrow button:hover,.harbor .open-room:hover{filter:brightness(1.12)drop-shadow(0 5px 3px #12323d80);background:url(/shared/menu/wood.svg) 50%/100% 100% no-repeat}.harbor .harbor-sections .multiplayer{border:0;padding:0}.harbor .multiplayer h3{font-size:26px}.harbor .multiplayer input{color:#fff6d6;max-width:420px;box-shadow:none;text-align:center;background:#174f5a85;border:0;border-bottom:3px solid #ffe5a0;border-radius:0;min-height:50px;font-size:16px}.harbor .roomrow{gap:10px;margin-top:15px}.harbor .roomrow button{white-space:normal;min-height:85px;padding:20px;font-size:16px;line-height:1.4}.harbor .open-rooms h3{display:block}.harbor .open-rooms h3>span{color:#ffeba6;margin-left:14px}.harbor .open-room{text-align:left;min-height:95px;padding:22px 30px;font-family:Arial,sans-serif}.harbor .open-room b{font-size:15px}.harbor .open-room small{color:#fff0cd;font-size:11px}.harbor .open-room strong{color:#fff0a3}.harbor footer{text-align:center;text-shadow:0 2px #183e43;background:0 0;border:0;border-radius:0;margin-top:50px;padding:0;font-size:11px;line-height:1.8}.harbor .error{color:#ffe2b3;text-shadow:0 2px #7b2929}.harbor button:focus-visible,.harbor input:focus-visible{outline-offset:4px;outline:3px solid #fff6bc}.harbor .course-slide:focus-visible{outline-offset:0}@media (hover:hover){.harbor .course-slide.unlocked:hover{transform:translateY(-4px)}}@media (width<=850px){.harbor .menu{padding:26px 6% 32px}.harbor .intro{min-height:440px;margin-bottom:40px;padding-top:143px}.harbor .harbor-crest{right:calc(50% - 55px)}.harbor .intro h1{margin-bottom:24px;font-size:clamp(58px,13.5vw,94px)}.harbor .parchment-scroll{width:auto;font-size:16px}.harbor .facts{gap:15px;margin-top:18px}.harbor .facts span{font-size:12px}.harbor .facts span:before{margin-right:5px;font-size:8px}.harbor .harbor-sections{grid-template-columns:minmax(0,1fr);gap:34px}.harbor .waters-heading h2{font-size:27px}.harbor .waters-heading p{font-size:12px}.harbor .course-slide{flex-basis:76%;max-width:290px}.harbor .course-map{height:228px}.harbor .solo-launch{grid-column:auto}.harbor .season-panel .sectiontop>span{top:-12px}.harbor .harbor-sections .multiplayer{padding:0}.harbor footer{margin-top:35px;font-size:10px}}@media (prefers-reduced-motion:reduce){.harbor button:hover{transform:none}}.harbor{font-size:18px}.harbor .intro{min-height:660px;padding-top:205px}.harbor .intro h1{text-shadow:2px 3px #ffd271,4px 6px #875024,6px 9px #412e28;font-size:clamp(72px,8.8vw,126px);line-height:1.12}.harbor .harbor-crest{width:180px;height:180px;right:calc(50% - 90px)}.harbor .harbor-crest b{font-size:24px;line-height:1.3}.harbor .harbor-crest b span:last-child{font-size:18px}.harbor .harbor-crest small{padding:9px 5px;font:700 15px/1.35 Arial,sans-serif;bottom:0;left:-28px;right:-28px}.harbor .parchment-scroll{text-shadow:0 2px 2px #123c43,1px 0 #123c43,-1px 0 #123c43;font-size:24px;font-weight:800;line-height:1.55}.harbor .facts{gap:20px}.harbor .facts span{text-shadow:1px 2px #193d40;font-size:21px;font-weight:900;line-height:1.5}.harbor .waters-heading h2,.harbor .solo-launch h3,.harbor .multiplayer h3,.harbor .harbor-sections .open-rooms h3{letter-spacing:.01em;font-size:34px;line-height:1.4}.harbor .season-panel h3{letter-spacing:0;font-size:32px;line-height:1.4}.harbor .waters-heading p,.harbor .solo-launch p,.harbor .hint,.harbor .multiplayer>small,.harbor .open-rooms p{color:#fffce9;text-shadow:0 2px 2px #123c43,1px 0 #123c43,-1px 0 #123c43;font-size:18px;font-weight:700;line-height:1.6}.harbor .season-kicker{letter-spacing:.7px;color:#fff7d6;font-size:16px;font-weight:800;line-height:1.5}.harbor .season-panel .sectiontop{flex-direction:column;gap:6px}.harbor .season-panel .sectiontop>span{color:#fffce9;font-size:16px;font-weight:800;line-height:1.5;position:static}.harbor .slider-controls{gap:10px;margin:10px 0 14px}.harbor .slider-controls>span{text-align:center;color:#fffce9;font-size:16px;font-weight:700;line-height:1.5}.harbor .slider-arrow{flex-shrink:0;width:54px;height:50px;font-size:28px}.harbor .course-slide,.harbor .course-slide.selected,.harbor .course-slide.locked:disabled{flex-basis:86%;max-width:330px}.harbor .slide-number{width:60px;font-size:30px;left:calc(50% - 30px)}.harbor .slide-state{font-size:17px;font-weight:800;bottom:30px}.harbor .course-slide>b{letter-spacing:0;min-height:80px;padding:18px 24px;font-size:22px;line-height:1.45}.harbor .course-slide>small,.harbor .slide-action,.harbor .course-slide.locked .slide-action{color:#fffce9;text-shadow:0 2px 2px #123c43,1px 0 #123c43,-1px 0 #123c43;margin-top:10px;font-size:17px;font-weight:800;line-height:1.55}.harbor .slide-action{color:#ffe79a}.harbor .primary{min-height:105px;font-size:32px;line-height:1.4}.harbor .roomrow button{min-height:110px;padding:22px 26px;font-size:22px;line-height:1.45}.harbor .multiplayer input{background:#123f4ce0;min-height:62px;font-size:20px;font-weight:700}.harbor .multiplayer input::placeholder{color:#fff3cf;opacity:1}.harbor .open-room{flex-wrap:wrap;gap:12px;min-height:120px;padding:26px 30px}.harbor .open-room b{font-size:20px;line-height:1.4}.harbor .open-room small{font-size:16px;font-weight:700;line-height:1.5}.harbor .open-room>span:last-child,.harbor .open-room strong{font-size:18px;font-weight:800}.harbor footer{text-shadow:0 2px 2px #123c43,1px 0 #123c43,-1px 0 #123c43;gap:14px;font-size:16px;font-weight:700;line-height:1.65}.harbor .error{font-size:18px;font-weight:800;line-height:1.6}.harbor button:disabled{opacity:1;filter:saturate(.5)}@media (width<=850px){.harbor .intro{min-height:540px;padding-top:185px}.harbor .harbor-crest{border-width:9px;width:150px;height:150px;right:calc(50% - 75px)}.harbor .harbor-crest b{font-size:20px}.harbor .harbor-crest b span:last-child{font-size:16px}.harbor .harbor-crest small{font-size:14px;left:-29px;right:-29px}.harbor .intro h1{font-size:clamp(64px,14vw,104px)}.harbor .parchment-scroll{font-size:20px}.harbor .facts{gap:10px 18px}.harbor .facts span{font-size:18px}.harbor .harbor-sections{gap:40px}.harbor .waters-heading h2,.harbor .solo-launch h3,.harbor .multiplayer h3,.harbor .harbor-sections .open-rooms h3{font-size:clamp(26px,7vw,34px)}.harbor .season-panel h3{font-size:clamp(24px,6.8vw,32px)}.harbor .season-panel .sectiontop>div{gap:8px}.harbor .season-emblem{flex-shrink:0;width:30px}.harbor .roomrow{grid-template-columns:1fr;gap:12px}.harbor .roomrow button{min-height:90px;font-size:24px}.harbor .primary{font-size:30px}.harbor footer{font-size:16px}.harbor .open-room{padding:24px 28px}}.harbor :is(h1,h2,h3,p,small,b,em,button,input,footer,.facts span,.season-kicker,.slide-number,.slide-state,.slide-action,.slider-controls>span,.sectiontop>span,.open-room strong){letter-spacing:normal;word-spacing:normal;font-kerning:normal;-webkit-text-stroke:0!important;text-shadow:var(--letter-outline)!important}.harbor .intro h1,.harbor .intro h1 em{text-shadow:-1.5px -1.5px #000,0 -1.5px #000,1.5px -1.5px #000,1.5px 0 #000,1.5px 1.5px #000,0 1.5px #000,-1.5px 1.5px #000,-1.5px 0 #000,3px 4px #75431f,5px 7px #35231c!important}.harbor .intro h1{overflow-wrap:normal;word-break:normal}.harbor .intro h1 em{white-space:nowrap}.harbor .season-kicker{letter-spacing:.03em}.harbor :is(.primary,.course-slide.selected>b){color:#fff2bd}.harbor .harbor-crest small{font-size:16px}.harbor .menu{padding-top:0}.harbor .intro{justify-content:center;max-width:1050px;min-height:min(90svh,920px);margin:0 auto 45px;padding:clamp(36px,7svh,80px) 0 34px}.harbor .intro .harbor-wordmark{letter-spacing:normal;word-spacing:normal;color:#ffe497;text-align:center;width:100%;margin:0 0 32px;font-family:Midgard Wordmark,Midgard Runes,fantasy;font-size:clamp(78px,23vw,238px);font-weight:700;line-height:1.12}.harbor-wordmark>span{white-space:nowrap;text-shadow:inherit;display:block}.harbor-wordmark .wordmark-of{color:#fff1ba;justify-content:center;align-items:center;gap:.6em;padding:5px 0;font:900 .24em/1.6 Midgard Runes,fantasy;display:flex}.harbor-wordmark .wordmark-of i{color:#ffd477;font:1.05em Arial,sans-serif}.harbor-wordmark .wordmark-midgard{font-size:.87em}.harbor .intro .parchment-scroll{margin:0;font-size:clamp(20px,2.5vw,27px)}.harbor footer{flex-direction:column;align-items:center;gap:12px;display:flex}.harbor .footer-crest{isolation:isolate;place-items:center;width:100%;margin-top:20px;padding:55px 30px 32px;display:grid;position:relative}.harbor .footer-crest .harbor-crest{flex-shrink:0;width:180px;height:180px;position:relative;top:auto;right:auto;transform:rotate(-3deg)}.harbor .footer-crest .crest-swords{font-size:190px;top:-22px}@media (width<=850px){.harbor .menu{padding-top:0}.harbor .intro{justify-content:flex-start;min-height:min(85svh,700px);margin-bottom:32px;padding-top:36px}.harbor .intro .harbor-wordmark{margin-bottom:30px;font-size:23vw;line-height:1.15}.harbor-wordmark .wordmark-of{padding:8px 0}.harbor .intro .facts{gap:14px 20px}.harbor .footer-crest .harbor-crest{width:160px;height:160px}.harbor .footer-crest .crest-swords{font-size:180px}.harbor .footer-crest .harbor-crest b{font-size:22px}.harbor .footer-crest .harbor-crest b span:last-child{font-size:17px}}.harbor .solo-expedition{grid-column:1/-1;width:100%;min-width:0}.harbor .solo-disclosure{cursor:pointer;-webkit-user-select:none;user-select:none;width:min(550px,100%);margin:0 auto;list-style:none;position:relative;text-shadow:var(--letter-outline)!important}.harbor .solo-disclosure::-webkit-details-marker{display:none}.harbor .solo-disclosure::marker{content:""}.harbor .solo-disclosure:focus-visible{outline-offset:4px;outline:3px solid #fff6bc}.harbor .disclosure-arrow{font:700 32px/1 Arial,sans-serif;transition:transform .15s}.harbor .solo-expedition[open] .disclosure-arrow{transform:rotate(180deg)}.harbor .solo-course-picker{grid-template-columns:repeat(2,minmax(0,1fr));gap:38px 36px;min-width:0;margin-top:30px;display:none}.harbor .solo-expedition[open]>.solo-course-picker{display:grid}.harbor .solo-course-picker>.waters-heading,.harbor .solo-course-picker>.solo-launch{grid-column:1/-1}.harbor .solo-course-picker>.solo-launch{justify-self:center;margin-top:0}.harbor .intro{min-height:0;margin-bottom:24px;padding-bottom:20px}.harbor .intro .harbor-wordmark{margin-bottom:24px}.harbor .intro .facts{margin-top:20px}.harbor .harbor-sections{gap:30px 36px}@media (width<=850px){.harbor .intro{min-height:0;margin-bottom:20px;padding-top:24px;padding-bottom:12px}.harbor .solo-course-picker{grid-template-columns:minmax(0,1fr);gap:32px;margin-top:28px}.harbor .harbor-sections{gap:28px}.harbor .solo-disclosure{font-size:30px}.harbor .intro .harbor-wordmark{margin-bottom:22px}}@media (prefers-reduced-motion:reduce){.harbor .disclosure-arrow{transition:none}}.race-briefing{z-index:4;color:#183c51;text-align:center;pointer-events:none;background:radial-gradient(at 30% 0,#fff9d6,#ffe8a9 80%);border:4px solid #182f42;border-radius:30px 35px 26px 34px;width:min(480px,88vw);max-height:70dvh;padding:24px 26px 20px;animation:.32s ease-out briefing-pop;position:fixed;top:50%;left:50%;overflow:auto;transform:translate(-50%,-50%);box-shadow:0 8px #173c51,0 15px 25px #082c5e55}.briefing-rune{color:#193d54;background:#ffd75b;border:3px solid #694327;border-radius:50%;place-items:center;width:54px;height:54px;margin-bottom:10px;font-size:35px;display:inline-grid;box-shadow:0 3px #a86c26}.race-briefing h2{color:#fff1b3;text-shadow:-1px -1px #000,1px -1px #000,-1px 1px #000,1px 1px #000,0 2px #000;margin:0 0 12px;font:700 30px/1.3 Midgard Runes,fantasy}.race-briefing h3{color:#183c51;margin:0 0 15px;font:800 22px/1.35 Arial,sans-serif}.race-briefing p{margin:10px 0;font:700 18px/1.5 Arial,sans-serif}.race-briefing .briefing-save{margin:14px 0;font-size:16px}.briefing-count{border-top:2px dashed #c99243;justify-content:center;align-items:center;gap:12px;margin-top:18px;padding-top:14px;font-size:18px;font-weight:800;display:flex}.briefing-count b{color:#183c51;font-variant-numeric:tabular-nums;background:#ffce51;border:2px solid #183c51;border-radius:50%;place-items:center;width:42px;height:42px;font-size:27px;display:grid}@keyframes briefing-pop{0%{opacity:0;transform:translate(-50%,-50%)scale(.78)}70%{opacity:1;transform:translate(-50%,-50%)scale(1.035)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}@media (width<=400px){.race-briefing{padding:18px}.race-briefing h2{font-size:26px}}@media (height<=500px){.race-briefing{width:min(660px,88vw);max-height:80dvh;padding:12px 20px}.briefing-rune{display:none}.race-briefing h2{margin-bottom:5px;font-size:24px}.race-briefing h3{margin-bottom:5px;font-size:20px}.race-briefing p{margin:5px 0;font-size:16px}.race-briefing p br{display:none}.race-briefing .briefing-save{margin:5px 0}.briefing-count{margin-top:8px;padding-top:8px}}@media (prefers-reduced-motion:reduce){.race-briefing{animation:none}}.harbor .share-game{text-align:center;grid-column:1/-1;justify-self:center;width:min(600px,100%);min-width:0}.harbor .share-game-button{width:100%;min-height:100px;box-shadow:none;filter:drop-shadow(0 5px 3px #12323d80);color:#fff0b8;white-space:normal;overflow-wrap:normal;background:url(/shared/menu/wood.svg) 50%/100% 100% no-repeat;border:0;border-radius:0;justify-content:center;align-items:center;gap:12px;padding:24px 34px;font:700 24px/1.45 Midgard Runes,fantasy;display:flex}.harbor .share-game-button svg{filter:drop-shadow(1px 1px #000);flex-shrink:0}.harbor .share-game-button:hover:not(:disabled){filter:brightness(1.12)drop-shadow(0 5px 3px #12323d80)}.harbor .share-game-status{color:#fffce9;margin:12px 0 0;font:700 18px/1.5 Arial,sans-serif}.harbor .share-game-status:empty{margin:0}.harbor .share-game-link{color:#fffce9;background:#123c43;border:2px solid #ffe5a0;border-radius:12px;width:100%;min-width:0;margin-top:12px;padding:14px 12px;font:700 16px/1.5 Arial,sans-serif;display:block}@media (width<=400px){.harbor .share-game-button{gap:9px;padding:22px 26px;font-size:21px}.harbor .share-game-button svg{width:24px;height:24px}}.joystick.rowing .stick-knob{background:#ffe979;box-shadow:inset 0 3px 5px #af781d88,0 1px #af781d}.playing .joystick-group{flex:1;align-items:stretch;min-width:0;max-width:300px}.playing .joystick-group>span{text-align:center;white-space:normal;padding:7px 9px;font-size:10px;line-height:1.4}.playing .joystick{width:100%;height:104px;box-shadow:inset 0 0 0 6px #20578e,0 5px 0 var(--shadow);border-radius:28px}.playing .stick-knob{border-radius:20px;flex-direction:column;gap:1px;width:72px;height:72px;margin-top:-36px;margin-left:-36px;font-size:27px;line-height:1;inset:50% auto auto 50%;box-shadow:0 4px #af781d}.playing .stick-knob b{font-weight:700;line-height:1}.playing .stick-knob small{letter-spacing:0;color:#10366a;font:700 10px/1.3 Arial,sans-serif}.playing .stick-axis.horizontal{border-radius:4px;height:4px;top:calc(50% - 2px);left:22px;right:22px}.playing .rowing-arrow{color:#b7edff;pointer-events:none;text-shadow:0 2px #082c5e;font:700 40px/1 Arial,sans-serif;position:absolute;top:50%;transform:translateY(-50%)}.playing .rowing-left{left:15px}.playing .rowing-right{right:15px}.playing .joystick.rowing{border-color:#ffde45}.playing .joystick.rowing .stick-knob{box-shadow:inset 0 3px 5px #af781d88,0 1px #af781d}@media (height<=500px){.playing .joystick{border-radius:24px;height:92px}}.harbor{max-width:100%;height:auto;min-height:100dvh;overflow:visible}.harbor .menu,.harbor .intro,.harbor .harbor-sections{min-width:0}.harbor .menu{padding-left:max(5%,env(safe-area-inset-left));padding-right:max(5%,env(safe-area-inset-right));padding-bottom:max(40px,env(safe-area-inset-bottom))}.harbor .course-slider{touch-action:pan-x pan-y}.playing{overscroll-behavior:none;height:100dvh;overflow:hidden}@media (width<=850px){.harbor .intro{padding-top:12px}.harbor .intro .harbor-wordmark{font-size:min(23vw,150px)}.harbor .harbor-sections{width:100%}}.playing .finish{color:#fff;scrollbar-width:thin;background:linear-gradient(155deg,#167be9 0 48%,#1059c5 48% 100%);border:5px solid #092747;border-radius:28px;width:min(520px,100% - 28px);max-height:calc(100dvh - 32px);padding:clamp(20px,5vw,32px);box-shadow:inset 0 0 0 3px #71eaff,0 8px #092747,0 16px 35px #00182c80}.playing .finish .eyebrow{letter-spacing:1px;color:#74ffdf;text-shadow:1px 1px #092747,-1px -1px #092747,0 2px #092747;font:700 clamp(15px,4vw,19px)/1.4 Midgard Runes,fantasy;display:block}.playing .finish h2{text-transform:uppercase;letter-spacing:1px;color:#fff23a;-webkit-text-stroke:2px #092747;paint-order:stroke fill;text-shadow:0 5px #092747,0 8px #09274750;margin:12px 0 4px;font:700 clamp(44px,12vw,68px)/1.15 Midgard Runes,fantasy}.playing .finish .finishtime{-webkit-text-stroke:1.5px #092747;paint-order:stroke fill;text-shadow:0 4px #092747;font-variant-numeric:tabular-nums;margin:12px 0;font:900 clamp(48px,13vw,66px)/1.1 Arial,sans-serif;color:#fff!important}.playing .finish .finishtime small{letter-spacing:2px;text-transform:uppercase;color:#9cfbff;-webkit-text-stroke:0;text-shadow:0 2px #092747;margin-top:7px;font:900 16px/1.3 Arial,sans-serif;display:block}.playing .finish>p:not(.finishtime){color:#fffbd0;text-shadow:1px 1px #092747,-1px -1px #092747,0 2px #092747;overflow-wrap:break-word;margin:16px 0;font:700 clamp(18px,4.8vw,23px)/1.5 Midgard Runes,fantasy}.playing .finish li{color:#fff;overflow-wrap:anywhere;background:#073980;border:2px solid #56dfff;justify-content:space-between;gap:12px;padding:12px;font-size:18px;font-weight:900;display:flex}.playing .finish li span{float:none;color:#b7ff43;flex-shrink:0;align-self:center;font-size:16px}.playing .finish-actions{flex-direction:column;align-items:center;gap:17px;margin-top:22px;display:flex}.playing .finish-next{color:#092747;text-shadow:0 1px #efffc1;white-space:normal;background:linear-gradient(#b8ff35 0 52%,#83e817 52%);border:4px solid #092747;border-radius:19px;flex-direction:column;justify-content:center;align-items:center;gap:9px;width:100%;min-height:100px;margin:0;padding:18px 14px;font:700 clamp(25px,6.7vw,34px)/1.3 Midgard Runes,fantasy;display:flex;box-shadow:inset 0 3px #edffb1,0 7px #092747}.playing .finish-next small{overflow-wrap:break-word;color:#143c25;max-width:100%;text-shadow:none;font:900 15px/1.35 Arial,sans-serif}.playing .finish-next:hover{background:linear-gradient(#d5ff63 0 52%,#a2f632 52%);transform:translateY(-2px)}.playing .finish-next:active{transform:translateY(4px);box-shadow:inset 0 3px #edffb1,0 3px #092747}.playing .finish-back{color:#d9f5ff;background:#073980;border:2px solid #8adeff;border-radius:12px;min-height:44px;padding:10px 20px;font:800 15px/1.3 Arial,sans-serif;box-shadow:0 3px #092747}@media (height<=520px){.playing .finish{padding:18px}.playing .finish h2{font-size:40px}.playing .finish .finishtime{font-size:42px}.playing .finish>p:not(.finishtime){margin:10px 0;font-size:17px}.playing .finish-actions{margin-top:14px}.playing .finish-next{min-height:80px;font-size:25px}}.playing .race-briefing{color:#fff;pointer-events:auto;background:linear-gradient(155deg,#167be9 0 48%,#1059c5 48% 100%);border:5px solid #092747;border-radius:28px;width:min(520px,100% - 28px);max-height:calc(100dvh - 48px);padding:clamp(20px,5vw,32px);box-shadow:inset 0 0 0 3px #71eaff,0 8px #092747,0 16px 35px #00182c80}.playing .briefing-rune{color:#092747;background:linear-gradient(#fff23a 0 52%,#ffce20 52%);border:4px solid #092747;width:60px;height:60px;margin-bottom:14px;font-size:39px;box-shadow:inset 0 2px #ffffa1,0 4px #092747}.playing .race-briefing h2{color:#fff23a;-webkit-text-stroke:1.5px #092747;paint-order:stroke fill;text-shadow:0 4px #092747;text-transform:uppercase;margin:0 0 18px;font:700 clamp(32px,8.6vw,48px)/1.2 Midgard Runes,fantasy}.playing .race-briefing h3{color:#74ffdf;text-shadow:1px 1px #092747,-1px -1px #092747,0 3px #092747;overflow-wrap:break-word;margin:0 0 18px;font:700 clamp(24px,6.4vw,32px)/1.3 Midgard Runes,fantasy}.playing .race-briefing p{color:#fffbd0;text-shadow:1px 1px #092747,-1px -1px #092747,0 2px #092747;margin:12px 0;font:700 clamp(18px,4.9vw,23px)/1.5 Midgard Runes,fantasy}.playing .race-briefing .briefing-save{color:#d9f5ff;text-shadow:0 2px #092747;margin:18px 0;font:800 15px/1.5 Arial,sans-serif}.playing .briefing-count{color:#fff;text-shadow:0 2px #092747;border-top:3px solid #71eaff;gap:15px;margin-top:20px;padding-top:20px;font:700 clamp(18px,4.8vw,24px)/1.3 Midgard Runes,fantasy}.playing .briefing-count b{color:#092747;width:64px;height:64px;text-shadow:none;background:linear-gradient(#b8ff35 0 52%,#83e817 52%);border:4px solid #092747;border-radius:17px;flex-shrink:0;font:900 40px/1 Arial,sans-serif;box-shadow:inset 0 2px #edffb1,0 5px #092747}@media (height<=520px){.playing .race-briefing{max-height:calc(100dvh - 32px);padding:16px 20px}.playing .briefing-rune{display:none}.playing .race-briefing h2{margin-bottom:10px;font-size:28px}.playing .race-briefing h3{margin-bottom:8px;font-size:22px}.playing .race-briefing p{margin:8px 0;font-size:17px}.playing .race-briefing .briefing-save{margin:8px 0;font-size:13px}.playing .briefing-count{margin-top:12px;padding-top:12px}.playing .briefing-count b{width:48px;height:48px;font-size:30px}}.playing .race-room{color:#fff;scrollbar-width:thin;background:linear-gradient(155deg,#167be9 0 48%,#1059c5 48% 100%);border:5px solid #092747;border-radius:28px;width:min(520px,100% - 28px);max-height:calc(100dvh - 32px);padding:clamp(20px,5vw,32px);box-shadow:inset 0 0 0 3px #71eaff,0 8px #092747,0 16px 35px #00182c80}.playing .race-room .eyebrow{letter-spacing:1px;color:#74ffdf;text-shadow:1px 1px #092747,-1px -1px #092747,0 2px #092747;font:700 clamp(15px,4vw,19px)/1.4 Midgard Runes,fantasy;display:block}.playing .race-room h2{text-transform:uppercase;color:#fff23a;-webkit-text-stroke:1.5px #092747;paint-order:stroke fill;text-shadow:0 4px #092747;margin:12px 0 18px;font:700 clamp(36px,10vw,54px)/1.2 Midgard Runes,fantasy}.playing .race-room h3{color:#74ffdf;text-shadow:1px 1px #092747,-1px -1px #092747,0 3px #092747;overflow-wrap:break-word;margin:18px 0;font:700 clamp(24px,6.4vw,32px)/1.3 Midgard Runes,fantasy}.playing .race-room p{color:#fffbd0;text-shadow:0 2px #092747;margin:14px 0;font:800 17px/1.5 Arial,sans-serif}.playing .race-room ul{margin:18px 0;padding:0;list-style:none}.playing .race-room li{color:#fff;text-shadow:0 2px #092747;overflow-wrap:anywhere;background:#073980;border:2px solid #71eaff;border-radius:13px;margin:9px 0;padding:13px 14px;font:700 clamp(18px,4.8vw,23px)/1.4 Midgard Runes,fantasy}.playing .race-room .hint{color:#d9f5ff;font-size:15px}.playing .race-room .primary{color:#092747;text-shadow:0 1px #efffc1;background:linear-gradient(#b8ff35 0 52%,#83e817 52%);border:4px solid #092747;border-radius:19px;justify-content:center;align-items:center;width:100%;min-height:92px;margin:22px 0;padding:18px 14px;font:700 clamp(26px,7vw,34px)/1.3 Midgard Runes,fantasy;display:flex;box-shadow:inset 0 3px #edffb1,0 7px #092747}.playing .race-room .primary:hover:not(:disabled){background:linear-gradient(#d5ff63 0 52%,#a2f632 52%);transform:translateY(-2px)}.playing .race-room .primary:active:not(:disabled){transform:translateY(4px);box-shadow:inset 0 3px #edffb1,0 3px #092747}.playing .race-room .primary:disabled{opacity:1;color:#304f60;text-shadow:none;background:linear-gradient(#b2ced4 0 52%,#8dabb9 52%);box-shadow:inset 0 3px #d9eaf0,0 5px #092747}.playing .race-room .quiet{color:#d9f5ff;background:#073980;border:2px solid #8adeff;border-radius:12px;min-height:44px;margin-top:10px;padding:10px 20px;font:800 15px/1.3 Arial,sans-serif;box-shadow:0 3px #092747}.playing .race-room .error{color:#fff09a;background:#073980;border:2px solid #ffe34a;border-radius:12px;padding:12px}@media (height<=520px){.playing .race-room{padding:18px}.playing .race-room h2{margin:8px 0 12px;font-size:32px}.playing .race-room h3{font-size:22px}.playing .race-room p{font-size:15px}.playing .race-room .primary{min-height:76px;font-size:26px}}.harbor .harbor-backdrop{filter:saturate(1.5)contrast(1.12)brightness(1.06)}.harbor .harbor-backdrop:after{background:linear-gradient(#167be900 0,#167be928 36%,#1059c596 100%)}.harbor{--letter-outline:-1px -1px 0 #092747,0 -1px 0 #092747,1px -1px 0 #092747,1px 0 0 #092747,1px 1px 0 #092747,0 1px 0 #092747,-1px 1px 0 #092747,-1px 0 0 #092747,0 3px 0 #092747}.harbor .intro .harbor-wordmark{color:#fff23a}.harbor .intro .harbor-wordmark,.harbor .intro .harbor-wordmark>span{text-shadow:-1.5px -1.5px #092747,1.5px -1.5px #092747,-1.5px 1.5px #092747,1.5px 1.5px #092747,0 5px #092747,0 9px #09274770!important}.harbor .harbor-wordmark .wordmark-of,.harbor .harbor-wordmark .wordmark-of i{color:#74ffdf}.harbor .parchment-scroll{color:#fffbd0}.harbor .facts span{color:#fff23a}.harbor .facts span:before{color:#74ffdf}.harbor .waters-heading h2,.harbor .season-panel h3,.harbor .multiplayer h3,.harbor .harbor-sections .open-rooms h3{color:#fff23a}.harbor :is(.primary,.roomrow button,.open-room,.slider-arrow,.course-slide>b,.share-game-button){filter:drop-shadow(0 7px #092747)drop-shadow(0 10px 8px #00182c66);background-image:url(/shared/menu/wood-toon.svg)}.harbor .primary,.harbor .primary:hover,.harbor .course-slide.selected>b{color:#092747;background:url(/shared/menu/gold-toon.svg) 50%/100% 100% no-repeat;text-shadow:0 1px #fffab5!important}.harbor .roomrow button,.harbor .open-room,.harbor .slider-arrow,.harbor .course-slide>b,.harbor .share-game-button{color:#fffbd0}.harbor .roomrow button:hover,.harbor .open-room:hover{background:url(/shared/menu/wood-toon.svg) 50%/100% 100% no-repeat}.harbor .primary:hover,.harbor .roomrow button:hover,.harbor .open-room:hover,.harbor .share-game-button:hover:not(:disabled){filter:brightness(1.08)drop-shadow(0 7px #092747)drop-shadow(0 10px 8px #00182c66)}.harbor .course-map{filter:drop-shadow(0 5px #092747);background-image:url(/shared/menu/shield-toon.svg)}.harbor .course-map svg{filter:saturate(1.25)}.harbor .course-slide.locked:disabled .course-map{filter:saturate(.35)drop-shadow(0 5px #092747)}.harbor .multiplayer input{color:#fff;background:#1059c5d9;border:3px solid #71eaff;border-radius:15px;padding:15px 12px;box-shadow:0 5px #092747}.harbor .multiplayer input::placeholder{color:#fffbd0}.harbor .open-room strong,.harbor .slide-action{color:#b8ff35}.harbor .midgard-game-switch,.harbor>.midgard-game-switch{color:#fff23a;background:#1059c5;border:3px solid #71eaff;border-radius:14px;font-weight:900;box-shadow:0 4px #092747}.harbor .share-game-link{color:#fff;background:#1059c5;border-color:#71eaff;box-shadow:0 4px #092747}.harbor .footer-crest .harbor-crest{color:#fff23a;background:repeating-linear-gradient(90deg,#0000 0 34px,#09274760 35px 38px),linear-gradient(145deg,#ffbd43 0 48%,#ef8819 48%);border-color:#71eaff;box-shadow:inset 0 0 0 4px #092747,0 0 0 4px #092747,0 8px #092747,0 15px 18px #00182c66}.harbor .footer-crest .harbor-crest small{color:#fffbd0;background:linear-gradient(#ffbd43 0 48%,#ef8819 48%);border:3px solid #092747;box-shadow:0 4px #092747}.harbor .solo-course-picker{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 14px;margin-top:22px}.harbor .solo-course-picker>.season-panel{min-width:0;padding:0}.harbor .solo-course-picker .sectiontop{gap:3px;min-height:57px;margin-bottom:4px}.harbor .solo-course-picker .sectiontop>div{justify-content:center;gap:5px}.harbor .solo-course-picker .season-panel h3{margin:0;font-size:clamp(16px,2.5vw,22px);line-height:1.25}.harbor .solo-course-picker .season-emblem{width:20px;height:28px;font-size:24px}.harbor .solo-course-picker .sectiontop>span{font-size:12px;line-height:1.3;position:static}.harbor .solo-course-picker .slider-controls{grid-template-columns:32px minmax(0,1fr) 32px;gap:3px;margin:3px 0 7px;display:grid}.harbor .solo-course-picker .slider-controls>span{overflow-wrap:normal;font-size:11px;line-height:1.25}.harbor .solo-course-picker .slider-arrow{filter:drop-shadow(0 3px #092747);width:32px;height:44px;font-size:22px}.harbor .solo-course-picker .course-slider{gap:9px;padding:5px 4px 12px;scroll-padding-left:4px}.harbor .solo-course-picker .course-slide,.harbor .solo-course-picker .course-slide.selected,.harbor .solo-course-picker .course-slide.locked:disabled{flex-basis:91%;max-width:235px;padding-bottom:4px}.harbor .solo-course-picker .course-map{height:clamp(130px,23vw,185px)}.harbor .solo-course-picker .slide-number{width:42px;padding:2px 0;font-size:21px;left:calc(50% - 21px)}.harbor .solo-course-picker .slide-state{font-size:12px;line-height:1.3;bottom:20px}.harbor .solo-course-picker .course-slide>b{filter:drop-shadow(0 4px #092747);min-height:54px;margin-top:-10px;padding:12px;font-size:clamp(12px,2.4vw,16px);line-height:1.2}.harbor .solo-course-picker .course-slide>small,.harbor .solo-course-picker .slide-action,.harbor .solo-course-picker .course-slide.locked .slide-action{margin-top:7px;font-size:12px;line-height:1.35}.harbor .solo-course-picker .course-slide.up-next .slide-state,.harbor .solo-course-picker .course-slide.up-next .slide-action{color:#b8ff35}.harbor .solo-course-picker .course-slide.up-next .course-map{filter:drop-shadow(0 0 5px #ffe689)}@media (width<=380px){.harbor .solo-course-picker{gap:20px 10px}.harbor .solo-course-picker .season-panel h3{font-size:14px}.harbor .solo-course-picker .season-emblem{display:none}.harbor .solo-course-picker .slider-controls>span{font-size:10px}.harbor .solo-course-picker .course-slide>b{font-size:12px}}.harbor .solo-course-picker{column-gap:24px}.harbor .solo-course-picker>.season-panel{position:relative}.harbor .solo-course-picker>.season-spring:after,.harbor .solo-course-picker>.season-autumn:after{content:"";pointer-events:none;filter:drop-shadow(1px 3px #09274755);background:url(/shared/menu/season-branch.svg) 50%/100% 100% no-repeat;width:18px;position:absolute;top:5px;bottom:9px;right:-21px}@media (width<=380px){.harbor .solo-course-picker{column-gap:22px}.harbor .solo-course-picker>.season-spring:after,.harbor .solo-course-picker>.season-autumn:after{width:16px;right:-19px}}.control-lesson{--lesson-cycle:5s;text-align:center;color:#fffbd0;width:100%;margin:16px auto 10px}.control-lesson h4{color:#74ffdf;text-shadow:1px 1px #092747,-1px -1px #092747,0 2px #092747;margin:0 0 8px;font:700 clamp(19px,4.5vw,25px)/1.25 Midgard Runes,fantasy}.control-lesson>svg{border-radius:19px;width:100%;max-width:440px;height:auto;margin:auto;display:block;overflow:hidden}.lesson-knob,.lesson-touch{animation:lesson-steer var(--lesson-cycle) ease-in-out infinite}.lesson-hand{animation:lesson-finger var(--lesson-cycle) ease-in-out infinite;transform:translate(260px,211px)}.lesson-demo-ship{transform-origin:260px 60px;animation:lesson-boat var(--lesson-cycle) ease-in-out infinite}.lesson-wake,.lesson-current{animation:lesson-rowing var(--lesson-cycle) ease-in-out infinite}.control-lesson .lesson-steps{text-align:center;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:10px 0 0;padding:0;list-style:none;display:grid}.control-lesson .lesson-steps li{color:#fffbd0;overflow-wrap:normal;background:#073980;border:2px solid #092747;border-radius:10px;margin:0;padding:8px 5px;font:700 12px/1.35 Trebuchet MS,Arial,sans-serif}.control-lesson .lesson-steps b{color:#b8ff35;margin-bottom:4px;font-size:13px;display:block}.control-lesson .lesson-steps span{display:block}.control-lesson .lesson-keyboard{color:#d9f5ff!important;text-shadow:none!important;margin:10px 0 0!important;font:700 11px/1.4 Trebuchet MS,Arial,sans-serif!important}@keyframes lesson-steer{0%,25%,83%,to{transform:translate(0)}38%,48%{transform:translate(-83px)}62%,72%{transform:translate(83px)}}@keyframes lesson-finger{0%,3%{opacity:0;transform:translate(260px,238px)}10%,25%{opacity:1;transform:translate(260px,211px)}38%,48%{opacity:1;transform:translate(177px,211px)}62%,72%{opacity:1;transform:translate(343px,211px)}83%{opacity:1;transform:translate(260px,211px)}90%,to{opacity:0;transform:translate(260px,238px)}}@keyframes lesson-boat{0%,5%,90%,to{transform:translate(0)rotate(0)}20%,25%{transform:translateY(-9px)rotate(0)}38%,48%{transform:translate(-32px,-12px)rotate(-20deg)}62%,72%{transform:translate(32px,-12px)rotate(20deg)}83%{transform:translateY(-9px)rotate(0)}}@keyframes lesson-rowing{0%,5%,90%,to{opacity:.1}15%,83%{opacity:1}}.playing .race-briefing.with-control-lesson{width:min(540px,100% - 28px);max-height:calc(100dvh - 30px);padding:18px 22px;overflow:auto}.playing .with-control-lesson .briefing-rune{display:none}.playing .with-control-lesson h2{margin:0 0 8px;font-size:clamp(28px,6.5vw,38px)}.playing .with-control-lesson h3{margin:0 0 8px;font-size:clamp(20px,5vw,26px)}.playing .with-control-lesson .control-lesson{margin:12px auto 8px}.playing .with-control-lesson .control-lesson>svg{max-width:340px}.playing .with-control-lesson .briefing-goal{margin:10px 0 4px;font:700 14px/1.4 Trebuchet MS,Arial,sans-serif}.playing .with-control-lesson .briefing-save{margin:5px 0;font-size:12px}.playing .with-control-lesson .briefing-count{margin-top:10px;padding-top:10px;font-size:19px}.playing .with-control-lesson .briefing-count b{border-radius:12px;width:45px;height:45px;font-size:28px}.playing .race-room .control-lesson{border-top:2px solid #71eaff;padding-top:18px}.playing .race-room .control-lesson>svg{max-width:320px}.playing .race-room .control-lesson .lesson-steps li{background:#073980;border:2px solid #092747;border-radius:10px;margin:0;padding:8px 5px;font:700 12px/1.35 Trebuchet MS,Arial,sans-serif}.harbor .harbor-sections .learn-controls-button{filter:drop-shadow(0 5px #092747);color:#092747;text-shadow:0 1px #fffab5;cursor:pointer;background:url(/shared/menu/gold-toon.svg) 50%/100% 100% no-repeat;border:0;width:100%;min-height:70px;margin:18px 0;padding:18px 26px;font:700 clamp(18px,4.2vw,23px)/1.3 Midgard Runes,fantasy;display:block}.sailing-help-dialog{z-index:100;color:#fffbd0;text-align:center;background:linear-gradient(155deg,#167be9 0 48%,#1059c5 48%);border:5px solid #092747;border-radius:27px;width:min(560px,100vw - 26px);max-height:calc(100dvh - 32px);margin:auto;padding:24px;position:fixed;inset:0;overflow:auto;box-shadow:inset 0 0 0 3px #71eaff,0 8px #092747}.sailing-help-dialog::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#051e42bd}.sailing-help-dialog h2{color:#fff23a;-webkit-text-stroke:1px #092747;paint-order:stroke fill;text-shadow:0 4px #092747;margin:0 0 15px;font:700 clamp(30px,7vw,44px)/1.2 Midgard Runes,fantasy}.sailing-help-note{margin:16px 0;font:700 15px/1.5 Trebuchet MS,Arial,sans-serif}.sailing-help-dialog>button{color:#092747;background:linear-gradient(#b8ff35 0 52%,#83e817 52%);border:3px solid #092747;border-radius:15px;width:100%;padding:15px;font:900 16px/1.3 Trebuchet MS,Arial,sans-serif;box-shadow:inset 0 2px #edffb1,0 5px #092747}.sailing-help-dialog :focus-visible{outline-offset:4px;outline:3px solid #fff}@media (width<=420px){.playing .race-briefing.with-control-lesson{padding:16px 14px}.control-lesson .lesson-steps b{font-size:12px}.control-lesson .lesson-steps li{font-size:11px}.sailing-help-dialog{padding:20px 14px}.control-lesson .lesson-keyboard{font-size:10px!important}}@media (height<=580px){.playing .race-briefing.with-control-lesson{padding:12px 16px}.playing .with-control-lesson .control-lesson>svg{max-width:220px}.playing .with-control-lesson .control-lesson h4{font-size:18px}.playing .with-control-lesson .control-lesson{margin-top:8px}.playing .with-control-lesson .briefing-save,.playing .with-control-lesson .lesson-keyboard{display:none}.playing .with-control-lesson h2{margin-bottom:4px;font-size:25px}.playing .with-control-lesson h3{margin-bottom:4px;font-size:18px}.control-lesson .lesson-steps li{padding:5px}.playing .with-control-lesson .briefing-count{margin-top:7px;padding-top:7px}}@media (prefers-reduced-motion:reduce){.control-lesson .lesson-knob,.control-lesson .lesson-touch,.control-lesson .lesson-hand,.control-lesson .lesson-demo-ship,.control-lesson .lesson-wake,.control-lesson .lesson-current{animation:none}.control-lesson .lesson-touch{opacity:.5}}.sailing-help-dialog>button{-webkit-text-stroke:0!important;text-shadow:none!important;letter-spacing:0!important;font:900 16px/1.3 Trebuchet MS,Arial,sans-serif!important}.harbor .harbor-sections .learn-controls-button{-webkit-text-stroke:0;text-shadow:0 1px #fffab5!important;font-family:Midgard Runes,Trebuchet MS,sans-serif!important}.harbor .roomrow{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:12px;width:100%;display:grid}.harbor .roomrow button,.harbor .roomrow button:hover{width:100%;min-width:0;min-height:104px;box-shadow:none;white-space:normal;overflow-wrap:normal;text-wrap:balance;background:url(/shared/menu/wood-flex.svg) 50%/100% 100% no-repeat;border:0;border-radius:0;justify-content:center;align-items:center;padding:24px 12%;font-size:clamp(18px,2vw,22px);line-height:1.25;display:flex}.harbor .harbor-sections .learn-controls-button{white-space:normal;overflow-wrap:normal;background-image:url(/shared/menu/gold-flex.svg);flex-direction:column;justify-content:center;align-self:center;align-items:center;gap:4px;min-width:0;min-height:104px;margin:0;padding:22px 12%;font-size:clamp(20px,2.6vw,26px);line-height:1.3;display:flex}.harbor .learn-controls-button>span{max-width:100%;font:inherit;display:block;text-shadow:inherit!important}.harbor .learn-controls-button>small{color:#092747;max-width:100%;display:block;text-shadow:none!important;font:700 16px/1.3 Trebuchet MS,Arial,sans-serif!important}.harbor .harbor-sections>.harbor-sign-link{min-width:0;min-height:104px;box-shadow:none;filter:drop-shadow(0 5px #092747);color:#fffbd0;text-align:center;white-space:normal;overflow-wrap:normal;background:url(/shared/menu/wood-flex.svg) 50%/100% 100% no-repeat;border:0;border-radius:0;justify-content:center;align-self:center;align-items:center;padding:24px 12%;font:700 clamp(19px,2.2vw,24px)/1.3 Midgard Runes,Trebuchet MS,sans-serif;text-decoration:none;display:flex}.harbor .share-game-button,.harbor .share-game-button:hover:not(:disabled){background:url(/shared/menu/wood-flex.svg) 50%/100% 100% no-repeat;gap:10px;min-width:0;min-height:122px;padding:24px 12%;font-size:clamp(19px,2.4vw,25px);line-height:1.3}.harbor .share-game-button svg{flex:0 0 26px;width:26px;height:26px}.harbor .share-game-label{min-width:0;max-width:100%;font:inherit;white-space:normal;overflow-wrap:normal;flex:0 auto;display:block}.harbor .share-game-label>span{max-width:100%;font:inherit;white-space:normal;overflow-wrap:normal;display:block}@media (width<=600px){.harbor .roomrow{grid-template-columns:1fr;gap:14px}.harbor .roomrow button,.harbor .roomrow button:hover{min-height:88px;padding:22px 12%;font-size:22px}.harbor .harbor-sections .learn-controls-button,.harbor .harbor-sections>.harbor-sign-link{min-height:100px;padding:23px 12%;font-size:22px}.harbor .share-game-button,.harbor .share-game-button:hover:not(:disabled){gap:8px;min-height:118px;padding:25px 10%;font-size:20px}}
