:root { color-scheme: light; --brand-dark: #0b0d0c; --brand-charcoal: #171a18; --brand-orange: #f09a24; --brand-paper: #eee4d0; --ink: #2d302d; --muted: #686156; --panel: #eee4d0; --surface: #fffaf0; --surface-soft: #f6eddb; --line: #b9aa8f; --line-dark: #343934; --gold: #f09a24; --link: #7b4100; --rust: #94402c; --green: #58784c; font-family: Arial, Helvetica, sans-serif; }
* { box-sizing: border-box; }
html { min-width: 320px; background: var(--brand-dark); }
.visually-hidden { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important; border: 0 !important; }
body { min-height: 100vh; margin: 0; color: var(--ink); background: var(--brand-dark); font-size: 16px; line-height: 1.5; }
img { max-width: 100%; }
a { color: var(--link); text-decoration: none; }
a:hover { text-decoration: none; }
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible, summary:focus-visible { outline: 3px solid #155d72; outline-offset: 3px; }
.skip-link { position: fixed; top: .5rem; left: .5rem; z-index: 10000; padding: .75rem 1rem; color: #17120b; background: #fff1ad; border: 2px solid var(--brand-dark); border-radius: 0; transform: translateY(-150%); }
.skip-link:focus { transform: translateY(0); }
.game-header, .page-title { min-height: 96px; display: flex; align-items: center; justify-content: space-between; gap: 2rem; padding: 0 5vw; border-bottom: 1px solid var(--line); }
nav { font-family: Arial, sans-serif; font-size: .9rem; }
.balance { color: var(--muted); border-left: 1px solid var(--line); padding-left: 1.2rem; }
main { width: min(1100px, 92vw); margin: 0 auto; padding: 3.5rem 0 6rem; }
h1, h2, h3, p { margin-top: 0; }
h1 { font: 900 clamp(2rem, 4vw, 3.35rem)/.95 "Arial Narrow", Impact, Arial, sans-serif; letter-spacing: -.025em; text-transform: uppercase; overflow-wrap: anywhere; }
h2 { margin: 2.5rem 0 1rem; font-family: "Arial Narrow", Arial, sans-serif; }
.eyebrow { color: #8c4b00; text-transform: uppercase; font: 900 .69rem/1.2 Arial, sans-serif; letter-spacing: .19em; }
.hero { min-height: 330px; padding: clamp(2rem, 7vw, 5rem); display: flex; align-items: center; background: linear-gradient(90deg, rgba(18,16,13,.95), rgba(18,16,13,.25)), url('/legacy/img/discoveries_bg.jpg') center/cover; border: 1px solid var(--line); }
.hero > div { max-width: 680px; }
.hero p:not(.eyebrow) { max-width: 620px; color: #d0c8ba; font-size: 1.15rem; line-height: 1.65; }
.auth-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.5rem; margin-top: 1.5rem; }
.auth-grid form, .shop-card, .mine, .item, .detail, .error { background: rgba(255,255,255,.72); border: 1px solid var(--line); padding: 1.5rem; }
label { display: block; color: var(--muted); margin: 1rem 0; font: .85rem Arial, sans-serif; }
label span { opacity: .65; }
input, textarea, select { width: 100%; min-height: 44px; margin-top: .4rem; padding: .8rem; color: var(--ink); background: #fffdf7; border: 1px solid #8f826f; border-radius: 0; box-shadow: none; font: 1rem Arial, sans-serif; }
textarea { resize: vertical; }
button { min-height: 44px; cursor: pointer; padding: .75rem 1rem; color: #18140c; background: var(--gold); border: 1px solid #c36d0a; border-radius: 0; font: 900 .74rem Arial, sans-serif; text-transform: uppercase; letter-spacing: .075em; }
.button { display: inline-flex; min-height: 44px; align-items: center; justify-content: center; padding: .75rem 1rem; color: #18140c; background: var(--gold); border: 1px solid #c36d0a; border-radius: 0; font: 900 .74rem Arial, sans-serif; text-transform: uppercase; letter-spacing: .075em; }
.button:hover { text-decoration: none; filter: brightness(1.12); }
.button.secondary { color: white; background: #3d423e; border-color: #3d423e; }
button:hover:not(:disabled) { filter: brightness(1.12); }
button:disabled { cursor: not-allowed; opacity: .35; }
button.secondary { color: white; background: #3d423e; border-color: #3d423e; }
button.link { padding: 0; color: var(--gold); background: none; border: 0; box-shadow: none; text-transform: none; font-weight: normal; }
.flash-notice { display: block; position: fixed; top: 1rem; right: 1rem; z-index: 9000; width: min(480px, calc(100vw - 2rem)); max-height: calc(100vh - 2rem); overflow: hidden; padding: .7rem; color: #f5efe2; background: linear-gradient(145deg, #24231f, #121a1c); border: 1px solid #7b6742; border-left: 4px solid #d3a64d; border-radius: 8px; box-shadow: 0 18px 45px rgba(0,0,0,.48), 0 0 0 1px rgba(255,220,139,.06) inset; }
.flash-notice[hidden] { display: none; }
.flash-notice > header { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: .7rem; min-height: 0; padding: 0 0 .45rem; border: 0; border-bottom: 1px solid rgba(255,255,255,.11); }
.flash-notice > header > strong { min-width: 0; overflow: hidden; color: #f7f1e4; text-overflow: ellipsis; white-space: nowrap; font: 900 .72rem/1 Arial, sans-serif; letter-spacing: .09em; text-transform: uppercase; }
.flash-notice-mark { display: grid; width: 1.55rem; height: 1.55rem; place-items: center; color: #171812; background: #e4bb63; border-radius: 50%; box-shadow: 0 0 0 3px rgba(228,187,99,.12); font-weight: 900; }
#flash-dialog-message { min-width: 0; margin: .5rem .25rem .2rem; color: #f7f1e4; font-size: .9rem; line-height: 1.35; }
#flash-dialog-message a { color: #ffd77e; }
.flash-notice button { min-width: 1.7rem; min-height: 1.7rem; padding: 0; color: #d8cfbf; background: transparent; border-color: transparent; font-size: 1.25rem; line-height: 1; }
.flash-notice button:hover, .flash-notice button:focus-visible { color: #fff; background: rgba(255,255,255,.09); border-color: rgba(255,255,255,.2); }
#flash-dialog-items { min-width: 0; max-height: min(55vh, 420px); overflow: auto; margin: .1rem 0 0; padding: 0; list-style: none; scrollbar-color: #786844 #192022; }
#flash-dialog-items[hidden], #flash-dialog-items:empty { display: none; }
#flash-dialog-items > li { --flash-rarity: #f5efe2; margin: 0; border-top: 1px solid rgba(255,255,255,.1); }
#flash-dialog-items > li:first-child { border-top: 0; }
.flash-battle-detail { padding: .5rem .45rem; color: #eee5d3; border-top: 1px solid rgba(255,255,255,.1); font-size: .82rem; font-variant-numeric: tabular-nums; }
.flash-battle-report { border-top: 1px solid rgba(255,255,255,.14); }
.flash-battle-report a { display: block; padding: .65rem .45rem; color: #ffd77e; font-weight: bold; text-decoration: none; }
.flash-battle-report a:hover, .flash-battle-report a:focus-visible { color: #fff; background: rgba(255,255,255,.08); }
#flash-dialog-items > li.rarity-unranked, #flash-dialog-items > li.rarity-0 { --flash-rarity: #ff9b91; }
#flash-dialog-items > li.rarity-1 { --flash-rarity: #f6e468; }
#flash-dialog-items > li.rarity-2 { --flash-rarity: #a8e673; }
#flash-dialog-items > li.rarity-3 { --flash-rarity: #8bd7fa; }
#flash-dialog-items > li.rarity-4 { --flash-rarity: #ff9991; }
#flash-dialog-items > li.rarity-5 { --flash-rarity: #e7b0ff; }
#flash-dialog-items > li.rarity-6 { --flash-rarity: #ffc278; }
#flash-dialog-items > li > a, .flash-item-link { display: grid; grid-template-columns: 34px minmax(0, 1fr) auto; align-items: center; gap: .55rem; min-width: 0; padding: .45rem .35rem; color: var(--flash-rarity); border-left: 3px solid var(--flash-rarity); text-decoration: none; }
#flash-dialog-items > li > a:hover, #flash-dialog-items > li > a:focus-visible, .flash-item-link:hover, .flash-item-link:focus-visible { color: var(--flash-rarity); background: rgba(255,255,255,.08); outline: 2px solid var(--flash-rarity); outline-offset: -2px; }
.flash-item-icon, #flash-dialog-items > li img { width: 34px; height: 34px; object-fit: contain; filter: drop-shadow(0 2px 3px rgba(0,0,0,.6)); }
.flash-item-icon-fallback { display: grid; place-items: center; color: var(--flash-rarity); background: rgba(255,255,255,.08); border: 1px solid currentColor; border-radius: 50%; font-size: 1rem; }
.flash-item-copy, #flash-dialog-items > li > a > span { display: grid; min-width: 0; gap: .08rem; }
.flash-item-name, #flash-dialog-items > li > a > span > strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: .86rem; }
.flash-item-meta, #flash-dialog-items > li > a > span > small { overflow: hidden; color: #bbb6aa; text-overflow: ellipsis; white-space: nowrap; font-size: .68rem; line-height: 1.25; }
.flash-item-quantity, #flash-dialog-items > li > a > b { align-self: center; min-width: 2rem; color: #fff4d6; text-align: right; font-size: .76rem; font-variant-numeric: tabular-nums; }
.quiet-notice { display: flex; align-items: center; gap: .55rem; margin: 0 0 1rem; padding: .7rem .9rem; color: #465946; background: #f2f5eb; border: 1px solid #bdc9ae; border-radius: 5px; font-size: .83rem; }
.starter-mail-prompt { position: fixed; z-index: 1200; right: clamp(14px, 3vw, 44px); bottom: clamp(14px, 3vw, 38px); display: grid; grid-template-columns: 88px minmax(0, 1fr); gap: 1rem; width: min(560px, calc(100vw - 28px)); padding: 1.15rem; color: #252923; background: linear-gradient(145deg, #fffaf0, #ece0be); border: 3px solid #173748; border-radius: 16px; box-shadow: 0 18px 50px rgba(5,18,24,.4), 0 0 0 5px rgba(242,140,40,.32); }
.starter-mail-prompt h2 { margin: .1rem 0 .35rem; color: #173748; font: italic 700 clamp(1.7rem, 4vw, 2.45rem) Georgia, serif; }
.starter-mail-prompt p { margin: 0; line-height: 1.45; }
.starter-mail-prompt .eyebrow { color: #a65022; font-size: .72rem; letter-spacing: .13em; }
.starter-mail-seal { display: grid; width: 88px; height: 88px; place-items: center; align-self: center; background: #173748; border: 5px solid #f28c28; border-radius: 50%; box-shadow: inset 0 0 0 3px #f4d786; }
.starter-mail-seal span { color: #fff4d7; font-size: 2.8rem; transform: rotate(-6deg); }
.starter-mail-actions { display: flex; align-items: center; gap: .6rem; margin-top: .9rem; }
.starter-mail-actions form { margin: 0; }
.starter-mail-actions .button, .starter-mail-actions button { min-width: 105px; text-align: center; }
@media (max-width: 520px) { .starter-mail-prompt { grid-template-columns: 58px minmax(0, 1fr); padding: .9rem; } .starter-mail-seal { width: 58px; height: 58px; border-width: 3px; } .starter-mail-seal span { font-size: 1.9rem; } }
.quiet-notice span { display: inline-grid; width: 1.3rem; height: 1.3rem; place-items: center; color: #fff; background: #66815a; border-radius: 50%; font-weight: bold; }

.meld-dialog { width: min(980px, calc(100vw - 2rem)); max-height: calc(100vh - 2rem); overflow: auto; padding: 0; color: var(--ink); background: var(--brand-paper); border: 1px solid #61675f; border-left: 6px solid var(--brand-orange); border-radius: 0; box-shadow: 0 30px 90px rgba(0,0,0,.72); }
.meld-dialog::backdrop { background: rgba(5,7,6,.86); backdrop-filter: blur(3px); }
.meld-dialog-head { display: flex; align-items: center; justify-content: flex-start; gap: 1.15rem; position: relative; min-height: 124px; padding: 1.5rem clamp(1.15rem, 4vw, 2.5rem); overflow: hidden; color: #f5efe2; text-align: left; background: linear-gradient(110deg, #0b0d0c 0 66%, #242822 100%); border-bottom: 4px solid var(--brand-orange); }
.meld-dialog-head::before { content: ''; position: absolute; inset: 0 0 0 auto; width: 38%; opacity: .2; background: repeating-linear-gradient(135deg, transparent 0 12px, rgba(240,154,36,.3) 12px 13px); }
.meld-dialog-head > * { position: relative; z-index: 1; }
.meld-dialog-head h2 { margin: .25rem 0 .4rem; color: #fff; font: 900 clamp(1.9rem, 4vw, 3rem)/.95 "Arial Narrow", Impact, Arial, sans-serif; letter-spacing: -.015em; text-transform: uppercase; }
.meld-dialog-head h2:focus { outline: 0; }
.meld-dialog-head p { margin: 0; }.meld-dialog-head .eyebrow { color: #ffb349; }
.meld-dialog-head #meld-dialog-intro { max-width: 38rem; color: #cfc8bb; font-size: .92rem; }
.meld-occasion-mark { display: grid; flex: 0 0 auto; width: 68px; height: 68px; place-items: center; color: #17120b; background: var(--brand-orange); border: 1px solid #ffc46f; border-radius: 0; box-shadow: 7px 7px 0 rgba(240,154,36,.16); font-size: 2rem; animation: meld-mark-arrival .55s ease-out both; }
.meld-reveal-grid { display: grid; gap: 1rem; padding: clamp(.85rem, 2.5vw, 1.5rem); background: #d9cdb8; }
.meld-occasion-card { --meld-accent: #d7d23a; display: grid; grid-template-columns: minmax(250px, 34%) minmax(0, 1fr); overflow: hidden; background: var(--surface); border: 1px solid #8f826f; border-left: 5px solid var(--meld-accent); border-radius: 0; box-shadow: 8px 8px 0 rgba(23,26,24,.1); animation: meld-card-arrival .45s .08s ease-out both; }
.meld-occasion-card.rarity-1 { --meld-accent: #d7d23a; }.meld-occasion-card.rarity-2 { --meld-accent: #91c54b; }.meld-occasion-card.rarity-3 { --meld-accent: #73a9c7; }.meld-occasion-card.rarity-4 { --meld-accent: #d45a45; }.meld-occasion-card.rarity-5 { --meld-accent: #a868aa; }.meld-occasion-card.rarity-6 { --meld-accent: #f2a249; }
.meld-occasion-art { position: relative; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-content: center; gap: .65rem; min-height: 360px; padding: 2.8rem 1.2rem 1.2rem; overflow: hidden; background-color: #1b1e1b; background-image: linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px); background-size: 24px 24px; border-right: 1px solid #555b55; isolation: isolate; }
.meld-forge-ring { position: absolute; top: 50%; left: 50%; z-index: -1; display: grid; width: 220px; height: 220px; place-items: center; color: rgba(240,154,36,.13); border: 2px solid rgba(240,154,36,.24); border-radius: 0; box-shadow: 0 0 0 14px rgba(240,154,36,.035); font-size: 7rem; transform: translate(-50%, -50%); animation: meld-forge-turn 30s linear infinite; }
.meld-component-art { position: relative; display: grid; min-width: 0; height: 118px; place-items: center; padding: .4rem; background: rgba(255,250,240,.94); border: 1px solid #706a5e; border-radius: 0; box-shadow: 4px 4px 0 rgba(0,0,0,.25); }
.meld-component-art img { width: 84px; height: 84px; object-fit: contain; filter: drop-shadow(0 5px 5px rgba(0,0,0,.3)); }
.meld-component-art strong { position: absolute; right: 0; bottom: 0; min-width: 2rem; padding: .25rem .38rem; color: #17120b; background: var(--brand-orange); border: 0; border-radius: 0; text-align: center; font: 900 .75rem Arial, sans-serif; }
.meld-occasion-copy { min-width: 0; padding: clamp(1.2rem, 3vw, 1.8rem); background: var(--surface); }
.meld-badges { display: flex; flex-wrap: wrap; gap: .45rem; margin-bottom: .9rem; }
.meld-created-badge, .meld-rarity-badge { display: inline-flex; align-items: center; gap: .35rem; padding: .35rem .58rem; color: #f8f1e4; background: var(--brand-charcoal); border: 1px solid var(--brand-charcoal); border-radius: 0; font: 900 .68rem Arial, sans-serif; text-transform: uppercase; letter-spacing: .09em; }
.meld-rarity-badge { color: #24211b; background: color-mix(in srgb, var(--meld-accent) 28%, #fffaf0); border-color: var(--meld-accent); }
.meld-kicker { margin: 0 0 .25rem; color: #8c4b00; font: 900 .67rem Arial, sans-serif; text-transform: uppercase; letter-spacing: .16em; }
.meld-occasion-copy h3 { margin: 0 0 .6rem; font: 900 clamp(1.65rem, 3vw, 2.45rem)/1 "Arial Narrow", Impact, Arial, sans-serif; text-transform: uppercase; }.meld-occasion-copy h3 a { color: #282b28; }
.meld-description { margin: 0 0 1.1rem; color: var(--muted); line-height: 1.5; }
.meld-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .55rem; margin: 0; }
.meld-facts div { min-width: 0; padding: .65rem .75rem; background: var(--surface-soft); border: 1px solid var(--line); border-radius: 0; }
.meld-facts dt { display: flex; gap: .35rem; margin-bottom: .2rem; color: #765326; font: 900 .66rem Arial, sans-serif; text-transform: uppercase; letter-spacing: .07em; }.meld-facts dd { margin: 0; color: var(--ink); font-size: .84rem; }
.meld-reveal-recipe { margin-top: 1rem; padding-top: .9rem; border-top: 1px solid var(--line); }.meld-reveal-recipe h4 { margin: 0 0 .6rem; color: #69430f; font-size: .76rem; text-transform: uppercase; letter-spacing: .07em; }
.meld-reveal-recipe ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .45rem; margin: 0; padding: 0; list-style: none; }
.meld-reveal-recipe li { display: grid; grid-template-columns: 36px minmax(0, 1fr) auto; align-items: center; gap: .5rem; min-width: 0; padding: .42rem .5rem; background: #fffdf7; border: 1px solid #d4c7ae; border-radius: 0; }.meld-reveal-recipe li img { width: 34px; height: 34px; object-fit: contain; }.meld-reveal-recipe li span { min-width: 0; }.meld-reveal-recipe li strong, .meld-reveal-recipe li small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.meld-reveal-recipe li strong { color: #35372f; font-size: .76rem; }.meld-reveal-recipe li small { color: #776f62; font-size: .67rem; }.meld-reveal-recipe li b { color: #7b4100; font-size: .78rem; }
.meld-links { display: flex; flex-wrap: wrap; gap: .55rem; margin-top: 1.15rem; }.meld-links .button { display: inline-flex; align-items: center; gap: .35rem; }
.meld-dialog-foot { display: flex; align-items: center; justify-content: space-between; gap: 1rem; position: sticky; bottom: 0; z-index: 3; padding: .9rem clamp(1rem, 3vw, 1.5rem); color: #eee6d8; background: rgba(23,26,24,.98); border-top: 1px solid #444a44; box-shadow: 0 -8px 24px rgba(0,0,0,.2); backdrop-filter: blur(8px); }.meld-dialog-foot p { margin: 0; color: #cfc7b9; }.meld-dialog-foot button { flex: 0 0 auto; }.meld-dialog-foot button span { margin-right: .3rem; }
@keyframes meld-mark-arrival { from { opacity: 0; transform: scale(.25) rotate(-50deg); } to { opacity: 1; transform: scale(1) rotate(0); } }
@keyframes meld-card-arrival { from { opacity: 0; transform: translateY(22px) scale(.98); } to { opacity: 1; transform: translateY(0) scale(1); } }
@keyframes meld-forge-turn { to { transform: translate(-50%, -50%) rotate(1turn); } }
@media (prefers-reduced-motion: reduce) { .meld-occasion-mark, .meld-occasion-card, .meld-forge-ring { animation: none; } }
.page-title { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; margin-bottom: .5rem; padding-bottom: 1.25rem; border-bottom: 1px solid var(--line); }
.page-title > div { flex: 0 0 auto; max-width: 65%; min-width: 0; }
.page-title h1 { margin-bottom: 0; }
.page-title > p { flex: 1 1 0; min-width: 0; max-width: 38rem; margin-bottom: 0; color: var(--muted); line-height: 1.45; }
.mine-list, .shop-grid { display: grid; gap: .8rem; }
.mine-voucher-notice { margin: 1.25rem 0; padding: 1rem 1.2rem; color: #f7f0df; background: #20251f; border-top: 4px solid var(--accent); box-shadow: 0 10px 24px rgba(64,51,31,.12); }
.mine-voucher-notice .eyebrow { margin: 0 0 .25rem; color: var(--accent); }
.mine-voucher-notice h2 { margin: 0 0 .35rem; color: #fffaf0; }
.mine-voucher-notice p:last-child { margin: 0; color: #ddd5c5; }
.container-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .7rem; }
.container-card { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem; background: rgba(255,255,255,.72); border: 1px solid var(--line); }
.container-card h3, .container-card p { margin: 0; }
.container-card p { margin-top: .25rem; color: var(--muted); }
.mine, .shop-card { display: grid; grid-template-columns: 96px 1fr auto; align-items: center; gap: 1rem; }
.mine img, .shop-card img { width: 48px; height: 48px; image-rendering: auto; }
.mine h3, .shop-card h3 { margin-bottom: .25rem; }
.mine p, .shop-card p { color: var(--muted); margin: 0; font-size: .9rem; }
.mine-actions { display: flex; gap: .5rem; }
.mine-actions form { margin: 0; }
.mine-tool-links { margin-top: .7rem; }
.mine.inactive { opacity: .72; }
.mine-priority { display: inline-grid; width: 1.6rem; height: 1.6rem; place-items: center; color: white; background: var(--ink); border-radius: 50%; font: bold .75rem Arial, sans-serif; }
.bot-builder { display: grid; grid-template-columns: 1fr 210px; align-items: center; gap: 1rem; padding: 1rem; background: rgba(255,255,255,.58); border: 1px solid var(--line); }
.bot-builder > img { width: 200px; max-width: 100%; }
.bot-builder ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .4rem; padding: 0; list-style: none; }
.bot-builder li { display: flex; align-items: center; justify-content: space-between; gap: .5rem; padding: .45rem; border-bottom: 1px solid var(--line); }
.bot-builder form { margin: 0; }
.item-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; }
.item { position: relative; min-width: 0; min-height: 82px; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: .75rem; padding: .75rem; border-left-width: 4px; }
.item-card-link { min-width: 0; display: grid; grid-template-columns: 48px minmax(0, 1fr); align-items: center; gap: .8rem; color: inherit; border-radius: 4px; }
.item-card-link:hover { text-decoration: none; }
.item-card-link:hover strong { color: inherit; text-decoration: none; }
.item-card-art { position: relative; display: grid; width: 48px; height: 48px; place-items: center; background: transparent; border: 0; }
.item-card-art img { width: 48px; height: 48px; object-fit: contain; }
.item-card-damaged .item-card-art::after { content: ''; position: absolute; right: -4px; bottom: -4px; width: 20px; height: 20px; background: rgba(255,255,255,.92) url('/img/icons/broken.png') center/16px 16px no-repeat; border: 1px solid #8d372d; border-radius: 50%; box-shadow: 0 1px 3px rgba(0,0,0,.3); }
.item-card-copy { min-width: 0; }
.item-card-copy strong { display: block; overflow-wrap: anywhere; }
.item-card small { display: block; margin-top: .3rem; color: var(--muted); font: .75rem Arial, sans-serif; }
.item-card-description { margin: .4rem 0 0; color: var(--muted); font-size: .84rem; line-height: 1.4; }
.item-card-actions { display: flex; align-items: center; justify-content: flex-end; gap: .4rem; }
.item-card-actions form { margin: 0; }
.item-card-details { grid-column: 1 / -1; }
.item-card-compact { min-height: 64px; padding: .5rem; }
.item-card-compact .item-card-link { grid-template-columns: 38px minmax(0, 1fr); gap: .55rem; }
.item-card-compact .item-card-art { width: 38px; height: 38px; }
.item-card-compact .item-card-art img { width: 38px; height: 38px; }
.item-card-featured { min-height: 170px; }
.item-card-featured .item-card-link { grid-template-columns: 150px minmax(0, 1fr); }
.item-card-featured .item-card-art { width: 150px; height: 120px; background: transparent; border: 0; }
.item-card-featured .item-card-art img { width: 76px; height: 76px; }
.item-card-unavailable { opacity: .58; }
.item-card-picker { cursor: pointer; }
.item-card-picker > input { width: auto; margin: 0; }
.item-card-actions > label { display: inline-flex; align-items: center; gap: .35rem; margin: 0; }
.item-actions { display: flex; align-items: center; gap: .4rem; }
.item-actions form { margin: 0; }
.inventory-item-card { grid-template-columns: minmax(0, 1fr); align-content: start; }
.inventory-item-card .item-card-actions { min-width: 0; justify-content: flex-start; flex-wrap: wrap; }
.inventory-item-card .inventory-list-form { flex: 1 1 15rem; }
.inventory-item-card .inventory-list-all-form { flex: 0 0 auto; }
.inventory-item-card .inventory-meld-form { flex: 0 0 auto; }
.inventory-item-card .recycle-form { flex: 1 1 10rem; }
.inventory-item-card .recycle-all-form { flex: 0 0 auto; }
.inventory-region-list { display: grid; gap: 1.4rem; }
.inventory-region { padding: 1rem; background: rgba(255,255,255,.38); border: 1px solid var(--line); }
.inventory-region > header, .inventory-city > header { display: flex; min-height: 0; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: .6rem 1rem; padding: 0 0 .7rem; color: inherit; background: none; border: 0; border-bottom: 1px solid var(--line); }
.inventory-region > header h2, .inventory-city > header h3, .inventory-region > header p, .inventory-city > header p { margin: 0; }
.inventory-region > header > p, .inventory-city > header > p { color: var(--muted); }
.inventory-city { margin-top: 1rem; padding: .85rem; background: rgba(255,255,255,.52); border-left: 4px solid var(--line); }
.inventory-city.current { border-left-color: var(--gold); }
.inventory-city > header form { margin: 0; }
.inventory-city > .item-grid { margin-top: .8rem; }
.inventory-item-remote { opacity: .88; }
.inventory-list-form { display: flex; align-items: end; gap: .35rem; }
.inventory-list-form label { display: flex; flex: 1; flex-direction: column; gap: .15rem; margin: 0; }
.inventory-list-form input { width: 100%; margin: 0; padding: .65rem; }
.inventory-list-all-form { display: flex; align-items: end; }
.inventory-meld-form { display: flex; align-items: end; }
.recycle-form { display: flex; gap: .35rem; }
.recycle-form input { width: 4.5rem; margin: 0; padding: .65rem; }
.recycle-all-form { display: flex; }
.discovery-item-card { overflow: hidden; background: rgba(255,255,255,.9); border: 1px solid var(--line); border-left-width: 6px; box-shadow: 0 5px 15px rgba(48,42,33,.1); }
.discovery-item-card-meta { display: grid; gap: .25rem; margin: 0; padding-top: .75rem; border-top: 1px solid rgba(85,102,107,.2); font-size: .75rem; }
.discovery-item-card-meta div { display: grid; grid-template-columns: 3.4rem minmax(0, 1fr); gap: .35rem; }
.discovery-item-card-meta dt { color: var(--muted); font-weight: bold; text-transform: uppercase; }
.discovery-item-card-meta dd { min-width: 0; margin: 0; overflow-wrap: anywhere; }
.discovery-item-card-meta time { white-space: nowrap; }
.capacity-warning { padding: 1rem; color: #6f251b; background: #fff0df; border: 1px solid #c98645; }
.auto-recycle-list { display: grid; gap: .55rem; margin: 1rem 0; }
.auto-recycle-row { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .75rem 1rem; background: rgba(255,255,255,.72); border: 1px solid var(--line); }
.auto-recycle-row img { width: 38px; height: 38px; object-fit: contain; }
.auto-recycle-row small { display: block; color: var(--muted); }
.auto-recycle-row .item-card-actions { justify-content: flex-start; }
.auto-recycle-choice { display: flex; flex-wrap: wrap; align-items: end; gap: .7rem; }
.auto-recycle-choice label { margin: 0; }
.auto-recycle-choice .checkbox-line { align-self: center; }
.auto-recycle-choice label:last-child { display: grid; gap: .2rem; color: var(--muted); font-size: .72rem; font-weight: bold; text-transform: uppercase; }
.auto-recycle-choice input[type="number"] { width: 6rem; margin: 0; padding: .55rem; }
.auto-recycle-form > button { position: sticky; bottom: .75rem; z-index: 2; width: 100%; padding: .9rem; box-shadow: 0 4px 12px rgba(0,0,0,.18); }
.stats-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.stats-section h2 { margin-bottom: .4rem; }
.stats-section th { width: 65%; text-transform: none; }
.market-search { display: grid; grid-template-columns: minmax(220px, 1fr) auto; align-items: end; gap: .8rem; margin: 1.5rem 0; }
.market-controls { display: grid; grid-template-columns: minmax(180px, 1.4fr) minmax(145px, .8fr) minmax(165px, .9fr) auto auto; align-items: end; gap: .55rem; margin: 1.15rem 0 .65rem; padding: .8rem; background: rgba(255,255,255,.58); border: 1px solid var(--line); }
.market-controls label { margin: 0; }
.market-controls input, .market-controls select { margin-top: .25rem; padding: .62rem; }
.market-result-count { margin: .55rem 0 .8rem; color: var(--muted); font-size: .82rem; }
.market-item-grid { gap: .5rem; }
.market-item-card { min-height: 58px; padding: .45rem .55rem; gap: .5rem; }
.market-item-card .item-card-copy small { margin-top: .16rem; line-height: 1.25; }
.market-buy-form { display: grid; grid-template-columns: 3.8rem auto; align-items: end; gap: .35rem; }
.market-buy-form label { margin: 0; color: var(--muted); font-size: .68rem; font-weight: 700; text-transform: uppercase; }
.market-buy-form input { min-height: 34px; margin: .15rem 0 0; padding: .4rem; }
.market-buy-form button { min-height: 34px; padding: .55rem .7rem; }
.market-meldable-badge { display: inline-flex; align-items: center; min-height: 28px; padding: .3rem .5rem; color: #342300; background: #f2c14e; font: 900 .65rem/1 Arial, sans-serif; letter-spacing: .06em; text-transform: uppercase; white-space: nowrap; }
.market-bid-button { min-height: 34px; padding: .55rem .7rem; white-space: nowrap; }
.trade-forms { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; }
.trade-forms form { padding: 1.5rem; background: rgba(255,255,255,.72); border: 1px solid var(--line); }
.trade-forms h2 { margin-top: 0; }
.table-scroll { overflow-x: auto; }
.admin-metrics { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 1rem; margin: 1.5rem 0 2rem; }
.admin-metrics article { display: flex; flex-direction: column; gap: .35rem; padding: 1.1rem; border: 1px solid var(--line); background: rgba(255,255,255,.04); }
.admin-metrics strong { font-size: 1.45rem; }
.admin-metrics span { color: var(--muted); }
.admin-actions { display: flex; flex-wrap: wrap; gap: .75rem; }
.admin-actions form { margin: 0; }
.world-map-tabs { display: flex; flex-wrap: wrap; gap: .5rem; margin-bottom: 1rem; }
.world-map-tabs a { padding: .45rem .8rem; border: 1px solid var(--line); color: var(--muted); text-decoration: none; }
.world-map-tabs a.active { color: #fff; background: #6b4822; border-color: #b98a49; }
.map-opportunities { margin: 1rem 0 1.5rem; padding: 1rem 1.2rem; border: 1px solid #9b7a44; background: rgba(239,211,129,.08); }
.map-opportunities h2 { margin-top: 0; }
.map-opportunities > .eyebrow { margin-bottom: .35rem; }
.map-region-facts { margin-bottom: 0; color: var(--muted); }
table { width: 100%; border-collapse: collapse; background: rgba(255,255,255,.72); }
th, td { padding: .8rem; text-align: left; border-bottom: 1px solid var(--line); }
th { color: var(--muted); font: bold .75rem Arial, sans-serif; text-transform: uppercase; }
.inline-order { display: flex; gap: .4rem; justify-content: end; }
.inline-order input { width: 5rem; margin: 0; padding: .65rem; }
.miner-list, .message-list, .conversation { display: grid; gap: .75rem; margin-top: 1.5rem; }
.miner-card { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.2rem; background: rgba(255,255,255,.72); border: 1px solid var(--line); }
.miner-card-copy { min-width: 0; margin-right: auto; }
.miner-card h3 { margin-bottom: .3rem; }
.miner-card p, .muted { margin: 0; color: var(--muted); }
.miner-meld-rank { display: grid; min-width: 5.6rem; align-self: stretch; place-content: center; gap: .32rem; padding: .55rem .7rem; color: #f4efe5; background: #171a18; border-left: 4px solid color-mix(in srgb, var(--miner-chat-color) 68%, white); text-align: center; }
.miner-rank-number { color: color-mix(in srgb, var(--miner-chat-color) 34%, white); font: 900 1.05rem/1 "Arial Narrow", Impact, Arial, sans-serif; letter-spacing: .04em; }
.miner-meld-total { display: grid; gap: .12rem; }
.miner-meld-total strong { color: #fffaf0; font: 900 1.28rem/.9 "Arial Narrow", Impact, Arial, sans-serif; font-variant-numeric: tabular-nums; }
.miner-meld-total small { color: #c9c5bc; font: 900 .55rem/1 Arial, sans-serif; letter-spacing: .1em; text-transform: uppercase; white-space: nowrap; }
.miner-actions { display: flex; gap: .45rem; align-items: center; }
.miner-actions form { margin: 0; }
.profile-editor { width: min(430px, 100%); }
.profile-tools { display: flex; flex-wrap: wrap; gap: .8rem; }
.profile-action { display: inline-flex; align-items: center; gap: .35rem; }
.profile-action img { width: auto; height: auto; image-rendering: auto; }
.profile-description { max-width: 760px; white-space: pre-wrap; line-height: 1.6; }
.profile-about { display: grid; grid-template-columns: 210px 1fr; gap: 1.25rem; align-items: start; }
.avatar-stack, .avatar-empty { position: relative; width: 200px; height: 200px; background: rgba(255,255,255,.55); border: 1px solid var(--line); }
.avatar-stack img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; }
.avatar-empty { display: grid; place-items: center; color: var(--muted); }
.avatar-editor { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 1.5rem; align-items: start; }
.avatar-editor form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; }
.avatar-editor form p, .avatar-editor form button { grid-column: 1 / -1; }
.message-filter-groups { display: grid; gap: .8rem; margin-top: 1rem; }
.message-filter-groups > div > strong { color: var(--muted); font: bold .72rem Arial, sans-serif; text-transform: uppercase; }
.message-filters { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .35rem; }
.message-filters a { padding: .55rem .85rem; background: rgba(255,255,255,.6); border: 1px solid var(--line); }
.message-filters a.active { color: white; background: var(--ink); }
.message-bulk { display: flex; align-items: center; flex-wrap: wrap; gap: .5rem; margin-top: 1rem; }
.message-select-all { display: inline-flex; align-items: center; gap: .4rem; margin: 0 .35rem 0 0; font-weight: bold; }
.message-select-all input { width: auto; margin: 0; }
.message-bulk button { padding: .55rem .8rem; }
.message-row { display: grid; grid-template-columns: auto minmax(0, 1fr) auto auto; align-items: center; gap: 1rem; padding: 1rem; color: var(--ink); background: rgba(255,255,255,.72); border: 1px solid var(--line); }
.message-row.unread { border-left: 4px solid var(--gold); }
.message-row.kept, .message-bubble.kept { border-color: #769180; background: rgba(235,245,236,.78); }
.message-row > input { width: auto; margin: 0; }
.message-row div { min-width: 0; }
.message-summary > strong { display: flex; align-items: center; gap: .45rem; }
.message-type { flex: 0 0 auto; padding: .16rem .38rem; color: var(--muted); background: rgba(85,102,107,.1); border: 1px solid rgba(85,102,107,.22); font: bold .65rem Arial, sans-serif; text-transform: uppercase; }
.message-preview { display: block; overflow: hidden; color: var(--muted); text-overflow: ellipsis; white-space: nowrap; }
.message-actions { display: flex; gap: .55rem; margin: 0; }
.link-button { padding: 0; color: var(--rust); background: none; border: 0; box-shadow: none; text-decoration: none; }
.message-row time, .message-bubble time { color: var(--muted); font: .75rem Arial, sans-serif; }
.message-row time { display: grid; gap: .3rem; min-width: 112px; }
.message-row time small { font: inherit; }
.message-kept { display: inline-block; width: fit-content; padding: .14rem .42rem; color: #28533a; background: #d5eadb; border-radius: 999px; font: bold .7rem Arial, sans-serif; text-transform: uppercase; letter-spacing: .04em; }
.message-expiry { color: #7a5a37; font: .72rem Arial, sans-serif; }
.message-retention-notice { margin: 1rem 0; padding: .8rem 1rem; background: #f3ead9; border-left: 4px solid #9b6b28; }
.message-detail { box-sizing: border-box; min-width: 0; padding: 1.25rem; background: rgba(255,255,255,.72); border: 1px solid var(--line); }
.message-detail-meta { display: flex; flex-wrap: wrap; gap: .6rem 1.5rem; margin: 0 0 1rem; padding-bottom: .8rem; border-bottom: 1px solid var(--line); }
.message-detail-meta div { display: flex; gap: .35rem; }
.message-detail-meta dt { color: var(--muted); font-weight: bold; }
.message-detail-meta dd { margin: 0; }
.message-detail-body { line-height: 1.6; overflow-wrap: anywhere; white-space: pre-wrap; }
.message-combat-report { display: grid; gap: 1rem; min-width: 0; margin-top: 1.25rem; }
.message-combat-report > h2 { margin: .2rem 0 -.35rem; font-size: 1.2rem; }
.message-combat-ledger { min-width: 0; padding: .85rem; background: #191d1a; color: #f6f0df; box-shadow: inset 0 3px 0 var(--accent); }
.message-combat-ledger > h2 { margin: 0 0 .75rem; color: #f6f0df; font-size: 1.15rem; }
.message-combatants { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; }
.message-combatant { --combat-accent: var(--rarity-link-color, #f29b22); min-width: 0; padding: .7rem; background: #f7f0e2; color: var(--ink); box-shadow: inset 0 4px 0 var(--combat-accent); }
.message-combatant > header { display: grid; grid-template-columns: 72px minmax(0, 1fr); align-items: center; gap: .7rem; min-height: 0; padding: 0 0 .65rem; background: none; border: 0; }
.message-combatant > header img { width: 72px; height: 72px; object-fit: contain; filter: drop-shadow(0 4px 5px rgba(0,0,0,.22)); }
.message-combatant > header span { color: var(--muted); font: bold .66rem Arial, sans-serif; letter-spacing: .1em; text-transform: uppercase; }
.message-combatant > header h3 { margin: .12rem 0 0; color: var(--combat-accent); font-size: 1.12rem; overflow-wrap: anywhere; }
.message-combatant-stats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; margin: 0; background: rgba(120,100,70,.18); }
.message-combatant-stats > div { min-width: 0; padding: .42rem .48rem; background: rgba(255,255,255,.78); }
.message-combatant-stats dt { color: var(--muted); font: bold .63rem Arial, sans-serif; letter-spacing: .045em; text-transform: uppercase; }
.message-combatant-stats dd { margin: .14rem 0 0; font-size: .8rem; line-height: 1.35; overflow-wrap: anywhere; }
.message-combat-phase { min-width: 0; padding: .8rem; background: rgba(245,239,222,.72); box-shadow: inset 3px 0 0 var(--accent); }
.message-combat-phase h3 { margin: 0 0 .55rem; font-size: 1rem; }
.message-combat-phase p:last-child { margin-bottom: 0; }
@media (max-width: 760px) {
  .message-combatants { grid-template-columns: 1fr; }
  .message-combatant-stats { grid-template-columns: 1fr; }
}
.message-digest-summary { margin: 1rem 0 0; padding: .75rem; background: rgba(245,239,222,.72); border: 1px solid var(--line); }
.message-digest-summary div { align-items: baseline; }
.message-digest-summary dd strong { font-size: 1.1rem; }
.message-finding-locations { margin-top: .75rem; padding: .75rem; background: rgba(245,239,222,.72); border: 1px solid var(--line); }
.message-finding-locations h2 { margin: 0 0 .6rem; font-size: 1.05rem; }
.message-finding-locations ul { display: grid; gap: .4rem; margin: 0; padding: 0; list-style: none; }
.message-finding-locations li { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .35rem 1rem; padding-top: .4rem; border-top: 1px solid var(--line); }
.message-finding-locations li:first-child { padding-top: 0; border-top: 0; }
.message-finding-locations span { color: var(--muted); }
.message-digest-summary + .message-item-groups,
.message-finding-locations + .message-item-groups { margin-top: .75rem; }
.message-item-groups { display: grid; min-width: 0; gap: 1rem; margin-top: 1.2rem; }
.message-item-group { box-sizing: border-box; min-width: 0; padding: .85rem; background: rgba(245,239,222,.72); border: 1px solid var(--line); }
.message-item-group > header { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; min-height: 0; padding: 0 0 .65rem; background: none; border: 0; }
.message-item-group h2 { margin: 0; font-size: 1.05rem; }
.message-item-group > header > span { color: var(--muted); font: bold .72rem Arial, sans-serif; text-transform: uppercase; }
.message-item-group ul { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: .5rem; margin: 0; padding: 0; list-style: none; }
.message-item { --message-item-accent: #657176; min-width: 0; border-left: 5px solid var(--message-item-accent); background: rgba(255,255,255,.82); }
.message-item.rarity-1 { --message-item-accent: #9a8e00; } .message-item.rarity-2 { --message-item-accent: #557d22; } .message-item.rarity-3 { --message-item-accent: #397493; } .message-item.rarity-4 { --message-item-accent: #b54432; } .message-item.rarity-5 { --message-item-accent: #87458d; } .message-item.rarity-6 { --message-item-accent: #b85e08; }
.message-item-crypto { --message-item-accent: #4e6f7e; }
.message-item a { display: grid; grid-template-columns: 42px minmax(0, 1fr) auto; align-items: center; gap: .55rem; min-height: 48px; padding: .35rem .5rem; color: var(--message-item-accent); text-decoration-color: color-mix(in srgb, var(--message-item-accent) 55%, transparent); }
.message-item img { width: 38px; height: 38px; object-fit: contain; }
.message-item a > span { display: grid; min-width: 0; }
.message-item strong { overflow-wrap: anywhere; }
.message-item small { color: var(--muted); }
.message-item b { color: var(--ink); font-size: .82rem; white-space: nowrap; }
.message-detail-actions { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: 1.25rem; padding-top: 1rem; border-top: 1px solid var(--line); }
.message-detail-retention { margin-top: 1rem; }
.message-bubble { padding: 1rem 1.2rem; background: rgba(255,255,255,.72); border: 1px solid var(--line); }
.message-bubble header { min-height: 0; padding: 0 0 .6rem; background: none; border: 0; }
.message-bubble p { margin: 0; white-space: pre-wrap; line-height: 1.5; }
.message-compose { margin-top: 1rem; padding: 1.2rem; background: rgba(255,255,255,.72); border: 1px solid var(--line); }
.ore-thief-operation { margin: 1rem 0 1.6rem; overflow: hidden; color: #e9e2d2; background: #151a17; border-top: 5px solid var(--brand-orange); box-shadow: 0 15px 30px rgba(30,24,15,.18); }
.ore-thief-operation > header { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(22rem, .85fr); gap: 1.2rem; min-height: 0; padding: 1.2rem; color: inherit; background: #1c221e; border: 0; border-bottom: 1px solid #3c443e; }
.ore-thief-operation > header h2 { margin: .2rem 0 .45rem; color: #fff6df; font-size: clamp(1.8rem, 4vw, 2.7rem); }
.ore-thief-operation > header p { max-width: 42rem; margin: 0; color: #bfc5bc; line-height: 1.5; }
.ore-thief-operation > header strong { color: #ffd17b; }
.ore-thief-operation > header dl { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); align-self: stretch; margin: 0; background: #111512; }
.ore-thief-operation > header dl div { min-width: 0; padding: .8rem; border-left: 1px solid #343b36; }
.ore-thief-operation > header dt { color: #8d998f; font: 900 .55rem/1.2 Arial, sans-serif; letter-spacing: .1em; text-transform: uppercase; }
.ore-thief-operation > header dd { margin: .35rem 0 0; color: #f0eadc; font: 800 .78rem/1.35 Arial, sans-serif; overflow-wrap: anywhere; }
.ore-thief-operation > ol { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; margin: 0; padding: 1px 0; background: #343b36; list-style: none; counter-reset: none; }
.ore-thief-stage { position: relative; display: grid; grid-template-columns: auto 4.6rem minmax(0, 1fr); grid-template-rows: auto 1fr; gap: .3rem .75rem; min-width: 0; padding: 1rem; background: #202622; }
.ore-thief-stage::after { content: ''; position: absolute; right: 0; bottom: 0; left: 0; height: 3px; background: #58605a; }
.ore-thief-stage.is-active::after { background: var(--brand-orange); box-shadow: 0 0 12px rgba(243,154,24,.55); }
.ore-thief-stage.is-complete::after { background: #6fa861; }
.ore-thief-stage.is-locked { color: #91978f; background: #1a1f1c; }
.ore-thief-stage-number { grid-row: 1 / 3; color: #6e766f; font: 900 .7rem/1 Arial, sans-serif; letter-spacing: .08em; }
.ore-thief-stage-art { display: grid; grid-row: 1 / 3; width: 4.6rem; height: 4.6rem; place-items: center; padding: 0; background: #101411; border: 0; text-decoration: none; }
.ore-thief-stage-art img { width: 4rem; height: 4rem; object-fit: contain; }
.ore-thief-stage.is-locked .ore-thief-stage-art { filter: grayscale(1); opacity: .55; }
.ore-thief-stage > div { min-width: 0; }
.ore-thief-stage .eyebrow { margin: 0 0 .2rem; color: #919c92; }
.ore-thief-stage h3 { margin: 0; color: #fff5dc; font: 900 1rem/1.1 "Arial Narrow", Impact, Arial, sans-serif; text-transform: uppercase; }
.ore-thief-stage h3 a { color: inherit; border: 0; text-decoration-color: #716c5e; }
.ore-thief-stage p { margin: .55rem 0; color: #c5c8c1; font-size: .76rem; line-height: 1.4; }
.ore-thief-stage small { color: #8f978f; font-size: .65rem; }
.ore-thief-stage > strong { grid-column: 3; align-self: end; justify-self: start; padding: .3rem .42rem; color: #aeb4ad; background: #303732; font: 900 .56rem/1 Arial, sans-serif; letter-spacing: .08em; }
.ore-thief-stage.is-active > strong { color: #21170a; background: var(--brand-orange); }
.ore-thief-stage.is-complete > strong { color: #e4f3de; background: #45653e; }
.ore-thief-operation > footer { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .9rem 1.2rem; color: #aeb5ad; background: #101411; }
.ore-thief-operation > footer p { max-width: 48rem; margin: 0; font-size: .74rem; line-height: 1.4; }
.ore-thief-operation > footer form { margin: 0; }
.ore-thief-operation > footer .button, .ore-thief-operation > footer button { white-space: nowrap; }
.vehicle-list { display: grid; gap: .8rem; }
.vehicle-region-list { display: grid; gap: 1rem; margin-top: 1rem; }
.vehicle-region { padding: .8rem; background: rgba(255,255,255,.38); border: 1px solid var(--line); }
.vehicle-region > header { display: flex; min-height: 0; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: .5rem 1rem; padding: 0 0 .65rem; color: inherit; background: none; border: 0; border-bottom: 1px solid var(--line); }
.vehicle-region > header h3, .vehicle-region > header p { margin: 0; }
.vehicle-region > header > p { color: var(--muted); }
.vehicle-location-list { display: grid; gap: .5rem; margin: .7rem 0 0; padding: 0; list-style: none; }
.vehicle-location-list li { display: grid; grid-template-columns: minmax(8rem, 1fr) minmax(7rem, auto) auto; align-items: center; gap: .7rem; padding: .75rem .9rem; background: rgba(255,255,255,.72); border: 1px solid var(--line); }
.vehicle-location-list form { margin: 0; }
.city-scope-warning { max-width: 760px; padding: 1.2rem; background: rgba(255,244,205,.72); border: 1px solid #c98a20; }
.rank-badge { display: inline-block; margin-right: .35rem; vertical-align: middle; }
.rank-badge img { display: inline-block; width: auto; height: 14px; vertical-align: middle; }
.vehicle-hero { display: flex; align-items: center; gap: 1.2rem; padding: 1.2rem; background: rgba(255,255,255,.72); border: 1px solid var(--line); }
.vehicle-hero > img { width: 72px; height: 72px; object-fit: contain; }
.vehicle-hero .item-card-featured .item-card-art { background-image: none; }
.vehicle-hero-compact { padding: .75rem; }
.vehicle-hero.vehicle-hero-compact > .item-card { flex: 1 1 24rem; min-height: 58px; }
.vehicle-hero-compact > div { flex: 1 1 18rem; }
.vehicle-hero-compact p { margin: 0; }
.vehicle-loadout { margin: 1rem 0; padding: 1rem 1.2rem; background: rgba(247,239,216,.82); border: 1px solid var(--line); }
.vehicle-loadout h2 { margin-top: 0; }
.vehicle-loadout dl { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: .55rem; margin: 0; }
.vehicle-loadout dl div { padding: .65rem .75rem; background: rgba(255,255,255,.72); border-left: 4px solid var(--gold); }
.vehicle-loadout dt { color: var(--muted); font: bold .72rem Arial, sans-serif; letter-spacing: .04em; text-transform: uppercase; }
.vehicle-loadout dd { margin: .2rem 0 0; font-weight: bold; overflow-wrap: anywhere; }
.combat-stat-board { margin-top: .75rem; padding: .7rem; color: #f8f0dc; background: #1b211d; border-left: 5px solid var(--gold); box-shadow: inset 0 0 0 1px rgba(255,255,255,.08); }
.combat-stat-board > header { display: flex; min-height: 0; align-items: baseline; justify-content: space-between; gap: .8rem; padding: 0 .1rem .6rem; color: inherit; background: none; border: 0; }
.combat-stat-board > header strong { color: #fff7e6; font: 900 .76rem/1 Arial, sans-serif; letter-spacing: .09em; text-transform: uppercase; }
.combat-stat-board > header span { color: #aab1a8; font-size: .7rem; }
.vehicle-loadout .combat-stat-board > dl,
.loadout-preview .combat-stat-board > dl { display: grid; grid-template-columns: repeat(5, minmax(90px, 1fr)); gap: 2px; margin: 0; }
.vehicle-loadout .combat-stat-board > dl > div,
.loadout-preview .combat-stat-board > dl > div { --combat-stat-color: #f39a18; min-width: 0; padding: .7rem .65rem .65rem; background: #292f2a; border: 0; border-top: 3px solid var(--combat-stat-color); }
.combat-stat-board [data-combat-stat="armor"] { --combat-stat-color: #96b1b7; }
.combat-stat-board [data-combat-stat="offense"] { --combat-stat-color: #d86c4d; }
.combat-stat-board [data-combat-stat="defense"] { --combat-stat-color: #83ad6b; }
.combat-stat-board [data-combat-stat="dodge"] { --combat-stat-color: #d5bd62; }
.vehicle-loadout .combat-stat-board dt,
.loadout-preview .combat-stat-board dt { color: #c2c8c0; font: 800 .62rem/1 Arial, sans-serif; letter-spacing: .055em; text-transform: uppercase; }
.vehicle-loadout .combat-stat-board dd,
.loadout-preview .combat-stat-board dd { display: grid; gap: .26rem; margin: .4rem 0 0; }
.combat-stat-board dd strong { color: var(--combat-stat-color); font: 900 1.45rem/.9 "Arial Narrow", Impact, Arial, sans-serif; font-variant-numeric: tabular-nums; }
.combat-stat-board dd small { color: #929a91; font: normal .6rem/1.2 Arial, sans-serif; }
.capacity-budget { margin: .8rem 0 1rem; padding: .85rem; background: rgba(255,255,255,.7); border: 1px solid var(--line); border-left: 5px solid var(--green); }
.capacity-budget.capacity-over { border-left-color: #a85c42; background: rgba(250,231,221,.88); }
.capacity-budget > header { display: flex; min-height: 0; align-items: baseline; justify-content: space-between; gap: 1rem; padding: 0 0 .55rem; color: inherit; background: none; border: 0; }
.capacity-budget h3, .capacity-budget header strong { margin: 0; }
.capacity-budget header strong { color: var(--green); font-size: 1.05rem; }
.capacity-over header strong { color: #8d372d; }
.capacity-budget dl { display: grid; grid-template-columns: repeat(7, minmax(72px, 1fr)); gap: .35rem; margin: 0; }
.capacity-budget dl div { min-width: 0; padding: .5rem .55rem; background: rgba(247,239,216,.72); border-left: 0; }
.capacity-budget dt { color: var(--muted); font: bold .66rem Arial, sans-serif; letter-spacing: .04em; text-transform: uppercase; }
.capacity-budget dd { margin: .16rem 0 0; font-weight: bold; overflow-wrap: anywhere; }
.capacity-budget .capacity-total { background: rgba(229,216,178,.75); }
.vehicle-fittings h2 small { color: var(--muted); font: normal .8rem Arial, sans-serif; }
.vehicle-fittings { margin-top: 1rem; }
.vehicle-fittings .item-card-picker { grid-template-columns: minmax(0, 1fr) minmax(9rem, auto); align-items: center; }
.vehicle-fittings .item-card-picker .item-card-actions { justify-content: flex-start; }
.vehicle-fittings .item-card-actions label { min-width: 8rem; }
.vehicle-fittings .item-card-actions input[type="number"] { max-width: 8rem; }
.vehicle-manage-actions, .loadout-preview { margin: 1rem 0; padding: 1rem 1.2rem; border: 1px solid var(--line); background: rgba(255,255,255,.72); }
.button-row, .customization-actions { display: flex; flex-wrap: wrap; gap: .7rem; align-items: center; }
.mine-tool-navigation { margin: 1rem 0 1.5rem; }

.gadget-description { white-space: pre-line; }
.loadout-preview { border-left: 6px solid var(--gold); }
.loadout-preview.preview-valid { border-left-color: var(--green); background: rgba(230,244,224,.86); }
.loadout-preview.preview-invalid { border-left-color: #a85c42; background: rgba(250,231,221,.88); }
.loadout-preview h2 { margin-top: 0; }
.loadout-preview > dl { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: .6rem; }
.loadout-preview > dl > div { padding: .65rem; background: rgba(255,255,255,.68); }
.loadout-preview > dl > div > dt { color: var(--muted); font: bold .72rem Arial, sans-serif; text-transform: uppercase; }
.loadout-preview > dl > div > dd { margin: .2rem 0 0; font-weight: bold; }
.preview-verdict { font-size: 1.05rem; font-weight: bold; }
.customization-actions { position: sticky; bottom: 0; z-index: 2; margin-top: 1rem; padding: .8rem; border-top: 1px solid var(--line); background: rgba(245,239,222,.96); }
.commit-loadout { background: var(--green); }
.fitted-cannon-list { display: grid; gap: .45rem; padding: 0; list-style: none; }
.fitted-cannon-list .item-card { background: rgba(255,255,255,.76); }
.detach-cannons { margin: .8rem 0 1.4rem; padding: .8rem; background: rgba(255,244,205,.55); border: 1px solid var(--line); }
.detach-cannons p { margin-top: 0; }
.fitting-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(310px, 1fr)); gap: .55rem; margin-bottom: .8rem; }
.stacked-actions { display: grid; gap: .45rem; }
.stacked-actions form { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .6rem; background: rgba(255,255,255,.72); border: 1px solid var(--line); }
.stacked-actions .item-card { grid-template-columns: minmax(0, 1fr) minmax(12rem, auto); }
.stacked-actions .item-card-actions { justify-content: stretch; }
.stacked-actions form label { margin: 0; }
.ammo-unload { margin-top: .8rem; padding: .85rem; background: rgba(255,244,205,.55); border: 1px solid var(--line); }
.ammo-unload p { margin-top: 0; }
.danger-confirm { display: flex; align-items: flex-start; gap: .55rem; max-width: 48rem; margin: .7rem 0; color: #6f251b; font-weight: bold; }
.danger-confirm input { flex: 0 0 auto; width: auto; margin: .15rem 0 0; }
.cargo-loadout-table input[type="number"] { width: 6.5rem; margin: 0; }
.cargo-loadout-table .item-card { min-width: 0; }
.vehicle-send-panel { margin-top: .8rem; padding: 1rem; border: 1px solid var(--line); background: var(--surface); }
.vehicle-send-panel > h2 { margin-top: 0; }
.vehicle-shuttle-form { display: grid; gap: .8rem; }
.vehicle-shuttle-form > label { margin: 0; }
.vehicle-shuttle-form fieldset { min-width: 0; margin: 0; padding: .75rem; border: 1px solid var(--line); }
.vehicle-shuttle-form fieldset legend { padding: 0 .3rem; font-weight: bold; }
.vehicle-shuttle-form fieldset > p { margin: 0 0 .65rem; color: var(--muted); }
.vehicle-shuttle-category-actions { justify-content: flex-end; margin: 0 0 .7rem; }
.vehicle-shuttle-category-actions button { min-height: 36px; padding: .5rem .75rem; }
.vehicle-shuttle-categories { display: grid; grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr)); gap: .35rem .8rem; }
.vehicle-shuttle-categories label { display: inline-flex; align-items: center; gap: .35rem; margin: 0; }
.vehicle-shuttle-categories input { width: auto; margin: 0; }
.vehicle-shuttle-form > button { justify-self: start; }
.vehicle-send { display: grid; min-width: 0; grid-template-columns: minmax(16rem, 1.25fr) minmax(12rem, .75fr); align-items: start; gap: .8rem 1rem; }
.vehicle-journey-builder { display: grid; gap: .65rem; }
.vehicle-journey-builder > label { margin: 0; }
.vehicle-journey-legs { display: grid; gap: .55rem; margin: 0; padding: 0; list-style: none; }
.vehicle-journey-legs li { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: .55rem; padding-left: 1rem; border-left: 3px solid var(--accent); }
.vehicle-journey-legs label { margin: 0; }
.vehicle-journey-builder .button-row { margin: 0; }
.vehicle-journey-builder .field-help { margin: 0; color: var(--muted); }
.vehicle-tier-targeting { grid-column: 1 / -1; display: flex; align-items: center; justify-content: space-between; gap: .6rem 1rem; flex-wrap: wrap; }
.vehicle-tier-targeting p { margin: 0; color: var(--muted); }
.vehicle-tier-targeting label { display: inline-flex; align-items: center; gap: .3rem; margin: 0; }
.vehicle-send input[type="checkbox"], .rating-tabs input { width: auto; margin: 0; }
.vehicle-send > button[type="submit"] { justify-self: start; }
.vehicle-itinerary-status ol { margin-bottom: 0; }
.vehicle-itinerary-status small { color: var(--muted); }
.rating-tabs { display: flex; gap: .8rem; margin: 1rem 0; }
.ratings-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.ratings-list { display: grid; gap: .35rem; padding: 0; list-style: none; }
.ratings-list li { display: grid; grid-template-columns: 24px auto minmax(0, 1fr); align-items: center; gap: .25rem; padding: .55rem; background: rgba(255,255,255,.72); border: 1px solid var(--line); }
.ratings-list small { grid-column: 3; color: var(--muted); }
.page-title-actions { display: flex; align-items: center; justify-content: flex-end; gap: .8rem; flex-wrap: wrap; }
.combat-prize-intro { padding: clamp(1rem, 3vw, 1.8rem); background: linear-gradient(135deg, rgba(214,124,23,.17), rgba(255,255,255,.7)); border: 1px solid #b77b35; }
.combat-prize-division { margin-top: 1.4rem; padding: 1rem; border: 1px solid var(--line); background: rgba(255,255,255,.42); }
.combat-prize-division > header { margin-bottom: .9rem; border-bottom: 1px solid var(--line); }
.combat-prize-division > header h2 { margin-top: 0; }
.combat-prize-routes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.combat-prize-route h3 { margin-top: 0; }
.combat-prize-list { display: grid; gap: .55rem; margin: 0; padding: 0; list-style: none; }
.combat-prize-list > li { display: grid; grid-template-columns: 2.5rem minmax(0, 1fr); align-items: center; gap: .55rem; }
.combat-prize-list > li > strong { color: var(--brand-orange); font: 900 1rem Arial, sans-serif; }
.combat-prize-list .item-card { width: 100%; }
@media (max-width: 760px) {
  .combat-prize-routes { grid-template-columns: 1fr; }
  .page-title-actions { justify-content: flex-start; }
}
.battle-summary { padding: 1.2rem; background: rgba(255,255,255,.72); border: 1px solid var(--line); }
.battle-outcome { color: #477d3e; font-size: 1.25rem; font-weight: bold; }
.battle-log { max-height: 32rem; overflow: auto; padding: 1rem; color: #ded7c8; background: #312d29; white-space: pre-wrap; }
.vehicle-actions form { margin: 0; }
.vehicle-actions label { margin: 0; }
.route-map { margin: 1.5rem 0; padding: .8rem; overflow: hidden; background: #143e53; border: 1px solid #315968; border-radius: 10px; box-shadow: 0 12px 30px rgba(31,49,54,.18); }
.route-map svg { display: block; width: 100%; height: auto; min-height: 320px; border-radius: 8px; }
.map-background { pointer-events: none; }
.map-city-halo { fill: rgba(238,228,208,.72); stroke: #171a18; stroke-width: 2.5; filter: drop-shadow(0 2px 3px rgba(0,0,0,.38)); }
.map-city-pin { fill: #d7952d; stroke: #171a18; stroke-width: 4; }
.map-city-label { pointer-events: none; }
.map-city-nameplate-shadow { fill: rgba(5,8,8,.62); }
.map-city-nameplate, .map-city-nameplate-tail { fill: rgba(18,23,22,.98); stroke: #f0dfb4; stroke-width: 2; stroke-linejoin: round; filter: drop-shadow(0 2px 2px rgba(0,0,0,.55)); }
.map-city-nameplate-inlay { fill: none; stroke: #9f6f32; stroke-width: 1; stroke-linejoin: round; }
.map-city-label-rivet { fill: #dfa947; stroke: #211b12; stroke-width: .8; }
.map-city .map-city-name { fill: #fff7e6; font: 700 15px/1 Georgia, "Times New Roman", serif; letter-spacing: .2px; filter: drop-shadow(0 1px 1px #000); pointer-events: none; }
.map-city-rank-plate { fill: #e8b249; stroke: #21170c; stroke-width: 1.5; stroke-linejoin: round; filter: drop-shadow(0 1px 1px rgba(0,0,0,.55)); }
.map-city-rank { fill: #21170c; font: 800 7.5px/1 Arial, sans-serif; letter-spacing: .9px; text-transform: uppercase; }
.map-city-capital .map-city-pin { fill: var(--brand-orange); }
.map-capital-star-marker { fill: #17120b; font: 900 14px/1 Arial, sans-serif; pointer-events: none; }
.map-city-gateway .map-city-halo { stroke: #f2cb65; stroke-width: 4; stroke-dasharray: 6 4; }
.map-city-link { cursor: pointer; outline: none; }
.map-city-link:hover .map-city-halo, .map-city-link:focus .map-city-halo { fill: #fffaf0; stroke-width: 4; }
.map-city-link:hover .map-city-pin, .map-city-link:focus .map-city-pin { fill: var(--brand-orange); transform: scale(1.1); transform-box: fill-box; transform-origin: center; }
.map-city-link:hover .map-city-nameplate, .map-city-link:focus .map-city-nameplate,
.map-city-link:hover .map-city-nameplate-tail, .map-city-link:focus .map-city-nameplate-tail { fill: #292f2b; stroke: #ffd06a; }
.map-city-link:hover .map-city-nameplate-inlay, .map-city-link:focus .map-city-nameplate-inlay { stroke: var(--brand-orange); stroke-width: 2; }
.map-city-current .map-city-halo { fill: rgba(240,154,36,.24); stroke: var(--brand-orange); stroke-width: 5; }
.map-city-current .map-city-pin { fill: var(--brand-orange); stroke: #171a18; stroke-width: 4; }
.map-city-current .map-city-nameplate, .map-city-current .map-city-nameplate-tail { fill: rgba(23,26,24,.98); stroke: var(--brand-orange); }
.map-city-current .map-city-nameplate-inlay { stroke: #ffd26f; stroke-width: 1.75; }
.map-city-current.map-city-gateway .map-city-halo { stroke-dasharray: 6 4; }
.map-city-capital .map-city-nameplate, .map-city-capital .map-city-nameplate-tail { stroke: #f2c867; }
.map-city-capital .map-city-nameplate-inlay { stroke: var(--brand-orange); }
.map-city-capital .map-city-name { fill: #fff1c9; }
.map-city-unknown .map-city-halo { fill: rgba(184,177,163,.62); stroke: #596165; stroke-dasharray: 5 4; }
.map-city-unknown .map-city-pin { fill: #7d8583; stroke: #343934; }
.map-city-unknown .map-city-nameplate, .map-city-unknown .map-city-nameplate-tail { fill: rgba(27,31,29,.94); stroke: #b9b5a5; }
.map-city-unknown .map-city-nameplate-inlay { stroke: #696c65; }
.map-city-unknown .map-city-label-rivet { fill: #85877f; }
.map-city-unknown .map-city-name { fill: #d8d6cb; }
.map-city-unknown .map-city-halo, .map-city-unknown .map-city-pin,
.map-city-unknown .map-city-resources { opacity: .76; }
.map-city-resource-rack { fill: rgba(18,23,22,.94); stroke: rgba(240,223,180,.9); stroke-width: 1.5; filter: drop-shadow(0 3px 2px rgba(0,0,0,.45)); }
.map-resource-token { fill: #f4ead4; stroke: #171a18; stroke-width: 1.25; }
.map-oil-field-icon .map-resource-token { fill: #f3c865; stroke: #9d5d16; stroke-width: 1.75; }
.map-resource-icon image { image-rendering: auto; pointer-events: none; }
.route-map figcaption { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1rem; margin-top: .7rem; color: #e1edef; font-size: .8rem; }
.city-key::before, .mine-key::before, .gateway-key::before { content: ''; display: inline-block; width: 1.8rem; margin-right: .35rem; border-top: 4px solid; vertical-align: middle; }
.city-key::before { width: .8rem; height: .8rem; border: 2px solid #55666b; border-radius: 50%; background: #f5efd9; }
.city-key-capital::before { border-color: #17120b; background: var(--brand-orange); box-shadow: 0 0 0 2px #f5c56e; }
.city-key-current::before { border-color: #7a4206; background: #e9840c; }
.city-key-unknown::before { opacity: .5; background: #b8b1a3; }
.mine-key::before { width: 1rem; height: 1rem; border: 2px solid #4c5f62; border-radius: 3px; background: #faf7e8; }
.oil-field-key { display: inline-flex; align-items: center; gap: .3rem; }
.oil-field-key img { width: 1.35rem; height: 1.35rem; padding: .08rem; object-fit: contain; background: #f3c865; border-radius: 50%; }
.gateway-key::before { width: 1rem; height: 1rem; border: 3px dashed #f2cb65; border-radius: 50%; }
.route-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .45rem; padding: 0; list-style: none; }
.route-summary { display: grid; grid-template-columns: 3.2rem minmax(0, 1fr) auto; align-items: center; gap: .6rem; padding: .65rem .8rem; background: rgba(255,255,255,.65); border: 1px solid var(--line); border-left: 5px solid; }
.route-summary.route-land { border-left-color: #9a5b35; }
.route-summary.route-sea { border-left-color: #397f9e; }
.route-summary.route-air { border-left-color: #777184; }
.route-summary > span { color: var(--muted); font-size: .72rem; text-transform: uppercase; }
.route-summary small { color: var(--muted); text-align: right; }
.city-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: .8rem; }
.city-card { padding: 1rem; background: rgba(255,255,255,.76); border: 1px solid var(--line); border-radius: 8px; }
.city-card.current { position: relative; border: 4px solid var(--brand-orange); box-shadow: 0 0 0 2px #17120b, 0 8px 22px rgba(233,132,12,.28); }
.city-card.capital { border-top: 5px solid var(--brand-orange); }
.city-card.unknown { background: rgba(235,231,219,.7); border-style: dashed; }
.city-card-heading { display: grid; min-width: 0; min-height: 0; justify-items: start; gap: .38rem; padding: 0; border: 0; }
.city-card-heading h3 { max-width: 100%; margin: 0; overflow-wrap: anywhere; }
.city-capital-badge { display: inline-flex; max-width: 100%; align-items: center; gap: .28rem; padding: .28rem .42rem; color: #17120b; background: var(--brand-orange); border: 1px solid #a65700; font: 900 .58rem/1.15 Arial, sans-serif; letter-spacing: .07em; text-transform: uppercase; }
.city-capital-badge > span { font-size: .86rem; line-height: .6; }
.city-capital-icon, .capital-city-icon { display: inline-grid; width: 1.25em; height: 1.25em; place-items: center; margin-right: .32em; color: #17120b; background: var(--brand-orange); border: 1px solid #a65700; border-radius: 50%; font: 900 .72em/1 Arial, sans-serif; vertical-align: .08em; box-shadow: 0 1px 3px rgba(0,0,0,.18); }
.city-card h4 { margin: .9rem 0 .45rem; font-size: .78rem; letter-spacing: .05em; text-transform: uppercase; }
.city-card .city-status { color: var(--muted); font-size: .82rem; }
.city-card .city-routes { display: flex; align-items: center; gap: .35rem; margin: .7rem 0; color: var(--muted); font-size: .78rem; }
.city-card .city-routes strong { margin-right: .15rem; text-transform: uppercase; }
.route-offer { padding: .15rem .42rem; color: #fff; border-radius: 999px; font-weight: bold; }
.route-offer-land { background: #8a4f27; }
.route-offer-sea { color: #183b4a; background: #9dd7e4; }
.route-offer-none { color: var(--muted); background: #ded9cb; }
.city-mines { display: grid; gap: .35rem; margin: 0 0 .9rem; padding: 0; list-style: none; }
.city-mines li { display: grid; grid-template-columns: 34px minmax(0, 1fr); align-items: center; gap: .5rem; min-height: 38px; padding: .25rem .4rem; background: rgba(255,255,255,.65); border: 1px solid rgba(85,102,107,.2); border-radius: 5px; }
.city-mines img { width: 32px; height: 32px; object-fit: contain; }
.city-oil-field-operation { display: grid; grid-template-columns: 38px minmax(0, 1fr); align-items: center; gap: .55rem; margin: -.35rem 0 .9rem; padding: .38rem .5rem; color: #21170c; background: linear-gradient(135deg, #f5d783, #eaa43b); border: 1px solid #9d5d16; border-radius: 5px; }
.city-oil-field-operation img { width: 34px; height: 34px; object-fit: contain; }
.city-oil-field-operation span { display: grid; }
.city-oil-field-operation small { color: #654015; font: 800 .62rem/1.2 Arial, sans-serif; letter-spacing: .06em; text-transform: uppercase; }
.city-card form { margin-top: .65rem; }
.rarity-0, .rarity-unranked { --rarity-link-color: #9d372d; border-left-color: #b64a3e; }
.rarity-1 { --rarity-link-color: #817900; border-left-color: #d7d23a; }
.rarity-2 { --rarity-link-color: #4f7625; border-left-color: #91c54b; }
.rarity-3 { --rarity-link-color: #2e708d; border-left-color: #73a9c7; }
.rarity-4 { --rarity-link-color: #ad3f31; border-left-color: #d45a45; }
.rarity-5 { --rarity-link-color: #7d4388; border-left-color: #a868aa; }
.rarity-6 { --rarity-link-color: #a65308; border-left-color: #f2a249; }
.detail { display: grid; grid-template-columns: 298px 1fr; gap: 2rem; max-width: 940px; margin: 3rem auto; border-left-width: 5px; }
.detail-art { position: relative; width: 298px; height: 238px; background: transparent; border: 0; }
.detail .detail-image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; background: transparent; border: 0; }
.detail .detail-image[src^="/node/dwarf-images/"] { image-rendering: pixelated; }
.detail .detail-image-fallback { padding: 24px; object-fit: contain; image-rendering: pixelated; }
.detail-damaged .detail-art::after { content: ''; position: absolute; z-index: 2; right: 16px; bottom: 16px; width: 48px; height: 48px; background: rgba(255,255,255,.92) url('/img/icons/broken.png') center/36px 36px no-repeat; border: 2px solid #8d372d; border-radius: 50%; box-shadow: 0 2px 7px rgba(0,0,0,.35); }
.detail h1 { font-size: 3rem; }
.detail p { line-height: 1.6; color: var(--muted); }
.detail-copy { min-width: 0; }
.item-stats { margin: 1.75rem 0; }
.item-stats > h2 { margin: 0 0 1rem; font-size: 1.45rem; }
.item-stat-section + .item-stat-section { margin-top: 1.25rem; }
.item-stat-section h3 { margin: 0 0 .55rem; color: #506167; font: bold .72rem/1.2 Arial, sans-serif; letter-spacing: .11em; text-transform: uppercase; }
.item-stat-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; margin: 0; overflow: hidden; background: #c9c1b1; border: 1px solid #c9c1b1; border-radius: 4px; }
.item-stat-grid > div { min-width: 0; padding: .72rem .8rem; background: rgba(255,255,255,.82); }
.item-stat-grid dt { margin: 0 0 .18rem; color: #69777a; font: bold .68rem/1.25 Arial, sans-serif; letter-spacing: .06em; text-transform: uppercase; }
.item-stat-grid dd { margin: 0; overflow-wrap: anywhere; color: #252a2b; font: bold .9rem/1.35 Arial, sans-serif; }
.item-stat-grid dd a { color: var(--rarity-link-color, var(--link)); text-decoration: none; }
.equipment-bot { position: relative; width: 200px; height: 200px; margin: 0 auto; }
.equipment-bot > img { position: absolute; inset: 0; width: 200px; height: 200px; pointer-events: none; }
.equipment-bot.compact { width: 92px; height: 92px; }
.equipment-bot.compact > img { width: 92px; height: 92px; }
.mine > .equipment-bot img { width: 92px; height: 92px; }
.loadout-layout { display: grid; grid-template-columns: 220px 1fr; gap: 2rem; align-items: center; margin: 1.5rem 0; padding: 1.2rem; background: rgba(255,255,255,.72); border: 1px solid var(--line); }
.equipped-list { display: grid; gap: .45rem; padding: 0; list-style: none; }
.equipped-list li { min-height: 1.6rem; }
.equipped-list form, .loadout-layout p form { display: inline; }
.loadout-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .7rem; }
.detonator-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .7rem; }
.detonator-grid .item-card { display: flex; flex-direction: column; align-items: stretch; }
.detonator-grid .item-card-link { width: 100%; }
.detonator-grid .item-card-actions { width: 100%; margin-top: auto; padding-top: .7rem; border-top: 1px solid rgba(85,102,107,.2); }
.detonator-grid .item-card-actions form { width: 100%; }
.detonator-options { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .3rem; width: 100%; }
.detonator-option { display: grid; min-width: 0; min-height: 48px; place-items: center; align-content: center; gap: .1rem; padding: .45rem .2rem; color: #fff; background: linear-gradient(#8a9293, #62696a); border: 1px solid #505758; box-shadow: 0 2px 0 #454b4c; font-weight: bold; }
.detonator-option:hover:not(:disabled) { background: linear-gradient(#a05f39, #7b3f23); border-color: #66341d; }
.detonator-option span { font-size: .82rem; }
.detonator-option small { color: #f7e5bd; font-size: .62rem; line-height: 1; }
.detonator-option:disabled { color: #6e7475; background: #d2d5d4; border-color: #b8bcbb; box-shadow: none; }
.detonator-option:disabled small { color: #747a7b; }
.explosion-result { float: right; margin: 1.2rem; padding: .7rem; background: rgba(255,255,255,.72); border: 1px solid var(--line); text-align: center; }
.explosion-result img { display: block; width: 100px; height: 100px; image-rendering: pixelated; }
.explosion-result figcaption { margin-top: .4rem; color: var(--muted); font-size: .75rem; }
.gadget-list, .meld-list { display: grid; gap: .75rem; margin-top: 1.5rem; }
.gadget-card { display: grid; grid-template-columns: minmax(0, 1fr) minmax(240px, .7fr); gap: 1.2rem; padding: 1.2rem; background: rgba(255,255,255,.72); border: 1px solid var(--line); }
.gadget-card h3 { margin-bottom: .35rem; }
.gadget-card p { color: var(--muted); line-height: 1.45; }
.gadget-activators { display: grid; align-content: center; gap: .5rem; }
.gadget-activators form { display: flex; align-items: center; justify-content: space-between; gap: .7rem; padding: .55rem; background: rgba(255,255,255,.55); border: 1px solid var(--line); }
.gadget-activators .item-card-actions form { display: block; padding: 0; background: none; border: 0; }
.active-state { color: #477d3e; }
.meld-reputation { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(300px, .95fr); gap: 0; margin: 1.5rem 0; color: #eee9df; background: #171a18; border-top: 4px solid var(--brand-orange); box-shadow: 0 12px 28px rgba(49,38,23,.18); }
.meld-reputation > div { display: grid; align-content: center; padding: clamp(1.4rem, 4vw, 2.5rem); }
.meld-reputation > div h2 { max-width: 16ch; margin: .25rem 0 .8rem; color: #f5f0e6; font: 900 clamp(1.8rem, 4vw, 3.2rem)/.95 "Arial Narrow", Impact, Arial, sans-serif; letter-spacing: -.02em; text-transform: uppercase; }
.meld-reputation > div > p:last-child { max-width: 42rem; margin: 0; color: #b9b8b0; font-size: 1rem; }
.meld-reputation aside { padding: 1.25rem; background: #222622; border-left: 1px solid #3e453e; }
.meld-reputation aside h3 { margin: 0; color: var(--brand-orange); font: 900 1.1rem/1 "Arial Narrow", Impact, Arial, sans-serif; letter-spacing: .08em; text-transform: uppercase; }
.meld-reputation aside > p { margin: .35rem 0 1rem; color: #979b94; font-size: .72rem; }
.meld-reputation ol { display: grid; gap: .5rem; margin: 0; padding: 0; list-style: none; }
.meld-reputation li { display: grid; grid-template-columns: 2.4rem minmax(0, 1fr) minmax(4.8rem, auto); align-items: center; gap: .65rem; min-height: 46px; padding: .5rem .7rem; color: #f4efe5; background: #111411; border-left: 3px solid color-mix(in srgb, var(--miner-chat-color, #f09a24) 68%, white); box-shadow: 0 0 12px color-mix(in srgb, var(--miner-chat-color, #f09a24) 18%, transparent); }
.meld-leader-rank { color: color-mix(in srgb, var(--miner-chat-color, #f09a24) 34%, white); font: 900 .8rem/1 Arial, sans-serif; }
.meld-reputation li a { min-width: 0; overflow: hidden; color: color-mix(in srgb, var(--miner-chat-color, #f09a24) 34%, white); font-weight: 900; text-overflow: ellipsis; white-space: nowrap; }
.meld-leader-total { display: grid; gap: .08rem; text-align: right; }
.meld-leader-total strong { color: #fffaf0; font: 900 1.08rem/.95 "Arial Narrow", Impact, Arial, sans-serif; font-variant-numeric: tabular-nums; white-space: nowrap; }
.meld-leader-total small { color: #aaa9a2; font: 900 .5rem/1 Arial, sans-serif; letter-spacing: .1em; text-transform: uppercase; }
.meld-card { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem; background: rgba(255,255,255,.72); border: 1px solid var(--line); border-left-width: 4px; }
.meld-card h3 { margin-bottom: .25rem; }
.meld-card small { color: var(--muted); }
.meld-recipe { max-width: 760px; margin: 1.5rem auto; padding: 1.2rem; background: rgba(255,255,255,.72); border: 1px solid var(--line); }
.meld-recipe ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem; padding: 0; list-style: none; }
.meld-recipe li { display: grid; grid-template-columns: 32px minmax(0, 1fr) auto; align-items: center; gap: .45rem; padding: .5rem; border: 1px solid var(--line); }
.meld-recipe li.missing { opacity: .62; }
.meld-recipe li.met { border-left: 4px solid var(--green); }
.meld-recipe li img { width: 30px; height: 30px; }
.meld-recipe li small { grid-column: 2 / -1; color: var(--muted); }
.meld-recipe li > .item-card { grid-column: 1 / -1; width: 100%; }
.profession-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .7rem; margin-top: 1.5rem; }
.profession-card { display: flex; align-items: center; justify-content: space-between; gap: .8rem; padding: 1rem; background: rgba(255,255,255,.72); border: 1px solid var(--line); }
.profession-card.current { border-left: 4px solid var(--green); }
.profession-card h3, .profession-card p { margin: 0; }
.profession-card p { margin-top: .3rem; color: var(--muted); font-size: .8rem; }
.moon-card { display: flex; align-items: center; gap: 1.25rem; padding: 1.25rem; margin: 1rem 0 1.5rem; color: #f6f1dc; background: linear-gradient(135deg, #17243b, #35284d); border: 1px solid #605783; box-shadow: 0 10px 26px rgba(13,18,32,.24); }
.moon-card h2, .moon-card p { margin: .15rem 0; }
.moon-card .eyebrow, .moon-card small { color: #cdc5e7; }
.moon-icon { font-size: 4rem; line-height: 1; filter: drop-shadow(0 0 14px rgba(241,234,197,.28)); }
.weather-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: .8rem; }
.threat-board { position: relative; overflow: hidden; padding: clamp(1rem, 2.5vw, 1.5rem); color: #e8e3d8; background: repeating-linear-gradient(118deg, #1d211e 0, #1d211e 13px, #191c1a 13px, #191c1a 15px); border: 1px solid #3e443f; border-top: 5px solid var(--brand-orange); box-shadow: 0 14px 34px rgba(22,18,12,.2); }
.threat-board::after { content: ''; position: absolute; inset: 0; pointer-events: none; opacity: .18; background: linear-gradient(105deg, transparent 0 38%, rgba(255,255,255,.08) 38.2%, transparent 38.6% 68%, rgba(255,255,255,.05) 68.2%, transparent 68.6%); }
.threat-board > * { position: relative; z-index: 1; }
.threat-board .section-heading { align-items: end; margin-bottom: 1.2rem; padding-bottom: .9rem; border-bottom: 1px solid #474d48; }
.threat-board .section-heading h2 { margin: .25rem 0 0; color: #f4efe5; font: 900 1.55rem/1 "Arial Narrow", Impact, Arial, sans-serif; letter-spacing: .055em; text-transform: uppercase; }
.threat-board .section-heading > p { margin: 0; color: #a8aaa4; font: .82rem Georgia, serif; }
.threat-board .eyebrow { color: var(--brand-orange); }
.threat-group + .threat-group { margin-top: 1.35rem; padding-top: 1.2rem; border-top: 1px solid #3d433e; }
.threat-group > h3 { margin: 0 0 .7rem; color: #b8bbb5; font: 900 .68rem/1 Arial, sans-serif; letter-spacing: .16em; text-transform: uppercase; }
.threat-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(310px, 1fr)); gap: .75rem; }
.threat-card { --threat-accent: #8c8d86; display: grid; grid-template-columns: 82px minmax(0, 1fr); min-width: 0; overflow: hidden; color: #e9e4da; background: linear-gradient(145deg, #151816, #202420); border: 1px solid #474d48; border-left: 5px solid var(--threat-accent); box-shadow: 0 9px 22px rgba(0,0,0,.26), inset 0 0 24px rgba(255,255,255,.018); }
.threat-card.rarity-1 { --threat-accent: #d7d23a; border-left-color: var(--threat-accent); }
.threat-card.rarity-2 { --threat-accent: #91c54b; border-left-color: var(--threat-accent); }
.threat-card.rarity-3 { --threat-accent: #73a9c7; border-left-color: var(--threat-accent); }
.threat-card.rarity-4 { --threat-accent: #d45a45; border-left-color: var(--threat-accent); }
.threat-card.rarity-5 { --threat-accent: #a868aa; border-left-color: var(--threat-accent); }
.threat-card.rarity-6 { --threat-accent: #f2a249; border-left-color: var(--threat-accent); }
.threat-mark { display: grid; min-height: 100%; place-items: center; position: relative; overflow: hidden; background: repeating-linear-gradient(135deg, #090b0a 0, #090b0a 8px, #101310 8px, #101310 10px); border-right: 1px solid #3d433e; }
.threat-mark::before, .threat-mark::after { content: ''; position: absolute; width: 52px; height: 1px; background: color-mix(in srgb, var(--threat-accent) 55%, transparent); transform: rotate(-28deg); }
.threat-mark::before { top: 24%; left: -9px; }
.threat-mark::after { right: -8px; bottom: 23%; }
.threat-mark img { z-index: 1; width: 64px; height: 64px; object-fit: contain; filter: grayscale(.35) contrast(1.22) drop-shadow(0 5px 5px rgba(0,0,0,.75)); }
.threat-ghost .threat-mark, .threat-creature .threat-mark { color: inherit; text-decoration: none; }
.spectral-transport { --spectral-rgb: 122 226 211; --spectral-filter: grayscale(1) sepia(1) saturate(4.6) hue-rotate(112deg) brightness(1.42) contrast(1.08); position: relative; isolation: isolate; display: grid; width: 100%; height: 100%; place-items: center; }
.spectral-transport.spectral-rider { --spectral-rgb: 190 158 255; --spectral-filter: grayscale(1) sepia(1) saturate(4.8) hue-rotate(178deg) brightness(1.48) contrast(1.08); }
.spectral-transport::before { content: ''; position: absolute; z-index: -1; inset: 14%; border-radius: 48% 52% 44% 56%; opacity: .62; background: radial-gradient(ellipse, rgb(var(--spectral-rgb) / .48), rgb(var(--spectral-rgb) / .13) 48%, transparent 72%); filter: blur(7px); animation: spectral-breathe 3.8s ease-in-out infinite; }
.spectral-transport::after { content: ''; position: absolute; z-index: 2; right: 9%; bottom: 10%; left: 9%; height: 27%; opacity: .22; pointer-events: none; background: repeating-linear-gradient(0deg, transparent 0 4px, rgb(var(--spectral-rgb) / .7) 5px, transparent 6px); filter: blur(.4px); }
.spectral-transport img { z-index: 1; opacity: .78; mix-blend-mode: screen; filter: var(--spectral-filter) drop-shadow(0 0 6px rgb(var(--spectral-rgb) / .88)) drop-shadow(0 0 15px rgb(var(--spectral-rgb) / .42)); animation: spectral-flicker 5.2s steps(1, end) infinite; transition: transform .16s ease, filter .16s ease, opacity .16s ease; }
.threat-mark .spectral-transport { min-height: 76px; }
.threat-mark .spectral-transport img { width: 64px; height: 64px; object-fit: contain; }
.threat-ghost .threat-mark:hover .spectral-transport img, .threat-ghost .threat-mark:focus-visible .spectral-transport img { transform: translateY(-2px) scale(1.1); opacity: .94; filter: var(--spectral-filter) drop-shadow(0 0 8px rgb(var(--spectral-rgb) / 1)) drop-shadow(0 0 20px rgb(var(--spectral-rgb) / .72)); }
@keyframes spectral-breathe { 0%, 100% { opacity: .42; transform: scale(.9) rotate(-2deg); } 50% { opacity: .76; transform: scale(1.08) rotate(2deg); } }
@keyframes spectral-flicker { 0%, 17%, 20%, 61%, 64%, 100% { opacity: .8; } 18%, 62% { opacity: .48; } 19%, 63% { opacity: .96; } }
.threat-creature .threat-mark img { transition: transform .16s ease, filter .16s ease; }
.threat-creature .threat-mark:hover img, .threat-creature .threat-mark:focus-visible img { transform: scale(1.08); filter: grayscale(.08) contrast(1.28) drop-shadow(0 6px 8px rgba(0,0,0,.8)); }
.threat-ghost .threat-mark:focus-visible, .threat-creature .threat-mark:focus-visible { outline: 2px solid var(--threat-accent); outline-offset: -3px; }
.threat-card-body { min-width: 0; padding: .9rem; }
.threat-card header { display: flex; min-height: 0; align-items: start; justify-content: space-between; gap: .8rem; margin: 0 0 .7rem; padding: 0 0 .65rem; background: none; border: 0; border-bottom: 1px solid #3d433e; }
.threat-card header > div { min-width: 0; }
.threat-card h3 { margin: .2rem 0 0; color: #f6f1e8; font: 900 1.12rem/1.05 "Arial Narrow", Impact, Arial, sans-serif; letter-spacing: .035em; text-transform: uppercase; overflow-wrap: anywhere; }
.threat-card h3 a { color: inherit; text-decoration: none; }
.threat-card h3 a:hover, .threat-card h3 a:focus-visible { color: color-mix(in srgb, var(--threat-accent) 72%, white); text-decoration: underline; text-underline-offset: .16em; }
.threat-card .eyebrow { margin: 0; color: color-mix(in srgb, var(--threat-accent) 82%, white); font-size: .59rem; letter-spacing: .12em; }
.threat-condition { flex: 0 0 auto; padding: .3rem .42rem; color: #171a18; background: #aeb2aa; border: 1px solid rgba(255,255,255,.28); font: 900 .57rem/1 Arial, sans-serif; letter-spacing: .08em; text-transform: uppercase; }
.threat-condition-unhurt { background: #aebf83; }
.threat-condition-wounded { background: #e6a13a; }
.threat-condition-seriously-wounded { color: #fff5ed; background: #9e372c; }
.threat-facts { display: grid; gap: .4rem; margin: 0; }
.threat-facts > div { display: grid; grid-template-columns: 4.1rem minmax(0, 1fr); gap: .55rem; min-width: 0; }
.threat-facts dt { color: #858b85; font: 900 .59rem/1.35 Arial, sans-serif; letter-spacing: .1em; text-transform: uppercase; }
.threat-facts dd { min-width: 0; margin: 0; color: #d7d3ca; font-size: .78rem; overflow-wrap: anywhere; }
.threat-action { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: .55rem; margin-top: .85rem; padding-top: .75rem; border-top: 1px solid #3d433e; }
.threat-action label { margin: 0; color: #a9ada7; font-size: .66rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.threat-action select { min-height: 38px; margin-top: .3rem; padding: .55rem; color: #272b27; background: #eee7d8; border-color: #716b5e; font-size: .82rem; }
.threat-action button { min-height: 38px; padding: .55rem .7rem; }
.threat-empty { grid-column: 1 / -1; margin: 0; padding: .9rem 1rem; color: #aeb2ac; background: rgba(8,10,9,.4); border: 1px dashed #4a504b; font: italic .86rem Georgia, serif; }
.ghost-record { --threat-accent: #8c8d86; overflow: hidden; color: #e9e4da; background: linear-gradient(145deg, #151816, #202420); border-left: 5px solid var(--threat-accent); box-shadow: 0 14px 34px rgba(22,18,12,.2); }
.ghost-record.rarity-1 { --threat-accent: #d7d23a; }
.ghost-record.rarity-2 { --threat-accent: #91c54b; }
.ghost-record.rarity-3 { --threat-accent: #73a9c7; }
.ghost-record.rarity-4 { --threat-accent: #d45a45; }
.ghost-record.rarity-5 { --threat-accent: #a868aa; }
.ghost-record.rarity-6 { --threat-accent: #f2a249; }
.ghost-record .eyebrow { color: color-mix(in srgb, var(--threat-accent) 82%, white); }
.ghost-record-hero { display: grid; grid-template-columns: minmax(150px, 220px) minmax(0, 1fr); gap: clamp(1rem, 3vw, 2rem); align-items: center; padding: clamp(1.1rem, 3vw, 2rem); background: radial-gradient(circle at 12% 50%, rgba(99,206,192,.14), transparent 28%), repeating-linear-gradient(135deg, #101311 0, #101311 12px, #151916 12px, #151916 14px); border-bottom: 1px solid #3d433e; }
.ghost-record-spectre { min-height: 190px; }
.ghost-record-spectre img { width: 100%; max-height: 190px; object-fit: contain; }
.creature-record .ghost-record-hero { background: radial-gradient(circle at 12% 50%, color-mix(in srgb, var(--threat-accent) 20%, transparent), transparent 30%), repeating-linear-gradient(135deg, #101311 0, #101311 12px, #151916 12px, #151916 14px); }
.creature-record .ghost-record-hero > img { filter: contrast(1.12) saturate(1.08) drop-shadow(0 8px 16px rgba(0,0,0,.65)); }
.ghost-record-hero h2 { margin: .25rem 0 .7rem; color: #f6f1e8; font: 900 clamp(1.5rem, 4vw, 2.5rem)/1 "Arial Narrow", Impact, Arial, sans-serif; letter-spacing: .035em; text-transform: uppercase; }
.ghost-record-hero p { max-width: 50rem; line-height: 1.6; }
.ghost-record-outcome { color: #d7bddc; }
.ghost-record-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0; padding: 0 clamp(1.1rem, 3vw, 2rem); background: #1a1e1b; }
.ghost-record-facts > div { min-width: 0; padding: .9rem 1rem .9rem 0; border-bottom: 1px solid #343a35; }
.ghost-record-facts dt { color: #858b85; font: 900 .61rem/1.3 Arial, sans-serif; letter-spacing: .11em; text-transform: uppercase; }
.ghost-record-facts dd { margin: .25rem 0 0; overflow-wrap: anywhere; }
.ghost-record > .threat-action { margin: 0; padding: 1rem clamp(1.1rem, 3vw, 2rem); background: #101311; }
.ghost-origin { display: grid; grid-template-columns: minmax(0, 1fr) 92px; gap: 1rem; align-items: center; padding: clamp(1.1rem, 3vw, 2rem); border-top: 1px solid #3d433e; }
.ghost-origin h2, .ghost-bounty h2 { margin: .2rem 0 .55rem; color: #f6f1e8; }
.ghost-origin p { max-width: 52rem; line-height: 1.55; }
.ghost-origin > img { width: 86px; height: 86px; object-fit: contain; filter: drop-shadow(0 5px 8px rgba(0,0,0,.55)); }
.ghost-origin > dl { grid-column: 1 / -1; margin: 0; }
.ghost-origin > dl div { display: flex; gap: .45rem; }
.ghost-origin > dl dt { color: #858b85; font-weight: 900; }
.ghost-origin > dl dd { margin: 0; }
.ghost-bounty { padding: 0 clamp(1.1rem, 3vw, 2rem) clamp(1.1rem, 3vw, 2rem); }
.ghost-bounty ul { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: .65rem; margin: .8rem 0 0; padding: 0; list-style: none; }
.ghost-bounty-item { display: grid; grid-template-columns: 54px minmax(0, 1fr); gap: .65rem; align-items: center; min-height: 62px; padding: .5rem; color: #e9e4da; background: #101311; text-decoration: none; }
.ghost-bounty-item:hover, .ghost-bounty-item:focus-visible { color: #fff; background: #252b26; outline: 2px solid currentColor; }
.ghost-bounty-item img { width: 50px; height: 50px; object-fit: contain; }
.ghost-bounty-item span { display: grid; gap: .2rem; min-width: 0; }
.ghost-bounty-item small { color: #989e98; }
.admin-traffic-table { min-width: 900px; }
.admin-traffic-table td { vertical-align: top; }
.admin-traffic-table details { min-width: 12rem; }
.admin-traffic-table details summary { cursor: pointer; font-weight: 700; }
.admin-traffic-table details p, .admin-traffic-table details ul { margin: .35rem 0; }
.admin-traffic-table details ul { padding-left: 1.2rem; }
.admin-traffic-ghost { background: rgba(113,76,145,.09); }
.admin-traffic-progress { width: 11rem; max-width: 100%; height: .5rem; margin-bottom: .3rem; overflow: hidden; border: 1px solid #9b8c78; background: #ded5c4; }
.admin-traffic-progress span { display: block; height: 100%; background: linear-gradient(90deg, #526d76, #ef8700); }
.weather-card { display: flex; align-items: center; gap: .8rem; padding: .9rem; background: rgba(255,255,255,.75); border: 1px solid var(--line); }
.weather-card h3, .weather-card p { margin: .1rem 0; }
.weather-card.weather-snow { color: #243943; background: linear-gradient(135deg, #f9fdff, #dcebf1); border-color: #9db8c5; }
.weather-card.weather-snow small { color: #4f6975; }
.weather-card.weather-storm { color: #f7f2e7; background: linear-gradient(135deg, #343b48, #263447); border-color: #73849c; }
.weather-card.weather-storm small { color: #d4dbe4; }
.weather-card.weather-hurricane { color: #f5f3ff; background: radial-gradient(circle at 15% 20%, #465575, transparent 36%), linear-gradient(135deg, #242a42, #101827); border-color: #7586ac; }
.weather-card.weather-hurricane small { color: #d1d8eb; }
.weather-card.weather-hurricane .weather-icon { filter: drop-shadow(0 0 8px rgba(189,207,255,.45)); }
.weather-icon { font-size: 2.2rem; }
.creature-table-icon { display: inline-grid; width: 1.7rem; height: 1.7rem; place-items: center; vertical-align: middle; background: #171a18; border: 1px solid #414741; }
.creature-table-icon img { width: 1.45rem; height: 1.45rem; object-fit: contain; filter: grayscale(.25) contrast(1.15); }
.admin-traffic-creature { background: rgba(239,232,207,.72); }
@media (max-width: 760px) {
  .moon-card { align-items: stretch; flex-direction: column; }
  .threat-board .section-heading { align-items: start; }
  .threat-board .section-heading > p { margin-top: .45rem; }
  .threat-grid { grid-template-columns: 1fr; }
  .threat-card { grid-template-columns: 66px minmax(0, 1fr); }
  .threat-mark img, .threat-mark .spectral-transport img { width: 52px; height: 52px; }
  .threat-card header { align-items: start; }
  .threat-action { grid-template-columns: 1fr; }
  .ghost-record-hero { grid-template-columns: 90px minmax(0, 1fr); }
  .ghost-record-facts { grid-template-columns: 1fr 1fr; }
  .ghost-origin { grid-template-columns: minmax(0, 1fr) 72px; }
  .ghost-origin > img { width: 68px; height: 68px; }
}
@media (max-width: 480px) {
  .ghost-record-hero { grid-template-columns: 1fr; }
  .ghost-record-hero > .ghost-record-spectre { width: 128px; min-height: 128px; justify-self: center; }
  .ghost-record-facts { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
  .spectral-transport::before, .spectral-transport img { animation: none; }
}
.factory-list { display: grid; gap: 1rem; }
.factory-card { padding: 1.2rem; background: rgba(255,255,255,.72); border: 1px solid var(--line); }
.factory-card > header { display: flex; align-items: center; justify-content: space-between; min-height: 0; padding: 0 0 .8rem; background: none; border-bottom: 1px solid var(--line); }
.factory-card > header h3 { margin: 0; }
.factory-card h4 { margin-bottom: .5rem; }
.factory-card ul { display: grid; gap: .4rem; padding: 0; list-style: none; }
.factory-card li { display: flex; align-items: center; justify-content: space-between; gap: .6rem; padding: .45rem; background: rgba(255,255,255,.55); }
.factory-card li div, .factory-card li form { display: inline-flex; gap: .5rem; margin: 0; }
.factory-progress { height: 14px; margin-top: 1rem; overflow: hidden; background: #d7cbb9; border: 1px solid #9b8c78; }
.factory-progress > div { height: 100%; background: var(--green); }
.factory-action { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: .7rem; margin-top: .8rem; }
.factory-action > label { grid-column: 1 / -1; max-width: 28rem; }
.factory-action .item-picker { grid-column: 1; }
.factory-action .item-picker-grid { grid-template-columns: 1fr; }
.factory-action .item-card-picker { grid-template-columns: minmax(0, 1fr); }
.factory-action .item-card-actions { justify-content: flex-start; }
.factory-action label, .factory-assign label { margin: 0; }
.factory-assign { display: flex; align-items: end; gap: .7rem; margin-top: .7rem; }
.factory-queue { margin: 1rem 0; padding: .85rem; border: 1px solid var(--line); background: rgba(255,255,255,.45); }
.factory-queue h4 { display: flex; justify-content: space-between; gap: 1rem; margin: 0; }
.factory-queue > p { margin: .3rem 0 .7rem; color: var(--muted); }
.factory-queue ol { display: grid; gap: .4rem; margin: 0; padding: 0; list-style: none; }
.factory-queue li > div:first-child { display: grid; gap: .15rem; }
.factory-queue li small { color: var(--muted); }
.factory-queue-actions { flex-shrink: 0; }
.worker-market { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .6rem; }
.worker-card { display: flex; align-items: center; justify-content: space-between; gap: .7rem; padding: .8rem; background: rgba(255,255,255,.72); border: 1px solid var(--line); }
.chat-page { --chat-console: #131613; --chat-rule: #363b36; min-width: 0; }
.chat-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0 0 1.35rem; color: #ebe7de; background: #292d29; border: 1px solid #414741; }
.chat-facts > div { min-width: 0; padding: .9rem 1.1rem; border-right: 1px solid #414741; }
.chat-facts > div:last-child { border-right: 0; }
.chat-facts dt { color: #858b84; font: 900 .55rem/1 Arial, sans-serif; letter-spacing: .17em; text-transform: uppercase; }
.chat-facts dd { margin: .45rem 0 0; overflow: hidden; font: 900 .8rem/1.2 Arial, sans-serif; text-overflow: ellipsis; text-transform: uppercase; white-space: nowrap; }
.chat-live-status { display: inline-flex; align-items: center; gap: .5rem; }
.chat-live-status i { width: .55rem; height: .55rem; background: #d5a03f; box-shadow: 0 0 0 4px rgba(213,160,63,.12); transform: rotate(45deg); }
.chat-live-status[data-state="ready"] i { background: #80aa68; box-shadow: 0 0 0 4px rgba(128,170,104,.14); animation: chat-signal-pulse 2.4s ease-in-out infinite; }
.chat-live-status[data-state="error"] i { background: #d45a45; box-shadow: 0 0 0 4px rgba(212,90,69,.14); }
.chat-workspace { display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, 290px); align-items: start; gap: 1.2rem; min-width: 0; }
.chat-console { min-width: 0; overflow: hidden; background: var(--chat-console); border: 1px solid #3d433d; box-shadow: 0 18px 42px rgba(56,43,26,.18); }
.chat-console-header { display: flex; align-items: end; justify-content: space-between; gap: 1.25rem; min-height: 76px; padding: 1rem 1.15rem; color: #f0ece3; background: #101310; border-bottom: 1px solid #3b403b; }
.chat-console-header p { margin: 0; color: #90958e; font-size: .68rem; line-height: 1.45; }
.chat-console-header > div > p { margin-bottom: .35rem; color: var(--brand-orange); font: 900 .53rem/1 Arial, sans-serif; letter-spacing: .18em; text-transform: uppercase; }
.chat-console-header h2 { margin: 0; color: #f0ece3; font: 900 1.2rem/1 "Arial Narrow", Impact, Arial, sans-serif; letter-spacing: .07em; text-transform: uppercase; }
.chat-console-header > p { max-width: 20rem; text-align: right; }
.chat-list { display: block; height: clamp(28rem, 58vh, 40rem); overflow-y: auto; overscroll-behavior: contain; scrollbar-color: #747b72 #171a18; scrollbar-gutter: stable; background: #f8f1e4; border: 0; }
.chat-page .chat-row { display: grid; grid-template-columns: minmax(10.25rem, 1.15fr) minmax(14rem, 4fr) 4.6rem auto; align-items: center; gap: .7rem; min-height: 58px; padding: .55rem .75rem; border: 0; border-bottom: 1px solid #cfc0a6; }
.chat-page .chat-row:last-child { border-bottom: 0; }
.chat-row-player { border-left: 4px solid var(--chat-color) !important; }
.chat-identity { display: flex; min-width: 0; align-items: center; gap: .55rem; }
.chat-identity > i { width: .52rem; height: .52rem; flex: 0 0 auto; background: var(--chat-color); box-shadow: 0 0 0 3px color-mix(in srgb, var(--chat-color) 18%, transparent); transform: rotate(45deg); }
.chat-speaker { min-width: 0; overflow: hidden; color: var(--chat-color); font-weight: 900; text-decoration-color: var(--chat-color); text-overflow: ellipsis; white-space: nowrap; }
.chat-message { min-width: 0; color: #33362f; line-height: 1.45; overflow-wrap: anywhere; }
.chat-page .chat-row-world { color: #33362f; border-left: 4px solid var(--brand-orange); }
.chat-page .chat-row-dwarf.rarity-1 { border-left-color: #f0e058; }
.chat-page .chat-row-dwarf.rarity-2 { border-left-color: #aaca62; }
.chat-page .chat-row-dwarf.rarity-3 { border-left-color: #9dcbd7; }
.chat-page .chat-row-dwarf.rarity-4 { border-left-color: #ff8585; }
.chat-page .chat-row-dwarf.rarity-5 { border-left-color: #efc5f4; }
.chat-page .chat-row-dwarf.rarity-6 { border-left-color: #ffd091; }
.chat-world-identity > i { background: var(--brand-orange); box-shadow: 0 0 0 3px rgba(217,129,18,.15); }
.chat-world-kind { min-width: 0; overflow: hidden; color: #805000; font: 400 .68rem/1.2 Arial, sans-serif; letter-spacing: .04em; text-overflow: ellipsis; text-transform: uppercase; white-space: nowrap; }
.chat-world-message { min-width: 0; color: #33362f; font-weight: 400; line-height: 1.45; }
.chat-world-message:any-link { border: 0; text-decoration-color: #9a7848; text-decoration-thickness: 1px; text-underline-offset: .18em; }
.chat-world-message:any-link:hover { color: #805000; text-decoration-thickness: 2px; }
.chat-dwarf-item { display: grid; grid-template-columns: 38px minmax(0, 1fr); align-items: center; gap: .65rem; color: #fff; text-decoration-color: currentColor; }
.chat-dwarf-item img { width: 36px; height: 36px; padding: 0; object-fit: contain; background: transparent; border: 0; }
.chat-dwarf-item.rarity-1 { color: #f0e058; }
.chat-dwarf-item.rarity-2 { color: #aaca62; }
.chat-dwarf-item.rarity-3 { color: #9dcbd7; }
.chat-dwarf-item.rarity-4 { color: #ff8585; }
.chat-dwarf-item.rarity-5 { color: #efc5f4; }
.chat-dwarf-item.rarity-6 { color: #ffd091; }
.chat-page .chat-row time { display: grid; gap: .16rem; min-width: 0; color: #7c7467; font-size: .62rem; line-height: 1; text-align: right; white-space: nowrap; }
.chat-page .chat-row time strong { color: #4e4a42; font-size: .72rem; font-variant-numeric: tabular-nums; }
.chat-page .chat-row-world time { color: #7c7467; }
.chat-page .chat-row-world time strong { color: #4e4a42; }
.chat-page .chat-row form { margin: 0; }
.chat-ignore-action { color: #754713 !important; background: transparent; border: 0; box-shadow: none; font-size: .68rem; font-weight: 800 !important; }
.chat-row-owner { color: #8a806f; font: 900 .57rem/1 Arial, sans-serif; letter-spacing: .1em; text-transform: uppercase; }
.chat-empty { display: grid; min-height: 100%; place-content: center; padding: 2rem; color: #716858; text-align: center; }
.chat-empty > span { color: var(--brand-orange); font-size: 2rem; }
.chat-empty h3 { margin: .6rem 0 .25rem; color: #3b3b34; font: 900 1.35rem/1 "Arial Narrow", Impact, Arial, sans-serif; text-transform: uppercase; }
.chat-empty p { margin: 0; }
.chat-compose { display: grid; grid-template-columns: minmax(0, 1fr) minmax(150px, 190px) auto; align-items: end; gap: .8rem; margin: 0; padding: 1rem 1.1rem 1.1rem; color: #dedbd3; background: #101310; border-top: 1px solid #3b403b; }
.chat-compose label { margin: 0; }
.chat-control-label, .chat-message-control > span { display: block; margin: 0 0 .45rem; color: #8f958e; font: 900 .55rem/1 Arial, sans-serif; letter-spacing: .15em; text-transform: uppercase; }
.chat-message-control input { min-height: 50px; margin: 0; color: #2b2d29; background: #fffaf0; border-color: #827866; }
.chat-message-control input::placeholder { color: #8a8275; }
.chat-color-control { display: grid; align-content: end; min-width: 0; }
.chat-color-control small { display: block; margin-top: .28rem; color: #898e87; font-size: .62rem; line-height: 1.3; }
.chat-color-control > p { display: flex; align-items: center; gap: .5rem; min-height: 32px; margin: 0; color: #ddd9d0; font-size: .72rem; font-weight: 800; }
.chat-color-control > p i { width: .8rem; height: .8rem; background: var(--chat-preview); border: 1px solid #f2ede4; transform: rotate(45deg); }
.chat-color-picker { display: grid; grid-template-columns: 42px minmax(0, 1fr); align-items: center; gap: .55rem; color: #ddd9d0; font-size: .7rem; font-weight: 800; }
.chat-color-picker span { opacity: 1; }
.chat-color-picker input { width: 42px; height: 32px; min-height: 32px; margin: 0; padding: 2px; cursor: pointer; background: #252925; border-color: #535953; }
.chat-send { display: inline-flex; min-width: 92px; min-height: 50px; align-items: center; justify-content: space-between; gap: 1rem; }
.chat-send b { font-size: 1rem; }
.chat-compose-locked { grid-template-columns: 1fr; align-items: center; min-height: 78px; }
.chat-compose-locked strong { color: #d8d4cb; font-size: .82rem; }
.chat-sidecar { display: grid; align-content: start; gap: .8rem; position: sticky; top: 1rem; min-width: 0; }
.chat-signal-card, .chat-filter-card, .chat-channel-note, .chat-ignores { margin: 0; padding: 1rem; background: #fffaf0; border: 1px solid var(--line); border-radius: 0; box-shadow: 5px 5px 0 rgba(35,39,35,.07); }
.chat-side-label { margin: 0 0 .75rem; color: #8c4b00; font: 900 .56rem/1 Arial, sans-serif; letter-spacing: .17em; text-transform: uppercase; }
.chat-signal-card > div { display: flex; min-width: 0; align-items: center; gap: .7rem; padding: .75rem 0; border-top: 1px solid #d8cbb4; border-bottom: 1px solid #d8cbb4; }
.chat-signal-card > div i { width: .72rem; height: .72rem; flex: 0 0 auto; background: var(--chat-preview); box-shadow: 0 0 0 4px color-mix(in srgb, var(--chat-preview) 16%, transparent); transform: rotate(45deg); }
.chat-signal-card > div strong { min-width: 0; overflow: hidden; color: #33352f; text-overflow: ellipsis; white-space: nowrap; }
.chat-signal-card > p:last-child, .chat-channel-note > p:last-child { margin: .8rem 0 0; color: #70685c; font-size: .72rem; line-height: 1.55; }
.chat-filter-card { display: grid; gap: .85rem; border-top: 5px solid var(--brand-orange); }
.chat-filter-card .chat-side-label { margin-bottom: 0; }
.chat-filter-card fieldset { min-width: 0; margin: 0; padding: .75rem; background: #f8f0e1; border: 1px solid #d8cbb4; }
.chat-filter-card legend { padding: 0 .3rem; color: #393a34; font: 900 .65rem/1 Arial, sans-serif; letter-spacing: .08em; text-transform: uppercase; }
.chat-filter-card fieldset > p { margin: 0 0 .65rem; color: #756d61; font-size: .66rem; line-height: 1.4; }
.chat-filter-toggle, .chat-tier-filters label, .chat-region-filters label { display: flex; align-items: flex-start; gap: .5rem; margin: 0; padding: .48rem .52rem; color: #393a34; background: #fffaf0; border: 1px solid #d8cbb4; cursor: pointer; font-size: .7rem; line-height: 1.35; }
.chat-filter-toggle:hover, .chat-tier-filters label:hover, .chat-region-filters label:hover { border-color: #b56b17; }
.chat-filter-toggle:has(input:checked), .chat-tier-filters label:has(input:checked), .chat-region-filters label:has(input:checked) { color: #f4eee2; background: #292d29; border-color: #292d29; }
.chat-filter-toggle input, .chat-tier-filters input, .chat-region-filters input { width: auto; min-height: 0; margin: .12rem 0 0; accent-color: #d98112; }
.chat-filter-toggle span, .chat-tier-filters label > span, .chat-region-filters label > span { opacity: 1; }
.chat-filter-toggle span { display: grid; gap: .18rem; }
.chat-filter-toggle strong { font-size: .72rem; }
.chat-filter-toggle small { color: #756d61; font-size: .64rem; }
.chat-filter-toggle:has(input:checked) small { color: #c1c4bc; }
.chat-tier-filters, .chat-region-filters { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem .65rem; }
.chat-tier-filters label > span, .chat-region-filters label > span { min-width: 0; }
.chat-tier-filters small { display: inline-block; margin-left: .2rem; padding: .12rem .25rem; color: #5d481d; background: #f0d89d; font-size: .52rem; font-weight: 900; letter-spacing: .04em; text-transform: uppercase; }
.chat-filter-card footer { display: flex; align-items: center; justify-content: space-between; gap: .5rem; padding-top: .7rem; color: #756d61; border-top: 1px solid #d8cbb4; font-size: .65rem; }
.chat-filter-card footer button { padding: 0; font-size: .65rem; }
.chat-page .chat-row[hidden], .chat-filter-empty[hidden] { display: none; }
.chat-ignores { padding: 0; }
.chat-ignores summary { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: .75rem; min-height: 68px; padding: .8rem 1rem; cursor: pointer; list-style: none; }
.chat-ignores summary::-webkit-details-marker { display: none; }
.chat-ignores summary::before { content: '+'; grid-column: 3; grid-row: 1; color: #8c4b00; font-size: 1.2rem; }
.chat-ignores[open] summary::before { content: '−'; }
.chat-ignores summary > span { display: grid; gap: .25rem; }
.chat-ignores summary b { color: #393a34; font: 900 .65rem/1 Arial, sans-serif; letter-spacing: .08em; text-transform: uppercase; }
.chat-ignores summary small { color: #7b7469; font-size: .65rem; }
.chat-ignores summary > strong { grid-column: 2; grid-row: 1; color: #17120b; background: var(--brand-orange); padding: .3rem .45rem; font-size: .66rem; }
.chat-ignores ul { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--line); }
.chat-ignores li { display: flex; align-items: center; justify-content: space-between; gap: .7rem; min-width: 0; padding: .65rem .8rem; border-bottom: 1px solid #dfd3bd; font-size: .72rem; }
.chat-ignores li:last-child { border-bottom: 0; }
.chat-ignores li > a { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.chat-ignores li form { margin: 0; }
.chat-channel-note { border-top: 4px solid var(--brand-orange); }
.chat-channel-note .chat-side-label { margin-bottom: 0; }
@keyframes chat-signal-pulse { 50% { box-shadow: 0 0 0 7px rgba(128,170,104,.04); } }
@media (max-width: 1100px) {
  .chat-workspace { grid-template-columns: minmax(0, 1fr); }
  .chat-sidecar { grid-template-columns: repeat(2, minmax(0, 1fr)); position: static; }
  .chat-filter-card { grid-row: span 2; }
}
@media (max-width: 720px) {
  .chat-facts { grid-template-columns: 1fr 1fr; }
  .chat-facts > div { border-bottom: 1px solid #414741; }
  .chat-facts > div:first-child { grid-column: 1 / -1; border-right: 0; }
  .chat-facts > div:nth-child(2) { border-bottom: 0; }
  .chat-facts > div:last-child { border-bottom: 0; }
  .chat-facts dd { overflow: visible; font-size: .72rem; text-overflow: clip; white-space: normal; }
  .chat-page .chat-row { grid-template-columns: minmax(0, 1fr) auto; gap: .45rem .8rem; padding: .7rem .75rem; }
  .chat-page .chat-row > :nth-child(2) { grid-column: 1 / -1; grid-row: 2; }
  .chat-page .chat-row > time { grid-column: 2; grid-row: 1; }
  .chat-page .chat-row > :nth-child(4) { grid-column: 1 / -1; grid-row: 3; justify-self: start; }
  .chat-page .chat-row-player > :nth-child(4) { justify-self: end; }
  .chat-compose { grid-template-columns: minmax(0, 1fr) auto; }
  .chat-message-control { grid-column: 1 / -1; }
  .chat-sidecar { grid-template-columns: 1fr; }
  .chat-filter-card { grid-row: auto; }
}
@media (max-width: 480px) {
  .chat-console-header { align-items: flex-start; flex-direction: column; }
  .chat-console-header > p { text-align: left; }
  .chat-list { height: min(60svh, 34rem); min-height: 23rem; }
  .chat-compose { grid-template-columns: 1fr; }
  .chat-message-control, .chat-color-control, .chat-send { grid-column: 1; }
  .chat-send { width: 100%; }
  .chat-page .chat-row time span { display: none; }
}
@media (prefers-reduced-motion: reduce) { .chat-live-status[data-state="ready"] i { animation: none; } }
.guild-command, .guild-create, .guild-directory, .guild-bank-section { margin-top: 1.25rem; padding: 1.2rem; background: rgba(255,255,255,.58); border: 1px solid var(--line); border-top: 5px solid var(--brand-orange); }
.guild-command > header, .guild-directory > header, .guild-bank-section > header { display: flex; min-height: 0; align-items: flex-end; justify-content: space-between; gap: 1rem; padding: 0 0 .85rem; color: inherit; background: none; border: 0; border-bottom: 1px solid var(--line); }
.guild-command > header h2, .guild-command > header p, .guild-directory > header h2, .guild-directory > header p, .guild-bank-section > header h2, .guild-bank-section > header p { margin: 0; }
.guild-command > header > span, .guild-directory > header > span, .guild-bank-section > header > span { color: var(--muted); font-size: .75rem; font-weight: 800; text-transform: uppercase; }
.guild-command > p { max-width: 760px; margin: 1rem 0; color: var(--muted); }
.guild-command > nav, .guild-subnav { display: flex; flex-wrap: wrap; gap: .55rem; }
.guild-members { margin-top: 1.2rem; }
.guild-members h3 { margin-bottom: .5rem; }
.guild-members ul { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .45rem; margin: 0; padding: 0; list-style: none; }
.guild-members li { display: flex; justify-content: space-between; gap: .5rem; min-width: 0; padding: .6rem .7rem; background: var(--surface); border: 1px solid #d8cbb4; }
.guild-members li a { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.guild-members li span { color: #8c4b00; font-size: .65rem; font-weight: 900; text-transform: uppercase; }
.guild-leave { margin: 1.2rem 0 0; padding-top: 1rem; border-top: 1px solid var(--line); }
.guild-create { display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, 430px); align-items: center; gap: 2rem; }
.guild-create h2, .guild-create p { margin-bottom: .4rem; }
.guild-create > div > p:last-child { color: var(--muted); }
.guild-create form, .guild-create label { margin: 0; }
.guild-create button { width: 100%; margin-top: .6rem; }
.guild-directory > div { display: grid; gap: .65rem; margin-top: .9rem; }
.guild-directory-card { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 1rem; padding: .9rem 1rem; background: var(--surface); border: 1px solid #d8cbb4; border-left: 4px solid #777d76; }
.guild-directory-card.current { border-left-color: var(--brand-orange); }
.guild-directory-card h3, .guild-directory-card p { margin: 0; }
.guild-directory-card h3 { margin: .15rem 0 .3rem; text-transform: uppercase; }
.guild-directory-card div > p:last-child, .guild-unavailable { color: var(--muted); font-size: .78rem; }
.guild-directory-card form { margin: 0; }
.guild-status { color: #4e7144; font-size: .72rem; text-transform: uppercase; }
.guild-empty { grid-column: 1 / -1; margin: 0; padding: 1.2rem; color: var(--muted); background: var(--surface-soft); border: 1px dashed var(--line); }
.guild-subnav { margin: 0 0 1rem; padding: .65rem; background: #292d29; border-top: 4px solid var(--brand-orange); }
.guild-subnav a { padding: .55rem .7rem; color: #dedbd3; font-size: .72rem; font-weight: 900; text-transform: uppercase; }
.guild-subnav a[aria-current="page"] { color: #17120b; background: var(--brand-orange); text-decoration: none; }
.guild-chat-page .chat-console { width: 100%; }
.guild-chat-compose { grid-template-columns: minmax(0, 1fr) auto; }
.guild-chat-page .chat-row { grid-template-columns: minmax(10.25rem, 1.15fr) minmax(14rem, 4fr) 4.6rem auto; }
.guild-bank-location-warning, .guild-bank-location-ready { margin: 0 0 1rem; padding: .9rem 1rem; border: 1px solid; }
.guild-bank-location-warning { color: #663228; background: #fbebe2; border-color: #c48773; border-left: 5px solid var(--rust); }
.guild-bank-location-warning strong { text-transform: uppercase; }
.guild-bank-location-warning p, .guild-bank-location-ready { margin-bottom: 0; }
.guild-bank-location-ready { color: #435c3d; background: #eef4e9; border-color: #9daf93; border-left: 5px solid var(--green); }
.guild-bank-meter { margin: 0 0 1.25rem; padding: 1.2rem; color: #f4efe5; background: #171a18; border: 1px solid #414741; border-left: 6px solid var(--brand-orange); }
.guild-bank-meter > div { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .3rem 1rem; align-items: end; }
.guild-bank-meter .eyebrow { grid-column: 1 / -1; margin: 0; color: var(--brand-orange); }
.guild-bank-meter strong { font: 900 1.8rem/1 "Arial Narrow", Impact, Arial, sans-serif; }
.guild-bank-meter span { color: #adb0aa; font-size: .78rem; text-transform: uppercase; }
.guild-bank-meter progress { width: 100%; height: .7rem; margin-top: .8rem; accent-color: var(--brand-orange); }
.guild-bank-section .item-grid { margin-top: .9rem; }
.guild-bank-section .item { grid-template-columns: minmax(0, 1fr); align-content: start; }
.guild-bank-section .item-card-actions { justify-content: flex-start; }
.guild-bank-action { display: flex; width: 100%; align-items: flex-end; gap: .5rem; margin: 0; }
.guild-bank-action label { flex: 1 1 8rem; margin: 0; }
.guild-bank-action input { margin: .2rem 0 0; }
.guild-bank-deposit-actions { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .5rem; align-items: end; width: 100%; }
.guild-bank-deposit-all { margin: 0; }
.guild-bank-deposit-all button { white-space: nowrap; }
@media (max-width: 720px) {
  .guild-create { grid-template-columns: 1fr; gap: 1rem; }
  .guild-members ul { grid-template-columns: 1fr 1fr; }
  .guild-directory-card { grid-template-columns: 1fr; }
  .guild-directory-card form, .guild-directory-card button { width: 100%; }
  .guild-chat-page .chat-row { grid-template-columns: minmax(0, 1fr) auto; }
}
@media (max-width: 480px) {
  .guild-members ul { grid-template-columns: 1fr; }
  .guild-bank-action { align-items: stretch; flex-direction: column; }
  .guild-bank-action button { width: 100%; }
  .guild-bank-deposit-actions { grid-template-columns: 1fr; }
  .guild-bank-deposit-all button { width: 100%; }
}
.profile-inventory-filter { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)) 1fr auto; align-items: end; gap: .6rem; margin: 1rem 0; padding: 1rem; background: rgba(255,255,255,.62); border: 1px solid var(--line); }
.profile-inventory-filter label { margin: 0; }
.battery-extension { max-width: 680px; padding: 1rem; background: rgba(255,255,255,.62); border: 1px solid var(--line); }
.battery-extension form { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.local-tabs { display: flex; gap: .45rem; flex-wrap: wrap; margin: 0 0 1.25rem; }
.local-tabs a { padding: .55rem .8rem; border: 1px solid var(--line); background: rgba(255,255,255,.62); }
.local-tabs a.current { color: #fff; background: var(--ink); border-color: var(--ink); }
.credit-totals { display: grid; grid-template-columns: max-content 1fr; gap: .35rem 1rem; max-width: 520px; padding: 1rem; background: rgba(255,255,255,.62); border: 1px solid var(--line); }
.credit-totals dt { color: var(--muted); }
.credit-totals dd { margin: 0; font-weight: 700; }
.inline-actions { display: inline-block; margin: 0 .25rem 0 0; }
.oil-page { min-width: 0; }
.oil-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0 0 1.35rem; color: #ebe7de; background: #292d29; border: 1px solid #414741; }
.oil-facts > div { min-width: 0; padding: .9rem 1.1rem; border-right: 1px solid #414741; }
.oil-facts > div:last-child { border-right: 0; }
.oil-facts dt { color: #858b84; font: 900 .55rem/1 Arial, sans-serif; letter-spacing: .17em; text-transform: uppercase; }
.oil-facts dd { margin: .45rem 0 0; overflow: hidden; font: 900 .8rem/1.2 Arial, sans-serif; text-overflow: ellipsis; text-transform: uppercase; white-space: nowrap; }
.oil-live-status, .oil-offline-status { display: inline-flex; align-items: center; gap: .5rem; }
.oil-live-status i, .oil-offline-status i { width: .55rem; height: .55rem; background: #80aa68; box-shadow: 0 0 0 4px rgba(128,170,104,.14); transform: rotate(45deg); }
.oil-offline-status i { background: #d45a45; box-shadow: 0 0 0 4px rgba(212,90,69,.14); }
.oil-facts .active-state { color: #dcebd5; }
.oil-briefing { display: grid; grid-template-columns: minmax(220px, .7fr) minmax(0, 1.3fr); gap: 1rem; margin-bottom: 1.2rem; padding: 1rem; background: #fffaf0; border: 1px solid var(--line); border-left: 5px solid var(--brand-orange); box-shadow: 5px 5px 0 rgba(35,39,35,.07); }
.oil-briefing > div > :last-child { margin: 0; color: #5f5a51; line-height: 1.55; }
.oil-aircraft { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0; padding: 0; background: none; border: 0; }
.oil-aircraft > div { min-width: 0; padding: .25rem .85rem; border-left: 1px solid #d8cbb4; }
.oil-aircraft dt { color: #766c5c; font: 900 .56rem/1.2 Arial, sans-serif; letter-spacing: .1em; text-transform: uppercase; }
.oil-aircraft dd { display: grid; gap: .22rem; margin: .42rem 0 0; }
.oil-aircraft dd strong { color: #33352f; font-size: .76rem; text-transform: uppercase; }
.oil-aircraft dd.ready strong::before, .oil-aircraft dd.missing strong::before, .oil-aircraft dd.limited strong::before { display: inline-block; width: .5rem; height: .5rem; margin-right: .42rem; background: #6f965e; content: ''; transform: rotate(45deg); }
.oil-aircraft dd.missing strong::before { background: #c24f3b; }
.oil-aircraft dd.limited strong::before { background: #c58b2e; }
.oil-aircraft small { color: #7b7469; font-size: .63rem; line-height: 1.35; }
.oil-summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.oil-board { position: relative; min-width: 620px; margin: 1.5rem 0; overflow: auto; border: 1px solid #6f624f; background: #c6aa78 url('/img/discoveries_bg.jpg') center/cover; }
.oil-hex { position: absolute; display: grid; place-items: center; width: 68px; height: 74px; padding: .25rem; color: #3a3022; text-align: center; background: rgba(232,213,169,.9); clip-path: polygon(25% 0,75% 0,100% 50%,75% 100%,25% 100%,0 50%); }
.oil-hex.tier-2 { background: rgba(181,206,218,.9); }
.oil-hex.occupied { background: rgba(244,239,220,.96); }
.oil-hex > span { position: absolute; top: 9px; font-size: .62rem; }
.oil-hex img { width: 34px; height: 34px; margin-top: 4px; object-fit: contain; }
.oil-hex small { max-width: 58px; overflow: hidden; font-size: .58rem; text-overflow: ellipsis; white-space: nowrap; }
.oil-deploy { display: grid; grid-template-columns: 1.4fr 1fr .7fr auto; align-items: end; gap: .7rem; padding: 1rem; background: rgba(255,255,255,.72); border: 1px solid var(--line); }
.oil-deploy label { margin: 0; }
.oil-advanced { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.oil-advanced .oil-deploy { grid-template-columns: 1fr; }
.oil-original-panel { margin: 1.25rem 0 2.4rem; padding: 1rem; overflow: hidden; border: 1px solid #4b504b; border-top: 0; background: #f8f0e1; box-shadow: 0 18px 42px rgba(56,43,26,.18); }
.oil-board-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 1rem; margin: -1rem -1rem 0; padding: 1rem 1.15rem; color: #f0ece3; background: #101310; border-top: 5px solid var(--brand-orange); border-bottom: 1px solid #3b403b; }
.oil-board-heading h2, .oil-board-heading p { margin: 0; }
.oil-board-heading h2 { margin-top: .35rem; color: #f0ece3; font: 900 1.25rem/1 "Arial Narrow", Impact, Arial, sans-serif; letter-spacing: .07em; text-transform: uppercase; }
.oil-board-heading .eyebrow { color: var(--brand-orange); font-size: .53rem; }
.oil-board-heading div > p:last-child { margin-top: .4rem; color: #90958e; font-size: .68rem; }
.oil-board-controls { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .45rem; }
.oil-board-controls button { min-width: 8.5rem; min-height: 40px; padding: .65rem .8rem; }
.oil-legend { display: flex; flex-wrap: wrap; gap: .55rem .9rem; margin: .9rem 0 .45rem; padding: .7rem .8rem; color: #494941; background: #fffaf0; border: 1px solid #d8cbb4; font-size: .72rem; }
.oil-key { display: inline-flex; align-items: center; gap: .35rem; }
.oil-key::before { width: .85rem; height: .85rem; border: 2px solid #fff; content: ''; transform: rotate(30deg); }
.oil-key-own::before { background: #f00; }
.oil-key-rival::before { background: #0f0; }
.oil-key-build::before { background: #44f; }
.oil-key-heli::before { background: #44f; border-color: #00f; opacity: .65; }
.oil-key-oil::before { height: .45rem; background: #11100d; border-color: #29271f; border-radius: 50%; transform: none; }
.oil-key-spill::before { background: #444; }
.oil-key-closed::before { background: #ddd; opacity: .35; }
.oil-board-status { min-height: 1.25rem; margin: .45rem 0 .75rem; padding-left: .1rem; color: #4a4032; font-size: .8rem; }
.oil-field-board-shell { width: 100%; overflow-x: auto; overflow-y: hidden; border: 1px solid #4c504b; background-color: #171a18; background-image: radial-gradient(circle at 50% 56%, rgba(226,183,96,.14) 0, rgba(78,82,73,.08) 43%, transparent 43.2%), linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px), linear-gradient(145deg, #20241f, #101310); background-size: auto, 40px 40px, 40px 40px, auto; box-shadow: inset 0 0 48px rgba(0,0,0,.48); scrollbar-color: #777065 #171a18; }
#board { width: 1000px; height: 900px; position: relative; margin: 0 auto; touch-action: none; user-select: none; }
#board svg { display: block; width: 1000px; height: 900px; }
#board .oil-hex-shape { transition: filter .1s ease; }
#board .oil-hex-shape { cursor: pointer; }
#board .oil-hex-shape:focus { filter: drop-shadow(0 0 5px #ffda31); outline: none; }
#board .oil-rack-caption { fill: #d79a36; font: 900 9px/1 Arial, sans-serif; letter-spacing: 1.5px; }
#board .oil-rack-label { fill: #f1e7d1; font: 900 8px/1 Arial, sans-serif; letter-spacing: .35px; }
#board .oil-rack-count-badge { fill: var(--brand-orange); stroke: #ffc368; }
#board .oil-rack-count { fill: #17120b; font: 900 8px/1 Arial, sans-serif; }
#board .oil-rack-machine { touch-action: none; transition: filter .12s ease; }
#board .oil-rack-machine[role="button"] { fill: transparent; stroke: none; outline: none; }
#board .oil-rack-machine-icon { image-rendering: auto; }
#board .oil-rack-machine:not([role="button"]) { stroke: #f2e8d4; }
#board .oil-rack-machine[fill]:not([fill="none"]):not([role="button"]) { fill: #f2e8d4; }
#board .oil-rack-machine.is-previewing:not([role="button"]) { filter: drop-shadow(0 0 5px rgba(255,218,49,.88)); }
#board .oil-rack-machine.is-dragging:not([role="button"]) { filter: drop-shadow(0 0 7px rgba(240,154,36,.95)); }
.oil-machine-tooltip { width: 300px; position: absolute; z-index: 5; padding: .8rem .9rem; pointer-events: none; color: #eee8dc; background: rgba(13,16,14,.97); border-left: 4px solid var(--brand-orange); box-shadow: 0 10px 28px rgba(0,0,0,.48); }
.oil-machine-tooltip[hidden] { display: none; }
.oil-machine-tooltip .eyebrow { margin: 0 0 .3rem; color: var(--brand-orange); font-size: .5rem; }
.oil-machine-tooltip strong { display: block; color: #fff8eb; font: 900 .9rem/1.1 "Arial Narrow", Impact, Arial, sans-serif; letter-spacing: .04em; text-transform: uppercase; }
.oil-machine-tooltip p:not(.eyebrow) { margin: .5rem 0; color: #c7c5bd; font: .72rem/1.45 Georgia, serif; }
.oil-machine-tooltip small { display: block; color: #9da198; font-size: .6rem; line-height: 1.4; }
@keyframes oil-slick-pulse { 0%, 100% { fill-opacity: .58; } 50% { fill-opacity: .86; } }
#board .oil-slick { animation: oil-slick-pulse 1.8s ease-in-out infinite; filter: drop-shadow(0 0 4px rgba(244,169,46,.88)); }
#board .oil-volume-halo { filter: drop-shadow(0 0 4px rgba(255,194,70,.95)); }
#board .oil-volume-badge { filter: drop-shadow(0 2px 2px rgba(0,0,0,.72)); }
#board .oil-volume-label { paint-order: stroke; stroke: rgba(255,235,180,.4); stroke-width: .2px; }
@keyframes oil-spill-warning { 0%, 100% { stroke-opacity: .72; } 50% { stroke-opacity: 1; } }
#board .oil-spill-hex { filter: drop-shadow(0 0 3px rgba(255,90,54,.72)); }
#board .oil-spill-marker { pointer-events: none; filter: drop-shadow(0 0 3px rgba(255,90,54,.9)); }
#board .oil-spill-ring { animation: oil-spill-warning 1.15s ease-in-out infinite; }
#board .oil-spill-label { paint-order: stroke; }
#board.oil-machine-drag-active .oil-spill-hex { filter: drop-shadow(0 0 8px #ff5a36); }
#board.oil-machine-drag-active .oil-spill-marker { filter: drop-shadow(0 0 7px #ff5a36); }
#board .oil-drop-target-spill { filter: drop-shadow(0 0 10px #ffda31); }
#board .oil-drop-target-blocked { filter: drop-shadow(0 0 10px #ff5a36); }
#board.oil-volume-labels-hidden .oil-volume-halo,
#board.oil-volume-labels-hidden .oil-slick,
#board.oil-volume-labels-hidden .oil-volume-badge,
#board.oil-volume-labels-hidden .oil-volume-label { display: none; }
#board.oil-animations-paused .oil-slick { animation-play-state: paused; }
#board.oil-animations-paused .oil-spill-ring { animation-play-state: paused; }
.oil-hex-summary { width: min(620px, calc(100vw - 2rem)); max-height: min(82vh, 760px); padding: 0; color: #30291f; background: #f4eedb; border: 2px solid #6b5b42; border-radius: 10px; box-shadow: 0 20px 70px rgba(0,0,0,.5); }
.oil-hex-summary::backdrop { background: rgba(20,17,13,.72); backdrop-filter: blur(2px); }
.oil-hex-summary-header { position: sticky; top: 0; z-index: 1; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem 1.15rem; background: #ddd0ac url('/img/discoveries_bg.jpg') center/cover; border-bottom: 1px solid #8b7958; }
.oil-hex-summary-header h2, .oil-hex-summary-header p { margin: 0; }
.oil-hex-summary-close { display: inline-flex; align-items: center; gap: .35rem; flex: none; }
.oil-hex-summary-close span { font-size: 1.35rem; line-height: .8; }
.oil-hex-summary-content { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; padding: 1rem 1.15rem 1.2rem; }
.oil-hex-summary-content section { min-width: 0; padding: .8rem; background: rgba(255,255,255,.62); border: 1px solid #c4b895; border-radius: 6px; }
.oil-hex-summary-content h3 { margin: 0 0 .55rem; color: #64441c; }
.oil-hex-summary-content dl { display: grid; gap: .38rem; margin: 0; }
.oil-hex-summary-content dl > div { display: grid; grid-template-columns: minmax(7.5rem, .8fr) minmax(0, 1.2fr); gap: .7rem; padding-top: .38rem; border-top: 1px dotted #c8bda1; }
.oil-hex-summary-content dl > div:first-child { padding-top: 0; border-top: 0; }
.oil-hex-summary-content dt { color: #6f6759; }
.oil-hex-summary-content dd { margin: 0; font-weight: 700; overflow-wrap: anywhere; }
.oil-hex-summary-actions { grid-column: 1 / -1; }
.oil-hex-summary-actions button { width: 100%; }
.oil-report { margin-bottom: 2.4rem; }
.oil-report > .eyebrow { margin-bottom: .45rem; }
.oil-report > h2 { margin: 0 0 1rem; }
.oil-instructions { margin-bottom: 2.4rem; padding: 1.2rem; border: 1px solid var(--line); border-top: 5px solid var(--brand-orange); background: #fffaf0; box-shadow: 5px 5px 0 rgba(35,39,35,.07); }
.oil-instructions > .eyebrow { margin-bottom: .45rem; }
.oil-instructions h2 { margin: 0 0 1rem; }
.oil-instructions ol { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem; margin: 0; padding: 0; list-style: none; counter-reset: oil-instruction; }
.oil-instructions li { display: grid; grid-template-columns: 1.7rem minmax(0, 1fr); gap: .65rem; min-width: 0; padding: .75rem; color: #504c44; background: #f6eddb; border: 1px solid #d8cbb4; line-height: 1.45; counter-increment: oil-instruction; }
.oil-instructions li::before { display: grid; width: 1.7rem; height: 1.7rem; place-items: center; color: #17120b; background: var(--brand-orange); content: counter(oil-instruction, decimal-leading-zero); font: 900 .62rem/1 Arial, sans-serif; }
.oil-events { margin-bottom: 0; }
.oil-events > header { display: flex; align-items: end; justify-content: space-between; gap: 1.5rem; margin-bottom: .9rem; }
.oil-events > header h2, .oil-events > header p { margin: 0; }
.oil-events > header h2 { margin-top: .4rem; }
.oil-events > header > p { max-width: 28rem; color: var(--muted); font: .84rem/1.55 Georgia, serif; text-align: right; }
.oil-empty-state { max-width: 760px; margin: 3rem auto 0; padding: clamp(1.25rem, 4vw, 2rem); background: #fffaf0; border: 1px solid var(--line); border-left: 6px solid var(--brand-orange); box-shadow: 8px 8px 0 rgba(35,39,35,.08); }
.oil-empty-state h2 { margin: .4rem 0 .8rem; }
.oil-empty-state p:not(.eyebrow) { color: var(--muted); }
.oil-form-controls { margin: 1rem 0; padding: .6rem .8rem; border: 1px solid var(--line); background: rgba(255,255,255,.55); }
.oil-form-controls > summary { cursor: pointer; font-weight: 700; }
.oil-form-controls[open] > summary { margin-bottom: 1rem; }
.item-picker { min-width: 0; margin: 0; padding: .65rem; border: 1px solid var(--line); }
.item-picker legend { padding: 0 .35rem; font-weight: bold; }
.item-picker-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem; }
.item-picker-none { display: inline-flex; align-items: center; gap: .4rem; margin: 0 0 .55rem; }
.item-picker-none input { width: auto; margin: 0; }
.avatar-item-picker { align-self: start; }
.avatar-item-picker .item-picker-grid { grid-template-columns: 1fr; }
.detonator-form { width: 100%; }
.equipped-list .item-card-actions form { display: block; }
.auto-recycle-row.item-card { display: grid; grid-template-columns: minmax(0, 1fr) auto; padding: .75rem; }
.item-market-subject { max-width: 760px; margin: 1rem 0; }
.item-card-status { margin: 0; color: var(--muted); }
.vehicle-list .item-card { width: 100%; }
.stored-vehicle-grid .item-card { grid-template-columns: minmax(0, 1fr); align-content: start; }
.stored-vehicle-grid .item-card-actions { min-width: 0; justify-content: flex-start; }
.stored-vehicle-grid .item-card-actions form { display: grid; width: 100%; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: .55rem .75rem; }
.stored-vehicle-grid .item-card-actions small { min-width: 0; margin: 0; line-height: 1.35; overflow-wrap: break-word; }
.stored-vehicle-heading { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 1rem; margin-bottom: .8rem; }
.stored-vehicle-heading h2, .stored-vehicle-heading p { margin: 0; }
.stored-vehicle-heading p { margin-top: .25rem; color: var(--muted); }
.stored-vehicle-heading form { flex: 0 0 auto; }
.vehicle-hero > .item-card { flex: 1 1 480px; }
.stacked-actions > .item-card { width: 100%; }
table .item-card { min-width: 220px; }
.oil-card-form { display: grid; gap: .7rem; padding: 1rem; background: rgba(255,255,255,.72); border: 1px solid var(--line); }
.oil-form-fields { display: grid; grid-template-columns: 1fr .7fr auto; align-items: end; gap: .7rem; }
.oil-form-fields label { margin: 0; }
.oil-machine-cards { display: grid; gap: .35rem; }
.table-icon { width: 28px; height: 28px; object-fit: contain; vertical-align: middle; }
.report-filter { display: grid; grid-template-columns: .7fr 1.4fr 1.4fr auto; align-items: end; gap: .8rem; margin: 1rem 0; padding: 1rem; background: rgba(255,255,255,.72); border: 1px solid var(--line); }
.report-filter fieldset { display: flex; align-content: flex-start; gap: .35rem .7rem; flex-wrap: wrap; min-width: 0; margin: 0; padding: .55rem; border: 1px solid var(--line); }
.report-filter legend { padding: 0 .3rem; font-weight: bold; }
.report-filter label { display: inline-flex; align-items: center; gap: .25rem; margin: 0; }
.gadget-card .button { display: inline-block; margin-left: .75rem; }
.account-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.account-grid form, .recycle-settings, .recycling-bank { padding: 1.2rem; background: rgba(255,255,255,.72); border: 1px solid var(--line); }
.verification-card { max-width: 680px; margin: 2rem auto; padding: clamp(1.2rem, 4vw, 2rem); background: rgba(255,255,255,.82); border: 1px solid var(--line); border-top: 6px solid var(--gold); }
.verification-card h1 { margin-top: .25rem; }
.verification-card form { margin: 1rem 0; }
.verification-card details { margin: 1.2rem 0; padding: .9rem; background: rgba(245,239,222,.72); border: 1px solid var(--line); }
.verification-card summary { color: var(--rust); font-weight: 800; cursor: pointer; }
.verification-address { display: grid; gap: .2rem; margin: 1rem 0; padding: .8rem 1rem; background: #edf3ee; border-left: 4px solid var(--green); }
.verification-address span { color: var(--muted); font: bold .7rem Arial, sans-serif; text-transform: uppercase; }
.verification-sent, .development-verification { padding: .8rem 1rem; background: #f3ead9; border-left: 4px solid #9b6b28; }
.development-verification { margin: 1rem 0; }
.development-verification p { margin: .4rem 0 .8rem; }
.verified-state { display: inline-block; margin-right: .35rem; padding: .15rem .45rem; color: #28533a; background: #d5eadb; border-radius: 999px; font-size: .72rem; text-transform: uppercase; }
.recycle-settings { max-width: 760px; margin: 1rem auto 3rem; }
.factory-bot-market { margin-top: 1rem; padding: .9rem; border: 1px solid #c98a20; background: rgba(255, 244, 205, .7); }
.factory-bot-market form { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin: .55rem 0; }
.checkbox-line { display: flex; align-items: center; gap: .45rem; }
.checkbox-line input { width: auto; margin: 0; }
.broken-meld { max-width: 760px; margin: 1rem auto; padding: 1.2rem; background: rgba(255,255,255,.72); border: 1px solid var(--line); }
.broken-meld { border-left: 4px solid #a85c42; }
.capital-retired-note { max-width: 760px; margin-inline: auto; padding: 1.2rem; background: var(--surface); border: 1px solid var(--line); border-left: 5px solid var(--brand-orange); }
.stone-progress { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 1rem; padding: 1rem; background: rgba(255,255,255,.72); border: 1px solid var(--line); }
.stone-progress h2, .stone-progress p { margin: 0; }
.stone-icons { display: flex; gap: .25rem; }
.stone-icons img, .stone-card img { width: 30px; height: 30px; object-fit: contain; }
.stone-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .6rem; }
.stone-card { display: grid; grid-template-columns: 38px 1fr; align-items: center; gap: .6rem; padding: .75rem; opacity: .58; background: rgba(255,255,255,.62); border: 1px solid var(--line); }
.stone-card.earned { opacity: 1; border-left: 4px solid var(--green); }
.stone-card h3, .stone-card p { margin: 0; }
.stone-card small { color: var(--muted); }

/* MineThings 2 application shell: industrial charcoal, archive paper, signal orange. */
body.game-body { position: relative; padding: clamp(0px, 2vw, 1.35rem); background: radial-gradient(circle at 18% -5%, #31352f 0, #171a18 28rem, #090b0a 72rem); }
body.game-body::before { content: ''; position: fixed; inset: 0; z-index: 0; pointer-events: none; opacity: .12; background-image: linear-gradient(90deg, transparent 49.7%, #fff 50%, transparent 50.3%), linear-gradient(0deg, transparent 49.7%, #fff 50%, transparent 50.3%); background-size: 88px 88px; mask-image: linear-gradient(135deg, #000, transparent 68%); }
#wrapper.node-wrapper.game-shell { position: relative; z-index: 1; width: min(1500px, 100%); margin: 0 auto; overflow: clip; color: var(--ink); background: var(--brand-paper); border: 1px solid #3b403b; box-shadow: 0 32px 90px rgba(0,0,0,.48); }
.game-shell .game-header { display: flex; min-height: 104px; align-items: center; justify-content: space-between; gap: 2rem; margin: 0; padding: 1.25rem clamp(1.2rem, 3vw, 2.8rem); color: #f2ede3; background: var(--brand-dark); border: 0; border-bottom: 1px solid var(--line-dark); }
.site-wordmark { display: inline-flex; align-items: center; gap: .8rem; min-width: 0; color: #f7f2e8; text-decoration: none; }
.site-wordmark:hover { text-decoration: none; }
.site-wordmark > span:nth-child(2) { display: flex; flex-direction: column; min-width: 0; }
.site-wordmark strong { font: 900 1.48rem/1 "Arial Narrow", Impact, Arial, sans-serif; letter-spacing: .08em; text-transform: uppercase; white-space: nowrap; }
.site-wordmark small { margin-top: .32rem; color: #aaa9a2; font: 800 .57rem/1 Arial, sans-serif; letter-spacing: .16em; text-transform: uppercase; white-space: nowrap; }
.site-wordmark > b { align-self: flex-start; margin: -.3rem 0 0 -.5rem; color: var(--brand-orange); font: 900 2.05rem/.8 "Arial Narrow", Impact, Arial, sans-serif; transform: rotate(7deg); }
.site-mark { display: inline-block; position: relative; width: 2rem; height: 2rem; flex: 0 0 auto; background: var(--brand-orange); clip-path: polygon(50% 0, 100% 24%, 76% 100%, 24% 100%, 0 24%); transform: rotate(45deg); }
.site-mark::after { content: ''; position: absolute; inset: 7px; background: var(--brand-dark); clip-path: inherit; }
.game-shell #login { min-width: 0; margin-left: auto; padding: 0; }
.player-status { display: flex; align-items: stretch; justify-content: flex-end; gap: .8rem; }
.player-identity { display: flex; min-width: 9rem; justify-content: center; flex-direction: column; padding: .5rem .85rem; color: #f4efe4; border-left: 2px solid var(--brand-orange); }
.player-identity:hover { text-decoration: none; background: #171a18; }
.player-identity span, .player-vitals dt { color: #9fa29c; font: 900 .55rem/1 Arial, sans-serif; letter-spacing: .16em; text-transform: uppercase; }
.player-identity strong { margin-top: .38rem; overflow: hidden; font-size: .86rem; text-overflow: ellipsis; white-space: nowrap; }
.player-vitals { display: flex; margin: 0; border: 1px solid #333833; }
.player-vitals div { display: flex; min-width: 5.3rem; justify-content: center; flex-direction: column; padding: .5rem .72rem; border-right: 1px solid #333833; }
.player-vitals div:last-child { min-width: 7rem; border-right: 0; }
.player-vitals dd { margin: .34rem 0 0; color: #f3eee4; font-size: .78rem; font-weight: 800; white-space: nowrap; }
.player-vitals .player-meld-vital dd { color: var(--miner-chat-color); }
.player-status form { display: flex; margin: 0; }
.logout-button { align-self: stretch; min-height: 0; color: #f0ece3; background: transparent; border: 1px solid #4b504b; }
.logout-button span { margin-left: .35rem; color: var(--brand-orange); }
.logout-button:hover:not(:disabled) { color: #17120b; background: var(--brand-orange); border-color: var(--brand-orange); }
.guest-actions { display: flex; align-items: center; gap: 1rem; }
.guest-actions > a:first-child { color: #f0ece3; font: 900 .67rem Arial, sans-serif; letter-spacing: .1em; text-transform: uppercase; }

#wrapper.game-shell #navcontainer { display: block; width: 100%; max-width: 100%; overflow-x: auto; overflow-y: hidden; padding: 0; background: #151815; border: 0; border-bottom: 1px solid #3b403b; scrollbar-color: #6d746d #151815; }
#wrapper.game-shell #nav { display: flex; width: max-content; min-width: 100%; margin: 0; padding: 0; list-style: none; }
.game-shell #nav li { display: flex; height: auto; flex: 1 0 auto; border: 0; border-right: 1px solid #303530; }
.game-shell #nav .city-name { display: flex; width: 190px; min-width: 190px; align-items: flex-start; justify-content: center; flex-direction: column; padding: .7rem 1rem; overflow: hidden; color: #f4efe4; background: #202420; text-align: left; }
.game-shell #nav .city-name span { color: var(--brand-orange); font: 900 .54rem/1 Arial, sans-serif; letter-spacing: .18em; text-transform: uppercase; }
.game-shell #nav .city-name strong { max-width: 100%; margin-top: .36rem; overflow: hidden; font-size: .79rem; text-overflow: ellipsis; text-transform: uppercase; white-space: nowrap; }
.game-shell #nav li a { display: grid; width: auto; min-width: 7.25rem; height: auto; min-height: 68px; align-content: center; gap: .32rem; position: relative; padding: .65rem 1rem; color: #d4d2ca; background: none; border: 0; font: 900 .68rem/1.1 Arial, sans-serif; letter-spacing: .075em; text-transform: uppercase; }
.game-shell #nav li a > span { color: #777d76; font-size: .54rem; letter-spacing: .14em; }
.game-shell #nav li a:hover { color: #fff; background: #242824; text-decoration: none; }
.game-shell #nav li a[aria-current="page"] { color: #fff; background: linear-gradient(180deg, #242824, #1c201c); }
.game-shell #nav li a[aria-current="page"]::after { content: ''; position: absolute; right: .8rem; bottom: 0; left: .8rem; height: 4px; background: var(--brand-orange); }
.game-shell #nav li a[aria-current="page"] > span { color: var(--brand-orange); }
.game-shell #nav li a:focus-visible, .game-shell #navlist a:focus-visible, .game-shell .site-footer a:focus-visible { z-index: 2; outline: 3px solid #fff1ad; outline-offset: -3px; }

.game-shell #divwrapper { display: grid; grid-template-columns: 252px minmax(0, 1fr); position: relative; min-height: 660px; overflow: visible; background: var(--brand-paper); }
.game-shell #divwrapper.guest-content { grid-template-columns: minmax(0, 1fr); }
.game-shell #left { display: block; width: auto; min-width: 0; margin: 0; padding: 0; color: #d6d4cd; background: var(--brand-charcoal); }
.sidebar-toggle { display: none; }
.sidebar-context { display: grid; gap: .65rem; padding: 1rem; color: #17120b; background: var(--brand-orange); border-bottom: 3px solid #17120b; }
.sidebar-location-heading { margin: 0; font: 900 .62rem/1 Arial, sans-serif; letter-spacing: .12em; text-transform: uppercase; }
.sidebar-location-value { display: grid; grid-template-columns: 3.5rem minmax(0, 1fr); align-items: baseline; gap: .55rem; }
.sidebar-location-value > span { font: 900 .52rem/1 Arial, sans-serif; letter-spacing: .15em; text-transform: uppercase; }
.sidebar-location-value > a { min-width: 0; color: #17120b; font: 900 1.05rem/1 "Arial Narrow", Impact, Arial, sans-serif; letter-spacing: .035em; text-transform: uppercase; overflow-wrap: anywhere; text-decoration-thickness: 2px; text-underline-offset: 3px; }
.sidebar-location-value .capital-city-icon { margin-right: .38rem; font-size: .72rem; vertical-align: .16rem; }
.sidebar-location-value > a:hover { color: #fff; text-decoration-color: #17120b; }
.sidebar-weather > a { display: flex; align-items: center; gap: .3rem; }
.sidebar-weather-icon { flex: 0 0 auto; font-size: 1.05em; line-height: 1; }
.sidebar-map-link { display: flex; justify-content: space-between; gap: .5rem; margin-top: .15rem; padding-top: .65rem; color: #17120b; border-top: 1px solid rgba(23,18,11,.35); font: 900 .65rem/1 Arial, sans-serif; letter-spacing: .07em; text-transform: uppercase; }
.sidebar-map-link:hover { color: #fff; text-decoration: none; }
.game-shell #navlist { display: block; width: auto; margin: 0; padding: .7rem 0 2rem; border: 0; text-align: left; }
.side-nav-group { margin: 0; padding: 0 0 .65rem; border: 0; }
.side-nav-group h2 { width: auto; margin: 0; padding: .8rem 1.25rem .42rem; color: #747a73; background: none; border: 0; font: 900 .55rem/1 Arial, sans-serif; letter-spacing: .2em; text-transform: uppercase; }
.side-nav-group ul { margin: 0; padding: 0; list-style: none; }
.side-nav-group li { margin: 0; padding: 0; border: 0; }
.game-shell #navlist a { display: flex; min-height: 42px; align-items: center; position: relative; margin: 0; padding: .62rem 1.25rem .62rem 1.65rem; color: #d7d5ce; font: 800 .73rem/1.2 Arial, sans-serif; letter-spacing: .055em; text-transform: uppercase; }
.game-shell #navlist a::before { content: ''; position: absolute; left: 1.1rem; width: 4px; height: 4px; background: #626861; transform: rotate(45deg); }
.game-shell #navlist a:hover { color: #fff; background: #242824; text-decoration: none; }
.game-shell #navlist li.current a { color: #17120b; background: var(--brand-orange); }
.game-shell #navlist li.current a::before { background: #17120b; }

.game-shell #content { width: 100%; min-width: 0; max-width: 1240px; margin: 0 auto; padding: clamp(2rem, 4vw, 4.25rem) clamp(1.2rem, 4vw, 4.2rem) 5rem; }
.public-shell #content { max-width: 1080px; }
.game-shell #content:focus { outline: 0; }
.game-shell .page-title { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(200px, .55fr); align-items: end; gap: 1.4rem clamp(1.5rem, 3vw, 3rem); min-height: 0; margin: 0 0 2.2rem; padding: 0 0 1.65rem; background: none; border: 0; border-bottom: 1px solid var(--line); }
.game-shell .page-title:not(:has(> :nth-child(2))) { grid-template-columns: minmax(0, 1fr); }
.game-shell .page-title > div { width: 100%; min-width: 0; max-width: none; }
.game-shell .page-title > div:not(:first-child) { width: auto; max-width: 100%; justify-self: end; }
.game-shell .page-title > form { grid-column: 1 / -1; width: min(430px, 100%); }
.game-shell .page-title h1 { max-width: 100%; margin: .38rem 0 0; color: #252824; font-size: clamp(2.25rem, 4vw, 4rem); line-height: .92; overflow-wrap: break-word; word-break: normal; hyphens: none; text-wrap: balance; }
.game-shell .page-title-long h1 { font-size: clamp(2.25rem, 3.25vw, 3.4rem); }
.game-shell .page-title > p { max-width: 35rem; justify-self: end; margin: 0; color: var(--muted); font: .94rem/1.65 Georgia, serif; }
.game-shell .page-title > a:not(.button) { justify-self: end; padding-bottom: .25rem; color: #594013; border-bottom: 2px solid var(--brand-orange); font-size: .78rem; font-weight: 900; }
.game-shell .page-title > a.button { justify-self: end; }
.game-shell #content > section:not(.page-title) { margin-bottom: 2.4rem; }
.game-shell #content > section:not(.page-title) > h2:first-child, .game-shell #content > h2 { color: #33352f; font: 900 1.35rem/1 "Arial Narrow", Impact, Arial, sans-serif; letter-spacing: .045em; text-transform: uppercase; }
.game-shell :where(.auth-grid form, .shop-card, .mine, .item, .detail, .error, .trade-forms form, .miner-card, .message-row, .message-detail, .message-bubble, .vehicle-card, .vehicle-hero, .vehicle-loadout, .capacity-budget, .loadout-preview, .city-card, .factory-card, .credit-bundle, .legal-identity, .receipt-grid, .account-grid, .market-controls, .recycling-bank) { background-color: var(--surface); border-color: var(--line); border-radius: 0; box-shadow: 0 10px 24px rgba(64,51,31,.06); }
.game-shell table { background: var(--surface); border: 1px solid var(--line); }
.game-shell thead { color: #eeeae0; background: #292d29; }
.game-shell th { color: #dedbd3; border-color: #444a44; font-size: .66rem; letter-spacing: .1em; }
.game-shell td { border-color: #d7cbb6; }
.game-shell tbody tr:nth-child(even) { background: #f6eddb; }
.game-shell tbody tr:hover { background: #fff1d4; }
.game-shell .table-scroll { border: 1px solid var(--line); }
.game-shell .table-scroll table { border: 0; }
.game-shell .rating-tabs, .game-shell .world-map-tabs, .game-shell .article-index { gap: 0; padding: 0; overflow-x: auto; background: #292d29; border: 1px solid #414741; }
.game-shell .rating-tabs a, .game-shell .world-map-tabs a, .game-shell .article-index a { min-height: 44px; padding: .8rem 1rem; color: #d9d7cf; background: transparent; border: 0; border-right: 1px solid #414741; border-radius: 0; font: 900 .65rem Arial, sans-serif; letter-spacing: .08em; text-transform: uppercase; white-space: nowrap; }
.game-shell .rating-tabs a:hover, .game-shell .world-map-tabs a:hover, .game-shell .article-index a:hover { color: #17120b; background: var(--brand-orange); text-decoration: none; }
.game-shell .world-map-tabs a { display: grid; gap: .18rem; }
.game-shell .world-map-tabs a span { color: inherit; font-size: .52rem; letter-spacing: .11em; }
.game-shell .world-map-tabs a.active { box-shadow: inset 0 -4px 0 var(--brand-orange); }
.game-shell .world-map-tabs a.current-world { color: #17120b; background: var(--brand-orange); border-color: #c56d08; box-shadow: none; }
.game-shell .rating-tabs a[aria-current="page"] { color: #17120b; background: var(--brand-orange); border-color: #c56d08; }

@media (max-width: 1180px) {
  .game-shell .page-title { grid-template-columns: minmax(0, 1fr); gap: .85rem; }
  .game-shell .page-title > p, .game-shell .page-title > a,
  .game-shell .page-title > div:not(:first-child) { width: auto; max-width: 100%; justify-self: start; }
}

.game-shell .site-footer { display: grid; grid-template-columns: minmax(250px, 1fr) minmax(220px, .8fr) auto; align-items: center; gap: 2rem; min-height: 0; padding: 1.6rem clamp(1.2rem, 3vw, 2.8rem); color: #9fa29c; background: #090b0a; border: 0; border-top: 1px solid #343934; font: 700 .72rem/1.5 Arial, sans-serif; text-align: left; }
.footer-brand { display: flex; align-items: center; gap: .8rem; }
.footer-brand .site-mark { width: 1.35rem; height: 1.35rem; }
.footer-brand .site-mark::after { inset: 5px; }
.footer-brand div { display: flex; flex-direction: column; }
.footer-brand strong { color: #f1ece2; font: 900 .95rem "Arial Narrow", Impact, Arial, sans-serif; letter-spacing: .09em; text-transform: uppercase; }
.footer-brand span:not(.site-mark) { margin-top: .18rem; color: #797e77; font-size: .6rem; letter-spacing: .06em; text-transform: uppercase; }
.game-shell .site-footer p { margin: 0; color: #8e928c; }
.game-shell .site-footer nav { display: flex; justify-content: flex-end; gap: 1rem; width: auto; }
.game-shell .site-footer a { color: #dad7cf; font-size: .65rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }

/* Public rebirth landing page. Keep this isolated from the authenticated game shell. */
.landing-body { margin: 0; color: #ede7d9; background: #090b0a; }
#wrapper.node-wrapper.landing-shell { width: 100%; max-width: none; min-width: 0; overflow: hidden; background: #090b0a; }
.landing-shell > .game-header, .landing-shell > #navcontainer { display: none; }
.landing-shell #divwrapper { width: 100%; min-height: 0; margin: 0; padding: 0; background: none; }
.node-wrapper.landing-shell .guest-content #content { width: 100%; max-width: none; margin: 0; padding: 0; }
.landing-shell .site-footer { display: flex; height: auto; min-height: 0; align-items: center; justify-content: space-between; gap: 1.5rem 3rem; padding: 2rem clamp(1.25rem, 5vw, 4.5rem); color: #8f938c; background: #080a09; border-top: 1px solid #272b28; font: 700 .72rem/1.5 Arial, sans-serif; letter-spacing: .04em; text-align: left; }
.landing-shell .site-footer .footer-brand { flex: 0 0 auto; }
.landing-shell .site-footer p { margin: 0; text-align: center; }
.landing-shell .site-footer nav { display: flex; justify-content: flex-end; gap: 1rem; width: auto; }
.landing-shell .site-footer a { color: #e99a27; font-size: .66rem; font-weight: 900; text-transform: uppercase; }
.rebirth-landing { --landing-ink: #f3eee3; --landing-dim: #b8b7af; --landing-dark: #0b0d0c; --landing-charcoal: #171a18; --landing-orange: #f09a24; --landing-paper: #eee4d0; color: var(--landing-ink); background: var(--landing-dark); font-family: Arial, Helvetica, sans-serif; line-height: 1.55; }
.rebirth-landing h1, .rebirth-landing h2, .rebirth-landing h3, .rebirth-landing p { margin-top: 0; }
.rebirth-landing a:focus-visible, .rebirth-landing button:focus-visible, .rebirth-landing input:focus-visible { outline-color: #fff1ad; outline-offset: 4px; }
.landing-masthead { display: flex; align-items: center; justify-content: space-between; gap: 2rem; position: absolute; top: 0; left: 50%; z-index: 8; width: min(1440px, 100%); padding: 1.45rem clamp(1.25rem, 5vw, 4.5rem); border-bottom: 1px solid rgba(255,255,255,.17); transform: translateX(-50%); }
.landing-wordmark { display: inline-flex; align-items: center; gap: .8rem; min-width: 0; color: #fff; text-decoration: none; }
.landing-wordmark:hover { text-decoration: none; }
.landing-wordmark > span:nth-child(2) { display: flex; flex-direction: column; min-width: 0; }
.landing-wordmark strong { font: 900 1.35rem/1 "Arial Narrow", Impact, Arial, sans-serif; letter-spacing: .08em; text-transform: uppercase; white-space: nowrap; }
.landing-wordmark small { margin-top: .3rem; color: #c8c6be; font: 700 .58rem/1 Arial, sans-serif; letter-spacing: .13em; text-transform: uppercase; white-space: nowrap; }
.landing-wordmark b { align-self: flex-start; margin: -.35rem 0 0 -.52rem; color: var(--landing-orange); font: 900 2.1rem/.8 "Arial Narrow", Impact, Arial, sans-serif; transform: rotate(7deg); }
.landing-mark { display: inline-block; position: relative; width: 2rem; height: 2rem; flex: 0 0 auto; background: var(--landing-orange); clip-path: polygon(50% 0, 100% 24%, 76% 100%, 24% 100%, 0 24%); transform: rotate(45deg); }
.landing-mark::after { content: ''; position: absolute; inset: 7px; background: var(--landing-dark); clip-path: polygon(50% 0, 100% 24%, 76% 100%, 24% 100%, 0 24%); }
.landing-nav { display: flex; align-items: center; justify-content: flex-end; gap: clamp(.85rem, 2vw, 2rem); font-size: .72rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.landing-nav a { color: #e8e4db; }
.landing-nav-cta { padding: .78rem 1rem; color: #17120b !important; background: var(--landing-orange); border: 1px solid var(--landing-orange); }
.landing-nav-cta:hover { filter: brightness(1.12); text-decoration: none; }

.landing-hero { display: flex; align-items: center; position: relative; min-height: clamp(730px, 94svh, 940px); overflow: hidden; isolation: isolate; background: #0a0c0b; }
.landing-hero::before { content: ''; position: absolute; inset: -2%; z-index: -2; background: linear-gradient(90deg, rgba(7,9,8,.98) 0%, rgba(7,9,8,.88) 38%, rgba(7,9,8,.26) 73%, rgba(7,9,8,.58) 100%), linear-gradient(180deg, rgba(7,9,8,.42), transparent 53%, rgba(7,9,8,.96)), url('/node/landing-rebirth.jpg') 57% center/cover no-repeat; filter: saturate(.72) contrast(1.12); animation: landing-hero-drift 18s ease-in-out infinite alternate; }
.landing-hero::after { content: ''; position: absolute; inset: 0; z-index: -1; pointer-events: none; opacity: .38; background-image: linear-gradient(90deg, transparent 49.8%, rgba(255,255,255,.07) 50%, transparent 50.2%), linear-gradient(0deg, transparent 49.8%, rgba(255,255,255,.045) 50%, transparent 50.2%); background-size: 88px 88px; mask-image: linear-gradient(90deg, #000, transparent 72%); }
.landing-hero-inner { width: min(1440px, 100%); margin: 0 auto; padding: 9.5rem clamp(1.25rem, 7vw, 7rem) 7rem; }
.landing-hero-inner > * { max-width: 760px; }
.landing-era { display: flex; align-items: center; gap: .7rem; margin-bottom: 1.6rem; color: #b9bab5; font: 800 .68rem/1 Arial, sans-serif; letter-spacing: .18em; text-transform: uppercase; }
.landing-era i { width: clamp(1.5rem, 4vw, 4rem); height: 1px; background: rgba(255,255,255,.34); }
.landing-era strong { color: #17120b; padding: .38rem .58rem; background: var(--landing-orange); letter-spacing: .12em; }
.landing-kicker, .landing-section-label { color: var(--landing-orange); font: 900 .69rem/1.3 Arial, sans-serif; letter-spacing: .2em; text-transform: uppercase; }
.rebirth-landing .landing-hero h1 { max-width: 920px; margin: .6rem 0 1.45rem; color: #f5f0e6; font: 900 clamp(4.6rem, 9.1vw, 8.4rem)/.78 "Arial Narrow", Impact, Arial, sans-serif; letter-spacing: -.035em; text-transform: uppercase; text-wrap: balance; overflow-wrap: normal; }
.landing-hero h1 > span { display: block; }
.landing-hero h1 > span:first-child { font-size: .62em; letter-spacing: .01em; }
.landing-hero .landing-title-echo { margin: .23em 0 .2em; color: var(--landing-orange); font-size: .34em; line-height: 1; letter-spacing: .075em; }
.landing-title-return { display: flex !important; align-items: baseline; gap: .28em; font-size: .22em; line-height: .9; letter-spacing: .08em; }
.landing-title-return strong { color: #fff; font-size: 3.8em; letter-spacing: -.025em; white-space: nowrap; }
.landing-title-return em { display: inline-block; color: #16110a; padding: .04em .12em 0; background: var(--landing-orange); font-style: normal; transform: rotate(3deg); }
.landing-lead { margin-bottom: .55rem; color: #fff; font: 800 clamp(1.1rem, 2vw, 1.4rem)/1.4 Georgia, serif; }
.landing-deck { margin-bottom: 2rem; color: #c7c6c0; font-size: 1rem; line-height: 1.65; }
.landing-hero-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 1rem 1.45rem; }
.landing-button { display: inline-flex; align-items: center; justify-content: space-between; gap: 2rem; min-height: 50px; padding: .9rem 1.1rem; color: #18130b; background: var(--landing-orange); font: 900 .75rem/1 Arial, sans-serif; letter-spacing: .08em; text-transform: uppercase; }
.landing-button span { font-size: 1.15rem; }
.landing-button:hover { filter: brightness(1.1); text-decoration: none; }
.landing-history-link { color: #f2eee5; border-bottom: 1px solid rgba(240,154,36,.65); font-size: .83rem; font-weight: 800; }
.landing-history-link span { color: var(--landing-orange); }
.landing-field-note { display: flex; align-items: flex-end; flex-direction: column; position: absolute; right: clamp(1.25rem, 5vw, 4.5rem); bottom: 2.4rem; margin: 0; padding: .75rem 0 .75rem 1.1rem; border-left: 2px solid var(--landing-orange); text-align: right; }
.landing-field-note span { color: #aeb1ac; font: 800 .58rem/1 Arial, sans-serif; letter-spacing: .18em; text-transform: uppercase; }
.landing-field-note strong { margin-top: .35rem; color: #f5f0e7; font-size: .76rem; }

.landing-manifesto { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid #313532; border-bottom: 1px solid #313532; background: #111412; }
.landing-manifesto article { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 1rem; min-height: 180px; padding: 2.6rem clamp(1.25rem, 3.5vw, 3.5rem); border-right: 1px solid #313532; }
.landing-manifesto article:last-child { border-right: 0; }
.landing-manifesto article > span { color: var(--landing-orange); font: 900 .63rem/1 Arial, sans-serif; letter-spacing: .12em; }
.rebirth-landing .landing-manifesto h2 { margin: 0 0 .65rem; color: #f2ede3; font: 900 clamp(1.25rem, 2.1vw, 1.75rem)/1.05 "Arial Narrow", Impact, Arial, sans-serif; letter-spacing: .015em; text-transform: uppercase; }
.landing-manifesto p { margin: 0; color: #aeb0aa; font-size: .86rem; line-height: 1.55; }

.landing-origin { display: grid; grid-template-columns: minmax(0, 1.03fr) minmax(360px, .97fr); align-items: center; gap: clamp(3rem, 7vw, 7rem); padding: clamp(5rem, 9vw, 9rem) max(clamp(1.25rem, 6vw, 6rem), calc((100% - 1320px) / 2)); color: #332f29; background: var(--landing-paper); }
.rebirth-landing .landing-origin h2, .rebirth-landing .landing-world h2, .rebirth-landing .landing-join h2 { margin: .7rem 0 1.25rem; font: 900 clamp(2.6rem, 5vw, 5rem)/.93 "Arial Narrow", Impact, Arial, sans-serif; letter-spacing: -.025em; text-transform: uppercase; overflow-wrap: normal; }
.landing-origin-copy > p:not(.landing-section-label) { max-width: 680px; color: #665f54; font: 1.05rem/1.75 Georgia, serif; }
.landing-timeline { position: relative; margin: 2.5rem 0 2.2rem; padding: 0; list-style: none; }
.landing-timeline::before { content: ''; position: absolute; top: .8rem; bottom: .8rem; left: 2.1rem; width: 1px; background: #b9a98d; }
.landing-timeline li { display: grid; grid-template-columns: 4.2rem minmax(0, 1fr); gap: 1.25rem; position: relative; padding: 0 0 1.65rem; }
.landing-timeline li:last-child { padding-bottom: 0; }
.landing-timeline time { position: relative; z-index: 1; width: 4.2rem; padding: .36rem .25rem; color: #554a3d; background: #d7c9ae; border: 1px solid #a7987c; font: 900 .68rem/1 Arial, sans-serif; letter-spacing: .08em; text-align: center; text-transform: uppercase; }
.landing-timeline .is-now time { color: #17120b; background: var(--landing-orange); border-color: #bd6c0c; }
.landing-timeline li > span { color: #756d61; font-size: .86rem; line-height: 1.6; }
.landing-timeline li strong { display: block; color: #2e2923; font-size: .95rem; }
.landing-text-link { color: #594013; border-bottom: 2px solid var(--landing-orange); font-weight: 900; }
.landing-text-link span { color: #a35c06; }
.landing-archive-card { margin: 0; transform: rotate(1.4deg); }
.landing-archive-card > div { position: relative; padding: .75rem; background: #191b1a; border: 1px solid #393b38; box-shadow: 0 32px 60px rgba(39,31,18,.28); }
.landing-archive-card img { display: block; width: 100%; height: auto; filter: saturate(.78) contrast(1.05); }
.landing-archive-card div > span { position: absolute; right: -.7rem; bottom: 1.4rem; padding: .55rem .7rem; color: #22170a; background: var(--landing-orange); box-shadow: 0 5px 15px rgba(0,0,0,.24); font: 900 .6rem/1 Arial, sans-serif; letter-spacing: .13em; text-transform: uppercase; transform: rotate(-3deg); }
.landing-archive-card figcaption { margin-top: 1rem; color: #766c5d; font-size: .73rem; font-style: italic; text-align: center; }

.landing-world { padding: clamp(5rem, 9vw, 9rem) max(clamp(1.25rem, 5vw, 5rem), calc((100% - 1360px) / 2)); background: radial-gradient(circle at 50% 42%, #243029, #111412 53%, #090b0a 100%); }
.landing-world > header { max-width: 850px; margin: 0 auto 3rem; text-align: center; }
.rebirth-landing .landing-world h2 { color: #f3eee4; }
.landing-world > header > p:last-child { max-width: 680px; margin: 0 auto; color: #b7b8b2; font-size: 1.02rem; line-height: 1.7; }
.landing-map-frame { position: relative; max-width: 1360px; margin: 0 auto; padding: clamp(.35rem, .8vw, .7rem); background: #050706; border: 1px solid #775527; box-shadow: 0 35px 80px rgba(0,0,0,.48); }
.landing-map-frame::before { content: ''; position: absolute; inset: -.5rem; z-index: -1; border: 1px solid rgba(240,154,36,.2); }
.landing-map-frame img { display: block; width: 100%; height: auto; }
.landing-map-frame p { display: flex; flex-direction: column; position: absolute; right: clamp(1rem, 3vw, 2.5rem); bottom: clamp(1rem, 3vw, 2.5rem); margin: 0; padding: .85rem 1rem; color: #eee8dc; background: rgba(8,10,9,.91); border-left: 3px solid var(--landing-orange); box-shadow: 0 8px 28px rgba(0,0,0,.34); }
.landing-map-frame p span { color: var(--landing-orange); font: 900 .58rem/1 Arial, sans-serif; letter-spacing: .16em; text-transform: uppercase; }
.landing-map-frame p strong { margin-top: .35rem; font-size: .82rem; }
.landing-world-principles { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; max-width: 1360px; margin: 2.8rem auto 0; padding: 0; list-style: none; border-top: 1px solid #353a36; border-bottom: 1px solid #353a36; }
.landing-world-principles li { padding: 1.5rem clamp(1rem, 2vw, 1.7rem); border-right: 1px solid #353a36; }
.landing-world-principles li:last-child { border-right: 0; }
.landing-world-principles strong { display: block; margin-bottom: .4rem; color: var(--landing-orange); font: 900 .82rem/1.1 Arial, sans-serif; letter-spacing: .08em; text-transform: uppercase; }
.landing-world-principles span { color: #aeb0aa; font-size: .78rem; line-height: 1.5; }

.landing-join { display: grid; grid-template-columns: minmax(260px, .72fr) minmax(0, 1.55fr); gap: clamp(2.5rem, 6vw, 6rem); padding: clamp(5rem, 9vw, 9rem) max(clamp(1.25rem, 6vw, 6rem), calc((100% - 1320px) / 2)); color: #302b25; background: #e9dfc9; scroll-margin-top: 1rem; }
.landing-join-intro { align-self: start; }
.landing-join-intro > p:not(.landing-section-label) { color: #655e54; font: 1.02rem/1.7 Georgia, serif; }
.landing-join-intro ul { display: flex; flex-wrap: wrap; gap: .45rem; margin: 1.8rem 0 0; padding: 0; list-style: none; }
.landing-join-intro li { padding: .36rem .55rem; color: #4f4639; background: #d9ccb4; border: 1px solid #bdac8e; font: 800 .63rem/1 Arial, sans-serif; letter-spacing: .07em; text-transform: uppercase; }
.landing-auth-grid { display: grid; grid-template-columns: minmax(0, 1.12fr) minmax(280px, .88fr); align-items: start; gap: 1.2rem; min-width: 0; }
.landing-auth-card { min-width: 0; margin: 0; padding: clamp(1.4rem, 3vw, 2.2rem); border: 1px solid #b9aa91; box-shadow: 0 18px 50px rgba(55,45,31,.14); scroll-margin-top: 1rem; }
.landing-register-card { color: #eae5da; background: #141715; border-color: #2e332f; }
.landing-login-card { color: #342f28; background: #f6f0e3; }
.landing-card-label { display: flex; align-items: center; gap: .55rem; margin-bottom: 1rem; color: #a55e0d; font: 900 .63rem/1 Arial, sans-serif; letter-spacing: .16em; text-transform: uppercase; }
.landing-register-card .landing-card-label { color: var(--landing-orange); }
.landing-card-label > span { display: inline-grid; width: 1.7rem; height: 1.7rem; place-items: center; opacity: 1; color: #17120b; background: var(--landing-orange); }
.rebirth-landing .landing-auth-card h3 { margin: 0 0 .55rem; font: 900 clamp(1.8rem, 3vw, 2.7rem)/.95 "Arial Narrow", Impact, Arial, sans-serif; letter-spacing: -.015em; text-transform: uppercase; }
.landing-auth-card > p:not(.landing-card-label, .landing-login-note) { color: #786f63; font-size: .83rem; }
.landing-register-card > p:not(.landing-card-label) { color: #aaa9a3; }
.landing-auth-card label { margin: 1.15rem 0 .35rem; color: inherit; font-size: .68rem; font-weight: 900; letter-spacing: .07em; text-transform: uppercase; }
.landing-auth-card label > span { opacity: 1; }
.landing-auth-card input:not([type="checkbox"]) { min-height: 48px; margin-top: .42rem; padding: .78rem .85rem; color: #24211d; background: #fffdf7; border: 1px solid #958875; border-radius: 0; box-shadow: none; }
.landing-register-card input:not([type="checkbox"]) { color: #f0ece3; background: #202421; border-color: #525750; }
.landing-auth-card > small { display: block; color: #786f62; font-size: .67rem; line-height: 1.45; }
.landing-register-card > small { color: #92958f; }
.landing-auth-card .check-row { align-items: flex-start; margin-top: 1.2rem; color: #a9aaa4; font-size: .68rem; line-height: 1.5; letter-spacing: 0; text-transform: none; }
.landing-auth-card .check-row input { width: 1.05rem; height: 1.05rem; margin-top: .12rem; accent-color: var(--landing-orange); }
.landing-auth-card .check-row a { color: var(--landing-orange); }
.landing-submit { display: flex; align-items: center; justify-content: space-between; gap: 1rem; width: 100%; min-height: 50px; margin-top: 1.4rem; padding: .9rem 1rem; color: #18130b; background: var(--landing-orange); border-radius: 0; }
.landing-submit span { font-size: 1.15rem; }
.landing-auth-divider { display: flex; align-items: center; gap: .75rem; margin: 1.15rem 0; color: #8b8173; font-size: .68rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.landing-auth-divider::before, .landing-auth-divider::after { content: ""; flex: 1; border-top: 1px solid #c8bcaa; }
.landing-google-button { display: flex; align-items: center; justify-content: center; gap: .7rem; min-height: 50px; padding: .8rem 1rem; color: #28241f; background: #fff; border: 1px solid #918778; font-weight: 800; text-decoration: none; }
.landing-google-button:hover { color: #15120e; background: #f7f4ed; }
.google-mark { display: inline-grid; place-items: center; width: 1.55rem; height: 1.55rem; color: #4285f4; background: #fff; border: 1px solid #d8d8d8; border-radius: 50%; font: 900 1rem/1 Arial, sans-serif; }
.oauth-registration-shell { display: grid; min-height: calc(100vh - 10rem); place-items: center; padding: clamp(1rem, 5vw, 4rem); background: #eae3d5; }
.oauth-registration-card { width: min(100%, 34rem); color: #28241f; background: #f7f2e7; }
.oauth-registration-card h1 { margin: 0 0 .65rem; font: 900 clamp(2rem, 5vw, 3.2rem)/.95 "Arial Narrow", Impact, Arial, sans-serif; text-transform: uppercase; }
.oauth-cancel-link { display: block; margin-top: 1rem; color: #6c6255; text-align: center; }
.account-auth-card { padding: 1.2rem; border: 1px solid var(--border); border-radius: var(--radius); background: var(--panel); }
.landing-login-note { margin: 1.6rem 0 0; padding-top: 1rem; color: #776d5e; border-top: 1px solid #d0c4af; font-size: .72rem; font-style: italic; line-height: 1.55; }

@keyframes landing-hero-drift { from { transform: scale(1.02) translate3d(-.3%, 0, 0); } to { transform: scale(1.075) translate3d(.5%, -.5%, 0); } }
@media (max-width: 1050px) {
  .landing-origin { grid-template-columns: 1fr; }
  .landing-archive-card { width: min(800px, 100%); margin: 0 auto; }
  .landing-world-principles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .landing-world-principles li:nth-child(2) { border-right: 0; }
  .landing-world-principles li:nth-child(-n+2) { border-bottom: 1px solid #353a36; }
  .landing-join { grid-template-columns: 1fr; }
  .landing-join-intro { max-width: 760px; }
}
@media (max-width: 760px) {
  .landing-masthead { gap: .8rem; padding: 1rem; }
  .landing-wordmark { gap: .55rem; }
  .landing-wordmark strong { font-size: 1rem; }
  .landing-wordmark small { display: none; }
  .landing-wordmark b { margin-left: -.42rem; font-size: 1.55rem; }
  .landing-mark { width: 1.45rem; height: 1.45rem; }
  .landing-mark::after { inset: 5px; }
  .landing-nav { gap: .7rem; font-size: .62rem; }
  .landing-nav > a:first-child { display: none; }
  .landing-nav-cta { padding: .65rem .7rem; }
  .landing-hero { display: block; min-height: 0; }
  .landing-hero::before { background-position: 66% center; }
  .landing-hero::after { background-size: 58px 58px; }
  .landing-hero-inner { padding: 8.5rem 1.25rem 3.5rem; }
  .rebirth-landing .landing-hero h1 { font-size: clamp(3.45rem, 16.4vw, 5.4rem); line-height: .82; }
  .landing-title-return { display: block !important; margin-top: .45em; line-height: .78; }
  .landing-title-return strong { display: block; margin-top: .14em; font-size: 3.45em; white-space: normal; }
  .landing-lead { max-width: 32rem; font-size: 1.02rem; }
  .landing-deck { max-width: 30rem; font-size: .9rem; }
  .landing-hero-actions { align-items: stretch; flex-direction: column; }
  .landing-button { width: 100%; }
  .landing-history-link { align-self: flex-start; padding-bottom: .3rem; }
  .landing-field-note { align-items: flex-start; position: relative; right: auto; bottom: auto; margin: 0 1.25rem 2rem; text-align: left; }
  .landing-manifesto { grid-template-columns: 1fr; }
  .landing-manifesto article { min-height: 0; padding: 1.65rem 1.25rem; border-right: 0; border-bottom: 1px solid #313532; }
  .landing-manifesto article:last-child { border-bottom: 0; }
  .landing-origin, .landing-world, .landing-join { padding: 4.5rem 1.25rem; }
  .rebirth-landing .landing-origin h2, .rebirth-landing .landing-world h2, .rebirth-landing .landing-join h2 { font-size: clamp(2.45rem, 12vw, 4rem); }
  .landing-origin-copy > p:not(.landing-section-label) { font-size: .95rem; }
  .landing-archive-card { transform: none; }
  .landing-archive-card > div { padding: .42rem; }
  .landing-archive-card div > span { right: -.25rem; bottom: .75rem; font-size: .5rem; }
  .landing-map-frame { padding: .25rem; }
  .landing-map-frame p { right: .6rem; bottom: .6rem; padding: .6rem .7rem; }
  .landing-map-frame p strong { font-size: .68rem; }
  .landing-world-principles { grid-template-columns: 1fr; }
  .landing-world-principles li { border-right: 0; border-bottom: 1px solid #353a36; }
  .landing-world-principles li:last-child { border-bottom: 0; }
  .landing-auth-grid { grid-template-columns: 1fr; }
  .landing-auth-card { padding: 1.35rem; }
  .landing-auth-card input:not([type="checkbox"]), .landing-submit { min-height: 48px; }
}
@media (max-width: 390px) {
  .landing-nav > a:not(.landing-nav-cta) { display: none; }
  .landing-era { gap: .45rem; font-size: .58rem; }
  .landing-era i { width: 1.1rem; }
  .rebirth-landing .landing-hero h1 { font-size: 3.15rem; }
  .landing-map-frame p { position: static; margin-top: .25rem; }
  .landing-timeline li { grid-template-columns: 3.7rem minmax(0, 1fr); gap: .85rem; }
  .landing-timeline time { width: 3.7rem; }
  .landing-timeline::before { left: 1.85rem; }
}
@media (prefers-reduced-motion: reduce) {
  .landing-hero::before { animation: none; }
}
.editorial-page { max-width: 1080px; margin: 0 auto; color: #38372f; font: 1.02rem/1.78 Georgia, "Times New Roman", serif; }
.editorial-switcher { display: flex; justify-content: flex-end; gap: 0; margin: 0 0 .8rem; font-family: Arial, sans-serif; }
.editorial-switcher a { display: inline-flex; min-width: 7rem; min-height: 44px; align-items: center; justify-content: center; padding: .65rem 1rem; color: #d9d7cf; background: #292d29; border-right: 1px solid #454b45; font: 900 .65rem/1 Arial, sans-serif; letter-spacing: .11em; text-transform: uppercase; }
.editorial-switcher a:first-child { border-left: 1px solid #454b45; }
.editorial-switcher a:hover, .editorial-switcher a[aria-current="page"] { color: #17120b; background: var(--brand-orange); text-decoration: none; }
.editorial-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-bottom: 3rem; color: #d9d7cf; background: #292d29; border-top: 1px solid #444a44; }
.editorial-facts div { min-width: 0; padding: 1.15rem 1.3rem; border-right: 1px solid #444a44; }
.editorial-facts div:last-child { border-right: 0; }
.editorial-facts span, .editorial-facts strong { display: block; }
.editorial-facts span { color: #8e938c; font: 900 .57rem/1 Arial, sans-serif; letter-spacing: .14em; text-transform: uppercase; }
.editorial-facts strong { margin-top: .45rem; color: #f1ece2; font: 900 .78rem/1.35 Arial, sans-serif; letter-spacing: .035em; text-transform: uppercase; overflow-wrap: anywhere; }
.editorial-layout { display: grid; grid-template-columns: 205px minmax(0, 72ch); justify-content: center; gap: clamp(2rem, 5vw, 4.5rem); }
.game-shell .editorial-page .article-index { display: flex; align-self: start; flex-direction: column; position: sticky; top: 1rem; margin: 0; padding: 0; overflow: hidden; background: #292d29; border: 1px solid #414741; box-shadow: 0 12px 28px rgba(38,30,19,.15); }
.game-shell .editorial-page .article-index > strong { padding: 1rem; color: var(--brand-orange); background: #202420; border-bottom: 1px solid #414741; font: 900 .58rem/1 Arial, sans-serif; letter-spacing: .17em; text-transform: uppercase; }
.game-shell .editorial-page .article-index a { display: flex; min-height: 44px; align-items: center; padding: .72rem 1rem; color: #d9d7cf; background: transparent; border: 0; border-bottom: 1px solid #414741; font: 900 .63rem/1.2 Arial, sans-serif; letter-spacing: .07em; text-transform: uppercase; white-space: normal; }
.game-shell .editorial-page .article-index a:last-child { border-bottom: 0; }
.game-shell .editorial-page .article-index a:hover { color: #17120b; background: var(--brand-orange); text-decoration: none; }
.game-shell .editorial-page .article-index a:focus-visible { position: relative; z-index: 1; outline: 3px solid #fff1ad; outline-offset: -3px; }
.editorial-copy { min-width: 0; counter-reset: editorial-section; }
.editorial-copy > section { position: relative; scroll-margin-top: 1.5rem; padding: 0 0 2.8rem; margin: 0 0 2.8rem; border-bottom: 1px solid var(--line); counter-increment: editorial-section; }
.editorial-copy > section:last-of-type { border-bottom: 0; }
.editorial-copy h2 { margin: 0 0 1.15rem; color: #292d29; font: 900 clamp(1.55rem, 3.4vw, 2.25rem)/1.05 "Arial Narrow", Impact, Arial, sans-serif; letter-spacing: .02em; text-transform: uppercase; }
.editorial-copy p { margin: 0 0 1.2rem; }
.editorial-copy a { font-family: Arial, sans-serif; font-weight: 800; }
.source-kind { display: inline-flex; margin: 0 0 .8rem !important; padding: .38rem .62rem; color: #3c3328; background: var(--surface-soft); border: 1px solid var(--line); border-left: 4px solid var(--brand-orange); border-radius: 0; font: 900 .64rem/1.2 Arial, sans-serif; letter-spacing: .07em; text-transform: uppercase; }
.source-kind.operator-account { color: #633d18; background: #f0dfc3; border-left-color: var(--rust); }
.history-quote { position: relative; margin: 1.6rem 0 0; padding: clamp(1.25rem, 3vw, 2rem); background: #eee2ca; box-shadow: inset 6px 0 0 var(--brand-orange), 0 12px 28px rgba(63,49,29,.08); }
.history-quote blockquote { margin: 0; }
.history-quote blockquote p { font-size: 1.08rem; line-height: 1.72; }
.history-quote blockquote p:last-child { margin-bottom: 0; }
.history-quote figcaption { margin-top: 1.35rem; padding-top: .9rem; color: #6a5840; font: 800 .7rem/1.45 Arial, sans-serif; letter-spacing: .025em; }
.history-quote figcaption strong { color: #34291d; }
.history-timeline { position: relative; }
.history-timeline > section { padding-left: 3.1rem; }
.history-timeline > section::before { content: ''; position: absolute; top: .35rem; left: .36rem; width: .78rem; height: .78rem; background: var(--brand-orange); box-shadow: 0 0 0 7px var(--brand-paper); transform: rotate(45deg); }
.history-timeline > section::after { content: counter(editorial-section, decimal-leading-zero); position: absolute; top: 1.75rem; left: 0; color: #8c4b00; font: 900 .59rem/1 Arial, sans-serif; letter-spacing: .08em; }
.history-timeline::before { content: ''; position: absolute; top: .45rem; bottom: 3rem; left: .73rem; width: 1px; background: var(--line); }
.source-notes ol { display: grid; gap: .6rem; margin: 1.4rem 0; padding: 0; list-style: none; counter-reset: source-record; }
.source-notes li { position: relative; min-width: 0; padding: .9rem 1rem .9rem 3.25rem; background: var(--surface); border: 1px solid #d6c8ae; counter-increment: source-record; }
.source-notes li::before { content: counter(source-record, decimal-leading-zero); position: absolute; top: .95rem; left: .9rem; color: #8c4b00; font: 900 .64rem/1 Arial, sans-serif; letter-spacing: .08em; }
.source-notes a { overflow-wrap: anywhere; }
.legal-summary, .legal-notice { padding: 1.15rem 1.3rem; color: #332c22; background: var(--surface-soft); border: 1px solid var(--line); border-left: 6px solid var(--brand-orange); border-radius: 0; }
.editorial-page > .legal-summary { max-width: 900px; margin: 0 auto 3rem; font-size: 1rem; }
.legal-summary strong { color: #27221b; }
.legal-clauses > section h2 { padding-left: 1rem; border-left: 4px solid var(--brand-orange); }
.legal-identity, .receipt-grid { display: grid; grid-template-columns: minmax(130px, .35fr) 1fr; gap: .6rem 1rem; padding: 1rem; background: rgba(255,255,255,.6); border: 1px solid var(--line); }
.legal-identity { margin-top: 1.4rem; padding: 1.25rem; background: var(--surface); box-shadow: 0 10px 24px rgba(64,51,31,.08); }
.legal-identity dt, .receipt-grid dt { color: var(--muted); font: 900 .65rem Arial, sans-serif; letter-spacing: .08em; text-transform: uppercase; }
.legal-identity dd, .receipt-grid dd { margin: 0; overflow-wrap: anywhere; }
.editorial-document-note { margin: 0; padding: 1rem 1.1rem; color: var(--muted); background: #e7dcc6; border-top: 3px solid #292d29; font: 800 .72rem/1.5 Arial, sans-serif; letter-spacing: .025em; }
@media (max-width: 820px) {
  .editorial-switcher { justify-content: stretch; }
  .editorial-switcher a { flex: 1; }
  .editorial-facts { margin-bottom: 1.5rem; }
  .editorial-layout { grid-template-columns: minmax(0, 1fr); gap: 2rem; }
  .game-shell .editorial-page .article-index { flex-direction: row; position: sticky; top: 0; z-index: 20; width: 100%; overflow-x: auto; }
  .game-shell .editorial-page .article-index > strong, .game-shell .editorial-page .article-index a { flex: 0 0 auto; min-height: 48px; border-right: 1px solid #414741; border-bottom: 0; }
  .editorial-copy > section { scroll-margin-top: 4.5rem; }
}
@media (max-width: 560px) {
  .editorial-facts { grid-template-columns: 1fr; }
  .editorial-facts div { padding: .85rem 1rem; border-right: 0; border-bottom: 1px solid #444a44; }
  .editorial-facts div:last-child { border-bottom: 0; }
  .editorial-page > .legal-summary { margin-bottom: 2rem; }
  .history-timeline > section { padding-left: 2.25rem; }
  .history-timeline > section::after { display: none; }
  .source-notes li { padding-left: 2.8rem; }
}
.check-row { display: flex !important; flex-direction: row !important; align-items: flex-start; gap: .6rem; font-weight: normal; }
.check-row input { flex: 0 0 auto; width: auto; margin-top: .2rem; }
.profession-kits-section { margin-bottom: 2.5rem; }
.profession-kits-section .section-heading { display: grid; grid-template-columns: minmax(0, 1fr) minmax(16rem, .8fr); align-items: end; gap: 1.5rem; margin-bottom: 1rem; }
.profession-kits-section .section-heading h2, .profession-kits-section .section-heading p { margin-bottom: 0; }
.profession-kits { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.profession-kit { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 1rem 1.5rem; padding: 1.2rem; background: rgba(255,255,255,.74); border-top: 4px solid var(--brand-orange); box-shadow: 0 10px 24px rgba(64,51,31,.07); }
.profession-kit.claimed { border-top-color: #718078; opacity: .78; }
.profession-kit header { grid-column: 1 / -1; }
.profession-kit header h2 { margin: .2rem 0 .35rem; }
.profession-kit header p:last-child { margin-bottom: 0; color: var(--muted); }
.profession-kit-mines { display: grid; gap: .35rem; align-content: start; margin: 0; padding: 0; list-style: none; }
.profession-kit-mines li { display: grid; grid-template-columns: 36px minmax(0, 1fr); align-items: center; gap: .6rem; padding: .38rem .45rem; background: rgba(231,220,198,.58); }
.profession-kit-mines img { width: 36px; height: 36px; object-fit: contain; }
.profession-kit-mines span { display: flex; flex-direction: column; min-width: 0; }
.profession-kit-mines small { color: var(--muted); }
.profession-kit-offer { display: flex; flex-direction: column; align-items: flex-end; justify-content: center; min-width: 11rem; text-align: right; }
.profession-kit-price { color: #193f4a; font: 900 1.35rem/1.1 "Arial Narrow", Impact, Arial, sans-serif; text-transform: uppercase; }
.profession-kit-price.free { color: #27613c; }
.profession-kit-offer > span, .profession-kit-offer > small { max-width: 15rem; color: var(--muted); }
.profession-kit form { grid-column: 1 / -1; }
.profession-kit form button { width: 100%; }
.credit-bundles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.credit-bundle { display: flex; flex-direction: column; gap: .65rem; padding: 1.2rem; background: rgba(255,255,255,.72); border: 1px solid var(--line); }
.credit-bundle > strong { color: #193f4a; font-size: 1.55rem; }
.credit-bundle > span { color: var(--muted); font-size: 1.1rem; }
.credit-bundle form { display: flex; flex-direction: column; gap: .75rem; margin-top: auto; padding-top: .6rem; }
.payment-status { display: inline-block; padding: .18rem .48rem; border-radius: 999px; background: #ddd; text-transform: capitalize; }
.payment-completed { color: #174f31; background: #cfe8d9; }
.payment-review, .payment-reversed, .payment-refunded, .payment-denied, .payment-failed { color: #702a20; background: #efd4cf; }
.receipt { max-width: 760px; margin: 0 auto; }
.bundle-admin-table input, .bundle-admin-table textarea { box-sizing: border-box; width: 100%; min-width: 90px; }
.profession-kit-admin-table { min-width: 1050px; }
.profession-kit-admin-table td { vertical-align: top; }
.profession-kit-admin-table td > small { display: block; max-width: 18rem; margin-top: .35rem; color: var(--muted); }
@media (max-width: 760px) { .game-shell .page-title { align-items: flex-start; grid-template-columns: 1fr; } .auth-grid, .item-grid, .trade-forms, .loadout-list, .detonator-grid, .gadget-card, .meld-recipe ul, .profession-grid, .worker-market, .factory-action, .chat-row, .oil-deploy, .oil-advanced, .report-filter, .container-grid, .fitting-grid, .vehicle-send, .ratings-grid, .account-grid, .stone-grid, .stone-progress, .profile-inventory-filter, .item-picker-grid, .oil-form-fields { grid-template-columns: 1fr; } .factory-action .item-picker, .factory-action > button { grid-column: 1; } .mine, .shop-card, .vehicle-card { grid-template-columns: 96px 1fr; } .mine-actions, .shop-card form, .vehicle-actions { grid-column: 2; } .mine-actions, .vehicle-actions { flex-wrap: wrap; } .detail, .loadout-layout { grid-template-columns: 1fr; } .item, .item-card-actions, .item-actions { align-items: stretch; grid-template-columns: 1fr; flex-direction: column; } .message-row { grid-template-columns: auto 1fr; } .message-row time, .message-actions { grid-column: 2; } .miner-card, .worker-card, .oil-summary, .container-card, .vehicle-hero { align-items: flex-start; flex-direction: column; } }
@media (max-width: 760px) { .meld-reputation { grid-template-columns: 1fr; } .meld-reputation aside { border-top: 1px solid #3e453e; border-left: 0; } }
@media (max-width: 760px) { .credit-bundles, .profession-kits, .profession-kits-section .section-heading, .legal-identity, .receipt-grid { grid-template-columns: 1fr; } .profession-kit { grid-template-columns: 1fr; } .profession-kit-offer { align-items: flex-start; text-align: left; } .legal-identity dd, .receipt-grid dd { margin-bottom: .55rem; } }
@media (max-width: 760px) {
  .capacity-budget dl { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .capacity-budget .capacity-total { grid-column: 1 / -1; }
  .vehicle-loadout .combat-stat-board > dl,
  .loadout-preview .combat-stat-board > dl { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .combat-stat-board > header { align-items: flex-start; flex-direction: column; }
  .vehicle-fittings .item-card-picker, .stacked-actions .item-card { grid-template-columns: minmax(0, 1fr); }
  .vehicle-fittings .item-card-actions, .stacked-actions .item-card-actions { width: 100%; }
  .vehicle-fittings .item-card-actions label, .vehicle-fittings .item-card-actions input[type="number"] { width: 100%; max-width: none; }
  .stacked-actions form { align-items: stretch; flex-direction: column; }
  .stacked-actions form button { width: 100%; }
  .customization-actions > button { flex: 1 1 12rem; }
  .cargo-loadout-table { display: table !important; overflow: visible !important; background: none; }
  .cargo-loadout-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); }
  .cargo-loadout-table tbody, .cargo-loadout-table tr, .cargo-loadout-table td { display: block; width: 100%; }
  .cargo-loadout-table tr { margin-bottom: .65rem; padding: .55rem; background: rgba(255,255,255,.72); border: 1px solid var(--line); }
  .cargo-loadout-table td { display: grid; grid-template-columns: 7.5rem minmax(0, 1fr); align-items: center; gap: .55rem; padding: .42rem; border: 0; }
  .cargo-loadout-table td::before { content: attr(data-label); color: var(--muted); font: bold .68rem Arial, sans-serif; text-transform: uppercase; }
  .cargo-loadout-table input[type="number"] { width: 100%; }
}
@media (max-width: 760px) {
  .page-title > div { max-width: 100%; }
  .market-controls { grid-template-columns: 1fr; }
  .market-controls label:first-child { grid-column: 1 / -1; }
  .market-controls button, .market-controls .button { width: 100%; text-align: center; }
  .market-item-card { grid-template-columns: minmax(0, 1fr); align-items: center; }
  .market-item-card .item-card-actions { align-items: center; justify-content: space-between; flex-direction: row; }
  .inventory-item-card .item-card-actions { display: grid; width: 100%; gap: .55rem; }
  .inventory-item-card .inventory-list-form, .inventory-item-card .inventory-list-all-form,
  .inventory-item-card .inventory-meld-form, .inventory-item-card .recycle-form,
  .inventory-item-card .recycle-all-form { flex: none; width: 100%; }
  .inventory-list-form { display: grid; grid-template-columns: minmax(0, 1fr) auto; }
  .inventory-list-all-form button, .inventory-meld-form button,
  .recycle-all-form button { width: 100%; }
  .recycle-form { display: grid; grid-template-columns: 4.5rem minmax(0, 1fr); }
  .recycle-form button { width: 100%; }
}
@media (max-width: 700px) {
  .meld-dialog { width: calc(100vw - 1rem); max-height: calc(100vh - 1rem); }
  .meld-dialog-head { min-height: 140px; align-items: center; gap: .8rem; padding: 1.25rem; text-align: left; }
  .meld-occasion-mark { width: 58px; height: 58px; font-size: 1.6rem; }
  .meld-dialog-head h2 { font-size: 1.8rem; }
  .meld-dialog-head #meld-dialog-intro { font-size: .82rem; }
  .meld-occasion-card { grid-template-columns: 1fr; }
  .meld-occasion-art { min-height: 280px; border-right: 0; border-bottom: 1px solid #555b55; }
  .meld-component-art { height: 105px; }.meld-component-art img { width: 74px; height: 74px; }
  .meld-facts, .meld-reveal-recipe ul { grid-template-columns: 1fr; }
  .meld-links .button { justify-content: center; width: 100%; }
  .meld-dialog-foot { align-items: stretch; flex-direction: column; }
  .meld-dialog-foot button { width: 100%; }
}
@media (max-width: 760px) { .profile-about, .avatar-editor, .stats-grid, .bot-builder { grid-template-columns: 1fr; } .avatar-editor form, .bot-builder ul { grid-template-columns: 1fr; } }
@media (max-width: 620px) {
  .oil-hex-summary-content { grid-template-columns: 1fr; }
  .oil-hex-summary-content dl > div { grid-template-columns: 1fr; gap: .1rem; }
  .oil-aircraft { grid-template-columns: 1fr; gap: .55rem; }
  .oil-aircraft > div { padding: .65rem 0 0; border-top: 1px solid #d8cbb4; border-left: 0; }
  .oil-aircraft > div:first-child { padding-top: 0; border-top: 0; }
}
@media (max-width: 760px) {
  .oil-facts { grid-template-columns: 1fr 1fr; }
  .oil-facts > div { border-bottom: 1px solid #414741; }
  .oil-facts > div:first-child { grid-column: 1 / -1; border-right: 0; }
  .oil-facts > div:nth-child(2), .oil-facts > div:last-child { border-bottom: 0; }
  .oil-facts dd { overflow: visible; font-size: .72rem; text-overflow: clip; white-space: normal; }
  .oil-briefing { grid-template-columns: 1fr; }
  .oil-original-panel { min-width: 0; overflow: hidden; }
  .oil-board-heading { min-width: 0; flex-direction: column; }
  .oil-board-controls { width: 100%; min-width: 0; justify-content: flex-start; }
  .oil-board-controls button { flex: 1 1 8rem; min-width: 0; }
  .oil-field-board-shell { max-width: 100%; }
  .oil-instructions ol { grid-template-columns: 1fr; }
  .oil-events > header { align-items: flex-start; flex-direction: column; gap: .6rem; }
  .oil-events > header > p { max-width: none; text-align: left; }
}
@media (max-width: 480px) {
}
@media (max-width: 520px) { .item-stat-grid { grid-template-columns: 1fr; } }
@media (max-width: 620px) { .vehicle-location-list li { grid-template-columns: 1fr; align-items: stretch; } }
@media (max-width: 760px) { .route-list { grid-template-columns: 1fr; } .route-map { margin-inline: 0; overflow-x: auto; } .route-map svg { width: 760px; max-width: none; } }

/* Compact masthead and a real secondary-menu disclosure on small screens. */
@media (max-width: 900px) {
  body.game-body { padding: 0; overflow-x: hidden; font-size: 15px; }
  #wrapper.node-wrapper.game-shell { width: 100%; border: 0; box-shadow: none; }
  .game-shell .game-header { flex-wrap: wrap; gap: 1rem; min-height: 0; padding: 1rem; }
  .site-wordmark strong { font-size: 1.12rem; }
  .site-wordmark small { font-size: .5rem; }
  .site-mark { width: 1.55rem; height: 1.55rem; }
  .site-mark::after { inset: 5px; }
  .site-wordmark > b { font-size: 1.6rem; }
  .game-shell #login { width: 100%; margin: 0; }
  .player-status { display: grid; grid-template-columns: minmax(8rem, .75fr) minmax(0, 1.7fr) auto; gap: .55rem; }
  .player-identity { min-width: 0; }
  .player-vitals { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); min-width: 0; }
  .player-vitals div, .player-vitals div:last-child { min-width: 0; padding: .5rem; }
  .player-vitals dd { overflow: hidden; text-overflow: ellipsis; }
  .guest-actions { width: auto !important; }
  #wrapper.game-shell #navcontainer { scrollbar-width: thin; }
  .game-shell #nav .city-name { display: none; }
  .game-shell #nav li { flex: 0 0 auto; }
  .game-shell #nav li a { min-width: 7.2rem; min-height: 58px; padding: .55rem .8rem; }
  .game-shell #divwrapper { display: block; min-height: 0; }
  .game-shell #left { width: 100%; background: #171a18; border-bottom: 1px solid #3b403b; }
  .navigation-ready .sidebar-toggle { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; width: 100%; padding: .85rem 1rem; color: #f0ece3; background: #202420; border: 0; border-bottom: 1px solid #3b403b; text-align: left; }
  .sidebar-toggle > span { color: var(--brand-orange); font: 900 .55rem/1 Arial, sans-serif; letter-spacing: .18em; text-transform: uppercase; }
  .sidebar-toggle > strong { grid-column: 1; margin-top: .35rem; font: 900 1rem/1 "Arial Narrow", Impact, Arial, sans-serif; letter-spacing: .04em; text-transform: uppercase; }
  .sidebar-toggle > b { grid-row: 1 / span 2; grid-column: 2; color: var(--brand-orange); font-size: 1.55rem; }
  .sidebar-context { grid-template-columns: auto repeat(3, minmax(0, 1fr)) auto; align-items: center; gap: .5rem 1rem; }
  .sidebar-location-value { grid-template-columns: 1fr; gap: .25rem; }
  .sidebar-map-link { align-self: stretch; align-items: center; margin: 0; padding: 0 0 0 1rem; border-top: 0; border-left: 1px solid rgba(23,18,11,.35); }
  .game-shell #navlist { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; padding: .45rem; }
  .side-nav-group { padding: .25rem; }
  .side-nav-group h2 { padding: .7rem .8rem .4rem; }
  .game-shell #navlist a { min-height: 46px; padding: .72rem .75rem .72rem 1.35rem; background: #1c201c; border-bottom: 1px solid #303530; }
  .game-shell #navlist a::before { left: .85rem; }
  .game-shell #content { width: 100%; max-width: none; margin: 0; padding: 2rem clamp(.85rem, 4vw, 1.4rem) 3.5rem; }
  .game-shell .page-title { grid-template-columns: 1fr; gap: 1rem; margin-bottom: 1.6rem; }
  .game-shell .page-title > p, .game-shell .page-title > a { justify-self: start; }
  .game-shell .site-footer, .landing-shell .site-footer { display: grid; grid-template-columns: 1fr; justify-items: start; gap: 1rem; padding: 1.5rem 1rem; text-align: left; }
  .game-shell .site-footer nav, .landing-shell .site-footer nav { justify-content: flex-start; width: 100%; }
  .landing-shell .site-footer p { text-align: left; }
}
@media (max-width: 520px) {
  .flash-notice { top: .5rem; right: .5rem; width: calc(100vw - 1rem); max-height: calc(100vh - 1rem); padding: .6rem; }
  #flash-dialog-items { max-height: min(62vh, 440px); }
  #flash-dialog-items > li > a, .flash-item-link { grid-template-columns: 30px minmax(0, 1fr) auto; gap: .45rem; padding: .45rem .25rem; }
  .flash-item-icon, #flash-dialog-items > li img { width: 30px; height: 30px; }
  .site-wordmark small { display: none; }
  .player-status { grid-template-columns: minmax(0, 1fr) auto; }
  .player-identity { grid-column: 1; }
  .player-status form { grid-column: 2; grid-row: 1; }
  .player-vitals { grid-column: 1 / -1; }
  .game-shell #navlist { grid-template-columns: 1fr; }
  .sidebar-context { grid-template-columns: 1fr; }
  .sidebar-map-link { padding: .65rem 0 0; border-top: 1px solid rgba(23,18,11,.35); border-left: 0; }
}

/* Keep the immersive public landing page outside the application shell. */
body.landing-body { margin: 0; padding: 0; overflow-x: hidden; background: #090b0a; }
#wrapper.node-wrapper.landing-shell { background-color: #090b0a; background-image: none; }
#wrapper.node-wrapper.landing-shell > .game-header,
#wrapper.node-wrapper.landing-shell > #navcontainer { display: none !important; }
#wrapper.node-wrapper.landing-shell #divwrapper { position: static; width: 100%; overflow: visible; }
#wrapper.node-wrapper.landing-shell .guest-content #content { width: 100%; min-height: 0; margin: 0; padding: 0; }
.rebirth-landing h2 { width: auto; max-width: none; overflow: visible; background: none; border: 0; }
.rebirth-landing header:not(.landing-masthead) { display: block; width: auto; height: auto; min-height: 0; margin: 0; padding: 0; background: none; border: 0; }
.rebirth-landing .landing-masthead { display: flex; align-items: center; justify-content: space-between; flex-direction: row; width: min(1440px, 100%); height: auto; min-height: 0; margin: 0; padding: 1.45rem clamp(1.25rem, 5vw, 4.5rem); background: transparent; }
.rebirth-landing .landing-register-card h3 { color: #f0ece3; }
.rebirth-landing .landing-login-card h3 { color: #3b352d; }
.landing-shell .site-footer { min-height: 0; background: #080a09; }
@media (max-width: 760px) {
  #wrapper.node-wrapper.landing-shell .guest-content #content { padding: 0; }
  .rebirth-landing .landing-masthead { align-items: center; flex-direction: row; padding: 1rem; }
  .landing-title-return strong { font-size: 3.1em; white-space: nowrap; }
}
/* Global player-driven crypto order books and completed-trade price charts. */
#content .item-grid:has(> .crypto-wallet-coin) { display: flex; grid-template-columns: none; flex-wrap: wrap; gap: .4rem; }
#content .item-grid > .crypto-wallet-coin { display: inline-grid; grid-template-columns: 26px minmax(4.5rem, auto) auto; align-items: center; gap: .45rem; width: auto; min-width: 10.5rem; max-width: 15rem; margin: 0; padding: .38rem .55rem; color: var(--ink, #28231d); background: rgba(255,255,255,.68); border: 1px solid var(--line, #c9b98f); border-left: 3px solid var(--rarity, #c9b98f); border-radius: 4px; text-decoration: none; }
.crypto-wallet-coin:hover, .crypto-wallet-coin:focus-visible { background: #fff; border-color: var(--brand-orange, #d96716); }
#content .item-grid > .crypto-wallet-coin img { display: block; width: 26px; min-width: 26px; max-width: 26px; height: 26px; min-height: 26px; max-height: 26px; margin: 0; padding: 0; object-fit: contain; }
.crypto-wallet-coin span { display: grid; line-height: 1.05; }
.crypto-wallet-coin strong { font-size: .78rem; }
.crypto-wallet-coin small { color: var(--muted, #746b60); font-size: .62rem; }
.crypto-wallet-coin b { margin-left: .35rem; font-size: .82rem; font-variant-numeric: tabular-nums; }
.crypto-market-grid { display: grid; gap: 1.25rem; margin-top: 1rem; }
.crypto-market { overflow: hidden; border: 1px solid var(--line, #c9b98f); padding: clamp(.8rem, 2vw, 1.15rem); background: var(--panel, #fffdf5); }
.crypto-market > header { display: flex; gap: 1rem; justify-content: space-between; align-items: end; }
.crypto-market > header h2 { margin: 0; }
.crypto-market-header { padding-bottom: .8rem; border-bottom: 1px solid var(--line, #c9b98f); }
.crypto-quote-strip { display: grid; grid-template-columns: repeat(6, minmax(4.5rem, auto)); gap: 1px; margin: 0; background: var(--line, #c9b98f); border: 1px solid var(--line, #c9b98f); }
.crypto-quote-strip > div { min-width: 0; padding: .48rem .6rem; background: #fffaf0; }
.crypto-quote-strip dt { color: var(--muted); font: 800 .56rem/1.15 Arial, sans-serif; letter-spacing: .08em; text-transform: uppercase; }
.crypto-quote-strip dd { margin: .2rem 0 0; color: var(--ink); font-size: .83rem; font-weight: 900; font-variant-numeric: tabular-nums; }
.crypto-chart-figure { margin: 1rem 0; border: 1px solid rgba(8,2,37,.12); background: linear-gradient(180deg, #fff, #f8f6ef); }
.crypto-chart { display: block; width: 100%; min-height: 12rem; color: #c64b20; }
.crypto-chart text { fill: #6f6f6f; font: 12px Aeonik, Arial, sans-serif; }
.crypto-chart-grid line { stroke: rgba(8,2,37,.13); stroke-width: 1; vector-effect: non-scaling-stroke; }
.crypto-price-area-start { stop-color: #59615e; stop-opacity: .24; }
.crypto-price-area-end { stop-color: #59615e; stop-opacity: .025; }
.crypto-price-line { fill: none; stroke: #414946; stroke-width: 2.25; stroke-linecap: round; stroke-linejoin: round; vector-effect: non-scaling-stroke; }
.crypto-price-point { fill: transparent; stroke: transparent; pointer-events: all; }
.crypto-price-reference { stroke: rgba(65,73,70,.58); stroke-width: 1; stroke-dasharray: 2 7; vector-effect: non-scaling-stroke; }
.crypto-chart .crypto-vwap-label { fill: #414946; font-weight: 800; paint-order: stroke; stroke: rgba(255,255,255,.86); stroke-width: 4px; stroke-linejoin: round; }
.crypto-chart-figure figcaption { display: flex; flex-wrap: wrap; gap: .5rem 1.25rem; align-items: center; padding: .65rem 1rem; border-top: 1px solid rgba(8,2,37,.1); color: #6f6f6f; }
.crypto-chart-figure figcaption span { display: inline-flex; gap: .35rem; white-space: nowrap; }
.crypto-chart-figure figcaption strong { color: #080225; }
.crypto-chart-figure figcaption .crypto-chart-change { margin-left: auto; }
.crypto-chart-change.up strong { color: #1d6c49; }
.crypto-chart-change.down strong { color: #a23528; }
.crypto-chart-empty { min-height: 9rem; display: grid; place-content: center; gap: .35rem; padding: 1rem; text-align: center; background: rgba(0,0,0,.035); margin: .75rem 0; }
.crypto-chart-empty span { color: var(--muted); }
.market-dealing-desk { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .75rem; margin: 1rem 0 1.25rem; }
.market-ticket { display: flex; min-width: 0; flex-direction: column; align-items: stretch; gap: .55rem; margin: 0; padding: .9rem; background: #fffaf0; border: 1px solid var(--line); border-top: 4px solid #4d504b; }
.market-ticket-buy { border-top-color: #2d7b55; }
.market-ticket-sell { border-top-color: #b74331; }
.market-ticket .eyebrow, .market-ticket h2, .market-ticket h3, .market-ticket p { margin: 0; }
.market-ticket h2, .market-ticket h3 { font-size: 1.05rem; }
.market-ticket form, form.market-ticket { margin: 0; }
.market-ticket label { margin: 0; }
.market-ticket label + label { margin-top: .15rem; }
.market-ticket button { width: 100%; margin-top: auto; }
.market-ticket small, .market-ticket-empty { color: var(--muted); font-size: .72rem; }
.market-ticket-empty { margin: auto 0; font-family: Georgia, serif; font-style: italic; }
.crypto-recent-sales { margin-top: 1rem; border-top: 1px solid var(--line); }
.crypto-recent-sales summary { padding: .75rem 0; cursor: pointer; font-weight: 900; }
.crypto-books { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; overflow-x: auto; }
.crypto-books table { width: 100%; }
@media (max-width: 1050px) {
  .crypto-market > header { align-items: start; flex-direction: column; }
  .crypto-quote-strip { width: 100%; grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .market-dealing-desk { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  .crypto-books, .market-dealing-desk { grid-template-columns: 1fr; }
  .crypto-quote-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .crypto-chart { min-width: 0; min-height: 0; height: 9rem; }
  .crypto-chart text { display: none; }
  .crypto-chart-figure { overflow: visible; }
  .crypto-chart-figure figcaption .crypto-chart-change { margin-left: 0; }
  .inventory-region, .inventory-city { padding: .7rem; }
  .inventory-region > header, .inventory-city > header { align-items: flex-start; flex-direction: column; }
}

/* Systems handbook and alphabetical live-catalogue Field guide. */
.glossary-page { max-width: 1120px; margin: 0 auto; }
.glossary-summary { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 0 0 1rem; color: #ebe7de; background: #292d29; border: 1px solid #414741; }
.glossary-summary > div { min-width: 0; padding: .95rem 1.1rem; border-right: 1px solid #414741; }
.glossary-summary > div:last-child { border-right: 0; }
.glossary-summary span, .glossary-summary strong { display: block; }
.glossary-summary span { color: #92988f; font: 900 .56rem/1 Arial, sans-serif; letter-spacing: .16em; text-transform: uppercase; }
.glossary-summary strong { margin-top: .42rem; color: #f5efe4; font: 900 .86rem/1.2 Arial, sans-serif; letter-spacing: .035em; text-transform: uppercase; }
.glossary-index { display: flex; align-items: stretch; gap: 0; margin: 0 0 .85rem; overflow-x: auto; color: #d9d7cf; background: #202420; border: 1px solid #414741; }
.glossary-index strong, .glossary-index a { display: grid; min-width: 44px; min-height: 44px; place-items: center; margin: 0; padding: .7rem .8rem; border-right: 1px solid #414741; font: 900 .65rem/1 Arial, sans-serif; letter-spacing: .1em; text-transform: uppercase; }
.glossary-index strong { min-width: 6rem; color: var(--brand-orange); }
.glossary-index a { color: #ebe7de; text-decoration: none; }
.glossary-index a:hover, .glossary-index a:focus-visible { color: #17120b; background: var(--brand-orange); }
.glossary-note { margin: 0 0 2rem; color: var(--muted); font-size: .8rem; }
.guide-systems { margin: 2.2rem 0 3.5rem; }
.guide-system-index { display: flex; flex-wrap: wrap; gap: .35rem 1rem; margin: 0 0 1.15rem; padding: .85rem 0; border-block: 1px solid var(--line); }
.guide-system-index a { padding: .2rem 0; color: #604314; font: 900 .64rem/1.25 Arial, sans-serif; letter-spacing: .045em; text-transform: uppercase; }
.guide-system-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.guide-system-card { display: flex; min-width: 0; flex-direction: column; padding: 1.15rem; background: rgba(255,255,255,.72); border: 1px solid var(--line); border-top: 4px solid var(--brand-orange); box-shadow: 0 10px 24px rgba(63,49,29,.07); scroll-margin-top: 1rem; }
.guide-system-card > header { display: flex; min-height: 3.1rem; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: .85rem; padding-bottom: .75rem; border-bottom: 1px solid var(--line); }
.guide-system-card .eyebrow { margin-bottom: .25rem; }
.guide-system-card h3 { margin: 0; color: #292d29; font: 900 1.2rem/1.08 "Arial Narrow", Impact, Arial, sans-serif; letter-spacing: .025em; text-transform: uppercase; }
.guide-system-card > p { margin: 0 0 1rem; line-height: 1.55; }
.guide-system-card dl { display: grid; gap: .7rem; margin: auto 0 0; padding-top: .85rem; border-top: 1px solid #dfd3bd; }
.guide-system-card dl > div { display: grid; grid-template-columns: 7rem minmax(0, 1fr); gap: .75rem; }
.guide-system-card dt { color: #775019; font: 900 .57rem/1.35 Arial, sans-serif; letter-spacing: .08em; text-transform: uppercase; }
.guide-system-card dd { min-width: 0; margin: 0; font-size: .78rem; line-height: 1.48; }
.guide-system-link { align-self: flex-start; margin-top: 1rem; font: 900 .66rem/1.2 Arial, sans-serif; letter-spacing: .045em; text-transform: uppercase; }
.guide-system-glyph, .guide-system-image, .guide-system-art-pair span, .guide-creature-strip span { display: grid; flex: 0 0 auto; place-items: center; }
.guide-system-glyph { width: 2.8rem; height: 2.8rem; color: #171a18; background: #f39a18; font: 900 2rem/1 Arial, sans-serif; clip-path: polygon(50% 0, 100% 24%, 90% 100%, 10% 100%, 0 24%); }
.guide-system-glyph-letter { font-size: 1.35rem; }
.guide-system-image { width: 3rem; height: 3rem; background: #202420; border-radius: 50%; }
.guide-system-image img { width: 2.2rem; height: 2.2rem; object-fit: contain; }
.guide-system-art-pair { display: flex; flex: 0 0 auto; gap: .35rem; }
.guide-system-art-pair span { width: 3.25rem; height: 3.25rem; }
.guide-system-art-pair img { width: 3rem; height: 3rem; object-fit: contain; }
.guide-system-art-trio { display: flex; flex: 0 0 auto; gap: .15rem; }
.guide-system-art-trio span { display: grid; width: 2.4rem; height: 2.4rem; place-items: center; }
.guide-system-art-trio img { width: 2.3rem; height: 2.3rem; object-fit: contain; }
.guide-creature-strip { display: grid; flex: 0 0 auto; grid-template-columns: repeat(3, 1.5rem); gap: .15rem; }
.guide-creature-strip span { width: 1.5rem; height: 1.5rem; background: #202420; border-radius: 50%; }
.guide-creature-strip img { width: 1.2rem; height: 1.2rem; object-fit: contain; }
.guide-catalogue { scroll-margin-top: 1rem; }
.glossary-list { display: grid; gap: 2.5rem; }
.glossary-letter { display: grid; grid-template-columns: 72px minmax(0, 1fr); gap: 1.25rem; scroll-margin-top: 1rem; }
.glossary-letter > header { align-self: start; position: sticky; top: 1rem; padding-top: .2rem; border-top: 5px solid var(--brand-orange); }
.glossary-letter > header strong, .glossary-letter > header span { display: block; }
.glossary-letter > header strong { color: #292d29; font: 900 3rem/.95 "Arial Narrow", Impact, Arial, sans-serif; text-transform: uppercase; }
.glossary-letter > header span { margin-top: .5rem; color: var(--muted); font: 900 .56rem/1.3 Arial, sans-serif; letter-spacing: .08em; text-transform: uppercase; }
.glossary-letter > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.glossary-entry { display: flex; min-width: 0; flex-direction: column; padding: 1.1rem; background: rgba(255,255,255,.72); border: 1px solid var(--line); border-top: 4px solid #4d504b; box-shadow: 0 8px 20px rgba(63,49,29,.06); scroll-margin-top: 1rem; }
.glossary-entry > header { display: flex; align-items: start; justify-content: space-between; gap: .8rem; margin: 0 0 .8rem; padding: 0 0 .7rem; border-bottom: 1px solid var(--line); }
.glossary-entry h3 { margin: 0; color: #292d29; font: 900 1.15rem/1.1 "Arial Narrow", Impact, Arial, sans-serif; letter-spacing: .025em; text-transform: uppercase; }
.glossary-entry > header span { flex: 0 0 auto; padding: .3rem .45rem; color: #3d3529; background: var(--surface-soft); border: 1px solid var(--line); font: 900 .57rem/1 Arial, sans-serif; letter-spacing: .07em; text-transform: uppercase; }
.glossary-entry > p { margin: 0 0 1rem; line-height: 1.55; }
.glossary-entry dl { display: grid; grid-template-columns: 6.5rem minmax(0, 1fr); gap: .55rem .75rem; margin: auto 0 0; padding-top: .8rem; border-top: 1px solid #dfd3bd; }

/* The Quiet Shift Casino: a bright, physical cabinet inside the mine network. */
.casino-page { --casino-gold: #ffc642; --casino-amber: #e77916; --casino-ink: #090716; width: 100%; margin: 0; padding: 0; }
.casino-page > :not(.page-title) .eyebrow { color: var(--casino-gold); }
.casino-stats { display: grid; grid-template-columns: repeat(4, minmax(5.5rem, 1fr)); width: 100%; box-sizing: border-box; margin: 0 0 1.5rem; color: #f8f1dc; background: linear-gradient(135deg, #130c25, #080713); border: 1px solid #3a3048; box-shadow: 0 10px 24px rgba(15,7,26,.16); }
.casino-stats div { padding: .7rem .9rem; border-right: 1px solid #3a3048; }
.casino-stats div:last-child { border-right: 0; }
.casino-stats dt { color: #8f849e; font: 900 .52rem/1 Arial, sans-serif; letter-spacing: .12em; text-transform: uppercase; }
.casino-stats dd { margin: .35rem 0 0; color: var(--casino-gold); font: 900 1.25rem/1 "Arial Narrow", Impact, Arial, sans-serif; font-variant-numeric: tabular-nums; }
.casino-machine { position: relative; width: 100%; box-sizing: border-box; margin: 0 0 1.5rem; padding: 8px; background: linear-gradient(110deg, #8b5619, #ffe39a 14%, #9c5b13 31%, #f6c85f 55%, #6d3b0d 100%); border: 2px solid #ffd670; border-radius: 20px 20px 14px 14px; box-shadow: 0 0 0 4px #271628, 0 0 0 6px #6e455f, 0 16px 34px rgba(0,0,0,.52), inset 0 0 8px #fff4bc; }
.casino-marquee { position: relative; display: grid; grid-template-columns: 1fr auto; align-items: center; gap: .8rem; min-height: 48px; padding: .7rem 1.4rem; overflow: hidden; color: #fff6cc; background: radial-gradient(circle at 50% 15%, #6a1f3e, #21091d 70%); border: 2px solid #b9741e; border-radius: 12px 12px 4px 4px; box-shadow: inset 0 0 20px rgba(0,0,0,.7); }
.casino-marquee::before { content: ''; position: absolute; inset: 5px; pointer-events: none; background: radial-gradient(circle, #fffbe0 0 2px, #ffbc2e 3px 5px, transparent 6px) 0 0 / 25px 25px; -webkit-mask: linear-gradient(#000 0 0) top/100% 13px no-repeat, linear-gradient(#000 0 0) bottom/100% 13px no-repeat, linear-gradient(#000 0 0) left/13px 100% no-repeat, linear-gradient(#000 0 0) right/13px 100% no-repeat; mask: linear-gradient(#000 0 0) top/100% 13px no-repeat, linear-gradient(#000 0 0) bottom/100% 13px no-repeat, linear-gradient(#000 0 0) left/13px 100% no-repeat, linear-gradient(#000 0 0) right/13px 100% no-repeat; filter: drop-shadow(0 0 4px #ff9d00); }
.casino-marquee p { z-index: 1; margin: 0; font: 900 clamp(1.1rem, 2.5vw, 1.75rem)/1 "Arial Narrow", Impact, Arial, sans-serif; letter-spacing: .08em; text-align: center; text-transform: uppercase; text-shadow: 0 2px 0 #3d0718, 0 0 12px #ff9e37; }
.casino-marquee strong { z-index: 1; padding: .4rem .6rem; color: #311004; background: var(--casino-gold); font: 900 .56rem/1 Arial, sans-serif; letter-spacing: .1em; text-transform: uppercase; transform: rotate(2deg); }
.casino-machine-body { display: grid; grid-template-areas: "screen controls" "result controls"; grid-template-columns: minmax(0, 1.25fr) minmax(280px, .75fr); gap: .7rem; align-items: start; padding: .85rem; background: linear-gradient(130deg, #39122d, #130d24 38%, #24122c 100%); border: 2px solid #57374f; border-top: 0; }
.casino-screen-frame { position: relative; grid-area: screen; max-width: none; margin: 0; padding: .5rem; background: linear-gradient(145deg, #191720, #80706f 12%, #211923 24%, #050409 85%); border: 2px solid #9d7a55; border-radius: 10px; box-shadow: 0 8px 22px rgba(0,0,0,.5), inset 0 0 0 3px #06040a; }
.casino-reel-grid { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(var(--casino-grid-columns, 3), minmax(0, 1fr)); gap: 4px; overflow: hidden; background: #5e452b; border: 3px solid #0b0910; border-radius: 6px; }
.casino-reel-cell { display: grid; min-width: 0; min-height: 88px; place-items: center; align-content: center; position: relative; gap: .15rem; padding: .3rem .2rem; overflow: hidden; color: #211714; background: linear-gradient(180deg, #d7cab1 0%, #fffdf5 22%, #f1e5cb 74%, #b6a384 100%); border: 1px solid rgba(52,28,12,.25); box-shadow: inset 0 7px 12px rgba(255,255,255,.8), inset 0 -8px 14px rgba(86,44,15,.2); }
.casino-reel-cell::before, .casino-reel-cell::after { content: ''; position: absolute; right: 0; left: 0; height: 1px; background: rgba(67,39,21,.24); }
.casino-reel-cell::before { top: 13%; }
.casino-reel-cell::after { bottom: 13%; }
.casino-reel-cell img { z-index: 1; width: 48px; height: 48px; margin: 0; object-fit: contain; filter: drop-shadow(0 5px 4px rgba(45,25,18,.28)); transition: transform .2s ease; }
.casino-reel-cell strong { z-index: 1; max-width: 100%; overflow: hidden; font: 900 .58rem/1.05 Arial, sans-serif; letter-spacing: .025em; text-align: center; text-overflow: ellipsis; text-transform: uppercase; white-space: nowrap; }
.casino-reel-cell small { z-index: 1; color: #6d5a4b; font: 800 .43rem/1 Arial, sans-serif; letter-spacing: .07em; text-transform: uppercase; }
.casino-symbol-halo { position: absolute; width: 7rem; height: 7rem; background: radial-gradient(circle, color-mix(in srgb, var(--rarity-link-color, #d59629) 35%, transparent), transparent 68%); opacity: .48; }
.casino-bonus-cell { --bonus-color: #d84bff; color: #fff8db; background: radial-gradient(circle at 50% 43%, color-mix(in srgb, var(--bonus-color) 72%, #fff), #251033 57%, #090611 100%); border-color: color-mix(in srgb, var(--bonus-color) 70%, #fff); box-shadow: inset 0 0 22px color-mix(in srgb, var(--bonus-color) 34%, transparent), 0 0 12px color-mix(in srgb, var(--bonus-color) 32%, transparent); }
.casino-bonus-cell .casino-symbol-halo { background: radial-gradient(circle, color-mix(in srgb, var(--bonus-color) 52%, transparent), transparent 68%); opacity: .9; animation: casino-bonus-halo 1.1s ease-in-out infinite alternate; }
.casino-bonus-cell small { color: color-mix(in srgb, var(--bonus-color) 42%, #fff); }
.casino-bonus-shift-bell { --bonus-color: #35d9ff; }
.casino-bonus-twin-drill { --bonus-color: #ff8a2a; }
.casino-bonus-golden-fuse { --bonus-color: #ffe15b; }
.casino-bonus-glyph { z-index: 1; display: grid; width: 46px; height: 46px; place-items: center; color: #fff9d8; background: radial-gradient(circle, color-mix(in srgb, var(--bonus-color, #d84bff) 50%, #30133d), #13091e 72%); border: 2px solid var(--bonus-color, #d84bff); border-radius: 50%; box-shadow: 0 0 0 3px rgba(10,5,17,.72), 0 0 16px var(--bonus-color, #d84bff), inset 0 0 12px color-mix(in srgb, var(--bonus-color, #d84bff) 48%, transparent); font: 900 1.15rem/1 "Arial Narrow", Impact, Arial, sans-serif; text-shadow: 0 2px 3px #000; }
.casino-reel-cell.is-winning { z-index: 3; background: radial-gradient(circle, #fffbe2, #ffd65a 70%, #f08c12); animation: casino-win-pulse 1.05s ease-in-out infinite alternate; box-shadow: inset 0 0 12px #fff, 0 0 17px 4px #ffc126; }
.casino-reel-cell.is-winning img { transform: scale(1.09); }
.casino-payline { position: absolute; z-index: 2; top: 50%; left: 8%; width: 84%; height: 3px; pointer-events: none; background: linear-gradient(90deg, transparent, rgba(255,64,103,.8), transparent); opacity: .15; transform-origin: center; }
.casino-payline-a { transform: rotate(25deg); }
.casino-payline-b { transform: rotate(-25deg); }
.casino-ready { grid-area: result; align-self: center; margin: .35rem auto; color: #9d8fa8; font: 900 .58rem/1.35 Arial, sans-serif; letter-spacing: .13em; text-align: center; text-transform: uppercase; }
.casino-result { position: relative; grid-area: result; width: 100%; max-width: none; margin: 0; padding: .7rem .75rem; color: #d4c7d8; background: rgba(4,2,9,.68); border: 1px solid #4c3a55; text-align: center; }
.casino-result.is-replaying > :not(.casino-replay-status) { visibility: hidden; }
.casino-replay-status { position: absolute; inset: 0; z-index: 2; display: grid; place-items: center; margin: 0; padding: 1rem; color: #ffe15b; background: linear-gradient(110deg, rgba(39,10,49,.96), rgba(12,9,28,.96)); font: 900 .72rem/1.45 Arial, sans-serif; letter-spacing: .1em; text-align: center; text-transform: uppercase; }
.casino-replay-status[hidden] { display: none; }
.casino-result-kicker { margin: 0; color: #a99ab1; font: 900 .57rem/1 Arial, sans-serif; letter-spacing: .18em; text-transform: uppercase; }
.casino-result > strong, .casino-result > span { display: block; }
.casino-result > strong { margin: .28rem 0; color: #fff5dc; font: 900 clamp(1.1rem, 2vw, 1.55rem)/1 "Arial Narrow", Impact, Arial, sans-serif; letter-spacing: .035em; text-transform: uppercase; }
.casino-result > span { font-size: .65rem; }
.casino-result.is-win { border-color: #ae7727; box-shadow: inset 0 0 22px rgba(255,177,47,.09); }
.casino-result.is-win > strong { color: var(--casino-gold); text-shadow: 0 0 12px rgba(255,180,48,.42); }
.casino-result.is-jackpot { color: #34150b; background: linear-gradient(100deg, #f38b13, #fff0a5, #f3a414); border: 2px solid #fff1a6; box-shadow: 0 0 30px rgba(255,182,34,.55); }
.casino-result.is-jackpot .casino-result-kicker, .casino-result.is-jackpot > strong { color: #4b1b0b; }
.casino-result ul { display: grid; gap: 1px; max-width: 30rem; margin: .8rem auto 0; padding: 0; list-style: none; background: rgba(255,255,255,.12); }
.casino-result li { display: flex; justify-content: space-between; gap: 1rem; padding: .38rem .55rem; background: rgba(13,8,19,.76); color: #ddd2df; font-size: .67rem; }
.casino-result li b small { margin-left: .3rem; color: #8e8096; font-size: .5rem; font-weight: 900; letter-spacing: .06em; text-transform: uppercase; }
.casino-result.is-jackpot li { background: rgba(67,25,8,.78); color: #fff5db; }
.casino-result-details { max-width: 36rem; margin: .55rem auto 0; text-align: left; }
.casino-result-details > summary { cursor: pointer; color: #d7bddc; font: 900 .55rem/1.2 Arial, sans-serif; letter-spacing: .08em; text-align: center; text-transform: uppercase; }
.casino-result-details[open] > summary { margin-bottom: .45rem; }
.casino-bonus-summary { display: flex; max-width: 36rem; align-items: center; justify-content: center; gap: .55rem; margin: .55rem auto 0; padding: .45rem .55rem; color: #f9ddff; background: linear-gradient(90deg, rgba(65,17,82,.7), rgba(35,28,75,.7)); border: 1px solid #8a4b9d; }
.casino-bonus-summary strong { color: #ffe15b; font: 900 .78rem/1 Arial, sans-serif; text-transform: uppercase; }
.casino-bonus-summary span { font-size: .63rem; }
.casino-respin-trail { display: grid; grid-template-columns: repeat(auto-fit, minmax(88px, 1fr)); gap: 3px; max-width: 42rem; margin: .65rem auto 0; }
.casino-respin-trail > div { display: grid; gap: .18rem; padding: .5rem; background: #110d19; border: 1px solid #33283e; }
.casino-respin-trail > div.has-bonus { background: linear-gradient(145deg, #361541, #171226); border-color: #8a4b9d; }
.casino-respin-trail small { color: #817589; font: 900 .48rem/1 Arial, sans-serif; letter-spacing: .08em; text-transform: uppercase; }
.casino-respin-trail strong { color: var(--casino-gold); font: 900 1rem/1 "Arial Narrow", Impact, Arial, sans-serif; }
.casino-respin-trail span { overflow: hidden; color: #b4a6ba; font-size: .5rem; line-height: 1.3; text-overflow: ellipsis; white-space: nowrap; }
.casino-controls { display: grid; grid-area: controls; grid-template-columns: minmax(0, 1fr); align-items: end; align-self: start; gap: .5rem; width: 100%; max-width: none; margin: 0; padding: .65rem; background: linear-gradient(#2d2934, #17141e); border: 1px solid #695467; border-radius: 7px; box-shadow: inset 0 1px #91818d, 0 6px 14px rgba(0,0,0,.3); }
.casino-controls label { display: grid; gap: .35rem; margin: 0; }
.casino-controls label > span { color: #aa9bae; font: 900 .55rem/1 Arial, sans-serif; letter-spacing: .1em; text-transform: uppercase; }
.casino-controls select, .casino-controls input { width: 100%; min-height: 38px; color: #211921; background: #f9f1df; border: 2px solid #917a61; border-radius: 3px; font-weight: 800; }
.casino-controls label small { min-height: .75rem; color: #8f8295; font-size: .6rem; }
.casino-pull { display: flex; grid-column: 1 / -1; min-height: 46px; align-items: center; justify-content: space-between; gap: .5rem; margin: 0; padding: .55rem .65rem .55rem .8rem; color: #2b1006; background: linear-gradient(#ffd85b, #eb8617); border: 2px solid #fff0a2; border-radius: 6px; box-shadow: 0 4px 0 #81330d, 0 6px 8px rgba(0,0,0,.35), inset 0 1px #fff7bd; font: 900 .65rem/1 Arial, sans-serif; letter-spacing: .07em; text-transform: uppercase; }
.casino-pull i { display: block; width: 26px; height: 26px; position: relative; background: radial-gradient(circle at 36% 30%, #ffdfbc 0 8%, #d52920 22% 55%, #6d0808 72%); border: 2px solid #4e170b; border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,.45); }
.casino-pull:hover:not(:disabled) { background: linear-gradient(#fff083, #ff9d20); transform: translateY(-1px); }
.casino-pull:active:not(:disabled) { box-shadow: 0 2px 0 #81330d; transform: translateY(3px); }
.casino-pull:disabled { color: #d2ced5; background: linear-gradient(#817b86, #4d4952); border-color: #aaa4ae; box-shadow: 0 4px 0 #302d34, 0 6px 8px rgba(0,0,0,.28), inset 0 1px rgba(255,255,255,.32); cursor: not-allowed; filter: grayscale(1); opacity: .72; }
.casino-pull:disabled i { background: radial-gradient(circle at 36% 30%, #dbd9dd 0 8%, #8d8991 22% 55%, #454249 72%); border-color: #353239; box-shadow: 0 2px 4px rgba(0,0,0,.35); }
.casino-machine > footer { display: flex; justify-content: space-between; gap: 1rem; padding: .45rem .75rem .25rem; color: #3d2209; font: 900 .48rem/1 Arial, sans-serif; letter-spacing: .07em; text-transform: uppercase; }
.casino-machine > footer strong { color: #260e0a; }
.casino-bonus-rules { display: grid; grid-template-columns: minmax(14rem, .65fr) minmax(0, 1.35fr); gap: 1.2rem; margin-bottom: 1.5rem; padding: clamp(1rem, 2.5vw, 1.5rem); background: linear-gradient(120deg, rgba(40,12,54,.92), rgba(9,8,24,.92)); border: 1px solid #65406f; box-shadow: inset 0 0 30px rgba(187,64,239,.07); }
.casino-bonus-rules h2 { margin: .15rem 0 .5rem; color: #fff3d3; font: 900 1.55rem/1 "Arial Narrow", Impact, Arial, sans-serif; letter-spacing: .035em; text-transform: uppercase; }
.casino-bonus-rules p:not(.eyebrow) { color: #b09eb6; font-size: .76rem; line-height: 1.55; }
.casino-bonus-rules > ul { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 4px; margin: 0; padding: 0; list-style: none; }
.casino-bonus-rules > ul > li { --bonus-color: #d84bff; display: grid; grid-template-columns: 58px minmax(0, 1fr); align-items: center; gap: .65rem; min-width: 0; padding: .7rem; background: rgba(7,5,16,.72); border: 1px solid color-mix(in srgb, var(--bonus-color) 52%, #322839); }
.casino-bonus-rules .casino-bonus-shift-bell { --bonus-color: #35d9ff; }
.casino-bonus-rules .casino-bonus-twin-drill { --bonus-color: #ff8a2a; }
.casino-bonus-rules .casino-bonus-golden-fuse { --bonus-color: #ffe15b; }
.casino-bonus-rules .casino-bonus-glyph { width: 50px; height: 50px; font-size: 1.05rem; }
.casino-bonus-rules li > span:last-child { min-width: 0; }
.casino-bonus-rules li strong, .casino-bonus-rules li small { display: block; }
.casino-bonus-rules li strong { color: #fff1dc; font-size: .65rem; text-transform: uppercase; }
.casino-bonus-rules li small { margin-top: .25rem; color: #9e8fa5; font-size: .52rem; line-height: 1.4; }
.casino-rules { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(18rem, .65fr); gap: 1.5rem; }
.casino-rules > div, .casino-rules > aside, .casino-history { padding: clamp(1rem, 2.5vw, 1.5rem); background: rgba(8,5,15,.72); border: 1px solid #392e44; }
.casino-rules h2, .casino-history h2 { margin: .15rem 0 .5rem; color: #fff3d3; font: 900 1.55rem/1 "Arial Narrow", Impact, Arial, sans-serif; letter-spacing: .035em; text-transform: uppercase; }
.casino-rules > div > p:not(.eyebrow), .casino-rules > aside > p:not(.eyebrow) { color: #a89baa; font-size: .76rem; line-height: 1.55; }
.casino-paytable { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 3px; margin: 1rem 0 0; padding: 0; list-style: none; }
.casino-paytable li { display: grid; grid-template-columns: 40px minmax(0, 1fr) auto; align-items: center; gap: .55rem; min-width: 0; padding: .48rem .6rem; color: #eadfeb; background: #191321; border-left: 3px solid var(--rarity-link-color, #ad7f32); }
.casino-paytable li.is-top-symbol { background: linear-gradient(100deg, #281424, #57220d); box-shadow: inset 0 0 12px rgba(255,170,40,.13); }
.casino-paytable img { width: 36px; height: 36px; margin: 0; object-fit: contain; filter: drop-shadow(0 2px 3px #000); }
.casino-paytable span { min-width: 0; }
.casino-paytable span strong, .casino-paytable span small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.casino-paytable span strong { font-size: .68rem; }
.casino-paytable span small { margin-top: .18rem; color: #82778a; font-size: .52rem; }
.casino-paytable b { color: var(--casino-gold); font: 900 1.05rem/1 "Arial Narrow", Impact, Arial, sans-serif; }
.casino-scatter-title { margin: 1.15rem 0 .55rem; color: #ffcb57; font: 900 .75rem/1 Arial, sans-serif; letter-spacing: .1em; text-transform: uppercase; }
.casino-scatter-paytable { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 3px; margin: 0; padding: 0; list-style: none; }
.casino-scatter-paytable li { display: grid; gap: .22rem; padding: .65rem .45rem; text-align: center; background: linear-gradient(145deg, #30151e, #17101d); border: 1px solid #5a3135; }
.casino-scatter-paytable strong { color: #ffd75d; font: 900 .7rem/1 Arial, sans-serif; text-transform: uppercase; }
.casino-scatter-paytable span { color: #a9929c; font-size: .52rem; line-height: 1.35; }
.casino-jackpot-odds { display: grid; margin: 1rem 0; padding: 1rem; background: linear-gradient(135deg, #5b1a17, #271123); border: 1px solid #ad5e23; box-shadow: inset 0 0 28px rgba(255,118,19,.12); }
.casino-jackpot-odds span { color: #dca876; font: 900 .52rem/1 Arial, sans-serif; letter-spacing: .13em; text-transform: uppercase; }
.casino-jackpot-odds strong { margin: .35rem 0; color: #ffd65d; font: 900 1.5rem/1 "Arial Narrow", Impact, Arial, sans-serif; text-transform: uppercase; }
.casino-jackpot-odds small { color: #a78f9d; line-height: 1.4; }
.casino-paylines { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2px; margin: 0; padding: 0; list-style: none; }
.casino-paylines li { display: grid; grid-template-columns: auto 1fr; gap: .15rem .45rem; padding: .48rem; background: #15101b; }
.casino-paylines li > span { grid-row: 1 / span 2; color: #70566f; font: 900 .8rem/1 Arial, sans-serif; }
.casino-paylines strong { color: #d8c8d8; font-size: .58rem; }
.casino-paylines small { color: #716577; font-size: .5rem; }
.casino-history { margin-top: 1.5rem; }
.casino-history .section-heading { margin-bottom: .8rem; }
.casino-history table { width: 100%; color: #d6cbd9; background: #100c16; border-collapse: collapse; }
.casino-history th, .casino-history td { padding: .58rem .7rem; border-bottom: 1px solid #2c2433; font-size: .67rem; text-align: left; }
.casino-history th { color: #887a90; font: 900 .52rem/1 Arial, sans-serif; letter-spacing: .1em; text-transform: uppercase; }
.casino-history td { font-variant-numeric: tabular-nums; }
.casino-history td a { color: var(--casino-gold); font-weight: 900; }
.casino-history tr.is-current td { background: rgba(255,183,43,.1); }
.casino-history td strong { color: #ffcc4c; }
.casino-machine.is-spinning .casino-reel-cell { animation: casino-reel-spin .22s linear infinite; }
.casino-machine.is-spinning .casino-reel-cell:nth-child(2n) { animation-delay: -.08s; }
.casino-machine.is-spinning .casino-reel-cell:nth-child(3n) { animation-delay: -.15s; }
.casino-machine.is-spinning .casino-marquee::before { animation: casino-bulbs .18s steps(2) infinite; }
@keyframes casino-reel-spin { 0% { transform: translateY(-7px); filter: blur(0); } 50% { transform: translateY(7px); filter: blur(2px); } 100% { transform: translateY(-7px); filter: blur(0); } }
@keyframes casino-win-pulse { to { filter: saturate(1.25) brightness(1.08); box-shadow: inset 0 0 17px #fff, 0 0 25px 7px #ff9d19; } }
@keyframes casino-bulbs { to { filter: drop-shadow(0 0 7px #fff06a) brightness(1.35); } }
@keyframes casino-bonus-halo { to { opacity: .45; transform: scale(.82); } }
@media (max-width: 820px) {
  .casino-machine-body { display: block; }
  .casino-screen-frame { grid-area: auto; max-width: 560px; margin: 0 auto; }
  .casino-ready, .casino-result { max-width: 560px; margin: .65rem auto 0; }
  .casino-controls { grid-area: auto; max-width: 560px; margin: .65rem auto 0; }
  .casino-pull { grid-column: 1 / -1; }
  .casino-rules { grid-template-columns: 1fr; }
  .casino-bonus-rules { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
  .casino-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .casino-stats div:nth-child(2) { border-right: 0; }
  .casino-stats div:nth-child(-n+2) { border-bottom: 1px solid #3a3048; }
  .casino-scatter-paytable { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .casino-machine { padding: 6px; border-radius: 17px 17px 11px 11px; }
  .casino-marquee { min-height: 44px; grid-template-columns: 1fr; padding: .6rem 1rem; }
  .casino-marquee strong { display: none; }
  .casino-machine-body { padding: .65rem; }
  .casino-screen-frame { padding: .35rem; }
  .casino-reel-cell { min-height: 78px; padding: .25rem .15rem; }
  .casino-reel-cell img { width: 42px; height: 42px; }
  .casino-reel-cell .casino-bonus-glyph { width: 40px; height: 40px; font-size: .95rem; }
  .casino-reel-cell strong { font-size: .55rem; }
  .casino-reel-cell small { display: none; }
  .casino-controls { padding: .6rem; }
  .casino-pull { grid-column: 1 / -1; }
  .casino-machine > footer { font-size: .42rem; }
  .casino-machine > footer strong { display: none; }
  .casino-paytable { grid-template-columns: 1fr; }
  .casino-bonus-rules > ul { grid-template-columns: 1fr; }
  .casino-stats div { padding: .6rem; }
  .casino-history { overflow: hidden; }
}
@media (prefers-reduced-motion: reduce) {
  .casino-reel-cell.is-winning, .casino-machine.is-spinning .casino-reel-cell,
  .casino-machine.is-spinning .casino-marquee::before { animation: none; }
}

/* Link contract: every generic text anchor is explicit and visibly linked.
   Components with their own link class keep their component treatment. */
.text-link:any-link { color: var(--link); text-decoration-line: underline; text-decoration-thickness: 1px; text-underline-offset: .2em; }
.text-link:any-link:hover { text-decoration-thickness: 2px; }
nav .text-link:any-link,
.guest-actions .text-link:any-link,
.page-title > .text-link:any-link,
.page-title-actions .text-link:any-link { text-decoration: none; }
.thing-link:any-link,
.item-card-link:any-link,
a[href^="/items/"] { color: var(--rarity-link-color, var(--link)); }
.thing-link:any-link:hover,
.thing-link:any-link:focus-visible,
.item-card-link:any-link:hover,
.item-card-link:any-link:focus-visible,
a[href^="/items/"]:hover,
a[href^="/items/"]:focus-visible { color: var(--rarity-link-color, var(--link)); }
#flash-dialog-items .flash-item-link:any-link { color: var(--flash-rarity); }
.message-item a:any-link { color: var(--message-item-accent); }
.chat-dwarf-item:any-link { color: inherit; }
.map-city .map-city-name,
.crypto-chart .crypto-vwap-label { paint-order: normal; stroke: none; }
.glossary-entry dt { color: #775019; font: 900 .57rem/1.35 Arial, sans-serif; letter-spacing: .08em; text-transform: uppercase; }
.glossary-entry dd { min-width: 0; margin: 0; overflow-wrap: anywhere; font-size: .78rem; line-height: 1.45; }
.glossary-browse { align-self: flex-start; margin-top: 1rem; font: 900 .65rem/1.2 Arial, sans-serif; letter-spacing: .05em; text-transform: uppercase; }
@media (max-width: 900px) {
  .guide-system-grid { grid-template-columns: 1fr; }
  .glossary-letter > div { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
  .glossary-summary { grid-template-columns: 1fr; }
  .glossary-summary > div { padding: .75rem .9rem; border-right: 0; border-bottom: 1px solid #414741; }
  .glossary-summary > div:last-child { border-bottom: 0; }
  .glossary-letter { grid-template-columns: 1fr; gap: .75rem; }
  .glossary-letter > header { position: static; display: flex; align-items: baseline; gap: .75rem; }
  .glossary-letter > header strong { font-size: 2rem; }
  .glossary-letter > header span { margin-top: 0; }
  .guide-system-card dl > div { grid-template-columns: 1fr; gap: .2rem; }
  .guide-system-card dd + dt { margin-top: .4rem; }
  .glossary-entry dl { grid-template-columns: 1fr; gap: .25rem; }
  .glossary-entry dd + dt { margin-top: .45rem; }
}

/* Casino floor and machine-specific cabinets. */
.casino-floor { display: grid; grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr)); gap: .7rem; margin: 0 0 1.5rem; }
.casino-floor-card { --floor-card-accent: var(--casino-gold, #ffc642); position: relative; display: grid; min-width: 0; gap: .35rem; padding: .9rem 1rem .95rem; overflow: hidden; color: #ddd3df; background: linear-gradient(145deg, #191421, #0c0911); border: 1px solid #46394e; box-shadow: 0 8px 18px rgba(13,8,19,.18); text-decoration: none; }
.casino-floor-card::before { content: ''; position: absolute; inset: 0 auto 0 0; width: 4px; background: var(--floor-card-accent); opacity: .55; }
.casino-floor-card:any-link { color: #ddd3df; text-decoration: none; }
.casino-floor-card strong, .casino-floor-card h2, .casino-floor-card h3 { margin: 0; color: #fff7e8; font: 900 1rem/1 "Arial Narrow", Impact, Arial, sans-serif; letter-spacing: .045em; text-transform: uppercase; }
.casino-floor-card small, .casino-floor-card p, .casino-floor-card span { margin: 0; color: #9f92a7; font-size: .62rem; line-height: 1.4; }
.casino-floor-card:hover { color: #fff; border-color: var(--floor-card-accent); box-shadow: 0 10px 24px rgba(13,8,19,.28); transform: translateY(-1px); }
.casino-floor-card:focus-visible { outline: 3px solid var(--floor-card-accent); outline-offset: 3px; }
.casino-floor-card.is-current { color: #fff; background: linear-gradient(145deg, color-mix(in srgb, var(--floor-card-accent) 18%, #211626), #0c0911 72%); border-color: var(--floor-card-accent); box-shadow: inset 0 0 22px color-mix(in srgb, var(--floor-card-accent) 12%, transparent), 0 10px 24px rgba(13,8,19,.28); }
.casino-floor-card.is-current::before { width: 7px; opacity: 1; }
.casino-floor-card.is-current strong, .casino-floor-card.is-current h2, .casino-floor-card.is-current h3 { color: var(--floor-card-accent); }

.casino-reel-cell.is-locked { outline: 2px solid #d7b75e; outline-offset: -3px; }
.casino-reel-cell.is-locked::after { content: 'Locked'; top: .22rem; right: .22rem; bottom: auto; left: auto; width: auto; height: auto; padding: .18rem .28rem; color: #201707; background: #e0bd63; border: 1px solid #fff0aa; box-shadow: 0 2px 5px rgba(0,0,0,.45); font: 900 .38rem/1 Arial, sans-serif; letter-spacing: .08em; text-transform: uppercase; }
.casino-machine.is-hold-frame.is-spinning .casino-reel-cell.is-locked { animation: none; filter: none; transform: none; }

/* Thing-O-Matic: the original house cabinet, restored in brass and oxblood enamel. */
.casino-page.casino-theme-thing-o-matic { --casino-gold: #ffd45e; --casino-amber: #e97c18; --casino-ink: #140812; }
.casino-theme-thing-o-matic .casino-floor-card { --floor-card-accent: #d8862b; }
.casino-theme-thing-o-matic .casino-floor-card.is-current { --floor-card-accent: #ffd45e; }
.casino-theme-thing-o-matic .casino-stats { background: linear-gradient(135deg, #35101f, #100914 72%); border-color: #6e3840; }
.casino-theme-thing-o-matic .casino-stats div { border-color: #6e3840; }
.casino-theme-thing-o-matic .casino-machine[data-casino-machine="thing-o-matic"] { background: linear-gradient(112deg, #6e390d, #f8d77a 13%, #9d5a13 29%, #ffdd72 51%, #7b3c0e 72%, #3a1708 100%); border-color: #ffe598; box-shadow: 0 0 0 4px #240d18, 0 0 0 7px #7b3541, 0 18px 40px rgba(37,9,22,.54), inset 0 0 12px #fff1ad; }
.casino-theme-thing-o-matic .casino-machine[data-casino-machine="thing-o-matic"] .casino-marquee { color: #fff4c7; background: radial-gradient(circle at 50% 12%, #8d2a3d, #3b0c20 58%, #160711 100%); border-color: #d78a2b; box-shadow: inset 0 0 28px rgba(12,2,9,.78); }
.casino-theme-thing-o-matic .casino-machine[data-casino-machine="thing-o-matic"] .casino-marquee p { display: grid; gap: .22rem; }
.casino-theme-thing-o-matic .casino-machine[data-casino-machine="thing-o-matic"] .casino-marquee p small { color: #f2bd56; font: 900 .45rem/1 Arial, sans-serif; letter-spacing: .24em; text-shadow: none; }
.casino-theme-thing-o-matic .casino-machine[data-casino-machine="thing-o-matic"] .casino-marquee strong { color: #39100c; background: linear-gradient(#ffe68a, #e99a26); border: 1px solid #fff1ae; box-shadow: 0 2px 0 #7d3512; }
.casino-theme-thing-o-matic .casino-machine[data-casino-machine="thing-o-matic"] .casino-machine-body { background: linear-gradient(135deg, #491326, #170a16 43%, #301020 100%); border-color: #713343; }
.casino-theme-thing-o-matic .casino-machine[data-casino-machine="thing-o-matic"] .casino-screen-frame { background: linear-gradient(145deg, #110a10, #a0784c 11%, #28131b 24%, #050305 88%); border-color: #c29656; box-shadow: 0 8px 24px rgba(0,0,0,.58), inset 0 0 0 3px #0a0307; }
.casino-theme-thing-o-matic .casino-machine[data-casino-machine="thing-o-matic"] .casino-reel-grid { background: #73431e; border-color: #16070b; }
.casino-theme-thing-o-matic .casino-machine[data-casino-machine="thing-o-matic"] .casino-reel-cell { background: linear-gradient(180deg, #d4bf94, #fff9e7 24%, #ead7ad 74%, #aa885c); border-color: rgba(76,35,12,.4); }
.casino-theme-thing-o-matic .casino-machine[data-casino-machine="thing-o-matic"] .casino-payline { top: 44%; opacity: .28; }
.casino-line-bank { position: relative; z-index: 3; display: grid; grid-template-columns: 1.25fr repeat(3, 1fr); gap: 1px; margin-top: .4rem; color: #d8c5aa; background: #5a3434; border: 1px solid #9d7041; font: 900 .46rem/1 Arial, sans-serif; letter-spacing: .08em; text-align: center; text-transform: uppercase; }
.casino-line-bank strong, .casino-line-bank span { padding: .43rem .3rem; background: #1b0b13; }
.casino-line-bank strong { color: #ffda67; background: #3b101e; }
.casino-theme-thing-o-matic .casino-machine[data-casino-machine="thing-o-matic"] .casino-controls { background: linear-gradient(#3d242d, #180e15); border-color: #88505a; }
.casino-theme-thing-o-matic .casino-machine[data-casino-machine="thing-o-matic"] .casino-pull { background: linear-gradient(#ffe275, #ed8618); border-color: #fff2ac; box-shadow: 0 4px 0 #7a2d0e, 0 7px 9px rgba(0,0,0,.4), inset 0 1px #fff9c8; }
.casino-theme-thing-o-matic .casino-machine[data-casino-machine="thing-o-matic"] .casino-pull:hover:not(:disabled) { background: linear-gradient(#fff09a, #ff9e22); }
.casino-theme-thing-o-matic .casino-rules > div, .casino-theme-thing-o-matic .casino-rules > aside, .casino-theme-thing-o-matic .casino-history, .casino-theme-thing-o-matic .casino-bonus-rules { border-color: #603342; background: linear-gradient(145deg, rgba(49,13,28,.94), rgba(11,6,14,.94)); }

/* Bromo Sporefall: wet emerald metal, violet bioluminescence, and pale fungal reels. */
.casino-page.casino-theme-bromo-sporefall { --casino-gold: #b6ff74; --casino-amber: #ac5ce2; --casino-ink: #03150f; }
.casino-theme-bromo-sporefall .casino-floor-card { --floor-card-accent: #55d893; }
.casino-theme-bromo-sporefall .casino-floor-card.is-current { --floor-card-accent: #c172f0; }
.casino-theme-bromo-sporefall .casino-stats { background: linear-gradient(135deg, #0d3024, #100b20); border-color: #356b56; }
.casino-theme-bromo-sporefall .casino-stats div { border-color: #356b56; }
.casino-theme-bromo-sporefall .casino-machine[data-casino-machine="bromo-sporefall"] { background: linear-gradient(115deg, #154c36, #91e6a7 14%, #176445 33%, #a261d0 58%, #173f32 100%); border-color: #a8f3b7; box-shadow: 0 0 0 4px #081d17, 0 0 0 6px #683a7f, 0 18px 38px rgba(3,31,22,.5), inset 0 0 12px #d7ffe1; }
.casino-theme-bromo-sporefall .casino-machine[data-casino-machine="bromo-sporefall"] .casino-marquee { color: #eaffdb; background: radial-gradient(circle at 50% 20%, #763ba0, #19102d 52%, #08291e 100%); border-color: #83e0a5; box-shadow: inset 0 0 24px rgba(1,18,12,.8); }
.casino-theme-bromo-sporefall .casino-machine[data-casino-machine="bromo-sporefall"] .casino-marquee::before { filter: hue-rotate(72deg) drop-shadow(0 0 5px #70ffa8); }
.casino-theme-bromo-sporefall .casino-machine[data-casino-machine="bromo-sporefall"] .casino-marquee strong { color: #180d21; background: #b9ff83; }
.casino-theme-bromo-sporefall .casino-machine[data-casino-machine="bromo-sporefall"] .casino-machine-body { background: linear-gradient(135deg, #103828, #081712 42%, #23102f 100%); border-color: #3d795e; }
.casino-theme-bromo-sporefall .casino-machine[data-casino-machine="bromo-sporefall"] .casino-screen-frame { background: linear-gradient(145deg, #081a13, #6d4480 12%, #123f2d 26%, #020b08 86%); border-color: #8fd6a9; box-shadow: 0 8px 22px rgba(0,0,0,.56), inset 0 0 0 3px #03100c; }
.casino-theme-bromo-sporefall .casino-machine[data-casino-machine="bromo-sporefall"] .casino-reel-grid { background: #2e6e4d; border-color: #06140e; }
.casino-theme-bromo-sporefall .casino-machine[data-casino-machine="bromo-sporefall"] .casino-reel-cell { color: #173222; background: radial-gradient(circle at 50% 38%, #fbfff0, #dcebc7 64%, #8db894 100%); border-color: rgba(31,83,54,.42); }
.casino-theme-bromo-sporefall .casino-machine[data-casino-machine="bromo-sporefall"] .casino-reel-cell small { color: #456d53; }
.casino-theme-bromo-sporefall .casino-machine[data-casino-machine="bromo-sporefall"] .casino-controls { background: linear-gradient(#25483b, #0b1e17); border-color: #69977d; }
.casino-theme-bromo-sporefall .casino-machine[data-casino-machine="bromo-sporefall"] .casino-pull { color: #100a17; background: linear-gradient(#c995ef, #62d99a); border-color: #e9c8ff; box-shadow: 0 4px 0 #315f45, 0 6px 8px rgba(0,0,0,.38), inset 0 1px #f5ddff; }
.casino-theme-bromo-sporefall .casino-machine[data-casino-machine="bromo-sporefall"] .casino-pull:hover:not(:disabled) { background: linear-gradient(#deb1ff, #86efaf); }
.casino-theme-bromo-sporefall .casino-machine[data-casino-machine="bromo-sporefall"] > footer { color: #082419; }
.casino-theme-bromo-sporefall .casino-machine[data-casino-machine="bromo-sporefall"] > footer strong { color: #13091b; }
.casino-theme-bromo-sporefall .casino-machine[data-casino-machine="bromo-sporefall"].is-cascade-frame .casino-screen-frame::after { content: 'Spore cascade'; position: absolute; z-index: 5; top: .8rem; left: .8rem; padding: .25rem .38rem; color: #eaffd7; background: rgba(55,20,76,.9); border: 1px solid #cb7aff; font: 900 .45rem/1 Arial, sans-serif; letter-spacing: .1em; text-transform: uppercase; pointer-events: none; }
.casino-theme-bromo-sporefall .casino-machine[data-casino-machine="bromo-sporefall"].is-cascade-frame .casino-reel-cell.is-winning { background: radial-gradient(circle, #fffbd5, #c77af1 68%, #4d176b); box-shadow: inset 0 0 14px #fff, 0 0 19px 5px #8cf0a9; }
.casino-theme-bromo-sporefall .casino-result.is-win { border-color: #6fd9a0; box-shadow: inset 0 0 24px rgba(116,231,160,.12); }
.casino-theme-bromo-sporefall .casino-result.is-win > strong { color: #bcff84; }
.casino-theme-bromo-sporefall .casino-rules > div, .casino-theme-bromo-sporefall .casino-rules > aside, .casino-theme-bromo-sporefall .casino-history, .casino-theme-bromo-sporefall .casino-bonus-rules { border-color: #315e4c; background: linear-gradient(145deg, rgba(7,39,27,.91), rgba(27,10,40,.91)); }
.casino-theme-bromo-sporefall .casino-bonus-rules > ul > li { --bonus-color: #70e6a3; background: rgba(7,24,18,.78); border-color: #407b60; }
.casino-theme-bromo-sporefall .casino-bonus-rules > ul > li:nth-child(2) { --bonus-color: #c172f0; border-color: #71498a; }
.casino-theme-bromo-sporefall .casino-bonus-rules > ul > li:nth-child(3) { --bonus-color: #b6ff74; }

/* King's Lockbox: obsidian slabs, aged brass fittings, and a visibly held reel state. */
.casino-page.casino-theme-kings-lockbox { --casino-gold: #e0bd63; --casino-amber: #9d6828; --casino-ink: #080706; }
.casino-theme-kings-lockbox .casino-floor-card { --floor-card-accent: #b88d43; }
.casino-theme-kings-lockbox .casino-floor-card.is-current { --floor-card-accent: #f0cf76; }
.casino-theme-kings-lockbox .casino-stats { background: linear-gradient(135deg, #26211a, #080807); border-color: #655437; }
.casino-theme-kings-lockbox .casino-stats div { border-color: #655437; }
.casino-theme-kings-lockbox .casino-machine[data-casino-machine="kings-lockbox"] { background: linear-gradient(112deg, #070706, #55462d 11%, #171512 24%, #d0aa58 48%, #252019 62%, #080807 100%); border-color: #d7b75e; border-radius: 8px; box-shadow: 0 0 0 4px #080807, 0 0 0 7px #6e552d, 0 18px 40px rgba(0,0,0,.62), inset 0 0 10px #f0d68f; }
.casino-theme-kings-lockbox .casino-machine[data-casino-machine="kings-lockbox"] .casino-marquee { color: #f4d98c; background: radial-gradient(circle at 50% 15%, #40341f, #100f0d 66%, #030303); border-color: #a88544; border-radius: 3px; box-shadow: inset 0 0 26px #000; }
.casino-theme-kings-lockbox .casino-machine[data-casino-machine="kings-lockbox"] .casino-marquee::before { filter: sepia(1) drop-shadow(0 0 4px #e8c76e); opacity: .72; }
.casino-theme-kings-lockbox .casino-machine[data-casino-machine="kings-lockbox"] .casino-marquee strong { color: #17120a; background: #d9b65e; }
.casino-theme-kings-lockbox .casino-machine[data-casino-machine="kings-lockbox"] .casino-machine-body { background: linear-gradient(135deg, #1b1915, #070706 44%, #211b12); border-color: #655238; }
.casino-theme-kings-lockbox .casino-machine[data-casino-machine="kings-lockbox"] .casino-screen-frame { background: linear-gradient(145deg, #050505, #80683b 12%, #17140f 25%, #020202 88%); border-color: #bc9950; border-radius: 3px; box-shadow: 0 8px 24px #000, inset 0 0 0 3px #050504; }
.casino-theme-kings-lockbox .casino-machine[data-casino-machine="kings-lockbox"] .casino-reel-grid { background: #5d4825; border-color: #020202; border-radius: 2px; }
.casino-theme-kings-lockbox .casino-machine[data-casino-machine="kings-lockbox"] .casino-reel-cell { color: #2b2114; background: linear-gradient(180deg, #c9b986, #f2e6b9 24%, #c5ae72 74%, #6e5932); border-color: rgba(45,30,11,.62); }
.casino-theme-kings-lockbox .casino-machine[data-casino-machine="kings-lockbox"] .casino-reel-cell small { color: #66502d; }
.casino-theme-kings-lockbox .casino-machine[data-casino-machine="kings-lockbox"] .casino-controls { background: linear-gradient(#302b23, #0d0c0a); border-color: #766343; border-radius: 2px; }
.casino-theme-kings-lockbox .casino-machine[data-casino-machine="kings-lockbox"] .casino-pull { color: #160f06; background: linear-gradient(#f1d27a, #9d6828); border-color: #ffe7a1; border-radius: 2px; box-shadow: 0 4px 0 #493016, 0 7px 9px rgba(0,0,0,.48), inset 0 1px #fff0bd; }
.casino-theme-kings-lockbox .casino-machine[data-casino-machine="kings-lockbox"] .casino-pull:hover:not(:disabled) { background: linear-gradient(#ffe49a, #bb8139); }
.casino-theme-kings-lockbox .casino-machine[data-casino-machine="kings-lockbox"] > footer { color: #171109; }
.casino-theme-kings-lockbox .casino-machine[data-casino-machine="kings-lockbox"] > footer strong { color: #080604; }
.casino-theme-kings-lockbox .casino-machine[data-casino-machine="kings-lockbox"].is-hold-frame .casino-screen-frame::after { content: 'Attempts: ' attr(data-casino-remaining-attempts); position: absolute; z-index: 5; top: .8rem; left: .8rem; padding: .25rem .38rem; color: #201707; background: #dfbd65; border: 1px solid #fff0ae; box-shadow: 0 2px 7px rgba(0,0,0,.45); font: 900 .45rem/1 Arial, sans-serif; letter-spacing: .08em; text-transform: uppercase; pointer-events: none; }
.casino-theme-kings-lockbox .casino-machine[data-casino-machine="kings-lockbox"].is-hold-frame .casino-reel-cell:not(.is-locked) { filter: saturate(.62) brightness(.7); }
.casino-theme-kings-lockbox .casino-machine[data-casino-machine="kings-lockbox"] .casino-reel-cell.is-locked { outline-color: #f0cf76; background: radial-gradient(circle at 50% 35%, #fff5c9, #d1b666 62%, #76561f); box-shadow: inset 0 0 13px #fff5c0, 0 0 13px 3px rgba(226,187,83,.7); }
.casino-theme-kings-lockbox .casino-machine[data-casino-machine="kings-lockbox"] .casino-reel-cell.is-locked::after { color: #130e06; background: #f0cf76; border-color: #fff2b5; }
.casino-theme-kings-lockbox .casino-result.is-win { border-color: #a88749; box-shadow: inset 0 0 24px rgba(218,180,93,.11); }
.casino-theme-kings-lockbox .casino-result.is-win > strong { color: #e6c770; }
.casino-theme-kings-lockbox .casino-rules > div, .casino-theme-kings-lockbox .casino-rules > aside, .casino-theme-kings-lockbox .casino-history, .casino-theme-kings-lockbox .casino-bonus-rules { border-color: #594a33; background: linear-gradient(145deg, rgba(31,28,23,.94), rgba(7,7,6,.94)); }
.casino-theme-kings-lockbox .casino-bonus-rules > ul > li { --bonus-color: #e0bd63; background: rgba(12,11,9,.82); border-color: #6c5834; }
.casino-theme-kings-lockbox .casino-bonus-rules > ul > li:nth-child(2) { --bonus-color: #b88d43; }
.casino-theme-kings-lockbox .casino-bonus-rules > ul > li:nth-child(3) { --bonus-color: #f0cf76; }
.casino-theme-kings-lockbox .casino-bonus-rules .casino-bonus-glyph { color: #fff2bd; background: radial-gradient(circle, #6d5428, #17130c 72%); }

/* Regional circuit: the geometry and livery travel with the region, while settlement stays server-side. */
.casino-page.casino-theme-regional { --casino-gold: var(--casino-regional-accent); --casino-amber: var(--casino-regional-metal); --casino-ink: var(--casino-regional-shade); }
.casino-theme-regional .casino-stats { background: linear-gradient(135deg, var(--casino-regional-shade), #07080a 76%); border-color: color-mix(in srgb, var(--casino-regional-accent) 45%, #25282b); }
.casino-theme-regional .casino-stats div { border-color: color-mix(in srgb, var(--casino-regional-accent) 35%, #25282b); }
.casino-theme-regional .casino-machine { background: linear-gradient(112deg, #080909, var(--casino-regional-metal) 12%, var(--casino-regional-shade) 31%, var(--casino-regional-accent) 54%, var(--casino-regional-shade) 72%, #070708); border-color: var(--casino-regional-accent); border-radius: 16px 16px 7px 7px; box-shadow: 0 0 0 4px #09090a, 0 0 0 7px color-mix(in srgb, var(--casino-regional-accent) 48%, #151719), 0 18px 40px rgba(0,0,0,.58), inset 0 0 13px color-mix(in srgb, var(--casino-regional-metal) 65%, #fff); }
.casino-theme-regional .casino-marquee { color: #fff8e8; background: radial-gradient(circle at 50% 15%, color-mix(in srgb, var(--casino-regional-shade) 68%, var(--casino-regional-accent)), #070809 72%); border-color: var(--casino-regional-metal); border-radius: 9px 9px 2px 2px; box-shadow: inset 0 0 28px rgba(0,0,0,.78); }
.casino-theme-regional .casino-marquee p { display: grid; gap: .22rem; }
.casino-theme-regional .casino-marquee p small { color: var(--casino-regional-accent); font: 900 .45rem/1 Arial, sans-serif; letter-spacing: .24em; text-shadow: none; }
.casino-theme-regional .casino-marquee::before { filter: drop-shadow(0 0 5px var(--casino-regional-accent)); }
.casino-theme-regional .casino-marquee strong { color: #111; background: linear-gradient(135deg, var(--casino-regional-metal), var(--casino-regional-accent)); border: 1px solid color-mix(in srgb, var(--casino-regional-metal) 70%, #fff); }
.casino-theme-regional .casino-machine-body { background: linear-gradient(135deg, var(--casino-regional-shade), #080a0b 45%, color-mix(in srgb, var(--casino-regional-shade) 72%, #000)); border-color: color-mix(in srgb, var(--casino-regional-accent) 38%, #25282b); }
.casino-theme-regional .casino-screen-frame { background: linear-gradient(145deg, #040506, var(--casino-regional-metal) 11%, var(--casino-regional-shade) 25%, #020303 88%); border-color: var(--casino-regional-metal); border-radius: 5px; box-shadow: 0 8px 24px rgba(0,0,0,.64), inset 0 0 0 3px #050607; }
.casino-theme-regional .casino-reel-grid { background: color-mix(in srgb, var(--casino-regional-shade) 72%, #111); border-color: #030404; border-radius: 3px; }
.casino-theme-regional .casino-reel-cell { color: #182022; background: linear-gradient(180deg, color-mix(in srgb, var(--casino-regional-metal) 42%, #e8e2d2), #fffdf4 26%, color-mix(in srgb, var(--casino-regional-metal) 35%, #d7d0bd) 76%, color-mix(in srgb, var(--casino-regional-shade) 28%, #a99f8a)); border-color: color-mix(in srgb, var(--casino-regional-shade) 46%, transparent); }
.casino-theme-regional .casino-reel-cell.is-winning { background: radial-gradient(circle, #fff, color-mix(in srgb, var(--casino-regional-accent) 62%, #fff1a1) 64%, var(--casino-regional-accent)); box-shadow: inset 0 0 14px #fff, 0 0 18px 4px color-mix(in srgb, var(--casino-regional-accent) 72%, transparent); }
.casino-theme-regional .casino-controls { background: linear-gradient(color-mix(in srgb, var(--casino-regional-shade) 82%, #3d4144), #08090a); border-color: color-mix(in srgb, var(--casino-regional-accent) 46%, #53565a); border-radius: 3px; }
.casino-theme-regional .casino-pull { color: #101213; background: linear-gradient(var(--casino-regional-metal), var(--casino-regional-accent)); border-color: color-mix(in srgb, var(--casino-regional-metal) 68%, #fff); border-radius: 3px; box-shadow: 0 4px 0 color-mix(in srgb, var(--casino-regional-shade) 72%, #000), 0 7px 9px rgba(0,0,0,.45), inset 0 1px rgba(255,255,255,.72); }
.casino-theme-regional .casino-pull:hover:not(:disabled) { background: linear-gradient(color-mix(in srgb, var(--casino-regional-metal) 72%, #fff), color-mix(in srgb, var(--casino-regional-accent) 82%, #fff)); }
.casino-theme-regional .casino-machine > footer { color: #0b0d0e; }
.casino-theme-regional .casino-machine > footer strong { color: #050607; }
.casino-theme-regional .casino-line-bank { background: color-mix(in srgb, var(--casino-regional-accent) 42%, #131517); border-color: var(--casino-regional-metal); }
.casino-theme-regional .casino-line-bank strong, .casino-theme-regional .casino-line-bank span { background: color-mix(in srgb, var(--casino-regional-shade) 84%, #08090a); }
.casino-theme-regional .casino-line-bank strong { color: var(--casino-regional-accent); }
.casino-theme-regional .casino-rules > div, .casino-theme-regional .casino-rules > aside, .casino-theme-regional .casino-history, .casino-theme-regional .casino-bonus-rules { border-color: color-mix(in srgb, var(--casino-regional-accent) 34%, #303337); background: linear-gradient(145deg, color-mix(in srgb, var(--casino-regional-shade) 68%, rgba(8,10,11,.94)), rgba(5,7,8,.95)); }
.casino-theme-regional .casino-bonus-rules > ul > li { --bonus-color: var(--casino-regional-accent); background: rgba(5,8,9,.8); border-color: color-mix(in srgb, var(--casino-regional-accent) 45%, #34373a); }
.casino-theme-regional .casino-bonus-rules > ul > li:nth-child(2) { --bonus-color: var(--casino-regional-metal); }
.casino-theme-regional .casino-bonus-rules > ul > li:nth-child(3) { --bonus-color: color-mix(in srgb, var(--casino-regional-accent) 55%, #fff); }
.casino-theme-regional .casino-result.is-win { border-color: var(--casino-regional-accent); box-shadow: inset 0 0 24px color-mix(in srgb, var(--casino-regional-accent) 13%, transparent); }
.casino-theme-regional .casino-result.is-win > strong { color: var(--casino-regional-accent); }
.casino-theme-regional .casino-reel-grid[data-casino-grid-size="18"] .casino-reel-cell,
.casino-theme-regional .casino-reel-grid[data-casino-grid-size="20"] .casino-reel-cell,
.casino-theme-regional .casino-reel-grid[data-casino-grid-size="24"] .casino-reel-cell,
.casino-theme-regional .casino-reel-grid[data-casino-grid-size="25"] .casino-reel-cell { min-height: 68px; }
.casino-theme-regional .casino-reel-grid[data-casino-grid-size="18"] .casino-reel-cell img,
.casino-theme-regional .casino-reel-grid[data-casino-grid-size="20"] .casino-reel-cell img,
.casino-theme-regional .casino-reel-grid[data-casino-grid-size="24"] .casino-reel-cell img,
.casino-theme-regional .casino-reel-grid[data-casino-grid-size="25"] .casino-reel-cell img { width: 34px; height: 34px; }
.casino-theme-regional .casino-reel-grid[data-casino-grid-size="18"] .casino-reel-cell strong,
.casino-theme-regional .casino-reel-grid[data-casino-grid-size="20"] .casino-reel-cell strong,
.casino-theme-regional .casino-reel-grid[data-casino-grid-size="24"] .casino-reel-cell strong,
.casino-theme-regional .casino-reel-grid[data-casino-grid-size="25"] .casino-reel-cell strong { font-size: .46rem; }

/* Aso: a low, armoured powder magazine with two oversized fuse banks. */
.casino-theme-regional .casino-machine[data-casino-machine="cinderwake-fuse-five"] { background: repeating-linear-gradient(135deg, #17120b 0 18px, #f2a321 18px 36px); border-color: #ffe199; border-radius: 4px; box-shadow: 0 0 0 5px #20140a, 0 0 0 8px #9b5010, 0 18px 38px rgba(56,20,3,.58), inset 0 0 18px #fff0a2; }
.casino-theme-regional .casino-machine[data-casino-machine="cinderwake-fuse-five"] .casino-marquee { background: linear-gradient(#4e160a, #170804); border-radius: 2px; }
.casino-theme-regional .casino-machine[data-casino-machine="cinderwake-fuse-five"] .casino-screen-frame { background: #18120b; border: 5px solid #6f401d; border-radius: 2px; box-shadow: inset 0 0 0 3px #050403, 0 8px 18px #000; }
.casino-theme-regional .casino-machine[data-casino-machine="cinderwake-fuse-five"] .casino-reel-grid { gap: 7px 3px; background: repeating-linear-gradient(90deg, #4c2008 0 4px, #17110a 4px 16.66%); border-radius: 0; }
.casino-theme-regional .casino-machine[data-casino-machine="cinderwake-fuse-five"] .casino-reel-cell { min-height: 104px; background: linear-gradient(180deg, #fff4cb, #dfb363 48%, #8a4b17); border-color: #5a2c0d; }
.casino-theme-regional .casino-machine[data-casino-machine="cinderwake-fuse-five"] .casino-reel-cell img { width: 48px; height: 48px; }

/* Bromo: a soft, overgrown cabinet whose twenty cells read as a living spore bed. */
.casino-theme-regional .casino-machine[data-casino-machine="ashfall-spore-ring"] { background: radial-gradient(circle at 20% 10%, #d4ff85, #4c2b61 23%, #173e2d 64%, #090c0a); border: 4px solid #9de284; border-radius: 34px 34px 18px 18px; box-shadow: 0 0 0 5px #0b271c, 0 0 0 8px #684174, 0 20px 42px rgba(12,38,25,.56), inset 0 0 26px #baff9b; }
.casino-theme-regional .casino-machine[data-casino-machine="ashfall-spore-ring"] .casino-marquee { border-radius: 25px 25px 45% 45%; background: radial-gradient(ellipse, #683881, #171023 68%); }
.casino-theme-regional .casino-machine[data-casino-machine="ashfall-spore-ring"] .casino-screen-frame { padding: .8rem; background: radial-gradient(ellipse, #5b356d, #132e24 68%, #06100c); border: 3px solid #8fd58e; border-radius: 28px; }
.casino-theme-regional .casino-machine[data-casino-machine="ashfall-spore-ring"] .casino-reel-grid { gap: 6px; padding: 7px; background: radial-gradient(circle, #3f6840, #172619); border: 0; border-radius: 24px; }
.casino-theme-regional .casino-machine[data-casino-machine="ashfall-spore-ring"] .casino-reel-cell { min-height: 72px; background: radial-gradient(circle at 50% 35%, #fffde9, #cfe5ad 60%, #6d9767); border: 2px solid #456f4b; border-radius: 50% 50% 44% 44%; box-shadow: inset 0 7px 14px rgba(255,255,255,.65), inset 0 -8px 12px rgba(35,78,42,.28); }

/* Calbuco: three timber decks held in a six-post rack. */
.casino-theme-regional .casino-machine[data-casino-machine="stormcrag-timber-twins"] { background: linear-gradient(100deg, #27170d, #b88b54 13%, #37566a 28%, #d1a463 51%, #19384d 70%, #23150c); border: 5px ridge #c9a46c; border-radius: 3px; box-shadow: 0 0 0 5px #172631, 0 18px 40px rgba(8,25,36,.58), inset 0 0 18px #d9c298; }
.casino-theme-regional .casino-machine[data-casino-machine="stormcrag-timber-twins"] .casino-marquee { background: linear-gradient(#142f42, #09151d); border: 4px double #c3a16d; border-radius: 0; }
.casino-theme-regional .casino-machine[data-casino-machine="stormcrag-timber-twins"] .casino-screen-frame { padding: .7rem; background: repeating-linear-gradient(90deg, #1a1009 0 9%, #5d3a1f 9% 10%, #1a1009 10% 19%); border: 5px solid #7a522e; border-radius: 0; }
.casino-theme-regional .casino-machine[data-casino-machine="stormcrag-timber-twins"] .casino-reel-grid { gap: 8px 5px; background: #21150d; border: 0; border-radius: 0; }
.casino-theme-regional .casino-machine[data-casino-machine="stormcrag-timber-twins"] .casino-reel-cell { min-height: 76px; background: linear-gradient(90deg, #aa7745, #f1d4a0 16%, #c4935d 55%, #80502e); border: 2px solid #4e301b; border-radius: 1px; box-shadow: inset 0 2px #ffe5ba, inset 0 -5px rgba(60,30,12,.25); }

/* Dempo: a narrow five-storey poem engine, taller than it is wide. */
.casino-theme-regional .casino-machine[data-casino-machine="emberdeep-three-verses"] { background: linear-gradient(90deg, #240c0c, #e6ad5e 12%, #4d1715 28%, #e27048 50%, #4d1715 72%, #26100d); border: 3px solid #efc57f; border-radius: 26px 26px 2px 2px; box-shadow: 0 0 0 5px #2d0d12, 0 20px 44px rgba(50,10,14,.6), inset 0 0 18px #ffd699; }
.casino-theme-regional .casino-machine[data-casino-machine="emberdeep-three-verses"] .casino-marquee { background: linear-gradient(135deg, #4d1117, #17080c); border-radius: 20px 20px 0 0; }
.casino-theme-regional .casino-machine[data-casino-machine="emberdeep-three-verses"] .casino-screen-frame { width: min(100%, 36rem); justify-self: center; padding: .8rem 1.2rem; background: linear-gradient(90deg, #231111, #a77545 8%, #251312 16% 84%, #a77545 92%, #231111); border: 2px solid #dda769; border-radius: 18px 18px 2px 2px; }
.casino-theme-regional .casino-machine[data-casino-machine="emberdeep-three-verses"] .casino-reel-grid { gap: 3px 8px; padding: 8px; background: #331519; border: 2px solid #100507; border-radius: 12px 12px 0 0; }
.casino-theme-regional .casino-machine[data-casino-machine="emberdeep-three-verses"] .casino-reel-cell { min-height: 74px; background: linear-gradient(90deg, #d7b37a, #fff4d0 18%, #ead19d 78%, #a97843); border: 0; border-bottom: 3px solid #693521; border-radius: 2px 2px 12px 12px; }

/* Ebeko: one continuous neon instrument wall rather than a bank of mechanical reels. */
.casino-theme-regional .casino-machine[data-casino-machine="frostmere-aurora-mirror"] { background: linear-gradient(120deg, #050b12, #3bbeb7 17%, #102c46 36%, #89f2e8 52%, #173b5b 72%, #03070d); border: 2px solid #a4fff4; border-radius: 2px 22px 2px 22px; box-shadow: 0 0 0 4px #071a29, 0 0 28px rgba(76,239,225,.46), 0 20px 44px rgba(2,18,32,.66), inset 0 0 18px #d9fffb; }
.casino-theme-regional .casino-machine[data-casino-machine="frostmere-aurora-mirror"] .casino-marquee { background: linear-gradient(90deg, #06111f, #133b5c 50%, #06111f); border: 1px solid #7ff5e9; border-radius: 0 18px 0 18px; }
.casino-theme-regional .casino-machine[data-casino-machine="frostmere-aurora-mirror"] .casino-screen-frame { padding: 5px; background: #04111b; border: 1px solid #77ece1; border-radius: 0; box-shadow: 0 0 24px rgba(62,234,220,.44), inset 0 0 0 3px #02080d; }
.casino-theme-regional .casino-machine[data-casino-machine="frostmere-aurora-mirror"] .casino-reel-grid { gap: 2px; padding: 5px; background: repeating-linear-gradient(0deg, rgba(91,247,231,.08) 0 1px, transparent 1px 9px), #071725; border: 1px solid #286a78; border-radius: 0; }
.casino-theme-regional .casino-machine[data-casino-machine="frostmere-aurora-mirror"] .casino-reel-cell { min-height: 72px; color: #d9fffb; background: radial-gradient(circle, #194c66, #071623 72%); border: 1px solid #257986; box-shadow: inset 0 0 15px rgba(72,238,222,.18); }
.casino-theme-regional .casino-machine[data-casino-machine="frostmere-aurora-mirror"] .casino-reel-cell small { color: #6fb6bb; }
.casino-theme-regional .casino-machine[data-casino-machine="frostmere-aurora-mirror"] .casino-reel-cell img { filter: drop-shadow(0 0 7px #6af9eb); }

/* Fogo: a square twenty-five-door furnace with a visibly hotter heart. */
.casino-theme-regional .casino-machine[data-casino-machine="brimstone-furnace-four"] { background: linear-gradient(135deg, #100403, #7d1d0b 16%, #f27a20 32%, #351009 48%, #e8a03b 68%, #170504); border: 6px ridge #d77a26; border-radius: 0; box-shadow: 0 0 0 5px #180504, 0 20px 46px rgba(64,12,4,.65), inset 0 0 24px #ffbc55; }
.casino-theme-regional .casino-machine[data-casino-machine="brimstone-furnace-four"] .casino-marquee { background: radial-gradient(circle, #7f1d0e, #180605 70%); border: 4px double #e99b38; border-radius: 0; }
.casino-theme-regional .casino-machine[data-casino-machine="brimstone-furnace-four"] .casino-screen-frame { width: min(100%, 43rem); justify-self: center; padding: .8rem; background: radial-gradient(circle, #a13613, #311008 52%, #090302); border: 6px solid #6d260e; border-radius: 0; box-shadow: inset 0 0 0 3px #140503, inset 0 0 35px #ff5c18, 0 8px 20px #000; }
.casino-theme-regional .casino-machine[data-casino-machine="brimstone-furnace-four"] .casino-reel-grid { gap: 5px; padding: 5px; background: #240905; border: 3px solid #0c0302; border-radius: 0; }
.casino-theme-regional .casino-machine[data-casino-machine="brimstone-furnace-four"] .casino-reel-cell { min-height: 66px; background: radial-gradient(circle at 50% 35%, #ffd476, #b94c19 64%, #3e1008); border: 2px solid #6e230c; border-radius: 2px; box-shadow: inset 0 0 13px rgba(255,219,114,.48); }
.casino-theme-regional .casino-machine[data-casino-machine="brimstone-furnace-four"] .casino-reel-cell:nth-child(13) { background: radial-gradient(circle, #fff6b0, #ff6a1c 52%, #7b1506); box-shadow: inset 0 0 18px #fff0a0, 0 0 16px #ff4c12; }

/* Gallego: a panoramic black flip-board for a world of moving transports. */
.casino-theme-regional .casino-machine[data-casino-machine="tzolkin-worldwheel-seven"] { background: linear-gradient(105deg, #07131a, #d66a29 11%, #183b49 24%, #f0bd4a 49%, #153542 68%, #060d12); border: 3px solid #f3ce65; border-radius: 18px 3px 18px 3px; box-shadow: 0 0 0 5px #07151d, 0 0 0 8px #9b4c25, 0 20px 44px rgba(4,24,33,.62), inset 0 0 18px #ffe38a; }
.casino-theme-regional .casino-machine[data-casino-machine="tzolkin-worldwheel-seven"] .casino-marquee { background: linear-gradient(90deg, #07131a, #173a47, #07131a); border-radius: 13px 0 13px 0; }
.casino-theme-regional .casino-machine[data-casino-machine="tzolkin-worldwheel-seven"] .casino-screen-frame { padding: .6rem; background: #060b0e; border: 4px solid #263e45; border-radius: 3px; box-shadow: inset 0 0 0 2px #000, 0 8px 20px #000; }
.casino-theme-regional .casino-machine[data-casino-machine="tzolkin-worldwheel-seven"] .casino-reel-grid { gap: 3px; padding: 4px; background: #030506; border: 1px solid #5e777d; border-radius: 2px; }
.casino-theme-regional .casino-machine[data-casino-machine="tzolkin-worldwheel-seven"] .casino-reel-cell { min-height: 78px; color: #f8d975; background: linear-gradient(#172126 0 48%, #030506 49% 51%, #111a1e 52% 100%); border: 1px solid #35464c; box-shadow: inset 0 1px #53676d, inset 0 -1px #000; }
.casino-theme-regional .casino-machine[data-casino-machine="tzolkin-worldwheel-seven"] .casino-reel-cell strong { color: #fff2bd; }
.casino-theme-regional .casino-machine[data-casino-machine="tzolkin-worldwheel-seven"] .casino-reel-cell small { color: #71888c; }
.casino-theme-regional .casino-machine[data-casino-machine="tzolkin-worldwheel-seven"] .casino-reel-cell img { width: 38px; height: 38px; filter: drop-shadow(0 0 6px rgba(255,202,70,.5)); }

@media (max-width: 820px) {
  .casino-floor { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
  .casino-floor { grid-template-columns: 1fr; gap: .45rem; }
  .casino-floor-card { padding: .7rem .8rem .75rem; }
  .casino-reel-cell.is-locked::after { top: .15rem; right: .15rem; padding: .14rem .2rem; font-size: .32rem; }
  .casino-theme-regional .casino-reel-cell { min-height: 66px; }
  .casino-theme-regional .casino-reel-cell img { width: 32px; height: 32px; }
  .casino-theme-regional .casino-reel-grid[data-casino-columns="6"] .casino-reel-cell,
  .casino-theme-regional .casino-reel-grid[data-casino-columns="8"] .casino-reel-cell { min-height: 58px; }
  .casino-theme-regional .casino-reel-grid[data-casino-columns="6"] .casino-reel-cell img,
  .casino-theme-regional .casino-reel-grid[data-casino-columns="8"] .casino-reel-cell img { width: 27px; height: 27px; }
  .casino-theme-regional .casino-reel-grid[data-casino-grid-size="18"] .casino-reel-cell strong,
  .casino-theme-regional .casino-reel-grid[data-casino-grid-size="18"] .casino-reel-cell small,
  .casino-theme-regional .casino-reel-grid[data-casino-grid-size="20"] .casino-reel-cell strong,
  .casino-theme-regional .casino-reel-grid[data-casino-grid-size="20"] .casino-reel-cell small,
  .casino-theme-regional .casino-reel-grid[data-casino-grid-size="24"] .casino-reel-cell strong,
  .casino-theme-regional .casino-reel-grid[data-casino-grid-size="24"] .casino-reel-cell small,
  .casino-theme-regional .casino-reel-grid[data-casino-grid-size="25"] .casino-reel-cell strong,
  .casino-theme-regional .casino-reel-grid[data-casino-grid-size="25"] .casino-reel-cell small { display: none; }
  .casino-theme-regional .casino-machine[data-casino-machine="cinderwake-fuse-five"] .casino-reel-cell,
  .casino-theme-regional .casino-machine[data-casino-machine="ashfall-spore-ring"] .casino-reel-cell,
  .casino-theme-regional .casino-machine[data-casino-machine="stormcrag-timber-twins"] .casino-reel-cell,
  .casino-theme-regional .casino-machine[data-casino-machine="emberdeep-three-verses"] .casino-reel-cell,
  .casino-theme-regional .casino-machine[data-casino-machine="frostmere-aurora-mirror"] .casino-reel-cell,
  .casino-theme-regional .casino-machine[data-casino-machine="brimstone-furnace-four"] .casino-reel-cell,
  .casino-theme-regional .casino-machine[data-casino-machine="tzolkin-worldwheel-seven"] .casino-reel-cell { min-height: 58px; }
}
@media (prefers-reduced-motion: reduce) {
  .casino-floor-card { transition: none; }
  .casino-floor-card:hover { transform: none; }
  .casino-machine.is-cascade-frame .casino-reel-cell,
  .casino-machine.is-hold-frame .casino-reel-cell { animation: none; transition: none; }
}

/* The street plan keeps the miner fixed while the city scrolls beneath them. */
.city-explorer { background: #0b100d; border-top: 4px solid var(--city-accent, #f39a18); box-shadow: 0 18px 34px rgba(20,18,12,.18); color: #f4ecd7; }
.city-explorer-header { display: flex; align-items: flex-end; justify-content: space-between; gap: 1rem; padding: 1rem 1.15rem; border-bottom: 1px solid #344039; }
.city-explorer-header h2 { margin: .1rem 0 0; color: #fff8e6; }
.city-explorer-header .eyebrow { color: var(--city-accent, #f39a18); }
.city-explorer-header dl { display: flex; margin: 0; }
.city-explorer-header dl div { min-width: 5rem; padding: 0 .75rem; border-left: 1px solid #344039; }
.city-explorer-header dt { color: #82948a; font: 800 .55rem/1.2 Arial, sans-serif; letter-spacing: .12em; text-transform: uppercase; }
.city-explorer-header dd { margin: .25rem 0 0; color: #fff4d5; font: 900 1.15rem/1 Arial, sans-serif; }
.city-explorer-header dl div.is-active { background: #18465d; box-shadow: inset 0 -3px #67dcff; }
.city-explorer-header dl div.is-active dd { color: #bff4ff; }
.city-explorer-stage { display: grid; grid-template-columns: minmax(0, 1fr) 15rem; min-height: 34rem; }
.city-explore-map-wrap { position: relative; min-width: 0; padding: .9rem; background: #070a08; }
#city-explore-map { display: block; width: 100%; height: auto; aspect-ratio: 5 / 4; background: #080c0a; outline: 0; touch-action: manipulation; }
#city-explore-map:focus-visible { box-shadow: 0 0 0 3px #f3c33b; }
.city-street-burst { position: absolute; z-index: 4; top: 35%; left: 50%; isolation: isolate; display: grid; width: min(40rem, 94%); min-height: 15rem; padding: 3.75rem clamp(3.2rem, 9vw, 5.8rem) 4.15rem; place-content: center; place-items: center; transform: translate(-50%, -50%) rotate(-1.5deg); color: #171510; text-align: center; pointer-events: none; animation: city-burst-in .16s cubic-bezier(.2,1.6,.5,1); }
.city-street-burst::before { position: absolute; z-index: -1; inset: 0; content: ''; background: #f3c33b; clip-path: polygon(50% 0, 57% 13%, 70% 4%, 73% 19%, 90% 13%, 86% 29%, 100% 36%, 88% 48%, 98% 62%, 81% 66%, 83% 84%, 66% 79%, 57% 98%, 47% 84%, 33% 98%, 28% 80%, 9% 87%, 14% 68%, 0 58%, 13% 47%, 1% 33%, 18% 28%, 13% 11%, 32% 18%); filter: drop-shadow(0 .85rem 0 rgba(0,0,0,.34)); }
.city-street-burst[hidden] { display: none; }
.city-street-burst strong { display: block; max-width: 100%; margin-bottom: .75rem; font: 1000 clamp(2.25rem, 7vw, 4.25rem)/.96 Arial Black, Impact, sans-serif; letter-spacing: -.045em; overflow-wrap: anywhere; text-transform: uppercase; text-shadow: .14rem .14rem 0 rgba(255,255,255,.68); }
.city-street-burst span { display: block; width: min(30rem, 100%); padding: .8rem 1rem; color: #171510; background: rgba(255,249,226,.95); box-shadow: .28rem .28rem 0 rgba(25,20,12,.24); font: 900 clamp(.95rem, 2vw, 1.2rem)/1.45 Arial, sans-serif; overflow-wrap: anywhere; }
.city-street-burst.is-pickpocket { color: #f8f1dc; }
.city-street-burst.is-pickpocket::before { background: #d9513f; }
.city-street-burst.is-bite::before { background: #f3c33b; }
.city-street-burst.is-dead { color: #f2fff9; }
.city-street-burst.is-dead::before { background: #456b69; }
.city-street-burst.is-escape { color: #fff5d8; }
.city-street-burst.is-escape::before { background: #78518a; }
.city-street-burst.is-power-up { color: #102b3b; }
.city-street-burst.is-power-up::before { background: #6ee5ff; }
.city-street-burst.is-eaten { color: #fff9dd; }
.city-street-burst.is-eaten::before { background: #377fbd; }
.bot-build-burst { position: fixed; z-index: 10000; top: 50%; width: min(44rem, calc(100vw - 2rem)); min-height: 18rem; padding-top: 4.8rem; padding-bottom: 4.8rem; color: #171510; pointer-events: auto; }
.bot-build-burst::before { background: var(--bot-burst-colour, #f3c33b); filter: drop-shadow(0 1rem 0 rgba(0,0,0,.38)) drop-shadow(0 1.4rem 2.2rem rgba(0,0,0,.38)); }
.bot-build-burst-close { position: absolute; z-index: 2; top: 2.8rem; right: 3.8rem; display: grid; width: 2.4rem; min-width: 0; height: 2.4rem; min-height: 0; padding: 0; place-items: center; color: #171510; background: rgba(255,249,226,.9); border: 2px solid #171510; border-radius: 50%; box-shadow: .16rem .16rem 0 rgba(23,21,16,.28); font: 900 1.35rem/1 Arial, sans-serif; }
.bot-build-burst-close:hover, .bot-build-burst-close:focus-visible { color: #fff9e2; background: #171510; border-color: #171510; }
.bot-build-burst .bot-build-burst-progress, .bot-build-burst .bot-build-burst-install { display: block; width: min(30rem, 100%); color: #171510; font: 900 .72rem/1.3 Arial, sans-serif; letter-spacing: .11em; text-transform: uppercase; overflow-wrap: anywhere; }
.bot-build-burst .bot-build-burst-progress { margin-bottom: .6rem; }
.bot-build-burst .bot-build-burst-install { margin-top: .85rem; padding: .35rem .55rem; background: rgba(255,249,226,.72); box-shadow: .18rem .18rem 0 rgba(25,20,12,.18); }
@keyframes city-burst-in { from { opacity: 0; transform: translate(-50%, -50%) scale(.35) rotate(8deg); } to { opacity: 1; transform: translate(-50%, -50%) scale(1) rotate(-1.5deg); } }
.city-explore-hint { position: absolute; right: 1.25rem; bottom: 1.2rem; left: 1.25rem; margin: 0; padding: .45rem .65rem; color: #dbd1b7; background: rgba(8,12,10,.86); font-size: .72rem; text-align: center; pointer-events: none; }
.city-explore-location { padding: 1.2rem; color: #262a26; background: #f5edd9; }
.city-explore-location .eyebrow { color: #9a5b08; }
.city-explore-location h3 { margin: .3rem 0 .65rem; font-size: 1.35rem; }
.city-explore-location p { line-height: 1.48; }
.city-explore-location .city-enter-link { display: inline; padding: 0; border: 0; color: #855006; background: transparent; font-weight: 800; }
.city-explore-location button { margin-top: .5rem; }
.city-explore-status { min-height: 2.5rem; padding: .75rem 1.1rem; color: #dcd2ba; border-top: 1px solid #344039; background: #111813; }
.city-explore-rewards { margin: 0; padding: .7rem 1.1rem; color: #493f2d; background: #f3c33b; font-size: .78rem; font-weight: 700; }
.city-explore-directory { color: #292b27; background: #eee3c9; }
.city-explore-directory summary { padding: .8rem 1rem; cursor: pointer; font-weight: 900; text-transform: uppercase; }
.city-explore-directory ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem; margin: 0; padding: 0 1rem 1rem; list-style: none; }
.city-explore-directory li { display: grid; grid-template-columns: 2rem 1fr; gap: .1rem .6rem; align-items: center; padding: .55rem; background: rgba(255,255,255,.48); }
.city-explore-directory li > span { grid-row: 1 / 3; display: grid; width: 2rem; height: 2rem; place-items: center; color: #eff9f7; background: #153743; border-radius: 50%; font-weight: 900; }
.city-explore-directory li.visited > span { color: #17301c; background: #82b96c; }
.city-explore-directory small { color: #685f50; line-height: 1.3; }
.city-explore-legend { display: flex; flex-wrap: wrap; gap: .55rem 1.2rem; padding: .8rem 1rem 1rem; color: #bfc9c2; background: #111813; font-size: .68rem; }
.city-explore-legend span::before { content: ''; display: inline-block; width: .7rem; height: .7rem; margin-right: .35rem; vertical-align: -.08rem; background: #d9cfb4; }
.city-explore-legend .player::before { background: #f69a17; border-radius: 50%; }
.city-explore-legend .dwarf::before { background: linear-gradient(135deg, #f0df35 0 32%, #78bd46 33% 65%, #bd79c9 66%); clip-path: polygon(50% 0, 100% 45%, 76% 45%, 76% 100%, 24% 100%, 24% 45%, 0 45%); }
.city-explore-legend .dead::before { background: #a8c9bd; border-radius: 50% 50% 20% 20%; box-shadow: 0 0 6px #a8c9bd; }
.city-explore-legend .destination::before { background: #65b4c8; border-radius: 50%; }
.city-explore-legend .sign::before { background: #f3c33b; }
.city-explore-legend .scrap::before { width: .45rem; height: .45rem; margin-right: .48rem; background: #ffd767; border-radius: 50%; box-shadow: 0 0 7px #f39a18; }
.city-explore-legend .power-up::before { background: #fff1a6; border: 2px solid #58cfff; box-shadow: 0 0 8px #58cfff; transform: rotate(45deg) scale(.72); }
.city-explore-dialog { width: min(31rem, calc(100vw - 2rem)); padding: 1.5rem; color: #242721; background: #f5edd9; border: 0; border-top: 5px solid #f39a18; box-shadow: 0 24px 65px rgba(0,0,0,.62); }
.city-explore-dialog::backdrop { background: rgba(4,7,5,.78); }
.city-explore-dialog .dialog-close { float: right; padding: .2rem .45rem; color: #393a33; background: transparent; border: 0; font-size: 1.4rem; }
.city-explore-dialog h2 { margin-top: .3rem; }
.city-sign-progress { color: #6e592a; font-size: .78rem; font-weight: 800; }
.city-encounter-options { display: grid; gap: .65rem; margin-top: 1rem; }
.city-encounter-outcome { margin-top: 1rem; padding-top: 1rem; border-top: 1px solid #cabc9d; }
.city-encounter-outcome strong { display: block; margin: .5rem 0 1rem; color: #376a37; }
.city-walk-link { margin-top: .75rem; }
.city-walk-link .text-link { border: 0; }

/* Each regional capital gives the miner one modest, persistent home. */
.city-home-page .text-link { display: inline; padding: 0; border: 0; background: transparent; }
.city-home-interior { position: relative; isolation: isolate; overflow: hidden; padding: clamp(1.2rem, 4vw, 2.4rem); color: #f5efe1; background: #181d19; box-shadow: 0 18px 35px rgba(25,20,12,.22); }
.city-home-interior::before { content: ''; position: absolute; z-index: -2; inset: 0; background-image: linear-gradient(100deg, rgba(11,15,12,.97) 0 36%, rgba(11,15,12,.68)), var(--home-map); background-position: center; background-size: cover; filter: saturate(.85); }
.city-home-interior::after { content: ''; position: absolute; z-index: -1; inset: 0; background: repeating-linear-gradient(90deg, transparent 0 47px, rgba(255,255,255,.025) 48px 49px); }
.city-home-interior > header { max-width: 39rem; margin-bottom: 2rem; }
.city-home-interior h2 { margin: .15rem 0 .6rem; color: #fff8e9; font-size: clamp(2rem, 5vw, 3.7rem); }
.city-home-interior p { line-height: 1.55; }
.home-floorplan { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: 1rem; }
.home-storage-room, .home-bed-room, .home-mail-room { min-height: 12rem; color: #eee8dc; background: rgba(12,17,14,.88); border-top: 4px solid #d38a27; }
.home-storage-room { padding: 1.15rem; }
.home-room-mark { float: right; display: grid; width: 3.3rem; height: 3.3rem; place-items: center; color: #191c18; background: #e3b75e; font-size: 1.6rem; }
.home-bed-room { position: relative; overflow: hidden; }
.home-bed-nook { position: relative; min-height: 12.2rem; overflow: hidden; background: linear-gradient(180deg, rgba(45,61,65,.96) 0 62%, #5c4935 63% 66%, #28251f 67%); }
.home-bed-nook::before { content: ''; position: absolute; top: 1rem; right: 1.1rem; width: 4.7rem; height: 3.8rem; border: .38rem solid #171b19; background: linear-gradient(145deg, #19324a 0 48%, #d8a354 49% 51%, #152638 52%); box-shadow: inset 0 0 0 2px #788d8d, 0 .5rem 1rem rgba(0,0,0,.4); }
.home-bed-nook::after { content: ''; position: absolute; z-index: 0; right: 6%; bottom: .5rem; width: 44%; height: 1.8rem; border-radius: 50%; background: repeating-linear-gradient(90deg, #874426 0 8px, #d19b45 9px 16px, #433b32 17px 24px); transform: skewX(-18deg); box-shadow: 0 .4rem .7rem rgba(0,0,0,.35); }
.home-bed-copy { padding: .9rem 1.15rem 1.15rem; }
.home-bed-copy > p { margin-top: 0; }
.home-bed-copy button { margin-top: .15rem; }
.home-bed { position: absolute; z-index: 2; left: 5%; bottom: .15rem; width: 90%; height: 10.7rem; filter: drop-shadow(.55rem .75rem .45rem rgba(0,0,0,.48)); }
.home-bed img { display: block; width: 100%; height: 100%; object-fit: contain; object-position: center bottom; }
.home-storage-room h3, .home-bed-room h3, .home-mail-room h3 { margin: .2rem 0 .55rem; color: #fff7e6; }
.home-storage-room .text-link { color: #ffd275; font-weight: 900; }
.home-mail-room { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(15rem, .72fr) minmax(0, 1.28fr); gap: 1.3rem; align-items: center; min-height: 9rem; padding: 1.1rem; }
.home-mail-room > div p:last-child { max-width: 40rem; margin-bottom: 0; color: #c9c3b5; }
.home-mail-terminal { position: relative; display: grid; min-height: 7rem; padding: .75rem 3.3rem .75rem 1rem; color: #d9f6d2; background: linear-gradient(145deg, #344039, #161c19 72%); box-shadow: inset 0 0 0 3px #0b0e0c, inset 0 0 0 5px #586259, .45rem .5rem 0 rgba(0,0,0,.28); text-decoration: none; }
.home-mail-terminal:hover, .home-mail-terminal:focus-visible { color: #f3ffc9; background: linear-gradient(145deg, #3e4d42, #19221d 72%); outline: 3px solid #efb43f; outline-offset: 2px; }
.home-mail-screen { display: grid; align-content: center; gap: .2rem; min-width: 0; padding: .6rem .8rem; background: repeating-linear-gradient(0deg, rgba(146,255,123,.035) 0 2px, transparent 2px 4px), #0c1b13; box-shadow: inset 0 0 1.2rem rgba(98,225,111,.1); }
.home-mail-screen small { color: #7e9a82; font: 800 .54rem/1 Arial, sans-serif; letter-spacing: .13em; text-transform: uppercase; }
.home-mail-screen strong { overflow: hidden; color: #c8f2a8; font: 900 1.05rem/1.2 Arial, sans-serif; text-overflow: ellipsis; white-space: nowrap; }
.home-mail-screen em { color: #f2c15b; font: normal 800 .68rem/1.2 Arial, sans-serif; }
.home-mail-lamp { position: absolute; z-index: 2; top: .75rem; right: 1rem; width: .65rem; height: .65rem; background: #93ef61; border-radius: 50%; box-shadow: 0 0 .6rem #80ee52; }
.home-mail-slot { position: absolute; right: .75rem; bottom: 1rem; width: 2rem; height: .28rem; background: #050706; box-shadow: 0 .35rem 0 #6a6d64; }
.home-gallery { margin-top: 1.2rem; padding: 1.2rem; background: rgba(255,252,244,.68); box-shadow: inset 0 0 0 1px #cfbea0; }
.home-gallery > header { display: flex; align-items: end; justify-content: space-between; gap: 1.5rem; margin-bottom: 1rem; }
.home-gallery > header h2 { margin: .15rem 0 0; }
.home-gallery > header > p { max-width: 35rem; margin: 0; color: #665d50; }
.home-display-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .75rem; }
.home-display-slot { display: grid; align-content: start; gap: .65rem; min-width: 0; padding: .85rem; background: #f8f1e4; box-shadow: inset 0 0 0 1px #d2c3a6; }
.home-display-slot > .eyebrow { margin: 0; }
.home-exhibit, .home-empty-plinth { display: grid; min-height: 10rem; place-items: center; align-content: center; gap: .35rem; padding: .75rem; color: #272a25; background: linear-gradient(#202622 0 68%, #6b604d 69% 76%, #342f28 77%); text-align: center; text-decoration: none; }
.home-exhibit img { width: 82px; height: 82px; object-fit: contain; filter: drop-shadow(0 9px 10px rgba(0,0,0,.65)); }
.home-exhibit strong { color: var(--rarity-link-color, #fff1c9); }
.home-exhibit small { color: #c9c0b0; }
.home-empty-plinth span { color: #e3b75e; font-size: 2.6rem; }
.home-empty-plinth strong { color: #e8e0d1; }
.home-empty-plinth small { color: #aaa194; }
.home-display-slot form { margin: 0; }
.home-display-picker label { margin: 0 0 .45rem; }
.home-display-picker button, .home-display-slot > form button { width: 100%; }
.home-upgrade-tease { display: flex; align-items: center; justify-content: space-between; gap: 2rem; margin-top: 1.2rem; padding: 1.3rem; color: #efe9dc; background: linear-gradient(125deg, #20251f, #344238); border-left: 6px solid #d79a31; }
.home-upgrade-tease h2 { margin: .2rem 0 .45rem; color: #fff8e9; }
.home-upgrade-tease p:last-child { max-width: 48rem; margin-bottom: 0; color: #ccc5b7; }
.home-upgrade-tease button { flex: 0 0 auto; min-width: 13rem; }
.home-dream-dialog { width: min(1120px, calc(100vw - 2rem)); max-width: none; height: min(720px, calc(100vh - 2rem)); max-height: none; margin: auto; padding: 0; overflow: hidden; color: #fbf5e8; background: transparent; border: 0; box-shadow: 0 2rem 8rem #000; }
.home-dream-dialog::backdrop { background: rgba(3,4,8,.93); backdrop-filter: blur(8px); }
.home-dream-world { position: relative; isolation: isolate; min-height: 100%; overflow: hidden; background: radial-gradient(circle at 50% 72%, rgba(245,158,49,.2), transparent 26%), radial-gradient(circle at 20% 25%, rgba(163,68,194,.32), transparent 30%), radial-gradient(circle at 78% 23%, rgba(36,145,183,.26), transparent 32%), linear-gradient(160deg, #070813, #171128 52%, #080b16); }
.home-dream-world::before, .home-dream-world::after { content: ''; position: absolute; z-index: -1; border-radius: 50%; filter: blur(25px); opacity: .7; animation: home-dream-cloud 13s ease-in-out infinite alternate; }
.home-dream-world::before { top: 19%; left: 17%; width: 38%; height: 28%; background: rgba(88,45,140,.38); }
.home-dream-world::after { right: 12%; bottom: 16%; width: 34%; height: 26%; background: rgba(23,123,142,.3); animation-delay: -6s; }
.home-dream-world > header { position: relative; z-index: 12; display: flex; align-items: start; justify-content: space-between; gap: 2rem; padding: 1.4rem 1.5rem; background: linear-gradient(180deg, rgba(5,6,12,.94), rgba(5,6,12,.12)); }
.home-dream-world > header h2 { margin: .2rem 0 .35rem; color: #fff8e5; font-size: clamp(1.6rem, 4vw, 3rem); text-shadow: 0 0 1.3rem rgba(234,171,72,.35); }
.home-dream-world > header p:last-child { max-width: 38rem; margin: 0; color: #c8c3d7; }
.home-dream-world > header form { margin: 0; }
.home-dream-world > header button { white-space: nowrap; }
.home-dream-stars { position: absolute; z-index: 0; inset: 0; opacity: .8; background-image: radial-gradient(circle, #fff 0 1px, transparent 1.5px), radial-gradient(circle, #f6bb65 0 1px, transparent 1.7px), radial-gradient(circle, #a9dffc 0 1px, transparent 1.5px); background-position: 0 0, 17px 31px, 41px 13px; background-size: 67px 67px, 83px 83px, 109px 109px; animation: home-dream-stars 22s linear infinite; }
.home-dream-things { position: absolute; z-index: 5; inset: 5rem 0 5rem; }
.home-dream-thing { --dream-scale: 1; position: absolute; display: grid; width: clamp(5rem, 10vw, 8rem); place-items: center; gap: .25rem; opacity: .96; transform: translate(-50%, -50%) scale(var(--dream-scale)); transition: opacity .3s ease, filter .3s ease; animation: home-dream-float 5.8s ease-in-out infinite alternate; }
.home-dream-thing::before { content: ''; position: absolute; z-index: -1; width: 82%; aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle, rgba(255,210,95,.36), rgba(139,67,197,.12) 55%, transparent 72%); filter: blur(7px); }
.home-dream-thing img { width: clamp(3.5rem, 7vw, 6rem); height: clamp(3.5rem, 7vw, 6rem); object-fit: contain; filter: drop-shadow(0 0 .45rem #f5bc58) drop-shadow(0 .8rem 1rem rgba(0,0,0,.7)); }
.home-dream-thing span { max-width: 9rem; padding: .22rem .4rem; overflow: hidden; color: #fff0ba; background: rgba(7,7,15,.72); font: 900 .58rem/1.2 Arial, sans-serif; letter-spacing: .04em; text-align: center; text-overflow: ellipsis; text-transform: uppercase; white-space: nowrap; }
.home-dream-thing.is-changing { opacity: 0; filter: blur(8px); }
.dream-slot-1 { top: 22%; left: 8%; animation-delay: -1s; }
.dream-slot-2 { --dream-scale: .88; top: 13%; left: 29%; animation-delay: -3.5s; }
.dream-slot-3 { --dream-scale: .9; top: 12%; left: 68%; animation-delay: -2.2s; }
.dream-slot-4 { top: 24%; left: 91%; animation-delay: -4.7s; }
.dream-slot-5 { --dream-scale: .9; top: 69%; left: 11%; animation-delay: -2.8s; }
.dream-slot-6 { --dream-scale: .78; top: 77%; left: 28%; animation-delay: -.3s; }
.dream-slot-7 { --dream-scale: .82; top: 75%; left: 73%; animation-delay: -4s; }
.dream-slot-8 { --dream-scale: .94; top: 67%; left: 91%; animation-delay: -1.8s; }
.home-dream-bed { position: absolute; z-index: 4; left: 50%; bottom: 1.8rem; width: min(38rem, 58vw); height: 16rem; transform: translateX(-50%); }
.home-dream-bed .home-bed { left: 0; bottom: 0; width: 100%; height: 100%; filter: drop-shadow(0 1.2rem 1rem rgba(0,0,0,.8)) drop-shadow(0 0 2rem rgba(232,154,57,.28)); }
.home-dream-caption { position: absolute; z-index: 8; right: 1.5rem; bottom: 1rem; max-width: 16rem; margin: 0; color: #afa8c4; font: italic .78rem/1.4 Georgia, serif; text-align: right; }
body.home-dream-open { overflow: hidden; }
@keyframes home-dream-float { from { transform: translate(-50%, -50%) translateY(-8px) rotate(-2deg) scale(var(--dream-scale)); } to { transform: translate(-50%, -50%) translateY(11px) rotate(2deg) scale(var(--dream-scale)); } }
@keyframes home-dream-cloud { from { transform: translate3d(-4%, -3%, 0) scale(.92); } to { transform: translate3d(6%, 5%, 0) scale(1.12); } }
@keyframes home-dream-stars { to { background-position: 67px 67px, -66px 114px, 150px -96px; } }

/* Every city bar is a physically local, presence-gated conversation room. */
.city-bar-page .text-link, .bar-message > a, .bar-presence a { display: inline; padding: 0; border: 0; background: transparent; }
.city-bar-interior { position: relative; isolation: isolate; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2rem; min-height: 19rem; align-items: end; overflow: hidden; margin-bottom: 1rem; padding: clamp(1.4rem, 4vw, 2.5rem); color: #f5ead2; background: #17130f; box-shadow: 0 18px 35px rgba(25,20,12,.24); }
.city-bar-interior::before { content: ''; position: absolute; z-index: -3; inset: 0; background-image: linear-gradient(90deg, rgba(17,12,9,.96) 0 42%, rgba(17,12,9,.55)), var(--bar-map); background-position: center; background-size: cover; filter: saturate(.7) sepia(.18); }
.city-bar-interior::after { content: ''; position: absolute; z-index: -2; inset: 0; background: radial-gradient(circle at 74% 22%, rgba(244,165,52,.24), transparent 22%), linear-gradient(180deg, transparent 55%, rgba(5,4,3,.72)); }
.bar-backdrop { position: absolute; z-index: -1; inset: 0 0 0 42%; }
.bar-counter { position: absolute; right: -4%; bottom: 2.2rem; width: 87%; height: 4rem; border-top: .65rem solid #bd7b2d; background: linear-gradient(180deg, #5b331e, #261911); box-shadow: 0 1rem 1.5rem rgba(0,0,0,.55); }
.bar-bottles { position: absolute; top: 24%; right: 8%; width: 62%; height: 5.3rem; border-bottom: .45rem solid #6f4a2b; background: repeating-linear-gradient(90deg, transparent 0 7%, #47715b 7% 10%, transparent 10% 14%, #9b5b35 14% 17%, transparent 17% 22%, #c0a24d 22% 24%, transparent 24% 30%); filter: drop-shadow(0 .3rem .25rem #000); }
.bar-lamp { position: absolute; top: 0; width: 1px; height: 5rem; background: #443728; }
.bar-lamp::after { content: ''; position: absolute; bottom: -.1rem; left: -.8rem; width: 1.65rem; height: 1.2rem; background: #f0b34d; clip-path: polygon(25% 0, 75% 0, 100% 100%, 0 100%); box-shadow: 0 0 2rem #ef9b30; }
.bar-lamp-left { left: 24%; }
.bar-lamp-right { right: 21%; }
.bar-stool { position: absolute; bottom: 0; width: 2.6rem; height: 3.8rem; border-top: .65rem solid #9a6330; border-right: .35rem solid #51351f; border-left: .35rem solid #51351f; transform: skewX(-3deg); }
.bar-stool-one { left: 23%; }
.bar-stool-two { left: 49%; }
.bar-stool-three { left: 74%; }
.bar-intro { position: relative; max-width: 37rem; }
.bar-intro h2 { margin: .2rem 0 .7rem; color: #fff4da; font-size: clamp(2rem, 5vw, 3.7rem); line-height: .98; }
.bar-intro p:last-child { max-width: 34rem; color: #d0c2ab; line-height: 1.55; }
.city-bar-interior dl { position: relative; display: flex; margin: 0; background: rgba(8,7,5,.82); }
.city-bar-interior dl div { min-width: 6.5rem; padding: .85rem; }
.city-bar-interior dt { color: #aa9c87; font: 800 .55rem/1.2 Arial, sans-serif; letter-spacing: .12em; text-transform: uppercase; }
.city-bar-interior dd { margin: .3rem 0 0; color: #ffd783; font: 900 1.05rem/1.2 Arial, sans-serif; }
.bar-workspace { display: grid; grid-template-columns: minmax(0, 1fr) 17rem; gap: 1rem; }
.bar-conversation { min-width: 0; color: #ece6d9; background: #111511; border-top: 4px solid #d58b2b; box-shadow: 0 .8rem 1.6rem rgba(36,28,18,.15); }
.bar-conversation > header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 0; padding: .85rem 1rem; color: inherit; background: #181d18; border: 0; border-bottom: 1px solid #364038; }
.bar-conversation > header h2, .bar-conversation > header p { margin: 0; color: #fff4dd; }
.bar-live-status { color: #b9aa91; font: 800 .65rem/1.2 Arial, sans-serif; text-transform: uppercase; }
.bar-live-status::before { content: ''; display: inline-block; width: .58rem; height: .58rem; margin-right: .38rem; background: #80786a; border-radius: 50%; vertical-align: -.05rem; }
.bar-live-status.is-live::before { background: #72b76a; box-shadow: 0 0 .45rem #72b76a; }
.bar-chat-log { height: 27rem; overflow-y: auto; overscroll-behavior: contain; }
.bar-message { display: grid; grid-template-columns: minmax(7.5rem, .3fr) minmax(0, 1fr) auto; gap: .8rem; align-items: start; padding: .8rem 1rem; border-bottom: 1px solid #303730; box-shadow: inset 4px 0 var(--bar-speaker, #55666b); }
.bar-message > a { color: var(--bar-speaker, #d5a64e); font-weight: 900; overflow-wrap: anywhere; }
.bar-message.is-own > a::after { content: ' · you'; color: #8e978e; font-size: .62rem; text-transform: uppercase; }
.bar-message p { margin: 0; color: #e6dfd0; line-height: 1.45; overflow-wrap: anywhere; }
.bar-message time { color: #899288; font-size: .65rem; white-space: nowrap; }
.bar-chat-empty { display: grid; min-height: 100%; place-content: center; gap: .3rem; padding: 2rem; color: #8e978d; text-align: center; }
.bar-chat-empty strong { color: #d9d1c1; }
.bar-compose { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .7rem; align-items: end; margin: 0; padding: .85rem 1rem; background: #0b0e0b; border-top: 1px solid #364038; }
.bar-compose label { margin: 0; }
.bar-compose label span { display: block; margin-bottom: .3rem; color: #a49b8b; font: 800 .57rem/1.2 Arial, sans-serif; letter-spacing: .1em; text-transform: uppercase; }
.bar-compose input { width: 100%; margin: 0; color: #24251f; background: #fff9eb; }
.bar-compose-locked { display: grid; gap: .2rem; color: #a89f8f; }
.bar-presence { align-self: start; padding: 1rem; background: rgba(255,252,244,.72); box-shadow: inset 0 0 0 1px #cfbea0; }
.bar-presence > header h2, .bar-presence > header p { margin: 0; }
.bar-presence ul { display: grid; gap: .35rem; margin: .9rem 0; padding: 0; list-style: none; }
.bar-presence li { display: grid; grid-template-columns: .7rem minmax(0, 1fr); gap: .05rem .45rem; align-items: center; padding: .55rem; background: rgba(255,255,255,.6); }
.bar-presence li i { grid-row: 1 / 3; width: .62rem; height: .62rem; background: #67a85d; border-radius: 50%; box-shadow: 0 0 .35rem rgba(64,140,67,.55); }
.bar-presence li a { color: #7f4b08; font-weight: 900; overflow-wrap: anywhere; }
.bar-presence li span { color: #756c5e; font-size: .64rem; }
.bar-privacy-note { margin: 1rem 0; padding: .8rem; color: #dcd5c7; background: #252a24; }
.bar-privacy-note p { margin: .35rem 0 0; color: #bbb3a5; font-size: .74rem; line-height: 1.45; }
.bar-presence > form, .bar-presence > form button { width: 100%; margin: 0; }

/* Transport landmarks reached from the city streets. */
.city-facility-page .text-link { display: inline; padding: 0; border: 0; background: transparent; }
.city-facility-scene { position: relative; isolation: isolate; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2rem; min-height: 16rem; align-items: end; overflow: hidden; margin-bottom: 1.5rem; padding: 2rem; color: #fff5dc; background: #162522; box-shadow: 0 18px 35px rgba(25,20,12,.2); }
.city-facility-scene::before { content: ''; position: absolute; z-index: -3; inset: 0; opacity: .92; }
.facility-departures .city-facility-scene::before { background: linear-gradient(155deg, #594b37 0 39%, #272b28 40% 100%); }
.facility-harbour .city-facility-scene::before { background: linear-gradient(170deg, #718688 0 38%, #173e4d 39% 68%, #0b242b 69% 100%); }
.facility-airfield .city-facility-scene::before { background: linear-gradient(168deg, #7b9293 0 43%, #404842 44% 100%); }
.facility-horizon { position: absolute; z-index: -2; top: 25%; right: 0; left: 0; height: 2px; background: rgba(255,238,189,.55); box-shadow: 0 5px 35px rgba(255,210,87,.35); }
.facility-track { position: absolute; z-index: -1; right: 7%; bottom: -45%; width: 55%; height: 105%; transform: perspective(10rem) rotateX(62deg); transform-origin: bottom; border-right: 3px dashed rgba(255,221,125,.8); border-left: 3px dashed rgba(255,221,125,.8); background: rgba(8,15,13,.38); }
.facility-harbour .facility-track { right: -2%; bottom: 0; width: 48%; height: 52%; transform: none; border: 0; border-top: 7px solid #ae8c57; background: repeating-linear-gradient(90deg, rgba(235,237,205,.17) 0 2px, transparent 2px 55px); }
.facility-marker { display: grid; width: 3.8rem; height: 3.8rem; place-items: center; align-self: start; color: #131a16; background: #f3a01d; border-radius: 50%; box-shadow: 0 0 0 8px rgba(243,160,29,.2); font: 900 1.5rem/1 Arial, sans-serif; }
.city-facility-scene > div:nth-of-type(4) { max-width: 34rem; }
.city-facility-scene h2 { margin: .15rem 0 .6rem; color: #fff8e7; font-size: clamp(2rem, 5vw, 3.6rem); }
.city-facility-scene p { max-width: 40rem; line-height: 1.5; }
.city-facility-scene dl { display: flex; align-self: end; margin: 0; background: rgba(5,10,8,.68); }
.city-facility-scene dl div { min-width: 6rem; padding: .8rem; }
.city-facility-scene dt { color: #b5c1b8; font: 800 .55rem/1.2 Arial, sans-serif; letter-spacing: .12em; text-transform: uppercase; }
.city-facility-scene dd { margin: .3rem 0 0; color: #fff3cf; font: 900 1.4rem/1 Arial, sans-serif; }
.city-facility-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.city-facility-columns > section, .facility-underway { padding: 1.2rem; background: rgba(255,252,244,.63); box-shadow: inset 0 0 0 1px #cfbea0; }
.city-facility-columns h2, .facility-underway h2 { margin: .15rem 0 1rem; }

.city-civic-page .text-link { display: inline; padding: 0; border: 0; background: transparent; }
.city-civic-scene { position: relative; isolation: isolate; min-height: 29rem; overflow: hidden; margin-bottom: 1rem; color: #fff5dc; background: #17241f; box-shadow: 0 18px 35px rgba(25,20,12,.2); }
.city-civic-copy { position: absolute; z-index: 8; right: 2rem; bottom: 2rem; width: min(25rem, 46%); padding: 1.35rem; background: rgba(7,13,10,.88); box-shadow: .5rem .5rem 0 color-mix(in srgb, var(--city-accent) 62%, transparent); }
.city-civic-copy h2 { margin: .15rem 0 .6rem; color: #fff8e7; font-size: clamp(1.7rem, 4vw, 3rem); line-height: .98; }
.city-civic-copy p:last-child { margin-bottom: 0; line-height: 1.48; }
.city-civic-note { padding: 1.25rem 1.4rem; background: rgba(255,252,244,.63); box-shadow: inset 0 0 0 1px #cfbea0; }
.city-civic-note h2 { margin: .15rem 0 .4rem; }
.park-sky, .landmark-sky { position: absolute; inset: 0 0 38%; background: linear-gradient(#758c88, #c9b77f); }
.park-ground, .landmark-ground { position: absolute; inset: 57% 0 0; background: linear-gradient(167deg, #536c3a, #273b27 62%, #18271f); }
.park-ground::after { content: ''; position: absolute; inset: 26% -5% auto; height: 3.6rem; border: .8rem solid #c9a96a; border-right-color: transparent; border-left-color: transparent; border-radius: 50%; transform: rotate(-3deg); opacity: .75; }
.park-tree { position: absolute; z-index: 2; bottom: 7.5rem; width: 2rem; height: 10rem; background: #593a24; }
.park-tree::before { content: ''; position: absolute; left: 50%; bottom: 6rem; width: 8rem; height: 8rem; border-radius: 46% 54% 41% 59%; background: #2f623b; transform: translateX(-50%) rotate(9deg); box-shadow: -2.6rem 2rem 0 #416f3b, 2.4rem 1.5rem 0 #254c37; }
.park-tree-left { left: 7%; }
.park-tree-right { right: 8%; transform: scale(.8); }
.park-roundabout { position: absolute; z-index: 4; left: 34%; bottom: 5.4rem; width: 8rem; height: 2.3rem; border: .45rem solid #e59a26; border-radius: 50%; background: repeating-conic-gradient(#d54b37 0 8deg, #efbc39 8deg 16deg); box-shadow: 0 1.2rem 0 -.8rem #141a16; }
.park-roundabout::after { content: ''; position: absolute; left: calc(50% - .28rem); top: -2.9rem; width: .56rem; height: 5.8rem; background: #e1d2a0; }
.park-climbing-frame { position: absolute; z-index: 3; left: 17%; bottom: 7rem; width: 11rem; height: 7rem; border: .55rem solid #65b4c8; border-bottom: 0; transform: skew(-8deg); }
.park-climbing-frame::before, .park-climbing-frame::after { content: ''; position: absolute; inset: .4rem 2.9rem; border-left: .25rem solid #eed26b; border-right: .25rem solid #eed26b; }
.park-climbing-frame::after { inset: 2.3rem .3rem auto; height: .25rem; border: 0; background: #eed26b; box-shadow: 0 1.8rem #eed26b; }
.park-young-dwarf { --dwarf-colour: #f0df35; position: absolute; z-index: 6; width: 2.2rem; height: 3rem; filter: drop-shadow(.18rem .3rem .1rem rgba(0,0,0,.35)); animation: park-dwarf-hop 1.8s ease-in-out infinite alternate; }
.park-young-dwarf i { position: absolute; left: .55rem; top: .65rem; width: 1.1rem; height: 1rem; border-radius: 50%; background: #d6aa7d; }
.park-young-dwarf i::before { content: ''; position: absolute; left: -.4rem; top: -.55rem; width: 1.9rem; height: .85rem; background: var(--dwarf-colour); clip-path: polygon(50% 0, 100% 100%, 0 100%); }
.park-young-dwarf b { position: absolute; left: .4rem; top: 1.5rem; width: 1.4rem; height: 1.35rem; background: var(--dwarf-colour); clip-path: polygon(10% 0, 90% 0, 72% 100%, 50% 70%, 28% 100%); }
.park-young-dwarf.dwarf-green { --dwarf-colour: #78bd46; }.park-young-dwarf.dwarf-blue { --dwarf-colour: #66b9df; }.park-young-dwarf.dwarf-red { --dwarf-colour: #e75b4d; }.park-young-dwarf.dwarf-purple { --dwarf-colour: #bd79c9; }.park-young-dwarf.dwarf-orange { --dwarf-colour: #f49a28; }
.park-young-dwarf.dwarf-1 { left: 24%; bottom: 5.2rem; }.park-young-dwarf.dwarf-2 { left: 31%; bottom: 10.5rem; animation-delay: -.5s; }.park-young-dwarf.dwarf-3 { left: 40%; bottom: 5.4rem; animation-delay: -1s; }.park-young-dwarf.dwarf-4 { left: 48%; bottom: 8.2rem; animation-delay: -.25s; }.park-young-dwarf.dwarf-5 { left: 14%; bottom: 5rem; animation-delay: -.75s; }.park-young-dwarf.dwarf-6 { left: 54%; bottom: 5.8rem; animation-delay: -1.25s; }
@keyframes park-dwarf-hop { to { transform: translateY(-.55rem) rotate(3deg); } }

/* Each civic landmark is presented as a surveyed architectural plate. The SVG owns
   its draughtsmanship; this frame gives every region a distinct ink and atmosphere. */
.city-landmark-scene {
  --landmark-field: #111b1a;
  --landmark-field-deep: #080d0c;
  --landmark-grid: rgba(240, 218, 174, .11);
  --landmark-line: #f2d9a8;
  --landmark-line-soft: #a99472;
  --landmark-fill: #6d5b43;
  --landmark-fill-deep: #302b24;
  --landmark-highlight: #f3a01d;
  --landmark-glass: #74c5c9;
  --landmark-water: #367986;
  display: grid;
  grid-template-columns: minmax(0, 1.8fr) minmax(16.5rem, .8fr);
  min-height: 34rem;
  border: 1px solid color-mix(in srgb, var(--landmark-line) 34%, transparent);
  border-top: .3rem solid var(--city-accent, var(--landmark-highlight));
  color: var(--landmark-line);
  background:
    radial-gradient(circle at 34% 42%, color-mix(in srgb, var(--landmark-highlight) 13%, transparent), transparent 38%),
    linear-gradient(145deg, var(--landmark-field) 0 58%, var(--landmark-field-deep) 100%);
  box-shadow: 0 1.2rem 2.4rem rgba(25, 20, 12, .24), inset 0 0 0 1px rgba(255, 255, 255, .035);
}
.city-landmark-scene::before {
  content: '';
  position: absolute;
  z-index: -1;
  inset: 0;
  pointer-events: none;
  background-image:
    repeating-linear-gradient(0deg, transparent 0 31px, var(--landmark-grid) 31px 32px),
    repeating-linear-gradient(90deg, transparent 0 31px, var(--landmark-grid) 31px 32px);
  background-position: center;
  mask-image: linear-gradient(90deg, #000 0 70%, transparent 96%);
}
.city-landmark-scene::after {
  content: '';
  position: absolute;
  z-index: 7;
  inset: .75rem;
  border: 1px solid color-mix(in srgb, var(--landmark-line) 22%, transparent);
  pointer-events: none;
}
.city-landmark-art {
  z-index: 2;
  display: block;
  align-self: center;
  width: 100%;
  height: auto;
  max-height: 33rem;
  padding: 1.35rem .4rem 1.35rem 1.35rem;
  overflow: visible;
  color: var(--landmark-line);
  filter: drop-shadow(.85rem 1rem .65rem rgba(0, 0, 0, .36));
}
.city-landmark-scene .city-civic-copy {
  position: relative;
  z-index: 8;
  right: auto;
  bottom: auto;
  align-self: end;
  width: auto;
  margin: 2rem 2rem 2rem .75rem;
  padding: 1.3rem 1.35rem 1.4rem;
  color: #f6edda;
  background: rgba(6, 10, 9, .92);
  border-top: 2px solid var(--landmark-highlight);
  box-shadow: .42rem .42rem 0 color-mix(in srgb, var(--city-accent) 60%, transparent);
}
.city-landmark-scene .city-civic-copy .eyebrow { color: var(--landmark-highlight); }
.city-landmark-scene .city-civic-copy h2 { color: #fffaf0; text-wrap: balance; }
.city-landmark-scene .city-civic-copy p:last-child { color: #e8ddc9; }

.city-landmark-page.region-aso .city-landmark-scene {
  --landmark-field: #211510; --landmark-field-deep: #0b0907; --landmark-grid: rgba(239, 157, 68, .12);
  --landmark-line: #ffd39a; --landmark-line-soft: #b98056; --landmark-fill: #7c4029;
  --landmark-fill-deep: #321d18; --landmark-highlight: #ff8b32; --landmark-glass: #6fc1c6; --landmark-water: #235f6b;
}
.city-landmark-page.region-bromo .city-landmark-scene {
  --landmark-field: #20201d; --landmark-field-deep: #0b0b0a; --landmark-grid: rgba(226, 213, 166, .1);
  --landmark-line: #eee0b5; --landmark-line-soft: #aaa28d; --landmark-fill: #68645d;
  --landmark-fill-deep: #302f2c; --landmark-highlight: #dcb34f; --landmark-glass: #9dbbb5; --landmark-water: #476b6d;
}
.city-landmark-page.region-calbuco .city-landmark-scene {
  --landmark-field: #102421; --landmark-field-deep: #06100f; --landmark-grid: rgba(115, 193, 166, .11);
  --landmark-line: #d8e4b7; --landmark-line-soft: #88a383; --landmark-fill: #48684e;
  --landmark-fill-deep: #20372d; --landmark-highlight: #69c2b1; --landmark-glass: #6ed1df; --landmark-water: #267889;
}
.city-landmark-page.region-dempo .city-landmark-scene {
  --landmark-field: #10242f; --landmark-field-deep: #061018; --landmark-grid: rgba(162, 221, 235, .12);
  --landmark-line: #daf5f3; --landmark-line-soft: #8fb4c1; --landmark-fill: #577786;
  --landmark-fill-deep: #213c4a; --landmark-highlight: #91e7ef; --landmark-glass: #b9f7f2; --landmark-water: #3f91a7;
}
.city-landmark-page.region-ebeko .city-landmark-scene {
  --landmark-field: #18231e; --landmark-field-deep: #080f0d; --landmark-grid: rgba(199, 187, 125, .1);
  --landmark-line: #e9ddb0; --landmark-line-soft: #9b9a73; --landmark-fill: #657052;
  --landmark-fill-deep: #28352d; --landmark-highlight: #c59a4f; --landmark-glass: #74c9b7; --landmark-water: #3d786f;
}
.city-landmark-page.region-fogo .city-landmark-scene {
  --landmark-field: #29140c; --landmark-field-deep: #0e0705; --landmark-grid: rgba(244, 159, 76, .12);
  --landmark-line: #f6d39e; --landmark-line-soft: #b48258; --landmark-fill: #8a4b2e;
  --landmark-fill-deep: #3d1f16; --landmark-highlight: #f49a3b; --landmark-glass: #ebbc68; --landmark-water: #2d7180;
}
.city-landmark-page.region-gallego .city-landmark-scene {
  --landmark-field: #0b2628; --landmark-field-deep: #041012; --landmark-grid: rgba(100, 215, 207, .12);
  --landmark-line: #d8edcf; --landmark-line-soft: #84ae9b; --landmark-fill: #426b5c;
  --landmark-fill-deep: #183b38; --landmark-highlight: #efc85a; --landmark-glass: #75ded7; --landmark-water: #247c8f;
}
.facility-route-board, .facility-vehicle-list, .facility-underway ul { display: grid; gap: .45rem; margin: 0; padding: 0; list-style: none; }
.facility-route-board li { display: grid; grid-template-columns: 4rem 1fr auto; gap: .3rem .7rem; align-items: center; padding: .75rem; color: #ede7d5; background: #1e2924; }
.facility-route-board li > span { color: #f3a01d; font: 900 .55rem/1 Arial, sans-serif; letter-spacing: .1em; }
.facility-route-board small { color: #aeb8b0; }
.facility-vehicle-list li { display: grid; grid-template-columns: 3.2rem 1fr auto; gap: .6rem; align-items: center; padding: .7rem 0; border-bottom: 1px solid #d8c9ad; }
.facility-vehicle-list img { width: 3rem; height: 3rem; object-fit: contain; }
.facility-vehicle-list div { display: grid; gap: .2rem; }
.facility-vehicle-list span, .facility-underway span { color: #675f52; font-size: .76rem; }
.facility-underway { margin-top: 1rem; }
.facility-underway li { display: grid; grid-template-columns: 1fr 2fr auto; gap: .75rem; align-items: center; padding: .55rem 0; }

@media (max-width: 780px) {
  .ore-thief-operation > header, .ore-thief-operation > ol { grid-template-columns: 1fr; }
  .ore-thief-operation > header dl { grid-template-columns: 1fr; }
  .ore-thief-operation > header dl div { border-top: 1px solid #343b36; border-left: 0; }
  .ore-thief-operation > footer { align-items: flex-start; flex-direction: column; }
  .city-explorer-header { align-items: flex-start; flex-direction: column; }
  .city-explorer-header dl { width: 100%; }
  .city-explorer-header dl div { flex: 1; }
  .city-explorer-stage { grid-template-columns: 1fr; }
  .city-explore-location { min-height: 10rem; }
  .city-explore-directory ul { grid-template-columns: 1fr; }
  .city-facility-scene, .city-facility-columns { grid-template-columns: 1fr; }
  .city-facility-scene dl { flex-wrap: wrap; }
  .city-civic-copy { right: 1rem; bottom: 1rem; left: 1rem; width: auto; }
  .city-landmark-scene { grid-template-columns: minmax(0, 1fr); min-height: 0; }
  .city-landmark-art { width: 100%; max-height: none; padding: 1rem 1rem 0; }
  .city-landmark-scene .city-civic-copy { margin: .25rem 1rem 1rem; }
  .facility-vehicle-list li, .facility-underway li { grid-template-columns: 3rem 1fr; }
  .facility-vehicle-list .text-link, .facility-underway .text-link { grid-column: 2; }
  .home-floorplan, .home-display-grid { grid-template-columns: 1fr; }
  .home-mail-room { grid-template-columns: 1fr; }
  .city-street-burst { width: 98%; min-height: 12rem; padding: 3rem clamp(2.4rem, 9vw, 4rem) 3.4rem; }
  .home-gallery > header, .home-upgrade-tease { align-items: flex-start; flex-direction: column; }
  .home-dream-dialog { width: 100vw; height: 100vh; }
  .home-dream-world > header { gap: .75rem; padding: 1rem; }
  .home-dream-world > header p:last-child, .home-dream-thing span, .home-dream-caption { display: none; }
  .home-dream-things { inset-block: 7rem 6rem; }
  .home-dream-bed { bottom: 2rem; width: 72vw; height: 11rem; }
  .city-bar-interior, .bar-workspace { grid-template-columns: 1fr; }
  .bar-backdrop { left: 24%; opacity: .58; }
  .city-bar-interior dl { flex-wrap: wrap; }
  .bar-message { grid-template-columns: minmax(6rem, .35fr) minmax(0, 1fr); }
  .bar-message time { grid-column: 1; }
}
@media (max-width: 520px) {
  .city-street-burst { top: 42%; width: 100%; padding: 2.75rem 2.2rem 3rem; transform: translate(-50%, -50%); }
  .city-street-burst strong { font-size: clamp(1.85rem, 11vw, 3rem); }
  .city-street-burst span { padding: .7rem .8rem; font-size: .92rem; }
  .city-landmark-art { padding: .65rem .65rem 0; }
  .city-landmark-scene .city-civic-copy { margin: .15rem .65rem .65rem; padding: 1rem; }
  .bar-compose { grid-template-columns: 1fr; }
  .bar-compose button { width: 100%; }
  .bar-message { grid-template-columns: 1fr auto; gap: .25rem .7rem; }
  .bar-message p { grid-column: 1 / -1; }
  .bar-message time { grid-column: 2; grid-row: 1; }
}
@media (forced-colors: active) {
  .city-landmark-scene {
    --landmark-field: Canvas;
    --landmark-field-deep: Canvas;
    --landmark-grid: CanvasText;
    --landmark-line: CanvasText;
    --landmark-line-soft: CanvasText;
    --landmark-fill: Canvas;
    --landmark-fill-deep: Canvas;
    --landmark-highlight: Highlight;
    --landmark-glass: Highlight;
    --landmark-water: Highlight;
    border: 2px solid CanvasText;
  }
  .city-landmark-scene .city-civic-copy { color: CanvasText; background: Canvas; border: 2px solid CanvasText; }
  .city-landmark-scene .city-civic-copy h2,
  .city-landmark-scene .city-civic-copy p:last-child { color: CanvasText; }
}
@media (prefers-reduced-motion: reduce) {
  .city-street-burst { animation: none; }
  .park-young-dwarf { animation: none; }
  .home-dream-thing, .home-dream-stars, .home-dream-world::before, .home-dream-world::after { animation: none; }
}
