.inner{background:var(--paper);color:var(--slate);flex:1 0 auto;font:400 1.0625rem/1.6 var(--body)}.inner h1,.inner h2,.inner h3{text-wrap:balance;font-family:var(--display);margin:0}.inner p{margin:0}.inner a:not(.btn){color:var(--green);text-underline-offset:3px}.page-head{background:var(--green-bg);border-bottom:1px solid var(--green-dark);color:var(--paper)}.page-head .wrap{grid-gap:.6rem;display:grid;gap:.6rem;padding-block:clamp(2rem,5vw,3.25rem)}.page-head .typed{color:var(--gold);font:500 1rem/1.3 var(--mono);min-height:1.3em}.page-head .caret{background:var(--gold);display:inline-block;height:1.05em;margin-left:.1em;vertical-align:-.15em;width:.55em}.page-head .caret.blink{-webkit-animation:blink 1.1s steps(1) 3,caret-done 0s 3.3s forwards;animation:blink 1.1s steps(1) 3,caret-done 0s 3.3s forwards}.page-head h1{font-size:clamp(2.2rem,5.5vw,3.4rem);line-height:1.05}.page-head .lede{color:hsla(0,0%,100%,.88);font-size:1.12rem;max-width:42rem}.page-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:.75rem}.page-body .wrap{padding-block:clamp(2rem,5vw,3.5rem)}.inner h2{color:var(--green);font-size:clamp(1.5rem,3vw,1.9rem);line-height:1.2}.prose{grid-gap:2.5rem;display:grid;gap:2.5rem;max-width:46rem}.prose section{grid-gap:.9rem;display:grid;gap:.9rem}.prose ul{grid-gap:.35rem;display:grid;gap:.35rem;margin:0;padding-left:1.2rem}.prose li strong{color:var(--green)}.facts{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(13rem,1fr))}.facts div{grid-gap:.2rem;background:var(--fog);border-top:4px solid var(--green);display:grid;gap:.2rem;padding:1rem 1.2rem}.facts .eyebrow{color:var(--green);font-size:.7rem}.facts strong{font:700 1.2rem/1.3 var(--display)}.facts span{color:var(--muted)}.card-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));list-style:none;margin:0;padding:0}.sponsor-card{grid-gap:.9rem;border:1px solid var(--rule);border-radius:6px;color:var(--slate);display:grid;gap:.9rem;justify-items:center;padding:1.5rem;text-align:center;text-decoration:none;transition:border-color .2s,box-shadow .2s,-webkit-transform .2s;transition:border-color .2s,box-shadow .2s,transform .2s;transition:border-color .2s,box-shadow .2s,transform .2s,-webkit-transform .2s}.sponsor-card:hover{border-color:var(--green);box-shadow:0 12px 24px -16px rgba(27,96,72,.6);-webkit-transform:translateY(-2px);transform:translateY(-2px)}.sponsor-card img{height:4.5rem;object-fit:contain;width:100%}.sponsor-card span{font:500 .95rem var(--body)}.toolbar{align-items:center;display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:1.5rem}.toolbar .grow{flex:1 1 16rem}.count{color:var(--muted);font:500 .9rem var(--mono);margin-bottom:1rem}.empty{background:var(--fog);border-left:4px solid var(--green);font-size:1.1rem;padding:1.25rem 1.5rem}.form-panel{background:var(--paper);border:1px solid var(--rule);border-radius:6px;border-top:4px solid var(--green);margin:0 auto;max-width:34rem;padding:1.5rem clamp(1rem,4vw,2rem) 2rem}.form-panel .switch{color:var(--muted);margin-top:1.25rem;text-align:center}@media (prefers-reduced-motion:reduce){.sponsor-card{transition:none}}.link-button{background:none;border:0;color:var(--green);cursor:pointer;font:inherit;font-weight:500;padding:0;text-decoration:underline;text-underline-offset:3px}.admin-stats{margin-top:2rem}.admin-stats-bar{align-items:center;color:var(--muted);display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;margin-bottom:1rem}.stat-tiles{grid-gap:.75rem;display:grid;gap:.75rem;grid-template-columns:repeat(auto-fill,minmax(12rem,1fr));list-style:none;margin:0 0 1.5rem;padding:0}.stat-tiles li{grid-gap:.2rem;border:1px solid var(--rule);border-radius:6px;border-top:4px solid var(--green);display:grid;gap:.2rem;padding:.9rem 1rem}.stat-tiles span{color:var(--muted);font-size:.9rem}.stat-tiles strong{-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";color:var(--green);font:700 2rem/1.1 var(--display);font-variant-numeric:tabular-nums}.inner .stat-subhead{color:var(--slate);font:700 1.1rem/1.3 var(--body);margin:.5rem 0 .75rem}.page{flex:1 0 auto}.home{background:var(--paper);color:var(--slate);font:400 1.0625rem/1.6 var(--body)}.home h1,.home h2,.home h3{text-wrap:balance;font-family:var(--display);margin:0}.home p{margin:0}.home a:not(.btn){color:var(--green);text-underline-offset:3px}@-webkit-keyframes blink{50%{opacity:0}}@keyframes blink{50%{opacity:0}}.home .hero{background:var(--green-bg);color:var(--paper);overflow:hidden;position:relative}.home .hero canvas{height:100%;inset:0;position:absolute;width:100%}.home .net-bar{align-items:center;bottom:.5rem;display:flex;gap:.75rem;position:absolute;right:max(16px,env(safe-area-inset-right,0px));z-index:1}.home .bfs-label{margin:0;pointer-events:none;white-space:pre}.home .bfs-label,.home .motion-toggle{color:#9dbbae;font:400 .75rem var(--mono)}.home .motion-toggle{align-items:center;background:none;border:1px solid #2e5546;border-radius:3px;cursor:pointer;display:inline-flex;gap:.4em;min-height:24px;padding:.15rem .5rem}.home .motion-toggle span{font-size:.85em}.home .motion-toggle:hover{border-color:#9dbbae;color:var(--paper)}.home .motion-toggle:focus-visible{outline:3px solid var(--focus-dark);outline-offset:2px}@media (max-width:600px){.home .bfs-label{display:none}}.home .hero .wrap{grid-gap:2.5rem;align-items:center;display:grid;gap:2.5rem;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);padding-block:clamp(3.5rem,9vw,7rem);position:relative}.home .hero .eyebrow{color:var(--gold)}.home .hero h1{font-size:clamp(3rem,9vw,6.5rem);line-height:.95;margin:.75rem 0 1rem}.home .hero h1 .yr{color:var(--paper);font:400 .42em var(--mono);margin-left:.15em;vertical-align:.35em}.home .hero h1 .br{color:var(--gold)}.home .title{font-size:clamp(3rem,9vw,6.5rem);position:relative;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.home .hero .title h1{font-size:1em}.home .cursor{-webkit-animation:blink 1.1s steps(1) infinite;animation:blink 1.1s steps(1) infinite;background:var(--gold);display:inline-block;height:.07em;margin-left:.06em;width:.42em}.home .hero .sub{font:italic 400 clamp(1.15rem,2.4vw,1.5rem)/1.4 var(--display);max-width:32rem}.home .hero-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:2rem}.home .term{background:#0b1f18;border:1px solid #2e5546;border-radius:8px;box-shadow:0 30px 60px -30px rgba(0,0,0,.6);font:400 .92rem/1.7 var(--mono);overflow:hidden}.home .term-bar{align-items:center;background:#071610;color:#b9ccc3;display:flex;font-size:.75rem;gap:.45rem;padding:.55rem .9rem}.home .term-bar i{background:#2e5546;border-radius:50%;height:.6rem;width:.6rem}.home .term-bar i:first-child{background:var(--gold)}.home .term-bar span{margin-left:.5rem}.home .term pre{color:#e6efea;font:inherit;margin:0;padding:1rem 1.1rem 1.2rem;white-space:pre-wrap}.home .term .p{color:#9fdcb8}.home .term .d{color:#9dbbae}.home .term .when{color:var(--paper);font-weight:700}.home .term .where{color:#e6efea}.home .term .big{color:var(--gold);font:700 clamp(1.6rem,4vw,2.3rem)/1.2 var(--mono);letter-spacing:.02em}.home .light-section{background:var(--paper);padding-block:clamp(3rem,7vw,5rem)}.home .light-section+.light-section{border-top:1px solid var(--rule)}.home .light-section.fog{background:var(--fog)}.home .head{grid-gap:.55rem;display:grid;gap:.55rem;margin-bottom:2rem}.home .head.center{justify-items:center;text-align:center}.home .typed{color:var(--green);font:500 1rem/1.3 var(--mono);min-height:1.3em}.home .caret{background:var(--green);display:inline-block;height:1.05em;margin-left:.1em;vertical-align:-.15em;width:.55em}.home .caret.blink{-webkit-animation:blink 1.1s steps(1) 3,caret-done 0s 3.3s forwards;animation:blink 1.1s steps(1) 3,caret-done 0s 3.3s forwards}@-webkit-keyframes caret-done{to{visibility:hidden}}@keyframes caret-done{to{visibility:hidden}}.home h2{color:var(--green);font-size:clamp(1.9rem,4vw,2.5rem);line-height:1.15}.home .lede{color:var(--muted);font-size:1.12rem;max-width:40rem}.home .stats{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(4,minmax(0,1fr))}.home .stats div{border-left:4px solid var(--gold);padding:.25rem 0 .25rem 1rem}.home .stats strong{-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";color:var(--green);display:block;font:700 clamp(2rem,5vw,3rem)/1.1 var(--display);font-variant-numeric:tabular-nums}.home .stats div>span{color:var(--muted);font-size:.95rem}.home .classes{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(2,minmax(0,1fr))}.home .klass{background:#f4f8f6;border:1px solid #cfddd6;border-radius:6px;font:400 .92rem/1.65 var(--mono);overflow:hidden;transition:border-color .2s,box-shadow .2s,-webkit-transform .2s;transition:border-color .2s,box-shadow .2s,transform .2s;transition:border-color .2s,box-shadow .2s,transform .2s,-webkit-transform .2s}.home .klass:hover{border-color:var(--green);box-shadow:0 12px 24px -16px rgba(27,96,72,.6);-webkit-transform:translateY(-2px);transform:translateY(-2px)}.home .klass header{background:#e9f0ec;border-bottom:1px solid #cfddd6;display:flex;font-size:.78rem;font-weight:700;justify-content:space-between;padding:.4rem .9rem}.home .klass header span:last-child{color:var(--muted);font-weight:400}.home .klass .code{color:var(--slate);padding:.9rem 1rem 1rem}.home .klass .ln{display:block}.home .klass .ln.i1{padding-left:4ch}.home .klass .ln.strong{font-weight:700}.home .klass .ln.hang3{padding-left:7ch;text-indent:-3ch}.home .klass .ln.hang2{padding-left:6ch;text-indent:-2ch}.home .kw{color:#8a5a00}.home .nm{color:var(--green);font-weight:700}.home .doc{color:#4f6b63;font-style:italic}.home .str{color:var(--green)}.home .winners-top{align-items:flex-end;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between}.home .year-pick{align-items:center;color:var(--muted);display:flex;font:500 .9rem var(--body);gap:.6rem;margin-bottom:2rem}.home .year-pick select{background:var(--paper);border:1px solid var(--green);border-radius:3px;color:var(--green);font:500 1rem var(--mono);padding:.4rem .6rem}.home .ide{background:#0f2a22;border:1px solid #24493b;border-radius:8px;color:#e6efea;display:grid;font-family:var(--mono);grid-template-columns:17rem minmax(0,1fr);overflow:hidden}.home .files{background:#0b211a;border-right:1px solid #24493b;padding:.75rem 0}.home .files p{color:#9dbbae;font-size:.72rem;letter-spacing:.12em;padding:0 1rem .5rem;text-transform:uppercase}.home .files button{align-items:baseline;background:none;border:0;color:#e6efea;cursor:pointer;display:grid;font:400 .88rem/1.45 var(--mono);grid-template-columns:1.4em minmax(0,1fr);padding:.45rem 1rem;text-align:left;width:100%}.home .files .arrow{color:#6f8f82}.home .files button[aria-selected=true] .arrow{color:var(--gold)}.home .files button:hover{background:#133a2b}.home .files button[aria-selected=true]{background:#18402f;color:var(--gold)}.home .out{grid-gap:1rem;align-content:start;display:grid;gap:1rem;min-height:22rem;padding:1.25rem 1.5rem}.home .out .cmd{color:#9fdcb8;font-size:.88rem}.home .win{grid-gap:1rem;-webkit-animation:slide .35s forwards;animation:slide .35s forwards;border-top:1px dashed #24493b;display:grid;gap:1rem;grid-template-columns:4rem minmax(0,1fr);opacity:0;padding:.9rem 0;-webkit-transform:translateX(-8px);transform:translateX(-8px)}.home .win .pl{color:var(--gold);font-weight:700}.home .win h3{color:var(--paper);font:700 1.05rem/1.35 var(--body)}.home .win p{color:#b9ccc3;font:400 .9rem var(--body)}@-webkit-keyframes slide{to{opacity:1;-webkit-transform:none;transform:none}}@keyframes slide{to{opacity:1;-webkit-transform:none;transform:none}}.home .readme{grid-gap:2.5rem;align-items:start;display:grid;gap:2.5rem;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr)}.home .rules{grid-gap:.7rem;display:grid;gap:.7rem;margin:0;padding-left:1.4rem}.home .rules li::marker{color:var(--green);font-family:var(--mono)}.home .rules ul{grid-gap:.25rem;color:var(--muted);display:grid;gap:.25rem;margin:.3rem 0 0;padding-left:1.1rem}.home .callout{grid-gap:.8rem;background:var(--green-bg);border-radius:6px;color:var(--paper);display:grid;gap:.8rem;padding:1.6rem;position:-webkit-sticky;position:sticky;top:6rem}.home .callout .eyebrow{color:var(--gold)}.home .callout h3{font-size:1.45rem}.home .callout .poster{border-radius:4px;display:block;overflow:hidden}.home .callout .poster img{display:block;height:auto;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s;width:100%}.home .callout .poster:hover img{-webkit-transform:scale(1.02);transform:scale(1.02)}.home .sponsors{align-items:center;display:flex;flex-wrap:wrap;gap:2rem 3rem;justify-content:center;list-style:none;margin:0;padding:0}.home .sponsors img{display:block;-webkit-filter:grayscale(1);filter:grayscale(1);max-height:3.5rem;opacity:.8;transition:.2s;width:auto}.home .sponsors a:hover img{-webkit-filter:none;filter:none;opacity:1}@media (max-width:820px){.home .classes,.home .hero .wrap,.home .readme{grid-template-columns:minmax(0,1fr)}.home .stats{grid-template-columns:repeat(2,minmax(0,1fr))}.home .ide{grid-template-columns:minmax(0,1fr)}.home .files{border-bottom:1px solid #24493b;border-right:0;display:flex;overflow-x:auto;padding:0}.home .files p{display:none}.home .files button{padding:.7rem .9rem;white-space:nowrap;width:auto}.home .callout{position:static}}[data-motion=off] .home .cursor,[data-motion=off] .home .win{-webkit-animation:none;animation:none}[data-motion=off] .home .win{opacity:1;-webkit-transform:none;transform:none}@media (prefers-reduced-motion:reduce){.home .callout .poster img,.home .klass,.home .sponsors img{transition:none}}:root{--green-bg:#154734;--green:#1b6048;--green-dark:#0f3327;--gold:#ffd100;--slate:#00313c;--fog:#f7f7f7;--paper:#fff;--muted:#3d5a60;--rule:#d9e2de;--focus-dark:#99ead7;--focus-light:#4a8374;--display:"Lora",Georgia,serif;--body:"Roboto","Helvetica Neue",Arial,sans-serif;--mono:"Roboto Mono",Menlo,Consolas,monospace;--wrap:72rem}.wrap{box-sizing:border-box;margin:0 auto;max-width:72rem;max-width:var(--wrap);padding-inline:max(16px,env(safe-area-inset-left,0px));width:100%}.eyebrow{font:700 .78rem/1.2 Roboto,Helvetica Neue,Arial,sans-serif;font:700 .78rem/1.2 var(--body);letter-spacing:.16em;margin:0;text-transform:uppercase}.sr-only{clip:rect(0 0 0 0);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}:focus-visible{outline:3px solid #4a8374;outline:3px solid var(--focus-light);outline-offset:3px}.on-dark :focus-visible{outline-color:#99ead7;outline-color:var(--focus-dark)}.btn{align-items:center;background:#1b6048;background:var(--green);border:2px solid transparent;border-radius:3px;box-sizing:border-box;color:#ffd100;color:var(--gold);cursor:pointer;display:inline-flex;font:700 1rem/1 Roboto,Helvetica Neue,Arial,sans-serif;font:700 1rem/1 var(--body);gap:.5rem;letter-spacing:.02em;padding:.95rem 1.4rem;text-decoration:none;transition:background-color .15s,color .15s,-webkit-transform .15s;transition:background-color .15s,color .15s,transform .15s;transition:background-color .15s,color .15s,transform .15s,-webkit-transform .15s}.btn:hover{-webkit-transform:translateY(-1px);transform:translateY(-1px)}.btn:hover,.on-dark .btn{background:#ffd100;background:var(--gold);color:#154734;color:var(--green-bg)}.on-dark .btn:hover{background:#ffe04d}.btn.ghost{background:transparent;border-color:#1b6048;border-color:var(--green);color:#1b6048;color:var(--green)}.btn.ghost:hover{background:#1b6048;background:var(--green);color:#fff;color:var(--paper)}.on-dark .btn.ghost{background:transparent;border-color:hsla(0,0%,100%,.6);color:#fff;color:var(--paper)}.on-dark .btn.ghost:hover{border-color:#ffd100;border-color:var(--gold);color:#ffd100;color:var(--gold)}.site-header{background:#154734;background:var(--green-bg);border-bottom:3px solid #ffd100;border-bottom:3px solid var(--gold);position:-webkit-sticky;position:sticky;top:0;z-index:1100}.site-header .wrap{align-items:center;display:flex;gap:1rem;justify-content:space-between;min-height:4.25rem;position:relative}.site-header .logo{border-radius:3px;display:block}.site-header .logo img{display:block;height:40px;width:auto}.site-nav{align-items:center;display:flex;flex-wrap:wrap;gap:.25rem 1.25rem}.site-nav a{border-bottom:2px solid transparent;color:#fff;color:var(--paper);font:500 .95rem Roboto,Helvetica Neue,Arial,sans-serif;font:500 .95rem var(--body);padding:.4rem 0;text-decoration:none}.site-nav a.active,.site-nav a:hover{border-bottom-color:#ffd100;border-bottom-color:var(--gold);color:#ffd100;color:var(--gold)}.site-nav a.btn{border-bottom:2px solid transparent;font-size:.9rem;padding:.6rem 1rem}.site-nav a.btn,.site-nav a.btn:hover{color:#154734;color:var(--green-bg)}.menu-toggle{background:none;border:1px solid hsla(0,0%,100%,.7);border-radius:3px;color:#fff;color:var(--paper);cursor:pointer;display:none;font:500 .9rem Roboto,Helvetica Neue,Arial,sans-serif;font:500 .9rem var(--body);padding:.45rem .8rem}@media (max-width:900px){.menu-toggle{display:inline-block}.site-nav{align-items:stretch;background:#154734;background:var(--green-bg);border-bottom:3px solid #ffd100;border-bottom:3px solid var(--gold);display:none;flex-direction:column;gap:0;left:0;padding:.5rem 16px 1rem;position:absolute;right:0;top:100%}.site-header.open .site-nav{display:flex}.site-nav a{border-bottom:1px solid hsla(0,0%,100%,.15);padding:.75rem 0}.site-nav a.btn{justify-content:center;margin-top:.75rem}.site-header .logo img{height:32px}}.site-footer{background:#154734;background:var(--green-bg);border-top:3px solid #ffd100;border-top:3px solid var(--gold);color:#fff;color:var(--paper);font-family:Roboto,Helvetica Neue,Arial,sans-serif;font-family:var(--body);margin-top:auto}.site-footer .wrap{display:flex;flex-wrap:wrap;gap:1.5rem 3rem;justify-content:space-between;padding-block:2.5rem 1.5rem}.site-footer img{display:block;height:52px;margin:26px 0;width:auto}.site-footer h2{color:#ffd100;color:var(--gold);font:700 .78rem/1.2 Roboto,Helvetica Neue,Arial,sans-serif;font:700 .78rem/1.2 var(--body);letter-spacing:.16em;margin:0 0 .4rem;text-transform:uppercase}.site-footer address{font-size:.9rem;font-style:normal;line-height:1.6}.site-footer a{color:#fff;color:var(--paper);text-decoration:none;text-underline-offset:3px}.site-footer a:hover{text-decoration:underline}.site-footer .legal{border-top:1px solid hsla(0,0%,100%,.2);display:flex;flex-basis:100%;flex-wrap:wrap;font-size:.82rem;gap:.5rem 1.5rem;padding-top:1rem}.site-footer .legal a{text-decoration:none}.site-footer .legal a:hover{text-decoration:underline}@media (prefers-reduced-motion:reduce){.btn{transition:none}}
/*# sourceMappingURL=main.939ceab8.css.map*/