@font-face{font-family:Dream;src:url('/fonts/VT323-Regular.ttf') format('truetype');font-display:swap}
:root{color-scheme:dark;--ink:#f2e4b7;--muted:#b8b3a8;--gold:#e5c87b;--panel:#141e39;--edge:#a7abb8;--shade:#333745}
*{box-sizing:border-box}body{margin:0;background:#090c15;color:var(--ink);font-family:Dream,'Courier New',monospace;font-size:24px;line-height:1.15;background-image:repeating-linear-gradient(0deg,transparent 0 3px,#ffffff02 3px 4px)}
main{max-width:1200px;margin:0 auto;padding:28px 34px 20px}.masthead{text-align:center;margin-bottom:28px}.eyebrow{font-size:16px;letter-spacing:4px;color:#b9b5bc;margin:0 0 6px}h1{font-family:Georgia,serif;font-size:clamp(46px,7.7vw,84px);letter-spacing:8px;margin:0;color:#ddd9c9;line-height:1.18;text-shadow:2px 2px #464351,-2px -1px #f9f1cc,4px 4px #551d26,7px 7px #240f18}h2,h3,p{margin:0}h2{font-size:30px;font-weight:400;color:var(--gold)}h3{font-size:24px;font-weight:400;color:var(--gold)}.subtitle{font-size:20px;color:#bab3a1;margin-top:8px}.adventure{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:22px;align-items:start}
.frame{position:relative;background:var(--panel);border:3px solid var(--edge);box-shadow:inset 0 0 0 2px #353c56,inset 0 0 0 4px #080d1e,0 0 0 2px #2a2b38,3px 4px 0 2px #0009;border-radius:0}.frame:before,.frame:after{content:'';position:absolute;pointer-events:none;z-index:2;width:8px;height:8px;background:#dedbc8;border:2px solid #737688;box-shadow:1px 1px #070e25;top:-4px}.frame:before{left:-4px}.frame:after{right:-4px}.screen-frame{aspect-ratio:4/3;background:#04060a;overflow:hidden}#game{position:absolute;inset:4px;outline-offset:-6px}.welcome{position:absolute;inset:5px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:20px;background:radial-gradient(ellipse at 50% 20%,#29334c 0,#10182d 55%,#080e1c 100%)}.welcome[hidden]{display:none}.crest{font-size:47px;color:#b94457;text-shadow:2px 2px #662b39,-2px -2px #e7ac9a;line-height:1.1;margin-bottom:14px}.chapter{color:#b9b4a6;font-size:16px;letter-spacing:3px}.welcome h2{font-size:42px;margin:10px 0 0}.divider{color:#7f8a9e;margin:12px 0}.welcome p:not(.chapter){font-size:24px}.welcome .small{font-size:17px;margin-top:12px;color:var(--muted)}.welcome button{margin-top:22px;padding:10px 26px}.menu{padding:20px 18px}.menu .small{margin-top:8px}.small{font-size:20px;line-height:1.2}.muted{color:var(--muted)}.menu-actions{display:flex;flex-direction:column;gap:5px;margin:18px -5px 8px}button{font:inherit;color:var(--ink);border:1px solid transparent;background:transparent;text-align:left;min-height:44px;padding:7px 8px;cursor:pointer;text-shadow:1px 2px #000}button:enabled:hover,button:focus-visible{background:#35416b;color:#fff2bb;border-color:#b1a77d;outline:2px solid #d5c17f;outline-offset:2px}button:disabled{color:#818493;cursor:default}button.primary{border:2px solid #b3a06e;background:#333b55;box-shadow:inset 1px 1px #656a7b,inset -2px -2px #0b1120;color:#ffe4a0}button:active:enabled{transform:translate(1px,1px)}.rule{height:2px;background:#62677c;box-shadow:0 2px #080f27;margin:18px 0}.message{padding:15px 20px;display:flex;align-items:center;gap:18px;margin:22px 0;color:#f0e7c9;min-height:62px}.message>span{color:#b58e54}.message.error{border-color:#df9e95}.footnotes{display:grid;grid-template-columns:1fr 1fr;gap:22px}details{font-size:21px}summary{cursor:pointer;padding:13px 18px;color:var(--gold);min-height:48px}.details-body{padding:4px 18px 18px;color:#c6c2b7;line-height:1.25}.details-body p+p{margin-top:12px}dl{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin:14px 0}dd{margin:0;color:var(--ink)}footer{font-size:17px;text-align:center;color:#92939b;margin:22px 0 4px}a{color:#dac88f}a:focus-visible,summary:focus-visible,#game:focus-visible{outline:2px solid #e5c87b}.visually-hidden{position:absolute;width:1px;height:1px;clip-path:inset(50%);overflow:hidden}.ejs_parent{font-family:Dream,monospace!important}.ejs_menu_bar{background:#101a31!important}.ejs_menu,.ejs_settings_parent{border-radius:0!important}canvas{image-rendering:pixelated}
@media(max-width:850px){main{padding:22px 18px}.adventure{grid-template-columns:1fr}.menu{display:grid;grid-template-columns:1fr 1fr;gap:4px 22px}.menu h2,.menu>p{grid-column:1/-1}.menu-actions{grid-row:3/8;grid-column:1}.menu .rule{display:none}.menu h3{margin-top:18px}.menu #save-detail,.menu p.muted{grid-column:2}.footnotes{gap:16px}.welcome h2{font-size:38px}}
@media(max-width:500px){body{font-size:22px}main{padding:20px 12px}.eyebrow{font-size:12px;letter-spacing:2px}h1{letter-spacing:4px}.masthead{margin-bottom:20px}.subtitle{font-size:18px}.welcome{padding:12px}.crest{font-size:30px;margin-bottom:8px}.welcome h2{font-size:32px}.welcome p:not(.chapter){font-size:20px}.welcome button{margin-top:14px;padding:6px 16px}.welcome .small{font-size:15px}.divider{margin:7px 0}.chapter{font-size:14px;letter-spacing:2px}.menu{padding:16px 14px;gap:0 16px}.small{font-size:18px}.footnotes{grid-template-columns:1fr}.message{padding:12px 14px;font-size:20px}.menu-actions button{font-size:21px}}

.ejs_parent button,.ejs_parent input,.ejs_parent select,.ejs_parent h2,.ejs_parent label{font-family:Dream,monospace!important;border-radius:0!important}.ejs_parent .ejs_button_style{background-color:#252f4b!important;color:#f2e4b7!important;border:1px solid #9e986f!important}.ejs_control_parent{background:#121b31ee!important}

/* One game-sized column: the journal belongs to the screen, below it. */
main{max-width:1040px;padding-top:18px}.masthead{margin-bottom:22px}h1{font-size:clamp(42px,6vw,64px)}.subtitle{margin-top:4px}.adventure{display:block}.journey-dock{margin-top:14px}.travel-strip{display:grid;grid-template-columns:minmax(0,1fr) repeat(3,auto);gap:24px;align-items:center;padding:14px 20px;border-bottom:1px solid #60667c}.travel-strip>div{display:flex;flex-direction:column;gap:3px}.travel-strip strong{font-size:26px;font-weight:400;color:#ffe5a0}.travel-strip .where strong{color:var(--ink)}.play-actions{display:flex;flex-wrap:wrap;gap:4px 14px;padding:8px 12px}.play-actions button{font-size:22px}.play-actions [aria-expanded=true]{color:var(--gold);background:#303a5a}.save-options{border-top:1px solid #4c546d}.save-options summary{font-size:21px;display:list-item}.save-options summary span{float:right;padding-left:12px}.backup-actions{display:flex;gap:12px;flex-wrap:wrap;margin:8px 0}.journal{border-top:2px solid #72778c;padding:20px;background:linear-gradient(110deg,#18243e,#10182e)}[hidden]{display:none!important}.journal-heading{display:flex;justify-content:space-between;gap:18px;align-items:start}.journal-heading p{margin-top:6px}.spoiler-option{display:flex;align-items:center;gap:7px;min-height:44px;white-space:nowrap;cursor:pointer}.spoiler-option input{accent-color:#e5c87b;width:18px;height:18px}.journal-tabs{display:flex;gap:20px;margin:16px 0 0;border-bottom:1px solid #788095}.journal-tabs button{min-width:90px;text-align:center}.journal-tabs [aria-selected=true]{border:1px solid #a4a4ad;border-bottom:3px solid var(--gold);color:var(--gold);background:#283550}.journal-note{color:var(--muted);margin:14px 0}.story-map{list-style:none;margin:18px 0 4px;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 20px}.story-map li{position:relative;padding:0 0 23px 24px;border-left:2px solid #4b5571;margin-left:6px;min-height:70px}.story-map li:before{content:'◆';color:#6e7586;position:absolute;left:-10px;top:0;font-size:22px;text-shadow:2px 2px #060a14}.story-map li.complete:before{color:#d9bf75}.story-map li.current:before{color:#fff2c4;text-shadow:0 0 8px #f3cf69}.story-map li.current strong{color:#ffe49c}.story-map li strong{display:block;font-weight:400;font-size:23px}.story-map li span{display:block;color:var(--muted);font-size:18px;margin-top:4px}.story-map li.future strong{color:#858da2}.treasure-summary{margin-top:18px}.treasure-summary p{margin-top:6px}.treasure-list{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:18px}.treasure-list details{border-top:1px solid #64708c}.treasure-list summary{padding-left:0}.treasure-list ul{list-style:none;padding:0;margin:0}.treasure-list li{padding:8px 0;border-top:1px solid #2d3a55;font-size:20px;display:flex;gap:10px}.treasure-list li>span:first-child{color:#e5c87b}.treasure-list .unknown{color:#aeb3c0}.world-map{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;max-width:640px;margin:20px auto}.map-square{min-height:68px;border:1px solid #667388;background:#233b40;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:5px;text-align:center;font-size:20px}.map-square span{font-size:16px;color:#c5cfbd}.map-square:nth-child(n+9):nth-child(-n+12){background:#414738}.map-square.current{border:3px solid #ffde8f;color:#ffe2a1;background:#454b35;box-shadow:0 0 0 2px #090e20}.map-square.current:before{content:'◆ You are here';font-size:17px}.map-square.water{background:#1c304f}.screen-frame{width:100%}.footnotes{margin-top:18px}
@media(max-width:700px){.travel-strip{gap:12px;padding:12px 14px;grid-template-columns:repeat(3,1fr)}.travel-strip .where{grid-column:1/-1;flex-direction:row;align-items:center;justify-content:space-between;gap:12px}.travel-strip strong{font-size:24px}.journal{padding:16px 14px}.journal-heading{display:block}.story-map{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 12px}.treasure-list{grid-template-columns:1fr}.play-actions{gap:2px 10px}.save-options summary span{float:none;display:block;padding-left:0;margin-top:5px}.world-map{gap:4px}.map-square{font-size:18px;min-height:62px}.map-square span{font-size:15px}}
@media(max-width:420px){.play-actions button{font-size:20px}.travel-strip .where{display:block}.travel-strip .where strong{display:block;margin-top:3px}.story-map{grid-template-columns:1fr}.journal-tabs{gap:8px}.journal-tabs button{min-width:75px}.spoiler-option{white-space:normal}}
@media(min-width:851px){main{max-width:min(1040px,max(720px,calc((100dvh - 340px)*4/3 + 68px)))}}
.journal [role=tabpanel]{max-height:480px;overflow:auto;scrollbar-color:#69728a #111a2e;padding-right:5px}.treasure-list h3{margin-bottom:12px}.treasure-list details{margin-bottom:2px}.treasure-list summary{font-size:21px}.treasure-list li{padding-left:12px}.story-map{grid-template-columns:1fr 1fr}.world-map{max-width:570px}.map-square{min-height:52px}
@media(max-width:500px){.story-map{grid-template-columns:1fr}.journal [role=tabpanel]{max-height:450px}.travel-strip .small{font-size:16px}}
.welcome.invited .crest{display:none}.welcome.invited #choose{margin-top:3px;font-size:18px;min-height:34px;padding:5px 12px}.welcome.invited #welcome-copy{max-width:360px}.welcome.invited #invite-start{margin-top:14px}
@media(max-width:500px){.welcome.invited .chapter,.welcome.invited .divider{display:none}.welcome.invited h2{margin:0 0 8px;font-size:30px}.welcome.invited #welcome-copy{font-size:18px}.welcome.invited #welcome-note{font-size:14px;margin-top:6px}.welcome.invited #invite-start{margin-top:10px}}

.mode-picker{padding:12px 16px;margin-bottom:18px;display:flex;flex-wrap:wrap;gap:8px 18px;align-items:center}.mode-picker select{font:inherit;color:var(--ink);background:#10182d;border:1px solid var(--edge);padding:8px;max-width:100%;min-height:44px}.mode-picker p{flex-basis:100%}.coop-panel{padding:16px 20px;border-top:1px solid #60667c}.coop-heading{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:10px}.player-controls{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:14px 0}.player-controls strong{font-weight:400;color:var(--gold)}.player-controls p{margin-top:5px}.p2-buttons{display:flex;flex-wrap:wrap;gap:6px}.p2-buttons button{border:1px solid #717a93;touch-action:none;min-width:50px;text-align:center}.coop-panel details summary{padding-left:0}.coop-panel>.small:last-child{margin-top:12px}.invite-row{display:flex;gap:8px;margin:6px 0 12px}.invite-row input{min-width:0;flex:1;font:inherit;font-size:18px;background:#0a1226;color:var(--ink);border:1px solid #758096;padding:8px}.coop-panel #room-status{margin:8px 0}.remote-video{width:100%;height:100%;object-fit:contain;image-rendering:pixelated;background:#05060a}.remote-screen{position:relative;aspect-ratio:4/3}.remote-page .screen-frame{position:relative}.remote-page .status-row{padding:16px}.remote-page .p2-buttons{padding:16px}select:focus-visible,input:focus-visible{outline:2px solid var(--gold);outline-offset:2px}@media(max-width:600px){.player-controls{grid-template-columns:1fr;gap:10px}.coop-panel{padding:14px}.coop-heading{align-items:start}.mode-picker{padding:10px}.mode-picker label{font-size:20px}}
.welcome .local-choice{font-size:18px;margin-top:12px;color:var(--muted)}.welcome .local-choice button{margin-top:5px;font-size:20px}.welcome .local-choice summary{cursor:pointer;text-align:center}
