*{box-sizing:border-box}html,body{margin:0;overflow:hidden;height:100%;background:#132c35;color:#fff1d5;font-family:system-ui,sans-serif}button,a,input{touch-action:manipulation}button,.done{font:750 15px system-ui;border:1px solid #b4c5a46b;background:#21483feF;color:#fff3d9;min-height:64px;min-width:64px;padding:12px 18px;border-radius:17px;cursor:pointer}button:hover,button:focus-visible,a:focus-visible{outline:3px solid #f5d894;outline-offset:2px}button[aria-pressed=true]{background:#f1d18e;color:#173f3c;border-color:#ffedbc}button:disabled{opacity:.5;cursor:default}.primary{background:#f3d08c;color:#213e37;border:1px solid #ffe5ae}.done{display:flex;align-items:center;justify-content:center;color:#dfebd7;text-decoration:none;margin-top:10px}#world{position:fixed;inset:0;width:100%;height:100%;touch-action:none;outline:none}header{position:absolute;top:12px;left:18px;right:18px;display:flex;justify-content:space-between;align-items:center;pointer-events:none;gap:10px}header>*{pointer-events:auto}header>a{color:#eef2d9;background:#173d37c9;min-height:48px;display:flex;align-items:center;padding:8px 15px;border-radius:14px;text-decoration:none;font-weight:750}.brand{text-align:center;font-size:22px;font-weight:900;letter-spacing:2px;text-shadow:0 2px 8px #000}.brand small{display:block;font-size:8px;letter-spacing:3px;margin-top:3px}header button{min-height:48px;height:48px;min-width:48px;padding:8px}#mission{position:absolute;left:20px;top:82px;max-width:360px;background:#143b35ed;backdrop-filter:blur(8px);border:1px solid #93b19366;border-radius:18px;padding:14px 18px;box-shadow:0 8px 25px #0003;pointer-events:none}#mission strong{display:block;font-size:18px}.eyebrow{font-size:10px;font-weight:850;color:#e0c88f;letter-spacing:2px}#objective{font-size:13px;color:#d5e5d0;margin:8px 0;line-height:1.4}#task-dots{display:flex;gap:6px;margin-top:10px}.task-dot{border:1px solid #a7bd97;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-size:12px}.task-dot.done-task{background:#e9ce8c;color:#173b32}.task-dot.current{border:2px solid #ffe7aa}.progress{height:5px;background:#37584e;border-radius:5px;overflow:hidden}#detection{display:block;height:100%;width:0;background:#f0ad77}#alarm{font-size:11px;color:#ffcf9b;margin:6px 0 0;min-height:0}#right-hud{position:absolute;top:82px;right:20px;display:flex;align-items:flex-end;flex-direction:column;gap:8px}#map{min-height:48px}#minimap{width:240px;height:210px;background:#143a35ef;border:1px solid #b1c59b77;border-radius:16px}#timer,#clues{padding:10px 16px;background:#23483fef;border:1px solid #d4be8d;border-radius:13px;font-size:15px}#timer strong{font-size:24px;color:#ffcf89;margin-left:10px}#message{position:absolute;bottom:215px;left:50%;transform:translateX(-50%);text-align:center;max-width:560px;width:80%;padding:10px 18px;border-radius:14px;background:#173d37dd;border:1px solid #8caa8466;color:#f8e4b6;font-size:14px;pointer-events:none}#characters{position:absolute;bottom:38px;left:50%;transform:translateX(-50%);display:flex;gap:6px}#characters button{min-height:48px;min-width:80px;padding:8px 10px;font-size:13px}#joystick{position:absolute;left:42px;bottom:58px;width:134px;height:134px;border:2px solid #d4e5c866;border-radius:50%;background:#173c3555;touch-action:none;user-select:none}#stick{position:absolute;left:39px;top:39px;width:52px;height:52px;border-radius:50%;background:#d8d7aeaa;border:2px solid #f8e7b9bb;pointer-events:none}#joystick b{position:absolute;bottom:-24px;text-align:center;width:100%;font-size:10px;letter-spacing:3px;color:#d1dfcb;pointer-events:none}#actions{position:absolute;right:38px;bottom:55px;width:200px;display:flex;flex-direction:column;gap:8px}#guide{min-height:48px;font-size:13px}#action-progress{height:5px;background:#173c35;border-radius:4px}#action-progress span{height:100%;width:0;display:block;background:#ffe3a1}#dialogue{position:absolute;z-index:20;bottom:30px;left:50%;transform:translateX(-50%);width:min(640px,94vw);background:#133c35f5;border:1px solid #b0c49988;box-shadow:0 10px 70px #0008;border-radius:22px;padding:22px;display:grid;grid-template-columns:1fr auto;gap:8px 20px}#dialogue[hidden]{display:none}#speaker{grid-column:1/-1}#line{font-size:18px;line-height:1.5;margin:0}#next{align-self:end;max-width:150px}.modal{position:fixed;z-index:30;inset:0;display:flex;align-items:center;justify-content:center;background:#0c242bc9;backdrop-filter:blur(6px);padding:16px}.modal[hidden],[hidden]{display:none!important}.panel{background:#163d36f7;border:1px solid #bac79a88;border-radius:26px;padding:26px;width:min(470px,96vw);max-height:94dvh;overflow-y:auto;box-shadow:0 20px 90px #0006;text-align:center}.panel h1{font-size:42px;letter-spacing:-2px;margin:4px 0}.panel h2{font-size:25px;margin:8px 0}.panel p{font-size:14px;line-height:1.6;color:#d4e1cc}.panel .tagline{font:700 12px system-ui;letter-spacing:2px;text-transform:uppercase;color:#e3c98e;margin:0 0 18px}.panel>button{width:100%;margin-top:9px}.setting{text-align:left;margin:18px 0}.setting b{font-size:12px;color:#bdcfb6}.choices{display:flex;gap:7px;margin-top:7px}.choices button{flex:1;padding:10px;min-height:64px}.setting small{display:block;color:#b6cbb8;font-size:11px;margin-top:7px}.controls-help{font-size:10px!important;color:#9eb8a4!important}footer{font:9px monospace;color:#8fae9c;margin-top:12px}#code-input{width:100%;height:60px;text-align:center;letter-spacing:12px;font:800 28px system-ui;background:#0b2f2b;border:1px solid #9db68b;border-radius:13px;color:#ffe2a3;margin:10px 0}#digits{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}#digits button{min-height:64px;font-size:20px}#loading{position:absolute;z-index:40;inset:0;background:#143b35;display:grid;place-items:center;font-weight:750}#loading[hidden]{display:none}.arcade-shop-link{top:250px!important;font-size:11px!important;opacity:.8}
@media(max-width:650px){header{left:10px;right:10px;top:8px}.brand{font-size:15px}.brand small{font-size:6px}.brand{letter-spacing:1px}header>a{font-size:12px;padding:6px 9px}#mission{top:69px;left:10px;max-width:calc(100% - 124px);padding:9px 12px}#mission strong{font-size:14px}#objective{font-size:11px;margin:5px 0}.eyebrow{font-size:8px}#task-dots{margin-top:6px}.task-dot{width:22px;height:22px;font-size:10px}#right-hud{right:10px;top:69px}#map{font-size:11px;padding:6px 10px;min-width:100px}#minimap{width:200px;height:175px}#timer,#clues{font-size:11px;padding:8px}#timer strong{font-size:19px;margin-left:5px}#joystick{left:25px;bottom:94px;width:124px;height:124px}#stick{left:34px;top:34px}#actions{right:20px;bottom:94px;width:156px}#interact{font-size:13px;padding:8px}#characters{bottom:24px}#characters button{min-height:48px;min-width:83px}#message{bottom:251px;font-size:11px;padding:8px 12px;width:94%;max-width:94%}#dialogue{bottom:24px;padding:16px;grid-template-columns:1fr;gap:10px}#line{font-size:16px}#next{max-width:none;width:100%}.panel{padding:20px}.panel h1{font-size:36px}.arcade-shop-link{top:240px!important;right:10px!important}}
@media(max-height:560px){#mission{max-width:290px;top:64px}#task-dots{display:none}#objective{margin:3px 0}#right-hud{top:64px}#joystick{bottom:34px;width:110px;height:110px;left:25px}#stick{left:27px;top:27px}#actions{bottom:25px}#characters{bottom:22px}#message{bottom:100px;width:40%;font-size:11px}#dialogue{bottom:10px;padding:12px;grid-template-columns:1fr 130px}#speaker{font-size:10px}#line{font-size:14px}.panel{max-height:96dvh}.arcade-shop-link{display:none!important}}


/* A steady red border and words make detection clear without flashing. */
#spotting-overlay{position:fixed;inset:0;z-index:5;pointer-events:none;box-shadow:inset 0 0 75px 22px #d1182680;border:6px solid #e83d4d}
#spotting-warning{position:absolute;z-index:6;top:82px;left:50%;transform:translateX(-50%);width:min(440px,90vw);padding:12px 18px;background:#a51226f5;border:2px solid #ffadac;border-radius:16px;text-align:center;pointer-events:none;box-shadow:0 5px 24px #0006}
#spotting-warning strong{display:block;font-size:20px;color:#fff}#spotting-warning span{display:block;font-size:13px;color:#fff;margin-top:4px}
#mission.being-spotted{background:#761d28f5;border-color:#ff888c}#mission.being-spotted #detection{background:#ff4859}
@media(max-width:900px){#spotting-warning{top:225px;padding:8px 12px}#spotting-warning strong{font-size:17px}#spotting-warning span{font-size:12px}}
