@font-face{font-family:"TerraForge Tagline Pixel";src:url("./assets/fonts/login-tagline/terraforge-tagline-pixel.woff2") format("woff2");font-style:normal;font-weight:400;font-display:swap}
/* Original game scenery with TerraForge's own refined vector brand. */
body .modal-backdrop:has(>.login-screen){padding:0;backdrop-filter:none;overflow:hidden;background:#4f9ce8}
body .modal.account-modal.login-screen{position:relative;width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;padding:0;border:0;border-radius:0;overflow:hidden;background:#75b5ef;box-shadow:none;isolation:isolate}
body .login-screen>.modal-close{position:absolute;top:22px;right:26px;z-index:20;width:40px;height:40px;border:0;background:transparent;color:#fff;box-shadow:none}
.terraria-login{position:relative;width:100%;height:100%;min-height:0;overflow:hidden;isolation:isolate;user-select:none;--login-daylight:1;--login-sky-top:61,137,229;--login-sky-bottom:166,220,252;color:#fff;font-family:Inter,'Noto Sans SC','Microsoft YaHei',sans-serif}
.login-sky{position:absolute;inset:0;z-index:-6;background:linear-gradient(rgb(var(--login-sky-top)),rgb(var(--login-sky-bottom)))}
.login-stars{position:absolute;inset:0;z-index:-5;opacity:var(--login-stars,0);pointer-events:none}.login-stars i{position:absolute;width:2px;height:2px;background:#e7f5ff;box-shadow:1px 0 #d9f0ff,0 1px #d9f0ff;animation:login-star 4s steps(2,end) infinite alternate}
.login-clouds{position:absolute;inset:0;z-index:-4;pointer-events:none;opacity:calc(.25 + var(--login-daylight)*.75)}.login-clouds img{position:absolute;top:var(--cloud-y);width:var(--cloud-width);height:auto;image-rendering:pixelated;animation:login-cloud var(--cloud-duration) linear var(--cloud-delay) infinite;will-change:transform}
.login-celestial{position:absolute;left:0;top:0;z-index:2;width:114px;height:114px;display:grid;place-items:center;padding:0!important;border:0!important;outline:none!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;cursor:grab;touch-action:none;user-select:none;will-change:transform;transition:none!important}.login-celestial img{width:114px;height:114px;object-fit:contain;pointer-events:none;image-rendering:pixelated}.login-celestial[data-night=true] img{width:60px;height:60px;object-fit:cover;object-position:top}.login-celestial.is-dragging{cursor:grabbing}.login-celestial:focus-visible{outline:none!important;filter:brightness(1.18)}
.login-landscape{position:absolute;inset:0;z-index:-2;pointer-events:none}.login-landscape-layer{position:absolute;left:0;width:calc(100% + var(--login-tile-width));background-repeat:repeat-x;background-position:left bottom;background-size:var(--login-tile-width) 100%;image-rendering:pixelated;animation:login-terrain var(--terrain-duration) linear infinite;will-change:transform}.login-landscape-0{bottom:0;height:62%;--login-tile-width:calc(62dvh * 2.354023);--terrain-duration:210s}.login-landscape-1{bottom:-8%;height:62%;--login-tile-width:calc(62dvh * 2.354023);--terrain-duration:170s}.login-landscape-2{bottom:-10%;height:56%;--login-tile-width:calc(56dvh * 2.959538);--terrain-duration:135s}.login-landscape-3{bottom:-12%;height:51%;--login-tile-width:calc(51dvh * 2.959538);--terrain-duration:105s}.login-landscape-4{bottom:-23%;height:58%;--login-tile-width:calc(58dvh * 2.133333);--terrain-duration:78s}.login-landscape-shade{position:absolute;inset:0;background:#06122f;mix-blend-mode:multiply;opacity:calc((1 - var(--login-daylight))*.87)}
.login-title{position:absolute;top:4%;left:50%;transform:translateX(-50%);display:flex;align-items:center;justify-content:center;gap:8px;width:min(760px,calc(100% - 40px));height:34dvh;pointer-events:none;z-index:4;filter:drop-shadow(0 10px 12px #102b354d)}.login-emblem{position:relative;display:block;flex:none;width:min(34dvh,260px);max-height:100%;aspect-ratio:128/51}.login-emblem img{display:block;position:absolute;user-select:none}.login-emblem-hands{left:0;top:15.686275%;width:100%;height:83.660131%;image-rendering:auto}.login-emblem-pixie{left:39.0625%;top:13.72549%;width:32.8125%;height:58.823529%;image-rendering:pixelated;transform:scale(2);transform-origin:33.333333% 86.666667%}.login-emblem-front{position:absolute;inset:0;clip-path:inset(66.666667% 0 0)}.login-brand-filters{position:absolute;pointer-events:none}.login-wordmark{position:relative;display:block;flex:none;width:clamp(250px,31vw,400px)}.login-wordmark>img{display:block;width:100%;height:auto;image-rendering:pixelated}.login-wordmark>.login-wordmark-night{position:absolute;inset:0;filter:url(#login-title-corruption);opacity:0;transition:opacity 2.1s linear}.terraria-login[data-night=true] .login-wordmark-night{opacity:1}
.login-screen .login-menu{position:absolute;left:50%;top:42%;transform:translateX(-50%);width:min(430px,calc(100% - 28px));max-height:48%;overflow-y:auto;overflow-x:hidden;text-align:center;z-index:5;padding:18px 26px 24px;scrollbar-width:thin;text-shadow:0 2px 8px #10273b99}.login-screen .login-menu h2{font-size:29px!important;font-weight:550;line-height:1.5;letter-spacing:1px;margin:0 0 10px!important;color:#fff!important}.login-screen .login-subtitle,.login-screen #demo-register-form>p{color:#f0f6fa!important;font-size:14px!important;line-height:1.8;margin:0 0 23px!important;font-weight:400}
.login-screen .login-menu-action,.login-screen .login-menu-back{display:block;width:fit-content;max-width:calc(100% - 24px);margin:0 auto;border:0!important;border-radius:0!important;outline:none!important;box-shadow:none!important;background:transparent!important;color:#fff!important;padding:12px 18px!important;font-size:25px;font-weight:550;letter-spacing:.8px;text-shadow:0 3px 10px #102337bb;transform-origin:center;transition:transform .22s cubic-bezier(.2,.7,.2,1),color .18s,text-shadow .18s;will-change:transform}.login-screen .login-menu-action:hover,.login-screen .login-menu-action:focus-visible,.login-screen .login-menu-back:hover,.login-screen .login-menu-back:focus-visible{color:#fff2b4!important;transform:translateY(-4px) scale(1.07);text-shadow:0 7px 18px #0c2035cc,0 0 20px #fff1ab33}.login-screen .login-menu-action:disabled{opacity:.5}.login-screen .login-menu-back{font-size:15px;margin-top:12px}.login-screen .login-service-note{display:block;font-size:11px;font-weight:400;color:#e0ebef;margin:8px 0}.login-screen .login-privacy{font-size:11px!important;line-height:1.8!important;color:#dce8ec!important;margin:19px 0 0!important;font-weight:400}.login-screen .account-error{user-select:text;color:#ffdbb7!important;max-width:360px;margin:10px auto!important;overflow-wrap:anywhere}.login-screen .account-error:empty{display:none}
.terraria-login .login-scene-footer{position:absolute;left:0;bottom:0;width:100%;display:flex;justify-content:space-between;align-items:center;gap:12px;margin:0;padding:13px 25px;border:0;border-radius:0;background:transparent;box-shadow:none;color:#dceada;font-size:10px;line-height:1.6;text-shadow:0 1px 4px #10231c;z-index:6}.login-scene-footer a{text-decoration:none;color:inherit}
.terraria-login[data-paused=true] .login-clouds img,.terraria-login[data-paused=true] .login-stars i,.terraria-login[data-paused=true] .login-landscape-layer{animation-play-state:paused!important}
@keyframes login-cloud{from{transform:translate3d(-320px,0,0)}to{transform:translate3d(calc(100vw + 320px),0,0)}}@keyframes login-star{from{opacity:.45}to{opacity:1}}@keyframes login-terrain{from{transform:translate3d(0,0,0)}to{transform:translate3d(calc(-1 * var(--login-tile-width)),0,0)}}
@media(max-width:600px){.login-title{top:5%;width:calc(100% - 24px);height:min(28dvh,180px);gap:6px}.login-emblem{max-width:44vw}.login-wordmark{width:clamp(130px,42vw,205px)}.login-screen .login-menu{top:41%;max-height:46%;width:calc(100% - 20px);padding:16px 22px 24px}.login-screen .login-menu h2{font-size:26px!important}.login-screen .login-menu-action{font-size:23px}.login-screen .login-subtitle,.login-screen #demo-register-form>p{font-size:13px!important}.terraria-login .login-scene-footer{padding:12px 18px;font-size:9px;align-items:flex-start;flex-direction:column;gap:4px}.login-celestial,.login-celestial img{width:90px;height:90px}.login-landscape-0{height:57%;--login-tile-width:calc(57dvh * 2.354023)}}
@media(max-height:560px) and (min-width:601px){.login-title{top:2%;width:min(620px,calc(100% - 40px));height:30dvh;gap:8px}.login-screen .login-menu{top:35%;max-height:55%;padding-top:10px}.login-screen .login-menu h2{font-size:23px!important;margin-bottom:5px!important}.login-screen .login-subtitle{margin-bottom:9px!important}.login-screen .login-menu-action{font-size:22px;padding:8px 16px!important}.login-screen .login-privacy{margin-top:10px!important}}
/* This scene's continuous gentle motion is explicitly requested; avoid flicker and abrupt hover motion. */
@media(prefers-reduced-motion:reduce){.terraria-login .login-wordmark-night{transition:opacity 2.1s linear!important}.login-stars i{animation:none!important}.login-clouds img{animation:login-cloud calc(var(--cloud-duration) * 1.8) linear calc(var(--cloud-delay) * 1.8) infinite!important}.login-landscape-layer{animation:login-terrain calc(var(--terrain-duration) * 1.8) linear infinite!important}.login-screen .login-menu button{transition:none!important}}
#app:not([data-session-ready]),body:has(.login-required) #app{visibility:hidden}
html:has(.login-required),body:has(.login-required){overflow:hidden}

/* The detailed emblem downsamples smoothly at small brand sizes. */
img.brand-mark{image-rendering:auto}

/* Login takes the upper menu slot; browsing is an explicit guest action below. */
.login-entry-primary{min-height:120px}
@media(max-height:560px) and (min-width:601px){.login-entry-primary{min-height:88px}}

/* Keep the tagline directly beneath the website wordmark. */
.login-screen .login-brand-tagline{position:absolute;left:50%;top:calc(100% - 6px);transform:translateX(-50%);display:block;width:max-content;max-width:100%;margin:0;color:#f0f6fa;font-family:"TerraForge Tagline Pixel","Microsoft YaHei",sans-serif;font-size:24px!important;font-weight:400;line-height:1.25;letter-spacing:1px;text-align:center;white-space:nowrap;text-shadow:2px 2px 0 #233d35,-1px 0 0 #233d35,0 -1px 0 #233d35,1px 0 0 #233d35,0 1px 0 #233d35}
@media(max-width:600px){.login-screen .login-brand-tagline{top:calc(100% - 2px);font-size:18px!important;letter-spacing:.5px}}
@media(max-height:560px) and (min-width:601px){.login-screen .login-brand-tagline{top:calc(100% - 6px);font-size:18px!important}}
