@font-face{
  font-family:"Spline Sans Mono";
  src:url("../fonts/SplineSansMono.ttf") format("truetype-variations"),
      url("../fonts/SplineSansMono.ttf") format("truetype");
  font-weight:300 700;
  font-display:swap;
}

:root{
  --bg:#ffffff;
  --text:#111111;
  --muted:#8a8a8e;
  --btn-bg: rgba(0,0,0,0.045);
  --btn-border: rgba(0,0,0,0.09);
}

*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;}

html,body{
  margin:0;padding:0;width:100%;height:100%;overflow:hidden;
  background:var(--bg);
  font-family:"Spline Sans Mono", Menlo, monospace;
  color:var(--text);
  -webkit-user-select:none;user-select:none;
  position:fixed;
}

.ui-top{
  position:fixed;
  top:env(safe-area-inset-top, 14px);
  left:0;right:0;
  display:flex;
  align-items:center;
  gap:8px;
  padding:10px 12px;
  z-index:30;
}
.ui-top .spacer{flex:1}

.glass-btn{
  width:38px;height:38px;
  border-radius:50%;
  border:1px solid var(--btn-border);
  background:var(--btn-bg);
  color:var(--text);
  display:flex;align-items:center;justify-content:center;
  transition:transform .15s ease, background .2s ease, opacity .2s ease;
  padding:0;
  text-decoration:none;
}
.glass-btn svg{width:18px;height:18px}
.glass-btn:active{transform:scale(0.88);background:rgba(0,0,0,0.09);}
.glass-btn[disabled]{opacity:.3;pointer-events:none;}

.rec-btn .rec-dot{
  width:13px;height:13px;border-radius:50%;
  background:#111111;
  box-shadow:0 0 0 0 rgba(17,17,17,0.5);
}
.rec-btn.recording .rec-dot{
  border-radius:4px;
  animation:pulse 1.1s infinite;
}
@keyframes pulse{
  0%{box-shadow:0 0 0 0 rgba(17,17,17,0.45)}
  70%{box-shadow:0 0 0 9px rgba(17,17,17,0)}
  100%{box-shadow:0 0 0 0 rgba(17,17,17,0)}
}

.rec-timer{
  position:fixed;
  top:calc(env(safe-area-inset-top, 14px) + 60px);
  left:50%;transform:translateX(-50%);
  background:rgba(17,17,17,0.9);
  color:#fff;font-size:12px;font-weight:600;letter-spacing:.3px;
  padding:5px 12px;border-radius:12px;
  z-index:31;
}

.stage{
  position:fixed;inset:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  padding:calc(env(safe-area-inset-top, 14px) + 60px) 16px calc(env(safe-area-inset-bottom, 10px) + 14px);
  gap:10px;
}

.preview-wrap{
  flex:none;
  line-height:0;
}
.preview-wrap:not([hidden]){display:block;}
.preview-wrap img{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
}

#pixelCanvas{
  flex:none;
}
#pixelCanvas:not([hidden]){display:block;}

.empty-state{
  flex:1;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:10px;
  color:#b7b6ba;
  text-align:center;
  padding:0 30px;
}
.empty-state:not([hidden]){display:flex;}
.empty-state svg{width:48px;height:48px;opacity:.6;margin-bottom:4px;}
.empty-state p{margin:0;font-size:14px;font-weight:500;color:#9d9ca1;}

.toast{
  position:fixed;
  bottom:36px;left:50%;transform:translateX(-50%);
  background:rgba(17,17,17,0.9);
  color:#fff;font-size:13px;
  padding:10px 16px;border-radius:14px;
  z-index:40;
  max-width:80vw;text-align:center;
}
