*{box-sizing:border-box}body{margin:0;background:#102c29;color:#ece8d7;font:14px Manrope,Segoe UI,sans-serif;overflow:hidden}canvas{position:fixed;inset:0;width:100%;height:100%}header{position:absolute;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:25px 34px;background:linear-gradient(#10251ff2,transparent);pointer-events:none}header button{pointer-events:auto}.brand{font:700 27px Georgia;letter-spacing:5px;color:#ead6a0}small{display:block;font-size:10px;letter-spacing:2px;color:#b8c4ac}.brand small{font:9px Manrope;letter-spacing:4px;margin-top:9px}.location{text-align:center;letter-spacing:3px;font-size:12px}.location small{margin-top:9px;letter-spacing:1px}button{color:#e8dfc8;border:1px solid #a899645f;background:#19332def;border-radius:6px;padding:12px 18px;cursor:pointer;font:inherit}button:hover{background:#426047;border-color:#d9bb74}aside{position:absolute;background:#142c27df;border:1px solid #c2b57532;border-radius:9px;padding:20px;backdrop-filter:blur(10px)}#hero{left:30px;top:110px;width:235px}#name{font:25px Georgia;margin-bottom:8px}.bar{height:8px;background:#071e1b;margin:12px 0 5px;border-radius:10px;overflow:hidden}.bar i{display:block;height:100%;background:linear-gradient(90deg,#729646,#b1cf69);transition:width .2s}.xp{height:4px}.xp i{background:#e7bd6d}#quest{right:30px;top:110px;width:250px}h2{font:26px Georgia;margin:12px 0}p{line-height:1.7;color:#c2ccb9}.muted{color:#8b9f8e;font-size:12px}#progress{color:#e2c889}footer{position:absolute;bottom:0;width:100%;padding:20px 30px;background:linear-gradient(transparent,#10251ff5);pointer-events:none}.hint{text-align:center;color:#c4cfb5;font-size:11px;margin-bottom:14px}#skills{display:flex;justify-content:center;gap:10px}#skills button{pointer-events:auto;width:125px;height:66px;border-color:#cbb77766;font-size:12px}#skills strong{display:block;font:20px Georgia;color:#e2c889;margin-bottom:4px}.bottom{display:flex;align-items:center;justify-content:space-between;color:#9aac97;font-size:11px;margin-top:14px}.bottom button{pointer-events:auto;padding:6px 12px}dialog{background:#142b26f7;color:#efe9d9;border:1px solid #af9967;border-radius:16px;padding:38px;max-width:950px;width:90vw;box-shadow:0 30px 100px #0008}dialog::backdrop{background:#061e1bb0;backdrop-filter:blur(9px)}dialog h1{font:44px Cormorant Garamond,Georgia;margin:10px 0}#classes{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:27px 0}.class{padding:25px 14px;text-align:left;min-height:200px;background:linear-gradient(#324e40,#152f2b)}.class .symbol{font:44px Georgia;color:#e5c780;display:block;margin-bottom:20px}.class b{display:block;font:24px Georgia}.class p{font-size:12px}.class span:last-child{font-size:10px;color:#debd73}#toast{position:absolute;top:30%;left:50%;transform:translateX(-50%);padding:12px 22px;background:#17342bed;border-radius:8px;color:#f0d698;opacity:0;transition:opacity .2s;pointer-events:none;text-align:center}#close{float:right}#items{max-height:45vh;overflow:auto}#items button{display:block;width:100%;margin:8px 0;text-align:left}@media(max-width:800px){#quest{width:190px;right:12px;top:90px;padding:12px}#hero{left:12px;top:90px;width:170px;padding:12px}.location{display:none}#classes{grid-template-columns:repeat(2,1fr)}dialog{padding:20px;max-height:90vh}.class{min-height:120px;padding:12px}.class .symbol{margin:0;font-size:28px}dialog h1{font-size:30px}.hint{font-size:9px}}
/* Muted parchment, aged bronze and dark leather. */
body{background:#1e241b;font-family:Segoe UI,sans-serif}header{padding:20px 28px;background:linear-gradient(#0e120dd9,transparent)}.brand{font-size:22px;color:#cfbc8d;letter-spacing:4px}.brand small{font-family:Georgia;font-size:8px;color:#aaa187}.location{font-family:Georgia;color:#d5c69f}.location small{color:#aaa58f}button{border-radius:2px;background:linear-gradient(#39382bf2,#1d211af5);border:1px solid #86744c;color:#d9cba9;box-shadow:inset 0 0 0 2px #14181080}button:hover{background:linear-gradient(#58503a,#282b20);border-color:#c2a86c}aside{border-radius:2px;background:linear-gradient(115deg,#191d17eb,#24271cc9);border-color:#8c795342;box-shadow:inset 0 0 0 3px #0e130c44,0 5px 25px #0003;backdrop-filter:blur(3px)}#hero{width:195px;padding:15px;top:95px;left:24px}#name{font-size:22px;color:#e0cfaa}#quest{top:95px;right:24px;width:218px;padding:17px;border-left:2px solid #a78a4e}#quest h2{font-size:24px}#quest p{font-size:12px}small{color:#a89b79;letter-spacing:1.5px}p{color:#bdbba7}.bar{height:10px;border:1px solid #8b73473d;background:#120f0d;border-radius:2px}.bar i{background:linear-gradient(#a84f3e,#6a251e)}.xp{height:5px}.xp i{background:linear-gradient(90deg,#8b743c,#d3b76c)}footer{padding:18px 26px 12px;background:linear-gradient(transparent,#10140dd9)}#skills{gap:5px}#skills button{height:70px;width:118px;border:2px ridge #877654;background:radial-gradient(ellipse at 50% 10%,#55503c,#1a201a 80%);box-shadow:0 4px 15px #0009,inset 0 0 0 2px #161a12}#skills strong{color:#dec78e;text-shadow:0 2px #000}.hint{color:#c2bca5;text-shadow:0 1px 4px #000}.bottom{color:#b2aa8e}.bottom span:first-child{font-family:Georgia;letter-spacing:1px}dialog{background:linear-gradient(135deg,#24291ff7,#121710fa);border-radius:3px;border:2px ridge #877650;box-shadow:0 20px 100px #000c,inset 0 0 0 5px #100f0960}dialog::backdrop{background:#09100985;backdrop-filter:blur(4px)}dialog h1{color:#e2d0a7}.class{background:linear-gradient(#4a4b3650,#141b15ee);border:1px solid #8f7d504d;border-radius:2px}.class .symbol{color:#d1ba80}.class:hover{background:linear-gradient(#64604788,#263124)}#toast{background:#1d241bec;border:1px solid #9d88577f;border-radius:2px;color:#e8d7ad}@media(max-width:800px){#hero{width:160px;left:10px;top:85px}#quest{width:175px;right:10px;top:85px}header{padding:18px}.brand{font-size:18px}}
#skills button{font-size:11px;padding:8px 6px}#skills button span{display:block;line-height:1.3}#skills strong{margin-bottom:7px}
/* Full-screen loading cover. The game stays hidden and paused until resources are ready. */
#loading{position:fixed;inset:0;z-index:1000;display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding:9vh 24px 5vh;background:#101b17 url('assets/loading/elderwood-world-v1.png') center/cover no-repeat;text-align:center;opacity:1;transition:opacity .65s ease,visibility .65s}#loading[hidden]{display:none}#loading.loaded{opacity:0;visibility:hidden;pointer-events:none}.cover-shade{position:absolute;inset:0;background:linear-gradient(180deg,#07100b66 0%,#0b160d15 35%,#07110c9c 65%,#050c09f5 100%);pointer-events:none}.load-title,.load-bottom{position:relative;z-index:1}.load-title>span,.load-destination>span{font-size:10px;letter-spacing:5px;color:#d0c7ae}.load-title h1{font:700 clamp(42px,7vw,94px) Georgia,serif;letter-spacing:.12em;color:#ead8a8;text-shadow:0 3px 30px #000a;margin:24px 0 12px}.load-subtitle{font:12px Georgia;letter-spacing:7px;color:#dfd4b9}.load-ornament{display:flex;align-items:center;justify-content:center;gap:20px;color:#d5b975;font-size:10px;margin:28px auto 14px}.load-ornament:before,.load-ornament:after{content:'';height:1px;width:95px;background:linear-gradient(90deg,transparent,#c4a369)}.load-ornament:after{transform:rotate(180deg)}.load-title p{color:#d0c7b0;font:italic 17px Georgia;text-shadow:0 2px 7px #000}.load-bottom{width:min(560px,85vw)}.load-destination h2{font:38px Georgia;color:#e0d0aa;margin:12px 0 6px}.load-destination p{font-size:12px;color:#a9b3a2;margin:0 0 28px}.load-destination>span{font-size:9px;letter-spacing:3px;color:#b0a788}.load-row{display:flex;justify-content:space-between;gap:16px;font-size:11px;color:#c9c3ac;margin-bottom:11px;text-align:left}.load-row b{color:#e8d3a4;font-variant-numeric:tabular-nums}#load-progress{display:block;appearance:none;width:100%;height:8px;border:1px solid #82704c;background:#111913;padding:1px;box-shadow:0 0 20px #d6a25517}#load-progress::-webkit-progress-bar{background:#111913}#load-progress::-webkit-progress-value{background:linear-gradient(90deg,#756036,#e4c28b);box-shadow:0 0 15px #d6b66c}#load-progress::-moz-progress-bar{background:linear-gradient(90deg,#756036,#e4c28b)}.load-tip{color:#949d8c;font-size:10px;margin-top:20px;letter-spacing:.4px}#load-retry{margin-top:18px}.load-error #load-status{color:#e0a58b}body:not(.in-game)>header,body:not(.in-game)>aside,body:not(.in-game)>footer,body:not(.in-game)>#toast{visibility:hidden}body.in-game #skills{opacity:.4}body.in-game #skills button{cursor:default}@media(max-height:650px){#loading{padding:5vh 20px 3vh}.load-title h1{font-size:48px;margin:15px 0 8px}.load-title p,.load-ornament{display:none}.load-destination h2{font-size:28px}.load-destination p{margin-bottom:17px}}
@media(prefers-reduced-motion:reduce){#loading{transition:none}}

/* Shared class emblems: scalable artwork, consistent on every class surface. */
.class-icon{display:inline-block;width:36px;height:36px;vertical-align:middle;color:#e8c77f;filter:drop-shadow(0 1px 2px #000a);flex-shrink:0}
.class-icon-plate{fill:#182019;stroke:#ac8444;stroke-width:.7}
.creator-class small .class-icon{width:30px;height:30px;margin-top:5px}
.symbol .class-icon{width:52px;height:52px}
.slot-emblem .class-icon{width:100%;height:100%}
.creator-class.selected .class-icon{color:#ffe4a1}
/* Painted class assets retain their natural silhouette instead of font glyphs. */
img.class-icon{object-fit:contain;image-rendering:auto}
.creator-class img.class-icon{position:static;inset:auto;width:36px;height:36px;opacity:1;object-fit:contain;margin-top:4px}
.slot-emblem img.class-icon{position:static;width:100%;height:100%;opacity:1;object-fit:contain}
/* Game labels and panels should never create a browser text selection. */
html,body,body *{-webkit-user-select:none!important;user-select:none!important}
html,body{touch-action:pan-x pan-y}
body input,body textarea,body [contenteditable='true'],body [contenteditable='true'] *{-webkit-user-select:text!important;user-select:text!important}
#toast{display:none!important}
