@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-vietnamese-wght-normal-CnvboYUG.woff2)format("woff2-variations");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:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-ext-wght-normal-Ca2vKHc0.woff2)format("woff2-variations");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:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-wght-normal-ukD16Tqj.woff2)format("woff2-variations");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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-cyrillic-ext-400-normal-g30qAdWV.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-400-normal-Dsrv2Tcn.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-cyrillic-400-normal-DZqxrq2p.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-400-normal-BTotfTJu.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-greek-400-normal-_efipK4i.woff2)format("woff2"),url(/assets/ibm-plex-sans-greek-400-normal-D9ESIMu3.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-vietnamese-400-normal-DG4YqDda.woff2)format("woff2"),url(/assets/ibm-plex-sans-vietnamese-400-normal-fK1oJ5dG.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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-latin-ext-400-normal-C5H60-Va.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-ext-400-normal-RBey6euL.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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-sans-latin-400-normal-CDDApCn2.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-400-normal-CYLoc0-x.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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-cyrillic-ext-500-normal-Cs5J6C77.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-500-normal-DB5PtV2g.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-cyrillic-500-normal-CocWQlwt.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-500-normal-ByOcLdNv.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-greek-500-normal-JMMifIXV.woff2)format("woff2"),url(/assets/ibm-plex-sans-greek-500-normal-CuWXN6rf.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-vietnamese-500-normal-e4dixQRQ.woff2)format("woff2"),url(/assets/ibm-plex-sans-vietnamese-500-normal-BEb3_waV.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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-latin-ext-500-normal-DakdToA3.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-ext-500-normal-D0aIdm-b.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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-sans-latin-500-normal-6ng42L7E.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-500-normal-BgVn5rGT.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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-cyrillic-ext-600-normal-DUMzJB7m.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-ext-600-normal-Bz0x94Yp.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-cyrillic-600-normal-71GNu3SW.woff2)format("woff2"),url(/assets/ibm-plex-sans-cyrillic-600-normal-BGq0mW3O.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-greek-600-normal-DzTrcv_p.woff2)format("woff2"),url(/assets/ibm-plex-sans-greek-600-normal-D-CqTdkO.woff)format("woff");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-vietnamese-600-normal-DpPYBSTl.woff2)format("woff2"),url(/assets/ibm-plex-sans-vietnamese-600-normal-DgdngZtN.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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-latin-ext-600-normal-DOrvGEcy.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-ext-600-normal-DIrixKbi.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:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-sans-latin-600-normal-CuJfVYMP.woff2)format("woff2"),url(/assets/ibm-plex-sans-latin-600-normal-Cu4Hd6ag.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-xuaO2J-f.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-DMdlQ8Kv.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-400-normal-BSMlKf0J.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-400-normal-CEL4l2ZJ.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-vietnamese-400-normal-BulugwFq.woff2)format("woff2"),url(/assets/ibm-plex-mono-vietnamese-400-normal-DDuiU_S-.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-ext-400-normal-BmRBH3aV.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-ext-400-normal-D3D2R8hC.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BqneJy0T.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-500-normal-BIfNGwUT.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-cyrillic-500-normal-Bq9vWWag.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-500-normal-Ael50iVv.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-vietnamese-500-normal-DZ4AoWbu.woff2)format("woff2"),url(/assets/ibm-plex-mono-vietnamese-500-normal-C8zxqsMH.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-ext-500-normal-CAhNIIs5.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-ext-500-normal-CZ70TYgx.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:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-500-normal-CB9ihrfo.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{--ground:#0c1719;--glass:#14201fdb;--glass-2:#14201fed;--raised:#233532;--raised-2:#2b403c;--line:#a0c4ba29;--line-2:#a0c4ba47;--ink:#eaf0ec;--ink-2:#a9bab4;--ink-3:#8a9c96;--mint:#7cc4b2;--mint-deep:#2c4a43;--amber:#f2b37a;--coral:#ef8a6f;--sea:#8cc3e8;--reed:#b5cf7e;--paper:#f6efe2;--paper-ink:#1c2b2a;--display:"Fraunces Variable", Georgia, serif;--sans:"IBM Plex Sans", "Segoe UI", system-ui, sans-serif;--mono:"IBM Plex Mono", Consolas, monospace;--radius:14px;--top:92px;--bottom:150px;font-family:var(--sans);color:var(--ink);background:var(--ground);font-synthesis:none;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}body{background:var(--ground);margin:0;overflow:hidden}button{font:inherit;color:inherit;cursor:pointer;background:var(--raised);border:1px solid var(--line-2);border-radius:9px;padding:6px 10px;transition:background .15s,border-color .15s,color .15s}button:hover{background:var(--raised-2);border-color:#a0c4ba6b}button:disabled{opacity:.5;cursor:not-allowed}button:focus-visible,summary:focus-visible,input:focus-visible{outline:2px solid var(--amber);outline-offset:2px}button[aria-pressed=true]{background:var(--mint-deep);border-color:var(--mint);color:#f4fbf8}input[type=checkbox],input[type=radio],input[type=range]{accent-color:var(--mint)}h1,h2,h3{margin:0;font-weight:500}.muted{color:var(--ink-2)}.small{font-size:12px;line-height:1.45}.bad{color:var(--coral)}.warn{color:var(--amber)}.good{color:var(--mint)}main{pointer-events:none;position:fixed;inset:0}main>*,.bar>*{pointer-events:auto}.world{pointer-events:auto;position:fixed;inset:0}.world canvas{display:block}.canvas-host{position:absolute;inset:0}.render-error{background:var(--glass-2);border-radius:var(--radius);padding:16px;position:absolute;top:45%;left:50%;transform:translate(-50%)}.panel{background:var(--glass);border:1px solid var(--line);border-radius:var(--radius);-webkit-backdrop-filter:blur(14px)saturate(1.2);backdrop-filter:blur(14px)saturate(1.2);box-shadow:inset 0 1px #ffffff0d,0 18px 40px #030a0a73}.close{width:32px;height:32px;color:var(--ink-2);background:0 0;border-color:#0000;border-radius:8px;flex:none;padding:0;font-size:20px;line-height:1}.close:hover{color:var(--ink);background:var(--raised)}.bar{pointer-events:none;z-index:3;align-items:stretch;gap:12px;display:flex;position:fixed;top:14px;left:16px;right:16px}.brand{align-items:center;gap:10px;padding:10px 16px;display:flex}.brand svg{fill:none;width:28px;height:20px;stroke:var(--mint);stroke-width:2.4px;stroke-linecap:round}.brand h1{font-family:var(--display);font-variation-settings:"SOFT" 100, "WONK" 1, "opsz" 72;color:#f6f8f4;font-size:22px;font-weight:600}.timebar{flex:auto;align-items:center;gap:16px;min-width:0;padding:8px 14px;display:flex}.clock{flex-direction:column;min-width:148px;display:flex}.clock strong{font-family:var(--display);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:21px;font-weight:500}.clock span{font:11px var(--mono);color:var(--ink-2);white-space:nowrap}.ribbon{flex:auto;min-width:140px;height:44px;margin-bottom:10px;position:relative}.ribbon svg{width:100%;height:100%;position:absolute;inset:0;overflow:visible}.r-band{fill:var(--sea);opacity:.18}.r-future{fill:none;stroke:var(--sea);stroke-width:2px;vector-effect:non-scaling-stroke;opacity:.8}.r-past{fill:none;stroke:var(--mint);stroke-width:3px;vector-effect:non-scaling-stroke}.r-storm{stroke:var(--amber);stroke-width:1.5px;vector-effect:non-scaling-stroke;opacity:.8}.r-storm.big{stroke:var(--coral)}.r-now{stroke:var(--amber);stroke-dasharray:3 3;vector-effect:non-scaling-stroke}.r-now-dot{background:var(--amber);pointer-events:none;border-radius:50%;width:10px;height:10px;margin:-5px 0 0 -5px;position:absolute;box-shadow:0 0 0 3px #f2b37a40}.r-dot{background:#f6efe28c;border:0;border-radius:50%;width:9px;height:9px;min-height:0;margin-left:-4.5px;padding:0;position:absolute;top:-3px}.r-dot.new{background:var(--paper);box-shadow:0 0 0 3px #f6efe240}.r-dot:hover{background:#fff;transform:scale(1.3)}.r-years{font:10px var(--mono);color:var(--ink-3);pointer-events:none;justify-content:space-between;display:flex;position:absolute;bottom:-14px;left:0;right:0}.rise{text-align:right;flex-direction:column;min-width:104px;display:flex}.rise b{font:500 18px var(--mono);color:var(--sea)}.rise span{color:var(--ink-2);white-space:nowrap;font-size:11px}.speeds{border:1px solid var(--line);background:#08101080;border-radius:10px;gap:2px;padding:3px;display:flex}.speeds button{background:0 0;border-color:#0000;flex-direction:column;justify-content:center;align-items:center;min-width:44px;min-height:38px;padding:2px 9px;line-height:1.05;display:flex}.speeds button span{font:500 12.5px var(--sans)}.speeds button small{font:9.5px var(--mono);color:var(--ink-3)}.speeds button[aria-pressed=true] small{color:#cfe9e0}.speeds button:hover{background:var(--raised)}.speeds button[aria-pressed=true]{background:var(--mint-deep);border-color:var(--mint)}.speeds svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;width:14px;height:11px}.speeds button:first-child span{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.switch{cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;align-items:center;gap:8px;font-size:12px;line-height:1.1;display:flex;position:relative}.switch small{color:var(--ink-3);font-size:10.5px;display:block}.switch input{opacity:0;cursor:pointer;z-index:1;width:100%;height:100%;margin:0;position:absolute;inset:0}.switch .track{border:1px solid var(--line-2);background:#a0c4ba2e;border-radius:10px;flex:none;width:34px;height:20px;transition:background .15s;position:relative}.switch .track:after{content:"";background:var(--ink-2);border-radius:50%;width:14px;height:14px;transition:transform .15s,background .15s;position:absolute;top:2px;left:2px}.switch input:checked+.track{background:var(--mint-deep);border-color:var(--mint)}.switch input:checked+.track:after{background:var(--mint);transform:translate(14px)}.switch input:focus-visible+.track{outline:2px solid var(--amber);outline-offset:2px}.files{align-items:center;gap:6px;padding:8px;display:flex;position:relative}.files>button{min-height:40px}.menu-button,.settings-button{place-items:center;width:44px;padding:0;display:grid}.menu-button svg,.settings-button svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:18px;height:18px}.sound-button{place-items:center;width:44px;padding:0;display:grid}.sound-button svg{fill:none;stroke:currentColor;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;width:18px;height:18px}.sound-button[aria-pressed=true]{color:var(--amber);border-color:var(--amber)}.files .accent{border-color:var(--amber);color:var(--amber);background:0 0;padding:0 14px}.files .accent:hover{background:#f2b37a1f}.menu{background:var(--glass-2);width:340px;padding:12px;position:absolute;top:calc(100% + 8px);right:0}.menu h3{font:600 10.5px var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);margin:6px 2px 8px}.menu h3:first-child{margin-top:2px}.menu-grid{grid-template-columns:1fr 1fr;gap:6px;margin-bottom:10px;display:grid}.menu-grid button{text-align:left;padding:8px 10px;font-size:13.5px}.menu-grid .wide{grid-column:1/-1}.menu .menu-version{border-top:1px solid var(--line);justify-content:space-between;padding-top:8px;display:flex}.intro.settings .panel{width:min(1180px,100vw - 32px);max-height:calc(100vh - 32px);padding:28px 36px 24px;overflow:auto}.settings-head{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.settings h2{margin:6px 0 4px;font-size:34px}.settings h2:focus{outline:none}.settings-sub{color:var(--ink-2)!important;margin:0 0 18px!important;font-size:13.5px!important;line-height:1.5!important}.settings-cols{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.settings fieldset{border:1px solid var(--line-2);border-radius:12px;gap:2px;margin:0 0 14px;padding:10px 14px 12px;font-size:14px;display:grid}.settings legend{font:600 11.5px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--mint);padding:0 6px}.settings legend small{font:500 11px var(--sans);letter-spacing:0;text-transform:none;color:var(--amber);margin-left:6px}.settings label{cursor:pointer;align-items:center;gap:9px;padding:5px 2px;display:flex}.settings label:has(input:disabled){color:var(--ink-3);cursor:default}.settings fieldset small{color:var(--ink-3);margin:4px 2px 0;font-size:12px;line-height:1.45}.settings .volume input{width:100%;accent-color:var(--mint)}.settings .volume{grid-template-columns:auto 1fr 46px;gap:12px;display:grid}.settings .volume output{font:500 13px var(--mono);color:var(--ink-2);text-align:right}.settings-foot{border-top:1px solid var(--line);justify-content:space-between;align-items:center;padding-top:14px;display:flex}.settings-foot .menu-version{margin:0;font-size:12px}.settings-foot .primary{margin-top:0;padding:10px 22px}.rail{left:16px;top:var(--top);z-index:2;flex-direction:column;gap:6px;padding:6px;display:flex;position:fixed}.rail button{width:44px;height:44px;color:var(--ink-2);background:0 0;border-color:#0000;place-items:center;padding:0;display:grid;position:relative}.rail button:hover{background:var(--raised);color:var(--ink)}.rail button[aria-pressed=true]{border-color:var(--paper);color:var(--paper);background:#f6efe224}.rail button:not(.stories)[aria-pressed=true]{background:var(--mint-deep);border-color:var(--mint);color:var(--ink)}.rail svg{fill:none;stroke:currentColor;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;width:20px;height:20px}.rail .dot{background:var(--amber);width:9px;height:9px;box-shadow:0 0 0 2px var(--ground);border-radius:50%;position:absolute;top:7px;right:7px}.drawer{left:84px;top:var(--top);width:380px;max-height:calc(100vh - var(--top) - var(--bottom));z-index:2;scrollbar-width:thin;scrollbar-color:#a0c4ba4d transparent;padding:14px 18px 18px;position:fixed;overflow-y:auto}.drawer>header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.drawer h2{font-family:var(--display);font-variation-settings:"SOFT" 60, "opsz" 28;font-size:20px}.drawer h3,.card h3{letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3);margin:14px 0 7px;font-size:10.5px;font-weight:600}.panel-failed{padding:12px}.ledger dl{gap:5px;margin:0;display:grid}.ledger dl div{border-bottom:1px solid var(--line);justify-content:space-between;align-items:baseline;gap:8px;padding-bottom:4px;display:flex}.ledger dl div:last-child{border-bottom:0}.ledger dt{color:var(--ink-2);font-size:12px}.ledger dd{font:500 15px var(--mono);font-variant-numeric:tabular-nums;margin:0}.ledger dd small{color:var(--ink-3);font-size:11px}.ledger .month dd{font-size:13px}.kpis{grid-template-columns:1fr 1fr;gap:8px!important}.kpis div{background:#08101059;border-radius:9px;flex-direction:column;border:1px solid var(--line)!important;align-items:flex-start!important;gap:2px!important;padding:8px 10px!important}.kpis .wide{grid-column:1/-1}.kpis .wide dd{font-family:var(--display);font-variation-settings:"opsz" 48;font-size:26px;font-weight:500}.kpis dt{letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3)!important;font-size:10.5px!important}.budget{flex-wrap:wrap;align-items:center;gap:8px 12px;margin-top:10px;font-size:12px;display:flex}.budget button{padding:5px 10px;font-size:12px}.budget label{color:var(--ink-2);cursor:pointer;align-items:center;gap:6px;display:flex}.households table{border-collapse:collapse;width:100%;font-size:12px}.households th{text-align:left;color:var(--ink-2);padding:4px 0;font-weight:400}.households thead th{letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);text-align:right;font-size:10px}.households tbody tr{border-top:1px solid var(--line)}.households td{font:500 13px var(--mono);text-align:right}.households p{margin:8px 0 0;font-size:12px}.districts{gap:8px;margin:0;padding:0;list-style:none;display:grid}.districts li{border-left:2px solid var(--line-2);gap:1px;padding:6px 10px;font-size:12.5px;display:grid}.districts b{font-family:var(--display);font-size:14px;font-weight:500}.districts span{color:var(--ink-2)}.districts small{font-size:11.5px}.goals ul{gap:8px;margin:0;padding:0;font-size:13px;list-style:none;display:grid}.goals li{align-items:flex-start;gap:10px;display:flex}.goals li>span{width:20px;height:20px;font:600 11px var(--mono);color:var(--ink-3);border:1px solid var(--line-2);border-radius:50%;flex:none;place-items:center;display:grid}.goals li.done{color:var(--ink-3);text-decoration:line-through;-webkit-text-decoration-color:var(--line-2);text-decoration-color:var(--line-2)}.goals li.done>span{color:var(--mint);border-color:var(--mint)}.goals>p{margin:0 0 10px}.goals .first-steps{border-bottom:1px solid var(--line);margin-bottom:12px;padding-bottom:10px}.goals .first-steps li>span{color:var(--amber);border-color:var(--amber)}.goals li div,.objectives li div{flex-direction:column;gap:2px;display:flex}.goals li small,.objectives li small{color:var(--ink-3);font-size:11px;line-height:1.4}.goals li.met>span,.objectives li.met>span{color:var(--ground);background:var(--mint);border-color:var(--mint)}.goals li.missed>span,.objectives li.missed>span{color:var(--ground);background:var(--coral);border-color:var(--coral)}.report-link{margin-top:12px;padding:5px 10px;font-size:12px}.gauge,.chart{margin:0}.gauge svg,.chart svg{width:100%;height:auto;display:block}.staff{fill:#0810108c;stroke:var(--line-2);stroke-width:1px}.tick{stroke:var(--ink-3);stroke-width:1px}.tick-label{font:10px var(--mono);fill:var(--ink-3)}.surge{fill:var(--amber);opacity:.85}.tide-band{fill:#4fb3c4;opacity:.5}.msl{stroke:#e6f2ee;stroke-width:1.5px;stroke-dasharray:3 2}.spring{stroke:var(--sea);stroke-width:1px;stroke-dasharray:4 3}.spring-note{color:var(--sea)}.mark{stroke:var(--ink-3);fill:none}.mark-label{font:11px var(--sans);fill:var(--ink-2)}.mark-label.under{fill:var(--coral);font-weight:600}.gauge figcaption{font:11.5px var(--mono);color:var(--ink-3);flex-direction:column;gap:2px;margin-top:6px;display:flex}.gauge figcaption b{color:var(--ink);font-size:16px;font-weight:500}.chart{border-top:1px solid var(--line);margin-top:12px;padding-top:10px}.band-wide{fill:var(--sea);opacity:.12}.band{fill:var(--sea);opacity:.26}.central{fill:none;stroke:var(--sea);stroke-width:2px}.grid{stroke:var(--line);stroke-width:.6px}.now{stroke:var(--amber);stroke-dasharray:2 2}.now-dot{fill:var(--amber)}.chart figcaption{color:var(--ink-3);font-size:11px;line-height:1.45}.chart details{margin-top:6px}.chart details p{color:var(--ink-2)}.chart summary{cursor:pointer;color:var(--sea)}.drawer:has(>.sea){flex-direction:column;display:flex}:is(.drawer:has(>.sea)>header,.sea>figure){flex:none}.sea{flex-direction:column;flex:1;min-height:0;display:flex}.sea>.feed{scrollbar-width:thin;scrollbar-color:#a0c4ba4d transparent;flex:auto;min-height:90px;overflow-y:auto}.sea>.feed h3{background:var(--glass-2);margin-top:10px;padding:4px 0;position:sticky;top:0}.feed ol{color:#d9e3df;gap:8px;margin:0;padding:0;font-size:12px;line-height:1.45;list-style:none;display:grid}.feed li{border-left:2px solid var(--line-2);padding-left:10px}.feed li.warning{border-left-color:var(--amber)}.feed li.alarm{border-left-color:var(--coral)}.feed time{font:10px var(--mono);color:var(--ink-3);display:block}.gazette{left:84px;top:var(--top);width:410px;max-height:calc(100vh - var(--top) - var(--bottom));background:var(--paper);color:var(--paper-ink);z-index:2;scrollbar-width:thin;border-radius:6px;padding:16px 22px 18px;position:fixed;overflow-y:auto;box-shadow:0 20px 50px #00000073}.gazette:before{content:"";pointer-events:none;background:radial-gradient(at 20% 0,#ffffff80,#0000 60%),repeating-linear-gradient(0deg,#3c280a05 0 2px,#0000 2px 4px);border-radius:6px;position:absolute;inset:0}.masthead{border-bottom:2px solid var(--paper-ink);align-items:baseline;gap:10px;padding-bottom:6px;display:flex}.masthead .title{font-family:var(--display);letter-spacing:.05em;font-variation-settings:"opsz" 48;flex:1;font-size:16px;font-weight:800}.masthead .date{font:11px var(--mono);color:#55625f}.masthead .close{width:28px;height:28px;color:var(--paper-ink);align-self:center}.masthead .close:hover{color:var(--paper-ink);background:#1c2b2a14}.gazette h2{font-family:var(--display);font-variation-settings:"opsz" 72, "SOFT" 30;margin:12px 0 8px;font-size:25px;font-weight:600;line-height:1.12}.gazette .body{color:#33403e;margin:0;font-size:13.5px;line-height:1.58}.gazette .body:first-letter{font-family:var(--display);float:left;margin:3px 6px 0 0;font-size:2.4em;font-weight:600;line-height:.9}.story-actions{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.story-actions button{border:1.5px solid var(--paper-ink);min-height:40px;color:var(--paper-ink);background:0 0;border-radius:3px;padding:0 12px}.story-actions button:hover{background:#1c2b2a14}.story-actions .ink{background:var(--paper-ink);color:var(--paper)}.story-actions .ink:hover{background:#2d403e}.gazette button:focus-visible{outline-color:#8a3a2a}.archive{border-top:1px solid #c9bea6;margin-top:14px;padding-top:10px}.archive h3{font:600 10.5px var(--sans);letter-spacing:.16em;color:#8a3a2a;text-transform:uppercase;margin:0}.archive ol{flex-direction:column;gap:2px;margin:6px 0 0;padding:0;list-style:none;display:flex}.archive li button{text-align:left;width:100%;color:var(--paper-ink);font:14px/1.35 var(--display);background:0 0;border:0;border-radius:3px;padding:5px 6px;display:block}.archive li button:hover{background:#1c2b2a12}.archive time{font:11px var(--mono);color:#55625f}.muted-ink{color:#55625f;font-size:13px}.alerts{top:var(--top);pointer-events:none;z-index:1;flex-direction:column;align-items:center;gap:8px;max-width:560px;display:flex;position:fixed;left:50%;transform:translate(-50%)}.alerts>*{pointer-events:auto}.alert{color:#f8e2cb;background:#302418eb;border:1px solid #f2b37a80;border-radius:22px;margin:0;padding:9px 14px;font-size:13px;box-shadow:0 10px 30px #00000059}.alert b{color:var(--amber)}.alert.rain{color:#d6eaf7;background:#102634eb;border-color:#8cc3e880}.alert.rain b{color:var(--sea)}.story-notice{color:var(--paper-ink);background:#f6efe2f2;border-radius:22px;align-items:center;gap:10px;max-width:560px;padding:6px 6px 6px 14px;font-size:13px;display:flex;box-shadow:0 10px 30px #00000059}.story-notice svg{fill:none;stroke:currentColor;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:18px;height:18px}.story-notice span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.story-notice b{font-family:var(--display)}.story-notice button{background:var(--paper-ink);color:var(--paper);border-color:var(--paper-ink);border-radius:16px;flex:none;padding:4px 12px;font-size:12px}.story-notice .x{color:var(--paper-ink);background:0 0;border-color:#0000;padding:4px 8px;font-size:16px;line-height:1}.callouts{pointer-events:none;z-index:0;position:fixed;inset:0}.callout{will-change:transform;flex-direction:column;align-items:flex-start;display:flex;position:absolute;top:0;left:0}.callout p{white-space:nowrap;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0a1616d1;border:1px solid;border-radius:16px;margin:0;padding:6px 12px;font-size:13px}.callout i{width:2px;height:30px;margin-left:27px}.callout.bad p{border-color:#ef8a6fbf}.callout.bad b{color:#ffb49c}.callout.bad i{background:#ef8a6fbf}.callout.warn p{border-color:#f2b37a99}.callout.warn b{color:var(--amber)}.callout.warn i{background:#f2b37a99}.callout.ok p{border-color:#7cc4b2bf}.callout.ok b{color:#a6e0cf}.callout.ok i{background:#7cc4b2bf}.notice{left:calc((var(--dock-left,0px) + var(--lens-left,100vw) - 12px) / 2);pointer-events:none;max-width:min(760px, calc(var(--lens-left,100vw) - var(--dock-left,0px) - 12px));color:#dfe8e4;border:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:1;background:#0c1616cc;border-radius:18px;align-items:center;gap:8px;width:max-content;margin:0;padding:7px 14px;font-size:13px;display:flex;position:fixed;bottom:166px;transform:translate(-50%)}.notice svg{fill:none;width:15px;height:15px;stroke:var(--amber);stroke-width:1.6px;stroke-linecap:round;flex:none}.ff-chip{font:11.5px var(--mono);color:#cfe6f6;pointer-events:none;white-space:nowrap;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0d2834d1;border:1px solid #8cc3e866;border-radius:999px;margin:0;padding:6px 12px;position:fixed;bottom:162px;left:50%;transform:translate(-50%)}.leader{pointer-events:none;z-index:1;width:100vw;height:100vh;position:fixed;inset:0}.leader line{stroke:var(--amber);stroke-width:2px;opacity:.75}.leader circle{fill:#f2b37a40;stroke:var(--amber);stroke-width:2px}.card{right:16px;top:var(--top);width:380px;max-height:calc(100vh - var(--top) - var(--bottom));background:var(--glass-2);z-index:2;scrollbar-width:thin;scrollbar-color:#a0c4ba4d transparent;padding:16px 20px 18px;position:fixed;overflow-y:auto}.card>header{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.card h2{font-family:var(--display);font-variation-settings:"SOFT" 60, "opsz" 28;font-size:21px;line-height:1.15}.card .meta{font:11px var(--mono);color:var(--ink-3);margin:2px 0 0}.card p{color:#d9e3df;margin:5px 0;font-size:13px;line-height:1.5}.status{font-weight:600;margin-top:6px!important}.status.ok{color:var(--mint)!important}.status.warn{color:var(--amber)!important}.status.bad{color:var(--coral)!important}.status.info{color:var(--ink-2)!important}.actions{flex-wrap:wrap;align-items:center;gap:8px;margin:8px 0 4px;display:flex}.actions button{min-height:38px;padding:0 12px;font-size:13px}.actions .act{background:var(--mint-deep);border-color:var(--mint)}.actions .act:disabled{background:var(--raised);border-color:var(--line-2)}.repair-now{color:var(--amber);border:1px dashed var(--amber)!important;background:0 0!important}.repair-now[aria-disabled=true]{opacity:.65}.actions .hint{color:var(--ink-2);flex-basis:100%;margin:0;font-size:12px;line-height:1.45}.wear{margin:10px 0 4px}.meter{gap:4px;display:flex}.seg{background:#a0c4ba2e;border-radius:3px;flex:1;height:6px}.seg.on.s0{background:var(--mint)}.seg.on.s1{background:#c9c46a}.seg.on.s2{background:var(--amber)}.seg.on.s3,.seg.on.s4{background:var(--coral)}.seg.on.s5{background:#b8543d}.seg.now{box-shadow:0 0 0 2px #f2b37a73}.wear .labels{font:9.5px var(--mono);color:var(--ink-3);justify-content:space-between;margin-top:3px;display:flex}.wear .stage{margin-top:6px!important;font-size:12.5px!important}.wear .stage.ok b{color:var(--mint)}.wear .stage.warn b{color:var(--amber)}.wear .stage.bad b{color:var(--coral)}.ground-stage{color:var(--ink-2)!important;font-size:12.5px!important}.water-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;margin:10px 0;display:grid}.water-row div{background:#08101066;border-radius:9px;min-width:0;padding:7px 8px}.water-row dt{color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em;white-space:nowrap;text-overflow:ellipsis;font-size:9.5px;overflow:hidden}.water-row dd{font:500 15px var(--mono);font-variant-numeric:tabular-nums;white-space:nowrap;text-overflow:ellipsis;margin:0;overflow:hidden}.chain{background:#ef8a6f1a;border:1px solid #ef8a6f59;border-radius:10px;margin-top:10px;padding:10px 12px}.chain h3{color:var(--coral);margin-top:0}.chain h3 small{text-transform:none;letter-spacing:0;color:var(--ink-3);margin-left:4px;font-weight:400}.chain ol{gap:4px;margin:0;padding-left:18px;font-size:13px;line-height:1.45;display:grid}.chain.past{opacity:.85;border-style:dashed}.household{background:#f6efe212;border:1px solid #f6efe233;border-radius:10px;margin-top:12px;padding:10px 12px}.household .who{align-items:center;gap:10px;display:flex}.household .who svg{flex:none;width:36px;height:36px}.household .who b{font-family:var(--display);font-size:16px;font-weight:500;display:block}.household .who small{color:var(--ink-2);font-size:11.5px}.household ol{border-left:2px solid #f6efe240;flex-direction:column;gap:6px;margin:10px 0 0;padding:0 0 0 12px;font-size:12.5px;line-height:1.4;list-style:none;display:flex}.household time{font:11px var(--mono);margin-right:6px}.household li.ok time{color:#a6e0cf}.household li.warn time{color:var(--amber)}.household li.bad time{color:#ffb49c}.staffing{grid-template-columns:repeat(3,1fr);gap:6px;margin:10px 0;display:grid}.staffing div{background:#08101059;border-radius:8px;padding:6px 8px}.staffing dt{color:var(--ink-3);text-transform:uppercase;letter-spacing:.08em;font-size:10.5px}.staffing dd{font:500 18px var(--mono);margin:0}.details{margin-top:8px}.exposure{background:#8cc3e814;border:1px solid #8cc3e84d;border-radius:10px;margin-top:10px;padding:10px 12px}.exposure h3{color:var(--sea);margin-top:0}.dock{z-index:2;align-items:flex-end;gap:10px;display:flex;position:fixed;bottom:16px;left:50%;transform:translate(-50%)}.inspect-tool{background:var(--glass);border-color:var(--line);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-radius:14px;align-items:center;gap:8px;min-height:76px;padding:0 14px;display:flex}.inspect-tool svg,.tools svg{fill:none;stroke:currentColor;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;width:24px;height:24px}.inspect-tool span{text-align:left;flex-direction:column;font-size:13px;display:flex}.inspect-tool small{font:10px var(--mono);color:var(--ink-3)}.inspect-tool[aria-pressed=true]{background:var(--mint-deep)}.groups{flex-direction:column;gap:4px;padding:6px;display:flex}.groups button{text-align:left;white-space:nowrap;background:0 0;border-color:#0000;min-height:28px;padding:0 12px;font-size:12px}.groups .build{color:var(--mint)}.groups .adapt{color:var(--amber)}.groups .water{color:var(--sea)}.groups .nature{color:var(--reed)}.groups button[aria-pressed=true].nature{border-color:var(--reed);color:var(--reed);background:#b5cf7e24}.groups button[aria-pressed=true].build{border-color:var(--mint);color:var(--mint);background:#7cc4b224}.groups button[aria-pressed=true].adapt{border-color:var(--amber);color:var(--amber);background:#f2b37a24}.groups button[aria-pressed=true].water{border-color:var(--sea);color:var(--sea);background:#8cc3e824}.tools{gap:6px;padding:8px;display:flex}.tools button{background:0 0;border-color:#0000;border-radius:11px;flex-direction:column;justify-content:center;align-items:center;gap:4px;width:84px;min-height:76px;padding:4px;display:flex;position:relative}.tools button:hover{background:var(--raised);border-color:var(--line-2)}.tools.build svg{color:var(--mint)}.tools.adapt svg{color:var(--amber)}.tools.water svg{color:var(--sea)}.tools.nature svg{color:var(--reed)}.tools.nature button[aria-pressed=true]{border-color:var(--reed);background:#b5cf7e24}.tools.build button[aria-pressed=true]{border-color:var(--mint);background:#7cc4b224}.tools.adapt button[aria-pressed=true]{border-color:var(--amber);background:#f2b37a24}.tools.water button[aria-pressed=true]{border-color:var(--sea);background:#8cc3e824}.tools.water button{width:70px}.tools .name{font-size:12.5px}.tools small{font:10px var(--mono);color:var(--ink-3)}.tools kbd{font:9.5px var(--mono);color:var(--ink-3);position:absolute;top:4px;right:6px}.lenses{grid-template-columns:auto auto;gap:4px;padding:6px;display:grid}.lenses button{min-height:30px;color:var(--ink-2);white-space:nowrap;background:0 0;border-color:#0000;padding:0 12px;font-size:12px}.lenses button[aria-pressed=true]{background:var(--mint-deep);border-color:var(--mint);color:var(--ink)}.tool-card{border:1px solid var(--line-2);z-index:6;pointer-events:none;background:#101b1af7;border-radius:14px;width:320px;padding:14px 16px;font-size:12.5px;line-height:1.45;position:fixed;box-shadow:0 18px 40px #00000080}.tool-card:after{content:"";background:inherit;border-right:1px solid var(--line-2);border-bottom:1px solid var(--line-2);width:12px;height:12px;position:absolute;bottom:-7px;left:50%;transform:translate(-50%)rotate(45deg)}.tool-card-head{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.tool-card strong{font-family:var(--display);font-size:19px;font-weight:500}.tool-card p{color:#dfe8e4;margin:6px 0 8px;font-size:13px}.tool-card dl{gap:4px;margin:0;display:grid}.tool-card dl div{grid-template-columns:52px 1fr;gap:8px;display:grid}.tool-card dt{font:600 10px var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);padding-top:2px}.tool-card dd{color:var(--ink-2);margin:0}.diagram{background:#08101080;border-radius:8px;flex:none;width:120px;height:54px}.d-sea{fill:#2c6c86}.d-water{fill:#4fa3b8;opacity:.85}.d-ground{fill:#6f7f4c}.d-dry{stroke:#a6e0cf;stroke-width:2px;stroke-dasharray:3 3;fill:none}.d-reed{stroke:#b5cf7e;stroke-width:1.6px;fill:none;stroke-linecap:round}.d-sand{fill:#d9c48f;stroke:#b9a26a;stroke-width:1px}.d-rock{fill:#7d8584;stroke:#5d6463;stroke-width:1px}.d-levee{fill:#8a9a5e;stroke:#b9c98a;stroke-width:1px}.d-house{fill:#e7c9a4;stroke:#8f4733;stroke-width:1.2px}.d-house.faded{opacity:.4}.d-awning{fill:#c4523a}.d-pump{fill:#a4553f}.d-gen{fill:#3f6a4c}.d-road{stroke:#4f5a5c;stroke-width:6px}.d-mark{stroke:#e9e0c4;stroke-width:1.5px}.d-gate{fill:#c4512f}.d-gate-line{stroke:#c4512f;stroke-width:3px}.d-channel{fill:none;stroke:#b3ae9f;stroke-width:2px}.d-water-line{stroke:#4fa3b8;stroke-width:3px}.d-line{fill:none;stroke:#eaf0ec;stroke-width:1.6px;stroke-linecap:round}.d-arrow{fill:none;stroke:var(--amber);stroke-width:2px;stroke-linecap:round;stroke-dasharray:4 3}.d-x{stroke:var(--coral);stroke-width:2.4px;stroke-linecap:round}.d-bolt{fill:var(--amber)}.lens-wrap{position:relative}.legend{width:max-content;min-width:100%;max-width:min(320px, calc(100vw - var(--lens-left,0px) - 190px));background:var(--glass-2);padding:10px 14px;font-size:12px;position:absolute;bottom:calc(100% + 12px);left:0}.legend:after{content:"";bottom:-7px;left:calc(var(--notch,50%) - 7px);background:var(--glass-2);border-right:1px solid var(--line);border-bottom:1px solid var(--line);width:12px;height:12px;position:absolute;transform:rotate(45deg)}.legend p{color:#d9e3df;margin:0 0 8px}.legend ul{gap:5px;margin:0;padding:0;list-style:none;display:grid}.legend li{align-items:center;gap:8px;display:flex}.legend li span{border:1px solid var(--line-2);border-radius:4px;width:14px;height:14px}.legend .arrow-key{fill:none;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:14px;height:14px}.legend .arrow-key.faint{stroke:#8a9aa3}.legend .arrow-key.live{stroke:#33c4f5;filter:drop-shadow(0 0 1px #0b2230)}.lens-options{gap:4px;margin-bottom:8px;display:flex}.lens-options button{padding:4px 10px;font-size:12px}.preview{pointer-events:none;z-index:5;width:280px;padding:10px 12px;font-size:12px;position:fixed}.preview strong{font-size:13px}.preview .cost{float:right;font:500 12px var(--mono);color:var(--mint)}.preview p{color:#d9e3df;margin:5px 0 0;line-height:1.45}.preview.invalid{border-color:#ef8a6f99}.preview.invalid p{color:var(--coral)}.camera-hud{z-index:1;grid-template-columns:auto auto;align-items:center;gap:6px 8px;padding:8px;display:grid;position:absolute;bottom:16px;right:16px}.compass{background:#08101073;border-radius:50%;width:44px;height:44px;padding:4px}.compass svg{width:100%;height:100%;fill:var(--ink-3);transition:transform .1s}.compass .needle{fill:var(--amber)}.cam-buttons{grid-template-columns:repeat(2,30px);gap:4px;display:grid}.cam-buttons button{height:22px;padding:0;font-size:13px;line-height:1}.camera-hud .tilt{font:10.5px var(--mono);color:var(--ink-3);flex-direction:column;grid-column:1/-1;gap:3px;display:flex}.camera-hud .tilt input{width:100%}.camera-hud .reset{grid-column:1/-1;padding:4px 8px;font-size:11.5px}.intro{pointer-events:auto;z-index:10;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:radial-gradient(#08121473,#040a0cd1);place-items:center;display:grid;position:fixed;inset:0}.intro .panel{background:#14201ff5;width:min(580px,100vw - 32px);padding:32px 36px}.intro .eyebrow{font:11.5px var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--mint);margin:0}.intro h2{font-family:var(--display);font-variation-settings:"SOFT" 100, "opsz" 96;margin:8px 0 16px;font-size:36px;line-height:1.08}.intro p{color:#d9e3df;font-size:15px;line-height:1.6}.intro b{color:var(--amber);font-weight:600}.intro .muted{color:var(--ink-3);font-size:12px}.primary{background:var(--mint);color:#0d1f1b;border-color:var(--mint);margin-top:10px;padding:11px 20px;font-size:15px;font-weight:600}.primary:hover{background:#95d4c4;border-color:#95d4c4}.intro.report .panel{flex-direction:column;width:min(1220px,100vw - 32px);max-height:calc(100vh - 32px);padding:28px 36px 22px;display:flex;overflow-y:auto}.report h2{margin-bottom:8px}.report-tabs{border-bottom:1px solid var(--line-2);gap:4px;margin:10px 0 0;display:flex}.report-tabs [role=tab]{color:var(--ink-2);background:0 0;border:1px solid #0000;border-bottom:none;border-radius:9px 9px 0 0;padding:8px 14px;font-size:13.5px}.report-tabs [role=tab][aria-selected=true]{background:var(--raised);border-color:var(--line-2);color:var(--ink);border-bottom:1px solid var(--raised);margin-bottom:-1px;font-weight:600}.report-body{min-height:0;max-height:calc(100vh - 380px);padding:14px 2px 4px;overflow-y:auto}.report-body:focus-visible{outline:2px solid var(--amber);outline-offset:2px}.report-col{align-content:start;gap:16px;display:grid}.lessons-all ul{columns:2;column-gap:32px}.lessons-all li{break-inside:avoid;margin-bottom:8px}.lessons .link{margin-top:8px;font-size:13px}.report-sources{padding-left:18px;font-size:13px;line-height:1.5}.about{z-index:12}.menu-version{font:11px var(--mono);color:var(--ink-3);margin:6px 2px 0}.about h2:focus{outline:none}.about .panel{width:min(760px,100vw - 32px);max-height:calc(100vh - 48px);overflow-y:auto}.about section{border-top:1px solid var(--line-2);margin-top:18px;padding-top:10px}.about h3{letter-spacing:.16em;text-transform:uppercase;color:var(--ink-2);margin:0 0 8px;font-size:11px;font-weight:600}.about p,.about li{color:#d9e3df;font-size:13.5px;line-height:1.55}.about .lede{font-size:15px}.about ul,.about ol{margin:6px 0;padding-left:20px}.about li{margin:4px 0}.about .citations li{overflow-wrap:anywhere;font-size:12.5px}.about a{color:var(--sea)}.about a:focus-visible,.about .link:focus-visible{outline:2px solid var(--amber);outline-offset:2px}.about details{border:1px solid var(--line);border-radius:8px;margin:6px 0;padding:6px 10px}.about summary{cursor:pointer;color:var(--ink);overflow-wrap:anywhere;font-size:13px}.about pre{white-space:pre-wrap;font:11.5px/1.5 var(--mono);color:var(--ink-2);max-height:260px;margin:8px 0 4px;overflow:auto}button.link{color:var(--sea);font:inherit;cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}.report .lede{font-size:15px}.report-grid{grid-template-columns:1.1fr 1fr 1fr;gap:16px 28px;margin:0;display:grid}.report-grid section{border-top:1px solid var(--line-2);padding-top:8px}.report h3{letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3);margin:0 0 8px;font-size:10.5px;font-weight:600}.report .report-grid p{margin:4px 0;font-size:13px;line-height:1.5}.report .objectives{gap:8px;margin:0;padding:0;font-size:13px;list-style:none;display:grid}.report .objectives li{align-items:flex-start;gap:10px;display:flex}.report .objectives li>span{width:20px;height:20px;font:600 11px var(--mono);color:var(--ink-3);border:1px solid var(--line-2);border-radius:50%;flex:none;place-items:center;display:grid}.report table{border-collapse:collapse;width:100%;margin-top:6px;font-size:12px}.report table th{text-align:left;color:var(--ink-2);font-weight:400}.report thead th{text-align:right;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);font-size:10px}.report table td{font:500 13px var(--mono);text-align:right}.report dl{gap:5px;margin:0;display:grid}.report dl div{border-bottom:1px solid var(--line);justify-content:space-between;gap:8px;padding-bottom:3px;font-size:13px;display:flex}.report dt{color:var(--ink-2)}.report dd{font-family:var(--mono);margin:0}.report .closed{margin:6px 0 0;padding-left:18px;font-size:13px}.lessons{background:#f2b37a14;border:1px solid #f2b37a59;border-radius:10px;padding:12px 16px}.lessons h3{color:var(--amber);margin-top:0}.lessons ul{gap:6px;margin:0;padding-left:18px;font-size:14px;line-height:1.55;display:grid}@media (width<=760px){.report-grid{grid-template-columns:1fr}}@media (width<=1380px){.rise{display:none}.tools button{width:72px}}@media (width<=1180px){.brand h1,.switch>span:last-child small,.speeds button small,.camera-hud{display:none}.card,.drawer,.gazette{width:340px}}.newgame .panel{width:min(960px,100vw - 32px);max-height:calc(100vh - 32px);padding:32px 40px 26px;overflow:auto}.newgame .panel.details-open{width:min(1120px,100vw - 32px)}.newgame h2{margin-bottom:8px;font-size:40px}.ng-lede{max-width:640px;margin:0 0 22px!important;font-size:15.5px!important}.ng-rows{gap:14px;display:grid}.ng-line{grid-template-columns:150px minmax(0,1fr);align-items:start;gap:16px;display:grid}.ng-line>div,.ng-pathway>*{min-width:0}.ng-label{font:600 11.5px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--mint);padding-top:10px}.ng-label small{font:500 11px var(--sans);letter-spacing:0;text-transform:none;color:var(--amber);margin-top:3px;display:block}.ng-pathway{grid-template-columns:minmax(0,1fr) 170px;align-items:center;gap:12px;display:grid}.ng-chips{gap:8px;display:flex}.ng-chip{border:1px solid var(--line);cursor:pointer;background:#ffffff05;border-radius:10px;flex-direction:column;flex:1;gap:2px;min-width:0;padding:9px 12px;display:flex;position:relative}.ng-radio{opacity:0;cursor:pointer;width:100%;height:100%;margin:0;position:absolute;inset:0}.ng-chip:hover{border-color:var(--line-2);background:#ffffff0a}.ng-chip b{color:var(--ink);font-size:14.5px;font-weight:600}.ng-chip span{color:var(--ink-2);font-size:12.5px}.ng-chip.on{border-color:var(--mint);box-shadow:inset 0 0 0 1px var(--mint);background:#7cc4b21f}.ng-chip.on b:before{content:"● ";color:var(--mint);font-size:11px}.ng-chip:has(input:focus-visible){outline:2px solid var(--amber);outline-offset:2px}.ng-details .ng-changes{margin-bottom:8px}.ng-caption{color:var(--ink-2)!important;margin:7px 0 0!important;font-size:13px!important;line-height:1.45!important}.ng-details{border:1px solid var(--line-2);background:#ffffff05;border-radius:12px;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:16px;padding:14px 16px;display:grid}.ng-details h3{font:600 11px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--mint);margin:0 0 6px}.ng-details p{color:var(--ink-2)!important;margin:0 0 6px!important;font-size:12.5px!important;line-height:1.5!important}.ng-footer{border-top:1px solid var(--line);align-items:center;gap:16px;margin-top:22px;padding-top:16px;display:flex}.ng-links{flex:1;gap:18px;font-size:13px;display:flex}.ng-fine{color:var(--ink-3);font-size:12px}.ng-begin{border-radius:11px;margin-top:0;padding:13px 28px;font-size:17px}.ng-options{gap:6px;display:grid}.ng-options label{border:1px solid var(--line);cursor:pointer;background:#ffffff05;border-radius:10px;align-items:flex-start;gap:10px;padding:8px 10px;display:flex}.ng-options label.on{border-color:var(--mint);background:#7cc4b21a}.ng-options input{accent-color:var(--mint);margin-top:3px}.ng-options b{color:var(--ink);font-weight:600}.ng-options em{color:var(--ink-2);font-size:12px;font-style:normal}.ng-options small{color:var(--ink-2);margin-top:2px;font-size:12.5px;line-height:1.45;display:block}.ng-chart{width:100%;height:auto}.ng-chart .ng-band{fill:#8cc3e82e}.ng-chart .ng-line{fill:none;stroke:#a9bab473;stroke-width:1.2px}.ng-chart .ng-line.on{stroke:var(--sea);stroke-width:2.4px}.ng-chart .tick-label{fill:var(--ink-3);font:9px var(--mono)}.ng-actions{justify-content:flex-end;gap:10px;display:flex}.report .settings{margin-top:-6px}.ng-chart .ng-grid{stroke:#a0c4ba1f;stroke-width:1px}.ng-chart .tick-label.on{fill:var(--sea);font-weight:600}.real-world{background:#b58b4c1a;border-left:3px solid #b58b4c;border-radius:0 8px 8px 0;margin:12px 0 4px;padding:10px 12px}.real-world h4{font:600 10.5px var(--mono);letter-spacing:.14em;text-transform:uppercase;color:#8a6430;margin:0 0 4px}.real-world p{color:#33403e;margin:0 0 6px;font-size:12.5px;line-height:1.5}.real-world ul{margin:0;padding-left:16px;font-size:11.5px;line-height:1.45}.real-world a{color:#2c5d6e}.real-world small{color:#6e7a77}.real-world .fiction{color:#6e7a77;margin:6px 0 0;font-size:11px;font-style:italic}.report .real-world,.timeline .real-world{border-left-color:var(--amber);background:#f2b37a12}.report .real-world p{color:var(--ink-2)}.report .real-world a{color:var(--sea)}.report .real-world small,.report .real-world .fiction{color:var(--ink-3)}.real-world.compact{margin:4px 0 0;padding:6px 10px}.report .timeline{margin:0;padding:0;list-style:none}.report .timeline>li{border-top:1px solid var(--line);grid-template-columns:96px 1fr;gap:10px;padding:8px 0;display:grid}.report .timeline time{font:12px var(--mono);color:var(--mint)}.report .timeline b{font-weight:600;display:block}.report .timeline .bad b{color:var(--coral)}.report .failure-banner{border:1px solid var(--coral);background:#ef8a6f1a;border-radius:10px;margin:0 0 12px;padding:10px 14px}.report .failure-banner p{margin:4px 0 0}.report .report-actions{border-top:1px solid var(--line);flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;margin-top:14px;padding-top:14px;display:flex}.report .report-actions>p{flex:1;margin:0}.report .report-actions button{margin-top:0}.alert.failure{border-color:var(--coral)}.branch .panel{width:min(620px,100vw - 32px)}.branch-pick{grid-template-columns:110px 160px 1fr;gap:12px;margin:6px 0 10px;display:grid}.branch-pick label{color:var(--ink-2);gap:4px;font-size:12px;display:grid}.branch-pick small{color:var(--ink-3)}.branch-pick select,.branch-pick input{font:inherit;color:var(--ink);background:var(--raised);border:1px solid var(--line-2);border-radius:8px;padding:6px 8px;font-size:14px}.branch-progress{background:var(--raised);border-radius:8px;height:28px;position:relative;overflow:hidden}.branch-progress i{background:var(--mint-deep);position:absolute;inset:0 auto 0 0}.branch-progress span{text-align:center;line-height:28px;font:12px var(--mono);display:block;position:relative}.report .compare table{width:100%}.report .compare td.better{color:var(--mint)}.report .compare td.worse{color:var(--coral)}.ng-actions{align-items:center}.ng-actions button{min-height:42px}.report .compare ul{margin:0 0 8px;padding-left:18px;font-size:13.5px}.report .compare p{font-size:13.5px}.recap{z-index:9;pointer-events:none;background:linear-gradient(#040a0c8c,#0000 22% 55%,#040a0cb3);grid-template-rows:auto 1fr;display:grid;position:fixed;inset:0}.recap>header{pointer-events:auto;align-items:center;gap:18px;padding:18px 24px;display:flex}.recap .eyebrow{font:12px var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--mint);white-space:nowrap}.recap-dots{flex:1;gap:6px;margin:0;padding:0;list-style:none;display:flex}.recap-dots button{cursor:pointer;background:#eaf0ec38;border:0;border-radius:3px;width:26px;height:6px;padding:0}.recap-dots button.seen{background:#7cc4b28c}.recap-dots button.on{background:var(--mint)}.recap-dots button.branch{background:var(--amber)}.recap-controls{gap:6px;display:flex}.recap-controls button{border:1px solid var(--line-2);background:var(--glass-2);min-width:38px;height:34px;color:var(--ink);cursor:pointer;border-radius:8px}.recap-controls .skip{padding:0 14px}.recap-card{pointer-events:auto;background:#14201ff0;align-self:end;width:min(560px,100vw - 64px);margin:0 0 36px 32px;padding:20px 24px;animation:.6s ease-out recap-in}.recap-card .when{font:12px var(--mono);color:var(--ink-3);flex-wrap:wrap;gap:12px;margin:0 0 6px;display:flex}.recap-card .when time{color:var(--mint)}.recap-card h2{font-family:var(--display);margin:0 0 10px;font-size:26px;line-height:1.15}.recap-card .teach{margin:0 0 8px;font-size:15px;line-height:1.55}.recap-card .cost{color:var(--amber);margin:0 0 4px;font-size:13px}.recap-card.ending ul{padding-left:18px;font-size:14px;line-height:1.5}.recap .real-world{border-left-color:var(--amber);background:#f2b37a12}.recap .real-world p{color:var(--ink-2)}.recap .real-world a{color:var(--sea)}.recap .real-world small{color:var(--ink-3)}@keyframes recap-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.recap-card{animation:none}}.recapping .bar,.recapping .rail,.recapping .alerts,.recapping .notice,.recapping .camera-hud,.recapping .legend,.recapping .story-notice,.recapping .ff-chip{display:none}.ng-changes{color:var(--ink-2);gap:2px;margin:6px 0 0;padding:0;font-size:12.5px;list-style:none;display:grid}.ng-changes li{border-top:1px solid var(--line);justify-content:space-between;gap:8px;padding-top:2px;display:flex}.ng-changes em{font-style:normal;font-family:var(--mono);color:var(--ink);font-size:11.5px}.ng-options label>span{flex:1}.tutorial{z-index:6;border-color:var(--mint);background:#14201ff5;width:min(360px,100vw - 120px);padding:16px 18px;position:fixed;top:104px;left:88px}.tutorial .eyebrow{font:11px var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--mint);margin:0}.tutorial h2{font-family:var(--display);margin:4px 0 8px;font-size:21px}.tutorial p{color:#d9e3df;margin:0 0 8px;font-size:13.5px;line-height:1.55}.tutorial .tutorial-progress{font:12px var(--mono);color:var(--amber)}.tutorial-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.tutorial-actions button{min-height:34px;padding:0 12px}.tutorial-ring{z-index:5;pointer-events:none;border:2px solid var(--amber);border-radius:14px;animation:1.4s ease-in-out infinite tutorial-pulse;position:fixed;box-shadow:0 0 0 4px #f2b37a40}.gateway-marker{z-index:3;pointer-events:none;width:2px;height:2px;position:fixed;top:0;left:0}.gateway-marker i{border:3px solid var(--amber);border-radius:50%;width:44px;height:44px;animation:1.4s ease-in-out infinite tutorial-pulse;position:absolute;top:-22px;left:-22px}.gateway-marker span{white-space:nowrap;color:var(--amber);border:1px solid var(--amber);background:#14201feb;border-radius:999px;padding:4px 10px;font-size:12.5px;font-weight:600;position:absolute;top:-12px;left:30px}@keyframes tutorial-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.55;transform:scale(1.08)}}@media (prefers-reduced-motion:reduce){.tutorial-ring,.gateway-marker i{animation:none}}[data-motion=reduce] .tutorial-ring,[data-motion=reduce] .gateway-marker i,[data-motion=reduce] .recap-card{animation:none}[data-motion=reduce] *{transition:none!important}.top-speed .panel{width:min(600px,100vw - 32px)}.top-pause-options{border:0;margin:4px 0 8px;padding:0}.top-pause-options label>span{gap:2px;font-size:14px;display:grid}.top-pause-options em{font-style:normal;font:11px var(--mono);color:var(--mint);margin-left:6px}.top-pause-options small{color:var(--ink-2);font-size:12.5px;line-height:1.45}.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}.canvas-host:focus-visible{outline:3px solid var(--amber);outline-offset:-3px}
