@font-face{font-family:Atkinson Hyperlegible Next;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/atkinson-hyperlegible-next-latin-ext-400-normal-BalHKn7d.woff2) format("woff2"),url(/assets/atkinson-hyperlegible-next-latin-ext-400-normal-qxMiU51n.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Atkinson Hyperlegible Next;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/atkinson-hyperlegible-next-latin-400-normal-FfmJh7DR.woff2) format("woff2"),url(/assets/atkinson-hyperlegible-next-latin-400-normal-DPp7N0cD.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Atkinson Hyperlegible Next;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/atkinson-hyperlegible-next-latin-ext-700-normal-CBw-mJf_.woff2) format("woff2"),url(/assets/atkinson-hyperlegible-next-latin-ext-700-normal-292QVhS1.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Atkinson Hyperlegible Next;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/atkinson-hyperlegible-next-latin-700-normal-Dpiyiu63.woff2) format("woff2"),url(/assets/atkinson-hyperlegible-next-latin-700-normal-C2qZD_Q9.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Atkinson Hyperlegible Next;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/atkinson-hyperlegible-next-latin-ext-800-normal-CCpWmrAz.woff2) format("woff2"),url(/assets/atkinson-hyperlegible-next-latin-ext-800-normal-DJxWoX6k.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Atkinson Hyperlegible Next;font-style:normal;font-display:swap;font-weight:800;src:url(/assets/atkinson-hyperlegible-next-latin-800-normal-D32lleIF.woff2) format("woff2"),url(/assets/atkinson-hyperlegible-next-latin-800-normal-DtRtCSx4.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Atkinson Hyperlegible Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/atkinson-hyperlegible-mono-latin-ext-400-normal-CpVFOiMk.woff2) format("woff2"),url(/assets/atkinson-hyperlegible-mono-latin-ext-400-normal-ITMuFrSK.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Atkinson Hyperlegible Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/atkinson-hyperlegible-mono-latin-400-normal-CmMGer93.woff2) format("woff2"),url(/assets/atkinson-hyperlegible-mono-latin-400-normal-Cmjm2dBj.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Atkinson Hyperlegible Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/atkinson-hyperlegible-mono-latin-ext-700-normal-Cb4hxZGu.woff2) format("woff2"),url(/assets/atkinson-hyperlegible-mono-latin-ext-700-normal-Db6cZPB4.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Atkinson Hyperlegible Mono;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/atkinson-hyperlegible-mono-latin-700-normal-BhOtGXDr.woff2) format("woff2"),url(/assets/atkinson-hyperlegible-mono-latin-700-normal-BQ8cw3oD.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-vietnamese-opsz-normal-D9N6E8K1.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-ext-opsz-normal-IcJDqblK.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-opsz-normal-Cre6nC2_.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg: #f1f6f6;--canvas: #e2ecec;--surface: #ffffff;--sunk: #e9f1f1;--ink: #0d2b33;--uwa-wordmark: #293d9b;--muted: #557077;--faint: #8aa0a5;--line: #d9e4e5;--line-strong: #b3c7c9;--accent: #0a7773;--accent-hover: #075e5b;--accent-soft: #ddf0ee;--ease-out: cubic-bezier(.23, 1, .32, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--win: #0f9448;--win-bright: #7cf2a8;--win-deep: #075c2c;--gold-bright: #ffd75e;--gold-deep: #9a6300;--flood-hue: #12c45e;--flood-wash: rgba(110, 235, 155, .22);--rays: rgba(124, 242, 168, .55);--win-soft: #d6f5e1;--win-glow: rgba(34, 197, 94, .42);--gold: #e8a317;--on-accent: #ffffff;--lake: #e0507a;--lake-soft: #fce8ee;--lake-ink: #a3264b;--medium: #a26500;--bad: #c23a3a;--fur: #a86f47;--fur-dark: #8a5636;--fur-light: #ecd0b0;--feature: #2a1a12;--violet: #6b4fc4;--violet-soft: #ece7fb;--editor-bg: #fbfdfd;--gutter: #f2f7f7;--editor-active: #eef6f5;--editor-selection: #c9e7e3;--code-keyword: #a3264b;--code-string: #2f7a3d;--code-number: #6b4fc4;--code-comment: #7a9196;--code-function: #0a7773;--code-builtin: #a25a00;--code-definition: #0d2b33;--code-operator: #c23a6a;--code-punctuation: #6c8489;--font-display: "Bricolage Grotesque Variable", "PingFang SC", "Microsoft YaHei", "Noto Sans SC", system-ui, sans-serif;--font-sans: "Atkinson Hyperlegible Next", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", system-ui, sans-serif;--font-mono: "Atkinson Hyperlegible Mono", "PingFang SC", "Microsoft YaHei", ui-monospace, monospace;color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #061a1f;--canvas: #03120f;--surface: #0a242a;--sunk: #0f2e35;--ink: #e0efee;--uwa-wordmark: #e0efee;--muted: #94afb3;--faint: #5f7d83;--line: #17363d;--line-strong: #2b5058;--accent: #45cfc3;--accent-hover: #74ded5;--accent-soft: #0d3a3a;--win: #5be38f;--win-bright: #b4ffcf;--win-deep: #0b5a2f;--gold-bright: #ffe08a;--gold-deep: #8a5a00;--flood-hue: #2fe07a;--flood-wash: rgba(40, 200, 110, .16);--rays: rgba(91, 227, 143, .32);--win-soft: #0f3a25;--win-glow: rgba(91, 227, 143, .32);--gold: #f5c04a;--on-accent: #032120;--lake: #ff7fa3;--lake-soft: #3a1828;--lake-ink: #ffb6ca;--medium: #f2b24c;--bad: #ff8a80;--fur: #c98c5f;--fur-dark: #a06b45;--fur-light: #f0d4b4;--feature: #1e120b;--violet: #b5a1ff;--violet-soft: #241d45;--editor-bg: #071d22;--gutter: #061a1e;--editor-active: #0c2a30;--editor-selection: #164a4a;--code-keyword: #ff9fbb;--code-string: #9ad9a3;--code-number: #b5a1ff;--code-comment: #6b8a90;--code-function: #6fdad0;--code-builtin: #f5bd6a;--code-definition: #e0efee;--code-operator: #ff8fb0;--code-punctuation: #7f9ca1;color-scheme:dark}}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-sans);font-size:1rem;line-height:1.55;-webkit-font-smoothing:antialiased}a{color:var(--accent);text-underline-offset:.18em}a:hover{color:var(--accent-hover)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}code,pre,textarea{font-family:var(--font-mono)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.quokka-mark{flex:none}.quokka-mark .fur{fill:var(--fur)}.quokka-mark .fur-dark{fill:var(--fur-dark)}.quokka-mark .light{fill:var(--fur-light)}.quokka-mark .feature{fill:var(--feature)}.quokka-mark .arm{fill:none;stroke:var(--fur-dark);stroke-width:1.9;stroke-linecap:round}.quokka-mark .smile{fill:none;stroke:var(--feature);stroke-width:.8;stroke-linecap:round}.quokka-mark .blush{fill:var(--lake);opacity:.4}.stepper{display:inline-flex;align-items:center;gap:2px}.stepper-count{padding:0 8px;font-size:.9375rem;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}.step{width:34px;height:34px;display:grid;place-items:center;border-radius:9px;color:var(--ink)}.step:hover{background:var(--sunk);color:var(--ink)}.step.is-disabled{color:var(--line-strong)}.level{display:inline-flex;align-items:center;gap:8px;font-size:.9375rem;font-weight:700;white-space:nowrap}.level--easy{color:var(--accent)}.level--medium{color:var(--medium)}.level--hard{color:var(--lake)}.pips{display:inline-flex;align-items:flex-end;gap:2px;height:12px}.pips i{width:4px;border-radius:1px;background:currentColor;opacity:.22}.pips i:nth-child(1){height:6px}.pips i:nth-child(2){height:9px}.pips i:nth-child(3){height:12px}.pips i.on{opacity:1}.numeral{position:relative;font-family:var(--font-display);font-weight:800;line-height:1;letter-spacing:-.04em;font-variant-numeric:tabular-nums;color:transparent;-webkit-text-stroke:1.5px var(--line-strong);transition:-webkit-text-stroke-color .15s ease}.is-solved .numeral{color:var(--accent);-webkit-text-stroke-color:var(--accent)}.home{max-width:1180px;margin:0 auto;padding:80px 40px 120px;display:grid;grid-template-columns:minmax(0,5fr) minmax(0,8fr);gap:72px;align-items:start}.intro{position:sticky;top:48px}.hero{display:flex;align-items:flex-end;gap:14px;margin:0 0 40px;font-family:var(--font-display);font-size:clamp(3.5rem,2.4rem + 3.6vw,5.5rem);font-weight:800;line-height:.85;letter-spacing:-.045em}.hero .quokka-mark{width:.95em;height:.95em;margin-bottom:-.02em}.about{max-width:44ch}.about h2{margin:0 0 10px;font-family:var(--font-display);font-size:1.25rem;font-weight:700;letter-spacing:-.01em}.about p{margin:0 0 .85em;color:var(--muted);line-height:1.62}.about strong{color:var(--ink)}.about a{font-weight:700}.about .signoff{color:var(--ink)}.uwa{display:flex;align-items:center;gap:10px;height:54px;margin-top:32px}.uwa img{height:100%;width:auto}.uwa-wordmark{height:94%;aspect-ratio:532 / 301;background:var(--uwa-wordmark);-webkit-mask:url(/uwa-college-wordmark.png) center / contain no-repeat;mask:url(/uwa-college-wordmark.png) center / contain no-repeat}.board{display:flex;flex-direction:column;gap:64px}.changelog h2{margin:0 0 14px;font-family:var(--font-display);font-size:1.25rem;font-weight:700;letter-spacing:-.01em}.changes{margin:0;padding:0;list-style:none;border-top:1px solid var(--line)}.change{display:grid;grid-template-columns:4.5rem minmax(0,1fr);gap:16px;padding:14px 0;border-bottom:1px solid var(--line)}.change time{padding-top:2px;color:var(--muted);font-size:.9375rem;font-variant-numeric:tabular-nums;white-space:nowrap}.weeks{display:flex;flex-direction:column;gap:14px}.week{border-radius:18px;background:var(--surface);border:1px solid var(--line);overflow:hidden}.week summary{display:flex;align-items:center;gap:16px;padding:22px 24px;cursor:pointer;list-style:none}.week summary::-webkit-details-marker{display:none}.week summary:hover .week-chevron{color:var(--ink)}.week-title{margin:0;font-family:var(--font-display);font-size:2rem;font-weight:800;letter-spacing:-.035em;line-height:1}.week-progress{margin-left:auto;display:inline-flex;align-items:center;gap:12px}.week-count{color:var(--muted);font-size:.9375rem;font-variant-numeric:tabular-nums;white-space:nowrap}.week-done{width:24px;height:24px;display:grid;place-items:center;border-radius:50%;background:var(--lake);color:#fff}.week-chevron{flex:none;color:var(--muted);transition:transform .2s ease}.week[open] .week-chevron{transform:rotate(180deg)}.week.is-complete .week-title{color:var(--accent)}.week.is-locked{background:transparent;border-style:dashed;border-color:var(--line-strong)}.week-head{display:flex;align-items:center;gap:16px;padding:22px 24px}.week.is-locked .week-title{color:var(--muted)}.week-opens{margin-left:auto;display:inline-flex;align-items:center;gap:8px;color:var(--muted);font-size:.9375rem;white-space:nowrap}.segments{display:inline-flex;gap:4px}.segments i{width:16px;height:8px;border-radius:3px;background:var(--line)}.segments i.on{background:var(--accent)}.rows{list-style:none;margin:0;padding:0 8px 8px}.rows li{border-top:1px solid var(--line)}.row{display:grid;grid-template-columns:5.25rem 1fr auto;align-items:center;gap:20px;padding:18px 16px;border-radius:12px;color:var(--ink);text-decoration:none;transition:background-color .15s ease}.row:hover{background:var(--bg);color:var(--ink)}.row .numeral{font-size:3rem;justify-self:start}.row:hover .numeral{-webkit-text-stroke-color:var(--accent)}.numeral-check{position:absolute;top:-4px;right:-14px;width:22px;height:22px;display:grid;place-items:center;border-radius:50%;background:var(--lake);color:#fff;-webkit-text-stroke:0;box-shadow:0 0 0 3px var(--surface)}.row:hover .numeral-check{box-shadow:0 0 0 3px var(--bg)}.row-main{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;min-width:0}.row-title{font-family:var(--font-display);font-size:1.375rem;font-weight:650;letter-spacing:-.015em;line-height:1.2}.button{display:inline-flex;align-items:center;gap:8px;white-space:nowrap;font:inherit;font-weight:700;font-size:.9375rem;line-height:1;padding:10px 18px;border-radius:10px;border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);cursor:pointer;transition:background-color .12s ease,border-color .12s ease,color .12s ease,transform .16s var(--ease-out)}.button:active:not(:disabled){transform:scale(.97)}.button:hover:not(:disabled){border-color:var(--ink)}.button:disabled{cursor:progress;opacity:.55}.button--primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.button--primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.button--run{color:var(--accent);border-color:var(--accent);background:transparent}.button--run:hover:not(:disabled){background:var(--accent-soft);border-color:var(--accent)}.button--quiet{font-weight:400;background:transparent;border-color:transparent;color:var(--muted)}.button--quiet:hover:not(:disabled){background:var(--sunk);border-color:transparent;color:var(--ink)}.button--quiet.is-armed,.button--quiet.is-armed:hover:not(:disabled){border-color:var(--bad);color:var(--bad);background:transparent}.workspace{display:grid;grid-template-columns:minmax(360px,44%) 1fr;gap:10px;height:100dvh;padding:10px;background:var(--canvas)}.brief,.editor-panel,.console{border-radius:16px;border:1px solid var(--line);overflow:hidden}.brief{display:flex;flex-direction:column;min-height:0;background:var(--surface)}.brief-nav{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 10px 8px 14px;background:var(--sunk);border-bottom:1px solid var(--line)}.back{display:inline-flex;align-items:center;gap:10px;padding:4px 10px 4px 4px;border-radius:10px;color:var(--ink);font-family:var(--font-display);font-weight:700;font-size:1.0625rem;letter-spacing:-.01em;text-decoration:none}.back:hover{background:var(--surface);color:var(--ink)}.brief-head{padding:26px 32px 18px}.brief-head h1{display:flex;align-items:baseline;gap:14px;margin:0;font-family:var(--font-display)}.brief-head .numeral{font-size:2.625rem}.brief-title{font-size:1.875rem;font-weight:700;letter-spacing:-.025em;line-height:1.1}.brief-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;margin:14px 0 0}.solved-tag{display:inline-flex;align-items:center;gap:5px;color:var(--accent);font-size:.9375rem;font-weight:700}.brief-head.is-landing .numeral{animation:numeral-fill .7s cubic-bezier(.2,.9,.3,1.25) both}.brief-head.is-landing .solved-tag{animation:rise .4s .25s ease-out both}@keyframes numeral-fill{0%{color:transparent;-webkit-text-stroke-color:var(--line-strong);transform:scale(1)}45%{transform:scale(1.18) rotate(-4deg)}to{color:var(--accent);-webkit-text-stroke-color:var(--accent);transform:scale(1)}}@keyframes rise{0%{opacity:0;transform:translateY(4px)}}.tabs{display:flex;gap:4px;padding:0 28px 14px;border-bottom:1px solid var(--line)}.tab{font:inherit;font-size:.9375rem;display:inline-flex;align-items:center;gap:7px;padding:7px 14px;border:0;border-radius:999px;background:none;color:var(--muted);cursor:pointer}.tab:hover{color:var(--ink);background:var(--sunk)}.tab[aria-selected=true]{color:var(--accent);background:var(--accent-soft);font-weight:700}.lock{opacity:.7}.brief-body{flex:1;min-height:0;overflow-y:auto;padding:24px 32px 48px}.prose{max-width:68ch;line-height:1.62}.prose>:first-child{margin-top:0}.prose p,.prose ul,.prose ol{margin:0 0 .9em}.prose ul,.prose ol{padding-left:1.25em}.prose li+li{margin-top:.25em}.prose h2,.section-title{display:flex;align-items:center;gap:10px;font-family:var(--font-display);font-size:1.1875rem;font-weight:700;letter-spacing:-.01em;margin:1.6em 0 .5em}.prose h2:before,.section-title:before{content:"";width:4px;height:1em;border-radius:2px;background:var(--accent)}.prose code{white-space:nowrap;font-size:.92em;padding:.1em .35em;border-radius:5px;background:var(--violet-soft);color:var(--violet)}.prose pre,.block pre{margin:0 0 1em;padding:12px 14px;border-radius:10px;background:var(--sunk);font-size:.9375rem;line-height:1.5;overflow-x:auto}.prose pre code{padding:0;background:none;color:inherit;white-space:pre}.prose code sup{font-size:.75em;line-height:0}.prose pre.worked{white-space:pre-wrap;overflow-wrap:anywhere;border-left:3px solid var(--line);border-radius:4px 10px 10px 4px}.prose pre.worked strong{font-weight:700}.prose hr{margin:24px 0;border:0;border-top:1px solid var(--line)}.case-field+.case-field{margin-top:10px}.case-input--value{resize:vertical;padding:8px 12px;field-sizing:content}.prose table{display:block;overflow-x:auto;border-collapse:collapse;margin:0 0 1em}.prose th,.prose td{padding:4px 10px;border-bottom:1px solid var(--line);text-align:center;white-space:nowrap}.prose th{font-weight:700}.prose td{font-size:1.125rem}.prose table.table--text{display:table;width:100%}.prose .table--text th,.prose .table--text td{white-space:normal;text-align:left;vertical-align:top}.prose .table--text td{font-size:1rem}.prose .table--text code{white-space:normal;overflow-wrap:anywhere}.prose--tight>:last-child{margin-bottom:0}.io-label{display:block;font-size:.8125rem;font-weight:700;color:var(--muted);margin-bottom:5px}.note{margin-top:32px;padding:18px 20px;border-radius:14px}.note h2{font-family:var(--font-display);font-size:1.0625rem;font-weight:700;margin:0 0 6px}.note p{margin:0}.note p+p{margin-top:6px}.note--restriction{background:var(--lake-soft)}.note--restriction h2{color:var(--lake-ink)}.note code{background:color-mix(in srgb,var(--surface) 70%,transparent)}.sources{list-style:none;margin:20px 0 0;padding:0;display:grid;gap:8px;max-width:68ch}.source{display:flex;align-items:center;gap:12px;padding:14px 16px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink);text-decoration:none;transition:border-color .12s ease,background-color .12s ease}.source:hover{border-color:var(--accent);background:var(--accent-soft);color:var(--ink)}.source-label{font-weight:700}.source-host{margin-left:auto;color:var(--muted);font-size:.875rem}.source-arrow{flex:none;color:var(--accent)}.hints{list-style:none;margin:0;padding:0;counter-reset:hint}.hints li{counter-increment:hint;display:grid;grid-template-columns:2rem 1fr;align-items:baseline;padding:14px 0}.hints li:before{content:counter(hint);font-family:var(--font-display);font-weight:800;font-size:1.25rem;color:var(--faint)}.hints li+li{border-top:1px solid var(--line)}.hint-locked{color:var(--faint)}.locked p{margin:0 0 18px;max-width:52ch}.tally{display:grid;grid-template-columns:max-content max-content;gap:6px 24px;margin:0;padding:16px 20px;border-radius:14px;background:var(--sunk);width:fit-content}.tally dt{color:var(--muted)}.tally dd{margin:0;font-weight:700;font-variant-numeric:tabular-nums}.code-view .cm-editor{border-radius:12px;border:1px solid var(--line);overflow:hidden}.bench{display:flex;flex-direction:column;gap:10px;min-height:0;min-width:0}.editor-panel{flex:1 1 58%;min-height:0;display:flex;flex-direction:column;background:var(--editor-bg)}.bench-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:8px 10px 8px 8px;border-bottom:1px solid var(--line);background:var(--sunk)}.file-tab{display:inline-flex;align-items:center;gap:8px;padding:7px 14px;border-radius:10px;background:var(--editor-bg);font-family:var(--font-mono);font-size:.875rem;font-weight:700}.file-dot{width:10px;height:10px;border-radius:3px;background:linear-gradient(135deg,#3776ab 50%,#ffd43b 50%)}.bench-actions{display:flex;gap:8px;margin-left:auto}.editor-wrap{flex:1;min-height:200px;overflow:hidden}.editor{height:100%}.console{flex:1 1 42%;min-height:0;display:flex;flex-direction:column;background:var(--surface)}.tabs--console{padding:10px 14px;background:var(--sunk)}.console-body{flex:1;min-height:0;overflow-y:auto;padding:16px 18px 24px}.chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px}.chip{display:inline-flex;align-items:center;border-radius:9px;background:var(--sunk);border:1px solid transparent}.chip.is-active{border-color:var(--line-strong);background:var(--surface)}.chip.is-active .chip-main{font-weight:700}.chip-main,.chip-remove,.chip--add{font:inherit;font-size:.875rem;border:0;background:none;color:var(--ink);cursor:pointer;padding:6px 11px;display:inline-flex;align-items:center;gap:7px}.chip-remove{padding-left:0;color:var(--muted)}.chip--add{padding:6px 13px;font-weight:700;color:var(--muted)}.chip--add:hover{color:var(--ink)}.dot{width:8px;height:8px;border-radius:50%}.dot--pass{background:var(--accent)}.dot--fail{background:var(--bad)}.tab .dot{width:7px;height:7px}.case-input{width:100%;resize:vertical;font-size:.9375rem;line-height:1.5;padding:12px 14px;border-radius:10px;border:1px solid var(--line);background:var(--editor-bg);color:var(--ink)}.case-input:focus{border-color:var(--accent);outline:none}.verdict{margin:0 0 14px;font-family:var(--font-display);font-size:1.5rem;font-weight:800;letter-spacing:-.025em;line-height:1.2}.verdict--good{color:var(--accent)}.verdict--bad{color:var(--bad)}.verdict-count{font-family:var(--font-sans);font-size:.9375rem;font-weight:400;color:var(--muted);margin-left:10px;letter-spacing:0}.accepted{display:flex;align-items:center;gap:14px}.accepted .verdict{margin:0}.accepted-mark{flex:none}.accepted-mark circle{fill:var(--accent-soft);stroke:var(--accent);stroke-width:2;transform-origin:center}.accepted-mark path{fill:none;stroke:var(--accent);stroke-width:3.2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:30;animation:mark-draw .36s .22s ease-out both}@keyframes mark-draw{0%{stroke-dashoffset:30}to{stroke-dashoffset:0}}.judging{display:flex;flex-wrap:wrap;align-items:center;gap:12px 16px}.test-pips{display:flex;flex-wrap:wrap;gap:6px}.test-pips i{width:18px;height:18px;border-radius:6px;background:var(--sunk);box-shadow:inset 0 0 0 1px var(--line-strong)}.test-pips i.on{background:var(--win);box-shadow:0 0 12px var(--win-glow);animation:pip-in .24s var(--ease-out) both}.judging.is-complete .test-pips{animation:pips-charged .14s ease-out both}.judging-count{font-family:var(--font-display);font-size:1.25rem;font-weight:800;font-variant-numeric:tabular-nums;color:var(--muted)}.verdict--win{color:var(--win);transform-origin:left center;animation:verdict-in .42s .14s var(--ease-out) both}.accepted .verdict-count{animation:count-in .3s .26s var(--ease-out) both}.accepted-badge{position:relative;flex:none;display:grid}.accepted .accepted-mark circle{fill:var(--win-soft);stroke:var(--win);animation:mark-in .46s var(--ease-spring) both}.accepted .accepted-mark path{stroke:var(--win)}.burst-anchor{position:absolute;inset:0;pointer-events:none}.week-meter{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin-top:18px;animation:count-in .3s .38s var(--ease-out) both}.meter{display:flex;gap:5px}.meter i{width:26px;height:10px;border-radius:4px;background:var(--line)}.meter i.on{background:var(--win)}.meter i.is-new{animation:segment-in .52s .62s var(--ease-spring) both}.week-meter-count{color:var(--muted);font-size:.9375rem}.celebration{position:fixed;inset:0;z-index:50;overflow:hidden;pointer-events:none}.celebration>span{position:absolute}.flash{inset:0;background:radial-gradient(circle at var(--x) var(--y),var(--win-glow),transparent 65%)}.flash-white{inset:0;background:var(--win-bright);mix-blend-mode:soft-light}.ring{width:44px;height:44px;border-radius:50%;border:3px solid var(--win)}.pieces{inset:0;perspective:500px}.piece{position:absolute;width:8px;height:12px;margin:-6px 0 0 -4px;border-radius:2px;will-change:transform,opacity}.piece.dot{width:9px;height:9px;border-radius:50%}.piece.ribbon{width:5px;height:20px;margin:-10px 0 0 -2px;border-radius:3px}.sparkle{width:16px;height:16px;background:var(--gold);clip-path:polygon(50% 0,61% 39%,100% 50%,61% 61%,50% 100%,39% 61%,0 50%,39% 39%)}.stamp{left:50%;top:42%;display:flex;flex-direction:column;align-items:center;gap:14px;transform:translate(-50%,-50%) rotate(-5deg)}.stamp-word{white-space:nowrap;font-family:var(--font-display);font-size:clamp(3rem,11vw,8.5rem);font-weight:800;letter-spacing:-.04em;line-height:1;color:var(--win);-webkit-text-stroke:3px var(--win-deep);paint-order:stroke fill;text-shadow:0 6px 0 var(--win-deep),0 0 60px var(--win-glow)}.stamp-letter{display:inline-block}.stamp-space{display:inline-block;width:.24em}.stamp-badges{display:flex;flex-wrap:wrap;justify-content:center;gap:10px}.stamp-badge{padding:8px 18px;border-radius:999px;background:var(--gold);color:#2e1d00;font-family:var(--font-display);font-size:clamp(1rem,2.6vw,1.5rem);font-weight:800;box-shadow:0 4px 0 var(--gold-deep),0 0 30px #f5c04a80}.rays{left:50%;top:42%;width:170vmax;height:170vmax;background:repeating-conic-gradient(from 0deg,var(--rays) 0deg 7deg,transparent 7deg 22deg);-webkit-mask-image:radial-gradient(circle,#000 6%,transparent 45%);mask-image:radial-gradient(circle,#000 6%,transparent 45%)}.flood{position:fixed;inset:0;pointer-events:none;opacity:0}.flood-hue{z-index:45;background:var(--flood-hue);mix-blend-mode:color}.flood-wash{z-index:46;background:var(--flood-wash)}.piece.coin{width:13px;height:13px;margin:-6px 0 0 -6px;border-radius:50%;box-shadow:inset 0 0 0 2px var(--gold-deep)}.row{position:relative;isolation:isolate}.row.is-fresh:before{content:"";position:absolute;inset:0;z-index:-1;border-radius:inherit;background:var(--win-soft);animation:fresh-glow 1.8s .2s var(--ease-out) both}.row.is-fresh .numeral{animation:numeral-fill .8s .32s cubic-bezier(.2,.9,.3,1.25) both}.row.is-fresh .numeral-check{animation:mark-in .42s .76s var(--ease-spring) both}.segments i.is-fresh{animation:segment-in .56s .52s var(--ease-spring) both}@keyframes fresh-glow{0%{opacity:0}20%{opacity:1}to{opacity:0}}.editor-panel,.console{position:relative}.editor-panel:after,.console:after{content:"";position:absolute;inset:0;z-index:400;border-radius:inherit;pointer-events:none;box-shadow:inset 0 0 0 2px var(--win),inset 0 0 60px var(--win-glow);opacity:0}.bench.is-celebrating .editor-panel:after,.bench.is-celebrating .console:after{animation:glow 1.4s var(--ease-out) both}.bench.is-celebrating .button--primary{animation:win-button 1.4s ease both}@keyframes pip-in{0%{transform:scale(1.5);box-shadow:0 0 24px var(--win-glow)}}@keyframes pips-charged{to{transform:scale(1.04)}}@keyframes mark-in{0%{opacity:0;transform:scale(.6)}}@keyframes verdict-in{0%{opacity:0;transform:translateY(6px) scale(.92);filter:blur(4px)}}@keyframes count-in{0%{opacity:0;transform:translate(-4px)}}@keyframes segment-in{0%{background:var(--line);transform:scale(1)}40%{background:var(--gold);transform:scale(1.7,2)}to{background:var(--win);transform:scale(1)}}@keyframes glow{0%,15%{opacity:1}to{opacity:0}}@keyframes win-button{0%,25%{background:var(--win);border-color:var(--win)}}.button--icon{padding:9px 10px}.button--icon[aria-pressed=false]{color:var(--faint)}.block pre{margin-bottom:12px}.nothing{color:var(--muted);font-family:var(--font-sans)}pre.error{margin:0 0 12px;padding:12px 14px;border-radius:10px;border-left:3px solid var(--bad);background:var(--sunk);color:var(--ink);font-size:.875rem;white-space:pre-wrap}.empty{margin:0;color:var(--muted)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.bench.is-celebrating .editor-panel:after,.bench.is-celebrating .console:after{animation:glow 1.2s ease-out both!important}}@media(max-width:1000px){.home{display:block;max-width:720px;padding:56px 24px 96px}.intro{position:static;margin-bottom:48px}}@media(max-width:900px){.workspace{display:flex;flex-direction:column;height:auto;min-height:100dvh}.brief-body{overflow:visible}.editor-panel,.console{flex:none}.editor-wrap{height:340px;flex:none}.console-body{overflow:visible}}@media(max-width:640px){.workspace{padding:6px;gap:6px}.brief-head,.brief-body{padding-left:16px;padding-right:16px}.tabs{padding:0 12px 12px}.home{padding:40px 16px 80px}.week summary{flex-wrap:wrap;padding:18px 16px;gap:10px 12px}.week-head{padding:18px 16px;gap:12px}.week-title{font-size:1.625rem}.week-progress{order:3;margin-left:0;width:100%}.week-chevron{margin-left:auto}.rows{padding:0 4px 4px}.row{grid-template-columns:3.75rem 1fr;grid-template-areas:"num main" "num level";gap:6px 14px;padding:16px 4px}.row .numeral{grid-area:num;font-size:2.375rem}.row-main{grid-area:main}.row .level{grid-area:level}.row-title{font-size:1.1875rem}.numeral-check{top:-10px;right:-20px;width:18px;height:18px}.brief-title{font-size:1.5rem}.brief-head .numeral{font-size:2.125rem}.io{grid-template-columns:1fr}}
