/* Fieldbook and dialogue belong to the pixel world; the original work stays legible. */
:root{--book-paper:#f5e7bc;--book-ink:#293b32;--book-edge:#705137;--book-accent:#784336}
.game-header{background:#f3e2b9;border-bottom:4px solid #705137}.game-header nav{gap:8px}.game-header nav button{font-size:16px;padding:8px 12px}.game-header nav a{font-size:13px}.game-header h1{font-size:28px}.sound-control{position:relative}.sound-control summary{min-height:44px;padding:12px;cursor:pointer;font:16px Pixelify,sans-serif}.sound-control>div{position:absolute;z-index:8;top:100%;right:0;min-width:210px;background:var(--paper);border:3px solid var(--book-edge);padding:16px}.sound-control label{font-size:12px;display:block;margin:12px 0 4px}.sound-control input{width:100%;accent-color:var(--green)}.game{background:#436a58}.welcome{border:4px solid var(--book-edge);outline:2px solid #f9eac5;outline-offset:-8px;background:#f5e7bc}.welcome h2{font-size:34px}.welcome .welcome-portrait{height:80px;width:80px}.game-bottom .companion{border:3px solid var(--book-edge);background:#f5e7bc}.game-bottom #interact{border:3px solid var(--book-edge);font:18px Pixelify,sans-serif;background:#f5e7bc}.location{border:2px solid var(--book-edge);font-size:19px;background:#f5e7bc}.location-dot{width:6px;height:6px}.game-footer{border-color:var(--book-edge);background:#f3e2b9}.minimap{position:absolute;right:22px;top:20px;width:170px;padding:5px;background:#f5e7bc;border:3px solid var(--book-edge);pointer-events:none}.minimap canvas{display:block;width:154px;height:108px;image-rendering:pixelated}.minimap p{margin:3px 0 0;text-align:center;font:14px Pixelify,sans-serif;color:var(--ink)}
#conversation{width:min(960px,calc(100% - 40px));max-height:88svh;background:var(--book-paper);border:4px solid var(--book-edge);outline:2px solid #f9eac5;outline-offset:-9px;color:var(--book-ink);box-shadow:8px 16px 50px #1c2e2859}#conversation::backdrop{background:#172d2ba3}.dialog-top{border-color:#b69a6b;padding:22px 28px 16px}.dialog-top h2{font-size:34px}.dialog-top button{font:17px Pixelify,sans-serif;border-color:var(--book-edge);background:#ead8a7}.dialog-top button:hover{background:#ddc389}#dialog-content{padding:22px 28px 30px;line-height:1.65}#dialog-content button{border:2px solid var(--book-edge);background:#f8edcf;font:19px Pixelify,sans-serif}#dialog-content button:hover{background:#e5cd94}#dialog-content .fieldbook-lead{font-size:18px;font-weight:550}#dialog-content h3{font:500 24px/1.2 Pixelify,sans-serif;margin-top:28px}.fieldbook-spread{display:grid;grid-template-columns:230px minmax(0,1fr);gap:32px}.fieldbook-illustration{align-self:start}.room-vignette{height:170px;background-image:url('../images/rpg-rooms.png');background-size:300% 200%;image-rendering:pixelated;border:3px solid var(--book-edge)}.room-puerto{background-position:0 0}.room-archivo{background-position:50% 0}.room-observatorio{background-position:100% 0}.room-taller{background-position:0 100%}.room-escuela{background-position:50% 100%}.fieldbook-illustration p{font:500 27px/1.2 Pixelify,sans-serif;margin:18px 0 12px}.fieldbook-illustration>span{font-size:12px;color:#5e5e41}.real-map,.project-image{margin:24px 0}.real-map img,.project-image img{max-width:100%;width:100%;max-height:280px;object-fit:contain;background:#e8dbba}.real-map figcaption,.project-image figcaption{font-size:11px;color:#54583f;line-height:1.5;margin-top:8px}.evidence-link{display:inline-flex;align-items:center;min-height:44px;margin-top:16px;font-weight:600}.rpg-projects{display:flex;flex-direction:column;gap:12px;margin:16px 0}.rpg-projects button{display:flex;align-items:center;gap:12px;text-align:left;padding:10px 14px}.rpg-projects button>span:nth-child(2){flex:1}.rpg-projects strong{font-weight:500}.rpg-projects small{display:block;font:12px/1.4 DM Sans,sans-serif;margin-top:5px;color:#53583c}.rpg-projects button>span:last-child{font-size:15px}.project-object,.project-seal{display:block;background:url('../images/rpg-props.png') no-repeat;background-size:400% 200%;background-position:33.333% 100%;image-rendering:pixelated}.project-object{width:58px;height:54px;flex-shrink:0}.project-seal{float:right;width:110px;height:105px;margin:0 0 18px 24px}.project-purpose{font-size:21px;line-height:1.6;margin-top:0}.project-record{clear:both}.project-record>div{padding:18px 0;border-top:1px solid #b69a6b}.project-record dt{font:500 22px Pixelify,sans-serif;margin-bottom:8px}.project-record dd{margin:0;max-width:68ch}.project-record>div:last-child{background:#e8d7a7;padding:16px;margin-top:12px}.project-exits{display:flex;gap:16px;flex-wrap:wrap;margin-top:24px}.project-exits a{border:2px solid var(--book-edge);padding:10px 16px;min-height:44px;background:#f8edcf;text-decoration:none;font-weight:600}.book-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 22px;padding-bottom:18px;border-bottom:1px solid #b69a6b}.book-tabs button{font-size:16px!important;padding:8px 12px;min-height:44px}.book-tabs button[aria-current=true]{background:#315b47!important;color:#fff2cf}.journal-list button{gap:16px}.journal-list .room-vignette{width:90px;height:60px;flex-shrink:0}.journal-list .journal-label{flex:1}.learning-path{padding-left:22px}.learning-path li{margin:10px 0}
#conversation[data-kind=talk]{margin:auto auto 28px;width:min(900px,calc(100% - 32px));max-height:75svh}#conversation[data-kind=talk] .dialog-top{padding:16px 24px 8px;border-bottom:0}#conversation[data-kind=talk] .dialog-top h2{font-size:28px}#conversation[data-kind=talk] #dialog-content{padding:8px 24px 18px}#conversation[data-kind=talk] .dialog-portrait{width:100px;height:105px;margin-right:22px}#conversation[data-kind=talk] .choices{clear:both;flex-direction:row;flex-wrap:wrap;gap:10px;margin-bottom:10px}#conversation[data-kind=talk] .choices button{font-size:17px;padding:8px 12px}#conversation[data-kind=talk] .guide-note{font-size:10px;margin:0}.npc-line{min-height:3.3em}.dialog-portrait{border-bottom:2px solid #b69a6b}.dialog-reveal{animation:dialog-enter .22s steps(6,end)}@keyframes dialog-enter{from{opacity:.6;transform:translateY(5px)}to{opacity:1;transform:none}}
@media(max-width:850px){.game-header{gap:12px;flex-wrap:wrap}.game-header nav{flex-wrap:wrap}.game-header h1{font-size:25px}.minimap{width:120px;right:12px;top:64px}.minimap canvas{width:104px;height:73px}.minimap p{font-size:12px}.fieldbook-spread{grid-template-columns:170px minmax(0,1fr);gap:22px}.room-vignette{height:130px}}
@media(max-width:600px){.game-header{padding:8px 12px;min-height:116px}.game-header nav{width:100%;gap:5px}.game-header nav button{font-size:14px;padding:7px 8px}.game-header nav a{font-size:11px}.game-header nav .sound-control{margin-left:auto}.sound-control summary{font-size:14px;padding:12px 6px}.game-header h1{font-size:23px}.game{height:calc(100svh - 204px);min-height:430px}.minimap{width:100px;top:57px;padding:3px;opacity:.95}.minimap canvas{width:88px;height:62px}.minimap p{display:none}.game-bottom #interact{font-size:15px;max-width:150px}.fieldbook-spread{display:block}.fieldbook-illustration{display:flex;gap:16px;align-items:center;margin-bottom:22px}.fieldbook-illustration .room-vignette{width:120px;height:88px;flex-shrink:0}.fieldbook-illustration p{font-size:22px;margin:0}.fieldbook-illustration>span{display:none}#conversation{width:calc(100% - 22px);max-height:88svh}.dialog-top{padding:18px 16px 14px}.dialog-top h2{font-size:27px}#dialog-content{padding:18px 16px 24px}.project-purpose{font-size:18px}.project-seal{width:80px;height:80px;margin-left:12px}.rpg-projects button>span:last-child{display:none}.book-tabs{gap:5px}.book-tabs button{font-size:15px!important;padding:6px 8px}.journal-list .room-vignette{width:65px;height:48px}.journal-list button{flex-wrap:nowrap}.journal-list small{display:block}.journal-label{font-size:19px}#conversation[data-kind=talk]{margin:auto auto 12px;max-height:85svh}#conversation[data-kind=talk] .dialog-portrait{width:75px;height:85px;margin-right:14px}#conversation[data-kind=talk] .choices{flex-direction:column}#conversation[data-kind=talk] .dialog-top{padding:14px 16px 6px}#conversation[data-kind=talk] #dialog-content{padding:8px 16px 14px}}
@media(prefers-reduced-motion:reduce){.dialog-reveal{animation:none}}

/* Camera and wayfinding: screen-space controls stay readable as the village recedes. */
#world-labels{position:absolute;inset:0;pointer-events:none}
.landmark{position:absolute;pointer-events:auto;min-height:44px;padding:6px 11px;background:#244a3c;color:#fff2cf;border:1px solid #fff2cf;box-shadow:0 3px 8px #244a3c26;text-align:center;line-height:1.1;white-space:nowrap}
.landmark strong{display:block;font:500 17px/1.1 Pixelify,sans-serif}.landmark small{display:block;font:11px/1.4 'DM Sans',sans-serif;color:#e2e9cc;margin-top:2px}.landmark:hover{background:#17382d}.landmark:focus-visible{outline:3px solid #fff2cf;outline-offset:3px}
.location{top:77px;left:22px;background:#f5e7bce8;border:0;padding:6px 9px;font:14px/1.2 Pixelify,sans-serif;max-width:230px}
.camera-controls{position:absolute;top:18px;left:22px;display:flex;align-items:center;background:#f5e7bc;border:2px solid #705137}.camera-controls button{border:0;background:transparent;width:44px;padding:0;font:24px Pixelify,sans-serif}.camera-controls button:hover{background:#e5cd94}.camera-controls output{min-width:46px;text-align:center;font:12px 'DM Sans',sans-serif}
#overview{top:18px;right:22px;width:156px;padding:5px;border:2px solid #705137;pointer-events:auto;background:#f5e7bc;opacity:1}#overview:hover{background:#e5cd94}#overview canvas{width:142px;height:99px}#overview>span{display:block;margin-top:4px;font:15px/1.2 Pixelify,sans-serif}#overview kbd{font:11px 'DM Sans',sans-serif;border:1px solid #9d8155;padding:0 3px;margin-left:3px}
#route-banner{position:absolute;top:18px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:14px;padding-left:14px;border:2px solid #705137;background:#fff2cf;max-width:calc(100% - 380px);font:17px Pixelify,sans-serif}#route-banner button{border:0;border-left:1px solid #b69a6b;padding:8px 12px;font:12px 'DM Sans',sans-serif}#route-name{overflow-wrap:anywhere}
.atlas-spread{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(220px,1fr);gap:24px;align-items:center}.atlas-map{width:100%;height:auto;image-rendering:pixelated;border:2px solid #705137}.atlas-destinations{display:grid;gap:8px}#dialog-content .atlas-destinations button{display:flex;gap:14px;align-items:center;text-align:left;min-height:58px;padding:8px 12px}.atlas-number{width:28px;height:28px;flex-shrink:0;display:grid;place-items:center;border:1px solid #705137;background:#244a3c;color:#fff2cf;font:16px Pixelify,sans-serif}.atlas-destinations strong{display:block;font-weight:500}.atlas-destinations small{display:block;font:12px/1.5 'DM Sans',sans-serif;color:#53583c}.atlas-note{font-size:12px;margin:18px 0 0}
@media(max-width:650px){.camera-controls{left:12px;top:12px}.location{left:12px;top:68px;font-size:12px;max-width:155px}#overview{right:12px;top:12px;width:115px;padding:4px}#overview canvas{width:103px;height:72px}#overview>span{font-size:12px}#overview kbd{display:none}#route-banner{top:127px;left:12px;transform:none;max-width:calc(100% - 24px);font-size:15px;gap:8px}.game-bottom .companion{padding:6px 9px;border-width:2px}.companion .mini-portrait,.companion strong{display:none}.companion small{font-size:10px;max-width:90px}.atlas-spread{grid-template-columns:1fr;gap:14px}.atlas-map{max-height:220px;object-fit:contain;background:#92b874}#dialog-content .atlas-destinations button{min-height:52px;padding:6px 10px}.atlas-destinations{gap:6px}.atlas-destinations small{font-size:11px}.atlas-note{margin-top:12px}#conversation[data-kind=atlas] #dialog-content{padding-top:14px}#conversation[data-kind=atlas] #dialog-content>p:first-child{font-size:14px}}
@media(max-height:600px) and (min-width:651px){.game-header{min-height:62px;padding:5px 18px}.game{height:calc(100svh - 142px);min-height:310px}#overview{width:108px}#overview canvas{width:94px;height:66px}#overview>span{font-size:12px}#overview kbd{display:none}.game-bottom .mini-portrait{display:none}.game-bottom .companion{padding:6px 10px}.companion strong{display:none}.touch-pad{bottom:80px;grid-template-columns:repeat(3,44px);grid-template-rows:repeat(2,44px)}.game-bottom{bottom:12px}.atlas-map{max-height:220px;object-fit:contain}}
@media(max-height:600px) and (min-width:651px){.game{height:calc(100svh - 156px);min-height:210px}.location{display:none}.touch-pad{bottom:62px;left:12px;gap:2px}.game-bottom{left:12px;right:12px}.game-footer{padding:2px 14px;min-height:44px}.game-footer>span{display:none}.game-footer p{font-size:10px}}

/* Sound is a visible entry choice, never a hidden prerequisite for the village. */
#music{min-width:142px;border-color:#285b48}#music[aria-pressed=true]{background:#285b48;color:#fff2cf}#music[aria-pressed=true]:hover{background:#1c4737}.game-header .sound-control summary{font:12px 'DM Sans',sans-serif;padding:14px 7px}.sound-control>div p{font-size:12px;line-height:1.5;margin-bottom:0}.welcome-actions{display:grid;gap:8px;margin:18px 0 4px}.welcome-actions button{margin:0;width:100%;font-size:21px}.welcome-actions #start-silent{background:transparent;color:#285b48;border:1px solid #705137;font:14px 'DM Sans',sans-serif}.welcome-actions #start-silent:hover{background:#e5cd94}.welcome .welcome-portrait{width:64px;height:64px}.welcome h2{font-size:31px}.welcome p{margin:10px 0}.welcome a{padding-top:10px}
@media(max-width:650px){.game-header nav{justify-content:flex-start;gap:5px}.game-header nav #music{min-width:0;padding:7px 9px;font-size:14px}.game-header nav .sound-control{margin-left:0}.game-header nav a{margin-left:auto}.game-header .sound-control summary{padding:12px 4px;font-size:11px}.welcome{padding:17px 22px}.welcome h2{font-size:28px}.welcome-actions{margin-top:12px;gap:6px}.welcome-actions button{font-size:20px}.welcome .welcome-portrait{height:52px;width:52px}}
@media(max-width:370px){.game-header nav{column-gap:4px}.game-header nav button{padding:7px 6px;font-size:13px}.game-header nav #music{padding:7px 6px;font-size:13px}.game-header nav a{font-size:10px}.game-header .sound-control summary{font-size:10px;padding:12px 2px}}
@media(max-height:600px) and (min-width:651px){.welcome{width:min(650px,calc(100% - 36px));padding:12px 22px}.welcome .welcome-portrait{display:none}.welcome h2{font-size:25px;margin:0 0 5px}.welcome p{font-size:12px;margin:4px 0}.welcome-actions{display:flex;margin:8px 0 0}.welcome-actions button{font-size:18px}.welcome-actions #start-silent{font-size:13px}.welcome a{padding-top:9px;font-size:12px}}
@media(max-width:650px){.game-header{position:relative}.game-header h1{font-size:21px;padding-right:48px}.game-header nav .sound-control{position:absolute;right:12px;top:8px}.game-header nav #music{min-width:86px}.game-header .sound-control>div{top:38px}.game-header nav{flex-wrap:nowrap}}
@media(max-width:370px){.game-header h1{font-size:19px}.game-header nav #music{min-width:78px}}
