/* The tree, castle and mascot remain a static illustration inside a centered portal. */
body:not(.exploring){display:block;height:auto;min-height:100svh;background:radial-gradient(ellipse at 50% 35%,#244537 0,#122b23 50%,#0b1b18 100%)}
body:not(.exploring) #main{display:block;min-height:0;height:auto;width:calc(100% - 64px);max-width:1320px;margin:22px auto 0}
.portal-header{width:calc(100% - 64px);max-width:1320px;min-height:78px;margin:0 auto;display:flex;align-items:center;justify-content:center;border-bottom:1px solid #e6c17c24;color:#d2dac6;font:600 13px/1.3 system-ui,sans-serif}
.portal-navigation{display:flex;align-items:center;justify-content:center;gap:12px}
.portal-navigation a,.portal-navigation button{position:relative;display:flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:10px 19px;border:1px solid transparent;border-radius:8px;background:none;color:inherit;font:inherit;letter-spacing:.025em;white-space:nowrap;transition:background .18s,color .18s}
.portal-navigation svg{width:15px;height:15px}
.portal-navigation .portal-active{background:linear-gradient(#d9bc7c12,#d9bc7c05);border-color:#e0c18335;color:#f5d99b;box-shadow:inset 0 1px #fff0c412}
.portal-navigation a:hover,.portal-navigation button:hover{color:#fff0c9;background:#ffffff08}
.portal-frame{padding:10px;border:1px solid #be9d5b66;border-radius:20px;background:#142d25;box-shadow:0 25px 75px #030f0c70,inset 0 1px #e2c99222}
.landing-world{aspect-ratio:1672/941;width:100%;position:relative;overflow:hidden;border-radius:11px;isolation:isolate;background:#24170e;container-type:inline-size}
.welcome-scene{position:absolute;inset:0;width:100%;height:100%;container-type:inline-size}
.welcome-art{position:absolute;inset:0;display:block;pointer-events:none;user-select:none}
.welcome-art img{width:100%;height:100%;display:block;object-fit:cover}
/* Keep the full form above the mascot. Only the narrow Google/language column extends lower. */
.welcome-panel{position:absolute;left:11.4%;top:3.8%;width:27.5%;z-index:2}
.welcome-logo{width:113%;margin:0 0 .35cqw -6.5%;padding:0;line-height:0;filter:none}
.welcome-logo img{display:block;width:100%;height:auto}
.welcome-form{display:flex;flex-direction:column;gap:0;margin:0}
.welcome-field{position:relative;display:flex;align-items:center;width:100%;height:3.7cqw;margin:0 0 .75cqw;padding:.28cqw .5cqw .28cqw .6cqw;isolation:isolate;border:.14cqw solid #c99a52;border-radius:1cqw;background:linear-gradient(180deg,#372314e6,#24160eee),url('assets/homepage/woodgrain.svg') center/100% 100%;box-shadow:0 .2cqw .14cqw #140c08aa,0 0 0 .12cqw #3c2410,inset 0 .09cqw #ffdf977d,inset 0 -.09cqw #7a4d2b,inset 0 0 0 .2cqw #26170d}
.welcome-field:before,.welcome-button:before{content:'';position:absolute;inset:.22cqw;border:1px solid #ffe0a338;border-radius:.7cqw;pointer-events:none;z-index:-1}
.welcome-field:focus-within{border-color:#ffe1a0;box-shadow:0 .18cqw .12cqw #100804,0 0 0 .13cqw #311a0b,0 0 0 .28cqw #ffda8c55,inset 0 .12cqw .1cqw #ffe5a58a,inset 0 0 0 .22cqw #261407}
.welcome-field-icon{width:3.3cqw;height:2.6cqw;display:grid;place-items:center;flex:none;border-right:1px solid #c9974e30;color:#e4b86c;filter:drop-shadow(0 1px 1px #150900)}
.welcome-field-icon svg{width:1.7cqw;height:1.7cqw}
.welcome-field-icon .password-lock{width:1.75cqw;height:1.95cqw;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.welcome-field input{display:block;width:100%;min-width:0;height:100%;padding:.2cqw .9cqw;color:#fff0ce;background:transparent;border:0;border-radius:0;outline:none;font:400 1.57cqw/1.2 Georgia,'Times New Roman',serif;text-shadow:0 2px 2px #120a06;box-shadow:none}
.welcome-field input::placeholder{color:#ebd8b7;opacity:1}
.welcome-field input:focus-visible{outline:none}
.welcome-field input:-webkit-autofill{-webkit-text-fill-color:#fff0ce;box-shadow:0 0 0 100px #301d12 inset;caret-color:#fff0ce}
.welcome-password{margin-bottom:0}
.welcome-reveal{flex:none;display:grid;place-items:center;width:3cqw;height:2.8cqw;padding:.5cqw;border:0;background:none;border-radius:.5cqw;color:#d9bb80}
.welcome-reveal svg{width:1.6cqw;height:1.6cqw;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.eye-slash{display:none}.welcome-reveal[aria-pressed=true] .eye-slash{display:block}
.welcome-reveal:hover{background:#f5cf7f18;color:#fff0c6}
.welcome-forgot{align-self:center;min-height:2.9cqw;padding:.6cqw .5cqw;background:none;color:#f4e2c2;font:400 1.15cqw/1.3 Georgia,'Times New Roman',serif;text-shadow:0 2px 3px #160b05,0 0 8px #160b05}
.welcome-forgot:hover{text-decoration:underline;text-underline-offset:4px}
.welcome-button{position:relative;display:flex;align-items:center;justify-content:center;isolation:isolate;min-height:4.3cqw;padding:.5cqw 2.6cqw;border:.16cqw solid #efcb7f;border-radius:1.1cqw;color:#fff1c1;font:700 2cqw/1.1 Georgia,'Times New Roman',serif;letter-spacing:.015em;text-shadow:0 2px 2px #112618,0 -1px #fff0c833;box-shadow:0 .26cqw 0 #40270e,0 .38cqw .35cqw #150c0799,0 0 0 .13cqw #61401c,inset 0 .12cqw .12cqw #fff0b878,inset 0 -.16cqw .23cqw #0e211b99,inset 0 0 0 .19cqw #805923;transition:filter .16s ease,transform .16s ease}
.welcome-enter{background:linear-gradient(180deg,#337354dc,#1a583ded 46%,#10402ded),url('assets/homepage/woodgrain.svg') center/100% 100%}
.welcome-button:before{inset:.28cqw;border-color:#e8c67a66;border-radius:.72cqw}
.welcome-create{margin-top:.85cqw;min-height:4.1cqw;font-size:1.8cqw;color:#fff1cd;background:linear-gradient(180deg,#a66a34dc,#78451fef 50%,#5a3218ed),url('assets/homepage/woodgrain.svg') center/100% 100%;text-shadow:0 2px 2px #2f1707}
.welcome-arrow{position:absolute;right:1.7cqw;top:50%;transform:translateY(-50%);width:1.6cqw;height:1.6cqw;fill:none;stroke:#f8dea1;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 1px 1px #203719)}
.button-sprig{position:absolute;left:.4cqw;top:.4cqw;width:1.9cqw;height:1.9cqw;fill:#d8b16c;stroke:#d8b16c;stroke-width:1.2;filter:drop-shadow(0 1px 1px #34200e);pointer-events:none}
.button-sprig-end{left:auto;right:.4cqw;top:auto;bottom:.4cqw;transform:rotate(180deg)}
.welcome-enter .button-sprig-end{display:none}
.welcome-button:hover:not(:disabled){filter:brightness(1.13);transform:translateY(-2px)}
.welcome-button:active:not(:disabled){transform:translateY(1px)}
.welcome-form button:disabled,.welcome-form input:disabled{opacity:.65;cursor:wait}
.welcome-form[aria-busy=true] .welcome-enter{filter:saturate(.6)}
.welcome-alternatives{display:flex;flex-direction:column;align-items:center;gap:.65cqw;margin-top:1.25cqw}
.welcome-google{display:grid;place-items:center;width:3.25cqw;height:3.25cqw;min-width:40px;min-height:40px;padding:.65cqw;border:1px solid #f8ead1;border-radius:50%;background:#fffdf8;box-shadow:0 2px 0 #a7814a,0 4px 12px #1c100c66,inset 0 1px 1px #fff;transition:background .18s,transform .18s}
.welcome-google svg{display:block;width:100%;height:100%}
.welcome-google:hover:not(:disabled){background:#fff;transform:translateY(-2px)}
.welcome-google:active:not(:disabled){transform:translateY(1px)}
.welcome-language{display:flex;align-items:center;gap:.45cqw;padding:.3cqw .55cqw;color:#eedec1;background:#28190e70;border:1px solid #e8c48724;border-radius:20px;font:500 .78cqw/1.4 system-ui,sans-serif;text-shadow:0 1px 2px #120a06;cursor:default}
.welcome-language svg{display:block;width:1.45cqw;height:auto;min-width:18px;box-shadow:0 1px 3px #100b0880;border-radius:2px}
.welcome-feedback{position:relative}.welcome-feedback p:not(:empty){margin:12px 0 0;padding:10px 13px;border:1px solid #d5ac665c;border-radius:8px;background:#20150ef5;font:13px/1.45 system-ui,sans-serif;box-shadow:0 4px 12px #170b0866}
.welcome-login-help{margin:0;padding:12px 10px 2px;color:#b9c4ad;text-align:center;text-wrap:balance;font:500 11px/1.5 system-ui,sans-serif}
.welcome-panel :focus-visible,.portal-header :focus-visible,.portal-footer :focus-visible{outline:2px solid #fff0b5;outline-offset:4px}
.portal-footer.portal-footer{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:12px 26px;width:calc(100% - 64px);max-width:1320px;margin:0 auto;padding:22px 2px 30px;border:0;color:#a6b5a4;font:12px/1.5 system-ui,sans-serif}
.portal-footer nav{display:flex;align-items:center;gap:12px}.portal-footer nav button{padding:5px 0;background:none;color:#c1c9b6;font:inherit}.portal-footer nav button:hover{color:#f2d89a}.portal-footer nav>span{color:#687d6b}.portal-footer small{font:inherit;color:#889b89}
body.exploring>.portal-header,body.in-game>.portal-header,body.in-game>.portal-footer{display:none}
.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
@media(max-width:900px){
 body:not(.exploring) #main{width:calc(100% - 32px);margin-top:18px}
 .portal-header{width:calc(100% - 32px);min-height:72px;padding:12px 0}
 .portal-navigation{width:100%;gap:5px}.portal-navigation a,.portal-navigation button{padding:9px 15px;min-height:40px}
 .portal-frame{padding:7px;border-radius:15px}.landing-world{min-height:0;height:850px;aspect-ratio:auto;border-radius:8px}
 .welcome-scene{container-type:normal}.welcome-art img{object-position:center center}
 .welcome-panel{left:50%;top:25px;transform:translateX(-50%);width:min(348px,calc(100% - 40px))}
 .welcome-logo{width:113%;margin:0 0 12px -6.5%;filter:none}
 .welcome-field{height:53px;margin-bottom:12px;padding:4px 7px;border-width:2px;border-radius:13px;box-shadow:0 3px 2px #100804,0 0 0 1px #311a0b,inset 0 1px #ffe5a570,inset 0 0 0 3px #261407}
 .welcome-field:before,.welcome-button:before{inset:3px;border-radius:9px}
 .welcome-field-icon{width:42px;height:34px}.welcome-field-icon svg{width:24px;height:24px}.welcome-field-icon .password-lock{width:24px;height:28px}
 .welcome-field input{font-size:19px;padding:3px 11px}
 .welcome-password{margin-bottom:0}.welcome-reveal{width:38px;height:38px;padding:7px;border-radius:6px}.welcome-reveal svg{width:23px;height:23px}
 .welcome-forgot{min-height:41px;font-size:16px;padding:9px}
 .welcome-button{min-height:59px;padding:10px 32px;border-width:2px;border-radius:14px;font-size:27px;box-shadow:0 3px 0 #40270e,0 5px 6px #150c0799,0 0 0 1px #61401c,inset 0 2px 2px #fff0b878,inset 0 -2px 3px #0e211b99,inset 0 0 0 3px #805923}
 .welcome-create{margin-top:12px;min-height:56px;font-size:24px}.welcome-arrow{width:22px;height:22px;right:20px}
 .button-sprig{left:5px;top:5px;width:26px;height:26px}.button-sprig-end{left:auto;right:5px;top:auto;bottom:5px}
 .welcome-alternatives{margin-top:18px;gap:10px}.welcome-google{width:44px;height:44px;padding:10px}.welcome-language{gap:6px;padding:4px 8px;font-size:11px}.welcome-language svg{width:21px}
 .portal-footer.portal-footer{width:calc(100% - 36px);padding-top:18px;text-align:center;gap:8px 18px}
}
@media(max-width:480px){.portal-header{width:calc(100% - 28px);min-height:64px}.portal-navigation{gap:1px}.portal-navigation a,.portal-navigation button{padding:9px 11px;font-size:12px}body:not(.exploring) #main{width:calc(100% - 20px);margin-top:14px}.portal-frame{padding:5px}.landing-world{height:820px}.welcome-panel{top:21px;width:calc(100% - 38px)}.welcome-field input{font-size:18px}.welcome-button{font-size:25px}.welcome-create{font-size:23px}.welcome-language{background:#28190eaa}}
@media(prefers-reduced-motion:reduce){.welcome-button,.welcome-google,.portal-navigation a,.portal-navigation button{transition:none}.welcome-button:hover:not(:disabled),.welcome-google:hover:not(:disabled){transform:none}}
