*{box-sizing:border-box}body{margin:0;background:#fff;color:#25262b;font:16px system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}header,main{max-width:980px;margin:auto;padding:22px}header{padding-top:max(22px,env(safe-area-inset-top))}h1{font-size:27px;margin:0 0 10px;letter-spacing:-1px}header span,.meta{color:#6a6e78}main{padding-top:0;padding-bottom:115px;min-height:80vh}h2{font-size:21px;letter-spacing:-.4px;margin:26px 0 16px}.section-head{display:flex;justify-content:space-between;align-items:center}.section-head h2{margin-bottom:16px}button,input,select{font:inherit}button{cursor:pointer;border:1px solid #858b982e;background:#ffffffbd;color:inherit;border-radius:12px;padding:10px 14px;backdrop-filter:blur(18px);transition:transform .15s,background .15s}button:hover{transform:translateY(-2px);background:#eaedf1}button:active{transform:scale(.97)}button:focus-visible,a:focus-visible{outline:3px solid #4988ff;outline-offset:3px}button.active{background:#25272c;color:white}input[type=search]{width:100%;border:0;background:#f1f2f4;border-radius:14px;padding:14px 16px;color:#25262b}.categories{display:flex;gap:8px;overflow:auto;margin-top:14px;padding-bottom:4px}.categories button{white-space:nowrap;font-size:14px}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 16px}.continue,.saved-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.card{min-width:0;position:relative}.launch{display:block;border:0;padding:0;background:none;text-align:left;width:100%;backdrop-filter:none}.launch:hover{background:none}.launch img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:12px}.continue img,.saved-grid img{aspect-ratio:1}.name{display:block;font-size:15px;font-weight:650;margin:8px 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.meta{font-size:12px}.save{position:absolute;right:6px;top:6px;min-width:36px;height:36px;padding:4px;background:#ffffffa8;box-shadow:0 2px 12px #0002}.save[aria-pressed=true]{background:#25272cc9;color:white}nav{position:fixed;bottom:0;left:0;right:0;display:flex;justify-content:center;gap:8px;padding:12px 12px max(12px,env(safe-area-inset-bottom));background:#ffffffb8;backdrop-filter:blur(24px) saturate(150%);border-top:1px solid #ffffffa8;box-shadow:0 -4px 25px #00000008;z-index:3}nav button{flex:1;max-width:210px;font-size:14px}.wallpapers{display:flex;flex-wrap:wrap;gap:10px}.wallpapers button{min-width:90px;height:68px}body[data-wallpaper=sky]{background:linear-gradient(145deg,#9ccfff,#e6f2ff 50%,#a9d0ff);background-attachment:fixed}body[data-wallpaper=silver]{background:linear-gradient(135deg,#d3d6df,#fff,#b4bac6);background-attachment:fixed}body[data-wallpaper=violet]{background:linear-gradient(135deg,#b8a5f5,#eee9ff,#c6c9f5);background-attachment:fixed}body[data-wallpaper=midnight]{background:linear-gradient(135deg,#31343f,#14151a);color:#fff;background-attachment:fixed}body[data-wallpaper=midnight] .meta,body[data-wallpaper=midnight] header span{color:#c9cad2}dialog{max-width:360px;border:1px solid #fff8;border-radius:24px;padding:24px;box-shadow:0 12px 80px #0004}dialog::backdrop{background:#1115;backdrop-filter:blur(6px)}dialog p{line-height:1.5}#player{position:fixed;inset:0;background:#111;z-index:10;color:white;padding-top:env(safe-area-inset-top)}#player[hidden]{display:none}#player iframe{width:100%;height:calc(100% - 56px);border:0}#exit-game{height:48px;background:#222;color:#fff}.setting{display:flex;justify-content:space-between;align-items:center;padding:18px 0;border-bottom:1px solid #9993}.empty{color:#767b84;margin-top:36px}@media(min-width:800px){.grid{grid-template-columns:repeat(3,minmax(0,1fr))}.continue{grid-template-columns:repeat(3,160px)}.saved-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}body.reduce-motion *{transition:none!important}
body.playing{overflow:hidden}#player{display:flex;flex-direction:column;padding-bottom:env(safe-area-inset-bottom)}#exit-game{flex:none;align-self:flex-start}#player iframe{display:block;flex:1;min-height:0;height:auto}
/* Game loader (Roblox-style): blurred art backdrop, art tile in the centre, name below, until the game reports ready */
#exit-game{position:relative;z-index:2}
#loading{position:absolute;inset:0;z-index:1;display:grid;place-items:center;overflow:hidden;background:#15161b;opacity:1;transition:opacity .35s ease}
#loading[hidden]{display:none}
#loading.done{opacity:0;pointer-events:none}
.loader-bg{position:absolute;inset:-60px;background:var(--art) center/cover no-repeat;filter:blur(28px) saturate(130%);transform:scale(1.15)}
.loader-bg::after{content:"";position:absolute;inset:0;background:#0d0e1366}
.loader-body{position:relative;display:flex;flex-direction:column;align-items:center;gap:14px;padding:24px;max-width:320px;text-align:center}
.loader-icon{width:136px;height:136px;object-fit:cover;object-position:center;border-radius:30px;box-shadow:0 14px 40px #0007,0 0 0 3px #ffffff3d;background:#ffffff1a;animation:loader-pop .45s cubic-bezier(.2,1.4,.4,1) both}
.loader-name{margin:4px 0 0;font-size:21px;font-weight:750;letter-spacing:-.3px;color:#fff;text-shadow:0 2px 10px #0009}
.loader-dots{display:flex;gap:7px;height:12px}
.loader-dots span{width:9px;height:9px;border-radius:50%;background:#fff;opacity:.35;animation:loader-dot 1.1s ease-in-out infinite}
.loader-dots span:nth-child(2){animation-delay:.18s}.loader-dots span:nth-child(3){animation-delay:.36s}
#loading.failed .loader-dots{display:none}
.loader-note{margin:0;font-size:14px;line-height:1.45;color:#ffffffd9;text-shadow:0 1px 6px #0009}
.loader-retry{background:#fff;color:#25262b;font-weight:650;border:0}
@keyframes loader-dot{0%,100%{opacity:.35;transform:translateY(0)}40%{opacity:1;transform:translateY(-5px)}}
@keyframes loader-pop{from{opacity:0;transform:scale(.82)}to{opacity:1;transform:scale(1)}}
body.reduce-motion .loader-icon,body.reduce-motion .loader-dots span{animation:none}
/* Launch screen (also shows right after the native splash in the app) */
#launch{position:fixed;inset:0;z-index:30;display:grid;place-items:center;background:linear-gradient(180deg,#4fb8f7,#a6e0ff);transition:opacity .4s ease}
#launch img{width:min(68vw,360px);height:auto;filter:drop-shadow(0 10px 24px #0b4a8a33);animation:loader-pop .5s cubic-bezier(.2,1.4,.4,1) both}
#launch.done{opacity:0;pointer-events:none}
body.reduce-motion #launch img{animation:none}
