@font-face{font-family:Cormorant SC;src:url(/fonts/cormorant-sc-600.woff2) format("woff2");font-weight:600;font-display:swap}@font-face{font-family:Cormorant;src:url(/fonts/cormorant-600.woff2) format("woff2");font-weight:600;font-display:swap}@font-face{font-family:Cormorant;src:url(/fonts/cormorant-500i.woff2) format("woff2");font-weight:500;font-style:italic;font-display:swap}@font-face{font-family:EB Garamond;src:url(/fonts/ebgaramond-400.woff2) format("woff2");font-weight:400;font-display:swap}@font-face{font-family:EB Garamond;src:url(/fonts/ebgaramond-400i.woff2) format("woff2");font-weight:400;font-style:italic;font-display:swap}:root{--navy: #1B2747;--navy-2: #24345C;--ink: #2A2438;--ink-soft: #5a5068;--gold: #B08D4F;--gold-lt: #C9A866;--paper: #FAF6EC;--paper-2: #F2EBDA;--line: #e2d6bd;--ocean: #5E83A7;--serif: "EB Garamond", Georgia, "Times New Roman", serif;--display: "Cormorant SC", "Cormorant", Georgia, serif;--label: "Cormorant", Georgia, serif;--ik: 1;--sheet-w: 400px;--safe-b: env(safe-area-inset-bottom, 0px);color-scheme:light}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:var(--ocean);color:var(--ink);font-family:var(--serif);-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}#stage{position:fixed;inset:0;touch-action:none}#map{width:100%;height:100%;display:block;cursor:grab;user-select:none;-webkit-user-select:none}#map:active{cursor:grabbing}#map text{font-family:var(--label)}.watermark{stroke-width:1.1;opacity:.09}.bathy path{fill:#fff;fill-opacity:.075}.bathy .bathy-line{fill:none;stroke:#fff;stroke-opacity:.28;stroke-width:.8;stroke-dasharray:2 3}.grid path{fill:none;stroke:#20304f;stroke-opacity:.28;stroke-width:.7}.grid text{font-size:14px;fill:#1b2747;opacity:.55;text-anchor:middle;font-family:var(--display)!important}.land-shadow{fill:#1b2747;opacity:.22;transform:translate(2px,3px)}.terr{stroke:none;transition:filter .2s}.terr.hl{filter:brightness(1.05) saturate(1.15)}.biomes path{pointer-events:none}.choro path,.choro circle{opacity:.94}.borders path{fill:none;stroke:#5b4a63;stroke-width:1.3;stroke-dasharray:7 3 1.5 3;stroke-opacity:.85;vector-effect:non-scaling-stroke}.coast{fill:none;stroke:#3c4f68;stroke-width:1.1;stroke-opacity:.85;vector-effect:non-scaling-stroke}.serra,.peaks,.hills,.dots,.rivers,.mist,.trade-g,.rel-g,.country-labels,[data-layer=regioes],.grid,.watermark,.bathy,.land-shadow,.frame{pointer-events:none}.river{fill:none;vector-effect:non-scaling-stroke;stroke:#3f72a6;stroke-linecap:round;stroke-linejoin:round;opacity:.9}.river.wadi{stroke:#b49a62;stroke-dasharray:3 3;opacity:.8}.river-name{font-size:10px;font-style:italic;fill:#2c5a8a;letter-spacing:.06em}.lake{fill:#9cc3e2;stroke:#3f72a6;stroke-width:.8;cursor:pointer}.dots{fill:none;stroke-linecap:round;stroke-width:3.2}.dots.primafey{stroke:#9a6b16;stroke-opacity:.82}.dots.humans{stroke:#1f4f8a;stroke-opacity:.9}.mist .drift{animation:drift 14s ease-in-out infinite alternate;transform-box:fill-box;transform-origin:center}.mist .d1{animation-duration:18s}.mist .d2{animation-duration:22s;animation-direction:alternate-reverse}@keyframes drift{0%{transform:translate(-12px,4px) scale(1);opacity:.75}to{transform:translate(14px,-6px) scale(1.08);opacity:1}}.link{fill:none;stroke:#8c7560;stroke-width:1;stroke-dasharray:3 2.5;opacity:.7;vector-effect:non-scaling-stroke}.route{fill:none;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.route.road{stroke:#9b3a2b;stroke-width:2}.rail-base{fill:none;stroke:#2b2b2b;stroke-width:3.2;vector-effect:non-scaling-stroke}.route.rail{stroke:#fff;stroke-width:1.5;stroke-dasharray:4 4}.route.rail.abandoned{stroke:#d9cbb4}.route.trail{stroke:#8a5a33;stroke-width:1.7;stroke-dasharray:1 3.5}.route.bridge{stroke:#2f6f45;stroke-width:1.8;stroke-dasharray:6 2 1 2}.route.caravan{stroke:#a86f22;stroke-width:1.8;stroke-dasharray:8 4}.route.ice{stroke:#3d8fb0;stroke-width:1.6;stroke-dasharray:2 3}.route.river{stroke:#1f5b94;stroke-width:1.6;stroke-dasharray:2 3}.route.sea{stroke:#eef4fa;stroke-width:1.4;stroke-dasharray:6 5;opacity:.9}.route.sea.misty{stroke:#d8c8f2;stroke-dasharray:2 6}.route-hit{fill:none;stroke:transparent;stroke-width:14;vector-effect:non-scaling-stroke;cursor:pointer;pointer-events:stroke}.route-g:hover .route,.route-g.hl .route{stroke-width:3.2;filter:drop-shadow(0 0 2px #fff)}.trade{fill:none;stroke:#c9a866;stroke-width:3.6;stroke-linecap:round;opacity:.9;stroke-dasharray:14 8;animation:flow 1.6s linear infinite;vector-effect:non-scaling-stroke}.trade.sea{stroke:#f1dcaa}@keyframes flow{to{stroke-dashoffset:-22}}.rel{fill:none;stroke-width:2.2;vector-effect:non-scaling-stroke;stroke-linecap:round}.rel.ally{stroke:#2f8a5a}.rel.tension{stroke:#b23a3a;stroke-dasharray:6 4}.rel.avoid{stroke:#6d6d6d;stroke-dasharray:1 4}.country-label{font-family:var(--display)!important;font-weight:600;fill:#2b2435;text-anchor:middle;letter-spacing:.08em;paint-order:stroke;stroke:#fffbf0b3;stroke-width:3px;stroke-linejoin:round;transition:opacity .3s}[data-z="3"] .country-label{opacity:.28}.region-label{font-style:italic;font-size:13px;fill:#4a3f55;text-anchor:middle;letter-spacing:.12em;opacity:.85}.region-label.sea{fill:#eaf1f8;opacity:.8}.city .s,.cafe .s{transform:scale(var(--ik))}.city{cursor:pointer}.mk{fill:#fff;stroke:var(--navy);stroke-width:1.3}.mk.cap{stroke-width:1.6}.mk-dot{fill:var(--navy)}.mk.free{fill:var(--gold-lt);stroke:var(--navy)}.mk.float{fill:none;stroke:#fff;stroke-width:1.4}.mk.rumor{fill:none;stroke:#4b3570;stroke-dasharray:2 1.5}.mk.seasonal{fill:#e8f6fb;stroke-dasharray:2 1}.lbl{font-size:12.5px;font-weight:600;fill:#231d2e;paint-order:stroke;stroke:#fffbf2eb;stroke-width:3.4px;stroke-linejoin:round}.r3 .lbl{font-family:var(--display)!important;font-size:15px;letter-spacing:.04em}.r1 .lbl{font-style:italic;font-weight:500;font-size:11.5px}.free .lbl{fill:#6b4f1d}.city.off .lbl,.city.hidden,.cafe.hidden{display:none}.city.sel .mk{stroke:#b2272b;stroke-width:2.4}.city:hover .lbl,.city.sel .lbl{fill:#8a1f22;display:inline}.hit{fill:transparent}.frame rect{fill:none;stroke:var(--navy);stroke-width:1.6}.frame .outer{stroke:var(--gold);stroke-width:1}[data-off="1"]{display:none}#splash{position:fixed;inset:0;z-index:50;display:grid;place-items:center;background:radial-gradient(circle at 50% 42%,#2a3b66,var(--navy) 70%);color:var(--gold-lt);transition:opacity .6s ease,visibility .6s}#splash.done{opacity:0;visibility:hidden}.splash-inner{text-align:center}.splash-art{width:min(52vw,230px)}.splash-art .ml{stroke-dasharray:2400;stroke-dashoffset:2400;animation:draw 1.6s ease-out forwards;stroke-width:.5}.splash-art .mc{stroke-dasharray:120;stroke-dashoffset:120;animation:draw 1s ease-out forwards}@keyframes draw{to{stroke-dashoffset:0}}.splash-title{font-family:var(--display);font-size:clamp(28px,6vw,44px);letter-spacing:.14em;margin:18px 0 2px;color:#f4e6c4}.splash-sub{font-style:italic;letter-spacing:.2em;opacity:.8;font-size:15px}.panel{background:var(--paper);border:1px solid var(--line);box-shadow:0 10px 30px #12182c47,0 1px #fff9 inset;border-radius:14px;position:relative}.panel .corner{position:absolute;width:16px;height:16px;color:var(--gold)}.corner.tl{top:5px;left:5px}.corner.tr{top:5px;right:5px;transform:scaleX(-1)}.corner.bl{bottom:5px;left:5px;transform:scaleY(-1)}.corner.br{bottom:5px;right:5px;transform:scale(-1)}#topbar{position:fixed;top:max(12px,env(safe-area-inset-top));left:12px;right:12px;z-index:20;display:flex;gap:10px;align-items:center;pointer-events:none}#topbar>*{pointer-events:auto}.brand{display:flex;align-items:center;gap:10px;padding:7px 14px 7px 9px;background:var(--navy);color:#f3e3bd;border-radius:999px;border:1px solid #3a4a75;box-shadow:0 6px 20px #0a102259}.brand .emblem{color:var(--gold-lt);flex:none}.brand b{font-family:var(--display);font-weight:600;letter-spacing:.12em;font-size:19px;display:block;line-height:1}.brand small{font-style:italic;opacity:.75;font-size:12px;letter-spacing:.08em}.search{flex:1;max-width:380px;position:relative}.search input{width:100%;height:44px;border-radius:999px;border:1px solid var(--line);background:#faf6ecf5;padding:0 16px 0 40px;font:17px var(--serif);color:var(--ink);box-shadow:0 6px 18px #0a102238;outline:none}.search input:focus{border-color:var(--gold);box-shadow:0 0 0 3px #b08d4f40,0 6px 18px #0a102238}.search svg{position:absolute;left:14px;top:13px;color:var(--gold)}.results{position:absolute;top:50px;left:0;right:0;max-height:min(60vh,420px);overflow:auto;padding:6px;list-style:none;margin:0}.results li button{width:100%;text-align:left;padding:9px 12px;border:0;background:none;border-radius:9px;display:flex;gap:10px;align-items:baseline}.results li button:hover,.results li button[aria-selected=true]{background:var(--paper-2)}.results .t{font-weight:600}.results .m{color:var(--ink-soft);font-size:14px;font-style:italic;margin-left:auto;white-space:nowrap}.swatch{width:10px;height:10px;border-radius:50%;display:inline-block;flex:none;border:1px solid rgba(0,0,0,.25)}.fab-col{position:fixed;right:12px;bottom:calc(18px + var(--safe-b));z-index:20;display:flex;flex-direction:column;gap:10px;align-items:flex-end}.fab{height:48px;min-width:48px;border-radius:999px;border:1px solid #3a4a75;background:var(--navy);color:#f3e3bd;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 14px;box-shadow:0 8px 22px #0a102259;font-family:var(--display);letter-spacing:.08em;font-size:16px}.fab svg{color:var(--gold-lt)}.fab:active{transform:translateY(1px)}.zoom-btns{display:flex;flex-direction:column;border-radius:14px;overflow:hidden;box-shadow:0 8px 22px #0a10224d;border:1px solid #3a4a75}.zoom-btns button{width:46px;height:44px;border:0;background:var(--navy);color:#f3e3bd;font-size:22px}.zoom-btns button+button{border-top:1px solid #34436c}.mapinfo{position:fixed;left:12px;bottom:calc(14px + var(--safe-b));z-index:15;display:flex;align-items:flex-end;gap:12px;pointer-events:none;color:#f6ecd2}.compass{width:58px;color:#f4e6c4;filter:drop-shadow(0 2px 3px rgba(0,0,0,.3))}.compass-n{font:600 18px var(--display);fill:currentColor}.scalebar{font:13px var(--serif);text-shadow:0 1px 2px rgba(0,0,0,.5)}.scalebar .bar{height:7px;border:1.5px solid #f6ecd2;border-top:0;margin-top:3px;background:linear-gradient(90deg,#f6ecd2 0 25%,transparent 25% 50%,#f6ecd2 50% 75%,transparent 75%);transition:width .15s}#legend{position:fixed;left:12px;bottom:calc(96px + var(--safe-b));z-index:15;width:250px;padding:14px 16px 12px;max-height:46vh;overflow:auto}#legend h3{font:600 15px var(--display);letter-spacing:.14em;margin:0 0 6px;color:var(--navy);text-align:center}.leg-row{display:flex;align-items:center;gap:10px;font-size:14px;padding:2px 0;line-height:1.2}.leg-row svg{flex:none}.leg-note{font-size:12px;font-style:italic;color:var(--ink-soft);margin-top:6px}#layers:not(.open){display:none}#layers{position:fixed;z-index:30;right:70px;bottom:calc(18px + var(--safe-b));width:340px;max-height:calc(100vh - 110px);overflow:auto;padding:18px 18px 14px}#layers h2,.sheet h2{font:600 22px var(--display);letter-spacing:.12em;margin:0;color:var(--navy);text-align:center}.layer-group h4{font:italic 15px var(--serif);color:var(--gold);margin:14px 0 6px;letter-spacing:.06em;display:flex;gap:8px;align-items:center}.layer-group h4:after{content:"";flex:1;height:1px;background:var(--line)}.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{display:inline-flex;align-items:center;gap:7px;min-height:38px;padding:4px 12px 4px 8px;border-radius:999px;border:1px solid var(--line);background:#fff;font-size:15px;transition:background .15s,border-color .15s}.chip svg{flex:none}.chip[aria-pressed=true]{background:var(--navy);color:#f3e3bd;border-color:var(--navy)}.chip[aria-pressed=true] .key-bg{fill:#ffffff1f}.layers-actions{display:flex;gap:8px;margin-top:14px}.layers-actions button{flex:1;min-height:40px;border-radius:10px;border:1px solid var(--line);background:var(--paper-2)}.presets{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}.presets button{border:1px dashed var(--gold);background:none;border-radius:999px;padding:6px 12px;font-style:italic;color:#6b4f1d}.sheet{position:fixed;z-index:25;top:72px;right:12px;bottom:12px;width:var(--sheet-w);display:flex;flex-direction:column;overflow:hidden;transform:translate(calc(100% + 24px));transition:transform .35s cubic-bezier(.2,.8,.2,1)}.sheet.open{transform:none}.sheet .grip{display:none}.sheet-body{overflow:auto;padding:22px 24px 28px;overscroll-behavior:contain}.sheet-close{position:absolute;top:10px;right:10px;width:40px;height:40px;border-radius:50%;border:1px solid var(--line);background:var(--paper);z-index:2;font-size:22px;line-height:1}.hero{text-align:center;padding-top:4px}.hero .medallion,.hero .emblem{color:var(--gold)}.hero h2{margin-top:6px;font-size:30px}.epithet{font-style:italic;color:var(--ink-soft);font-size:18px}.meta{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin:10px 0 2px}.tag{display:inline-flex;align-items:center;gap:6px;font-size:13.5px;padding:3px 10px;border-radius:999px;background:var(--paper-2);border:1px solid var(--line)}button.tag{cursor:pointer}.divider{display:flex;align-items:center;gap:10px;color:var(--gold);margin:16px 0 12px}.divider span{flex:1;height:1px;background:linear-gradient(90deg,transparent,var(--gold) 30%,var(--gold) 70%,transparent);opacity:.7}.sheet p{font-size:17.5px;line-height:1.55;margin:0 0 12px;hyphens:auto}.sheet p.mood{font-style:italic;color:#463c55}.sheet h3{font:600 18px var(--display);letter-spacing:.1em;color:var(--navy);margin:18px 0 6px}.dropcap:first-letter{font:600 3.1em/.8 var(--display);float:left;padding:6px 8px 0 0;color:var(--gold)}.card{border:1px solid var(--line);background:#fff;border-radius:12px;padding:10px 14px;margin:8px 0}.card b{font-family:var(--label);font-size:18px}.card .kind{font-size:13px;font-style:italic;color:var(--gold);display:block}.card p{font-size:16px;margin:4px 0 0}.share{display:flex;height:12px;border-radius:6px;overflow:hidden;margin:6px 0 4px;border:1px solid var(--line)}.share i{display:block}.share-legend{display:flex;justify-content:space-between;font-size:13.5px;color:var(--ink-soft)}.link-list{display:flex;flex-wrap:wrap;gap:6px}.link-list button{border:1px solid var(--line);background:#fff;border-radius:999px;padding:5px 11px;font-size:15px}.link-list button:hover{border-color:var(--gold)}.d6-table{width:100%;border-collapse:collapse;font-size:16px}.d6-table td{padding:7px 6px;border-top:1px solid var(--line);vertical-align:top}.d6-table td:first-child{width:36px;color:var(--navy)}.d6{width:24px;height:24px}.d6-table tr.rolled td{background:#fff3d6}.roll{display:inline-flex;gap:8px;align-items:center;border:1px solid var(--gold);color:#6b4f1d;background:#fffaf0;border-radius:999px;padding:7px 14px;margin-top:8px}.origin dt{font:600 15px var(--display);letter-spacing:.08em;color:var(--gold);margin-top:10px}.origin dd{margin:2px 0 0;font-size:16.5px;line-height:1.45}.origin ul{margin:4px 0 0;padding-left:18px}.actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin-top:16px}.btn{border:1px solid var(--navy);background:var(--navy);color:#f3e3bd;border-radius:999px;padding:9px 16px;font-size:15.5px}.btn.ghost{background:transparent;color:var(--navy)}.summary-table{width:100%;border-collapse:collapse;font-size:14.5px}.summary-table th{text-align:left;font:600 13px var(--display);letter-spacing:.08em;color:var(--gold);padding:6px 4px;border-bottom:1px solid var(--gold)}.summary-table td{padding:6px 4px;border-bottom:1px solid var(--line);vertical-align:top}.summary-table button{border:0;background:none;padding:0;font-weight:600;text-decoration:underline;text-decoration-color:var(--gold);text-underline-offset:3px}.note{font-size:14px!important;font-style:italic;color:var(--ink-soft)}#tooltip{position:fixed;z-index:40;pointer-events:none;background:var(--navy);color:#f3e3bd;padding:6px 11px;border-radius:8px;font-size:15px;opacity:0;transform:translate(-50%,calc(-100% - 14px));transition:opacity .12s;white-space:nowrap;box-shadow:0 6px 18px #0a102259}#tooltip i{opacity:.75}#tooltip.show{opacity:1}.toast{position:fixed;left:50%;top:calc(72px + env(safe-area-inset-top,0px));transform:translate(-50%);background:var(--navy);color:#f3e3bd;padding:10px 16px;border-radius:999px;z-index:60;font-size:15px;box-shadow:0 6px 18px #0a102259;display:flex;gap:10px;align-items:center}.toast button{border:1px solid var(--gold);background:none;color:var(--gold-lt);border-radius:999px;padding:4px 10px}@media (max-width: 760px){.brand{padding:6px}.brand .txt{display:none}.search{max-width:none}#legend{display:none}#legend.mobile-open{display:block;left:8px;right:8px;width:auto;bottom:calc(80px + var(--safe-b));max-height:50vh}.mapinfo{bottom:calc(12px + var(--safe-b))}.compass{width:46px}#layers{left:0;right:0;bottom:0;width:auto;max-height:72vh;border-radius:20px 20px 0 0;padding-bottom:calc(18px + var(--safe-b));transform:translateY(105%);transition:transform .3s cubic-bezier(.2,.8,.2,1);display:block!important}#layers.open{transform:none}#layers:before,.sheet .grip{content:"";display:block;width:44px;height:5px;border-radius:3px;background:#d5c7aa;margin:-6px auto 10px}.sheet{inset:auto 0 0;width:auto;height:62vh;border-radius:20px 20px 0 0;transform:translateY(105%);padding-top:8px}.sheet.full{height:calc(100vh - 64px)}.sheet.open{transform:translateY(var(--drag, 0px))}.sheet .grip{margin:2px auto 0;touch-action:none;cursor:grab;height:5px;padding:0}.sheet-body{padding:10px 18px calc(24px + var(--safe-b))}.sheet p{font-size:17px}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation:none!important;transition:none!important}.splash-art .ml,.splash-art .mc{stroke-dashoffset:0}}
