@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:400;src:url(../media/barlow-vietnamese-400-normal.1p7a6n-wg7475.woff2)format("woff2"),url(../media/barlow-vietnamese-400-normal.0k-idquqjs3ou.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:400;src:url(../media/barlow-latin-ext-400-normal.3428h6_4no53c.woff2)format("woff2"),url(../media/barlow-latin-ext-400-normal.3-5gl67tny_vk.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:400;src:url(../media/barlow-latin-400-normal.0ttnbqtks8pz8.woff2)format("woff2"),url(../media/barlow-latin-400-normal.2q232q7nmze6k.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:500;src:url(../media/barlow-vietnamese-500-normal.34vh5f-6yju0-.woff2)format("woff2"),url(../media/barlow-vietnamese-500-normal.0fgg28h67ffz5.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:500;src:url(../media/barlow-latin-ext-500-normal.0y48t30zsg1-x.woff2)format("woff2"),url(../media/barlow-latin-ext-500-normal.3tpb058eqjlba.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:500;src:url(../media/barlow-latin-500-normal.07ksy-a4avz1m.woff2)format("woff2"),url(../media/barlow-latin-500-normal.2gp2c7bmfr47a.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:600;src:url(../media/barlow-vietnamese-600-normal.1m5b9nf7zu8da.woff2)format("woff2"),url(../media/barlow-vietnamese-600-normal.2fsgphdgpmz4d.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:600;src:url(../media/barlow-latin-ext-600-normal.2h29y9nb1nz0g.woff2)format("woff2"),url(../media/barlow-latin-ext-600-normal.45cip6q06fzn7.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:600;src:url(../media/barlow-latin-600-normal.2ekrofpr7xv99.woff2)format("woff2"),url(../media/barlow-latin-600-normal.2r--11ob1d7-_.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:500;src:url(../media/barlow-condensed-vietnamese-500-normal.3xo9s8zyfuyd6.woff2)format("woff2"),url(../media/barlow-condensed-vietnamese-500-normal.3qx7wyf86xs4s.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:500;src:url(../media/barlow-condensed-latin-ext-500-normal.1ne4fhi7fpjy9.woff2)format("woff2"),url(../media/barlow-condensed-latin-ext-500-normal.1-g5931w4-eu4.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:500;src:url(../media/barlow-condensed-latin-500-normal.38aj5eyydxap2.woff2)format("woff2"),url(../media/barlow-condensed-latin-500-normal.2ouj1ygbbtao3.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(../media/barlow-condensed-vietnamese-600-normal.3e4flxcugo2h5.woff2)format("woff2"),url(../media/barlow-condensed-vietnamese-600-normal.1m4yi3r85r-2e.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(../media/barlow-condensed-latin-ext-600-normal.3fs29psnn2dnj.woff2)format("woff2"),url(../media/barlow-condensed-latin-ext-600-normal.16yc7s53by18l.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(../media/barlow-condensed-latin-600-normal.2t96v6p0iv501.woff2)format("woff2"),url(../media/barlow-condensed-latin-600-normal.3id26guef6u69.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(../media/barlow-condensed-vietnamese-700-normal.312nbn3hifl_p.woff2)format("woff2"),url(../media/barlow-condensed-vietnamese-700-normal.0qq2rbf8hr6cv.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(../media/barlow-condensed-latin-ext-700-normal.28iwym1vpi4ti.woff2)format("woff2"),url(../media/barlow-condensed-latin-ext-700-normal.2hkqehxqksiuo.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(../media/barlow-condensed-latin-700-normal.3hmancrpg57x4.woff2)format("woff2"),url(../media/barlow-condensed-latin-700-normal.31l4qbhx6zok2.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
:root{--deep:#0d3135;--deep-2:#133f44;--deep-3:#1d5459;--line:#2c6a6f;--sea:#8cc5a1;--sea-dark:#6aa985;--grid:#f3efb2;--mint:#c6e8cc;--mint-line:#9fd0aa;--ink:#11343a;--ink-soft:#3c6462;--text:#e4f2e9;--text-dim:#a6c8b9;--cream:#fff5c4;--island:#a4532d;--island-dark:#74351a;--island-ink:#ffe7cf;--kraken:#f3d446;--kraken-edge:#c2291c;--kraken-ink:#b3231a;--teal-ink:#ddf3e3;--whirl:#2e6e8e;--ally:#efe6cf;--crow:#7a4a6e;--danger:#ff8a73;--danger-on-light:#a3261a;--warn:#f3d446;--ok:#8ee0a8;--font-body:"Barlow", system-ui, -apple-system, "Segoe UI", sans-serif;--font-display:"Barlow Condensed", "Arial Narrow", system-ui, sans-serif;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--deep);min-height:100dvh;color:var(--text);font:400 16px/1.55 var(--font-body);-webkit-font-smoothing:antialiased;flex-direction:column;margin:0;display:flex}main{flex:1;width:100%;max-width:1440px;margin:0 auto;padding:28px 28px 40px}h1,h2,h3{font-family:var(--font-display);text-wrap:balance;line-height:1.05}p{margin:0}a{color:var(--cream)}:focus-visible{outline:3px solid var(--cream);outline-offset:2px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:100;background:var(--cream);color:var(--ink);border-radius:8px;padding:8px 14px;font-weight:600;position:absolute;top:-60px;left:12px}.skip-link:focus{top:12px}.masthead{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;padding:14px 28px;display:flex}.brand{color:var(--cream);align-items:baseline;gap:10px;text-decoration:none;display:inline-flex}.brand-mark{width:26px;height:26px;fill:var(--deep-3);stroke:var(--cream);stroke-width:2.5px;stroke-linejoin:round;align-self:center}.brand-name{font:700 28px/1 var(--font-display);letter-spacing:.01em}.brand-sub{font:500 21px/1 var(--font-display);color:var(--text-dim)}.nav{gap:22px;display:flex}.nav a{font:600 19px/1 var(--font-display);color:var(--text-dim);border-bottom:2px solid #0000;padding:6px 0;text-decoration:none}.nav a:hover{color:var(--text)}.nav a[aria-current=page]{color:var(--cream);border-bottom-color:var(--cream)}.btn{border:1px solid var(--line);background:var(--deep-2);height:40px;color:var(--text);font:600 17px/1 var(--font-display);letter-spacing:.01em;white-space:nowrap;cursor:pointer;border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:0 15px;text-decoration:none;transition:background-color .15s,border-color .15s;display:inline-flex}.btn:hover{background:var(--deep-3)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn--primary{background:var(--kraken);border-color:var(--kraken);color:var(--ink)}.btn--primary:hover{background:#ffe274}.btn--danger-dark{color:var(--danger);border-color:#ff8a738c}.btn--danger-dark:hover{background:#ff8a731f}.btn--icon{width:40px;padding:0;font-size:22px}.btn--quiet{background:0 0;border-color:#0000}.select select{border:1px solid var(--line);background:var(--deep-2) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23a6c8b9' stroke-width='2'/%3E%3C/svg%3E") no-repeat right 12px center;height:40px;color:var(--text);font:600 17px/1 var(--font-display);appearance:none;cursor:pointer;border-radius:8px;padding:0 34px 0 13px}.toggle{color:var(--text-dim);white-space:nowrap;cursor:pointer;align-items:center;gap:8px;font-size:14px;display:inline-flex}.toggle input{width:17px;height:17px;accent-color:var(--kraken);margin:0}.workbench-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:18px 32px;display:flex}.intro h1,.page-head h1{color:var(--cream);letter-spacing:-.005em;margin:0;font-size:46px;font-weight:700}.intro p,.page-head>p{max-width:64ch;color:var(--text-dim);margin-top:8px}.actions{flex-wrap:wrap;gap:8px;display:flex}.palette{background:var(--deep-2);border:1px solid var(--line);border-radius:12px;align-items:center;gap:14px;margin-top:22px;padding:8px 14px 8px 8px;display:flex}.palette-tools{scrollbar-width:thin;flex:1;gap:6px;min-width:0;display:flex;overflow-x:auto}.tool{color:var(--text);text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:9px;flex:none;align-items:center;gap:10px;padding:7px 13px 7px 8px;display:flex}.tool:hover{border-color:var(--line)}.tool--active,.tool--active:hover{background:var(--deep-3);border-color:var(--cream);box-shadow:inset 0 0 0 1px var(--cream)}.tool-text{display:grid}.tool-name{font:600 18px/1.1 var(--font-display)}.tool-count{color:var(--text-dim);font-variant-numeric:tabular-nums;font-size:13px;line-height:1.25}.tool-count--empty{color:var(--warn)}.ticon{flex:none;overflow:visible}.ticon polygon,.ticon path{stroke-linejoin:round}.ticon--start polygon,.ticon--end polygon{fill:var(--deep-3);stroke:var(--cream);stroke-width:2px}.ticon--island polygon{fill:var(--island);stroke:var(--island-dark);stroke-width:1.5px}.ticon--island .blot{fill:var(--island-dark);opacity:.5}.ticon--kraken polygon{fill:var(--kraken);stroke:var(--kraken-edge);stroke-width:2.6px}.ticon .curl{fill:none;stroke-width:2px;stroke-linecap:round}.ticon--kraken .curl{stroke:var(--kraken-edge)}.ticon--storm path{fill:var(--deep-3);stroke:var(--cream);stroke-width:2.2px}.ticon--whirlpool polygon{fill:var(--whirl);stroke:#bfe6f5;stroke-width:1.6px}.ticon--whirlpool .curl{stroke:#e3f6fc}.ticon--ally polygon{fill:var(--ally);stroke:var(--deep-3);stroke-width:2px}.ticon--ally .curl{stroke:var(--deep-3)}.ticon--crowsNest polygon{fill:var(--crow);stroke:#f0d6e8;stroke-width:1.6px}.ticon--crowsNest .curl{stroke:#f7e6f1}.ticon--erase polygon{fill:none;stroke:var(--text-dim);stroke-width:2px;stroke-dasharray:4 3}.ticon--erase .curl{stroke:var(--danger)}.board-frame{margin-top:16px}.board{-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;width:100%;height:auto;display:block}.board-frame--vertical .board{max-width:440px;margin:0 auto}.board-placeholder{aspect-ratio:1068/300}.board-caption{color:var(--text-dim);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 20px;margin-top:10px;font-size:14px;display:flex}.sea{fill:var(--sea)}.contour{stroke:var(--sea-dark);stroke-width:1.4px;opacity:.5}.grid polygon{fill:#ffffff12;stroke:var(--grid);stroke-width:1.3px;stroke-opacity:.8}.token polygon,polygon.token{stroke-linejoin:round}.token--island polygon{fill:var(--island);stroke:var(--island-dark);stroke-width:1.6px}.island-blot{fill:var(--island-dark);opacity:.45}.token--kraken{fill:var(--kraken);stroke:var(--kraken-edge);stroke-width:2.6px}.token--start{fill:var(--deep-3);stroke:var(--cream);stroke-width:1.6px}.token--end{fill:var(--deep-3);stroke:var(--cream);stroke-width:2px}.token--whirlpool{fill:var(--whirl);stroke:#bfe6f5;stroke-width:1.6px}.token--ally{fill:var(--ally);stroke:var(--deep-3);stroke-width:2px}.token--crowsNest{fill:var(--crow);stroke:#f0d6e8;stroke-width:1.6px}.storm-line{stroke:var(--deep);stroke-width:2px;stroke-dasharray:6 6;opacity:.5}.storm-cloud path{fill:var(--deep-3);stroke:var(--cream);stroke-width:1.8px;stroke-linejoin:round}.storm-cloud--ghost path{opacity:.55;stroke-dasharray:4 3}.storm--removable{cursor:pointer;outline:none}.storm--removable:hover path{fill:#2c6c72}.storm--removable:focus-visible path{stroke:var(--kraken);stroke-width:3px}.traps,.route,.labels,.ghost,.tokens{pointer-events:none}.hatch-line{stroke:var(--kraken-edge);stroke-width:2.2px;opacity:.6}.route-casing{fill:none;stroke:var(--deep);stroke-width:7px;stroke-opacity:.28;stroke-linecap:round;stroke-linejoin:round}.route-line{fill:none;stroke:var(--cream);stroke-width:3px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:9 7}.route-dot{fill:var(--cream)}.route-hit{fill:none;stroke:var(--kraken-edge);stroke-width:3px}.labels text{font-family:var(--font-display);text-anchor:middle;fill:var(--ink);opacity:.6;font-size:11px;font-weight:600}.labels .label{paint-order:stroke;stroke:var(--sea);stroke-width:3px;stroke-linejoin:round}.labels .label--island,.labels .label--kraken,.labels .label--start,.labels .label--end,.labels .label--whirlpool,.labels .label--ally,.labels .label--crowsNest{opacity:1;font-size:14px;font-weight:700}.labels .label--island{fill:var(--island-ink)}.labels .label--kraken{fill:var(--kraken-ink)}.labels .label--start,.labels .label--end{fill:var(--teal-ink)}.labels .label--whirlpool,.labels .label--crowsNest{fill:#fff}.labels .label--ally{fill:var(--ink)}.labels .label--island,.labels .label--kraken,.labels .label--start,.labels .label--end,.labels .label--whirlpool,.labels .label--ally,.labels .label--crowsNest,.labels .label--tag{stroke:none}.labels .label--tag{letter-spacing:.14em;fill:var(--teal-ink);opacity:.75;font-size:7.5px}.cell{cursor:pointer;outline:none}.cell .hit{fill:#0000}.board--interactive .cell:hover .hit{fill:#fff5c44d}.cell:focus-visible .hit{fill:#fff5c42e;stroke:var(--cream);stroke-width:4px}.ghost polygon{fill-opacity:.6;stroke-width:2px;stroke-dasharray:5 4;stroke-linejoin:round}.ghost--island polygon{fill:var(--island);stroke:var(--island-dark)}.ghost--kraken polygon{fill:var(--kraken);stroke:var(--kraken-edge)}.ghost--start polygon,.ghost--end polygon{fill:var(--deep-3);stroke:var(--cream)}.ghost--whirlpool polygon{fill:var(--whirl);stroke:#bfe6f5}.ghost--ally polygon{fill:var(--ally);stroke:var(--deep-3)}.ghost--crowsNest polygon{fill:var(--crow);stroke:#f0d6e8}.ghost--erase polygon,.ghost--invalid polygon{fill:#c2291c38;fill-opacity:1;stroke:var(--kraken-edge);stroke-width:3px}.board--compact .grid polygon{stroke-width:1.6px}.sheet{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);align-items:start;gap:24px;margin-top:30px;display:grid}.legend{background:var(--mint);color:var(--ink);border-radius:16px;grid-template-columns:minmax(0,1fr) minmax(0,.9fr);gap:16px 30px;padding:24px 28px;display:grid}.legend dl{margin:0}.legend-row{grid-template-columns:46px minmax(0,1fr);column-gap:10px;margin-bottom:12px;display:grid}.legend-row dt{display:contents}.legend-row .ticon{grid-row:1/span 2;place-self:center}.legend-row dt span{font:700 19px/1.1 var(--font-display);letter-spacing:.05em;text-transform:uppercase;grid-column:2}.legend-row dd{font:500 18px/1.3 var(--font-display);overflow-wrap:anywhere;grid-column:2;margin:0}.legend-side{flex-direction:column;gap:10px;min-height:100%;display:flex}.legend-note{max-width:32ch;color:var(--ink-soft);font-size:14px;font-style:italic}.legend-title{text-align:right;margin-top:auto}.legend-title-text{font:700 38px/1 var(--font-display);text-transform:uppercase;letter-spacing:.02em;text-wrap:balance;overflow-wrap:anywhere}.title-field{display:block}.title-field input{width:100%;color:var(--ink);font:700 34px/1.1 var(--font-display);text-align:right;background:0 0;border:0;border-bottom:2px dashed #11343a59;border-radius:0;padding:2px 0 4px}.title-field input::placeholder{color:#11343a6b}.title-field input:focus,.title-field input:focus-visible{border-bottom:3px solid var(--ink);background:#fff6;outline:none}.title-field small{margin-top:4px;display:block}.field-hint{color:var(--ink-soft);font-size:13px}.field-error{color:var(--danger-on-light);font-size:13px;font-weight:500}.course{border:1px solid var(--line);background:var(--deep-2);border-radius:12px;padding:22px 24px}.course h2{color:var(--cream);margin:0 0 14px;font-size:28px;font-weight:700}.course-stats{border-bottom:1px solid var(--line);grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0 0 14px;padding-bottom:14px;display:grid}.course-stats dt{color:var(--text-dim);font-size:13px;line-height:1.3}.course-stats dd{font:700 24px/1.1 var(--font-display);color:var(--cream);margin:2px 0 0}.course-compare{color:var(--text-dim);margin-bottom:12px}.checks{gap:10px;margin:0;padding:0;list-style:none;display:grid}.check{grid-template-columns:22px minmax(0,1fr);gap:10px;font-size:15px;line-height:1.45;display:grid}.check-icon{width:22px;height:22px;font:700 13px/1 var(--font-display);border-radius:50%;place-items:center;margin-top:1px;display:grid}.check--error .check-icon{background:var(--danger);color:var(--deep)}.check--warning .check-icon{background:var(--warn);color:var(--deep)}.check--info .check-icon{border:1.5px solid var(--text-dim);color:var(--text-dim)}.check--ok .check-icon{border:1.5px solid var(--ok);color:var(--ok)}.course-footnote{color:var(--text-dim);margin-top:16px;font-size:13px}.tips{border:1px dashed var(--line);background:0 0;border-radius:12px;padding:22px 24px}.tips--open{background:var(--deep-2);border-style:solid}.tips-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.tips-head h2{color:var(--cream);margin:0;font-size:28px;font-weight:700}.tips-cover{max-width:52ch;color:var(--text-dim)}.tips-note{color:var(--text-dim);margin-bottom:14px}.board-frame--view{scroll-margin-top:16px}dialog.publish{background:var(--mint);width:min(560px,100vw - 24px);max-height:calc(100dvh - 24px);color:var(--ink);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;border:0;border-radius:16px;padding:26px 28px;box-shadow:0 30px 80px #00000073}dialog.publish::backdrop{background:#061a1cbd}dialog.publish h2{margin:0 0 16px;font-size:32px}.field{gap:6px;margin-bottom:14px;display:grid}.field>span{font:600 17px/1.1 var(--font-display)}.field input,.field textarea{border:1.5px solid var(--mint-line);width:100%;color:var(--ink);font:400 16px/1.4 var(--font-body);resize:vertical;background:#eef8ef;border-radius:8px;padding:10px 12px}.field input:focus-visible,.field textarea:focus-visible{outline:3px solid var(--deep-3);outline-offset:1px}.field [aria-invalid=true]{border-color:var(--danger-on-light)}.notice{background:#ffffff8c;border-left:4px solid #c8a42a;border-radius:6px;margin:0 0 14px;padding:10px 14px;font-size:14px}.notice ul{margin:6px 0 0;padding-left:18px}.notice--error{border-left-color:var(--danger-on-light);background:#fbe9e5}.notice--dark{border-left-color:var(--warn);background:var(--deep-2);color:var(--text-dim);margin-top:18px}.captcha{min-height:72px;margin:4px 0 12px}.dialog-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;margin-top:6px;display:flex}.dialog-hint{text-align:right;margin-top:8px}.publish .btn{color:var(--ink);background:0 0;border-color:#6e9e80}.publish .btn:hover{background:#ffffff73}.publish .btn--primary{background:var(--deep-3);border-color:var(--deep-3);color:var(--cream)}.publish .btn--primary:hover{background:var(--deep-2)}.publish .btn--quiet{border-color:#0000}.publish :focus-visible{outline-color:var(--deep-3)}.notice--ok{border-left-color:var(--deep-3)}.edit-link{overflow-wrap:anywhere;background:#ffffffb3;border-radius:6px;margin:8px 0 10px;padding:8px 10px;font-size:13px}.danger-zone{border-top:1px solid var(--mint-line);margin-top:18px;padding-top:14px}.danger-zone p{margin-bottom:8px;font-size:14px}.dialog-actions--start{justify-content:flex-start}.publish .btn--danger{background:var(--danger-on-light);border-color:var(--danger-on-light);color:#fff}.publish .btn--danger:hover{background:#84190f}.publish .btn--danger-text{color:var(--danger-on-light);padding-left:0}.publish-done p{margin-bottom:14px}.dialog-close{margin-top:10px}.toast-region{z-index:50;pointer-events:none;width:max-content;max-width:calc(100vw - 32px);position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.toast{color:var(--text);background:#082427;border:1px solid #fff5c48c;border-radius:10px;padding:11px 16px;font-size:15px;animation:.18s ease-out toast-in;box-shadow:0 12px 30px #00000059}@keyframes toast-in{0%{opacity:0;transform:translateY(6px)}}.cards{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:18px;margin:26px 0 0;padding:0;list-style:none;display:grid}.cards--book{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.card{border:1px solid var(--line);background:var(--deep-2);height:100%;color:inherit;border-radius:12px;text-decoration:none;transition:border-color .15s;display:block;overflow:hidden}.card:hover{border-color:var(--cream)}.card .board{padding:6px 6px 0}.card-body{padding:10px 16px 16px}.card-title{color:var(--cream);overflow-wrap:anywhere;margin:0;font-size:23px;font-weight:700}.card-meta{color:var(--text-dim);margin:4px 0 10px;font-size:14px}.card--book .card-meta{margin-bottom:0}.card-stats{font:600 17px/1 var(--font-display);align-items:center;gap:14px;margin:0;padding:0;list-style:none;display:flex}.card-stats li{align-items:center;gap:6px;display:flex}.card-stats .card-length{color:var(--text-dim);margin-left:auto}.empty{border:1px dashed var(--line);border-radius:12px;flex-wrap:wrap;align-items:center;gap:16px;margin-top:26px;padding:28px;display:flex}.empty p{font-size:17px}.empty--page{flex-direction:column;align-items:flex-start;max-width:640px;margin:56px auto}.empty--page h1{color:var(--cream);margin:0;font-size:42px}.empty-actions{flex-wrap:wrap;gap:10px;display:flex}.pager{color:var(--text-dim);justify-content:space-between;align-items:center;gap:12px;margin-top:24px;display:flex}.book{border-top:1px solid var(--line);margin-top:60px;padding-top:28px}.book h2{color:var(--cream);margin:0;font-size:32px}.book>p{color:var(--text-dim);margin-top:6px}.crumb a{font:600 18px/1 var(--font-display);color:var(--text-dim);text-decoration:none}.crumb a:before{content:"← "}.crumb a:hover{color:var(--cream)}.detail .page-head h1{overflow-wrap:anywhere;margin-top:10px}.byline{color:var(--text-dim);margin-top:6px}.designer-notes{border-left:3px solid var(--mint);white-space:pre-line;max-width:70ch;margin-top:14px;padding-left:14px}.owner-hint{color:var(--text-dim);margin-top:10px;font-size:14px}.detail-actions{flex-wrap:wrap;gap:10px;margin-top:16px;display:flex}.footer{border-top:1px solid var(--line);width:100%;max-width:1440px;color:var(--text-dim);margin:0 auto;padding:20px 28px 28px;font-size:13px}@media (max-width:1080px){.sheet{grid-template-columns:minmax(0,1fr)}}@media (max-width:759px){main{padding:18px 16px 32px}.masthead{padding:12px 16px}.brand-sub{font-size:18px}.nav{gap:16px}.intro h1,.page-head h1{font-size:36px}.workbench{padding-bottom:112px}.palette{z-index:30;padding:8px 8px calc(6px + env(safe-area-inset-bottom));background:#133f44f7;border-width:1px 0 0;border-radius:0;flex-direction:column;align-items:stretch;gap:4px;margin:0;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -10px 30px #0000004d}.palette .toggle{padding:0 6px;font-size:13px}.tool{gap:8px;padding:6px 10px 6px 6px}.tool-name{font-size:16px}.tool-count{font-size:12px}.toast-region{bottom:128px}.toast{padding:9px 13px;font-size:14px}.legend{grid-template-columns:minmax(0,1fr);padding:20px}.legend-title,.title-field input{text-align:left}.legend-title-text{font-size:30px}.title-field input{font-size:28px}.course{padding:18px}.course-stats dd{font-size:20px}.cards{grid-template-columns:minmax(0,1fr)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}@media print{@page{size:A4 landscape;margin:10mm}*{-webkit-print-color-adjust:exact;print-color-adjust:exact}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}html,body{color:#000;background:#fff}main{max-width:none;padding:0}.masthead,.footer,.skip-link,.workbench-head,.page-head,.palette,.board-caption,.detail-actions,.owner-hint,.course,.tips,.toast-region,.route,.traps,.title-field small,dialog{display:none!important}.workbench{padding:0}.board-frame{break-inside:avoid;margin:0}.board-frame--vertical .board{max-width:none}.sheet{margin-top:6mm;display:block}.legend{break-inside:avoid;border:1px solid var(--mint-line)}.title-field input{border:0}}
