@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/Funk/assets/fraunces-vietnamese-full-normal-7BpKI3vF.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(/Funk/assets/fraunces-latin-ext-full-normal-YHFkNujK.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(/Funk/assets/fraunces-latin-full-normal-CFFu7zhK.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}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--bg:var(--lightningcss-light,#efe9fb)var(--lightningcss-dark,#170c24);--surface:var(--lightningcss-light,#fbf9ff)var(--lightningcss-dark,#221433);--sunken:var(--lightningcss-light,#e3dbf6)var(--lightningcss-dark,#2e1d44);--ink:var(--lightningcss-light,#241235)var(--lightningcss-dark,#f5eefc);--muted:var(--lightningcss-light,#5b4b70)var(--lightningcss-dark,#b9a9cc);--rule:var(--lightningcss-light,#cdc1e6)var(--lightningcss-dark,#432f5e);--link:var(--lightningcss-light,#5a2bb0)var(--lightningcss-dark,#c9aeff);--teal:var(--lightningcss-light,#0b7668)var(--lightningcss-dark,#3fd9c4);--pink:var(--lightningcss-light,#b3146c)var(--lightningcss-dark,#ff79bb);--gold:#ffc53d;--gold-ink:#2b1a00;--stage:var(--lightningcss-light,#241235)var(--lightningcss-dark,#2a1740);--stage-up:var(--lightningcss-light,#34204b)var(--lightningcss-dark,#3a2455);--stage-ink:#f8f1ff;--stage-muted:#c9b9dc;--stage-rule:#54406f;--rail-right:#3fd9c4;--rail-left:#ff79bb;--serif:"Fraunces Variable", Georgia, "Times New Roman", serif;--sans:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--mono:ui-monospace, "Cascadia Mono", "SFMono-Regular", Menlo, Consolas, monospace;--page:75rem;--gutter:clamp(1rem, 4vw, 2.5rem)}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{background:var(--bg);color:var(--ink);font-family:var(--sans);margin:0;font-size:1rem;line-height:1.55}a{color:var(--link);text-underline-offset:2px}code,.mono{font-family:var(--mono);font-size:.92em}button,input{font:inherit;color:inherit}button{cursor:pointer;border:1px solid var(--rule);background:var(--surface);border-radius:999px;min-height:2.75rem;padding:.3rem .8rem}button:hover{border-color:var(--ink)}button.primary{border-color:var(--gold);background:var(--gold);color:var(--gold-ink);font-weight:650}input{border:1px solid var(--rule);background:var(--surface);border-radius:10px;width:100%;min-width:0;min-height:2.75rem;padding:.3rem .7rem}:focus-visible{outline:3px solid var(--gold);outline-offset:2px}h2{max-width:22ch;font-family:var(--serif);font-variation-settings:"SOFT" 100, "WONK" 1, "opsz" 72;margin:0;font-size:clamp(1.9rem,5vw,3.1rem);font-weight:700;line-height:1.04}h3{margin:0;font-size:1rem;font-weight:600}p{margin:0}.skip{z-index:2;background:var(--gold);color:var(--gold-ink);border-radius:8px;padding:.4rem .8rem;position:absolute;top:-4rem;left:.5rem}.skip:focus{top:.5rem}.top{max-width:var(--page);padding:1.25rem var(--gutter) 1.5rem;grid-template-columns:minmax(0,1fr);align-items:end;gap:.75rem;margin:0 auto;display:grid}@media (min-width:760px){.top{grid-template-columns:auto minmax(0,1fr);gap:2.5rem}}.wordmark{color:var(--ink);font-family:var(--serif);font-variation-settings:"SOFT" 100, "WONK" 1, "opsz" 144;letter-spacing:-.03em;text-shadow:.045em .045em 0 var(--gold);margin:0;font-size:clamp(5rem,21vw,10.5rem);font-weight:900;line-height:.86}.intro{grid-template-columns:minmax(0,1fr);gap:.75rem;max-width:44rem;display:grid}.lead{font-size:clamp(1.05rem,2.2vw,1.3rem);line-height:1.4}.links{flex-wrap:wrap;align-items:center;gap:.15rem .9rem;display:flex}.links a{padding:.35rem 0}.note{max-width:62ch;color:var(--muted)}.hint{color:var(--muted);font-size:.9rem}.chips{flex-wrap:wrap;gap:.4rem;display:flex}.chip{font-size:.92rem}.chip[aria-pressed=true]{border-color:var(--gold);background:var(--gold);color:var(--gold-ink)}.buttons{flex-wrap:wrap;gap:.4rem;display:flex}.stage{background:var(--stage);color:var(--stage-ink);scroll-margin-top:.5rem}.stage-in{max-width:var(--page);padding:clamp(1.5rem, 4vw, 2.75rem) var(--gutter);grid-template-columns:minmax(0,1fr);gap:1rem;margin:0 auto;display:grid}.stage .note{color:var(--stage-muted);margin-top:.5rem}.stage a,.stage code{color:var(--gold)}.stage button{border-color:var(--stage-rule);background:var(--stage-up);color:var(--stage-ink)}.stage button:hover{border-color:var(--gold)}.rail-head{grid-template-columns:minmax(0,1fr);align-items:end;gap:1rem;display:grid}@media (min-width:960px){.rail-head{grid-template-columns:minmax(0,1fr) auto}}.seg{flex-wrap:wrap;gap:.35rem;display:flex}.seg button[aria-selected=true]{border-color:var(--gold);background:var(--gold);color:var(--gold-ink);font-weight:650}.rail-controls{grid-template-columns:minmax(0,1fr);align-items:end;gap:.75rem;display:grid}@media (min-width:760px){.rail-controls{grid-template-columns:15rem minmax(0,1fr)}}.field{grid-template-columns:minmax(0,1fr);gap:.25rem;font-weight:600;display:grid}.stage input{border-color:var(--stage-rule);background:var(--stage-up);color:var(--stage-ink);font-family:var(--mono)}.rail-map{min-width:0}.track-names{flex-wrap:wrap;gap:.2rem 1.25rem;font-size:.9rem;display:flex}.n-right{color:var(--rail-right)}.n-left{color:var(--rail-left)}#rail-svg{width:100%;height:auto;display:block}.track,.branch,.trail{fill:none;stroke-linecap:round}.track{stroke-width:8px;opacity:.32}.track-right{stroke:var(--rail-right)}.track-left{stroke:var(--rail-left)}.branch{stroke:var(--rail-left);stroke-dasharray:3 11;stroke-width:4px;opacity:.6}.trail{stroke:var(--rail-right);stroke-width:11px}.trail.on-left{stroke:var(--rail-left)}.dot{fill:var(--stage);stroke:var(--rail-right);stroke-width:5px}.dot.is-ran{fill:var(--rail-right)}.dot.is-failed{fill:var(--rail-left);stroke:var(--rail-left)}.dot.is-skipped{stroke:var(--stage-rule)}.joint{fill:var(--stage-up);stroke:var(--stage-ink);stroke-width:4px}.dot-num{fill:var(--stage-ink);font-family:var(--sans);text-anchor:middle;font-size:1.05rem;font-weight:700}.dot.is-ran+.dot-num,.dot.is-failed+.dot-num{fill:var(--stage)}.car{fill:var(--gold);stroke:var(--stage);stroke-width:3px}.stops{grid-template-columns:minmax(0,1fr);gap:.4rem;margin:0;padding:0;list-style:none;display:grid}@media (min-width:960px){.stops{grid-template-columns:repeat(var(--stops), minmax(0, 1fr))}}.stop{background:var(--stage-up);border-top:4px solid var(--rail-right);border-radius:10px;grid-template-columns:minmax(0,1fr);align-content:start;gap:.25rem;min-width:0;padding:.6rem;font-size:.92rem;display:grid}.stop.is-failed{border-top-color:var(--rail-left)}.stop.is-skipped{border-top-color:var(--stage-rule);box-shadow:inset 0 0 0 1px var(--stage-rule);background:0 0}.stop-head{align-items:baseline;gap:.4rem;min-width:0;display:flex}.stop-num{flex:none;font-weight:700}.stop-call{min-width:0;color:var(--gold);overflow-wrap:anywhere}.stop-verdict{font-weight:650}.stop.is-skipped .stop-verdict{color:var(--stage-muted)}.stop.is-failed .stop-verdict{color:var(--rail-left)}.stop-out{font-family:var(--mono);overflow-wrap:anywhere;font-size:.88rem}.stop-note{color:var(--stage-muted);font-size:.85rem}.flip{justify-self:start;max-width:100%;font-size:.88rem}.stage .flip[aria-pressed=true]{border-color:var(--rail-left);background:var(--rail-left);color:#3a0720;font-weight:650}.final-row{grid-template-columns:minmax(0,1fr);gap:.15rem;display:grid}.final-label{color:var(--stage-muted)}.final{font-family:var(--serif);font-variation-settings:"SOFT" 100, "WONK" 1, "opsz" 72;overflow-wrap:anywhere;color:var(--rail-right);font-size:clamp(1.7rem,6vw,3rem);font-weight:800;line-height:1.1}.final[data-track=left]{color:var(--rail-left)}.band{max-width:var(--page);padding:clamp(2rem, 6vw, 4rem) var(--gutter) 0;grid-template-columns:minmax(0,1fr);gap:1rem;margin:0 auto;scroll-margin-top:.5rem;display:grid}.band-head{grid-template-columns:minmax(0,1fr);gap:.5rem;display:grid}.tile-tools{grid-template-columns:minmax(0,1fr);gap:1rem;display:grid}@media (min-width:860px){.tile-tools{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:2rem}}.tool{grid-template-columns:minmax(0,1fr);align-content:start;gap:.4rem;display:grid}.tool-name{color:var(--muted);font-size:.92rem}.tiles{flex-wrap:wrap;gap:.3rem;min-height:2.75rem;display:flex}.tile{border:2px solid var(--muted);background:var(--surface);min-width:2.75rem;min-height:2.75rem;color:var(--ink);font-family:var(--mono);border-radius:8px;justify-content:center;align-items:center;padding:0 .5rem;font-size:.95rem;display:inline-flex}button.tile{border-radius:8px}.k-string{border-color:var(--teal)}.k-nan{border-color:var(--pink);border-style:dashed}.k-object-a{border-color:var(--gold);background:var(--gold);color:var(--gold-ink)}.k-object-b{border-color:var(--gold);background:0 0;border-style:double;border-width:4px}.tile.gone{opacity:.45;border-style:dotted;text-decoration:line-through}.lesson{max-width:62ch;font-family:var(--serif);font-variation-settings:"SOFT" 100, "opsz" 24;font-size:1.2rem;line-height:1.3}.lanes{grid-template-columns:minmax(0,1fr);gap:.75rem;display:grid}@media (min-width:760px){.lanes{grid-template-columns:repeat(2,minmax(0,1fr))}}.lane{border-left:5px solid var(--teal);background:var(--surface);grid-template-columns:minmax(0,1fr);align-content:start;gap:.4rem;min-width:0;padding:.85rem;display:grid}#lane-set{border-left-color:var(--pink)}.lane-call{color:var(--muted)}.lane-line{font-weight:600}.thrown{color:var(--pink);font-family:var(--mono);overflow-wrap:anywhere;font-size:.92rem}.value-out{font-family:var(--mono);font-size:1.2rem;font-weight:700}.sponge-grid{grid-template-columns:minmax(0,1fr);gap:1.25rem;display:grid}@media (min-width:860px){.sponge-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:2.5rem}}.sponge-art{grid-template-columns:minmax(0,1fr);align-content:start;gap:.5rem;display:grid}#sponge-blob{transform-origin:50% 100%;width:100%;max-width:34rem;height:auto;display:block;overflow:visible}#sponge-blob.squeeze{animation:.52s cubic-bezier(.3,1.6,.5,1) squeeze}@keyframes squeeze{35%{transform:scale(1.06,.72)}}.blob{fill:var(--gold)}.pit{fill:#e0a21d}.hole{fill:#c98a0b}.water{fill:#2f8fc4;transform-box:fill-box;transform-origin:50% 100%;transition:transform .32s ease-out;transform:scale(0)}.pore[data-filled=true] .water{transform:scale(1)}.pore text{fill:var(--gold-ink);font-family:var(--serif);text-anchor:middle;font-size:22px;font-weight:700}.pore[data-filled=true] text{fill:#fff}.pore-values{grid-template-columns:repeat(3,minmax(0,1fr));gap:.4rem;max-width:34rem;margin:0;display:grid}.pore-values dt{color:var(--muted);font-size:.85rem}.pore-values dd{font-family:var(--mono);overflow-wrap:anywhere;margin:0;font-size:.88rem}.sponge-side{grid-template-columns:minmax(0,1fr);align-content:start;gap:.85rem;display:grid}.water-form{grid-template-columns:minmax(0,1fr);gap:.3rem;display:grid}.water-row{grid-template-columns:minmax(0,1fr) auto;gap:.4rem;display:grid}.problem{color:var(--pink);font-size:.9rem}.problem:empty{display:none}.squeezed{grid-template-columns:minmax(0,1fr);gap:.1rem;display:grid}.sponge-out{font-family:var(--serif);font-variation-settings:"SOFT" 100, "opsz" 36;overflow-wrap:anywhere;font-size:clamp(1.25rem,4vw,1.9rem);font-weight:700;line-height:1.2}.sponge-out[data-squeezed=false]{color:var(--muted);font-weight:500}.feed-log{grid-template-columns:minmax(0,1fr);gap:.2rem;margin:0;padding:0;font-size:.88rem;list-style:none;display:grid}.feed-log:empty{display:none}.feed-log li{border-top:1px solid var(--rule);overflow-wrap:anywhere;grid-template-columns:minmax(0,1fr);padding:.25rem 0;display:grid}.gave{color:var(--muted)}.feed-log li[data-gave=result] .gave{color:var(--ink);font-weight:650}#sponge-new{justify-self:start}.parts{border-collapse:collapse;width:100%;font-size:.95rem}@media (max-width:640px){.parts thead{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.parts,.parts tbody,.parts tr,.parts th,.parts td{width:100%;display:block}.parts tr{border-top:1px solid var(--rule);padding:.6rem 0}.parts th,.parts td{border-top:0;padding:.1rem 0}}.parts th,.parts td{border-top:1px solid var(--rule);text-align:left;vertical-align:top;padding:.55rem .75rem .55rem 0}.parts thead th{color:var(--muted);border-top:0;font-weight:500}.ex{grid-template-columns:minmax(0,1fr);padding-bottom:.3rem;display:grid}.ex code{color:var(--muted);overflow-wrap:anywhere}.ex output{font-family:var(--mono);overflow-wrap:anywhere;font-size:.9rem;font-weight:650}.foot{max-width:var(--page);padding:1rem var(--gutter) 2rem;color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:.5rem 1.5rem;margin:clamp(2.5rem,6vw,4rem) auto 0;font-size:.9rem;display:flex}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}#sponge-blob.squeeze{animation:none}.water{transition:none}}
