* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

body {
  font-family: 'Press Start 2P', cursive;
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

/* トラロープ（黄色と黒の斜めストライプ） */
.caution-tape {
  height: 40px;
  background: repeating-linear-gradient(
    45deg,
    #000000,
    #000000 20px,
    #FFD700 20px,
    #FFD700 40px
  );
  border-top: 4px solid #000;
  border-bottom: 4px solid #000;
  image-rendering: pixelated;
}

.caution-tape.top {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 100;
}

.caution-tape.bottom {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 100;
}

/* メインコンテンツ - マリオ風青空 */
.main-content {
  flex: 1;
  background: linear-gradient(to bottom, #5C94FC 0%, #5C94FC 70%, #5C94FC 100%);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  position: relative;
  padding: 60px 20px;
}

/* ピクセル雲 */
.cloud {
  position: absolute;
  background: #FFFFFF;
  image-rendering: pixelated;
}

.cloud::before,
.cloud::after {
  content: '';
  position: absolute;
  background: #FFFFFF;
}

.cloud-1 {
  width: 80px;
  height: 32px;
  top: 80px;
  left: 10%;
  box-shadow: 
    -16px 16px 0 #FFFFFF,
    16px 16px 0 #FFFFFF,
    32px 16px 0 #FFFFFF,
    -32px 16px 0 #FFFFFF;
}

.cloud-2 {
  width: 64px;
  height: 24px;
  top: 120px;
  right: 15%;
  box-shadow: 
    -12px 12px 0 #FFFFFF,
    12px 12px 0 #FFFFFF,
    24px 12px 0 #FFFFFF;
}

.cloud-3 {
  width: 96px;
  height: 32px;
  top: 160px;
  left: 50%;
  box-shadow: 
    -16px 16px 0 #FFFFFF,
    16px 16px 0 #FFFFFF,
    32px 16px 0 #FFFFFF,
    -32px 16px 0 #FFFFFF,
    48px 16px 0 #FFFFFF;
}

/* メッセージボックス */
.message-box {
  background: #000000;
  border: 8px solid #FFFFFF;
  padding: 40px 60px;
  text-align: center;
  image-rendering: pixelated;
  position: relative;
  z-index: 10;
}

.title {
  color: #FFD700;
  font-size: 24px;
  text-shadow: 4px 4px 0 #8B4513;
  margin-bottom: 8px;
  letter-spacing: 2px;
}

.subtitle {
  color: #FFFFFF;
  font-size: 14px;
  margin-top: 30px;
}

.message {
  color: #00FF00;
  font-size: 10px;
  margin-top: 16px;
}

/* 作業員アイコン */
.worker-icon {
  position: relative;
  width: 48px;
  height: 64px;
  margin: 30px auto;
}

.worker-head {
  position: absolute;
  width: 16px;
  height: 16px;
  background: #FFD700;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  box-shadow: 
    0 -8px 0 #FFD700,
    -4px -8px 0 #FFD700,
    4px -8px 0 #FFD700;
}

.worker-head::after {
  content: '';
  position: absolute;
  width: 16px;
  height: 8px;
  background: #FFCC99;
  top: 8px;
}

.worker-body {
  position: absolute;
  width: 24px;
  height: 20px;
  background: #0000FF;
  top: 24px;
  left: 50%;
  transform: translateX(-50%);
}

.worker-arm {
  position: absolute;
  width: 8px;
  height: 16px;
  background: #0000FF;
  top: 24px;
}

.worker-arm.left {
  left: 0;
}

.worker-arm.right {
  right: 0;
}

.worker-leg {
  position: absolute;
  width: 8px;
  height: 16px;
  background: #8B4513;
  top: 44px;
}

.worker-leg.left {
  left: 12px;
}

.worker-leg.right {
  right: 12px;
}

.shovel {
  position: absolute;
  width: 4px;
  height: 32px;
  background: #8B4513;
  right: -12px;
  top: 16px;
}

.shovel::after {
  content: '';
  position: absolute;
  width: 12px;
  height: 8px;
  background: #808080;
  bottom: 0;
  left: -4px;
}

/* 地面 */
.ground {
  position: fixed;
  bottom: 40px;
  left: 0;
  right: 0;
  height: 80px;
  z-index: 5;
}

.grass {
  height: 16px;
  background: #00AA00;
  box-shadow: 
    inset 0 -4px 0 #008800;
}

.dirt {
  height: 64px;
  background: #8B4513;
  box-shadow: 
    inset 0 4px 0 #A0522D,
    inset 0 -4px 0 #654321;
}

/* レスポンシブ */
@media (max-width: 600px) {
  .title {
    font-size: 16px;
  }
  
  .message-box {
    padding: 24px 32px;
  }
  
  .subtitle {
    font-size: 10px;
  }
  
  .message {
    font-size: 8px;
  }
}
