:root {
	--drone-bg:#0b1213;
	--drone-panel:rgba(12,20,21,.86);
	--drone-line:rgba(222,235,229,.16);
	--drone-text:#edf4ec;
	--drone-muted:#9eaaa7;
	--drone-accent:#b7d64a;
	--drone-radius:10px;
}
.main-header { --bg:rgba(8,14,15,.78); --color:#edf4ec; --scrollbg:#0b1213; --scrollcolor:#edf4ec; }
main#sub01 { min-height:100dvh; padding:0; }
#sub01 + footer { display:none; }
#p-check { display:none; }
.drone-visually-hidden { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; clip-path:inset(50%); }
.drone-simulator { position:relative; width:100%; min-height:100dvh; overflow:hidden; color:var(--drone-text); background:var(--drone-bg); font-family:"Pretendard","Noto Sans KR",Arial,sans-serif; isolation:isolate; }
.drone-canvas { position:absolute; inset:0; }
.drone-canvas::after { position:absolute; inset:0; background:linear-gradient(180deg,rgba(6,12,13,.12),transparent 28%,transparent 68%,rgba(6,12,13,.36)); content:""; pointer-events:none; }
.drone-canvas canvas { display:block; width:100%; height:100%; }
.drone-telemetry,.drone-mission { position:absolute; top:120px; z-index:3; width:244px; border:1px solid var(--drone-line); border-radius:var(--drone-radius); background:var(--drone-panel); -webkit-backdrop-filter:blur(12px); backdrop-filter:blur(12px); box-shadow:inset 0 1px 0 rgba(237,244,236,.06),0 18px 40px rgba(5,10,11,.16); }
.drone-telemetry { left:24px; }
.drone-mission { right:24px; }
.drone-panel-title { display:flex; align-items:center; justify-content:space-between; height:48px; padding:0 14px; border-bottom:1px solid var(--drone-line); }
.drone-panel-title span { color:var(--drone-accent); font-family:Consolas,monospace; font-size:8px; letter-spacing:.16em; }
.drone-panel-title strong { font-size:12px; font-weight:600; }
.drone-metrics { display:grid; grid-template-columns:1fr 1fr; margin:0; }
.drone-metric { position:relative; min-height:76px; padding:13px 14px; border-right:1px solid var(--drone-line); border-bottom:1px solid var(--drone-line); }
.drone-metric:nth-child(2) { border-right:0; }
.drone-metric dt { margin-bottom:9px; color:var(--drone-muted); font-size:10px; }
.drone-metric dd { margin:0; color:var(--drone-text); font-family:Consolas,monospace; font-size:17px; line-height:1; }
.drone-metric-wide { grid-column:1 / -1; min-height:67px; border-right:0; border-bottom:0; }
.drone-metric-wide dd { font-size:13px; letter-spacing:.02em; }
.drone-battery-track { position:absolute; right:14px; bottom:12px; left:14px; height:2px; overflow:hidden; background:rgba(237,244,236,.12); }
.drone-battery-track i { display:block; width:100%; height:100%; background:var(--drone-accent); transform:scaleX(1); transform-origin:left center; transition:background-color .25s ease; }
.battery-caution .drone-metric-battery dd,.battery-caution .drone-battery-track i { color:#f0c866; background-color:#f0c866; }
.battery-critical .drone-metric-battery dd,.battery-critical .drone-battery-track i { color:#ef735f; background-color:#ef735f; }
.battery-critical .drone-metric-battery { animation:drone-warning 1s ease-in-out infinite; }
.drone-mission-current { min-height:77px; padding:14px; border-bottom:1px solid var(--drone-line); }
.drone-mission-current span,.drone-mission-count span { display:block; margin-bottom:7px; color:var(--drone-muted); font-size:10px; }
.drone-mission-current strong { display:block; overflow:hidden; font-size:13px; font-weight:600; text-overflow:ellipsis; white-space:nowrap; }
.drone-mission-count { display:flex; align-items:center; justify-content:space-between; height:48px; padding:0 14px; border-bottom:1px solid var(--drone-line); }
.drone-mission-count span { margin:0; }
.drone-mission-count strong { color:var(--drone-accent); font-family:Consolas,monospace; font-size:15px; }
.drone-camera-row { display:flex; align-items:center; justify-content:space-between; min-height:44px; padding:0 14px; border-bottom:1px solid var(--drone-line); }
.drone-camera-row span { color:var(--drone-muted); font-size:10px; }
.drone-camera-row strong { color:var(--drone-accent); font-size:11px; font-weight:600; }
.drone-minimap-wrap { position:relative; padding:12px; }
.drone-minimap-wrap canvas { display:block; width:100%; height:auto; border:1px solid rgba(222,235,229,.1); border-radius:6px; }
.drone-minimap-wrap > span { position:absolute; top:18px; left:50%; color:var(--drone-accent); font-family:Consolas,monospace; font-size:8px; transform:translateX(-50%); }
.drone-controls { position:absolute; bottom:22px; left:24px; z-index:3; display:flex; flex-wrap:wrap; gap:8px 18px; width:min(850px,calc(100% - 48px)); padding:13px 15px; border:1px solid var(--drone-line); border-radius:var(--drone-radius); background:rgba(12,20,21,.82); -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px); }
.drone-controls div { display:flex; align-items:center; gap:8px; }
.drone-controls kbd { min-width:33px; padding:5px 8px; border:1px solid rgba(237,244,236,.3); border-radius:4px; color:var(--drone-text); background:rgba(237,244,236,.09); box-shadow:none; font-family:Consolas,monospace; font-size:12px; font-weight:600; text-align:center; }
.drone-controls span { color:#d5dedb; font-size:14px; font-weight:550; }
.drone-status-message { position:absolute; bottom:88px; left:50%; z-index:4; width:max-content; max-width:calc(100% - 48px); padding:11px 16px; border:1px solid rgba(183,214,74,.4); border-radius:var(--drone-radius); color:var(--drone-text); background:rgba(12,20,21,.88); -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px); font-size:13px; transform:translateX(-50%); pointer-events:none; }
.drone-status-message::before { display:inline-block; width:5px; height:5px; margin-right:8px; border-radius:50%; background:var(--drone-accent); vertical-align:1px; content:""; }
.drone-crosshair { position:absolute; top:50%; left:50%; z-index:2; display:none; width:28px; height:28px; border:1px solid rgba(237,244,236,.72); border-radius:50%; transform:translate(-50%,-50%); pointer-events:none; }
.drone-crosshair::before,.drone-crosshair::after { position:absolute; top:50%; left:50%; background:rgba(237,244,236,.8); transform:translate(-50%,-50%); content:""; }
.drone-crosshair::before { width:8px; height:1px; }
.drone-crosshair::after { width:1px; height:8px; }
.is-drone-camera .drone-crosshair { display:block; }
.drone-capture-flash { position:absolute; inset:0; z-index:5; background:rgba(237,244,236,.82); opacity:0; pointer-events:none; }
.drone-capture-flash.is-active { animation:drone-capture .42s ease-out; }
.drone-pause,.drone-result { position:absolute; inset:0; z-index:8; display:grid; place-items:center; background:rgba(7,13,14,.68); -webkit-backdrop-filter:blur(7px); backdrop-filter:blur(7px); }
.drone-pause[hidden],.drone-result[hidden] { display:none; }
.drone-pause > div { padding:28px 34px; border:1px solid var(--drone-line); border-radius:var(--drone-radius); background:#10191a; text-align:center; }
.drone-pause span,.drone-result-label { display:block; margin-bottom:8px; color:var(--drone-accent); font-family:Consolas,monospace; font-size:9px; letter-spacing:.16em; }
.drone-pause strong { display:block; margin-bottom:8px; font-size:24px; }
.drone-pause p { margin:0; color:var(--drone-muted); font-size:12px; }
.drone-result { padding:22px; }
.drone-result-card { width:min(580px,100%); max-height:calc(100dvh - 44px); overflow:auto; padding:28px; border:1px solid var(--drone-line); border-radius:var(--drone-radius); background:#10191a; box-shadow:0 28px 80px rgba(4,9,10,.36); }
.drone-result-card h2 { margin:0 0 8px; color:var(--drone-text); font-size:clamp(25px,4vw,38px); font-weight:650; letter-spacing:-.04em; }
.drone-result-card > p { margin:0 0 22px; color:var(--drone-muted); font-size:13px; }
.drone-result-stats { display:grid; grid-template-columns:repeat(4,1fr); margin:0 0 22px; padding:0; border-top:1px solid var(--drone-line); border-bottom:1px solid var(--drone-line); list-style:none; }
.drone-result-stats li { padding:13px 10px; border-right:1px solid var(--drone-line); }
.drone-result-stats li:last-child { border-right:0; }
.drone-result-stats span { display:block; margin-bottom:6px; color:var(--drone-muted); font-size:9px; }
.drone-result-stats strong { color:var(--drone-text); font-family:Consolas,monospace; font-size:15px; }
.drone-record-wrap h3 { margin:0 0 10px; font-size:12px; font-weight:600; }
.drone-records { display:grid; grid-template-columns:1fr 1fr; gap:6px; margin:0 0 22px; padding:0; list-style:none; }
.drone-records li { min-height:55px; padding:10px; border:1px solid var(--drone-line); border-radius:6px; }
.drone-records strong,.drone-records span { display:block; }
.drone-records strong { margin-bottom:5px; font-size:11px; }
.drone-records span { color:var(--drone-muted); font-family:Consolas,monospace; font-size:8px; }
.drone-result-card button { display:block; width:100%; min-height:44px; border:0; border-radius:6px; color:#172007; background:var(--drone-accent); font-size:13px; font-weight:700; cursor:pointer; transition:transform .18s ease,background-color .18s ease; }
.drone-result-card button:hover { background:#c4df62; }
.drone-result-card button:active { transform:translateY(1px); }
.drone-result-card button:focus-visible { outline:2px solid var(--drone-text); outline-offset:3px; }
@keyframes drone-capture {
	0% { opacity:0; }
	16% { opacity:.9; }
	100% { opacity:0; }
}
@keyframes drone-warning {
	0%,100% { background:transparent; }
	50% { background:rgba(239,115,95,.12); }
}
@media (max-width:900px) {
	.drone-telemetry,.drone-mission { top:112px; width:210px; }
	.drone-telemetry { left:12px; }
	.drone-mission { right:12px; }
	.drone-controls { right:12px; bottom:12px; left:12px; width:auto; }
	.drone-status-message { bottom:88px; }
}
@media (max-width:640px) {
	.drone-telemetry { top:104px; right:12px; left:12px; width:auto; }
	.drone-panel-title { height:38px; }
	.drone-metrics { grid-template-columns:repeat(4,1fr); }
	.drone-metric,.drone-metric-wide { grid-column:auto; min-height:59px; padding:10px 9px; border-right:1px solid var(--drone-line); border-bottom:0; }
	.drone-metric:last-child { border-right:0; }
	.drone-metric dt { margin-bottom:6px; font-size:8px; }
	.drone-metric dd,.drone-metric-wide dd { font-size:10px; white-space:nowrap; }
	.drone-battery-track { right:9px; bottom:8px; left:9px; }
	.drone-mission { top:auto; right:12px; bottom:128px; width:154px; }
	.drone-mission-current { min-height:58px; padding:10px; }
	.drone-mission-current strong { font-size:10px; }
	.drone-mission-count { height:38px; padding:0 10px; }
	.drone-minimap-wrap { padding:8px; }
	.drone-controls { display:grid; grid-template-columns:repeat(4,1fr); gap:5px; padding:9px; }
	.drone-controls div { justify-content:center; }
	.drone-controls span { display:none; }
	.drone-controls kbd { width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
	.drone-status-message { right:12px; bottom:86px; left:12px; width:auto; max-width:none; text-align:center; transform:none; }
	.drone-result-card { padding:20px; }
	.drone-result-stats { grid-template-columns:1fr 1fr; }
	.drone-result-stats li:nth-child(2) { border-right:0; }
	.drone-result-stats li:nth-child(-n+2) { border-bottom:1px solid var(--drone-line); }
	.drone-records { grid-template-columns:1fr; }
}
@media (prefers-reduced-motion:reduce) {
	.battery-critical .drone-metric-battery { animation:none; }
	.drone-capture-flash.is-active { animation:none; opacity:.28; }
	.drone-result-card button { transition:none; }
}
@media (prefers-reduced-transparency:reduce) {
	.drone-telemetry,.drone-mission,.drone-controls,.drone-status-message,.drone-pause,.drone-result { -webkit-backdrop-filter:none; backdrop-filter:none; }
	.drone-telemetry,.drone-mission,.drone-controls,.drone-status-message { background:#10191a; }
}
