@font-face{font-family:DA;src:url('./assets/fonts/body.ttf')}@font-face{font-family:DA-title;src:url('./assets/fonts/title.ttf')}*{box-sizing:border-box}html,body,#game{width:100%;height:100%;margin:0;overflow:hidden}body{background:#11130f;color:#e9ddbc;font:14px DA,Georgia,serif}button,input,select{font:inherit}button{color:#ead9ad;background:linear-gradient(#554e39,#302e25);border:1px solid #8b7850;border-radius:3px;padding:8px 12px;cursor:pointer}button:hover,button:focus-visible{border-color:#e8c479;background:linear-gradient(#716344,#3c3527)}button:disabled{opacity:.45;cursor:not-allowed}input,select{color:#f5e8c8;background:#171a17;border:1px solid #726447;border-radius:3px;padding:9px;min-width:0}label{display:grid;gap:5px;color:#d4c39d}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:DA-title,Georgia,serif;font-weight:normal;color:#f0d79d}h1{font-size:clamp(38px,7vw,68px)}h2{font-size:27px}h3{font-size:18px}p{line-height:1.5}small,.muted{color:#b5aa90}#world{position:absolute;inset:0;width:100%;height:100%;image-rendering:auto;touch-action:none}.veil{position:absolute;inset:0;display:grid;place-items:center;background:#080b0bc9;padding:18px;z-index:10}.veil[hidden],[hidden]{display:none!important}.boot-box{text-align:center;width:min(420px,100%);padding:36px;background:#171b18ed;border:1px solid #84734f;box-shadow:0 12px 60px #000}.boot-box p{margin:14px}.boot-box progress{width:100%;accent-color:#bb9957}.eyebrow{font-size:10px;letter-spacing:.2em;color:#c1a66c}.window{width:min(740px,100%);max-height:min(88dvh,850px);display:flex;flex-direction:column;background:linear-gradient(135deg,#24291f,#171c18 65%);border:2px solid #8c7850;outline:1px solid #211c11;box-shadow:0 20px 70px #000d,inset 0 0 0 3px #342e20}.window>header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:17px 20px 14px;border-bottom:1px solid #675a3d;background:#121712aa}.close,.icon-button{display:grid;place-items:center;padding:0;width:34px;height:34px;font-size:23px;line-height:1}.window-body{padding:20px;overflow:auto;overscroll-behavior:contain}.window-body>*+*{margin-top:16px}.lead{color:#e4d3aa}.row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.spread{justify-content:space-between}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px}.card{background:#101712aa;border:1px solid #574e38;padding:13px;min-width:0}.card>*+*{margin-top:8px}.card h3{line-height:1.2}.card button{margin-top:8px}.card.selected{border-color:#d9b96d}.resource{color:#e6c97d}.portrait{width:76px;height:92px;image-rendering:pixelated;object-fit:contain;background:#111814;border:1px solid #574e38}.character-card{display:flex;gap:12px;align-items:center}.character-card .portrait{flex:none}.stars{color:#e1bd66;letter-spacing:.07em}.actions{display:flex;gap:8px;flex-wrap:wrap}.primary{background:linear-gradient(#8a7545,#514325);color:#fff0c7}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.wide{grid-column:1/-1}.rule{border:0;border-top:1px solid #554d38}.list{display:grid;gap:8px}.list-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px;border:1px solid #514b36;background:#121914}.list-row p{font-size:12px}.list-row button{flex:none}.empty{text-align:center;padding:30px;color:#b9ad91}#notice{position:absolute;z-index:30;left:50%;top:12%;transform:translateX(-50%);background:#1c241c;border:1px solid #c5a55d;padding:10px 16px;box-shadow:0 4px 20px #0009;max-width:90%;text-align:center}#notice.error{border-color:#d58272;color:#ffd7c9}#hud{position:absolute;inset:0;pointer-events:none;text-shadow:0 1px 3px #000}.hud-top{position:absolute;top:12px;left:12px;right:12px;display:flex;gap:16px;align-items:start}.identity,.run-stats,.vitals,.tutorial-hint{background:#101711d9;border:1px solid #6e6040;padding:8px 10px}.identity{display:grid;min-width:145px}.identity span{color:#d0bd91;font-size:12px}.run-stats{margin-left:auto}.hud-top button,.quick-nav button,.hotbar button,.touch-pad button,.touch-dash{pointer-events:auto}.vitals{position:absolute;top:67px;left:12px;width:185px;display:grid;gap:4px}.meter{height:15px;position:relative;background:#171b18;border:1px solid #5f5643}.meter span{display:block;height:100%;width:0}.meter b{position:absolute;inset:0;text-align:center;font-size:10px;line-height:13px}.hp span{background:#9c3530}.mp span{background:#365f9c}.xp span{background:#a28a3d}.tutorial-hint{position:absolute;top:150px;left:12px;max-width:260px;font-size:12px}.quick-nav{position:absolute;right:12px;top:60px;display:grid;gap:4px}.quick-nav button{font-size:12px;padding:6px 9px}.hotbar{position:absolute;bottom:15px;left:50%;transform:translateX(-50%);display:flex;gap:4px}.hotbar button{position:relative;min-width:48px;height:45px;padding:3px;font-size:10px}.hotbar button b{display:block;color:#e9cb7e;font-size:11px}.touch-pad,.touch-dash{display:none}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid #f5d782;outline-offset:2px}
@media(max-width:600px){.veil{padding:8px}.window{max-height:94dvh}.window-body{padding:14px}.window>header{padding:12px 14px}.hud-top{top:7px;left:7px;right:7px}.identity{min-width:110px}.vitals{left:7px;top:60px;width:145px}.run-stats{font-size:11px}.quick-nav{right:7px;top:52px}.quick-nav button{padding:5px;font-size:10px}.tutorial-hint{top:140px;left:7px;max-width:180px}.hotbar{bottom:8px}.hotbar button{min-width:39px;height:38px;font-size:9px}.touch-pad{position:absolute;bottom:14px;left:10px;display:grid;grid-template-columns:repeat(3,38px);grid-template-rows:repeat(2,38px);gap:3px}.touch-pad button{padding:0;opacity:.8}.touch-pad button:nth-child(1){grid-column:2}.touch-pad button:nth-child(2){grid-column:1}.touch-dash{display:block;position:absolute;bottom:18px;right:10px;opacity:.85}.grid{grid-template-columns:repeat(auto-fit,minmax(135px,1fr))}.portrait{width:60px;height:74px}}@media(pointer:coarse) and (min-width:601px){.touch-pad{position:absolute;bottom:15px;left:15px;display:grid;grid-template-columns:repeat(3,42px);grid-template-rows:repeat(2,42px);gap:4px}.touch-pad button{padding:0}.touch-pad button:nth-child(1){grid-column:2}.touch-pad button:nth-child(2){grid-column:1}.touch-dash{display:block;position:absolute;right:15px;bottom:15px}}
/* Native art and profile windows */
.sprite{display:inline-block;background-image:url('./assets/panel-art.png');background-repeat:no-repeat;image-rendering:pixelated;flex:none}.zone-card{display:grid;grid-template-columns:140px minmax(0,1fr);gap:14px;align-items:center}.zone-art{position:relative;width:140px;height:95px;overflow:hidden;border:1px solid #6e6040;background:#101812}.zone-art canvas{width:100%;height:100%;image-rendering:pixelated}.zone-keeper{position:absolute;bottom:1px;right:2px;transform:scale(.55);transform-origin:bottom right;filter:drop-shadow(0 2px 2px #000)}.zone-detail>*+*{margin-top:6px}.building-card{text-align:center}.building-art,.gift-art{height:58px;display:flex;align-items:center;justify-content:center;overflow:hidden;background:radial-gradient(ellipse,#64563677,transparent 72%)}.building-art .sprite,.gift-art .sprite{transform:scale(.75)}.banner-heading{padding:14px;background:linear-gradient(90deg,#443d27dc,#1a241d99),url('./assets/town-background.png') center 46%/cover;border:1px solid #756440}.banner-heading h3{font-size:25px}.party-slots{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.party-slot{min-width:0;display:flex;align-items:center;gap:8px;text-align:left;background:#121b14;border:1px solid #695b3c;padding:6px}.party-slot .portrait{width:48px;height:58px}.party-slot span{min-width:0;display:grid;gap:3px}.party-slot strong{overflow:hidden;text-overflow:ellipsis}.empty-slot{justify-content:center;min-height:72px;color:#a49779}.empty-slot>span{font-size:25px}.profile-overview{display:grid;grid-template-columns:190px 1fr;gap:18px}.paperdoll,.new-preview{display:flex;flex-direction:column;align-items:center;justify-content:center;background:radial-gradient(ellipse at center,#51462d,#131c16 70%);border:1px solid #776344;padding:12px}.profile-portrait{width:160px;height:190px;object-fit:contain;image-rendering:pixelated}.paperdoll-label{color:#ddc58c}.profile-info>*+*{margin-top:9px}.quote{font-style:italic;color:#ddc58c}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:5px}.stat-grid div{display:grid;padding:7px;background:#111913;border:1px solid #514b36}.stat-grid small{font-size:10px}.stat-grid strong{color:#ead49d}.tabs{display:flex;gap:5px;border-bottom:1px solid #766543;padding-bottom:7px}.tabs [aria-selected=true]{border-color:#dfc37e;background:#655437}.legend-sheet{background:#191b16;border:1px solid #675b40;padding:18px;max-height:40dvh;overflow:auto}.legend-text{white-space:pre-line;line-height:1.75;margin-top:10px}.new-preview{grid-row:span 3;grid-column:2}.new-preview .profile-portrait{height:120px;width:100px}.new-preview p{font-size:11px;color:#b8aa8c;text-align:center}.boot-box{background:linear-gradient(#171b18e8,#171b18f5),url('./assets/town-background.png') center/cover}
@media(max-width:600px){.zone-card{grid-template-columns:95px minmax(0,1fr);gap:8px}.zone-art{width:95px;height:78px}.party-slots{gap:4px}.party-slot{display:grid;justify-items:center;text-align:center;font-size:11px}.party-slot .portrait{width:44px;height:52px}.profile-overview{grid-template-columns:105px minmax(0,1fr);gap:9px}.paperdoll{padding:4px}.profile-portrait{width:96px;height:130px}.stat-grid{grid-template-columns:repeat(2,1fr)}.new-preview{grid-column:1/-1;grid-row:auto;flex-direction:row;gap:10px}.new-preview .profile-portrait{height:80px;width:70px}}
.hotbar button{width:62px;height:57px;display:grid;grid-template-rows:12px 25px 11px;justify-items:center;align-items:center;overflow:hidden}.hotbar-art{height:25px;display:flex;align-items:center;justify-content:center}.hotbar-art .sprite{transform:scale(.36)}.hotbar-name{white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}@media(max-width:600px){.hotbar button{width:42px;height:45px;grid-template-rows:10px 19px 9px}.hotbar-art{height:19px}.hotbar-art .sprite{transform:scale(.27)}}
@media(max-width:600px){.identity{max-width:190px}.identity strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:12px}.hotbar{bottom:100px}}
.new-preview{grid-column:1/-1;grid-row:auto;flex-direction:row;gap:22px;min-height:120px}.new-preview .profile-portrait{height:95px;width:85px}.featured-headliners{grid-template-columns:repeat(3,minmax(0,1fr))}.featured-headliners .card{border-color:#88734b;background:radial-gradient(ellipse at top,#52442d99,#101712 75%)}.summon-results{display:grid;gap:9px}.summon-results.single{grid-template-columns:minmax(0,320px);justify-content:center}.summon-results.multiple{grid-template-columns:repeat(5,minmax(0,1fr))}.summon-result{text-align:center;display:flex;flex-direction:column;align-items:center;gap:6px;min-width:0;border-width:1px;background:radial-gradient(ellipse at 50% 30%,#514a35aa,#111a15 72%)}.summon-result>*+*{margin-top:0}.summon-result .portrait{width:120px;height:150px;max-width:100%;background:transparent;border:0}.summon-result.rarity-2{border-color:#52867f;box-shadow:inset 0 0 22px #3c8b7b33}.summon-result.rarity-3{border-color:#6588bb;box-shadow:inset 0 0 22px #4d79c444}.summon-result.rarity-4{border-color:#a077ba;box-shadow:inset 0 0 22px #9b60c344}.summon-result.rarity-5{border-color:#d7b76c;box-shadow:inset 0 0 26px #d7af584d}.summon-results.multiple .summon-result .portrait{width:75px;height:95px}.summon-results.multiple .summon-result h3{font-size:15px;overflow-wrap:anywhere}.summon-results.multiple .summon-result p{font-size:11px}.summon-results.multiple .summon-result{padding:8px 5px}@media(max-width:600px){.featured-headliners{grid-template-columns:1fr}.summon-results.multiple{grid-template-columns:repeat(3,minmax(0,1fr))}.new-preview{gap:10px;min-height:85px}.new-preview .profile-portrait{height:70px;width:65px}}
.world-loading{position:absolute;left:50%;top:45%;transform:translate(-50%,-50%);padding:14px 20px;background:#141c16ee;border:1px solid #b99b61;box-shadow:0 8px 30px #000a;pointer-events:none;text-align:center;max-width:90%;z-index:5}

.skip-tutorial{background:#986636;color:#fff6db;border:2px solid #f2cb79;font-weight:bold;font-size:16px;padding:11px 18px;white-space:nowrap}.hud-skip{position:absolute;top:220px;left:12px;pointer-events:auto}.window>header .skip-tutorial{margin-left:auto}@media(max-width:600px){.skip-tutorial{font-size:13px;padding:9px 12px}.hud-skip{top:200px;left:7px}.window>header{gap:6px}}

/* Compact, high-contrast character vitals. */
.identity{width:260px;min-width:0;gap:3px;padding:9px 12px;background:linear-gradient(110deg,#20291dec,#101711ed);border-color:#9b8050;box-shadow:inset 0 0 0 1px #332d20,0 3px 9px #0008}
.identity strong,.identity span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.vitals{top:72px;width:260px;gap:5px;padding:8px;background:linear-gradient(145deg,#25291feF,#111912f2);border:1px solid #9b8050;box-shadow:inset 0 0 0 1px #423b28,0 3px 9px #0008}
.vital-row{display:flex;align-items:center;gap:6px;min-width:0}.vital-icon{display:grid;place-items:center;flex:none;width:19px;height:19px;border:1px solid #a58b59;border-radius:50%;font-size:12px;line-height:1;background:#2b2520;color:#f2d7a4;box-shadow:inset 0 1px 3px #000}.health-icon{color:#ffd4bc;background:#692e29}.mana-icon{color:#c6e5ff;background:#304e79}.xp-icon{height:13px;width:19px;border:0;background:transparent;color:#e5c671;font-size:10px;box-shadow:none}
.meter{flex:1;min-width:0;height:22px;border:1px solid #a19070;background:#111410;box-shadow:inset 0 1px 4px #000}.meter span{box-shadow:inset 0 1px 1px #ffffff66,inset 0 -3px 6px #0005}.meter b{font: bold 12px/20px DA,Georgia,serif;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#fff8e4;text-shadow:0 1px 2px #000,0 0 4px #000}.hp span{background:linear-gradient(#d96858,#a9322d 55%,#6d1f20)}.mp{height:19px}.mp b{line-height:17px}.mp span{background:linear-gradient(#7aa5d3,#3d6da5 55%,#283e70)}.xp{height:13px}.xp b{font-size:9px;line-height:11px}.xp span{background:linear-gradient(#e4c66b,#a68835 60%,#6f5420)}
.tutorial-hint{top:205px}.hud-skip{top:275px}
@media(max-width:600px){.identity{width:185px;padding:7px 9px}.vitals{top:65px;left:7px;width:185px;padding:6px;gap:4px}.vital-icon{width:17px;height:17px;font-size:10px}.xp-icon{height:12px}.meter{height:21px}.meter b{font-size:11px;line-height:19px}.mp{height:18px}.mp b{line-height:16px}.xp{height:12px}.xp b{font-size:9px;line-height:10px}.tutorial-hint{top:187px;max-width:185px}.hud-skip{top:253px;left:7px}}
#notice{pointer-events:none}.hotbar button,.touch-pad button,.touch-dash{touch-action:none;user-select:none;-webkit-user-select:none}
#world{user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
@media(max-width:600px){.list-row{align-items:flex-start;flex-direction:column}.list-row .actions{width:100%}}
.takeover-button{min-height:44px;padding:10px 22px;font-size:15px}

/* Danaan windows and game controls, aligned with the project interface. */
body{background:#10151b;color:#e2e8ef;font:14px/1.45 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
h1,h2,h3{font-family:inherit;font-weight:650;color:#e2e8ef;letter-spacing:0}h1{font-size:28px}h2{font-size:20px}h3{font-size:15px}p{line-height:1.5}small,.muted{color:#a2adbd}.lead{color:#d7e2ec}.eyebrow{font-size:10px;letter-spacing:.1em;color:#a2adbd}
button,input,select{font:inherit}button{color:#e2e8ef;background:#202a35;border:1px solid #394858;border-radius:6px;padding:7px 11px}button:hover:not(:disabled){background:#2a3948;border-color:#7192ad}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid #a4c3dd;outline-offset:2px}button:disabled{opacity:.48}button.primary{background:#365c7b;border-color:#6289a7;color:#fff}button.primary:hover:not(:disabled){background:#446f90}input,select{background:#10151b;color:#e2e8ef;border:1px solid #455363;border-radius:6px;padding:8px}label{color:#c5d0dc;gap:5px}
.veil{background:#090d12c9;padding:16px}.boot-box,.window{background:#171e26;border:1px solid #2b3542;border-radius:8px;outline:0;box-shadow:0 18px 55px #0009}.boot-box{padding:24px;background:#171e26}.boot-box progress{accent-color:#a4c3dd}.window{width:min(700px,100%);max-height:min(88dvh,850px)}.window>header{padding:14px 16px;border-bottom:1px solid #2b3542;background:#171e26;border-radius:8px 8px 0 0}.window>header h2{margin-top:2px}.window-body{padding:16px}.window-body>*+*{margin-top:12px}.close,.icon-button{width:34px;height:34px;font-size:21px}.close{flex:none}.grid{gap:8px}.card,.list-row{background:#202a35;border:1px solid #2b3542;border-radius:6px;padding:12px}.card.selected{border-color:#a4c3dd}.card>*+*{margin-top:7px}.card button{margin-top:7px}.resource{color:#b7d1e4}.portrait{background:#101820;border:1px solid #394858;border-radius:6px}.stars{color:#d5bf87}.rule{border-color:#2b3542}.list{gap:7px}.list-row p{color:#a2adbd}.empty{padding:20px;color:#a2adbd}.actions{gap:7px}.form-grid{gap:10px}.game-help{border:1px solid #2b3542;border-radius:6px;background:#131a21;padding:9px 11px;color:#c5d0dc}.game-help summary{cursor:pointer;color:#c8d9e7;font-weight:600}.game-help p,.game-help .actions{margin-top:9px}.story-art{display:block;width:100%;height:130px;object-fit:cover;object-position:center 48%;border:1px solid #2b3542;border-radius:6px}.lobby-art{height:150px}
.zone-art{border-color:#394858;border-radius:6px;background:#10151b}.building-art,.gift-art{background:radial-gradient(ellipse,#344a5b77,transparent 72%)}.banner-heading{border:1px solid #394858;border-radius:6px;background:linear-gradient(90deg,#17232df0,#17232dc9),url('./assets/town-background.png') center 46%/cover}.banner-heading h3{font-size:18px}.party-slot{background:#151d25;border:1px solid #394858;border-radius:6px}.empty-slot{color:#a2adbd}.paperdoll,.new-preview{background:radial-gradient(ellipse at center,#304252,#151d25 75%);border:1px solid #394858;border-radius:6px}.paperdoll-label,.quote{color:#c5d7e5}.new-preview p{color:#a2adbd}.stat-grid div{background:#151d25;border:1px solid #394858;border-radius:6px}.stat-grid strong{color:#e2e8ef}.tabs{border-color:#394858}.tabs [aria-selected=true]{background:#365c7b;border-color:#7192ad}.legend-sheet{background:#151d25;border:1px solid #394858;border-radius:6px}.featured-headliners .card,.summon-result{background:#202a35;border-color:#394858}.summon-result .portrait{background:transparent;border:0}.world-loading,#notice{background:#171e26;border:1px solid #526a7e;border-radius:6px;color:#e2e8ef}#notice.error{border-color:#c77777;color:#ffdddd}
.identity,.run-stats,.vitals,.tutorial-hint{background:#171e26eF;border:1px solid #40505f;border-radius:6px;box-shadow:0 3px 9px #0008}.identity span{color:#b8c8d6}.vitals{background:#171e26ef;border-color:#40505f}.vital-icon{border-color:#61717e;box-shadow:none}.meter{border-color:#61717e;background:#10151b;border-radius:3px;overflow:hidden}.meter b{font:700 12px/20px system-ui,sans-serif;color:#fff;text-shadow:0 1px 2px #000,0 0 4px #000}.mp b{line-height:17px}.xp b{font-size:9px;line-height:11px}.quick-nav button,.hotbar button,.touch-pad button,.touch-dash{background:#202a35eF;border-color:#526475;color:#e2e8ef}.hotbar button b{color:#c6ddec}.skip-tutorial{background:#202a35;color:#e2e8ef;border:1px solid #526475;border-radius:6px;font-size:13px;font-weight:600;padding:8px 12px}.takeover-button{min-height:44px}
@media(max-width:600px){.veil{padding:8px}.window{max-height:94dvh}.window>header{padding:11px 12px}.window-body{padding:12px}.window-body>*+*{margin-top:10px}.story-art{height:95px}.lobby-art{height:105px}.identity{width:185px}.vitals{width:185px}.meter b{font-size:11px;line-height:19px}.mp b{line-height:16px}.xp b{font-size:9px;line-height:10px}.skip-tutorial{font-size:12px;padding:7px 9px}.list-row .actions{width:auto}.profile-overview{grid-template-columns:105px minmax(0,1fr)}}
@media(max-width:360px){.form-grid{grid-template-columns:1fr}.form-grid>*{grid-column:1/-1}.window>header .skip-tutorial{font-size:11px;padding:6px}.identity{width:155px}.vitals{width:155px}.tutorial-hint{max-width:155px}.quick-nav button{padding:5px 6px}}

@media(min-width:601px){.vitals{top:76px}}

/* Keep the atlas choice and hunt status within narrow game windows. */
#road-contract{max-width:100%}
@media(max-width:600px){.hud-top{gap:5px}.hud-top .identity{min-width:0;max-width:40%;overflow-wrap:anywhere}.hud-top .run-stats{min-width:0;flex:1;overflow-wrap:anywhere}.hud-top .icon-button{flex:none}}
/* Prevent the dialog grid track from growing to a select's intrinsic width. */
.veil{grid-template-columns:minmax(0,1fr)}
.window,.window-body{min-width:0;max-width:100%}
.lobby-profile .actions{align-items:center}.lobby-profile .save-more{margin:0}
@media(max-width:600px){.lobby-art{height:65px}.lobby-profile{gap:8px}.lobby-profile .actions{flex-wrap:nowrap}.lobby-profile h3,.lobby-profile p{margin:0}}
@media(max-width:600px){.window-body .lobby-art{height:65px}.window-body .lobby-art+.lead{margin:7px 0}.window-body .lobby-art~.list .empty{padding:10px;margin:0}}
