/* =============================================================
   DOUBLE WORLD — design system
   ============================================================= */
*{box-sizing:border-box}
[hidden]{display:none !important}

:root{
  --radius:20px;
  --font-display:"Archivo Black","Arial Black",Impact,system-ui,sans-serif;
  --font-body:"Outfit",system-ui,-apple-system,Segoe UI,sans-serif;
  --ease-spring:cubic-bezier(.34,1.56,.64,1);
  --ease-out:cubic-bezier(.22,1,.36,1);
}

body[data-world="neutral"]{
  --bg:#070A18;--fg:#FFFFFF;--muted:rgba(255,255,255,.68);
  --accent:#9BE564;--accent2:#2A6BFF;--accent3:#FFC93C;--accent4:#FF4D9D;
  --surface:rgba(255,255,255,.07);--line:rgba(255,255,255,.16);
}
body[data-world="roblox"]{
  --bg:#0A1130;--fg:#FFFFFF;--muted:rgba(255,255,255,.7);
  --accent:#9BE564;--accent2:#2A6BFF;--accent3:#FFC93C;--accent4:#FF4D9D;
  --surface:rgba(255,255,255,.07);--line:rgba(255,255,255,.18);
}
body[data-world="pc"]{
  --bg:#FFF4E4;--fg:#3A2A22;--muted:rgba(58,42,34,.72);
  --accent:#E4784B;--accent2:#7CC36B;--accent3:#8FD3F4;--accent4:#B79BE0;
  --surface:rgba(255,255,255,.72);--line:rgba(58,42,34,.16);
}

html{scroll-behavior:smooth}
body{
  margin:0;background:var(--bg);color:var(--fg);
  font-family:var(--font-body);font-size:16px;line-height:1.55;
  overflow-x:hidden;
  transition:background .7s var(--ease-out),color .5s var(--ease-out);
}
body.lock{overflow:hidden}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit}
code{font-family:Menlo,Consolas,monospace;font-size:.88em;background:var(--surface);padding:2px 6px;border-radius:6px}
ul{padding-left:20px}
li{margin:6px 0;color:var(--muted)}

/* ---------- ambient background ---------- */
.bg-stage{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden}
.bg-grid{position:absolute;inset:-10%;opacity:.16;
  background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);
  background-size:64px 64px;mask-image:radial-gradient(circle at 50% 40%,#000 30%,transparent 78%)}
.bg-blob{position:absolute;width:52vw;height:52vw;border-radius:50%;filter:blur(90px);opacity:.34;
  animation:drift 26s ease-in-out infinite alternate}
.bg-blob.b1{background:var(--accent2);left:-14vw;top:-12vw}
.bg-blob.b2{background:var(--accent);right:-16vw;bottom:-18vw;animation-duration:34s}
body[data-world="pc"] .bg-blob{opacity:.5}
@keyframes drift{to{transform:translate3d(8vw,6vh,0) scale(1.15)}}
#particles{position:absolute;inset:0;width:100%;height:100%}

/* ---------- custom cursor ---------- */
#cursor{display:none}
body.cursor-ready #cursor{display:block;position:fixed;inset:0;z-index:999;pointer-events:none}
body.cursor-ready,body.cursor-ready a,body.cursor-ready button{cursor:none}
.cursor-ring{position:absolute;top:0;left:0;width:34px;height:34px;border:2px solid var(--accent);border-radius:99px;
  display:grid;place-items:center;transition:width .3s var(--ease-spring),height .3s var(--ease-spring),background .3s,border-radius .3s}
.cursor-label{font:700 10px/1 var(--font-body);letter-spacing:.14em;color:#08122B;opacity:0;white-space:nowrap;transition:opacity .2s}
.cursor-dot{position:absolute;top:0;left:0;width:8px;height:8px;border-radius:50%;background:var(--accent)}
#cursor.is-active .cursor-ring{width:auto;min-width:96px;height:34px;padding:0 14px;background:var(--accent);border-radius:99px}
#cursor.is-active .cursor-label{opacity:1}
#cursor.is-active .cursor-dot{opacity:0}
#cursor.is-down .cursor-ring{transform:scale(.85)}

/* ---------- page transition curtain ---------- */
#curtain{position:fixed;inset:0;z-index:900;pointer-events:none;display:grid;place-items:center;visibility:hidden}
#curtain.is-on{visibility:visible}
.curtain-panel{position:absolute;inset:0;background:linear-gradient(120deg,var(--accent2),var(--accent));
  transform:scaleY(0);transform-origin:bottom;transition:transform .62s var(--ease-out)}
#curtain.is-on .curtain-panel{transform:scaleY(1)}
#curtain.is-out .curtain-panel{transform-origin:top;transform:scaleY(0);transition-duration:.7s}
#curtain-word{position:relative;font-family:var(--font-display);font-size:clamp(2rem,7vw,5rem);color:#08122B;
  letter-spacing:-.02em;opacity:0;transform:translateY(24px) scale(.94);transition:all .5s .12s var(--ease-spring)}
#curtain.is-on #curtain-word{opacity:1;transform:none}
#curtain.is-out #curtain-word{opacity:0;transform:translateY(-20px)}

/* ---------- scroll progress ---------- */
.scroll-xp{position:fixed;left:0;top:0;height:5px;width:100%;z-index:800;background:rgba(127,127,127,.18)}
#xp-fill{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--accent),var(--accent3));
  box-shadow:0 0 14px var(--accent);transition:width .1s linear}

/* ---------- navigation ---------- */
.nav{position:fixed;top:14px;left:50%;transform:translateX(-50%);width:min(1320px,94vw);z-index:700;
  display:flex;align-items:center;gap:20px;padding:12px 16px;border-radius:99px;
  background:var(--surface);border:1px solid var(--line);backdrop-filter:blur(14px);
  transition:transform .45s var(--ease-out),background .6s,border-color .6s,box-shadow .4s}
body[data-world="pc"] .nav{box-shadow:0 10px 0 rgba(58,42,34,.08),0 18px 40px rgba(58,42,34,.12);border-radius:26px}
.nav.hide{transform:translateX(-50%) translateY(-140%)}
.brand{display:flex;align-items:center;gap:10px;font-family:var(--font-display);letter-spacing:-.01em;font-size:1.05rem}
.brand img{border-radius:10px}
.brand em{font-style:normal;color:var(--accent)}
.nav-links{display:flex;gap:22px;margin:0 auto}
.nav-links a{position:relative;font-weight:600;color:var(--muted);padding:6px 2px;transition:color .25s}
.nav-links a::after{content:"";position:absolute;left:0;right:100%;bottom:0;height:2px;background:var(--accent);transition:right .3s var(--ease-out)}
.nav-links a:hover,.nav-links a.active{color:var(--fg)}
.nav-links a:hover::after,.nav-links a.active::after{right:0}
.nav-right{display:flex;align-items:center;gap:10px}
.ws-pill{display:flex;padding:4px;gap:2px;border-radius:99px;background:rgba(127,127,127,.18);border:1px solid var(--line)}
.ws-pill button{border:0;background:transparent;color:var(--muted);font-weight:800;font-size:.72rem;letter-spacing:.12em;
  padding:9px 16px;border-radius:99px;cursor:pointer;white-space:nowrap;transition:all .4s var(--ease-spring)}
.ws-pill button.on{background:var(--accent);color:#08122B;transform:scale(1.02)}
body[data-world="pc"] .ws-pill button.on{color:#fff}
.icon-btn{width:44px;height:44px;min-width:44px;display:grid;place-items:center;border-radius:50%;
  border:1px solid var(--line);background:transparent;color:var(--fg);font-weight:700;cursor:pointer;transition:all .3s var(--ease-spring)}
.icon-btn:hover{background:var(--accent);color:#08122B;transform:translateY(-2px) rotate(-4deg)}
#sound-toggle[aria-pressed="true"]{background:var(--accent);color:#08122B}
.burger{display:none;flex-direction:column;gap:4px}
.burger span{width:18px;height:2px;background:currentColor;border-radius:2px}
.mobile-menu{position:fixed;inset:0;z-index:750;background:var(--bg);display:grid;align-content:center;justify-items:center;gap:22px}
.mobile-menu a{font-family:var(--font-display);font-size:2rem}

/* ---------- layout ---------- */
main{position:relative;z-index:1}
.wrap{width:min(1200px,92vw);margin:0 auto}
.stack>*+*{margin-top:18px}
.section{position:relative;padding:clamp(70px,10vw,130px) 0}
.row{display:flex;flex-wrap:wrap;gap:14px;align-items:center}
.eyebrow{display:inline-block;font-size:.74rem;font-weight:800;letter-spacing:.24em;color:var(--accent);
  border:1px solid var(--line);border-radius:99px;padding:8px 16px}
.h-mega{font-family:var(--font-display);font-size:clamp(3rem,12vw,9rem);line-height:.86;letter-spacing:-.03em;margin:8px 0}
.h-big{font-family:var(--font-display);font-size:clamp(1.9rem,5vw,3.6rem);line-height:1;letter-spacing:-.02em;margin:0}
.h-mid{font-family:var(--font-display);font-size:clamp(1.15rem,2.4vw,1.6rem);letter-spacing:-.01em;margin:0}
.outline-text{-webkit-text-stroke:2px var(--fg);color:transparent}
.lede{font-size:clamp(1.02rem,1.5vw,1.28rem);color:var(--muted);max-width:60ch;margin:0}
.small{font-size:.94rem;color:var(--muted);margin:0}
.note{font-size:.88rem;color:var(--muted);border-left:3px solid var(--accent);padding:10px 14px;background:var(--surface);border-radius:0 12px 12px 0}

/* ---------- reveals ---------- */
.rv{opacity:0;transform:translateY(34px);transition:opacity .7s var(--ease-out),transform .7s var(--ease-out)}
.rv.in{opacity:1;transform:none}
.rv-d1{transition-delay:.09s}.rv-d2{transition-delay:.18s}.rv-d3{transition-delay:.27s}.rv-d4{transition-delay:.36s}
.word-rv span{display:inline-block;opacity:0;transform:translateY(60%) rotate(4deg);
  transition:opacity .6s var(--ease-out),transform .8s var(--ease-spring)}
.word-rv.in span{opacity:1;transform:none}
.word-rv.in span:nth-child(2){transition-delay:.1s}
.word-rv.in span:nth-child(3){transition-delay:.2s}

/* ---------- buttons ---------- */
.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:8px;
  min-height:52px;padding:14px 28px;border:0;border-radius:99px;overflow:hidden;cursor:pointer;
  font-weight:800;font-size:.84rem;letter-spacing:.12em;text-transform:uppercase;
  background:var(--accent);color:#08122B;box-shadow:0 6px 0 rgba(0,0,0,.22);
  transition:transform .25s var(--ease-spring),box-shadow .25s,background .3s}
body[data-world="pc"] .btn{color:#fff}
.btn:hover{box-shadow:0 10px 0 rgba(0,0,0,.22)}
.btn:active{transform:translateY(4px) scale(.97) !important;box-shadow:0 2px 0 rgba(0,0,0,.22)}
.btn.alt{background:var(--accent2);color:#fff}
.btn.ghost{background:transparent;color:var(--fg);border:2px solid var(--line);box-shadow:none}
.btn.ghost:hover{border-color:var(--accent);color:var(--accent)}
.btn.big{min-height:64px;padding:18px 40px;font-size:1rem}
.btn .shine{position:absolute;top:0;left:-120%;width:60%;height:100%;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.45),transparent);transform:skewX(-20deg)}
.btn:hover .shine{animation:shine .8s var(--ease-out)}
@keyframes shine{to{left:140%}}

/* ---------- badges, stickers, marquee ---------- */
.badge{display:inline-block;font-size:.66rem;font-weight:800;letter-spacing:.14em;padding:6px 11px;border-radius:99px;
  background:var(--accent);color:#08122B}
body[data-world="pc"] .badge{color:#fff}
.badge.gray{background:rgba(127,127,127,.28);color:var(--fg)}
.badge.tag{background:transparent;border:1px solid var(--line);color:var(--muted)}
.sticker{position:absolute;z-index:4;font-family:var(--font-display);font-size:.72rem;letter-spacing:.12em;
  padding:10px 16px;border-radius:99px;transform:rotate(-8deg);box-shadow:0 8px 20px rgba(0,0,0,.25)}
.marquee{overflow:hidden;border-block:2px solid var(--line);padding:16px 0;transform:rotate(-1.2deg);background:var(--surface)}
.marquee-track{display:flex;width:max-content;gap:0;animation:slide 28s linear infinite}
.marquee.rev .marquee-track{animation-direction:reverse}
.marquee span{display:flex;align-items:center;font-family:var(--font-display);font-size:clamp(1.4rem,3.4vw,2.6rem);
  letter-spacing:-.01em;white-space:nowrap;color:var(--fg)}
.marquee i{display:inline-block;width:16px;height:16px;border-radius:50%;background:var(--accent);margin:0 26px}
@keyframes slide{to{transform:translateX(-50%)}}

/* ---------- floating props ---------- */
.prop{position:absolute;z-index:2;pointer-events:none;will-change:transform;filter:drop-shadow(0 18px 24px rgba(0,0,0,.28))}
.bob{animation:bob 6s ease-in-out infinite}
.bob2{animation:bob2 8s ease-in-out infinite}
.spin{animation:spin 18s linear infinite}
@keyframes bob{50%{transform:translateY(-16px) rotate(4deg)}}
@keyframes bob2{50%{transform:translateY(-24px) rotate(-6deg)}}
@keyframes spin{to{transform:rotate(360deg)}}
.breakout{position:absolute;z-index:5}

/* ---------- split gate ---------- */
.gate{position:relative;display:flex;height:100vh;min-height:560px;overflow:hidden}
.gate-side{position:relative;flex:1 1 50%;overflow:hidden;cursor:pointer;
  transition:flex-grow .8s var(--ease-out),filter .6s}
.gate-left{background:radial-gradient(120% 90% at 30% 90%,#2A6BFF 0%,#101C4D 55%,#0A1130 100%)}
.gate-right{background:radial-gradient(120% 90% at 70% 90%,#FFD9AE 0%,#F7C094 50%,#F2A97C 100%)}
.gate.hot-left .gate-left{flex-grow:1.28}
.gate.hot-left .gate-right{flex-grow:.76;filter:saturate(.7) brightness(.94)}
.gate.hot-right .gate-right{flex-grow:1.28}
.gate.hot-right .gate-left{flex-grow:.76;filter:saturate(.7) brightness(.86)}
.gate-layer{position:absolute;inset:0;will-change:transform}
.gate-inner{position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);z-index:3;text-align:center;padding:0 18px}
.gate-kicker{font-size:.72rem;font-weight:800;letter-spacing:.32em;color:rgba(255,255,255,.72)}
.gate-title{font-family:var(--font-display);font-size:clamp(2.4rem,6.4vw,6rem);line-height:.9;letter-spacing:-.03em;
  color:#fff;transition:transform .6s var(--ease-spring);text-shadow:0 14px 40px rgba(0,0,0,.28)}
.gate-right .gate-title{color:#3A2A22;text-shadow:0 14px 34px rgba(58,42,34,.22)}
.gate.hot-left .gate-left .gate-title,.gate.hot-right .gate-right .gate-title{transform:scale(1.1)}
.gate-sub{margin-top:10px;font-size:.78rem;font-weight:700;letter-spacing:.2em;color:rgba(255,255,255,.82);text-transform:uppercase}
.gate-right .gate-sub{color:rgba(58,42,34,.78)}
.gate-enter{display:inline-block;margin-top:26px;padding:14px 30px;min-height:48px;border-radius:99px;border:2px solid #9BE564;
  color:#fff;font-weight:800;font-size:.78rem;letter-spacing:.18em;transition:all .4s var(--ease-spring)}
.gate-right .gate-enter{border-color:#E4784B;color:#3A2A22}
.gate.hot-left .gate-left .gate-enter{background:#9BE564;color:#08122B}
.gate.hot-right .gate-right .gate-enter{background:#E4784B;color:#fff}
.gate-head{position:absolute;top:5vh;left:0;right:0;z-index:6;text-align:center;pointer-events:none}
.gate-head h1{font-family:var(--font-display);font-size:clamp(1.7rem,5vw,3.6rem);margin:0;color:#F5E6A8;
  mix-blend-mode:difference;letter-spacing:-.02em}
.gate-head p{margin:6px 0 0;font-size:.74rem;font-weight:700;letter-spacing:.24em;color:#F5E6A8;mix-blend-mode:difference;text-transform:uppercase}
.gate-seam{position:absolute;left:50%;top:0;bottom:0;width:2px;background:rgba(255,255,255,.35);z-index:5;transform:translateX(-1px)}
.gate-skip{position:absolute;bottom:22px;left:0;right:0;z-index:6;text-align:center;font-size:.7rem;font-weight:700;
  letter-spacing:.2em;color:#FFC93C;text-transform:uppercase;mix-blend-mode:difference;pointer-events:none}
.gate-zoom{animation:gatezoom .62s var(--ease-out) forwards}
@keyframes gatezoom{to{transform:scale(1.35);filter:blur(6px)}}
.cloud{position:absolute;background:#fff;border-radius:99px;opacity:.75;filter:blur(.4px);
  box-shadow:34px -18px 0 -6px #fff,-34px -12px 0 -10px #fff}

/* ---------- cinematic home gate ---------- */
.gate{isolation:isolate;height:100svh;min-height:620px;background:#071126}
.gate-header{position:absolute;inset:0 0 auto;z-index:10;height:110px;display:grid;grid-template-columns:1fr auto 1fr;align-items:start;
  padding:24px clamp(24px,5vw,72px);color:#fff;pointer-events:none}
.gate-header a{pointer-events:auto}
.gate-links,.gate-socials{display:flex;align-items:center;gap:clamp(16px,3vw,42px);padding-top:8px}
.gate-links a{font-size:.68rem;font-weight:800;letter-spacing:.1em;text-shadow:0 2px 12px #071126;transition:color .2s}
.gate-links a:hover,.gate-socials a:hover{color:#ffd24b}
.gate-brand{display:flex;align-items:center;justify-self:center;gap:9px;font-family:var(--font-display);font-size:1.42rem;line-height:.84;letter-spacing:-.04em;
  text-align:center;text-shadow:0 3px 18px rgba(0,0,0,.28)}
.gate-brand svg{position:absolute;top:-17px;width:34px;height:22px}
.gate-brand span{padding-top:7px}
.gate-brand small{display:block;margin-top:5px;font:700 .6rem/1 var(--font-body);letter-spacing:.28em}
.gate-socials{justify-self:end;gap:20px}
.gate-socials a{display:grid;place-items:center;width:22px;height:22px;font-size:1.16rem;transition:color .2s}
.gate-socials svg{width:19px;height:19px;fill:currentColor}
.gate-x{font-family:Arial,sans-serif}
.gate-side{min-width:0}
.gate-left{background:#196ee2}
.gate-left::after,.gate-right::after{position:absolute;inset:0;content:"";pointer-events:none}
.gate-left::after{background:linear-gradient(180deg,rgba(2,17,43,.01) 22%,rgba(1,13,34,.02) 50%,rgba(2,15,41,.58) 100%),
  linear-gradient(90deg,rgba(9,49,103,.08),transparent 45%,rgba(9,49,103,.1))}
.gate-scene{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 46%;
  transition:transform 1.1s var(--ease-out),filter .7s}
.gate:hover .gate-scene{transform:scale(1.035)}
.gate-content{position:absolute;z-index:3;left:clamp(20px,6vw,88px);right:clamp(20px,6vw,88px);bottom:10.5%;
  display:grid;justify-items:center;gap:10px}
.gate-kicker{font-size:.65rem;font-weight:800;letter-spacing:.17em;color:rgba(255,255,255,.86);text-shadow:0 2px 12px #111}
.gate-enter{width:min(100%,520px);min-height:112px;display:flex;align-items:center;gap:20px;padding:14px 22px 14px 28px;
  border:1px solid rgba(255,255,255,.5);border-radius:34px;background:linear-gradient(120deg,#05c9ff,#0573fb);
  box-shadow:0 14px 34px rgba(0,76,215,.42),inset 0 2px 0 rgba(255,255,255,.35);color:#fff;
  transition:transform .4s var(--ease-spring),box-shadow .4s,border-color .4s}
.gate-right .gate-enter{border:1px solid rgba(255,255,255,.5);color:#fff;background:linear-gradient(115deg,#9f315f,#5a123c);
  box-shadow:0 14px 34px rgba(255,46,100,.32),inset 0 2px 0 rgba(255,255,255,.32)}
.gate.hot-left .gate-left .gate-enter{background:linear-gradient(120deg,#05c9ff,#0573fb);color:#fff}
.gate.hot-right .gate-right .gate-enter{background:linear-gradient(115deg,#9f315f,#5a123c);color:#fff}
.gate-side:hover .gate-enter,.gate-side:focus-visible .gate-enter{transform:translateY(-6px) scale(1.025);
  box-shadow:0 22px 48px rgba(0,76,215,.5),inset 0 2px 0 rgba(255,255,255,.42);border-color:rgba(255,255,255,.9)}
.gate-right:hover .gate-enter,.gate-right:focus-visible .gate-enter{box-shadow:0 22px 48px rgba(255,46,100,.42),inset 0 2px 0 rgba(255,255,255,.42)}
.gate-platform-icon{width:64px;height:64px;flex:0 0 64px;display:grid;place-items:center;color:#fff}
.gate-platform-icon svg{width:60px;height:60px}
.gate-controller svg{width:67px;height:51px}
.gate-label{flex:1;min-width:0;text-align:left}
.gate-label strong{display:block;font:clamp(1.35rem,2.65vw,2.55rem)/1 var(--font-display);letter-spacing:-.04em;white-space:nowrap;
  text-shadow:0 2px 5px rgba(0,0,0,.22)}
.gate-label small{display:block;margin-top:10px;font-size:.61rem;font-weight:700;letter-spacing:.12em;white-space:nowrap;color:rgba(255,255,255,.8)}
.gate-arrow{width:50px;height:50px;flex:0 0 50px;display:grid;place-items:center;border-radius:50%;background:rgba(5,23,132,.72);
  font:400 3rem/.6 var(--font-body);transition:transform .35s var(--ease-spring)}
.gate-right .gate-arrow{background:rgba(54,6,37,.7)}
.gate-side:hover .gate-arrow{transform:translateX(5px)}
.gate-right{background:linear-gradient(180deg,#212151 0%,#701f46 45%,#1a1226 100%)}
.gate-right::before{position:absolute;inset:0;content:"";z-index:0;background:
  radial-gradient(ellipse at 74% 24%,rgba(255,126,112,.85) 0,rgba(255,107,90,.4) 12%,transparent 30%),
  radial-gradient(ellipse at 45% 72%,rgba(255,94,63,.65),transparent 40%),linear-gradient(155deg,#32356a 0%,#6a2b56 46%,#180f27 100%)}
.gate-right::after{z-index:2;background:linear-gradient(180deg,rgba(10,9,34,.18),transparent 35%,rgba(16,8,25,.22) 62%,rgba(16,8,25,.85) 100%)}
.gate-pc-scene{position:absolute;inset:0;overflow:hidden}
.gate-moon{position:absolute;top:9%;right:15%;width:clamp(125px,19vw,270px);aspect-ratio:1;border-radius:50%;
  background:radial-gradient(circle at 38% 35%,#ffe5ae,#ff967a 66%,#ed5566);box-shadow:0 0 70px 20px rgba(255,112,101,.42)}
.gate-castle{position:absolute;z-index:1;bottom:26%;right:16%;width:47%;height:39%;opacity:.93;background:
  linear-gradient(90deg,transparent 0 12%,#271832 12% 24%,transparent 24% 30%,#271832 30% 43%,transparent 43% 49%,#271832 49% 67%,transparent 67% 73%,#271832 73% 89%,transparent 89%),
  linear-gradient(0deg,#1b1327 0 65%,transparent 65%),
  linear-gradient(90deg,transparent 0 17%,#2b1a35 17% 22%,transparent 22% 35%,#2b1a35 35% 40%,transparent 40% 54%,#2b1a35 54% 60%,transparent 60% 77%,#2b1a35 77% 83%,transparent 83%)}
.gate-castle::before{position:absolute;content:"";inset:-23% 0 55%;background:
  linear-gradient(135deg,transparent 48%,#261630 49% 51%,transparent 52%) 0 0/24% 100% repeat-x,
  linear-gradient(45deg,transparent 48%,#261630 49% 51%,transparent 52%) 0 0/24% 100% repeat-x}
.gate-castle::after{position:absolute;content:"";left:47%;bottom:0;width:10%;height:34%;border-radius:50% 50% 0 0;
  background:#ff9a67;box-shadow:0 0 18px 7px rgba(255,125,78,.72)}
.gate-forest{position:absolute;z-index:2;inset:auto -4% 18%;height:32%;opacity:.95;background:
  linear-gradient(135deg,transparent 48%,#180f24 49% 100%) 0 0/90px 100% repeat-x,
  linear-gradient(225deg,transparent 48%,#180f24 49% 100%) 0 0/90px 100% repeat-x}
.gate-bean{position:absolute;z-index:3;object-fit:contain;filter:drop-shadow(0 16px 18px rgba(13,5,24,.55));animation:bob 4.5s ease-in-out infinite}
.bean-back{width:clamp(90px,13vw,180px);left:14%;bottom:24%;transform:rotate(-8deg)}
.bean-front{width:clamp(165px,24vw,330px);left:43%;bottom:19%;animation-delay:-1.6s}
.bean-side{width:clamp(100px,15vw,210px);right:4%;bottom:24%;transform:rotate(8deg);animation-delay:-2.5s}
.gate-seam{left:50%;top:-4%;bottom:-4%;width:4px;z-index:5;background:linear-gradient(180deg,#7de8ff,#fff 50%,#ffb33c);
  box-shadow:0 0 18px 5px rgba(255,255,255,.5);transform:translateX(-2px) rotate(12deg);pointer-events:none}
.gate-skip{left:50%;right:auto;bottom:18px;transform:translateX(-50%);font-size:.62rem;color:rgba(255,255,255,.82);
  white-space:nowrap;text-shadow:0 2px 12px #111;pointer-events:auto;transition:color .2s}
.gate-skip:hover{color:#ffd24b}

/* ---------- hero ---------- */
.hero{position:relative;min-height:94vh;display:flex;align-items:center;padding:150px 0 70px;overflow:hidden}
.hero-stage{position:absolute;inset:0;z-index:1;will-change:transform}
.hero-inner{position:relative;z-index:3}
.hero-cta{margin-top:26px;position:relative;z-index:4}
.stats{display:flex;flex-wrap:wrap;gap:34px;margin-top:38px}
.stat b{display:block;font-family:var(--font-display);font-size:clamp(1.8rem,4vw,3rem);color:var(--accent)}
.stat span{font-size:.76rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}

/* ---------- islands / portals ---------- */
.island{position:relative;z-index:2;padding:clamp(26px,4vw,52px);border-radius:34px;
  background:var(--surface);border:2px solid var(--line);transition:transform .35s var(--ease-out)}
.island.tilt-a{transform:rotate(-1.4deg)}
.island.tilt-b{transform:rotate(1.4deg)}
.island .shotmain{width:100%;border-radius:22px;border:2px solid var(--line)}
.portals{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:42px}
.portal{position:relative;padding-top:46px;transition:transform .35s var(--ease-out)}
.portal:hover{transform:translateY(-8px)}
.portal .char{width:clamp(70px,8vw,110px);right:-6px;top:-16px;z-index:6;filter:drop-shadow(0 16px 20px rgba(0,0,0,.3))}
.portal-visual{border-radius:26px;overflow:hidden;border:2px solid var(--line);background:var(--surface);
  transition:transform .35s var(--ease-out)}
.portal-visual img{width:100%;aspect-ratio:16/9;object-fit:cover}
.portal-title{font-family:var(--font-display);font-size:1.5rem;margin:18px 0 4px;letter-spacing:-.01em}

/* ---------- horizontal rail ---------- */
.hrail{overflow:hidden;padding:40px 0}
.hrail-track{display:flex;gap:26px;width:max-content;padding-left:6vw;will-change:transform}
.hrail-card{width:clamp(260px,32vw,440px);margin:0;border-radius:22px;overflow:hidden;border:2px solid var(--line);
  background:var(--surface);transform:rotate(-1deg)}
.hrail-card:nth-child(even){transform:rotate(1.4deg)}
.hrail-card img{width:100%;aspect-ratio:16/9;object-fit:cover}
.hrail-card figcaption{padding:12px 16px;font-size:.84rem;color:var(--muted)}

/* ---------- features ---------- */
.features{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:22px;margin-top:30px}
.feature{position:relative;padding:26px;border-radius:26px;background:var(--surface);border:2px solid var(--line);
  transition:transform .3s var(--ease-spring)}
.feature:nth-child(odd){transform:rotate(-.8deg)}
.feature:nth-child(even){transform:rotate(.8deg)}
.feature:hover{transform:translateY(-6px) rotate(0)}
.feature h3{font-family:var(--font-display);font-size:1.05rem;margin:10px 0 8px}
.fnum{font-family:var(--font-display);font-size:1.6rem;color:var(--accent)}

/* ---------- scrapbook gallery ---------- */
.scrapbook{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:26px;margin-top:30px}
.scrap{margin:0;border-radius:18px;overflow:hidden;border:3px solid var(--line);background:var(--surface);
  cursor:pointer;transition:transform .35s var(--ease-spring),box-shadow .3s}
.scrap:nth-child(3n+1){transform:rotate(-2.4deg)}
.scrap:nth-child(3n+2){transform:rotate(1.8deg) translateY(16px)}
.scrap:nth-child(3n+3){transform:rotate(-1deg) translateY(-10px)}
.scrap:hover{transform:scale(1.04) rotate(0);box-shadow:0 22px 50px rgba(0,0,0,.3);z-index:4}
.scrap img{width:100%;aspect-ratio:16/9;object-fit:cover}

/* ---------- codes ---------- */
.codes-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(255px,1fr));gap:20px;margin-top:26px}
.code-card{position:relative;padding:24px;border-radius:24px;background:var(--surface);border:2px dashed var(--line);
  transition:transform .3s var(--ease-out)}
.code-card.expired{opacity:.55}
.code-val{font-family:var(--font-display);font-size:1.5rem;letter-spacing:.02em;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.code-reward{margin:8px 0 18px;color:var(--muted);font-size:.92rem}
.code-card .row{justify-content:space-between}
.copy-btn{min-height:44px;padding:11px 22px;font-size:.74rem}
.copy-btn.copied{background:var(--accent3);animation:pop .45s var(--ease-spring)}
@keyframes pop{40%{transform:scale(1.16) rotate(-3deg)}}

/* ---------- timeline ---------- */
.timeline{position:relative;margin-top:26px;padding-left:30px}
.timeline::before{content:"";position:absolute;left:8px;top:0;bottom:0;width:3px;background:var(--line);border-radius:3px}
.tl-fill{position:absolute;left:8px;top:0;width:3px;height:0;background:var(--accent);border-radius:3px;box-shadow:0 0 12px var(--accent)}
.tl-item{position:relative;margin-bottom:22px}
.tl-item::before{content:"";position:absolute;left:-28px;top:26px;width:15px;height:15px;border-radius:50%;
  background:var(--bg);border:3px solid var(--accent)}
.tl-card{display:grid;grid-template-columns:1fr auto;gap:22px;align-items:center;padding:24px;border-radius:24px;
  background:var(--surface);border:2px solid var(--line);transition:transform .3s var(--ease-out),border-color .3s}
.tl-card:hover{transform:translateX(8px);border-color:var(--accent)}
.tl-card img{width:clamp(120px,18vw,230px);border-radius:16px;aspect-ratio:16/9;object-fit:cover}
.tl-ver{font-family:var(--font-display);color:var(--accent);font-size:1.1rem}
.tl-item.latest .tl-card{border-color:var(--accent);box-shadow:0 18px 44px rgba(0,0,0,.22)}

/* ---------- roles ---------- */
.role-tabs{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}
.role-tab{min-height:44px;padding:11px 22px;border-radius:99px;border:2px solid var(--line);background:transparent;
  color:var(--muted);font-weight:800;font-size:.74rem;letter-spacing:.14em;cursor:pointer;transition:all .3s var(--ease-spring)}
.role-tab.on{background:var(--accent);color:#fff;border-color:transparent}
.roles{display:grid;grid-template-columns:repeat(auto-fit,minmax(215px,1fr));gap:26px}
.role{position:relative;padding:60px 22px 22px;border-radius:28px;background:var(--surface);border:2px solid var(--line);
  cursor:pointer;text-align:center;transition:transform .35s var(--ease-spring),border-color .3s}
.role img{position:absolute;top:-42px;left:50%;transform:translateX(-50%);width:96px;
  filter:drop-shadow(0 14px 18px rgba(0,0,0,.25));transition:transform .4s var(--ease-spring)}
.role:hover{transform:translateY(-8px);border-color:var(--accent)}
.role:hover img{transform:translateX(-50%) translateY(-8px) rotate(-6deg)}
.role .align{font-size:.66rem;font-weight:800;letter-spacing:.18em;color:var(--accent)}
.role h4{font-family:var(--font-display);font-size:1.2rem;margin:6px 0 0}
.role-detail{max-height:0;overflow:hidden;transition:max-height .5s var(--ease-out)}
.role.open{border-color:var(--accent)}
.role.open .role-detail{max-height:280px}
.role dl{margin:16px 0 0;text-align:left}
.role dt{font-size:.64rem;letter-spacing:.16em;font-weight:800;color:var(--accent);margin-top:10px}
.role dd{margin:2px 0 0;font-size:.9rem;color:var(--muted)}

/* ---------- mean beans village ---------- */
.village{overflow:hidden}
.ground{position:absolute;left:-10%;right:-10%;bottom:-24%;height:54%;border-radius:50% 50% 0 0;
  background:linear-gradient(180deg,#8FD07A,#6BAE5C)}
.bean{position:absolute;bottom:14%;width:clamp(54px,6vw,92px);z-index:2;will-change:transform;
  filter:drop-shadow(0 14px 16px rgba(0,0,0,.2))}
.bean.walk{animation:bob 4.5s ease-in-out infinite}
.bean.sus{animation:bob2 7s ease-in-out infinite;transition:opacity .5s}
.world-path{display:grid;gap:60px}
.loc{display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:center}
.loc:nth-child(even) .loc-media{order:2}
.loc-media{position:relative}
.loc-media .main{width:100%;border-radius:26px;border:3px solid var(--line);transform:rotate(-1.6deg)}
.loc:nth-child(even) .loc-media .main{transform:rotate(1.6deg)}
.pop-char{width:clamp(70px,9vw,124px);right:-6%;bottom:-32px;z-index:5}
.loc h3{font-family:var(--font-display);font-size:clamp(1.4rem,3vw,2.2rem);margin:0 0 10px}

/* ---------- PC world slider ---------- */
.pc-scroll-page{overflow-x:hidden}
.pc-world-slider{display:flex;width:100%;height:100svh;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scroll-behavior:smooth;overscroll-behavior-x:contain;scrollbar-width:none}
.pc-world-slider::-webkit-scrollbar{display:none}
.pc-world-panel{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:clamp(28px,5vw,80px);flex:0 0 100%;width:100%;height:100%;min-height:560px;padding:clamp(110px,14vh,160px) clamp(28px,7vw,100px) 82px;overflow:hidden;scroll-snap-align:start;scroll-snap-stop:always;transition:background-color .7s,color .7s}
.pc-beans-panel{background:#fff0bd;color:#3b281c}
.pc-panel-copy{position:relative;z-index:1;max-width:620px}
.pc-panel-copy .eyebrow{color:#bb5734;font:800 .7rem/1.4 Menlo,Consolas,monospace;letter-spacing:.16em}
.pc-panel-copy h1,.pc-panel-copy h2{margin:22px 0 14px;font:800 clamp(4rem,9vw,8.6rem)/.86 "Fredoka",var(--font-display),sans-serif;letter-spacing:-.055em}
.pc-panel-copy p{margin:0 0 28px;color:#674b37;font-size:clamp(1.1rem,2vw,1.4rem)}
.pc-beans-panel .pc-panel-copy .btn{background:#f07b4e;border-color:#f07b4e;color:white}
.pc-panel-gallery{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:center}
.pc-panel-gallery figure{min-width:0;margin:0;padding:7px;background:#fff;border-radius:16px;box-shadow:0 18px 40px rgba(84,51,28,.2);transform:rotate(-1deg)}
.pc-panel-gallery figure:first-child{grid-column:1/-1;transform:rotate(1deg)}
.pc-panel-gallery figure:nth-child(3){transform:rotate(1.2deg)}
.pc-panel-gallery img{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:10px}
.pc-panel-gallery figure:first-child img{aspect-ratio:2/1}
.pc-panel-gallery figcaption{padding:7px 5px 2px;color:#684a37;font-size:.66rem}
.pc-woman-panel{background:#151718;color:#e0dccd}
.pc-woman-panel .pc-panel-copy .eyebrow{color:#aaa792}
.pc-woman-panel .pc-panel-copy h2{font:400 clamp(4rem,9vw,8.6rem)/.9 Georgia,"Times New Roman",serif;letter-spacing:.035em}
.pc-woman-panel .pc-panel-copy p{color:#aaa99f}
.pc-woman-panel .pc-panel-copy .btn{border-color:#aaa792;background:transparent;color:#e0dccd}
.pc-woman-gallery figure{background:#242727;border:1px solid #343737;border-radius:0;box-shadow:0 18px 46px rgba(0,0,0,.42)}
.pc-woman-gallery img{filter:saturate(.68) brightness(.82);border-radius:0}
.pc-woman-gallery figcaption{color:#aaa99f;font:700 .62rem Menlo,Consolas,monospace;letter-spacing:.04em}
.pc-next-world{position:absolute;right:clamp(28px,5vw,72px);bottom:30px;display:flex;align-items:center;gap:10px;padding:8px 0;border:0;background:transparent;color:#684a37;font:700 .68rem Menlo,Consolas,monospace;letter-spacing:.12em;cursor:pointer}
.pc-next-world b{font-size:1.2rem}
.pc-woman-panel .pc-next-world{color:#c7c2b0}
.pc-slide-count{position:absolute;left:clamp(28px,5vw,72px);bottom:34px;color:#94674c;font:700 .67rem Menlo,Consolas,monospace;letter-spacing:.14em}
.pc-slide-count i{padding:0 7px;font-style:normal;opacity:.5}
.pc-woman-panel .pc-slide-count{color:#aaa99f}
.pc-scroll-page body[data-world="pc"]{background:#fff0bd;color:#3b281c}
.pc-scroll-page.pc-woman-active body[data-world="pc"]{background:#151718;color:#e0dccd}
.pc-scroll-page.pc-beans-active body[data-world="pc"] .nav{background:rgba(255,248,224,.94);border-color:rgba(91,61,41,.2);color:#3b281c}
.pc-scroll-page.pc-woman-active body[data-world="pc"] .nav{background:rgba(24,27,28,.94);border-color:#414444;color:#e0dccd}
.pc-scroll-page.pc-beans-active body[data-world="pc"] .nav-links a,.pc-scroll-page.pc-beans-active body[data-world="pc"] .nav .icon-btn{color:#543e2b}
.pc-scroll-page.pc-woman-active body[data-world="pc"] .nav-links a,.pc-scroll-page.pc-woman-active body[data-world="pc"] .nav .icon-btn{color:#d4d0c3}
.pc-scroll-page.pc-beans-active body[data-world="pc"] .nav .brand em{color:#e4784b}
.pc-scroll-page.pc-woman-active body[data-world="pc"] .nav .brand em{color:#aaa792}
.pc-scroll-page body[data-world="pc"] .footer{margin-top:0;padding-top:54px;background:#111314;color:#e0dccd;border-top:1px solid #343737}
.pc-scroll-page body[data-world="pc"] .footer-cols a{color:#aaa99f}
.pc-scroll-page body[data-world="pc"] .footer-bottom{border-color:#343737}
.pc-scroll-page.pc-beans-active body[data-world="pc"] .footer{background:#fff0bd;color:#3b281c;border-color:rgba(91,61,41,.2)}
.pc-scroll-page.pc-beans-active body[data-world="pc"] .footer-cols a{color:#674b37}
.pc-scroll-page.pc-beans-active body[data-world="pc"] .footer-bottom{border-color:rgba(91,61,41,.2);color:#674b37}
.pc-intro{padding-top:70px;text-align:center}
.pc-intro .lede{margin:14px auto 0}
.game-switch{display:flex;justify-content:center;flex-wrap:wrap;gap:12px;margin-top:34px}
.game-switch a{padding:12px 18px;border-bottom:2px solid var(--accent);font-family:var(--font-display);font-size:.76rem;letter-spacing:.12em;transition:color .25s,background .25s}
.game-switch a:hover{background:var(--accent);color:#fff}
.pc-game-panel{position:relative}

.horror-page,.pc-horror-panel{--horror-bg:#17191a;--horror-fg:#d6d1bb;--horror-muted:#98958a;position:relative;background:var(--horror-bg);color:var(--horror-fg);font-family:Georgia,"Times New Roman",serif;overflow:hidden}
.horror-page .h-big,.horror-page .h-mega,.pc-horror-panel .h-big,.pc-horror-panel .h-mega{font-family:Georgia,"Times New Roman",serif;font-weight:400;letter-spacing:.02em}
.horror-page .eyebrow,.pc-horror-panel .eyebrow{border-radius:0;color:var(--horror-fg);font-family:Menlo,Consolas,monospace;font-size:.62rem;letter-spacing:.18em}
.horror-page .lede,.pc-horror-panel .lede,.horror-page .small{color:var(--horror-muted)}
.horror-hero{position:relative;min-height:100vh;display:flex;align-items:flex-end;padding:0 0 10vh;isolation:isolate}
.horror-hero-compact{min-height:82vh;padding-bottom:8vh}
.horror-scene{position:absolute;inset:0;overflow:hidden;background:#30352f;isolation:isolate}
.horror-scene::before{content:"";position:absolute;inset:-2%;background-image:var(--scene-image),linear-gradient(180deg,#5a665e 0%,#303a37 46%,#1c2422 100%);background-size:cover;background-position:center;filter:saturate(.55) contrast(1.12);image-rendering:pixelated;transform:scale(1.03);z-index:-2}
.horror-scene::after{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;opacity:.58;background:repeating-linear-gradient(0deg,rgba(0,0,0,.16) 0 1px,transparent 1px 4px),radial-gradient(circle at 50% 50%,transparent 42%,rgba(0,0,0,.5) 100%);mix-blend-mode:multiply}
.horror-fog{position:absolute;inset:35% -10% 0;background:linear-gradient(180deg,transparent,rgba(190,196,181,.2));filter:blur(14px);z-index:1}
.horror-hero-copy{position:relative;z-index:4;text-shadow:0 2px 8px rgba(0,0,0,.8)}
.horror-hero-copy .h-mega{font-size:clamp(3.6rem,13vw,10rem);color:#e5e1ce}
.horror-ui{position:absolute;left:clamp(18px,5vw,70px);right:clamp(18px,5vw,70px);top:clamp(100px,12vh,140px);z-index:4;display:flex;justify-content:space-between;align-items:flex-start;color:#eee9d4;font:700 .72rem/1.5 Menlo,Consolas,monospace;letter-spacing:.08em;text-shadow:0 1px 5px #000;white-space:nowrap}
.horror-ui span:last-child{align-self:flex-end;margin-top:calc(70vh - 120px)}
.horror-feature{position:relative;min-height:80vh}
.horror-feature .horror-scene{position:absolute}
.horror-copy{background:#1c1d1c}
.horror-narrow{max-width:720px}
.story-lines{margin-top:32px;font-size:clamp(1.35rem,3vw,2.5rem);line-height:1.4;color:#c1bca9}
.story-lines p{margin:0 0 12px}.story-lines p:last-child{margin-top:28px;color:#e5e1ce}
.horror-routine{background:#262724}
.routine{max-width:760px;border-top:1px solid #57574e}
.routine-item{display:grid;grid-template-columns:120px 1fr;gap:20px;padding:22px 0;border-bottom:1px solid #57574e;transition:opacity .25s,transform .25s}
.routine-item time{font:700 .9rem Menlo,Consolas,monospace;color:#aaa792}.routine-item p{margin:0;color:#d0cbb7}
.routine-item.glitching{transform:translateX(3px);opacity:.65}.routine-item.glitching p{font-size:0}.routine-item.glitching p::after{content:attr(data-alt);font-size:1rem;color:#e5e1ce}
.atmosphere-list{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}.atmosphere-list span{padding:12px 16px;border:1px solid #5a5950;color:#bdb8a5;font:700 .7rem Menlo,Consolas,monospace;letter-spacing:.12em;text-transform:uppercase}
.horror-page .scrapbook{filter:grayscale(.75);grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.horror-page .scrap{border-radius:0;border-color:#5a5950;background:#111;box-shadow:8px 8px 0 rgba(0,0,0,.28)}
.horror-wishlist{border-top:1px solid #57574e;text-align:center}.horror-wishlist .lede{margin:16px auto 26px}.horror-wishlist .btn{border-radius:0;background:#aaa792;color:#17191a;box-shadow:4px 4px 0 #080909}
body.horror-mode{--accent:#aaa792;--accent2:#5d6870;--accent3:#817e6c;--accent4:#444a4b}
body.horror-mode .bg-stage{opacity:.15;filter:grayscale(1)}
body.horror-mode #cursor .cursor-ring{width:18px;height:18px;border-radius:0;border-color:#d6d1bb}
body.horror-mode #cursor .cursor-dot{width:2px;height:18px;border-radius:0;background:#d6d1bb}
body.horror-mode #cursor.is-active .cursor-ring{width:auto;min-width:78px;height:24px;border-radius:0;background:#d6d1bb}
body.horror-mode #cursor.is-active .cursor-label{color:#17191a}
body.horror-near .pc-showcase .village{filter:grayscale(.55) saturate(.55) contrast(1.08);transition:filter 1.2s ease}
body.horror-near .pc-showcase .village::after{content:"";position:absolute;inset:0;z-index:8;pointer-events:none;opacity:.22;background:repeating-linear-gradient(0deg,transparent 0 3px,rgba(0,0,0,.35) 4px),radial-gradient(circle,#fff 0 1px,transparent 1px);background-size:auto,4px 4px;mix-blend-mode:overlay;animation:tracking 1.8s steps(2,end) infinite}
@keyframes tracking{50%{transform:translateY(3px);opacity:.1}72%{transform:translateY(-2px);opacity:.32}}

/* ---------- faq ---------- */
.faq{margin-top:22px;display:grid;gap:12px}
.faq details{padding:18px 22px;border-radius:20px;background:var(--surface);border:2px solid var(--line)}
.faq summary{cursor:pointer;font-weight:700;list-style:none}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";float:right;color:var(--accent);font-family:var(--font-display)}
.faq details[open] summary::after{content:"–"}
.faq p{margin:12px 0 0;color:var(--muted)}

/* ---------- account / forms ---------- */
.panel{max-width:460px;padding:30px;border-radius:28px;background:var(--surface);border:2px solid var(--line)}
.field{margin-bottom:16px;display:grid;gap:6px}
.field label{font-size:.72rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.field :is(input,textarea,select){width:100%;min-height:48px;padding:12px 16px;border-radius:14px;border:2px solid var(--line);
  background:var(--bg);color:var(--fg);font:inherit}
.field textarea{resize:vertical}
.field :is(input,textarea,select):focus{outline:3px solid var(--accent);outline-offset:2px;border-color:transparent}
.contact-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:24px;margin-top:44px;align-items:start}
.contact-card{padding:clamp(24px,4vw,42px)}
.contact-card .eyebrow{margin:8px 0 16px}
.contact-card h2{margin:0 0 12px}
.contact-card>.small{margin-bottom:22px}
.contact-card .btn{max-width:100%;overflow-wrap:anywhere}
.contact-form{margin-top:26px}
.contact-form .btn{width:100%}
.contact-note{margin:14px 0 0;color:var(--muted)}
@media(max-width:760px){.contact-grid{grid-template-columns:1fr}}
.avatar-big{width:88px;height:88px;border-radius:50%;display:grid;place-items:center;background:var(--accent);
  color:#08122B;font-family:var(--font-display);font-size:2rem}
body[data-world="pc"] .avatar-big{color:#fff}
.link-list{display:grid;gap:12px;margin-top:18px}
.link-row{display:flex;gap:16px;align-items:center;justify-content:space-between;flex-wrap:wrap;
  padding:18px 22px;border-radius:20px;background:var(--surface);border:2px solid var(--line)}
.link-row b{font-family:var(--font-display);font-weight:400}

/* ---------- community tiles ---------- */
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(255px,1fr));gap:24px}
.tile{position:relative;overflow:hidden;padding:30px;border-radius:30px;background:var(--surface);border:2px solid var(--line);
  transition:transform .35s var(--ease-out)}
.tile:nth-child(odd){transform:rotate(-1deg)}
.tile .glow{position:absolute;width:190px;height:190px;border-radius:50%;background:var(--accent);filter:blur(60px);
  opacity:.4;right:-60px;top:-60px}
.tile h3{font-family:var(--font-display);font-size:1.25rem;margin:0 0 10px;position:relative}
.tile p{position:relative;margin-bottom:20px}

/* ---------- footer ---------- */
.footer{position:relative;margin-top:60px;padding:48px 0 40px;border-top:2px solid var(--line);overflow:hidden}
.footer-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:30px}
.footer-cols h4{font-family:var(--font-display);font-size:.9rem;letter-spacing:.06em;margin:0 0 14px}
.footer-cols a{display:block;color:var(--muted);font-size:.94rem;padding:5px 0;transition:color .25s,transform .25s}
.footer-cols a:hover{color:var(--accent);transform:translateX(5px)}
.socials{display:flex;gap:10px}
.socials a{width:44px;height:44px;display:grid;place-items:center;border-radius:50%;border:2px solid var(--line);
  font-weight:800;font-size:.76rem;transition:all .3s var(--ease-spring)}
.socials a:hover{background:var(--accent);color:#08122B;transform:translateY(-4px) rotate(-6deg)}
.footer-bottom{display:flex;flex-wrap:wrap;gap:14px;justify-content:space-between;align-items:center;
  margin-top:46px;padding-top:22px;border-top:1px solid var(--line);font-size:.84rem;color:var(--muted)}

/* ---------- lightbox ---------- */
.lightbox{position:fixed;inset:0;z-index:850;display:grid;place-items:center;padding:5vw;
  background:rgba(4,8,20,.88);backdrop-filter:blur(8px)}
.lightbox figure{margin:0;max-width:1000px}
.lightbox img{width:100%;border-radius:20px;border:3px solid rgba(255,255,255,.2)}
.lightbox figcaption{margin-top:14px;text-align:center;color:#fff;font-size:.9rem}
.lb-close{position:absolute;top:22px;right:22px;width:48px;height:48px;border-radius:50%;border:2px solid rgba(255,255,255,.3);
  background:transparent;color:#fff;font-size:1.1rem;cursor:pointer}

/* ---------- responsive ---------- */
@media (max-width:1000px){
  .nav-links{display:none}
  .burger{display:flex}
  .loc{grid-template-columns:1fr}
  .loc:nth-child(even) .loc-media{order:0}
  .tl-card{grid-template-columns:1fr}
  .tl-card img{width:100%}
}
@media (max-width:900px){
  .gate{height:auto;min-height:100svh;flex-direction:column}
  .gate-side{flex:1 1 50svh;min-height:400px}
  .gate.hot-left .gate-left,.gate.hot-right .gate-right{flex-grow:1.34}
  .gate.hot-left .gate-right,.gate.hot-right .gate-left{flex-grow:.72}
  .gate-header{height:88px;padding:18px 28px}
  .gate-seam{left:0;right:0;top:50%;bottom:auto;width:auto;height:3px;transform:none}
  .gate-content{bottom:8%}
  .gate-left .gate-scene{object-position:center 50%}
  .gate-castle{width:50%;right:17%;bottom:23%}
  .gate-bean{bottom:20%}
  .pc-world-panel{grid-template-columns:1fr 1fr;gap:22px;padding:112px 6vw 76px}
  .pc-panel-gallery{gap:9px}
  .pc-panel-copy h1,.pc-panel-copy h2{font-size:clamp(3.7rem,8vw,6.4rem)}
}
@media (max-width:620px){
  .gate{min-height:100svh}
  .gate-header{grid-template-columns:1fr 1fr;padding:12px 16px;height:78px}
  .gate-links{gap:11px;padding-top:7px}
  .gate-links a{font-size:.52rem;letter-spacing:.04em}
  .gate-links a:nth-child(3){display:none}
  .gate-brand{position:absolute;top:48px;left:50%;transform:translateX(-50%);font-size:1rem}
  .gate-brand svg{top:-14px;width:26px;height:17px}
  .gate-brand small{font-size:.48rem;margin-top:4px}
  .gate-socials{gap:12px;padding-top:5px}
  .gate-socials a{width:18px;height:18px}
  .gate-socials svg{width:16px;height:16px}
  .gate-side{min-height:360px;flex-basis:50svh}
  .gate-content{left:16px;right:16px;bottom:7%;gap:7px}
  .gate-kicker{font-size:.52rem;letter-spacing:.1em}
  .gate-enter{min-height:78px;padding:10px 13px 10px 15px;gap:10px;border-radius:24px}
  .gate-platform-icon{width:42px;height:42px;flex-basis:42px}
  .gate-platform-icon svg{width:42px;height:42px}
  .gate-controller svg{width:45px;height:36px}
  .gate-label strong{font-size:clamp(1rem,5.4vw,1.55rem)}
  .gate-label small{font-size:.44rem;letter-spacing:.04em;margin-top:6px}
  .gate-arrow{width:36px;height:36px;flex-basis:36px;font-size:2.3rem}
  .gate-moon{top:14%;right:12%;width:32vw}
  .gate-castle{height:36%;bottom:20%}
  .gate-forest{bottom:16%;height:28%}
  .bean-back{width:24vw;left:7%;bottom:18%}
  .bean-front{width:43vw;left:34%;bottom:16%}
  .bean-side{width:27vw;right:0;bottom:18%}
  .gate-skip{bottom:8px;font-size:.48rem;letter-spacing:.13em}
  .section{padding:60px 0}
  .hero{min-height:88vh;padding:130px 0 50px}
  .pc-world-slider{height:calc(100svh - 4px)}
  .pc-world-panel{grid-template-columns:1fr;grid-template-rows:auto 1fr;align-content:center;gap:18px;padding:108px 24px 72px}
  .pc-panel-copy{align-self:end}
  .pc-panel-copy h1,.pc-panel-copy h2{font-size:clamp(3.7rem,17vw,5.5rem);margin:14px 0 10px}
  .pc-panel-copy p{font-size:1rem;margin-bottom:18px}
  .pc-panel-copy .btn{width:auto}
  .pc-panel-gallery{grid-template-columns:1fr 1fr;max-height:36svh;align-self:start}
  .pc-panel-gallery figure:first-child img{aspect-ratio:2/1}
  .pc-panel-gallery figure:not(:first-child) img{aspect-ratio:16/9}
  .pc-panel-gallery figcaption{font-size:.52rem}
  .pc-next-world{right:24px;bottom:22px;font-size:.56rem}
  .pc-slide-count{left:24px;bottom:26px}
  .h-mega{font-size:clamp(2.4rem,15vw,4rem)}
  .prop{opacity:.85}
  .scrap:nth-child(n){transform:none}
  .island.tilt-a,.island.tilt-b{transform:none}
  .btn{width:100%}
  .nav{padding:10px 12px}
  .ws-pill button{padding:9px 12px;font-size:.66rem}
  .horror-ui{top:88px;font-size:.58rem}.horror-ui span:last-child{margin-top:calc(70vh - 100px)}
  .routine-item{grid-template-columns:76px 1fr;gap:12px}.horror-feature{min-height:62vh}
  body.horror-mode .bg-stage{opacity:.08}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms !important;animation-iteration-count:1 !important;
    transition-duration:.001ms !important}
  .rv,.word-rv span{opacity:1 !important;transform:none !important}
  #particles,.bg-blob{display:none}
}

/* =============================================================
   ROBLOX WORLD — Fredoka, studs baseplate, gradient backdrop
   ============================================================= */
body[data-world="roblox"]{
  --font-display:"Fredoka","Fredoka One",system-ui,sans-serif;
  --font-body:"Fredoka",system-ui,sans-serif;
  --ink:#0a0a0f;
  --bg:#7a6cf0;--fg:#fff;--muted:rgba(255,255,255,.94);
  --accent:#ffe14a;--accent2:#4f73ff;--accent3:#a4ff3d;--accent4:#ff3fd0;
  --surface:rgba(255,255,255,.2);--line:#0a0a0f;
  --grad:linear-gradient(90deg,#4f73ff 0%,#9a6be8 48%,#ff63c4 100%);
  --studs:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='46' height='46'%3E%3Crect x='7' y='7' width='32' height='32' rx='6' fill='%23d4dae3'/%3E%3Cpath d='M11 13v21q0 4 4 4h20' fill='none' stroke='%23aab3c1' stroke-width='3.5' stroke-linecap='round'/%3E%3Cpath d='M13 11h20q4 0 4 4v18' fill='none' stroke='%23f1f4f8' stroke-width='2.5' stroke-linecap='round'/%3E%3C/svg%3E");
  --studs-glass:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='46' height='46'%3E%3Crect x='7' y='7' width='32' height='32' rx='6' fill='%23fff' fill-opacity='.28'/%3E%3Cpath d='M11 13v21q0 4 4 4h20' fill='none' stroke='%23000' stroke-opacity='.2' stroke-width='3.5' stroke-linecap='round'/%3E%3C/svg%3E");
  font-weight:500;
}
body[data-world="roblox"] .bg-stage{background:var(--grad)}
body[data-world="roblox"] .bg-grid{display:none}
body[data-world="roblox"] .bg-blob{opacity:.16}
body[data-world="roblox"] .bg-blob.b1{background:#2de2ff}
body[data-world="roblox"] .bg-blob.b2{background:#ffe14a}

/* headline treatment: white fill, thick black outline */
body[data-world="roblox"] :is(.h-mega,.h-big,.h-mid,.portal-title,.feature h3,.fnum,.tl-ver,.tile h3,.role h4,.code-val,.rb-card h3,.rb-window-title,.stat b,.rb-card li){
  color:#fff;-webkit-text-stroke:.12em var(--ink);paint-order:stroke fill;
  text-shadow:0 .07em 0 var(--ink);font-weight:700;letter-spacing:.01em;text-transform:uppercase;
}
body[data-world="roblox"] .rb-card li{text-transform:none;font-weight:600}
body[data-world="roblox"] .outline-text{color:#ffe14a;-webkit-text-stroke:.12em var(--ink)}
body[data-world="roblox"] :is(.lede,.small,.stat span){text-shadow:0 2px 0 rgba(10,10,15,.4)}
body[data-world="roblox"] .eyebrow{background:#3b45a8;border:0;color:#fff;letter-spacing:.1em}
body[data-world="roblox"] .badge{background:#ffe14a;color:var(--ink);border:2px solid var(--ink)}
body[data-world="roblox"] .badge.gray{background:#fff}
body[data-world="roblox"] .badge.tag{background:transparent;color:var(--ink)}
body[data-world="roblox"] .marquee{background:var(--ink);border:0}
body[data-world="roblox"] .marquee span{color:#fff;-webkit-text-stroke:0;text-shadow:none}
body[data-world="roblox"] .marquee i{background:#ffe14a}
body[data-world="roblox"] .tl-fill{background:#ffe14a;box-shadow:none}
body[data-world="roblox"] .timeline::before{background:rgba(255,255,255,.55)}
body[data-world="roblox"] .tl-item::before{background:#ffe14a;border-color:var(--ink)}

/* studs baseplate cards */
body[data-world="roblox"] :is(.feature,.island,.tl-card,.code-card,.tile,.faq details,.panel,.role,.link-row,.portal,.hrail-card,.scrap){
  background-color:#cbd2dc;background-image:var(--studs);background-size:46px 46px;
  border:4px solid var(--ink);border-radius:28px;box-shadow:0 7px 0 rgba(10,10,15,.22);
  --fg:#141a2e;--muted:#3a4560;--accent:#d6249f;color:var(--fg);
}
body[data-world="roblox"] .portal{padding:16px}
body[data-world="roblox"] .portal .char{display:none}
body[data-world="roblox"] .portal-visual,body[data-world="roblox"] .island .shotmain{border:4px solid var(--ink);border-radius:20px;background:#000}
body[data-world="roblox"] .code-card.expired{opacity:.7}
body[data-world="roblox"] .faq summary::after{color:var(--ink)}
body[data-world="roblox"] .field :is(input,textarea,select){background:#fff;color:#141a2e;border-color:var(--ink)}
body[data-world="roblox"] .tile .glow{display:none}

/* studs buttons */
body[data-world="roblox"] .btn{
  background-color:#7fe83a;background-image:var(--studs-glass),linear-gradient(90deg,#a4ff3d,#ff3fd0);
  background-size:46px 46px,100% 100%;border:3px solid var(--ink);border-radius:16px;color:#fff;
  font-weight:700;font-size:1rem;letter-spacing:.04em;text-transform:none;text-shadow:0 2px 0 rgba(10,10,15,.45);
  box-shadow:0 6px 0 var(--ink);
}
body[data-world="roblox"] .btn:hover{box-shadow:0 10px 0 var(--ink)}
body[data-world="roblox"] .btn:active{box-shadow:0 2px 0 var(--ink)}
body[data-world="roblox"] .btn.alt{background-image:var(--studs-glass),linear-gradient(90deg,#2de2ff,#4f73ff)}
body[data-world="roblox"] .btn.ghost{background-color:#cbd2dc;background-image:var(--studs);color:var(--ink);text-shadow:none;border:3px solid var(--ink)}
body[data-world="roblox"] .btn.ghost:hover{color:var(--ink);border-color:var(--ink)}
body[data-world="roblox"] .copy-btn.copied{background-image:none;background-color:#ffe14a;color:var(--ink);text-shadow:none}
body[data-world="roblox"] .btn:disabled{opacity:.6;cursor:not-allowed}

/* ---------- roblox navbar ---------- */
.rbnav{position:fixed;top:0;left:0;right:0;z-index:700;display:flex;justify-content:space-between;align-items:flex-start;
  padding:18px 22px;pointer-events:none;font-family:"Fredoka",system-ui,sans-serif;transition:transform .45s var(--ease-out)}
.rbnav>*{pointer-events:auto}
.rbnav.hide{transform:translateY(-140%)}
.rbnav-left,.rbnav-right{display:flex;gap:14px;align-items:flex-start}
.rb-logo{width:58px;height:58px;border-radius:50%;background:#3b45a8;display:grid;place-items:center;transition:transform .3s var(--ease-spring)}
.rb-logo img{width:34px;height:34px;border-radius:9px}
.rb-logo:hover{transform:rotate(-8deg) scale(1.06)}
.rb-pill{display:flex;align-items:center;gap:16px;height:58px;padding:0 20px;border-radius:99px;background:#3b45a8;color:#fff}
.rb-burger{display:flex;flex-direction:column;gap:5px;border:0;background:none;padding:6px 0;cursor:pointer}
.rb-burger i{display:block;width:32px;height:4px;border-radius:3px;background:#fff}
.rb-avatar{display:grid;place-items:center;color:#fff}
.rb-auth{display:flex;align-items:center;gap:26px;height:46px;padding:0 16px;border-radius:14px;background:rgba(66,50,150,.72);
  font-weight:700;font-size:1.35rem;color:#fff}
.rb-auth a:hover,.rb-menu a:hover,.rb-menu a.active{color:#ffe14a}
.rb-menu{position:relative;display:flex;flex-direction:column;align-items:center;gap:4px;width:204px;padding:26px 12px 16px;
  border-radius:18px;background:rgba(70,28,80,.52);backdrop-filter:blur(8px)}
.rb-menu a{font-weight:700;font-size:1.45rem;line-height:1.3;color:#fff;padding:3px 10px;text-shadow:0 2px 0 rgba(0,0,0,.22)}
.rb-x{position:absolute;left:12px;top:6px;border:0;background:none;color:#fff;font:600 1.1rem "Fredoka",sans-serif;cursor:pointer}

/* ---------- roblox hero: animated game world ---------- */
.rb-hero{padding:96px 0 30px}
.rb-stage{position:relative;isolation:isolate;overflow:hidden;min-height:min(760px,calc(100svh - 120px));min-height:max(620px,min(760px,calc(100vh - 120px)));
  display:flex;align-items:center;padding:clamp(34px,7vw,100px);border:5px solid var(--ink);border-radius:38px;
  background:#152c35;box-shadow:0 12px 0 rgba(10,10,15,.24)}
.rb-stage::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(5,14,28,.88) 0%,rgba(5,14,28,.68) 36%,rgba(5,14,28,.12) 100%),
  linear-gradient(0deg,rgba(5,14,28,.46),transparent 42%);pointer-events:none}
.rb-stage-image{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;object-position:center 54%;animation:rb-scene-drift 22s ease-in-out infinite alternate}
.rb-copy{position:relative;z-index:3;width:min(48%,540px);padding-bottom:24px;color:#fff}
.rb-world-label{display:inline-block;margin-bottom:18px;padding:8px 13px;border:2px solid rgba(255,255,255,.8);border-radius:7px;
  background:#3b45a8;color:#fff;font:700 .82rem "Fredoka",sans-serif}
.rb-hero-title{margin:0;color:#fff;font:900 clamp(4.5rem,10vw,9rem)/.88 "Archivo Black",sans-serif;text-shadow:5px 6px 0 #11131a,-2px -2px 0 #11131a,2px -2px 0 #11131a,-2px 2px 0 #11131a,2px 2px 0 #11131a}
.rb-hero-tagline{margin:22px 0 0;color:#ffe14a;font:700 clamp(1rem,2vw,1.35rem)/1.2 "Fredoka",sans-serif}
.rb-hero-cta{margin-top:28px;position:relative;z-index:4}
@keyframes rb-scene-drift{to{transform:scale(1.07) translate3d(-1%,1%,0)}}

/* ---------- roblox games window ---------- */
.rb-window{position:relative;padding:clamp(70px,8vw,100px) clamp(18px,4vw,50px) clamp(24px,4vw,46px);
  border:6px solid var(--ink);border-radius:46px;background:linear-gradient(90deg,#17c3ee 0%,#7ddba4 45%,#ffe14a 100%);
  box-shadow:0 12px 0 rgba(10,10,15,.2)}
.rb-window-title{position:absolute;left:clamp(14px,3vw,36px);top:0;transform:translateY(-58%);margin:0;font-size:clamp(3.2rem,8vw,6rem);line-height:1}
.rb-close{position:absolute;right:-18px;top:-34px;width:76px;height:76px;display:grid;place-items:center;border:5px solid var(--ink);border-radius:22px;
  background:#ff3b3b;color:#fff;font:700 2.6rem/1 "Fredoka",sans-serif;cursor:pointer;transition:transform .3s var(--ease-spring)}
.rb-close:hover{transform:rotate(8deg) scale(1.06)}
.rb-window.is-closed .rb-window-body{display:none}
.rb-window.is-closed{padding-bottom:30px}
.rb-window-body{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:clamp(18px,3vw,40px)}
.rb-card{display:flex;flex-direction:column;gap:12px;padding:18px;border:5px solid var(--ink);border-radius:30px;background-color:#cbd2dc;
  background-image:var(--studs);background-size:46px 46px;box-shadow:0 8px 0 rgba(10,10,15,.2)}
.rb-card:hover{transform:translateY(-6px) rotate(-.6deg)}
.rb-shot{overflow:hidden;background:#000;border:5px solid var(--ink);border-radius:22px}
.rb-shot img{width:100%;aspect-ratio:16/9;object-fit:cover}
.rb-card h3{margin:6px 0 0;text-align:center;font-size:clamp(1.5rem,2.4vw,2rem)}
.rb-card ul{flex:1;margin:0;padding:0;list-style:none}
.rb-card li{margin:4px 0;font-size:1.25rem}
.rb-card li::before{content:"";display:inline-block;width:9px;height:9px;margin-right:12px;border-radius:50%;background:#fff;vertical-align:middle}

@media (max-width:900px){
  .rb-hero{padding-top:78px}
  .rb-stage{min-height:min(620px,calc(100vh - 120px));align-items:flex-start;flex-direction:column;padding:52px 34px;gap:20px}
  .rb-copy{width:100%;padding-bottom:0}
  .rb-hero-title{font-size:clamp(4rem,12vw,6.5rem)}
  .rb-menu{position:absolute;top:70px;right:22px}
  .rb-auth{font-size:1rem;gap:14px;height:42px}
  .rb-pill{height:50px;padding:0 14px}
  .rb-logo{width:50px;height:50px}
  .rb-close{right:-8px;top:-28px;width:58px;height:58px;font-size:2rem}
}
@media (max-width:600px){
  .rb-stage{min-height:0;padding:34px 24px;border-radius:24px}
  .rb-copy{width:100%}
  .rb-world-label{margin-bottom:14px}
  .rb-hero-title{font-size:clamp(2.5rem,14vw,5.2rem)}
  .rb-hero-tagline{margin-top:14px}
  .rb-hero-cta{margin-top:20px}
}
@media (prefers-reduced-motion:reduce){.rb-stage-image{animation:none!important}}

/* DOR Interactive: cinematic Roblox game showcase */
.spotlight{padding-top:108px;padding-bottom:34px;color:#fff}
.spotlight .wrap{max-width:1400px}
.spotlight-heading,.spotlight-library{display:flex;align-items:center;justify-content:space-between;gap:16px;font:600 11px/1.5 Arial,sans-serif;letter-spacing:2px}
.spotlight-heading{margin-bottom:18px;color:#172039}
.spotlight-heading a{font-weight:900;letter-spacing:1.5px}
.spotlight-heading a span{opacity:.65;margin-left:12px}
.spotlight-stage{position:relative;overflow:hidden;border-radius:28px;background:#101821;box-shadow:0 24px 70px #18215e40;border:1px solid #ffffff55}
.spotlight-slide{position:relative;isolation:isolate;min-height:590px;display:flex;align-items:flex-end;padding:72px 64px 110px}
.spotlight-slide[hidden]{display:none}
.spotlight-art{position:absolute;inset:0;z-index:-3;width:100%;height:100%;object-fit:cover;object-position:center 45%;animation:spotlight-pan 12s ease-out both}
.spotlight-slide:before{content:"";position:absolute;inset:0;z-index:-2;background:linear-gradient(90deg,rgba(7,13,22,.92),rgba(7,13,22,.5) 45%,rgba(7,13,22,.04) 85%),linear-gradient(0deg,#070d16dd,transparent 70%)}
.spotlight-slide:after{content:"";position:absolute;inset:0;z-index:-1;box-shadow:inset 0 0 100px #05091c44;pointer-events:none}
.spotlight-content{max-width:640px;animation:spotlight-enter .7s cubic-bezier(.2,.7,.2,1) both}
.spotlight-meta{display:flex;align-items:center;flex-wrap:wrap;gap:14px;font:600 11px/1.4 Arial,sans-serif;letter-spacing:1.3px;text-transform:uppercase;color:#e0e8ef}
.spotlight-status{display:inline-flex;align-items:center;gap:8px;padding:8px 11px;background:#caff761c;border:1px solid #caff7660;border-radius:5px;color:#d2ff93}
.spotlight-status:before{content:"";width:6px;height:6px;border-radius:50%;background:#caff76;box-shadow:0 0 14px #caff76}
.spotlight-title{font:900 clamp(3.5rem,6.4vw,6rem)/.98 "Archivo Black",sans-serif;letter-spacing:-.055em;margin:24px 0 20px;max-width:650px;text-wrap:balance;color:#fff;text-shadow:0 4px 28px #0003;overflow-wrap:anywhere}
.spotlight-content p{font:400 clamp(16px,1.5vw,20px)/1.6 Arial,sans-serif;color:#dce3ed;max-width:470px;margin:0 0 30px}
.spotlight-actions{display:flex;align-items:center;flex-wrap:wrap;gap:24px;font:700 13px/1.4 Arial,sans-serif}
.spotlight-primary{display:inline-flex;align-items:center;gap:32px;background:#ceff80;color:#142014;padding:17px 22px;border-radius:8px;box-shadow:0 0 30px #b7ff4e14;transition:transform .2s,background .2s}
.spotlight-primary:hover{transform:translateY(-3px);background:#e1ffb1}
.spotlight-secondary{display:inline-flex;gap:20px;align-items:center;color:#fff;border-bottom:1px solid #ffffff55;padding:10px 0}
.spotlight-controls{position:absolute;bottom:28px;left:64px;right:40px;display:flex;align-items:center;gap:10px;font:600 12px Arial,sans-serif}
.spotlight-controls>span{margin-right:auto;letter-spacing:4px;color:#ffffffa8}
.spotlight-controls button{border:1px solid #ffffff40;border-radius:50%;width:40px;height:40px;background:#111d2e70;color:white;cursor:pointer;backdrop-filter:blur(12px)}
.spotlight-controls button:last-child{width:66px;border-radius:24px;font:600 11px Arial,sans-serif}
.spotlight-controls button:hover{background:#ffffff25}
.spotlight-library{margin:24px 0 14px;color:#19233d}
.spotlight-library a{letter-spacing:0;font-size:12px}
.spotlight-pickers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.spotlight-picker{position:relative;display:flex;align-items:center;gap:14px;min-width:0;padding:12px;border:1px solid #ffffff50;border-radius:14px;background:#18223dbf;text-align:left;color:#fff;cursor:pointer;overflow:hidden;transition:background .25s,transform .25s,box-shadow .25s}
.spotlight-picker.is-active{background:#12202c;box-shadow:inset 0 -3px #ceff80;border-color:#ceff8080}
.spotlight-picker:hover{transform:translateY(-4px);background:#1a2c40}
.spotlight-picker img{width:88px;height:66px;object-fit:cover;border-radius:7px;flex:none}
.spotlight-picker small{display:block;font:600 9px/1.4 Arial,sans-serif;letter-spacing:1px;color:#c5d1dc;margin-bottom:8px}
.spotlight-picker strong{display:block;font:700 15px/1.2 Arial,sans-serif}
.spotlight-picker-arrow{margin-left:auto;color:#ceff80}
.spotlight :is(a,button):focus-visible{outline:3px solid #fff;outline-offset:4px}
@keyframes spotlight-enter{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}
@keyframes spotlight-pan{from{transform:scale(1.07)}to{transform:scale(1)}}
@media(max-width:1100px){.spotlight-slide{padding:54px 40px 100px;min-height:560px}.spotlight-title{font-size:clamp(3.3rem,7vw,5rem)}.spotlight-controls{left:40px}.spotlight-picker img{width:64px;height:62px}.spotlight-picker{gap:10px}.spotlight-picker strong{font-size:13px}}
@media(max-width:700px){.spotlight{padding-top:92px}.spotlight-heading>span{display:none}.spotlight-heading{font-size:10px;letter-spacing:1px}.spotlight-slide{padding:160px 24px 100px;min-height:560px}.spotlight-art{object-position:62% center}.spotlight-slide:before{background:linear-gradient(0deg,#070d16 0%,#070d16b0 55%,#070d1620 100%)}.spotlight-title{font-size:clamp(2.7rem,10.5vw,4rem);max-width:100%;margin-top:20px}.spotlight-content p{font-size:16px}.spotlight-controls{left:24px;right:24px}.spotlight-pickers{grid-template-columns:1fr;gap:8px}.spotlight-picker img{width:76px;height:52px}.spotlight-picker strong{font-size:15px}.spotlight-picker small{margin-bottom:5px}.spotlight-stage{border-radius:20px}.spotlight-library{font-size:9px;letter-spacing:1px}.spotlight-actions{gap:12px}.spotlight-primary{padding:15px 17px;gap:20px}.spotlight-heading a span{margin-left:6px}}
@media(prefers-reduced-motion:reduce){.spotlight-art,.spotlight-content{animation:none}.spotlight-picker,.spotlight-primary{transition:none}}
@media(max-width:700px){.spotlight-slide{min-height:480px;padding-top:100px}.spotlight-title{font-size:clamp(2.7rem,10.5vw,4rem)}}

/* Shared Roblox detail pages: playful blocks, consistent hierarchy. */
body[data-world="roblox"] :is(h1,h2,h3,h4,h5,h6,.h-mega,.h-big,.h-mid,.spotlight-title,.portal-title,.rb-hero-title){font-family:"Fredoka",sans-serif!important;letter-spacing:-.025em}
.rg-page{color:#17213b;--surface:#fffdf4;--muted:#43516b;--line:#19223a;--accent:var(--game-accent)}
.rg-page .wrap{max-width:1200px}
.rg-hero{padding:110px 0 48px}
.rg-back{display:inline-block;font-size:14px;font-weight:600;margin-bottom:22px}
.rg-hero-grid{display:grid;grid-template-columns:1fr 1.05fr;gap:44px;align-items:center}
.rg-tags{display:flex;flex-wrap:wrap;gap:8px}
.rg-tags span{padding:7px 12px;border:2px solid #17213b;border-radius:9px;background:#fffdf4;font:600 11px Arial,sans-serif;letter-spacing:1px;box-shadow:2px 3px 0 #17213b}
.rg-tags span:first-child{background:var(--game-accent)}
.rg-hero h1{font-size:clamp(3rem,5.5vw,5.5rem);font-weight:700;line-height:.98;margin:25px 0 18px;text-wrap:balance;overflow-wrap:anywhere;color:#fff;text-shadow:0 4px 0 #17213b,2px 0 0 #17213b,-2px 0 0 #17213b,0 -2px 0 #17213b}
.rg-tagline{font:600 clamp(20px,2.2vw,28px)/1.2 "Fredoka",sans-serif;margin:0 0 15px}
.rg-intro{font:400 16px/1.75 Arial,sans-serif;max-width:530px;margin:0;color:#202c44}
.rg-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin:26px 0}
.rg-actions .btn{font-size:15px;padding:14px 20px}
.rg-coming{padding:14px 16px;border:2px dashed #17213b;border-radius:12px;font-weight:600;background:#ffffff55}
.rg-genre{display:flex;flex-direction:column;gap:6px;border-top:1px solid #17213b40;padding-top:18px}
.rg-genre>span{font:700 10px Arial,sans-serif;letter-spacing:2px}.rg-genre strong{font:500 17px "Fredoka",sans-serif}
.rg-cover{margin:0;position:relative;overflow:hidden;border:4px solid #17213b;border-radius:26px;box-shadow:8px 10px 0 #17213b;transform:rotate(1.5deg);background:#17213b;animation:rg-arrive .65s ease both}
.rg-cover img{width:100%;aspect-ratio:1.15;object-fit:cover;display:block}
.rg-cover figcaption{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;background:#fffdf4;padding:16px;font:600 11px "Fredoka",sans-serif;letter-spacing:1px}
.rg-cover figcaption strong{color:#17213b}
.rg-page>.section{padding:58px 0}
.rg-codes{scroll-margin-top:92px;background:#fff4cb;border-block:3px solid #17213b;background-image:radial-gradient(#17213b0a 2px,transparent 2px);background-size:22px 22px}
.rg-page .h-big{font-size:clamp(2rem,4vw,3.6rem);line-height:1.08;font-weight:600;max-width:950px;overflow-wrap:anywhere}
.rg-page .h-mid{font-size:1.6rem}.rg-page .eyebrow{font:700 11px Arial,sans-serif;letter-spacing:2px;margin-bottom:12px;color:#374360}
.rg-page .codes-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,270px),1fr));gap:18px}
.rg-page .code-card{background:#fffdf6;border:2px solid #17213b;box-shadow:4px 5px 0 #17213b;border-radius:16px;padding:22px;transform:none}
.rg-page .code-card.active{border-top:6px solid var(--game-accent)}
.rg-page .code-card.expired{box-shadow:2px 3px 0 #17213b;opacity:.65}
.rg-page .code-val{font-family:"Fredoka",sans-serif;font-size:1.55rem;overflow-wrap:anywhere}
.rg-page .code-reward{min-height:24px;font:400 14px/1.5 Arial,sans-serif;color:#43516b}
.rg-empty{margin-top:26px;padding:28px;display:flex;align-items:center;gap:24px;background:#fffdf6;border:2px dashed #17213b;border-radius:18px;max-width:800px}
.rg-empty>span{font-size:52px;color:#8553d4}.rg-empty h3{font-size:1.6rem;margin:0 0 8px}.rg-empty p{margin:0;font:400 15px/1.7 Arial,sans-serif}
.rg-section-heading{display:flex;justify-content:space-between;align-items:end;gap:24px}.rg-section-heading>p{max-width:280px;font:400 15px/1.6 Arial,sans-serif}
.rg-page .features{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
.rg-page .feature{position:relative;transform:none;padding:28px;background:#fffdf4;border:3px solid #17213b;border-radius:20px;box-shadow:5px 6px 0 #17213b}
.rg-page .feature .fnum{display:grid;place-items:center;width:44px;height:44px;border:2px solid #17213b;border-radius:12px;background:var(--game-accent);font:600 19px "Fredoka",sans-serif;color:#17213b;margin-bottom:22px}
.rg-page .feature h3{font-size:1.65rem;margin:0 0 12px}.rg-page .feature p{font:400 15px/1.8 Arial,sans-serif;color:#43516b;margin:0}
.rg-loop{background:#19233b;color:#fff}.rg-page .rg-loop .eyebrow{color:#d3ddef}
.rg-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;margin-top:32px}.rg-step{border-top:3px solid var(--game-accent);padding-top:20px}.rg-step>span{font:600 14px "Fredoka",sans-serif;color:#d3ddef}.rg-step h3{font-size:1.6rem;margin:14px 0 10px;color:#fff}.rg-step p{font:400 14px/1.8 Arial,sans-serif;color:#d3ddef}
.rg-shots{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-top:28px}
.rg-shot{padding:0;text-align:left;overflow:hidden;border:3px solid #17213b;border-radius:20px;background:#fffdf4;box-shadow:4px 5px 0 #17213b;cursor:pointer;transition:transform .2s;color:#17213b}
.rg-shot:hover{transform:translateY(-4px)}.rg-shot img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover}.rg-shot>span{display:flex;justify-content:space-between;gap:12px;padding:18px;font:500 17px "Fredoka",sans-serif}
.rg-page .faq details{background:#fffdf4;border:2px solid #17213b;box-shadow:3px 4px 0 #17213b}.rg-page .faq summary{font:500 20px "Fredoka",sans-serif}.rg-page .faq p{font:400 15px/1.8 Arial,sans-serif}
.rg-page :is(a,button,summary):focus-visible{outline:3px solid #6347d9;outline-offset:5px}
@keyframes rg-arrive{from{opacity:0;translate:0 18px}to{opacity:1;translate:0 0}}
@media(max-width:900px){.rg-hero{padding-top:92px}.rg-hero-grid{grid-template-columns:1fr;gap:30px}.rg-hero-copy{max-width:680px}.rg-cover{transform:none;max-width:100%;box-shadow:5px 6px 0 #17213b}.rg-cover img{aspect-ratio:16/9}.rg-steps{grid-template-columns:repeat(2,minmax(0,1fr))}.rg-hero h1{font-size:clamp(3rem,8vw,5rem)}}
@media(max-width:600px){.rg-page>.section{padding:38px 0}.rg-page .wrap{width:calc(100% - 36px)}.rg-hero h1{font-size:clamp(2.7rem,12vw,4.3rem)}.rg-page .features,.rg-shots,.rg-steps{grid-template-columns:1fr}.rg-section-heading{display:block}.rg-page .feature{padding:24px}.rg-empty{padding:20px;gap:15px}.rg-empty>span{font-size:34px}.rg-cover figcaption{font-size:10px}.rg-actions{gap:10px}.rg-page .codes-grid{grid-template-columns:1fr}.rg-page .code-val{font-size:1.3rem}.rg-page .h-big{font-size:2.15rem}}
@media(prefers-reduced-motion:reduce){.rg-cover{animation:none}.rg-shot{transition:none}}
body[data-world="roblox"] .rg-page :is(.feature,.code-card,.faq details){background:#fffdf4;border-radius:18px;border-width:2px;box-shadow:4px 5px 0 #17213b}
body[data-world="roblox"] .rg-page :is(.feature h3,.code-val,.h-mid,.fnum){color:#17213b;-webkit-text-stroke:0;text-shadow:none}
body[data-world="roblox"] .rg-page .eyebrow{color:#fff;font-family:"Fredoka",sans-serif}
body[data-world="roblox"] .rg-page .feature .fnum{background:var(--game-accent);box-shadow:2px 3px 0 #17213b}

/* Studio entry: two responsive, image-led worlds. */
.dor-gate{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:auto auto minmax(520px,1fr) auto;gap:22px;height:auto;min-height:100svh;padding:0 clamp(20px,4vw,76px) 24px;background:radial-gradient(ellipse at 15% 0,#25264b,transparent 50%),#10121d;overflow:hidden;color:#fff}
.dor-gate .gate-header{position:relative;inset:auto;grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;height:auto;min-height:96px;padding:22px 0;pointer-events:auto;border-bottom:1px solid #ffffff1c;gap:24px}
.dor-gate .gate-brand{position:static;display:flex;align-items:center;gap:12px;text-align:left;font:600 27px/.9 "Fredoka",sans-serif;letter-spacing:1px;text-shadow:none}
.dor-gate .gate-brand span{padding:0}.dor-gate .gate-brand small{font:500 9px/1 "Fredoka",sans-serif;letter-spacing:2.5px;margin-top:8px}
.dor-gate .dor-mark{display:grid;place-items:center;width:48px;height:48px;background:#d4ff7d;color:#171b24;border-radius:14px;font:600 30px "Fredoka",sans-serif;rotate:-7deg}
.dor-gate .gate-links{padding:0;gap:28px}.dor-gate .gate-links a{font:500 13px "Fredoka",sans-serif;letter-spacing:.2px;text-shadow:none;color:#d6d9e6}
.dor-gate .gate-links a:hover{color:#d4ff7d}
.gate-intro{grid-column:1/-1;text-align:center;padding:12px 0 15px}
.gate-eyebrow{font:600 10px Arial,sans-serif;letter-spacing:2.8px;color:#c6b9ff}
.gate-intro h1{font:500 clamp(32px,3.5vw,58px)/1.13 "Fredoka",sans-serif;letter-spacing:-1.5px;margin:15px 0 12px;color:#fff}.gate-intro h1 span{color:#d4ff7d}
.gate-intro p{font:400 14px/1.7 Arial,sans-serif;color:#b9bdcf;margin:0}.gate-mobile-break{display:none}
.dor-gate .gate-side{position:relative;min-height:540px;min-width:0;border:1px solid #ffffff32;border-radius:26px;isolation:isolate;filter:none;transition:border-color .3s,box-shadow .3s;outline-offset:5px}
.dor-gate .gate-side:before{display:none}.dor-gate .gate-side:after{z-index:1;background:linear-gradient(0deg,#0b162df5 0%,#0b162dcb 25%,#0b162d18 65%,#0b162d10)}
.dor-gate .gate-right:after{background:linear-gradient(0deg,#25172af5 0%,#25172ad9 24%,#25172a05 70%)}
.dor-gate .gate-scene{z-index:0;object-position:center 40%;transform:scale(1);transition:transform 1.1s cubic-bezier(.2,.6,.2,1);filter:none}
.dor-gate:hover .gate-scene{transform:scale(1)}.dor-gate .gate-side:hover .gate-scene,.dor-gate .gate-side:focus-visible .gate-scene{transform:scale(1.045)}
.dor-gate .gate-side:hover{border-color:#ffffff80;box-shadow:0 12px 45px #0004}.dor-gate .gate-side:focus-visible{outline:3px solid #d4ff7d}
.gate-world-tag{position:absolute;top:22px;right:22px;z-index:3;display:flex;gap:12px;align-items:center;padding:10px 13px;border:1px solid #ffffff50;border-radius:9px;background:#131c37b0;backdrop-filter:blur(12px);font:500 9px Arial,sans-serif;letter-spacing:1px;color:#dadfec}.gate-world-tag b{font-size:10px;color:#fff}
.dor-gate .gate-content{position:absolute;left:32px;right:32px;bottom:28px;display:block;text-align:left}
.dor-gate .gate-kicker{font:600 10px Arial,sans-serif;letter-spacing:2px;color:#d4ff7d;text-shadow:none}.dor-gate .gate-right .gate-kicker{color:#ffdb9f}
.dor-gate .gate-content h2{font:600 clamp(30px,3vw,48px)/1.04 "Fredoka",sans-serif;letter-spacing:-1px;margin:12px 0;color:#fff;text-shadow:0 3px 20px #0004}
.dor-gate .gate-content p{font:400 14px/1.65 Arial,sans-serif;color:#e1e5ef;max-width:390px;margin:0 0 20px}
.dor-gate .gate-enter{width:100%;min-height:74px;gap:14px;margin:0;padding:15px 18px;border-radius:15px;border:1px solid #ffffff55;background:#ffffff14!important;color:#fff;box-shadow:none!important;backdrop-filter:blur(15px);transform:none}
.dor-gate .gate-label strong{font:500 21px/1.2 "Fredoka",sans-serif;letter-spacing:0;white-space:normal;text-shadow:none}
.dor-gate .gate-label small{font:500 8px/1.6 Arial,sans-serif;letter-spacing:.8px;white-space:normal;margin-top:6px;color:#ccd3e4}
.dor-gate .gate-arrow{width:38px;height:38px;flex:0 0 38px;border-radius:10px;background:#d4ff7d;color:#142033;font:400 26px Arial,sans-serif}.dor-gate .gate-right .gate-arrow{background:#ffdb9f;color:#291a31}
.gate-bottom{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:4px 0;font:500 10px Arial,sans-serif;letter-spacing:1.5px;color:#999fb5}.gate-bottom a{color:#e2e6ef;font:500 13px "Fredoka",sans-serif;letter-spacing:0}
.dor-gate a:focus-visible{outline:3px solid #d4ff7d;outline-offset:5px}
@media(min-width:1500px){.dor-gate{grid-template-rows:auto auto minmax(580px,1fr) auto}.dor-gate .gate-side{min-height:580px}.dor-gate .gate-content{left:44px;right:44px;bottom:34px}}
@media(max-width:900px){.dor-gate{gap:16px;padding-inline:20px;grid-template-rows:auto auto auto auto}.dor-gate .gate-content{left:22px;right:22px;bottom:22px}.dor-gate .gate-side{min-height:550px}.dor-gate .gate-content h2{font-size:34px}.dor-gate .gate-links{gap:18px}.dor-gate .gate-label strong{font-size:19px}}
@media(max-width:640px){.dor-gate{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto;gap:16px;padding:0 16px 24px;height:auto;min-height:100svh}.dor-gate .gate-header{flex-wrap:wrap;justify-content:center;padding:20px 0 17px;gap:20px}.dor-gate .gate-brand{font-size:25px}.dor-gate .gate-links{justify-content:center;gap:22px;width:100%;flex-wrap:wrap}.dor-gate .gate-links a{font-size:12px}.gate-intro{padding:15px 0 12px}.gate-intro h1{font-size:35px;letter-spacing:-.8px}.gate-mobile-break{display:block}.gate-eyebrow{font-size:8px;letter-spacing:1.7px}.gate-intro p{font-size:13px;max-width:320px;margin:auto}.dor-gate .gate-side{flex:none;min-height:530px;border-radius:22px}.dor-gate .gate-content h2{font-size:34px}.dor-gate .gate-content p{font-size:13px}.dor-gate .gate-content{left:20px;right:20px;bottom:20px}.gate-world-tag{top:16px;right:16px;padding:9px;font-size:8px}.gate-bottom{flex-direction:column;text-align:center;font-size:8px;padding-top:10px}.dor-gate .gate-label small{font-size:7px}.dor-gate .gate-enter{padding:14px;min-height:72px}}
@media(prefers-reduced-motion:reduce){.dor-gate .gate-scene,.dor-gate .gate-side,.dor-gate .gate-arrow{transition:none}.dor-gate .gate-side:hover .gate-scene{transform:none}}
.dor-gate .gate-content :is(h2,p){margin-left:0;margin-right:0;text-align:left}.dor-gate .gate-right .gate-scene{object-position:center top}
.dor-gate .gate-links a{display:inline-block}.dor-gate .gate-content h2{width:auto;max-width:none}

/* Image-led split home, with the navigation and world choices layered over the art. */
.dor-gate{position:relative;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:minmax(0,1fr);
  gap:0;width:100%;height:100svh;min-height:620px;padding:0;background:#10121d}
.dor-gate .gate-header{position:absolute;inset:0 0 auto;z-index:10;height:110px;min-height:0;display:grid;
  grid-template-columns:1fr auto 1fr;align-items:start;padding:24px clamp(24px,5vw,72px);
  border:0;background:linear-gradient(180deg,rgba(8,13,32,.38),transparent);pointer-events:none}
.dor-gate .gate-header>a,.dor-gate .gate-header nav{pointer-events:auto}
.dor-gate .gate-links{justify-self:start;align-self:start;gap:clamp(16px,3vw,42px);padding:8px 0 0}
.dor-gate .gate-links a,.dor-gate .gate-community{font:700 .68rem/1 var(--font-body);letter-spacing:.1em;color:#fff;text-shadow:0 2px 12px #071126}
.dor-gate .gate-links a:hover,.dor-gate .gate-community:hover{color:#ffe14a}
.dor-gate .gate-brand{position:relative;top:auto;left:auto;justify-self:center;display:flex;flex-direction:column;gap:1px;
  font:900 clamp(1.25rem,2.5vw,2rem)/.9 var(--font-display);letter-spacing:-.04em;color:#fff}
.dor-gate .gate-brand .gate-crown{padding:0;color:#ffe14a;font:700 25px/1 "Fredoka",sans-serif}
.dor-gate .gate-brand .gate-name{padding:0}
.dor-gate .gate-brand small{display:block;margin-top:6px;font:700 .53rem/1 var(--font-body);letter-spacing:.25em}
.dor-gate .gate-community{justify-self:end;padding:8px 0 0}
.dor-gate .gate-side{position:relative;min-width:0;min-height:0;height:100%;border:0;border-radius:0;overflow:hidden;
  isolation:isolate;outline-offset:-8px}
.dor-gate .gate-side:before{display:none}
.dor-gate .gate-side:after{z-index:1;background:linear-gradient(180deg,rgba(7,13,34,.25),transparent 34%,rgba(7,13,34,.1) 58%,rgba(7,13,34,.55))}
.dor-gate .gate-right:after{background:linear-gradient(180deg,rgba(18,9,31,.28),transparent 35%,rgba(22,8,28,.12) 58%,rgba(22,8,28,.55))}
.dor-gate .gate-scene{z-index:0;object-position:center center;transform:scale(1);filter:none}
.dor-gate .gate-left .gate-scene{object-position:58% center}
.dor-gate .gate-right .gate-scene{object-position:center center}
.dor-gate .gate-side:hover .gate-scene,.dor-gate .gate-side:focus-visible .gate-scene{transform:scale(1.045)}
.dor-gate .gate-content{position:absolute;left:clamp(24px,5vw,72px);right:clamp(24px,5vw,72px);bottom:clamp(28px,7vh,76px);
  display:flex;justify-content:center}
.dor-gate .gate-enter{width:min(100%,540px);min-height:112px;display:flex;align-items:center;gap:20px;padding:14px 22px 14px 28px;
  border:1px solid rgba(255,255,255,.5);border-radius:26px;background:linear-gradient(120deg,#05c9ff,#0573fb)!important;
  box-shadow:0 14px 34px rgba(0,76,215,.42),inset 0 2px 0 rgba(255,255,255,.35);color:#fff}
.dor-gate .gate-right .gate-enter{background:linear-gradient(115deg,#a72c65,#50103d)!important;
  box-shadow:0 14px 34px rgba(255,46,100,.32),inset 0 2px 0 rgba(255,255,255,.32)}
.dor-gate .gate-side:hover .gate-enter,.dor-gate .gate-side:focus-visible .gate-enter{transform:translateY(-5px) scale(1.015)}
.dor-gate .gate-icon{width:58px;height:58px;flex:0 0 58px;color:#fff}
.dor-gate .gate-roblox-icon{padding:7px;border-radius:50%;background:#0754dc}
.dor-gate .gate-label{flex:1;min-width:0;text-align:left}
.dor-gate .gate-label strong{font:900 clamp(1.25rem,2.5vw,2.2rem)/1 var(--font-display);letter-spacing:-.03em;white-space:normal}
.dor-gate .gate-label small{margin-top:9px;font:700 .58rem/1.4 var(--font-body);letter-spacing:.12em;white-space:normal;color:rgba(255,255,255,.84)}
.dor-gate .gate-arrow{width:48px;height:48px;flex:0 0 48px;border-radius:50%;background:rgba(5,23,132,.72);
  font:400 2.8rem/.6 var(--font-body);color:#fff}
.dor-gate .gate-right .gate-arrow{background:rgba(54,6,37,.7)}
.dor-gate .gate-seam{position:absolute;top:-4%;bottom:-4%;left:50%;z-index:5;width:4px;height:108%;padding:0;
  background:linear-gradient(180deg,#a9e9ff,#ffffff 45%,#ffbd65);box-shadow:0 0 22px #ffdb9f;
  transform:translateX(-50%) rotate(10deg);pointer-events:none}
.dor-gate .gate-side:focus-visible{outline:3px solid #ffe14a}
@media(max-width:900px){
  .dor-gate{grid-template-rows:minmax(0,1fr)}
  .dor-gate .gate-content{left:22px;right:22px;bottom:32px}
  .dor-gate .gate-enter{min-height:90px;gap:14px;padding:12px 16px}
  .dor-gate .gate-icon{width:48px;height:48px;flex-basis:48px}
  .dor-gate .gate-label small{font-size:.52rem}
}
@media(max-width:640px){
  .dor-gate{grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(360px,1fr) minmax(360px,1fr);
    height:auto;min-height:100svh;overflow:hidden}
  .dor-gate .gate-header{position:relative;inset:auto;grid-row:1;height:auto;min-height:0;
    grid-template-columns:1fr auto 1fr;align-items:center;padding:18px 16px}
  .dor-gate .gate-links{gap:12px;padding:0}
  .dor-gate .gate-links a,.dor-gate .gate-community{font-size:.52rem;letter-spacing:.04em;padding:0}
  .dor-gate .gate-brand{font-size:1rem}
  .dor-gate .gate-brand .gate-crown{font-size:20px}
  .dor-gate .gate-brand small{font-size:.42rem}
  .dor-gate .gate-side{grid-column:1;min-height:360px;height:auto}
  .dor-gate .gate-content{left:18px;right:18px;bottom:22px}
  .dor-gate .gate-enter{width:min(100%,480px);min-height:78px;border-radius:18px;gap:12px;padding:10px 13px}
  .dor-gate .gate-icon{width:42px;height:42px;flex-basis:42px}
  .dor-gate .gate-label strong{font-size:clamp(1rem,5vw,1.5rem)}
  .dor-gate .gate-label small{font-size:.47rem;margin-top:5px}
  .dor-gate .gate-arrow{width:38px;height:38px;flex-basis:38px;font-size:2.3rem}
  .dor-gate .gate-seam{display:none}
}
@media(prefers-reduced-motion:reduce){
  .dor-gate .gate-scene,.dor-gate .gate-side,.dor-gate .gate-arrow,.dor-gate .gate-enter{transition:none}
  .dor-gate .gate-side:hover .gate-scene{transform:none}
}

/* DOR Interactive entry: platform marks, themed Explore buttons and a true center seam. */
@font-face{font-family:Sniglet;src:url('../fonts/Sniglet-Regular.ttf') format('truetype');font-weight:400;font-display:swap}
@font-face{font-family:Fredoka;src:url('../fonts/Fredoka.ttf') format('truetype');font-weight:300 700;font-display:swap}
body[data-world="neutral"] .scroll-xp{display:none}
.dor-gate .gate-brand{transform:none;text-align:center;font:600 clamp(32px,3.4vw,48px)/.9 Fredoka,sans-serif;letter-spacing:2px}
.dor-gate .gate-brand small{font:500 10px/1 Fredoka,sans-serif;letter-spacing:3px;margin-top:10px}
.dor-gate .gate-links a,.dor-gate .gate-community{font-family:Fredoka,sans-serif;font-weight:500;letter-spacing:1px}
.dor-gate .gate-platform{position:absolute;top:122px;left:clamp(24px,4vw,60px);z-index:3;filter:drop-shadow(0 3px 6px #0008)}
.dor-gate .gate-platform .gate-icon{display:block;width:40px;height:40px;padding:0;border-radius:0;background:none}
.dor-gate .gate-content{flex-direction:column;align-items:center;gap:12px;left:clamp(18px,3vw,48px);right:clamp(18px,3vw,48px);bottom:6vh}
.dor-gate .gate-content h2{margin:0;text-align:center;font:600 clamp(28px,3.5vw,52px)/1.1 Fredoka,sans-serif;letter-spacing:.2px;text-shadow:0 3px 12px #0009}
.dor-gate .gate-right .gate-content h2{font-family:Sniglet,sans-serif;font-weight:400}
.dor-gate .gate-enter{position:relative;justify-content:center;flex:none;width:min(100%,500px);height:auto;min-height:0;aspect-ratio:3/1;padding:0;border:0;border-radius:0;backdrop-filter:none;transition:transform .25s}
.dor-gate .gate-enter span{position:relative;z-index:1;font:600 clamp(26px,3vw,44px)/1 Fredoka,sans-serif;letter-spacing:.5px;text-shadow:0 3px 0 #064b88,0 1px 5px #003b70}
.dor-gate .gate-right .gate-beans{background:url('../../public/ui/mean-beans-button.png') center/contain no-repeat!important;box-shadow:none!important;filter:drop-shadow(0 10px 10px #0005)}
.dor-gate .gate-beans span{font-family:Sniglet,sans-serif;font-weight:400;text-shadow:0 3px 0 #086c22,0 1px 4px #084b1d;transform:translateY(-2%)}
.dor-gate .gate-studs{width:min(82%,410px);aspect-ratio:4/1;margin-block:clamp(12px,1.4vw,23px);border:2px solid #5edaff;border-radius:16px;background:radial-gradient(ellipse at 50% 35%,#ffffff45 0 22%,#ffffff12 25% 30%,#00529c88 33% 37%,transparent 40%) 0 0/38px 32px,linear-gradient(#20bafa,#0876d9)!important;box-shadow:inset 0 3px 0 #91e7ff,0 7px 0 #064b9c,0 12px 20px #00182e88!important}
.dor-gate .gate-seam{top:0;bottom:0;left:50%;width:2px;height:100%;transform:translateX(-50%);background:#ffffff80;box-shadow:0 0 12px #ffffff35}
@media(max-width:640px){
 .dor-gate .gate-header{gap:14px;grid-template-columns:1fr auto;min-height:100px}
 .dor-gate .gate-brand{grid-column:2;grid-row:1/3;font-size:32px}
 .dor-gate .gate-brand small{font-size:8px;letter-spacing:2px}
 .dor-gate .gate-links{width:auto;justify-content:flex-start;flex-wrap:nowrap;gap:14px}
 .dor-gate .gate-links a,.dor-gate .gate-community{font-size:10px}
 .dor-gate .gate-community{justify-self:start;grid-row:2}
 .dor-gate .gate-platform{top:22px;left:22px}
 .dor-gate .gate-platform .gate-icon{width:32px;height:32px}
 .dor-gate .gate-content{bottom:18px;gap:4px;left:24px;right:24px}
 .dor-gate .gate-content h2{font-size:30px}
 .dor-gate .gate-enter{max-width:360px}
 .dor-gate .gate-enter span{font-size:30px}
 .dor-gate .gate-studs{max-width:295px;margin-block:15px}
 .dor-gate .gate-seam{display:none}
}

/* Roblox hero only. Navigation and all following sections retain their existing styles. */
.rh-hero{position:relative;isolation:isolate;overflow:hidden;padding:125px 0 28px;color:#fff;font-family:Fredoka,sans-serif;background:radial-gradient(ellipse at 8% 5%,#259bff99,transparent 53%),radial-gradient(ellipse at 92% 85%,#ed79dd88,transparent 53%),linear-gradient(125deg,#4059cd,#6953c7 55%,#b05dbf);border-bottom:1px solid #ffffff55}
.rh-hero::before{content:"";position:absolute;z-index:-1;inset:0;background:linear-gradient(128deg,transparent 59%,#ffffff0d 59.1%,#ffffff06 80%,transparent 80.1%);pointer-events:none}
.rh-hero .rh-inner{width:min(1440px,90%);margin:auto}
.rh-hero .rh-topline{display:flex;align-items:center;justify-content:space-between;gap:24px;margin:0 230px 105px 0;font-size:11px;letter-spacing:2px;font-weight:500}
.rh-hero .rh-topline b{margin:0 12px;color:#c5faff}
.rh-hero .rh-profile{position:absolute;top:300px;right:5%;display:flex;gap:9px;align-items:center;letter-spacing:.2px;font-size:13px;background:#ffffff18;padding:9px 15px;border:1px solid #ffffff38;border-radius:99px;white-space:nowrap}
.rh-hero .rh-profile>span{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:#d9f6ad;color:#3c4e6b}
.rh-hero .rh-layout{display:grid;grid-template-columns:55% 45%;position:relative;align-items:start}
.rh-hero .rh-feature{min-width:0;position:relative;z-index:2}
.rh-hero .rh-banner{position:relative;width:92%;padding:30px 34px 32px;border:2px solid #c0b8ff;border-radius:25px;background:linear-gradient(105deg,#6153cddd,#7f68dfe6),var(--studs-glass);box-shadow:0 10px 0 #43378c,0 25px 55px #24176a40;transform:rotate(-3deg)}
.rh-hero .rh-banner::before{content:"";position:absolute;inset:0;border-radius:inherit;background-image:radial-gradient(ellipse at 50% 42%,#ffffff20 0 25%,#ffffff08 27% 30%,#31287350 33% 37%,transparent 39%);background-size:44px 42px;pointer-events:none;mask-image:linear-gradient(90deg,transparent,#000)}
.rh-hero .rh-banner::after{content:"";position:absolute;inset:0;border-radius:inherit;background:linear-gradient(110deg,transparent 25%,#ffffff18 45%,transparent 65%);background-size:300% 100%;animation:rh-gloss 9s ease-in-out infinite;pointer-events:none}
.rh-hero .rh-eyebrow{position:relative;display:block;font:500 10px/1.5 Fredoka,sans-serif;letter-spacing:2.5px;color:#e3e8ff}
.rh-hero h1{position:relative;z-index:1;margin:15px 0 13px;font:600 clamp(38px,4.7vw,72px)/.98 Fredoka,sans-serif;letter-spacing:-2px;color:#fff;text-shadow:0 4px 0 #403687;-webkit-text-stroke:0}
.rh-hero h1 span{color:#f4ff92}
.rh-hero .rh-banner p{position:relative;margin:0;color:#f0eeff;font-size:16px}
.rh-hero .rh-go{position:absolute;z-index:4;right:-19px;bottom:-22px;display:flex;align-items:center;gap:18px;padding:14px 23px;border:2px solid #f3ffbd;border-radius:16px;background:#d7f779;color:#303d53;font-size:25px;font-weight:600;box-shadow:0 6px 0 #8caa44,0 12px 22px #30276955;transform:rotate(5deg);transition:transform .25s}
.rh-hero .rh-go:hover{transform:rotate(0) translateY(-4px)}
.rh-hero .rh-avatar{position:absolute;right:-12px;top:-175px;width:190px;height:220px;z-index:3;pointer-events:none}
.rh-hero canvas{display:block;width:100%;height:100%;pointer-events:none}
.rh-hero .rh-library-label{display:flex;justify-content:space-between;align-items:center;margin:59px 25px 22px 0;font-size:10px;letter-spacing:2px;color:#e5e5ff}
.rh-hero .rh-library-label>span:last-child{font-size:25px;color:#edfc9b}
.rh-hero .rh-cards{display:flex;align-items:flex-start;position:relative;padding:12px 12px 30px 0;perspective:1000px;min-height:260px}
.rh-hero .rh-card{position:relative;flex:none;display:block;width:47%;padding:7px;border:1px solid #ffffff99;border-radius:17px;background:#f5f0ff;color:#292743;box-shadow:0 12px 30px #21134455;transition:transform .3s,box-shadow .3s;transform:rotate(var(--angle));animation:rh-card-float 6s ease-in-out infinite}
.rh-hero .rh-card-0{--angle:-6deg;z-index:3}
.rh-hero .rh-card-1{--angle:4deg;width:36%;margin:38px 0 0 -8%;z-index:2;animation-delay:-2s}
.rh-hero .rh-card-2{--angle:11deg;width:32%;margin:75px 0 0 -7%;z-index:1;animation-delay:-4s}
.rh-hero .rh-card-art{overflow:hidden;border-radius:11px;background:#404b87}
.rh-hero .rh-card img{width:100%;aspect-ratio:1.35;object-fit:cover;transition:transform .4s}
.rh-hero .rh-card:hover,.rh-hero .rh-card:focus-visible{z-index:5;animation-play-state:paused;transform:translateY(-12px) rotate(0) rotateY(-5deg) scale(1.055);box-shadow:0 24px 45px #21134470}
.rh-hero .rh-card:hover img{transform:scale(1.06)}
.rh-hero .rh-card-caption{display:flex;justify-content:space-between;align-items:center;gap:4px;padding:11px 4px 5px}
.rh-hero .rh-card-caption small{display:block;font-size:8px;letter-spacing:1px;color:#716b89;margin-bottom:4px}
.rh-hero .rh-card-caption strong{display:block;font-size:clamp(12px,1.35vw,20px);font-weight:600;line-height:1.15}
.rh-hero .rh-card-caption b{font-size:22px;font-weight:400}
.rh-hero .rh-factory{position:relative;padding-top:105px;min-width:0}
.rh-hero .rh-factory-heading{position:relative;margin-left:15%;z-index:1;pointer-events:none}
.rh-hero .rh-factory-heading h2{font:500 clamp(34px,3.5vw,53px)/1.05 Fredoka,sans-serif;margin:12px 0 0;letter-spacing:-1px;color:#fff;text-shadow:none;-webkit-text-stroke:0}
.rh-hero .rh-factory-heading em{font-style:normal;color:#edfc9b}
.rh-hero .rh-conveyor{position:relative;width:112%;height:370px;margin:-28px 0 -12px -6%;isolation:isolate}
.rh-hero .rh-conveyor::before{content:"";position:absolute;inset:32% 15% 10%;background:#f4b3ff38;filter:blur(40px);border-radius:50%;z-index:-1}
.rh-hero .rh-render-fallback{position:absolute;inset:40% 10% auto;padding:20px;border:1px solid #ffffff40;border-radius:20px;background:#ffffff15;text-align:center}
.rh-hero .rh-factory-foot{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:0 0 0 10%;font-size:10px;letter-spacing:2px;color:#eeebff}
.rh-hero .rh-factory-foot b{margin-left:8px;color:#edfc9b}
.rh-hero .rh-motion{padding:7px 11px;border:1px solid #ffffff45;border-radius:99px;background:#ffffff10;color:#fff;font:400 11px Fredoka,sans-serif;cursor:pointer}
.rh-hero .rh-motion:hover{background:#ffffff25}
.rh-hero .rh-footer{display:flex;justify-content:space-between;gap:20px;margin-top:28px;padding-top:22px;border-top:1px solid #ffffff20;font-size:10px;letter-spacing:2px;color:#d9dcff}
.rh-hero .rh-footer a{font-size:13px;letter-spacing:.3px;color:#fff}
.rh-hero .rh-footer a span{margin-left:18px}
.rh-hero :is(a,button):focus-visible{outline:3px solid #efff9a;outline-offset:5px}
.rh-hero .rh-sparkles{position:absolute;inset:0;pointer-events:none;z-index:-1}
.rh-hero .rh-sparkles i{position:absolute;width:26px;height:26px;border-radius:7px;background:linear-gradient(145deg,#bfc7ff,#7e87e3);border:1px solid #ffffff70;box-shadow:3px 5px 0 #3f409744,inset 2px 2px 0 #ffffff50;animation:rh-spark 7s ease-in-out infinite}
.rh-hero .rh-sparkles i:nth-child(1){left:3%;top:34%;rotate:20deg}.rh-hero .rh-sparkles i:nth-child(2){left:52%;top:20%;rotate:-20deg;animation-delay:-2s}.rh-hero .rh-sparkles i:nth-child(3){right:5%;top:47%;width:16px;height:16px;rotate:30deg}.rh-hero .rh-sparkles i:nth-child(4){left:47%;bottom:16%;animation-delay:-4s}.rh-hero .rh-sparkles i:nth-child(5){right:32%;bottom:9%;width:12px;height:12px}.rh-hero .rh-sparkles i:nth-child(6){left:25%;top:20%;width:15px;height:15px;animation-delay:-3s}
@keyframes rh-card-float{0%,100%{translate:0 0}50%{translate:0 -7px}}
@keyframes rh-spark{0%,100%{translate:0 0}50%{translate:0 -14px;rotate:15deg}}
@keyframes rh-gloss{0%,30%{background-position:100% 0}80%,100%{background-position:0 0}}
.rh-hero.rh-paused *,.rh-hero.rh-paused *::after{animation-play-state:paused!important}
@media(min-width:1600px){.rh-hero .rh-conveyor{height:430px}.rh-hero .rh-cards{min-height:310px}}
@media(max-width:1100px){.rh-hero .rh-inner{width:92%}.rh-hero .rh-banner{padding:26px}.rh-hero .rh-avatar{width:160px;height:200px;top:-158px}.rh-hero .rh-factory-heading{margin-left:9%}.rh-hero .rh-conveyor{height:330px}.rh-hero .rh-profile{right:4%}.rh-hero .rh-card-caption b{display:none}}
@media(max-width:760px){.rh-hero{padding-top:315px}.rh-hero .rh-topline{margin:0 0 125px;font-size:9px;letter-spacing:1px}.rh-hero .rh-profile{position:static;font-size:11px;padding:6px 9px;letter-spacing:0}.rh-hero .rh-layout{grid-template-columns:1fr}.rh-hero .rh-feature{padding-inline:8px}.rh-hero .rh-banner{width:94%;padding:28px}.rh-hero h1{font-size:clamp(40px,9vw,64px)}.rh-hero .rh-avatar{right:-15px;top:-149px;width:165px;height:190px}.rh-hero .rh-cards{min-height:245px}.rh-hero .rh-card-caption strong{font-size:clamp(12px,3vw,18px)}.rh-hero .rh-card-caption small{font-size:7px;letter-spacing:.4px}.rh-hero .rh-factory{padding-top:22px}.rh-hero .rh-factory-heading{margin-left:7%}.rh-hero .rh-conveyor{width:100%;height:360px;margin:-45px 0 -15px}.rh-hero .rh-factory-foot{padding:0 7%}.rh-hero .rh-footer{font-size:8px;letter-spacing:1px;align-items:center}.rh-hero .rh-footer a{font-size:11px}.rh-hero .rh-footer a span{margin-left:5px}}
@media(max-width:400px){.rh-hero .rh-topline{flex-wrap:wrap;gap:12px}.rh-hero .rh-avatar{width:135px;height:180px;top:-142px}.rh-hero .rh-banner{padding:24px 20px}.rh-hero .rh-banner p{font-size:14px}.rh-hero .rh-go{right:-8px;padding:12px 18px}.rh-hero .rh-card{padding:5px;border-radius:12px}.rh-hero .rh-cards{min-height:210px}.rh-hero .rh-card-caption{padding:8px 2px 4px}.rh-hero .rh-card-caption small{font-size:6px}.rh-hero .rh-conveyor{height:310px}.rh-hero .rh-footer>span{max-width:130px}}
@media(prefers-reduced-motion:reduce){.rh-hero *,.rh-hero *::after{animation:none!important;transition:none!important}.rh-hero .rh-card:hover{transform:rotate(var(--angle))}}
.rh-hero h1{font-size:clamp(32px,3.3vw,53px);letter-spacing:-1.5px;white-space:nowrap}
.rh-hero .rh-banner{padding-block:28px}
@media(max-width:760px){.rh-hero h1{font-size:clamp(29px,6.2vw,46px)}}
.rh-hero .rh-card-1 .rh-card-caption,.rh-hero .rh-card-2 .rh-card-caption{padding-left:23%;min-height:62px}
.rh-hero .rh-card-1 .rh-card-caption strong,.rh-hero .rh-card-2 .rh-card-caption strong{font-size:clamp(12px,1.25vw,18px)}
@media(max-width:760px){.rh-hero .rh-card-1 .rh-card-caption,.rh-hero .rh-card-2 .rh-card-caption{padding-left:20%;min-height:56px}.rh-hero .rh-card-1 .rh-card-caption strong,.rh-hero .rh-card-2 .rh-card-caption strong{font-size:clamp(11px,2.7vw,16px)}}

/* October refinement: shared pages stay inside the selected game world. */
.page-heading{padding-top:170px}.codes-heading{padding-bottom:0}
.rh-hero h1,.rh-hero .rh-factory-heading h2{paint-order:stroke fill;-webkit-text-stroke:2px #352568;text-shadow:0 4px 0 #352568;font-weight:650}
.rh-hero .rh-banner p,.rh-hero .rh-eyebrow,.rh-hero .rh-library-label,.rh-hero .rh-topline{paint-order:stroke fill;-webkit-text-stroke:.6px #352568;text-shadow:0 1px 1px #352568}
.rh-hero .rh-card-caption strong{paint-order:stroke fill;-webkit-text-stroke:.5px currentColor}
.rh-hero .rh-factory{padding-top:70px}.rh-hero .rh-factory-heading{margin-left:10%}
.rh-hero .rh-conveyor{height:460px;width:122%;margin:-24px 0 -28px -11%}
.launch-clock{display:flex;align-items:center;flex-wrap:wrap;gap:9px 18px;border:1px solid #ffffff50;border-radius:16px;background:#30225e80;padding:14px 18px;margin:34px 35px 0 0;color:#fff;font-family:Fredoka,sans-serif}
.launch-clock>span{font-size:10px;letter-spacing:1.5px}.launch-clock strong{font-size:23px;font-variant-numeric:tabular-nums;letter-spacing:1px;color:#eeff9b}.launch-clock small{font-size:11px;width:100%;color:#eee8ff}.rh-hero .launch-clock+.rh-library-label{margin-top:24px}
.rg-hero .launch-clock{margin-right:0;max-width:480px}
.rb-sound{border:1px solid #ffffff65;border-radius:25px;background:#39318b;color:white;padding:9px 15px;font:500 13px Fredoka,sans-serif;cursor:pointer;align-self:flex-start}
.rbnav-right{gap:10px}.rb-card>.btn{margin:8px 5px 0;min-width:110px}
.updates-clean .update-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;margin-top:30px}
.update-note{display:flex;flex-direction:column;align-items:flex-start;gap:15px;padding:28px;border:2px solid #292739;border-radius:22px;background:#fff9ee;color:#292739;box-shadow:0 7px 0 #29273922;transition:transform .2s}
.update-note:hover{transform:translateY(-4px)}.update-note h3{font-family:Fredoka,sans-serif;font-weight:600;font-size:clamp(23px,2.5vw,32px);line-height:1.15;margin:0;color:#292739;-webkit-text-stroke:0;text-shadow:none}
.update-note p{font:400 16px/1.65 var(--font-body,sans-serif);color:#4d485a;margin:0;-webkit-text-stroke:0;text-shadow:none}
.update-meta{display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;width:100%;font:600 12px/1.4 Fredoka,sans-serif;color:#62576c;letter-spacing:.5px;-webkit-text-stroke:0;text-shadow:none}
.update-meta>span{color:#433669}.update-read{font:600 13px Fredoka,sans-serif;margin-top:auto;padding-top:10px;color:#493376;-webkit-text-stroke:0;text-shadow:none}
.empty-note{margin-top:24px;padding:28px;border:1px solid var(--line);border-radius:20px;background:var(--surface);font-size:16px;line-height:1.6;-webkit-text-stroke:0;text-shadow:none}
.game-filter{display:flex;flex-direction:column;gap:10px;max-width:440px;margin-top:28px;font:500 16px Fredoka,sans-serif}.game-filter select{width:100%;padding:15px 18px;border:2px solid #63527c;border-radius:12px;background:#fffaf2;color:#292739;font:500 17px Fredoka,sans-serif}
.code-card h3{font:600 24px Fredoka,sans-serif;overflow-wrap:anywhere}.code-expiry{font-weight:600}.rg-codes .lede{max-width:700px}.codes-grid{margin-top:24px}
.game-library{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:30px;margin-top:45px}
.library-card{overflow:hidden;border:2px solid var(--line);border-radius:24px;background:var(--surface)}.library-card>a{display:block}.library-card img{width:100%;aspect-ratio:16/10;object-fit:cover}.library-card>div{padding:24px}.library-card h2{font:600 32px/1.1 Fredoka,sans-serif;margin:12px 0}.library-card p{line-height:1.6;margin-bottom:22px}.library-card .row{gap:12px;flex-wrap:wrap}
.community-soon{padding:40px;margin-top:40px;border-radius:28px;border:1px solid var(--line);background:var(--surface);max-width:800px}.community-soon>span{font-size:12px;letter-spacing:2px}.community-soon h2{font:600 36px/1.2 Fredoka,sans-serif;margin:20px 0}.community-soon p{max-width:590px;line-height:1.8;margin-bottom:25px}
.about-personal>.lede{max-width:850px;line-height:1.8;margin:28px 0 40px}.about-personal .feature p{font-size:16px;line-height:1.8}.about-email{padding:32px 0;margin-top:32px}.about-email a{display:inline-block;font-size:clamp(16px,3vw,28px);margin-top:15px;text-decoration:underline;overflow-wrap:anywhere}
.mb-hero{position:relative;isolation:isolate;overflow:hidden;min-height:800px;padding:165px 0 90px;background:#20372f;color:#fff7dc}.mb-backdrop{position:absolute;inset:0;z-index:-3;width:100%;height:100%;object-fit:cover;filter:brightness(.55) saturate(.8)}.mb-hero:before{content:"";position:absolute;inset:0;z-index:-2;background:linear-gradient(90deg,#132c28f2 0%,#17342bd9 35%,#1c322b20 85%),linear-gradient(0deg,#132c28d9,transparent 45%)}
.mb-hero-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:35px;align-items:center}.mb-copy .eyebrow{color:#d6eab7}.mb-copy h1{font:400 clamp(80px,9vw,145px)/.85 Sniglet,Fredoka,sans-serif;letter-spacing:-5px;margin:30px 0;color:#fff3cd;paint-order:stroke fill;-webkit-text-stroke:3px #233d2e;text-shadow:0 8px 0 #12291c}.mb-copy h1 em{font-style:normal;color:#bce37c}.mb-tagline{font:500 clamp(27px,3vw,40px)/1.15 Fredoka,sans-serif}.mb-copy>p:not(.mb-tagline){color:#e4e8d6;line-height:1.8;margin:22px 0}.mb-copy .row{gap:14px;flex-wrap:wrap}.mb-copy .btn.ghost{color:#fff7dc;border-color:#fff7dc70}.mb-status{display:block;font-size:10px;letter-spacing:1.5px;margin-top:30px;color:#d6eab7}
.mb-character-stage{position:relative;height:430px;align-self:end;display:flex;align-items:flex-end;justify-content:center}.mb-stage-ring{position:absolute;bottom:25px;width:85%;height:110px;border-radius:50%;background:radial-gradient(ellipse,#e3f9a330,#bce37c09 65%,transparent 70%);border:1px solid #e7ffd825;transform:rotate(-8deg)}.mb-scene-note{font:500 10px Fredoka,sans-serif;letter-spacing:3px;color:#fff8dca6;position:relative;bottom:-10px}.mb-hero-foot{position:absolute;bottom:25px;left:5%;right:5%;display:flex;justify-content:center;gap:35px;font-size:11px;letter-spacing:3px;color:#dce9b7}.mb-hero-foot i{font-style:normal}
.role-roster .role{padding:24px;text-align:left;cursor:default}.role-roster .role:hover{transform:translateY(-3px)}.role-roster .role-detail{max-height:none;overflow:visible}.role-category{display:block;font-size:11px;letter-spacing:1px;text-transform:uppercase;color:var(--muted);margin-bottom:16px}.role-roster .role h4{font-size:25px}.role-roster .role .align{margin-bottom:8px}.role-roster .role dl{margin-top:16px}.role-roster .role dd{line-height:1.6}
body[data-world="roblox"] .updates-clean .h-big{font-family:Fredoka,sans-serif;paint-order:stroke fill;-webkit-text-stroke:2px #322456;text-shadow:0 3px 0 #322456}
body[data-world="roblox"] .page-heading .lede,body[data-world="roblox"] .community-soon p,body[data-world="roblox"] .about-personal p,body[data-world="roblox"] .empty-note,body[data-world="roblox"] .code-card p{ -webkit-text-stroke:0;text-shadow:none;line-height:1.7}
@media(max-width:1100px){.rh-hero .rh-conveyor{height:400px}.rh-hero .rh-layout{grid-template-columns:54% 46%}.mb-hero{min-height:740px}.launch-clock{margin-right:15px}}
@media(max-width:760px){.rh-hero .rh-layout{grid-template-columns:1fr}.rh-hero .rh-conveyor{height:390px;width:112%;margin:-20px 0 -20px -6%}.rh-hero .rh-factory{padding-top:35px}.rh-hero .rh-factory-heading h2{font-size:40px}.rh-hero .launch-clock{margin:40px 0 0}.rh-hero .rh-library-label{margin-top:25px}.launch-clock strong{font-size:21px}.updates-clean .update-list,.game-library{grid-template-columns:1fr}.update-note{padding:24px}.mb-hero{padding-top:145px;min-height:auto}.mb-hero-grid{grid-template-columns:1fr;gap:0}.mb-copy h1{font-size:100px}.mb-character-stage{height:170px}.mb-hero-foot{gap:20px;font-size:9px}.page-heading{padding-top:180px}.rb-sound{padding:8px 10px;font-size:11px}.rbnav-right{gap:6px}.community-soon{padding:25px}.role-roster{gap:18px}.horror-hero-copy .lede{max-width:520px}}
@media(prefers-reduced-motion:reduce){.update-note,.role-roster .role{transition:none}}
@media(max-width:760px){.rh-hero{padding-top:165px}.rh-hero .rh-topline{margin-bottom:145px}.rh-hero .rh-conveyor{height:360px}}
@media(max-width:640px){.nav .brand>span{display:none}.nav .brand{flex:none}.nav .nav-right{gap:5px}.nav .ws-pill button{padding:10px 11px}.nav .icon-btn{flex:none;width:40px;height:40px;min-width:40px}.section .island>.prop.breakout{right:0!important}.mb-hero .wrap{width:90%}}

/* Responsive controls, reward room and multilingual layouts. */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.language-control{position:fixed;right:max(18px,env(safe-area-inset-right));bottom:max(18px,env(safe-area-inset-bottom));z-index:760;display:flex;align-items:center;gap:8px;padding:5px 10px;border:1px solid #ffffff70;border-radius:99px;background:#fffaf2;color:#302a3e;box-shadow:0 4px 20px #15102125;font:500 14px/1.2 Fredoka,Arial,sans-serif}
.language-control select{appearance:auto;border:0;background:transparent;color:inherit;min-height:36px;max-width:125px;font:inherit;padding:4px;cursor:pointer}
.language-control:focus-within{outline:3px solid #5d44b5;outline-offset:3px}
.rb-sound{display:grid;place-items:center;width:44px;height:44px;min-width:44px;padding:0;flex:none}.rb-sound[aria-pressed="true"]{background:#d7f779;color:#28354c}
body[data-world="pc"] .library-card .btn{background:#bd4b26;color:#fff;border:2px solid #bd4b26;font-weight:700;text-shadow:none;min-height:52px}
body[data-world="pc"] .library-card .btn.ghost{background:#fff8ec;color:#3a2a22;border-color:#765f4b;box-shadow:none}
.library-card{display:flex;flex-direction:column;min-width:0}.library-card>div{display:flex;flex-direction:column;flex:1}.library-actions{margin-top:auto!important;gap:12px;align-items:stretch}.library-actions .btn{flex:1 1 140px;text-align:center;white-space:normal}
.rewards-page{padding:150px 0 100px;color:#2b2446;font-family:Fredoka,Arial,sans-serif}
.rewards-intro{display:flex;align-items:center;justify-content:space-between;gap:45px;padding-bottom:48px}.rewards-intro h1{font:650 clamp(42px,5.4vw,78px)/1.02 Fredoka,Arial,sans-serif;letter-spacing:-2px;color:#fff;margin:18px 0;paint-order:stroke fill;-webkit-text-stroke:2px #322456;text-shadow:0 4px 0 #322456}.rewards-intro h1 em{font-style:normal;color:#e6ff99}.rewards-intro p{font-size:20px;color:#fff;line-height:1.5;text-shadow:none;-webkit-text-stroke:0}.rewards-intro .eyebrow{color:#fff}
.reward-ticket{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;width:240px;min-height:180px;flex:none;border:3px solid #302451;border-radius:24px;transform:rotate(8deg);background:radial-gradient(circle,#ffffff45 2px,transparent 3px) 0 0/18px 18px,#e6ff99;box-shadow:8px 10px 0 #32245655}.reward-ticket>span{font-size:42px}.reward-ticket strong{font-size:30px;letter-spacing:3px}.reward-ticket small{font-size:10px;letter-spacing:2px}
.rewards-workspace{display:grid;grid-template-columns:280px minmax(0,1fr);gap:28px;align-items:start}
.rewards-picker{background:#33275d;padding:22px;border-radius:22px;border:1px solid #ffffff30;color:white;position:sticky;top:110px}.rewards-picker>label{display:block;font-size:15px;margin-bottom:10px}.rewards-picker select{width:100%;min-height:48px;padding:10px;border:1px solid #aa97da;border-radius:12px;background:#fffaf2;color:#30234b;font:500 16px Fredoka,Arial,sans-serif}.reward-game-tabs{display:grid;gap:10px;margin-top:22px}.reward-game{display:grid;grid-template-columns:52px minmax(0,1fr) 12px;gap:10px;align-items:center;min-height:72px;border:1px solid #ffffff28;border-radius:13px;padding:8px;background:#ffffff0a;color:white}.reward-game img{width:52px;height:52px;border-radius:8px;object-fit:cover}.reward-game span{font-size:15px;line-height:1.2;overflow-wrap:anywhere}.reward-game.selected{background:#e6ff99;color:#302451;border-color:#e6ff99}.reward-game:hover{box-shadow:0 0 0 2px #e6ff9977}
.reward-content{border:2px solid #302451;border-radius:24px;overflow:hidden;background:#fffaf2;box-shadow:0 8px 0 #30245140;min-width:0}.reward-selected{display:flex;gap:18px;align-items:center;padding:26px;border-bottom:1px solid #30245120;background:#f0e8ff}.reward-selected>img{width:95px;height:80px;object-fit:cover;border-radius:14px}.reward-selected h2{font-size:clamp(24px,3vw,36px);margin:6px 0;line-height:1.1}.reward-selected .eyebrow{color:#615175!important;font-size:10px;letter-spacing:1.5px}
.reward-content .rg-codes{padding:28px;background:none;border:0}.reward-content .wrap{width:100%}.reward-content .rg-codes .h-big{display:none}.reward-content .rg-codes>.wrap>.eyebrow{display:none}.reward-content .lede{font:400 16px/1.65 Fredoka,Arial,sans-serif;color:#645a72;text-shadow:none;-webkit-text-stroke:0}
body[data-world="roblox"] .reward-content :is(h2,h3,p,li,a,span){-webkit-text-stroke:0;text-shadow:none}.reward-content h2,.reward-content h3{color:#302451}.reward-content .empty-note{background:#f4f0fa;border:1px dashed #b9aaca;text-align:center;padding:30px 20px;border-radius:18px;color:#514660}.reward-empty>span{display:grid;place-items:center;width:56px;height:56px;border-radius:16px;background:#e7dffc;color:#614295;margin:0 auto 18px;font-size:30px}.reward-empty h3{font-size:24px;margin:0 0 10px}.reward-empty p{font-size:16px;line-height:1.7;max-width:440px;margin:0 auto 22px}.reward-empty a,.reward-help>a{display:inline-block;color:#4a3179!important;font-weight:600;text-decoration:underline;text-underline-offset:4px;line-height:1.5;padding:8px 0}
.reward-help{padding:0 28px 28px}.reward-help h3{font-size:21px;margin:0 0 15px}.reward-help ol{margin:0 0 15px;padding-left:22px;color:#645a72;font-size:15px;line-height:1.7}.reward-help li{padding-left:5px;margin:8px 0}
:where(.wrap,.row,.features,.portals,.game-library,.rg-hero-grid,.rg-shots,.contact-grid,.footer-cols,.roles)>*{min-width:0}
:where(h1,h2,h3,h4,p,li,dd,.badge,.btn){overflow-wrap:break-word}.row{flex-wrap:wrap}.btn{white-space:normal;text-align:center}.field :is(input,select,textarea){max-width:100%;font-size:16px}.panel{width:100%}.footer{padding-bottom:100px}.footer-bottom{flex-wrap:wrap;gap:20px}.footer-cols{grid-template-columns:repeat(auto-fit,minmax(min(100%,150px),1fr))}
:where(a,button,input,textarea,select,summary):focus-visible{outline:3px solid #a5b537;outline-offset:4px}.faq summary{min-height:48px;padding-right:35px}.role-tabs{display:flex;flex-wrap:wrap;gap:10px}.role-tab{min-height:44px}.lightbox{padding:70px 18px}.lightbox figure{max-width:100%;max-height:85dvh;overflow:auto}.lightbox img{max-height:72dvh;object-fit:contain}
html[lang="ru"]{--font-body:Arial,sans-serif;--font-display:Arial,sans-serif}html[lang="ru"] :is(h1,h2,h3,h4,.eyebrow,.btn){letter-spacing:0!important}html[lang="ru"] .rh-hero h1{font-size:clamp(30px,3.8vw,53px)}
@media(max-width:1250px){.nav-links{display:none}.nav .burger{display:flex}.nav .brand{margin-right:auto}.nav{gap:12px}.rewards-workspace{grid-template-columns:240px minmax(0,1fr)}.rewards-intro h1{font-size:clamp(42px,6vw,66px)}}
@media(max-width:900px){.rewards-workspace{grid-template-columns:1fr}.rewards-picker{position:static}.reward-game-tabs{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:16px}.reward-game{grid-template-columns:48px minmax(0,1fr)}.reward-game b{display:none}.reward-game img{width:48px;height:48px}.reward-ticket{width:180px;min-height:160px}.rewards-intro{gap:25px}.rbnav-right{flex-wrap:wrap;justify-content:flex-end}.rb-menu{position:absolute;right:0;top:64px;max-height:calc(100dvh - 95px);overflow-y:auto;width:min(300px,90vw)}.rb-menu a{font-size:20px;min-height:44px;display:flex;align-items:center}.rg-hero-grid{grid-template-columns:1fr}.rg-cover{max-width:650px;width:100%;justify-self:center}.rg-hero-copy{max-width:720px}.mb-hero-grid{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr)}}
@media(max-width:760px){.rewards-page{padding:130px 0 70px}.rewards-intro{padding-bottom:30px}.rewards-intro h1{font-size:clamp(38px,8vw,58px);letter-spacing:-1px}.rewards-intro p{font-size:17px}.reward-ticket{width:120px;min-height:125px}.reward-ticket>span{font-size:25px}.reward-ticket strong{font-size:20px}.reward-ticket small{font-size:7px}.game-library{grid-template-columns:1fr}.library-card .row .btn{width:auto}.mb-hero-grid{grid-template-columns:1fr}.rh-hero h1{white-space:normal!important;line-height:1.08;font-size:clamp(29px,7vw,48px)!important;letter-spacing:-1px}.rh-hero .rh-banner{padding:25px 20px}.rh-hero .rh-go{min-height:48px;font-size:20px}.rh-hero .rh-card-caption small{display:none}.rh-hero .rh-footer{flex-wrap:wrap}.h-big{font-size:clamp(28px,7vw,46px);line-height:1.12}.features,.portals,.scrapbook,.codes-grid,.roles,.tiles{grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr))}.rg-shots,.rg-page .features{grid-template-columns:1fr}.rg-page .section,.section{padding-block:58px}.section.page-heading{padding-top:140px}.section.codes-heading{padding-bottom:0}.rg-hero{padding-top:135px}.launch-clock{margin-right:0}.contact-card{padding:23px}.mb-copy h1{font-size:clamp(76px,18vw,100px)}.library-actions .btn{flex-basis:160px}.rewards-intro .eyebrow{font-size:10px;letter-spacing:1px}.horror-hero-copy h1{font-size:clamp(65px,16vw,110px)}}
@media(max-width:600px){.reward-ticket{display:none}.reward-game-tabs{grid-template-columns:1fr;gap:8px}.reward-game{grid-template-columns:44px minmax(0,1fr) 16px;min-height:58px}.reward-game b{display:block}.reward-game img{width:44px;height:38px}.rewards-picker{padding:16px}.reward-selected{padding:20px;gap:12px}.reward-selected>img{width:70px;height:64px}.reward-content .rg-codes{padding:22px 18px}.reward-help{padding:0 18px 24px}.reward-empty{padding:24px 14px!important}.reward-empty h3{font-size:22px}.reward-game-tabs{display:none}.language-control{right:12px;bottom:max(12px,env(safe-area-inset-bottom));padding:4px 8px}.language-control select{font-size:16px;max-width:110px;min-height:36px}.language-control svg{width:18px}.rbnav{padding:12px;gap:8px}.rbnav-left{gap:7px}.rb-logo{width:40px;height:40px}.rb-pill{padding:7px 13px;gap:14px;min-height:44px}.rb-burger i{width:25px;height:3px}.rb-avatar svg{width:26px;height:26px}.rbnav-right{gap:6px}.rb-auth{padding:8px 10px;gap:9px;font-size:12px;max-width:150px;flex-wrap:wrap}.rb-auth a{font-size:12px}.rb-sound{width:44px;min-width:44px;height:44px}.nav .brand img{width:28px;height:28px}.nav .nav-right{gap:3px}.nav .ws-pill{padding:2px}.nav .ws-pill button{padding:10px 8px;font-size:9px;letter-spacing:.3px}.nav .icon-btn{width:40px;min-width:40px;height:44px}.nav{padding:8px 9px;gap:5px}.mobile-menu{padding:75px 20px 85px;overflow-y:auto;align-content:start;gap:8px}.mobile-menu a{font-size:clamp(22px,6vw,32px);min-height:44px;display:flex;align-items:center}.mobile-menu .btn{width:auto}.footer-cols{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.footer a{overflow-wrap:anywhere}.rb-window-body{grid-template-columns:1fr!important}.rb-card{padding:18px}.rb-card .btn{max-width:100%;margin:8px 0}.rh-hero .rh-cards{padding-right:8px}.rh-hero .rh-card-caption strong{font-size:12px}.rh-hero .rh-footer>span{max-width:none}.horror-ui{top:100px}.horror-ui span:last-child{margin-top:25vh}.horror-hero{min-height:720px}.horror-hero-copy{padding-top:220px}.routine-item{grid-template-columns:65px minmax(0,1fr)}.link-row{flex-wrap:wrap;gap:16px}.link-row .btn{width:auto}.panel{padding:24px 18px}.mb-copy .eyebrow{letter-spacing:1px;font-size:10px}}
@media(max-width:380px){.nav #avatar-mini{display:none}.rb-auth{max-width:112px}.rbnav-left .rb-pill{gap:10px;padding:7px 10px}.rbnav{padding-inline:8px}.rbnav-left{gap:5px}.rb-auth a{font-size:11px}.rh-hero .rh-avatar{width:135px;right:0}.rh-hero .rh-banner{width:97%}.rh-hero .rh-card-caption strong{font-size:11px}.rh-hero .rh-go{right:-4px;padding:10px 16px}.footer-cols{gap:18px}.h-mega{font-size:clamp(32px,11vw,48px)}}
@media(max-width:900px),(max-height:650px){.pc-world-slider{height:auto;min-height:100svh;align-items:stretch}.pc-world-panel{height:auto;min-height:100svh;overflow:visible;align-content:center;padding-bottom:100px}.pc-panel-gallery{max-height:none}.pc-panel-copy .btn{max-width:100%;white-space:normal}.pc-next-world{max-width:70%;white-space:normal}.pc-slide-count{bottom:35px}.pc-panel-gallery figcaption{font-size:10px;line-height:1.4}.pc-world-panel>div{min-width:0}}
@media(max-width:600px){.pc-world-panel{grid-template-columns:1fr;padding:130px 20px 105px;gap:26px}.pc-panel-copy{align-self:auto}.pc-panel-copy h1,.pc-panel-copy h2{font-size:clamp(52px,16vw,82px)}.pc-panel-gallery{align-self:auto}.pc-next-world{bottom:45px}.pc-slide-count{bottom:45px}}
@media(hover:none),(pointer:coarse){body.cursor-ready,body.cursor-ready a,body.cursor-ready button{cursor:auto}#cursor{display:none}.btn,.icon-btn,.rh-motion,.rb-burger{min-height:44px}.library-card:hover,.portal:hover,.role:hover{transform:none}.rh-hero .rh-card:hover{transform:rotate(var(--angle))}.btn:active{filter:brightness(.95)}}
