:root{color-scheme:dark;--bg:#121e28;--panel:#20313e;--line:#415d66;--text:#eef5e8;--muted:#b5c8c4;--gold:#f0d395}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at top,#34524d,transparent 75%),var(--bg);color:var(--text);font:15px/1.55 system-ui,-apple-system,"Segoe UI",sans-serif}
.shell{max-width:1510px;margin:auto;padding:24px}a{color:#bce4d8;text-decoration:none}a:hover{text-decoration:underline}header{display:flex;justify-content:space-between;gap:18px;align-items:center;margin-bottom:21px}
h1{font:52px Georgia,serif;letter-spacing:-.04em;margin:0}h1 em{color:var(--gold);font-style:normal}header p{margin:0;color:var(--muted)}.eyebrow{font-size:11px;font-weight:750;letter-spacing:.2em;color:#add7b8}
nav{display:flex;flex-wrap:wrap;gap:9px;justify-content:flex-end}nav a{padding:7px 11px;background:#243c43;border:1px solid var(--line);border-radius:9px;font-size:12px}
.notice{padding:13px 16px;border:1px solid #4f7476;border-radius:12px;background:#233e46;margin-bottom:20px;font-size:13px;color:#d1e5dd}
.section-title{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:9px}.section-title h2{font:22px Georgia,serif;margin:0}.section-title span,.section-title small{font-size:12px;color:var(--muted)}.section-title.less{margin-top:20px}
.avatars{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:24px}
.avatar{display:flex;gap:12px;align-items:center;text-align:left;padding:11px;border:1px solid var(--line);border-radius:12px;color:var(--text);background:#1d333e;min-width:0;cursor:pointer}.avatar:hover{background:#2b4c51}.avatar.active{border-color:var(--gold);background:#344c4a;box-shadow:inset 0 0 0 1px #f0d39566}.avatar img{width:62px;height:62px;object-fit:contain;image-rendering:pixelated}.avatar strong{font-size:18px;display:block}.avatar small{display:block;color:var(--muted);font-size:12px;line-height:1.35}
main{display:grid;grid-template-columns:minmax(0,1fr) 350px;gap:18px;align-items:start}
.board{padding:8px;background:#0c2228;border:1px solid var(--line);border-radius:12px;overflow:hidden}.board canvas{width:100%;height:auto;display:block;image-rendering:pixelated;aspect-ratio:3/2;cursor:crosshair}
.bottom{display:flex;align-items:center;gap:24px;margin:16px 0}.dpad{display:grid;grid-template-columns:repeat(3,48px);gap:5px;flex-shrink:0}.dpad button{border-radius:7px;border:1px solid #72918e;background:#2d545a;color:white;height:43px;font:700 21px system-ui;touch-action:none;user-select:none;cursor:pointer}.dpad button:hover{background:#3e7475}.dpad .inspect{font-size:13px;color:var(--gold)}
.help strong{font-size:14px}.help p{font-size:13px;color:var(--muted);margin:5px 0 10px}kbd{padding:1px 4px;border:1px solid #54717d;border-radius:4px;background:#182b34}.secondary{background:#203943;border:1px solid var(--line);color:white;padding:8px 11px;border-radius:8px;cursor:pointer}
.sidebar{padding:15px;border:1px solid var(--line);background:var(--panel);border-radius:12px}
.maplayout{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}.maplayout button{font-size:11px;line-height:1.1;min-height:42px;background:#2c4850;color:var(--text);border:1px solid #506d74;border-radius:7px;padding:5px;cursor:pointer}.maplayout button:hover{background:#476869}.maplayout button.active{border-color:var(--gold);background:#526b59}
.caption{font-size:11px;color:var(--muted);margin:8px 0 15px}
.info{background:#132b35;border:1px solid #496571;border-radius:9px;padding:12px;min-height:138px}.info h3{margin:0 0 7px;font-size:17px}.info p{font-size:13px;color:#c1d6d0;margin:5px 0}.info .eyebrow{margin-bottom:3px}.info a{font-size:12px}.nearby{list-style:none;padding:0;margin:0;max-height:190px;overflow-y:auto}.nearby li{border-bottom:1px solid #3b565e}.nearby button{width:100%;border:0;padding:8px 4px;background:transparent;color:#d8e6df;text-align:left;cursor:pointer}.nearby button:hover{background:#35545d}.nearby small{float:right;color:#9fbbb6}.pending{border-top:1px solid var(--line);margin-top:18px;padding-top:12px;font-size:13px}.pending p{margin:5px 0 0;color:var(--muted)}
footer{color:#8eadad;font-size:11px;margin-top:26px}
@media(max-width:1000px){main{grid-template-columns:1fr}.avatars{grid-template-columns:repeat(2,1fr)}.sidebar{max-width:none}}
@media(max-width:650px){.shell{padding:12px}header{display:block}h1{font-size:42px}nav{justify-content:flex-start;margin-top:12px}.avatars{gap:6px}.avatar{padding:7px;gap:6px}.avatar img{height:44px;width:44px}.avatar strong{font-size:15px}.avatar small{font-size:11px}.bottom{gap:12px}}

.fire-status{padding:7px 12px;margin-bottom:9px;border:1px solid #b56b46;border-radius:8px;background:#493729;color:#ffd4a2;font-size:13px}
.fire-status[hidden]{display:none}
.dialogue-speaker{font-weight:750;color:#f3d697;margin-top:11px}
.dialogue-line{border-left:3px solid #b9a275;margin:7px 0 12px;padding:9px 12px;background:#29454d;color:#f3f6ee;border-radius:0 7px 7px 0;font-size:14px;line-height:1.65;min-height:78px}
.dialogue-progress{color:#a9c4be;font-size:11px}
.dialogue-controls{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.talk-action{margin-top:10px}.talk-action:disabled{opacity:.55;cursor:not-allowed}
.dialogue-hint{font-size:11px!important;color:#94afa8!important}

/* Town atlas uses geographic coordinates, not a cramped 3x3 list. */
.atlas-toolbar{display:flex;align-items:center;gap:7px;margin-bottom:10px}
.atlas-toolbar button{border:1px solid #59777b;border-radius:7px;background:#304f57;color:#eaf5e8;padding:6px 9px;font-size:12px;cursor:pointer}
.atlas-toolbar button:hover{background:#456d70}
.atlas-toolbar output{font-variant-numeric:tabular-nums;min-width:42px;text-align:center;color:#e4d4a4;font-size:12px}
#atlas-expand{margin-left:auto}
.atlas-scroll{overflow-x:auto;max-width:100%;padding:8px 3px 12px;border:1px solid #3f5b63;border-radius:9px;background:#172e39;scrollbar-width:thin}
.atlas-scroll .maplayout{--atlas-cell:56px;display:grid;grid-template-columns:repeat(5,var(--atlas-cell));grid-template-rows:repeat(4,var(--atlas-cell));gap:5px;width:max-content;max-width:none;justify-content:initial;padding:0;margin:0 auto;position:relative}
.atlas-scroll .maplayout button{min-height:0;min-width:0;width:var(--atlas-cell);height:var(--atlas-cell);font-size:clamp(9px,calc(var(--atlas-cell) / 6.3),13px);line-height:1.17;padding:4px;overflow-wrap:anywhere;border:1px solid #577f7e;box-shadow:0 2px 0 #10282e}
.atlas-scroll .maplayout button[data-warp="pond"]{background:#345966;border-color:#74adcf}
.atlas-scroll .maplayout button[data-warp="guild"]{background:#535a4d;border-color:#bcad83}
.atlas-scroll .maplayout button.active{outline:2px solid #f3d38b;outline-offset:1px;background:#5c7562}
.guild-shortcuts{display:flex;flex-wrap:wrap;gap:5px}
.guild-shortcuts button{padding:7px 8px;background:#27414b;border:1px solid #597175;border-radius:7px;color:#dce9e6;cursor:pointer;font-size:11px}
.guild-shortcuts button.active{border-color:#f0d395}
.shell.atlas-expanded main{grid-template-columns:minmax(0,1fr)}
.shell.atlas-expanded .sidebar{grid-row:1;grid-column:1}
.shell.atlas-expanded .exploration{grid-row:2;grid-column:1}
.shell.atlas-expanded .atlas-scroll{padding:16px;overflow-x:auto}
.shell.atlas-expanded .atlas-scroll .maplayout{margin:auto}
