* { margin:0; padding:0; box-sizing:border-box; }
html, body, #root { width:100%; height:100%; overflow:hidden; font-family:'IBM Plex Sans',sans-serif; }

.crt-bezel {
  position:fixed; inset:0; pointer-events:none; z-index:10000;
  box-shadow: inset 0 0 80px rgba(0,0,0,0.6), inset 0 0 20px rgba(0,0,0,0.3);
  border-radius: 8px;
}
.scanlines {
  position:fixed; inset:0; pointer-events:none; z-index:9999; opacity:0.03;
  background: repeating-linear-gradient(0deg, transparent, transparent 2px, rgba(0,0,0,0.3) 2px, rgba(0,0,0,0.3) 4px);
}

.mono { font-family:'IBM Plex Mono', monospace; }
.sans { font-family:'IBM Plex Sans', sans-serif; }

@keyframes pulse { 0%,100%{opacity:0.6;transform:scale(1)} 50%{opacity:1;transform:scale(1.05)} }
@keyframes blink { 0%,100%{opacity:1} 50%{opacity:0} }
@keyframes slideUp { from{transform:translateY(20px);opacity:0} to{transform:translateY(0);opacity:1} }
@keyframes fadeIn { from{opacity:0} to{opacity:1} }
@keyframes scaleIn { from{transform:scale(0.9);opacity:0} to{transform:scale(1);opacity:1} }
@keyframes notifSlide { from{transform:translateX(400px);opacity:0} to{transform:translateX(0);opacity:1} }
@keyframes bsodCount { from{opacity:0.5} to{opacity:1} }
@keyframes typing { from{width:0} to{width:100%} }
@keyframes glitch {
  0%{transform:translate(0)} 20%{transform:translate(-2px,2px)} 40%{transform:translate(2px,-2px)} 60%{transform:translate(-1px,-1px)} 80%{transform:translate(1px,2px)} 100%{transform:translate(0)}
}

.animate-pulse-power { animation: pulse 2s ease-in-out infinite; }
.animate-blink { animation: blink 1s step-end infinite; }
.animate-slideup { animation: slideUp 0.3s ease-out; }
.animate-fadein { animation: fadeIn 0.3s ease-out; }
.animate-scalein { animation: scaleIn 0.2s ease-out; }
.animate-notif { animation: notifSlide 0.4s ease-out; }

.window-glass {
  background: rgba(22,33,62,0.85);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

.desktop-gradient {
  background: linear-gradient(135deg, #0a0a1a 0%, #0f3460 40%, #1a1a2e 70%, #16213e 100%);
}

.scrollbar-thin::-webkit-scrollbar { width:6px; }
.scrollbar-thin::-webkit-scrollbar-track { background:rgba(0,0,0,0.2); }
.scrollbar-thin::-webkit-scrollbar-thumb { background:rgba(233,69,96,0.4); border-radius:3px; }
.scrollbar-thin::-webkit-scrollbar-thumb:hover { background:rgba(233,69,96,0.6); }

.resize-handle {
  position:absolute; bottom:0; right:0; width:16px; height:16px; cursor:nwse-resize;
}
.resize-handle::after {
  content:''; position:absolute; bottom:2px; right:2px; width:8px; height:8px;
  border-right:2px solid rgba(233,69,96,0.5); border-bottom:2px solid rgba(233,69,96,0.5);
}

input[type="range"] { -webkit-appearance:none; background:rgba(255,255,255,0.1); height:4px; border-radius:2px; }
input[type="range"]::-webkit-slider-thumb { -webkit-appearance:none; width:14px; height:14px; border-radius:50%; background:#e94560; cursor:pointer; }

.context-menu { animation: scaleIn 0.15s ease-out; transform-origin: top left; }