*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:#241a12;color:#eee2c5;font-family:"Apple SD Gothic Neo","Malgun Gothic",sans-serif}button,a{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}:focus-visible{outline:3px solid #f4cb7a;outline-offset:5px}[hidden]{display:none!important}.lobby{position:relative;min-height:800px;height:100svh;isolation:isolate;overflow:hidden}.desk{position:absolute;inset:0;z-index:-2}.desk>img{width:100%;height:100%;object-fit:cover;image-rendering:pixelated}.shade{position:absolute;inset:0;background:linear-gradient(0deg,#170f0be6,transparent 16%,transparent 85%,#1c130bd9),linear-gradient(90deg,transparent 65%,#1e150c4d)}header{position:absolute;top:4.3%;left:4%;right:4%;display:flex;align-items:center;justify-content:space-between;gap:24px}.wordmark{font:600 clamp(22px,2vw,34px)/1 Georgia,serif;letter-spacing:.13em;text-shadow:2px 2px #1c130b}.wordmark small{display:block;font:9px/2.9 sans-serif;letter-spacing:.43em;color:#bcb094}.page-label{font-size:12px;letter-spacing:.15em;color:#cbb994}.page-label i{margin:0 18px;color:#9d8056}#hero-button{color:#e1cfaa;background:#241b13b8;border:1px solid #a1865b66;padding:11px 17px;font-size:12px}#hero-button:hover{background:#58402a}.map{position:absolute;inset:0;pointer-events:none}.map-caption{position:absolute;left:15%;top:19%;color:#58432c;transform:rotate(-4deg)}.map-caption>span{font:10px monospace;letter-spacing:.22em;opacity:.7}.map-caption h1{font:600 clamp(21px,2vw,32px)/1.4 Georgia,serif;letter-spacing:.15em;margin:8px 0}.map-caption p{font-size:11px;letter-spacing:.07em;margin:0}.marker{position:absolute;left:var(--x);top:var(--y);transform:translate(-50%,-30%);border:0;background:transparent;color:#593c29;padding:8px;pointer-events:auto;display:flex;align-items:center;flex-direction:column;min-width:110px}.seal{width:54px;height:54px;display:grid;place-items:center;background:#903e30;clip-path:polygon(25% 0,75% 0,75% 7%,93% 7%,93% 25%,100% 25%,100% 75%,93% 75%,93% 93%,75% 93%,75% 100%,25% 100%,25% 93%,7% 93%,7% 75%,0 75%,0 25%,7% 25%,7% 7%,25% 7%);box-shadow:inset 0 0 0 5px #78372a;transition:transform .15s}.seal svg{width:31px;height:31px;fill:#eed7a9;shape-rendering:crispEdges}.seal .cut{fill:#903e30}.label{font-size:13px;font-weight:700;letter-spacing:.04em;background:#ead5a8df;padding:6px 11px 5px;margin-top:7px;box-shadow:2px 2px #74563033;border-bottom:1px solid #98734b66}.label small{display:block;font-weight:400;font-size:9px;letter-spacing:.08em;margin-top:4px;color:#886246}.marker:hover .seal{transform:translateY(-5px)}.marker.selected:before{content:"";position:absolute;top:0;width:76px;height:76px;border:1px solid #8d3229;outline:1px solid #8d322933;outline-offset:5px;transform:rotate(45deg)}.marker.selected .seal{background:#6c2622}.marker.selected .cut{fill:#6c2622}.marker.selected .label{background:#6c2622;color:#fff0c9}.marker.selected small{color:#e6b99b}.map-note{position:absolute;bottom:14%;left:40%;font-size:10px;color:#796144;transform:rotate(-4deg)}.dossier{position:absolute;top:18%;right:4%;width:23%;max-width:360px;padding:24px;background:#251d14f2;border:1px solid #9e7e4b80;box-shadow:0 12px 40px #100a084d,inset 0 0 0 5px #251d14,inset 0 0 0 6px #9e7e4b26}.eyebrow{font:10px monospace;letter-spacing:.16em;color:#b59a6b;margin:0;display:flex;justify-content:space-between}.rule{height:1px;background:#9e7e4b66;margin:15px 0 23px}.region-type{font-size:11px;letter-spacing:.12em;color:#ab9772;margin-bottom:8px}.dossier h2{font:400 29px/1.2 Georgia,serif;letter-spacing:.12em;margin:0}.monster-art{height:155px;position:relative;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse,#77603c30,transparent 68%);margin:12px 0}.monster-art img{max-height:150px;max-width:95%;object-fit:contain;image-rendering:pixelated;filter:drop-shadow(5px 8px 0 #100b0933)}.stamp{position:absolute;right:0;bottom:4px;font-size:10px;color:#dc9c78;border:1px solid #8d5039;padding:4px 7px;transform:rotate(-8deg)}.field-label{font-size:10px;letter-spacing:.15em;color:#b69c75;margin:0 0 8px}.dossier h3{font-size:17px;font-weight:500;letter-spacing:.04em;margin:0}.report{color:#c2b195;font-size:12px;line-height:1.9;margin:14px 0 20px;min-height:46px}.dossier dl{border-top:1px solid #9e7e4b44;margin:0 0 22px;padding-top:12px;font-size:11px}.dossier dl>div{display:flex;justify-content:space-between;padding:6px 0;gap:10px}.dossier dt{color:#a48d68}.dossier dd{margin:0;color:#ce9a73}.enter{display:flex;justify-content:space-between;align-items:center;padding:16px;background:#7b352b;border:1px solid #c5835a;color:#f6e7c7;font-size:14px;letter-spacing:.14em;box-shadow:inset 0 0 0 3px #7b352b,inset 0 0 0 4px #c5835a44}.enter:hover{background:#914837}.entry-note{font-size:9px;text-align:center;color:#a59070;line-height:1.6;margin:10px 0 0}footer{position:absolute;bottom:4%;left:4%;right:4%;display:flex;align-items:center;justify-content:space-between;gap:15px;font-size:11px;color:#c0aa80;letter-spacing:.07em}footer i{display:inline-block;width:5px;height:5px;background:#b86449;margin-right:8px}footer b{margin-left:9px;color:#ead9b6}.legend{font-size:10px}.legend em{color:#d79070;margin-left:22px;font-style:normal}.footer-note{color:#ae9672;font-size:10px}dialog{width:min(850px,90vw);max-height:90svh;overflow:auto;color:#ead9b6;background:#2b2118;border:1px solid #b49b6c;padding:24px}dialog::backdrop{background:#130d0bc9}.dialog-heading{display:flex;justify-content:space-between;align-items:center}.dialog-heading h2{font-size:19px}.close{background:transparent;border:0;color:#ead9b6;font-size:28px}.hero-sheet{width:100%;image-rendering:pixelated}@media(max-width:1000px) and (min-width:701px){.dossier{width:28%;right:3%;padding:17px}.page-label{display:none}.map-caption{left:12%}.dossier h2{font-size:24px}.monster-art{height:115px}.monster-art img{max-height:110px}.report{font-size:11px}}@media(max-width:700px){.lobby{height:auto;min-height:1120px}.desk{height:660px;overflow:hidden}.desk>img{width:1200px;height:675px;max-width:none;position:absolute;left:50%;transform:translateX(-47%)}.shade{background:linear-gradient(0deg,#241a12,transparent 25%,transparent 80%,#1c130bbf)}header{top:24px;left:6%;right:6%;gap:12px}.wordmark{font-size:21px}.wordmark small{font-size:8px}#hero-button{font-size:10px;padding:9px}.page-label{display:none}.map{height:630px;top:40px}.map-caption{left:11%;top:15%;transform:rotate(-3deg)}.map-caption h1{font-size:23px}.map-caption>span{font-size:9px}.map-caption p{font-size:10px}.marker{min-width:92px}.seal{width:43px;height:43px}.seal svg{width:25px;height:25px}.label{font-size:11px;padding:5px 7px}.marker.selected:before{width:62px;height:62px}.marker[data-region=forest]{left:20%;top:37%}.marker[data-region=bridge]{left:56%;top:54%}.marker[data-region=sanctuary]{left:75%;top:30%}.marker[data-region=marsh]{left:27%;top:75%}.map-note{left:22%;bottom:6%;font-size:9px}.dossier{position:relative;top:auto;right:auto;width:88%;max-width:none;margin:650px auto 85px;padding:24px;min-height:380px}.monster-art{float:right;width:41%;height:130px;margin:10px 0 8px 10px}.monster-art img{max-height:115px}.field-label{margin-top:28px}.report{min-height:70px}.dossier dl{clear:both}.region-type{margin-top:15px}.dossier h2{font-size:27px}footer{bottom:23px;left:6%;right:6%;font-size:10px}.legend{font-size:9px}.legend em{margin-left:8px}.footer-note{display:none}}
/* The map heading stays readable above the ink terrain. */
.map-caption{padding:13px 18px;background:#ead5a8ed;border:1px solid #a17a4b66;box-shadow:3px 4px #563c2026}
@media(max-width:700px){.map-caption{padding:10px 12px;top:12%}.map-caption h1{font-size:20px}}
/* Center the map on the desk; reports open only after selecting a seal. */
.shade{background:linear-gradient(0deg,#170f0bcc,transparent 15%,transparent 85%,#1c130bbf)}
.map-caption{left:25%;top:18%;padding:10px 16px}
.map-caption h1{font-size:25px}
.map-note{left:50%;bottom:17%;transform:translateX(-50%);margin:0;padding:5px 10px;background:#ead5a8cc}
.dossier{z-index:3;right:3%;top:16%;width:310px;max-height:77%;overflow:auto;box-shadow:0 12px 50px #100a0899,inset 0 0 0 5px #251d14,inset 0 0 0 6px #9e7e4b26}
.dossier-close{position:absolute;right:11px;top:8px;border:0;background:#251d14;color:#ead9b6;font-size:23px;line-height:1;padding:3px 8px}
.eyebrow{padding-right:24px}
@media(max-width:700px){
 .lobby{height:100svh;min-height:760px}
 .desk{height:100%}
 .desk>img{width:100%;height:100%;position:static;transform:none;object-fit:cover;object-position:50% 50%}
 .map{top:0;height:100%}
 .map-caption{top:17%;left:50%;transform:translateX(-50%);white-space:nowrap}
 .map-caption h1{font-size:20px}
 .marker[data-region=forest]{left:19%;top:39%}
 .marker[data-region=bridge]{left:62%;top:53%}
 .marker[data-region=sanctuary]{left:80%;top:31%}
 .marker[data-region=marsh]{left:35%;top:72%}
 .map-note{left:50%;bottom:17%;white-space:nowrap;font-size:8px}
 .dossier{position:absolute;left:5%;right:5%;top:auto;bottom:10%;width:90%;margin:0;max-height:75%;min-height:0;padding:22px}
 footer{bottom:4%}
}
.map-caption{left:50%;top:14%;transform:translateX(-50%);text-align:center}
.village .seal{background:#596a45;box-shadow:inset 0 0 0 5px #3c5035;width:70px;height:58px}
.village .seal svg{width:51px;height:42px}.village .cut{fill:#596a45}
.village .label{background:#e4dbb8;border-color:#667347}.label small{white-space:nowrap}
.locked-badge{border:1px solid #a1865b66;padding:18px;text-align:center;color:#c7b087;font-size:13px}
.party-slots{display:flex;gap:8px;margin:24px 0}.party-slots>span{flex:1;border:1px dashed #9e7e4b80;min-height:60px;display:grid;place-content:center;text-align:center;color:#c7b087;font-size:16px}.party-slots small{font-size:9px}.party-status{font-size:11px;color:#bca880;line-height:1.8}.dossier .enter{width:100%;cursor:pointer}.enter:disabled{opacity:.6;cursor:default}
@media(max-width:700px){.map-caption{top:16%}.marker.village{left:23%;top:35%}.marker[data-region=infinite]{left:77%;top:35%}.marker[data-region=contract]{left:76%;top:68%}.marker[data-region=normal]{left:23%;top:68%}.village .label small{max-width:130px;white-space:normal;line-height:1.6}.map-note{white-space:normal;text-align:center;width:85%;bottom:14%}.label{font-size:12px}.label small{font-size:8px}.dossier{min-height:300px}}

.dossier.contract-report{top:26%;min-height:0}.contract-report .report{font-size:18px;line-height:1.65;color:#ead9b6;min-height:0;margin:22px 0 16px}.contract-description{font-size:12px;color:#c2b195;line-height:1.9;margin:0 0 22px}.contract-capacity{text-align:center;font-size:10px;color:#a48d68;border-top:1px solid #9e7e4b44;padding-top:16px;margin:0 0 22px}.contract-report .rule{margin-bottom:18px}@media(max-width:700px){.dossier.contract-report{top:auto;min-height:0}}
.contract-report .report{word-break:keep-all}
