/* Railway adventure: scene first, props instead of generic windows. */
:root{--brass:#b39b63;--brass-light:#dfcf99;--ink:#253731;--paper:#dcca9e;--steel:#172b2d;--hide:#372b23;--thread:#ae9562}
.scene:after{content:'';position:absolute;inset:0;pointer-events:none;z-index:1;background:radial-gradient(ellipse at 50% 45%,transparent 45%,#02090d55 100%);box-shadow:inset 0 0 50px #0004}
button{transition:filter .16s,box-shadow .16s,transform .16s}button:hover{filter:brightness(1.12)}button:active{filter:brightness(.88)}button:focus-visible{outline:2px solid #ead5a2;outline-offset:3px}
.scene-top{color:#d3c7a7;letter-spacing:.18em;font-size:8px;text-transform:uppercase}.scene-top span:last-child{opacity:.65;font-size:7px}.scene-top #location{padding-bottom:7px;border-bottom:1px solid #bfa46566}
#money-hud{top:43px;background:linear-gradient(120deg,#293738e8,#0c191be8);border:1px solid #8d7a4e;border-radius:0 0 12px 12px;box-shadow:inset 0 0 0 3px #0b1719,0 3px 10px #0006;padding:8px 12px;text-align:center}#money-hud strong{font:19px Georgia;color:#dfcc91}#money-hud small{font:7px Georgia;letter-spacing:.2em}
#needs-hud{background:linear-gradient(120deg,#253431e8,#081b1be8);border:1px solid #9c8757;border-radius:12px 0 12px 0;padding:8px;box-shadow:inset 0 0 0 3px #102022,0 3px 10px #0006}#needs-hud meter{height:8px}#needs-hud meter::-webkit-meter-bar{border:1px solid #766640;border-radius:1px;background:#0a1719}#needs-hud meter::-webkit-meter-optimum-value{background:linear-gradient(#ddc585,#a28b51)}
#backpack-button{top:114px;background:repeating-linear-gradient(90deg,#302820,#372e25 2px,#302820 4px);border:2px solid #987c4d;border-radius:11px 11px 5px 5px;box-shadow:inset 0 0 0 3px #1d211c,0 4px 9px #0008;height:64px;width:52px;right:18px}#backpack-button svg{height:30px;color:#cdb885}#backpack-button small{color:#ddcca2;font-size:9px}
/* Open leather pack, stitched pockets and actual object silhouettes. */
.inventory-panel{left:3%;right:3%;top:7%;bottom:5%;max-width:660px;padding:24px 18px 20px;background:repeating-linear-gradient(40deg,#342a21,#342a21 2px,#382e24 3px,#382e24 5px);border:7px solid #211e18;border-radius:45px 45px 20px 20px;box-shadow:inset 0 0 0 2px #9b8152,inset 0 0 35px #000b,0 16px 60px #000c;color:#e8d8b1;scrollbar-color:#9d8152 #2f281f}
.inventory-panel:before{content:'';position:absolute;top:10px;left:12px;right:12px;height:160px;border:1px dashed #a48956;border-bottom:0;border-radius:28px 28px 0 0;pointer-events:none}.pack-flap{text-align:center;position:relative;padding:7px 20px 25px;margin-bottom:15px;border-radius:22px 22px 40% 40%;background:linear-gradient(#51402d,#392d22);box-shadow:0 8px 8px #0005;border-bottom:2px solid #ac8a50}.pack-flap small{font:8px Georgia;letter-spacing:.14em;color:#c9b384}.pack-flap h3{font:italic 29px Georgia;margin:7px 0 4px;text-shadow:0 2px #211b15}.pack-buckle{position:absolute;bottom:-15px;left:calc(50% - 12px);width:24px;height:27px;border:4px ridge #c0a261;background:#4a3620;box-shadow:0 2px 5px #0006}.inventory-close{z-index:3;top:18px;right:15px;background:#241f1a;color:#d7c18d;border:1px solid #a18a59;border-radius:50%;width:34px;height:34px;min-height:34px;font-size:24px}.inventory-coins,.inventory-needs{font:12px Georgia;text-align:center;border:0;margin:10px 0;padding:4px;color:#d2c196}.inventory-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:16px}.inventory-list .pack-slot{display:flex;flex-direction:column;gap:0;text-align:center;align-items:center;position:relative;min-height:180px;padding:14px 8px 12px;border:2px solid #211f19;border-top:0;border-radius:6px 6px 17px 17px;background:linear-gradient(#141d1a99,#58452c44);box-shadow:inset 0 -6px 9px #0004,0 1px #a18a5955}.inventory-list .pack-slot:after{content:'';position:absolute;inset:8px 5px 5px;border:1px dashed #a68a5355;border-top:0;border-radius:0 0 10px 10px;pointer-events:none}.inventory-list .pack-item{border:0;background:none;flex:none;display:block;width:80px;height:66px;margin:0 auto 8px;position:relative}.inventory-list h4{font:15px Georgia;color:#edddb5;margin:6px 0}.inventory-list p{font:10px/1.4 Georgia;color:#baa981}.inventory-list button{font:11px Georgia;padding:7px 12px;background:linear-gradient(#cbb47b,#9b804b);border:1px solid #e4d19b;border-radius:2px;color:#251f14;box-shadow:0 2px 3px #0005;margin-top:9px}.inventory-foot{font:10px/1.6 Georgia;text-align:center;padding:14px 8px 0;color:#bdad8b}.inventory-feedback{font:12px Georgia;text-align:center;background:#191e1680;border-radius:5px;color:#ddc78f;margin:12px 0 0;min-height:0}.inventory-feedback:empty{display:none}.inventory-list .empty-slot{justify-content:center;opacity:.4}.empty-slot>span{font:26px Georgia;color:#9e8a65}.inventory-empty{grid-column:1/-1;padding:35px 12px;text-align:center}
/* Object art is CSS/SVG, never a missing emoji glyph. */
.pack-slot[data-item=water] .pack-item{width:29px;height:65px;border:2px solid #a4b7ad;border-radius:8px;background:linear-gradient(90deg,#597f7a88,#bfceba55 45%,#3d656c99);box-shadow:inset 5px 0 3px #fff2,2px 3px 5px #0008}.pack-slot[data-item=water] .pack-item svg{display:none}.pack-slot[data-item=water] .pack-item:before{content:'';position:absolute;left:5px;right:5px;top:-8px;height:9px;background:#8b9c8c;border:1px solid #c4ccba;border-radius:3px}.pack-slot[data-item=water] .pack-item:after{content:'AGUA';position:absolute;left:-2px;right:-2px;top:24px;background:#c8bc8d;color:#2c423e;font:8px/18px Georgia;letter-spacing:.08em}
.pack-slot[data-item=crackers] .pack-item{font-size:0;width:51px;height:65px;background:repeating-linear-gradient(0deg,#9e7438,#cba55f 5px,#ad8849 7px);border:2px solid #d4bb83;transform:rotate(-5deg);box-shadow:3px 4px 5px #0008}.pack-slot[data-item=crackers] .pack-item:after{content:'GALLETAS';position:absolute;left:-5px;right:-5px;top:24px;padding:6px 0;background:#3a4937;color:#e0cf9d;font:8px Georgia}
.pack-slot[data-item=ticket] .pack-item{width:83px;height:48px;font-size:0;background:#d8c28b;border:1px dashed #7c6948;transform:rotate(-7deg);margin-top:9px;margin-bottom:17px;box-shadow:2px 4px 5px #0007}.pack-slot[data-item=ticket] .pack-item:after{content:'CENTRAL\A OLEADA 4';white-space:pre;position:absolute;inset:6px;border:1px solid #88784d;color:#364333;font:8px/15px Georgia}
.pack-slot[data-item=mirror] .pack-item{width:42px;height:54px;border:4px ridge #b29755;border-radius:13px;font-size:0;background:linear-gradient(130deg,#5f8091,#d1dcd5 50%,#65848d);box-shadow:2px 3px 5px #0008}.pack-slot[data-item=mirror] .pack-item:after{content:'';position:absolute;top:48px;left:13px;width:10px;height:16px;background:#ad9054;border-radius:0 0 5px 5px}
.pack-slot[data-item=bulb] .pack-item{font-size:0;width:38px;height:45px;border:2px solid #c3b889;background:radial-gradient(ellipse,#dac68966,#a7bab533);border-radius:50%;margin-bottom:29px}.pack-slot[data-item=bulb] .pack-item:after{content:'';position:absolute;top:38px;left:9px;width:16px;height:22px;background:repeating-linear-gradient(#7c8274,#b6ba9d 3px,#596358 4px);border-radius:0 0 4px 4px}
/* Props: page, archive desk, brass switch console. */
.clue:not(.moon-reading):not(.observing){border:0;border-radius:2px;padding:25px 23px 20px;background:linear-gradient(100deg,#b7a478,#ebd9b2 8%,#e8d6ad 90%,#b39a70);box-shadow:0 14px 55px #000b,inset 0 0 0 1px #9c8557;max-height:86%;width:min(590px,92%)}.clue:not(.moon-reading)>small{color:#74623f}.clue:not(.moon-reading) h3{font:italic 25px Georgia;color:#384134;border-bottom:1px solid #8c7e5866;padding-bottom:12px}.clue:not(.moon-reading) p{font:14px/1.65 Georgia}.clue:not(.moon-reading) button:not(.dial):not(#close-clue){font-family:Georgia;background:linear-gradient(#d4c08e,#bca36a);color:#29382e;border-color:#8f7c4a;border-radius:1px;box-shadow:0 2px 2px #0002}#close-clue{border:1px solid #88754e;background:#dfcda7;border-radius:50%;width:31px;height:31px;min-height:31px;top:9px;right:9px;font:23px Georgia;padding:0;color:#4b4a38}
.clue[data-prop=notebook]{border-left:13px solid #453d2d!important;border-radius:7px 2px 2px 7px!important}.notebook{padding:10px 10px 5px;border:0;box-shadow:inset 5px 0 8px #4e422422}.notebook nav{margin-top:15px;gap:7px}.notebook nav button{min-width:43px;border-bottom:3px solid #756440!important}.notebook footer{padding:15px 0;font:11px Georgia;color:#6c624a}.notebook .hand{font-style:italic}
.clue[data-prop=record]{background:repeating-linear-gradient(0deg,#302a21,#392f23 4px,#302a21 7px)!important;border:5px ridge #806b42!important;color:#e4d1a4}.clue[data-prop=record] h3{color:#e0c590}.clue[data-prop=record]>small{color:#ba9e67}.record-slots{gap:12px}.record-slot{position:relative;background:#cbb58a!important;border:0!important;box-shadow:0 3px 6px #0006!important;transform:rotate(-1deg);min-height:73px}.record-slot:nth-child(even){transform:rotate(1deg)}.record-slot:before{content:'';position:absolute;top:-5px;left:40%;width:22%;height:10px;background:#b8a17288;transform:rotate(-4deg)}.record-card{background:#ddcba4!important;transform:rotate(.5deg);padding:13px!important}.record-card.selected{outline-color:#dfc879;transform:translateY(-3px) rotate(-1deg)}
.clue[data-prop=chest]{background:transparent!important;box-shadow:none!important;color:#e3d1a7;width:min(540px,96%)}.clue[data-prop=chest]>small,.clue[data-prop=chest]>h3{display:none}.clue[data-prop=chest] #close-clue{z-index:3;background:#382c23;color:#d9c48e}.chest{box-shadow:0 18px 35px #000a;transform:perspective(1000px) rotateX(4deg)}
.clue[data-prop=console]{background:transparent!important;box-shadow:none!important;width:min(620px,96%);color:#daca9d}.clue[data-prop=console]>small,.clue[data-prop=console]>h3{display:none}.switch-console{padding:27px 17px 20px;border:7px ridge #927d4a;border-radius:9px;background:repeating-linear-gradient(0deg,#243638,#243638 2px,#26393a 3px);box-shadow:inset 0 0 24px #000b,0 14px 40px #0009;position:relative}.switch-console:before{content:'PUESTO DE CONDUCCIÓN · DESVÍO';display:block;font:9px Georgia;letter-spacing:.16em;text-align:center;color:#c3ad76;border:1px solid #877345;padding:11px;margin:0 15px 17px}.physical-route{border:3px ridge #a18a56;background:linear-gradient(#162426,#33433e);box-shadow:inset 0 4px 9px #0007}.physical-route label{color:#dcc695;text-transform:uppercase;letter-spacing:.1em}.physical-route input{height:32px}.physical-route input::-webkit-slider-runnable-track{height:9px;background:linear-gradient(#060e12,#4b5551);border:1px solid #a18c54;border-radius:3px}.physical-route input::-webkit-slider-thumb{appearance:none;width:25px;height:35px;margin-top:-12px;border:3px ridge #c4ad76;background:linear-gradient(90deg,#675433,#d1b675,#735b33);border-radius:7px}.physical-route input{-webkit-appearance:none;background:none}
.clue.observing{border:1px solid #a88e56;border-radius:0;background:linear-gradient(#0b181acc,#07151aee);max-width:560px}.clue.observing h3{font:18px Georgia;color:#d9c189;border:0;padding:0}.clue.observing #close-clue{background:#102023;border-color:#8f7a4c;color:#d9c189}.observation-note{color:#e0d2b2}
/* Station, encounter and ending share the same material language. */
.station-panel:not(.sentinel-scene):not(.opening-scene){inset:12% 5% 5%;max-width:700px;margin:auto;border:8px ridge #715b38;background:repeating-linear-gradient(0deg,#122b2a,#122b2a 2px,#152e2d 3px);box-shadow:inset 0 0 24px #0008,0 15px 50px #000b;border-radius:4px}.station-panel h3{font:24px Georgia;color:#d5be84}.station-panel:not(.sentinel-scene)>small{font:9px Georgia;color:#ba9f66;letter-spacing:.18em}.shop-items{gap:14px}.shop-items article{background:linear-gradient(#1c322a,#293b2b);border-bottom:8px ridge #705a35;box-shadow:inset 0 0 0 1px #b69d5844,0 5px 7px #0006;padding:20px 8px 14px}.shop-items h4{font-size:19px;color:#e1ca92}.shop-items button{font:12px Georgia!important;background:linear-gradient(#d1bb82,#a58a52)!important;border:1px solid #ecd69c!important}.shop-items small{font:10px Georgia;letter-spacing:0}.shop-items .supply-icon{transform:scale(1.1);margin:20px auto 25px;box-shadow:3px 5px 8px #0007}.station-shop,#ticket-action{border:3px ridge #c1a76e;background:linear-gradient(#243e39,#102c2a);color:#e3cb8d;box-shadow:0 4px 12px #0008;font:13px Georgia}.station-panel.opening-scene{border:0;border-left:2px solid #b29a61;border-radius:0;background:linear-gradient(90deg,#07151be8,#07151b22);padding:20px 24px}.station-panel.opening-scene h3{color:#d8c28b}.station-panel.opening-scene button{background:linear-gradient(#cbb57c,#a48b51);font-family:Georgia}
#physical-ui .physical-actions{background:linear-gradient(90deg,transparent,#081a1ded 15%,#081a1ded 85%,transparent);border:0;bottom:4%;max-width:620px;margin:auto;padding:17px 25px;color:#e2d1aa}#physical-ui .physical-actions button{width:auto;min-width:65%;border:2px ridge #b39b63;background:linear-gradient(#354e46,#17312f);color:#e2cb91;font:14px Georgia;padding:13px 24px}#physical-ui .physical-back{border:0;background:#06171bbb;color:#bca674;font:10px Georgia;padding:9px;top:106px;left:14px;max-width:55%}.physical-back:before{content:'‹ ';font-size:17px}.subtitle{font:15px/1.5 Georgia;left:8%;right:8%;bottom:8%;color:#e0cfaa;background:linear-gradient(90deg,transparent,#06171bcc 25%,#06171bcc 75%,transparent);padding:14px}.subtitle:empty{display:none}
.arrival-board{border:5px ridge #9e8550;background:#0c2423;box-shadow:0 5px 15px #0007}.arrival-board strong{font:27px Georgia;letter-spacing:.2em;color:#d6c592}.conductor-note{background:linear-gradient(100deg,#c1af85,#e1cfaa 15%,#d8c59c 94%,#b8a076);border:0;box-shadow:0 5px 13px #0005;transform:rotate(-.5deg);padding:14px 18px}.conductor-note summary{font:13px Georgia}.validated-ticket{border:2px dashed #8e7850;background:linear-gradient(100deg,#b7a171,#e0cfa0 15%,#dcc695 88%,#baa372);transform:rotate(-2deg);box-shadow:0 8px 15px #0007;padding:25px}.validated-ticket strong{border:3px double #577056;color:#365b48;transform:rotate(-5deg);padding:14px;margin:20px 8px 5px;font:18px Georgia;letter-spacing:.1em}.arrival-resolution button{font-family:Georgia;background:linear-gradient(#d2bd87,#b3985b);border:1px solid #ead7a4}.sentinel-sound{font:9px Georgia;border:0;border-bottom:1px solid #ad965a;background:#05161baa;color:#c2b48d;border-radius:0}
@media(min-width:700px){.inventory-panel{padding:28px 27px;top:8%;bottom:7%}.inventory-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.inventory-list .pack-slot{min-height:200px;padding:20px 8px}.pack-flap h3{font-size:34px}.inventory-foot{font-size:11px}.clue:not(.moon-reading):not(.observing){padding:30px}.clue[data-prop=chest],.clue[data-prop=console]{padding:10px!important}.station-panel:not(.sentinel-scene):not(.opening-scene){inset:14% 17% 10%}.shop-items{gap:25px}.shop-items article{padding:25px 15px}}
@media(max-height:550px){.inventory-panel{top:3%;bottom:3%;max-width:800px}.pack-flap{padding:0 20px 12px}.pack-flap small{display:none}.pack-flap h3{font-size:24px}.inventory-list{grid-template-columns:repeat(3,minmax(0,1fr))}.inventory-list .pack-slot{min-height:165px}.clue:not(.moon-reading):not(.observing){max-height:93%}}
@media(prefers-reduced-motion:reduce){button{transition:none}.chest{transform:none}.record-card.selected{transform:none}}
.inventory-list p{color:#ede8db;font-size:11px;line-height:1.5}.inventory-coins,.inventory-needs{color:#f1e7d1;font-size:12px}.inventory-foot{color:#e8e2d6;font-size:11px;line-height:1.7}.pack-flap small{color:#eee6d3;font-size:8px}.scene:has(.inventory-panel)>#needs-hud,.scene:has(.inventory-panel)>#money-hud{visibility:hidden}.scene:has(.inventory-panel)~footer{display:none}.scene:has(.inventory-panel) .sentinel-sound{display:none}.inventory-list .empty-slot{min-height:90px}.inventory-panel{padding-bottom:35px}.shop-items small,.station-panel:not(.sentinel-scene)>small{color:#ede4d0}.scene-top span:last-child{color:#eee8dd;opacity:1}.clue[data-prop=record]>small{color:#eae2ce}
#close-clue{z-index:10}.clue[data-prop=console] #close-clue{top:8px;right:8px;background:#162d2c;color:#e8d8b1;border-color:#bba46c}.scene:has(.clue:not([hidden])) #backpack-button,.scene:has(.clue:not([hidden])) #needs-hud,.scene:has(.clue:not([hidden])) #money-hud{visibility:hidden}.clue[data-prop=record]{background:repeating-linear-gradient(0deg,#302a21,#392f23 4px,#302a21 7px)!important}.clue[data-prop=record] #clue-body>div>p{color:#efe8d8}.clue[data-prop=console] p,.clue[data-prop=console] small,.clue.observing p{color:#f1e8d5}.clue[data-prop=console] .switch-console:before{color:#e6d7b3}.clue[data-prop=console] .physical-route small{font-size:12px;letter-spacing:0}.clue[data-prop=console] .physical-route label{color:#efe4ca}.clue[data-prop=notebook]{border-left:13px solid #453d2d!important}.clue:not(.moon-reading)[data-prop=notebook]{border-radius:7px 2px 2px 7px!important}
#scene-target{position:absolute;left:50%;bottom:14%;transform:translateX(-50%);z-index:3;pointer-events:none;color:#f1e0bb;text-shadow:0 2px 3px #000;font:12px Georgia;letter-spacing:.04em;background:linear-gradient(90deg,transparent,#061519a8 20%,#061519a8 80%,transparent);padding:8px 22px;white-space:nowrap}#scene-target:before{content:'◇';display:block;text-align:center;font-size:18px;margin-bottom:5px;color:#d1b976}.scene:has(.clue:not([hidden])) #scene-target,.scene:has(.station-panel) #scene-target,.scene:has(.physical-actions) #scene-target,.scene:has(.inventory-panel) #scene-target,.scene:has(.arrival-resolution) #scene-target{display:none}#scene-target:empty{display:none}
.inventory-close{position:sticky;float:right;top:0;margin-top:-8px;margin-right:-4px}.pack-flap{clear:both}.inventory-panel:has(.inventory-close:focus-visible){scroll-margin-top:12px}.scene:has(.inventory-panel)~footer{display:none!important}
.subtitle{pointer-events:none}
.clue.moon-reading[data-prop=notebook],.clue.moon-reading{border:0!important;border-radius:0!important;box-shadow:none!important}.scene:has(.arrival-resolution) #backpack-button,.scene:has(.arrival-resolution) #needs-hud,.scene:has(.arrival-resolution) #scene-target{visibility:hidden}.arrival-resolution .resolution-close{width:38px;height:38px;min-height:38px;border-radius:50%;border:1px solid #c6ac70;display:grid;place-items:center;background:#102a2a;right:0;float:right}.arrival-resolution .validated-ticket{max-width:650px;margin:30px auto}.arrival-resolution .validated-ticket strong{font-weight:700;color:#294a3c}.scene:has(.arrival-resolution) .scene-top{opacity:.65}
