.workshop-frame[data-astro-cid-2qphb52o]{max-width:1100px;margin:0 auto;padding:1rem;position:relative;min-height:calc(100vh - 4rem);display:flex;flex-direction:column}.ws-hdr[data-astro-cid-2qphb52o]{display:flex;align-items:baseline;gap:1rem;margin-bottom:1.2rem;flex-wrap:wrap}.ws-eyebrow[data-astro-cid-2qphb52o]{font-size:.78rem;letter-spacing:.08em}.ws-hdr[data-astro-cid-2qphb52o] h1[data-astro-cid-2qphb52o]{font-size:1.6rem;font-weight:600;letter-spacing:-.02em;margin:0}.ws-back[data-astro-cid-2qphb52o]{margin-left:auto;font-size:.82rem;color:var(--mute);text-decoration:none}.ws-back[data-astro-cid-2qphb52o]:hover{color:var(--ink)}.ws-grid[data-astro-cid-2qphb52o]{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(5,1fr);gap:.7rem;flex:1;align-content:stretch}@media(max-width:900px){.ws-grid[data-astro-cid-2qphb52o]{grid-template-columns:repeat(4,1fr)}}@media(max-width:640px){.ws-grid[data-astro-cid-2qphb52o]{grid-template-columns:repeat(3,1fr)}}@media(max-width:480px){.ws-grid[data-astro-cid-2qphb52o]{grid-template-columns:repeat(2,1fr)}}.ws-tile[data-astro-cid-2qphb52o]{border:1px solid var(--rule);border-radius:10px;background:var(--bg);transition:transform .25s,border-color .25s,opacity .3s,box-shadow .25s;animation:drift var(--drift-dur, 6s) ease-in-out var(--drift-delay, 0s) infinite;will-change:transform}@keyframes drift{0%,to{transform:translateY(0) rotate(0)}33%{transform:translateY(-2px) rotate(-.3deg)}66%{transform:translateY(1px) rotate(.3deg)}}.ws-tile[data-astro-cid-2qphb52o]:hover{border-color:var(--ink);animation-play-state:paused;transform:translateY(-3px)}.ws-tile[data-astro-cid-2qphb52o].is-spotlight{border-color:var(--ink);box-shadow:0 0 0 2px var(--ink),0 8px 24px #00000014;animation:bump .6s ease,drift var(--drift-dur, 6s) ease-in-out var(--drift-delay, 0s) infinite}.ws-tile[data-astro-cid-2qphb52o].is-dim{opacity:.28}.ws-tile[data-astro-cid-2qphb52o].is-network{--network-blue: #1c5fd6}@keyframes bump{0%,to{transform:translateY(0)}50%{transform:translateY(-10px) scale(1.04)}}.ws-tile-link[data-astro-cid-2qphb52o]{display:flex;flex-direction:column;align-items:center;gap:.4rem;padding:.9rem .6rem;color:inherit;text-decoration:none;height:100%;text-align:center}.ws-logo[data-astro-cid-2qphb52o]{width:48px;height:48px;display:grid;place-items:center;color:var(--ink)}.ws-tile[data-astro-cid-2qphb52o].is-network .ws-logo[data-astro-cid-2qphb52o]{color:var(--network-blue)}.ws-logo[data-astro-cid-2qphb52o] svg{width:100%;height:100%}.ws-blank[data-astro-cid-2qphb52o]{font-size:.9rem}.ws-name[data-astro-cid-2qphb52o]{font-size:.85rem;font-weight:500;line-height:1.2}.ws-cat[data-astro-cid-2qphb52o]{font-size:.7rem}.ws-stream{position:fixed;inset:0;pointer-events:none;z-index:55}.ws-particle{position:fixed;width:10px;height:10px;border-radius:50%;background:var(--ink);will-change:transform,opacity;pointer-events:none}.ws-smoke{position:fixed;width:22px;height:22px;border-radius:50%;background:color-mix(in oklab,var(--ink) 25%,transparent);filter:blur(5px);will-change:transform,opacity;pointer-events:none}.mascot[data-astro-cid-2qphb52o]{position:fixed;bottom:1.5rem;right:1.5rem;z-index:60;display:flex;flex-direction:column;align-items:flex-end;gap:.5rem;pointer-events:none;transition:opacity .45s,transform .45s}.mascot[data-astro-cid-2qphb52o]>[data-astro-cid-2qphb52o]{pointer-events:auto}.mascot[data-astro-cid-2qphb52o].is-gone{opacity:0;transform:translateY(80px) scale(.6)}.mascot[data-astro-cid-2qphb52o].is-shaking{animation:shake .5s ease}@keyframes shake{0%,to{transform:translate(0)}15%{transform:translate(-4px) rotate(-1deg)}30%{transform:translate(4px) rotate(1deg)}45%{transform:translate(-3px)}60%{transform:translate(3px)}75%{transform:translate(-2px)}}.mascot-bubble[data-astro-cid-2qphb52o]{max-width:300px;padding:.55rem .9rem;background:var(--ink);color:var(--bg);border-radius:14px;font-size:.95rem;line-height:1.4;opacity:0;transform:translateY(6px);transition:opacity .25s,transform .25s;position:relative}.mascot-bubble[data-astro-cid-2qphb52o].is-showing{opacity:1;transform:none}.mascot-bubble[data-astro-cid-2qphb52o]:after{content:"";position:absolute;bottom:-6px;right:22px;width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-top:6px solid var(--ink)}.mascot[data-astro-cid-2qphb52o][data-mood=mad] .mascot-bubble[data-astro-cid-2qphb52o],.mascot[data-astro-cid-2qphb52o][data-mood=furious] .mascot-bubble[data-astro-cid-2qphb52o]{background:#b13a23;color:#fff}.mascot[data-astro-cid-2qphb52o][data-mood=mad] .mascot-bubble[data-astro-cid-2qphb52o]:after,.mascot[data-astro-cid-2qphb52o][data-mood=furious] .mascot-bubble[data-astro-cid-2qphb52o]:after{border-top-color:#b13a23}.mascot-flask[data-astro-cid-2qphb52o]{width:104px;height:104px;color:var(--ink);background:var(--bg);border:1px solid var(--rule);border-radius:50%;display:grid;place-items:center;box-shadow:0 4px 16px #00000014;cursor:pointer;position:relative;transition:transform .2s,box-shadow .2s,background .3s,border-color .3s}.mascot-flask[data-astro-cid-2qphb52o]:hover{transform:scale(1.04)}.mascot-flask[data-astro-cid-2qphb52o]:active{transform:scale(.94)}.mascot-flask[data-astro-cid-2qphb52o] svg[data-astro-cid-2qphb52o]{width:70%;height:70%}.hair[data-astro-cid-2qphb52o] path[data-astro-cid-2qphb52o]{transform-origin:50% 90%;transform-box:fill-box;animation:hair-sway 3.6s ease-in-out infinite}.hair[data-astro-cid-2qphb52o] path[data-astro-cid-2qphb52o]:nth-child(2){animation-duration:2.6s;animation-delay:-.4s}.hair[data-astro-cid-2qphb52o] path[data-astro-cid-2qphb52o]:nth-child(3){animation-duration:3s;animation-delay:-.9s}.hair[data-astro-cid-2qphb52o] path[data-astro-cid-2qphb52o]:nth-child(4){animation-duration:2.8s;animation-delay:-1.4s}.hair[data-astro-cid-2qphb52o] path[data-astro-cid-2qphb52o]:nth-child(5){animation-duration:3.4s;animation-delay:-2s}.hair[data-astro-cid-2qphb52o] path[data-astro-cid-2qphb52o]:nth-child(6){animation-duration:2.4s;animation-delay:-.7s}.hair[data-astro-cid-2qphb52o] path[data-astro-cid-2qphb52o]:nth-child(7){animation-duration:3.1s;animation-delay:-1.7s}@keyframes hair-sway{0%,to{transform:rotate(-1.5deg)}50%{transform:rotate(1.5deg)}}.mascot[data-astro-cid-2qphb52o][data-mood=excited] .hair[data-astro-cid-2qphb52o] path[data-astro-cid-2qphb52o]{animation-duration:1.1s}.mascot[data-astro-cid-2qphb52o][data-mood=furious] .hair[data-astro-cid-2qphb52o] path[data-astro-cid-2qphb52o],.mascot[data-astro-cid-2qphb52o][data-mood=scared] .hair[data-astro-cid-2qphb52o] path[data-astro-cid-2qphb52o]{animation-duration:.25s}.eye-l[data-astro-cid-2qphb52o],.eye-r[data-astro-cid-2qphb52o]{transition:transform .08s linear;transform-box:fill-box;transform-origin:center}.eyes-closed[data-astro-cid-2qphb52o],.mascot[data-astro-cid-2qphb52o][data-mood=sleepy] .eyes-open[data-astro-cid-2qphb52o],.mascot[data-astro-cid-2qphb52o][data-mood=sad] .eyes-open[data-astro-cid-2qphb52o]{display:none}.mascot[data-astro-cid-2qphb52o][data-mood=sleepy] .eyes-closed[data-astro-cid-2qphb52o],.mascot[data-astro-cid-2qphb52o][data-mood=sad] .eyes-closed[data-astro-cid-2qphb52o]{display:inline}.mascot[data-astro-cid-2qphb52o][data-mood=surprised] .eye-white[data-astro-cid-2qphb52o],.mascot[data-astro-cid-2qphb52o][data-mood=scared] .eye-white[data-astro-cid-2qphb52o],.mascot[data-astro-cid-2qphb52o][data-mood=begging] .eye-white[data-astro-cid-2qphb52o]{r:4}.mascot[data-astro-cid-2qphb52o][data-mood=scared] .eye[data-astro-cid-2qphb52o]{r:.9}.mascot[data-astro-cid-2qphb52o][data-mood=begging] .eye[data-astro-cid-2qphb52o]{r:2}.mascot[data-astro-cid-2qphb52o][data-mood=mad] .eye-white[data-astro-cid-2qphb52o],.mascot[data-astro-cid-2qphb52o][data-mood=furious] .eye-white[data-astro-cid-2qphb52o]{transform-box:fill-box;transform-origin:center;transform:scaleY(.55)}.mascot[data-astro-cid-2qphb52o][data-mood=smug] .eye-l[data-astro-cid-2qphb52o],.mascot[data-astro-cid-2qphb52o][data-mood=smug] .eye-r[data-astro-cid-2qphb52o]{transform:translate(1.2px)!important}.brows[data-astro-cid-2qphb52o]{display:none}.mascot[data-astro-cid-2qphb52o][data-mood=mad] .brows[data-astro-cid-2qphb52o],.mascot[data-astro-cid-2qphb52o][data-mood=furious] .brows[data-astro-cid-2qphb52o],.mascot[data-astro-cid-2qphb52o][data-mood=sad] .brows[data-astro-cid-2qphb52o],.mascot[data-astro-cid-2qphb52o][data-mood=surprised] .brows[data-astro-cid-2qphb52o]{display:inline}.mascot[data-astro-cid-2qphb52o][data-mood=mad] .brow-l[data-astro-cid-2qphb52o],.mascot[data-astro-cid-2qphb52o][data-mood=furious] .brow-l[data-astro-cid-2qphb52o]{transform:rotate(15deg);transform-origin:31px 32px}.mascot[data-astro-cid-2qphb52o][data-mood=mad] .brow-r[data-astro-cid-2qphb52o],.mascot[data-astro-cid-2qphb52o][data-mood=furious] .brow-r[data-astro-cid-2qphb52o]{transform:rotate(-15deg);transform-origin:33px 32px}.mascot[data-astro-cid-2qphb52o][data-mood=sad] .brow-l[data-astro-cid-2qphb52o]{transform:rotate(-12deg);transform-origin:31px 32px}.mascot[data-astro-cid-2qphb52o][data-mood=sad] .brow-r[data-astro-cid-2qphb52o]{transform:rotate(12deg);transform-origin:33px 32px}.mascot[data-astro-cid-2qphb52o][data-mood=surprised] .brow-l[data-astro-cid-2qphb52o],.mascot[data-astro-cid-2qphb52o][data-mood=surprised] .brow-r[data-astro-cid-2qphb52o]{transform:translateY(-3px)}.mouth[data-astro-cid-2qphb52o]{display:none}.mascot[data-astro-cid-2qphb52o][data-mood=sad] .mouth-frown[data-astro-cid-2qphb52o],.mascot[data-astro-cid-2qphb52o][data-mood=scared] .mouth-open[data-astro-cid-2qphb52o],.mascot[data-astro-cid-2qphb52o][data-mood=surprised] .mouth-open[data-astro-cid-2qphb52o],.mascot[data-astro-cid-2qphb52o][data-mood=smug] .mouth-smirk[data-astro-cid-2qphb52o],.mascot[data-astro-cid-2qphb52o][data-mood=sleepy] .mouth-flat[data-astro-cid-2qphb52o],.mascot[data-astro-cid-2qphb52o][data-mood=mad] .mouth-flat[data-astro-cid-2qphb52o],.mascot[data-astro-cid-2qphb52o][data-mood=furious] .mouth-flat[data-astro-cid-2qphb52o],.mascot[data-astro-cid-2qphb52o][data-mood=begging] .mouth-frown[data-astro-cid-2qphb52o]{display:inline}.b[data-astro-cid-2qphb52o]{opacity:.6}.b1[data-astro-cid-2qphb52o]{animation:rise 1.8s ease-in-out infinite}.b2[data-astro-cid-2qphb52o]{animation:rise 2.1s ease-in-out infinite .4s}.b3[data-astro-cid-2qphb52o]{animation:rise 1.6s ease-in-out infinite .9s}@keyframes rise{0%{transform:translateY(2px);opacity:.2}50%{transform:translateY(-3px);opacity:.8}to{transform:translateY(2px);opacity:.2}}.mascot[data-astro-cid-2qphb52o][data-mood=excited] .b[data-astro-cid-2qphb52o]{animation-duration:.7s}.mascot[data-astro-cid-2qphb52o][data-mood=furious] .b[data-astro-cid-2qphb52o]{animation-duration:.35s}.mascot[data-astro-cid-2qphb52o][data-mood=sad] .b[data-astro-cid-2qphb52o],.mascot[data-astro-cid-2qphb52o][data-mood=sleepy] .b[data-astro-cid-2qphb52o]{animation-duration:4s;opacity:.2}.mascot[data-astro-cid-2qphb52o][data-mood=scared] .b[data-astro-cid-2qphb52o]{animation:none;opacity:.1}.steam[data-astro-cid-2qphb52o]{position:absolute;top:0;left:50%;transform:translate(-50%);pointer-events:none}.steam[data-astro-cid-2qphb52o] .puff[data-astro-cid-2qphb52o]{position:absolute;bottom:60%;width:10px;height:10px;border-radius:50%;background:color-mix(in oklab,var(--ink) 30%,transparent);filter:blur(4px);opacity:0}.steam[data-astro-cid-2qphb52o] .p2[data-astro-cid-2qphb52o]{left:6px}.mascot[data-astro-cid-2qphb52o][data-mood=mad] .steam[data-astro-cid-2qphb52o] .puff[data-astro-cid-2qphb52o],.mascot[data-astro-cid-2qphb52o][data-mood=furious] .steam[data-astro-cid-2qphb52o] .puff[data-astro-cid-2qphb52o]{animation:puff 1.4s ease-out infinite}.mascot[data-astro-cid-2qphb52o][data-mood=furious] .steam[data-astro-cid-2qphb52o] .puff[data-astro-cid-2qphb52o]{animation-duration:.7s}.steam[data-astro-cid-2qphb52o] .p2[data-astro-cid-2qphb52o]{animation-delay:-.7s}@keyframes puff{0%{transform:translateY(0) scale(.5);opacity:0}40%{opacity:.8}to{transform:translateY(-30px) scale(1.4);opacity:0}}.zzz[data-astro-cid-2qphb52o]{display:none}.mascot[data-astro-cid-2qphb52o][data-mood=sleepy] .zzz[data-astro-cid-2qphb52o]{display:inline;animation:zzz-drift 2.4s ease-in-out infinite}@keyframes zzz-drift{0%,to{opacity:.3;transform:translateY(0)}50%{opacity:1;transform:translateY(-2px)}}.mascot[data-astro-cid-2qphb52o][data-mood=mad] .mascot-flask[data-astro-cid-2qphb52o],.mascot[data-astro-cid-2qphb52o][data-mood=furious] .mascot-flask[data-astro-cid-2qphb52o]{background:color-mix(in oklab,#b13a23 8%,var(--bg));border-color:#b13a23}.mascot[data-astro-cid-2qphb52o][data-mood=excited] .mascot-flask[data-astro-cid-2qphb52o]{animation:bob .6s ease infinite}@keyframes bob{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.mascot-prompts[data-astro-cid-2qphb52o]{display:flex;flex-direction:column;gap:.3rem;max-width:220px;opacity:0;transform:translateY(6px);transition:opacity .25s,transform .25s}.mascot[data-astro-cid-2qphb52o]:hover .mascot-prompts[data-astro-cid-2qphb52o],.mascot[data-astro-cid-2qphb52o]:focus-within .mascot-prompts[data-astro-cid-2qphb52o]{opacity:1;transform:none}.mascot-prompt[data-astro-cid-2qphb52o]{appearance:none;background:var(--bg);border:1px solid var(--rule);border-radius:999px;padding:.32rem .8rem;font-size:.76rem;color:var(--mute);cursor:pointer;text-align:right;transition:all .15s}.mascot-prompt[data-astro-cid-2qphb52o]:hover{color:var(--ink);border-color:var(--ink)}@media(max-width:600px){.mascot[data-astro-cid-2qphb52o]{bottom:1rem;right:1rem}.mascot-flask[data-astro-cid-2qphb52o]{width:76px;height:76px}.mascot-bubble[data-astro-cid-2qphb52o]{max-width:200px;font-size:.78rem}.mascot-prompts[data-astro-cid-2qphb52o]{display:none}}@media(prefers-reduced-motion:reduce){.ws-tile[data-astro-cid-2qphb52o],.b1[data-astro-cid-2qphb52o],.b2[data-astro-cid-2qphb52o],.b3[data-astro-cid-2qphb52o]{animation:none!important}}.mascot.is-gone{opacity:0;transform:translateY(80px) scale(.6)}.mascot.is-shaking{animation:shake .5s ease}.mascot[data-mood=mad] .mascot-bubble,.mascot[data-mood=furious] .mascot-bubble{background:#b13a23!important;color:#fff!important}.mascot[data-mood=mad] .mascot-bubble:after,.mascot[data-mood=furious] .mascot-bubble:after{border-top-color:#b13a23!important}.mascot[data-mood=mad] .mascot-flask,.mascot[data-mood=furious] .mascot-flask{background:color-mix(in oklab,#b13a23 12%,var(--bg))!important;border-color:#b13a23!important}.mascot[data-mood=excited] .mascot-flask{animation:bob .6s ease infinite}.mascot[data-mood=excited] .hair path{animation-duration:1.1s!important}.mascot[data-mood=furious] .hair path,.mascot[data-mood=scared] .hair path{animation-duration:.25s!important}.mascot[data-mood=sad] .hair path,.mascot[data-mood=sleepy] .hair path{animation:none!important;transform:rotate(0) translateY(2px)!important;opacity:.7}.brows,.eyes-closed,.mouth-set .mouth,.zzz{visibility:hidden}.mascot[data-mood=mad] .brows,.mascot[data-mood=furious] .brows,.mascot[data-mood=sad] .brows,.mascot[data-mood=surprised] .brows{visibility:visible}.mascot[data-mood=mad] .brow-l,.mascot[data-mood=furious] .brow-l{transform:rotate(20deg);transform-box:fill-box;transform-origin:right center}.mascot[data-mood=mad] .brow-r,.mascot[data-mood=furious] .brow-r{transform:rotate(-20deg);transform-box:fill-box;transform-origin:left center}.mascot[data-mood=sad] .brow-l{transform:rotate(-18deg);transform-box:fill-box;transform-origin:right center}.mascot[data-mood=sad] .brow-r{transform:rotate(18deg);transform-box:fill-box;transform-origin:left center}.mascot[data-mood=surprised] .brow-l,.mascot[data-mood=surprised] .brow-r{transform:translateY(-4px);transform-box:fill-box}.mascot[data-mood=sleepy] .eyes-open,.mascot[data-mood=sad] .eyes-open{visibility:hidden}.mascot[data-mood=sleepy] .eyes-closed,.mascot[data-mood=sad] .eyes-closed{visibility:visible}.mascot[data-mood=surprised] .eye-white,.mascot[data-mood=scared] .eye-white,.mascot[data-mood=begging] .eye-white{r:4.2}.mascot[data-mood=scared] .eye-l,.mascot[data-mood=scared] .eye-r{r:.7}.mascot[data-mood=begging] .eye-l,.mascot[data-mood=begging] .eye-r{r:2.2}.mascot[data-mood=mad] .eye-white,.mascot[data-mood=furious] .eye-white{transform-box:fill-box;transform-origin:center;transform:scaleY(.5)}.mascot[data-mood=smug] .eye-l,.mascot[data-mood=smug] .eye-r{transform:translate(1.5px)!important}.mascot[data-mood=sad] .mouth-frown,.mascot[data-mood=begging] .mouth-frown,.mascot[data-mood=scared] .mouth-open,.mascot[data-mood=surprised] .mouth-open,.mascot[data-mood=smug] .mouth-smirk,.mascot[data-mood=sleepy] .mouth-flat,.mascot[data-mood=mad] .mouth-flat,.mascot[data-mood=furious] .mouth-flat{visibility:visible}.mascot[data-mood=mad] .steam .puff,.mascot[data-mood=furious] .steam .puff{animation:puff 1.4s ease-out infinite}.mascot[data-mood=furious] .steam .puff,.mascot[data-mood=excited] .b{animation-duration:.7s}.mascot[data-mood=furious] .b{animation-duration:.35s}.mascot[data-mood=sad] .b,.mascot[data-mood=sleepy] .b{animation-duration:4s;opacity:.2}.mascot[data-mood=scared] .b{animation:none;opacity:.1}.mascot[data-mood=sleepy] .zzz{visibility:visible;animation:zzz-drift 2.4s ease-in-out infinite}.mascot[data-mood=thrilled] .mascot-flask{animation:thrilled-bounce .45s cubic-bezier(.34,1.56,.64,1) infinite!important;box-shadow:0 4px 16px #d6432a59!important;border-color:#d6432a!important}.mascot[data-mood=thrilled] .hair path{animation-duration:.4s!important}.mascot[data-mood=thrilled] .b{animation-duration:.3s!important}.mascot[data-mood=thrilled] .eye-l,.mascot[data-mood=thrilled] .eye-r{r:2.2}.mascot[data-mood=thrilled] .mascot-bubble{animation:bubble-wobble .4s ease-in-out infinite}@keyframes thrilled-bounce{0%{transform:translate(0) rotate(0) scale(1)}20%{transform:translate(-3px,-10px) rotate(-6deg) scale(1.05)}40%{transform:translate(4px,-6px) rotate(5deg) scale(1.02)}60%{transform:translate(-2px,-12px) rotate(-3deg) scale(1.04)}80%{transform:translate(3px,-4px) rotate(4deg) scale(1.03)}to{transform:translate(0) rotate(0) scale(1)}}@keyframes bubble-wobble{0%,to{transform:rotate(-1deg)}50%{transform:rotate(1deg)}}.mascot[data-mood=thrilled] .mascot-flask:before,.mascot[data-mood=thrilled] .mascot-flask:after{content:"✦";position:absolute;font-size:14px;color:#d6432a;animation:sparkle .8s ease-in-out infinite;pointer-events:none}.mascot[data-mood=thrilled] .mascot-flask:before{top:-8px;left:-4px;animation-delay:0s}.mascot[data-mood=thrilled] .mascot-flask:after{top:10px;right:-8px;animation-delay:.4s;font-size:11px}@keyframes sparkle{0%,to{opacity:0;transform:scale(.5) rotate(0)}50%{opacity:1;transform:scale(1.1) rotate(180deg)}}
