.roblox-landing{--bg:#18153e;--bg-deep:#0f0c2e;--bg-band:#1c1a45;--line:#5c6088;--line-soft:#5c608873;--fg:#fff;--fg-2:#c9c6e2;--fg-3:#9d99bf;--cyan:#75cdff;--gold:#ffc978;--gold-fg:#0a121d;--dot:#231f44;--card:linear-gradient(47deg,#ac6fdd1f -14.25%,#5d4e6700 50.88%),linear-gradient(355deg,#6f7edd4d -20.98%,#4e516700 82.69%),linear-gradient(159deg,#636a924d -5.77%,#545b8000 100.91%);--card-border:2px solid #5c60888c;--display:alfabet,var(--font-roboto),Roboto,system-ui,sans-serif;--ui:var(--font-roboto),Roboto,system-ui,sans-serif;--body:var(--font-roboto),Roboto,system-ui,sans-serif;--mono:var(--font-mono),ui-monospace,monospace;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}.roblox-landing *{box-sizing:border-box}.roblox-landing{background:var(--bg);color:var(--fg);font-family:var(--body);margin:0;font-size:16px;line-height:1.5}.roblox-landing .band{padding-block:80px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));border-top:1px solid var(--line-soft)}.roblox-landing .band.deep{background:var(--bg-deep);background-image:radial-gradient(70% 80% at 50% 40%,#0a082700 0%,#070724b3 100%),radial-gradient(var(--dot) 1.5px,transparent 1.5px);background-size:auto,22px 22px}.roblox-landing .band.cta{align-content:center;justify-items:center;min-height:min(42vh,340px);padding-block:80px 36px;display:grid}.roblox-landing .band.mid{background:var(--bg-band)}.roblox-landing .band.warp.faint:before{opacity:.41}.roblox-landing .band.warp{isolation:isolate;background-image:none;position:relative}.roblox-landing .band.warp:before{content:"";z-index:-1;pointer-events:none;opacity:.51;background:url(/warp-grid.svg) top/1600px 1000px no-repeat;position:absolute;inset:0;-webkit-mask:radial-gradient(50% 50%,#000 30%,#0000 100%) top/1600px 1000px no-repeat;mask:radial-gradient(50% 50%,#000 30%,#0000 100%) top/1600px 1000px no-repeat}.roblox-landing .wrap{max-width:1000px;margin-inline:auto}.roblox-landing .narrow{max-width:none}.roblox-landing .center{text-align:center;margin-inline:auto}.roblox-landing h1,.roblox-landing h2,.roblox-landing h3{text-wrap:balance;margin:0;line-height:1.1}.roblox-landing h1,.roblox-landing h2{font-family:var(--display);color:var(--fg);font-weight:700}.roblox-landing h1{letter-spacing:-.05em;max-width:14ch;font-size:clamp(36px,5vw,52px)}.roblox-landing h2{letter-spacing:-.05em;font-size:clamp(28px,3.4vw,36px)}.roblox-landing h3{font-family:var(--display);color:var(--gold);letter-spacing:-.05em;font-size:20px;font-weight:700}.roblox-landing .nw{white-space:nowrap}.roblox-landing p{text-wrap:pretty;orphans:2;widows:2;margin:0}.roblox-landing li,.roblox-landing dd,.roblox-landing figcaption,.roblox-landing blockquote p{text-wrap:pretty}.roblox-landing .kicker{max-width:none;font-family:var(--display);letter-spacing:.4em;text-transform:uppercase;color:var(--cyan);font-size:14px;font-weight:500}.roblox-landing .stack{gap:18px;display:grid}.roblox-landing .lead{color:var(--fg-2);max-width:66ch;font-size:18px;line-height:1.6}.roblox-landing .lead strong{color:var(--fg);font-weight:500}.roblox-landing .center .lead{margin-inline:auto}.roblox-landing .btns{flex-wrap:wrap;gap:12px;display:flex}.roblox-landing .center .btns{justify-content:center}.roblox-landing .btn{font-family:var(--ui);border:2px solid #0000;border-radius:999px;padding:12px 24px;font-size:14px;font-weight:600;line-height:1.2;text-decoration:none;display:inline-block}.roblox-landing .btn.primary{background:var(--gold);color:var(--gold-fg)}.roblox-landing .btn.ghost{color:var(--fg);border-color:var(--fg);background:#ffffff0d}.roblox-landing .btn:focus-visible,.roblox-landing a:focus-visible{outline:3px solid var(--cyan);outline-offset:3px}.roblox-landing .band a:not([class]){color:var(--cyan)}.roblox-landing .textlink{font-family:var(--ui);color:var(--cyan);font-size:17px;font-weight:600;text-decoration:none}.roblox-landing .meta{font-family:var(--ui);color:var(--fg-3);font-size:13px}.roblox-landing .hero-shell{position:relative;overflow:clip}.roblox-landing .hero{border-top:0;padding-block:8px 140px;position:relative;overflow:visible}.roblox-landing .hero-grid{margin-top:0}.roblox-landing .hero-copy{z-index:1;max-width:600px;position:relative}.roblox-landing .hero-def{color:var(--fg);margin-bottom:-12px;font-size:20px;font-weight:500;line-height:1.45}.roblox-landing .hero-body{color:var(--fg-2);max-width:54ch;font-size:16px;line-height:1.6}.roblox-landing .hero-body.hl{color:var(--fg);font-weight:500}.roblox-landing .hero-body.hl .blue{color:var(--cyan)}.roblox-landing .hero-art{z-index:0;pointer-events:none;width:min(60vw,820px);position:absolute;bottom:17px;right:max(10px,50% - 680px)}.roblox-landing .hero-art img{-webkit-mask-composite:source-in;width:100%;height:auto;display:block;-webkit-mask-image:linear-gradient(#000 32%,#00000073 62%,#00000014 84%,#0000 100%),linear-gradient(90deg,#0000 0%,#00000026 25%,#000000a6 44%,#000 60%);mask-image:linear-gradient(#000 32%,#00000073 62%,#00000014 84%,#0000 100%),linear-gradient(90deg,#0000 0%,#00000026 25%,#000000a6 44%,#000 60%);-webkit-mask-composite:source-in;mask-composite:intersect}.roblox-landing .what-grid{grid-template-columns:1.15fr .85fr;align-items:center;gap:56px;display:grid}.roblox-landing .codebox{gap:14px;min-width:0;margin:0;display:grid}.roblox-landing .game-ui{--ink:#0b1430;--edge:#33508c;font-family:var(--ui);isolation:isolate;border:2px solid var(--edge);box-shadow:0 4px 0 var(--ink),inset 0 1px 0 #ffffff1f;background:radial-gradient(220% 190% at 76% 84%,#6ea5ff61 0%,#5082eb2b 32%,#3c69d20d 55%,#0000 75%),linear-gradient(#1e3366 0%,#152550 100%);border-radius:18px;gap:14px;padding:20px 20px 22px;display:grid;position:relative;overflow:hidden}.roblox-landing .game-ui:before{content:"";z-index:-1;pointer-events:none;opacity:.55;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .9 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:absolute;inset:0;-webkit-mask-image:radial-gradient(220% 190% at 76% 84%,#000 0%,#0009 45%,#0003 80%);mask-image:radial-gradient(220% 190% at 76% 84%,#000 0%,#0009 45%,#0003 80%)}.roblox-landing .game-ui .title{font-family:var(--display);letter-spacing:.1em;text-transform:uppercase;color:#fff;text-shadow:0 2px #00000059;align-items:center;gap:8px;font-size:15px;font-weight:700;display:flex}.roblox-landing .game-ui .title .star{filter:drop-shadow(0 3px #c08a3a)drop-shadow(0 4px 6px #00000040);flex:none;width:28px;height:28px;margin-left:-6px;transform:rotate(-12deg)}.roblox-landing .game-ui{transform:rotate(-1deg)}.roblox-landing .game-ui .reset{border:1.5px solid var(--edge);width:30px;height:30px;color:var(--fg-2);cursor:pointer;opacity:0;visibility:hidden;background:#ffffff12;border-radius:9px;place-items:center;padding:0;transition:opacity .25s,transform .3s cubic-bezier(.34,1.56,.64,1),visibility 0s linear .25s,background-color .15s,color .15s;display:grid;position:absolute;top:14px;right:14px;transform:scale(.8)}.roblox-landing .codebox.is-armed.is-done .reset{opacity:1;visibility:visible;transition:opacity .25s .5s,transform .35s cubic-bezier(.34,1.56,.64,1) .5s,visibility,background-color .15s,color .15s;transform:none}.roblox-landing .game-ui .reset:hover{color:var(--fg);background:#ffffff24}.roblox-landing .game-ui .reset:hover svg{transform:rotate(-120deg)}.roblox-landing .game-ui .reset:active{transform:scale(.9)}.roblox-landing .game-ui .reset:focus-visible{outline:3px solid var(--cyan);outline-offset:2px}.roblox-landing .game-ui .reset svg{fill:none;stroke:currentColor;stroke-width:2.5px;stroke-linecap:round;stroke-linejoin:round;width:15px;height:15px;transition:transform .4s cubic-bezier(.22,1,.36,1)}.roblox-landing .game-ui .field{gap:10px;min-width:0;display:flex}.roblox-landing .game-ui .input{border:2px solid var(--edge);min-width:0;font-family:var(--mono);letter-spacing:.06em;color:#fff;background:#0c1736;border-radius:12px;flex:1;align-items:center;gap:2px;padding:11px 14px;font-size:17px;font-weight:500;transition:border-color .25s,box-shadow .25s;display:flex;box-shadow:inset 0 2px #00000059}.roblox-landing .game-ui .typed{white-space:pre}.roblox-landing .game-ui .caret{opacity:0;background:#fff;border-radius:2px;width:2px;height:1.1em}.roblox-landing .game-ui .status{place-items:center;width:24px;height:24px;margin-left:auto;display:grid}.roblox-landing .game-ui .status>*{grid-area:1/1}.roblox-landing .game-ui .spinner{border:2.5px solid #ffffff2e;border-top-color:var(--cyan);opacity:0;border-radius:999px;width:20px;height:20px}.roblox-landing .game-ui .check{color:#0b2a1a;opacity:0;background:#3ddc84;border-radius:999px;place-items:center;width:24px;height:24px;display:grid;transform:scale(0)}.roblox-landing .game-ui .check svg{fill:none;stroke:currentColor;stroke-width:3.5px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:0;width:14px;height:14px}.roblox-landing .game-ui .go{cursor:pointer;font:inherit;background:linear-gradient(180deg,#ffd593 0%,var(--gold) 100%);color:var(--gold-fg);text-transform:uppercase;letter-spacing:.06em;border:0;border-radius:12px;place-items:center;padding:0 20px;font-size:14px;font-weight:700;transition:transform .1s,box-shadow .1s;display:grid;position:relative;box-shadow:0 4px #c08a3a,inset 0 1px #ffffff80}.roblox-landing .game-ui .ok{font-family:var(--body);color:var(--fg-2);font-size:15px}.roblox-landing .game-ui .ok b{color:#5ee59b;font-weight:600}.roblox-landing .codebox figcaption{color:var(--fg-3);padding-top:4px;font-size:13px}.roblox-landing .game-ui .go:hover:not(:disabled){filter:brightness(1.06);transform:translateY(-2px);box-shadow:0 6px #c08a3a,inset 0 1px #ffffff80}.roblox-landing .game-ui .go:active:not(:disabled){transform:translateY(3px);box-shadow:0 1px #c08a3a,inset 0 1px #ffffff80}.roblox-landing .codebox.is-press .go{animation:.26s cubic-bezier(.3,0,.3,1) rl-btn-press}@keyframes rl-btn-press{0%,to{transform:none;box-shadow:0 4px #c08a3a,inset 0 1px #ffffff80}45%{transform:translateY(3px);box-shadow:0 1px #c08a3a,inset 0 1px #ffffff80}}.roblox-landing .game-ui .go:focus-visible{outline:3px solid var(--cyan);outline-offset:3px}.roblox-landing .game-ui .go:disabled{cursor:default}.roblox-landing .codebox.is-loading .spinner{opacity:1;animation:.7s linear infinite rl-spin}.roblox-landing .codebox.is-done .check{opacity:1;animation:.5s cubic-bezier(.34,1.56,.64,1) both rl-check-pop;transform:none}.roblox-landing .codebox.is-armed.is-done .check svg{animation:.35s .18s both rl-check-draw}@keyframes rl-spin{to{transform:rotate(360deg)}}@keyframes rl-check-pop{0%{opacity:0;transform:scale(0)rotate(-30deg)}60%{opacity:1;transform:scale(1.25)rotate(6deg)}80%{transform:scale(.92)rotate(-2deg)}to{opacity:1;transform:none}}@keyframes rl-check-draw{0%{stroke-dashoffset:1px}to{stroke-dashoffset:0}}.roblox-landing .codebox.is-typing .caret,.roblox-landing .codebox.is-ready .caret{opacity:1}.roblox-landing .codebox.is-ready .caret{animation:1.1s step-end infinite rl-caret-blink}.roblox-landing .game-ui .go:before,.roblox-landing .game-ui .go:after{content:"";border-radius:inherit;pointer-events:none;opacity:0;position:absolute;inset:0}.roblox-landing .codebox.is-ready .go:before,.roblox-landing .codebox.is-ready .go:after{animation:2.4s cubic-bezier(.2,.6,.35,1) infinite rl-apply-wave}.roblox-landing .codebox.is-ready .go:after{animation-delay:1.2s}.roblox-landing .codebox.is-armed .ok{opacity:0;transform:translateY(4px)}.roblox-landing .codebox.is-armed.is-done .ok{opacity:1;transition:opacity .35s .15s,transform .35s .15s;transform:none}@keyframes rl-caret-blink{0%,50%{opacity:1}50.01%,to{opacity:0}}@keyframes rl-apply-wave{0%{opacity:1;box-shadow:0 0 #ffc97880}to{opacity:1;box-shadow:0 0 0 14px #ffc97800}}.roblox-landing .game-ui .shine{border-radius:inherit;pointer-events:none;position:absolute;inset:0;overflow:hidden}.roblox-landing .game-ui .shine:before{content:"";background:linear-gradient(90deg,#0000,#fffc,#0000);width:45%;position:absolute;top:-30%;bottom:-30%;left:-70%;transform:skew(-20deg)}.roblox-landing .codebox.is-shine .shine:before{animation:.9s cubic-bezier(.4,0,.2,1) both rl-btn-shine}@keyframes rl-btn-shine{0%{left:-70%}to{left:130%}}.roblox-landing .codebox.is-bounce .go{animation:.7s cubic-bezier(.28,.84,.42,1) rl-apply-bounce}@keyframes rl-apply-bounce{0%,to{transform:translateY(0)}30%{transform:translateY(-6px)}55%{transform:translateY(0)}72%{transform:translateY(-2px)}}.roblox-landing .grid3{grid-template-columns:repeat(3,1fr);gap:28px;display:grid}.roblox-landing .grid2{grid-template-columns:1.4fr 1fr;align-items:start;gap:48px;display:grid}.roblox-landing .item{align-content:start;gap:10px;min-width:0;display:grid}.roblox-landing .item p{color:var(--fg-2);max-width:52ch;font-size:16px;line-height:1.6}.roblox-landing .icon{border-radius:10px;place-items:center;width:48px;height:48px;margin-bottom:6px;display:grid}.roblox-landing .icon svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:24px;height:24px}.roblox-landing .icon--malibu{color:#75cdff;background:#75cdff33}.roblox-landing .icon--rose{color:#f1a1ee;background:#f1a1ee33}.roblox-landing .icon--grandis{color:#ffd392;background:#ffd39233}.roblox-landing .item.row{grid-template-columns:40px 1fr;gap:6px 16px}.roblox-landing .item.row .icon{grid-row:span 2;width:40px;height:40px;margin:0}.roblox-landing .item.row .icon svg{width:20px;height:20px}.roblox-landing .item.row h3{align-self:center}.roblox-landing .item.inline{grid-template-rows:minmax(48px,auto) auto;grid-template-columns:40px 1fr;align-items:center;gap:10px 14px}.roblox-landing .item.inline .icon{width:40px;height:40px;margin:0}.roblox-landing .item.inline .icon svg{width:20px;height:20px}.roblox-landing .item.inline p{grid-column:1/-1}.roblox-landing .section-head{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:28px 40px;display:grid}@media (max-width:900px){.roblox-landing .section-head{grid-template-columns:1fr}.roblox-landing .promo-link{justify-self:start}}.roblox-landing .promo-link{min-width:300px;color:var(--fg);background:linear-gradient(135deg,#ffc97829 0%,#7869dc2e 60%,#7869dc14 100%),var(--bg-band);transition:transform .2s var(--ease-out,ease),box-shadow .2s ease,border-color .2s ease;border:2px solid #5c6088;border-radius:14px;align-items:center;gap:16px;margin-left:24px;padding:18px 20px 18px 96px;text-decoration:none;display:flex;position:relative;box-shadow:0 4px #141139}.roblox-landing .promo-art{background:linear-gradient(180deg,#ffe2ad 0%,var(--gold) 55%,#f2b456 100%);border-radius:22px;place-items:center;width:96px;height:96px;margin-top:-56px;transition:transform .3s cubic-bezier(.34,1.56,.64,1);display:grid;position:absolute;top:50%;left:-26px;transform:rotate(-10deg);box-shadow:0 6px #c08a3a,0 14px 24px -8px #00000080,inset 0 2px #ffffff8c}.roblox-landing .promo-art svg{fill:none;width:48px;height:48px;stroke:var(--gold-fg);stroke-width:2px;stroke-linecap:round;stroke-linejoin:round}.roblox-landing .promo-text{gap:2px;display:grid}.roblox-landing .promo-title{font-family:var(--display);letter-spacing:-.02em;font-size:18px;font-weight:700;line-height:1.2}.roblox-landing .promo-sub{color:var(--fg-2);font-size:14px}.roblox-landing .promo-arrow{width:36px;height:36px;color:var(--cyan);transition:transform .2s var(--ease-out,ease),background-color .2s ease;background:#ffffff14;border-radius:999px;place-items:center;margin-left:auto;display:grid}.roblox-landing .promo-arrow svg{fill:none;stroke:currentColor;stroke-width:2.5px;stroke-linecap:round;stroke-linejoin:round;width:18px;height:18px}.roblox-landing .promo-link:hover{border-color:#7a7fae;transform:translateY(-2px);box-shadow:0 6px #141139}.roblox-landing .promo-link:hover .promo-art{transform:rotate(-14deg)scale(1.06)}.roblox-landing .promo-link:hover .promo-arrow{background:#75cdff29;transform:translate(3px)}.roblox-landing .promo-link:active{transition-duration:60ms;transform:translateY(2px);box-shadow:0 2px #141139}.roblox-landing .promo-link:focus-visible{outline:3px solid var(--cyan);outline-offset:4px}@media (max-width:620px){.roblox-landing .promo-link{width:calc(100% - 24px);min-width:0}}.roblox-landing .feature{border:var(--card-border);background:var(--card);border-radius:12px;padding:28px 26px}.roblox-landing .feature p{color:var(--fg)}.roblox-landing .steps{counter-reset:s;grid-template-columns:repeat(4,1fr);gap:48px 20px;margin:0;padding:28px 0 0;list-style:none;display:grid}.roblox-landing .steps li{counter-increment:s;border:var(--card-border);background:var(--card);border-radius:12px;align-content:start;gap:10px;min-width:0;padding:34px 22px 24px;display:grid;position:relative}.roblox-landing .steps li:before{content:counter(s,decimal-leading-zero);font-family:var(--display);letter-spacing:-.04em;color:#ffe9c4;text-shadow:0 0 3px var(--bg-deep),0 0 6px var(--bg-deep),0 0 10px var(--bg-deep);font-size:44px;font-weight:300;line-height:1;position:absolute;top:-30px;left:20px}.roblox-landing .steps p{color:var(--fg-2);font-size:15px}.roblox-landing .steps code,.roblox-landing .faq code,.roblox-landing .item code,.roblox-landing .facts code{font-family:var(--mono);color:var(--cyan);overflow-wrap:anywhere;font-size:.9em}.roblox-landing .sample{gap:10px;min-width:0;margin:0;display:grid}.roblox-landing .sample figcaption{color:var(--fg-3);font-size:14px}.roblox-landing .tabs{grid-template-areas:"labels""panel""note";gap:14px;min-width:0;display:grid;overflow-x:clip}.roblox-landing .tab-labels{border-bottom:1px solid var(--line-soft);flex-wrap:wrap;grid-area:labels;align-items:center;gap:4px;display:flex}.roblox-landing .tab-labels .tab{font-family:var(--ui);color:var(--fg-3);cursor:pointer;border-bottom:2px solid #0000;margin-bottom:-1px;padding:10px 12px;font-size:14px;font-weight:500;transition:color .2s;position:relative}.roblox-landing .tab-labels .tab:hover{color:var(--fg)}.roblox-landing .tabs>.note{color:var(--fg-2);grid-area:note}.roblox-landing .tabs .codeblock{white-space:pre-wrap;overflow-wrap:anywhere;background:0 0;border-color:#0000;height:320px;font-size:12.5px;position:relative;overflow:hidden}.roblox-landing .tabs .codeblock.is-clipped:after{content:"";pointer-events:none;background:linear-gradient(#07061e00,#07061eeb 70%,#07061efa);border-radius:0 0 14px 14px;height:64px;position:absolute;bottom:0;left:0;right:0}.roblox-landing .tabs:before{content:"";border:1.5px solid var(--line-soft);background:#07061ed9;border-radius:16px;grid-area:panel;align-self:start;height:320px}.roblox-landing .codeblock{scrollbar-width:thin;scrollbar-color:var(--line) transparent}.roblox-landing .codeblock::-webkit-scrollbar{width:10px;height:10px}.roblox-landing .codeblock::-webkit-scrollbar-track{background:0 0}.roblox-landing .codeblock::-webkit-scrollbar-thumb{background:var(--line);background-clip:padding-box;border:3px solid #0000;border-radius:999px}.roblox-landing .codeblock::-webkit-scrollbar-thumb:hover{background:var(--fg-3);background-clip:padding-box}.roblox-landing .codeblock::-webkit-scrollbar-corner{background:0 0}.roblox-landing .tabs .panel{visibility:hidden;pointer-events:none;z-index:0;grid-area:panel;align-content:start;display:grid}.roblox-landing .tabs .panel code{opacity:0;display:block}.roblox-landing .tabs .panel figcaption{opacity:0;transition:opacity .3s}.roblox-landing .tab-labels .tab.is-active{color:var(--fg);border-bottom-color:var(--gold)}.roblox-landing .tabs .panel.is-active,.roblox-landing .tabs .panel.is-exiting{visibility:visible}.roblox-landing .tabs .panel.is-active{pointer-events:auto;z-index:2}.roblox-landing .tabs .panel.is-exiting{pointer-events:none;z-index:1}.roblox-landing .tabs .panel.is-active code{opacity:1;transform:none}.roblox-landing .tabs .panel.is-active figcaption{opacity:1;transition:opacity .35s .12s}@keyframes rl-code-out-left{0%{opacity:1;transform:none}to{opacity:0;transform:translate(-28px)}}@keyframes rl-code-out-right{0%{opacity:1;transform:none}to{opacity:0;transform:translate(28px)}}@keyframes rl-code-in-from-right{0%{opacity:0;transform:translate(28px)}to{opacity:1;transform:none}}@keyframes rl-code-in-from-left{0%{opacity:0;transform:translate(-28px)}to{opacity:1;transform:none}}.roblox-landing .tabs.is-sliding[data-dir="1"] .panel.is-exiting code{animation:.4s forwards rl-code-out-left}.roblox-landing .tabs.is-sliding[data-dir="1"] .panel.is-active code{animation:.4s both rl-code-in-from-right}.roblox-landing .tabs.is-sliding[data-dir="-1"] .panel.is-exiting code{animation:.4s forwards rl-code-out-right}.roblox-landing .tabs.is-sliding[data-dir="-1"] .panel.is-active code{animation:.4s both rl-code-in-from-left}.roblox-landing .tab-labels .tab:focus-visible{outline:3px solid var(--cyan);outline-offset:2px;border-radius:4px}.roblox-landing .tabs.is-rotating .tab-labels .tab.is-active{border-bottom-color:var(--line)}.roblox-landing .tabs.is-rotating .tab-labels .tab.is-active:after{content:"";background:var(--gold);transform-origin:0;height:2px;animation:9s linear forwards rl-tab-timer;position:absolute;bottom:-2px;left:0;right:0}.roblox-landing .tabs.is-paused .tab-labels .tab:after{animation-play-state:paused!important}@keyframes rl-tab-timer{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.roblox-landing .tab-controls{gap:2px;margin-left:auto;display:flex}.roblox-landing .tab-ctl{width:32px;height:32px;color:var(--fg-3);cursor:pointer;background:0 0;border:0;border-radius:8px;place-items:center;transition:color .15s,background .15s;display:grid}.roblox-landing .tab-ctl:disabled{cursor:default;opacity:.5}.roblox-landing .tab-ctl:hover:not(:disabled){color:var(--fg);background:#ffffff0f}.roblox-landing .tab-ctl:focus-visible{outline:3px solid var(--cyan);outline-offset:1px}.roblox-landing .tab-ctl svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:16px;height:16px}.roblox-landing .tab-ctl svg.solid{fill:currentColor;stroke:currentColor;stroke-width:1px}@media (prefers-reduced-motion:reduce){.roblox-landing .tabs .panel,.roblox-landing .tabs .panel code,.roblox-landing .tabs .panel figcaption{transition:none!important;animation:none!important;transform:none!important}}.roblox-landing .codeblock{border:1.5px solid var(--line-soft);color:#e6e3ff;font-family:var(--mono);white-space:pre;tab-size:2;background:#07061ed9;border-radius:16px;min-width:0;margin:0;padding:20px 22px;font-size:13px;line-height:1.6;overflow-x:auto}.roblox-landing .codeblock .c{color:var(--fg-3)}.roblox-landing .codeblock .k{color:var(--gold)}.roblox-landing .codeblock .s{color:var(--cyan)}.roblox-landing .note{color:var(--fg-3);max-width:68ch;font-size:15px}.roblox-landing .stat{font-family:var(--display);letter-spacing:-.05em;color:var(--fg);font-size:clamp(44px,6vw,64px);font-weight:700;line-height:1}.roblox-landing .stat small{font-family:var(--ui);letter-spacing:.08em;text-transform:uppercase;color:var(--cyan);margin-top:10px;font-size:14px;font-weight:600;display:block}.roblox-landing .facts{border:var(--card-border);background:var(--card);border-radius:12px;grid-template-columns:repeat(2,1fr);margin:0;display:grid;overflow:hidden}.roblox-landing .facts div{border-bottom:1px solid var(--line-soft);gap:4px;min-width:0;padding:20px 24px;display:grid}.roblox-landing .facts div:nth-child(odd){border-right:1px solid var(--line-soft)}.roblox-landing .facts div:nth-last-child(-n+2){border-bottom:0}.roblox-landing .facts dt{font-family:var(--display);letter-spacing:.12em;text-transform:uppercase;color:var(--cyan);font-size:13px;font-weight:500}.roblox-landing .facts dd{color:var(--fg);margin:0;font-size:16px}.roblox-landing .faq{border-top:1px solid var(--line-soft);gap:0;display:grid}.roblox-landing .faq details{border-bottom:1px solid var(--line-soft);padding-block:8px}.roblox-landing .faq summary{cursor:pointer;justify-content:space-between;align-items:center;gap:16px;padding:20px 0;list-style:none;display:flex}.roblox-landing .faq summary::-webkit-details-marker{display:none}.roblox-landing .faq summary:after{content:"+";font-family:var(--body);color:var(--cyan);flex:none;font-size:26px;line-height:1;transition:transform .15s}.roblox-landing .faq details[open] summary:after{transform:rotate(45deg)}.roblox-landing .faq summary:focus-visible{outline:3px solid var(--cyan);outline-offset:4px;border-radius:4px}.roblox-landing .faq details>p{padding:0 40px 22px 0}.roblox-landing .faq h3{font-size:18px}.roblox-landing .faq p{color:var(--fg-2);max-width:68ch;line-height:1.6}.roblox-landing .quotes{grid-template-columns:repeat(2,1fr);gap:24px;display:grid}.roblox-landing blockquote{border:var(--card-border);background:var(--card);border-radius:12px;align-content:space-between;gap:22px;min-width:0;margin:0;padding:24px;display:grid}.roblox-landing blockquote p{font-family:var(--ui);color:var(--fg-2);font-size:16px;font-style:italic;line-height:1.55}.roblox-landing blockquote footer{font-family:var(--ui);color:var(--gold);font-size:14px;font-style:italic}.roblox-landing blockquote footer b{color:var(--fg);font-style:normal;font-weight:700;display:block}@media (max-width:900px){.roblox-landing .what-grid{grid-template-columns:1fr}.roblox-landing .hero{padding-bottom:0}.roblox-landing .hero-art{width:auto;max-width:480px;margin:16px auto 0;position:relative;bottom:auto;right:auto;transform:translate(-6%)}.roblox-landing .hero-art img{-webkit-mask-image:linear-gradient(#000 45%,#0000 100%);mask-image:linear-gradient(#000 45%,#0000 100%)}.roblox-landing .grid3,.roblox-landing .steps{grid-template-columns:1fr 1fr}}@media (max-width:620px){.roblox-landing .band{padding-block:56px}.roblox-landing .hero{padding-block:8px 0}.roblox-landing .grid3,.roblox-landing .grid2,.roblox-landing .quotes,.roblox-landing .steps,.roblox-landing .facts{grid-template-columns:1fr}.roblox-landing .facts div:nth-child(odd){border-right:0}.roblox-landing .facts div:nth-last-child(2){border-bottom:1px solid var(--line-soft)}.roblox-landing .kicker{letter-spacing:.25em}}.roblox-landing{--ease-out:cubic-bezier(.22,1,.36,1);interpolate-size:allow-keywords}.roblox-landing .btn{transition:transform .18s var(--ease-out),filter .18s ease,background-color .18s ease,box-shadow .18s ease}.roblox-landing .btn.primary:hover{filter:brightness(1.06);box-shadow:0 6px 20px -8px #ffc9788c}.roblox-landing .btn.ghost:hover{background:#ffffff1f}.roblox-landing .btn:hover{transform:translateY(-1px)}.roblox-landing .btn:active{filter:brightness(.97);box-shadow:none;transition-duration:60ms;transform:translateY(0)scale(.98)}.roblox-landing .textlink,.roblox-landing .faq a,.roblox-landing .note a,.roblox-landing .sample figcaption a,.roblox-landing .facts a,.roblox-landing .tabs>.note a{text-underline-offset:3px;-webkit-text-decoration:underline #0000;text-decoration:underline #0000;transition:text-decoration-color .2s,color .15s}.roblox-landing .textlink:hover,.roblox-landing .faq a:hover,.roblox-landing .note a:hover,.roblox-landing .sample figcaption a:hover,.roblox-landing .facts a:hover,.roblox-landing .tabs>.note a:hover{text-decoration-color:currentColor}.roblox-landing .textlink:after{content:" →";transition:transform .2s var(--ease-out);display:inline-block}.roblox-landing .textlink:hover:after{transform:translate(3px)}.roblox-landing .tab-labels .tab:active{color:var(--fg);transform:translateY(1px)}.roblox-landing .tab-ctl:active{background:#ffffff1a;transition-duration:60ms;transform:scale(.9)}.roblox-landing .faq summary{border-radius:10px;margin-inline:-14px;padding-inline:14px;transition:background-color .15s}.roblox-landing .faq summary h3{transition:color .15s}.roblox-landing .faq summary:hover{background:#ffffff09}.roblox-landing .faq summary:hover h3{color:#ffd9a3}.roblox-landing .faq summary:hover:after{color:var(--fg)}.roblox-landing .faq summary:active{background:#ffffff0f}.roblox-landing .faq summary:after{transition:transform .25s var(--ease-out),color .15s ease}.roblox-landing .faq details::details-content{block-size:0;transition:block-size .3s var(--ease-out),content-visibility .3s allow-discrete;overflow:hidden}.roblox-landing .faq details[open]::details-content{block-size:auto}.roblox-landing .faq details[open]>p{animation:rl-faq-in .3s var(--ease-out) both}@keyframes rl-faq-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}.roblox-landing[data-reveal-root] [data-reveal]{opacity:0;transition:opacity .6s var(--ease-out),transform .6s var(--ease-out);transform:translateY(14px)}.roblox-landing[data-reveal-root] [data-reveal=in]{opacity:1;transform:none}.roblox-landing[data-reveal-root] .steps [data-reveal]:nth-child(2),.roblox-landing[data-reveal-root] .grid3 [data-reveal]:nth-child(2){transition-delay:60ms}.roblox-landing[data-reveal-root] .steps [data-reveal]:nth-child(3),.roblox-landing[data-reveal-root] .grid3 [data-reveal]:nth-child(3){transition-delay:.12s}.roblox-landing[data-reveal-root] .steps [data-reveal]:nth-child(4),.roblox-landing[data-reveal-root] .grid3 [data-reveal]:nth-child(4){transition-delay:.18s}.roblox-landing[data-reveal-root] .grid3 [data-reveal]:nth-child(5){transition-delay:.24s}.roblox-landing[data-reveal-root] .grid3 [data-reveal]:nth-child(6){transition-delay:.3s}@media (prefers-reduced-motion:reduce){.roblox-landing *,.roblox-landing :before,.roblox-landing :after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.roblox-landing .tabs.is-rotating .tab-labels .tab.is-active:after{animation:none!important}.roblox-landing[data-reveal-root] [data-reveal]{opacity:1;transform:none}.roblox-landing .btn:hover,.roblox-landing .btn:active{transform:none}}.roblox-landing .tab-labels .tab{appearance:none;background-color:#0000;border-top:0;border-left:0;border-right:0;margin-top:0}.roblox-landing .tab-ctl{appearance:none;border:0}.roblox-landing .game-ui .reset,.roblox-landing .game-ui .go{appearance:none}
