:root { --ink:#161713; --paper:#f3f0e8; --card:#fffdf7; --acid:#d9ff43; --orange:#ff6933; --line:#c9c5b8; --muted:#6c6e64; }
* { box-sizing:border-box; }
body { margin:0; overflow-x:hidden; color:var(--ink); background:var(--paper); font-family:Inter, ui-sans-serif, system-ui, sans-serif; }
button, textarea, input, select { font:inherit; }
button { cursor:pointer; }
.topbar { min-height:82px; padding:14px 3vw; display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid var(--line); background:rgba(243,240,232,.94); position:sticky; top:0; z-index:5; }
.brand,.world-status,.brand>div,.section-title,.section-title>div,.resident header { display:flex; align-items:center; }
.brand { gap:12px; }.brand-mark { width:45px;height:45px;display:grid;place-items:center;background:var(--ink);color:var(--acid);font-weight:900;border-radius:50%;transform:rotate(-8deg); }
h1,h2,h3,p { margin:0; }.brand h1 { font:800 20px/1 Georgia,serif; }.brand p { font-size:11px;text-transform:uppercase;letter-spacing:.13em;color:var(--muted);margin-left:12px; }
.world-status { gap:10px; flex-wrap:wrap; justify-content:flex-end; }.world-status span,.world-status strong { padding:8px 12px;border:1px solid var(--line);font-size:12px;text-transform:uppercase;letter-spacing:.07em; }.world-status span::before { content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:#999;margin-right:7px; }.world-status span.online::before { background:#48a94d;box-shadow:0 0 0 3px #cce9c8; }
.world-status .admission-alert { display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;align-items:center;column-gap:8px;padding:5px 9px;background:#ff6f4c;color:var(--ink);box-shadow:3px 3px 0 var(--ink);text-align:left;animation:admission-pulse 1.8s ease-in-out infinite; }.world-status .admission-alert[hidden] { display:none; }.world-status .admission-alert span { grid-row:1/-1;min-width:28px;padding:4px;border:0;border-radius:50%;background:var(--acid);font-size:15px;text-align:center; }.world-status .admission-alert span::before { content:none; }.world-status .admission-alert b { padding:0;border:0;font-size:9px;line-height:1;text-transform:uppercase; }.world-status .admission-alert small { font-size:8px;line-height:1;text-transform:uppercase;letter-spacing:.12em; }
@keyframes admission-pulse { 50% { transform:translateY(-2px);box-shadow:3px 5px 0 var(--ink); } }
button { border:1px solid var(--ink);background:var(--acid);padding:10px 14px;font-weight:800;box-shadow:3px 3px 0 var(--ink);transition:.12s; }.ghost { background:transparent;box-shadow:none; }.hero button:hover,.section-title button:hover { transform:translate(-1px,-1px);box-shadow:5px 5px 0 var(--ink); }
main { width:min(1600px,94vw);margin:auto; }.hero { padding:72px 0 58px;display:grid;grid-template-columns:1fr 1.15fr;gap:20px 7vw;align-items:end; }.eyebrow { grid-column:1/-1;text-transform:uppercase;letter-spacing:.18em;font-size:12px;font-weight:800;color:var(--orange); }.hero h2 { font:900 clamp(42px,6vw,88px)/.9 Georgia,serif;letter-spacing:-.055em; }
form { background:var(--card);border:1px solid var(--ink);padding:10px;box-shadow:8px 8px 0 var(--orange);display:flex;flex-direction:column;gap:10px; }.hero textarea { min-height:128px;border:0;background:transparent;padding:15px;resize:vertical;outline:0;font:600 20px/1.45 Georgia,serif; }.hero form button { align-self:flex-end; }.examples { grid-column:2;display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:-10px; }.examples span { font-size:11px;text-transform:uppercase;letter-spacing:.12em; }.examples button { background:transparent;box-shadow:none;border-color:var(--line);font-size:12px;padding:6px 9px; }.mode-note { grid-column:2;color:var(--muted);font-size:13px; }
.world-section { border-top:1px solid var(--ink);padding:30px 0 50px; }.world-heading { display:flex;align-items:end;justify-content:space-between;margin-bottom:18px; }.world-heading .eyebrow { margin-bottom:5px; }.world-heading h2 { font:900 clamp(28px,4vw,48px)/1 Georgia,serif; }.simulation-controls { display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end; }.simulation-controls>span { font-size:10px;text-transform:uppercase;letter-spacing:.08em;font-weight:900; }.simulation-controls>span i { display:inline-block;width:8px;height:8px;margin-right:6px;border-radius:50%;background:#5ba93f;box-shadow:0 0 0 4px #d4ebca;animation:pulse 1.5s infinite; }.simulation-controls button { padding:7px 11px;font-size:11px; }.simulation-controls label { font-size:10px;text-transform:uppercase;letter-spacing:.08em; }.simulation-controls select { margin-left:5px;padding:7px;border:1px solid var(--ink);background:var(--card);font:inherit; }
.village-world { --sky:#bcdfe3;position:relative;overflow:hidden;min-height:610px;border:2px solid var(--ink);background:linear-gradient(var(--sky) 0 58%,#9dc65b 58%);box-shadow:10px 10px 0 var(--ink);transition:background 1s;isolation:isolate; }.village-world.afternoon { --sky:#8fd4e5; }.village-world.evening { --sky:#ec9a72; }.village-world.night { --sky:#27324f;color:#f9f1d2; }.village-world::before { content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 50%,rgba(255,255,255,.16));pointer-events:none;z-index:7; }.sun-moon { position:absolute;right:7%;top:7%;font-size:50px;color:#ffdc54;text-shadow:0 4px 0 rgba(0,0,0,.12);transition:all .8s; }.night .sun-moon { color:#fff4c0; }.cloud { position:absolute;width:100px;height:24px;border-radius:30px;background:rgba(255,255,255,.65);top:14%; }.cloud::before,.cloud::after { content:"";position:absolute;background:inherit;border-radius:50%; }.cloud::before { width:40px;height:40px;left:18px;bottom:0; }.cloud::after { width:50px;height:50px;right:12px;bottom:0; }.cloud-one { left:7%; }.cloud-two { left:62%;top:23%;transform:scale(.7); }.night .cloud { opacity:.15; }
.terrain { position:absolute;width:78%;height:72%;left:11%;top:17%;background:#a8c766;transform:rotateX(57deg) rotateZ(-1deg);border:4px solid #4d6333;box-shadow:0 30px 35px rgba(0,0,0,.25);background-image:linear-gradient(rgba(75,101,49,.14) 1px,transparent 1px),linear-gradient(90deg,rgba(75,101,49,.14) 1px,transparent 1px);background-size:35px 35px; }.terrain>* { transform:rotateZ(1deg) rotateX(-57deg); }
.road { position:absolute;background:#d6c797;opacity:.8;transform:rotateZ(1deg);border:1px solid #b3a575; }.road-a { width:8%;height:78%;left:47%;top:12%; }.road-b { width:70%;height:10%;left:15%;top:50%; }.pond { position:absolute;right:5%;bottom:4%;width:16%;height:16%;border-radius:50%;background:#66b7bf;border:3px solid #497d6d;display:flex;align-items:center;justify-content:center;color:#d4f4e9;gap:5px;font-size:20px; }
.building { position:absolute;width:96px;height:95px;text-align:center;z-index:2;filter:drop-shadow(6px 9px 3px rgba(40,52,26,.3)); }.building .body { position:absolute;width:68px;height:53px;left:14px;top:27px;background:#f0d599;border:3px solid #51452f;display:grid;place-items:center;font-size:25px; }.building .body::after { content:"";position:absolute;width:13px;height:25px;bottom:0;right:8px;background:#73533b;border:2px solid #51452f;border-bottom:0; }.roof { position:absolute;left:5px;top:0;width:86px;height:48px;background:#bd5d3c;clip-path:polygon(50% 0,100% 70%,87% 100%,13% 100%,0 70%);z-index:2;border-bottom:4px solid #713926; }.building b,.town-square b { position:absolute;white-space:nowrap;left:50%;transform:translateX(-50%);bottom:-17px;background:var(--ink);color:white;padding:3px 7px;font-size:9px;text-transform:uppercase;letter-spacing:.08em;box-shadow:2px 2px 0 rgba(255,255,255,.65); }.hall { left:43%;top:4%;transform:rotateZ(1deg) rotateX(-57deg) scale(1.1); }.hall .body { background:#e1dac8; }.hall .roof { background:#596c75;border-color:#34434a; }.bakery { left:20%;top:25%; }.farm { right:12%;top:17%; }.farm .body { background:#e4ba68; }.farm .roof { background:#82623b; }.market { right:18%;bottom:3%; }.market .roof { background:#d88439; }.workshop { left:15%;bottom:3%; }.workshop .body { background:#a7b6b3; }.workshop .roof { background:#596568; }
.clinic { left:29%;top:2%;transform:rotateZ(1deg) rotateX(-57deg) scale(.78); }.clinic .body { background:#e8efeb; }.clinic .roof { background:#7da596; }.schoolhouse { right:28%;top:2%;transform:rotateZ(1deg) rotateX(-57deg) scale(.78); }.schoolhouse .body { background:#e6d7ae; }.schoolhouse .roof { background:#6b7e9c; }.inn { right:3%;top:40%;transform:rotateZ(1deg) rotateX(-57deg) scale(.84); }.inn .body { background:#e6bd8e; }.inn .roof { background:#a94e3e; }
.town-square { position:absolute;left:43%;top:43%;width:120px;height:90px;border-radius:50%;background:#d7c693;border:3px solid #8e825e;display:grid;place-items:center;z-index:1; }.fountain { font-size:34px;filter:drop-shadow(3px 5px 2px rgba(0,0,0,.2)); }
.tree { position:absolute;font-size:48px;color:#3f7439;text-shadow:5px 8px 0 #294e2a;z-index:1; }.t1{left:5%;top:8%}.t2{left:7%;bottom:9%}.t3{right:4%;top:4%}.t4{right:4%;bottom:20%}.t5{left:34%;top:4%;transform:rotateZ(1deg) rotateX(-57deg) scale(.7)}.t6{right:34%;bottom:2%;transform:rotateZ(1deg) rotateX(-57deg) scale(.7)}
.village-residents { position:absolute;inset:0;transform:none!important;z-index:5; }.map-person { --person:#fffdf7;position:absolute;left:var(--x);top:var(--y);transform:translate(-50%,-50%) rotateZ(1deg) rotateX(-57deg);width:43px;height:43px;border:3px solid var(--ink);border-radius:50%;padding:0;background:var(--person);box-shadow:4px 5px 0 rgba(22,23,19,.35);animation:arrive .5s var(--delay) both;z-index:6; }.map-person.resist { border-color:var(--orange); }.map-person.exploit { border-color:#7752c5; }.map-person>span { font-size:20px; }.map-person>b { position:absolute;top:41px;left:50%;transform:translateX(-50%);background:var(--ink);color:white;padding:2px 5px;font-size:8px;white-space:nowrap; }.map-person em { display:none;position:absolute;left:50%;bottom:53px;transform:translateX(-50%);width:170px;padding:8px;background:var(--card);color:var(--ink);border:2px solid var(--ink);font:normal 11px/1.35 Georgia,serif;box-shadow:4px 4px 0 var(--orange); }.map-person:hover { z-index:20;transform:translate(-50%,-55%) rotateZ(1deg) rotateX(-57deg) scale(1.08); }.map-person:hover em { display:block; }.scene-caption { position:absolute;left:18px;bottom:17px;z-index:10;background:rgba(22,23,19,.92);color:white;padding:10px 15px;display:flex;gap:16px;align-items:center;box-shadow:4px 4px 0 var(--acid); }.scene-caption strong { color:var(--acid);font-size:12px;text-transform:uppercase; }.scene-caption span { font:13px Georgia,serif; }
.speech { position:absolute;left:50%;bottom:55px;transform:translateX(-50%);width:150px;background:var(--card);color:var(--ink);padding:7px 8px;border:2px solid var(--ink);box-shadow:3px 3px 0 var(--orange);font:normal 10px/1.25 Georgia,serif;text-align:left;quotes:none;z-index:25;animation:speak 5.8s both;pointer-events:none; }.speech::after { content:"";position:absolute;left:45%;bottom:-8px;width:12px;height:12px;background:var(--card);border-right:2px solid var(--ink);border-bottom:2px solid var(--ink);transform:rotate(45deg); }.speech.tense { box-shadow:3px 3px 0 #7752c5; }.bond { margin-top:7px!important;font-size:10px!important;color:var(--muted); }.bond strong { color:var(--ink); }
.relationship-bar { display:flex;gap:18px;align-items:flex-start;padding:14px 16px;border:2px solid var(--ink);border-top:0;background:var(--card); }.relationship-bar>b { flex:0 0 auto;text-transform:uppercase;font-size:10px;letter-spacing:.1em;color:var(--orange); }.relationship-bar>div { display:flex;gap:18px;flex-wrap:wrap;font:13px Georgia,serif; }.relationship-bar span { animation:relationship-in .4s both; }
.character-creator { margin-top:16px;border:1px solid var(--ink);background:var(--card);padding:14px 16px; }
.character-creator>summary { cursor:pointer;font:800 16px Georgia,serif; }
.character-creator form { margin-top:14px;box-shadow:none;display:grid;grid-template-columns:repeat(4,1fr);gap:12px; }
.character-creator label { display:grid;gap:5px;font-size:10px;text-transform:uppercase;letter-spacing:.08em;font-weight:800; }
.character-creator input,.character-creator select,.character-creator textarea { width:100%;border:1px solid var(--line);background:var(--paper);padding:9px;text-transform:none;letter-spacing:normal;font-weight:500; }
.character-creator textarea { min-height:70px;resize:vertical; }.character-creator .wide { grid-column:span 2; }
.character-creator button { justify-self:start; }.character-creator [role=status] { align-self:center;color:var(--muted);font:13px Georgia,serif; }
@keyframes arrive { from { opacity:0;transform:translate(-50%,-70%) rotateZ(1deg) rotateX(-57deg) scale(.8); } to { opacity:1; } }
@keyframes pulse { 50% { opacity:.4; } }
@keyframes speak { 0% { opacity:0;transform:translate(-50%,6px) scale(.9); } 8%,82% { opacity:1;transform:translate(-50%,0) scale(1); } 100% { opacity:0; } }
@keyframes relationship-in { from { opacity:0;transform:translateY(4px); } }
.dashboard { border-top:1px solid var(--ink);display:grid;grid-template-columns:.85fr 1.5fr 1fr;min-height:700px; }.panel { padding:24px;border-right:1px solid var(--line); }.panel:last-child { border-right:0; }.section-title { justify-content:space-between;margin-bottom:22px;gap:12px; }.section-title>div { gap:9px; }.section-title span { font-size:11px;color:var(--orange);font-weight:900; }.section-title h2 { font:800 22px Georgia,serif; }.section-title small { color:var(--muted);font-size:10px; }.live-dot { color:#d82b1f;font-size:10px;font-style:normal;font-weight:900;letter-spacing:.1em; }
.rules { display:grid;gap:12px; }.rule-card { position:relative;border:1px solid var(--ink);padding:16px;background:var(--card); }.rule-card:nth-child(even) { transform:rotate(.6deg); }.rule-card h3 { font:800 18px Georgia,serif;margin:10px 28px 5px 0; }.rule-card p { line-height:1.4;font-size:13px;margin-bottom:12px; }.rule-card small,.tag { color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.1em; }.tag { background:var(--acid);color:var(--ink);padding:3px 5px;font-weight:900; }.remove-rule { position:absolute;right:10px;top:9px;border:0;box-shadow:none;background:transparent;font-size:21px;padding:2px 8px; }.empty { padding:30px 20px;border:1px dashed var(--line);color:var(--muted);font:italic 16px/1.5 Georgia,serif; }.law-vote { display:flex;gap:5px;flex-wrap:wrap;margin:9px 0; }.law-vote b { padding:3px 5px;background:var(--paper);font-size:9px;text-transform:uppercase;letter-spacing:.04em; }.law-vote b:first-child { color:#a53225; }.law-vote b:nth-child(2) { color:#477d2d; }
.residents { display:grid;gap:10px; }.resident { display:flex;gap:14px;padding:13px;background:var(--card);border:1px solid var(--line); }.resident.resist { border-left:5px solid var(--orange); }.resident.exploit { border-left:5px solid #7752c5; }.resident.embrace { border-left:5px solid #69a514; }.portrait { width:52px;height:52px;flex:0 0 52px;display:grid;place-items:center;background:var(--paper);border-radius:50%;font-size:25px;border:1px solid var(--line); }.resident-main { flex:1;min-width:0; }.resident header { justify-content:space-between;gap:8px; }.resident h3 { font:800 17px Georgia,serif; }.resident header span,.resident header b { font-size:10px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted); }.resident header b { color:var(--orange); }.resident-main>p { margin:7px 0;font-size:13px; }.stats { display:flex;gap:16px; }.stats label { display:flex;align-items:center;gap:5px;font-size:9px;text-transform:uppercase;color:var(--muted); }.meter { display:inline-block;width:48px;height:5px;background:#ddd; }.meter i { display:block;height:100%;background:var(--ink); }.stats small { font-size:9px; }.resident details { margin-top:8px;font-size:11px;color:var(--muted); }.resident summary { cursor:pointer; }.resident ul { padding-left:17px;line-height:1.4; }.traits { margin-top:6px; }.law-impact { margin:8px 0;padding:8px 9px;border-left:3px solid var(--line);background:var(--paper); }.law-impact.negative { border-color:var(--orange); }.law-impact.positive { border-color:#6ea33d; }.law-impact q { display:block;quotes:none;font:italic 12px/1.3 Georgia,serif; }.law-impact span { display:block;margin-top:4px;color:var(--muted);font-size:10px;line-height:1.3; }
.events { list-style:none;margin:0;padding:0;display:grid;gap:0;max-height:640px;overflow:auto; }.events li { padding:13px 0 14px 16px;border-left:1px solid var(--line);border-bottom:1px solid var(--line);position:relative; }.events li::before { content:"";position:absolute;width:7px;height:7px;background:var(--ink);border-radius:50%;left:-4px;top:18px; }.events li.law::before { background:var(--orange);box-shadow:0 0 0 4px #ffd6c8; }.events li.conflict::before { background:#7752c5; }.events time { color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.1em; }.events p { margin-top:4px;font:14px/1.4 Georgia,serif; }.event-context { display:block;margin:6px 0 3px;padding-left:7px;border-left:2px solid var(--orange);color:var(--muted);font-size:11px;line-height:1.35; }.event-outcome { display:inline-block;margin-top:7px;padding:3px 6px;background:var(--paper);font-size:9px;text-transform:uppercase;letter-spacing:.08em; }
footer { border-top:1px solid var(--ink);padding:20px 3vw;display:flex;justify-content:space-between;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.1em; }
@media (max-width:1050px) { .dashboard { grid-template-columns:1fr 1.6fr; }.feed-panel { grid-column:1/-1;border-top:1px solid var(--line); }.events { max-height:360px; }.hero { grid-template-columns:1fr; }.hero>* { grid-column:1; }.hero h2 { font-size:64px; } }
@media (max-width:700px) { .topbar { align-items:flex-start; }.brand p { display:none; }.world-status span { width:100%;text-align:right;border:0;padding:0; }.dashboard { display:block; }.panel { border-right:0;border-bottom:1px solid var(--line);padding:20px 0; }.hero { padding-top:45px; }.hero h2 { font-size:48px; }.stats { flex-direction:column;gap:4px; } footer { gap:20px; }.world-heading { align-items:flex-start;flex-direction:column;gap:12px; }.village-world { min-height:480px; }.terrain { width:110%;left:-5%;top:15%; }.building { transform:rotateZ(1deg) rotateX(-57deg) scale(.75); }.hall { transform:rotateZ(1deg) rotateX(-57deg) scale(.82); }.scene-caption { right:15px;flex-direction:column;align-items:flex-start;gap:2px; }.world-legend { display:none; } }
@media (max-width:700px) { .character-creator form { grid-template-columns:1fr; }.character-creator .wide { grid-column:auto; } }

/* Functional village map: readable districts, connected paths, and resident travel. */
.village-world { min-height:680px;background:linear-gradient(var(--sky) 0 13%,#79a958 13% 100%);box-shadow:8px 8px 0 var(--ink); }
.village-world::after { content:"";position:absolute;inset:13% 0 0;background:radial-gradient(circle at 18% 22%,rgba(255,255,255,.15),transparent 22%),linear-gradient(135deg,transparent 48%,rgba(45,79,42,.12) 49% 51%,transparent 52%);pointer-events:none; }
.terrain { position:absolute;width:94%;height:80%;left:3%;top:14%;transform:none;border:3px solid #3f5a32;border-radius:18px;box-shadow:0 16px 28px rgba(35,52,29,.28);background-color:#92bd62;background-image:linear-gradient(rgba(67,101,49,.1) 1px,transparent 1px),linear-gradient(90deg,rgba(67,101,49,.1) 1px,transparent 1px);background-size:28px 28px;overflow:visible; }
.terrain>* { transform:none; }
.district { position:absolute;border:1px dashed rgba(55,71,40,.45);border-radius:22px;padding:6px 9px;color:#476039;background:rgba(239,235,194,.24);font-size:8px;font-weight:900;text-transform:uppercase;letter-spacing:.1em;z-index:0; }
.civic-district { left:27%;top:1%;width:47%;height:31%; }.market-district { right:4%;bottom:1%;width:35%;height:31%; }.homestead-district { left:3%;bottom:1%;width:31%;height:32%; }
.road { position:absolute;background:#d9c99d;border:2px solid #9f916c;opacity:1;border-radius:22px;z-index:0;box-shadow:inset 0 0 0 2px rgba(255,255,255,.22); }
.road-a { width:7%;height:72%;left:46.5%;top:12%; }.road-b { width:72%;height:8%;left:14%;top:45.5%; }.road-c { width:28%;height:6%;left:23%;top:23%;transform:rotate(-24deg); }.road-d { width:30%;height:6%;left:50%;top:28%;transform:rotate(27deg); }
.path-node { position:absolute;width:18px;height:18px;border-radius:50%;background:#d9c99d;border:2px solid #9f916c;z-index:1; }.n1{left:49%;top:26%}.n2{left:49%;top:47%}.n3{left:27%;top:48%}.n4{right:25%;top:48%}
.pond { right:4%;bottom:4%;width:17%;height:19%;border-radius:46% 54% 58% 42%;z-index:1;box-shadow:inset 0 0 0 5px rgba(255,255,255,.13),0 0 0 5px #739755; }.pond i { position:absolute;bottom:-16px;font:700 8px sans-serif;color:#365948;text-transform:uppercase; }
.garden { position:absolute;right:4%;top:4%;width:18%;height:19%;display:grid;grid-template-columns:repeat(4,1fr);gap:4px;padding:7px;background:#8d7145;border:3px solid #604b2c;z-index:1; }.garden i { background:repeating-linear-gradient(90deg,#79a642 0 5px,#a9c95d 5px 9px); }.garden b { position:absolute;left:50%;bottom:-15px;transform:translateX(-50%);white-space:nowrap;font-size:8px;text-transform:uppercase; }
.building { width:88px;height:82px;filter:drop-shadow(4px 6px 2px rgba(40,52,26,.28));z-index:3; }.building .body { width:62px;height:46px;left:13px;top:24px; }.roof { width:78px;height:42px;left:5px; }.building b,.town-square b { bottom:-13px; }
.hall { left:45%;top:1%;transform:scale(1.02); }.bakery { left:20%;top:24%; }.farm { right:10%;top:10%; }.market { right:20%;bottom:10%; }.workshop { left:14%;bottom:8%; }.clinic { left:29%;top:1%;transform:scale(.78); }.schoolhouse { right:29%;top:1%;transform:scale(.78); }.inn { right:3%;top:37%;transform:scale(.84); }
.town-square { left:43%;top:37%;width:116px;height:92px;z-index:2;box-shadow:inset 0 0 0 5px rgba(255,255,255,.18); }
.cottage { position:absolute;width:48px;height:42px;background:#e1c98e;border:2px solid #594831;display:grid;place-items:center;color:#9d4e36;font-size:30px;z-index:2;box-shadow:3px 4px 0 rgba(44,61,35,.2); }.cottage b { position:absolute;top:43px;font:700 7px sans-serif;color:#43513a;white-space:nowrap;text-transform:uppercase; }.c1{left:5%;bottom:25%}.c2{left:7%;bottom:7%}.c3{left:27%;bottom:4%}
.stall { position:absolute;color:#f4dfaa;background:#b75c3a;border:2px solid #613829;padding:3px 8px;font-size:18px;z-index:2; }.s1{right:29%;bottom:6%}.s2{right:20%;bottom:3%}.s3{right:11%;bottom:8%;background:#4e8095}
.lamp { position:absolute;width:10px;height:10px;border-radius:50%;background:#ffd76b;color:#ffd76b;border:2px solid #5a4b35;box-shadow:0 8px 0 -3px #4f4437,0 0 9px rgba(255,218,112,.8);z-index:4;font-size:0; }.l1{left:42%;top:39%}.l2{left:57%;top:39%}.l3{left:42%;top:59%}.l4{left:57%;top:59%}
.tree { font-size:38px;text-shadow:4px 6px 0 #294e2a; }.t1{left:2%;top:3%}.t2{left:2%;bottom:43%}.t3{right:1%;top:27%}.t4{right:1%;bottom:25%}.t5{left:36%;top:33%;transform:scale(.7)}.t6{right:35%;bottom:3%;transform:scale(.7)}
.map-person { left:0;top:0;transform:translate(-50%,-50%);width:40px;height:40px;transition:filter .2s;will-change:left,top; }.map-person:hover { z-index:30;transform:translate(-50%,-55%) scale(1.08); }.map-person.walking { animation:walk-bob .28s ease-in-out infinite alternate;z-index:18; }.map-person.walking>span { display:inline-block;animation:walk-step .28s ease-in-out infinite alternate; }
.map-person em { bottom:51px; }.map-person em strong { display:block;margin-bottom:3px;color:var(--orange);font:900 8px sans-serif;text-transform:uppercase;letter-spacing:.08em; }
.speech { bottom:51px;animation:speak 4.2s 1.35s both; }
.night .building .body,.night .cottage { box-shadow:inset 0 0 16px rgba(255,204,96,.55),0 0 9px rgba(255,204,96,.28); }.night .lamp { box-shadow:0 8px 0 -3px #4f4437,0 0 18px 5px rgba(255,218,112,.78); }
@keyframes walk-bob { from { margin-top:0; } to { margin-top:-4px; } }
@keyframes walk-step { from { transform:rotate(-7deg); } to { transform:rotate(7deg); } }
@media (max-width:700px) { .village-world { min-height:560px; }.terrain { width:112%;left:-6%;top:15%;height:76%; }.building { transform:scale(.68); }.hall { transform:scale(.75); }.clinic,.schoolhouse { transform:scale(.6); }.inn { transform:scale(.64); }.district,.cottage b,.garden b { display:none; }.map-person { width:34px;height:34px; }.map-person>span { font-size:16px; } }

/* Organic village board: still code-native so final art can replace it later. */
.village-world { min-height:720px;background:linear-gradient(var(--sky) 0 12%,#789d58 12% 100%); }
.village-world::before { background:linear-gradient(115deg,transparent 48%,rgba(255,255,255,.1) 49%,transparent 68%);z-index:30; }
.village-world::after { inset:12% 0 0;background:radial-gradient(circle at 14% 17%,rgba(255,248,194,.14) 0 2%,transparent 20%),radial-gradient(circle at 82% 62%,rgba(43,82,39,.16),transparent 28%); }
.sun-moon { z-index:2;top:2.5%;font-size:42px; }
.cloud { top:5%;z-index:1;transform:scale(.75); }.cloud-two { top:6%;transform:scale(.5); }
.terrain { width:96%;height:82%;left:2%;top:13%;border:3px solid #3c5530;border-radius:34px;background-color:#99bd69;background-image:radial-gradient(circle at 20% 16%,#b5d27e 0 2px,transparent 3px),radial-gradient(circle at 72% 40%,rgba(65,104,48,.2) 0 2px,transparent 3px),linear-gradient(130deg,rgba(255,255,255,.08),transparent 45%);background-size:31px 31px,43px 43px,100% 100%;box-shadow:inset 0 0 0 8px rgba(255,255,255,.08),0 16px 30px rgba(33,48,27,.3);overflow:hidden; }
.map-landscape { position:absolute;inset:0;width:100%;height:100%;z-index:0;overflow:visible; }
.map-landscape path { fill:none;vector-effect:non-scaling-stroke;stroke-linecap:round;stroke-linejoin:round; }
.river-bank { stroke:#527f72;stroke-width:82; }.river-water { stroke:#77bdc1;stroke-width:66;filter:drop-shadow(0 3px 0 rgba(255,255,255,.2)); }
.path-outline path { stroke:#aa976a;stroke-width:42; }.path-fill path { stroke:#dfcf9e;stroke-width:32;stroke-dasharray:3 7; }
.district { z-index:1;border:0;background:rgba(237,229,179,.16);color:#3c5a35;border-radius:48% 52% 44% 56%;padding:8px 12px;letter-spacing:.16em; }
.civic-district { left:26%;top:-4%;width:48%;height:27%; }.market-district { right:9%;bottom:4%;width:31%;height:29%; }.homestead-district { left:3%;bottom:7%;width:29%;height:35%; }
.building { width:94px;height:91px;z-index:7;filter:drop-shadow(4px 7px 2px rgba(40,52,26,.3)); }
.building::before { content:"";position:absolute;left:2px;right:2px;bottom:1px;height:48px;border-radius:50%;background:rgba(69,100,48,.22);z-index:-1; }
.building .body { width:66px;height:50px;left:14px;top:26px;border-width:2px;border-radius:2px;background-image:linear-gradient(90deg,rgba(255,255,255,.18),transparent); }
.building .body::before { content:"";position:absolute;left:8px;top:13px;width:11px;height:11px;background:#9fd3d5;border:2px solid #51452f;box-shadow:30px 0 0 -2px #9fd3d5,30px 0 0 0 #51452f; }
.building .body::after { width:14px;height:25px;right:7px;border-width:2px; }
.roof { width:84px;height:45px;left:5px;top:0;border-bottom-width:3px;filter:saturate(.9); }
.building b,.town-square b { bottom:-9px;border-radius:10px;padding:4px 8px;box-shadow:none; }
.hall { left:45%;top:0;transform:scale(1.08); }.bakery { left:19%;top:27%; }.farm { right:5%;top:6%; }.market { right:20%;bottom:9%; }.workshop { left:13%;bottom:10%; }.clinic { left:30%;top:1%;transform:scale(.82); }.schoolhouse { right:30%;top:1%;transform:scale(.82); }.inn { right:5%;top:35%;transform:scale(.9); }
.field { position:absolute;z-index:1;display:grid;grid-template-columns:repeat(4,1fr);gap:5px;padding:8px;background:#927846;border:3px solid #5d5635;border-radius:38% 42% 35% 45%;transform:rotate(-3deg); }
.field i { min-width:17px;background:repeating-linear-gradient(90deg,#d1b94f 0 4px,#ebd877 4px 7px,#789848 7px 9px);border-radius:50%; }.field b { position:absolute;right:4px;bottom:-16px;font:800 8px sans-serif;text-transform:uppercase;color:#43513a;letter-spacing:.08em;white-space:nowrap; }
.field-one { right:1.5%;top:2%;width:21%;height:22%; }
.garden { left:3%;right:auto;top:40%;width:14%;height:18%;border-radius:12px;transform:rotate(2deg);z-index:3; }.garden b { color:#34482f; }
.pond { left:2%;right:auto;bottom:2%;width:14%;height:16%;z-index:2; }
.town-square { left:43%;top:38%;width:122px;height:96px;z-index:5;border-color:#9f8b62;background:repeating-radial-gradient(circle,#dfd0a3 0 9px,#d1bd8b 10px 12px);box-shadow:0 6px 0 rgba(62,76,45,.18),inset 0 0 0 5px rgba(255,255,255,.18); }
.fountain { position:relative;font-size:37px; }.fountain::after { content:"meeting place";position:absolute;left:50%;top:38px;transform:translateX(-50%);white-space:nowrap;color:#625943;font:800 7px sans-serif;text-transform:uppercase; }
.cottage { width:50px;height:44px;border-radius:3px;background:#e3c995;z-index:4; }.cottage::before { content:"";position:absolute;left:-5px;right:-5px;top:-12px;height:24px;background:#a5523c;clip-path:polygon(50% 0,100% 70%,88% 100%,12% 100%,0 70%); }.cottage span { position:relative;z-index:1;font-size:26px; }.cottage b { top:48px; }
.c1{left:4%;top:17%}.c2{left:7%;bottom:4%}.c3{left:28%;bottom:2%}.c4{right:42%;bottom:1%}.c5{right:2%;bottom:16%}
.stall { z-index:5;border-radius:3px;box-shadow:3px 4px 0 rgba(49,54,35,.23); }.s1{right:31%;bottom:12%}.s2{right:23%;bottom:6%}.s3{right:14%;bottom:13%}
.tree { z-index:3;font-size:34px;color:#39713c;text-shadow:4px 5px 0 #2b5730; }.t1{left:1%;top:2%}.t2{left:1%;bottom:38%}.t3{right:1%;top:30%}.t4{right:1%;bottom:30%}.t5{left:38%;top:24%;transform:scale(.7)}.t6{right:36%;bottom:7%;transform:scale(.7)}.t7{left:22%;top:5%;transform:scale(.8)}.t8{right:25%;top:24%;transform:scale(.75)}
.bridge { position:absolute;left:48%;bottom:2%;width:86px;height:42px;z-index:6;display:flex;gap:2px;padding:3px;background:#654a32;border:2px solid #4b3727;transform:rotate(-10deg);box-shadow:4px 5px 0 rgba(48,62,42,.25); }.bridge i { flex:1;background:#ba8b57;border:1px solid #795838; }
.lamp { z-index:8; }.l1{left:42%;top:39%}.l2{left:57%;top:39%}.l3{left:42%;top:57%}.l4{left:57%;top:57%}
.village-residents { z-index:12; }.map-person { z-index:14;background:#fffaf0;box-shadow:0 3px 0 rgba(22,23,19,.38),0 0 0 2px rgba(255,255,255,.45); }.map-person>b { border-radius:8px;top:39px;padding:3px 6px; }.map-person.resist { background:#fff0e7; }.map-person.embrace { border-color:#52822e;background:#f4ffe3; }.speech { width:166px;padding:9px 10px;border-radius:8px;font-size:11px;box-shadow:3px 3px 0 var(--orange); }
.scene-caption { border-radius:3px;max-width:calc(100% - 36px); }
.night .terrain { filter:saturate(.75) brightness(.72); }.night .map-person { filter:none; }
@media (max-width:700px) { .village-world { min-height:590px; }.terrain { width:112%;left:-6%;top:14%;height:79%; }.field,.district,.cottage b,.garden b { display:none; }.building { transform:scale(.67); }.hall { transform:scale(.74); }.clinic,.schoolhouse { transform:scale(.58); }.inn { transform:scale(.62); }.river-bank { stroke-width:68; }.river-water { stroke-width:54; }.path-outline path { stroke-width:34; }.path-fill path { stroke-width:25; }.scene-caption { right:15px; }.relationship-bar { flex-direction:column;gap:8px; } }

/* Generated pixel-art world with a live simulation layer. */
.village-world { min-height:520px;aspect-ratio:16/9;background:#15241e;box-shadow:8px 8px 0 var(--ink); }
.village-world .sun-moon,.village-world .sky-decor { display:none; }
.village-world::before { content:"";inset:0;z-index:28;background:linear-gradient(105deg,transparent 20%,rgba(255,255,255,.1) 47%,transparent 70%);background-size:220% 100%;animation:map-light 14s linear infinite;mix-blend-mode:soft-light; }
.village-world::after { content:"";position:absolute;inset:0;z-index:27;pointer-events:none;opacity:0;background-image:radial-gradient(circle at 20% 30%,#ffe28a 0 1px,transparent 2px),radial-gradient(circle at 70% 55%,#ffe28a 0 1px,transparent 2px),radial-gradient(circle at 45% 75%,#ffe28a 0 1px,transparent 2px);background-size:120px 100px,170px 140px,210px 180px;animation:fireflies 7s ease-in-out infinite;transition:opacity 2s; }
.village-world.night::after { opacity:.68; }
.terrain { inset:0;width:100%;height:100%;left:0;top:0;border:0;border-radius:0;box-shadow:none;overflow:hidden;background:none; }
.terrain::before,.terrain::after { content:"";position:absolute;inset:0;background-position:center;background-size:cover;background-repeat:no-repeat;image-rendering:pixelated;transition:opacity 2.2s ease; }
.terrain::before { z-index:0;background-image:url('/assets/bellwether-hollow-day.png'); }
.terrain::after { z-index:1;background-image:url('/assets/bellwether-hollow-night.png');opacity:0; }
.evening .terrain::after { opacity:.34; }.night .terrain::after { opacity:1; }
.terrain > :not(.village-residents):not(.location-crowds) { display:none!important; }
.village-residents { display:block!important;z-index:12; }
.map-person { width:42px;height:42px;border-width:3px;background:#fff9e9;box-shadow:0 3px 0 rgba(11,17,12,.72),0 0 0 2px rgba(255,255,255,.55); }
.map-person>img { width:100%;height:100%;display:block;object-fit:cover;border-radius:50%;image-rendering:pixelated; }
.map-person>span:not(.activity-pop) { display:grid;place-items:center;width:100%;height:100%;font-size:20px; }
.portrait { overflow:hidden; }.portrait img { width:100%;height:100%;object-fit:cover;image-rendering:pixelated; }.portrait>span { font-size:25px; }
.activity-pop { position:absolute;left:50%;bottom:49px;transform:translateX(-50%);display:flex!important;align-items:center;gap:5px;width:max-content!important;height:auto!important;padding:4px 7px;border:2px solid #171713;border-radius:10px;background:#fffdf2;color:#171713;box-shadow:2px 3px 0 rgba(0,0,0,.38);font:900 8px/1 sans-serif!important;text-transform:uppercase;letter-spacing:.05em;pointer-events:none;z-index:20; }
.activity-pop::after { content:"";position:absolute;left:50%;bottom:-5px;width:7px;height:7px;background:#fffdf2;border-right:2px solid #171713;border-bottom:2px solid #171713;transform:translateX(-50%) rotate(45deg); }
.activity-pop b { color:#d2512c;letter-spacing:.12em;animation:status-dots 1.1s ease-in-out infinite; }.activity-pop small { font:inherit; }
.activity-pop.sleep b { color:#6654a6;animation:sleep-float 1.6s ease-in-out infinite; }.activity-pop.sleep { background:#f5efff; }
.activity-pop.life,.activity-pop.garden { padding:3px 6px; }.activity-pop.life small { display:none; }
.map-person.walking .activity-pop { display:none!important; }
.speech { bottom:53px;width:180px;font-size:11px;background:#fffdf2; }
.scene-caption { z-index:30;background:rgba(14,18,14,.88);backdrop-filter:blur(4px); }
.night .terrain { filter:none; }.night .map-person { filter:none; }
@keyframes map-light { from { background-position:130% 0; } to { background-position:-120% 0; } }
@keyframes fireflies { 0%,100% { transform:translateY(0);filter:brightness(.8); } 50% { transform:translateY(-8px);filter:brightness(1.7); } }
@keyframes status-dots { 50% { opacity:.35; } }
@keyframes sleep-float { 50% { transform:translateY(-3px) rotate(-4deg); } }

.resident-bio { margin:7px 0;color:var(--ink);font:12px/1.4 Georgia,serif; }.values { margin-top:4px;color:var(--muted);font-size:10px; }
@media (max-width:700px) {
  .village-world { min-height:390px;aspect-ratio:auto; }.terrain::before,.terrain::after { background-size:auto 100%; }
  .activity-pop small { display:none; }.activity-pop { padding:3px 5px; }.speech { width:145px; }
}

/* Conference simulation systems, map controls, and world-reading tools. */
.proclamation-actions { display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap; }
.world-section { position:relative; }
.world-pulse { display:flex;gap:8px;flex-wrap:wrap;margin:-4px 0 14px; }
.world-pulse span { padding:7px 10px;border:1px solid var(--line);background:rgba(255,253,247,.72);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.06em; }
.terrain { transform-origin:50% 50%;transition:transform .35s ease;touch-action:none; }
.map-person.selected { z-index:26;border-color:var(--acid);box-shadow:0 0 0 4px var(--ink),0 0 0 8px var(--acid); }
.map-person:focus-visible { outline:4px solid var(--acid);outline-offset:4px; }
.map-toolbar { position:absolute;right:14px;top:14px;z-index:35;display:flex;gap:5px;padding:6px;background:rgba(255,253,247,.88);border:2px solid var(--ink);backdrop-filter:blur(5px); }
.map-toolbar button { min-width:34px;padding:6px 9px;box-shadow:none;background:var(--card);font-size:12px; }
.map-toolbar #follow-selected { background:var(--acid); }
.map-toolbar label { display:flex;align-items:center;gap:5px;padding-left:4px;font-size:8px;text-transform:uppercase;font-weight:900; }
.map-toolbar select { max-width:105px;padding:6px;border:1px solid var(--ink);background:var(--card);font-size:9px; }
@media (max-width:1050px) { .map-toolbar label { display:none; } }
.empty-town { position:absolute;left:50%;top:52%;z-index:32;transform:translate(-50%,-50%);width:min(560px,calc(100% - 40px));padding:20px;display:flex;align-items:center;gap:18px;text-align:left;border:3px solid var(--ink);background:rgba(255,253,247,.94);color:var(--ink);box-shadow:8px 8px 0 var(--acid);backdrop-filter:blur(6px); }
.empty-town img { width:130px;height:130px;flex:0 0 130px;background:white;image-rendering:pixelated; }
.empty-town[hidden] { display:none!important; }
.empty-town strong { display:block;font:900 clamp(24px,4vw,40px)/1 Georgia,serif; }.empty-town span { display:block;margin-top:9px;color:var(--muted);font:14px/1.45 Georgia,serif; }
.location-crowds { position:absolute;inset:0!important;display:block!important;z-index:18;pointer-events:none; }
.location-crowds button { position:absolute;transform:translate(-50%,-50%);display:grid;place-items:center;min-width:46px;padding:5px 8px;border:2px solid var(--ink);border-radius:18px;background:var(--acid);box-shadow:3px 3px 0 var(--ink);pointer-events:auto; }
.location-crowds b { font-size:12px; }.location-crowds span { max-width:80px;overflow:hidden;text-overflow:ellipsis;font-size:7px;text-transform:uppercase;white-space:nowrap; }
.map-person.founder { border-color:#f0b72e;box-shadow:0 0 0 3px #fff4b5,0 3px 0 rgba(11,17,12,.72); }
.population-town .map-person { width:36px;height:36px; }.population-town .map-person>b { top:34px; }.population-city .map-person { width:30px;height:30px;border-width:2px; }.population-city .map-person>b { top:28px;font-size:7px; }.population-city .map-person>span:not(.activity-pop) { font-size:15px; }.population-city .activity-pop { display:none!important; }
.minimap { position:absolute;right:14px;bottom:14px;z-index:35;width:142px;height:78px;overflow:hidden;border:2px solid var(--ink);background:url('/assets/bellwether-hollow-day.png') center/cover;box-shadow:3px 3px 0 rgba(0,0,0,.5);cursor:crosshair; }
.minimap i:not(#minimap-view) { position:absolute;width:4px;height:4px;border-radius:50%;background:var(--orange);transform:translate(-50%,-50%); }
.minimap i.selected { width:7px!important;height:7px!important;background:var(--acid)!important;box-shadow:0 0 0 2px var(--ink); }
#minimap-view { position:absolute;left:0;top:0;border:1px solid var(--acid);box-shadow:0 0 0 1px var(--ink) inset;pointer-events:none; }
.weather-layer { position:absolute;inset:0;z-index:29;pointer-events:none;overflow:hidden;opacity:0;transition:opacity .8s; }
.weather-layer.rain { opacity:.7;background-image:repeating-linear-gradient(106deg,transparent 0 18px,rgba(195,231,242,.65) 19px 21px,transparent 22px 35px);background-size:140px 140px;animation:rainfall .55s linear infinite; }
.weather-layer.fog { opacity:.68;background:linear-gradient(90deg,rgba(239,243,231,.18),rgba(239,243,231,.82),rgba(239,243,231,.18));background-size:200% 100%;animation:fog-drift 11s ease-in-out infinite alternate; }
.weather-layer.breezy { opacity:.42;background:repeating-linear-gradient(172deg,transparent 0 48px,rgba(255,255,255,.4) 49px 51px,transparent 52px 90px);background-size:180% 100%;animation:wind-lines 6s linear infinite; }
.weather-rain .cloud { opacity:.25; }.weather-fog .terrain::before,.weather-fog .terrain::after { filter:saturate(.72) contrast(.82); }
@keyframes rainfall { to { background-position:-35px 140px; } }
@keyframes fog-drift { to { background-position:100% 0; } }
@keyframes wind-lines { to { background-position:-100% 0; } }
.interior-card { position:absolute;left:14px;top:14px;z-index:38;width:230px;padding:14px;border:2px solid var(--ink);background:#fff9e9;color:var(--ink);box-shadow:5px 5px 0 var(--orange); }
.interior-card>small,.interior-card>em { color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.1em; }
.interior-card h3 { font:900 21px Georgia,serif;margin:3px 0 10px; }
.interior-close { position:absolute;right:5px;top:4px;padding:2px 7px;border:0;background:transparent;box-shadow:none;font-size:20px; }
.interior-room { min-height:85px;display:flex;align-items:center;justify-content:space-around;padding:12px;background:repeating-linear-gradient(90deg,#ead6a9 0 12px,#e3c897 12px 24px);border:2px solid #6b5839; }
.interior-room>b { font-size:36px; }.interior-room span { display:flex;flex-wrap:wrap;gap:5px;justify-content:flex-end; }
.interior-room span>span,.interior-room img { width:34px;height:34px;display:grid;place-items:center;border:2px solid var(--ink);border-radius:50%;background:white;object-fit:cover;image-rendering:pixelated; }
.interior-card p { margin:9px 0 3px;font:13px/1.35 Georgia,serif; }
.resident-inspector { position:absolute;right:0;top:100px;z-index:45;width:min(430px,96vw);max-height:780px;overflow:auto;border:2px solid var(--ink);background:var(--card);box-shadow:-9px 9px 0 var(--orange); }
.inspector-close { position:sticky;float:right;right:8px;top:7px;z-index:2;border:0;box-shadow:none;background:var(--card);font-size:24px;padding:2px 9px; }
#inspector-content { padding:20px; }.inspector-person { display:flex;gap:12px;align-items:center;padding-bottom:14px;border-bottom:1px solid var(--line); }
.inspector-person>span,.inspector-person>img { width:62px;height:62px;display:grid;place-items:center;object-fit:cover;border:2px solid var(--ink);border-radius:50%;font-size:30px;image-rendering:pixelated; }
.inspector-person h2 { font:900 27px Georgia,serif; }.inspector-person div>span { color:var(--muted);font-size:11px;text-transform:uppercase; }
.inspector-actions { display:flex;gap:8px;margin:13px 0; }.inspector-actions button { padding:7px 10px;box-shadow:none;font-size:11px; }
.inspector-actions .danger { margin-left:auto;color:#a53225;border-color:#a53225; }
#inspector-content section { padding:13px 0;border-top:1px solid var(--line); }
#inspector-content section h3 { margin-bottom:9px;font:800 15px Georgia,serif; }
.now-next { display:grid;grid-template-columns:1fr 1fr;gap:8px; }.now-next article { padding:10px;background:var(--paper);display:grid;gap:3px; }
.now-next small { color:var(--orange);font-size:9px;text-transform:uppercase;font-weight:900; }.now-next b { font:13px/1.3 Georgia,serif; }.now-next p { grid-column:1/-1;color:var(--muted);font-size:11px;line-height:1.4; }
.need-grid { display:grid;grid-template-columns:1fr 1fr;gap:7px 12px; }.need-grid label { display:flex;align-items:center;gap:5px;color:var(--muted);font-size:9px;text-transform:uppercase; }.need-grid .meter { margin-left:auto; }
.motives p { margin:6px 0;font:12px/1.4 Georgia,serif; }
.inspector-laws,.bond-timeline,#inspector-content section>ul { list-style:none;padding:0;margin:0;display:grid;gap:7px; }
.inspector-laws li { display:grid;gap:3px;padding:8px;border-left:3px solid var(--line);background:var(--paper);font-size:11px; }.inspector-laws li.negative { border-color:var(--orange); }.inspector-laws li.positive { border-color:#69a514; }
.inspector-bonds { display:grid;gap:6px; }.inspector-bonds button { display:grid;gap:3px;text-align:left;padding:8px;background:var(--paper);border:1px solid var(--line);box-shadow:none; }.inspector-bonds small { color:var(--muted);font:11px Georgia,serif; }
.bond-timeline li { display:grid;grid-template-columns:80px 90px 1fr;gap:8px;font-size:10px;align-items:start; }.bond-timeline time { color:var(--orange); }.bond-timeline span { color:var(--muted);line-height:1.35; }
.compliance { position:relative;height:19px;margin:8px 0;background:#e3e0d6;overflow:hidden; }.compliance span { display:block;height:100%;background:linear-gradient(90deg,var(--orange),var(--acid)); }.compliance b { position:absolute;inset:0;display:grid;place-items:center;font-size:8px;text-transform:uppercase; }
.shockwaves { margin-top:10px;border-top:1px solid var(--line);padding-top:8px;font-size:11px; }.shockwaves summary { cursor:pointer;font-weight:800;text-transform:uppercase;letter-spacing:.06em;font-size:9px; }.shockwaves ol { padding-left:18px;line-height:1.4; }
.proposal-heading { display:flex;justify-content:space-between;align-items:end;margin:24px 0 10px;border-top:1px solid var(--line);padding-top:17px; }.proposal-heading h3 { font:800 17px Georgia,serif; }.proposal-heading small { color:var(--muted);font-size:9px;text-transform:uppercase; }
.proposals { display:grid;gap:8px; }.proposal { padding:10px;border:1px solid var(--line);background:var(--card); }.proposal>small { color:var(--orange);text-transform:uppercase;font-size:8px;font-weight:900; }.proposal p { margin:5px 0 9px;font:12px/1.35 Georgia,serif; }.proposal div { display:flex;gap:5px;flex-wrap:wrap; }.proposal button { padding:5px 8px;box-shadow:none;font-size:9px; }.proposal.rejected { opacity:.55; }.proposal.enacted { border-color:#69a514; }.empty.compact { padding:14px;font-size:12px; }
.resident { cursor:pointer;transition:transform .12s,box-shadow .12s; }.resident:hover { transform:translateX(3px);box-shadow:-3px 0 0 var(--acid); }
.resident-browser { display:grid;grid-template-columns:1fr auto;gap:7px;margin-bottom:12px; }.resident-browser input,.resident-browser select { min-width:0;padding:8px;border:1px solid var(--line);background:var(--card);font-size:11px; }.resident-browser b { grid-column:1/-1;color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.08em; }.resident-empty { display:grid;gap:6px; }.resident-empty b { color:var(--ink);font:800 17px Georgia,serif; }.resident-empty span { font-size:12px; }.load-more { width:100%;margin-top:10px;box-shadow:none; }
.conference-join-card { margin-top:18px;padding:20px;display:grid;grid-template-columns:1fr 170px;align-items:center;gap:22px;border:2px solid var(--ink);background:var(--ink);color:white;box-shadow:7px 7px 0 var(--acid); }
.conference-join-card h3 { margin:4px 0 7px;font:800 25px Georgia,serif; }.conference-join-card p:not(.eyebrow) { color:#c9c5b8; }.conference-join-card code { display:block;margin-top:12px;color:var(--acid);font-size:12px;word-break:break-all; }.conference-join-card img { width:170px;height:170px;background:white;image-rendering:pixelated; }
.admissions-panel { position:fixed;right:0;top:0;z-index:100;width:min(520px,100vw);height:100vh;overflow:auto;padding:22px;background:var(--card);border-left:3px solid var(--ink);box-shadow:-12px 0 0 rgba(255,105,51,.8); }.admissions-panel>header { display:flex;justify-content:space-between;align-items:start;padding-bottom:16px; }.admissions-panel h2 { font:900 35px Georgia,serif; }.admissions-note { margin-bottom:16px;padding:10px;border-left:4px solid var(--acid);background:var(--paper);font:13px/1.4 Georgia,serif; }
.ai-settings-panel { position:fixed;right:0;top:0;z-index:160;width:min(520px,100vw);height:100vh;overflow:auto;padding:22px;background:var(--card);border-left:3px solid var(--ink);box-shadow:-12px 0 0 rgba(202,255,72,.85); }.ai-settings-panel>header { display:flex;justify-content:space-between;align-items:start;padding-bottom:16px; }.ai-settings-panel h2 { font:900 35px Georgia,serif; }.ai-settings-note { margin-bottom:16px;padding:11px;border-left:4px solid var(--acid);background:var(--paper);font:13px/1.45 Georgia,serif; }.ai-settings-panel form { padding:16px;gap:14px;box-shadow:6px 6px 0 var(--orange); }.ai-settings-panel label { display:grid;gap:6px;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.08em; }.ai-settings-panel input,.ai-settings-panel select { width:100%;padding:11px;border:1px solid var(--ink);background:var(--paper);font:600 13px/1.2 ui-monospace,monospace;text-transform:none;letter-spacing:normal; }.ai-settings-panel label small { color:var(--muted);font-size:10px;font-weight:500;line-height:1.4;text-transform:none;letter-spacing:normal; }.ai-settings-summary { padding:10px;background:var(--paper);font:12px/1.45 Georgia,serif; }.ai-settings-actions { display:flex;gap:9px;flex-wrap:wrap; }.ai-settings-actions button { align-self:auto; }.ai-security-note { margin-top:20px;padding:14px;border:1px solid var(--ink);background:#fff4d7; }.ai-security-note strong { font-size:10px;text-transform:uppercase;letter-spacing:.1em; }.ai-security-note p { margin-top:5px;color:var(--muted);font:12px/1.45 Georgia,serif; }
.moderation-queue { display:grid;gap:8px; }.moderation-queue article { display:grid;grid-template-columns:52px 1fr auto auto;gap:8px;align-items:center;padding:10px;border:1px solid var(--line); }.moderation-queue article.flagged { border-left:4px solid var(--orange); }.moderation-queue small { display:block;color:var(--orange);font-size:9px;text-transform:uppercase; }.moderation-queue p { margin-top:4px;color:var(--muted);font:11px/1.35 Georgia,serif; }.moderation-queue button { padding:5px 7px;box-shadow:none;font-size:9px; }.moderation-avatar { width:48px;height:48px;display:grid;place-items:center;overflow:hidden;border:2px solid var(--ink);border-radius:50%;background:var(--acid);font-size:22px; }.moderation-avatar img { width:100%;height:100%;object-fit:cover;image-rendering:pixelated; }.moderation-copy { min-width:0; }.moderation-copy p { display:-webkit-box;overflow:hidden;-webkit-line-clamp:3;-webkit-box-orient:vertical; }
.moderation-queue .queue-summary { margin:0;padding:8px;background:var(--paper);font:800 9px sans-serif;text-transform:uppercase;letter-spacing:.07em; }
.join-page { min-height:100vh;background:var(--paper); }.join-page .join-portal { width:100%;min-height:100vh;margin:0;padding:28px 15px;background:radial-gradient(circle at top,#edff9a,transparent 34%),var(--paper); }
.join-shell { width:min(620px,100%);margin:auto; }.join-shell>h1 { margin:8px 0;font:900 clamp(42px,12vw,72px)/.9 Georgia,serif;letter-spacing:-.05em; }.join-shell>p { color:var(--muted);line-height:1.45;margin-bottom:20px; }.join-intro { display:flex;align-items:center;justify-content:space-between;gap:12px; }.join-intro span { padding:5px 8px;border:1px solid var(--ink);font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.09em;white-space:nowrap; }
.join-shell form { margin:0 0 20px;padding:18px;display:grid;grid-template-columns:1fr 1fr;gap:12px;box-shadow:6px 6px 0 var(--orange); }.join-shell label { display:grid;gap:5px;font-size:10px;text-transform:uppercase;font-weight:900; }.join-shell input,.join-shell textarea { width:100%;padding:11px;border:1px solid var(--line);background:var(--paper);text-transform:none;font-weight:500; }.join-shell textarea { min-height:115px;resize:vertical; }.join-shell .wide,.join-shell form>button[type=submit],.join-shell form>span { grid-column:1/-1; }.join-shell form>button { justify-self:start; }
.mobile-avatar-preview { width:80px;height:80px;display:grid;place-items:center;border:2px solid var(--ink);border-radius:50%;overflow:hidden;font-size:34px;background:var(--acid); }.mobile-avatar-preview img { width:100%;height:100%;object-fit:cover;image-rendering:pixelated; }
.join-shell label small { color:var(--muted);font-size:10px;line-height:1.35;text-transform:none;font-weight:500; }.join-photo { grid-column:1/-1;display:grid;grid-template-columns:1fr auto;align-items:center;gap:6px 14px;padding:10px;border:1px dashed var(--line); }.join-photo small { color:var(--muted);font-size:10px; }.join-photo .mobile-avatar-preview { grid-column:2;grid-row:1/3; }.join-privacy { padding:0 9px;text-align:center;font-size:11px; }.join-shell form[aria-busy=true] { opacity:.72; }
.join-shell [role=status].approved { color:#39702d;font-weight:800; }.join-shell [role=status].rejected { color:#a53225;font-weight:800; }
.toasts { position:fixed;right:18px;bottom:18px;z-index:150;width:min(360px,calc(100vw - 36px));display:grid;gap:8px;pointer-events:none; }.toast { padding:12px 14px;border:2px solid var(--ink);background:var(--card);box-shadow:5px 5px 0 var(--ink);font:13px/1.35 Georgia,serif;animation:toast-in .3s both; }.toast.law { border-left:7px solid var(--orange); }.toast.relationship { border-left:7px solid #6ca33a; }.toast.admission { border-left:7px solid var(--acid);font-weight:800; }
@keyframes toast-in { from { opacity:0;transform:translateY(10px); } }

.ai-autopilot-toggle { grid-template-columns:auto 1fr;align-items:start;gap:4px 9px !important;padding:10px;background:var(--paper);border:1px dashed var(--line); }
.ai-autopilot-toggle input { width:auto;margin-top:2px;accent-color:var(--orange); }
.ai-autopilot-toggle span,.ai-autopilot-toggle small { grid-column:2; }
@media (max-width:800px) {
  .world-pulse span { flex:1 1 45%; }.map-toolbar { top:8px;right:8px; }.map-toolbar label { display:none; }.minimap { width:100px;height:58px;right:8px;bottom:8px; }.scene-caption { max-width:calc(100% - 130px); }
  .resident-inspector { position:fixed;top:0;right:0;height:100vh;max-height:none; }.conference-join-card { grid-template-columns:1fr 110px; }.conference-join-card img { width:110px;height:110px; }
  .bond-timeline li { grid-template-columns:70px 70px 1fr; }
}
@media (max-width:560px) {
  .world-status { gap:4px; }.world-status strong,.world-status button { font-size:8px;padding:5px; }.world-pulse span { flex:1 1 100%; }
  .map-toolbar #follow-selected,.map-toolbar label { display:none; }.conference-join-card { grid-template-columns:1fr; }.conference-join-card img { width:140px;height:140px; }
  .join-shell form { grid-template-columns:1fr; }.join-shell .wide,.join-shell form>button[type=submit],.join-shell form>span,.join-photo { grid-column:auto; }.join-photo { grid-template-columns:1fr 68px; }.mobile-avatar-preview { width:64px;height:64px; }
  .moderation-queue article { grid-template-columns:44px 1fr; }.moderation-queue article .moderation-avatar { grid-column:1;width:40px;height:40px; }.moderation-queue article .moderation-copy { grid-column:2; }.moderation-queue article button { grid-row:2; }.moderation-queue article button[data-moderate=approved] { grid-column:1; }.moderation-queue article button[data-moderate=rejected] { grid-column:2;justify-self:start; }
  .empty-town { gap:11px;padding:13px; }.empty-town img { width:92px;height:92px;flex-basis:92px; }.empty-town strong { font-size:22px; }.empty-town span { font-size:11px; }
}
