diff --git a/web-ui/arduino-emulator.html b/web-ui/arduino-emulator.html
index 96202cd..6ab8da9 100644
--- a/web-ui/arduino-emulator.html
+++ b/web-ui/arduino-emulator.html
@@ -117,7 +117,6 @@
.oled-dot { width:6px; height:6px; border-radius:50%; background:#333; flex-shrink:0; }
.oled-dot.on { background:#60a5fa; box-shadow:0 0 4px #60a5fa; }
.oled-wrap { background:#000; border:2px solid #222; border-radius:4px; padding:4px; position:relative; }
- #oled-canvas { display:block; max-width:100%; height:auto; image-rendering:pixelated; }
.oled-placeholder { position:absolute; inset:4px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; pointer-events:none; }
.oled-placeholder span { font-size:10px; color:#333; letter-spacing:.05em; }
.oled-placeholder .oled-ph-grid { width:100%; height:2px; background:repeating-linear-gradient(90deg,#1a1a1a 0,#1a1a1a 4px,transparent 4px,transparent 8px); }
@@ -128,7 +127,25 @@
.tft-dot { width:6px; height:6px; border-radius:50%; background:#333; flex-shrink:0; }
.tft-dot.on { background:#22c55e; box-shadow:0 0 4px #22c55e; }
.tft-wrap { background:#000; border:2px solid #222; border-radius:4px; padding:4px; overflow:hidden; }
- #tft-canvas { display:block; width:100%; height:auto; image-rendering:pixelated; }
+ #tft-canvas { display:block; width:100%; height:auto; image-rendering:pixelated; cursor:zoom-in; }
+ #oled-canvas { display:block; max-width:100%; height:auto; image-rendering:pixelated; cursor:zoom-in; }
+
+ /* 확대 오버레이 */
+ #canvas-zoom-overlay {
+ display:none; position:fixed; inset:0; z-index:9999;
+ background:rgba(0,0,0,.85); align-items:center; justify-content:center;
+ cursor:zoom-out;
+ }
+ #canvas-zoom-overlay.open { display:flex; }
+ #canvas-zoom-img {
+ image-rendering:pixelated; max-width:90vw; max-height:90vh;
+ border:2px solid #333; border-radius:4px;
+ box-shadow:0 8px 40px rgba(0,0,0,.8);
+ }
+ #canvas-zoom-hint {
+ position:fixed; bottom:24px; left:50%; transform:translateX(-50%);
+ font-size:11px; color:#555; pointer-events:none;
+ }
/* DHT sensor controls */
.dht-section { padding:10px 14px; flex-shrink:0; border-bottom:1px solid var(--bdr-in); }
@@ -7905,6 +7922,40 @@ function mobToggleBoard(){
document.getElementById('mobtab-serial').classList.remove('active');
}
}
+
+// ── 캔버스 확대 오버레이 ──────────────────────────────────────────────────────
+(function() {
+ const overlay = document.createElement('div');
+ overlay.id = 'canvas-zoom-overlay';
+ overlay.innerHTML = '