@import url('https://fonts.googleapis.com/css2?family=Cinzel:wght@500;600;700;800;900&family=Nunito:wght@400;600;700;800&display=swap');:root{color-scheme:dark;--gold:#f8d995;--dark:#081828}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:#071b32;color:#fff}button,input,select{font:inherit}button{cursor:pointer}button:focus-visible,select:focus-visible,input:focus-visible{outline:3px solid #fff09c;outline-offset:4px}body{font-family:Nunito,system-ui,sans-serif}.st-landing{height:100svh;min-height:660px;position:relative;overflow:hidden;isolation:isolate}.winter-background{position:absolute;inset:-4%;z-index:-5;background:url(winter-panorama.webp) center 48%/cover no-repeat;filter:blur(5px) saturate(1.1);animation:scene-drift 22s ease-in-out infinite alternate}.scene-shade{position:absolute;inset:0;z-index:-4;background:linear-gradient(180deg,#020c208c 0%,#06193146 19%,#04142624 44%,#050d1bce 80%,#04101deb 100%),linear-gradient(90deg,#07152c77,transparent 23%,transparent 78%,#07152c77)}.aurora-layer{position:absolute;inset:-20% -30% 40%;z-index:-3;pointer-events:none;background:radial-gradient(ellipse at 45% 25%,#50ffc842,transparent 48%),radial-gradient(ellipse at 65% 20%,#7a5dff3d,transparent 55%);filter:blur(35px);transform-origin:center;animation:aurora 16s ease-in-out infinite alternate}.snow-layer{position:absolute;inset:0;pointer-events:none;z-index:7;background-image:radial-gradient(2px 2px at 12px 24px,#fff9 90%,transparent),radial-gradient(2px 2px at 72px 130px,#fff 90%,transparent),radial-gradient(3px 3px at 163px 65px,#fff9 90%,transparent);background-size:191px 190px;animation:snowfall 14s linear infinite}.snow-far{opacity:.38;scale:1.15;animation-duration:25s}.snow-near{opacity:.66}.twinkle{position:absolute;inset:0;pointer-events:none;z-index:-1;background:radial-gradient(circle at 20% 32%,#fff7c7 0 2px,transparent 6px),radial-gradient(circle at 76% 50%,#fff8bd 0 3px,transparent 9px),radial-gradient(circle at 69% 17%,#fff 0 2px,transparent 7px);animation:twinkle 4s ease-in-out infinite alternate}.st-header{position:absolute;inset:20px 24px auto;z-index:15;display:flex;justify-content:space-between;align-items:center}.top-ornament{font-size:40px;color:#ffe6a2;filter:drop-shadow(0 0 12px #fac75d)}.lang-wrap{position:relative;display:flex;align-items:center;gap:6px;border:1px solid #f3d28c;background:#07192de8;padding:10px 13px;border-radius:40px;box-shadow:0 3px 24px #0008}.lang-wrap select{appearance:none;border:0;background:transparent;color:#fff7e0;padding:0 21px 0 0;min-width:100px;cursor:pointer}.lang-wrap select option{color:#132233;background:#fff}.lang-wrap:after{content:'⌄';position:absolute;right:13px;pointer-events:none;color:var(--gold)}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.hero-ui{height:100%;display:flex;align-items:center;flex-direction:column;position:relative;padding:clamp(76px,10vh,125px) 14px clamp(34px,5vh,65px);z-index:3;text-align:center}.crest{font-size:clamp(32px,5vh,60px);color:#fff4b9;text-shadow:0 0 18px #ffcf52}.logo{font:900 clamp(52px,11vw,144px)/.96 Cinzel,Georgia,serif;letter-spacing:-.065em;margin:0;white-space:nowrap;color:#ffe1a0;background:linear-gradient(#fff9d2 12%,#ffd774 35%,#c88d2a 67%,#fff2a7 95%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;filter:drop-shadow(0 5px 2px #2c0a07) drop-shadow(0 0 19px #e98c18)}.logo span{letter-spacing:-.075em}.ribbon{margin:18px auto 0;padding:10px 30px;max-width:90%;font:700 clamp(14px,2vw,25px) Cinzel,serif;color:#ffe8a7;text-shadow:0 2px 3px #350700;background:linear-gradient(115deg,#6a0b15,#b82426,#56050d);border:2px solid #f5cd72;border-radius:2px 2px 42px 42px;box-shadow:0 8px 15px #000a}.hero-spacer{flex:1;min-height:18px}.enter-box{width:min(650px,95vw);display:grid;gap:16px}.ornate-button{position:relative;display:flex;align-items:center;justify-content:center;min-height:64px;border:0;background-position:center;background-size:100% 100%;background-repeat:no-repeat;background-color:transparent;color:#fff1c6;text-shadow:0 2px 3px #18070c,0 0 12px #000;font:800 clamp(14px,2.5vw,26px) Cinzel,Georgia,serif;transition:transform .22s,filter .22s;filter:drop-shadow(0 7px 12px #000a)}.ornate-button:hover{transform:translateY(-3px) scale(1.02);filter:brightness(1.16) drop-shadow(0 7px 12px #000a)}.ornate-button:active{transform:translateY(2px)}.ornate-button.red{background-image:url(button-primary.svg);height:104px;font-size:clamp(20px,3vw,38px);animation:button-glow 3s ease-in-out infinite}.ornate-button.blue{background-image:url(button-blue.svg)}.ornate-button.green{background-image:url(button-green.svg)}.secondary-actions{display:grid;grid-template-columns:1fr 1fr;gap:14px}.continue-link{color:#fff6ce;background:#081d32e8;border:1px solid #e6c684;border-radius:9px;padding:7px}.bottom-frost{position:absolute;bottom:0;height:10px;width:100%;background:linear-gradient(90deg,#e4fcff,#bfe3f4,#fff)}.modal-backdrop[hidden],form[hidden]{display:none!important}.modal-backdrop{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:17px;background:#020b18db;backdrop-filter:blur(7px)}body.modal-open{overflow:hidden}.auth-card{position:relative;width:min(480px,100%);max-height:92svh;overflow-y:auto;padding:28px clamp(18px,5vw,36px);border:2px solid #e6c67d;border-radius:17px;background:linear-gradient(145deg,#163754,#08172beF 72%);box-shadow:0 0 0 5px #8c611e4d,0 24px 80px #000d}.modal-close{position:absolute;right:15px;top:12px;border:1px solid #d4b576;background:#091b30;color:#fff;padding:5px 10px;border-radius:7px}.card-crest{text-align:center;color:#fbe2a4;font:700 18px Cinzel}.auth-card h2{font:700 30px Cinzel;color:#ffe5a1;text-align:center;margin:13px 0}.auth-tabs{display:flex;gap:12px;margin:18px 0}.auth-tabs button{width:50%;padding:11px;border:1px solid #f9d68b6b;border-radius:7px;background:#0c263c;color:#fff}.auth-tabs button.active{background:#7d1e21;color:#ffe6a1}.auth-card form{display:grid;gap:13px}.auth-card label{text-align:left;font-weight:700;font-size:13px}.auth-card input{display:block;width:100%;padding:13px 14px;margin-top:6px;border:1px solid #a2b5c5;border-radius:7px;background:#061525;color:white}.auth-card .ornate-button{min-height:72px;width:100%;margin-top:5px}.error{padding:12px;border:1px solid #e58888;color:#ffe0e0;background:#6d1426;border-radius:8px}@keyframes scene-drift{to{transform:scale(1.08) translateX(-1%)}}@keyframes aurora{to{transform:translateX(15%) rotate(9deg);opacity:.6}}@keyframes snowfall{to{background-position:40px 760px,0 620px,-45px 800px}}@keyframes twinkle{to{opacity:.4}}@keyframes button-glow{50%{filter:brightness(1.17) drop-shadow(0 2px 15px #f9b04a66)}}@media(max-width:600px){.st-header{inset:12px 12px auto}.hero-ui{padding-top:clamp(92px,15vh,150px);padding-bottom:clamp(30px,6vh,80px)}.logo{font-size:clamp(51px,14vw,85px)}.ribbon{font-size:clamp(12px,3vw,17px);padding:8px 13px}.enter-box{gap:11px}.ornate-button.red{height:82px}.ornate-button{min-height:62px}.secondary-actions{gap:7px}.secondary-actions .ornate-button{font-size:12px}.winter-background{background-position:50% 48%}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}

/* SantaTown art system v2.2 — replaceable sharp background, independent ornamented assets */
.st-landing{min-height:560px;background:#08162b}
.winter-background{inset:0;background-position:center center;background-size:cover;filter:none!important;animation:scene-drift 35s ease-in-out infinite alternate;transform:scale(1.025)}
.scene-shade{background:linear-gradient(180deg,rgba(0,8,28,.12),rgba(0,11,30,.04) 45%,rgba(0,8,25,.28) 100%)}
.st-header{inset:12px 24px auto;justify-content:flex-end}
.lang-wrap{width:clamp(172px,18vw,260px);height:66px;border:0;border-radius:0;box-shadow:none;background:transparent url(language.webp) center/100% 100% no-repeat;padding:12px 42px 12px 49px;filter:drop-shadow(0 7px 10px #0008)}
.lang-wrap select{min-width:0;width:100%;padding:2px 6px;background:#04132960;color:#ffefca;font:700 clamp(13px,1.2vw,18px) Georgia,serif}
.lang-wrap:after{right:36px;top:25px}
.hero-ui{padding:clamp(28px,5vh,60px) 16px clamp(30px,8vh,85px)}
.logo-art{width:min(46vw,690px);max-height:43vh;object-fit:contain;filter:drop-shadow(0 14px 13px #020617cc);animation:logo-float 7s ease-in-out infinite;user-select:none}
.tagline{font:700 clamp(15px,2.1vw,30px) Georgia,serif;letter-spacing:.01em;color:#ffe8ab;text-shadow:0 2px 4px #000,0 0 13px #130300;margin:-1vh auto 0;padding:6px 13px}
.hero-spacer{min-height:8px}
.enter-box{width:min(760px,94vw);gap:0}
.ornate-button{border:0!important;border-radius:0!important;outline-offset:-7px;line-height:1.1;background-color:transparent!important;background-repeat:no-repeat;background-position:center;background-size:100% 100%;text-shadow:0 3px 5px #100406,0 0 14px #241008;color:#fff4c9;font:700 clamp(16px,2vw,26px) Georgia,serif;isolation:isolate}
.ornate-button span{position:relative;z-index:1;margin-bottom:1%;padding:0 13%}
.ornate-button.red{background-image:url(enter.webp);height:clamp(105px,17vh,175px);font-size:clamp(23px,3.5vw,50px)}
.ornate-button.blue{background-image:url(login.webp)}
.ornate-button.green{background-image:url(register.webp)}
.secondary-actions{gap:0;grid-template-columns:1fr 1fr;margin-top:-10px}
.secondary-actions .ornate-button{height:clamp(77px,12vh,128px)}
.bottom-frost{display:none}
@keyframes logo-float{50%{transform:translateY(-7px)}}
@media(max-width:700px){.st-landing{min-height:650px}.winter-background{background-position:58% center}.st-header{inset:8px 9px auto}.lang-wrap{width:185px;height:59px}.hero-ui{padding-top:clamp(96px,15vh,150px);padding-bottom:clamp(65px,12vh,105px)}.logo-art{width:min(95vw,520px);max-height:35vh}.tagline{font-size:clamp(15px,3.7vw,22px);margin:0 auto}.enter-box{width:min(540px,100vw)}.ornate-button.red{height:clamp(108px,15vh,140px);font-size:clamp(21px,5vw,31px)}.secondary-actions{gap:0}.secondary-actions .ornate-button{height:100px;font-size:clamp(12px,3.5vw,20px)}.ornate-button span{padding:0 11%}}
@media(max-height:650px) and (min-width:701px){.hero-ui{padding-top:8px;padding-bottom:12px}.logo-art{max-height:38vh}.ornate-button.red{height:110px}.secondary-actions .ornate-button{height:70px}.tagline{font-size:17px}}
