:root{font-family:'DM Sans',sans-serif;color:#283c3f;background:#8bc8c7;font-synthesis:none;font-size:16px}*{box-sizing:border-box}body{margin:0;overflow:hidden}button,input{font:inherit}button{cursor:pointer;border:0;color:inherit}button:focus-visible,summary:focus-visible,a:focus-visible{outline:3px solid #e9ab58;outline-offset:4px}button:disabled{opacity:.5;cursor:default}button:hover{filter:brightness(1.06)}button:active{transform:translateY(1px)}[hidden]{display:none!important}#world,#scene{width:100vw;height:100dvh;display:block}#scene{outline:none;image-rendering:pixelated;touch-action:none}#loading{position:absolute;inset:0;display:grid;place-content:center;background:#9fc9bd;font-size:24px;font-family:'Space Grotesk',sans-serif;z-index:20}.brand{position:absolute;top:30px;left:34px;display:flex;gap:14px;align-items:center;pointer-events:none;color:#254b4b;text-shadow:0 1px #dbefdb55}.mark{font-size:48px;line-height:1;color:#fbefd1}h1{font-family:'Space Grotesk',sans-serif;letter-spacing:.18em;font-size:20px;margin:0;font-weight:700}.brand p{font-size:13px;margin:7px 0 0;letter-spacing:.06em}.top-actions{position:absolute;right:30px;top:30px;display:flex;align-items:center;gap:10px}.top-actions button,.controls button{background:#fffbebdf;padding:12px 17px;border-radius:8px;box-shadow:0 3px 0 #4162631c}.top-actions button span{padding-left:10px}.session{font-size:11px;font-weight:700;letter-spacing:.15em;opacity:.65;margin-right:12px}#helpButton{border-radius:50%;height:42px;width:42px;padding:0;font-weight:700}.quest{position:absolute;left:36px;top:120px;background:#fff5dcdd;border:1px solid #fff6dccc;padding:21px 24px 19px;width:286px;border-radius:4px 18px 18px 18px;box-shadow:0 6px 24px #30463c12}.eyebrow{font-size:10px;letter-spacing:.15em;font-weight:700;color:#75816c}h2{font-family:'Space Grotesk',sans-serif;font-size:19px;line-height:1.3;font-weight:600;margin:10px 0}.quest p{font-size:13px;line-height:1.55;margin:0 0 13px;color:#667360}.collection{display:flex;align-items:center;gap:9px}.collection i{width:11px;height:16px;transform:rotate(25deg);border:1.5px solid #b5b999;background:#dfd9b4}.collection i.found{background:#8bd9d5;border-color:#537d7a;box-shadow:0 0 10px #90e2d2}.collection span{font-size:12px;margin-left:4px;font-weight:600;color:#728172}.landmark{position:absolute;bottom:95px;left:50%;transform:translateX(-50%);font-family:'Space Grotesk';font-size:14px;letter-spacing:.13em;color:#ffffdf;text-shadow:0 2px 5px #25463b;opacity:.9}.controls{position:absolute;bottom:25px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:20px;background:#243c41df;color:#f1efce;border:1px solid #f8f4cf25;box-shadow:0 7px 24px #203c3720;padding:14px 18px;border-radius:10px;white-space:nowrap;font-size:12px}.controls>span{display:flex;align-items:center;gap:4px}kbd{font-family:inherit;font-size:10px;font-weight:600;border:1px solid #e1eddc55;background:#fcffe414;border-radius:3px;padding:3px 5px;display:inline-block}.controls button{background:none;padding:0;color:#cad6c1;font-size:12px}.interaction{position:absolute;left:50%;bottom:135px;transform:translateX(-50%);display:flex;align-items:center;gap:9px;border-radius:9px;padding:10px 17px;background:#fff9e7f2;box-shadow:0 3px 20px #153b4133;font-size:14px}.interaction kbd{background:#2b4c51;color:#fffcdf;font-size:14px;padding:4px 7px}.panel{position:absolute;top:87px;right:30px;width:332px;max-height:calc(100dvh - 115px);overflow-y:auto;background:#fbf5e8f5;backdrop-filter:blur(12px);border:1px solid #fff9e8;border-radius:13px;padding:24px;box-shadow:0 8px 40px #26464425;z-index:4}.panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:6px}.panel h2{font-size:22px}.panel-head button,#closeHelp{font-size:25px;background:none;padding:0;line-height:1}.muted{font-size:13px;line-height:1.6;color:#6d796e;margin:12px 0 20px}.panel label{font-size:13px;font-weight:600;display:flex;justify-content:space-between;margin-top:18px}.panel output{color:#7b867b;font-size:12px;font-weight:400}.segmented{display:flex;gap:4px;padding:4px;background:#e6e5d5;border-radius:7px;margin:10px 0 15px}.segmented button{flex:1;padding:8px 0;background:transparent;font-size:12px;border-radius:5px}.segmented button.active{background:#30585b;color:#f6f5dc;box-shadow:0 2px 3px #243d3a22}.switch{align-items:center;padding:9px 0;border-bottom:1px solid #e5e6d8;margin-top:0!important}.switch input{appearance:none;width:30px;height:18px;border-radius:20px;background:#bfcbba;position:relative;cursor:pointer;margin:0}.switch input:checked{background:#517d75}.switch input:after{content:'';position:absolute;left:3px;top:3px;width:12px;height:12px;background:#fff9e6;border-radius:50%;transition:.15s}.switch input:checked:after{left:15px}.range-row{display:flex;justify-content:space-between;align-items:end}.range-row label{margin-top:18px}input[type=range]{width:100%;accent-color:#638f7a;margin:16px 0 8px}.wide{width:100%;background:#30575a;color:#fff5dc;padding:12px;border-radius:7px;font-size:13px;margin:14px 0}details{border-top:1px solid #dddccb;padding-top:15px;margin-top:12px;font-size:13px}summary{cursor:pointer;font-weight:600;list-style-position:outside;margin-left:13px}details p{margin-bottom:10px!important}details pre{font-size:11px;background:#e8eadf;padding:12px;line-height:1.55;border-radius:6px;max-height:180px;overflow:auto;white-space:pre-wrap}details a{color:#3f7874;text-decoration:underline;font-size:12px;line-height:1.5}.api-note{font-family:monospace;font-size:11px;color:#839184;line-height:1.7}.mini-buttons{display:flex;gap:7px}.mini-buttons button{background:#e2e5d6;padding:9px 10px;border-radius:5px;font-size:12px}.build-note{font-size:9px;letter-spacing:.12em;color:#899587;margin-top:22px;margin-bottom:0}.help{top:50%;left:50%;transform:translate(-50%,-50%);width:400px;max-width:calc(100vw - 32px);padding:30px}.help p{font-size:14px;line-height:1.65}.help #closeHelp{float:right}.dialog{position:absolute;bottom:110px;left:50%;transform:translateX(-50%);width:440px;max-width:calc(100vw - 40px);background:#fff6dff7;border:1px solid #fff8e8;padding:22px 26px;border-radius:12px;box-shadow:0 8px 50px #253d4222;z-index:3}.dialog-top{display:flex;justify-content:space-between;align-items:center}#speaker{font-family:'Space Grotesk';font-size:16px;font-weight:700}#closeDialog{background:none;font-size:24px;padding:0}#speech{font-size:15px;line-height:1.65;margin:9px 0 0}#dialogAction{padding:10px 15px;background:#48746b;color:#fffae7;margin-top:15px;border-radius:6px;font-size:13px}#toast{position:absolute;top:35%;left:50%;transform:translate(-50%,15px);max-width:400px;text-align:center;background:#294c50ef;color:#fffcdf;padding:15px 23px;border-radius:8px;box-shadow:0 5px 30px #20383622;opacity:0;transition:opacity .25s,transform .25s;pointer-events:none;font-size:14px;z-index:10}#toast.show{opacity:1;transform:translate(-50%,0)}#touchControls{display:none}.dpad button,.touch-actions button{width:44px;height:44px;border-radius:8px;background:#fff5e1d9;font-size:20px;touch-action:none}.dpad>button{margin-left:46px}.dpad>div{display:flex;gap:2px}.touch-actions{display:flex;gap:10px;align-items:end}.touch-actions button{border-radius:50%;height:53px;width:53px;font-size:15px;background:#2c5156e6;color:#fff7e1}@media(max-width:850px){.brand{left:20px;top:21px}.brand .mark{font-size:34px}.brand h1{font-size:16px}.brand p{display:none}.top-actions{right:18px;top:21px}.session{display:none}.top-actions button{font-size:13px;padding:10px 12px}.quest{left:20px;top:80px;width:240px;padding:16px 18px}.quest h2{font-size:17px}.controls{gap:12px;font-size:11px;bottom:18px}.controls>span:last-of-type{display:none}.panel{right:18px;top:75px}.landmark{bottom:85px}}@media(pointer:coarse){#touchControls{position:absolute;bottom:27px;left:23px;right:23px;display:flex;justify-content:space-between;align-items:end;pointer-events:none}#touchControls>*{pointer-events:auto}.controls{bottom:24px}.controls>span{display:none}.controls button{font-size:11px}.landmark{bottom:115px}.interaction{bottom:150px}.dialog{bottom:155px}}@media(max-width:550px){.brand{left:15px;top:18px;gap:7px}.brand h1{font-size:14px}.brand .mark{font-size:30px}.top-actions{top:16px;right:13px;gap:5px}.top-actions button{font-size:12px;padding:9px 11px}.top-actions button span{display:none}#helpButton{width:33px;height:33px}.quest{top:72px;left:16px;padding:12px 15px;width:210px}.quest h2{font-size:16px;margin:7px 0}.quest p{font-size:12px;line-height:1.4;margin-bottom:8px}.eyebrow{font-size:9px}.collection i{height:12px;width:9px}.collection span{font-size:11px}.panel{width:calc(100vw - 28px);right:14px;top:64px;max-height:calc(100dvh - 82px)}.controls>span{display:none}.help{top:50%;right:auto}.landmark{font-size:12px}#toast{max-width:80vw;font-size:13px}.dialog{padding:18px 21px}#speech{font-size:14px}}
