/* Map annotations stay blue; the inhabited rooms have their own materials. */
.postal-routes { position:absolute;inset:0;width:1600px;height:1000px;z-index:5;pointer-events:none;overflow:visible; }
.postal-routes[hidden] { display:none; }
.mail-home-link { display:block;border:1px solid #6c8598;background:transparent;color:#c5d5d9;font-size:12px;padding:8px 12px;margin:0 0 19px; }
.postal-routes [data-post-route] { fill:none;stroke:#748ba5;stroke-width:2;stroke-dasharray:7 12;opacity:.65; }
.postal-routes [data-state=day] { stroke:#d9c18a;stroke-width:3;stroke-dasharray:none;opacity:1; }
.postal-routes [data-state=night],.postal-routes [data-state=circuit] { stroke:#9ccab6;stroke-width:3;stroke-dasharray:10 6;opacity:1;animation:postal-flow 9s linear infinite; }
.postal-routes [data-state=exchange] { stroke:#b7c8c5;stroke-dasharray:3 8;opacity:.9; }
.postal-route-caption rect { fill:#15283ded;stroke:#4c667f;stroke-width:1; }.postal-route-caption text { fill:#d9cfaa;font:15px var(--serif); }.postal-route-caption .postal-route-note { fill:#aabbd1;font:10px var(--sans); }
.postal-world-station { position:absolute;z-index:7;width:230px;transform:translate(-50%,-60%) scale(var(--postal-pin-scale,1));transform-origin:50% 60%;text-align:center; }
.postal-world-station>button { display:block;margin:auto;border:0;background:transparent;color:#dce7ef;cursor:pointer; }
.postal-world-station>button:first-child { width:230px;padding:0 8px 7px; }
.postal-station-art { display:block;width:175px;height:105px;margin:0 auto -7px;filter:grayscale(1) sepia(.2) hue-rotate(160deg); }.postal-station-art svg { width:100%;height:100%; }
.postal-world-station.has-record .postal-station-art { filter:none; }
.postal-world-station strong { display:block;font:600 18px/1.5 var(--serif);letter-spacing:1px;background:#12243bee;border:1px solid #8296aa;padding:5px 10px; }
.postal-world-station small { display:block;font-size:11px;color:#acc0d1;margin-top:6px;background:#14253bd9;padding:3px 6px; }
.postal-world-station button:hover strong,.postal-world-station button:focus-visible strong { border-color:#edce92;color:#f0dfac; }.postal-world-station button:focus-visible { outline:2px solid #edce92;outline-offset:4px; }
.world.is-world-map .harbor-label { display:none; }
.postal-local-layer { position:absolute;inset:0;pointer-events:none;z-index:7; }
.postal-local-station { position:absolute;transform:translate(-50%,-50%);pointer-events:auto;background:#13283deb;border:1px solid #a5a989;color:#dcd7bb;padding:9px 13px;white-space:nowrap; }
.postal-local-station>span { float:left;font-size:23px;margin-right:10px; }.postal-local-station strong { font:600 14px var(--serif); }.postal-local-station small { display:block;font-size:10px;color:#a9becb; }.postal-local-station:focus-visible { outline:2px solid #ead399;outline-offset:4px; }
#postal-task-strip { display:flex;gap:5px;flex-wrap:wrap;margin-top:8px; }
#postal-task-strip button { border:1px solid #556e8b;background:#1a2d43;color:#b8c8dc;font:9px var(--sans);padding:5px 7px;white-space:nowrap; }
#postal-task-strip button.is-complete { border-color:#6e9c8e;color:#bedccd; }.postal-task-end { font-size:10px;color:#bedccd; }
#postal-office-toggle { white-space:nowrap; }
.modal.post-room-modal { --post-bg:#233b3c;--post-panel:#2b4645;--post-ink:#e4e5ce;--post-muted:#b0c5b6;--post-line:#59756a;--post-gold:#dfc28b;position:relative;max-width:1180px;width:calc(100vw - 40px);padding:25px;border:1px solid #718d7d;border-radius:0;background:var(--post-bg);color:var(--post-ink);box-shadow:0 0 0 3px #172d32,0 22px 80px #0008;font-family:var(--sans); }
.postal-room button,.postal-room select { font:inherit;cursor:pointer;border:1px solid var(--post-line);background:transparent;color:var(--post-ink);padding:8px 11px;font-size:11px;line-height:1.5; }
.postal-room button:hover { background:#b4c8ad14;border-color:#bfbb8f; }.postal-room button:focus-visible,.postal-room select:focus-visible,.postal-room summary:focus-visible { outline:2px solid var(--post-gold);outline-offset:3px; }.postal-room button:disabled { opacity:.5;cursor:default; }
.post-room-header { display:flex;align-items:center;gap:20px;padding-bottom:16px; }.post-room-header>div { flex:1; }.post-room-header small { font:10px ui-monospace,monospace;letter-spacing:.14em;color:var(--post-gold); }.post-room-header h2#modal-title { margin:7px 0 0;font:600 29px/1.5 var(--serif);letter-spacing:1px;color:var(--post-ink); }.post-room-header>button { font-size:19px;padding:2px 10px; }
.post-room-nav { display:flex;gap:1px;border:1px solid var(--post-line);margin:0 0 20px; }.post-room-nav button { flex:1;border:0;color:var(--post-muted);padding:10px 6px; }.post-room-nav [aria-current=page] { background:#b9c8ae;color:#253f3d; }
.post-room-layout { display:grid;grid-template-columns:minmax(0,1.85fr) minmax(260px,1fr);grid-template-areas:"stage inspector" "commission inspector";gap:0 22px;align-items:start; }.post-room-main { min-width:0;grid-area:stage; }.post-inspector { grid-area:inspector; }.post-commission { grid-area:commission; }.post-room-label { display:flex;gap:12px;justify-content:space-between;font-size:10px;color:var(--post-muted);padding:0 0 10px; }.post-current-era { color:var(--post-gold); }
.post-room-scene { position:relative;aspect-ratio:5/3;border:1px solid #7f947c;overflow:hidden;background:#334e49; }.post-room-art { width:100%;height:100%; }.post-room-art svg { width:100%;height:100%;display:block; }.post-room-hotspots { position:absolute;inset:0;pointer-events:none; }
.post-idle-bird { animation:postal-idle 3s steps(2) infinite alternate; }
.post-room-hotspots button { pointer-events:auto;position:absolute;transform:translate(-50%,-50%);padding:3px 7px;background:#193c3be8;border:1px solid #d4c48c;color:#e9e3c2;min-height:27px;font-size:10px;white-space:nowrap; }.post-room-hotspots button:hover,.post-room-hotspots button[aria-pressed=true] { background:#d6c18f;color:#263e38; }.post-room-hotspots i { display:none; }
.post-object-list { display:flex;gap:5px;flex-wrap:wrap;margin:11px 0; }.post-object-list button { padding:5px 9px;color:var(--post-muted);font-size:10px; }.post-object-list [aria-pressed=true] { border-color:var(--post-gold);color:var(--post-ink); }
.post-place-life { font-size:11px;color:var(--post-muted);line-height:1.8;margin:8px 0 18px; }
.post-inspector { background:var(--post-panel);border:1px solid var(--post-line);padding:19px;min-width:0; }.post-inspector-kicker { color:var(--post-gold);font:9px/1.8 ui-monospace,monospace;letter-spacing:.1em; }.post-inspector h3 { font:600 20px/1.5 var(--serif);margin:12px 0; }.post-inspector h4 { font-size:12px;margin:22px 0 9px; }.post-inspector p { font-size:12px;line-height:1.9;margin:12px 0;color:var(--post-ink); }.post-inspector .post-small { font-size:10px;color:var(--post-muted); }.post-inspector-content { overflow-wrap:anywhere; }
.post-keepsake { border-left:2px solid var(--post-gold);padding:12px 14px;background:#223938; }.post-keepsake b { font-size:13px;font-weight:500;color:var(--post-gold); }.post-keepsake p { font-size:11px;margin-bottom:0; }
.post-keepsake-choices { display:flex;gap:6px;flex-wrap:wrap; }.post-keepsake-choices button { flex:1 1 40%; }.post-keepsake-choices [aria-pressed=true] { background:var(--post-gold);color:#243e3a;border-color:var(--post-gold); }
.post-room-footer { display:flex;gap:20px;justify-content:space-between;align-items:center;padding-top:20px;margin-top:20px;border-top:1px solid var(--post-line); }.post-room-footer>span { color:var(--post-muted);font-size:10px; }.post-room-footer>div { display:flex;gap:8px;flex-wrap:wrap; }
.post-commission { border-top:1px solid var(--post-line);padding-top:13px; }.post-commission-heading small { font:9px ui-monospace,monospace;color:var(--post-gold);letter-spacing:.12em; }.post-commission-heading h3 { font:600 18px var(--serif);margin:9px 0; }.post-commission-heading p { font-size:11px;color:var(--post-muted);margin:6px 0; }
.post-commission ul,.post-bag-tasks { list-style:none;margin:14px 0;padding:0; }.post-commission li,.post-bag-tasks li { display:flex;align-items:center;gap:10px;border-top:1px solid var(--post-line);padding:10px 0; }.post-commission li>div,.post-bag-tasks li>div { flex:1;min-width:0; }.post-commission li strong,.post-bag-tasks li strong { font-size:12px;font-weight:500;display:block; }.post-commission li small,.post-bag-tasks li small { color:var(--post-muted);font-size:10px; }.post-check { color:#b2d6bb; }
.postal-room .post-primary { background:var(--post-gold);border-color:var(--post-gold);color:#233e3b;font-weight:600;padding:11px 15px; }.post-receipt-tabs { display:flex;gap:5px;flex-wrap:wrap; }.post-receipt-tabs [aria-pressed=true] { background:#b6c7ab;color:#25443f; }.post-kept-receipt { background:#e0dcc1;color:#344f45;padding:16px;margin:16px 0; }.post-kept-receipt small { font-size:10px; }.post-kept-receipt blockquote { font:16px/1.9 var(--serif);margin:14px 0; }.post-kept-receipt p { font-size:11px;color:#4e695a;text-align:right; }
.post-source { border-top:1px solid var(--post-line);padding:12px 0;font-size:12px; }.post-source summary { cursor:pointer;line-height:1.7; }.post-source summary small { color:var(--post-muted);font-size:10px; }.post-source dl { font-size:10px; }.post-source dl>div { display:flex;justify-content:space-between;gap:10px;margin:6px 0; }.post-source dd { margin:0;text-align:right; }.post-source dt { color:var(--post-muted); }.post-source>p { font-size:10px;color:var(--post-muted); }.post-empty-note { border:1px dashed var(--post-line);padding:20px;font-size:11px;line-height:1.9;margin:16px 0;color:var(--post-muted); }
.post-letter-paper { background:#dfdcc3;color:#345448;padding:18px;font:14px/2 var(--serif);white-space:pre-wrap;margin:16px 0; }.post-letter-label { font-size:11px;display:block;color:var(--post-muted); }.post-letter-label select { display:block;width:100%;margin-top:8px;background:#223c38;max-width:100%; }.post-letter-ref { display:block;font-size:10px;line-height:1.8;margin-top:12px;color:var(--post-muted); }
.post-person-heading { display:flex;align-items:center;gap:12px;margin-top:13px; }.post-person-heading>svg { width:65px;height:70px;background:#36584f;border:1px solid var(--post-line); }.post-person-heading h3 { margin:0 0 5px; }.post-person-heading small { font-size:10px;color:var(--post-muted); }.post-inspector .post-daily-action { color:var(--post-muted);font-size:11px;border-bottom:1px solid var(--post-line);padding-bottom:16px; }.post-dialogue { font-family:var(--serif); }
@keyframes postal-flow { to { stroke-dashoffset:-128; } }
@keyframes postal-idle { to { translate:0 -2px; } }
@media(max-width:760px) {
  .postal-route-caption { display:none; }
  .post-room-layout { display:flex;flex-direction:column; }.post-room-main { display:block;order:0;width:100%; }.post-room-scene { width:100%; }.post-inspector { order:1;width:100%; }.post-commission { order:2;width:100%; }
  .modal.post-room-modal { padding:16px;width:calc(100vw - 18px);max-height:calc(100dvh - 28px); }.post-room-header h2#modal-title { font-size:23px; }.post-room-layout { grid-template-columns:1fr;gap:16px; }.post-room-nav button { font-size:10px;padding:10px 3px; }.post-room-label { font-size:9px; }.post-room-label>span:last-child { display:none; }.post-inspector { padding:16px; }.post-room-footer { display:block; }.post-room-footer>div { margin-top:12px; }.post-room-header small { font-size:8px; }.post-room-header { padding-bottom:14px; }.post-room-nav { margin-bottom:14px; }
  .post-room-hotspots button { width:25px;height:25px;padding:0;min-height:25px;border-radius:50%;background:#193b36e6; }.post-room-hotspots button>span { display:none; }.post-room-hotspots i { display:inline-block;width:5px;height:5px;background:#e5cf93; }.post-room-hotspots button[aria-pressed=true] i { background:#314e43; }.post-object-list { gap:6px; }.post-object-list button { min-height:35px;font-size:11px; }
  .quest-card:has(#postal-task-strip:not([hidden])) { height:auto;min-height:97px;align-items:center; }.quest-card:has(#postal-task-strip:not([hidden]))>.quest-emblem { display:none; }#postal-task-strip { gap:4px;margin-top:6px; }#postal-task-strip button { font-size:8px;padding:5px; }.postal-task-end { font-size:9px;line-height:1.8; }
}
@media(prefers-reduced-motion:reduce) { .postal-routes [data-post-route],.post-idle-bird { animation:none; } }
