:root{--ink:#10221a;--muted:#768276;--paper:#f0ece0;--gold:#d4b47a;--line:#ffffff1d;font-family:Arial,Helvetica,sans-serif;font-size:16px;color:var(--paper);background:var(--ink)}*{box-sizing:border-box}body{margin:0;overflow:hidden}button,select{font:inherit}button,a,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer;border:1px solid var(--line);background:#193126;color:var(--paper);border-radius:5px;padding:10px 13px;font-size:14px;transition:background .18s}button:hover{background:#2c4837}button:focus-visible,a:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid var(--gold);outline-offset:3px}button.active{background:var(--paper);color:var(--ink)}button:disabled{opacity:.45;cursor:wait}button.primary{background:var(--gold);color:#14231b;border-color:var(--gold)}button.quiet{background:transparent}a{color:inherit}header{height:83px;border-bottom:1px solid var(--line);padding:0 26px;display:flex;align-items:center;gap:32px}.brand{display:flex;gap:14px;align-items:center;text-decoration:none;font:27px Georgia,serif}.brand small{display:block;font:10px Arial,sans-serif;letter-spacing:.22em;margin-top:5px}.crest{border:1px solid #bfa77788;width:43px;height:49px;display:grid;place-items:center;font-size:21px;color:var(--gold);border-radius:21px 21px 5px 5px}.version{font-size:13px;color:#a8b2a7;margin-left:auto}.version b{font-weight:400;color:var(--gold);margin-left:9px}main{height:calc(100dvh - 83px);display:grid;grid-template-columns:280px 1fr}aside{display:flex;flex-direction:column;overflow-y:auto;border-right:1px solid var(--line);background:#10221a;z-index:12}.asidehead{padding:28px 24px 19px}.eyebrow{font-size:11px;letter-spacing:.17em;color:var(--gold)}h1{font:29px/1.13 Georgia,serif;font-weight:400;margin:15px 0}h1 em{color:#d8c8a5;font-weight:400}.asidehead p{font-size:14px;line-height:1.55;color:#a5b0a5;margin:0}nav{padding:0 13px 18px}nav button{display:flex;align-items:center;gap:13px;text-align:left;border:0;background:none;border-radius:3px;width:100%;padding:10px;font-size:14px}nav button .index{color:#acbdac;font:18px Georgia,serif;min-width:24px}nav button.active{background:#294435;color:#f4ebd6}nav button.active .index{color:var(--gold)}nav button small{display:block;color:#869788;font-size:11px;margin-top:4px}nav button.active small{color:#abbca9}.asidefoot{margin-top:auto;padding:20px 24px 22px;border-top:1px solid var(--line);font-size:13px;line-height:1.7;color:#c3cabe}.asidefoot span{font-size:11px;color:#81937f}#world{position:relative;overflow:hidden;background:#c3cdcc}#viewport,#labels{position:absolute;inset:0}#viewport canvas{width:100%;height:100%;display:block;touch-action:none}#labels{pointer-events:none}.maplabel{position:absolute;pointer-events:auto;transform:translate(-50%,-50%);width:30px;height:30px;border-radius:50%;background:#152c22e8;border:1px solid #dfc38b;color:#f5e7c9;display:grid;place-items:center;font:16px Georgia,serif;padding:0;box-shadow:0 2px 10px #0003}.maplabel.selected{background:#ead8ad;color:#183026;width:36px;height:36px;z-index:3}.toolbar{position:absolute;top:20px;left:22px;display:flex;gap:5px;z-index:10;background:#142a20dd;padding:5px;border-radius:7px;box-shadow:0 4px 20px #0001}.toolbar button{border:0;background:transparent;font-size:13px}.toolbar button.active{background:#f0ece0}#loading,#error{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;background:#192c24;z-index:20;text-align:center;padding:25px}#error[hidden],#loading[hidden]{display:none}#error img{width:min(500px,90%);border-radius:5px;margin:20px}.loader-mark{font:43px Georgia,serif;color:var(--gold);border:1px solid #a48c5d;width:90px;height:100px;display:grid;place-items:center;border-radius:45px 45px 5px 5px}#loading h2{font:32px Georgia,serif;margin:24px 0 8px}#loading p{font-size:14px;color:#a8b6aa}progress{width:220px;height:3px;border:0;margin:14px;accent-color:var(--gold)}#detail{position:absolute;right:20px;top:20px;width:315px;background:#10221af5;color:var(--paper);padding:20px;border:1px solid #c2caa32b;border-radius:7px;z-index:11;max-height:calc(100% - 90px);overflow:auto;box-shadow:0 10px 35px #0002}.detailhead{display:flex;align-items:center;gap:12px}.number{font:30px Georgia,serif;color:var(--gold)}.detailhead h2{font:25px/1.1 Georgia,serif;margin:5px 0 0}.detailhead .eyebrow{font-size:9px}.close{background:transparent;border:0;padding:2px 6px;font-size:25px;color:#abb5a8;align-self:flex-start;margin-left:auto}.actions{display:flex;gap:7px;margin:18px 0}.actions button{font-size:13px;flex:1;padding:11px 7px}.fieldrow{display:flex;align-items:center;gap:10px;margin:10px 0}.fieldrow[hidden]{display:none}.fieldrow label{font-size:13px;min-width:36px;color:#b9c4b5}select{min-width:0;flex:1;background:#1d3528;color:#f0ece0;border:1px solid var(--line);padding:9px;border-radius:4px;font-size:13px}#cabinMeta{font-size:13px;color:#aabbac;margin:14px 0}.modelnote{color:#839580;font-size:12px;line-height:1.55;margin:18px 0 0}details{border-top:1px solid var(--line);padding-top:16px;margin-top:18px}summary{font-size:13px;cursor:pointer;color:#d6d9c9}.referenceTabs{display:flex;gap:6px;margin:14px 0 10px}.referenceTabs button{padding:7px 9px;font-size:12px}#referenceImage{width:100%;max-height:280px;object-fit:contain;background:#ecede7;border-radius:3px}#referenceCaption{font-size:11px;color:#9dad9a;line-height:1.5}.bottomline{position:absolute;bottom:0;left:0;right:0;padding:12px 22px;background:#10221ade;display:flex;align-items:center;justify-content:space-between;gap:15px;z-index:8}.bottomline p{font-size:12px;color:#d6decd;margin:0}.bottomline span{font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:#aabd9d}#minimap{position:absolute;bottom:70px;left:22px;background:#152b21d9;border:1px solid #d3d9bb38;border-radius:6px;padding:8px;z-index:9;width:162px}#minimap span{position:absolute;right:11px;top:9px;font-size:12px;color:#dcd2b8}#mapCanvas{width:145px;height:155px;display:block;cursor:pointer}#crosshair{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:#fff9;pointer-events:none;font-size:20px}#touchControls{position:absolute;bottom:65px;right:22px;z-index:15;text-align:center}#touchControls button{width:45px;height:44px;background:#193125b3;margin:2px;touch-action:none}#mobileCabins{display:none}dialog{width:min(590px,92vw);border:1px solid #65735c;background:#152b20;color:var(--paper);padding:36px;border-radius:7px;max-height:90dvh;overflow:auto}dialog::backdrop{background:#05110bcc;backdrop-filter:blur(5px)}dialog .close{float:right}dialog h2{font:34px/1.13 Georgia,serif;font-weight:400;margin:20px 0}dialog p{color:#b7c5b2;font-size:15px;line-height:1.7}dialog a{color:var(--gold);font-size:14px}@media(max-width:1100px){main{grid-template-columns:235px 1fr}.asidehead{padding:24px 18px}#detail{width:270px;top:78px}.toolbar{left:15px;top:15px}#minimap{left:15px;width:140px}#mapCanvas{width:123px;height:135px}}@media(max-width:760px){header{height:68px;padding:0 15px;gap:12px}.brand{font-size:23px}.brand small{font-size:8px}.crest{width:34px;height:40px;font-size:17px}.version{display:none}header .quiet{margin-left:auto;font-size:12px;padding:8px}main{height:calc(100dvh - 68px);display:block}aside{display:none;position:absolute;top:68px;bottom:0;left:0;width:245px;box-shadow:10px 0 35px #0005}aside.open{display:flex}#world{height:100%}.toolbar{left:10px;right:10px;top:10px;justify-content:center}.toolbar button{font-size:12px;padding:9px}#detail{right:10px;top:67px;width:255px;max-height:calc(100% - 165px);padding:15px}.detailhead h2{font-size:23px}#minimap{display:none}.bottomline{padding:10px 12px;min-height:48px}.bottomline p{font-size:11px;max-width:75%}.bottomline span{font-size:9px;max-width:20%}#mobileCabins{display:block;position:absolute;left:12px;bottom:64px;z-index:14;background:#132b22}#touchControls{bottom:61px;right:12px}#touchControls button{width:39px;height:39px}dialog{padding:25px}dialog h2{font-size:29px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}
[hidden]{display:none!important}.toolbar{max-width:calc(100% - 30px);flex-wrap:wrap}.retreatLink{display:block;margin-top:17px;color:#e4c48e;font-size:14px}.modelnote,#referenceCaption{font-size:12px!important}.fieldrow label,select,.actions button,summary,.toolbar button{font-size:14px!important}#porchButton{width:100%;font-size:14px}#viewport canvas:focus{outline:none}@media(max-width:760px){.toolbar{gap:2px}.toolbar button{padding:8px 7px;font-size:12px!important}#detail{top:106px}}
