@font-face{font-family:Pixel;src:url('./fonts/pixelify.ttf') format('truetype');font-weight:600;font-display:swap}@font-face{font-family:Quest;src:url('./fonts/vt323.ttf') format('truetype');font-display:swap}
:root{font-family:Quest,'Courier New',monospace;color:#173e2d;background:#94d8df;--forest:#163b2c;--deep:#102b23;--gold:#d5b86c;--light:#fff1c0;}*{box-sizing:border-box}body{margin:0;overflow:hidden}#world{position:fixed;inset:0}canvas{display:block}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;color:inherit;border:none;border-radius:0}button:focus-visible,a:focus-visible{outline:3px solid var(--light);outline-offset:5px}button:hover{filter:brightness(1.13)}button:active{transform:translateY(2px)}button:disabled{cursor:wait;opacity:.65}header{position:fixed;top:0;width:100%;height:80px;padding:0 4%;display:flex;gap:30px;align-items:center;background:var(--forest);color:var(--light);border-bottom:3px solid var(--gold);box-shadow:0 4px 0 var(--deep);z-index:2}.brand{display:flex;align-items:center;gap:14px;text-decoration:none;color:inherit;font-family:Pixel,monospace;font-size:15px}#sound,.secondary,#begin,#interact{background:var(--forest);color:var(--light);border:2px solid var(--gold);box-shadow:inset 0 0 0 3px var(--forest),inset 0 0 0 4px #738054,3px 3px 0 var(--deep);padding:11px 18px;font-size:19px;line-height:1.1}#sound{margin-left:auto;padding:8px 13px;font-size:17px;min-width:114px}.intro{position:fixed;top:16%;left:5%;width:380px;pointer-events:none}.intro button{pointer-events:auto}.chapter{font:600 10px/1.6 Pixel,monospace;letter-spacing:1px;text-transform:uppercase;margin:0 0 15px;color:#345d40}h1{font:600 clamp(36px,3.5vw,53px)/1.05 Pixel,monospace;letter-spacing:-1px;margin:0 0 20px;text-transform:uppercase;text-shadow:2px 2px #e9d58e}h1 em{font-style:normal}p{font-size:21px;line-height:1.3}.intro>p:not(.chapter){margin:0 0 23px;font-size:20px;color:#265640}.quest-panel{width:352px;padding:19px 20px 20px;background:var(--forest);border:3px solid var(--gold);outline:2px solid var(--deep);box-shadow:inset 0 0 0 3px var(--forest),inset 0 0 0 4px #728155,5px 5px 0 #173d2d4d;color:var(--light)}.quest{display:flex;gap:12px;align-items:center}.seal{font-size:32px;color:var(--gold)}.quest b{font-size:20px;font-weight:400}.quest p{font-size:17px;line-height:1.25;margin:6px 0 0;color:#cfdbb4}.progress{display:flex;align-items:center;gap:5px;margin:18px 0}.progress span{width:34px;height:32px;border:2px solid #77855c;background:var(--deep);display:grid;place-items:center;font-size:23px;color:var(--gold)}.progress span.lit{background:var(--gold);border-color:var(--light);color:var(--forest);box-shadow:2px 2px 0 #77855c}.progress i{height:2px;width:9px;background:#77855c}.intro .secondary{font-size:18px;padding:10px 15px}.island-label{position:fixed;right:12%;bottom:20%;font:600 15px/1.4 Pixel,monospace;text-align:center;color:#183d2c;text-shadow:1px 1px #d8e9bb}.island-label span{display:block;font:17px/1.3 Quest,monospace;margin-top:7px;color:#345b42;text-shadow:none}#toast{position:fixed;bottom:90px;left:50%;transform:translateX(-50%);background:var(--deep);border:2px solid var(--gold);outline:3px solid var(--forest);color:var(--light);padding:13px 24px;font-size:20px;line-height:1.2;text-align:center;max-width:90vw;width:max-content;box-shadow:5px 5px 0 #153b2933}#toast::after{content:'◆';font-size:10px;color:var(--gold);margin-left:16px}footer{position:fixed;bottom:0;min-height:52px;padding:14px 4%;width:100%;display:flex;gap:30px;align-items:center;font-size:17px;background:var(--forest);color:#ccdab4;border-top:2px solid #71825a}kbd{font:15px Quest,monospace;border:1px solid #8a9c6b;border-bottom-width:3px;padding:2px 6px;color:var(--light);background:var(--deep)}#reset{margin-left:auto;background:none;color:var(--gold);font-size:18px}#interact{display:none;position:fixed;right:20px;bottom:130px;padding:12px 18px}#loading{position:fixed;inset:0;background:var(--forest);color:var(--light);display:grid;place-items:center;font:600 19px Pixel,monospace;z-index:20}
dialog{border:3px solid var(--gold);outline:4px solid var(--deep);width:min(600px,90vw);max-height:88dvh;overflow:auto;border-radius:0;background:var(--deep);padding:36px 42px;color:var(--light);box-shadow:inset 0 0 0 4px var(--deep),inset 0 0 0 5px #79865b,10px 10px 0 #061d1888;scrollbar-width:thin;scrollbar-color:var(--gold) var(--forest)}dialog::backdrop{background:#09271fd1}#close{position:absolute;right:14px;top:10px;background:none;color:var(--gold);font-size:28px;line-height:1}.letter-icon{text-align:center;font-size:42px;color:var(--gold)}dialog .chapter{text-align:center;font-size:10px;color:var(--gold);margin:12px 0}h2{font:600 26px/1.2 Pixel,monospace;text-align:center;margin:15px 0 28px}dialog p{font-size:21px;line-height:1.4;margin:18px 0}.next{background:#214330;padding:21px;text-align:center;border:2px solid #748257;box-shadow:3px 3px 0 #071d18;margin:26px 0}.next b{font:600 13px Pixel,monospace;color:var(--gold)}.next p{margin:10px 0;font-size:19px}.next small{display:block;font-size:17px;margin-top:15px;line-height:1.25;color:#d1dcb6}#copy{background:var(--deep);color:var(--light);font:600 27px Pixel,monospace;border:2px solid var(--gold);padding:9px 17px}#copy span{font:18px Quest,monospace;color:var(--gold)}.sign{text-align:center;color:var(--gold)}#back{display:block;margin:22px auto 0}
#arrival[hidden]{display:none}#arrival{position:fixed;inset:0;z-index:10;pointer-events:none;text-align:center;display:flex;flex-direction:column;justify-content:space-between;padding:9vh 20px 7vh}.arrival-heading h2{font-size:clamp(26px,3vw,43px);text-transform:uppercase;margin:10px 0;text-shadow:2px 2px #eed599}.arrival-heading .chapter{font-size:10px}.arrival-bottom{max-width:560px;margin:0 auto}.arrival-bottom>p{font-size:21px;line-height:1.25;min-height:46px;margin:0 0 18px}#begin{pointer-events:auto;font-size:20px;padding:15px 25px}.arriving header,.arriving .intro,.arriving .island-label,.arriving #toast,.arriving footer,.arriving #interact{visibility:hidden}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
@media(min-width:1550px){.intro{top:18%;width:450px}h1{font-size:59px}.quest-panel{margin-top:30px}}
@media(max-height:760px) and (min-width:701px){.intro{top:16%}h1{font-size:42px;margin-bottom:13px}.intro>p:not(.chapter){font-size:18px;margin-bottom:17px}.chapter{margin-bottom:10px}.quest-panel{padding:15px 18px}.progress{margin:13px 0}}
@media(max-width:1000px) and (min-width:701px){.intro{left:4%;width:310px}h1{font-size:36px}.quest-panel{width:300px;padding:16px}.quest b{font-size:18px}.quest p{font-size:16px}.island-label{right:9%;font-size:13px}footer{gap:16px;font-size:15px}}
@media(max-width:700px){header{height:57px;padding:0 5%;gap:12px}.brand{font-size:9px;gap:8px}#sound{margin-left:auto;min-width:84px;font-size:15px;padding:7px 8px}.intro{top:11%;left:6%;width:260px}.chapter{font-size:8px;margin-bottom:9px}h1{font-size:27px;letter-spacing:0;margin-bottom:10px}.intro>p:not(.chapter){font-size:16px;line-height:1.1;margin:0 0 14px}.quest-panel{width:254px;padding:12px 14px}.seal{display:none}.quest b{font-size:17px}.quest p{font-size:15px;margin-top:4px}.progress{margin:10px 0;gap:5px}.progress span{width:25px;height:25px;font-size:20px}.progress i{width:7px}.intro .secondary{font-size:16px;padding:8px 12px}footer{min-height:44px;padding:10px 5%}footer span{display:none}#reset{font-size:17px}.island-label{right:8%;bottom:20%;font-size:11px}.island-label span{font-size:14px;max-width:180px;margin-top:4px}#toast{bottom:65px;font-size:17px;padding:10px 15px;max-width:87vw}#toast::after{display:none}#interact{display:block;font-size:17px}dialog{padding:30px 24px}dialog p{font-size:20px;line-height:1.35}h2{font-size:23px}.next{padding:18px 13px}.next b{font-size:12px}#arrival{padding-top:12vh;padding-bottom:10vh}.arrival-heading .chapter{font-size:8px}.arrival-bottom>p{font-size:18px;max-width:310px}#begin{font-size:18px;padding:14px 18px}#loading{font-size:13px;text-align:center;padding:20px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto}}
