:root{color-scheme:dark}*{box-sizing:border-box}body{margin:0;background:#101613;color:#e0dfd1;font:16px/1.8 Georgia,serif}a{color:inherit}.landing{max-width:1120px;margin:auto;padding:35px 30px}.brand{font:12px system-ui;letter-spacing:3px;color:#c8b17d;border-bottom:1px solid #303a31;padding-bottom:25px;display:flex;justify-content:space-between}.gate{display:grid;grid-template-columns:1.4fr 1fr;gap:75px;padding:85px 0}.eyebrow{font:11px system-ui;letter-spacing:3px;color:#bba574}h1{font-size:clamp(40px,5vw,65px);font-weight:normal;line-height:1.12;margin:25px 0}p{color:#aeb7a5}.lead{font-size:20px;max-width:550px}.login{border:1px solid #44503e;padding:34px;background:#19211b;align-self:center}.login h2{font-weight:normal;font-size:28px;margin:15px 0}.cta{display:block;background:#c5af7a;color:#171c14;text-decoration:none;padding:14px 20px;font:14px system-ui;text-align:center;margin:25px 0 15px}.secondary{font:12px system-ui;color:#b4baa9}.features{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;border-top:1px solid #303a31;padding:30px 0}.features h3{font-size:19px;font-weight:normal;color:#d5c291}.features p{font-size:14px}.game-top{height:44px;display:flex;gap:20px;justify-content:space-between;align-items:center;padding:0 20px;border-bottom:1px solid #303a31;font:12px system-ui}.game-top a{color:#c5af7a}.game-frame{width:100%;height:calc(100dvh - 44px);border:0;display:block}@media(max-width:700px){.gate{grid-template-columns:1fr;padding:40px 0;gap:25px}.features{grid-template-columns:1fr;gap:5px}.brand{font-size:10px}.login{padding:25px}.game-top{font-size:10px}}
.auth-input{display:block;width:100%;background:#101813;color:#e0dfd1;border:1px solid #495340;border-radius:2px;padding:12px;margin:5px 0 15px;font:15px system-ui}.login label{font:12px system-ui;color:#c0c4b3}.auth-submit{border:0;width:100%;cursor:pointer}.auth-error{color:#e7b3a1;background:#39271f;padding:10px;font:13px/1.5 system-ui}.logout{background:transparent;color:#c5af7a;border:0;text-decoration:underline;cursor:pointer;padding:0;font:inherit}.auth-input:focus-visible{outline:2px solid #c5af7a;outline-offset:2px}
body{background:#0b1311 url('/art/4k/background.webp') center top/cover fixed no-repeat}body::before{content:"";position:fixed;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(7,15,13,.7),rgba(7,15,13,.14) 65%,rgba(7,15,13,.4)),linear-gradient(0deg,rgba(7,15,13,.85),transparent 65%);pointer-events:none}.landing{max-width:1280px;padding:30px 40px}.brand{color:#ead6a0;border-color:#a88a4a55;text-shadow:0 2px 6px #000}.gate{min-height:690px;align-items:center;gap:100px;padding:65px 0}.gate>section:first-child{text-shadow:0 2px 20px #000}.gate h1{font-size:clamp(45px,5.8vw,76px);color:#f6eed9}.gate .lead{color:#e1dfd0}.gate p{color:#d0d3c4}.login{background:linear-gradient(145deg,#18231deF,#0d1714ed);border:1px solid #c7a56488;box-shadow:0 20px 80px #0009,inset 0 0 30px #93805b0b;backdrop-filter:blur(15px)}.login h2{color:#f1e8d0}.login .secondary{color:#c1c7b6}.auth-input{background:#07110dcc;border-color:#81906c70}.cta{background:linear-gradient(120deg,#d5c28b,#a78a51);box-shadow:0 5px 25px #0005;transition:filter .2s,transform .2s}.cta:hover{filter:brightness(1.12);transform:translateY(-1px)}.features{background:#0c1714e8;padding:22px 28px;border:1px solid #a88a4a55;backdrop-filter:blur(12px)}.features p{color:#bcc4b2}.world-preview,.class-preview{padding-top:75px}.section-heading h2{font-size:36px;font-weight:normal;margin:8px 0;color:#f0e5cb;text-shadow:0 2px 18px #000}.section-heading p{margin-top:0;color:#bfc8b8}.world-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.world-card,.class-card{position:relative;overflow:hidden;border:1px solid #9a845955;background:#0d1813;box-shadow:0 10px 35px #0006}.atlas-art{aspect-ratio:1;background-image:url('/art/world-atlas.webp');background-size:300% 200%;transition:filter .3s;filter:brightness(.85)}.village{background-position:0 0}.forest{background-position:50% 0}.citadel{background-position:100% 0}.forge{background-position:0 100%}.frost{background-position:50% 100%}.astral{background-position:100% 100%}.world-card:hover .atlas-art,.class-card:hover .portrait-art{filter:brightness(1.08)}.world-caption{position:absolute;bottom:0;left:0;right:0;padding:45px 22px 18px;background:linear-gradient(transparent,#07120bf2)}.world-caption h3{font-size:25px;font-weight:normal;color:#f1e1ba;margin:0}.world-caption p{font-size:13px;color:#d5dacb;line-height:1.6;margin:4px 0}.class-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;max-width:940px;margin:auto}.portrait-art{aspect-ratio:557/941;background-image:url('/art/character-portraits.webp');background-size:300% 100%;transition:filter .3s}.guardian{background-position:0 0}.ranger{background-position:50% 0}.mage{background-position:100% 0}.class-preview{padding-bottom:65px}.game-top{background:#0d1914f2;border-bottom-color:#a88a4a55}.game-frame{background:#0d1812}@media(max-width:800px){.landing{padding:24px}.gate{min-height:auto;grid-template-columns:1fr;gap:30px;padding:50px 0}.login{width:100%;max-width:540px}.world-gallery{grid-template-columns:repeat(2,1fr)}.class-gallery{gap:12px}.world-caption{padding:35px 15px 14px}.world-caption h3{font-size:22px}}@media(max-width:500px){body{background-attachment:scroll}.world-gallery{grid-template-columns:1fr}.class-gallery{grid-template-columns:1fr;max-width:350px}.features{padding:18px}.gate h1{font-size:46px}.section-heading h2{font-size:30px}.brand{letter-spacing:1.2px}.world-preview,.class-preview{padding-top:45px}}

/* Individually served 4K artwork; no sprite atlas downscaling. */
.portrait-art{background-size:cover;background-position:center;aspect-ratio:9/16}
.atlas-art{background-size:cover;background-position:center;aspect-ratio:16/9}
.guardian{background-image:url("/art/4k/guardian.webp");background-position:center}
.ranger{background-image:url("/art/4k/ranger.webp");background-position:center}
.mage{background-image:url("/art/4k/mage.webp");background-position:center}
.village{background-image:url("/art/4k/village.webp");background-position:center}
.forest{background-image:url("/art/4k/forest.webp");background-position:center}
.citadel{background-image:url("/art/4k/citadel.webp");background-position:center}
.forge{background-image:url("/art/4k/forge.webp");background-position:center}
.frost{background-image:url("/art/4k/frost.webp");background-position:center}
.astral{background-image:url("/art/4k/astral.webp");background-position:center}
