@font-face{font-family:VT323;src:url('assets/vt323.ttf') format('truetype');font-weight:400;font-display:swap}*{box-sizing:border-box}body{margin:0;background:#121b1b;color:#eee7d3;font:16px/1.5 system-ui,sans-serif}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:wait;opacity:.6}a{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,.map:focus-visible{outline:3px solid #e2b95e;outline-offset:4px}button{color:inherit;border:0;background:none}button:hover{color:#f6cc70}button:active{transform:translateY(1px)}header{max-width:1660px;margin:auto;padding:28px 42px;display:flex;align-items:center;justify-content:space-between;gap:30px}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;font-family:VT323,sans-serif;font-size:27px;color:#e6c884}.brand svg{width:30px;height:30px}.brand span{font-family:system-ui,sans-serif;font-size:13px;color:#aab9b2;margin-left:13px}nav{display:flex;gap:26px;align-items:center}nav button{padding:8px 0;color:#aebbb4;font-size:14px}nav .nav-active{color:#eedeb5}#savedCount{font-size:12px;padding-left:6px;color:#d5c295}#adminButton{margin-left:24px;color:#e5d7b5}main{max-width:1660px;margin:auto;padding:0 42px}.intro{display:flex;align-items:center;justify-content:space-between;padding:30px 0 32px;gap:16px}h1{font:76px/.94 VT323,sans-serif;font-weight:400;letter-spacing:-1.5px;margin:0 0 12px;color:#eed9a7}.intro p{margin:0;color:#b2c0b7;font-size:16px}.island-note{color:#d9c8a2;font-family:VT323,sans-serif;font-size:23px;text-align:right}.island-note span{display:block;font:13px system-ui,sans-serif;color:#aab9b2;margin-top:6px}.explorer{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:0;align-items:stretch;background:#173d45}.map-column{min-width:0}.map-toolbar{min-height:60px;background:#1c2a29;display:flex;align-items:center;justify-content:space-between;padding:10px 20px;gap:8px}#filters{display:flex;gap:7px;flex-wrap:wrap}#filters button{padding:8px 10px;font-size:13px;color:#c6d1c6}#filters button[aria-pressed=true]{background:#dcca9e;color:#25352e}#resetMap{font-size:26px;min-width:40px}.map-viewport{position:relative;overflow:hidden;background:#123e4a}.map{position:relative;width:100%;aspect-ratio:6/5;max-height:calc(100vh - 300px);min-height:420px;overflow:hidden}.map canvas{width:100%;height:100%;object-fit:fill;image-rendering:pixelated;display:block}.sea-label{position:absolute;top:39%;left:5%;font:22px VT323,sans-serif;color:#6eaaa9;transform:rotate(-12deg)}.compass{position:absolute;right:5%;top:5%;width:64px;text-align:center;color:#dfc690;font:20px VT323,sans-serif}.compass svg{width:100%;display:block}.cartouche{position:absolute;bottom:9%;right:5%;text-align:center;font:22px/1 VT323,sans-serif;color:#c5d1b7;pointer-events:none}.cartouche strong{font-weight:400;font-size:27px;display:block;margin:5px}.cartouche span{display:block;font:11px system-ui,sans-serif;margin-top:12px;color:#96b6ae}.map-hint{position:absolute;bottom:0;left:0;right:0;padding:10px 15px;text-align:center;font-size:12px;color:#c5d5cc;background:#15353cd9;pointer-events:none}.map-caption{padding:12px 20px;background:#1c2a29;display:flex;justify-content:space-between;gap:10px;font-size:11px;color:#acbcb2}.map-caption i{display:inline-block;background:#b1a16b;width:6px;height:6px;margin-right:6px}.marker{position:absolute;transform:translate(-50%,-50%);padding:0;display:flex;flex-direction:column;align-items:center;z-index:2;min-width:44px;min-height:44px;white-space:nowrap}.marker .pin{height:29px;width:25px;background:#e5bf6a;color:#233e35;clip-path:polygon(20% 0,80% 0,80% 12%,100% 12%,100% 65%,70% 65%,50% 100%,30% 65%,0 65%,0 12%,20% 12%);font:bold 19px VT323,sans-serif;line-height:23px}.marker .label{background:#143039;color:#f4dfab;padding:2px 7px;font:18px VT323,sans-serif;margin-top:3px;max-width:180px;white-space:normal;text-align:center;line-height:1.05}.marker:hover,.marker.selected{z-index:5}.marker.selected .pin{background:#fff1b1}.marker.selected .label{background:#efdab0;color:#23392e}.marker:hover .pin{transform:translateY(-4px)}.marker .pin{transition:transform .15s}.marker:active{transform:translate(-50%,-50%)}.marker.draft{opacity:.6}#draftMarker{position:absolute;transform:translate(-50%,-50%);font:50px VT323,sans-serif;color:#fff1b1;z-index:7;pointer-events:none}.map.placing{cursor:crosshair}.map.placing .marker{pointer-events:none}aside{background:#e6d9b5;color:#293a31;display:flex;flex-direction:column;min-width:0}.journal-heading{display:flex;justify-content:space-between;align-items:center;padding:18px 24px;background:#d4c49a;font:22px VT323,sans-serif}.detail-content{padding:22px 24px 20px}.category-line{font-size:12px;color:#506047;display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}h2{margin:0;font:32px/1.05 VT323,sans-serif;font-weight:400}.detail-content p{font-size:14px;line-height:1.65;margin:15px 0}.detail-content .note{font-size:12px;color:#5e644a;margin-top:12px}.scene{width:100%;height:100px;background:#254d49;display:block;image-rendering:pixelated;margin:18px 0}.bookmark{min-height:40px;padding:9px 12px;background:#d2c59e;color:#263e31;font-size:13px;width:100%;text-align:left}.bookmark:hover{background:#c4b586;color:#183127}.directions{display:inline-block;margin-top:15px;font-size:13px;color:#304d38}.edit-link{font-size:13px;text-decoration:underline;margin-top:12px;padding:4px 0;color:#304d38}.places-section{padding:18px 24px 24px;background:#ded0a9;flex:1}.list-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}.list-heading h2{font-size:23px}.list-heading span{font-size:12px;color:#526044}.search{display:flex;gap:8px;align-items:center;background:#eee4c9;padding:5px 10px;margin-bottom:12px}.search input{width:100%;min-width:0;border:0;background:transparent;outline-offset:0;padding:7px 0;color:#273b30;font-size:13px}.place-row{display:flex;justify-content:space-between;text-align:left;gap:10px;padding:12px 0;width:100%;font-size:14px;color:#253c30}.place-row:hover{color:#675725}.place-row small{display:block;font-size:11px;color:#5a664d;margin-top:3px}.place-row .arrow{align-self:center;font-family:VT323,sans-serif;font-size:25px}.place-row[aria-current=true]{font-weight:600}.empty{font-size:14px;padding:15px 0}.closing{display:flex;justify-content:space-between;align-items:center;margin:28px 0 35px;color:#c4ceb9;gap:16px}.closing p{font:25px VT323,sans-serif;margin:0}.closing span{font-size:12px;color:#9baea2}footer{max-width:1660px;margin:auto;padding:20px 42px 30px;display:flex;justify-content:space-between;font-size:12px;color:#99aaa1;gap:20px}footer div{display:flex;gap:18px}footer button{padding:0}#status{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:#ead9ad;color:#203b30;padding:12px 20px;z-index:20;font-size:14px;max-width:90vw;display:none}#status.visible{display:block}dialog{border:0;border-radius:0;background:#e6d9b5;color:#293a31;padding:36px;max-width:480px;width:calc(100% - 36px)}dialog::backdrop{background:#071617cc}dialog h2{font-size:32px;padding-right:20px}dialog p{font-size:14px}dialog a{color:#355a42}.dialog-close{position:absolute;right:12px;top:8px;font:30px VT323,sans-serif;color:#293a31;width:36px;height:36px}label{display:block;font-size:13px}label input,label select,label textarea{display:block;width:100%;padding:10px;border:1px solid #a9a07e;background:#f5eedc;border-radius:0;color:#283d30;margin-top:5px;min-height:42px}textarea{resize:vertical;min-height:100px}.primary{display:block;width:100%;padding:12px 16px;background:#294d3d;color:#fff4d7;text-align:center;font-size:14px;min-height:44px;margin-top:14px}.primary:hover{background:#1c3c2f;color:#fff}.form-error{color:#8e2424;font-size:13px;min-height:0}.editor{padding:20px 24px}.editor h2{font-size:28px;margin-bottom:15px}.editor label{margin-bottom:11px}.editor textarea{font-size:13px}.position-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px}.position-fields input{font-variant-numeric:tabular-nums}.editor small{display:block;font-size:11px;color:#566148}.editor .checkbox{display:flex;align-items:center;gap:8px;margin:15px 0}.checkbox input{width:18px;min-height:18px;margin:0}.secondary{color:#294d3d;background:#cbbc91;padding:10px 13px;min-height:40px;font-size:13px;width:100%}.danger{color:#872b20;margin:15px 0 0;font-size:13px;padding:5px 0}.editor-actions{display:flex;gap:15px;justify-content:space-between}.editor-actions button{font-size:13px;padding:8px 0}.admin .map{max-height:none}.admin #journal{max-height:900px;overflow:auto}[hidden]{display:none!important}@media(min-width:1500px){.map{min-height:600px}}@media(max-width:1100px){header,main,footer{padding-left:24px;padding-right:24px}.brand span{display:none}.explorer{grid-template-columns:minmax(0,1fr) 300px}.map{min-height:470px;max-height:none}.map-toolbar{padding:10px}.cartouche{right:2%;font-size:18px}.cartouche strong{font-size:22px}.cartouche span{max-width:110px}.sea-label{left:2%;font-size:18px}nav{gap:18px}#adminButton{margin-left:0}h1{font-size:64px}}@media(max-width:1000px){header{padding-top:20px;padding-bottom:16px;flex-wrap:wrap;gap:13px}.brand{font-size:25px}.brand svg{width:25px;height:25px}nav{width:100%;justify-content:space-between;gap:8px}nav button{font-size:12px;min-height:40px}.intro{padding:20px 0 24px}.intro h1{font-size:58px}.intro p{font-size:14px;max-width:240px}.island-note{font-size:19px}.island-note span{display:none}.explorer{grid-template-columns:1fr}.map{min-height:0;max-height:none;aspect-ratio:6/5}.map-toolbar{padding:8px 10px}#filters{gap:2px}#filters button{padding:7px;font-size:11px;min-height:35px}.map-caption{font-size:10px;padding:10px 12px}.map-hint{font-size:10px;padding:7px}.marker .label{font-size:16px;max-width:110px}.marker .pin{height:25px;width:22px;font-size:17px}.compass{width:40px;top:4%}.cartouche{font-size:16px;bottom:12%;right:3%}.cartouche strong{font-size:20px}.cartouche span{display:none}.sea-label{font-size:16px;top:40%}.journal-heading{padding:12px 20px}.detail-content{padding:20px}.detail-content p{font-size:15px}.scene{height:100px}.places-section{padding:20px}.closing{display:block;margin:25px 0 12px}.closing span{display:block;margin-top:8px}footer{flex-direction:column;padding-top:18px}footer div{flex-wrap:wrap;gap:20px}header,main,footer{padding-left:16px;padding-right:16px}.admin #journal{max-height:none;overflow:visible}.map.placing{outline:3px solid #e5bf6a;outline-offset:-3px}}@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

.marker.label-above .label{transform:translateY(-25px)}.marker.label-below .label{transform:translateY(25px)}.marker.label-above .pin,.marker.label-below .pin{pointer-events:none}.map-caption{flex-wrap:wrap;gap:8px}

.marker{width:25px;height:29px;min-width:25px;min-height:29px;transform:translate(-50%,-100%)}
.marker .label{position:absolute;top:30px;left:50%;transform:translateX(-50%)}
.marker.label-above .label{top:-27px;transform:translateX(-50%)}
.marker.label-below .label{top:30px;transform:translateX(-50%)}
.marker[data-place="Eagle Bar"] .label,.marker[data-place="Ao Yai"] .label{left:auto;right:22px;top:0;transform:none}
.marker[data-place="Vijit Bungalows"] .label{top:-29px}
.marker[data-place="Bam Bam Massage"] .label{left:26px;top:0;transform:none}
@media(max-width:1000px){.marker .label{display:none}.marker.selected .label,.marker:focus-visible .label{display:block}.marker{min-width:25px}.map-toolbar{flex-wrap:wrap}#filters{flex-wrap:wrap}}

.marker .label{min-width:max-content;max-width:none;white-space:nowrap}.map-column{align-self:start}
