*{
  margin: 0;
  padding:0;
  box-sizing: border-box;
}
html,body{
  width:100%;
  height:100%;
  min-height:100vh;
  overflow:hidden;      /* 避免铺满窗口后出现滚动条/空白滚动区 */
  background:#FFF3E0;   /* 米黄色，与画布背景一致 */
}
body{
  display:flex;
  justify-content:center;
  align-items:center;
}
#stage{
  width:100%;
  height:100%;
  display:flex;
  justify-content:center;
  align-items:center;
}
canvas{
  display:block;
  /* 铺满窗口：去掉圆角与阴影，避免边缘留白 */
}

/* 摄像头兜底按钮：固定悬浮在顶部中央，不参与 flex 布局（否则会挤歪全屏画布） */
#cam-start-btn{
  position:fixed;
  top:14px;
  left:50%;
  transform:translateX(-50%);
  z-index:10;
  padding:10px 18px;
  font-size:15px;
  border:none;
  border-radius:999px;
  background:#fff;
  color:#5a4637;
  cursor:pointer;
  box-shadow:0 2px 8px rgba(0,0,0,.15);
}
#cam-start-btn.is-busy{ opacity:.65; cursor:default; }
#cam-start-btn.is-done{ background:#7cb342; color:#fff; }